diff --git a/docs/assets/css/tdesign.min.css b/docs/assets/css/tdesign.min.css index 8a17216..0ff790f 100644 --- a/docs/assets/css/tdesign.min.css +++ b/docs/assets/css/tdesign.min.css @@ -1,2 +1,2 @@ -:root{--td-screen-xs:320px;--td-screen-sm:768px;--td-screen-md:992px;--td-screen-lg:1200px;--td-screen-xl:1400px;--td-screen-xxl:1880px}@-moz-document url-prefix(){.narrow-scrollbar{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.narrow-scrollbar::-webkit-scrollbar{height:8px;width:8px}.narrow-scrollbar::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid transparent;border-radius:15px}.narrow-scrollbar::-webkit-scrollbar-thumb:horizontal:hover,.narrow-scrollbar::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-fake-arrow path{stroke:currentcolor;transition:d .2s}.t-fake-arrow--active path{d:path("M3.75 10.2002L7.99274 5.7998L12.2361 10.0425")}.t-slide-down-enter-active,.t-slide-down-leave-active{transition:height .2s cubic-bezier(.38,0,.24,1),max-height .2s cubic-bezier(.38,0,.24,1)}:root,:root[theme-mode=light]{--td-brand-color-1:#f2f3ff;--td-brand-color-2:#d9e1ff;--td-brand-color-3:#b5c7ff;--td-brand-color-4:#8eabff;--td-brand-color-5:#618dff;--td-brand-color-6:#366ef4;--td-brand-color-7:#0052d9;--td-brand-color-8:#003cab;--td-brand-color-9:#002a7c;--td-brand-color-10:#001a57;--td-warning-color-1:#fff1e9;--td-warning-color-2:#ffd9c2;--td-warning-color-3:#ffb98c;--td-warning-color-4:#fa9550;--td-warning-color-5:#e37318;--td-warning-color-6:#be5a00;--td-warning-color-7:#954500;--td-warning-color-8:#713300;--td-warning-color-9:#532300;--td-warning-color-10:#3b1700;--td-error-color-1:#fff0ed;--td-error-color-2:#ffd8d2;--td-error-color-3:#ffb9b0;--td-error-color-4:#ff9285;--td-error-color-5:#f6685d;--td-error-color-6:#d54941;--td-error-color-7:#ad352f;--td-error-color-8:#881f1c;--td-error-color-9:#68070a;--td-error-color-10:#490002;--td-success-color-1:#e3f9e9;--td-success-color-2:#c6f3d7;--td-success-color-3:#92dab2;--td-success-color-4:#56c08d;--td-success-color-5:#2ba471;--td-success-color-6:#008858;--td-success-color-7:#006c45;--td-success-color-8:#005334;--td-success-color-9:#003b23;--td-success-color-10:#002515;--td-gray-color-1:#f3f3f3;--td-gray-color-2:#eee;--td-gray-color-3:#e8e8e8;--td-gray-color-4:#ddd;--td-gray-color-5:#c6c6c6;--td-gray-color-6:#a6a6a6;--td-gray-color-7:#8b8b8b;--td-gray-color-8:#777;--td-gray-color-9:#5e5e5e;--td-gray-color-10:#4b4b4b;--td-gray-color-11:#393939;--td-gray-color-12:#2c2c2c;--td-gray-color-13:#242424;--td-gray-color-14:#181818;--td-font-white-1:#fff;--td-font-white-2:hsla(0,0%,100%,.55);--td-font-white-3:hsla(0,0%,100%,.35);--td-font-white-4:hsla(0,0%,100%,.22);--td-font-gray-1:rgba(0,0,0,.9);--td-font-gray-2:rgba(0,0,0,.6);--td-font-gray-3:rgba(0,0,0,.4);--td-font-gray-4:rgba(0,0,0,.26);--td-brand-color:var(--td-brand-color-7);--td-warning-color:var(--td-warning-color-5);--td-error-color:var(--td-error-color-6);--td-success-color:var(--td-success-color-5);--td-brand-color-hover:var(--td-brand-color-6);--td-brand-color-focus:var(--td-brand-color-2);--td-brand-color-active:var(--td-brand-color-8);--td-brand-color-disabled:var(--td-brand-color-3);--td-brand-color-light:var(--td-brand-color-1);--td-brand-color-light-hover:var(--td-brand-color-2);--td-warning-color-hover:var(--td-warning-color-4);--td-warning-color-focus:var(--td-warning-color-2);--td-warning-color-active:var(--td-warning-color-6);--td-warning-color-disabled:var(--td-warning-color-3);--td-warning-color-light:var(--td-warning-color-1);--td-warning-color-light-hover:var(--td-warning-color-2);--td-error-color-hover:var(--td-error-color-5);--td-error-color-focus:var(--td-error-color-2);--td-error-color-active:var(--td-error-color-7);--td-error-color-disabled:var(--td-error-color-3);--td-error-color-light:var(--td-error-color-1);--td-error-color-light-hover:var(--td-error-color-2);--td-success-color-hover:var(--td-success-color-4);--td-success-color-focus:var(--td-success-color-2);--td-success-color-active:var(--td-success-color-6);--td-success-color-disabled:var(--td-success-color-3);--td-success-color-light:var(--td-success-color-1);--td-success-color-light-hover:var(--td-success-color-2);--td-mask-active:rgba(0,0,0,.6);--td-mask-disabled:hsla(0,0%,100%,.6);--td-bg-color-page:var(--td-gray-color-2);--td-bg-color-container:#fff;--td-bg-color-container-hover:var(--td-gray-color-1);--td-bg-color-container-active:var(--td-gray-color-3);--td-bg-color-container-select:#fff;--td-bg-color-secondarycontainer:var(--td-gray-color-1);--td-bg-color-secondarycontainer-hover:var(--td-gray-color-2);--td-bg-color-secondarycontainer-active:var(--td-gray-color-4);--td-bg-color-component:var(--td-gray-color-3);--td-bg-color-component-hover:var(--td-gray-color-4);--td-bg-color-component-active:var(--td-gray-color-6);--td-bg-color-secondarycomponent:var(--td-gray-color-4);--td-bg-color-secondarycomponent-hover:var(--td-gray-color-5);--td-bg-color-secondarycomponent-active:var(--td-gray-color-6);--td-bg-color-component-disabled:var(--td-gray-color-2);--td-bg-color-specialcomponent:#fff;--td-text-color-primary:var(--td-font-gray-1);--td-text-color-secondary:var(--td-font-gray-2);--td-text-color-placeholder:var(--td-font-gray-3);--td-text-color-disabled:var(--td-font-gray-4);--td-text-color-anti:#fff;--td-text-color-brand:var(--td-brand-color-7);--td-text-color-link:var(--td-brand-color-8);--td-border-level-1-color:var(--td-gray-color-3);--td-component-stroke:var(--td-gray-color-3);--td-border-level-2-color:var(--td-gray-color-4);--td-component-border:var(--td-gray-color-4);--td-shadow-1:0 1px 10px rgba(0,0,0,.05),0 4px 5px rgba(0,0,0,.08),0 2px 4px -1px rgba(0,0,0,.12);--td-shadow-2:0 3px 14px 2px rgba(0,0,0,.05),0 8px 10px 1px rgba(0,0,0,.06),0 5px 5px -3px rgba(0,0,0,.1);--td-shadow-3:0 6px 30px 5px rgba(0,0,0,.05),0 16px 24px 2px rgba(0,0,0,.04),0 8px 10px -5px rgba(0,0,0,.08);--td-shadow-inset-top:inset 0 0.5px 0 #dcdcdc;--td-shadow-inset-right:inset 0.5px 0 0 #dcdcdc;--td-shadow-inset-bottom:inset 0 -0.5px 0 #dcdcdc;--td-shadow-inset-left:inset -0.5px 0 0 #dcdcdc;--td-table-shadow-color:rgba(0,0,0,.08);--td-scrollbar-color:rgba(0,0,0,.1);--td-scrollbar-hover-color:rgba(0,0,0,.3);--td-scroll-track-color:#fff}:root[theme-mode=dark]{--td-brand-color-1:#1b2f51;--td-brand-color-2:#173463;--td-brand-color-3:#143975;--td-brand-color-4:#103d88;--td-brand-color-5:#0d429a;--td-brand-color-6:#054bbe;--td-brand-color-7:#2667d4;--td-brand-color-8:#4582e6;--td-brand-color-9:#699ef5;--td-brand-color-10:#96bbf8;--td-warning-color-1:#4f2a1d;--td-warning-color-2:#582f21;--td-warning-color-3:#733c23;--td-warning-color-4:#a75d2b;--td-warning-color-5:#cf6e2d;--td-warning-color-6:#dc7633;--td-warning-color-7:#e8935c;--td-warning-color-8:#ecbf91;--td-warning-color-9:#eed7bf;--td-warning-color-10:#f3e9dc;--td-error-color-1:#472324;--td-error-color-2:#5e2a2d;--td-error-color-3:#703439;--td-error-color-4:#83383e;--td-error-color-5:#a03f46;--td-error-color-6:#c64751;--td-error-color-7:#de6670;--td-error-color-8:#ec888e;--td-error-color-9:#edb1b6;--td-error-color-10:#eeced0;--td-success-color-1:#193a2a;--td-success-color-2:#1a4230;--td-success-color-3:#17533d;--td-success-color-4:#0d7a55;--td-success-color-5:#059465;--td-success-color-6:#43af8a;--td-success-color-7:#46bf96;--td-success-color-8:#80d2b6;--td-success-color-9:#b4e1d3;--td-success-color-10:#deede8;--td-gray-color-1:#f3f3f3;--td-gray-color-2:#eee;--td-gray-color-3:#e8e8e8;--td-gray-color-4:#ddd;--td-gray-color-5:#c6c6c6;--td-gray-color-6:#a6a6a6;--td-gray-color-7:#8b8b8b;--td-gray-color-8:#777;--td-gray-color-9:#5e5e5e;--td-gray-color-10:#4b4b4b;--td-gray-color-11:#393939;--td-gray-color-12:#2c2c2c;--td-gray-color-13:#242424;--td-gray-color-14:#181818;--td-font-white-1:hsla(0,0%,100%,.9);--td-font-white-2:hsla(0,0%,100%,.55);--td-font-white-3:hsla(0,0%,100%,.35);--td-font-white-4:hsla(0,0%,100%,.22);--td-font-gray-1:rgba(0,0,0,.9);--td-font-gray-2:rgba(0,0,0,.6);--td-font-gray-3:rgba(0,0,0,.4);--td-font-gray-4:rgba(0,0,0,.26);--td-brand-color:var(--td-brand-color-8);--td-warning-color:var(--td-warning-color-5);--td-error-color:var(--td-error-color-6);--td-success-color:var(--td-success-color-5);--td-brand-color-hover:var(--td-brand-color-7);--td-brand-color-focus:var(--td-brand-color-2);--td-brand-color-active:var(--td-brand-color-9);--td-brand-color-disabled:var(--td-brand-color-3);--td-brand-color-light:var(--td-brand-color-1);--td-brand-color-light-hover:var(--td-brand-color-2);--td-warning-color-hover:var(--td-warning-color-4);--td-warning-color-focus:var(--td-warning-color-2);--td-warning-color-active:var(--td-warning-color-6);--td-warning-color-disabled:var(--td-warning-color-3);--td-warning-color-light:var(--td-warning-color-1);--td-warning-color-light-hover:var(--td-warning-color-2);--td-error-color-hover:var(--td-error-color-5);--td-error-color-focus:var(--td-error-color-2);--td-error-color-active:var(--td-error-color-7);--td-error-color-disabled:var(--td-error-color-3);--td-error-color-light:var(--td-error-color-1);--td-error-color-light-hover:var(--td-error-color-2);--td-success-color-hover:var(--td-success-color-4);--td-success-color-focus:var(--td-success-color-2);--td-success-color-active:var(--td-success-color-6);--td-success-color-disabled:var(--td-success-color-3);--td-success-color-light:var(--td-success-color-1);--td-success-color-light-hover:var(--td-success-color-2);--td-mask-active:rgba(0,0,0,.4);--td-mask-disabled:rgba(0,0,0,.6);--td-bg-color-page:var(--td-gray-color-14);--td-bg-color-container:var(--td-gray-color-13);--td-bg-color-container-hover:var(--td-gray-color-12);--td-bg-color-container-active:var(--td-gray-color-10);--td-bg-color-container-select:var(--td-gray-color-9);--td-bg-color-secondarycontainer:var(--td-gray-color-12);--td-bg-color-secondarycontainer-hover:var(--td-gray-color-11);--td-bg-color-secondarycontainer-active:var(--td-gray-color-9);--td-bg-color-component:var(--td-gray-color-11);--td-bg-color-component-hover:var(--td-gray-color-10);--td-bg-color-component-active:var(--td-gray-color-9);--td-bg-color-secondarycomponent:var(--td-gray-color-10);--td-bg-color-secondarycomponent-hover:var(--td-gray-color-9);--td-bg-color-secondarycomponent-active:var(--td-gray-color-8);--td-bg-color-component-disabled:var(--td-gray-color-12);--td-bg-color-specialcomponent:transparent;--td-text-color-primary:var(--td-font-white-1);--td-text-color-secondary:var(--td-font-white-2);--td-text-color-placeholder:var(--td-font-white-3);--td-text-color-disabled:var(--td-font-white-4);--td-text-color-anti:#fff;--td-text-color-brand:var(--td-brand-color-8);--td-text-color-link:var(--td-brand-color-8);--td-border-level-1-color:var(--td-gray-color-11);--td-component-stroke:var(--td-gray-color-11);--td-border-level-2-color:var(--td-gray-color-9);--td-component-border:var(--td-gray-color-9);--td-shadow-1:0 4px 6px rgba(0,0,0,.06),0 1px 10px rgba(0,0,0,.08),0 2px 4px rgba(0,0,0,.12);--td-shadow-2:0 8px 10px rgba(0,0,0,.12),0 3px 14px rgba(0,0,0,.1),0 5px 5px rgba(0,0,0,.16);--td-shadow-3:0 16px 24px rgba(0,0,0,.14),0 6px 30px rgba(0,0,0,.12),0 8px 10px rgba(0,0,0,.2);--td-shadow-inset-top:inset 0 0.5px 0 #5e5e5e;--td-shadow-inset-right:inset 0.5px 0 0 #5e5e5e;--td-shadow-inset-bottom:inset 0 -0.5px 0 #5e5e5e;--td-shadow-inset-left:inset -0.5px 0 0 #5e5e5e;--td-table-shadow-color:rgba(0,0,0,.55);--td-scrollbar-color:hsla(0,0%,100%,.1);--td-scrollbar-hover-color:hsla(0,0%,100%,.3);--td-scroll-track-color:#333}:root{--td-radius-small:2px;--td-radius-default:3px;--td-radius-medium:6px;--td-radius-large:9px;--td-radius-extraLarge:12px;--td-radius-round:999px;--td-radius-circle:50%;--td-font-family:PingFang SC,Microsoft YaHei,Arial Regular;--td-font-family-medium:PingFang SC,Microsoft YaHei,Arial Medium;--td-font-size-link-small:12px;--td-font-size-link-medium:14px;--td-font-size-link-large:16px;--td-font-size-mark-small:12px;--td-font-size-mark-medium:14px;--td-font-size-body-small:12px;--td-font-size-body-medium:14px;--td-font-size-body-large:16px;--td-font-size-title-small:14px;--td-font-size-title-medium:16px;--td-font-size-title-large:20px;--td-font-size-headline-small:24px;--td-font-size-headline-medium:28px;--td-font-size-headline-large:36px;--td-font-size-display-medium:48px;--td-font-size-display-large:64px;--td-line-height-link-small:20px;--td-line-height-link-medium:22px;--td-line-height-link-large:24px;--td-line-height-mark-small:20px;--td-line-height-mark-medium:22px;--td-line-height-body-small:20px;--td-line-height-body-medium:22px;--td-line-height-body-large:24px;--td-line-height-title-small:22px;--td-line-height-title-medium:24px;--td-line-height-title-large:28px;--td-line-height-headline-small:32px;--td-line-height-headline-medium:36px;--td-line-height-headline-large:44px;--td-line-height-display-medium:56px;--td-line-height-display-large:72px;--td-font-link-small:var(--td-font-size-link-small) /var(--td-line-height-link-small) var(--td-font-family);--td-font-link-medium:var(--td-font-size-link-medium) /var(--td-line-height-link-medium) var(--td-font-family);--td-font-link-large:var(--td-font-size-link-large) /var(--td-line-height-link-large) var(--td-font-family);--td-font-mark-small:600 var(--td-font-size-mark-small) /var(--td-line-height-mark-small) var(--td-font-family);--td-font-mark-medium:600 var(--td-font-size-mark-medium) /var(--td-line-height-mark-medium) var(--td-font-family);--td-font-body-small:var(--td-font-size-body-small) /var(--td-line-height-body-small) var(--td-font-family);--td-font-body-medium:var(--td-font-size-body-medium) /var(--td-line-height-body-medium) var(--td-font-family);--td-font-body-large:var(--td-font-size-body-large) /var(--td-line-height-body-large) var(--td-font-family);--td-font-title-small:600 var(--td-font-size-title-small) /var(--td-line-height-title-small) var(--td-font-family);--td-font-title-medium:600 var(--td-font-size-title-medium) /var(--td-line-height-title-medium) var(--td-font-family);--td-font-title-large:600 var(--td-font-size-title-large) /var(--td-line-height-title-large) var(--td-font-family);--td-font-headline-small:600 var(--td-font-size-headline-small) /var(--td-line-height-headline-small) var(--td-font-family);--td-font-headline-medium:600 var(--td-font-size-headline-medium) /var(--td-line-height-headline-medium) var(--td-font-family);--td-font-headline-large:600 var(--td-font-size-headline-large) /var(--td-line-height-headline-large) var(--td-font-family);--td-font-display-medium:600 var(--td-font-size-display-medium) /var(--td-line-height-display-medium) var(--td-font-family);--td-font-display-large:600 var(--td-font-size-display-large) /var(--td-line-height-display-large) var(--td-font-family);--td-size-1:2px;--td-size-2:4px;--td-size-3:6px;--td-size-4:8px;--td-size-5:12px;--td-size-6:16px;--td-size-7:20px;--td-size-8:24px;--td-size-9:28px;--td-size-10:32px;--td-size-11:36px;--td-size-12:40px;--td-size-13:48px;--td-size-14:56px;--td-size-15:64px;--td-size-16:72px;--td-comp-size-xxxs:var(--td-size-6);--td-comp-size-xxs:var(--td-size-7);--td-comp-size-xs:var(--td-size-8);--td-comp-size-s:var(--td-size-9);--td-comp-size-m:var(--td-size-10);--td-comp-size-l:var(--td-size-11);--td-comp-size-xl:var(--td-size-12);--td-comp-size-xxl:var(--td-size-13);--td-comp-size-xxxl:var(--td-size-14);--td-comp-size-xxxxl:var(--td-size-15);--td-comp-size-xxxxxl:var(--td-size-16);--td-pop-padding-s:var(--td-size-2);--td-pop-padding-m:var(--td-size-3);--td-pop-padding-l:var(--td-size-4);--td-pop-padding-xl:var(--td-size-5);--td-pop-padding-xxl:var(--td-size-6);--td-comp-paddingLR-xxs:var(--td-size-1);--td-comp-paddingLR-xs:var(--td-size-2);--td-comp-paddingLR-s:var(--td-size-4);--td-comp-paddingLR-m:var(--td-size-5);--td-comp-paddingLR-l:var(--td-size-6);--td-comp-paddingLR-xl:var(--td-size-8);--td-comp-paddingLR-xxl:var(--td-size-10);--td-comp-paddingTB-xxs:var(--td-size-1);--td-comp-paddingTB-xs:var(--td-size-2);--td-comp-paddingTB-s:var(--td-size-4);--td-comp-paddingTB-m:var(--td-size-5);--td-comp-paddingTB-l:var(--td-size-6);--td-comp-paddingTB-xl:var(--td-size-8);--td-comp-paddingTB-xxl:var(--td-size-10);--td-comp-margin-xxs:var(--td-size-1);--td-comp-margin-xs:var(--td-size-2);--td-comp-margin-s:var(--td-size-4);--td-comp-margin-m:var(--td-size-5);--td-comp-margin-l:var(--td-size-6);--td-comp-margin-xl:var(--td-size-7);--td-comp-margin-xxl:var(--td-size-8);--td-comp-margin-xxxl:var(--td-size-10);--td-comp-margin-xxxxl:var(--td-size-12)}.t-loading{box-sizing:border-box;color:var(--td-text-color-primary);color:var(--td-brand-color);font:var(--td-font-body-medium);font-size:var(--td-comp-size-l);list-style:none;margin:0;padding:0;position:relative}.t-loading--lock{overflow:hidden}.t-loading.t-size-s{font-size:var(--td-comp-size-xxxs)}.t-loading.t-size-l{font-size:var(--td-comp-size-xxxl)}.t-loading__parent--relative{position:relative!important}.t-loading__fullscreen{height:100%;left:0;position:fixed;top:0;width:100%;z-index:3500}.t-loading--center{align-items:center;display:inline-flex;justify-content:center;vertical-align:middle}.t-loading__content{left:48%;position:absolute;top:20%}.t-loading--inherit-color{color:inherit}.t-loading__parent{position:relative}.t-loading__overlay{background-color:var(--td-mask-disabled)}.t-loading--full{height:100%;left:0;position:absolute;top:0;width:100%;z-index:3500}.t-loading--hidden{visibility:hidden}.t-loading--visible{visibility:visible}.t-loading__text{display:inline-block;font:var(--td-font-body-medium);margin-left:var(--td-comp-margin-xs);vertical-align:middle;width:auto}.t-loading__gradient{align-items:center;display:inline-flex;justify-content:center;vertical-align:middle}.t-loading__gradient-conic{background:conic-gradient(from 90deg at 50% 50%,#fff 0deg,currentcolor 1turn);border-radius:var(--td-radius-circle);height:100%;-webkit-mask:radial-gradient(transparent calc(50% - .5px),#fff 50%);mask:radial-gradient(transparent calc(50% - .5px),#fff 50%);width:100%}.t-button{align-items:center;background-color:transparent;border:1px solid transparent;border-radius:var(--td-radius-default);box-sizing:border-box;color:var(--td-text-color-primary);cursor:pointer;display:inline-flex;font:var(--td-font-body-medium);font-size:var(--td-font-body-medium);justify-content:center;list-style:none;margin:0;outline:none;overflow:hidden;padding:0;position:relative;text-decoration:none;touch-action:manipulation;transition:all .2s linear;vertical-align:middle;white-space:nowrap;z-index:0}.t-button .t-button__text,.t-button .t-icon{display:inline-flex;position:relative;z-index:1}.t-button .t-icon,.t-button .t-loading{font-size:var(--td-font-size-body-large)}.t-button .t-icon+.t-button__text:not(:empty),.t-button .t-loading+.t-button__text:not(:empty){margin-left:8px}.t-button .t-button__suffix:not(:empty){display:inline-flex;margin-left:8px}.t-button--variant-base{background-color:var(--td-bg-color-component);border-color:var(--td-bg-color-component);color:var(--td-text-color-anti);color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:var(--td-comp-size-m);padding-left:calc(var(--td-comp-paddingLR-l) - 1px);padding-right:calc(var(--td-comp-paddingLR-l) - 1px)}.t-button--variant-base .t-icon,.t-button--variant-base .t-loading{font-size:var(--td-font-size-body-large)}.t-button--variant-base:focus-visible,.t-button--variant-base:hover{background-color:var(--td-bg-color-component-hover)}.t-button--variant-base.t-is-disabled,.t-button--variant-base.t-is-loading{background-color:var(--td-bg-color-component-disabled)}.t-button--variant-base:focus-visible,.t-button--variant-base:hover{border-color:var(--td-bg-color-component-hover)}.t-button--variant-base.t-is-disabled,.t-button--variant-base.t-is-loading{border-color:var(--td-bg-color-component-disabled)}.t-button--variant-base:focus-visible,.t-button--variant-base:hover{color:var(--td-text-color-primary)}.t-button--variant-base.t-is-disabled,.t-button--variant-base.t-is-loading{color:var(--td-text-color-disabled)}.t-button--variant-base.t-button--theme-primary{background-color:var(--td-brand-color);border-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-button--variant-base.t-button--theme-primary:focus-visible,.t-button--variant-base.t-button--theme-primary:hover{background-color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--theme-primary.t-is-disabled,.t-button--variant-base.t-button--theme-primary.t-is-loading{background-color:var(--td-brand-color-disabled)}.t-button--variant-base.t-button--theme-primary:focus-visible,.t-button--variant-base.t-button--theme-primary:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--theme-primary.t-is-disabled,.t-button--variant-base.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color-disabled)}.t-button--variant-base.t-button--theme-success{background-color:var(--td-success-color);border-color:var(--td-success-color);color:var(--td-text-color-anti)}.t-button--variant-base.t-button--theme-success:focus-visible,.t-button--variant-base.t-button--theme-success:hover{background-color:var(--td-success-color-hover)}.t-button--variant-base.t-button--theme-success.t-is-disabled,.t-button--variant-base.t-button--theme-success.t-is-loading{background-color:var(--td-success-color-disabled)}.t-button--variant-base.t-button--theme-success:focus-visible,.t-button--variant-base.t-button--theme-success:hover{border-color:var(--td-success-color-hover)}.t-button--variant-base.t-button--theme-success.t-is-disabled,.t-button--variant-base.t-button--theme-success.t-is-loading{border-color:var(--td-success-color-disabled)}.t-button--variant-base.t-button--theme-warning{background-color:var(--td-warning-color);border-color:var(--td-warning-color);color:var(--td-text-color-anti)}.t-button--variant-base.t-button--theme-warning:focus-visible,.t-button--variant-base.t-button--theme-warning:hover{background-color:var(--td-warning-color-hover)}.t-button--variant-base.t-button--theme-warning.t-is-disabled,.t-button--variant-base.t-button--theme-warning.t-is-loading{background-color:var(--td-warning-color-disabled)}.t-button--variant-base.t-button--theme-warning:focus-visible,.t-button--variant-base.t-button--theme-warning:hover{border-color:var(--td-warning-color-hover)}.t-button--variant-base.t-button--theme-warning.t-is-disabled,.t-button--variant-base.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color-disabled)}.t-button--variant-base.t-button--theme-danger{background-color:var(--td-error-color);border-color:var(--td-error-color);color:var(--td-text-color-anti)}.t-button--variant-base.t-button--theme-danger:focus-visible,.t-button--variant-base.t-button--theme-danger:hover{background-color:var(--td-error-color-hover)}.t-button--variant-base.t-button--theme-danger.t-is-disabled,.t-button--variant-base.t-button--theme-danger.t-is-loading{background-color:var(--td-error-color-disabled)}.t-button--variant-base.t-button--theme-danger:focus-visible,.t-button--variant-base.t-button--theme-danger:hover{border-color:var(--td-error-color-hover)}.t-button--variant-base.t-button--theme-danger.t-is-disabled,.t-button--variant-base.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color-disabled)}.t-button--variant-base.t-button--ghost{background-color:transparent;border-color:var(--td-text-color-anti);color:var(--td-text-color-anti)}.t-button--variant-base.t-button--ghost:focus-visible,.t-button--variant-base.t-button--ghost:hover{background-color:transparent}.t-button--variant-base.t-button--ghost.t-is-loading,.t-button--variant-base.t-button--ghost:active{background-color:transparent}.t-button--variant-base.t-button--ghost.t-is-disabled{background-color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost:focus-visible,.t-button--variant-base.t-button--ghost:hover{color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--ghost:active{color:var(--td-brand-color-active)}.t-button--variant-base.t-button--ghost.t-is-loading{color:var(--td-text-color-anti)}.t-button--variant-base.t-button--ghost.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost:focus-visible,.t-button--variant-base.t-button--ghost:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--ghost:active{border-color:var(--td-brand-color-active)}.t-button--variant-base.t-button--ghost.t-is-loading{border-color:var(--td-text-color-anti)}.t-button--variant-base.t-button--ghost.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-primary{border-color:var(--td-brand-color);color:var(--td-brand-color)}.t-button--variant-base.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-primary:active{color:var(--td-brand-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-primary.t-is-loading{color:var(--td-brand-color)}.t-button--variant-base.t-button--ghost.t-button--theme-primary.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-primary:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-primary:active{border-color:var(--td-brand-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color)}.t-button--variant-base.t-button--ghost.t-button--theme-primary.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-success{border-color:var(--td-success-color);color:var(--td-success-color)}.t-button--variant-base.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-success:active{color:var(--td-success-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-success.t-is-loading{color:var(--td-success-color)}.t-button--variant-base.t-button--ghost.t-button--theme-success.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-success:hover{border-color:var(--td-success-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-success:active{border-color:var(--td-success-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-success.t-is-loading{border-color:var(--td-success-color)}.t-button--variant-base.t-button--ghost.t-button--theme-success.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-warning{border-color:var(--td-warning-color);color:var(--td-warning-color)}.t-button--variant-base.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-warning:active{color:var(--td-warning-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-warning.t-is-loading{color:var(--td-warning-color)}.t-button--variant-base.t-button--ghost.t-button--theme-warning.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-warning:hover{border-color:var(--td-warning-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-warning:active{border-color:var(--td-warning-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color)}.t-button--variant-base.t-button--ghost.t-button--theme-warning.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-danger{border-color:var(--td-error-color);color:var(--td-error-color)}.t-button--variant-base.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-danger:active{color:var(--td-error-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-danger.t-is-loading{color:var(--td-error-color)}.t-button--variant-base.t-button--ghost.t-button--theme-danger.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-danger:hover{border-color:var(--td-error-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-danger:active{border-color:var(--td-error-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color)}.t-button--variant-base.t-button--ghost.t-button--theme-danger.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-is-loading:not(.t-button--variant-base.t-button--ghost).t-button--theme-default,.t-button--variant-outline{color:var(--td-text-color-primary)}.t-button--variant-outline{background-color:var(--td-bg-color-specialcomponent);border-color:var(--td-border-level-2-color);font:var(--td-font-body-medium);height:var(--td-comp-size-m);padding-left:calc(var(--td-comp-paddingLR-l) - 1px);padding-right:calc(var(--td-comp-paddingLR-l) - 1px)}.t-button--variant-outline .t-icon,.t-button--variant-outline .t-loading{font-size:var(--td-font-size-body-large)}.t-button--variant-outline:focus-visible,.t-button--variant-outline:hover{color:var(--td-brand-color-hover)}.t-button--variant-outline.t-is-disabled,.t-button--variant-outline.t-is-loading{color:var(--td-text-color-disabled)}.t-button--variant-outline:focus-visible,.t-button--variant-outline:hover{background-color:var(--td-bg-color-specialcomponent)}.t-button--variant-outline.t-is-disabled,.t-button--variant-outline.t-is-loading{background-color:var(--td-bg-color-component-disabled)}.t-button--variant-outline:focus-visible,.t-button--variant-outline:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-outline.t-is-disabled,.t-button--variant-outline.t-is-loading{border-color:var(--td-border-level-2-color)}.t-button--variant-outline.t-button--theme-primary{border-color:var(--td-brand-color);color:var(--td-brand-color)}.t-button--variant-outline.t-button--theme-primary:focus-visible,.t-button--variant-outline.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--theme-primary.t-is-disabled,.t-button--variant-outline.t-button--theme-primary.t-is-loading{color:var(--td-brand-color-disabled)}.t-button--variant-outline.t-button--theme-primary:focus-visible,.t-button--variant-outline.t-button--theme-primary:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--theme-primary.t-is-disabled,.t-button--variant-outline.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color-disabled)}.t-button--variant-outline.t-button--theme-success{border-color:var(--td-success-color);color:var(--td-success-color)}.t-button--variant-outline.t-button--theme-success:focus-visible,.t-button--variant-outline.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-outline.t-button--theme-success.t-is-disabled,.t-button--variant-outline.t-button--theme-success.t-is-loading{color:var(--td-success-color-disabled)}.t-button--variant-outline.t-button--theme-success:focus-visible,.t-button--variant-outline.t-button--theme-success:hover{border-color:var(--td-success-color-hover)}.t-button--variant-outline.t-button--theme-success.t-is-disabled,.t-button--variant-outline.t-button--theme-success.t-is-loading{border-color:var(--td-success-color-disabled)}.t-button--variant-outline.t-button--theme-warning{border-color:var(--td-warning-color);color:var(--td-warning-color)}.t-button--variant-outline.t-button--theme-warning:focus-visible,.t-button--variant-outline.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-outline.t-button--theme-warning.t-is-disabled,.t-button--variant-outline.t-button--theme-warning.t-is-loading{color:var(--td-warning-color-disabled)}.t-button--variant-outline.t-button--theme-warning:focus-visible,.t-button--variant-outline.t-button--theme-warning:hover{border-color:var(--td-warning-color-hover)}.t-button--variant-outline.t-button--theme-warning.t-is-disabled,.t-button--variant-outline.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color-disabled)}.t-button--variant-outline.t-button--theme-danger{border-color:var(--td-error-color);color:var(--td-error-color)}.t-button--variant-outline.t-button--theme-danger:focus-visible,.t-button--variant-outline.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-outline.t-button--theme-danger.t-is-disabled,.t-button--variant-outline.t-button--theme-danger.t-is-loading{color:var(--td-error-color-disabled)}.t-button--variant-outline.t-button--theme-danger:focus-visible,.t-button--variant-outline.t-button--theme-danger:hover{border-color:var(--td-error-color-hover)}.t-button--variant-outline.t-button--theme-danger.t-is-disabled,.t-button--variant-outline.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color-disabled)}.t-button--variant-outline.t-button--ghost{background-color:transparent;border-color:var(--td-text-color-anti);color:var(--td-text-color-anti)}.t-button--variant-outline.t-button--ghost:focus-visible,.t-button--variant-outline.t-button--ghost:hover{background-color:transparent}.t-button--variant-outline.t-button--ghost.t-is-loading,.t-button--variant-outline.t-button--ghost:active{background-color:transparent}.t-button--variant-outline.t-button--ghost.t-is-disabled{background-color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost:focus-visible,.t-button--variant-outline.t-button--ghost:hover{color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--ghost:active{color:var(--td-brand-color-active)}.t-button--variant-outline.t-button--ghost.t-is-loading{color:var(--td-text-color-anti)}.t-button--variant-outline.t-button--ghost.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost:focus-visible,.t-button--variant-outline.t-button--ghost:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--ghost:active{border-color:var(--td-brand-color-active)}.t-button--variant-outline.t-button--ghost.t-is-loading{border-color:var(--td-text-color-anti)}.t-button--variant-outline.t-button--ghost.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary{border-color:var(--td-brand-color);color:var(--td-brand-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary:active{color:var(--td-brand-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary.t-is-loading{color:var(--td-brand-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-primary:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary:active{border-color:var(--td-brand-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-success{border-color:var(--td-success-color);color:var(--td-success-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-success:active{color:var(--td-success-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-success.t-is-loading{color:var(--td-success-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-success.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-success:hover{border-color:var(--td-success-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-success:active{border-color:var(--td-success-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-success.t-is-loading{border-color:var(--td-success-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-success.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning{border-color:var(--td-warning-color);color:var(--td-warning-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning:active{color:var(--td-warning-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning.t-is-loading{color:var(--td-warning-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-warning:hover{border-color:var(--td-warning-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning:active{border-color:var(--td-warning-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger{border-color:var(--td-error-color);color:var(--td-error-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger:active{color:var(--td-error-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger.t-is-loading{color:var(--td-error-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-danger:hover{border-color:var(--td-error-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger:active{border-color:var(--td-error-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-is-loading:not(.t-button--variant-outline.t-button--ghost){color:var(--td-text-color-primary)}.t-button--variant-outline.t-is-loading:not(.t-button--variant-outline.t-button--ghost).t-button--theme-primary{background-color:transparent;color:var(--td-brand-color)}.t-button--variant-outline.t-is-loading:not(.t-button--variant-outline.t-button--ghost).t-button--theme-success{background-color:transparent;color:var(--td-success-color)}.t-button--variant-outline.t-is-loading:not(.t-button--variant-outline.t-button--ghost).t-button--theme-warning{background-color:transparent;color:var(--td-warning-color)}.t-button--variant-outline.t-is-loading:not(.t-button--variant-outline.t-button--ghost).t-button--theme-danger{background-color:transparent;color:var(--td-error-color)}.t-button--variant-dashed{background-color:var(--td-bg-color-specialcomponent);border-color:var(--td-border-level-2-color);border-style:dashed;color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:var(--td-comp-size-m);padding-left:calc(var(--td-comp-paddingLR-l) - 1px);padding-right:calc(var(--td-comp-paddingLR-l) - 1px)}.t-button--variant-dashed .t-icon,.t-button--variant-dashed .t-loading{font-size:var(--td-font-size-body-large)}.t-button--variant-dashed:focus-visible,.t-button--variant-dashed:hover{color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-is-disabled,.t-button--variant-dashed.t-is-loading{color:var(--td-text-color-disabled)}.t-button--variant-dashed:focus-visible,.t-button--variant-dashed:hover{background-color:var(--td-bg-color-specialcomponent)}.t-button--variant-dashed.t-is-disabled,.t-button--variant-dashed.t-is-loading{background-color:var(--td-bg-color-component-disabled)}.t-button--variant-dashed:focus-visible,.t-button--variant-dashed:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-is-disabled,.t-button--variant-dashed.t-is-loading{border-color:var(--td-border-level-2-color)}.t-button--variant-dashed.t-button--theme-primary{border-color:var(--td-brand-color);color:var(--td-brand-color)}.t-button--variant-dashed.t-button--theme-primary:focus-visible,.t-button--variant-dashed.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--theme-primary.t-is-disabled,.t-button--variant-dashed.t-button--theme-primary.t-is-loading{color:var(--td-brand-color-disabled)}.t-button--variant-dashed.t-button--theme-primary:focus-visible,.t-button--variant-dashed.t-button--theme-primary:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--theme-primary.t-is-disabled,.t-button--variant-dashed.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color-disabled)}.t-button--variant-dashed.t-button--theme-success{border-color:var(--td-success-color);color:var(--td-success-color)}.t-button--variant-dashed.t-button--theme-success:focus-visible,.t-button--variant-dashed.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-dashed.t-button--theme-success.t-is-disabled,.t-button--variant-dashed.t-button--theme-success.t-is-loading{color:var(--td-success-color-disabled)}.t-button--variant-dashed.t-button--theme-success:focus-visible,.t-button--variant-dashed.t-button--theme-success:hover{border-color:var(--td-success-color-hover)}.t-button--variant-dashed.t-button--theme-success.t-is-disabled,.t-button--variant-dashed.t-button--theme-success.t-is-loading{border-color:var(--td-success-color-disabled)}.t-button--variant-dashed.t-button--theme-warning{border-color:var(--td-warning-color);color:var(--td-warning-color)}.t-button--variant-dashed.t-button--theme-warning:focus-visible,.t-button--variant-dashed.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-dashed.t-button--theme-warning.t-is-disabled,.t-button--variant-dashed.t-button--theme-warning.t-is-loading{color:var(--td-warning-color-disabled)}.t-button--variant-dashed.t-button--theme-warning:focus-visible,.t-button--variant-dashed.t-button--theme-warning:hover{border-color:var(--td-warning-color-hover)}.t-button--variant-dashed.t-button--theme-warning.t-is-disabled,.t-button--variant-dashed.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color-disabled)}.t-button--variant-dashed.t-button--theme-danger{border-color:var(--td-error-color);color:var(--td-error-color)}.t-button--variant-dashed.t-button--theme-danger:focus-visible,.t-button--variant-dashed.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-dashed.t-button--theme-danger.t-is-disabled,.t-button--variant-dashed.t-button--theme-danger.t-is-loading{color:var(--td-error-color-disabled)}.t-button--variant-dashed.t-button--theme-danger:focus-visible,.t-button--variant-dashed.t-button--theme-danger:hover{border-color:var(--td-error-color-hover)}.t-button--variant-dashed.t-button--theme-danger.t-is-disabled,.t-button--variant-dashed.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color-disabled)}.t-button--variant-dashed.t-button--ghost{background-color:transparent;border-color:var(--td-text-color-anti);color:var(--td-text-color-anti)}.t-button--variant-dashed.t-button--ghost:focus-visible,.t-button--variant-dashed.t-button--ghost:hover{background-color:transparent}.t-button--variant-dashed.t-button--ghost.t-is-loading,.t-button--variant-dashed.t-button--ghost:active{background-color:transparent}.t-button--variant-dashed.t-button--ghost.t-is-disabled{background-color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost:focus-visible,.t-button--variant-dashed.t-button--ghost:hover{color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--ghost:active{color:var(--td-brand-color-active)}.t-button--variant-dashed.t-button--ghost.t-is-loading{color:var(--td-text-color-anti)}.t-button--variant-dashed.t-button--ghost.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost:focus-visible,.t-button--variant-dashed.t-button--ghost:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--ghost:active{border-color:var(--td-brand-color-active)}.t-button--variant-dashed.t-button--ghost.t-is-loading{border-color:var(--td-text-color-anti)}.t-button--variant-dashed.t-button--ghost.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary{border-color:var(--td-brand-color);color:var(--td-brand-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:active{color:var(--td-brand-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary.t-is-loading{color:var(--td-brand-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:active{border-color:var(--td-brand-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success{border-color:var(--td-success-color);color:var(--td-success-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success:active{color:var(--td-success-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success.t-is-loading{color:var(--td-success-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-success:hover{border-color:var(--td-success-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success:active{border-color:var(--td-success-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success.t-is-loading{border-color:var(--td-success-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning{border-color:var(--td-warning-color);color:var(--td-warning-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:active{color:var(--td-warning-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning.t-is-loading{color:var(--td-warning-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:hover{border-color:var(--td-warning-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:active{border-color:var(--td-warning-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger{border-color:var(--td-error-color);color:var(--td-error-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:active{color:var(--td-error-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger.t-is-loading{color:var(--td-error-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:hover{border-color:var(--td-error-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:active{border-color:var(--td-error-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-is-loading:not(.t-button--variant-dashed.t-button--ghost){color:var(--td-text-color-primary)}.t-button--variant-dashed.t-is-loading:not(.t-button--variant-dashed.t-button--ghost).t-button--theme-primary{background-color:transparent;color:var(--td-brand-color)}.t-button--variant-dashed.t-is-loading:not(.t-button--variant-dashed.t-button--ghost).t-button--theme-success{background-color:transparent;color:var(--td-success-color)}.t-button--variant-dashed.t-is-loading:not(.t-button--variant-dashed.t-button--ghost).t-button--theme-warning{background-color:transparent;color:var(--td-warning-color)}.t-button--variant-dashed.t-is-loading:not(.t-button--variant-dashed.t-button--ghost).t-button--theme-danger{background-color:transparent;color:var(--td-error-color)}.t-button--variant-text{background-color:transparent;border-color:transparent;color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:var(--td-comp-size-m);padding-left:calc(var(--td-comp-paddingLR-l) - 1px);padding-right:calc(var(--td-comp-paddingLR-l) - 1px)}.t-button--variant-text .t-icon,.t-button--variant-text .t-loading{font-size:var(--td-font-size-body-large)}.t-button--variant-text:focus-visible,.t-button--variant-text:hover{color:var(--td-text-color-primary)}.t-button--variant-text.t-is-disabled,.t-button--variant-text.t-is-loading{color:var(--td-text-color-disabled)}.t-button--variant-text:focus-visible,.t-button--variant-text:hover{background-color:var(--td-bg-color-container-hover)}.t-button--variant-text.t-is-disabled,.t-button--variant-text.t-is-loading{background-color:transparent}.t-button--variant-text:focus-visible,.t-button--variant-text:hover{border-color:var(--td-bg-color-container-hover)}.t-button--variant-text.t-is-disabled,.t-button--variant-text.t-is-loading{border-color:transparent}.t-button--variant-text.t-button--theme-primary{color:var(--td-brand-color)}.t-button--variant-text.t-button--theme-primary:focus-visible,.t-button--variant-text.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-text.t-button--theme-primary.t-is-disabled,.t-button--variant-text.t-button--theme-primary.t-is-loading{color:var(--td-brand-color-disabled)}.t-button--variant-text.t-button--theme-success{color:var(--td-success-color)}.t-button--variant-text.t-button--theme-success:focus-visible,.t-button--variant-text.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-text.t-button--theme-success.t-is-disabled,.t-button--variant-text.t-button--theme-success.t-is-loading{color:var(--td-success-color-disabled)}.t-button--variant-text.t-button--theme-warning{color:var(--td-warning-color)}.t-button--variant-text.t-button--theme-warning:focus-visible,.t-button--variant-text.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-text.t-button--theme-warning.t-is-disabled,.t-button--variant-text.t-button--theme-warning.t-is-loading{color:var(--td-warning-color-disabled)}.t-button--variant-text.t-button--theme-danger{color:var(--td-error-color)}.t-button--variant-text.t-button--theme-danger:focus-visible,.t-button--variant-text.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-text.t-button--theme-danger.t-is-disabled,.t-button--variant-text.t-button--theme-danger.t-is-loading{color:var(--td-error-color-disabled)}.t-button--variant-text.t-button--ghost{background:none;color:var(--td-text-color-anti)}.t-button--variant-text.t-button--ghost:focus-visible,.t-button--variant-text.t-button--ghost:hover{color:var(--td-brand-color-hover)}.t-button--variant-text.t-button--ghost:active{color:var(--td-brand-color-active)}.t-button--variant-text.t-button--ghost.t-is-loading{color:var(--td-text-color-anti)}.t-button--variant-text.t-button--ghost.t-is-disabled{background-color:transparent;color:hsla(0,0%,100%,.22)}.t-button--variant-text.t-button--ghost.t-button--theme-primary{color:var(--td-brand-color)}.t-button--variant-text.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-text.t-button--ghost.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-text.t-button--ghost.t-button--theme-primary:active{color:var(--td-brand-color-active)}.t-button--variant-text.t-button--ghost.t-button--theme-primary.t-is-loading{color:var(--td-brand-color)}.t-button--variant-text.t-button--ghost.t-button--theme-primary.t-is-disabled{background-color:transparent;color:hsla(0,0%,100%,.22)}.t-button--variant-text.t-button--ghost.t-button--theme-success{color:var(--td-success-color)}.t-button--variant-text.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-text.t-button--ghost.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-text.t-button--ghost.t-button--theme-success:active{color:var(--td-success-color-active)}.t-button--variant-text.t-button--ghost.t-button--theme-success.t-is-loading{color:var(--td-success-color)}.t-button--variant-text.t-button--ghost.t-button--theme-success.t-is-disabled{background-color:transparent;color:hsla(0,0%,100%,.22)}.t-button--variant-text.t-button--ghost.t-button--theme-warning{color:var(--td-warning-color)}.t-button--variant-text.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-text.t-button--ghost.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-text.t-button--ghost.t-button--theme-warning:active{color:var(--td-warning-color-active)}.t-button--variant-text.t-button--ghost.t-button--theme-warning.t-is-loading{color:var(--td-warning-color)}.t-button--variant-text.t-button--ghost.t-button--theme-warning.t-is-disabled{background-color:transparent;color:hsla(0,0%,100%,.22)}.t-button--variant-text.t-button--ghost.t-button--theme-danger{color:var(--td-error-color)}.t-button--variant-text.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-text.t-button--ghost.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-text.t-button--ghost.t-button--theme-danger:active{color:var(--td-error-color-active)}.t-button--variant-text.t-button--ghost.t-button--theme-danger.t-is-loading{color:var(--td-error-color)}.t-button--variant-text.t-button--ghost.t-button--theme-danger.t-is-disabled{background-color:transparent;color:hsla(0,0%,100%,.22)}.t-button--variant-text.t-is-loading:not(.t-button--variant-text.t-button--ghost){color:var(--td-text-color-primary)}.t-button--variant-text.t-is-loading:not(.t-button--variant-text.t-button--ghost).t-button--theme-primary{color:var(--td-brand-color)}.t-button--variant-text.t-is-loading:not(.t-button--variant-text.t-button--ghost).t-button--theme-success{color:var(--td-success-color)}.t-button--variant-text.t-is-loading:not(.t-button--variant-text.t-button--ghost).t-button--theme-warning{color:var(--td-warning-color)}.t-button--variant-text.t-is-loading:not(.t-button--variant-text.t-button--ghost).t-button--theme-danger{color:var(--td-error-color)}.t-button.t-is-disabled,.t-button.t-is-loading{cursor:not-allowed}.t-button.t-size-s{font:var(--td-font-body-small);height:var(--td-comp-size-xs);padding-left:calc(var(--td-comp-paddingLR-s) - 1px);padding-right:calc(var(--td-comp-paddingLR-s) - 1px)}.t-button.t-size-s .t-icon,.t-button.t-size-s .t-loading{font-size:var(--td-font-size-body-medium)}.t-button.t-size-l{font:var(--td-font-body-large);height:var(--td-comp-size-xl);padding-left:calc(var(--td-comp-paddingLR-xl) - 1px);padding-right:calc(var(--td-comp-paddingLR-xl) - 1px)}.t-button.t-size-l .t-icon,.t-button.t-size-l .t-loading{font-size:var(--td-font-size-title-large)}.t-button--shape-square{padding:0;width:var(--td-comp-size-m)}.t-button--shape-square.t-size-s{padding:0;width:var(--td-comp-size-xs)}.t-button--shape-square.t-size-l{padding:0;width:var(--td-comp-size-xl)}.t-button--shape-round{border-radius:var(--td-radius-round)}.t-button--shape-round.t-size-s{border-radius:calc(var(--td-comp-size-xs)/2)}.t-button--shape-round.t-size-l{border-radius:calc(var(--td-comp-size-xl)/2)}.t-button--shape-circle{border-radius:calc(var(--td-comp-size-m)/2);padding:0;text-align:center;width:var(--td-comp-size-m)}.t-button--shape-circle .t-icon,.t-button--shape-circle .t-loading{font-size:var(--td-font-size-body-large)}.t-button--shape-circle.t-size-s{border-radius:calc(var(--td-comp-size-xs)/2);width:var(--td-comp-size-xs)}.t-button--shape-circle.t-size-l{border-radius:calc(var(--td-comp-size-xl)/2);padding:0;width:var(--td-comp-size-xl)}.t-button.t-size-full-width{display:flex;width:100%}.t-button--ghost{--ripple-color:var(--td-gray-color-10)}.t-button:not(.t-is-disabled):not(.t-button--ghost){--ripple-color:var(--td-bg-color-container-active)}.t-button--variant-base:not(.t-is-disabled):not(.t-button--ghost){--ripple-color:var(--td-bg-color-component-active)}.t-button--variant-base.t-button--theme-primary:not(.t-is-disabled):not(.t-button--ghost){--ripple-color:var(--td-brand-color-active)}.t-button--variant-base.t-button--theme-success:not(.t-is-disabled):not(.t-button--ghost){--ripple-color:var(--td-success-color-active)}.t-button--variant-base.t-button--theme-warning:not(.t-is-disabled):not(.t-button--ghost){--ripple-color:var(--td-warning-color-active)}.t-button--variant-base.t-button--theme-danger:not(.t-is-disabled):not(.t-button--ghost){--ripple-color:var(--td-error-color-active)}.t-icon{display:inline-block;height:1em;vertical-align:middle;width:1em}.t-icon:before{font-family:unset}.t-icon{fill:currentColor}.t-icon.t-size-s,i.t-size-s{font-size:14px}.t-icon.t-size-m,i.t-size-m{font-size:16px}.t-icon.t-size-l,i.t-size-l{font-size:18px}.t-link{align-items:center;cursor:pointer;display:inline-flex;font:var(--td-font-link-medium);outline:none;padding:0;position:relative;text-decoration:none;transition:all .2s linear}.t-link .t-link__prefix-icon{display:flex;margin-right:var(--td-comp-margin-s)}.t-link .t-link__suffix-icon{display:flex;margin-left:var(--td-comp-margin-s)}.t-link.t-size-s{font:var(--td-font-link-small)}.t-link.t-size-s .t-link__prefix-icon{display:flex;margin-right:var(--td-comp-margin-xs)}.t-link.t-size-s .t-link__suffix-icon{display:flex;margin-left:var(--td-comp-margin-xs)}.t-link.t-size-l{font:var(--td-font-link-large)}.t-link.t-size-l .t-link__prefix-icon{display:flex;margin-right:var(--td-comp-margin-m)}.t-link.t-size-l .t-link__suffix-icon{display:flex;margin-left:var(--td-comp-margin-m)}.t-link--theme-default{color:var(--td-text-color-primary)}.t-link--theme-default:active{color:var(--td-brand-color-active)}.t-link--theme-default.t-link--hover-underline:after{border-bottom:1px solid var(--td-text-color-primary);bottom:0;content:"";height:0;left:0;opacity:0;position:absolute;right:0;transition:all .2s linear}.t-link--theme-default.t-link--hover-underline:hover:after{opacity:1}.t-link--theme-default.t-link--hover-underline:active:after{border-color:var(--td-brand-color-active);opacity:1}.t-link--theme-default.t-link--hover-color:hover{color:var(--td-brand-color-hover)}.t-link--theme-default.t-link--hover-color.t-is-underline:hover:after{border-color:var(--td-brand-color-hover)}.t-link--theme-default.t-link--hover-color.t-is-underline:active:after{border-color:var(--td-brand-color-active)}.t-link--theme-default.t-link--hover-color:active{color:var(--td-brand-color-active)}.t-link--theme-default.t-is-underline:after{border-bottom:1px solid var(--td-text-color-primary);bottom:0;content:"";height:0;left:0;opacity:1;position:absolute;right:0;transition:all .2s linear}.t-link--theme-default.t-is-disabled{color:var(--td-text-color-disabled);cursor:not-allowed}.t-link--theme-default.t-is-disabled:active,.t-link--theme-default.t-is-disabled:hover{color:var(--td-text-color-disabled)}.t-link--theme-default.t-is-disabled.t-is-underline:after{border-color:var(--td-text-color-disabled)}.t-link--theme-primary{color:var(--td-brand-color)}.t-link--theme-primary:active{color:var(--td-brand-color-active)}.t-link--theme-primary.t-link--hover-underline:after{border-bottom:1px solid var(--td-brand-color);bottom:0;content:"";height:0;left:0;opacity:0;position:absolute;right:0;transition:all .2s linear}.t-link--theme-primary.t-link--hover-underline:hover:after{opacity:1}.t-link--theme-primary.t-link--hover-underline:active:after{border-color:var(--td-brand-color-active);opacity:1}.t-link--theme-primary.t-link--hover-color:hover{color:var(--td-brand-color-hover)}.t-link--theme-primary.t-link--hover-color.t-is-underline:hover:after{border-color:var(--td-brand-color-hover)}.t-link--theme-primary.t-link--hover-color.t-is-underline:active:after{border-color:var(--td-brand-color-active)}.t-link--theme-primary.t-link--hover-color:active{color:var(--td-brand-color-active)}.t-link--theme-primary.t-is-underline:after{border-bottom:1px solid var(--td-brand-color);bottom:0;content:"";height:0;left:0;opacity:1;position:absolute;right:0;transition:all .2s linear}.t-link--theme-primary.t-is-disabled{color:var(--td-brand-color-disabled);cursor:not-allowed}.t-link--theme-primary.t-is-disabled:active,.t-link--theme-primary.t-is-disabled:hover{color:var(--td-brand-color-disabled)}.t-link--theme-primary.t-is-disabled.t-is-underline:after{border-color:var(--td-brand-color-disabled)}.t-link--theme-success{color:var(--td-success-color)}.t-link--theme-success:active{color:var(--td-success-color-active)}.t-link--theme-success.t-link--hover-underline:after{border-bottom:1px solid var(--td-success-color);bottom:0;content:"";height:0;left:0;opacity:0;position:absolute;right:0;transition:all .2s linear}.t-link--theme-success.t-link--hover-underline:hover:after{opacity:1}.t-link--theme-success.t-link--hover-underline:active:after{border-color:var(--td-success-color-active);opacity:1}.t-link--theme-success.t-link--hover-color:hover{color:var(--td-success-color-hover)}.t-link--theme-success.t-link--hover-color.t-is-underline:hover:after{border-color:var(--td-success-color-hover)}.t-link--theme-success.t-link--hover-color.t-is-underline:active:after{border-color:var(--td-success-color-active)}.t-link--theme-success.t-link--hover-color:active{color:var(--td-success-color-active)}.t-link--theme-success.t-is-underline:after{border-bottom:1px solid var(--td-success-color);bottom:0;content:"";height:0;left:0;opacity:1;position:absolute;right:0;transition:all .2s linear}.t-link--theme-success.t-is-disabled{cursor:not-allowed}.t-link--theme-success.t-is-disabled,.t-link--theme-success.t-is-disabled:active,.t-link--theme-success.t-is-disabled:hover{color:var(--td-success-color-disabled)}.t-link--theme-success.t-is-disabled.t-is-underline:after{border-color:var(--td-success-color-disabled)}.t-link--theme-danger{color:var(--td-error-color)}.t-link--theme-danger:active{color:var(--td-error-color-active)}.t-link--theme-danger.t-link--hover-underline:after{border-bottom:1px solid var(--td-error-color);bottom:0;content:"";height:0;left:0;opacity:0;position:absolute;right:0;transition:all .2s linear}.t-link--theme-danger.t-link--hover-underline:hover:after{opacity:1}.t-link--theme-danger.t-link--hover-underline:active:after{border-color:var(--td-error-color-active);opacity:1}.t-link--theme-danger.t-link--hover-color:hover{color:var(--td-error-color-hover)}.t-link--theme-danger.t-link--hover-color.t-is-underline:hover:after{border-color:var(--td-error-color-hover)}.t-link--theme-danger.t-link--hover-color.t-is-underline:active:after{border-color:var(--td-error-color-active)}.t-link--theme-danger.t-link--hover-color:active{color:var(--td-error-color-active)}.t-link--theme-danger.t-is-underline:after{border-bottom:1px solid var(--td-error-color);bottom:0;content:"";height:0;left:0;opacity:1;position:absolute;right:0;transition:all .2s linear}.t-link--theme-danger.t-is-disabled{cursor:not-allowed}.t-link--theme-danger.t-is-disabled,.t-link--theme-danger.t-is-disabled:active,.t-link--theme-danger.t-is-disabled:hover{color:var(--td-error-color-disabled)}.t-link--theme-danger.t-is-disabled.t-is-underline:after{border-color:var(--td-error-color-disabled)}.t-link--theme-warning{color:var(--td-warning-color)}.t-link--theme-warning:active{color:var(--td-warning-color-active)}.t-link--theme-warning.t-link--hover-underline:after{border-bottom:1px solid var(--td-warning-color);bottom:0;content:"";height:0;left:0;opacity:0;position:absolute;right:0;transition:all .2s linear}.t-link--theme-warning.t-link--hover-underline:hover:after{opacity:1}.t-link--theme-warning.t-link--hover-underline:active:after{border-color:var(--td-warning-color-active);opacity:1}.t-link--theme-warning.t-link--hover-color:hover{color:var(--td-warning-color-hover)}.t-link--theme-warning.t-link--hover-color.t-is-underline:hover:after{border-color:var(--td-warning-color-hover)}.t-link--theme-warning.t-link--hover-color.t-is-underline:active:after{border-color:var(--td-warning-color-active)}.t-link--theme-warning.t-link--hover-color:active{color:var(--td-warning-color-active)}.t-link--theme-warning.t-is-underline:after{border-bottom:1px solid var(--td-warning-color);bottom:0;content:"";height:0;left:0;opacity:1;position:absolute;right:0;transition:all .2s linear}.t-link--theme-warning.t-is-disabled{cursor:not-allowed}.t-link--theme-warning.t-is-disabled,.t-link--theme-warning.t-is-disabled:active,.t-link--theme-warning.t-is-disabled:hover{color:var(--td-warning-color-disabled)}.t-link--theme-warning.t-is-disabled.t-is-underline:after{border-color:var(--td-warning-color-disabled)}.t-row{box-sizing:border-box;color:var(--td-text-color-primary);display:flex;flex-flow:row wrap;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-row--start{justify-content:flex-start}.t-row--center{justify-content:center}.t-row--end{justify-content:flex-end}.t-row--space-between{justify-content:space-between}.t-row--space-around{justify-content:space-around}.t-row--top{align-items:flex-start}.t-row--middle{align-items:center}.t-row--bottom{align-items:flex-end}.t-row--align-start,.t-row--align-top{align-items:flex-start}.t-row--align-center,.t-row--align-middle{align-items:center}.t-row--align-bottom,.t-row--align-end{align-items:flex-end}.t-row--align-stretch{align-items:stretch}.t-row--align-baseline{align-items:baseline}.t-col{box-sizing:border-box;max-width:100%;min-height:1px;position:relative}.t-col-12{display:block;flex:0 0 100%;max-width:100%}.t-col-push-12{left:100%}.t-col-pull-12{right:100%}.t-col-offset-12{margin-left:100%}.t-col-order-12{order:12}.t-col-11{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.t-col-push-11{left:91.66666667%}.t-col-pull-11{right:91.66666667%}.t-col-offset-11{margin-left:91.66666667%}.t-col-order-11{order:11}.t-col-10{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.t-col-push-10{left:83.33333333%}.t-col-pull-10{right:83.33333333%}.t-col-offset-10{margin-left:83.33333333%}.t-col-order-10{order:10}.t-col-9{display:block;flex:0 0 75%;max-width:75%}.t-col-push-9{left:75%}.t-col-pull-9{right:75%}.t-col-offset-9{margin-left:75%}.t-col-order-9{order:9}.t-col-8{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.t-col-push-8{left:66.66666667%}.t-col-pull-8{right:66.66666667%}.t-col-offset-8{margin-left:66.66666667%}.t-col-order-8{order:8}.t-col-7{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.t-col-push-7{left:58.33333333%}.t-col-pull-7{right:58.33333333%}.t-col-offset-7{margin-left:58.33333333%}.t-col-order-7{order:7}.t-col-6{display:block;flex:0 0 50%;max-width:50%}.t-col-push-6{left:50%}.t-col-pull-6{right:50%}.t-col-offset-6{margin-left:50%}.t-col-order-6{order:6}.t-col-5{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.t-col-push-5{left:41.66666667%}.t-col-pull-5{right:41.66666667%}.t-col-offset-5{margin-left:41.66666667%}.t-col-order-5{order:5}.t-col-4{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.t-col-push-4{left:33.33333333%}.t-col-pull-4{right:33.33333333%}.t-col-offset-4{margin-left:33.33333333%}.t-col-order-4{order:4}.t-col-3{display:block;flex:0 0 25%;max-width:25%}.t-col-push-3{left:25%}.t-col-pull-3{right:25%}.t-col-offset-3{margin-left:25%}.t-col-order-3{order:3}.t-col-2{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.t-col-push-2{left:16.66666667%}.t-col-pull-2{right:16.66666667%}.t-col-offset-2{margin-left:16.66666667%}.t-col-order-2{order:2}.t-col-1{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.t-col-push-1{left:8.33333333%}.t-col-pull-1{right:8.33333333%}.t-col-offset-1{margin-left:8.33333333%}.t-col-order-1{order:1}.t-col-0{display:none}.t-col-offset-0{margin-left:0}.t-col-order-0{order:0}.t-col-xs-12{display:block;flex:0 0 100%;max-width:100%}.t-col-xs-push-12{left:100%}.t-col-xs-pull-12{right:100%}.t-col-xs-offset-12{margin-left:100%}.t-col-xs-order-12{order:12}.t-col-xs-11{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.t-col-xs-push-11{left:91.66666667%}.t-col-xs-pull-11{right:91.66666667%}.t-col-xs-offset-11{margin-left:91.66666667%}.t-col-xs-order-11{order:11}.t-col-xs-10{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.t-col-xs-push-10{left:83.33333333%}.t-col-xs-pull-10{right:83.33333333%}.t-col-xs-offset-10{margin-left:83.33333333%}.t-col-xs-order-10{order:10}.t-col-xs-9{display:block;flex:0 0 75%;max-width:75%}.t-col-xs-push-9{left:75%}.t-col-xs-pull-9{right:75%}.t-col-xs-offset-9{margin-left:75%}.t-col-xs-order-9{order:9}.t-col-xs-8{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.t-col-xs-push-8{left:66.66666667%}.t-col-xs-pull-8{right:66.66666667%}.t-col-xs-offset-8{margin-left:66.66666667%}.t-col-xs-order-8{order:8}.t-col-xs-7{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.t-col-xs-push-7{left:58.33333333%}.t-col-xs-pull-7{right:58.33333333%}.t-col-xs-offset-7{margin-left:58.33333333%}.t-col-xs-order-7{order:7}.t-col-xs-6{display:block;flex:0 0 50%;max-width:50%}.t-col-xs-push-6{left:50%}.t-col-xs-pull-6{right:50%}.t-col-xs-offset-6{margin-left:50%}.t-col-xs-order-6{order:6}.t-col-xs-5{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.t-col-xs-push-5{left:41.66666667%}.t-col-xs-pull-5{right:41.66666667%}.t-col-xs-offset-5{margin-left:41.66666667%}.t-col-xs-order-5{order:5}.t-col-xs-4{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.t-col-xs-push-4{left:33.33333333%}.t-col-xs-pull-4{right:33.33333333%}.t-col-xs-offset-4{margin-left:33.33333333%}.t-col-xs-order-4{order:4}.t-col-xs-3{display:block;flex:0 0 25%;max-width:25%}.t-col-xs-push-3{left:25%}.t-col-xs-pull-3{right:25%}.t-col-xs-offset-3{margin-left:25%}.t-col-xs-order-3{order:3}.t-col-xs-2{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.t-col-xs-push-2{left:16.66666667%}.t-col-xs-pull-2{right:16.66666667%}.t-col-xs-offset-2{margin-left:16.66666667%}.t-col-xs-order-2{order:2}.t-col-xs-1{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.t-col-xs-push-1{left:8.33333333%}.t-col-xs-pull-1{right:8.33333333%}.t-col-xs-offset-1{margin-left:8.33333333%}.t-col-xs-order-1{order:1}.t-col-xs-0{display:none}.t-col-push-0{left:auto}.t-col-pull-0{right:auto}.t-col-xs-push-0{left:auto}.t-col-xs-pull-0{right:auto}.t-col-xs-offset-0{margin-left:0}.t-col-xs-order-0{order:0}@media (min-width:768px){.t-col-sm-12{display:block;flex:0 0 100%;max-width:100%}.t-col-sm-push-12{left:100%}.t-col-sm-pull-12{right:100%}.t-col-sm-offset-12{margin-left:100%}.t-col-sm-order-12{order:12}.t-col-sm-11{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.t-col-sm-push-11{left:91.66666667%}.t-col-sm-pull-11{right:91.66666667%}.t-col-sm-offset-11{margin-left:91.66666667%}.t-col-sm-order-11{order:11}.t-col-sm-10{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.t-col-sm-push-10{left:83.33333333%}.t-col-sm-pull-10{right:83.33333333%}.t-col-sm-offset-10{margin-left:83.33333333%}.t-col-sm-order-10{order:10}.t-col-sm-9{display:block;flex:0 0 75%;max-width:75%}.t-col-sm-push-9{left:75%}.t-col-sm-pull-9{right:75%}.t-col-sm-offset-9{margin-left:75%}.t-col-sm-order-9{order:9}.t-col-sm-8{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.t-col-sm-push-8{left:66.66666667%}.t-col-sm-pull-8{right:66.66666667%}.t-col-sm-offset-8{margin-left:66.66666667%}.t-col-sm-order-8{order:8}.t-col-sm-7{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.t-col-sm-push-7{left:58.33333333%}.t-col-sm-pull-7{right:58.33333333%}.t-col-sm-offset-7{margin-left:58.33333333%}.t-col-sm-order-7{order:7}.t-col-sm-6{display:block;flex:0 0 50%;max-width:50%}.t-col-sm-push-6{left:50%}.t-col-sm-pull-6{right:50%}.t-col-sm-offset-6{margin-left:50%}.t-col-sm-order-6{order:6}.t-col-sm-5{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.t-col-sm-push-5{left:41.66666667%}.t-col-sm-pull-5{right:41.66666667%}.t-col-sm-offset-5{margin-left:41.66666667%}.t-col-sm-order-5{order:5}.t-col-sm-4{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.t-col-sm-push-4{left:33.33333333%}.t-col-sm-pull-4{right:33.33333333%}.t-col-sm-offset-4{margin-left:33.33333333%}.t-col-sm-order-4{order:4}.t-col-sm-3{display:block;flex:0 0 25%;max-width:25%}.t-col-sm-push-3{left:25%}.t-col-sm-pull-3{right:25%}.t-col-sm-offset-3{margin-left:25%}.t-col-sm-order-3{order:3}.t-col-sm-2{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.t-col-sm-push-2{left:16.66666667%}.t-col-sm-pull-2{right:16.66666667%}.t-col-sm-offset-2{margin-left:16.66666667%}.t-col-sm-order-2{order:2}.t-col-sm-1{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.t-col-sm-push-1{left:8.33333333%}.t-col-sm-pull-1{right:8.33333333%}.t-col-sm-offset-1{margin-left:8.33333333%}.t-col-sm-order-1{order:1}.t-col-sm-0{display:none}.t-col-push-0{left:auto}.t-col-pull-0{right:auto}.t-col-sm-push-0{left:auto}.t-col-sm-pull-0{right:auto}.t-col-sm-offset-0{margin-left:0}.t-col-sm-order-0{order:0}}@media (min-width:992px){.t-col-md-12{display:block;flex:0 0 100%;max-width:100%}.t-col-md-push-12{left:100%}.t-col-md-pull-12{right:100%}.t-col-md-offset-12{margin-left:100%}.t-col-md-order-12{order:12}.t-col-md-11{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.t-col-md-push-11{left:91.66666667%}.t-col-md-pull-11{right:91.66666667%}.t-col-md-offset-11{margin-left:91.66666667%}.t-col-md-order-11{order:11}.t-col-md-10{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.t-col-md-push-10{left:83.33333333%}.t-col-md-pull-10{right:83.33333333%}.t-col-md-offset-10{margin-left:83.33333333%}.t-col-md-order-10{order:10}.t-col-md-9{display:block;flex:0 0 75%;max-width:75%}.t-col-md-push-9{left:75%}.t-col-md-pull-9{right:75%}.t-col-md-offset-9{margin-left:75%}.t-col-md-order-9{order:9}.t-col-md-8{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.t-col-md-push-8{left:66.66666667%}.t-col-md-pull-8{right:66.66666667%}.t-col-md-offset-8{margin-left:66.66666667%}.t-col-md-order-8{order:8}.t-col-md-7{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.t-col-md-push-7{left:58.33333333%}.t-col-md-pull-7{right:58.33333333%}.t-col-md-offset-7{margin-left:58.33333333%}.t-col-md-order-7{order:7}.t-col-md-6{display:block;flex:0 0 50%;max-width:50%}.t-col-md-push-6{left:50%}.t-col-md-pull-6{right:50%}.t-col-md-offset-6{margin-left:50%}.t-col-md-order-6{order:6}.t-col-md-5{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.t-col-md-push-5{left:41.66666667%}.t-col-md-pull-5{right:41.66666667%}.t-col-md-offset-5{margin-left:41.66666667%}.t-col-md-order-5{order:5}.t-col-md-4{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.t-col-md-push-4{left:33.33333333%}.t-col-md-pull-4{right:33.33333333%}.t-col-md-offset-4{margin-left:33.33333333%}.t-col-md-order-4{order:4}.t-col-md-3{display:block;flex:0 0 25%;max-width:25%}.t-col-md-push-3{left:25%}.t-col-md-pull-3{right:25%}.t-col-md-offset-3{margin-left:25%}.t-col-md-order-3{order:3}.t-col-md-2{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.t-col-md-push-2{left:16.66666667%}.t-col-md-pull-2{right:16.66666667%}.t-col-md-offset-2{margin-left:16.66666667%}.t-col-md-order-2{order:2}.t-col-md-1{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.t-col-md-push-1{left:8.33333333%}.t-col-md-pull-1{right:8.33333333%}.t-col-md-offset-1{margin-left:8.33333333%}.t-col-md-order-1{order:1}.t-col-md-0{display:none}.t-col-push-0{left:auto}.t-col-pull-0{right:auto}.t-col-md-push-0{left:auto}.t-col-md-pull-0{right:auto}.t-col-md-offset-0{margin-left:0}.t-col-md-order-0{order:0}}@media (min-width:1200px){.t-col-lg-12{display:block;flex:0 0 100%;max-width:100%}.t-col-lg-push-12{left:100%}.t-col-lg-pull-12{right:100%}.t-col-lg-offset-12{margin-left:100%}.t-col-lg-order-12{order:12}.t-col-lg-11{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.t-col-lg-push-11{left:91.66666667%}.t-col-lg-pull-11{right:91.66666667%}.t-col-lg-offset-11{margin-left:91.66666667%}.t-col-lg-order-11{order:11}.t-col-lg-10{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.t-col-lg-push-10{left:83.33333333%}.t-col-lg-pull-10{right:83.33333333%}.t-col-lg-offset-10{margin-left:83.33333333%}.t-col-lg-order-10{order:10}.t-col-lg-9{display:block;flex:0 0 75%;max-width:75%}.t-col-lg-push-9{left:75%}.t-col-lg-pull-9{right:75%}.t-col-lg-offset-9{margin-left:75%}.t-col-lg-order-9{order:9}.t-col-lg-8{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.t-col-lg-push-8{left:66.66666667%}.t-col-lg-pull-8{right:66.66666667%}.t-col-lg-offset-8{margin-left:66.66666667%}.t-col-lg-order-8{order:8}.t-col-lg-7{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.t-col-lg-push-7{left:58.33333333%}.t-col-lg-pull-7{right:58.33333333%}.t-col-lg-offset-7{margin-left:58.33333333%}.t-col-lg-order-7{order:7}.t-col-lg-6{display:block;flex:0 0 50%;max-width:50%}.t-col-lg-push-6{left:50%}.t-col-lg-pull-6{right:50%}.t-col-lg-offset-6{margin-left:50%}.t-col-lg-order-6{order:6}.t-col-lg-5{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.t-col-lg-push-5{left:41.66666667%}.t-col-lg-pull-5{right:41.66666667%}.t-col-lg-offset-5{margin-left:41.66666667%}.t-col-lg-order-5{order:5}.t-col-lg-4{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.t-col-lg-push-4{left:33.33333333%}.t-col-lg-pull-4{right:33.33333333%}.t-col-lg-offset-4{margin-left:33.33333333%}.t-col-lg-order-4{order:4}.t-col-lg-3{display:block;flex:0 0 25%;max-width:25%}.t-col-lg-push-3{left:25%}.t-col-lg-pull-3{right:25%}.t-col-lg-offset-3{margin-left:25%}.t-col-lg-order-3{order:3}.t-col-lg-2{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.t-col-lg-push-2{left:16.66666667%}.t-col-lg-pull-2{right:16.66666667%}.t-col-lg-offset-2{margin-left:16.66666667%}.t-col-lg-order-2{order:2}.t-col-lg-1{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.t-col-lg-push-1{left:8.33333333%}.t-col-lg-pull-1{right:8.33333333%}.t-col-lg-offset-1{margin-left:8.33333333%}.t-col-lg-order-1{order:1}.t-col-lg-0{display:none}.t-col-push-0{left:auto}.t-col-pull-0{right:auto}.t-col-lg-push-0{left:auto}.t-col-lg-pull-0{right:auto}.t-col-lg-offset-0{margin-left:0}.t-col-lg-order-0{order:0}}@media (min-width:1400px){.t-col-xl-12{display:block;flex:0 0 100%;max-width:100%}.t-col-xl-push-12{left:100%}.t-col-xl-pull-12{right:100%}.t-col-xl-offset-12{margin-left:100%}.t-col-xl-order-12{order:12}.t-col-xl-11{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.t-col-xl-push-11{left:91.66666667%}.t-col-xl-pull-11{right:91.66666667%}.t-col-xl-offset-11{margin-left:91.66666667%}.t-col-xl-order-11{order:11}.t-col-xl-10{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.t-col-xl-push-10{left:83.33333333%}.t-col-xl-pull-10{right:83.33333333%}.t-col-xl-offset-10{margin-left:83.33333333%}.t-col-xl-order-10{order:10}.t-col-xl-9{display:block;flex:0 0 75%;max-width:75%}.t-col-xl-push-9{left:75%}.t-col-xl-pull-9{right:75%}.t-col-xl-offset-9{margin-left:75%}.t-col-xl-order-9{order:9}.t-col-xl-8{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.t-col-xl-push-8{left:66.66666667%}.t-col-xl-pull-8{right:66.66666667%}.t-col-xl-offset-8{margin-left:66.66666667%}.t-col-xl-order-8{order:8}.t-col-xl-7{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.t-col-xl-push-7{left:58.33333333%}.t-col-xl-pull-7{right:58.33333333%}.t-col-xl-offset-7{margin-left:58.33333333%}.t-col-xl-order-7{order:7}.t-col-xl-6{display:block;flex:0 0 50%;max-width:50%}.t-col-xl-push-6{left:50%}.t-col-xl-pull-6{right:50%}.t-col-xl-offset-6{margin-left:50%}.t-col-xl-order-6{order:6}.t-col-xl-5{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.t-col-xl-push-5{left:41.66666667%}.t-col-xl-pull-5{right:41.66666667%}.t-col-xl-offset-5{margin-left:41.66666667%}.t-col-xl-order-5{order:5}.t-col-xl-4{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.t-col-xl-push-4{left:33.33333333%}.t-col-xl-pull-4{right:33.33333333%}.t-col-xl-offset-4{margin-left:33.33333333%}.t-col-xl-order-4{order:4}.t-col-xl-3{display:block;flex:0 0 25%;max-width:25%}.t-col-xl-push-3{left:25%}.t-col-xl-pull-3{right:25%}.t-col-xl-offset-3{margin-left:25%}.t-col-xl-order-3{order:3}.t-col-xl-2{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.t-col-xl-push-2{left:16.66666667%}.t-col-xl-pull-2{right:16.66666667%}.t-col-xl-offset-2{margin-left:16.66666667%}.t-col-xl-order-2{order:2}.t-col-xl-1{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.t-col-xl-push-1{left:8.33333333%}.t-col-xl-pull-1{right:8.33333333%}.t-col-xl-offset-1{margin-left:8.33333333%}.t-col-xl-order-1{order:1}.t-col-xl-0{display:none}.t-col-push-0{left:auto}.t-col-pull-0{right:auto}.t-col-xl-push-0{left:auto}.t-col-xl-pull-0{right:auto}.t-col-xl-offset-0{margin-left:0}.t-col-xl-order-0{order:0}}@media (min-width:1880px){.t-col-xxl-12{display:block;flex:0 0 100%;max-width:100%}.t-col-xxl-push-12{left:100%}.t-col-xxl-pull-12{right:100%}.t-col-xxl-offset-12{margin-left:100%}.t-col-xxl-order-12{order:12}.t-col-xxl-11{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.t-col-xxl-push-11{left:91.66666667%}.t-col-xxl-pull-11{right:91.66666667%}.t-col-xxl-offset-11{margin-left:91.66666667%}.t-col-xxl-order-11{order:11}.t-col-xxl-10{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.t-col-xxl-push-10{left:83.33333333%}.t-col-xxl-pull-10{right:83.33333333%}.t-col-xxl-offset-10{margin-left:83.33333333%}.t-col-xxl-order-10{order:10}.t-col-xxl-9{display:block;flex:0 0 75%;max-width:75%}.t-col-xxl-push-9{left:75%}.t-col-xxl-pull-9{right:75%}.t-col-xxl-offset-9{margin-left:75%}.t-col-xxl-order-9{order:9}.t-col-xxl-8{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.t-col-xxl-push-8{left:66.66666667%}.t-col-xxl-pull-8{right:66.66666667%}.t-col-xxl-offset-8{margin-left:66.66666667%}.t-col-xxl-order-8{order:8}.t-col-xxl-7{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.t-col-xxl-push-7{left:58.33333333%}.t-col-xxl-pull-7{right:58.33333333%}.t-col-xxl-offset-7{margin-left:58.33333333%}.t-col-xxl-order-7{order:7}.t-col-xxl-6{display:block;flex:0 0 50%;max-width:50%}.t-col-xxl-push-6{left:50%}.t-col-xxl-pull-6{right:50%}.t-col-xxl-offset-6{margin-left:50%}.t-col-xxl-order-6{order:6}.t-col-xxl-5{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.t-col-xxl-push-5{left:41.66666667%}.t-col-xxl-pull-5{right:41.66666667%}.t-col-xxl-offset-5{margin-left:41.66666667%}.t-col-xxl-order-5{order:5}.t-col-xxl-4{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.t-col-xxl-push-4{left:33.33333333%}.t-col-xxl-pull-4{right:33.33333333%}.t-col-xxl-offset-4{margin-left:33.33333333%}.t-col-xxl-order-4{order:4}.t-col-xxl-3{display:block;flex:0 0 25%;max-width:25%}.t-col-xxl-push-3{left:25%}.t-col-xxl-pull-3{right:25%}.t-col-xxl-offset-3{margin-left:25%}.t-col-xxl-order-3{order:3}.t-col-xxl-2{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.t-col-xxl-push-2{left:16.66666667%}.t-col-xxl-pull-2{right:16.66666667%}.t-col-xxl-offset-2{margin-left:16.66666667%}.t-col-xxl-order-2{order:2}.t-col-xxl-1{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.t-col-xxl-push-1{left:8.33333333%}.t-col-xxl-pull-1{right:8.33333333%}.t-col-xxl-offset-1{margin-left:8.33333333%}.t-col-xxl-order-1{order:1}.t-col-xxl-0{display:none}.t-col-push-0{left:auto}.t-col-pull-0{right:auto}.t-col-xxl-push-0{left:auto}.t-col-xxl-pull-0{right:auto}.t-col-xxl-offset-0{margin-left:0}.t-col-xxl-order-0{order:0}}.t-layout{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-layout,.t-layout__direction-vertical{background:var(--td-bg-color-page);display:flex;flex:auto;flex-direction:column}.t-layout--with-sider,.t-layout__direction-horizontal{flex-direction:row}.t-layout__header{background-color:var(--td-bg-color-container);height:var(--td-comp-size-xxxl)}.t-layout__content{flex:auto}.t-layout__sider{background:var(--td-bg-color-container);position:relative;transition:all .2s;width:232px}.t-layout__footer{color:var(--td-text-color-placeholder);padding:24px}.t-divider{border-top:1px solid var(--td-border-level-1-color);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;margin:var(--td-comp-margin-xxl) 0;padding:0}.t-divider--dashed{border-top-style:dashed}.t-divider--horizontal{display:flex;width:100%}.t-divider--vertical{border-left:1px solid var(--td-border-level-1-color);border-top:0;display:inline-block;height:.9em;margin:0 var(--td-comp-margin-m);vertical-align:middle}.t-divider--with-text{align-items:center;border-top:0;display:flex;white-space:nowrap}.t-divider--with-text .t-divider__inner-text:not(:empty){display:inline-block;padding:0 1em}.t-divider--with-text:after,.t-divider--with-text:before{border-top:1px solid var(--td-border-level-1-color);content:"";width:50%}.t-divider--with-text-left:before{width:5%}.t-divider--with-text-left:after,.t-divider--with-text-right:before{width:95%}.t-divider--with-text-right:after{width:5%}.t-divider--dashed:after,.t-divider--dashed:before{border-top:1px dashed var(--td-border-level-1-color)}.t-divider--vertical.t-divider--dashed{border-left:1px dashed var(--td-border-level-1-color)}.t-space{display:inline-flex}.t-space .t-space-item{width:inherit}.t-space-align-start{align-items:flex-start}.t-space-align-end{align-items:flex-end}.t-space-align-baseline{align-items:baseline}.t-space-align-center{align-items:center}.t-space-vertical{flex-direction:column}.t-space-vertical>.t-space-item-separator{width:100%}.t-space.t-space--break-line{flex-wrap:wrap}.t-space.t-space--polyfill{display:flex}.t-space.t-space--polyfill.t-space--break-line,.t-space.t-space--polyfill.t-space-horizontal{margin-left:calc(var(--td-space-column-gap, 0)*-1)}.t-space.t-space--polyfill.t-space--break-line,.t-space.t-space--polyfill.t-space-vertical{margin-top:calc(var(--td-space-row-gap, 0)*-1)}.t-space.t-space--polyfill.t-space--break-line>*,.t-space.t-space--polyfill.t-space-horizontal>*{margin-left:var(--td-space-column-gap)}.t-space.t-space--polyfill.t-space--break-line>*,.t-space.t-space--polyfill.t-space-vertical>*{margin-top:var(--td-space-row-gap)}.t-descriptions{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-descriptions__header{color:var(--td-text-color-primary);font:var(--td-font-title-medium);font-weight:600;margin-bottom:var(--td-comp-margin-m)}.t-descriptions__body{border-collapse:collapse;font:var(--td-font-body-medium);width:100%}.t-descriptions__body.t-size-l>tbody>tr>td{padding:var(--td-comp-paddingTB-l)}.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{box-sizing:border-box;color:var(--td-text-color-primary);display:grid;font:var(--td-font-body-medium);gap:2px;list-style:none;margin:0;padding:0}.t-dropdown__submenu--disabled{visibility:hidden}.t-dropdown__submenu .t-dropdown__item-direction{margin:0 0 0 var(--td-comp-margin-s)}.t-dropdown__submenu-wrapper--right{left:calc(100% - 6px)}.t-dropdown__submenu-wrapper--left{right:calc(100% - 6px)}.t-dropdown__item{--ripple-color:var(--td-bg-color-container-active);align-items:center;border-radius:var(--td-radius-default);box-sizing:border-box;color:var(--td-text-color-primary);cursor:pointer;display:flex;font:var(--td-font-body-medium);list-style:none;margin:0;outline:none;padding:0;padding:calc(var(--td-comp-paddingTB-xs) - 1px) var(--td-comp-paddingLR-s);transition:background-color .2s cubic-bezier(.82,0,1,.9);user-select:none;white-space:nowrap}.t-dropdown__item-icon{color:currentcolor;display:flex;font-size:var(--td-font-size-body-large);margin-right:var(--td-comp-margin-s)}.t-dropdown__item:hover>div>div{display:flex}.t-dropdown__item--disabled{cursor:not-allowed}.t-dropdown__item-content{align-items:center;display:flex;flex:1;justify-content:space-between;max-width:100%}.t-dropdown__item-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-dropdown__item.t-dropdown__item--suffix .t-dropdown__item-sub-icon{color:currentcolor;flex-shrink:0;font-size:var(--td-font-size-body-large)}.t-dropdown__item--theme-default{color:var(--td-text-color-primary)}.t-dropdown__item--theme-default:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-default:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-default.t-dropdown__item--active{background-color:var(--td-brand-color-light);color:var(--td-brand-color)}.t-dropdown__item--theme-default.t-dropdown__item--active:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-default.t-dropdown__item--active:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-default.t-dropdown__item--disabled{color:var(--td-text-color-disabled)}.t-dropdown__item--theme-default.t-dropdown__item--disabled:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-default.t-dropdown__item--suffix:hover{background-color:var(--td-brand-color-light);color:var(--td-brand-color)}.t-dropdown__item--theme-success{color:var(--td-success-color)}.t-dropdown__item--theme-success:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-success:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-success.t-dropdown__item--active{background-color:var(--td-success-color-light)}.t-dropdown__item--theme-success.t-dropdown__item--active:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-success.t-dropdown__item--active:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-success.t-dropdown__item-disabled{color:var(--td-text-color-disabled)}.t-dropdown__item--theme-success.t-dropdown__item-disabled:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-success.t-dropdown__item--suffix:hover{background-color:var(--td-success-color-light)}.t-dropdown__item--theme-error{color:var(--td-error-color)}.t-dropdown__item--theme-error:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-error:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-error.t-dropdown__item--active{background-color:var(--td-error-color-light)}.t-dropdown__item--theme-error.t-dropdown__item--active:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-error.t-dropdown__item--active:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-error.t-dropdown__item--disabled{color:var(--td-text-color-disabled)}.t-dropdown__item--theme-error.t-dropdown__item--disabled:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-error.t-dropdown__item--suffix:hover{background-color:var(--td-error-color-light)}.t-dropdown__item--theme-warning{color:var(--td-warning-color)}.t-dropdown__item--theme-warning:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-warning:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-warning.t-dropdown__item--active{background-color:var(--td-warning-color-light)}.t-dropdown__item--theme-warning.t-dropdown__item--active:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-warning.t-dropdown__item--active:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-warning.t-dropdown__item--disabled{color:var(--td-text-color-disabled)}.t-dropdown__item--theme-warning.t-dropdown__item--disabled:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-warning.t-dropdown__item--suffix:hover{background-color:var(--td-warning-color-light)}.t-tabs{background-color:var(--td-bg-color-container);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;overflow:hidden;padding:0}.t-tabs__header.t-is-left{float:left}.t-tabs__header.t-is-right{float:right}.t-tabs__header .t-icon{font-size:var(--td-font-size-body-large)}.t-tabs__nav{overflow:hidden;position:relative;user-select:none}.t-tabs__operations{background-color:var(--td-bg-color-container);border-bottom:1px solid var(--td-component-stroke);display:flex;flex-direction:row;position:absolute}.t-tabs__operations--left{left:0;z-index:2}.t-tabs__operations--right{right:0;z-index:2}.t-tabs__operations--right .t-tabs__btn:first-child{box-shadow:-10px 0 20px 5px rgba(0,0,0,.05)}.t-tabs__operations--right .t-tabs__nav-action{align-items:center;display:flex;flex:1;width:100%}.t-tabs__btn{align-items:center;background-color:var(--td-bg-color-secondarycontainer);border-left:1px solid var(--td-component-stroke);color:var(--td-text-color-secondary);cursor:pointer;display:flex;font:var(--td-font-body-large);height:100%;justify-content:center;opacity:1;transition:all .24s cubic-bezier(.38,0,.24,1);width:40px;z-index:1}.t-tabs__btn:hover{background-color:var(--td-bg-color-secondarycontainer-hover)}.t-tabs__btn.t-size-m{height:var(--td-comp-size-xxl);line-height:var(--td-comp-size-xxl)}.t-tabs__btn.t-size-l{height:var(--td-comp-size-xxxxl);line-height:var(--td-comp-size-xxxxl)}.t-tabs__btn--left{border-right:1px solid var(--td-component-stroke);box-shadow:10px 0 20px 5px rgba(0,0,0,.05)}.t-tabs__btn--left.fade-enter,.t-tabs__btn--left.fade-enter-from,.t-tabs__btn--left.fade-leave-to{transform:translateX(-50px)}.t-tabs__btn--right.fade-enter,.t-tabs__btn--right.fade-enter-from,.t-tabs__btn--right.fade-leave-to{transform:translateX(50px)}.t-tabs__nav-container{position:relative}.t-tabs__nav-container.t-is-top:after{bottom:0;top:auto}.t-tabs__nav-container.t-is-bottom:after,.t-tabs__nav-container.t-is-top:after{background-color:var(--td-component-stroke);content:"";height:1px;left:0;position:absolute;right:auto;width:100%}.t-tabs__nav-container.t-is-bottom:after{bottom:auto;top:0}.t-tabs__nav-container.t-is-left:after{left:auto;right:0}.t-tabs__nav-container.t-is-left:after,.t-tabs__nav-container.t-is-right:after{background-color:var(--td-component-stroke);bottom:auto;content:"";height:100%;position:absolute;top:0;width:1px}.t-tabs__nav-container.t-is-right:after{left:0;right:auto}.t-tabs__nav-container.t-is-addable{margin-right:40px}.t-tabs__nav-container.t-tabs__nav--card:after{background-color:transparent;content:""}.t-tabs__scroll-btn{background-color:var(--td-bg-color-secondarycontainer);border-bottom:1px solid var(--td-component-stroke);color:var(--td-text-color-secondary);cursor:pointer;display:block;font:var(--td-font-body-large);height:100%;position:absolute;text-align:center;width:40px;z-index:1}.t-tabs__scroll-btn.t-size-m{height:var(--td-comp-size-xxl);line-height:var(--td-comp-size-xxl)}.t-tabs__scroll-btn.t-size-l{height:var(--td-comp-size-xxxxl);line-height:var(--td-comp-size-xxxxl)}.t-tabs__nav-scroll{align-self:stretch;display:inline-block;display:flex;flex:auto;overflow:hidden;position:relative;transform:translate(0);white-space:nowrap;z-index:1}.t-tabs__nav-wrap{display:flex;font-size:0;position:relative}.t-tabs__nav-wrap.t-is-smooth{transition:transform .24s cubic-bezier(0,0,.15,1)}.t-tabs__nav-wrap.t-is-vertical{flex-direction:column}.t-tabs__bar{background-color:var(--td-brand-color);border-radius:var(--td-radius-small);position:absolute;transition:all .24s cubic-bezier(.38,0,.24,1);z-index:1}.t-tabs__bar.t-is-top{bottom:0;height:3px;left:0}.t-tabs__bar.t-is-bottom{height:3px;left:0;top:0}.t-tabs__bar.t-is-left{right:0;top:0;width:3px}.t-tabs__bar.t-is-right{left:0;top:0;width:3px}.t-tabs__nav-item{color:var(--td-text-color-secondary);cursor:pointer;display:inline-flex;flex-shrink:0;font:var(--td-font-body-medium);overflow:hidden;position:relative;z-index:0}.t-tabs__nav-item,.t-tabs__nav-item-wrapper{--ripple-color:var(--td-bg-color-container-active);align-items:center;transition:background-color .2s cubic-bezier(.38,0,.24,1)}.t-tabs__nav-item-wrapper{border-radius:var(--td-radius-default);display:flex;height:var(--td-comp-size-m);margin-left:var(--td-comp-margin-s);margin-right:var(--td-comp-margin-s);padding:0 var(--td-comp-paddingLR-s)}.t-tabs__nav-item.t-size-l{font:var(--td-font-body-large)}.t-tabs__nav-item.t-size-l .t-tabs__nav-item-wrapper{height:var(--td-comp-size-xxl);padding:0 var(--td-comp-paddingLR-m)}.t-tabs__nav-item-text-wrapper{align-items:center;display:flex;position:relative}.t-tabs__nav-item:not(.t-is-disabled):not(.t-is-active):hover .t-tabs__nav-item-wrapper{background-color:var(--td-bg-color-container-hover)}.t-tabs__nav-item.t-is-left,.t-tabs__nav-item.t-is-right{align-items:center;display:flex}.t-tabs__nav-item.t-size-m{height:var(--td-comp-size-xxl);line-height:var(--td-comp-size-xxl)}.t-tabs__nav-item.t-size-l{height:var(--td-comp-size-xxxxl);line-height:var(--td-comp-size-xxxxl)}.t-tabs__nav-item.t-is-active{color:var(--td-brand-color);text-shadow:0 0 .3px currentcolor}.t-tabs__nav-item.t-is-disabled{color:var(--td-text-color-disabled);cursor:not-allowed}.t-tabs__nav-item>.remove-btn{margin-left:var(--td-comp-margin-s);transition:all .3s cubic-bezier(.645,.045,.355,1)}.t-tabs__nav--card{background-color:var(--td-bg-color-secondarycontainer)}.t-tabs__nav--card.t-tabs__nav-item{border-bottom:1px solid var(--td-component-stroke);padding-left:var(--td-comp-paddingLR-l);padding-right:var(--td-comp-paddingLR-l)}.t-tabs__nav--card.t-tabs__nav-item:after{display:none}.t-tabs__nav--card.t-tabs__nav-item:not(.t-is-disabled):not(.t-is-active):hover{background-color:var(--td-bg-color-secondarycontainer-hover)}.t-tabs__nav--card.t-tabs__nav-item:not(:first-of-type){border-left:1px solid var(--td-component-stroke)}.t-tabs__nav--card.t-tabs__nav-item:last-of-type{border-right:1px solid var(--td-component-stroke)}.t-tabs__nav--card.t-tabs__nav-item.t-is-active{background-color:var(--td-bg-color-container);border-bottom-color:var(--td-bg-color-container);color:var(--td-brand-color)}.t-tabs__nav--card.t-tabs__nav-item.t-size-l{padding-left:var(--td-comp-paddingLR-xl);padding-right:var(--td-comp-paddingLR-xl)}.t-tabs__nav--card .t-icon-close{color:var(--td-text-color-secondary);transition:color .2s cubic-bezier(.38,0,.24,1)}.t-tabs__nav--card .t-icon-close:hover{color:var(--td-text-color-primary)}.t-tabs__content{overflow:hidden;position:relative}.t-tab-panel.t-is-hidden{display:none}a.t-menu__item{color:unset;text-decoration:none}a.t-menu__item:active,a.t-menu__item:hover{color:inherit}.t-menu__logo>*{margin-left:var(--td-comp-margin-xxl)}.t-head-menu{background-color:var(--td-bg-color-container);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative;width:100%}.t-head-menu__inner{display:flex;height:var(--td-comp-size-xxxl)}.t-head-menu__inner li+li{margin-left:var(--td-comp-margin-s)}.t-head-menu__inner .t-menu:first-child{margin-left:var(--td-comp-margin-xxl)}.t-head-menu .t-menu__logo:not(:empty){height:100%;margin-right:var(--td-comp-margin-xxxl)}.t-head-menu .t-menu{align-items:center;display:flex;flex:1}.t-head-menu .t-menu__operations:not(:empty){align-items:center;display:flex;height:var(--td-comp-size-xxxl);line-height:64px;margin-right:var(--td-comp-margin-s);overflow:hidden;position:relative;text-align:right}.t-head-menu .t-menu__operations-icon{box-sizing:border-box;height:var(--td-comp-size-m);line-height:var(--td-comp-size-m);padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s);width:var(--td-comp-size-m)}.t-head-menu .t-submenu>.t-menu__item{overflow:unset}.t-head-menu .t-submenu>.t-menu__item:before{bottom:-20px;content:"";display:block;height:20px;left:0;position:absolute;right:0}.t-head-menu .t-menu__item{gap:var(--td-comp-margin-m);height:var(--td-comp-size-m);justify-content:center;line-height:var(--td-comp-size-m);padding:0 var(--td-comp-paddingLR-l);transition:all .28s cubic-bezier(.645,.045,.355,1)}.t-head-menu__submenu{border-top:1px solid var(--td-component-stroke);padding-left:0}.t-default-menu{background:var(--td-bg-color-container);box-sizing:border-box;color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative;transition:width .28s cubic-bezier(.645,.045,.355,1);white-space:nowrap;width:232px}.t-default-menu .t-menu__item{color:var(--td-text-color-secondary)}.t-default-menu.t-is-collapsed{width:64px}.t-default-menu.t-is-collapsed .t-menu__logo>*{margin-left:var(--td-comp-margin-l)}.t-default-menu.t-is-collapsed .t-menu .t-menu__item{justify-content:center;padding:0 14px}.t-default-menu.t-is-collapsed .t-menu .t-menu__item .t-menu__item-link{bottom:0;content:"";left:0;margin-left:0;opacity:0;position:absolute;right:0;top:0}.t-default-menu.t-is-collapsed .t-fake-arrow{display:none}.t-default-menu.t-is-collapsed .t-menu__item{text-overflow:clip}.t-default-menu.t-is-collapsed .t-menu__item.t-is-active.t-is-opened{background-color:var(--td-brand-color-light);color:var(--td-brand-color)}.t-default-menu.t-is-collapsed .t-menu__item.t-is-active.t-is-opened .t-icon{color:var(--td-brand-color)}.t-default-menu.t-is-collapsed .t-menu__item.t-menu__item--plain:after{content:""}.t-default-menu.t-is-collapsed .t-menu__item span{display:none}.t-default-menu.t-is-collapsed .t-menu__item .t-icon{margin-right:0}.t-default-menu.t-is-collapsed .t-submenu-icon{display:none}.t-default-menu.t-is-collapsed .t-submenu>.t-menu__item{min-width:auto}.t-default-menu.t-is-collapsed .t-submenu>.t-menu__item:after{bottom:0;content:"";display:block;position:absolute;right:-20px;top:0;width:20px}.t-default-menu.t-is-collapsed .t-menu-group:first-child .t-menu-group__title{display:none}.t-default-menu.t-is-collapsed .t-menu-group:first-child .t-menu-group__title+*{margin-top:0}.t-default-menu.t-is-collapsed .t-menu-group__title{font-size:0;padding:0}.t-default-menu.t-is-collapsed .t-menu-group__title:after{background:var(--td-component-stroke);content:"";display:block;height:1px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:20px}.t-default-menu.t-is-collapsed .t-menu__operations{text-align:center}.t-default-menu.t-is-collapsed .t-menu__operations-icon{display:block}.t-default-menu.t-is-collapsed .t-menu__log>*{margin:0 auto}.t-default-menu__inner{display:flex;flex-direction:column;height:100%}.t-default-menu__inner .t-menu__logo:not(:empty){border-bottom:1px solid var(--td-component-stroke);box-sizing:border-box;height:var(--td-comp-size-xxxl);width:100%}.t-default-menu__inner .t-menu{flex:1;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-s);position:relative}.t-default-menu__inner .t-menu--scroll{overflow-x:hidden;overflow-y:auto}@-moz-document url-prefix(){.t-default-menu__inner .t-menu--scroll{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-default-menu__inner .t-menu--scroll::-webkit-scrollbar{height:6px;width:6px}.t-default-menu__inner .t-menu--scroll::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-default-menu__inner .t-menu--scroll::-webkit-scrollbar-thumb:horizontal:hover,.t-default-menu__inner .t-menu--scroll::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-default-menu__inner .t-menu .t-menu-group>:not(:first-child),.t-default-menu__inner .t-menu .t-menu__sub>:not(:first-child),.t-default-menu__inner .t-menu .t-submenu>:not(:first-child),.t-default-menu__inner .t-menu>:not(.t-menu-group):not(:first-child){margin-top:var(--td-comp-margin-xs)}.t-default-menu__inner .t-menu-group__title{box-sizing:border-box;color:var(--td-text-color-placeholder);font-size:var(--td-font-body-small);padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l) var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-l);position:relative}.t-default-menu .t-submenu{position:relative}.t-default-menu .t-menu__operations:not(:empty){border-top:1px solid var(--td-component-stroke);box-sizing:border-box;left:0;padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-l);position:relative;text-align:left;top:0;width:100%}.t-default-menu .t-menu__operations-icon{box-sizing:border-box;color:var(--td-text-color-primary);cursor:pointer;height:32px;padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s);width:32px}.t-default-menu .t-menu__item.t-is-opened{background-color:unset;color:var(--td-text-color-primary)}.t-default-menu .t-menu__item.t-is-opened .t-icon{color:var(--td-text-color-primary)}.t-default-menu .t-menu__sub{overflow:hidden;padding:0}.t-default-menu .t-menu__sub .t-menu__item{padding-left:var(--padding-left,32px)}.t-default-menu .t-slide-down-enter-active .t-menu__sub{height:100%}.t-default-menu .t-menu__item{border-bottom:0;border-radius:var(--td-radius-default);box-sizing:border-box;height:var(--td-comp-size-l);line-height:var(--td-comp-size-l);padding:0 10px 0 16px;position:relative;text-align:left;transition:background-color .28s cubic-bezier(.38,0,.24,1),padding .28s cubic-bezier(.38,0,.24,1)}.t-default-menu .t-menu__item .t-icon{flex-shrink:0;height:20px;margin-right:var(--td-comp-margin-s);width:20px}.t-default-menu .t-menu__item .t-fake-arrow{margin-left:auto;min-width:16px}.t-default-menu .t-menu__item.t-is-active:not(.t-is-opened){background-color:var(--td-brand-color-light);color:var(--td-brand-color)}.t-default-menu .t-menu__item.t-is-active:not(.t-is-opened) .t-icon{color:var(--td-brand-color)}.t-default-menu .t-menu__item:hover:not(.t-is-active):not(.t-is-disabled){background:var(--td-bg-color-secondarycontainer-hover)}.t-default-menu.t-menu--dark{background:var(--td-gray-color-13)}.t-default-menu.t-menu--dark .t-menu__item{color:var(--td-font-white-2)}.t-default-menu.t-menu--dark .t-menu__logo:not(:empty){border-bottom-color:var(--td-gray-color-10)}.t-default-menu.t-menu--dark .t-menu__operations:not(:empty){border-top-color:var(--td-gray-color-10)}.t-default-menu.t-menu--dark .t-menu__item:hover:not(.t-is-active):not(.t-is-disabled){background-color:var(--td-gray-color-10)}.t-default-menu.t-menu--dark .t-menu__item.t-is-active:not(.t-is-opened){background-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-default-menu.t-menu--dark .t-menu__item.t-is-active:not(.t-is-opened) .t-icon{color:var(--td-text-color-anti)}.t-default-menu.t-menu--dark .t-menu__item.t-is-opened.t-is-active{background-color:transparent}.t-default-menu.t-menu--dark .t-menu-group__title{color:var(--td-font-white-3)}.t-default-menu.t-menu--dark.t-is-collapsed .t-menu-group__title:after{background-color:var(--td-gray-color-10)}.t-default-menu.t-menu--dark.t-is-collapsed .t-menu__item.t-is-active.t-is-opened{background-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-default-menu.t-menu--dark.t-is-collapsed .t-menu__item.t-is-active.t-is-opened .t-icon{color:var(--td-text-color-anti)}.t-menu{color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-menu--dark{color:var(--td-font-white-2)}.t-menu__logo:not(:empty){align-items:center;display:flex}.t-menu .t-submenu{position:relative}.t-menu .t-submenu.t-is-active>.t-menu__item,.t-menu .t-submenu.t-is-active>.t-menu__item .t-icon{color:var(--td-gray-color-13)}.t-menu .t-submenu .t-submenu-icon{height:16px;width:16px}.t-menu .t-submenu.t-is-opened .t-submenu-icon{transform:scaleY(-1)}.t-menu__spacer:before{content:"";display:block;position:absolute;z-index:1}.t-menu__spacer--left:before{bottom:0;left:-16px;top:0;width:16px}.t-menu__spacer--top:before{height:20px;left:0;right:0;top:-20px}.t-menu__item{--ripple-color:var(--td-bg-color-container-active);align-items:center;border-radius:var(--td-radius-default);color:var(--td-text-color-primary);cursor:pointer;display:flex;height:40px;line-height:40px;position:relative;text-align:center;text-overflow:ellipsis}.t-menu__item ::selection{background:transparent}.t-menu__item-spacer{overflow:unset}.t-menu__item-spacer:before{content:"";display:block;position:absolute;z-index:1}.t-menu__item-spacer--right:before{bottom:0;right:-16px;top:0;width:16px}.t-menu__item-spacer--bottom:before{bottom:-20px;height:20px;left:0;right:0}.t-menu__item a{color:unset;text-decoration:none}.t-menu__item a.t-menu__item-link{color:unset;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-menu__item a.t-menu__item-link:before{bottom:0;content:"";left:0;position:absolute;right:0;top:0}.t-menu__item.t-is-active{background-color:var(--td-brand-color-light)}.t-menu__item.t-is-active,.t-menu__item.t-is-opened{color:var(--td-brand-color)}.t-menu__item:hover:not(.t-is-active):not(.t-is-opened):not(.t-is-disabled){background-color:var(--td-bg-color-container-hover)}.t-menu__item.t-is-disabled{color:var(--td-text-color-disabled);cursor:not-allowed}.t-menu__content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-menu--dark.t-head-menu{background-color:var(--td-gray-color-13)}.t-menu--dark .t-menu__item{--ripple-color:var(--td-gray-color-11);color:var(--td-text-color-anti)}.t-menu--dark .t-menu__item.t-is-active{background-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-menu--dark .t-menu__item.t-is-opened,.t-menu--dark .t-menu__item.t-is-opened .t-icon{color:var(--td-text-color-anti)}.t-menu--dark .t-menu__item.t-is-disabled{color:var(--td-font-white-4)}.t-menu--dark .t-menu__item:hover:not(.t-is-active):not(.t-is-opened):not(.t-is-disabled){background-color:var(--td-gray-color-10)}.t-menu--dark .t-menu__popup{background:var(--td-gray-color-13);border:.5px solid var(--td-gray-color-10)}.t-menu--dark .t-menu__popup .t-menu__item{border-radius:var(--td-radius-default);color:var(--td-text-color-anti)}.t-menu--dark .t-menu__popup .t-menu__item.t-is-active{background-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-menu--dark .t-menu__popup .t-menu__item:hover:not(.t-is-active){background-color:var(--td-gray-color-10)}.t-menu--dark .t-head-menu__submenu{border-top:1px solid transparent}.t-menu--dark .t-menu__operations-icon{color:var(--td-bg-color-container)}.t-menu--dark .t-menu__operations-icon:hover{background-color:var(--td-brand-color)}.t-menu__popup{background:var(--td-bg-color-container);border-radius:var(--td-radius-medium);list-style:none;margin:0;opacity:0;overflow:hidden;padding:0;z-index:1000}.t-menu__popup.t-popup__content{position:absolute}.t-menu__popup-wrapper{height:100%;list-style:none;margin:0;padding:var(--td-pop-padding-m)}@-moz-document url-prefix(){.t-menu__popup-wrapper{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-menu__popup-wrapper::-webkit-scrollbar{height:8px;width:8px}.t-menu__popup-wrapper::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid transparent;border-radius:15px}.t-menu__popup-wrapper::-webkit-scrollbar-thumb:horizontal:hover,.t-menu__popup-wrapper::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-menu__popup .t-fake-arrow{margin-left:auto}.t-menu__popup .t-menu__item{padding-left:var(--td-comp-paddingLR-l);padding-right:var(--td-comp-paddingLR-l)}.t-menu__popup.t-is-vertical{min-width:var(--popup-width,160px)}.t-menu__popup.t-is-horizontal .t-menu__item{white-space:nowrap}.t-menu__popup.t-is-horizontal li+li{margin-top:var(--td-comp-margin-xs)}.t-menu__popup.t-is-opened{box-shadow:0 5px 5px -3px rgba(0,0,0,.1),0 8px 10px 1px rgba(0,0,0,.06),0 3px 14px 6px rgba(0,0,0,.05);opacity:1;overflow:visible}.t-menu__popup .t-menu__item{color:var(--td-text-color-primary);height:var(--td-comp-size-s);line-height:var(--td-comp-size-s)}.t-menu__popup .t-menu__item+.t-menu__item{margin-left:0}.t-menu__popup .t-menu__item:hover:not(.t-is-active){background-color:var(--td-bg-color-container-hover)}.t-menu__popup .t-is-disabled{color:var(--td-text-color-disabled)}.t-menu__operations-icon{border-radius:var(--td-radius-default);color:var(--td-text-color-primary);margin-right:var(--td-comp-margin-l);transition:background-color .24s cubic-bezier(.38,0,.24,1)}.t-menu__operations-icon:hover{background-color:var(--td-brand-color-light)}.t-opacity-transition{transition:opacity .28s cubic-bezier(.55,0,.1,1)}.horizontal-collapse-transition .t-submenu__title .t-submenu__icon-arrow{opacity:0;transition:.2s}.t-menu__popup{left:calc(100% - var(--td-pop-padding-m));top:0}.t-menu__popup .t-menu__item:not(:first-child),.t-menu__popup .t-submenu:not(:first-child){margin-top:var(--td-comp-margin-xxs)}.t-is-head-menu .t-menu__popup{margin-top:calc((var(--td-comp-size-xxxl) - var(--td-comp-size-m))/2)!important}.t-menu-is-nested .t-menu__popup{margin-top:calc(0px - var(--td-pop-padding-m))!important}.input-readonly.t-is-readonly{background-color:var(--td-bg-color-specialcomponent);color:var(--td-text-color-primary)}.input-readonly.t-is-readonly .t-input__inner{cursor:pointer}.input-disabled.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled)}.input-disabled.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.input-disabled.t-is-disabled .t-input__inner{color:var(--td-text-color-disabled);cursor:not-allowed;text-overflow:clip}.input-disabled.t-is-disabled .t-input__inner::placeholder{color:var(--td-text-color-disabled)}.input-disabled.t-is-disabled>.t-input__prefix .t-icon,.input-disabled.t-is-disabled>.t-input__prefix .t-icon:hover,.input-disabled.t-is-disabled>.t-input__suffix .t-icon,.input-disabled.t-is-disabled>.t-input__suffix .t-icon:hover{color:var(--td-text-color-disabled)}.t-tips{font-size:var(--td-font-size-body-small)}.t-tips.t-is-default{color:var(--td-text-color-placeholder)}.t-tips.t-is-error{color:var(--td-error-color)}.t-tips.t-is-warning{color:var(--td-warning-color)}.t-tips.t-is-success{color:var(--td-success-color)}.t-input{align-items:center;background-color:var(--td-bg-color-specialcomponent);border-color:var(--td-border-level-2-color);border-radius:var(--td-radius-default);border-style:solid;border-width:1px;box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);height:var(--td-comp-size-m);list-style:none;margin:0;outline:none;overflow:hidden;padding:0;padding:0 var(--td-comp-paddingLR-s);position:relative;transition:border .2s cubic-bezier(.38,0,.24,1),box-shadow .2s cubic-bezier(.38,0,.24,1),background-color .2s cubic-bezier(.38,0,.24,1);width:100%}.t-input:focus,.t-input:hover{border-color:var(--td-brand-color)}.t-input:focus{box-shadow:0 0 0 2px var(--td-brand-color-focus);z-index:1}.t-input--borderless:not(.t-input--focused){border-color:transparent;transition:border .2s cubic-bezier(.38,0,.24,1),box-shadow .2s cubic-bezier(.38,0,.24,1),background-color .2s cubic-bezier(.38,0,.24,1)}.t-input--borderless:not(.t-input--focused):hover{background-color:var(--td-bg-color-container-hover);border-color:var(--td-component-border);cursor:pointer}.t-input--borderless:not(.t-input--focused).t-is-disabled{background-color:var(--td-bg-color-component-disabled);border:none}.t-input--focused{border-color:var(--td-brand-color);box-shadow:0 0 0 2px var(--td-brand-color-focus);z-index:1}.t-input :focus-visible{outline:none}.t-input__inner{word-wrap:normal;background-color:transparent;border:none;box-sizing:border-box;color:var(--td-text-color-primary);flex:1;font:inherit;max-width:100%;min-width:0;outline:none;overflow:hidden;padding:0;text-overflow:ellipsis;white-space:nowrap}.t-input__inner::placeholder{color:var(--td-text-color-placeholder)}.t-input__inner:placeholder-shown{text-overflow:ellipsis;width:100%}.t-input__inner[type=password]::-ms-reveal{display:none}.t-input__inner[type=search]::-webkit-search-cancel-button,.t-input__inner[type=search]::-webkit-search-decoration,.t-input__inner[type=search]::-webkit-search-results-button,.t-input__inner[type=search]::-webkit-search-results-decoration{appearance:none}.t-input__inner.t-input--soft-hidden{width:0}.t-input__extra{color:var(--td-text-color-placeholder);font:var(--td-font-body-small)}.t-input__status{position:absolute;right:-24px;top:0}.t-input.t-input--suffix>span.t-input__clear{opacity:0;transition:border .2s cubic-bezier(.38,0,.24,1),box-shadow .2s cubic-bezier(.38,0,.24,1),background-color .2s cubic-bezier(.38,0,.24,1);visibility:hidden}.t-input.t-input--suffix:hover>span.t-input__clear{opacity:1;visibility:visible}.t-input.t-is-success{border-color:var(--td-success-color)}.t-input.t-is-success.t-input--focused,.t-input.t-is-success:focus{box-shadow:0 0 0 2px var(--td-success-color-focus)}.t-input.t-is-success>.t-input__extra{color:var(--td-success-color)}.t-input.t-is-warning{border-color:var(--td-warning-color)}.t-input.t-is-warning.t-input--focused,.t-input.t-is-warning:focus{box-shadow:0 0 0 2px var(--td-warning-color-focus)}.t-input.t-is-warning>.t-input__extra{color:var(--td-warning-color)}.t-input.t-is-error{border-color:var(--td-error-color)}.t-input.t-is-error.t-input--focused,.t-input.t-is-error:focus{box-shadow:0 0 0 2px var(--td-error-color-focus)}.t-input.t-is-error>.t-input__extra{color:var(--td-error-color)}.t-input.t-is-readonly{background-color:var(--td-bg-color-specialcomponent);color:var(--td-text-color-primary)}.t-input.t-is-readonly .t-input__inner{cursor:pointer}.t-input.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled)}.t-input.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.t-input.t-is-disabled .t-input__inner{color:var(--td-text-color-disabled);cursor:not-allowed;text-overflow:clip}.t-input.t-is-disabled .t-input__inner::placeholder{color:var(--td-text-color-disabled)}.t-input.t-is-disabled>.t-input__prefix .t-icon,.t-input.t-is-disabled>.t-input__prefix .t-icon:hover,.t-input.t-is-disabled>.t-input__suffix .t-icon,.t-input.t-is-disabled>.t-input__suffix .t-icon:hover{color:var(--td-text-color-disabled)}.t-input.t-input--prefix>.t-input__prefix{align-items:center;display:flex;height:100%;text-align:center;z-index:2}.t-input.t-input--prefix>.t-input__prefix-icon{font-size:var(--td-font-size-body-large)}.t-input.t-input--suffix>.t-input__suffix{align-items:center;display:flex;height:100%;text-align:center;z-index:2}.t-input.t-input--suffix>.t-input__suffix-icon{font-size:var(--td-font-size-body-large)}.t-input .t-input__suffix-clear{cursor:pointer}.t-input.t-size-l{font:var(--td-font-body-large);height:var(--td-comp-size-xl);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-m)}.t-input.t-size-s{font:var(--td-font-body-small);height:var(--td-comp-size-xs)}.t-input .t-input__prefix>.t-icon,.t-input .t-input__suffix>.t-icon{font-size:inherit}.t-input .t-input__prefix>.t-icon{color:var(--td-text-color-placeholder);font-size:16px}.t-input .t-input__prefix:not(:empty){margin-right:var(--td-comp-margin-s)}.t-input .t-input__suffix>.t-icon{color:var(--td-text-color-placeholder);transition:all .2s linear}.t-input .t-input__suffix>.t-icon:hover{color:var(--td-text-color-secondary);transition:all .2s linear}.t-input .t-input__suffix:not(:empty){margin-left:var(--td-comp-margin-s)}.t-input.t-is-focused .t-input__prefix>.t-icon,.t-input.t-is-focused .t-input__suffix .t-icon-calendar,.t-input.t-is-focused .t-input__suffix>.t-icon-time{color:var(--td-brand-color)}.t-input-group{align-items:stretch;display:inline-flex;position:relative}.t-input-group .t-input__wrap{border-radius:0}.t-input-group .t-input__wrap:first-child{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-input-group .t-input__wrap:last-child{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-input-group .t-button,.t-input-group .t-select{border-radius:0}.t-input-group .t-button:not(:first-child),.t-input-group .t-input__wrap:not(:first-child) .t-input,.t-input-group .t-select:not(:first-child){margin-left:-1px}.t-input-group .t-input__wrap:first-child .t-input{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-input-group .t-input__wrap:last-child .t-input{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-input-group .t-button:first-child,.t-input-group .t-select:first-child{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-input-group .t-button:last-child,.t-input-group .t-select:last-child{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-input-group--separate .t-input__wrap+.t-input__wrap{margin-left:var(--td-comp-margin-xxxl)}.t-input-group--separate .t-button,.t-input-group--separate .t-select{border-radius:var(--td-radius-default)}.t-input-group--separate .t-button:first-child,.t-input-group--separate .t-select:first-child{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-input-group--separate .t-button:last-child,.t-input-group--separate .t-select:last-child{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-input-group--separate .t-input__wrap .t-input,.t-input-group--separate .t-input__wrap .t-input:first-child,.t-input-group--separate .t-input__wrap .t-input:last-child{border-radius:var(--td-radius-default)}.t-input-group .t-button,.t-input-group .t-input__inner,.t-input-group .t-select{position:relative;z-index:0}.t-input-group .t-button:active,.t-input-group .t-button:focus,.t-input-group .t-button:hover,.t-input-group .t-input__inner:active,.t-input-group .t-input__inner:focus,.t-input-group .t-input__inner:hover,.t-input-group .t-select:active,.t-input-group .t-select:focus,.t-input-group .t-select:hover{z-index:1}.t-input__wrap{width:100%}.t-input__tips{font:var(--td-font-body-small);height:auto;min-height:var(--td-line-height-body-small);position:absolute}.t-input__tips--default{color:var(--td-text-color-placeholder)}.t-input__tips--success{color:var(--td-success-color)}.t-input__tips--warning{color:var(--td-warning-color)}.t-input__tips--error{color:var(--td-error-color)}.t-align-center>.t-input__inner{text-align:center}.t-align-right>.t-input__inner{text-align:right}.t-input__input-pre{display:block;position:absolute;visibility:hidden;white-space:pre}.t-input--auto-width{min-width:60px;width:fit-content}.t-input__limit-number{background:var(--td-bg-color-specialcomponent);color:var(--td-text-color-placeholder);font:var(--td-font-body-medium)}.t-input__limit-number.t-is-disabled{background:var(--td-bg-color-component-disabled)}.t-input-number{box-sizing:border-box;color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;padding:0 var(--td-comp-size-m);position:relative;user-select:none;width:144px}.t-input-number:not(.t-input-number--column)>.t-input-number__decrease+.t-input__wrap{margin-left:var(--td-comp-margin-xs)}.t-input-number input::-webkit-inner-spin-button,.t-input-number input::-webkit-outer-spin-button{appearance:none}.t-input-number input[type=number]{appearance:textfield}.t-input-number>.t-input__tips{left:0;position:absolute}.t-input-number input+.t-input__suffix{margin-left:var(--td-comp-paddingLR-s)}.t-input-number .t-input__prefix{margin-right:var(--td-comp-paddingLR-s)}.t-input-number .t-input{color:var(--td-text-color-primary)}.t-input-number.t-input-number--auto-width{width:auto}.t-input-number.t-input-number--auto-width.t-is-controls-right{min-width:auto;width:auto}.t-input-number.t-input-number--auto-width .t-input__inner{min-width:42px}.t-input-number .t-input-number__decrease,.t-input-number .t-input-number__increase{align-items:center;background-color:transparent;border:1px solid var(--td-border-level-2-color);border-radius:var(--td-radius-default);box-sizing:border-box;cursor:pointer;display:flex;height:var(--td-comp-size-m);justify-content:center;position:absolute;top:0;transition:all .2s cubic-bezier(.38,0,.24,1);width:var(--td-comp-size-m);z-index:1}.t-input-number .t-input-number__decrease:hover,.t-input-number .t-input-number__increase:hover{border-color:var(--td-brand-color);color:var(--td-brand-color)}.t-input-number .t-input-number__decrease:hover .t-icon,.t-input-number .t-input-number__increase:hover .t-icon{color:var(--td-brand-color)}.t-input-number .t-input-number__decrease:active,.t-input-number .t-input-number__increase:active{background-color:var(--td-bg-color-container-hover);color:var(--td-brand-color)}.t-input-number .t-input-number__decrease .t-icon,.t-input-number .t-input-number__increase .t-icon{color:var(--td-text-color-secondary);font-size:var(--td-font-size-body-large);position:relative;z-index:1}.t-input-number .t-input-number__decrease.t-is-disabled,.t-input-number .t-input-number__increase.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:no-drop}.t-input-number .t-input-number__decrease.t-is-disabled .t-icon,.t-input-number .t-input-number__increase.t-is-disabled .t-icon{color:var(--td-text-color-disabled)}.t-input-number .t-input-number__decrease.t-is-disabled:hover,.t-input-number .t-input-number__increase.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.t-input-number .t-input-number__decrease.t-is-disabled:hover .t-icon,.t-input-number .t-input-number__increase.t-is-disabled:hover .t-icon{color:var(--td-text-color-disabled)}.t-input-number .t-input-number__decrease.t-is-disabled::placeholder,.t-input-number .t-input-number__increase.t-is-disabled::placeholder{color:var(--td-text-color-disabled)}.t-input-number .t-input-number__decrease{left:0}.t-input-number .t-input-number__increase{right:-8px}.t-input-number.t-is-disabled .t-input{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:no-drop}.t-input-number.t-is-disabled .t-input:active,.t-input-number.t-is-disabled .t-input:focus,.t-input-number.t-is-disabled .t-input:hover{border-color:var(--td-border-level-2-color)}.t-input-number.t-is-disabled .t-input-number__decrease,.t-input-number.t-is-disabled .t-input-number__increase{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:no-drop}.t-input-number.t-is-disabled .t-input-number__decrease .t-icon,.t-input-number.t-is-disabled .t-input-number__increase .t-icon{color:var(--td-text-color-secondary)}.t-input-number.t-size-s{padding:0 var(--td-comp-size-xs);width:120px}.t-input-number.t-size-s .t-input{font-size:var(--td-font-size-body-small);height:var(--td-comp-size-xs);line-height:var(--td-comp-size-xs)}.t-input-number.t-size-s .t-input-number__decrease,.t-input-number.t-size-s .t-input-number__increase{font-size:var(--td-font-size-body-medium);height:var(--td-comp-size-xs);width:var(--td-comp-size-xs)}.t-input-number.t-size-l{padding:0 var(--td-comp-size-xl);width:168px}.t-input-number.t-size-l .t-input{height:var(--td-comp-size-xl);line-height:var(--td-comp-size-xl)}.t-input-number.t-size-l .t-input-number__decrease,.t-input-number.t-size-l .t-input-number__increase{font-size:18px;height:var(--td-comp-size-xl);width:var(--td-comp-size-xl)}.t-input-number.t-size-l.t-is-controls-right .t-input{height:var(--td-comp-size-xl);line-height:var(--td-comp-size-xl);padding-right:calc(var(--td-comp-size-xl) + var(--td-comp-paddingLR-s))}.t-input-number.t-size-l.t-is-controls-right .t-input-number__decrease,.t-input-number.t-size-l.t-is-controls-right .t-input-number__increase{font-size:var(--td-font-size-body-large);width:var(--td-comp-size-xl)}.t-input-number.t-size-l .t-input--prefix{font:var(--td-font-body-large);padding:0 var(--td-comp-paddingLR-m)}.t-input-number.t-input-number--normal{border-radius:var(--td-radius-default);padding:0}.t-input-number.t-input-number--normal.t-is-disabled{color:var(--td-text-color-disabled);cursor:no-drop}.t-input-number.t-input-number--normal.t-is-disabled:hover .t-input{border-color:var(--td-border-level-2-color)}.t-input-number.t-input-number--normal.t-is-disabled::placeholder{color:var(--td-text-color-disabled)}.t-input-number.t-input-number--normal.t-is-disabled .t-input:focus{box-shadow:none}.t-input-number.t-is-controls-right{padding:0;width:96px}.t-input-number.t-is-controls-right:hover .t-input-number__decrease,.t-input-number.t-is-controls-right:hover .t-input-number__increase{opacity:1;visibility:visible}.t-input-number.t-is-controls-right .t-input{border-radius:var(--td-radius-default);box-sizing:border-box;margin:0;padding-right:calc(var(--td-comp-size-m) + var(--td-comp-paddingLR-s));width:100%}.t-input-number.t-is-controls-right .t-input-number__decrease,.t-input-number.t-is-controls-right .t-input-number__increase{background:var(--td-bg-color-secondarycontainer);border:0;border-radius:0;height:calc(var(--td-comp-size-m)/2 - 2px);left:auto;opacity:0;right:1px;top:auto;visibility:hidden;width:var(--td-comp-size-m);z-index:2}.t-input-number.t-is-controls-right .t-input-number__decrease .t-icon,.t-input-number.t-is-controls-right .t-input-number__increase .t-icon{font-size:var(--td-font-size-body-small)}.t-input-number.t-is-controls-right .t-input-number__decrease:hover,.t-input-number.t-is-controls-right .t-input-number__increase:hover{background:var(--td-bg-color-component-hover)}.t-input-number.t-is-controls-right .t-input-number__decrease:hover .t-icon,.t-input-number.t-is-controls-right .t-input-number__increase:hover .t-icon{color:var(--td-text-color-primary)}.t-input-number.t-is-controls-right .t-input-number__decrease.t-is-disabled,.t-input-number.t-is-controls-right .t-input-number__increase.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:no-drop}.t-input-number.t-is-controls-right .t-input-number__decrease.t-is-disabled .t-icon,.t-input-number.t-is-controls-right .t-input-number__increase.t-is-disabled .t-icon{color:var(--td-text-color-disabled)}.t-input-number.t-is-controls-right .t-input-number__decrease.t-is-disabled:hover,.t-input-number.t-is-controls-right .t-input-number__increase.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.t-input-number.t-is-controls-right .t-input-number__decrease.t-is-disabled:hover .t-icon,.t-input-number.t-is-controls-right .t-input-number__increase.t-is-disabled:hover .t-icon{color:var(--td-text-color-disabled)}.t-input-number.t-is-controls-right .t-input-number__decrease.t-is-disabled::placeholder,.t-input-number.t-is-controls-right .t-input-number__increase.t-is-disabled::placeholder{color:var(--td-text-color-disabled)}.t-input-number.t-is-controls-right .t-input-number__increase{border-top-right-radius:calc(var(--td-radius-default) - 1px);top:1px}.t-input-number.t-is-controls-right .t-input-number__decrease{border-bottom-right-radius:calc(var(--td-radius-default) - 1px);top:calc(var(--td-comp-size-m)/2 + 1px)}.t-input-number.t-is-controls-right.t-size-l{width:120px}.t-input-number.t-is-controls-right.t-size-l .t-input-number__decrease,.t-input-number.t-is-controls-right.t-size-l .t-input-number__increase{height:calc(var(--td-comp-size-xl)/2 - 2px)}.t-input-number.t-is-controls-right.t-size-l .t-input-number__decrease{top:calc(var(--td-comp-size-xl)/2 + 1px)}.t-input-number.t-is-controls-right.t-size-s{width:88px}.t-input-number.t-is-controls-right.t-size-s .t-input-number__decrease,.t-input-number.t-is-controls-right.t-size-s .t-input-number__increase{height:calc(var(--td-comp-size-xs)/2 - 2px)}.t-input-number.t-is-controls-right.t-size-s .t-input-number__decrease{top:calc(var(--td-comp-size-xs)/2 + 1px)}.t-input-number--row .t-input__wrap{margin-right:var(--td-comp-margin-xs);width:auto}.t-input-number--row .t-input-number__increase{right:0}.t-tag{align-items:center;border:1px solid transparent;border-radius:var(--td-radius-default);box-sizing:border-box;color:var(--td-text-color-primary);color:var(--td-text-color-anti);display:inline-flex;flex-direction:row;font:var(--td-font-body-medium);font:var(--td-font-body-small);height:var(--td-comp-size-xs);list-style:none;margin:0;padding:0;padding:0 var(--td-comp-paddingLR-s);white-space:nowrap}.t-tag .t-icon{flex-shrink:0;height:calc(var(--td-font-size-body-medium) + 2px);margin-right:var(--td-comp-margin-xs);width:calc(var(--td-font-size-body-medium) + 2px)}.t-tag .t-tag__icon-close{cursor:pointer;font:var(--td-font-body-medium);margin-left:var(--td-comp-margin-s);margin-right:0;transition:color .2s cubic-bezier(.38,0,.24,1)}.t-tag--default{background-color:var(--td-bg-color-component);color:var(--td-text-color-primary)}.t-tag--default .t-tag__icon-close{color:var(--td-text-color-placeholder)}.t-tag--default .t-tag__icon-close:hover{color:var(--td-text-color-primary)}.t-tag--default:active{cursor:default}.t-tag--default.t-tag--disabled{background-color:var(--td-bg-color-component-disabled);border-color:var(--td-component-border);color:var(--td-text-color-disabled);cursor:not-allowed}.t-tag--default.t-tag--disabled:hover{cursor:not-allowed}.t-tag--default.t-tag--disabled .t-icon:hover{cursor:pointer}.t-tag--default.t-tag--outline{border-color:var(--td-component-border)}.t-tag--default.t-tag--light,.t-tag--default.t-tag--light-outline{background-color:var(--td-bg-color-secondarycontainer)}.t-tag--default.t-tag--light-outline{border-color:var(--td-component-border)}.t-tag--primary{background-color:var(--td-brand-color)}.t-tag--primary.t-tag--outline{border-color:var(--td-brand-color)}.t-tag--primary.t-tag--light,.t-tag--primary.t-tag--light-outline{background-color:var(--td-brand-color-light)}.t-tag--primary.t-tag--light-outline{border-color:var(--td-brand-color)}.t-tag--primary.t-tag--light,.t-tag--primary.t-tag--light-outline,.t-tag--primary.t-tag--outline{color:var(--td-brand-color)}.t-tag--primary.t-tag--light .t-tag__icon-close:hover,.t-tag--primary.t-tag--light-outline .t-tag__icon-close:hover,.t-tag--primary.t-tag--outline .t-tag__icon-close:hover{color:var(--td-brand-color-hover)}.t-tag--success{background-color:var(--td-success-color)}.t-tag--success.t-tag--outline{border-color:var(--td-success-color)}.t-tag--success.t-tag--light,.t-tag--success.t-tag--light-outline{background-color:var(--td-success-color-light)}.t-tag--success.t-tag--light-outline{border-color:var(--td-success-color)}.t-tag--success.t-tag--light,.t-tag--success.t-tag--light-outline,.t-tag--success.t-tag--outline{color:var(--td-success-color)}.t-tag--success.t-tag--light .t-tag__icon-close:hover,.t-tag--success.t-tag--light-outline .t-tag__icon-close:hover,.t-tag--success.t-tag--outline .t-tag__icon-close:hover{color:var(--td-success-color-hover)}.t-tag--warning{background-color:var(--td-warning-color)}.t-tag--warning.t-tag--outline{border-color:var(--td-warning-color)}.t-tag--warning.t-tag--light,.t-tag--warning.t-tag--light-outline{background-color:var(--td-warning-color-light)}.t-tag--warning.t-tag--light-outline{border-color:var(--td-warning-color)}.t-tag--warning.t-tag--light,.t-tag--warning.t-tag--light-outline,.t-tag--warning.t-tag--outline{color:var(--td-warning-color)}.t-tag--warning.t-tag--light .t-tag__icon-close:hover,.t-tag--warning.t-tag--light-outline .t-tag__icon-close:hover,.t-tag--warning.t-tag--outline .t-tag__icon-close:hover{color:var(--td-warning-color-hover)}.t-tag--danger{background-color:var(--td-error-color)}.t-tag--danger.t-tag--outline{border-color:var(--td-error-color)}.t-tag--danger.t-tag--light,.t-tag--danger.t-tag--light-outline{background-color:var(--td-error-color-light)}.t-tag--danger.t-tag--light-outline{border-color:var(--td-error-color)}.t-tag--danger .t-tag__icon-close{fill:var(--td-error-color)}.t-tag--danger .t-tag__icon-close:hover{fill:var(--td-error-color-hover)}.t-tag--danger.t-tag--light,.t-tag--danger.t-tag--light-outline,.t-tag--danger.t-tag--outline{color:var(--td-error-color)}.t-tag--danger.t-tag--light .t-tag__icon-close:hover,.t-tag--danger.t-tag--light-outline .t-tag__icon-close:hover,.t-tag--danger.t-tag--outline .t-tag__icon-close:hover{color:var(--td-error-color-hover)}.t-tag--dark.t-tag:not(.t-tag--default) .t-tag__icon-close{color:var(--td-font-white-2)}.t-tag--dark.t-tag:not(.t-tag--default) .t-tag__icon-close:hover{color:var(--td-font-white-1)}.t-tag.t-tag--outline{background:transparent}.t-tag.t-size-s{font:var(--td-font-body-small);height:var(--td-comp-size-xxs);padding:0 var(--td-comp-paddingLR-xs)}.t-tag.t-size-s .t-icon{font-size:var(--td-font-body-small)}.t-tag.t-size-l{height:var(--td-comp-size-m);padding:0 var(--td-comp-paddingLR-m)}.t-tag.t-size-l,.t-tag.t-size-l .t-icon{font:var(--td-font-body-medium)}.t-tag.t-tag--round{border-radius:var(--td-radius-extraLarge)}.t-tag.t-tag--mark{border-radius:0 var(--td-radius-extraLarge) var(--td-radius-extraLarge) 0}.t-tag.t-tag--ellipsis .t-tag--text{word-wrap:normal;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-tag.t-tag--check:not(.t-tag--disabled){cursor:pointer;transition:background-color .2s cubic-bezier(.38,0,.24,1)}.t-tag.t-tag--check:not(.t-tag--disabled).t-tag--default.t-tag--dark:not(.t-tag--checked):hover{background-color:var(--td-bg-color-component-hover)}.t-tag.t-tag--check:not(.t-tag--disabled).t-tag--primary.t-tag--dark.t-tag--checked:hover{background-color:var(--td-brand-color-hover)}.t-tag.t-tag--check:not(.t-tag--disabled).t-tag--default.t-tag--outline:not(.t-tag--checked):hover{color:var(--td-brand-color-hover)}.t-tag--check.t-tag--disabled.t-tag--primary.t-tag--dark{background-color:var(--td-brand-color-disabled);cursor:not-allowed}.t-tag--check.t-tag--disabled.t-tag--primary.t-tag--outline{background-color:var(--td-bg-color-component-disabled);border-color:var(--td-text-color-disabled);color:var(--td-text-color-disabled);cursor:not-allowed}.t-check-tag-group .t-tag:not(:last-child){margin-right:var(--td-comp-margin-s)}a .t-tag{cursor:pointer;transition:all .2s linear}a .t-tag:hover{background-color:var(--td-bg-color-component-hover);color:var(--td-brand-color)}a .t-tag:active{background-color:var(--td-bg-color-component-active);color:var(--td-brand-color-active)}@keyframes t-fade-in{0%{opacity:0}to{opacity:1}}@keyframes t-fade-out{0%{opacity:1}to{opacity:0}}@keyframes t-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.t-icon-loading{animation:t-spin 1s linear infinite}@keyframes t-zoom-out{0%{transform:scale(.2)}to{transform:scale(1)}}.t-tag-input{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-tag-input .t-tag{animation:t-fade-in .2s ease-in-out;margin:3px var(--td-comp-margin-xs) 3px 0;vertical-align:middle}.t-tag-input .t-tag-input__drag_wrapper+.t-tag-input__drag_wrapper{margin-left:var(--td-comp-margin-xs)}.t-tag-input .t-input{height:fit-content;min-height:var(--td-comp-size-m);overflow:hidden;padding:0 var(--td-comp-paddingLR-s) 0 var(--td-comp-margin-xs)}.t-tag-input .t-input .t-input__suffix-icon{right:var(--td-comp-margin-s)}.t-tag-input .t-input.t-size-s{min-height:var(--td-comp-size-xs);padding:0 var(--td-comp-paddingLR-s) 0 var(--td-comp-margin-xs)}.t-tag-input .t-input.t-size-s .t-tag{margin:1px var(--td-comp-margin-xs) 1px 0}.t-tag-input .t-input.t-size-l{min-height:var(--td-comp-size-xl);padding:0 var(--td-comp-paddingLR-m) 0 var(--td-comp-margin-s)}.t-tag-input .t-input.t-size-l .t-input__suffix-icon{right:var(--td-comp-margin-m)}.t-tag-input.t-is-empty .t-input__inner{margin-left:var(--td-comp-margin-xs)}.t-tag-input .t-input--focused .t-input__inner:not(.t-input--soft-hidden),.t-tag-input:hover .t-input__inner:not(.t-input--soft-hidden){min-width:20px}.t-tag-input .t-tag-input__prefix{line-height:1;margin-left:var(--td-comp-margin-xs)}.t-tag-input .t-tag-input__prefix>.t-icon{color:var(--td-text-color-placeholder)}.t-tag-input .t-input .t-input__prefix:not(:empty){margin-right:0}.t-tag-input.t-input--auto-width .t-input.t-input--focused{padding-right:calc(var(--td-comp-paddingLR-xxl) + var(--td-comp-paddingLR-xxs))}.t-tag-input.t-input--auto-width .t-input__prefix{white-space:nowrap}.t-tag-input .t-input__prefix--scrollable{overflow-x:auto;overflow-y:hidden}@-moz-document url-prefix(){.t-tag-input .t-input__prefix--scrollable{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-tag-input .t-input__prefix--scrollable::-webkit-scrollbar{height:6px;width:6px}.t-tag-input .t-input__prefix--scrollable::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-tag-input .t-input__prefix--scrollable::-webkit-scrollbar-thumb:horizontal:hover,.t-tag-input .t-input__prefix--scrollable::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-tag-input__suffix-clear{cursor:pointer}.t-tag-input--drag-sort .t-input__prefix .t-tag{cursor:move}.t-tag-input--break-line:not(.t-is-empty) .t-input{display:block}.t-tag-input--break-line:not(.t-is-empty) .t-input.t-input--prefix>.t-input__prefix{display:inline;text-align:left}.t-tag-input--break-line:not(.t-is-empty) .t-input .t-input__suffix-icon{bottom:0;position:absolute}.t-tag-input--break-line:not(.t-is-empty) .t-tag-input__prefix{vertical-align:middle}.t-tag-input__prefix{display:inline-block;margin-right:var(--td-comp-margin-s);width:max-content}.t-tag-input--break-line.t-tag-input--with-tag:not(.t-input--auto-width) .t-input,.t-tag-input.t-input--auto-width:hover .t-input{padding-right:calc(var(--td-comp-paddingLR-xxl) + var(--td-comp-paddingLR-xxs))}.t-tag-input--break-line.t-tag-input--with-tag:not(.t-input--auto-width) .t-size-l .t-input,.t-tag-input.t-input--auto-width:hover .t-size-l .t-input{padding-right:calc(var(--td-comp-paddingLR-xxl) + var(--td-comp-paddingLR-xs))}.t-tag-input.t-input--auto-width .t-input{padding-right:0}.t-tag-input--max-rows .t-input{max-height:calc(var(--max-rows, 1)*(var(--td-comp-size-m) - 2px));overflow-y:scroll}.t-tag-input--max-rows .t-input.t-size-s{max-height:calc(var(--max-rows, 1)*var(--td-comp-size-xs))}.t-tag-input--max-rows .t-input.t-size-l{max-height:calc(var(--max-rows, 1)*(var(--td-comp-size-xl) - 2px))}.t-select-input{box-sizing:border-box;color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;vertical-align:middle;width:100%}.t-select-input--multiple .t-input--auto-width.t-tag-input__with-suffix-icon.t-tag-input--with-tag .t-input{padding-right:var(--td-comp-paddingLR-xl)}.t-select-input--multiple .t-input--auto-width.t-tag-input__with-suffix-icon.t-tag-input--with-tag .t-input.t-size-l{padding-right:calc(var(--td-comp-paddingLR-xl) + var(--td-comp-paddingLR-s))}.t-select-input--multiple .t-input--auto-width.t-tag-input__with-suffix-icon.t-is-empty .t-input{padding-right:var(--td-comp-paddingLR-s)}.t-select-input--multiple .t-input--auto-width.t-tag-input__with-suffix-icon.t-is-empty .t-input.t-size-l{padding-right:var(--td-comp-paddingLR-m)}.t-select-input--borderless .t-input{background:transparent;border:1px solid transparent;box-shadow:none;transition:all .2s linear}.t-select-input--borderless .t-input:hover:not(.t-input--focused){background-color:var(--td-bg-color-container-hover);border-color:var(--td-component-border);border-radius:var(--td-radius-default)}.t-select-input--borderless .t-input--focused{background-color:var(--td-bg-color-specialcomponent);border-color:var(--td-brand-color);box-shadow:0 0 0 2px var(--td-brand-color-focus)}.t-select-input--borderless.t-select-input--multiple:not(.t-select-input--empty).t-select-input--popup-visible input{display:inline-block}.t-select-input--borderless.t-select-input--multiple:not(.t-select-input--empty).t-select-input--popup-visible .t-input{background-color:var(--td-bg-color-container-hover)}.t-select-input--borderless.t-tag-input{background:transparent;border:0;box-shadow:none;transition:background-color .2s linear}.t-select-input--borderless.t-tag-input:hover{background-color:var(--td-bg-color-container-hover);border-radius:var(--td-radius-default)}.t-checkbox-group{flex-wrap:wrap;gap:16px}.t-checkbox,.t-checkbox-group{box-sizing:border-box;color:var(--td-text-color-primary);display:inline-flex;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-checkbox{align-items:center;cursor:pointer;position:relative}.t-checkbox+.t-checkbox{margin-left:inherit}.t-checkbox__former{clip:rect(0 0 0 0);appearance:none;border:0;height:1px;margin:-1px;outline:0;overflow:hidden;padding:0;position:absolute;width:1px}.t-checkbox__input{background-color:var(--td-bg-color-container);border:1px solid var(--td-border-level-2-color);border-radius:var(--td-radius-default);box-sizing:border-box;display:inline-block;flex-shrink:0;height:16px;position:relative;vertical-align:middle;width:16px}.t-checkbox__input:after{box-sizing:border-box;content:"";opacity:0;position:absolute}.t-checkbox__label{display:inline-block;font:var(--td-font-body-medium);margin-left:8px;vertical-align:middle}.t-checkbox:hover .t-checkbox__input{border-color:var(--td-brand-color);transition:border-color .2s linear}.t-checkbox.t-is-checked .t-checkbox__input{background-color:var(--td-brand-color);border-color:var(--td-brand-color);transition:background-color .2s cubic-bezier(.82,0,1,.9)}.t-checkbox.t-is-checked .t-checkbox__input:after{background:transparent;border:2px solid var(--td-text-color-anti);border-left:0;border-radius:0 0 1px;border-top:0;height:9px;left:3px;opacity:1;top:6px;transform:rotate(45deg) scale(1) translate(-50%,-50%);width:5px}.t-checkbox.t-is-indeterminate .t-checkbox__input{background-color:var(--td-brand-color);border-color:var(--td-brand-color);transition:background-color .2s cubic-bezier(.82,0,1,.9)}.t-checkbox.t-is-indeterminate .t-checkbox__input:after{background-color:var(--td-font-white-1);border:unset;height:4px;left:-1px;opacity:1;right:0;top:5px;transform:scale(.5);width:16px}.t-checkbox.t-is-disabled{cursor:not-allowed}.t-checkbox.t-is-disabled .t-checkbox__label{color:var(--td-text-color-disabled)}.t-checkbox.t-is-disabled .t-checkbox__input{background-color:var(--td-bg-color-component-disabled)}.t-checkbox.t-is-disabled.t-is-checked .t-checkbox__input,.t-checkbox.t-is-disabled:hover .t-checkbox__input{border-color:var(--td-border-level-2-color)}.t-checkbox.t-is-disabled.t-is-checked .t-checkbox__input:after{border-color:var(--td-text-color-disabled)}.t-checkbox.t-is-disabled.t-is-indeterminate .t-checkbox__input{border-color:var(--td-border-level-2-color)}.t-checkbox.t-is-disabled.t-is-indeterminate .t-checkbox__input:after{background-color:var(--td-text-color-disabled)}.t-checkbox:focus-visible:focus-visible{border-radius:0;outline:2px solid var(--td-brand-color);outline-offset:var(--td-comp-paddingTB-xs)}.t-select__wrap{width:100%}.t-select__dropdown .t-popup__content{box-shadow:var(--td-shadow-2);margin:var(--td-comp-paddingTB-s) 0;max-height:300px;overflow-y:auto;overscroll-behavior:contain;padding:0}@-moz-document url-prefix(){.t-select__dropdown .t-popup__content{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-select__dropdown .t-popup__content::-webkit-scrollbar{height:8px;width:8px}.t-select__dropdown .t-popup__content::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid transparent;border-radius:15px}.t-select__dropdown .t-popup__content::-webkit-scrollbar-thumb:horizontal:hover,.t-select__dropdown .t-popup__content::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-select__dropdown-inner{min-height:var(--td-comp-size-m)}.t-select__dropdown-inner .t-select__list .t-select__list{padding:0}.t-select__dropdown-inner .t-select__list,.t-select__dropdown-inner .t-tree{padding:var(--td-pop-padding-m)}.t-select__dropdown-inner--size-s{min-height:var(--td-comp-size-xs)}.t-select__dropdown-inner--size-s .t-select__list,.t-select__dropdown-inner--size-s .t-tree{padding:var(--td-pop-padding-s)}.t-select__dropdown-inner--size-l{min-height:var(--td-comp-size-xl)}.t-select__dropdown-inner--size-l .t-select__list,.t-select__dropdown-inner--size-l .t-tree{padding:var(--td-pop-padding-l)}.t-select__list{list-style:none;margin:0;padding:0}.t-select__dropdown.t-popup{padding:0}.t-select__empty.t-size-s{line-height:var(--td-comp-size-xs)}.t-select__empty{color:var(--td-text-color-disabled);line-height:var(--td-comp-size-m);padding:0 var(--td-comp-paddingLR-s);text-align:center}.t-select__empty.t-size-l{line-height:var(--td-comp-size-xl)}.t-select__loading-tips.t-size-s{line-height:var(--td-comp-size-xs);min-height:var(--td-comp-size-xs)}.t-select__loading-tips{align-items:center;background-color:var(--td-bg-color-container);border-radius:var(--td-radius-default);bottom:var(--td-comp-paddingTB-s);color:var(--td-text-color-disabled);display:flex;justify-content:center;left:0;line-height:var(--td-comp-size-m);min-height:var(--td-comp-size-m);position:fixed;right:0;top:var(--td-comp-paddingTB-s);z-index:1000}.t-select__loading-tips.t-size-l{line-height:var(--td-comp-size-xl);min-height:var(--td-comp-size-xl)}.t-select-option-group+.t-select-option-group{margin-top:var(--td-comp-margin-xs);padding-top:var(--td-comp-margin-xs)}.t-select-option-group__divider+.t-select-option-group__divider{position:relative}.t-select-option-group__divider+.t-select-option-group__divider:before{background-clip:content-box;background-color:var(--td-border-level-1-color);box-sizing:border-box;content:"";height:1px;left:0;padding:0 var(--td-comp-paddingLR-s);position:absolute;top:0;width:100%}.t-select-option-group__header,ul.t-select-option-group__header{word-wrap:normal;box-sizing:border-box;color:var(--td-text-color-placeholder);display:block;height:var(--td-comp-size-s);line-height:var(--td-comp-size-s);overflow:hidden;padding:0 var(--td-comp-paddingLR-s);text-overflow:ellipsis;white-space:nowrap}.t-select-option-group__header.t-size-l{height:var(--td-comp-size-l);line-height:var(--td-comp-size-l);padding:0 var(--td-comp-paddingLR-m)}.t-select-option-group__header.t-size-s{height:var(--td-comp-size-xxs);line-height:var(--td-comp-size-xxs);padding:0 var(--td-comp-paddingLR-s)}.t-select-option{--ripple-color:var(--td-bg-color-container-active);align-items:center;border-radius:var(--td-radius-default);box-sizing:border-box;color:var(--td-text-color-primary);cursor:pointer;display:flex;font:var(--td-font-body-medium);height:var(--td-comp-size-s);padding:0 var(--td-comp-paddingLR-s);transition:background-color .2s cubic-bezier(.38,0,.24,1)}.t-select-option span{word-wrap:normal;overflow:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap}.t-select-option:not(.t-is-disabled):not(.t-is-selected):hover{background-color:var(--td-bg-color-container-hover)}.t-select-option:not(.t-is-disabled):not(.t-is-selected):hover .t-checkbox__label{color:inherit}.t-select-option:not(.t-is-disabled):not(.t-is-selected):hover .t-checkbox__input{border-color:var(--td-brand-color)}.t-select-option .t-checkbox__label{word-wrap:normal;color:var(--td-text-color-primary);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-select-option .t-checkbox{width:100%}.t-select-option.t-is-disabled{color:var(--td-text-color-disabled);cursor:not-allowed}.t-select-option.t-is-disabled,.t-select-option.t-is-disabled :active,.t-select-option.t-is-disabled:hover{background:var(--td-bg-color-specialcomponent)}.t-select-option.t-size-l{font:var(--td-font-body-large);height:var(--td-comp-size-l);padding:0 var(--td-comp-paddingLR-m)}.t-select-option.t-size-m{font:var(--td-font-body-medium)}.t-select-option.t-size-s{font:var(--td-font-body-small);height:var(--td-comp-size-xxs);padding:0 var(--td-comp-paddingLR-s)}.t-select-option.t-is-selected:not(.t-is-disabled){background-color:var(--td-brand-color-light);color:var(--td-brand-color);transition:all .2s linear}.t-select-option.t-is-selected:not(.t-is-disabled) .t-checkbox__label{color:var(--td-brand-color)}.t-select-option.t-is-selected:not(.t-is-disabled):hover{background-color:var(--td-brand-color-light)}.t-select-option.t-select-option--hover:not(.t-is-disabled).t-select-option.t-select-option--hover:not(.t-is-selected),.t-select-option.t-select-option--hover:not(.t-is-disabled).t-select-option.t-select-option__hover:not(.t-is-selected),.t-select-option.t-select-option__hover:not(.t-is-disabled).t-select-option.t-select-option--hover:not(.t-is-selected),.t-select-option.t-select-option__hover:not(.t-is-disabled).t-select-option.t-select-option__hover:not(.t-is-selected){background-color:var(--td-bg-color-container-hover)}.t-select-option.t-select-option--hover:not(.t-is-disabled).t-select-option.t-select-option--hover:not(.t-is-selected) .t-checkbox__input,.t-select-option.t-select-option--hover:not(.t-is-disabled).t-select-option.t-select-option__hover:not(.t-is-selected) .t-checkbox__input,.t-select-option.t-select-option__hover:not(.t-is-disabled).t-select-option.t-select-option--hover:not(.t-is-selected) .t-checkbox__input,.t-select-option.t-select-option__hover:not(.t-is-disabled).t-select-option.t-select-option__hover:not(.t-is-selected) .t-checkbox__input{border-color:var(--td-brand-color)}.t-select-option.t-select-option--hover .t-checkbox__label,.t-select-option.t-select-option__hover .t-checkbox__label{color:inherit}.t-select-option+.t-select-option{margin-top:var(--td-comp-paddingTB-xxs)}.t-select.t-select-input--borderless .t-select__right-icon{margin:0;position:relative}.t-select .t-fake-arrow{color:var(--td-text-color-placeholder)}.t-select .t-fake-arrow--active{color:var(--td-brand-color)}.t-is-selected.t-select-option__hover{background-color:var(--td-brand-color-light-hover)}.t-is-selected.t-select-option__hover .t-checkbox__label{color:var(--td-brand-color)}.t-input-adornment{box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-input-adornment__append .t-input,.t-input-adornment__append .t-textarea__inner,.t-input-adornment__prepend .t-input,.t-input-adornment__prepend .t-textarea__inner{background-color:transparent}.t-input-adornment__prepend{margin-right:-1px}.t-input-adornment__append,.t-input-adornment__prepend{background-color:var(--td-bg-color-secondarycontainer);color:var(--td-text-color-primary);word-break:keep-all}.t-input-adornment__append{margin-left:-1px}.t-input-adornment__text{align-items:center;border:1px solid var(--td-border-level-2-color);box-sizing:border-box;display:inline-flex;height:100%;padding:0 var(--td-comp-paddingLR-s);white-space:nowrap}.t-input-adornment>:first-child,.t-input-adornment>:first-child .t-input,.t-input-adornment>:first-child .t-input-adornment__text,.t-input-adornment>:first-child .t-textarea__inner{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-input-adornment>:last-child,.t-input-adornment>:last-child .t-input,.t-input-adornment>:last-child .t-input-adornment__text,.t-input-adornment>:last-child .t-textarea__inner{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-input-adornment>:not(:last-child):hover{z-index:2}.t-input-adornment>:not(:first-child):not(:last-child) .t-input,.t-input-adornment>:not(:first-child):not(:last-child) .t-textarea__inner{border-radius:0}.t-pagination-mini{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-pagination-mini--outline .t-pagination-mini__prev{border-bottom-right-radius:0;border-top-right-radius:0;position:relative;z-index:1}.t-pagination-mini--outline .t-pagination-mini__current{border-radius:0;margin-left:-1px;position:relative}.t-pagination-mini--outline .t-pagination-mini__current:hover{z-index:1}.t-pagination-mini--outline .t-pagination-mini__next{border-bottom-left-radius:0;border-top-left-radius:0;margin-left:-1px;position:relative}.t-pagination-mini--outline .t-pagination-mini__next:hover{z-index:1}.t-pagination{align-items:center;box-sizing:border-box;color:var(--td-text-color-primary);color:var(--td-text-color-secondary);display:flex;font:var(--td-font-body-medium);justify-content:flex-end;list-style:none;margin:0;padding:0;user-select:none;white-space:nowrap;width:100%}.t-pagination.t-is-disabled{color:var(--td-text-color-disabled)}.t-pagination__total{flex:1;font:var(--td-font-body-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-pagination .t-select__wrap{width:auto}.t-pagination__select{font-size:var(--td-font-size-body-medium);margin-right:var(--td-comp-margin-l)}.t-pagination__btn,.t-pagination__select{color:var(--td-text-color-secondary);flex-shrink:0;height:var(--td-comp-size-m)}.t-pagination__btn{align-items:center;border-radius:var(--td-radius-default);cursor:pointer;display:inline-flex;font:var(--td-font-body-large);justify-content:center;line-height:var(--td-comp-size-m);width:var(--td-comp-size-m)}.t-pagination__btn:hover{background-color:var(--td-bg-color-secondarycontainer-hover);transition:all .2s cubic-bezier(.82,0,1,.9)}.t-pagination__btn:active{background-color:var(--td-bg-color-secondarycontainer-active)}.t-pagination__btn.t-is-disabled,.t-pagination__btn.t-is-disabled:active,.t-pagination__btn.t-is-disabled:hover{background:none;color:var(--td-text-color-disabled)}.t-pagination__btn.t-is-disabled{cursor:not-allowed}.t-pagination__btn-prev{margin-right:var(--td-comp-margin-s)}.t-pagination__btn-next{margin-left:var(--td-comp-margin-s)}.t-pagination__btn+.t-pagination__select{margin-right:0}.t-pagination__pager{display:inline-flex;flex-shrink:0;list-style:none;margin:0;padding:0;vertical-align:middle}.t-pagination__pager li:not(:last-child){margin-right:var(--td-comp-margin-s)}.t-pagination__number{background-color:var(--td-bg-color-container);border:1px solid var(--td-component-border);border-radius:var(--td-radius-default);box-sizing:border-box;cursor:pointer;display:inline-block;font-size:var(--td-font-body-medium);height:var(--td-comp-size-m);line-height:calc(var(--td-comp-size-m) - 2px);min-width:var(--td-comp-size-m);padding-left:var(--td-comp-paddingLR-xs);padding-right:var(--td-comp-paddingLR-xs);text-align:center}.t-pagination__number:hover{border-color:var(--td-brand-color-hover);color:var(--td-brand-color-hover);transition:all .2s cubic-bezier(.82,0,1,.9)}.t-pagination__number.t-is-current,.t-pagination__number:active{background-color:var(--td-brand-color);border-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-pagination__number.t-is-current.t-is-disabled,.t-pagination__number.t-is-current.t-is-disabled:active,.t-pagination__number.t-is-current.t-is-disabled:hover{background-color:var(--td-brand-color-focus);border-color:var(--td-brand-color-focus);color:var(--td-text-color-anti)}.t-pagination__number.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:auto}.t-pagination__number.t-is-disabled:active,.t-pagination__number.t-is-disabled:hover{background-color:var(--td-bg-color-component-disabled);border-color:var(--td-component-border);color:var(--td-text-color-disabled)}.t-pagination__number--more{border:0;padding:0}.t-pagination__number--more:hover{background-color:var(--td-bg-color-secondarycontainer-hover);color:var(--td-text-color-primary);transition:all .2s cubic-bezier(.82,0,1,.9)}.t-pagination__number--more:active{background-color:var(--td-bg-color-secondarycontainer-active);color:var(--td-text-color-primary)}.t-pagination__number--more.t-is-disabled,.t-pagination__number--more.t-is-disabled:active,.t-pagination__number--more.t-is-disabled:hover{background:none}.t-pagination__number--more .t-icon-more{color:var(--td-text-color-disabled);transform:rotate(90deg)}.t-pagination__jump{align-items:center;background-color:var(--td-bg-color-secondarycontainer);border-radius:var(--td-radius-default);display:inline-flex;flex-shrink:0;font-size:var(--td-font-body-medium);gap:var(--td-comp-margin-s);height:var(--td-comp-size-m);margin-left:var(--td-comp-margin-s);padding-left:var(--td-comp-margin-s)}.t-pagination .t-input-adornment__append{background-color:transparent;border:none;color:var(--td-text-color-secondary);height:calc(var(--td-comp-size-m) - 4px)}.t-pagination .t-input-adornment__append .t-input-adornment__text{border:none}.t-pagination .t-input-number{width:56px}.t-pagination .t-input-number .t-input{border-radius:var(--td-radius-default);height:calc(var(--td-comp-size-m) - 4px)}.t-pagination .t-input-number .t-input__inner{text-align:center}.t-pagination.t-size-s{font:var(--td-font-body-small)}.t-pagination.t-size-s .t-pagination__jump{height:var(--td-comp-size-xs)}.t-pagination.t-size-s .t-input-adornment__append{font:var(--td-font-body-small);height:calc(var(--td-comp-size-xs) - 4px)}.t-pagination.t-size-s .t-input-number{width:48px}.t-pagination.t-size-s .t-input-number .t-input{height:calc(var(--td-comp-size-xs) - 4px)}.t-pagination.t-size-s .t-pagination__total{font:var(--td-font-body-small)}.t-pagination.t-size-s .t-pagination__select{font-size:var(--td-font-size-body-small);height:var(--td-comp-size-xs)}.t-pagination.t-size-s .t-pagination__number{border:0;font-size:var(--td-font-body-small);height:var(--td-comp-size-xs);line-height:var(--td-comp-size-xs);min-width:var(--td-comp-size-xs);padding-left:var(--td-comp-paddingLR-xxs);padding-right:var(--td-comp-paddingLR-xxs)}.t-pagination.t-size-s .t-pagination__number:hover:not(.t-pagination.t-size-s .t-pagination__number.t-is-current){background-color:var(--td-bg-color-secondarycontainer-hover);color:var(--td-text-color-primary);transition:all .2s cubic-bezier(.82,0,1,.9)}.t-pagination.t-size-s .t-pagination__number:active:not(.t-pagination.t-size-s .t-pagination__number.t-is-current){background-color:var(--td-bg-color-secondarycontainer-active);color:var(--td-text-color-primary)}.t-pagination.t-size-s .t-pagination__number.t-is-disabled{background:none;color:var(--td-text-color-disabled)}.t-pagination.t-size-s .t-pagination__number.t-is-current.t-is-disabled{background-color:var(--td-brand-color-focus);border-color:var(--td-brand-color-focus);color:var(--td-text-color-anti)}.t-pagination.t-size-s .t-pagination__btn{background:none;border:0;height:var(--td-comp-size-xs);line-height:var(--td-comp-size-xs);width:var(--td-comp-size-xs)}.t-pagination.t-size-s .t-pagination__btn:hover{background-color:var(--td-bg-color-secondarycontainer-hover);transition:all .2s cubic-bezier(.82,0,1,.9)}.t-pagination.t-size-s .t-pagination__btn:active{background-color:var(--td-bg-color-secondarycontainer-active)}.t-pagination.t-size-s .t-pagination__btn.t-is-disabled,.t-pagination.t-size-s .t-pagination__btn.t-is-disabled:active,.t-pagination.t-size-s .t-pagination__btn.t-is-disabled:hover{background:none;color:var(--td-text-color-disabled)}.t-pagination-ie .t-select .t-input__inner{min-width:54px}.default-step-icon{align-items:center;border-radius:var(--td-radius-circle);display:flex;font-size:var(--td-font-size-body-large);height:22px;justify-content:center;text-align:center;width:22px}.t-steps{box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;width:100%}.t-steps .t-steps-item{display:flex;flex:1;margin-right:var(--td-comp-margin-s);overflow:hidden;position:relative;vertical-align:top}.t-steps .t-steps-item:last-child{flex:none}.t-steps .t-steps-item__inner{display:flex;position:relative;width:fit-content}.t-steps .t-steps-item__inner.t-steps-item--clickable{cursor:pointer}.t-steps .t-steps-item--finish .t-steps-item__icon .t-icon{color:var(--td-brand-color)}.t-steps .t-steps-item--finish .t-steps-item__icon--number{border-color:var(--td-brand-color)}.t-steps .t-steps-item--finish .t-steps-item__title{color:var(--td-text-color-primary);font-weight:400}.t-steps .t-steps-item--finish .t-steps-item__description{color:var(--td-text-color-secondary)}.t-steps .t-steps-item--process .t-steps-item__icon .t-icon{color:var(--td-brand-color)}.t-steps .t-steps-item--process .t-steps-item__icon--number{background-color:var(--td-brand-color);border-color:var(--td-brand-color);color:var(--td-text-color-anti);font-weight:700}.t-steps .t-steps-item--process .t-steps-item__title{color:var(--td-brand-color);font-weight:700}.t-steps .t-steps-item--process .t-steps-item__description{color:var(--td-text-color-secondary)}.t-steps .t-steps-item--error .t-steps-item__icon .t-icon{color:var(--td-error-color)}.t-steps .t-steps-item--error .t-steps-item__icon--number{border-color:var(--td-error-color);color:var(--td-error-color)}.t-steps .t-steps-item--error .t-steps-item__title{color:var(--td-error-color)}.t-steps .t-steps-item--error .t-steps-item__description{color:var(--td-text-color-secondary)}.t-steps .t-steps-item__icon{color:var(--td-text-color-placeholder);font-size:var(--td-font-size-body-medium);margin-right:var(--td-comp-margin-s);vertical-align:top}.t-steps .t-steps-item__icon--number{border:1px solid var(--td-text-color-placeholder);border-radius:var(--td-radius-circle);color:var(--td-text-color-placeholder)}.t-steps .t-steps-item__icon--finish,.t-steps .t-steps-item__icon--number{align-items:center;display:flex;font-size:var(--td-font-size-body-large);height:22px;justify-content:center;text-align:center;width:22px}.t-steps .t-steps-item__icon--finish{border:1px solid var(--td-brand-color);border-radius:var(--td-radius-circle)}.t-steps .t-steps-item__icon--error{align-items:center;border:1px solid var(--td-error-color);border-radius:var(--td-radius-circle);color:#000;display:flex;font-size:var(--td-font-size-body-large);height:22px;justify-content:center;text-align:center;width:22px}.t-steps .t-steps-item__icon>.t-icon{font-size:calc(var(--td-font-size-body-medium) + 10px)}.t-steps .t-steps-item__title{color:var(--td-text-color-placeholder);font-size:var(--td-font-size-body-large);line-height:24px;padding-right:var(--td-comp-margin-s);position:relative}.t-steps .t-steps-item__description{color:var(--td-text-color-placeholder);font-size:var(--td-font-size-body-medium);line-height:22px;margin-bottom:var(--td-comp-margin-xs)}.t-steps--line-separator .t-steps-item:after,.t-steps--line-separator .t-steps-item:before,.t-steps--line-separator .t-steps-item__title:after{border-style:solid}.t-steps--dashed-separator .t-steps-item:after,.t-steps--dashed-separator .t-steps-item:before,.t-steps--dashed-separator .t-steps-item__title:after{border-style:dashed}.t-steps--horizontal.t-steps--default-anchor .t-steps-item__title{margin-bottom:var(--td-comp-margin-xs);width:fit-content}.t-steps--horizontal.t-steps--default-anchor .t-steps-item__icon__number{height:22px;width:22px}.t-steps--horizontal.t-steps--default-anchor .t-steps-item__icon>.t-icon{font-size:calc(var(--td-font-size-body-medium) + 10px)}.t-steps--horizontal.t-steps--default-anchor .t-steps-item:not(:last-child) .t-steps-item__title:after{border-bottom-color:var(--td-text-color-placeholder);border-bottom-width:1px;border-left:0;border-top:0;content:"";display:block;left:100%;position:absolute;top:50%;transform:translateY(-50%);width:9999px}.t-steps--horizontal.t-steps--default-anchor.t-steps--arrow-separator .t-steps-item:not(:last-child):after{align-items:flex-end;border:0;color:var(--td-text-color-placeholder);content:"^";display:inline-flex;flex:1;font-size:var(--td-font-size-body-large);height:24px;justify-content:center;transform:rotate(90deg)}.t-steps--horizontal.t-steps--default-anchor.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--default-anchor .t-steps-item--finish:not(:last-child) .t-steps-item__title:after{border-bottom-color:var(--td-brand-color);border-bottom-width:2px;color:var(--td-brand-color)}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse .t-steps-item:not(:last-child) .t-steps-item__title:after{border-bottom-color:var(--td-text-color-placeholder);border-bottom-width:1px;border-left:0;border-top:0;content:"";display:block;left:100%;position:absolute;top:50%;transform:translateY(-50%);width:9999px}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):after{align-items:flex-end;border:0;color:var(--td-text-color-placeholder);content:"^";display:inline-flex;flex:1;font-size:var(--td-font-size-body-large);height:24px;justify-content:center;transform:rotate(90deg)}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):after{transform:rotate(-90deg)}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after,.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--process:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse .t-steps-item--finish:not(:last-child) .t-steps-item__title:after,.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse .t-steps-item--process:not(:last-child) .t-steps-item__title:after{border-bottom-color:var(--td-brand-color);border-bottom-width:2px;color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item{overflow:visible}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item .t-steps-item__title{margin-bottom:var(--td-comp-margin-xs);padding-right:0}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item--finish .t-steps-item__icon{border-color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item--process .t-steps-item__icon{background:var(--td-brand-color);border-color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item--error .t-steps-item__icon{background:var(--td-error-color);border-color:var(--td-error-color)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item__inner{align-items:center;display:flex;flex-direction:column}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item__icon{border:2px solid var(--td-text-color-placeholder);border-radius:var(--td-radius-circle);box-sizing:border-box;display:block;flex-shrink:0;height:8px;margin-bottom:var(--td-comp-margin-xs);position:relative;width:8px}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item__content{text-align:center;width:140px}.t-steps--horizontal.t-steps--dot-anchor.t-steps--arrow-separator .t-steps-item:not(:last-child):after{align-items:flex-start;border:0;color:var(--td-text-color-placeholder);content:"^";display:inline-flex;flex:1;font-size:var(--td-font-size-body-large);justify-content:center;transform:rotate(90deg)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item:not(:last-child):after{border-bottom-color:var(--td-text-color-placeholder);border-bottom-width:1px;border-left:0;border-top:0;content:"";display:block;left:78px;position:absolute;top:2.5px;width:calc(100% - 16px)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item:not(:last-child):not(.t-steps-item--finish):after{border-color:var(--td-text-color-placeholder)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item--finish:not(:last-child):after{border-bottom-color:var(--td-brand-color);border-bottom-width:2px;color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):after{align-items:flex-start;border:0;color:var(--td-text-color-placeholder);content:"^";display:inline-flex;flex:1;font-size:var(--td-font-size-body-large);justify-content:center;transform:rotate(90deg)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):after{transform:rotate(-90deg)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after,.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--process:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse .t-steps-item:not(:last-child):after{border-bottom-color:var(--td-text-color-placeholder);border-bottom-width:1px;border-left:0;border-top:0;content:"";display:block;left:78px;position:absolute;top:2.5px;width:calc(100% - 16px)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse .t-steps-item:not(:last-child):not(.t-steps-item--finish):after{border-color:var(--td-text-color-placeholder)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse .t-steps-item--finish:not(:last-child):after,.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse .t-steps-item--process:not(:last-child):after{border-bottom-color:var(--td-brand-color);border-bottom-width:2px;color:var(--td-brand-color)}.t-steps--vertical{flex-direction:column;width:fit-content}.t-steps--vertical.t-steps--positive.t-steps--arrow-separator .t-steps-item:not(:last-child):before{align-items:center;border:0;color:var(--td-text-color-placeholder);content:"^";display:flex;font-size:var(--td-font-size-body-large);height:calc(100% - 24px);left:6px;position:absolute;top:24px;transform:rotate(180deg)}.t-steps--vertical.t-steps--positive.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):before{color:var(--td-brand-color)}.t-steps--vertical.t-steps--positive .t-steps-item{margin-bottom:5px;padding-bottom:var(--td-comp-margin-xxl)}.t-steps--vertical.t-steps--positive .t-steps-item:not(:last-child):before{border-left:0;border-right-color:var(--td-text-color-placeholder);border-right-width:1px;border-top:0;content:"";display:block;height:100%;left:11px;position:absolute;top:35px}.t-steps--vertical.t-steps--positive .t-steps-item--finish:not(:last-child):before{border-right-color:var(--td-brand-color);border-right-width:2px;color:var(--td-brand-color)}.t-steps--vertical.t-steps--default-anchor .t-steps-item__content{margin-left:0}.t-steps--vertical.t-steps--default-anchor .t-steps-item__title{margin-bottom:var(--td-comp-margin-xs)}.t-steps--vertical.t-steps--dot-anchor.t-steps--positive.t-steps--arrow-separator .t-steps-item:not(:last-child):before{align-items:center;border:0;color:var(--td-text-color-placeholder);content:"^";display:flex;font-size:var(--td-font-size-body-medium);height:calc(100% - 4px);left:0;position:absolute;top:8px}.t-steps--vertical.t-steps--dot-anchor.t-steps--positive.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):before{color:var(--td-brand-color)}.t-steps--vertical.t-steps--dot-anchor.t-steps--positive .t-steps-item:not(:last-child):before{border-bottom:0;border-left:0;border-right-color:var(--td-text-color-placeholder);border-right-width:1px;content:"";display:block;height:100%;left:3.5px;position:absolute;top:17px}.t-steps--vertical.t-steps--dot-anchor.t-steps--positive .t-steps-item--finish:not(:last-child):before{border-right-color:var(--td-brand-color);border-right-width:2px;color:var(--td-brand-color)}.t-steps--vertical.t-steps--dot-anchor.t-steps--positive .t-steps-item:not(:last-child).t-steps-item--default:before{border-color:var(--td-text-color-placeholder)}.t-steps--vertical.t-steps--dot-anchor .t-steps-item{margin-bottom:0}.t-steps--vertical.t-steps--dot-anchor .t-steps-item .t-steps-item__title{margin-bottom:var(--td-comp-margin-xs)}.t-steps--vertical.t-steps--dot-anchor .t-steps-item--finish .t-steps-item__icon{border-color:var(--td-brand-color)}.t-steps--vertical.t-steps--dot-anchor .t-steps-item--process .t-steps-item__icon{background:var(--td-brand-color);border-color:var(--td-brand-color)}.t-steps--vertical.t-steps--dot-anchor .t-steps-item--error .t-steps-item__icon{background:var(--td-error-color);border-color:var(--td-error-color)}.t-steps--vertical.t-steps--dot-anchor .t-steps-item__icon{border:2px solid var(--td-text-color-placeholder);border-radius:var(--td-radius-circle);box-sizing:border-box;display:block;flex-shrink:0;height:8px;margin-bottom:var(--td-comp-margin-xs);position:relative;top:8px;width:8px}.t-steps--vertical.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):before{align-items:center;border:0;color:var(--td-text-color-placeholder);content:"^";display:flex;font-size:var(--td-font-size-body-large);height:calc(100% - 24px);left:6px;position:absolute;top:24px;transform:rotate(180deg)}.t-steps--vertical.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):before{color:var(--td-brand-color)}.t-steps--vertical.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):before{margin-top:var(--td-comp-margin-xs);transform:rotate(0)}.t-steps--vertical.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):before,.t-steps--vertical.t-steps--reverse.t-steps--arrow-separator .t-steps-item--process:not(:last-child):before{color:var(--td-brand-color)}.t-steps--vertical.t-steps--reverse .t-steps-item{margin-bottom:5px;padding-bottom:var(--td-comp-margin-xxl)}.t-steps--vertical.t-steps--reverse .t-steps-item:not(:last-child):before{border-bottom:0;border-left:0;border-right-color:var(--td-text-color-placeholder);border-right-width:1px;content:"";display:block;height:100%;left:11px;position:absolute;top:35px}.t-steps--vertical.t-steps--reverse .t-steps-item--finish:not(:last-child):before,.t-steps--vertical.t-steps--reverse .t-steps-item--process:not(:last-child):before{border-right-color:var(--td-brand-color);border-right-width:2px;color:var(--td-brand-color)}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor.t-steps--arrow-separator .t-steps-item:not(:last-child):before{align-items:center;border:0;color:var(--td-text-color-placeholder);content:"^";display:flex;font-size:var(--td-font-size-body-medium);height:calc(100% - 4px);left:0;position:absolute;top:8px}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):before,.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor.t-steps--arrow-separator .t-steps-item--process:not(:last-child):before{color:var(--td-brand-color)}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item{margin-bottom:0}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item:not(:last-child):before{border-bottom:0;border-left:0;border-right-color:var(--td-text-color-placeholder);border-right-width:1px;content:"";display:block;height:100%;left:3.5px;position:absolute;top:17px}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item:last-child:before{display:none}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item--finish:not(:last-child):before,.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item--process:not(:last-child):before{border-right-color:var(--td-brand-color);border-right-width:2px;color:var(--td-brand-color)}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item:not(:last-child).t-steps-item--default:before{border-color:var(--td-text-color-placeholder)}.t-sticky-tool{background-color:var(--td-bg-color-container);border:.5px solid var(--td-component-border);box-shadow:var(--td-shadow-3);box-sizing:border-box;opacity:1;position:fixed}.t-sticky-tool-popup-content{box-shadow:var(--td-shadow-3)}.t-sticky-tool .t-sticky-item,.t-sticky-tool-popup-content{color:var(--td-text-color-secondary);font-size:var(--td-font-size-body-small)}.t-sticky-tool .t-sticky-item{margin:var(--td-comp-margin-xs);opacity:1;position:relative;text-align:center;transition:background-color .2s linear}.t-sticky-tool .t-sticky-item:hover{background-color:var(--td-bg-color-container-hover);cursor:pointer}.t-sticky-tool .t-sticky-item--normal{height:var(--td-comp-size-xxxl);width:var(--td-comp-size-xxxl)}.t-sticky-tool .t-sticky-item--normal .t-icon{color:var(--td-text-color-primary);height:24px;margin:var(--td-comp-margin-s) var(--td-comp-margin-l) 0 var(--td-comp-margin-l);width:24px}.t-sticky-tool .t-sticky-item--compact{height:var(--td-comp-size-xl);width:var(--td-comp-size-xl)}.t-sticky-tool .t-sticky-item--compact .t-icon{color:var(--td-text-color-primary);height:24px;margin:var(--td-comp-margin-s);width:24px}.t-sticky-tool .t-sticky-item--square{border-radius:var(--td-radius-default)}.t-sticky-tool .t-sticky-item--round{border-radius:var(--td-radius-circle)}.t-sticky-tool .t-sticky-item .t-sticky-item__label{height:var(--td-comp-size-xxs);line-height:var(--td-comp-size-xxs);margin-top:var(--td-comp-margin-xxs);text-align:center;width:100%}.t-sticky-tool--square{border-radius:var(--td-radius-medium)}.t-sticky-tool--round{border-radius:var(--td-radius-round)}.t-back-top{align-items:center;background-color:transparent;border:.5px solid transparent;box-shadow:var(--td-shadow-3);color:var(--td-text-color-primary);cursor:pointer;display:inline-flex;flex-direction:column;justify-content:center;opacity:0;outline:none;overflow:hidden;position:fixed;touch-action:manipulation;transition:background .2s linear,border .2s linear,color .2s linear,opacity .2s linear,visibility .2s linear;vertical-align:middle;visibility:hidden;white-space:nowrap;z-index:300}.t-back-top__text{font:var(--td-font-body-small);margin-top:var(--td-comp-margin-xxs);text-align:center}.t-back-top__icon{font-size:var(--td-font-headline-small)}.t-back-top.t-size-m .t-back-top__icon{margin-top:2px}.t-back-top--show{opacity:1;visibility:visible}.t-back-top--theme-light{background-color:var(--td-bg-color-container);border-color:var(--td-component-border)}.t-back-top--theme-light:hover{background-color:var(--td-bg-color-container-hover);border-color:var(--td-bg-color-container-hover)}.t-back-top--theme-light .t-back-top__text{color:var(--td-text-color-secondary)}.t-back-top--theme-light .t-back-top__icon{color:var(--td-text-color-primary)}.t-back-top--theme-primary{background-color:var(--td-brand-color);border-color:var(--td-brand-color)}.t-back-top--theme-primary:hover{background-color:var(--td-brand-color-hover);border-color:var(--td-brand-color-hover)}.t-back-top--theme-primary .t-back-top__icon,.t-back-top--theme-primary .t-back-top__text{color:var(--td-text-color-anti)}.t-back-top--theme-dark{background-color:rgba(0,0,0,.9);border-color:rgba(0,0,0,.9)}.t-back-top--theme-dark:hover{background-color:rgba(0,0,0,.6);border-color:rgba(0,0,0,.6)}.t-back-top--theme-dark .t-back-top__icon,.t-back-top--theme-dark .t-back-top__text{color:var(--td-text-color-anti)}.t-back-top.t-size-s{height:var(--td-comp-size-xxl);width:var(--td-comp-size-xxl)}.t-back-top.t-size-s .t-back-top__text{display:none}.t-back-top.t-size-m{height:var(--td-comp-size-xxxxl);width:var(--td-comp-size-xxxxl)}.t-back-top.t-size-m .t-back-top__text{display:block}.t-back-top--circle{border-radius:var(--td-radius-circle)}.t-back-top--square{border-radius:var(--td-radius-medium)}.t-select-option__highlight-item .t-is-highlight{color:var(--td-brand-color)}.t-auto-complete{width:100%}.t-auto-complete .t-input__suffix-clear{display:none}.t-auto-complete:hover .t-input__suffix-clear{display:inline-block}.t-auto-complete__panel--empty{color:var(--td-text-color-disabled);height:var(--td-comp-size-m);line-height:var(--td-comp-size-m);text-align:center}.t-cascader .t-fake-arrow{color:var(--td-text-color-placeholder)}.t-cascader .t-fake-arrow--active{color:var(--td-brand-color)}.t-cascader__popup .t-popup__content{border:.5px solid var(--td-component-border);border-radius:var(--td-radius-medium);box-shadow:var(--td-shadow-2);overflow:hidden;padding:0}.t-cascader__panel{display:flex;height:100%}.t-cascader__panel.t-cascader--normal{height:200px}.t-cascader__panel.t-cascader--multiple{height:280px}.t-cascader__panel--empty{color:var(--td-text-color-disabled);height:var(--td-comp-size-s);line-height:var(--td-comp-size-s);margin:var(--td-pop-padding-m);padding-left:0;text-align:center;width:100%}.t-cascader__panel--empty:hover{background:none;cursor:default}.t-cascader__menu{background:var(--td-bg-color-container);box-sizing:content-box;margin:0;overflow:auto;padding:var(--td-pop-padding-m);width:148px}.t-cascader__menu.t-size-l{padding:var(--td-pop-padding-l)}.t-cascader__menu.t-size-s{padding:var(--td-pop-padding-s)}.t-cascader__menu--segment{border-right:1px solid var(--td-component-stroke)}.t-cascader__menu--filter{min-width:148px;width:auto}.t-cascader__item{--ripple-color:var(--td-bg-color-container-active);align-items:center;border-radius:var(--td-radius-default);color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);height:var(--td-comp-size-s);list-style:none;margin-top:var(--td-comp-margin-xxs);padding:0 var(--td-comp-paddingLR-s);position:relative;transition:background-color .2s cubic-bezier(.82,0,1,.9)}.t-cascader__item.t-size-s{font:var(--td-font-body-small);height:var(--td-comp-size-xs);padding:0 var(--td-comp-paddingLR-s)}.t-cascader__item.t-size-l{font:var(--td-font-body-large);height:var(--td-comp-size-m);padding:0 var(--td-comp-paddingLR-m)}.t-cascader__item.t-is-disabled{background-color:transparent;color:var(--td-text-color-disabled);cursor:not-allowed}.t-cascader__item-icon.t-icon{background:transparent;color:var(--td-text-color-placeholder);font-size:16px;height:100%;margin:0 8px;position:absolute;right:0;top:0}.t-cascader__item-icon.t-loading{color:var(--td-text-color-brand);display:flex}.t-cascader__item.t-is-expanded{background:var(--td-brand-color-light)}.t-cascader__item.t-is-expanded,.t-cascader__item.t-is-expanded .t-icon-chevron-right{color:var(--td-text-color-brand)}.t-cascader__item.t-is-expanded:hover{cursor:pointer}.t-cascader__item:first-child{margin-top:0}.t-cascader__item .t-checkbox{max-width:100%}.t-cascader__item .t-checkbox .t-checkbox__input{flex-shrink:0}.t-cascader__item .t-checkbox .t-checkbox__label{word-wrap:normal;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-cascader__item .t-checkbox .t-checkbox__label .t-cascader__item__label--filter{color:var(--td-text-color-brand)}.t-cascader__item--with-icon .t-cascader__item-label,.t-cascader__item--with-icon .t-checkbox__label{margin-right:16px}.t-cascader__item--leaf .t-checkbox{width:100%}.t-cascader__item-label{display:block;padding:0;position:relative;white-space:nowrap}.t-cascader__item-label--ellipsis{word-wrap:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-cascader__item-label--filter{color:var(--td-text-color-brand)}.t-cascader__item:hover:not(.t-is-expanded):not(.t-is-disabled){background:var(--td-bg-color-container-hover);cursor:pointer}.t-cascader__item.t-is-selected{background:var(--td-brand-color-light);color:var(--td-brand-color)}.t-cascader__item.t-is-selected .t-checkbox__label{color:var(--td-brand-color)}.range-input-disabled.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled)}.range-input-disabled.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.range-input-disabled.t-is-disabled .t-range-input__inner{color:var(--td-text-color-disabled);cursor:not-allowed}.range-input-disabled.t-is-disabled .t-range-input__inner::placeholder{color:var(--td-text-color-disabled)}.range-input-disabled.t-is-disabled>.t-range-input__prefix .t-icon,.range-input-disabled.t-is-disabled>.t-range-input__suffix .t-icon{color:var(--td-text-color-disabled)}.t-range-input{background-color:var(--td-bg-color-specialcomponent);border-color:var(--td-border-level-2-color);border-radius:var(--td-radius-default);border-style:solid;border-width:1px;box-sizing:border-box;color:var(--td-text-color-primary);display:inline-flex;flex-direction:column;font:var(--td-font-body-medium);font-size:var(--td-font-body-medium);gap:4px;height:var(--td-comp-size-m);list-style:none;margin:0;padding:0;padding:var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-s) var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-s);position:relative;transition:all .2s cubic-bezier(.38,0,.24,1);width:100%}.t-range-input:hover{border-color:var(--td-brand-color)}.t-range-input--borderless:not(.t-is-focused){border-color:transparent;transition:all .2s cubic-bezier(.38,0,.24,1)}.t-range-input--borderless:not(.t-is-focused):hover{border-color:var(--td-component-border);cursor:pointer}.t-range-input--borderless:not(.t-is-focused).t-is-disabled{background-color:var(--td-bg-color-component-disabled);border:none}.t-range-input.t-is-focused{border-color:var(--td-brand-color);box-shadow:0 0 0 2px var(--td-brand-color-focus);z-index:1}.t-range-input.t-is-success{border-color:var(--td-success-color)}.t-range-input.t-is-success.t-range-input--focused,.t-range-input.t-is-success:focus{box-shadow:0 0 0 2px var(--td-success-color-focus)}.t-range-input.t-is-success>.t-range-input__extra{color:var(--td-success-color)}.t-range-input.t-is-success>.t-range-input__tips{color:var(--td-success-color);font-size:var(--td-font-size-body-small);margin-left:calc(var(--td-comp-paddingLR-xs)*-1)}.t-range-input.t-is-warning{border-color:var(--td-warning-color)}.t-range-input.t-is-warning.t-range-input--focused,.t-range-input.t-is-warning:focus{box-shadow:0 0 0 2px var(--td-warning-color-focus)}.t-range-input.t-is-warning>.t-range-input__extra{color:var(--td-warning-color)}.t-range-input.t-is-warning>.t-range-input__tips{color:var(--td-warning-color);font-size:var(--td-font-size-body-small);margin-left:calc(var(--td-comp-paddingLR-xs)*-1)}.t-range-input.t-is-error{border-color:var(--td-error-color)}.t-range-input.t-is-error.t-range-input--focused,.t-range-input.t-is-error:focus{box-shadow:0 0 0 2px var(--td-error-color-focus)}.t-range-input.t-is-error>.t-range-input__extra{color:var(--td-error-color)}.t-range-input.t-is-error>.t-range-input__tips{color:var(--td-error-color);font-size:var(--td-font-size-body-small);margin-left:calc(var(--td-comp-paddingLR-xs)*-1)}.t-range-input.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled)}.t-range-input.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.t-range-input.t-is-disabled .t-range-input__inner{color:var(--td-text-color-disabled);cursor:not-allowed}.t-range-input.t-is-disabled .t-range-input__inner::placeholder{color:var(--td-text-color-disabled)}.t-range-input.t-is-disabled>.t-range-input__prefix .t-icon,.t-range-input.t-is-disabled>.t-range-input__suffix .t-icon{color:var(--td-text-color-disabled)}.t-range-input.t-range-input--prefix .t-range-input__prefix,.t-range-input.t-range-input--suffix .t-range-input__suffix{align-items:center;display:flex;font-size:var(--td-font-size-body-medium);height:100%;text-align:center}.t-range-input.t-size-l{font:var(--td-font-body-large);height:var(--td-comp-size-xl);padding-bottom:var(--td-comp-paddingTB-xs);padding-top:var(--td-comp-paddingTB-xs)}.t-range-input.t-size-l .t-input{padding:0 var(--td-comp-margin-s)}.t-range-input.t-size-s{font:var(--td-font-body-small);height:var(--td-comp-size-xs);padding:var(--td-comp-paddingTB-xxs) var(--td-comp-margin-xs)}.t-range-input__inner{align-items:center;display:flex;gap:var(--td-comp-margin-s);height:100%}.t-range-input__inner .t-input__wrap{border-radius:var(--td-radius-small);height:100%}.t-range-input__inner>.t-range-input__prefix{flex-shrink:0}.t-range-input__inner .t-input{border:0;border-radius:var(--td-radius-small);box-shadow:none;font-size:inherit;height:100%;padding:0 var(--td-comp-paddingLR-xs)}.t-range-input__inner .t-input:hover{background-color:var(--td-bg-color-container-hover)}.t-range-input__inner .t-input__inner{height:100%;line-height:1;width:100%}.t-range-input__inner .t-input.t-is-focused{background-color:var(--td-bg-color-component)}.t-range-input__extra{color:var(--td-text-color-placeholder);font:var(--td-font-body-small)}.t-range-input__status{position:absolute;right:calc(0px - var(--td-comp-margin-xxxl));top:0}.t-range-input.t-range-input--suffix .t-input__clear{opacity:0;transition:all .2s cubic-bezier(.38,0,.24,1);visibility:hidden}.t-range-input.t-range-input--suffix:hover .t-input__clear{opacity:1;visibility:visible}.t-range-input .t-range-input__suffix-clear{cursor:pointer}.t-range-input__prefix>.t-icon,.t-range-input__suffix>.t-icon{color:var(--td-text-color-placeholder);flex-shrink:0;font-size:16px;transition:color .2s linear}.t-range-input-popup{width:100%}.t-range-input-popup--visible .t-range-input{border-color:var(--td-brand-color);box-shadow:0 0 0 2px var(--td-brand-color-focus)}.t-range-input-popup--visible .t-range-input .t-icon-calendar,.t-range-input-popup--visible .t-range-input .t-icon-time{color:var(--td-brand-color)}.t-range-input-popup--visible .t-range-input .t-input.t-is-focused{background-color:var(--td-bg-color-component)}.t-date-picker,.t-date-range-picker{box-sizing:border-box;color:var(--td-text-color-primary);display:inline-flex;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-date-picker__header-controller-month-popup>.t-popup__content,.t-date-picker__header-controller-year-popup>.t-popup__content{max-height:160px}.t-date-picker__panel-container>.t-popup__content,.t-date-range-picker__panel-container>.t-popup__content{min-width:280px;padding:0}.t-date-picker__panel,.t-date-range-picker__panel{display:flex;flex-direction:column}.t-date-picker__panel--direction-row,.t-date-range-picker__panel--direction-row{flex-direction:row}.t-date-picker__panel .t-time-picker__panel,.t-date-range-picker__panel .t-time-picker__panel{width:216px}.t-date-picker__panel .t-time-picker__panel-section-body,.t-date-range-picker__panel .t-time-picker__panel-section-body{padding:0}.t-date-picker__panel .t-time-picker__panel-body,.t-date-range-picker__panel .t-time-picker__panel-body{margin:0}.t-date-picker__panel-content,.t-date-range-picker__panel-content,.t-date-range-picker__panel-content-wrapper{display:flex}.t-date-picker__header{align-items:center;display:flex;gap:var(--td-comp-margin-m);justify-content:space-between;width:100%}.t-date-picker__header-controller{display:inline-flex;gap:var(--td-comp-margin-s)}.t-date-picker__header-controller .t-date-picker__header-controller-month{display:flex;width:80px}.t-date-picker__header-controller .t-date-picker__header-controller-year{display:flex;width:78px}.t-date-picker__table table{border-collapse:collapse;width:100%}.t-date-picker__table table th{color:var(--td-text-color-secondary);font-weight:400;text-align:center}.t-date-picker__table table td.t-date-picker__cell{font-weight:500;text-align:center}.t-date-picker__table table td.t-date-picker__cell,.t-date-picker__table table th,.t-date-picker__table table th.t-date-picker__table-header-cell{border:0;line-height:var(--td-line-height-body-medium);padding:0}.t-date-picker__table table thead:after,.t-date-picker__table table thead:before{color:transparent;content:"-";display:block;line-height:var(--td-comp-margin-xs)}.t-date-picker__table-week-row{cursor:pointer;position:sticky}.t-date-picker__table-week-row .t-date-picker__cell:first-child .t-date-picker__cell-inner{color:var(--td-text-color-disabled)}.t-date-picker__table-week-row .t-date-picker__cell:hover .t-date-picker__cell-inner{background:none;box-shadow:none}.t-date-picker__table-week-row:after{border-radius:var(--td-radius-default);content:"";height:var(--td-comp-size-xs);left:var(--td-comp-margin-xxxl);pointer-events:none;position:absolute;right:0;top:calc(var(--td-comp-margin-xs) - 1px);transition:box-shadow .2s cubic-bezier(.38,0,.24,1),background-color .2s linear,border-color .2s linear,color .2s linear;z-index:10}.t-date-picker__table-week-row:hover .t-date-picker__cell:first-child .t-date-picker__cell-inner{color:var(--td-brand-color)}.t-date-picker__table-week-row:hover:after{box-shadow:inset 0 0 0 1px var(--td-brand-color)}.t-date-picker__table-week-row--active:after{background-color:var(--td-brand-color);opacity:1;z-index:0}.t-date-picker__table-week-row--active .t-date-picker__cell:first-child .t-date-picker__cell-inner{color:var(--td-brand-color)}.t-date-picker__table-week-row--active .t-date-picker__cell .t-date-picker__cell-inner{background:transparent;color:var(--td-text-color-anti)}.t-date-picker__table-week-row--range:after{background-color:var(--td-brand-color-light);opacity:1;z-index:0}.t-date-picker__table-week-row--range .t-date-picker__cell .t-date-picker__cell-inner{background:transparent}.t-date-picker__footer{align-items:flex-start;display:flex;gap:var(--td-comp-margin-s);justify-content:space-between;padding:var(--td-pop-padding-xl)}.t-date-picker__footer--bottom{border-top:1px solid var(--td-component-stroke)}.t-date-picker__footer--top{border-bottom:1px solid var(--td-component-stroke)}.t-date-picker__footer--left{border-right:1px solid var(--td-component-stroke);flex-direction:column}.t-date-picker__footer--left .t-date-picker__presets{flex-direction:column}.t-date-picker__footer--right{border-left:1px solid var(--td-component-stroke);flex-direction:column}.t-date-picker__footer--right .t-date-picker__presets{flex-direction:column}.t-date-picker__presets{display:flex;gap:var(--td-comp-margin-s);min-width:var(--td-comp-size-xl);white-space:nowrap}.t-date-picker__presets .t-button{cursor:pointer}.t-date-picker__presets a{color:var(--td-brand-color)}.t-date-picker__presets a:hover{color:var(--td-brand-color-hover)}.t-date-picker__panel-time,.t-date-range-picker__panel-time{border-left:1px solid var(--td-component-stroke);display:flex;flex-direction:column;gap:calc(var(--td-comp-margin-m)/2);padding:var(--td-pop-padding-xl) calc(var(--td-pop-padding-xl) - var(--td-comp-margin-xs))}.t-date-picker__panel-time-viewer,.t-date-range-picker__panel-time-viewer{align-items:center;color:var(--td-text-color-primary);display:flex;height:var(--td-comp-size-m);justify-content:center;line-height:var(--td-line-height-body-medium)}.t-date-picker__panel-time .t-time-picker__panel-body,.t-date-range-picker__panel-time .t-time-picker__panel-body{margin:0}.t-date-picker__panel-date,.t-date-picker__panel-month,.t-date-picker__panel-quarter,.t-date-picker__panel-week,.t-date-picker__panel-year{box-sizing:border-box;display:flex;flex-direction:column;gap:var(--td-comp-margin-m);padding:var(--td-pop-padding-xl);width:280px}.t-date-picker__panel-month .t-date-picker__cell--hover-highlight+.t-date-picker__cell--hover-highlight:after,.t-date-picker__panel-month .t-date-picker__cell--hover-highlight+.t-date-picker__cell--hover-highlight:before,.t-date-picker__panel-year .t-date-picker__cell--hover-highlight+.t-date-picker__cell--hover-highlight:after,.t-date-picker__panel-year .t-date-picker__cell--hover-highlight+.t-date-picker__cell--hover-highlight:before{left:calc(0px - var(--td-comp-size-xs) - var(--td-comp-margin-xxl));opacity:1}.t-date-picker__panel-month .t-date-picker__cell--hover-highlight+.t-date-picker__cell--active:after,.t-date-picker__panel-year .t-date-picker__cell--hover-highlight+.t-date-picker__cell--active:after{left:calc(0px - var(--td-comp-size-xs) - var(--td-comp-margin-xxl));opacity:1;z-index:5}.t-date-picker__panel-month .t-date-picker__cell--highlight+.t-date-picker__cell--highlight:before,.t-date-picker__panel-year .t-date-picker__cell--highlight+.t-date-picker__cell--highlight:before{left:calc(0px - var(--td-comp-size-xs) - var(--td-comp-margin-xxl))}.t-date-picker__panel-month .t-date-picker__header-controller-year,.t-date-picker__panel-quarter .t-date-picker__header-controller-year,.t-date-picker__panel-year .t-date-picker__header-controller-year{display:flex;width:130px}.t-date-picker__panel-month .t-date-picker__table table tbody,.t-date-picker__panel-quarter .t-date-picker__table table tbody,.t-date-picker__panel-year .t-date-picker__table table tbody{display:flex;flex-direction:column;gap:var(--td-comp-margin-m);width:100%}.t-date-picker__panel-month .t-date-picker__table table tbody tr,.t-date-picker__panel-quarter .t-date-picker__table table tbody tr,.t-date-picker__panel-year .t-date-picker__table table tbody tr{display:flex;justify-content:space-between}.t-date-picker__panel-month .t-date-picker__cell--disabled+.t-date-picker__cell--disabled:before,.t-date-picker__panel-quarter .t-date-picker__cell--disabled+.t-date-picker__cell--disabled:before,.t-date-picker__panel-year .t-date-picker__cell--disabled+.t-date-picker__cell--disabled:before{left:calc(0px - var(--td-comp-size-xxxl))}.t-date-picker__panel-month .t-date-picker__cell:first-child,.t-date-picker__panel-quarter .t-date-picker__cell:first-child,.t-date-picker__panel-year .t-date-picker__cell:first-child{text-align:left}.t-date-picker__panel-month .t-date-picker__cell:nth-child(3),.t-date-picker__panel-quarter .t-date-picker__cell:nth-child(3),.t-date-picker__panel-year .t-date-picker__cell:nth-child(3){text-align:right}.t-date-picker__panel-month .t-date-picker__cell-inner,.t-date-picker__panel-quarter .t-date-picker__cell-inner,.t-date-picker__panel-year .t-date-picker__cell-inner{width:var(--td-comp-size-xxl)}.t-date-picker__cell{cursor:pointer;padding:0;position:relative}.t-date-picker__cell:after,.t-date-picker__cell:before{border-radius:var(--td-radius-default);content:"";height:var(--td-comp-size-xs);left:-5%;opacity:0;position:absolute;right:-5%;top:50%;transform:translateY(-50%);transition:opacity .2s cubic-bezier(0,0,.15,1);z-index:1}.t-date-picker__cell:hover .t-date-picker__cell-inner{box-shadow:inset 0 0 0 1px var(--td-brand-color)}.t-date-picker__cell-inner{align-items:center;border-radius:var(--td-radius-default);display:inline-flex;height:var(--td-comp-size-xs);justify-content:center;margin:calc(var(--td-comp-margin-xs) - 1px);position:relative;transition:box-shadow .2s cubic-bezier(.38,0,.24,1),background-color .2s linear,border-color .2s linear,color .2s linear;width:var(--td-comp-size-xs);z-index:5}.t-date-picker__cell--now .t-date-picker__cell-inner{background:var(--td-brand-color-light);color:var(--td-brand-color)}.t-date-picker__cell--highlight:before,.t-date-picker__cell--hover-highlight:after{background-color:var(--td-brand-color-light);opacity:1}.t-date-picker__cell--highlight.t-date-picker__cell--hover-highlight:after{background-color:rgba(0,0,0,.06);opacity:1}.t-date-picker__cell--additional:hover .t-date-picker__cell-inner{background-color:var(--td-bg-color-container-hover);border-color:var(--td-bg-color-container-hover);box-shadow:none}.t-date-picker__cell--additional .t-date-picker__cell-inner{color:var(--td-text-color-disabled)}.t-date-picker__cell--active .t-date-picker__cell-inner{background-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-date-picker__cell--active-start:before{border-bottom-left-radius:var(--td-radius-default);border-top-left-radius:var(--td-radius-default);left:calc(var(--td-comp-margin-xs)*2 - 2px);opacity:1}.t-date-picker__cell--active-start:hover:before{left:-5%}.t-date-picker__cell--active-end:before{border-bottom-right-radius:var(--td-radius-default);border-top-right-radius:var(--td-radius-default);opacity:1;right:calc(var(--td-comp-margin-xs)*2 - 2px)}.t-date-picker__cell--active-end:hover:before{right:-5%}.t-date-picker__cell--disabled:hover .t-date-picker__cell-inner{background-color:var(--td-bg-color-component-disabled);box-shadow:none}.t-date-picker__cell--disabled .t-date-picker__cell-inner{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:not-allowed}.t-date-picker__cell--disabled+.t-date-picker__cell--disabled:before{background-color:var(--td-bg-color-component-disabled);border-radius:var(--td-radius-default);left:calc(0px - var(--td-comp-size-l));opacity:1}.t-date-picker__input--placeholder input{color:var(--td-text-color-placeholder)}.t-form{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;padding:0}.t-form,.t-form:not(.t-form-inline) .t-form__item:last-of-type{margin:0}.t-form__item{margin-bottom:var(--td-comp-margin-xxl)}.t-form__item.t-form__item-with-help{margin-bottom:var(--td-comp-margin-xs)}.t-form__item.t-form__item-with-extra{margin-bottom:var(--td-comp-margin-xxl)}.t-form__label{box-sizing:border-box;color:var(--td-text-color-primary);float:left;line-height:var(--td-comp-margin-xxxl);padding-right:var(--td-comp-paddingLR-xl);vertical-align:middle;white-space:nowrap}.t-form__label--top{float:none;min-height:var(--td-comp-margin-xxxl)}.t-form__label--left{text-align:left}.t-form__label--right{text-align:right}.t-form__label--required:not(.t-form__label--required-right) label:before{color:var(--td-error-color);content:"*";display:inline-block;line-height:var(--td-line-height-body-medium);margin-right:var(--td-comp-margin-xs)}.t-form__label--required-right label:after{color:var(--td-error-color);content:"*";display:inline-block;line-height:var(--td-line-height-body-medium);margin-left:var(--td-comp-margin-xs)}.t-form__label--colon label:after{content:":";margin:0 var(--td-comp-margin-xxs);position:relative}.t-form__controls{display:flow-root;min-height:var(--td-comp-margin-xxxl);position:relative}.t-form__controls-content{align-items:center;display:flex;min-height:var(--td-comp-margin-xxxl)}.t-form__controls .t-form__item{margin-bottom:0;margin-right:var(--td-comp-margin-xxl)}.t-form__controls.t-form--success-border.t-is-success .t-input__extra,.t-form__controls.t-is-success .t-form__status .t-icon,.t-form__controls.t-is-success .t-input__extra{color:var(--td-success-color)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-cascader,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-input,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-radio-button,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-range-input,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-textarea__inner{border-color:var(--td-success-color)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-cascader--focused,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-input--focused,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-radio-button--focused,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-range-input--focused,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select--focused,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-textarea__inner--focused{box-shadow:0 0 0 2px var(--td-success-color-focus)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-cascader .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-cascader .t-icon,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-input .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-input .t-icon,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-radio-button .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-radio-button .t-icon,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-range-input .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-range-input .t-icon,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select .t-icon,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select>.t-select__right-icon:not(.t-select__right-icon-clear),.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-textarea__inner .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-textarea__inner .t-icon{color:var(--td-success-color)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-radio-button:last-child{border-right-color:var(--td-success-color)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-cascader.t-is-active,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select.t-is-active,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-textarea__inner.t-is-focused{box-shadow:0 0 0 2px var(--td-success-color-focus)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-form__status .t-icon{color:var(--td-success-color)}.t-form__status{display:flex;margin:0 var(--td-comp-margin-s)}.t-form__status>.t-icon{font-size:var(--td-comp-size-xxxs)}.t-form__status-without-icon{height:25px;width:25px}.t-form__status button{width:var(--td-comp-size-m)}.t-form__status button+button{margin-left:var(--td-comp-margin-s)}.t-form-inline{display:flex;flex-wrap:wrap;row-gap:var(--td-comp-margin-l)}.t-form-inline .t-form__item{display:inline-block;margin:0;margin-right:var(--td-comp-margin-xxl);min-width:200px}.t-input__extra,.t-input__help{color:var(--td-text-color-placeholder);font:var(--td-font-body-small);height:auto;margin:0;min-height:var(--td-line-height-body-small);width:100%}.t-input__extra{bottom:calc(0px - var(--td-line-height-body-small));max-width:100%;overflow:hidden;position:absolute;text-overflow:ellipsis;white-space:nowrap}.t-is-warning .t-input__extra{color:var(--td-warning-color)}.t-is-warning .t-form__controls-content .t-cascader,.t-is-warning .t-form__controls-content .t-input,.t-is-warning .t-form__controls-content .t-radio-button,.t-is-warning .t-form__controls-content .t-range-input,.t-is-warning .t-form__controls-content .t-select,.t-is-warning .t-form__controls-content .t-textarea__inner{border-color:var(--td-warning-color)}.t-is-warning .t-form__controls-content .t-cascader--focused,.t-is-warning .t-form__controls-content .t-input--focused,.t-is-warning .t-form__controls-content .t-radio-button--focused,.t-is-warning .t-form__controls-content .t-range-input--focused,.t-is-warning .t-form__controls-content .t-select--focused,.t-is-warning .t-form__controls-content .t-textarea__inner--focused{box-shadow:0 0 0 2px var(--td-warning-color-focus)}.t-is-warning .t-form__controls-content .t-cascader .t-fake-arrow,.t-is-warning .t-form__controls-content .t-cascader .t-icon,.t-is-warning .t-form__controls-content .t-input .t-fake-arrow,.t-is-warning .t-form__controls-content .t-input .t-icon,.t-is-warning .t-form__controls-content .t-radio-button .t-fake-arrow,.t-is-warning .t-form__controls-content .t-radio-button .t-icon,.t-is-warning .t-form__controls-content .t-range-input .t-fake-arrow,.t-is-warning .t-form__controls-content .t-range-input .t-icon,.t-is-warning .t-form__controls-content .t-select .t-fake-arrow,.t-is-warning .t-form__controls-content .t-select .t-icon,.t-is-warning .t-form__controls-content .t-select>.t-select__right-icon:not(.t-select__right-icon-clear),.t-is-warning .t-form__controls-content .t-textarea__inner .t-fake-arrow,.t-is-warning .t-form__controls-content .t-textarea__inner .t-icon{color:var(--td-warning-color)}.t-is-warning .t-form__controls-content .t-radio-button:last-child{border-right-color:var(--td-warning-color)}.t-is-warning .t-form__controls-content .t-cascader.t-is-active,.t-is-warning .t-form__controls-content .t-select.t-is-active,.t-is-warning .t-form__controls-content .t-textarea__inner.t-is-focused{box-shadow:0 0 0 2px var(--td-warning-color-focus)}.t-is-warning .t-form__controls-content .t-form__status .t-icon{color:var(--td-warning-color)}.t-is-error .t-input__extra{color:var(--td-error-color)}.t-is-error .t-form__controls-content .t-cascader,.t-is-error .t-form__controls-content .t-input,.t-is-error .t-form__controls-content .t-radio-button,.t-is-error .t-form__controls-content .t-range-input,.t-is-error .t-form__controls-content .t-select,.t-is-error .t-form__controls-content .t-textarea__inner{border-color:var(--td-error-color)}.t-is-error .t-form__controls-content .t-cascader--focused,.t-is-error .t-form__controls-content .t-input--focused,.t-is-error .t-form__controls-content .t-radio-button--focused,.t-is-error .t-form__controls-content .t-range-input--focused,.t-is-error .t-form__controls-content .t-select--focused,.t-is-error .t-form__controls-content .t-textarea__inner--focused{box-shadow:0 0 0 2px var(--td-error-color-focus)}.t-is-error .t-form__controls-content .t-cascader .t-fake-arrow,.t-is-error .t-form__controls-content .t-cascader .t-icon,.t-is-error .t-form__controls-content .t-input .t-fake-arrow,.t-is-error .t-form__controls-content .t-input .t-icon,.t-is-error .t-form__controls-content .t-radio-button .t-fake-arrow,.t-is-error .t-form__controls-content .t-radio-button .t-icon,.t-is-error .t-form__controls-content .t-range-input .t-fake-arrow,.t-is-error .t-form__controls-content .t-range-input .t-icon,.t-is-error .t-form__controls-content .t-select .t-fake-arrow,.t-is-error .t-form__controls-content .t-select .t-icon,.t-is-error .t-form__controls-content .t-select>.t-select__right-icon:not(.t-select__right-icon-clear),.t-is-error .t-form__controls-content .t-textarea__inner .t-fake-arrow,.t-is-error .t-form__controls-content .t-textarea__inner .t-icon{color:var(--td-error-color)}.t-is-error .t-form__controls-content .t-radio-button:last-child{border-right-color:var(--td-error-color)}.t-is-error .t-form__controls-content .t-cascader.t-is-active,.t-is-error .t-form__controls-content .t-select.t-is-active,.t-is-error .t-form__controls-content .t-textarea__inner.t-is-focused{box-shadow:0 0 0 2px var(--td-error-color-focus)}.t-is-error .t-form__controls-content .t-form__status .t-icon{color:var(--td-error-color)}.t-radio-group{align-items:center;border-radius:var(--td-radius-default);box-sizing:border-box;color:var(--td-text-color-primary);display:inline-flex;flex-wrap:wrap;font:var(--td-font-body-medium);list-style:none;margin:0;max-width:100%;padding:0;width:fit-content}@-moz-document url-prefix(){.t-radio-group{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-radio-group::-webkit-scrollbar{height:4px;width:4px}.t-radio-group::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:7px}.t-radio-group::-webkit-scrollbar-thumb:horizontal:hover,.t-radio-group::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-radio-group .t-radio{margin-right:var(--td-comp-margin-xxl)}.t-radio-group.t-radio-group__outline{flex-wrap:wrap;row-gap:var(--td-comp-margin-xs)}.t-radio-group.t-radio-group__outline.t-size-s .t-radio-button{height:var(--td-comp-size-xs)}.t-radio-group.t-radio-group__outline.t-size-m .t-radio-button{height:var(--td-comp-size-m)}.t-radio-group.t-radio-group__outline.t-size-l .t-radio-button{height:var(--td-comp-size-xl)}.t-radio-group.t-radio-group__outline .t-radio-button:first-child{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-radio-group.t-radio-group__outline .t-radio-button:last-child{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-radio-group.t-radio-group__outline .t-radio-button:only-child{border-radius:var(--td-radius-default)}.t-radio-group.t-radio-group__outline .t-radio-button.t-is-checked{color:var(--td-brand-color)}.t-radio-group.t-radio-group__outline .t-radio-button.t-is-disabled.t-is-checked{background-color:var(--td-bg-color-specialcomponent);border-color:var(--td-brand-color-disabled);color:var(--td-brand-color-disabled)}.t-radio-group.t-radio-group--filled{background-color:var(--td-bg-color-component);border-color:var(--td-bg-color-component);border-radius:var(--td-radius-default);padding:var(--td-comp-paddingTB-xxs) var(--td-comp-paddingLR-xxs);position:relative}.t-radio-group.t-radio-group--filled .t-radio-group__bg-block{background-color:var(--td-bg-color-container-select);border-radius:var(--td-radius-small);height:calc(100% - 4px);left:2px;position:absolute;top:2px;transition:all .2s cubic-bezier(.38,0,.24,1);width:0}.t-radio-group.t-radio-group--filled .t-radio-button{background-color:transparent;border:0;color:var(--td-text-color-secondary)}.t-radio-group.t-radio-group--filled .t-radio-button:hover{color:var(--td-text-color-primary)}.t-radio-group.t-radio-group--filled .t-radio-button:before{background-color:var(--td-component-border);content:"";height:calc(100% - 16px);left:0;position:absolute;top:50%;transform:translateY(-50%);transition:opacity .2s cubic-bezier(0,0,.15,1);width:1px}.t-radio-group.t-radio-group--filled .t-radio-button:first-child:before{opacity:0}.t-radio-group.t-radio-group--filled .t-radio-button.t-is-checked{border:0;color:var(--td-text-color-primary);position:relative;transition:color .2s linear;z-index:1}.t-radio-group.t-radio-group--filled .t-radio-button.t-is-checked+label:before,.t-radio-group.t-radio-group--filled .t-radio-button.t-is-checked:before{opacity:0}.t-radio-group.t-radio-group--filled .t-radio-button.t-is-disabled{background-color:transparent}.t-radio-group.t-radio-group--filled .t-radio-button.t-is-disabled.t-is-checked{color:var(--td-text-color-disabled)}.t-radio-group.t-radio-group--filled .t-radio-button.t-is-disabled.t-is-checked~.t-radio-group__bg-block{background-color:var(--td-bg-color-component-disabled)}.t-radio-group.t-radio-group--primary-filled .t-radio-group__bg-block{background-color:var(--td-brand-color)}.t-radio-group.t-radio-group--primary-filled .t-radio-button.t-is-checked,.t-radio-group.t-radio-group--primary-filled .t-radio-button.t-is-disabled.t-is-checked{color:var(--td-text-color-anti)}.t-radio-group.t-radio-group--primary-filled .t-radio-button.t-is-disabled.t-is-checked~.t-radio-group__bg-block{background-color:var(--td-brand-color-disabled)}.t-radio-group.t-size-s .t-radio-button{font:var(--td-font-body-small);height:calc(var(--td-comp-size-xs) - var(--td-comp-paddingTB-xxs)*2);padding:0 var(--td-comp-paddingLR-s)}.t-radio-group.t-size-s .t-radio-button:before{height:calc(100% - 16px)}.t-radio-group.t-size-m .t-radio-button{font:var(--td-font-body-medium);height:calc(var(--td-comp-size-m) - var(--td-comp-paddingTB-xxs)*2);padding:var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-l)}.t-radio-group.t-size-m .t-radio-button:before{height:calc(100% - 20px)}.t-radio-group.t-size-l .t-radio-button{font:var(--td-font-body-large);height:calc(var(--td-comp-size-xl) - var(--td-comp-paddingTB-xxs)*2);padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-xl)}.t-radio-group.t-size-l .t-radio-button:before{height:calc(100% - 24px)}.t-radio-group .t-radio-button{align-items:center;border:1px solid;border-color:var(--td-border-level-2-color);border-right:0;box-sizing:border-box;color:var(--td-text-color-primary);cursor:pointer;display:inline-flex;position:relative;transition:color .2s cubic-bezier(0,0,.15,1);white-space:nowrap}.t-radio-group .t-radio-button:first-child{border-radius:var(--td-radius-small) 0 0 var(--td-radius-small)}.t-radio-group .t-radio-button:last-child{border-radius:0 var(--td-radius-small) var(--td-radius-small) 0;border-right:1px solid;border-right-color:var(--td-border-level-2-color)}.t-radio-group .t-radio-button__former{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:0;list-style:none;margin:0;opacity:0;padding:0;width:0}.t-radio-group .t-radio-button:hover{color:var(--td-brand-color)}.t-radio-group .t-radio-button.t-is-checked{border-right:1px solid;border-color:var(--td-brand-color);transition:border-color .2s cubic-bezier(0,0,.15,1)}.t-radio-group .t-radio-button.t-is-checked+.t-radio-button{border-left:0}.t-radio-group .t-radio-button.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:not-allowed}.t-radio-group .t-radio-button.t-is-disabled:hover{border-color:var(--td-border-level-2-color);color:var(--td-text-color-disabled)}.t-radio-group .t-radio-button.t-is-disabled:hover:after{width:0}.t-radio-group .t-radio-button.t-is-disabled.t-is-checked{color:var(--td-text-color-disabled)}.t-radio-group .t-radio-button.t-is-disabled.t-is-checked:after{width:0}.t-radio{cursor:pointer;display:inline-block;position:relative}.t-radio,.t-radio__former{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-radio__former{opacity:0;position:absolute}.t-radio__input{background-color:var(--td-bg-color-container);border:1px solid var(--td-border-level-2-color);border-radius:var(--td-radius-circle);display:inline-block;height:16px;position:relative;transition:border .2s cubic-bezier(0,0,.15,1);vertical-align:middle;width:16px}.t-radio__input:after{background-color:var(--td-brand-color);border-radius:var(--td-radius-circle);content:"";height:16px;left:50%;margin-left:-8px;margin-top:-8px;opacity:0;position:absolute;top:50%;transform:scale(.5);transition:all .2s cubic-bezier(0,0,.15,1);width:16px}.t-radio__label{color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);margin-left:var(--td-comp-margin-s);vertical-align:middle;white-space:nowrap}.t-radio.t-is-checked .t-radio__input,.t-radio:hover .t-radio__input{border-color:var(--td-brand-color)}.t-radio.t-is-checked .t-radio__input:after{opacity:1}.t-radio.t-is-disabled{cursor:not-allowed}.t-radio.t-is-disabled .t-radio__label{color:var(--td-text-color-disabled)}.t-radio.t-is-disabled .t-radio__input{background-color:var(--td-bg-color-component-disabled)}.t-radio.t-is-disabled.t-is-checked .t-radio__input,.t-radio.t-is-disabled:hover .t-radio__input{border-color:var(--td-border-level-2-color)}.t-radio.t-is-disabled.t-is-checked .t-radio__input:after{background-color:var(--td-text-color-disabled)}.t-radio:focus-visible:focus-visible{border-radius:0;outline:2px solid var(--td-brand-color);outline-offset:var(--td-comp-paddingTB-xs)}.t-slider__input-container{align-items:center;display:flex;margin-left:var(--td-comp-margin-xxl)}.t-slider__input-container.is-vertical{margin-left:0;padding-top:var(--td-comp-paddingTB-l)}.t-slider__input-container .t-slider__center-line{background:rgba(0,0,0,.9);height:1px;margin:0 var(--td-comp-margin-s);width:var(--td-size-4)}.t-slider{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:calc(var(--td-comp-paddingTB-xs)*2 + var(--td-size-2));list-style:none;margin:0;padding:0;padding:var(--td-comp-paddingTB-xs) 0;position:relative;width:100%}.t-slider__container{align-items:center;display:flex;justify-content:center;width:100%}.t-slider__container.is-vertical{flex-direction:column;height:100%}.t-slider__rail{background-color:var(--td-bg-color-secondarycomponent);border-radius:var(--td-radius-round);height:var(--td-size-2);position:absolute;transition:.2s linear;width:100%}.t-slider__rail:hover{background-color:var(--td-bg-color-secondarycomponent-hover)}.t-slider__track{background-color:var(--td-brand-color);border-radius:var(--td-radius-round);right:auto}.t-slider__step,.t-slider__track{height:var(--td-size-2);position:absolute}.t-slider__step{cursor:pointer;width:100%}.t-slider__button{background-color:#fff;border:2px solid var(--td-brand-color);border-radius:var(--td-radius-circle);box-shadow:var(--td-shadow-1);box-sizing:border-box;height:var(--td-comp-size-xxxs);transition:.2s;user-select:none;width:var(--td-comp-size-xxxs)}.t-slider__button--dragging{box-shadow:0 0 0 2px var(--td-brand-color-focus)}.t-slider__button:hover{background-color:var(--td-gray-color-1)}.t-slider__button-wrapper{align-items:center;background-color:transparent;cursor:pointer;display:flex;line-height:normal;outline:none;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%);user-select:none;z-index:2}.t-slider__stop{background-color:var(--td-bg-color-secondarycomponent);height:var(--td-size-2);position:absolute;top:4px;width:1px}.t-slider__mark{left:0;position:absolute;top:2px;width:100%}.t-slider__mark-text{color:var(--td-text-color-primary);cursor:pointer;display:inline-block;font:var(--td-font-body-small);position:absolute;top:calc(var(--td-size-2) + var(--td-comp-paddingTB-xs) + 2px);transform:translateX(-50%);white-space:nowrap}.t-slider__mark-text:first-child{transform:translateX(0)}.t-slider__mark-text:last-child{transform:translateX(-100%)}.t-slider--vertical{display:flex;height:100%;justify-content:center;padding:0;position:relative}.t-slider--vertical .t-slider__rail{height:100%;width:var(--td-size-2)}.t-slider--vertical .t-slider__track{top:auto;width:var(--td-size-2)}.t-slider--vertical .t-slider__step{height:100%;width:var(--td-size-2)}.t-slider--vertical .t-slider__handle{margin-left:-5px;margin-top:-6px;top:auto;transform:translateY(50%)}.t-slider--vertical .t-slider__mark{height:100%;left:12px;top:0;width:18px}.t-slider--vertical .t-slider__stop{background-color:var(--td-bg-color-secondarycomponent);height:1px;left:4px;width:var(--td-size-2)}.t-slider--vertical .t-slider__mark-text{margin-left:var(--td-comp-margin-xxs);margin-top:0;transform:translateY(-50%)}.t-slider--vertical .t-slider__button-wrapper{align-items:center;background-color:transparent;cursor:pointer;display:flex;left:50%;line-height:normal;outline:none;position:absolute;text-align:center;top:auto;transform:translate(-50%,50%);user-select:none;z-index:2}.t-is-disabled{cursor:not-allowed}.t-is-disabled .t-slider__track{background-color:var(--td-brand-color-disabled)}.t-is-disabled .t-slider__rail{background-color:var(--td-bg-color-component-disabled)}.t-is-disabled .t-slider__handle{border:2px solid var(--td-brand-color-disabled)}.t-is-disabled .t-slider__button{border-color:var(--td-brand-color-disabled);outline:none}.t-is-disabled .t-slider__mark-text{color:var(--td-text-color-disabled);cursor:not-allowed}.t-is-disabled .t-slider__button-wrapper{cursor:not-allowed}.t-switch{align-items:center;background-color:var(--td-bg-color-secondarycomponent);border:0;border-radius:var(--td-radius-round);box-sizing:border-box;color:var(--td-text-color-primary);cursor:pointer;display:inline-flex;font:var(--td-font-body-medium);height:var(--td-comp-size-xxs);line-height:var(--td-comp-size-xxs);list-style:none;margin:0;min-width:calc(var(--td-comp-size-xxs)/.618);outline:none;padding:0;position:relative;transition:all .2s cubic-bezier(.38,0,.24,1);user-select:none;vertical-align:middle}.t-switch:hover{background-color:var(--td-bg-color-secondarycomponent-hover)}.t-switch__handle{align-items:center;border-radius:var(--td-radius-round);box-shadow:var(--td-shadow-1);display:flex;height:calc(var(--td-comp-size-xxs) - 8px);justify-content:center;left:4px;position:absolute;top:4px;transition:all .2s cubic-bezier(.38,0,.24,1);width:calc(var(--td-comp-size-xxs) - 8px)}.t-switch__handle .t-icon{color:transparent;font-size:calc(var(--td-comp-size-xxs) - 4px)}.t-switch__handle:before{background-color:#fff;border-radius:var(--td-radius-round);bottom:0;content:"";left:0;position:absolute;right:0;top:0;transition:all .2s cubic-bezier(.38,0,.24,1)}.t-switch:active:not(.t-is-disabled):not(.t-is-loading) .t-switch__handle:before{left:0;right:-6px}.t-switch:active:not(.t-is-disabled):not(.t-is-loading).t-is-checked .t-switch__handle:before{left:-6px;right:0}.t-switch:active:not(.t-is-disabled):not(.t-is-loading) .t-switch__content{opacity:0}.t-switch__content{align-items:center;box-sizing:border-box;color:var(--td-text-color-anti);display:inline-flex;font-size:var(--td-font-size-body-small);min-width:calc(var(--td-comp-size-xxs)/.618);padding:0 var(--td-comp-margin-xs) 0 calc(var(--td-comp-size-xxs)/.618/2 + 2px);transition:padding .2s cubic-bezier(.38,0,.24,1),opacity .2s linear}.t-switch__content .t-icon{font-size:var(--td-font-size-body-large)}.t-switch.t-is-checked{background-color:var(--td-brand-color)}.t-switch.t-is-checked:hover{background-color:var(--td-brand-color-hover)}.t-switch.t-is-checked .t-switch__handle{height:calc(var(--td-comp-size-xxs) - 5px);left:calc(100% - 2.5px);top:2.5px;transform:translate(-100%);width:calc(var(--td-comp-size-xxs) - 5px)}.t-switch.t-is-checked .t-switch__content{color:var(--td-text-color-anti);padding:0 calc(var(--td-comp-size-xxs)/.618/2 + 2px) 0 var(--td-comp-margin-xs)}.t-switch.t-is-loading{background-color:var(--td-bg-color-component-disabled);cursor:not-allowed}.t-switch.t-is-loading .t-loading{display:inline-flex}.t-switch.t-is-loading .t-switch__handle .t-icon{color:var(--td-bg-color-component-disabled)}.t-switch.t-is-loading.t-is-checked{background-color:var(--td-brand-color-focus)}.t-switch.t-is-loading.t-is-checked .t-switch__handle .t-icon{color:var(--td-brand-color-focus)}.t-switch.t-is-disabled{background-color:var(--td-bg-color-component-disabled);cursor:not-allowed}.t-switch.t-is-disabled .t-switch__handle{box-shadow:none}.t-switch.t-is-disabled.t-is-checked{background-color:var(--td-brand-color-disabled)}.t-switch.t-is-disabled.t-is-checked .t-switch__handle{box-shadow:none}.t-switch.t-is-disabled.t-is-checked .t-switch__handle .t-icon{color:var(--td-brand-color-disabled)}.t-switch.t-size-l{border-radius:var(--td-radius-round);height:var(--td-comp-size-xs);line-height:var(--td-comp-size-xs);min-width:calc(var(--td-comp-size-xs)/.618)}.t-switch.t-size-l:active:not(.t-is-disabled):not(.t-is-loading) .t-switch__handle:before{left:0;right:-8px}.t-switch.t-size-l:active:not(.t-is-disabled):not(.t-is-loading).t-is-checked .t-switch__handle:before{left:-8px;right:0}.t-switch.t-size-l .t-switch__handle{height:calc(var(--td-comp-size-xs) - 10px);left:5px;top:5px;width:calc(var(--td-comp-size-xs) - 10px)}.t-switch.t-size-l .t-switch__handle .t-icon{font-size:calc(var(--td-comp-size-xs) - 4px)}.t-switch.t-size-l .t-switch__content{min-width:calc(var(--td-comp-size-xs)/.618);padding:0 var(--td-comp-margin-s) 0 calc(var(--td-comp-size-xs)/.618/2 + 4px)}.t-switch.t-size-l .t-switch__content,.t-switch.t-size-l .t-switch__content .t-icon{font-size:var(--td-font-size-body-large)}.t-switch.t-size-l.t-is-checked .t-switch__handle{height:calc(var(--td-comp-size-xs) - 6px);left:calc(100% - 3px);top:3px;width:calc(var(--td-comp-size-xs) - 6px)}.t-switch.t-size-l.t-is-checked .t-switch__content{padding:0 calc(var(--td-comp-size-xs)/.618/2 + 4px) 0 var(--td-comp-margin-s)}.t-switch.t-size-s{border-radius:var(--td-radius-round);height:var(--td-comp-size-xxxs);line-height:var(--td-comp-size-xxxs);min-width:calc(var(--td-comp-size-xxxs)/.618)}.t-switch.t-size-s:active:not(.t-is-disabled):not(.t-is-loading) .t-switch__handle:before{left:0;right:-4px}.t-switch.t-size-s:active:not(.t-is-disabled):not(.t-is-loading).t-is-checked .t-switch__handle:before{left:-4px;right:0}.t-switch.t-size-s .t-switch__handle{height:calc(var(--td-comp-size-xxxs) - 6px);left:3px;top:3px;width:calc(var(--td-comp-size-xxxs) - 6px)}.t-switch.t-size-s .t-switch__handle .t-icon{font-size:calc(var(--td-comp-size-xxxs) - 4px)}.t-switch.t-size-s .t-switch__content{font-size:9px;min-width:calc(var(--td-comp-size-xxxs)/.618);padding:0 var(--td-comp-margin-xxs) 0 calc(var(--td-comp-size-xxxs)/.618/2 + 2px)}.t-switch.t-size-s .t-switch__content .t-icon{font-size:var(--td-font-size-body-large)}.t-switch.t-size-s.t-is-checked .t-switch__handle{height:calc(var(--td-comp-size-xxxs) - 4px);left:calc(100% - 2px);top:2px;width:calc(var(--td-comp-size-xxxs) - 4px)}.t-switch.t-size-s.t-is-checked .t-switch__content{padding:0 calc(var(--td-comp-size-xxxs)/.618/2 + 2px) 0 var(--td-comp-margin-xxs)}.t-textarea{list-style:none;margin:0;padding:0;position:relative}.t-textarea,.t-textarea__inner{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);width:100%}.t-textarea__inner{background-color:var(--td-bg-color-specialcomponent);border:1px solid var(--td-border-level-2-color);border-radius:var(--td-radius-default);display:flex;height:var(--td-comp-size-xxxl);outline:none;padding:calc(var(--td-comp-size-m)/2 - var(--td-line-height-body-medium)/2) var(--td-comp-paddingLR-s);resize:vertical;transition:all .2s cubic-bezier(.38,0,.24,1),height 0s}.t-textarea__inner:focus,.t-textarea__inner:hover{border-color:var(--td-brand-color)}.t-textarea__inner:focus{box-shadow:0 0 0 2px var(--td-brand-color-focus)}.t-textarea__inner::placeholder{color:var(--td-text-color-placeholder)}.t-textarea__inner.t-is-success{border-color:var(--td-success-color)}.t-textarea__inner.t-is-success:focus{box-shadow:0 0 0 2px var(--td-success-color-focus)}.t-textarea__inner.t-is-warning{border-color:var(--td-warning-color)}.t-textarea__inner.t-is-warning:focus{box-shadow:0 0 0 2px var(--td-warning-color-focus)}.t-textarea__inner.t-is-error{border-color:var(--td-error-color)}.t-textarea__inner.t-is-error:focus{box-shadow:0 0 0 2px var(--td-error-color-focus)}.t-textarea__info_wrapper{column-gap:var(--td-comp-margin-s);display:flex;justify-content:space-between}.t-textarea__info_wrapper_align{justify-content:end}.t-textarea__limit{color:var(--td-text-color-placeholder);font:var(--td-font-body-small)}.t-textarea .t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:not-allowed}.t-textarea .t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.t-textarea .t-is-disabled::placeholder{color:var(--td-text-color-disabled)}.t-textarea .t-resize-none{resize:none}.t-textarea__tips{display:inline-block;font:var(--td-font-body-small);height:auto;min-height:var(--td-comp-size-xs)}.t-textarea__tips--normal{color:var(--td-text-color-placeholder)}.t-textarea__tips--success{color:var(--td-success-color)}.t-textarea__tips--warning{color:var(--td-warning-color)}.t-textarea__tips--error{color:var(--td-error-color)}.t-transfer{align-items:stretch;background:transparent;box-sizing:border-box;color:var(--td-text-color-primary);display:flex;flex-direction:row;font:var(--td-font-body-medium);list-style:none;margin:0;max-height:100%;padding:0;position:relative}.t-transfer__list{border:0;display:inline-block;height:200px;min-width:200px;padding-top:var(--td-comp-size-xxl);position:relative;vertical-align:middle;word-break:break-word}.t-transfer__list-source,.t-transfer__list-target{border:1px solid var(--td-border-level-1-color);border-radius:var(--td-radius-medium)}.t-transfer__list-header{box-sizing:border-box;display:flex;height:var(--td-comp-size-xxl);justify-content:space-between;line-height:var(--td-comp-size-xxl);margin:0 var(--td-comp-margin-s);padding:0 var(--td-comp-paddingLR-s);position:absolute;top:0;width:calc(200px - var(--td-comp-margin-s)*2)}.t-transfer__list-header+:not(.t-transfer__list--with-search){border-top:1px solid var(--td-border-level-1-color)}.t-transfer__list-header .t-checkbox{margin-right:0}.t-transfer__list-header .t-checkbox__label{margin:0}.t-transfer__list-header div{display:flex}.t-transfer__list-header div>span{margin-left:var(--td-comp-margin-s)}.t-transfer__list-header>span{color:var(--td-text-color-placeholder)}.t-transfer__list-body{box-sizing:border-box;height:100%;position:relative}.t-transfer__list--with-search{border-top:0;padding-top:var(--td-comp-size-m)}.t-transfer__list-content{height:100%;overflow:auto;width:100%}.t-transfer__list-content .t-checkbox-group{flex-direction:column;gap:var(--td-comp-margin-xs);margin:var(--td-comp-margin-s) 0;width:100%}.t-transfer__list-content .t-checkbox-group .t-checkbox{--ripple-color:var(--td-bg-color-container-active);margin-right:var(--td-comp-margin-s)}.t-transfer__list-content .t-checkbox-group .t-checkbox+.t-checkbox{margin-left:var(--td-comp-margin-s)}.t-transfer__list-content .t-checkbox-group .t-checkbox__label{flex:1;margin:0}.t-transfer__list-content .t-checkbox-group .t-checkbox__label>span{display:inline-block;margin-left:var(--td-comp-margin-s)}.t-transfer__list .t-transfer__list-item{border-radius:var(--td-radius-default);cursor:pointer;display:flex;margin:0 var(--td-comp-margin-s);padding:var(--td-comp-paddingLR-xs) var(--td-comp-paddingLR-s);transition:background-color .2s cubic-bezier(.38,0,.24,1)}.t-transfer__list .t-transfer__list-item:first-child{margin-top:0}.t-transfer__list .t-transfer__list-item.t-is-disabled:hover{background:transparent}.t-transfer__list-item:hover{background:var(--td-bg-color-container-hover);transition:background-color .2s cubic-bezier(.38,0,.24,1)}.t-transfer__list-item.t-is-checked{background:var(--td-brand-color-light)}.t-transfer__list-wrapper{height:100%;overflow:auto;padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-m);position:relative;width:100%}.t-transfer__list-pagination{height:var(--td-comp-size-xs);padding:var(--td-comp-paddingTB-m);vertical-align:middle}.t-transfer__list-footer{border-top:1px solid var(--td-border-level-1-color);bottom:0;left:0;position:absolute;width:100%}.t-transfer__operations{display:inline-flex;flex-direction:column;gap:var(--td-comp-margin-l);margin:auto var(--td-comp-margin-s);overflow:hidden;vertical-align:middle}.t-transfer__operations .t-icon{font-size:var(--td-comp-size-xxxs)}.t-transfer__operations .t-icon+.t-button__text{margin-left:0}.t-transfer__empty{color:var(--td-text-color-placeholder);left:50%;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%)}.t-transfer__search-wrapper{box-sizing:border-box;padding:0 var(--td-comp-margin-s);position:absolute;top:0;width:100%}.t-transfer__search .t-transfer__list{height:240px}.t-transfer--with-tree .t-transfer__list{height:auto}.t-transfer--with-tree .t-transfer__list .t-tree{margin:var(--td-comp-margin-s) 0;padding:0 var(--td-comp-paddingLR-m)}.t-transfer__pagination .t-transfer__list{height:240px;padding-bottom:calc(var(--td-comp-size-xs) + var(--td-comp-paddingTB-m)*2)}.t-transfer__footer .t-transfer__list{height:248px;padding-bottom:48px}.t-transfer__pagination.t-transfer__footer .t-transfer__list{height:288px;padding-bottom:calc(var(--td-comp-size-xs) + var(--td-comp-paddingTB-m)*2 + 48px)}.t-transfer__search.t-transfer__footer .t-transfer__list{height:288px;padding-bottom:48px}.t-transfer__search.t-transfer__pagination .t-transfer__list{height:280px;padding-bottom:48px}.t-transfer__search.t-transfer__footer.t-transfer__pagination .t-transfer__list{height:328px;padding-bottom:88px}.t-transfer__wrapper .t-transfer__list{height:320px;overflow:scroll;width:206px}.flex-center{align-items:center;display:flex;justify-content:center}.t-time-picker,.t-time-range-picker{background:transparent;box-sizing:border-box;color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative;width:240px}.t-time-picker.t-is-disabled,.t-time-range-picker.t-is-disabled{cursor:not-allowed}.t-time-picker>:active,.t-time-picker>:focus,.t-time-range-picker>:active,.t-time-range-picker>:focus{outline:0}.t-time-picker__group,.t-time-range-picker__group{position:relative}.t-time-picker__group.active,.t-time-range-picker__group.active{border:1px solid var(--td-brand-color);box-shadow:0 0 2px 2px var(--td-brand-color-focus)}.t-time-picker__group.active+.t-time-picker__icon-wrap>.t-time-picker__icon-clear,.t-time-range-picker__group.active+.t-time-picker__icon-wrap>.t-time-picker__icon-clear{display:block}.t-time-picker__group-text,.t-time-range-picker__group-text{color:var(--td-text-color-primary)}.t-time-picker__group input,.t-time-range-picker__group input{cursor:pointer}.t-time-range-picker{width:auto}.t-time-picker__panel{--timePickerPanelOffsetTop:15;--timePickerPanelOffsetBottom:21;background:transparent;border-radius:var(--td-radius-default);display:inline-block;font:var(--td-font-body-medium);position:relative;width:280px}.t-time-picker__panel-body{align-items:center;display:flex;height:calc(var(--td-comp-size-xs)*7 + var(--td-size-3)*7 + var(--td-size-3));justify-content:center;position:relative;user-select:none;width:100%}.t-time-picker__panel-body-active-mask{display:flex;height:var(--td-comp-size-xs);position:absolute;top:50%;width:100%}.t-time-picker__panel-body-active-mask>div{background-color:var(--td-brand-color-light);border-radius:var(--td-radius-default);flex:1;height:var(--td-comp-size-xs);margin:var(--td-size-3) var(--td-comp-margin-xs);transform:translateY(calc(0px - var(--td-comp-size-xs)/2 - var(--td-size-3)/2))}.t-time-picker__panel-body-scroll{flex:1;height:100%;list-style:none;margin:0;overflow-y:scroll;padding:0;position:relative;text-align:center}.t-time-picker__panel-body-scroll::-webkit-scrollbar{width:0}.t-time-picker__panel-body-scroll:after,.t-time-picker__panel-body-scroll:before{content:"";display:block;height:50%}.t-time-picker__panel-body-scroll:before{height:calc(50% - var(--timePickerPanelOffsetTop, 0)*1px)}.t-time-picker__panel-body-scroll:after{height:calc(50% - var(--timePickerPanelOffsetBottom, 0)*1px)}.t-time-picker__panel-body-scroll:last-child{border-right:0}.t-time-picker__panel-body-scroll-item{border-radius:var(--td-radius-default);color:var(--td-text-color-secondary);cursor:pointer;font:var(--td-font-body-medium);height:var(--td-comp-size-xs);line-height:var(--td-comp-size-xs);margin:var(--td-size-3) var(--td-comp-margin-xs);text-align:center;transition:.2s linear}.t-time-picker__panel-body-scroll-item:not(.t-time-picker__panel-body-scroll-item.t-is-current):not(.t-time-picker__panel-body-scroll-item.t-is-disabled):hover{color:var(--td-text-color-primary)}.t-time-picker__panel-body-scroll-item:not(.t-time-picker__panel-body-scroll-item.t-is-current):not(.t-time-picker__panel-body-scroll-item.t-is-disabled):active{background-color:var(--td-bg-color-container-hover)}.t-time-picker__panel-body-scroll-item.t-is-disabled{color:var(--td-text-color-disabled);cursor:not-allowed}.t-time-picker__panel-body-scroll-item.t-is-hidden{cursor:not-allowed;display:none}.t-time-picker__panel-body-scroll-item.t-is-current{color:var(--td-brand-color)}.t-time-picker__panel-section-body{padding:var(--td-pop-padding-xl) calc(var(--td-pop-padding-xl) - var(--td-comp-margin-xs))}.t-time-picker__panel-section-footer{align-items:center;background-color:transparent;border-top:1px solid var(--td-border-level-1-color);box-sizing:border-box;display:flex;flex-direction:row-reverse;justify-content:space-between;padding:var(--td-pop-padding-xl);position:relative;width:100%}.t-tree{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative}.t-tree.t-is-disabled,.t-tree.t-is-disabled .t-icon{color:var(--td-text-color-disabled)}.t-tree.t-is-disabled .t-tree__item.t-is-active{background-color:var(--td-bg-color-container-hover);color:var(--td-text-color-disabled)}.t-tree.t-is-disabled .t-tree__item .t-icon{color:var(--td-text-color-secondary)}.t-tree__empty{color:var(--td-text-color-disabled)}.t-tree__branch{display:block}.t-tree__item{--level:0;--hscale:2;align-items:center;backface-visibility:hidden;cursor:default;display:flex;flex-wrap:nowrap;padding:0 0 0 calc(var(--td-comp-margin-xxl)*var(--level));perspective:1000;position:relative;transform:translateZ(0);will-change:opacity,max-height}.t-tree__item .t-icon,.t-tree__item .t-loading{display:inline-block;font-size:calc(var(--td-font-size-body-medium) + 2px);position:relative;z-index:2}.t-tree__item .t-icon{color:var(--td-text-color-secondary)}.t-tree__item .t-checkbox{align-items:center;font-size:0}.t-tree__item .t-checkbox__input{flex-shrink:0}.t-tree__item .t-checkbox__label{overflow:hidden;text-overflow:ellipsis}.t-tree__item .t-tree__icon--default .t-icon{transform:rotate(0)}.t-tree__item--open .t-icon{color:var(--td-text-color-brand)}.t-tree__item--open .t-tree__icon--default .t-icon{transform:rotate(90deg)}.t-tree__item--clickable{cursor:pointer}.t-tree__item--locked{color:var(--td-text-color-disabled)}.t-tree__item--matched{color:inherit}.t-tree__item--draggable{cursor:pointer}.t-tree__item--draggable:hover{background-clip:content-box;background-color:var(--td-bg-color-container-hover)}.t-tree__item--draggable:after{background-clip:content-box;border-radius:1px;content:"";display:block;height:2px;left:0;padding:inherit;position:absolute;right:0;top:-1px}.t-tree__item--tip-bottom:after,.t-tree__item--tip-top:after{background-color:var(--td-brand-color)}.t-tree__item--tip-bottom:after{bottom:-1px;top:unset}.t-tree__item--tip-highlight{background-clip:content-box;background-color:var(--td-brand-color-light)}.t-tree__item:before{content:"";display:block;flex:0 0 auto;height:calc(var(--td-comp-size-m) + 2px);width:0}.t-tree--block-node .t-tree__label{flex:1}.t-tree--hoverable .t-tree__label:not(.t-is-active):not(.t-is-checked):hover{background-color:var(--td-bg-color-container-hover)}.t-tree__line{--level:0;--color:var(--td-border-level-1-color);--space:var(--td-comp-margin-xxl);--iconSize:16px;bottom:var(--td-comp-margin-l);left:calc(var(--td-comp-margin-xxl)*var(--level) - var(--td-comp-margin-l));pointer-events:none;width:1px}.t-tree__line,.t-tree__line:before{height:calc(var(--td-comp-size-m) + 2px);position:absolute}.t-tree__line:before{border-bottom:1px solid var(--color);border-left:1px solid var(--color);bottom:0;content:"";display:block;left:0;width:var(--td-comp-margin-m)}.t-tree__line--first:before{height:var(--td-line-height-body-medium)}.t-tree__line--leaf:before{width:var(--td-comp-margin-m)}.t-tree__icon{align-items:center;cursor:pointer;display:inline-flex;flex:none;font-size:0;position:relative;text-align:center;user-select:none;width:calc(var(--td-font-size-body-medium) + 2px)}.t-tree__icon:after{border-radius:var(--td-radius-default);content:"";display:block;height:calc(var(--td-font-size-body-medium) + 6px);left:-2px;position:absolute;top:-2px;width:calc(var(--td-font-size-body-medium) + 6px)}.t-tree__icon:not(:empty):hover{background-color:var(--td-bg-color-container-hover)}.t-tree__icon:empty{cursor:auto}.t-tree__label{--ripple-color:var(--td-bg-color-container-active);word-wrap:normal;border-radius:var(--td-radius-default);cursor:pointer;flex:1;flex-wrap:nowrap;margin-left:var(--td-comp-margin-xs);overflow:hidden;padding:var(--td-comp-paddingTB-xxs) var(--td-comp-paddingLR-xs);text-overflow:ellipsis;white-space:nowrap}.t-tree__label.t-is-checked{background-color:var(--td-brand-color-light);color:var(--td-text-color-primary);font-weight:500}.t-tree__label::selection{background-color:transparent}.t-is-active .t-tree__label{background-color:var(--td-brand-color-light);color:var(--td-text-color-primary);font-weight:500}.t-tree__space{display:block;flex:1 0 auto}.t-tree__operations{align-items:center;display:flex;flex:0 0 auto;justify-content:flex-end;margin-left:auto}.t-tree__operations .t-icon{cursor:pointer}.t-tree__item.t-is-disabled{color:var(--td-text-color-disabled);cursor:default}.t-tree__item.t-is-disabled .t-checkbox{cursor:default}.t-tree__item--hidden{display:none}.t-tree--transition .t-tree__label{transition:background-color .24s cubic-bezier(.38,0,.24,1)}.t-tree--transition .t-tree__icon{transition:color,transform .24s cubic-bezier(.38,0,.24,1)}.t-tree--transition .t-tree__icon:after,.t-tree--transition .t-tree__icon:not(:empty):hover{transition:.2s linear}.t-tree--transition .t-tree__icon--default .t-icon{transition:color,transform .2s cubic-bezier(.38,0,.24,1)}.t-tree--transition .t-tree__item--visible{display:flex;max-height:calc((var(--td-comp-size-m) + 2px)*var(--hscale));opacity:1;transition:opacity .15s linear .15s,max-height .15s linear 0s}.t-tree--transition .t-tree__item--hidden{animation:initial;display:flex;max-height:0;opacity:0;overflow:hidden;pointer-events:none;transition:opacity .15s linear 0s,max-height .15s linear .15s;user-select:none}.t-tree--transition .t-tree__item--enter-active{animation:t-tree-toggle .3s linear}.t-tree--transition .t-tree__item--leave-active{animation:t-tree-toggle .3s linear reverse forwards}.t-tree__lazyload,.t-tree__vscroll{overflow-y:auto}.t-tree__vscroll-cursor{height:1px;position:absolute;transition:transform .2s;width:1px}.t-tree--scrolling .t-tree__item{will-change:auto}.t-tree--scrolling .t-tree__item--enter,.t-tree--scrolling .t-tree__item--enter-active,.t-tree--scrolling .t-tree__item--enter-to,.t-tree--scrolling .t-tree__item--hidden,.t-tree--scrolling .t-tree__item--leave,.t-tree--scrolling .t-tree__item--leave-active .t-tree__item--leave-to,.t-tree--scrolling .t-tree__item--visible,.t-tree--scrolling .v-enter,.t-tree--scrolling .v-leave{animation:none;transition:none}.t-tree--scrolling .t-tree__item--enter-active,.t-tree--scrolling .t-tree__item--enter-to,.t-tree--scrolling .t-tree__item--visible{max-height:none}.t-tree--scrolling .t-tree__item--leave-active,.t-tree--scrolling .t-tree__item--leave-to{max-height:0}@keyframes t-tree-toggle{0%{max-height:0;opacity:0}50%{max-height:calc((var(--td-comp-size-m) + 2px)*var(--hscale));opacity:0}to{max-height:calc((var(--td-comp-size-m) + 2px)*var(--hscale));opacity:1}}.t-tree-select{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-tree-select--without-input input{display:none}.t-tree-select--without-input .t-input__suffix-icon{margin-left:auto}.t-tree-select .t-fake-arrow{color:var(--td-text-color-placeholder);transition:color .2s cubic-bezier(.38,0,.24,1)}.t-tree-select .t-fake-arrow--highlight{color:var(--td-text-color-brand)}.t-tree-select .t-fake-arrow--disable{color:var(--td-text-color-disabled)}.t-tree-select--placeholder{color:var(--td-text-color-placeholder)}.t-tree-select.t-single-suffix{padding-right:20px}.t-tree-select.t-tag-prefix{padding-left:4px}.t-tree-select-popup .t-popup__content{max-height:300px;overflow-y:auto;padding:var(--td-pop-padding-m)}@-moz-document url-prefix(){.t-tree-select-popup .t-popup__content{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-tree-select-popup .t-popup__content::-webkit-scrollbar{height:8px;width:8px}.t-tree-select-popup .t-popup__content::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid transparent;border-radius:15px}.t-tree-select-popup .t-popup__content::-webkit-scrollbar-thumb:horizontal:hover,.t-tree-select-popup .t-popup__content::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-color-picker__panel{background:var(--td-bg-color-container);border-radius:var(--td-radius-medium);box-shadow:var(--td-shadow-2),var(--td-shadow-inset-top),var(--td-shadow-inset-right),var(--td-shadow-inset-bottom),var(--td-shadow-inset-left);padding:0;user-select:none;width:256px}.t-popup__content .t-color-picker__panel{background:transparent;box-shadow:unset}.t-color-picker{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-color-picker.t-popup__content{box-shadow:var(--td-shadow-2),var(--td-shadow-inset-top),var(--td-shadow-inset-right),var(--td-shadow-inset-bottom),var(--td-shadow-inset-left)}.t-color-picker__icon{align-items:center;background:transparent;border-radius:var(--td-radius-default);color:var(--td-text-color-secondary);cursor:pointer;display:flex;font-size:var(--td-comp-size-xxxs);justify-content:center;transition:.2s linear}.t-color-picker__icon:hover{background:var(--td-bg-color-container-hover);transition:.2s linear}.t-color-picker__icon.t-is-disabled{color:var(--td-text-color-disabled);pointer-events:none}.t-color-picker__head{align-items:center;display:flex;justify-content:space-between;padding:var(--td-pop-padding-xl);position:relative;z-index:2}.t-color-picker__head .t-color-picker__close{flex-shrink:0}.t-color-picker__head+.t-color-picker__body{padding-top:0}.t-color-picker__body{padding:var(--td-pop-padding-xl);padding-bottom:calc(var(--td-pop-padding-xl) - 4px)}.t-color-picker__thumb{background:var(--td-text-color-anti);border-color:currentcolor;border-radius:var(--td-radius-circle);box-shadow:var(--td-shadow-1);box-sizing:border-box;color:var(--td-text-color-brand);height:calc(var(--td-comp-size-xxxs) + var(--td-size-1));outline:none;padding:2px;position:absolute;width:calc(var(--td-comp-size-xxxs) + var(--td-size-1));z-index:1}.t-color-picker__thumb:before{background:currentcolor;border-radius:var(--td-radius-circle);content:"";display:block;height:100%;width:100%}.t-color-picker__saturation{background:transparent;border-radius:var(--td-radius-default);height:160px;overflow:hidden;position:relative}.t-color-picker__saturation:after,.t-color-picker__saturation:before{content:"";height:100%;left:0;position:absolute;top:0;width:100%}.t-color-picker__saturation:before{background:linear-gradient(90deg,#fff,transparent)}.t-color-picker__saturation:after{background:linear-gradient(0deg,#000,transparent)}.t-color-picker__saturation .t-color-picker__thumb{border-radius:var(--td-radius-circle);height:calc(var(--td-comp-size-xxxs) + var(--td-size-1));transform:translate(-50%,-50%);width:calc(var(--td-comp-size-xxxs) + var(--td-size-1))}.t-color-picker__slider-wrapper{border-radius:4px;padding:0 calc(var(--td-comp-size-xxxs)/2 + var(--td-size-1)/2);position:relative}.t-color-picker__slider-wrapper--hue-type{background:red}.t-color-picker__slider-wrapper--alpha-type{background:var(--td-text-color-anti);background-image:linear-gradient(45deg,#c5c5c5 25%,transparent 0,transparent 75%,#c5c5c5 0,#c5c5c5),linear-gradient(45deg,#c5c5c5 25%,transparent 0,transparent 75%,#c5c5c5 0,#c5c5c5);background-position:0 0,3px 3px;background-size:6px 6px}.t-color-picker__slider-padding{border-radius:4px;height:8px;left:0;position:absolute;top:0;width:100%}.t-color-picker__slider{border-radius:4px;color:transparent;cursor:pointer;height:8px;outline:none;position:relative;z-index:1}.t-color-picker__slider .t-color-picker__thumb{top:50%;transform:translate(calc(var(--td-comp-size-xxxs)*-.5 + var(--td-size-1)*-.5),-50%)}.t-color-picker__slider .t-color-picker__rail{border-radius:inherit;height:100%;left:0;overflow:hidden;position:absolute;top:0;width:100%}.t-color-picker__alpha,.t-color-picker__format{margin:var(--td-comp-margin-m) 0 0 0}.t-color-picker__hue{background:linear-gradient(90deg,red,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.t-color-picker__alpha .t-color-picker__rail{background:linear-gradient(90deg,transparent,currentcolor)}.t-color-picker__sliders-wrapper{align-items:center;display:flex;margin:var(--td-comp-margin-m) 0}.t-color-picker__sliders{width:100%}.t-color-picker__sliders-preview{background:var(--td-text-color-anti);background-image:linear-gradient(45deg,#c5c5c5 25%,transparent 0,transparent 75%,#c5c5c5 0,#c5c5c5),linear-gradient(45deg,#c5c5c5 25%,transparent 0,transparent 75%,#c5c5c5 0,#c5c5c5);background-position:0 0,3px 3px;background-size:6px 6px;border-radius:var(--td-radius-default);flex-shrink:0;height:var(--td-comp-size-s);margin-left:var(--td-comp-margin-m);overflow:hidden;width:var(--td-comp-size-s)}.t-color-picker__sliders-preview-inner{display:block;height:100%;width:100%}.t-color-picker__gradient{align-items:center;display:flex;margin-bottom:var(--td-comp-margin-m);padding:0}.t-color-picker__gradient-slider{flex:1}.t-color-picker__gradient-degree{flex-shrink:0;margin-left:var(--td-comp-margin-m);position:relative;width:var(--td-comp-size-xxl)}.t-color-picker__gradient-degree .t-input{font:var(--td-font-body-small);margin:0}.t-color-picker__gradient-degree .t-input-number{padding:0;width:100%}.t-color-picker__gradient .gradient-thumbs{border-radius:inherit;cursor:pointer;height:100%;left:0;list-style:none;margin:0;padding:0;position:absolute;top:0;width:100%}.t-color-picker__gradient .gradient-thumbs__item{cursor:pointer;left:0;top:50%;transform:translate(-50%,-50%);z-index:0}.t-color-picker__gradient .gradient-thumbs__item:before{display:none}.t-color-picker__gradient .gradient-thumbs__item.t-is-active{outline:2px solid var(--td-component-border);z-index:1}.t-color-picker__gradient .gradient-thumbs__item-inner{border-radius:var(--td-radius-circle);display:block;height:100%;overflow:hidden;width:100%}.t-color-picker__gradient .gradient-thumbs__item-inner:before{background-color:currentcolor;content:"";display:block;height:100%;width:100%}.t-color-picker__format{align-items:center;display:flex;justify-content:space-between}.t-color-picker__format--item:first-child{flex-shrink:0}.t-color-picker__format--item:last-child{flex:1}.t-color-picker__format--item .t-input.t-size-m,.t-color-picker__format--item .t-size-m{font:var(--td-font-body-small)}.t-color-picker__format--item .t-input-number .t-input{margin:0}.t-color-picker__format--item .input-group{align-items:center;display:flex;justify-content:space-around;margin-left:var(--td-comp-margin-s)}.t-color-picker__format--item .input-group__item{flex:1;margin-left:-1px;width:0}.t-color-picker__format--item .input-group__item .t-input{padding:0 1px}.t-color-picker__format--item .input-group__item .t-input:focus,.t-color-picker__format--item .input-group__item .t-input:focus-within,.t-color-picker__format--item .input-group__item .t-input:hover{z-index:1}.t-color-picker__format--item .input-group__item:not(:first-child):not(:last-child) .t-input{border-radius:0}.t-color-picker__format--item .input-group__item:first-child:not(:last-child) .t-input{border-bottom-right-radius:0;border-top-right-radius:0}.t-color-picker__format--item .input-group__item:last-child:not(:first-child) .t-input{border-bottom-left-radius:0;border-top-left-radius:0}.t-color-picker__format--item .input-group .t-input-number{max-width:100%;padding:0;width:100%}.t-color-picker__format-mode-select{display:flex;width:72px}.t-color-picker__format-mode-select .t-input,.t-color-picker__format-mode-select .t-select{padding-right:0}.t-color-picker__format-mode-select .t-input--prefix>.t-input__suffix{padding-left:0}.t-color-picker__format-mode-select .t-select__right-icon{margin-right:var(--td-comp-margin-xs)}.t-color-picker__swatches-wrap{position:relative}.t-color-picker__swatches-wrap,.t-color-picker__swatches-wrap .t-color-picker__swatches+.t-color-picker__swatches{margin-top:var(--td-comp-margin-m)}.t-color-picker__swatches-wrap .t-color-picker__swatches--title{align-items:center;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-small);justify-content:space-between;padding:0}.t-color-picker__swatches-wrap .t-color-picker__swatches--actions{align-items:center;display:flex;font-size:0;margin-left:auto}.t-color-picker__swatches-wrap .t-color-picker__swatches--actions .t-color-picker__icon{height:var(--td-comp-size-xxxs);margin-left:var(--td-comp-margin-s);width:var(--td-comp-size-xxxs)}.t-color-picker__swatches-wrap .t-color-picker__swatches--items{box-sizing:content-box;display:grid;gap:calc(28.44444px - var(--td-pop-padding-xl)*2/9 - var(--td-comp-size-xxxs)*10/9) calc(28.44444px - var(--td-pop-padding-xl)*2/9 - var(--td-comp-size-xxxs)*10/9);grid-template-columns:repeat(10,var(--td-comp-size-xxxs));left:calc(8px - var(--td-pop-padding-xl));list-style:none;max-height:calc(var(--td-comp-size-xxxs)*4 + 113.77778px - var(--td-pop-padding-xl)*2/9*4 - var(--td-comp-size-xxxs)*10/9*4);overflow-x:hidden;overflow-y:auto;padding:calc(var(--td-pop-padding-xl) - 8px);position:relative;width:100%}.t-color-picker__swatches-wrap .t-color-picker__swatches--item{align-items:center;border-radius:var(--td-radius-default);box-sizing:border-box;cursor:pointer;display:flex;height:var(--td-comp-size-xxxs);justify-content:center;overflow:hidden;padding:0;position:relative;transform-origin:center;transition:all .2s cubic-bezier(.38,0,.24,1);width:var(--td-comp-size-xxxs)}.t-color-picker__swatches-wrap .t-color-picker__swatches--item:hover{transform:scale(1.25);transform-origin:center}.t-color-picker__swatches-wrap .t-color-picker__swatches--item__color{border:1px solid var(--td-component-border);border-radius:var(--td-radius-default);flex-shrink:0;height:100%;overflow:hidden;position:relative;width:100%}.t-color-picker__swatches-wrap .t-color-picker__swatches--item__inner{display:block;height:100%;width:100%}.t-color-picker__swatches-wrap .t-color-picker__swatches--item:not(.t-is-active):hover{padding:0}.t-color-picker__swatches-wrap .t-color-picker__swatches--item.t-is-active .t-color-picker__swatches--color,.t-color-picker__swatches-wrap .t-color-picker__swatches--item.t-is-active .t-color-picker__swatches--item__color{border-color:var(--td-text-color-brand)}.t-color-picker__swatches-wrap .t-color-picker__swatches--color{border-radius:var(--td-radius-default);box-sizing:border-box;height:100%;overflow:hidden;position:relative;width:100%}.t-color-picker__swatches-wrap .t-color-picker__swatches--inner{border-radius:var(--td-radius-default);box-shadow:var(--td-shadow-inset-top),var(--td-shadow-inset-right),var(--td-shadow-inset-bottom),var(--td-shadow-inset-left);display:block;height:100%;width:100%}.t-color-picker__trigger--default{align-items:center;display:inline-flex}.t-color-picker__trigger--default>.t-input{width:fit-content}.t-color-picker__trigger--default .t-input{padding:0 var(--td-comp-paddingLR-s) 0 var(--td-comp-paddingLR-xs)}.t-color-picker__trigger--default__color{align-items:center;box-sizing:border-box;display:flex;height:100%;width:100%}.t-color-picker__trigger--default__color .color-inner{border:1px solid var(--td-scrollbar-color);border-radius:var(--td-radius-small);color:transparent;display:block;height:calc(var(--td-comp-size-xs) - 2px);position:relative;width:calc(var(--td-comp-size-xs) - 2px)}.t-color-picker__trigger--default__color .color-inner.t-size-s{height:calc(var(--td-comp-size-xxs) - 2px);width:calc(var(--td-comp-size-xxs) - 2px)}.t-color-picker__trigger--default__color .color-inner.t-size-l{height:calc(var(--td-comp-size-s) - 2px);width:calc(var(--td-comp-size-s) - 2px)}.t-color-picker__gradient-slider{border-radius:4px;padding:0 calc(var(--td-comp-size-xxxs)/2 + var(--td-size-1)/2)}.t-color-picker__gradient-slider .t-color-picker--bg-alpha{background:var(--td-text-color-anti);background-image:linear-gradient(45deg,#c5c5c5 25%,transparent 0,transparent 75%,#c5c5c5 0,#c5c5c5),linear-gradient(45deg,#c5c5c5 25%,transparent 0,transparent 75%,#c5c5c5 0,#c5c5c5);background-position:0 0,3px 3px;background-size:6px 6px}.t-color-picker__panel.t-is-disabled .t-color-picker__saturation,.t-color-picker__panel.t-is-disabled .t-color-picker__slider,.t-color-picker__panel.t-is-disabled .t-color-picker__swatches--item{cursor:not-allowed;opacity:.8}.t-color-picker__panel.t-is-disabled .t-color-picker__gradient-slider .gradient-thumbs,.t-color-picker__panel.t-is-disabled .t-color-picker__gradient-slider .gradient-thumbs__item{cursor:not-allowed}.t-color-picker__panel.t-is-disabled .t-color-picker__swatches--item:hover{padding:0}.t-color-picker__select-options>.t-popup__content{box-shadow:var(--td-shadow-1),var(--td-shadow-inset-top),var(--td-shadow-inset-right),var(--td-shadow-inset-bottom),var(--td-shadow-inset-left)}.t-image__wrapper{background:var(--td-bg-color-secondarycontainer);position:relative;z-index:1}.t-image__wrapper--shape-square{border-radius:0}.t-image__wrapper--shape-round{border-radius:var(--td-radius-medium)}.t-image__wrapper--shape-circle{border-radius:50%}.t-image__wrapper--gallery{border-radius:var(--td-radius-medium)}.t-image__wrapper--gallery .t-image{position:relative;z-index:5}.t-image__wrapper--need-hover{cursor:pointer}.t-image{border-radius:inherit;height:100%;position:relative;width:100%;z-index:inherit}.t-image--fit-fill{object-fit:fill}.t-image--fit-contain{object-fit:contain}.t-image--fit-cover{object-fit:cover}.t-image--fit-scale-down{object-fit:scale-down}.t-image--fit-none{object-fit:none}.t-image--position-center{object-position:center}.t-image--position-bottom{object-position:bottom}.t-image--position-top{object-position:top}.t-image--position-left{object-position:left}.t-image--position-right{object-position:right}.t-image__gallery-shadow{background:hsla(0,0%,93%,.26);border-radius:var(--td-radius-medium);bottom:24px;left:0;position:absolute;right:-24px;top:24px;z-index:3}.t-image__gallery-shadow:after,.t-image__gallery-shadow:before{border-radius:var(--td-radius-medium);content:"";left:0;position:absolute}.t-image__gallery-shadow:after{background:hsla(0,0%,93%,.8);bottom:-16px;right:16px;top:-16px;z-index:4}.t-image__gallery-shadow:before{background:hsla(0,0%,93%,.5);bottom:-8px;right:8px;top:-8px;z-index:2}.t-image__placeholder{align-items:center;display:flex;justify-content:center;z-index:0}.t-image__overlay-content,.t-image__placeholder{height:100%;left:0;position:absolute;top:0;width:100%}.t-image__overlay-content{opacity:1;transition:visibility 0s,opacity .2s linear;visibility:visible;z-index:6}.t-image__overlay-content--hidden{opacity:0;visibility:hidden}.t-image__error,.t-image__loading{align-items:center;display:flex;height:100%;justify-content:center;left:0;position:absolute;top:0;width:100%;z-index:1}.t-image__loading{color:var(--td-text-color-secondary)}.t-image__error{color:var(--td-text-color-disabled)}.t-avatar{align-items:center;background:var(--td-brand-color-focus);box-sizing:border-box;box-sizing:content-box;color:var(--td-text-color-primary);color:var(--td-text-color-brand);display:inline-flex;font:var(--td-font-body-medium);font-size:var(--td-font-size-body-large);height:var(--td-comp-size-m);justify-content:center;line-height:var(--td-comp-size-m);list-style:none;margin:0;overflow:hidden;padding:0;position:relative;vertical-align:middle;white-space:nowrap;width:var(--td-comp-size-m)}.t-avatar.t-avatar__icon{font-size:var(--td-comp-size-xxs)}.t-avatar--circle{border-radius:var(--td-radius-circle)}.t-avatar--round{border-radius:var(--td-radius-default)}.t-avatar.t-size-s{font-size:var(--td-font-size-body-medium);height:var(--td-comp-size-xs);line-height:var(--td-comp-size-xs);width:var(--td-comp-size-xs)}.t-avatar.t-size-s.t-avatar__icon{font-size:var(--td-comp-size-xxxs)}.t-avatar.t-size-l{font-size:var(--td-font-size-title-large);height:var(--td-comp-size-xl);line-height:var(--td-comp-size-xl);width:var(--td-comp-size-xl)}.t-avatar.t-size-l.t-avatar__icon{font-size:var(--td-comp-size-xs)}.t-avatar>.t-image__wrapper{max-height:100%;max-width:100%}.t-avatar-group{align-items:center;display:inline-flex}.t-avatar-group .t-avatar{border:2px solid var(--td-bg-color-container)}.t-avatar-group.t-avatar--offset-right .t-avatar:not(:last-child){margin-right:calc(0px - var(--td-size-3))}.t-avatar-group.t-avatar--offset-right .t-avatar:not(:last-child).t-size-s{margin-right:calc(0px - var(--td-size-2))}.t-avatar-group.t-avatar--offset-right .t-avatar:not(:last-child).t-size-l{margin-right:calc(0px - var(--td-size-4))}.t-avatar-group.t-avatar--offset-left .t-avatar:first-child{z-index:49}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(2){z-index:48}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(3){z-index:47}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(4){z-index:46}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(5){z-index:45}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(6){z-index:44}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(7){z-index:43}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(8){z-index:42}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(9){z-index:41}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(10){z-index:40}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(11){z-index:39}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(12){z-index:38}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(13){z-index:37}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(14){z-index:36}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(15){z-index:35}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(16){z-index:34}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(17){z-index:33}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(18){z-index:32}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(19){z-index:31}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(20){z-index:30}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(21){z-index:29}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(22){z-index:28}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(23){z-index:27}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(24){z-index:26}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(25){z-index:25}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(26){z-index:24}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(27){z-index:23}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(28){z-index:22}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(29){z-index:21}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(30){z-index:20}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(31){z-index:19}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(32){z-index:18}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(33){z-index:17}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(34){z-index:16}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(35){z-index:15}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(36){z-index:14}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(37){z-index:13}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(38){z-index:12}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(39){z-index:11}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(40){z-index:10}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(41){z-index:9}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(42){z-index:8}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(43){z-index:7}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(44){z-index:6}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(45){z-index:5}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(46){z-index:4}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(47){z-index:3}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(48){z-index:2}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(49){z-index:1}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(50){z-index:0}.t-avatar-group.t-avatar--offset-left .t-avatar:not(:first-child){margin-left:calc(0px - var(--td-size-3))}.t-avatar-group.t-avatar--offset-left .t-avatar:not(:first-child).t-size-s{margin-left:calc(0px - var(--td-size-2))}.t-avatar-group.t-avatar--offset-left .t-avatar:not(:first-child).t-size-l{margin-left:calc(0px - var(--td-size-4))}.t-badge{box-sizing:border-box;color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative}.t-badge--circle,.t-badge--dot,.t-badge--round{box-sizing:content-box;color:var(--td-text-color-anti);font:var(--td-font-body-small);position:absolute;right:0;text-align:center;top:0;transform:translate(50%,-50%);transform-origin:100% 0}.t-badge--static{display:inline-block;position:static;transform:none}.t-badge--dot{background-color:var(--td-error-color);border-radius:var(--td-radius-circle);height:6px;margin-top:1px;right:1px;width:6px}.t-badge--circle,.t-badge--round{background-color:var(--td-error-color);height:var(--td-comp-size-xxs);line-height:var(--td-comp-size-xxs);min-width:8px;padding-left:calc((var(--td-comp-size-xxs) - 8px)/2);padding-right:calc((var(--td-comp-size-xxs) - 8px)/2)}.t-badge--circle.t-size-s,.t-badge--round.t-size-s{height:var(--td-comp-size-xxxs);line-height:var(--td-comp-size-xxxs);min-width:8px;padding-left:calc((var(--td-comp-size-xxxs) - 8px)/2);padding-right:calc((var(--td-comp-size-xxxs) - 8px)/2)}.t-badge--circle{border-radius:calc(var(--td-comp-size-xxs)/2)}.t-badge--round{border-radius:var(--td-radius-default)}.t-calendar{background-color:var(--td-bg-color-container);border:1px solid var(--td-border-level-1-color);border-radius:var(--td-radius-large);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-calendar .t-is-disabled.t-calendar__table-body-cell:hover{cursor:not-allowed}.t-calendar .t-is-disabled .t-calendar__table-body-cell-display{color:var(--td-text-color-disabled)}.t-calendar .t-is-disabled .t-calendar__table-body-cell-display:hover{box-shadow:none}.t-calendar--full{min-width:560px;padding:var(--td-comp-paddingTB-xxl) var(--td-comp-paddingLR-xxl)}.t-calendar--full .t-calendar__control{padding:0}.t-calendar--full .t-calendar__title{flex:1;font:var(--td-font-title-large)}.t-calendar--full .t-calendar__panel{margin-top:var(--td-comp-margin-xxxl);position:relative}.t-calendar--full .t-calendar__panel-title{color:var(--td-text-color-primary);font:var(--td-font-title-large);position:absolute}.t-calendar--full .t-calendar__table-body-cell,.t-calendar--full .t-calendar__table-head-cell{margin-right:var(--td-comp-margin-s);position:relative}.t-calendar--full .t-calendar__table-body-cell{align-items:flex-end;border-top:2px solid var(--td-border-level-1-color);display:flex;flex-direction:column;height:104px;justify-content:flex-start;line-height:var(--td-line-height-body-medium);margin-left:0;padding:0;transition-duration:.2s;transition-property:border-top,background;transition-timing-function:linear}.t-calendar--full .t-calendar__table-body-cell-content{box-sizing:border-box;padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-xs);width:100%}.t-calendar--full .t-calendar__table-body-cell.t-is-checked,.t-calendar--full .t-calendar__table-body-cell.t-is-checked:hover{background-color:var(--td-brand-color-light)}.t-calendar--full .t-calendar__table-body-cell--now{border-top:2px solid var(--td-brand-color)}.t-calendar--full .t-calendar__table-body-cell--now .t-calendar__table-body-cell-display{color:var(--td-text-color-primary)}.t-calendar--full .t-calendar__footer{border-top:1px solid var(--td-border-level-1-color);height:90px;padding:var(--td-comp-paddingTB-xxl) var(--td-comp-paddingLR-xxl)}.t-calendar--card{border-radius:var(--td-radius-medium);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-m);width:280px}.t-calendar--card .t-calendar__control{padding:0}.t-calendar--card .t-calendar__control-section{justify-content:flex-start;width:100%}.t-calendar--card .t-calendar__control-section-cell:last-child{display:block;flex:1;text-align:right}.t-calendar--card .t-calendar__panel.t-calendar__panel--month{height:200px;margin-top:var(--td-comp-margin-m)}.t-calendar--card .t-calendar__panel.t-calendar__panel--year{height:168px;margin-top:var(--td-comp-margin-m)}.t-calendar--card .t-calendar__panel.t-calendar__panel--year .t-calendar__table-body-cell-display{min-width:var(--td-comp-size-xxl)}.t-calendar--card .t-calendar__table{align-items:flex-start;display:flex;flex-direction:column;height:100%;justify-self:start;width:100%}.t-calendar--card .t-calendar__table-body-row,.t-calendar--card .t-calendar__table-head-row{background:var(--td-bg-color-container);flex:1}.t-calendar--card .t-calendar__table-body-cell,.t-calendar--card .t-calendar__table-head-cell{box-sizing:border-box;font:var(--td-font-body-medium);height:100%;justify-content:center;width:100%}.t-calendar--card .t-calendar__table-body-cell-display,.t-calendar--card .t-calendar__table-head-cell-display{line-height:var(--td-comp-size-xs);width:var(--td-comp-size-xs)}.t-calendar--card .t-calendar__table-body{align-items:center;display:flex;flex:1;flex-direction:column;justify-self:center}.t-calendar--card .t-calendar__table-body-cell{align-items:center;justify-content:center}.t-calendar--card .t-calendar__table-body-cell:hover{background-color:var(--td-bg-color-container)}.t-calendar--card .t-calendar__table-body-cell-display{border-radius:var(--td-radius-default);font:var(--td-font-body-medium);padding-bottom:calc(var(--td-comp-paddingTB-xxs)/2);padding-top:calc(var(--td-comp-paddingTB-xxs)/2);text-align:center;transition:all .2s linear}.t-calendar--card .t-calendar__table-body-cell-display:hover{box-shadow:inset 0 0 0 1px var(--td-brand-color);transition:box-shadow .2s linear}.t-calendar--card .t-calendar__table-body-cell--now .t-calendar__table-body-cell-display{background-color:var(--td-brand-color-light);color:var(--td-brand-color);position:relative}.t-calendar--card .t-is-checked .t-calendar__table-body-cell-display{background:var(--td-brand-color);border-radius:var(--td-radius-default);color:var(--td-text-color-anti)}.t-calendar--card .t-calendar__footer{border-top:1px solid var(--td-border-level-1-color);height:var(--td-comp-size-xxl);padding:0 var(--td-comp-paddingLR-m)}.t-calendar__control,.t-calendar__control-section{align-items:center;display:flex;justify-content:flex-end}.t-calendar__control-section{height:100%}.t-calendar__control-section:last-child{margin-right:0}.t-calendar__control-section-cell{display:flex;height:100%;margin-right:var(--td-comp-margin-s)}.t-calendar__control-section-cell .t-radio-group{vertical-align:bottom}.t-calendar__control-section-cell .t-select{display:inline}.t-calendar__control-section-cell:last-child{margin-right:0}.t-calendar__panel{box-sizing:border-box;width:100%}.t-calendar__table{border-collapse:collapse;border-spacing:0;height:100%;width:100%}.t-calendar__table-body,.t-calendar__table-head{width:100%}.t-calendar__table-body-row,.t-calendar__table-head-row{display:flex;width:100%}.t-calendar__table-body-cell,.t-calendar__table-head-cell{color:var(--td-text-color-primary);cursor:default;display:flex;flex:1;font:var(--td-font-title-small);justify-content:flex-end;padding:0}.t-calendar__table-body-cell:last-child,.t-calendar__table-head-cell:last-child{margin-right:0}.t-calendar__table-head{display:block;margin-bottom:var(--td-comp-margin-s)}.t-calendar__table-head-row{background:var(--td-bg-color-container);padding-bottom:0}.t-calendar__table-head-cell{color:var(--td-text-color-secondary);font:var(--td-font-title-small);height:100%}.t-calendar__table-body-cell{cursor:pointer}.t-calendar__table-body-cell:hover{background-color:var(--td-bg-color-container-hover);transition:background-color .2s linear}.t-calendar__table-body-cell-display{color:var(--td-text-color-primary);font:var(--td-font-title-small)}.t-card{background-color:var(--td-bg-color-container);border-radius:var(--td-radius-medium);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative;transition:box-shadow .2s cubic-bezier(.38,0,.24,1)}.t-card--bordered{border:1px solid var(--td-component-border)}.t-card--shadow,.t-card--shadow-hover:hover{box-shadow:var(--td-shadow-1)}.t-card__cover{display:flow-root}.t-card__cover img{border-radius:var(--td-radius-default) var(--td-radius-default) 0 0;display:flow-root;max-height:100%;width:100%}.t-card__body{display:flow-root;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-xl)}.t-card__header{align-items:center;display:flex;justify-content:space-between;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-xl);position:relative}.t-card__header-wrapper{align-items:center;display:flex;flex:1}.t-card__header+.t-card__cover img{border-radius:0}.t-card__footer{align-items:center;display:flex;justify-content:space-between;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-xl)}.t-card__footer-wrapper{flex:1}.t-size-s .t-card__body,.t-size-s .t-card__footer,.t-size-s .t-card__header{padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-l)}.t-card__avatar{height:var(--td-comp-size-xxxl);width:var(--td-comp-size-xxxl)}.t-card__avatar,.t-card__title{margin-right:var(--td-comp-margin-l)}.t-card__title{color:var(--td-text-color-primary);font:var(--td-font-title-medium);word-break:break-all}.t-card__description,.t-card__subtitle{color:var(--td-text-color-secondary);font:var(--td-font-body-medium);word-break:break-all}.t-card__description{margin-top:var(--td-comp-margin-xs)}.t-card__actions{color:var(--td-brand-color);float:right}.t-card__title--bordered{border-bottom:1px solid var(--td-component-border)}.t-comment{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;width:100%}.t-comment__inner{display:flex}.t-comment__avatar{cursor:pointer;display:flex;flex-shrink:0;margin-right:var(--td-comp-margin-xxl)}.t-comment__avatar-image{border-radius:var(--td-radius-circle);height:var(--td-comp-size-xxxl);width:var(--td-comp-size-xxxl)}.t-comment__content{flex:auto;font:var(--td-font-body-medium)}.t-comment__author{align-items:baseline;display:flex;flex-wrap:wrap;justify-content:flex-start;margin-bottom:var(--td-comp-margin-s)}.t-comment__name{align-items:center;cursor:pointer;display:inline-flex;font:var(--td-font-title-medium)}.t-comment__name,.t-comment__time{padding-right:var(--td-comp-paddingLR-s)}.t-comment__time{color:var(--td-text-color-placeholder);font:var(--td-font-body-small)}.t-comment__detail{font:var(--td-font-body-medium);word-break:break-all}.t-comment__quote{border-left:4px solid var(--td-component-stroke);margin-top:var(--td-comp-margin-l);padding-left:var(--td-comp-margin-l)}.t-comment__quote .t-comment__detail,.t-comment__quote .t-comment__name{color:var(--td-text-color-secondary)}.t-comment__actions{display:flex;gap:var(--td-comp-margin-s);justify-content:flex-end;list-style:none;margin-top:var(--td-comp-margin-s);padding:0}.t-comment__actions .t-button--variant-text{color:var(--td-text-color-placeholder)}.t-comment__actions .t-button--variant-text .t-button__text{gap:var(--td-comp-margin-s)}.t-comment__reply{background-color:var(--td-bg-color-secondarycontainer);border-radius:var(--td-radius-medium);margin-left:calc(var(--td-comp-size-xxxl) + var(--td-comp-margin-xxl));margin-top:var(--td-comp-margin-l);padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-xl)}.t-comment__reply .t-button--variant-text{color:var(--td-text-color-placeholder)}.t-comment__reply .t-button--variant-text:hover{background-color:var(--td-bg-color-secondarycontainer-hover)}.t-comment__reply .t-button--variant-text .t-button__text{gap:var(--td-comp-margin-s)}.t-empty{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;text-align:center}.t-empty__image{display:flex;font-size:48px;justify-content:center}.t-empty__title{color:var(--td-text-color-secondary);margin-top:var(--td-comp-margin-s)}.t-empty__description,.t-empty__title{font:var(--td-font-body-medium);margin-bottom:0}.t-empty__description{color:var(--td-text-color-placeholder);margin-top:var(--td-comp-margin-xs)}.t-empty__action{margin-bottom:0;margin-top:var(--td-comp-margin-xxl)}.t-empty.t-size-s .t-empty__image{font-size:20px}.t-empty.t-size-s .t-empty__description,.t-empty.t-size-s .t-empty__title{font:var(--td-font-body-small);margin-top:var(--td-comp-margin-xxs)}.t-empty.t-size-l .t-empty__image{font-size:64px}@keyframes tDialogZoomIn{0%{opacity:0;transform:scale(.01)}to{opacity:1}}@keyframes tDialogZoomOut{0%{opacity:1}to{opacity:0;transform:scale(.01)}}@keyframes tDialogMaskIn{0%{opacity:0}to{opacity:1}}@keyframes tDialogMaskOut{0%{opacity:1}to{opacity:0}}.t-dialog-zoom .animation-enter{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused;animation-timing-function:cubic-bezier(0,0,.15,1)}.t-dialog-zoom .animation-exit{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused;animation-timing-function:cubic-bezier(.38,0,.24,1)}.t-dialog-zoom .animation-active{animation-fill-mode:both;animation-play-state:running}.t-dialog-zoom-appear,.t-dialog-zoom-enter,.t-dialog-zoom-enter-from{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused;animation-timing-function:cubic-bezier(0,0,.15,1)}.t-dialog-zoom-exit{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused;animation-timing-function:cubic-bezier(.38,0,.24,1)}.t-dialog-zoom-appear-active,.t-dialog-zoom-enter-active{animation-fill-mode:both;animation-name:tDialogZoomIn;animation-play-state:running}.t-dialog-zoom-exit-active{animation-fill-mode:both;animation-name:tDialogZoomOut;animation-play-state:running}.t-dialog-zoom__vue-enter-active .t-dialog{animation-duration:.2s;animation-fill-mode:both;animation-name:tDialogZoomIn;animation-play-state:paused;animation-timing-function:cubic-bezier(0,0,.15,1)}.t-dialog-zoom__vue-enter-active .t-dialog__mask{animation-duration:.2s;animation-fill-mode:both;animation-name:tDialogMaskIn;animation-play-state:running;animation-timing-function:linear}.t-dialog-zoom__vue-leave-active .t-dialog{animation-duration:.2s;animation-fill-mode:both;animation-name:tDialogZoomOut;animation-play-state:paused;animation-timing-function:cubic-bezier(.38,0,.24,1)}.t-dialog-zoom__vue-leave-active .t-dialog__mask{animation-duration:.2s;animation-name:tDialogMaskOut;animation-timing-function:linear}.t-dialog-zoom__vue-enter-to .t-dialog,.t-dialog-zoom__vue-leave-active .t-dialog__mask,.t-dialog-zoom__vue-leave-to .t-dialog{animation-fill-mode:both;animation-play-state:running}.t-dialog-fade-appear,.t-dialog-fade-enter{opacity:0}.t-dialog-fade-appear,.t-dialog-fade-enter,.t-dialog-fade-exit{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused;animation-timing-function:cubic-bezier(0,0,.15,1)}.t-dialog-fade-appear.t-dialog-fade-appear-active,.t-dialog-fade-enter.t-dialog-fade-enter-active{animation-name:tDialogFadeIn;animation-play-state:running}.t-dialog-fade-exit.t-dialog-fade-exit-active{animation-name:tDialogFadeOut;animation-play-state:running}@keyframes tDialogFadeIn{0%{opacity:0}to{opacity:1}}@keyframes tDialogFadeOut{0%{opacity:1}to{opacity:0}}.t-dialog{background-color:var(--td-bg-color-container);border:1px solid var(--td-border-level-1-color);border-radius:var(--td-radius-large);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative;width:480px}.t-dialog .t-icon.t-is-info{color:var(--td-brand-color)}.t-dialog .t-icon.t-is-success{color:var(--td-success-color)}.t-dialog .t-icon.t-is-warning{color:var(--td-warning-color)}.t-dialog .t-icon.t-is-error{color:var(--td-error-color)}.t-dialog--lock{overflow:hidden}.t-dialog__header{align-items:center;box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-title-medium);font-weight:600;gap:var(--td-comp-margin-s);word-break:break-word}.t-dialog__header .t-dialog__header-content{align-items:flex-start;display:flex;width:100%}.t-dialog__header .t-icon:not(.t-icon-close){align-items:center;display:inline-flex;flex-shrink:0;font-size:calc(var(--td-font-size-body-large) + 8px);margin-right:var(--td-comp-margin-s)}.t-dialog__header--fullscreen{align-items:center;background-color:var(--td-bg-color-secondarycontainer);display:flex;flex-direction:row;justify-content:flex-end;min-height:var(--td-comp-size-xxxl);padding:0 var(--td-comp-paddingLR-xxl)}.t-dialog__header--fullscreen .t-dialog__header-content{align-items:center;box-sizing:border-box;display:flex;justify-content:center}.t-dialog__body{color:var(--td-text-color-secondary);font:var(--td-font-body-medium);overflow:auto;padding:var(--td-comp-paddingTB-l) 0;word-break:break-word}@-moz-document url-prefix(){.t-dialog__body{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-dialog__body::-webkit-scrollbar{height:6px;width:6px}.t-dialog__body::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-dialog__body::-webkit-scrollbar-thumb:horizontal:hover,.t-dialog__body::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-dialog__body--icon,.t-dialog__body__icon{padding:var(--td-comp-paddingTB-l) 0}.t-dialog__body--fullscreen{box-sizing:border-box;height:calc(100% - var(--td-comp-size-xxxl) - var(--td-comp-size-xxxxl));overflow:auto;padding:var(--td-comp-paddingTB-xl) var(--td-comp-paddingLR-xxl)}@-moz-document url-prefix(){.t-dialog__body--fullscreen{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-dialog__body--fullscreen::-webkit-scrollbar{height:6px;width:6px}.t-dialog__body--fullscreen::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-dialog__body--fullscreen::-webkit-scrollbar-thumb:horizontal:hover,.t-dialog__body--fullscreen::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-dialog__body--fullscreen--without-footer{box-sizing:border-box;height:calc(100% - var(--td-comp-size-xxxl));overflow:auto;padding:var(--td-comp-paddingTB-xl) var(--td-comp-paddingLR-xxl)}.t-dialog__footer{padding:var(--td-comp-paddingTB-l) 0 0;text-align:right;width:100%}.t-dialog__footer .t-button+.t-button{margin-left:var(--td-comp-margin-s)}.t-dialog__footer--fullscreen{box-sizing:border-box;min-height:var(--td-comp-size-xxxxl);padding:0 var(--td-comp-paddingLR-xxl) var(--td-comp-paddingTB-xxl)}.t-dialog--default{padding:var(--td-comp-paddingTB-xxl) var(--td-comp-paddingLR-xxl)}.t-dialog__close{align-items:center;border-radius:var(--td-radius-default);color:var(--td-text-color-secondary);display:flex;font-size:calc(var(--td-font-size-body-large) + 4px);height:calc(var(--td-font-size-body-large) + 4px);padding:var(--td-comp-paddingTB-xxs) var(--td-comp-paddingLR-xxs);transition:all .2s linear;width:calc(var(--td-font-size-body-large) + 4px)}.t-dialog__close:hover{background:var(--td-bg-color-container-hover);cursor:pointer}.t-dialog__close:active{background:var(--td-bg-color-container-active)}.t-dialog__close--fullscreen{background:transparent;display:flex}.t-dialog__close--fullscreen:hover{background:var(--td-bg-color-secondarycontainer-hover);cursor:pointer}.t-dialog__close--fullscreen:active{background:var(--td-bg-color-secondarycontainer-active)}.t-dialog.t-dialog--draggable:hover{cursor:move}.t-dialog.t-dialog--draggable .t-dialog__body:hover,.t-dialog.t-dialog--draggable .t-dialog__footer:hover,.t-dialog.t-dialog--draggable .t-dialog__header:hover{cursor:auto}.t-dialog__fullscreen{border-radius:0;width:100%}.t-dialog__ctx{height:100%;left:0;outline:none;pointer-events:auto;top:0;width:100%}.t-dialog__ctx.t-dialog__ctx--modeless{pointer-events:none}.t-dialog__ctx.t-dialog__ctx--fixed{position:fixed;z-index:2500}.t-dialog__ctx.t-dialog__ctx--absolute,.t-dialog__ctx.t-dialog__ctx--absolute .t-dialog__mask,.t-dialog__ctx.t-dialog__ctx--absolute .t-dialog__wrap{position:absolute}.t-dialog__ctx.t-is-visible{visibility:visible}.t-dialog__ctx.t-is-hidden{visibility:hidden}.t-dialog__ctx.t-is-display{display:block}.t-dialog__ctx.t-not-display{display:none}.t-dialog__ctx .t-dialog__mask{background:var(--td-mask-active);height:100%;left:0;pointer-events:auto;position:fixed;top:0;width:100%;z-index:1}.t-dialog__ctx .t-dialog__wrap{height:100%;left:0;overflow:auto;position:fixed;top:0;width:100%;z-index:1}@-moz-document url-prefix(){.t-dialog__ctx .t-dialog__wrap{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-dialog__ctx .t-dialog__wrap::-webkit-scrollbar{height:8px;width:8px}.t-dialog__ctx .t-dialog__wrap::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid transparent;border-radius:15px}.t-dialog__ctx .t-dialog__wrap::-webkit-scrollbar-thumb:horizontal:hover,.t-dialog__ctx .t-dialog__wrap::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-dialog__ctx .t-dialog__position{box-sizing:border-box;display:flex;justify-content:center;min-height:100%;padding:48px 0;position:relative;width:100%}.t-dialog__ctx .t-dialog__position.t-dialog--top{align-items:flex-start;padding-top:20vh}.t-dialog__ctx .t-dialog__position.t-dialog--center{align-items:center}.t-dialog__ctx .t-dialog__position_fullscreen{box-sizing:border-box;display:flex;justify-content:center;min-height:100%;position:relative;width:100%}.t-dialog__ctx .t-is-hidden{background:none}.t-dialog__ctx .t-dialog{pointer-events:auto;z-index:2500}.t-dialog__ctx.t-dialog__ctx--modeless .t-dialog{box-shadow:var(--td-shadow-3)}.t-image-viewer__img-error{background-color:var(--td-bg-color-component-disabled);border-radius:4px;color:#000;cursor:inherit;height:440px;position:absolute;width:440px}.t-image-viewer__img-error .t-image-viewer__img-error-content{align-content:center;align-items:center;display:flex;flex-direction:column;flex-wrap:wrap;font:var(--td-font-body-medium);height:100%;justify-content:center;position:absolute;width:100%}.t-image-viewer__img-error .t-image-viewer__img-error-content .t-image-viewer__img-error-text{margin-top:var(--td-comp-margin-s)}@keyframes modal-image-hide{0%{transform:scale(1)}to{transform:scale(0)}}@keyframes modal-mask-show{0%{opacity:0}to{opacity:1}}@keyframes modal-mask-hide{0%{opacity:1}to{opacity:0}}.t-image-viewer-preview-image{animation:modal-mask-show .2s cubic-bezier(.82,0,1,.9);bottom:0;left:0;overflow:hidden;position:fixed;right:0;top:0;z-index:3000}.t-image-viewer-preview-image.t-is-hide{animation:modal-mask-hide .2s cubic-bezier(0,0,.15,1) forwards}.t-image-viewer-preview-image.t-is-hide .t-image-viewer__modal-pic .t-image-viewer__modal-box{animation:modal-image-hide .2s cubic-bezier(0,0,.15,1) forwards}.t-image-viewer-preview-image .t-image-viewer__modal-index{background:rgba(0,0,0,.4);border-radius:var(--td-radius-default);color:var(--td-text-color-anti);font-size:var(--td-font-size-body-medium);left:50%;padding:var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-s);position:absolute;text-align:center;top:92px;transform:translateX(-50%);z-index:1}.t-image-viewer-preview-image .t-image-viewer__modal-mask{background-color:var(--td-mask-active);bottom:0;height:100%;left:0;opacity:1;position:fixed;right:0;top:0;transition:all .2s ease;width:100%}.t-image-viewer-preview-image .t-image-viewer__modal-pic{height:0;left:50%;position:absolute;top:50%;width:0}.t-image-viewer-preview-image .t-image-viewer__modal-pic .t-image-viewer__modal-box{align-items:center;animation:modal-image-show .2s cubic-bezier(.38,0,.24,1);display:flex;height:100%;justify-content:center;width:100%}.t-image-viewer-preview-image .t-image-viewer__modal-pic .t-image-viewer__modal-box .t-image-viewer__modal-image{display:block;max-height:min(90vh,800px);max-width:min(90vw,1000px);object-fit:contain;transform:rotate(0deg);transition:all .2s cubic-bezier(.38,0,.24,1)}.t-image-viewer-preview-image .t-image-viewer__modal-header{align-items:center;background-color:var(--td-bg-color-container);display:flex;height:auto;justify-content:center;padding:0 0 12px;position:absolute;top:0;width:100%;z-index:1}.t-image-viewer-preview-image .t-image-viewer__modal-header.t-is-show{padding:12px 0}@keyframes preview-icon-range{0%{transform:translate(-50%,50%) rotate(0)}to{transform:translate(-50%,50%) rotate(-180deg)}}@keyframes preview-icon-unrange{0%{transform:translate(-50%,50%) rotate(-180deg)}to{transform:translate(-50%,50%) rotate(0)}}.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-pre-bt{align-items:center;animation:preview-icon-unrange .2s cubic-bezier(.38,0,.24,1) 0s 1 normal forwards running;background-color:var(--td-bg-color-container);border-radius:50%;bottom:0;box-shadow:var(--td-shadow-inset-top),var(--td-shadow-inset-right),var(--td-shadow-inset-bottom),var(--td-shadow-inset-left);color:var(--td-text-color-primary);display:inline-flex;height:var(--td-comp-size-xxs);justify-content:center;left:50%;position:absolute;transform:translate(-50%,50%);width:var(--td-comp-size-xxs)}.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-pre-bt .t-icon{font-size:var(--td-font-size-body-large)}.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-pre-bt:hover{background-color:inherit}@keyframes preview-image-show{0%{height:0}to{height:40px}}@keyframes preview-image-hide{0%{height:40px}to{height:0}}.t-image-viewer-preview-image .t-image-viewer__modal-header.t-is-show .t-image-viewer__header-prev{animation:preview-image-show .2s cubic-bezier(.38,0,.24,1) 0s 1 normal forwards running}.t-image-viewer-preview-image .t-image-viewer__modal-header.t-is-show .t-image-viewer__header-pre-bt{animation:preview-icon-range .2s cubic-bezier(.38,0,.24,1) 0s 1 normal forwards running}.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-prev{animation:preview-image-hide .2s cubic-bezier(.38,0,.24,1) 0s 1 normal forwards running;display:flex;overflow:hidden;position:relative;width:521.77778px}.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-prev:after,.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-prev:before{content:"";height:100%;pointer-events:none;position:absolute;width:71.11111px;z-index:1}.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-prev:before{background-image:linear-gradient(to right,var(--td-bg-color-container),hsla(0,0%,100%,0));left:0}.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-prev:after{background-image:linear-gradient(to right,hsla(0,0%,100%,0),var(--td-bg-color-container));right:0}.t-image-viewer-preview-image .t-image-viewer__header-trans{align-items:center;display:flex;gap:4px;height:100%;justify-content:center;margin-left:225.33333px;transition:transform .2s}.t-image-viewer-preview-image .t-image-viewer__header-box{align-items:center;background-color:var(--td-bg-color-secondarycontainer);border:1px solid transparent;border-radius:var(--td-radius-default);box-sizing:border-box;display:flex;height:40px;justify-content:center;overflow:hidden;position:relative;transition:.2s;width:71.11111px}.t-image-viewer-preview-image .t-image-viewer__header-box .t-image-viewer__header-img{height:100%;width:auto}.t-image-viewer-preview-image .t-image-viewer__header-box.t-is-active,.t-image-viewer-preview-image .t-image-viewer__header-box:hover{border-color:var(--td-brand-color)}.t-image-viewer-preview-image .t-image-viewer__modal-icon{border-radius:var(--td-radius-default);color:var(--td-text-color-primary);cursor:pointer;transition:.2s}.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-close-bt{right:40px;top:100px}.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-next-bt,.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-prev-bt{top:50%;transform:translateY(-50%)}.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-prev-bt{left:40px}.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-next-bt{right:40px}.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-close-bt,.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-next-bt,.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-prev-bt{align-items:center;background-color:rgba(0,0,0,.4);border-radius:50%;color:var(--td-text-color-anti);display:flex;height:var(--td-comp-size-xl);justify-content:center;position:fixed;width:var(--td-comp-size-xl);z-index:10}.t-image-viewer-preview-image .t-image-viewer__modal-icon .t-image-viewer__modal-icon-label{margin-left:2px}.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-is-disabled:hover{background-color:rgba(0,0,0,.4)}.t-image-viewer-preview-image .t-image-viewer__modal-icon:hover{background-color:rgba(0,0,0,.2)}.t-image-viewer__mask{background-color:transparent;height:100vh;left:0;position:fixed;top:0;width:100vh;z-index:99}.t-image-viewer__utils{align-items:center;bottom:32px;color:var(--td-text-color-primary);display:flex;height:auto;justify-content:center;position:absolute;user-select:none;width:100%;z-index:1}.t-image-viewer__utils .t-image-viewer__utils-content{align-items:center;background:var(--td-bg-color-container);border-radius:var(--td-radius-medium);display:inline-flex;height:50px;justify-content:center;line-height:100%;padding:0 var(--td-comp-paddingLR-xs)}.t-image-viewer__utils .t-image-viewer__utils-content .t-image-viewer__modal-icon{align-items:center;border-radius:var(--td-radius-default);display:flex;height:var(--td-comp-size-m);justify-content:center;margin:0 var(--td-comp-margin-xs);transition:.2s;width:var(--td-comp-size-m)}.t-image-viewer__utils .t-image-viewer__utils-content .t-image-viewer__modal-icon:hover{background-color:var(--td-bg-color-container-hover)}.t-image-viewer__utils .t-image-viewer__utils-content .t-image-viewer__utils-scale{cursor:inherit;text-align:center;width:var(--td-comp-size-xl)}.t-image-viewer__utils .t-image-viewer__utils-content .t-image-viewer__utils-scale:hover{background-color:var(--td-bg-color-container)}.t-image-viewer-mini__footer .t-image-viewer__utils{position:inherit}.t-image-viewer-mini__content{max-height:min(90vh,800px);max-width:min(90vw,1000px)}@keyframes modal-image-show{0%{transform:scale(0)}to{transform:scale(1)}}.t-image-viewer-mini__content .t-image-viewer__modal-pic .t-image-viewer__modal-box{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.t-image-viewer-mini__content .t-image-viewer__modal-pic .t-image-viewer__modal-box .t-image-viewer__modal-image{display:block;max-height:min(80vh,600px);max-width:min(80vw,800px);object-fit:contain;transform:rotate(0deg);transition:all .2s ease}.t-image-viewer__dialog.t-dialog__ctx--fixed{z-index:3000}.t-image-viewer__dialog .t-dialog__header{padding:0 var(--td-comp-paddingLR-s);pointer-events:none}.t-image-viewer__dialog .t-dialog__header .t-image-viewer__dialog-title{pointer-events:all}.t-image-viewer__dialog .t-dialog__header .t-dialog__close{pointer-events:auto}.t-image-viewer__dialog .t-dialog{border-color:var(--td-component-border);box-shadow:var(--td-shadow-3);overflow:hidden;padding:0}.t-image-viewer__dialog .t-dialog__header{background-color:var(--td-bg-color-secondarycontainer);font-size:var(--td-font-size-body-medium);height:40px;width:100%}.t-image-viewer__dialog .t-dialog__header-content{justify-content:center;margin-left:32px}.t-image-viewer__dialog .t-dialog__close:hover{background-color:var(--td-bg-color-secondarycontainer-hover)}.t-list{background:var(--td-bg-color-container);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;overflow:auto;padding:0}@-moz-document url-prefix(){.t-list{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-list::-webkit-scrollbar{height:6px;width:6px}.t-list::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-list::-webkit-scrollbar-thumb:horizontal:hover,.t-list::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-list__inner{list-style:none;margin:0;padding:0}.t-list-item{align-items:center;display:flex;font:var(--td-font-body-medium);justify-content:space-between;padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l);position:relative}.t-list-item:after{bottom:0;content:"";height:1px;left:0;position:absolute;width:100%}.t-list-item-main{align-items:center;display:flex;flex:1;justify-content:space-between;width:100%}.t-list-item__meta{display:flex}.t-list-item__meta-avatar{background:var(--td-bg-color-page);border-radius:calc(var(--td-comp-size-xxxl)/2);flex-shrink:0;height:var(--td-comp-size-xxxl);margin-right:var(--td-comp-margin-l);overflow:hidden;width:var(--td-comp-size-xxxl)}.t-list-item__meta-avatar img{height:100%;max-width:100%;width:100%}.t-list-item__meta-title{color:var(--td-text-color-primary);font:var(--td-font-title-medium);margin:0 0 var(--td-comp-margin-s);padding:0}.t-list-item__meta-description{color:var(--td-text-color-primary);margin-right:var(--td-comp-margin-xxl)}.t-list-item__action{flex-shrink:0;list-style:none;padding:0}.t-list-item__action>li{display:inline-block}.t-list-item__action>li:not(:last-child){margin-right:var(--td-comp-margin-l)}.t-list-item__action>li .t-icon{color:var(--td-text-color-secondary);font-size:var(--td-comp-size-xxxs)}.t-list-item__action>li .t-icon:hover{color:var(--td-text-color-link);cursor:pointer}.t-list-item__action>li>a{color:var(--td-brand-color);text-decoration:none}.t-list--split .t-list-item:after{background:var(--td-border-level-1-color)}.t-list--stripe .t-list-item:nth-child(2n){background:var(--td-bg-color-secondarycontainer)}.t-list--vertical-action .t-list-item{flex-direction:column}.t-list.t-size-s .t-list-item{padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-m)}.t-list.t-size-l .t-list-item{padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-xl)}.t-list__footer,.t-list__header{background:var(--td-bg-color-container);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l)}.t-list__load{background:var(--td-bg-color-container);line-height:var(--td-line-height-body-medium);text-align:center}.t-list__load>div{align-items:center;display:flex;justify-content:center}.t-list__load:not(:empty){padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l)}.t-list__load .t-loading{font-size:var(--td-comp-size-xxxs);margin-right:var(--td-comp-margin-s)}.t-list__load .t-loading.t-is-load-more{cursor:pointer}.t-progress{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-progress__inner{background:var(--td-brand-color);border-radius:var(--td-radius-round);height:100%;position:relative;transition:all .2s cubic-bezier(.38,0,.24,1)}.t-progress__info{color:var(--td-text-color-primary);display:inline-flex;margin-left:var(--td-comp-margin-s);white-space:nowrap}.t-progress__icon{font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-progress__bar{background:var(--td-bg-color-component);border-radius:var(--td-radius-round);height:var(--td-size-3);overflow:hidden;width:100%}.t-progress--thin{align-items:center;display:flex;justify-content:space-between}.t-progress--plump{align-items:center;border-radius:calc(var(--td-comp-size-xxs)/2);display:flex;height:var(--td-comp-size-xxs)}.t-progress--plump .t-progress__info{font-size:var(--td-font-size-body-small)}.t-progress--over-ten .t-progress__info{color:var(--td-text-color-anti);position:absolute;right:var(--td-comp-margin-s);top:50%;transform:translateY(-50%);z-index:10}.t-progress--under-ten .t-progress__info,.t-progress--under-ten .t-progress__inner{display:inline-block}.t-progress--under-ten .t-progress__info{vertical-align:top}.t-progress--circle{position:relative}.t-progress--circle .t-progress__info{display:block;font-size:inherit;font-weight:600;left:50%;line-height:1;margin:0;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%);width:100%}.t-progress--circle .t-progress__circle-outer{stroke:var(--td-bg-color-component)}.t-progress--circle .t-progress__circle-inner{stroke:var(--td-brand-color);transition:all .2s cubic-bezier(.38,0,.24,1)}.t-progress--circle .t-progress__icon{font-size:2.4em}.t-progress--status--active .t-progress__inner:before{animation:progress-active-animation 2s cubic-bezier(.23,.99,.86,.2) infinite;background:var(--td-text-color-anti);bottom:0;content:"";left:0;opacity:.2;position:absolute;right:0;top:0;z-index:1}.t-progress--status--success .t-progress__inner{background:var(--td-success-color)}.t-progress--status--success .t-progress__circle-inner{stroke:var(--td-success-color)}.t-progress--status--success .t-progress__icon{color:var(--td-success-color)}.t-progress--status--warning .t-progress__inner{background:var(--td-warning-color)}.t-progress--status--warning .t-progress__circle-inner{stroke:var(--td-warning-color)}.t-progress--status--warning .t-progress__icon{color:var(--td-warning-color)}.t-progress--status--error .t-progress__inner{background:var(--td-error-color)}.t-progress--status--error .t-progress__circle-inner{stroke:var(--td-error-color)}.t-progress--status--error .t-progress__icon{color:var(--td-error-color)}@keyframes progress-active-animation{0%{opacity:.1;width:0}35%{opacity:.4;width:50%}to{opacity:0;width:100%}}:root,:root[theme-mode=light]{--skeleton-animation-gradient:rgba(0,0,0,.04)}:root[theme-mode=dark]{--skeleton-animation-gradient:hsla(0,0%,100%,.06)}.t-skeleton{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-skeleton__row{align-items:center;display:flex;margin-bottom:var(--td-comp-margin-l)}.t-skeleton__row:last-child,.t-skeleton__row:only-child{margin-bottom:0}.t-skeleton__col{align-items:center;background-color:var(--td-bg-color-secondarycontainer);color:var(--td-text-color-disabled);display:flex;justify-content:center;margin-right:var(--td-comp-margin-l)}.t-skeleton__col:first-child:last-child,.t-skeleton__col:last-child{margin-right:0}.t-skeleton--type-text{border-radius:var(--td-radius-default);height:var(--td-font-size-body-large);width:100%}.t-skeleton--type-rect{border-radius:var(--td-radius-default);height:88px;width:120px}.t-skeleton--type-circle{border-radius:var(--td-radius-circle);flex-shrink:0;height:32px;width:32px}.t-skeleton--animation-gradient{overflow-x:hidden;position:relative}.t-skeleton--animation-gradient:after{animation:t-skeleton--gradient 1.5s linear 2s infinite;background:linear-gradient(90deg,hsla(0,0%,100%,0),var(--skeleton-animation-gradient),hsla(0,0%,100%,0));bottom:0;content:" ";left:0;position:absolute;right:0;top:0}.t-skeleton--animation-flashed{animation:t-skeleton--flashed 2s linear 2s infinite}@keyframes t-skeleton--gradient{0%{transform:translateX(-100%) skewX(-15deg)}to{transform:translateX(100%) skewX(-15deg)}}@keyframes t-skeleton--flashed{0%{opacity:1}50%{background-color:hsla(0,0%,90%,.3);opacity:.3}to{opacity:1}}.t-statistic{color:var(--td-text-color-secondary);display:inline-block;font-size:var(--td-font-size-body-medium);line-height:var(--td-line-height-body-medium)}.t-statistic-title{font-size:var(--td-font-body-medium);margin-bottom:var(--td-comp-margin-s)}.t-statistic-content{color:var(--td-text-color-primary);display:inline-block;text-align:left;white-space:nowrap}.t-statistic-content-value{font-size:var(--td-font-size-headline-medium);line-height:var(--td-line-height-headline-medium)}.t-statistic-content-unit,.t-statistic-content-value{font-family:TCloudNumber,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Hiragino Sans GB,Microsoft YaHei UI,Microsoft YaHei,Source Han Sans CN,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol}.t-statistic-content-unit{font-size:var(--td-font-size-body-medium);margin-left:var(--td-comp-margin-xs)}.t-statistic-content-suffix{margin-left:var(--td-comp-margin-s)}.t-statistic-content-prefix,.t-statistic-content-suffix{align-items:center;display:inline-flex;font-size:var(--td-font-size-title-large)}.t-statistic-content-prefix{margin-right:var(--td-comp-margin-s)}.t-statistic-content-prefix .t-icon{font-size:var(--td-font-size-title-large)}.t-statistic-extra{margin-top:8px}.t-statistic-extra .t-space .t-space-item{display:flex}.t-swiper{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:fit-content;list-style:none;margin:0;padding:0;position:relative}.t-swiper__wrap{display:block;height:100%;position:relative}.t-swiper__content{overflow:hidden;position:relative;z-index:1}.t-swiper__container{display:flex;flex-direction:row;height:100%;position:relative;z-index:1}.t-swiper__container__item{display:inline-block;flex:0 0 auto;height:100%;width:100%}.t-swiper__arrow{align-items:center;display:flex}.t-swiper__arrow svg.t-icon{height:20px;width:20px}.t-swiper__arrow svg.t-icon:before{font-size:24px}.t-swiper__arrow--default .t-swiper__arrow-left{align-items:center;background-color:transparent;color:var(--td-font-white-2);cursor:pointer;display:flex;height:24px;justify-content:center;left:16px;position:absolute;top:50%;transform:translateY(-50%);transition:.2s linear;width:24px;z-index:2}.t-swiper__arrow--default .t-swiper__arrow-left:hover{background-color:var(--td-font-white-4);border-radius:var(--td-radius-default);color:var(--td-bg-color-container);transition:.2s linear}.t-swiper__arrow--default .t-swiper__arrow-left:active{background-color:var(--td-font-white-3);transition:.2s linear}.t-swiper__arrow--default .t-swiper__arrow-right{align-items:center;background-color:transparent;color:var(--td-font-white-2);cursor:pointer;display:flex;height:24px;justify-content:center;position:absolute;right:16px;top:50%;transform:translateY(-50%);transition:.2s linear;width:24px;z-index:2}.t-swiper__arrow--default .t-swiper__arrow-right:hover{background-color:var(--td-font-white-4);border-radius:var(--td-radius-default);color:var(--td-bg-color-container);transition:.2s linear}.t-swiper__arrow--default .t-swiper__arrow-right:active{background-color:var(--td-font-white-3);transition:.2s linear}.t-swiper-card .t-swiper__container{display:block}.t-swiper-card .t-swiper__container .t-is-active{z-index:2}.t-swiper-card .t-swiper__card{height:100%;left:0;position:absolute;top:0;width:41.5%;z-index:0}.t-swiper-fade .t-swiper__container{display:block}.t-swiper-fade .t-swiper__fade{left:0;position:absolute;top:0}.t-swiper__navigation{bottom:0;display:flex;flex-direction:row;left:50%;margin:0;padding:0;position:absolute;transform:translateX(-50%);z-index:2}.t-swiper__navigation>li{display:flex;flex:1 0 auto;list-style-type:none}.t-swiper__navigation .t-swiper__arrow svg.t-icon{height:16px;width:16px}.t-swiper__navigation-bars .t-swiper__navigation-item{cursor:pointer;height:auto;margin:0 0 0 6px;padding:18px 0;width:14px}.t-swiper__navigation-bars .t-swiper__navigation-item span{height:3px;width:100%}.t-swiper__navigation-bars .t-swiper__navigation-item:first-child{margin-left:0}.t-swiper__navigation-bars .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active{width:24px}.t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper__navigation-dots-bar .t-swiper__navigation-item{cursor:pointer;height:auto;margin:0 0 0 6px;padding:18px 0;width:14px}.t-swiper__navigation-dots-bar .t-swiper__navigation-item span{border-radius:1.5px;height:3px;width:100%}.t-swiper__navigation-dots-bar .t-swiper__navigation-item:first-child{margin-left:0}.t-swiper__navigation-dots-bar .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper__navigation-dots-bar .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper__navigation-dots-bar .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper__navigation-dots-bar .t-swiper__navigation-item.t-is-active{width:24px}.t-swiper__navigation-dots-bar .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper__navigation-dots .t-swiper__navigation-item{cursor:pointer;height:auto;margin:0 0 0 6px;padding:18px 0;width:var(--td-size-2)}.t-swiper__navigation-dots .t-swiper__navigation-item span{border-radius:50%;height:var(--td-size-2);width:100%}.t-swiper__navigation-dots .t-swiper__navigation-item:first-child{margin-left:0}.t-swiper__navigation-dots .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper__navigation-dots .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper__navigation-dots .t-swiper__navigation-item span:active,.t-swiper__navigation-dots .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper__navigation--fraction{bottom:calc(-12px - var(--td-line-height-body-medium));height:var(--td-line-height-body-medium);left:50%;line-height:var(--td-line-height-body-medium);position:absolute;right:auto;top:auto;transform:translateX(-50%)}.t-swiper__navigation--fraction .t-swiper__arrow-left{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-medium);justify-content:center;width:var(--td-line-height-body-medium);z-index:2}.t-swiper__navigation--fraction .t-swiper__arrow-left:hover{color:var(--td-text-color-primary)}.t-swiper__navigation--fraction .t-swiper__arrow-left:active{color:var(--td-brand-color-active)}.t-swiper__navigation--fraction .t-swiper__arrow-right{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-medium);justify-content:center;width:var(--td-line-height-body-medium);z-index:2}.t-swiper__navigation--fraction .t-swiper__arrow-right:hover{color:var(--td-text-color-primary)}.t-swiper__navigation--fraction .t-swiper__arrow-right:active{color:var(--td-brand-color-active)}.t-swiper__navigation--fraction .t-swiper__navigation-text-fraction{color:var(--td-text-color-secondary);display:inline-block;font-size:var(--td-font-size-body-medium);margin:0}.t-swiper--vertical .t-swiper__container{flex-direction:column}.t-swiper--vertical .t-swiper__navigation{bottom:auto;display:flex;flex-direction:column;justify-content:center;left:auto;position:absolute;right:0;top:50%;transform:translateY(-50%)}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item{cursor:pointer;height:14px;margin:6px 0 0;padding:0 18px;width:auto}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span{height:100%;width:3px}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item:first-child{margin-top:0}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active{height:24px}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item{cursor:pointer;height:14px;margin:6px 0 0;padding:0 18px;width:auto}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item span{border-radius:1.5px;height:100%;width:3px}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item:first-child{margin-top:0}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item.t-is-active{height:24px}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item{cursor:pointer;margin:6px 0 0;max-height:var(--td-size-2);padding:0 18px;width:auto}.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item span{border-radius:50%;height:100%;width:var(--td-size-2)}.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item:first-child{margin-top:0}.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item span:active,.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--outside .t-swiper__navigation{bottom:-36px}.t-swiper--outside .t-swiper__navigation--fraction{bottom:calc(-12px - var(--td-line-height-body-medium));height:var(--td-line-height-body-medium);left:50%;line-height:var(--td-line-height-body-medium);position:absolute;right:auto;top:auto;transform:translateX(-50%)}.t-swiper--outside .t-swiper__navigation--fraction .t-swiper__arrow-left{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-medium);justify-content:center;width:var(--td-line-height-body-medium);z-index:2}.t-swiper--outside .t-swiper__navigation--fraction .t-swiper__arrow-left:hover{color:var(--td-text-color-primary)}.t-swiper--outside .t-swiper__navigation--fraction .t-swiper__arrow-left:active{color:var(--td-brand-color-active)}.t-swiper--outside .t-swiper__navigation--fraction .t-swiper__arrow-right{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-medium);justify-content:center;width:var(--td-line-height-body-medium);z-index:2}.t-swiper--outside .t-swiper__navigation--fraction .t-swiper__arrow-right:hover{color:var(--td-text-color-primary)}.t-swiper--outside .t-swiper__navigation--fraction .t-swiper__arrow-right:active{color:var(--td-brand-color-active)}.t-swiper--outside .t-swiper__navigation--fraction .t-swiper__navigation-text-fraction{color:var(--td-text-color-secondary);display:inline-block;font-size:var(--td-font-size-body-medium);margin:0}.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--outside .t-swiper__navigation-bars .t-is-active span,.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-brand-color-active)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation{bottom:auto;right:-36px}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction{bottom:calc(-12px - var(--td-line-height-body-medium));height:var(--td-line-height-body-medium);left:50%;line-height:var(--td-line-height-body-medium);position:absolute;right:auto;top:auto;transform:translateX(-50%)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction .t-swiper__arrow-left{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-medium);justify-content:center;width:var(--td-line-height-body-medium);z-index:2}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction .t-swiper__arrow-left:hover{color:var(--td-text-color-primary)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction .t-swiper__arrow-left:active{color:var(--td-brand-color-active)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction .t-swiper__arrow-right{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-medium);justify-content:center;width:var(--td-line-height-body-medium);z-index:2}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction .t-swiper__arrow-right:hover{color:var(--td-text-color-primary)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction .t-swiper__arrow-right:active{color:var(--td-brand-color-active)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction .t-swiper__navigation-text-fraction{color:var(--td-text-color-secondary);display:inline-block;font-size:var(--td-font-size-body-medium);margin:0}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation-bars .t-is-active span,.t-swiper--outside.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-brand-color-active)}.t-swiper--inside .t-swiper__navigation{bottom:0}.t-swiper--inside .t-swiper__navigation--fraction{bottom:calc(-12px - var(--td-line-height-body-medium));height:var(--td-line-height-body-medium);left:50%;line-height:var(--td-line-height-body-medium);position:absolute;right:auto;top:auto;transform:translateX(-50%)}.t-swiper--inside .t-swiper__navigation--fraction .t-swiper__arrow-left{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-medium);justify-content:center;width:var(--td-line-height-body-medium);z-index:2}.t-swiper--inside .t-swiper__navigation--fraction .t-swiper__arrow-left:hover{color:var(--td-text-color-primary)}.t-swiper--inside .t-swiper__navigation--fraction .t-swiper__arrow-left:active{color:var(--td-brand-color-active)}.t-swiper--inside .t-swiper__navigation--fraction .t-swiper__arrow-right{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-medium);justify-content:center;width:var(--td-line-height-body-medium);z-index:2}.t-swiper--inside .t-swiper__navigation--fraction .t-swiper__arrow-right:hover{color:var(--td-text-color-primary)}.t-swiper--inside .t-swiper__navigation--fraction .t-swiper__arrow-right:active{color:var(--td-brand-color-active)}.t-swiper--inside .t-swiper__navigation--fraction .t-swiper__navigation-text-fraction{color:var(--td-text-color-secondary);display:inline-block;font-size:var(--td-font-size-body-medium);margin:0}.t-swiper--large .t-swiper__arrow i.t-icon:before{font-size:32px}.t-swiper--large .t-swiper__arrow--default .t-swiper__arrow-left{height:32px;left:24px;width:32px}.t-swiper--large .t-swiper__arrow--default .t-swiper__arrow-right{height:32px;right:24px;width:32px}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item{cursor:pointer;height:auto;margin:0 0 0 8px;padding:24px 0;width:21px}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item span{height:4px;width:100%}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item:first-child{margin-left:0}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active{width:36px}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--large .t-swiper__navigation--fraction{bottom:calc(-12px - var(--td-line-height-body-large));height:var(--td-line-height-body-large);left:50%;line-height:var(--td-line-height-body-large);position:absolute;right:auto;top:auto;transform:translateX(-50%)}.t-swiper--large .t-swiper__navigation--fraction .t-swiper__arrow-left{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-large);justify-content:center;width:var(--td-line-height-body-large);z-index:2}.t-swiper--large .t-swiper__navigation--fraction .t-swiper__arrow-left:hover{color:var(--td-text-color-primary)}.t-swiper--large .t-swiper__navigation--fraction .t-swiper__arrow-left:active{color:var(--td-brand-color-active)}.t-swiper--large .t-swiper__navigation--fraction .t-swiper__arrow-right{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-large);justify-content:center;width:var(--td-line-height-body-large);z-index:2}.t-swiper--large .t-swiper__navigation--fraction .t-swiper__arrow-right:hover{color:var(--td-text-color-primary)}.t-swiper--large .t-swiper__navigation--fraction .t-swiper__arrow-right:active{color:var(--td-brand-color-active)}.t-swiper--large .t-swiper__navigation--fraction .t-swiper__navigation-text-fraction{color:var(--td-text-color-secondary);display:inline-block;font-size:var(--td-font-size-body-large);margin:0}.t-swiper--large.t-swiper--outside .t-swiper__navigation{bottom:-48px}.t-swiper--large.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--large.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--large.t-swiper--outside .t-swiper__navigation-bars .t-is-active span,.t-swiper--large.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-brand-color-active)}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item{cursor:pointer;height:21px;margin:8px 0 0;padding:0 24px;width:auto}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span{height:100%;width:4px}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item:first-child{margin-top:0}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active{height:36px}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--large.t-swiper--vertical.t-swiper--outside .t-swiper__navigation{right:-48px}.t-swiper--large.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--large.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--large.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-is-active span,.t-swiper--large.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-brand-color-active)}.t-swiper--small .t-swiper__arrow i.t-icon:before{font-size:16px}.t-swiper--small .t-swiper__arrow--default .t-swiper__arrow-left{height:16px;left:8px;width:16px}.t-swiper--small .t-swiper__arrow--default .t-swiper__arrow-right{height:16px;right:8px;width:16px}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item{cursor:pointer;height:auto;margin:0 0 0 4px;padding:12px 0;width:9px}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item span{height:2px;width:100%}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item:first-child{margin-left:0}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active{width:15px}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--small .t-swiper__navigation--fraction{bottom:calc(-12px - var(--td-line-height-body-small));height:var(--td-line-height-body-small);left:50%;line-height:var(--td-line-height-body-small);position:absolute;right:auto;top:auto;transform:translateX(-50%)}.t-swiper--small .t-swiper__navigation--fraction .t-swiper__arrow-left{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-small);justify-content:center;width:var(--td-line-height-body-small);z-index:2}.t-swiper--small .t-swiper__navigation--fraction .t-swiper__arrow-left:hover{color:var(--td-text-color-primary)}.t-swiper--small .t-swiper__navigation--fraction .t-swiper__arrow-left:active{color:var(--td-brand-color-active)}.t-swiper--small .t-swiper__navigation--fraction .t-swiper__arrow-right{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-small);justify-content:center;width:var(--td-line-height-body-small);z-index:2}.t-swiper--small .t-swiper__navigation--fraction .t-swiper__arrow-right:hover{color:var(--td-text-color-primary)}.t-swiper--small .t-swiper__navigation--fraction .t-swiper__arrow-right:active{color:var(--td-brand-color-active)}.t-swiper--small .t-swiper__navigation--fraction .t-swiper__navigation-text-fraction{color:var(--td-text-color-secondary);display:inline-block;font-size:var(--td-font-size-body-small);margin:0}.t-swiper--small.t-swiper--outside .t-swiper__navigation{bottom:-24px}.t-swiper--small.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--small.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--small.t-swiper--outside .t-swiper__navigation-bars .t-is-active span,.t-swiper--small.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-brand-color-active)}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item{cursor:pointer;height:9px;margin:4px 0 0;padding:0 12px;width:auto}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span{height:100%;width:2px}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item:first-child{margin-top:0}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active{height:15px}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--small.t-swiper--vertical.t-swiper--outside .t-swiper__navigation{right:-24px}.t-swiper--small.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--small.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--small.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-is-active span,.t-swiper--small.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-brand-color-active)}@-moz-document url-prefix(){.scrollbar{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.scrollbar::-webkit-scrollbar{height:6px;width:6px}.scrollbar::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.scrollbar::-webkit-scrollbar-thumb:horizontal:hover,.scrollbar::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.scrollbar.t-table__affixed-footer-elm::-webkit-scrollbar-track,.scrollbar.t-table__scrollbar--obvious::-webkit-scrollbar-track{background:var(--td-scroll-track-color)}.t-table--width-overflow.t-table--footer-affixed .t-table__content::-webkit-scrollbar-thumb,.t-table--width-overflow.t-table--horizontal-bar-affixed .t-table__content::-webkit-scrollbar-thumb,.t-table__affixed-footer-wrap>.scrollbar.t-table__affixed-footer-elm::-webkit-scrollbar-thumb{background:transparent}.t-table.t-table--overflow-visible{overflow:initial}.t-table{background-color:var(--td-bg-color-container);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative;width:100%}.t-table .t-popup:not(.t-tooltip)[data-popper-placement^=top] .t-popup__arrow{bottom:-4px}.t-table:focus-visible{outline:none}.t-table .t-loading--full{z-index:72}.t-table.t-vertical-align-top td:not(.t-table__cell-check),.t-table.t-vertical-align-top th:not(.t-table__cell-check){vertical-align:top}.t-table.t-vertical-align-middle td:not(.t-table__cell-check),.t-table.t-vertical-align-middle th:not(.t-table__cell-check){vertical-align:middle}.t-table.t-vertical-align-bottom td:not(.t-table__cell-check),.t-table.t-vertical-align-bottom th:not(.t-table__cell-check){vertical-align:bottom}.t-table .t-table__resize-line{border-left:1px solid var(--td-component-border);display:none;left:10px;position:absolute;width:0;z-index:1001}.t-table__column-controller-trigger.t-align-bottom-right,.t-table__column-controller-trigger.t-align-top-right{text-align:right}.t-table__column-controller-trigger{padding:var(--td-comp-paddingTB-l) 0}.t-table__column-controller-item:not(:last-child){margin-bottom:var(--td-comp-margin-l)}.t-table__content{position:relative}@-moz-document url-prefix(){.t-table__content{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-table__content::-webkit-scrollbar{height:6px;width:6px}.t-table__content::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-table__content::-webkit-scrollbar-thumb:horizontal:hover,.t-table__content::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-table__pagination{box-sizing:border-box;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l)}.t-table .t-icon{font-size:var(--td-font-size-body-large)}.t-table table{border-spacing:0;width:100%}.t-table .t-text-ellipsis{word-wrap:normal;line-height:var(--td-line-height-body-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-table td,.t-table th{background-color:inherit;border-bottom:1px solid var(--td-component-border);box-sizing:border-box;font-weight:400;line-height:var(--td-line-height-body-medium);overflow-wrap:break-word;padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l);position:relative;text-align:left}.t-table th.t-table__th-drag{height:0;padding:0;text-align:center}.t-table th,.t-table thead td{color:var(--td-text-color-placeholder)}.t-table td[key=row-select]{padding:13px 0 11px var(--td-comp-paddingLR-l)}.t-table td.t-align-left,.t-table th.t-align-left{text-align:left}.t-table td.t-align-right,.t-table th.t-align-right{text-align:right}.t-table td.t-align-center,.t-table th.t-align-center{text-align:center}.t-table tr{background-color:var(--td-bg-color-container)}.t-table.t-size-s td,.t-table.t-size-s th{padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s)}.t-table.t-size-l td,.t-table.t-size-l th{padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-xl)}.t-table .t-table__expandable-icon-cell,.t-table .t-table__selection-cell{height:0;padding:0}.t-table td.t-table__handle-draggable{height:0;padding:0;text-align:center}.t-table .t-table__cell--selectable>.t-checkbox{vertical-align:middle}.t-table .t-table__cell--selectable+td,.t-table .t-table__cell--selectable+th{padding-left:0}.t-table--bordered td,.t-table--bordered th{border-left:1px solid var(--td-component-border)}.t-table--bordered td.t-table__cell--fixed-left-last:before,.t-table--bordered th.t-table__cell--fixed-left-last:before{border-right:1px solid var(--td-component-border)}.t-table--bordered td.t-table__td-first-col,.t-table--bordered th:first-child,.t-table--bordered:not(.t-table--rowspan-colspan) td:first-child{border-left-width:0}.t-table--bordered .t-table__content{border-left:1px solid var(--td-component-border)}.t-table--bordered .t-table__content::-webkit-scrollbar-corner{background-color:transparent}.t-table--bordered .t-table__content{border:1px solid var(--td-component-border);border-radius:var(--td-radius-default)}.t-table--bordered .t-table--loading{border-bottom:1px solid var(--td-component-border)}.t-table--bordered .t-table__pagination{padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l)}.t-table--bordered .t-table__bottom-content+.t-table__pagination{padding:0}.t-table--bordered.t-table__header--fixed .t-table__content{border-bottom:1px solid var(--td-component-border)}.t-table--bordered .t-table__td-last-row,.t-table--striped:not(.t-table--bordered) td,.t-table--striped:not(.t-table--bordered) th{border-bottom:none}.t-table--striped.t-table--header-fixed>.t-table__content>table>tbody tr:nth-of-type(2n),.t-table--striped:not(.t-table--header-fixed)>.t-table__content>table>tbody>tr:nth-of-type(odd):not(.t-table__expanded-row){background-color:var(--td-bg-color-secondarycontainer)}.t-table--striped.t-table--hoverable.t-table__header--fixed tbody tr:nth-of-type(2n):hover,.t-table--striped.t-table--hoverable:not(.t-table__header--fixed)>.t-table__content>table>tbody tr:nth-of-type(odd):hover{background-color:var(--td-bg-color-secondarycontainer-hover)}.t-table--striped.t-table--hoverable>.t-table__content>table>tbody tr{transition:background-color .2s linear}.t-table--striped.t-table--hoverable>.t-table__content>table>tbody tr:hover{background-color:var(--td-bg-color-container-hover)}.t-table--hoverable tbody tr{transition:background-color .2s linear}.t-table--hoverable tbody tr:hover{background-color:var(--td-bg-color-container-hover)}.t-table.t-table--align-top tbody td{vertical-align:top}.t-table .t-table__cell--highlight{background-color:var(--td-bg-color-secondarycontainer)}.t-table__header--fixed table{table-layout:fixed}.t-table__header--fixed td,.t-table__header--fixed th{overflow-wrap:break-word}.t-table__header--fixed .t-table__header,.t-table__header--fixed.t-table__header{position:relative;width:fit-content;z-index:5}@-moz-document url-prefix(){.t-table__header--fixed .t-table__header{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-table__header--fixed .t-table__header::-webkit-scrollbar{height:6px;width:6px}.t-table__header--fixed .t-table__header::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-table__header--fixed .t-table__header::-webkit-scrollbar-thumb:horizontal:hover,.t-table__header--fixed .t-table__header::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-table__header--fixed .t-table__body{overflow-y:auto;width:fit-content}@-moz-document url-prefix(){.t-table__header--fixed .t-table__body{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-table__header--fixed .t-table__body::-webkit-scrollbar{height:6px;width:6px}.t-table__header--fixed .t-table__body::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-table__header--fixed .t-table__body::-webkit-scrollbar-thumb:horizontal:hover,.t-table__header--fixed .t-table__body::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-table:not(.t-table--bordered) .t-table__cell--selectable+td,.t-table:not(.t-table--bordered) .t-table__cell--selectable+th{padding-left:0}.t-table__cell--fixed.t-table__header--fixed .t-table__header{overflow:hidden;width:100%}.t-table__cell--fixed.t-table__header--fixed .t-table__header .t-table__cell--fixed-left:last-child:after,.t-table__cell--fixed.t-table__header--fixed .t-table__header .t-table__cell--fixed-right:last-child:after{background-color:var(--td-bg-color-secondarycontainer);content:"";height:100%;position:absolute;right:-6px;top:0;width:6px}.t-table__cell--fixed.t-table__header--fixed .t-table__body{overflow:auto scroll}.t-table__cell--fixed .t-table__content{overflow:auto hidden}.t-table__cell--fixed table{min-width:100%;table-layout:fixed}.t-table__cell--fixed td,.t-table__cell--fixed th{position:relative}.t-table__cell--fixed .t-table__cell--fixed-left-last:before{background-color:inherit;z-index:-1}.t-table__cell--fixed .t-table__cell--fixed-left-last:after{bottom:0;content:"";pointer-events:none;position:absolute;right:0;top:0;transform:translateX(100%);transition:box-shadow .3s;z-index:-2}.t-table__cell--fixed .t-table__cell--fixed-right-first:before{background-color:inherit;z-index:-1}.t-table__cell--fixed .t-table__cell--fixed-right-first:after{bottom:0;content:"";left:0;pointer-events:none;position:absolute;top:0;transform:translateX(-100%);transition:box-shadow .3s;z-index:-2}.t-table .t-table__cell-resizable{position:relative}.t-table .t-table__cell-resizable .t-table__cell--resizer{bottom:0;cursor:col-resize;position:absolute;right:-5px;top:0;width:10px;z-index:10}.t-table .t-table__row--disabled{color:var(--td-text-color-disabled)}.t-table .t-table__cell--title{align-items:center;display:flex}.t-table__column-controller-desc{margin-bottom:var(--td-comp-margin-xxl)}.t-table__column-controller-block{border-bottom:1px solid var(--td-component-border);border:1px solid var(--td-component-border);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l)}.t-table__column-controller-block+.t-table__column-controller-block{border-bottom:1px solid var(--td-component-border);border-top:0;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l)}.t-table__column-controller--fixed .t-checkbox{width:108px}.t-table.t-table__row--active-multiple tbody>tr.t-table__row--active,.t-table.t-table__row--active-single tbody>tr.t-table__row--active{background-color:var(--td-brand-color-light)}.t-table.t-table--hoverable tbody>tr.t-table__row--active:hover,.t-table.t-table__row--active-multiple tbody>tr.t-table__row--active.t-table__row--hover,.t-table.t-table__row--active-single tbody>tr.t-table__row--active.t-table__row--hover{background-color:var(--td-brand-color-light-hover)}.t-table.t-table--row-expandable tbody>tr.t-table__row--hover,.t-table.t-table--row-select tbody>tr.t-table__row--hover,.t-table.t-table__row--active-multiple tbody>tr.t-table__row--hover{background-color:var(--td-bg-color-container-hover)}.t-table--bordered .t-table__cell--filterable .t-table__cell--title,.t-table--bordered .t-table__cell--sortable .t-table__cell--title{justify-content:space-between}.t-table th.t-align-right .t-table__cell--title{justify-content:flex-end}.t-table__cell--sort-trigger{text-align:center;vertical-align:text-bottom}.t-table__cell--sort-trigger svg{vertical-align:initial}.t-table--loading{position:relative}.t-table--loading-progressbar{animation:tTableProgressbar 2s ease-in-out;animation-fill-mode:both;background-color:var(--td-brand-color);height:1px;left:0;overflow:hidden;position:absolute;top:0}.t-table--loading-message{align-items:center;color:var(--td-text-color-placeholder);display:flex;justify-content:center;min-height:120px}.t-table__expanded-cell{padding-left:45px}.t-table__async-loading{text-align:center}.t-table__async-loading.t-is-load-more{cursor:pointer}.t-table__empty{align-items:center;color:var(--td-text-color-disabled);display:flex;justify-content:center;min-height:120px}.t-table__filter-icon,.t-table__sort-icon{align-items:center;background-color:transparent;cursor:pointer;display:inline-flex;transition:.2s linear;vertical-align:text-bottom}.t-table__filter-icon>svg,.t-table__sort-icon>svg{margin-top:0}.t-table__sort-icon .t-is-focus,.t-table__sort-icon.t-is-focus,.t-table__sort-icon:hover{border-radius:var(--td-radius-circle);color:var(--td-brand-color);transition:.2s linear}.t-table__filter-icon .t-is-focus,.t-table__filter-icon.t-is-focus,.t-table__filter-icon:hover{color:var(--td-brand-color);transition:.2s linear}.t-table__filter-pop .t-popup__content{padding:0}.t-table__filter-pop .t-table__filter-pop-content .t-table__filter-pop-content-inner{padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l)}.t-table__filter-pop .t-table__filter-pop-content .t-table__filter-pop-content-inner .t-table__filter-popup-input{margin-bottom:var(--td-comp-margin-s)}.t-table__filter-pop .t-table__filter-pop-content .t-radio-group{display:block;height:auto}.t-table__filter-pop .t-table__filter-pop-content .t-checkbox-group{display:block}.t-table__filter-pop .t-table__filter-pop-content .t-checkbox,.t-table__filter-pop .t-table__filter-pop-content .t-radio{display:block;margin:var(--td-comp-margin-xs) 0}.t-table__filter-pop .t-table__filter-pop-content .t-table__filter-pop-content-button{border-top:1px solid var(--td-component-border);padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l)}.t-table__filter-pop .t-table__filter-pop-content .t-table__filter-pop-content-button .t-button+.t-button{margin-left:var(--td-comp-margin-l)}.t-table__filter-pop .t-table__list-filter-input--sticky .t-table__filter-pop-content .t-table__filter-pop-content-inner{max-height:280px;overflow:auto;padding:0;position:relative}.t-table__filter-pop .t-table__list-filter-input--sticky .t-table__filter-pop-content .t-table__filter-pop-content-inner .t-input__wrap{background-color:var(--td-bg-color-container);padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l) 0 var(--td-comp-paddingLR-l);position:sticky;top:0;z-index:1}.t-table__filter-pop .t-table__list-filter-input--sticky .t-table__filter-pop-content .t-table__filter-pop-content-inner .t-radio-group{padding:0 var(--td-comp-paddingLR-l)}.t-table__filter-pop-content-inner>.t-input__wrap{width:200px}.t-table__filter-pop-content-inner>.t-date-range-picker__panel{margin:calc(0px - var(--td-comp-margin-l))}.t-table__sort-icon--active{color:var(--td-brand-color);transition:.2s linear}.t-table__double-icons{display:flex;flex-direction:column;justify-content:center}.t-table__double-icons .t-table__sort-icon{position:relative}.t-table__double-icons .t-table-sort-asc{top:var(--td-comp-margin-xxs)}.t-table__double-icons .t-table-sort-desc{bottom:var(--td-comp-margin-xxs)}.t-table__filter-icon-wrap{align-items:center;display:flex;height:var(--td-font-size-body-large);margin-left:var(--td-comp-margin-s);pointer-events:all;width:var(--td-font-size-body-large)}.t-table--bordered .t-table__filter-icon-wrap{justify-content:flex-end}.t-table--bordered .t-table__cell--sortable.t-table__cell--filterable .t-table__filter-icon-wrap{flex:1;justify-content:space-between}.t-table .t-align-center .t-table__cell--filterable,.t-table .t-align-center .t-table__cell--sortable{display:flex;justify-content:space-around}.t-table__expand-box{align-items:center;color:var(--td-text-color-placeholder);cursor:pointer;display:flex;height:100%;justify-content:center;transition:all .2s cubic-bezier(.38,0,.24,1) 0s;width:100%}.t-table__expand-box:hover{color:var(--td-brand-color);transition:.2s linear}@keyframes tTableProgressbar{0%{width:0}to{width:100%}}.t-table__th-row-select .t-table__th-cell-inner{align-items:center;display:inline-flex}.t-table-expandable-icon-cell+.t-table__cell--selectable[key=row-select]{padding-left:var(--td-comp-margin-s)}.t-table__filter--bottom-buttons{border-top:1px solid var(--td-component-border);display:flex;justify-content:flex-end;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l)}.t-table__filter--bottom-buttons>.t-button+.t-button{margin-left:var(--td-comp-margin-s)}.t-table__row-filter-inner{left:0;position:sticky;text-align:center}.t-table__filter-result{align-items:center;display:flex;justify-content:center}.t-table__filter-result>.t-button{margin-left:var(--td-comp-margin-s)}.t-table--layout-fixed{table-layout:fixed}.t-table--layout-auto{table-layout:auto}.t-table__ellipsis{white-space:nowrap;width:100%}.t-table__content{overflow:auto}.t-table__content--scrollable-to-left .t-table__cell--fixed-left-last:after{border-right:2px solid var(--td-component-border)}.t-table__content--scrollable-to-right .t-table__cell--fixed-right-first:after{border-left:2px solid var(--td-component-border)}.t-table--bordered.t-table__content--scrollable-to-left .t-table__cell--fixed-left-last:after{border-right:4px solid var(--td-component-border)}.t-table--bordered.t-table__content--scrollable-to-right .t-table__cell--fixed-right-first:after{border-left:4px solid var(--td-component-border)}.t-table__scroll-bar-divider{border-right:1px solid var(--td-component-border);bottom:0;height:100%;position:absolute;right:0;z-index:71}.t-table__footer,.t-table__header.t-table__header--fixed{position:sticky;z-index:50}.t-table:not(.t-table--striped) .t-table__footer>tr,.t-table__header--fixed:not(.t-table__header--multiple)>tr>th{background-color:var(--td-bg-color-secondarycontainer)}.t-table__row--fixed-bottom,.t-table__row--fixed-top{position:sticky;z-index:70}.t-table__row--fixed-bottom-first>td{border-top:1px solid var(--td-component-border)}.t-table--bordered .t-table__content .t-table__row--without-border-bottom>td,.t-table--bordered tbody>tr:last-child>td,.t-table--bordered tfoot>tr:last-child>td{border-bottom:0}.t-table--bordered tfoot>tr:first-child>td{border-top:1px solid var(--td-component-border)}.t-table__header.t-table__header--fixed{top:0}.t-table__footer.t-table__footer--fixed{bottom:0}.t-table--column-fixed .t-table__cell--fixed-left-last:before{background-color:inherit;z-index:-1}.t-table--column-fixed .t-table__cell--fixed-left-last:after{bottom:0;content:"";pointer-events:none;position:absolute;right:0;top:0;transform:translateX(100%);transition:box-shadow .3s;z-index:-2}.t-table--column-fixed .t-table__cell--fixed-right-first:before{background-color:inherit;z-index:-1}.t-table--column-fixed .t-table__cell--fixed-right-first:after{bottom:0;content:"";left:0;pointer-events:none;position:absolute;top:0;transform:translateX(-100%);transition:box-shadow .3s;z-index:-2}.t-table--column-fixed .t-table__cell--fixed-left,.t-table--column-fixed .t-table__cell--fixed-right{position:sticky}.t-table--column-fixed .t-table__cell--fixed-left{z-index:30}.t-table--column-fixed .t-table__cell--fixed-right{z-index:31}.t-table__empty-row>td{border:0;padding:0}.t-table:not(.t-table--bordered) .t-table__header.t-table--bordered>tr:first-child>th{border-top:1px solid var(--td-component-border)}.t-table--multiple-header .t-table__header th.t-table__header-th--bordered{border-left-width:1px}.t-table__header.t-table__header--multiple>tr{background-color:var(--td-bg-color-container)}.t-table__tree-op-icon{cursor:pointer;display:inline-flex;margin-right:var(--td-comp-margin-s);vertical-align:-3px}.t-table__tree-op-icon:hover{color:var(--td-brand-color);transition:.2s linear}.t-table__tree-leaf-node .t-table__tree-op-icon{margin-right:var(--td-comp-margin-xxs);min-width:0}.t-table__virtual-scroll-cursor{height:1px;position:absolute;transition:transform .2s;width:1px}.t-table__virtual-scroll-header{left:0;position:absolute;z-index:51}.t-table__affixed-header-elm-wrap{overflow:hidden}.t-table__affixed-header-elm,.t-table__affixed-header-elm-wrap{left:0;position:absolute;z-index:51}.t-table__affixed-header-elm{opacity:1;overflow:auto;transition:opacity .2s linear}.t-table__affixed-footer-elm{overflow:auto;z-index:50}.t-table--bordered .t-table__affixed-header-elm{border:1px solid var(--td-component-border);border-bottom:0;border-right:0}.t-table--bordered .t-table__affixed-footer-elm{border-bottom:1px solid var(--td-component-border);border-left:1px solid var(--td-component-border)}.t-table--multiple-header.t-table--bordered .t-table__affixed-header-elm{border-right:0}.t-is-hidden{display:none}.t-positive-rotate-90{transform:rotate(90deg)}.t-negative-rotate-180{transform:rotate(180deg)}.t-table__expanded-row>td,.t-table__row--full>td{padding:0}.t-table__row-full-element{padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l)}.t-table__row-full-inner{left:0;position:sticky}.t-table__row-full-inner:not(.t-table__empty){display:inline-block}.t-table__tree-col{align-items:center;display:flex}.t-table__tree-col--inline{display:inline}.t-table--full-height{height:100%}.t-table--loading .t-table__content{min-height:168px}.t-table--row-draggable tr,.t-table__handle-draggable:hover,.t-table__th--drag-sort{cursor:move}.t-table__ele--draggable-chosen{box-shadow:var(--td-shadow-1)}.t-table:not(.t-table--row-edit) .t-table__cell--editable{cursor:pointer;line-height:var(--td-line-height-body-medium);min-height:22px}.t-table:not(.t-table--row-edit) .t-table__cell--editable .t-icon{color:var(--td-text-color-placeholder);font-size:var(--td-font-size-body-large);margin-left:var(--td-comp-margin-s);transition:.2s linear}.t-table:not(.t-table--row-edit) .t-table__cell--editable .t-icon:hover{color:var(--td-brand-color)}.t-table:not(.t-table--row-edit) .t-table__cell--editable:hover{transition:.2s linear}.t-affix .t-table__pagination{background-color:var(--td-bg-color-container)}.t-table--bordered .t-affix .t-table__pagination{border-top:1px solid var(--td-component-border)}.t-table__bottom-content+.t-table__pagination-wrap .t-table__pagination{border:0;padding:0}.t-table--column-resizable:not(.t-table--bordered) th{border-top:1px solid transparent}.t-table--column-resizable:not(.t-table--bordered) thead.t-table__header:hover th:not(:last-child){border-right:1px solid var(--td-component-border)}.t-table--column-resizable:not(.t-table--bordered) thead.t-table__header:hover th{border-top:1px solid var(--td-component-border)}.t-table--column-resizable:not(.t-table--bordered).t-table__content--scrollable-to-left thead.t-table__header:hover .t-table__cell--fixed-left-last:not(:last-child),.t-table--column-resizable:not(.t-table--bordered).t-table__content--scrollable-to-left.t-table__content--scrollable-to-right thead.t-table__header:hover .t-table__cell--fixed-left-last:not(:last-child){border-right:0}.t-table td.t-table__cell-check,.t-table th.t-table__cell-check{height:0;padding:0}.t-table td.t-table__cell-check .t-checkbox__label:empty,.t-table td.t-table__cell-check .t-radio__label:empty,.t-table th.t-table__cell-check .t-checkbox__label:empty,.t-table th.t-table__cell-check .t-radio__label:empty{display:none}.t-table .t-table__cell-check .t-checkbox,.t-table .t-table__cell-check .t-radio,.t-table .t-table__cell-check .t-table__th-cell-inner{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.t-table td .t-input__tips{position:static}.t-table .t-table__sort-column{background-color:var(--td-bg-color-secondarycontainer)}.t-table__ellipsis-content.t-size-s .t-popup__content,.t-timeline{font:var(--td-font-body-medium)}.t-timeline{box-sizing:border-box;color:var(--td-text-color-primary);display:flex;flex-direction:column;list-style:none;margin:0;padding:0}.t-timeline-item{display:flex;flex-direction:row;min-height:72px;position:relative}.t-timeline-item__label.t-timeline-item__label--alternate{position:absolute}.t-timeline-item__wrapper{position:relative;width:8px}.t-timeline-item__wrapper .t-timeline-item__dot{border:2px solid transparent;border-radius:50%;box-sizing:unset;height:4px;position:absolute;top:8px;width:4px}.t-timeline-item__wrapper .t-timeline-item__dot--primary{border-color:var(--td-brand-color)}.t-timeline-item__wrapper .t-timeline-item__dot--default{border-color:var(--td-component-border)}.t-timeline-item__wrapper .t-timeline-item__dot--success{border-color:var(--td-success-color)}.t-timeline-item__wrapper .t-timeline-item__dot--warning{border-color:var(--td-warning-color)}.t-timeline-item__wrapper .t-timeline-item__dot--error{border-color:var(--td-error-color)}.t-timeline-item__wrapper .t-timeline-item__dot--custom{border:0;left:50%;position:relative;top:4px;transform:translateX(-50%)}.t-timeline-item__wrapper .t-timeline-item__dot--custom .t-timeline-item__dot-content{left:50%;position:absolute;top:0;transform:translateX(-50%)}.t-timeline-item__wrapper .t-timeline-item__tail{border-left:2px solid transparent;border-color:var(--td-component-border);bottom:0;box-sizing:border-box;height:calc(100% - 24px);left:50%;padding-bottom:var(--td-comp-size-s);position:absolute;transform:translateX(-50%)}.t-timeline-item__wrapper .t-timeline-item__tail--theme-dot{border-style:dashed;border-right:0}.t-timeline-item__label{color:var(--td-text-color-secondary);font-size:var(--td-font-size-body-medium)}.t-timeline-item__content{flex:1;font-size:var(--td-font-size-body-large);padding-left:var(--td-comp-margin-l)}.t-timeline-item--last .t-timeline-item__tail{display:none}.t-timeline-label.t-timeline-label--alternate.t-timeline-left .t-timeline-item__label{left:0;text-align:right}.t-timeline-label.t-timeline-label--alternate.t-timeline-left .t-timeline-item__wrapper{margin-left:100px}.t-timeline-label.t-timeline-label--alternate.t-timeline-right .t-timeline-item__label{right:0;text-align:left}.t-timeline-label.t-timeline-label--alternate.t-timeline-right .t-timeline-item__wrapper{margin-right:100px}.t-timeline-right .t-timeline-item{flex-direction:row-reverse}.t-timeline-right .t-timeline-item__content{padding-left:0;padding-right:var(--td-comp-margin-l);text-align:right}.t-timeline-alternate .t-timeline-item-left{margin-left:calc(50% - 4px)}.t-timeline-alternate .t-timeline-item-right{flex-direction:row-reverse;margin-right:calc(50% - 4px);text-align:right}.t-timeline-alternate .t-timeline-item-right .t-timeline-item__content{padding-left:0;padding-right:var(--td-comp-margin-l)}.t-timeline-label.t-timeline-alternate .t-timeline-item__label{width:100%}.t-timeline-label.t-timeline-alternate .t-timeline-item-left .t-timeline-item__label--alternate{left:0;padding-right:var(--td-comp-margin-l);text-align:right;transform:translateX(-100%)}.t-timeline-label.t-timeline-alternate .t-timeline-item-right .t-timeline-item__label--alternate{padding-left:var(--td-comp-margin-l);right:0;text-align:left;transform:translateX(100%)}.t-timeline-horizontal{align-items:center;flex-direction:row;min-height:200px}.t-timeline-horizontal .t-timeline-item{flex-direction:column;min-width:160px;padding-right:8px}.t-timeline-horizontal .t-timeline-item__wrapper{height:8px;width:100%}.t-timeline-horizontal .t-timeline-item__wrapper .t-timeline-item__dot{border-radius:50%;height:4px;left:unset;position:absolute;top:50%;transform:translateY(-50%);width:4px}.t-timeline-horizontal .t-timeline-item__wrapper .t-timeline-item__dot--custom{border:0;position:relative;top:50%;transform:translateY(-50%)}.t-timeline-horizontal .t-timeline-item__wrapper .t-timeline-item__dot--custom .t-timeline-item__dot-content{left:0;position:absolute;top:50%;transform:translateY(-50%)}.t-timeline-horizontal .t-timeline-item__wrapper .t-timeline-item__tail{border:0;border-top:2px solid transparent;border-color:var(--td-component-border);left:calc(8px + var(--td-comp-margin-s));padding-bottom:0;top:50%;transform:translateY(-50%);width:calc(100% - 8px - var(--td-comp-margin-s))}.t-timeline-horizontal .t-timeline-item__wrapper .t-timeline-item__tail--theme-dot{border-style:dashed;border-right:0}.t-timeline-horizontal .t-timeline-item__content{flex:unset;padding-left:unset;padding-top:var(--td-comp-margin-l)}.t-timeline-vertical .t-timeline-item__content{padding-bottom:var(--td-comp-margin-l)}.t-timeline-label.t-timeline-horizontal.t-timeline-top .t-timeline-item__label--alternate{padding-bottom:0;top:0;transform:translateY(-100%);width:100%}.t-timeline-label.t-timeline-horizontal.t-timeline-bottom .t-timeline-item{flex-direction:column-reverse}.t-timeline-label.t-timeline-horizontal.t-timeline-bottom .t-timeline-item__wrapper{padding-top:0}.t-timeline-label.t-timeline-horizontal.t-timeline-bottom .t-timeline-item__label--alternate{bottom:0;padding-top:var(--td-comp-margin-l);transform:translateY(100%);width:100%}.t-timeline-label.t-timeline-horizontal.t-timeline-bottom .t-timeline-item__content{padding-bottom:var(--td-comp-margin-l);padding-top:0}.t-timeline-label.t-timeline-horizontal.t-timeline-alternate .t-timeline-item-top .t-timeline-item__label--alternate{padding-bottom:var(--td-comp-margin-l);top:0;transform:translateY(-100%);width:100%}.t-timeline-label.t-timeline-horizontal.t-timeline-alternate .t-timeline-item-bottom{flex-direction:column-reverse;position:relative;transform:translateY(calc(-100% + 8px))}.t-timeline-label.t-timeline-horizontal.t-timeline-alternate .t-timeline-item-bottom .t-timeline-item__content{padding-bottom:var(--td-comp-margin-l);padding-top:unset}.t-timeline-label.t-timeline-horizontal.t-timeline-alternate .t-timeline-item-bottom .t-timeline-item__label--alternate{bottom:0;padding-top:var(--td-comp-margin-l);transform:translateY(100%)}.t-collapse{background:var(--td-bg-color-container);border:1px solid var(--td-component-border);border-bottom:0;box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-collapse.t--border-less{border:none}.t-collapse.t--border-less .t-collapse-panel__header{border-bottom:none}.t-collapse.t--border-less .t-collapse-panel__body{background:var(--td-bg-color-container);border:none}.t-collapse-panel__icon{align-items:center;cursor:pointer;display:flex;justify-content:center;transition:all .2s cubic-bezier(.38,0,.24,1)}.t-collapse-panel__icon>.t-fake-arrow{transform:rotate(-90deg);transition:all .2s cubic-bezier(.38,0,.24,1)}.t-collapse-panel__icon--left{margin-right:var(--td-comp-margin-s)}.t-collapse-panel__icon--right{margin-left:var(--td-comp-margin-s)}.t-collapse-panel__icon--active>.t-fake-arrow{transform:rotate(0)}.t-collapse-panel__icon:hover{background-color:var(--td-bg-color-container-hover);border-radius:var(--td-radius-small)}.t-collapse-panel__wrapper{overflow:hidden}.t-collapse-panel__wrapper.t--borderless .t-collapse-panel__header{border-bottom:none}.t-collapse-panel__wrapper.t--borderless .t-collapse-panel__body{background:var(--td-bg-color-container);border:none}.t-collapse-panel__wrapper .t-collapse-panel__header{align-items:center;border-bottom:1px solid var(--td-component-border);display:flex;font:var(--td-font-title-small);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l)}.t-collapse-panel__wrapper .t-collapse-panel__header--blank{flex:1}.t-collapse-panel__wrapper .t-collapse-panel__header.t-is-clickable{cursor:pointer}.t-collapse-panel__wrapper .t-collapse-panel__header-left,.t-collapse-panel__wrapper .t-collapse-panel__header-right,.t-collapse-panel__wrapper .t-collapse-panel__header-right-content{display:flex}.t-collapse-panel__wrapper .t-collapse-panel__body{background:var(--td-bg-color-secondarycontainer);border-bottom:1px solid var(--td-component-border);overflow:inherit}.t-collapse-panel__wrapper .t-collapse-panel__body--collapsed{border:none}.t-collapse-panel__wrapper .t-collapse-panel__content{color:var(--td-text-color-secondary);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l) var(--td-comp-paddingTB-m) calc(var(--td-comp-paddingLR-l) + var(--td-comp-margin-xxl))}.t-collapse-panel.t-is-disabled .t-collapse-panel__header{color:var(--td-text-color-disabled);cursor:not-allowed}.t-collapse-panel.t-is-disabled .t-collapse-panel__icon{cursor:not-allowed;pointer-events:none}.t-collapse-panel.t-is-disabled .t-collapse-panel__body{background:var(--td-bg-color-component-disabled)}.t-collapse-panel.t-is-disabled .t-collapse-panel__content{color:var(--td-text-color-disabled)}.t-rate{align-items:center;display:flex}.t-rate .t-rate__star-top{height:100%;left:0;overflow:hidden;position:absolute;top:0;transition:all .2s cubic-bezier(.38,0,.24,1);width:0}.t-rate .t-rate__star-bottom,.t-rate .t-rate__star-top{display:grid}.t-rate__list{display:flex;list-style:none;margin:0;padding:0}.t-rate__item{cursor:pointer;position:relative;transition:all .2s cubic-bezier(.38,0,.24,1)}.t-rate__item:hover{transform:scale(1.33)}.t-rate__item--half .t-rate__star-top{width:50%}.t-rate__item--full .t-rate__star-top{width:100%}.t-rate__text{font:var(--td-font-mark-medium);margin-left:var(--td-comp-margin-l)}.t-rate__text,.t-typography{color:var(--td-text-color-primary)}.t-typography{font:var(--td-font-body-medium);margin:var(--td-comp-margin-m) 0}h1.t-typography{font:var(--td-font-headline-large);margin-top:var(--td-comp-margin-xxxxl)}h1.t-typography,h2.t-typography{margin-bottom:var(--td-comp-margin-l)}h2.t-typography{font:var(--td-font-headline-medium);margin-top:var(--td-comp-margin-xxxl)}h3.t-typography{font:var(--td-font-headline-small);margin-top:var(--td-comp-margin-xxl)}h3.t-typography,h4.t-typography{margin-bottom:var(--td-comp-margin-m)}h4.t-typography{font:var(--td-font-title-large);margin-top:var(--td-comp-margin-xl)}h5.t-typography{font:var(--td-font-title-medium);margin-bottom:var(--td-comp-margin-m);margin-top:var(--td-comp-margin-l)}h6.t-typography{font:var(--td-font-title-small)}.t-typography strong{font-weight:600}.t-typography mark{background-color:#fcdf47}.t-typography code{background-color:var(--td-bg-color-secondarycontainer);display:inline-block;font:var(--td-font-body-small);font-family:Source Code Pro,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Hiragino Sans GB,Microsoft YaHei UI,Microsoft YaHei;margin:0 var(--td-comp-margin-xs);padding:1px var(--td-comp-paddingLR-s);transition:background-color .2s;white-space:nowrap}.t-typography code,.t-typography code:hover{border:1px solid var(--td-component-border);border-radius:var(--td-radius-default)}.t-typography code:hover{background-color:var(--td-bg-color-secondarycontainer-hover)}.t-typography kbd{background-color:var(--td-bg-color-secondarycontainer);border:1px solid var(--td-component-border);border-radius:var(--td-radius-default);box-shadow:0 1px 0 0 var(--td-component-border);display:inline-block;font:var(--td-font-body-small);font-family:Source Code Pro,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Hiragino Sans GB,Microsoft YaHei UI,Microsoft YaHei;margin:0 var(--td-comp-margin-xs);padding:1px var(--td-comp-paddingLR-s)}.t-typography--disabled{color:var(--td-text-color-disabled);cursor:not-allowed}.t-typography--success{color:var(--td-success-color)}.t-typography--warning{color:var(--td-warning-color)}.t-typography--error{color:var(--td-error-color)}.t-typography--secondary{color:var(--td-text-color-secondary)}.t-typography .t-icon-copy,.t-typography-ellipsis-symbol{color:var(--td-brand-color);cursor:pointer}.t-typography .t-icon-copy:hover,.t-typography-ellipsis-symbol:hover{color:var(--td-brand-color-hover)}.t-typography .t-icon-checked{color:var(--td-success-color)}.t-alert{align-items:flex-start;border-radius:var(--td-radius-medium);box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);list-style:none;margin:0;opacity:1;padding:0;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-xl);transition:opacity .2s}.t-alert.t-is-hidden{display:none}.t-alert--closing{opacity:0}.t-alert--info{background-color:var(--td-brand-color-focus)}.t-alert--info .t-alert__icon,.t-alert--info .t-alert__swiper-trigger--active,.t-alert--info .t-alert__swiper-trigger-wrap{color:var(--td-brand-color)}.t-alert--success{background-color:var(--td-success-color-focus)}.t-alert--success .t-alert__icon{color:var(--td-success-color)}.t-alert--success .t-alert__swiper-trigger-wrap{color:var(--td-success-color-focus)}.t-alert--success .t-alert__swiper-trigger--active{color:var(--td-success-color)}.t-alert--warning{background-color:var(--td-warning-color-focus)}.t-alert--warning .t-alert__icon{color:var(--td-warning-color)}.t-alert--warning .t-alert__swiper-trigger-wrap{color:var(--td-warning-color-focus)}.t-alert--warning .t-alert__swiper-trigger--active{color:var(--td-warning-color)}.t-alert--error{background-color:var(--td-error-color-focus)}.t-alert--error .t-alert__icon{color:var(--td-error-color)}.t-alert--error .t-alert__swiper-trigger-wrap{color:var(--td-error-color-focus)}.t-alert--error .t-alert__swiper-trigger--active{color:var(--td-error-color)}.t-alert__icon{display:inherit;font-size:var(--td-line-height-body-medium)}.t-alert__close,.t-alert__icon{flex:0 0 auto;line-height:var(--td-line-height-body-small)}.t-alert__content{flex:1 1 0;font-size:var(--td-font-size-body-medium);line-height:var(--td-line-height-body-medium);overflow:hidden}.t-alert__message,.t-alert__title{display:flex;width:100%}.t-alert__title{color:var(--td-text-color-primary);font-weight:700}.t-alert__title+.t-alert__message{margin-top:var(--td-comp-margin-s)}.t-alert__description{color:var(--td-text-color-secondary);flex:0 1 auto;transition:height .2s}.t-alert__operation{color:var(--td-brand-color);cursor:pointer;flex:0 0 auto;padding:0 var(--td-comp-paddingLR-s);transition:color .2s}.t-alert__operation:hover{color:var(--td-brand-color-hover)}.t-alert__operation:active{color:var(--td-brand-color-active)}.t-alert__icon+.t-alert__content{margin-left:var(--td-comp-margin-s)}.t-alert__collapse{color:var(--td-brand-color);cursor:pointer;margin-top:var(--td-comp-margin-s)}.t-alert__close{align-items:center;color:var(--td-text-color-secondary);cursor:pointer;display:inline-flex;margin-left:var(--td-comp-margin-l);transition:color .2s}.t-alert__close:hover{color:var(--td-text-color-primary)}.t-alert__close>.t-icon{font-size:calc(var(--td-line-height-body-medium) - 2px);padding:calc((var(--td-line-height-body-medium) - var(--td-line-height-body-medium) - 2px)/2) 0}.t-drawer-fade-appear,.t-drawer-fade-enter{opacity:0}.t-drawer-fade-appear,.t-drawer-fade-enter,.t-drawer-fade-exit{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused;animation-timing-function:linear}.t-drawer-fade-appear.t-drawer-fade-appear-active,.t-drawer-fade-appear.t-drawer-fade-appear-active.t-drawer-fade-appear-to,.t-drawer-fade-enter.t-drawer-fade-enter-active,.t-drawer-fade-enter.t-drawer-fade-enter-active.t-drawer-fade-enter-to{animation-duration:.2s;animation-name:tDrawerFadeIn;animation-play-state:running}.t-drawer-fade-exit.t-drawer-fade-exit-active,.t-drawer-fade-leave-active.t-drawer-fade-leave-to{animation-duration:.2s;animation-name:tDrawerFadeOut;animation-play-state:running}@keyframes tDrawerFadeIn{0%{opacity:0}to{opacity:1}}@keyframes tDrawerFadeOut{0%{opacity:1}to{opacity:0}}.t-drawer{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:100%;list-style:none;margin:0;outline:none;padding:0;pointer-events:none;position:fixed;width:100%;z-index:1500}.t-drawer,.t-drawer--lock{overflow:hidden}.t-drawer--attach{position:absolute}.t-drawer--left,.t-drawer--right{top:0}.t-drawer--left{left:0}.t-drawer--right{right:0}.t-drawer--bottom,.t-drawer--top{left:0}.t-drawer--top{top:0}.t-drawer--bottom{bottom:0}.t-drawer__mask{background-color:var(--td-mask-active);height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .2s cubic-bezier(.38,0,.24,1);width:100%}.t-drawer__content-wrapper{background:var(--td-bg-color-container);box-shadow:var(--td-shadow-2);color:var(--td-text-color-secondary);display:flex;flex-direction:column;font-size:var(--td-font-body-medium);height:16px;overflow:hidden;pointer-events:auto;position:relative;transition:transform .28s cubic-bezier(.38,0,.24,1),visibility .28s cubic-bezier(.38,0,.24,1);width:16px}.t-drawer .t-drawer__content-wrapper{height:100%;position:absolute;visibility:hidden;width:100%}.t-drawer .t-drawer__content-wrapper--left,.t-drawer .t-drawer__content-wrapper--right{top:0}.t-drawer .t-drawer__content-wrapper--left{left:0;transform:translateX(-100%)}.t-drawer .t-drawer__content-wrapper--right{right:0;transform:translateX(100%)}.t-drawer .t-drawer__content-wrapper--bottom,.t-drawer .t-drawer__content-wrapper--top{left:0}.t-drawer .t-drawer__content-wrapper--top{top:0;transform:translateY(-100%)}.t-drawer .t-drawer__content-wrapper--bottom{bottom:0;transform:translateY(100%)}.t-drawer__header{align-items:center;border-bottom:1px solid var(--td-border-level-1-color);border-radius:var(--td-radius-small) var(--td-radius-small) 0 0;box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-title-medium);min-height:var(--td-comp-size-xxxl);padding:0 var(--td-comp-paddingLR-l)}.t-drawer__body{flex:1;overflow:auto}.t-drawer__body,.t-drawer__footer{padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l)}.t-drawer__footer{background-color:var(--td-bg-color-container);border-top:1px solid var(--td-border-level-1-color);box-sizing:border-box;text-align:left;width:100%}.t-drawer__footer .t-button{margin-left:var(--td-comp-margin-s)}.t-drawer__footer .t-button:first-child{margin-left:0}.t-drawer__close-btn{align-items:center;background-color:var(--td-bg-color-container);border-radius:var(--td-radius-default);color:var(--td-text-color-primary);cursor:pointer;display:flex;height:var(--td-comp-size-xs);justify-content:center;position:absolute;right:var(--td-comp-margin-s);top:calc((var(--td-comp-size-xxxl) - var(--td-comp-size-xs))/2);transition:background-color .2s;width:var(--td-comp-size-xs)}.t-drawer__close-btn:hover{background-color:var(--td-bg-color-container-hover)}.t-drawer__close-btn:active{background-color:var(--td-bg-color-container-active)}.t-drawer__close-btn .t-icon{font-size:calc(var(--td-font-size-body-medium) + 2px);vertical-align:unset}.t-drawer--open{height:100%;pointer-events:auto;width:100%}.t-drawer--open>.t-drawer__content-wrapper{visibility:visible}.t-drawer--open>.t-drawer__mask{height:100%;opacity:1;width:100%}.t-drawer--without-mask{pointer-events:none}[tabindex="-1"]:focus{outline:none!important}.t-guide{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-guide--lock{overflow:hidden}.t-guide--absolute{position:absolute}.t-guide--fixed{position:fixed}.t-guide__overlay{bottom:0;left:0;position:fixed;right:0;top:0;z-index:999997}.t-guide__highlight{border-radius:var(--td-radius-default);transition:.2s cubic-bezier(0,0,.15,1);z-index:999998}.t-guide__highlight--dialog{border-radius:var(--td-radius-large)}.t-guide__highlight--mask{box-shadow:0 0 0 0 var(--td-mask-active),var(--td-mask-active) 0 0 0 5000px}.t-guide__highlight--nomask{border:2px solid var(--td-brand-color);border-radius:var(--td-radius-medium);box-sizing:border-box}.t-guide__reference{z-index:999999}.t-guide__wrapper{bottom:0;display:flex;justify-content:center;left:0;padding-top:20vh;position:fixed;right:0;top:0;z-index:999999}.t-guide__wrapper--center{align-items:center;padding-top:0}.t-guide__dialog{animation:tGuideDialogFadeIn .3s ease-out;background:var(--td-bg-color-container);border-radius:var(--td-radius-large);box-sizing:border-box;max-width:500px;min-width:320px;padding:var(--td-comp-paddingTB-xxl) var(--td-comp-paddingLR-xxl)}.t-guide__dialog--nomask{border:1px solid var(--td-component-border)}.t-guide__dialog .t-guide__title{font:var(--td-font-title-medium);font-weight:700}.t-guide__dialog .t-guide__desc{font:var(--td-font-body-medium);margin-top:var(--td-comp-margin-l)}.t-guide__tooltip{max-height:300px;max-width:600px;min-width:240px;padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-s)}.t-guide__title{color:var(--td-text-color-primary);font:var(--td-font-title-small);font-weight:700;text-align:left}.t-guide__desc{color:var(--td-text-color-secondary);font:var(--td-font-body-small);margin-top:var(--td-comp-margin-s);text-align:left}.t-guide__action{align-items:center;display:flex}.t-guide__action button{margin-right:var(--td-comp-margin-s)}.t-guide__action button:last-child{margin-right:0}.t-guide__footer{align-items:center;display:flex}.t-guide__footer--popup{margin-top:var(--td-comp-margin-l)}.t-guide__footer--dialog{margin-top:24px}.t-guide__footer--dialog .t-guide__action{display:flex;justify-content:center}.t-guide__counter{color:var(--td-text-color-placeholder);flex:1;font:var(--td-font-body-small);text-align:left}.t-guide__popup .t-guide__popup--content{background:none;box-shadow:none;padding:0}@keyframes tGuideDialogFadeIn{0%{opacity:0}to{opacity:1}}.t-message{align-items:center;background-color:var(--td-bg-color-container);border-radius:var(--td-radius-medium);box-shadow:var(--td-shadow-3),var(--td-shadow-inset-top),var(--td-shadow-inset-right),var(--td-shadow-inset-bottom),var(--td-shadow-inset-left);box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);list-style:none;margin:0;outline:0;padding:0;padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l);width:fit-content}.t-message .t-loading,.t-message>.t-icon,.t-message>[data-t-icon]>.t-icon{color:var(--td-brand-color);flex-shrink:0;font-size:calc(var(--td-font-size-body-medium) + 6px);margin-right:var(--td-comp-margin-s)}.t-message.t-is-success .t-loading,.t-message.t-is-success>.t-icon,.t-message.t-is-success>[data-t-icon]>.t-icon{color:var(--td-success-color)}.t-message.t-is-warning .t-loading,.t-message.t-is-warning>.t-icon,.t-message.t-is-warning>[data-t-icon]>.t-icon{color:var(--td-warning-color)}.t-message.t-is-error .t-loading,.t-message.t-is-error>.t-icon,.t-message.t-is-error>[data-t-icon]>.t-icon{color:var(--td-error-color)}.t-message.t-is-closable .t-message__close{color:var(--td-text-color-secondary);cursor:pointer;display:inline-flex;margin-left:var(--td-comp-margin-xxl);margin-right:0}.t-message.t-is-closable .t-message__close .t-icon-close{border-radius:var(--td-radius-default);font-size:calc(var(--td-font-size-body-medium) + 2px);transition:all .2s linear}.t-message.t-is-closable .t-message__close .t-icon-close:hover{background:var(--td-bg-color-container-hover)}.t-message.t-is-closable .t-message__close .t-icon-close:active{background:var(--td-bg-color-container-active)}.t-message__list{position:fixed;z-index:6000}.t-message__list .t-message{margin-bottom:var(--td-comp-margin-s);word-break:break-all}.t-notification{background-color:var(--td-bg-color-container);border:0;border-radius:var(--td-radius-medium);box-shadow:var(--td-shadow-2),var(--td-shadow-inset-top),var(--td-shadow-inset-right),var(--td-shadow-inset-bottom),var(--td-shadow-inset-left);box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);list-style:none;margin:0;outline:0;padding:0;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l);width:360px}.t-notification__icon{margin-right:var(--td-comp-margin-s);text-align:center;width:calc(var(--td-font-size-body-large) + 8px)}.t-notification__icon .t-icon{font-size:calc(var(--td-font-size-body-large) + 8px)}.t-notification .t-icon.t-is-info{color:var(--td-brand-color)}.t-notification .t-icon.t-is-success{color:var(--td-success-color)}.t-notification .t-icon.t-is-warning{color:var(--td-warning-color)}.t-notification .t-icon.t-is-error{color:var(--td-error-color-6)}.t-notification__main{flex:1}.t-notification__title__wrap{display:flex;justify-content:space-between}.t-notification__title{color:var(--td-text-color-primary);font:var(--td-font-title-medium)}.t-notification .t-icon-close{border-radius:var(--td-radius-default);color:var(--td-text-color-secondary);cursor:pointer;font-size:var(--td-font-size-body-large)}.t-notification .t-icon-close:hover{background:var(--td-bg-color-container-hover)}.t-notification .t-icon-close:active{background:var(--td-bg-color-container-active)}.t-notification__content{-webkit-line-clamp:3;-webkit-box-orient:vertical;color:var(--td-text-color-secondary);display:-webkit-box;font:var(--td-font-body-medium);margin-top:var(--td-comp-margin-s);max-height:66px;overflow:hidden;text-overflow:ellipsis;word-break:break-all}.t-notification__detail{font:var(--td-font-body-medium);margin-top:var(--td-comp-margin-l);text-align:right}.t-notification__detail-item{cursor:pointer}.t-notification__detail-item:hover{background:var(--td-bg-color-container-hover);color:inherit}.t-notification__detail-item:active{background:var(--td-bg-color-container-active);color:inherit}.t-notification__detail-item+.t-notification__detail-item{margin-left:var(--td-comp-margin-s)}.t-notification__detail-item.t-is-active{color:var(--td-brand-color)}.t-notification__show--top-left{left:0;position:fixed;top:0}.t-notification__show--top-left>.t-notification{animation-duration:.3s;animation-name:slidein-top-left}@keyframes slidein-top-left{0%{opacity:0;transform:translate3d(-100%,0,0)}to{opacity:1;transform:translateZ(0)}}.t-notification__show--top-right{position:fixed;right:0;top:0}.t-notification__show--top-right>.t-notification{animation-duration:.3s;animation-name:slidein-top-right}@keyframes slidein-top-right{0%{opacity:0;transform:translate3d(100%,0,0)}to{opacity:1;transform:translateZ(0)}}.t-notification__show--bottom-left{bottom:0;display:flex;flex-direction:column-reverse;left:0;position:fixed}.t-notification__show--bottom-left>.t-notification{animation-duration:.3s;animation-name:slidein-bottom-left}@keyframes slidein-bottom-left{0%{opacity:0;transform:translate3d(-100%,0,0)}to{opacity:1;transform:translateZ(0)}}.t-notification__show--bottom-right{bottom:0;display:flex;flex-direction:column-reverse;position:fixed;right:0}.t-notification__show--bottom-right>.t-notification{animation-duration:.3s;animation-name:slidein-bottom-right}@keyframes slidein-bottom-right{0%{opacity:0;transform:translate3d(100%,0,0)}to{opacity:1;transform:translateZ(0)}}.t-notification-list__show{position:fixed}.t-popconfirm{border-radius:var(--td-radius-medium);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;min-width:160px;padding:0}.t-popconfirm .t-popup__content{padding:0}.t-popconfirm.t-popup[data-popper-placement^=top] .t-popup__arrow{bottom:-4px}.t-popconfirm__content{border-radius:var(--td-radius-medium);padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l);position:relative}.t-popconfirm__body{align-items:flex-start;display:flex;text-align:left}.t-popconfirm__body>.t-icon{display:inline-block;font-size:calc(var(--td-font-size-body-medium) + 6px);margin-right:var(--td-comp-margin-s);padding:calc(var(--td-line-height-body-medium)/2 - var(--td-font-size-body-medium)/2 - 3px) 0}.t-popconfirm__confirm{margin-left:var(--td-comp-margin-s)}.t-popconfirm__inner{color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);max-width:320px;vertical-align:top}.t-popconfirm__icon--warning{color:var(--td-warning-color)}.t-popconfirm__icon--danger{color:var(--td-error-color)}.t-popconfirm__icon--default{color:var(--td-brand-color)}.t-popconfirm__buttons{margin-top:var(--td-comp-margin-l);text-align:right}.t-popconfirm__buttons>span:last-child{margin-right:0}.t-upload{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-upload .t-is-bordered{border:1px solid var(--td-component-border)}.t-upload .t-upload__trigger{display:inline-block}.t-upload .t-icon{flex-shrink:0;font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-upload .t-icon-check-circle-filled{color:var(--td-success-color)}.t-upload .t-icon-error-circle-filled{color:var(--td-error-color)}.t-upload .t-icon-time-filled{color:var(--td-text-color-placeholder)}.t-upload .t-icon-add{color:var(--td-text-color-primary)}.t-upload__list-file{align-items:center;display:flex;height:100px;justify-content:center;margin-right:var(--td-comp-margin-m);overflow:hidden;width:100px}.t-upload__list-file .t-icon{color:var(--td-brand-color);font-size:var(--td-comp-size-xl)}.t-upload__list-item{align-items:center;border:1px solid var(--td-component-border);border-radius:var(--td-radius-default);display:flex;font:var(--td-font-body-medium);height:124px;justify-content:space-between;margin-top:var(--td-comp-margin-m);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-m);width:496px}.t-upload__list-item.t-is--error .t-upload__list-file .t-icon,.t-upload__list-item.t-is--error .t-upload__list-name{color:var(--td-error-color)}.t-upload__list-content{align-items:center;display:flex}.t-upload-list__control{cursor:pointer}.t-upload-list__control:hover{color:var(--td-error-color)}.t-upload__list-img{cursor:pointer;max-height:100%;max-width:100%;object-fit:cover}.t-upload__list-name{word-wrap:normal;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-upload--highlight{color:var(--td-text-color-brand)}.t-upload__single-name{margin-right:var(--td-comp-margin-s)}.t-upload__card{display:flex;flex-wrap:wrap;font:var(--td-font-body-small);gap:var(--td-comp-margin-s);margin:0;overflow:hidden;padding:0;width:100%}.t-upload__card .t-is-disabled :hover{cursor:not-allowed}.t-upload__card-item{box-sizing:border-box;cursor:pointer;list-style:none}.t-upload__card-item:after{content:"";display:block}.t-upload__card-item:hover .t-upload__card-mask{opacity:1;transition:opacity .2s linear}.t-upload__card-item.t-is--error .t-icon-warning_fill{color:var(--td-error-color);margin-bottom:var(--td-comp-margin-s)}.t-upload__card-item.t-is--error .t-upload__card-status{color:var(--td-error-color)}.t-upload__card-item.t-is-background{transition:border-color .2s linear}.t-upload__card .t-icon-loading{margin-bottom:var(--td-comp-margin-s)}.t-upload__card-name{word-wrap:normal;margin-top:var(--td-comp-margin-s);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-upload__card-content{overflow:hidden;padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s)}.t-upload__card-container,.t-upload__card-content{align-items:center;background-color:var(--td-bg-color-secondarycontainer);border:1px dashed var(--td-component-border);border-radius:var(--td-radius-default);box-sizing:border-box;display:flex;height:110px;justify-content:center;position:relative;width:110px}.t-upload__card-container{flex-direction:column;transition:border .2s linear}.t-upload__card-container:hover:not(.t-is-disabled){border-color:var(--td-brand-color);transition:border-color .2s linear}.t-upload__card-container>.t-icon{color:var(--td-text-color-placeholder)}.t-upload__card-container .t-loading,.t-upload__card-container>.t-icon{font-size:var(--td-comp-size-xs);margin-bottom:var(--td-comp-margin-s)}.t-upload__card-container .t-upload__add-text,.t-upload__card-container>p{color:var(--td-text-color-placeholder);margin:0}.t-upload__card-status-wrap{text-align:center}.t-upload__card-status-wrap>svg{margin-bottom:var(--td-comp-margin-s)}.t-upload__card-status-wrap .t-icon,.t-upload__card-status-wrap .t-loading{font-size:var(--td-comp-size-xs)}.t-upload__card-image{height:100%;max-height:100%;max-width:100%;width:100%}.t-upload__card-status{color:var(--td-text-color-disabled);font:var(--td-font-body-small)}.t-upload__card-mask{align-items:center;background-color:var(--td-mask-active);bottom:0;color:var(--td-text-color-anti);display:flex;justify-content:center;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .2s linear;will-change:transform;z-index:2}.t-upload__card-mask-item-divider{border-left:1px solid var(--td-text-color-anti);height:var(--td-comp-size-xxxs);margin:0 var(--td-comp-margin-l)}.t-upload__card-mask-item>.t-icon{cursor:pointer;font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-upload__dialog .t-dialog{max-width:80%}.t-upload__dialog .t-dialog--default{padding:32px}.t-upload__dialog .t-dialog-body{padding-bottom:0}.t-upload__dialog .t-dialog-body-img-box img{display:block;max-height:100%;max-width:100%}.t-upload__dragger{border:1px dashed var(--td-component-border);border-radius:var(--td-radius-small);box-sizing:border-box;color:var(--td-text-color-secondary);cursor:pointer;display:flex;font:var(--td-font-body-medium);height:144px;overflow:auto;padding:var(--td-comp-margin-l);position:relative;transition:border-color .2s linear;width:336px}.t-upload__dragger.t-is--active{background-color:var(--td-bg-color-container-active)}.t-upload__dragger.t-is--active,.t-upload__dragger:hover{border-color:var(--td-brand-color)}.t-upload__dragger-btns{bottom:var(--td-comp-margin-l);position:absolute}.t-upload__dragger .t-size-s{display:block}.t-upload__dragger-center{align-items:center;justify-content:center}.t-upload__dragger-error,.t-upload__dragger-error:hover{border-color:var(--td-error-color)}.t-upload__dragger-text{align-items:center;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);margin-bottom:var(--td-comp-margin-s);max-width:calc(336px - var(--td-comp-margin-l)*2)}.t-upload__dragger-text .t-upload__single-name{word-wrap:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-upload__tips{color:var(--td-text-color-placeholder);display:block;font:var(--td-font-body-small);margin-top:var(--td-comp-margin-s)}.t-upload__tips.t-upload__tips-error{color:var(--td-error-color)}.t-upload__tips.t-upload__tips-warn{color:var(--td-warning-color)}.t-upload__placeholder{color:var(--td-text-color-placeholder)}.t-upload__display-text--margin{margin-top:var(--td-comp-margin-s)}.t-upload__single-display-text{align-items:center;color:var(--td-text-color-secondary);display:flex;font:var(--td-font-body-small)}.t-upload__single-display-text .t-upload__flow-status .t-icon{font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-icon-clear-circle-filled{color:var(--td-text-color-placeholder);margin-top:var(--td-comp-margin-xxs);transition:color .2s linear}.t-icon-clear-circle-filled:hover{color:var(--td-text-color-secondary);cursor:pointer;transition:color .2s linear}.t-upload__single-percent{margin-left:var(--td-comp-margin-xs)}.t-upload__single-progress{align-items:center;color:var(--td-brand-color);display:flex}.t-upload__single-progress .t-loading{flex-shrink:0;font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-upload__single-input-delete{color:var(--td-brand-color);cursor:pointer;font:var(--td-font-body-medium);margin-left:var(--td-comp-margin-l)}.t-upload__single-input-preview{display:flex;flex:1;justify-content:space-between}.t-upload__single-input-text{word-wrap:normal;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-upload__single-file-input{align-items:center;display:flex}.t-upload__single-file-input .t-upload__trigger{margin-left:var(--td-comp-margin-l)}.t-upload__single-file-input .t-upload__single-progress{white-space:nowrap}.t-upload__single-file-input .t-input__inner{align-items:center;display:flex;justify-content:space-between}.t-upload__dragger-progress{display:flex;width:100%}.t-upload__dragger-progress .t-icon,.t-upload__dragger-progress .t-loading{flex-shrink:0;font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-upload__dragger-img-wrap{align-items:center;background-color:var(--td-bg-color-secondarycontainer);border-radius:var(--td-radius-default);display:flex;flex-shrink:0;height:110px;justify-content:center;width:110px}.t-upload__dragger-img-wrap>.t-image__wrapper--shape-square{width:100%}.t-upload__dragger-img-wrap>.t-image__wrapper--shape-square .t-space-item{text-align:center}.t-upload__dragger-img-wrap>img{max-height:100%;max-width:100%}.t-upload__dragger-img-wrap+.t-upload__dragger-progress-info{margin-left:var(--td-comp-margin-l);max-width:calc(226px - var(--td-comp-margin-l)*2 - var(--td-comp-margin-l))}.t-upload__dragger-progress-info{flex:1}.t-upload__dragger-progress-info .t-upload__single-display-text{margin-bottom:var(--td-comp-margin-s)}.t-upload__dragger-progress-info .t-button:hover{background-color:transparent}.t-upload__dragger-progress-cancel,.t-upload__dragger-progress-reupload{margin-right:var(--td-comp-margin-l)}.t-upload__dragger-delete-btn:hover,.t-upload__dragger-progress-cancel:hover,.t-upload__dragger-progress-reupload:hover,.t-upload__dragger-upload-btn:hover{border-color:transparent}.t-upload__flow-image-flow{width:498px}.t-upload__flow{max-width:960px;min-width:498px}.t-upload__flow-placeholder{display:inline-block;margin-left:var(--td-comp-margin-l)}.t-upload__flow-op{align-items:center;display:flex}.t-upload__flow-bottom{display:flex;justify-content:flex-end;margin-top:var(--td-comp-margin-xxl)}.t-upload__flow-bottom .t-button+.t-button{margin-left:var(--td-comp-margin-s)}.t-upload__flow-empty{align-items:center;color:var(--td-text-color-placeholder);display:flex;height:184px;justify-content:center;width:100%}.t-upload__flow-table{border:1px dashed var(--td-component-border);border-collapse:collapse;margin-top:var(--td-comp-margin-xxl);width:100%}.t-upload__flow-table>tbody>tr,.t-upload__flow-table>tfoot>tr,.t-upload__flow-table>thead>tr,.t-upload__flow-table>tr{border-top:1px solid var(--td-component-border)}.t-upload__flow-table>tbody>tr>th,.t-upload__flow-table>tfoot>tr>th,.t-upload__flow-table>thead>tr>th,.t-upload__flow-table>tr>th{background-color:var(--td-bg-color-container);border:1px solid var(--td-component-border);color:var(--td-text-color-placeholder);font-weight:400;text-align:left}.t-upload__flow-table>tbody>tr>td,.t-upload__flow-table>tfoot>tr>td,.t-upload__flow-table>thead>tr>td,.t-upload__flow-table>tr>td{color:var(--td-text-color-primary)}.t-upload__flow-table>tbody>tr>td,.t-upload__flow-table>tbody>tr>th,.t-upload__flow-table>tfoot>tr>td,.t-upload__flow-table>tfoot>tr>th,.t-upload__flow-table>thead>tr>td,.t-upload__flow-table>thead>tr>th,.t-upload__flow-table>tr>td,.t-upload__flow-table>tr>th{padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l)}.t-upload__flow-table__batch-row{border-left:1px solid var(--td-component-border)}.t-upload__flow-button{color:var(--td-text-color-placeholder);cursor:pointer;transition:color .2s linear}.t-upload__flow-button:hover{color:var(--td-text-color-secondary)}.t-upload__flow-status{align-items:center;display:flex}.t-upload__flow-status .t-icon,.t-upload__flow-status .t-loading{font-size:calc(var(--td-font-size-body-medium) + 2px);margin-right:var(--td-comp-margin-s)}.t-upload__flow-card-area{border:1px dashed var(--td-component-border);margin-top:var(--td-comp-margin-xxl);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-m);transition:border .2s linear}.t-upload__flow-card-area:hover{border-color:var(--td-brand-color);transition:border-color .2s linear}.t-upload__icon-delete,.t-upload__single-input-clear{color:var(--td-text-color-placeholder);cursor:pointer;transition:color .2s linear}.t-upload__icon-delete:hover,.t-upload__single-input-clear:hover{color:var(--td-text-color-secondary);transition:color .2s linear}.t-icon.t-upload__single-input-clear{display:none}.t-upload__single-input-preview:hover .t-upload__single-input-clear{display:initial}.t-upload__single-input-preview:hover .t-upload__status-icon{display:none}.t-upload .t-upload__single-name{color:var(--td-text-color-secondary)}.t-upload .t-upload__file-thumbnail{align-items:center;cursor:pointer;display:flex;height:var(--td-comp-size-xxl);justify-content:center;margin-right:var(--td-comp-paddingLR-s);width:var(--td-comp-size-xxl)}.t-upload .t-upload__file-thumbnail>svg{color:var(--td-text-color-placeholder);font-size:var(--td-comp-size-s)}.t-upload__card-name{margin-top:8px}.t-upload--theme-file-input{width:100%}.t-upload__dragger-btns>.t-button{padding:0}.t-upload__file-info{align-items:center;display:flex}.t-upload__card-container.t-is-disabled{cursor:not-allowed}.t-upload__card-container.t-is-disabled .t-icon,.t-upload__card-container.t-is-disabled .t-upload__add-text{color:var(--td-text-color-disabled)} +:root{--td-screen-xs:320px;--td-screen-sm:768px;--td-screen-md:992px;--td-screen-lg:1200px;--td-screen-xl:1400px;--td-screen-xxl:1880px}@-moz-document url-prefix(){.narrow-scrollbar{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.narrow-scrollbar::-webkit-scrollbar{height:8px;width:8px}.narrow-scrollbar::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid transparent;border-radius:15px}.narrow-scrollbar::-webkit-scrollbar-thumb:horizontal:hover,.narrow-scrollbar::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-fake-arrow path{stroke:currentcolor;transition:d .2s}.t-fake-arrow--active path{d:path("M3.75 10.2002L7.99274 5.7998L12.2361 10.0425")}.t-slide-down-enter-active,.t-slide-down-leave-active{transition:height .2s cubic-bezier(.38,0,.24,1),max-height .2s cubic-bezier(.38,0,.24,1)}:root,:root[theme-mode=light]{--td-brand-color-1:#f2f3ff;--td-brand-color-2:#d9e1ff;--td-brand-color-3:#b5c7ff;--td-brand-color-4:#8eabff;--td-brand-color-5:#618dff;--td-brand-color-6:#366ef4;--td-brand-color-7:#0052d9;--td-brand-color-8:#003cab;--td-brand-color-9:#002a7c;--td-brand-color-10:#001a57;--td-warning-color-1:#fff1e9;--td-warning-color-2:#ffd9c2;--td-warning-color-3:#ffb98c;--td-warning-color-4:#fa9550;--td-warning-color-5:#e37318;--td-warning-color-6:#be5a00;--td-warning-color-7:#954500;--td-warning-color-8:#713300;--td-warning-color-9:#532300;--td-warning-color-10:#3b1700;--td-error-color-1:#fff0ed;--td-error-color-2:#ffd8d2;--td-error-color-3:#ffb9b0;--td-error-color-4:#ff9285;--td-error-color-5:#f6685d;--td-error-color-6:#d54941;--td-error-color-7:#ad352f;--td-error-color-8:#881f1c;--td-error-color-9:#68070a;--td-error-color-10:#490002;--td-success-color-1:#e3f9e9;--td-success-color-2:#c6f3d7;--td-success-color-3:#92dab2;--td-success-color-4:#56c08d;--td-success-color-5:#2ba471;--td-success-color-6:#008858;--td-success-color-7:#006c45;--td-success-color-8:#005334;--td-success-color-9:#003b23;--td-success-color-10:#002515;--td-gray-color-1:#f3f3f3;--td-gray-color-2:#eee;--td-gray-color-3:#e8e8e8;--td-gray-color-4:#ddd;--td-gray-color-5:#c6c6c6;--td-gray-color-6:#a6a6a6;--td-gray-color-7:#8b8b8b;--td-gray-color-8:#777;--td-gray-color-9:#5e5e5e;--td-gray-color-10:#4b4b4b;--td-gray-color-11:#393939;--td-gray-color-12:#2c2c2c;--td-gray-color-13:#242424;--td-gray-color-14:#181818;--td-font-white-1:#fff;--td-font-white-2:hsla(0,0%,100%,.55);--td-font-white-3:hsla(0,0%,100%,.35);--td-font-white-4:hsla(0,0%,100%,.22);--td-font-gray-1:rgba(0,0,0,.9);--td-font-gray-2:rgba(0,0,0,.6);--td-font-gray-3:rgba(0,0,0,.4);--td-font-gray-4:rgba(0,0,0,.26);--td-brand-color:var(--td-brand-color-7);--td-warning-color:var(--td-warning-color-5);--td-error-color:var(--td-error-color-6);--td-success-color:var(--td-success-color-5);--td-brand-color-hover:var(--td-brand-color-6);--td-brand-color-focus:var(--td-brand-color-2);--td-brand-color-active:var(--td-brand-color-8);--td-brand-color-disabled:var(--td-brand-color-3);--td-brand-color-light:var(--td-brand-color-1);--td-brand-color-light-hover:var(--td-brand-color-2);--td-warning-color-hover:var(--td-warning-color-4);--td-warning-color-focus:var(--td-warning-color-2);--td-warning-color-active:var(--td-warning-color-6);--td-warning-color-disabled:var(--td-warning-color-3);--td-warning-color-light:var(--td-warning-color-1);--td-warning-color-light-hover:var(--td-warning-color-2);--td-error-color-hover:var(--td-error-color-5);--td-error-color-focus:var(--td-error-color-2);--td-error-color-active:var(--td-error-color-7);--td-error-color-disabled:var(--td-error-color-3);--td-error-color-light:var(--td-error-color-1);--td-error-color-light-hover:var(--td-error-color-2);--td-success-color-hover:var(--td-success-color-4);--td-success-color-focus:var(--td-success-color-2);--td-success-color-active:var(--td-success-color-6);--td-success-color-disabled:var(--td-success-color-3);--td-success-color-light:var(--td-success-color-1);--td-success-color-light-hover:var(--td-success-color-2);--td-mask-active:rgba(0,0,0,.6);--td-mask-disabled:hsla(0,0%,100%,.6);--td-mask-background:hsla(0,0%,100%,.96);--td-bg-color-page:var(--td-gray-color-2);--td-bg-color-container:#fff;--td-bg-color-container-hover:var(--td-gray-color-1);--td-bg-color-container-active:var(--td-gray-color-3);--td-bg-color-container-select:#fff;--td-bg-color-secondarycontainer:var(--td-gray-color-1);--td-bg-color-secondarycontainer-hover:var(--td-gray-color-2);--td-bg-color-secondarycontainer-active:var(--td-gray-color-4);--td-bg-color-component:var(--td-gray-color-3);--td-bg-color-component-hover:var(--td-gray-color-4);--td-bg-color-component-active:var(--td-gray-color-6);--td-bg-color-secondarycomponent:var(--td-gray-color-4);--td-bg-color-secondarycomponent-hover:var(--td-gray-color-5);--td-bg-color-secondarycomponent-active:var(--td-gray-color-6);--td-bg-color-component-disabled:var(--td-gray-color-2);--td-bg-color-specialcomponent:#fff;--td-text-color-primary:var(--td-font-gray-1);--td-text-color-secondary:var(--td-font-gray-2);--td-text-color-placeholder:var(--td-font-gray-3);--td-text-color-disabled:var(--td-font-gray-4);--td-text-color-anti:#fff;--td-text-color-brand:var(--td-brand-color-7);--td-text-color-link:var(--td-brand-color-8);--td-border-level-1-color:var(--td-gray-color-3);--td-component-stroke:var(--td-gray-color-3);--td-border-level-2-color:var(--td-gray-color-4);--td-component-border:var(--td-gray-color-4);--td-shadow-1:0 1px 10px rgba(0,0,0,.05),0 4px 5px rgba(0,0,0,.08),0 2px 4px -1px rgba(0,0,0,.12);--td-shadow-2:0 3px 14px 2px rgba(0,0,0,.05),0 8px 10px 1px rgba(0,0,0,.06),0 5px 5px -3px rgba(0,0,0,.1);--td-shadow-3:0 6px 30px 5px rgba(0,0,0,.05),0 16px 24px 2px rgba(0,0,0,.04),0 8px 10px -5px rgba(0,0,0,.08);--td-shadow-inset-top:inset 0 0.5px 0 #dcdcdc;--td-shadow-inset-right:inset 0.5px 0 0 #dcdcdc;--td-shadow-inset-bottom:inset 0 -0.5px 0 #dcdcdc;--td-shadow-inset-left:inset -0.5px 0 0 #dcdcdc;--td-table-shadow-color:rgba(0,0,0,.08);--td-scrollbar-color:rgba(0,0,0,.1);--td-scrollbar-hover-color:rgba(0,0,0,.3);--td-scroll-track-color:#fff}:root[theme-mode=dark]{--td-brand-color-1:#1b2f51;--td-brand-color-2:#173463;--td-brand-color-3:#143975;--td-brand-color-4:#103d88;--td-brand-color-5:#0d429a;--td-brand-color-6:#054bbe;--td-brand-color-7:#2667d4;--td-brand-color-8:#4582e6;--td-brand-color-9:#699ef5;--td-brand-color-10:#96bbf8;--td-warning-color-1:#4f2a1d;--td-warning-color-2:#582f21;--td-warning-color-3:#733c23;--td-warning-color-4:#a75d2b;--td-warning-color-5:#cf6e2d;--td-warning-color-6:#dc7633;--td-warning-color-7:#e8935c;--td-warning-color-8:#ecbf91;--td-warning-color-9:#eed7bf;--td-warning-color-10:#f3e9dc;--td-error-color-1:#472324;--td-error-color-2:#5e2a2d;--td-error-color-3:#703439;--td-error-color-4:#83383e;--td-error-color-5:#a03f46;--td-error-color-6:#c64751;--td-error-color-7:#de6670;--td-error-color-8:#ec888e;--td-error-color-9:#edb1b6;--td-error-color-10:#eeced0;--td-success-color-1:#193a2a;--td-success-color-2:#1a4230;--td-success-color-3:#17533d;--td-success-color-4:#0d7a55;--td-success-color-5:#059465;--td-success-color-6:#43af8a;--td-success-color-7:#46bf96;--td-success-color-8:#80d2b6;--td-success-color-9:#b4e1d3;--td-success-color-10:#deede8;--td-gray-color-1:#f3f3f3;--td-gray-color-2:#eee;--td-gray-color-3:#e8e8e8;--td-gray-color-4:#ddd;--td-gray-color-5:#c6c6c6;--td-gray-color-6:#a6a6a6;--td-gray-color-7:#8b8b8b;--td-gray-color-8:#777;--td-gray-color-9:#5e5e5e;--td-gray-color-10:#4b4b4b;--td-gray-color-11:#393939;--td-gray-color-12:#2c2c2c;--td-gray-color-13:#242424;--td-gray-color-14:#181818;--td-font-white-1:hsla(0,0%,100%,.9);--td-font-white-2:hsla(0,0%,100%,.55);--td-font-white-3:hsla(0,0%,100%,.35);--td-font-white-4:hsla(0,0%,100%,.22);--td-font-gray-1:rgba(0,0,0,.9);--td-font-gray-2:rgba(0,0,0,.6);--td-font-gray-3:rgba(0,0,0,.4);--td-font-gray-4:rgba(0,0,0,.26);--td-brand-color:var(--td-brand-color-8);--td-warning-color:var(--td-warning-color-5);--td-error-color:var(--td-error-color-6);--td-success-color:var(--td-success-color-5);--td-brand-color-hover:var(--td-brand-color-7);--td-brand-color-focus:var(--td-brand-color-2);--td-brand-color-active:var(--td-brand-color-9);--td-brand-color-disabled:var(--td-brand-color-3);--td-brand-color-light:var(--td-brand-color-1);--td-brand-color-light-hover:var(--td-brand-color-2);--td-warning-color-hover:var(--td-warning-color-4);--td-warning-color-focus:var(--td-warning-color-2);--td-warning-color-active:var(--td-warning-color-6);--td-warning-color-disabled:var(--td-warning-color-3);--td-warning-color-light:var(--td-warning-color-1);--td-warning-color-light-hover:var(--td-warning-color-2);--td-error-color-hover:var(--td-error-color-5);--td-error-color-focus:var(--td-error-color-2);--td-error-color-active:var(--td-error-color-7);--td-error-color-disabled:var(--td-error-color-3);--td-error-color-light:var(--td-error-color-1);--td-error-color-light-hover:var(--td-error-color-2);--td-success-color-hover:var(--td-success-color-4);--td-success-color-focus:var(--td-success-color-2);--td-success-color-active:var(--td-success-color-6);--td-success-color-disabled:var(--td-success-color-3);--td-success-color-light:var(--td-success-color-1);--td-success-color-light-hover:var(--td-success-color-2);--td-mask-active:rgba(0,0,0,.4);--td-mask-disabled:rgba(0,0,0,.6);--td-mask-background:rgba(36,36,36,.96);--td-bg-color-page:var(--td-gray-color-14);--td-bg-color-container:var(--td-gray-color-13);--td-bg-color-container-hover:var(--td-gray-color-12);--td-bg-color-container-active:var(--td-gray-color-10);--td-bg-color-container-select:var(--td-gray-color-9);--td-bg-color-secondarycontainer:var(--td-gray-color-12);--td-bg-color-secondarycontainer-hover:var(--td-gray-color-11);--td-bg-color-secondarycontainer-active:var(--td-gray-color-9);--td-bg-color-component:var(--td-gray-color-11);--td-bg-color-component-hover:var(--td-gray-color-10);--td-bg-color-component-active:var(--td-gray-color-9);--td-bg-color-secondarycomponent:var(--td-gray-color-10);--td-bg-color-secondarycomponent-hover:var(--td-gray-color-9);--td-bg-color-secondarycomponent-active:var(--td-gray-color-8);--td-bg-color-component-disabled:var(--td-gray-color-12);--td-bg-color-specialcomponent:transparent;--td-text-color-primary:var(--td-font-white-1);--td-text-color-secondary:var(--td-font-white-2);--td-text-color-placeholder:var(--td-font-white-3);--td-text-color-disabled:var(--td-font-white-4);--td-text-color-anti:#fff;--td-text-color-brand:var(--td-brand-color-8);--td-text-color-link:var(--td-brand-color-8);--td-border-level-1-color:var(--td-gray-color-11);--td-component-stroke:var(--td-gray-color-11);--td-border-level-2-color:var(--td-gray-color-9);--td-component-border:var(--td-gray-color-9);--td-shadow-1:0 4px 6px rgba(0,0,0,.06),0 1px 10px rgba(0,0,0,.08),0 2px 4px rgba(0,0,0,.12);--td-shadow-2:0 8px 10px rgba(0,0,0,.12),0 3px 14px rgba(0,0,0,.1),0 5px 5px rgba(0,0,0,.16);--td-shadow-3:0 16px 24px rgba(0,0,0,.14),0 6px 30px rgba(0,0,0,.12),0 8px 10px rgba(0,0,0,.2);--td-shadow-inset-top:inset 0 0.5px 0 #5e5e5e;--td-shadow-inset-right:inset 0.5px 0 0 #5e5e5e;--td-shadow-inset-bottom:inset 0 -0.5px 0 #5e5e5e;--td-shadow-inset-left:inset -0.5px 0 0 #5e5e5e;--td-table-shadow-color:rgba(0,0,0,.55);--td-scrollbar-color:hsla(0,0%,100%,.1);--td-scrollbar-hover-color:hsla(0,0%,100%,.3);--td-scroll-track-color:#333}:root{--td-radius-small:2px;--td-radius-default:3px;--td-radius-medium:6px;--td-radius-large:9px;--td-radius-extraLarge:12px;--td-radius-round:999px;--td-radius-circle:50%;--td-font-family:PingFang SC,Microsoft YaHei,Arial Regular;--td-font-family-medium:PingFang SC,Microsoft YaHei,Arial Medium;--td-font-size-link-small:12px;--td-font-size-link-medium:14px;--td-font-size-link-large:16px;--td-font-size-mark-small:12px;--td-font-size-mark-medium:14px;--td-font-size-body-small:12px;--td-font-size-body-medium:14px;--td-font-size-body-large:16px;--td-font-size-title-small:14px;--td-font-size-title-medium:16px;--td-font-size-title-large:18px;--td-font-size-title-extraLarge:20px;--td-font-size-headline-small:24px;--td-font-size-headline-medium:28px;--td-font-size-headline-large:36px;--td-font-size-display-medium:48px;--td-font-size-display-large:64px;--td-line-height-link-small:20px;--td-line-height-link-medium:22px;--td-line-height-link-large:24px;--td-line-height-mark-small:20px;--td-line-height-mark-medium:22px;--td-line-height-body-small:20px;--td-line-height-body-medium:22px;--td-line-height-body-large:24px;--td-line-height-title-small:22px;--td-line-height-title-medium:24px;--td-line-height-title-large:26px;--td-line-height-title-extraLarge:28px;--td-line-height-headline-small:32px;--td-line-height-headline-medium:36px;--td-line-height-headline-large:44px;--td-line-height-display-medium:56px;--td-line-height-display-large:72px;--td-font-link-small:var(--td-font-size-link-small) /var(--td-line-height-link-small) var(--td-font-family);--td-font-link-medium:var(--td-font-size-link-medium) /var(--td-line-height-link-medium) var(--td-font-family);--td-font-link-large:var(--td-font-size-link-large) /var(--td-line-height-link-large) var(--td-font-family);--td-font-mark-small:600 var(--td-font-size-mark-small) /var(--td-line-height-mark-small) var(--td-font-family);--td-font-mark-medium:600 var(--td-font-size-mark-medium) /var(--td-line-height-mark-medium) var(--td-font-family);--td-font-body-small:var(--td-font-size-body-small) /var(--td-line-height-body-small) var(--td-font-family);--td-font-body-medium:var(--td-font-size-body-medium) /var(--td-line-height-body-medium) var(--td-font-family);--td-font-body-large:var(--td-font-size-body-large) /var(--td-line-height-body-large) var(--td-font-family);--td-font-title-small:600 var(--td-font-size-title-small) /var(--td-line-height-title-small) var(--td-font-family);--td-font-title-medium:600 var(--td-font-size-title-medium) /var(--td-line-height-title-medium) var(--td-font-family);--td-font-title-large:600 var(--td-font-size-title-large) /var(--td-line-height-title-large) var(--td-font-family);--td-font-title-extraLarge:600 var(--td-font-size-title-extraLarge) /var(--td-line-height-title-extraLarge) var(--td-font-family);--td-font-headline-small:600 var(--td-font-size-headline-small) /var(--td-line-height-headline-small) var(--td-font-family);--td-font-headline-medium:600 var(--td-font-size-headline-medium) /var(--td-line-height-headline-medium) var(--td-font-family);--td-font-headline-large:600 var(--td-font-size-headline-large) /var(--td-line-height-headline-large) var(--td-font-family);--td-font-display-medium:600 var(--td-font-size-display-medium) /var(--td-line-height-display-medium) var(--td-font-family);--td-font-display-large:600 var(--td-font-size-display-large) /var(--td-line-height-display-large) var(--td-font-family);--td-size-1:2px;--td-size-2:4px;--td-size-3:6px;--td-size-4:8px;--td-size-5:12px;--td-size-6:16px;--td-size-7:20px;--td-size-8:24px;--td-size-9:28px;--td-size-10:32px;--td-size-11:36px;--td-size-12:40px;--td-size-13:48px;--td-size-14:56px;--td-size-15:64px;--td-size-16:72px;--td-comp-size-xxxs:var(--td-size-6);--td-comp-size-xxs:var(--td-size-7);--td-comp-size-xs:var(--td-size-8);--td-comp-size-s:var(--td-size-9);--td-comp-size-m:var(--td-size-10);--td-comp-size-l:var(--td-size-11);--td-comp-size-xl:var(--td-size-12);--td-comp-size-xxl:var(--td-size-13);--td-comp-size-xxxl:var(--td-size-14);--td-comp-size-xxxxl:var(--td-size-15);--td-comp-size-xxxxxl:var(--td-size-16);--td-pop-padding-s:var(--td-size-2);--td-pop-padding-m:var(--td-size-3);--td-pop-padding-l:var(--td-size-4);--td-pop-padding-xl:var(--td-size-5);--td-pop-padding-xxl:var(--td-size-6);--td-comp-paddingLR-xxs:var(--td-size-1);--td-comp-paddingLR-xs:var(--td-size-2);--td-comp-paddingLR-s:var(--td-size-4);--td-comp-paddingLR-m:var(--td-size-5);--td-comp-paddingLR-l:var(--td-size-6);--td-comp-paddingLR-xl:var(--td-size-8);--td-comp-paddingLR-xxl:var(--td-size-10);--td-comp-paddingTB-xxs:var(--td-size-1);--td-comp-paddingTB-xs:var(--td-size-2);--td-comp-paddingTB-s:var(--td-size-4);--td-comp-paddingTB-m:var(--td-size-5);--td-comp-paddingTB-l:var(--td-size-6);--td-comp-paddingTB-xl:var(--td-size-8);--td-comp-paddingTB-xxl:var(--td-size-10);--td-comp-margin-xxs:var(--td-size-1);--td-comp-margin-xs:var(--td-size-2);--td-comp-margin-s:var(--td-size-4);--td-comp-margin-m:var(--td-size-5);--td-comp-margin-l:var(--td-size-6);--td-comp-margin-xl:var(--td-size-7);--td-comp-margin-xxl:var(--td-size-8);--td-comp-margin-xxxl:var(--td-size-10);--td-comp-margin-xxxxl:var(--td-size-12)}.t-loading{box-sizing:border-box;color:var(--td-text-color-primary);color:var(--td-brand-color);font:var(--td-font-body-medium);font-size:var(--td-comp-size-l);list-style:none;margin:0;padding:0;position:relative}.t-loading--lock{overflow:hidden}.t-loading.t-size-s{font-size:var(--td-comp-size-xxxs)}.t-loading.t-size-l{font-size:var(--td-comp-size-xxxl)}.t-loading__parent--relative{position:relative!important}.t-loading__fullscreen{height:100%;left:0;position:fixed;top:0;width:100%;z-index:3500}.t-loading--center{align-items:center;display:inline-flex;justify-content:center;vertical-align:middle}.t-loading__content{left:48%;position:absolute;top:20%}.t-loading--inherit-color{color:inherit}.t-loading__parent{position:relative}.t-loading__overlay{background-color:var(--td-mask-disabled)}.t-loading--full{height:100%;left:0;position:absolute;top:0;width:100%;z-index:3500}.t-loading--hidden{visibility:hidden}.t-loading--visible{visibility:visible}.t-loading__text{display:inline-block;font:var(--td-font-body-medium);margin-left:var(--td-comp-margin-xs);vertical-align:middle;width:auto}.t-loading__gradient{align-items:center;display:inline-flex;justify-content:center;vertical-align:middle}.t-loading__gradient-conic{background:conic-gradient(from 90deg at 50% 50%,#fff 0deg,currentcolor 1turn);border-radius:var(--td-radius-circle);height:100%;-webkit-mask:radial-gradient(transparent calc(50% - .5px),#fff 50%);mask:radial-gradient(transparent calc(50% - .5px),#fff 50%);width:100%}.t-button{align-items:center;background-color:transparent;border:1px solid transparent;border-radius:var(--td-radius-default);box-sizing:border-box;color:var(--td-text-color-primary);cursor:pointer;display:inline-flex;font:var(--td-font-body-medium);font-size:var(--td-font-body-medium);justify-content:center;list-style:none;margin:0;outline:none;overflow:hidden;padding:0;position:relative;text-decoration:none;touch-action:manipulation;transition:all .2s linear;vertical-align:middle;white-space:nowrap;z-index:0}.t-button .t-button__text,.t-button .t-icon{display:inline-flex;position:relative;z-index:1}.t-button .t-icon,.t-button .t-loading{font-size:var(--td-font-size-body-large)}.t-button .t-icon+.t-button__text:not(:empty),.t-button .t-loading+.t-button__text:not(:empty){margin-left:8px}.t-button .t-button__suffix:not(:empty){display:inline-flex;margin-left:8px}.t-button--variant-base{background-color:var(--td-bg-color-component);border-color:var(--td-bg-color-component);color:var(--td-text-color-anti);color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:var(--td-comp-size-m);padding-left:calc(var(--td-comp-paddingLR-l) - 1px);padding-right:calc(var(--td-comp-paddingLR-l) - 1px)}.t-button--variant-base .t-icon,.t-button--variant-base .t-loading{font-size:var(--td-font-size-body-large)}.t-button--variant-base:focus-visible,.t-button--variant-base:hover{background-color:var(--td-bg-color-component-hover)}.t-button--variant-base.t-is-disabled,.t-button--variant-base.t-is-loading{background-color:var(--td-bg-color-component-disabled)}.t-button--variant-base:focus-visible,.t-button--variant-base:hover{border-color:var(--td-bg-color-component-hover)}.t-button--variant-base.t-is-disabled,.t-button--variant-base.t-is-loading{border-color:var(--td-bg-color-component-disabled)}.t-button--variant-base:focus-visible,.t-button--variant-base:hover{color:var(--td-text-color-primary)}.t-button--variant-base.t-is-disabled,.t-button--variant-base.t-is-loading{color:var(--td-text-color-disabled)}.t-button--variant-base.t-button--theme-primary{background-color:var(--td-brand-color);border-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-button--variant-base.t-button--theme-primary:focus-visible,.t-button--variant-base.t-button--theme-primary:hover{background-color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--theme-primary.t-is-disabled,.t-button--variant-base.t-button--theme-primary.t-is-loading{background-color:var(--td-brand-color-disabled)}.t-button--variant-base.t-button--theme-primary:focus-visible,.t-button--variant-base.t-button--theme-primary:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--theme-primary.t-is-disabled,.t-button--variant-base.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color-disabled)}.t-button--variant-base.t-button--theme-success{background-color:var(--td-success-color);border-color:var(--td-success-color);color:var(--td-text-color-anti)}.t-button--variant-base.t-button--theme-success:focus-visible,.t-button--variant-base.t-button--theme-success:hover{background-color:var(--td-success-color-hover)}.t-button--variant-base.t-button--theme-success.t-is-disabled,.t-button--variant-base.t-button--theme-success.t-is-loading{background-color:var(--td-success-color-disabled)}.t-button--variant-base.t-button--theme-success:focus-visible,.t-button--variant-base.t-button--theme-success:hover{border-color:var(--td-success-color-hover)}.t-button--variant-base.t-button--theme-success.t-is-disabled,.t-button--variant-base.t-button--theme-success.t-is-loading{border-color:var(--td-success-color-disabled)}.t-button--variant-base.t-button--theme-warning{background-color:var(--td-warning-color);border-color:var(--td-warning-color);color:var(--td-text-color-anti)}.t-button--variant-base.t-button--theme-warning:focus-visible,.t-button--variant-base.t-button--theme-warning:hover{background-color:var(--td-warning-color-hover)}.t-button--variant-base.t-button--theme-warning.t-is-disabled,.t-button--variant-base.t-button--theme-warning.t-is-loading{background-color:var(--td-warning-color-disabled)}.t-button--variant-base.t-button--theme-warning:focus-visible,.t-button--variant-base.t-button--theme-warning:hover{border-color:var(--td-warning-color-hover)}.t-button--variant-base.t-button--theme-warning.t-is-disabled,.t-button--variant-base.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color-disabled)}.t-button--variant-base.t-button--theme-danger{background-color:var(--td-error-color);border-color:var(--td-error-color);color:var(--td-text-color-anti)}.t-button--variant-base.t-button--theme-danger:focus-visible,.t-button--variant-base.t-button--theme-danger:hover{background-color:var(--td-error-color-hover)}.t-button--variant-base.t-button--theme-danger.t-is-disabled,.t-button--variant-base.t-button--theme-danger.t-is-loading{background-color:var(--td-error-color-disabled)}.t-button--variant-base.t-button--theme-danger:focus-visible,.t-button--variant-base.t-button--theme-danger:hover{border-color:var(--td-error-color-hover)}.t-button--variant-base.t-button--theme-danger.t-is-disabled,.t-button--variant-base.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color-disabled)}.t-button--variant-base.t-button--ghost{background-color:transparent;border-color:var(--td-text-color-anti);color:var(--td-text-color-anti)}.t-button--variant-base.t-button--ghost:focus-visible,.t-button--variant-base.t-button--ghost:hover{background-color:transparent}.t-button--variant-base.t-button--ghost.t-is-loading,.t-button--variant-base.t-button--ghost:active{background-color:transparent}.t-button--variant-base.t-button--ghost.t-is-disabled{background-color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost:focus-visible,.t-button--variant-base.t-button--ghost:hover{color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--ghost:active{color:var(--td-brand-color-active)}.t-button--variant-base.t-button--ghost.t-is-loading{color:var(--td-text-color-anti)}.t-button--variant-base.t-button--ghost.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost:focus-visible,.t-button--variant-base.t-button--ghost:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--ghost:active{border-color:var(--td-brand-color-active)}.t-button--variant-base.t-button--ghost.t-is-loading{border-color:var(--td-text-color-anti)}.t-button--variant-base.t-button--ghost.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-primary{border-color:var(--td-brand-color);color:var(--td-brand-color)}.t-button--variant-base.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-primary:active{color:var(--td-brand-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-primary.t-is-loading{color:var(--td-brand-color)}.t-button--variant-base.t-button--ghost.t-button--theme-primary.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-primary:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-primary:active{border-color:var(--td-brand-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color)}.t-button--variant-base.t-button--ghost.t-button--theme-primary.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-success{border-color:var(--td-success-color);color:var(--td-success-color)}.t-button--variant-base.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-success:active{color:var(--td-success-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-success.t-is-loading{color:var(--td-success-color)}.t-button--variant-base.t-button--ghost.t-button--theme-success.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-success:hover{border-color:var(--td-success-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-success:active{border-color:var(--td-success-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-success.t-is-loading{border-color:var(--td-success-color)}.t-button--variant-base.t-button--ghost.t-button--theme-success.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-warning{border-color:var(--td-warning-color);color:var(--td-warning-color)}.t-button--variant-base.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-warning:active{color:var(--td-warning-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-warning.t-is-loading{color:var(--td-warning-color)}.t-button--variant-base.t-button--ghost.t-button--theme-warning.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-warning:hover{border-color:var(--td-warning-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-warning:active{border-color:var(--td-warning-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color)}.t-button--variant-base.t-button--ghost.t-button--theme-warning.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-danger{border-color:var(--td-error-color);color:var(--td-error-color)}.t-button--variant-base.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-danger:active{color:var(--td-error-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-danger.t-is-loading{color:var(--td-error-color)}.t-button--variant-base.t-button--ghost.t-button--theme-danger.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-danger:hover{border-color:var(--td-error-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-danger:active{border-color:var(--td-error-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color)}.t-button--variant-base.t-button--ghost.t-button--theme-danger.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-is-loading:not(.t-button--variant-base.t-button--ghost).t-button--theme-default,.t-button--variant-outline{color:var(--td-text-color-primary)}.t-button--variant-outline{background-color:var(--td-bg-color-specialcomponent);border-color:var(--td-border-level-2-color);font:var(--td-font-body-medium);height:var(--td-comp-size-m);padding-left:calc(var(--td-comp-paddingLR-l) - 1px);padding-right:calc(var(--td-comp-paddingLR-l) - 1px)}.t-button--variant-outline .t-icon,.t-button--variant-outline .t-loading{font-size:var(--td-font-size-body-large)}.t-button--variant-outline:focus-visible,.t-button--variant-outline:hover{color:var(--td-brand-color-hover)}.t-button--variant-outline.t-is-disabled,.t-button--variant-outline.t-is-loading{color:var(--td-text-color-disabled)}.t-button--variant-outline:focus-visible,.t-button--variant-outline:hover{background-color:var(--td-bg-color-specialcomponent)}.t-button--variant-outline.t-is-disabled,.t-button--variant-outline.t-is-loading{background-color:var(--td-bg-color-component-disabled)}.t-button--variant-outline:focus-visible,.t-button--variant-outline:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-outline.t-is-disabled,.t-button--variant-outline.t-is-loading{border-color:var(--td-border-level-2-color)}.t-button--variant-outline.t-button--theme-primary{border-color:var(--td-brand-color);color:var(--td-brand-color)}.t-button--variant-outline.t-button--theme-primary:focus-visible,.t-button--variant-outline.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--theme-primary.t-is-disabled,.t-button--variant-outline.t-button--theme-primary.t-is-loading{color:var(--td-brand-color-disabled)}.t-button--variant-outline.t-button--theme-primary:focus-visible,.t-button--variant-outline.t-button--theme-primary:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--theme-primary.t-is-disabled,.t-button--variant-outline.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color-disabled)}.t-button--variant-outline.t-button--theme-success{border-color:var(--td-success-color);color:var(--td-success-color)}.t-button--variant-outline.t-button--theme-success:focus-visible,.t-button--variant-outline.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-outline.t-button--theme-success.t-is-disabled,.t-button--variant-outline.t-button--theme-success.t-is-loading{color:var(--td-success-color-disabled)}.t-button--variant-outline.t-button--theme-success:focus-visible,.t-button--variant-outline.t-button--theme-success:hover{border-color:var(--td-success-color-hover)}.t-button--variant-outline.t-button--theme-success.t-is-disabled,.t-button--variant-outline.t-button--theme-success.t-is-loading{border-color:var(--td-success-color-disabled)}.t-button--variant-outline.t-button--theme-warning{border-color:var(--td-warning-color);color:var(--td-warning-color)}.t-button--variant-outline.t-button--theme-warning:focus-visible,.t-button--variant-outline.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-outline.t-button--theme-warning.t-is-disabled,.t-button--variant-outline.t-button--theme-warning.t-is-loading{color:var(--td-warning-color-disabled)}.t-button--variant-outline.t-button--theme-warning:focus-visible,.t-button--variant-outline.t-button--theme-warning:hover{border-color:var(--td-warning-color-hover)}.t-button--variant-outline.t-button--theme-warning.t-is-disabled,.t-button--variant-outline.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color-disabled)}.t-button--variant-outline.t-button--theme-danger{border-color:var(--td-error-color);color:var(--td-error-color)}.t-button--variant-outline.t-button--theme-danger:focus-visible,.t-button--variant-outline.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-outline.t-button--theme-danger.t-is-disabled,.t-button--variant-outline.t-button--theme-danger.t-is-loading{color:var(--td-error-color-disabled)}.t-button--variant-outline.t-button--theme-danger:focus-visible,.t-button--variant-outline.t-button--theme-danger:hover{border-color:var(--td-error-color-hover)}.t-button--variant-outline.t-button--theme-danger.t-is-disabled,.t-button--variant-outline.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color-disabled)}.t-button--variant-outline.t-button--ghost{background-color:transparent;border-color:var(--td-text-color-anti);color:var(--td-text-color-anti)}.t-button--variant-outline.t-button--ghost:focus-visible,.t-button--variant-outline.t-button--ghost:hover{background-color:transparent}.t-button--variant-outline.t-button--ghost.t-is-loading,.t-button--variant-outline.t-button--ghost:active{background-color:transparent}.t-button--variant-outline.t-button--ghost.t-is-disabled{background-color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost:focus-visible,.t-button--variant-outline.t-button--ghost:hover{color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--ghost:active{color:var(--td-brand-color-active)}.t-button--variant-outline.t-button--ghost.t-is-loading{color:var(--td-text-color-anti)}.t-button--variant-outline.t-button--ghost.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost:focus-visible,.t-button--variant-outline.t-button--ghost:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--ghost:active{border-color:var(--td-brand-color-active)}.t-button--variant-outline.t-button--ghost.t-is-loading{border-color:var(--td-text-color-anti)}.t-button--variant-outline.t-button--ghost.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary{border-color:var(--td-brand-color);color:var(--td-brand-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary:active{color:var(--td-brand-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary.t-is-loading{color:var(--td-brand-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-primary:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary:active{border-color:var(--td-brand-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-success{border-color:var(--td-success-color);color:var(--td-success-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-success:active{color:var(--td-success-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-success.t-is-loading{color:var(--td-success-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-success.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-success:hover{border-color:var(--td-success-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-success:active{border-color:var(--td-success-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-success.t-is-loading{border-color:var(--td-success-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-success.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning{border-color:var(--td-warning-color);color:var(--td-warning-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning:active{color:var(--td-warning-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning.t-is-loading{color:var(--td-warning-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-warning:hover{border-color:var(--td-warning-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning:active{border-color:var(--td-warning-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger{border-color:var(--td-error-color);color:var(--td-error-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger:active{color:var(--td-error-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger.t-is-loading{color:var(--td-error-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-danger:hover{border-color:var(--td-error-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger:active{border-color:var(--td-error-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-is-loading:not(.t-button--variant-outline.t-button--ghost){color:var(--td-text-color-primary)}.t-button--variant-outline.t-is-loading:not(.t-button--variant-outline.t-button--ghost).t-button--theme-primary{background-color:transparent;color:var(--td-brand-color)}.t-button--variant-outline.t-is-loading:not(.t-button--variant-outline.t-button--ghost).t-button--theme-success{background-color:transparent;color:var(--td-success-color)}.t-button--variant-outline.t-is-loading:not(.t-button--variant-outline.t-button--ghost).t-button--theme-warning{background-color:transparent;color:var(--td-warning-color)}.t-button--variant-outline.t-is-loading:not(.t-button--variant-outline.t-button--ghost).t-button--theme-danger{background-color:transparent;color:var(--td-error-color)}.t-button--variant-dashed{background-color:var(--td-bg-color-specialcomponent);border-color:var(--td-border-level-2-color);border-style:dashed;color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:var(--td-comp-size-m);padding-left:calc(var(--td-comp-paddingLR-l) - 1px);padding-right:calc(var(--td-comp-paddingLR-l) - 1px)}.t-button--variant-dashed .t-icon,.t-button--variant-dashed .t-loading{font-size:var(--td-font-size-body-large)}.t-button--variant-dashed:focus-visible,.t-button--variant-dashed:hover{color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-is-disabled,.t-button--variant-dashed.t-is-loading{color:var(--td-text-color-disabled)}.t-button--variant-dashed:focus-visible,.t-button--variant-dashed:hover{background-color:var(--td-bg-color-specialcomponent)}.t-button--variant-dashed.t-is-disabled,.t-button--variant-dashed.t-is-loading{background-color:var(--td-bg-color-component-disabled)}.t-button--variant-dashed:focus-visible,.t-button--variant-dashed:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-is-disabled,.t-button--variant-dashed.t-is-loading{border-color:var(--td-border-level-2-color)}.t-button--variant-dashed.t-button--theme-primary{border-color:var(--td-brand-color);color:var(--td-brand-color)}.t-button--variant-dashed.t-button--theme-primary:focus-visible,.t-button--variant-dashed.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--theme-primary.t-is-disabled,.t-button--variant-dashed.t-button--theme-primary.t-is-loading{color:var(--td-brand-color-disabled)}.t-button--variant-dashed.t-button--theme-primary:focus-visible,.t-button--variant-dashed.t-button--theme-primary:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--theme-primary.t-is-disabled,.t-button--variant-dashed.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color-disabled)}.t-button--variant-dashed.t-button--theme-success{border-color:var(--td-success-color);color:var(--td-success-color)}.t-button--variant-dashed.t-button--theme-success:focus-visible,.t-button--variant-dashed.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-dashed.t-button--theme-success.t-is-disabled,.t-button--variant-dashed.t-button--theme-success.t-is-loading{color:var(--td-success-color-disabled)}.t-button--variant-dashed.t-button--theme-success:focus-visible,.t-button--variant-dashed.t-button--theme-success:hover{border-color:var(--td-success-color-hover)}.t-button--variant-dashed.t-button--theme-success.t-is-disabled,.t-button--variant-dashed.t-button--theme-success.t-is-loading{border-color:var(--td-success-color-disabled)}.t-button--variant-dashed.t-button--theme-warning{border-color:var(--td-warning-color);color:var(--td-warning-color)}.t-button--variant-dashed.t-button--theme-warning:focus-visible,.t-button--variant-dashed.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-dashed.t-button--theme-warning.t-is-disabled,.t-button--variant-dashed.t-button--theme-warning.t-is-loading{color:var(--td-warning-color-disabled)}.t-button--variant-dashed.t-button--theme-warning:focus-visible,.t-button--variant-dashed.t-button--theme-warning:hover{border-color:var(--td-warning-color-hover)}.t-button--variant-dashed.t-button--theme-warning.t-is-disabled,.t-button--variant-dashed.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color-disabled)}.t-button--variant-dashed.t-button--theme-danger{border-color:var(--td-error-color);color:var(--td-error-color)}.t-button--variant-dashed.t-button--theme-danger:focus-visible,.t-button--variant-dashed.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-dashed.t-button--theme-danger.t-is-disabled,.t-button--variant-dashed.t-button--theme-danger.t-is-loading{color:var(--td-error-color-disabled)}.t-button--variant-dashed.t-button--theme-danger:focus-visible,.t-button--variant-dashed.t-button--theme-danger:hover{border-color:var(--td-error-color-hover)}.t-button--variant-dashed.t-button--theme-danger.t-is-disabled,.t-button--variant-dashed.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color-disabled)}.t-button--variant-dashed.t-button--ghost{background-color:transparent;border-color:var(--td-text-color-anti);color:var(--td-text-color-anti)}.t-button--variant-dashed.t-button--ghost:focus-visible,.t-button--variant-dashed.t-button--ghost:hover{background-color:transparent}.t-button--variant-dashed.t-button--ghost.t-is-loading,.t-button--variant-dashed.t-button--ghost:active{background-color:transparent}.t-button--variant-dashed.t-button--ghost.t-is-disabled{background-color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost:focus-visible,.t-button--variant-dashed.t-button--ghost:hover{color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--ghost:active{color:var(--td-brand-color-active)}.t-button--variant-dashed.t-button--ghost.t-is-loading{color:var(--td-text-color-anti)}.t-button--variant-dashed.t-button--ghost.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost:focus-visible,.t-button--variant-dashed.t-button--ghost:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--ghost:active{border-color:var(--td-brand-color-active)}.t-button--variant-dashed.t-button--ghost.t-is-loading{border-color:var(--td-text-color-anti)}.t-button--variant-dashed.t-button--ghost.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary{border-color:var(--td-brand-color);color:var(--td-brand-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:active{color:var(--td-brand-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary.t-is-loading{color:var(--td-brand-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:active{border-color:var(--td-brand-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success{border-color:var(--td-success-color);color:var(--td-success-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success:active{color:var(--td-success-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success.t-is-loading{color:var(--td-success-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-success:hover{border-color:var(--td-success-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success:active{border-color:var(--td-success-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success.t-is-loading{border-color:var(--td-success-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning{border-color:var(--td-warning-color);color:var(--td-warning-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:active{color:var(--td-warning-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning.t-is-loading{color:var(--td-warning-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:hover{border-color:var(--td-warning-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:active{border-color:var(--td-warning-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger{border-color:var(--td-error-color);color:var(--td-error-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:active{color:var(--td-error-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger.t-is-loading{color:var(--td-error-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:hover{border-color:var(--td-error-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:active{border-color:var(--td-error-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-is-loading:not(.t-button--variant-dashed.t-button--ghost){color:var(--td-text-color-primary)}.t-button--variant-dashed.t-is-loading:not(.t-button--variant-dashed.t-button--ghost).t-button--theme-primary{background-color:transparent;color:var(--td-brand-color)}.t-button--variant-dashed.t-is-loading:not(.t-button--variant-dashed.t-button--ghost).t-button--theme-success{background-color:transparent;color:var(--td-success-color)}.t-button--variant-dashed.t-is-loading:not(.t-button--variant-dashed.t-button--ghost).t-button--theme-warning{background-color:transparent;color:var(--td-warning-color)}.t-button--variant-dashed.t-is-loading:not(.t-button--variant-dashed.t-button--ghost).t-button--theme-danger{background-color:transparent;color:var(--td-error-color)}.t-button--variant-text{background-color:transparent;border-color:transparent;color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:var(--td-comp-size-m);padding-left:calc(var(--td-comp-paddingLR-l) - 1px);padding-right:calc(var(--td-comp-paddingLR-l) - 1px)}.t-button--variant-text .t-icon,.t-button--variant-text .t-loading{font-size:var(--td-font-size-body-large)}.t-button--variant-text:focus-visible,.t-button--variant-text:hover{color:var(--td-text-color-primary)}.t-button--variant-text.t-is-disabled,.t-button--variant-text.t-is-loading{color:var(--td-text-color-disabled)}.t-button--variant-text:focus-visible,.t-button--variant-text:hover{background-color:var(--td-bg-color-container-hover)}.t-button--variant-text.t-is-disabled,.t-button--variant-text.t-is-loading{background-color:transparent}.t-button--variant-text:focus-visible,.t-button--variant-text:hover{border-color:var(--td-bg-color-container-hover)}.t-button--variant-text.t-is-disabled,.t-button--variant-text.t-is-loading{border-color:transparent}.t-button--variant-text.t-button--theme-primary{color:var(--td-brand-color)}.t-button--variant-text.t-button--theme-primary:focus-visible,.t-button--variant-text.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-text.t-button--theme-primary.t-is-disabled,.t-button--variant-text.t-button--theme-primary.t-is-loading{color:var(--td-brand-color-disabled)}.t-button--variant-text.t-button--theme-success{color:var(--td-success-color)}.t-button--variant-text.t-button--theme-success:focus-visible,.t-button--variant-text.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-text.t-button--theme-success.t-is-disabled,.t-button--variant-text.t-button--theme-success.t-is-loading{color:var(--td-success-color-disabled)}.t-button--variant-text.t-button--theme-warning{color:var(--td-warning-color)}.t-button--variant-text.t-button--theme-warning:focus-visible,.t-button--variant-text.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-text.t-button--theme-warning.t-is-disabled,.t-button--variant-text.t-button--theme-warning.t-is-loading{color:var(--td-warning-color-disabled)}.t-button--variant-text.t-button--theme-danger{color:var(--td-error-color)}.t-button--variant-text.t-button--theme-danger:focus-visible,.t-button--variant-text.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-text.t-button--theme-danger.t-is-disabled,.t-button--variant-text.t-button--theme-danger.t-is-loading{color:var(--td-error-color-disabled)}.t-button--variant-text.t-button--ghost{background:none;color:var(--td-text-color-anti)}.t-button--variant-text.t-button--ghost:focus-visible,.t-button--variant-text.t-button--ghost:hover{color:var(--td-brand-color-hover)}.t-button--variant-text.t-button--ghost:active{color:var(--td-brand-color-active)}.t-button--variant-text.t-button--ghost.t-is-loading{color:var(--td-text-color-anti)}.t-button--variant-text.t-button--ghost.t-is-disabled{background-color:transparent;color:hsla(0,0%,100%,.22)}.t-button--variant-text.t-button--ghost.t-button--theme-primary{color:var(--td-brand-color)}.t-button--variant-text.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-text.t-button--ghost.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-text.t-button--ghost.t-button--theme-primary:active{color:var(--td-brand-color-active)}.t-button--variant-text.t-button--ghost.t-button--theme-primary.t-is-loading{color:var(--td-brand-color)}.t-button--variant-text.t-button--ghost.t-button--theme-primary.t-is-disabled{background-color:transparent;color:hsla(0,0%,100%,.22)}.t-button--variant-text.t-button--ghost.t-button--theme-success{color:var(--td-success-color)}.t-button--variant-text.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-text.t-button--ghost.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-text.t-button--ghost.t-button--theme-success:active{color:var(--td-success-color-active)}.t-button--variant-text.t-button--ghost.t-button--theme-success.t-is-loading{color:var(--td-success-color)}.t-button--variant-text.t-button--ghost.t-button--theme-success.t-is-disabled{background-color:transparent;color:hsla(0,0%,100%,.22)}.t-button--variant-text.t-button--ghost.t-button--theme-warning{color:var(--td-warning-color)}.t-button--variant-text.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-text.t-button--ghost.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-text.t-button--ghost.t-button--theme-warning:active{color:var(--td-warning-color-active)}.t-button--variant-text.t-button--ghost.t-button--theme-warning.t-is-loading{color:var(--td-warning-color)}.t-button--variant-text.t-button--ghost.t-button--theme-warning.t-is-disabled{background-color:transparent;color:hsla(0,0%,100%,.22)}.t-button--variant-text.t-button--ghost.t-button--theme-danger{color:var(--td-error-color)}.t-button--variant-text.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-text.t-button--ghost.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-text.t-button--ghost.t-button--theme-danger:active{color:var(--td-error-color-active)}.t-button--variant-text.t-button--ghost.t-button--theme-danger.t-is-loading{color:var(--td-error-color)}.t-button--variant-text.t-button--ghost.t-button--theme-danger.t-is-disabled{background-color:transparent;color:hsla(0,0%,100%,.22)}.t-button--variant-text.t-is-loading:not(.t-button--variant-text.t-button--ghost){color:var(--td-text-color-primary)}.t-button--variant-text.t-is-loading:not(.t-button--variant-text.t-button--ghost).t-button--theme-primary{color:var(--td-brand-color)}.t-button--variant-text.t-is-loading:not(.t-button--variant-text.t-button--ghost).t-button--theme-success{color:var(--td-success-color)}.t-button--variant-text.t-is-loading:not(.t-button--variant-text.t-button--ghost).t-button--theme-warning{color:var(--td-warning-color)}.t-button--variant-text.t-is-loading:not(.t-button--variant-text.t-button--ghost).t-button--theme-danger{color:var(--td-error-color)}.t-button.t-is-disabled,.t-button.t-is-loading{cursor:not-allowed}.t-button.t-size-s{font:var(--td-font-body-small);height:var(--td-comp-size-xs);padding-left:calc(var(--td-comp-paddingLR-s) - 1px);padding-right:calc(var(--td-comp-paddingLR-s) - 1px)}.t-button.t-size-s .t-icon,.t-button.t-size-s .t-loading{font-size:var(--td-font-size-body-medium)}.t-button.t-size-l{font:var(--td-font-body-large);height:var(--td-comp-size-xl);padding-left:calc(var(--td-comp-paddingLR-xl) - 1px);padding-right:calc(var(--td-comp-paddingLR-xl) - 1px)}.t-button.t-size-l .t-icon,.t-button.t-size-l .t-loading{font-size:var(--td-font-size-title-large)}.t-button--shape-square{padding:0;width:var(--td-comp-size-m)}.t-button--shape-square.t-size-s{padding:0;width:var(--td-comp-size-xs)}.t-button--shape-square.t-size-l{padding:0;width:var(--td-comp-size-xl)}.t-button--shape-round{border-radius:var(--td-radius-round)}.t-button--shape-round.t-size-s{border-radius:calc(var(--td-comp-size-xs)/2)}.t-button--shape-round.t-size-l{border-radius:calc(var(--td-comp-size-xl)/2)}.t-button--shape-circle{border-radius:calc(var(--td-comp-size-m)/2);padding:0;text-align:center;width:var(--td-comp-size-m)}.t-button--shape-circle .t-icon,.t-button--shape-circle .t-loading{font-size:var(--td-font-size-body-large)}.t-button--shape-circle.t-size-s{border-radius:calc(var(--td-comp-size-xs)/2);width:var(--td-comp-size-xs)}.t-button--shape-circle.t-size-l{border-radius:calc(var(--td-comp-size-xl)/2);padding:0;width:var(--td-comp-size-xl)}.t-button.t-size-full-width{display:flex;width:100%}.t-button--ghost{--ripple-color:var(--td-gray-color-10)}.t-button:not(.t-is-disabled):not(.t-button--ghost){--ripple-color:var(--td-bg-color-container-active)}.t-button--variant-base:not(.t-is-disabled):not(.t-button--ghost){--ripple-color:var(--td-bg-color-component-active)}.t-button--variant-base.t-button--theme-primary:not(.t-is-disabled):not(.t-button--ghost){--ripple-color:var(--td-brand-color-active)}.t-button--variant-base.t-button--theme-success:not(.t-is-disabled):not(.t-button--ghost){--ripple-color:var(--td-success-color-active)}.t-button--variant-base.t-button--theme-warning:not(.t-is-disabled):not(.t-button--ghost){--ripple-color:var(--td-warning-color-active)}.t-button--variant-base.t-button--theme-danger:not(.t-is-disabled):not(.t-button--ghost){--ripple-color:var(--td-error-color-active)}.t-icon{display:inline-block;height:1em;vertical-align:middle;width:1em}.t-icon:before{font-family:unset}.t-icon{fill:currentColor}.t-icon.t-size-s,i.t-size-s{font-size:14px}.t-icon.t-size-m,i.t-size-m{font-size:16px}.t-icon.t-size-l,i.t-size-l{font-size:18px}.t-link{align-items:center;cursor:pointer;display:inline-flex;font:var(--td-font-link-medium);outline:none;padding:0;position:relative;text-decoration:none;transition:all .2s linear}.t-link .t-link__prefix-icon{display:flex;margin-right:var(--td-comp-margin-s)}.t-link .t-link__suffix-icon{display:flex;margin-left:var(--td-comp-margin-s)}.t-link.t-size-s{font:var(--td-font-link-small)}.t-link.t-size-s .t-link__prefix-icon{display:flex;margin-right:var(--td-comp-margin-xs)}.t-link.t-size-s .t-link__suffix-icon{display:flex;margin-left:var(--td-comp-margin-xs)}.t-link.t-size-l{font:var(--td-font-link-large)}.t-link.t-size-l .t-link__prefix-icon{display:flex;margin-right:var(--td-comp-margin-m)}.t-link.t-size-l .t-link__suffix-icon{display:flex;margin-left:var(--td-comp-margin-m)}.t-link--theme-default{color:var(--td-text-color-primary)}.t-link--theme-default:active{color:var(--td-brand-color-active)}.t-link--theme-default.t-link--hover-underline:after{border-bottom:1px solid var(--td-text-color-primary);bottom:0;content:"";height:0;left:0;opacity:0;position:absolute;right:0;transition:all .2s linear}.t-link--theme-default.t-link--hover-underline:hover:after{opacity:1}.t-link--theme-default.t-link--hover-underline:active:after{border-color:var(--td-brand-color-active);opacity:1}.t-link--theme-default.t-link--hover-color:hover{color:var(--td-brand-color-hover)}.t-link--theme-default.t-link--hover-color.t-is-underline:hover:after{border-color:var(--td-brand-color-hover)}.t-link--theme-default.t-link--hover-color.t-is-underline:active:after{border-color:var(--td-brand-color-active)}.t-link--theme-default.t-link--hover-color:active{color:var(--td-brand-color-active)}.t-link--theme-default.t-is-underline:after{border-bottom:1px solid var(--td-text-color-primary);bottom:0;content:"";height:0;left:0;opacity:1;position:absolute;right:0;transition:all .2s linear}.t-link--theme-default.t-is-disabled{color:var(--td-text-color-disabled);cursor:not-allowed}.t-link--theme-default.t-is-disabled:active,.t-link--theme-default.t-is-disabled:hover{color:var(--td-text-color-disabled)}.t-link--theme-default.t-is-disabled.t-is-underline:after{border-color:var(--td-text-color-disabled)}.t-link--theme-primary{color:var(--td-brand-color)}.t-link--theme-primary:active{color:var(--td-brand-color-active)}.t-link--theme-primary.t-link--hover-underline:after{border-bottom:1px solid var(--td-brand-color);bottom:0;content:"";height:0;left:0;opacity:0;position:absolute;right:0;transition:all .2s linear}.t-link--theme-primary.t-link--hover-underline:hover:after{opacity:1}.t-link--theme-primary.t-link--hover-underline:active:after{border-color:var(--td-brand-color-active);opacity:1}.t-link--theme-primary.t-link--hover-color:hover{color:var(--td-brand-color-hover)}.t-link--theme-primary.t-link--hover-color.t-is-underline:hover:after{border-color:var(--td-brand-color-hover)}.t-link--theme-primary.t-link--hover-color.t-is-underline:active:after{border-color:var(--td-brand-color-active)}.t-link--theme-primary.t-link--hover-color:active{color:var(--td-brand-color-active)}.t-link--theme-primary.t-is-underline:after{border-bottom:1px solid var(--td-brand-color);bottom:0;content:"";height:0;left:0;opacity:1;position:absolute;right:0;transition:all .2s linear}.t-link--theme-primary.t-is-disabled{color:var(--td-brand-color-disabled);cursor:not-allowed}.t-link--theme-primary.t-is-disabled:active,.t-link--theme-primary.t-is-disabled:hover{color:var(--td-brand-color-disabled)}.t-link--theme-primary.t-is-disabled.t-is-underline:after{border-color:var(--td-brand-color-disabled)}.t-link--theme-success{color:var(--td-success-color)}.t-link--theme-success:active{color:var(--td-success-color-active)}.t-link--theme-success.t-link--hover-underline:after{border-bottom:1px solid var(--td-success-color);bottom:0;content:"";height:0;left:0;opacity:0;position:absolute;right:0;transition:all .2s linear}.t-link--theme-success.t-link--hover-underline:hover:after{opacity:1}.t-link--theme-success.t-link--hover-underline:active:after{border-color:var(--td-success-color-active);opacity:1}.t-link--theme-success.t-link--hover-color:hover{color:var(--td-success-color-hover)}.t-link--theme-success.t-link--hover-color.t-is-underline:hover:after{border-color:var(--td-success-color-hover)}.t-link--theme-success.t-link--hover-color.t-is-underline:active:after{border-color:var(--td-success-color-active)}.t-link--theme-success.t-link--hover-color:active{color:var(--td-success-color-active)}.t-link--theme-success.t-is-underline:after{border-bottom:1px solid var(--td-success-color);bottom:0;content:"";height:0;left:0;opacity:1;position:absolute;right:0;transition:all .2s linear}.t-link--theme-success.t-is-disabled{cursor:not-allowed}.t-link--theme-success.t-is-disabled,.t-link--theme-success.t-is-disabled:active,.t-link--theme-success.t-is-disabled:hover{color:var(--td-success-color-disabled)}.t-link--theme-success.t-is-disabled.t-is-underline:after{border-color:var(--td-success-color-disabled)}.t-link--theme-danger{color:var(--td-error-color)}.t-link--theme-danger:active{color:var(--td-error-color-active)}.t-link--theme-danger.t-link--hover-underline:after{border-bottom:1px solid var(--td-error-color);bottom:0;content:"";height:0;left:0;opacity:0;position:absolute;right:0;transition:all .2s linear}.t-link--theme-danger.t-link--hover-underline:hover:after{opacity:1}.t-link--theme-danger.t-link--hover-underline:active:after{border-color:var(--td-error-color-active);opacity:1}.t-link--theme-danger.t-link--hover-color:hover{color:var(--td-error-color-hover)}.t-link--theme-danger.t-link--hover-color.t-is-underline:hover:after{border-color:var(--td-error-color-hover)}.t-link--theme-danger.t-link--hover-color.t-is-underline:active:after{border-color:var(--td-error-color-active)}.t-link--theme-danger.t-link--hover-color:active{color:var(--td-error-color-active)}.t-link--theme-danger.t-is-underline:after{border-bottom:1px solid var(--td-error-color);bottom:0;content:"";height:0;left:0;opacity:1;position:absolute;right:0;transition:all .2s linear}.t-link--theme-danger.t-is-disabled{cursor:not-allowed}.t-link--theme-danger.t-is-disabled,.t-link--theme-danger.t-is-disabled:active,.t-link--theme-danger.t-is-disabled:hover{color:var(--td-error-color-disabled)}.t-link--theme-danger.t-is-disabled.t-is-underline:after{border-color:var(--td-error-color-disabled)}.t-link--theme-warning{color:var(--td-warning-color)}.t-link--theme-warning:active{color:var(--td-warning-color-active)}.t-link--theme-warning.t-link--hover-underline:after{border-bottom:1px solid var(--td-warning-color);bottom:0;content:"";height:0;left:0;opacity:0;position:absolute;right:0;transition:all .2s linear}.t-link--theme-warning.t-link--hover-underline:hover:after{opacity:1}.t-link--theme-warning.t-link--hover-underline:active:after{border-color:var(--td-warning-color-active);opacity:1}.t-link--theme-warning.t-link--hover-color:hover{color:var(--td-warning-color-hover)}.t-link--theme-warning.t-link--hover-color.t-is-underline:hover:after{border-color:var(--td-warning-color-hover)}.t-link--theme-warning.t-link--hover-color.t-is-underline:active:after{border-color:var(--td-warning-color-active)}.t-link--theme-warning.t-link--hover-color:active{color:var(--td-warning-color-active)}.t-link--theme-warning.t-is-underline:after{border-bottom:1px solid var(--td-warning-color);bottom:0;content:"";height:0;left:0;opacity:1;position:absolute;right:0;transition:all .2s linear}.t-link--theme-warning.t-is-disabled{cursor:not-allowed}.t-link--theme-warning.t-is-disabled,.t-link--theme-warning.t-is-disabled:active,.t-link--theme-warning.t-is-disabled:hover{color:var(--td-warning-color-disabled)}.t-link--theme-warning.t-is-disabled.t-is-underline:after{border-color:var(--td-warning-color-disabled)}.t-row{box-sizing:border-box;color:var(--td-text-color-primary);display:flex;flex-flow:row wrap;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-row--start{justify-content:flex-start}.t-row--center{justify-content:center}.t-row--end{justify-content:flex-end}.t-row--space-between{justify-content:space-between}.t-row--space-around{justify-content:space-around}.t-row--top{align-items:flex-start}.t-row--middle{align-items:center}.t-row--bottom{align-items:flex-end}.t-row--align-start,.t-row--align-top{align-items:flex-start}.t-row--align-center,.t-row--align-middle{align-items:center}.t-row--align-bottom,.t-row--align-end{align-items:flex-end}.t-row--align-stretch{align-items:stretch}.t-row--align-baseline{align-items:baseline}.t-col{box-sizing:border-box;max-width:100%;min-height:1px;position:relative}.t-col-12{display:block;flex:0 0 100%;max-width:100%}.t-col-push-12{left:100%}.t-col-pull-12{right:100%}.t-col-offset-12{margin-left:100%}.t-col-order-12{order:12}.t-col-11{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.t-col-push-11{left:91.66666667%}.t-col-pull-11{right:91.66666667%}.t-col-offset-11{margin-left:91.66666667%}.t-col-order-11{order:11}.t-col-10{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.t-col-push-10{left:83.33333333%}.t-col-pull-10{right:83.33333333%}.t-col-offset-10{margin-left:83.33333333%}.t-col-order-10{order:10}.t-col-9{display:block;flex:0 0 75%;max-width:75%}.t-col-push-9{left:75%}.t-col-pull-9{right:75%}.t-col-offset-9{margin-left:75%}.t-col-order-9{order:9}.t-col-8{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.t-col-push-8{left:66.66666667%}.t-col-pull-8{right:66.66666667%}.t-col-offset-8{margin-left:66.66666667%}.t-col-order-8{order:8}.t-col-7{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.t-col-push-7{left:58.33333333%}.t-col-pull-7{right:58.33333333%}.t-col-offset-7{margin-left:58.33333333%}.t-col-order-7{order:7}.t-col-6{display:block;flex:0 0 50%;max-width:50%}.t-col-push-6{left:50%}.t-col-pull-6{right:50%}.t-col-offset-6{margin-left:50%}.t-col-order-6{order:6}.t-col-5{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.t-col-push-5{left:41.66666667%}.t-col-pull-5{right:41.66666667%}.t-col-offset-5{margin-left:41.66666667%}.t-col-order-5{order:5}.t-col-4{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.t-col-push-4{left:33.33333333%}.t-col-pull-4{right:33.33333333%}.t-col-offset-4{margin-left:33.33333333%}.t-col-order-4{order:4}.t-col-3{display:block;flex:0 0 25%;max-width:25%}.t-col-push-3{left:25%}.t-col-pull-3{right:25%}.t-col-offset-3{margin-left:25%}.t-col-order-3{order:3}.t-col-2{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.t-col-push-2{left:16.66666667%}.t-col-pull-2{right:16.66666667%}.t-col-offset-2{margin-left:16.66666667%}.t-col-order-2{order:2}.t-col-1{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.t-col-push-1{left:8.33333333%}.t-col-pull-1{right:8.33333333%}.t-col-offset-1{margin-left:8.33333333%}.t-col-order-1{order:1}.t-col-0{display:none}.t-col-offset-0{margin-left:0}.t-col-order-0{order:0}.t-col-xs-12{display:block;flex:0 0 100%;max-width:100%}.t-col-xs-push-12{left:100%}.t-col-xs-pull-12{right:100%}.t-col-xs-offset-12{margin-left:100%}.t-col-xs-order-12{order:12}.t-col-xs-11{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.t-col-xs-push-11{left:91.66666667%}.t-col-xs-pull-11{right:91.66666667%}.t-col-xs-offset-11{margin-left:91.66666667%}.t-col-xs-order-11{order:11}.t-col-xs-10{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.t-col-xs-push-10{left:83.33333333%}.t-col-xs-pull-10{right:83.33333333%}.t-col-xs-offset-10{margin-left:83.33333333%}.t-col-xs-order-10{order:10}.t-col-xs-9{display:block;flex:0 0 75%;max-width:75%}.t-col-xs-push-9{left:75%}.t-col-xs-pull-9{right:75%}.t-col-xs-offset-9{margin-left:75%}.t-col-xs-order-9{order:9}.t-col-xs-8{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.t-col-xs-push-8{left:66.66666667%}.t-col-xs-pull-8{right:66.66666667%}.t-col-xs-offset-8{margin-left:66.66666667%}.t-col-xs-order-8{order:8}.t-col-xs-7{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.t-col-xs-push-7{left:58.33333333%}.t-col-xs-pull-7{right:58.33333333%}.t-col-xs-offset-7{margin-left:58.33333333%}.t-col-xs-order-7{order:7}.t-col-xs-6{display:block;flex:0 0 50%;max-width:50%}.t-col-xs-push-6{left:50%}.t-col-xs-pull-6{right:50%}.t-col-xs-offset-6{margin-left:50%}.t-col-xs-order-6{order:6}.t-col-xs-5{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.t-col-xs-push-5{left:41.66666667%}.t-col-xs-pull-5{right:41.66666667%}.t-col-xs-offset-5{margin-left:41.66666667%}.t-col-xs-order-5{order:5}.t-col-xs-4{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.t-col-xs-push-4{left:33.33333333%}.t-col-xs-pull-4{right:33.33333333%}.t-col-xs-offset-4{margin-left:33.33333333%}.t-col-xs-order-4{order:4}.t-col-xs-3{display:block;flex:0 0 25%;max-width:25%}.t-col-xs-push-3{left:25%}.t-col-xs-pull-3{right:25%}.t-col-xs-offset-3{margin-left:25%}.t-col-xs-order-3{order:3}.t-col-xs-2{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.t-col-xs-push-2{left:16.66666667%}.t-col-xs-pull-2{right:16.66666667%}.t-col-xs-offset-2{margin-left:16.66666667%}.t-col-xs-order-2{order:2}.t-col-xs-1{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.t-col-xs-push-1{left:8.33333333%}.t-col-xs-pull-1{right:8.33333333%}.t-col-xs-offset-1{margin-left:8.33333333%}.t-col-xs-order-1{order:1}.t-col-xs-0{display:none}.t-col-push-0{left:auto}.t-col-pull-0{right:auto}.t-col-xs-push-0{left:auto}.t-col-xs-pull-0{right:auto}.t-col-xs-offset-0{margin-left:0}.t-col-xs-order-0{order:0}@media (min-width:768px){.t-col-sm-12{display:block;flex:0 0 100%;max-width:100%}.t-col-sm-push-12{left:100%}.t-col-sm-pull-12{right:100%}.t-col-sm-offset-12{margin-left:100%}.t-col-sm-order-12{order:12}.t-col-sm-11{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.t-col-sm-push-11{left:91.66666667%}.t-col-sm-pull-11{right:91.66666667%}.t-col-sm-offset-11{margin-left:91.66666667%}.t-col-sm-order-11{order:11}.t-col-sm-10{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.t-col-sm-push-10{left:83.33333333%}.t-col-sm-pull-10{right:83.33333333%}.t-col-sm-offset-10{margin-left:83.33333333%}.t-col-sm-order-10{order:10}.t-col-sm-9{display:block;flex:0 0 75%;max-width:75%}.t-col-sm-push-9{left:75%}.t-col-sm-pull-9{right:75%}.t-col-sm-offset-9{margin-left:75%}.t-col-sm-order-9{order:9}.t-col-sm-8{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.t-col-sm-push-8{left:66.66666667%}.t-col-sm-pull-8{right:66.66666667%}.t-col-sm-offset-8{margin-left:66.66666667%}.t-col-sm-order-8{order:8}.t-col-sm-7{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.t-col-sm-push-7{left:58.33333333%}.t-col-sm-pull-7{right:58.33333333%}.t-col-sm-offset-7{margin-left:58.33333333%}.t-col-sm-order-7{order:7}.t-col-sm-6{display:block;flex:0 0 50%;max-width:50%}.t-col-sm-push-6{left:50%}.t-col-sm-pull-6{right:50%}.t-col-sm-offset-6{margin-left:50%}.t-col-sm-order-6{order:6}.t-col-sm-5{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.t-col-sm-push-5{left:41.66666667%}.t-col-sm-pull-5{right:41.66666667%}.t-col-sm-offset-5{margin-left:41.66666667%}.t-col-sm-order-5{order:5}.t-col-sm-4{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.t-col-sm-push-4{left:33.33333333%}.t-col-sm-pull-4{right:33.33333333%}.t-col-sm-offset-4{margin-left:33.33333333%}.t-col-sm-order-4{order:4}.t-col-sm-3{display:block;flex:0 0 25%;max-width:25%}.t-col-sm-push-3{left:25%}.t-col-sm-pull-3{right:25%}.t-col-sm-offset-3{margin-left:25%}.t-col-sm-order-3{order:3}.t-col-sm-2{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.t-col-sm-push-2{left:16.66666667%}.t-col-sm-pull-2{right:16.66666667%}.t-col-sm-offset-2{margin-left:16.66666667%}.t-col-sm-order-2{order:2}.t-col-sm-1{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.t-col-sm-push-1{left:8.33333333%}.t-col-sm-pull-1{right:8.33333333%}.t-col-sm-offset-1{margin-left:8.33333333%}.t-col-sm-order-1{order:1}.t-col-sm-0{display:none}.t-col-push-0{left:auto}.t-col-pull-0{right:auto}.t-col-sm-push-0{left:auto}.t-col-sm-pull-0{right:auto}.t-col-sm-offset-0{margin-left:0}.t-col-sm-order-0{order:0}}@media (min-width:992px){.t-col-md-12{display:block;flex:0 0 100%;max-width:100%}.t-col-md-push-12{left:100%}.t-col-md-pull-12{right:100%}.t-col-md-offset-12{margin-left:100%}.t-col-md-order-12{order:12}.t-col-md-11{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.t-col-md-push-11{left:91.66666667%}.t-col-md-pull-11{right:91.66666667%}.t-col-md-offset-11{margin-left:91.66666667%}.t-col-md-order-11{order:11}.t-col-md-10{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.t-col-md-push-10{left:83.33333333%}.t-col-md-pull-10{right:83.33333333%}.t-col-md-offset-10{margin-left:83.33333333%}.t-col-md-order-10{order:10}.t-col-md-9{display:block;flex:0 0 75%;max-width:75%}.t-col-md-push-9{left:75%}.t-col-md-pull-9{right:75%}.t-col-md-offset-9{margin-left:75%}.t-col-md-order-9{order:9}.t-col-md-8{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.t-col-md-push-8{left:66.66666667%}.t-col-md-pull-8{right:66.66666667%}.t-col-md-offset-8{margin-left:66.66666667%}.t-col-md-order-8{order:8}.t-col-md-7{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.t-col-md-push-7{left:58.33333333%}.t-col-md-pull-7{right:58.33333333%}.t-col-md-offset-7{margin-left:58.33333333%}.t-col-md-order-7{order:7}.t-col-md-6{display:block;flex:0 0 50%;max-width:50%}.t-col-md-push-6{left:50%}.t-col-md-pull-6{right:50%}.t-col-md-offset-6{margin-left:50%}.t-col-md-order-6{order:6}.t-col-md-5{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.t-col-md-push-5{left:41.66666667%}.t-col-md-pull-5{right:41.66666667%}.t-col-md-offset-5{margin-left:41.66666667%}.t-col-md-order-5{order:5}.t-col-md-4{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.t-col-md-push-4{left:33.33333333%}.t-col-md-pull-4{right:33.33333333%}.t-col-md-offset-4{margin-left:33.33333333%}.t-col-md-order-4{order:4}.t-col-md-3{display:block;flex:0 0 25%;max-width:25%}.t-col-md-push-3{left:25%}.t-col-md-pull-3{right:25%}.t-col-md-offset-3{margin-left:25%}.t-col-md-order-3{order:3}.t-col-md-2{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.t-col-md-push-2{left:16.66666667%}.t-col-md-pull-2{right:16.66666667%}.t-col-md-offset-2{margin-left:16.66666667%}.t-col-md-order-2{order:2}.t-col-md-1{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.t-col-md-push-1{left:8.33333333%}.t-col-md-pull-1{right:8.33333333%}.t-col-md-offset-1{margin-left:8.33333333%}.t-col-md-order-1{order:1}.t-col-md-0{display:none}.t-col-push-0{left:auto}.t-col-pull-0{right:auto}.t-col-md-push-0{left:auto}.t-col-md-pull-0{right:auto}.t-col-md-offset-0{margin-left:0}.t-col-md-order-0{order:0}}@media (min-width:1200px){.t-col-lg-12{display:block;flex:0 0 100%;max-width:100%}.t-col-lg-push-12{left:100%}.t-col-lg-pull-12{right:100%}.t-col-lg-offset-12{margin-left:100%}.t-col-lg-order-12{order:12}.t-col-lg-11{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.t-col-lg-push-11{left:91.66666667%}.t-col-lg-pull-11{right:91.66666667%}.t-col-lg-offset-11{margin-left:91.66666667%}.t-col-lg-order-11{order:11}.t-col-lg-10{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.t-col-lg-push-10{left:83.33333333%}.t-col-lg-pull-10{right:83.33333333%}.t-col-lg-offset-10{margin-left:83.33333333%}.t-col-lg-order-10{order:10}.t-col-lg-9{display:block;flex:0 0 75%;max-width:75%}.t-col-lg-push-9{left:75%}.t-col-lg-pull-9{right:75%}.t-col-lg-offset-9{margin-left:75%}.t-col-lg-order-9{order:9}.t-col-lg-8{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.t-col-lg-push-8{left:66.66666667%}.t-col-lg-pull-8{right:66.66666667%}.t-col-lg-offset-8{margin-left:66.66666667%}.t-col-lg-order-8{order:8}.t-col-lg-7{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.t-col-lg-push-7{left:58.33333333%}.t-col-lg-pull-7{right:58.33333333%}.t-col-lg-offset-7{margin-left:58.33333333%}.t-col-lg-order-7{order:7}.t-col-lg-6{display:block;flex:0 0 50%;max-width:50%}.t-col-lg-push-6{left:50%}.t-col-lg-pull-6{right:50%}.t-col-lg-offset-6{margin-left:50%}.t-col-lg-order-6{order:6}.t-col-lg-5{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.t-col-lg-push-5{left:41.66666667%}.t-col-lg-pull-5{right:41.66666667%}.t-col-lg-offset-5{margin-left:41.66666667%}.t-col-lg-order-5{order:5}.t-col-lg-4{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.t-col-lg-push-4{left:33.33333333%}.t-col-lg-pull-4{right:33.33333333%}.t-col-lg-offset-4{margin-left:33.33333333%}.t-col-lg-order-4{order:4}.t-col-lg-3{display:block;flex:0 0 25%;max-width:25%}.t-col-lg-push-3{left:25%}.t-col-lg-pull-3{right:25%}.t-col-lg-offset-3{margin-left:25%}.t-col-lg-order-3{order:3}.t-col-lg-2{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.t-col-lg-push-2{left:16.66666667%}.t-col-lg-pull-2{right:16.66666667%}.t-col-lg-offset-2{margin-left:16.66666667%}.t-col-lg-order-2{order:2}.t-col-lg-1{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.t-col-lg-push-1{left:8.33333333%}.t-col-lg-pull-1{right:8.33333333%}.t-col-lg-offset-1{margin-left:8.33333333%}.t-col-lg-order-1{order:1}.t-col-lg-0{display:none}.t-col-push-0{left:auto}.t-col-pull-0{right:auto}.t-col-lg-push-0{left:auto}.t-col-lg-pull-0{right:auto}.t-col-lg-offset-0{margin-left:0}.t-col-lg-order-0{order:0}}@media (min-width:1400px){.t-col-xl-12{display:block;flex:0 0 100%;max-width:100%}.t-col-xl-push-12{left:100%}.t-col-xl-pull-12{right:100%}.t-col-xl-offset-12{margin-left:100%}.t-col-xl-order-12{order:12}.t-col-xl-11{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.t-col-xl-push-11{left:91.66666667%}.t-col-xl-pull-11{right:91.66666667%}.t-col-xl-offset-11{margin-left:91.66666667%}.t-col-xl-order-11{order:11}.t-col-xl-10{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.t-col-xl-push-10{left:83.33333333%}.t-col-xl-pull-10{right:83.33333333%}.t-col-xl-offset-10{margin-left:83.33333333%}.t-col-xl-order-10{order:10}.t-col-xl-9{display:block;flex:0 0 75%;max-width:75%}.t-col-xl-push-9{left:75%}.t-col-xl-pull-9{right:75%}.t-col-xl-offset-9{margin-left:75%}.t-col-xl-order-9{order:9}.t-col-xl-8{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.t-col-xl-push-8{left:66.66666667%}.t-col-xl-pull-8{right:66.66666667%}.t-col-xl-offset-8{margin-left:66.66666667%}.t-col-xl-order-8{order:8}.t-col-xl-7{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.t-col-xl-push-7{left:58.33333333%}.t-col-xl-pull-7{right:58.33333333%}.t-col-xl-offset-7{margin-left:58.33333333%}.t-col-xl-order-7{order:7}.t-col-xl-6{display:block;flex:0 0 50%;max-width:50%}.t-col-xl-push-6{left:50%}.t-col-xl-pull-6{right:50%}.t-col-xl-offset-6{margin-left:50%}.t-col-xl-order-6{order:6}.t-col-xl-5{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.t-col-xl-push-5{left:41.66666667%}.t-col-xl-pull-5{right:41.66666667%}.t-col-xl-offset-5{margin-left:41.66666667%}.t-col-xl-order-5{order:5}.t-col-xl-4{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.t-col-xl-push-4{left:33.33333333%}.t-col-xl-pull-4{right:33.33333333%}.t-col-xl-offset-4{margin-left:33.33333333%}.t-col-xl-order-4{order:4}.t-col-xl-3{display:block;flex:0 0 25%;max-width:25%}.t-col-xl-push-3{left:25%}.t-col-xl-pull-3{right:25%}.t-col-xl-offset-3{margin-left:25%}.t-col-xl-order-3{order:3}.t-col-xl-2{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.t-col-xl-push-2{left:16.66666667%}.t-col-xl-pull-2{right:16.66666667%}.t-col-xl-offset-2{margin-left:16.66666667%}.t-col-xl-order-2{order:2}.t-col-xl-1{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.t-col-xl-push-1{left:8.33333333%}.t-col-xl-pull-1{right:8.33333333%}.t-col-xl-offset-1{margin-left:8.33333333%}.t-col-xl-order-1{order:1}.t-col-xl-0{display:none}.t-col-push-0{left:auto}.t-col-pull-0{right:auto}.t-col-xl-push-0{left:auto}.t-col-xl-pull-0{right:auto}.t-col-xl-offset-0{margin-left:0}.t-col-xl-order-0{order:0}}@media (min-width:1880px){.t-col-xxl-12{display:block;flex:0 0 100%;max-width:100%}.t-col-xxl-push-12{left:100%}.t-col-xxl-pull-12{right:100%}.t-col-xxl-offset-12{margin-left:100%}.t-col-xxl-order-12{order:12}.t-col-xxl-11{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.t-col-xxl-push-11{left:91.66666667%}.t-col-xxl-pull-11{right:91.66666667%}.t-col-xxl-offset-11{margin-left:91.66666667%}.t-col-xxl-order-11{order:11}.t-col-xxl-10{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.t-col-xxl-push-10{left:83.33333333%}.t-col-xxl-pull-10{right:83.33333333%}.t-col-xxl-offset-10{margin-left:83.33333333%}.t-col-xxl-order-10{order:10}.t-col-xxl-9{display:block;flex:0 0 75%;max-width:75%}.t-col-xxl-push-9{left:75%}.t-col-xxl-pull-9{right:75%}.t-col-xxl-offset-9{margin-left:75%}.t-col-xxl-order-9{order:9}.t-col-xxl-8{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.t-col-xxl-push-8{left:66.66666667%}.t-col-xxl-pull-8{right:66.66666667%}.t-col-xxl-offset-8{margin-left:66.66666667%}.t-col-xxl-order-8{order:8}.t-col-xxl-7{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.t-col-xxl-push-7{left:58.33333333%}.t-col-xxl-pull-7{right:58.33333333%}.t-col-xxl-offset-7{margin-left:58.33333333%}.t-col-xxl-order-7{order:7}.t-col-xxl-6{display:block;flex:0 0 50%;max-width:50%}.t-col-xxl-push-6{left:50%}.t-col-xxl-pull-6{right:50%}.t-col-xxl-offset-6{margin-left:50%}.t-col-xxl-order-6{order:6}.t-col-xxl-5{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.t-col-xxl-push-5{left:41.66666667%}.t-col-xxl-pull-5{right:41.66666667%}.t-col-xxl-offset-5{margin-left:41.66666667%}.t-col-xxl-order-5{order:5}.t-col-xxl-4{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.t-col-xxl-push-4{left:33.33333333%}.t-col-xxl-pull-4{right:33.33333333%}.t-col-xxl-offset-4{margin-left:33.33333333%}.t-col-xxl-order-4{order:4}.t-col-xxl-3{display:block;flex:0 0 25%;max-width:25%}.t-col-xxl-push-3{left:25%}.t-col-xxl-pull-3{right:25%}.t-col-xxl-offset-3{margin-left:25%}.t-col-xxl-order-3{order:3}.t-col-xxl-2{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.t-col-xxl-push-2{left:16.66666667%}.t-col-xxl-pull-2{right:16.66666667%}.t-col-xxl-offset-2{margin-left:16.66666667%}.t-col-xxl-order-2{order:2}.t-col-xxl-1{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.t-col-xxl-push-1{left:8.33333333%}.t-col-xxl-pull-1{right:8.33333333%}.t-col-xxl-offset-1{margin-left:8.33333333%}.t-col-xxl-order-1{order:1}.t-col-xxl-0{display:none}.t-col-push-0{left:auto}.t-col-pull-0{right:auto}.t-col-xxl-push-0{left:auto}.t-col-xxl-pull-0{right:auto}.t-col-xxl-offset-0{margin-left:0}.t-col-xxl-order-0{order:0}}.t-layout{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-layout,.t-layout__direction-vertical{background:var(--td-bg-color-page);display:flex;flex:auto;flex-direction:column}.t-layout--with-sider,.t-layout__direction-horizontal{flex-direction:row}.t-layout__header{background-color:var(--td-bg-color-container);height:var(--td-comp-size-xxxl)}.t-layout__content{flex:auto}.t-layout__sider{background:var(--td-bg-color-container);position:relative;transition:all .2s;width:232px}.t-layout__footer{color:var(--td-text-color-placeholder);padding:24px}.t-divider{border-top:1px solid var(--td-border-level-1-color);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;margin:var(--td-comp-margin-xxl) 0;padding:0}.t-divider--dashed{border-top-style:dashed}.t-divider--horizontal{display:flex;width:100%}.t-divider--vertical{border-left:1px solid var(--td-border-level-1-color);border-top:0;display:inline-block;height:.9em;margin:0 var(--td-comp-margin-m);vertical-align:middle}.t-divider--with-text{align-items:center;border-top:0;display:flex;white-space:nowrap}.t-divider--with-text .t-divider__inner-text:not(:empty){display:inline-block;padding:0 1em}.t-divider--with-text:after,.t-divider--with-text:before{border-top:1px solid var(--td-border-level-1-color);content:"";width:50%}.t-divider--with-text-left:before{width:5%}.t-divider--with-text-left:after,.t-divider--with-text-right:before{width:95%}.t-divider--with-text-right:after{width:5%}.t-divider--dashed:after,.t-divider--dashed:before{border-top:1px dashed var(--td-border-level-1-color)}.t-divider--vertical.t-divider--dashed{border-left:1px dashed var(--td-border-level-1-color)}.t-space{display:inline-flex}.t-space .t-space-item{width:inherit}.t-space-align-start{align-items:flex-start}.t-space-align-end{align-items:flex-end}.t-space-align-baseline{align-items:baseline}.t-space-align-center{align-items:center}.t-space-vertical{flex-direction:column}.t-space-vertical>.t-space-item-separator{width:100%}.t-space.t-space--break-line{flex-wrap:wrap}.t-space.t-space--polyfill{display:flex}.t-space.t-space--polyfill.t-space--break-line,.t-space.t-space--polyfill.t-space-horizontal{margin-left:calc(var(--td-space-column-gap, 0)*-1)}.t-space.t-space--polyfill.t-space--break-line,.t-space.t-space--polyfill.t-space-vertical{margin-top:calc(var(--td-space-row-gap, 0)*-1)}.t-space.t-space--polyfill.t-space--break-line>*,.t-space.t-space--polyfill.t-space-horizontal>*{margin-left:var(--td-space-column-gap)}.t-space.t-space--polyfill.t-space--break-line>*,.t-space.t-space--polyfill.t-space-vertical>*{margin-top:var(--td-space-row-gap)}.t-descriptions{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-descriptions__header{color:var(--td-text-color-primary);font:var(--td-font-title-medium);font-weight:600;margin-bottom:var(--td-comp-margin-m)}.t-descriptions__body{border-collapse:collapse;font:var(--td-font-body-medium);width:100%}.t-descriptions__body.t-size-l>tbody>tr>td{padding:var(--td-comp-paddingTB-l) 0}.t-descriptions__body.t-size-m>tbody>tr>td{padding:var(--td-comp-paddingTB-m) 0}.t-descriptions__body.t-size-s>tbody>tr>td{padding:var(--td-comp-paddingTB-s) 0}.t-descriptions__body .t-descriptions__label{color:var(--td-text-color-placeholder)}.t-descriptions__body--fixed{table-layout:fixed}.t-descriptions__body--border>tbody>tr>td{border:1px solid var(--td-component-border)}.t-descriptions__body--border.t-size-l>tbody>tr>td{padding:var(--td-comp-paddingTB-l)}.t-descriptions__body--border.t-size-m>tbody>tr>td{padding:var(--td-comp-paddingLR-m) var(--td-comp-paddingLR-l)}.t-descriptions__body--border.t-size-s>tbody>tr>td{padding:var(--td-comp-paddingLR-s) var(--td-comp-paddingLR-l)}.t-descriptions__body--border .t-descriptions__label{background-color:var(--td-bg-color-secondarycontainer)}.t-descriptions__body--border .t-descriptions__label:hover{background-color:var(--td-bg-color-container-hover)}.t-affix{position:fixed;z-index:500}.content-placement-top .t-popup[data-popper-placement^=top] .t-popup__content{margin-bottom:var(--td-comp-margin-s)}.content-placement-top .t-popup[data-popper-placement^=top] .t-popup__content--arrow{margin-bottom:var(--td-comp-margin-l)}.content-placement-bottom .t-popup[data-popper-placement^=bottom] .t-popup__content{margin-top:var(--td-comp-margin-s)}.content-placement-bottom .t-popup[data-popper-placement^=bottom] .t-popup__content--arrow{margin-top:var(--td-comp-margin-l)}.content-placement-left .t-popup[data-popper-placement^=left] .t-popup__content{margin-right:var(--td-comp-margin-s)}.content-placement-left .t-popup[data-popper-placement^=left] .t-popup__content--arrow{margin-right:var(--td-comp-margin-l)}.content-placement-left .t-popup[data-popper-placement^=left] .t-popup__content--text{max-width:480px}.content-placement-right .t-popup[data-popper-placement^=right] .t-popup__content{margin-left:var(--td-comp-margin-s)}.content-placement-right .t-popup[data-popper-placement^=right] .t-popup__content--arrow{margin-left:var(--td-comp-margin-l)}.content-placement-right .t-popup[data-popper-placement^=right] .t-popup__content--text{max-width:480px}.t-popup{box-sizing:border-box;color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;z-index:5500}.t-popup__content{background:var(--td-bg-color-container);border-radius:var(--td-radius-medium);box-shadow:var(--td-shadow-2),var(--td-shadow-inset-top),var(--td-shadow-inset-right),var(--td-shadow-inset-bottom),var(--td-shadow-inset-left);box-sizing:border-box;font-size:var(--td-font-size-body-medium);line-height:var(--td-line-height-body-medium);padding:var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-s);position:relative;word-break:break-all}.t-popup__arrow{height:8px;position:absolute;width:8px;z-index:1}.t-popup__arrow:before{background:var(--td-bg-color-container);content:"";height:8px;position:absolute;transform:rotate(45deg);width:8px}.t-popup[data-popper-placement^=top] .t-popup__content{margin-bottom:var(--td-comp-margin-s)}.t-popup[data-popper-placement^=top] .t-popup__content--arrow{margin-bottom:var(--td-comp-margin-l)}.t-popup[data-popper-placement^=bottom] .t-popup__content{margin-top:var(--td-comp-margin-s)}.t-popup[data-popper-placement^=bottom] .t-popup__content--arrow{margin-top:var(--td-comp-margin-l)}.t-popup[data-popper-placement^=left] .t-popup__content{margin-right:var(--td-comp-margin-s)}.t-popup[data-popper-placement^=left] .t-popup__content--arrow{margin-right:var(--td-comp-margin-l)}.t-popup[data-popper-placement^=left] .t-popup__content--text{max-width:480px}.t-popup[data-popper-placement^=right] .t-popup__content{margin-left:var(--td-comp-margin-s)}.t-popup[data-popper-placement^=right] .t-popup__content--arrow{margin-left:var(--td-comp-margin-l)}.t-popup[data-popper-placement^=right] .t-popup__content--text{max-width:480px}.t-popup[data-popper-placement^=top] .t-popup__arrow:before{border-top-left-radius:100%;box-shadow:var(--td-shadow-inset-left),var(--td-shadow-inset-bottom)}.t-popup[data-popper-placement=top-start] .t-popup__arrow{left:8px}.t-popup[data-popper-placement=top] .t-popup__arrow{left:50%;margin-left:-4px}.t-popup[data-popper-placement=top-end] .t-popup__arrow{left:calc(100% - 16px)}.t-popup[data-popper-placement^=bottom] .t-popup__arrow{top:-4px}.t-popup[data-popper-placement^=bottom] .t-popup__arrow:before{border-bottom-right-radius:100%;box-shadow:var(--td-shadow-inset-top),var(--td-shadow-inset-right)}.t-popup[data-popper-placement=bottom-start] .t-popup__arrow{left:8px}.t-popup[data-popper-placement=bottom] .t-popup__arrow{left:50%;margin-left:-4px}.t-popup[data-popper-placement=bottom-end] .t-popup__arrow{left:calc(100% - 16px)}.t-popup[data-popper-placement^=left] .t-popup__arrow{right:-4px}.t-popup[data-popper-placement^=left] .t-popup__arrow:before{box-shadow:var(--td-shadow-inset-left),var(--td-shadow-inset-top)}.t-popup[data-popper-placement=left-start] .t-popup__arrow{top:8px}.t-popup[data-popper-placement=left] .t-popup__arrow{margin-top:-4px;top:50%}.t-popup[data-popper-placement=left-end] .t-popup__arrow{top:calc(100% - 16px)}.t-popup[data-popper-placement^=right] .t-popup__arrow{left:-4px}.t-popup[data-popper-placement^=right] .t-popup__arrow:before{box-shadow:var(--td-shadow-inset-right),var(--td-shadow-inset-bottom)}.t-popup[data-popper-placement=right-start] .t-popup__arrow{top:8px}.t-popup[data-popper-placement=right] .t-popup__arrow{margin-top:-4px;top:50%}.t-popup[data-popper-placement=right-end] .t-popup__arrow{top:calc(100% - 16px)}.t-popup--animation-enter,.t-popup--animation-enter-from,.t-popup--animation-exiting,.t-popup--animation-leave-to{opacity:0;visibility:hidden}.t-popup--animation-enter-to,.t-popup--animation-entering,.t-popup--animation-leave,.t-popup--animation-leave-from{opacity:1;transform:none;visibility:visible}.t-popup--animation-enter-active{transition:opacity .2s linear}.t-popup--animation-leave-active{transition:opacity .2s cubic-bezier(0,0,.15,1),visibility .2s cubic-bezier(.82,0,1,.9)}.t-popup--animation-expand-enter-active[data-popper-placement^=top]{animation:t-popup-animation-expand-in-top .2s cubic-bezier(.38,0,.24,1),t-fade-in .2s linear}.t-popup--animation-expand-leave-active[data-popper-placement^=top]{animation:t-popup-animation-expand-out-top .2s cubic-bezier(.38,0,.24,1),t-fade-out .2s cubic-bezier(0,0,.15,1)}@keyframes t-popup-animation-expand-in-top{0%{clip-path:polygon(-20% 120%,120% 120%,120% 120%,-20% 120%)}to{clip-path:polygon(-20% 0,120% 0,120% 120%,-20% 120%)}}@keyframes t-popup-animation-expand-out-top{0%{clip-path:polygon(-20% 0,120% 0,120% 120%,-20% 120%)}to{clip-path:polygon(-20% 120%,120% 120%,120% 120%,-20% 120%)}}.t-popup--animation-expand-enter-active[data-popper-placement^=bottom]{animation:t-popup-animation-expand-in-bottom .2s cubic-bezier(.38,0,.24,1),t-fade-in .2s linear}.t-popup--animation-expand-leave-active[data-popper-placement^=bottom]{animation:t-popup-animation-expand-out-bottom .2s cubic-bezier(.38,0,.24,1),t-fade-out .2s cubic-bezier(0,0,.15,1)}@keyframes t-popup-animation-expand-in-bottom{0%{clip-path:polygon(-20% 0,120% 0,120% 0,-20% 0)}to{clip-path:polygon(-20% 0,120% 0,120% 120%,-20% 120%)}}@keyframes t-popup-animation-expand-out-bottom{0%{clip-path:polygon(-20% 0,120% 0,120% 120%,-20% 120%)}to{clip-path:polygon(-20% 0,120% 0,120% 0,-20% 0)}}.t-anchor{--td-anchor-space-base:var(--td-size-6);background:var(--td-bg-color-container);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative;width:200px}.t-anchor .t-is-active>a{color:var(--td-brand-color)}.t-anchor__line{background-color:var(--td-component-stroke);cursor:pointer;height:100%;left:0;position:absolute;top:0;width:1px}.t-anchor__line-cursor-wrapper{display:block;height:0;opacity:0;position:absolute;transition:all .2s cubic-bezier(.24,.41,.51,.9)}.t-anchor__line-cursor-wrapper .t-anchor__line-cursor{background-color:var(--td-brand-color);height:100%;width:1px}.t-anchor__item{--level:1;display:flex;flex-direction:column;padding:var(--td-comp-paddingTB-xxs) var(--td-comp-paddingTB-l);padding-left:calc(var(--level)*var(--td-anchor-space-base))}.t-anchor__item.t-is-active{font-weight:500}.t-anchor__item-link{color:var(--td-text-color-primary);display:inline-block;overflow:hidden;position:relative;text-align:justify;text-decoration:none;word-break:break-all}.t-anchor a{transition:color .2s linear}.t-anchor a:hover{color:var(--td-brand-color);cursor:pointer}.t-anchor a:active{color:var(--td-brand-color-active)}.t-anchor.t-size-s{width:120px}.t-anchor.t-size-l{width:320px}.t-anchor__target{color:var(--td-text-color-primary);cursor:pointer;font:var(--td-font-body-medium)}@keyframes fadeOut{0%{opacity:1}to{display:none;opacity:0}}.t-anchor__target .t-anchor__copy{display:none;margin:0 0 0 var(--td-comp-margin-xs)}.t-anchor__target:hover .t-anchor__copy{display:inline-block}.t-anchor__target:target:after{animation:fadeOut 2s linear 2s 1;animation-fill-mode:forwards;background-color:var(--td-brand-color);border-radius:var(--td-radius-circle);content:"";display:inline-block;height:6px;vertical-align:middle;width:6px}.t-tooltip .t-popup__content{border:0;border-radius:var(--td-radius-medium);box-sizing:border-box;color:var(--td-text-color-primary);display:inline-block;margin-bottom:1px;max-width:480px;word-break:break-word;z-index:5600}.t-tooltip--default .t-popup__content{background:var(--td-gray-color-13);box-shadow:inset 0 .5px 0 var(--td-gray-color-9),inset .5px 0 0 var(--td-gray-color-9),inset 0 -.5px 0 var(--td-gray-color-9),inset -.5px 0 0 var(--td-gray-color-9);color:var(--td-text-color-anti)}.t-tooltip--default[data-popper-placement^=left] .t-popup__arrow:before{box-shadow:inset -.5px 0 0 var(--td-gray-color-9),inset 0 .5px 0 var(--td-gray-color-9)}.t-tooltip--default[data-popper-placement^=right] .t-popup__arrow:before{box-shadow:inset .5px 0 0 var(--td-gray-color-9),inset 0 -.5px 0 var(--td-gray-color-9)}.t-tooltip--default[data-popper-placement^=top] .t-popup__arrow:before{box-shadow:inset 0 -.5px 0 var(--td-gray-color-9),inset -.5px 0 0 var(--td-gray-color-9)}.t-tooltip--default[data-popper-placement^=bottom] .t-popup__arrow:before{box-shadow:inset .5px 0 0 var(--td-gray-color-9),inset 0 .5px 0 var(--td-gray-color-9)}.t-tooltip--primary .t-popup__content{background:var(--td-brand-color-light);color:var(--td-brand-color)}.t-tooltip--success .t-popup__content{background:var(--td-success-color-light);color:var(--td-success-color)}.t-tooltip--danger .t-popup__content{background:var(--td-error-color-light);color:var(--td-error-color)}.t-tooltip--warning .t-popup__content{background:var(--td-warning-color-light);color:var(--td-warning-color)}.t-tooltip .t-popup__arrow{background:inherit;height:auto}.t-tooltip .t-popup__arrow:before{background:inherit}.t-tooltip--noshadow .t-popup__content,.t-tooltip--noshadow[data-popper-placement] .t-popup__arrow:before{box-shadow:none}@keyframes changeColor{0%{color:var(--td-brand-color-hover)}to{color:var(--td-brand-color-active)}}.t-breadcrumb{align-items:center;box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-breadcrumb__separator{align-items:center;display:flex;margin:0 var(--td-comp-margin-xs)}.t-breadcrumb__item,.t-breadcrumb__separator .t-icon{color:var(--td-text-color-placeholder)}.t-breadcrumb__item{align-items:center;display:flex;text-decoration:none}.t-breadcrumb__item.t-is-current{color:var(--td-text-color-primary)}.t-breadcrumb__item.t-is-current .t-icon{color:var(--td-text-color-placeholder)}.t-breadcrumb__item:last-child{color:var(--td-text-color-primary)}.t-breadcrumb__item:last-child .t-breadcrumb__separator{display:none}.t-breadcrumb__item .t-icon{font-size:var(--td-font-size-body-large)}.t-breadcrumb__item .t-link{color:inherit;text-decoration:none}.t-breadcrumb__item .t-link:hover{color:var(--td-brand-color)}.t-breadcrumb__item .t-is-disabled{cursor:not-allowed}.t-breadcrumb__item .t-is-disabled .t-breadcrumb__inner{color:var(--td-text-color-disabled)}.t-breadcrumb__item .t-is-disabled .t-breadcrumb__inner:hover{color:var(--td-text-color-disabled);cursor:not-allowed}.t-breadcrumb__item .t-is-disabled .t-breadcrumb__inner:active{animation:none}.t-breadcrumb__item--arrow,.t-breadcrumb__item--slash{color:var(--td-text-color-placeholder);display:inline-block;line-height:0;margin:0 var(--td-comp-margin-xs);vertical-align:middle}.t-breadcrumb__inner{display:inline-block;font:var(--td-font-body-medium);vertical-align:middle;word-break:break-all}.t-breadcrumb__inner .t-icon{margin:0 var(--td-comp-margin-xs)}.t-breadcrumb__select{position:relative}.t-breadcrumb__select:hover .t-breadcrumb__option{display:block}.t-breadcrumb__select-item:hover .t-icon{color:var(--td-brand-color)}.t-breadcrumb__option{background:var(--td-bg-color-container);box-shadow:var(--td-shadow-2);display:none;left:50%;max-width:120px;position:absolute;top:28px;transform:translateX(-50%);z-index:20}.t-breadcrumb__option-item{color:var(--td-text-color-primary);font:var(--td-font-body-medium);overflow:hidden;padding:8px;text-overflow:ellipsis;white-space:nowrap}.t-breadcrumb__option-item.t-is-active,.t-breadcrumb__option-item:hover{color:var(--td-brand-color)}.t-breadcrumb__inner-msg{background:var(--td-bg-color-container);border-radius:calc(var(--td-radius-default)*.5);bottom:30px;box-shadow:var(--td-shadow-2);color:var(--td-text-color-primary);display:none;left:50%;padding:8px;position:absolute;transform:translateX(-50%);width:300px;z-index:20}.t-breadcrumb__inner-msg:before{border-color:var(--td-bg-color-container) transparent transparent transparent;border-style:solid;border-width:8px 6px 0;bottom:-8px;content:"";height:0;left:50%;margin-left:-4px;position:absolute;width:0;z-index:20}.t-breadcrumb--text-overflow{align-items:center;display:flex;position:relative}.t-breadcrumb--text-overflow:hover .t-breadcrumb__inner-msg{display:block}.t-breadcrumb--text-overflow .t-breadcrumb__inner{align-items:center;display:flex;max-width:120px;transition:color .2s linear}.t-breadcrumb--text-overflow .t-breadcrumb__inner-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-breadcrumb--text-overflow .t-breadcrumb__inner:hover{color:var(--td-brand-color);cursor:pointer}.t-breadcrumb--text-overflow .t-breadcrumb__inner:active{animation:changeColor .2s linear}.t-dropdown{background-color:var(--td-bg-color-container);border:.5px solid var(--td-component-border);box-shadow:var(--td-shadow-2);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);font-size:var(--td-font-size-body-medium);list-style:none;margin:0;padding:0;position:relative}.t-dropdown,.t-dropdown__menu{border-radius:var(--td-radius-medium)}.t-dropdown__menu{display:flex;flex-direction:column;gap:2px;justify-content:flex-start;overflow-x:hidden;overflow-y:auto;padding:var(--td-pop-padding-m)}@-moz-document url-prefix(){.t-dropdown__menu{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-dropdown__menu::-webkit-scrollbar{height:8px;width:8px}.t-dropdown__menu::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid transparent;border-radius:15px}.t-dropdown__menu::-webkit-scrollbar-thumb:horizontal:hover,.t-dropdown__menu::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-dropdown__menu .t-divider{color:var(--td-brand-color-light);margin:var(--td-comp-margin-xs) var(--td-comp-margin-s) var(--td-comp-margin-xxs) var(--td-comp-margin-s);width:calc(100% - var(--td-comp-margin-s)*2)}.t-dropdown__menu .t-dropdown__item-direction{margin:0 0 0 var(--td-comp-margin-s)}.t-dropdown__menu--overflow .t-dropdown__submenu-wrapper--right{left:calc(100% - 14px)}.t-dropdown__menu--overflow .t-dropdown__submenu-wrapper--left{right:calc(100% - 14px)}.t-dropdown__submenu{background-color:var(--td-bg-color-container);border:.5px solid var(--td-component-border);border-radius:var(--td-radius-medium);box-shadow:var(--td-shadow-2);display:none;overflow-x:visible;overflow-y:auto;padding:var(--td-pop-padding-m);position:absolute;z-index:1100}@-moz-document url-prefix(){.t-dropdown__submenu{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-dropdown__submenu::-webkit-scrollbar{height:8px;width:8px}.t-dropdown__submenu::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid transparent;border-radius:15px}.t-dropdown__submenu::-webkit-scrollbar-thumb:horizontal:hover,.t-dropdown__submenu::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-dropdown__submenu ul{box-sizing:border-box;color:var(--td-text-color-primary);display:grid;font:var(--td-font-body-medium);gap:2px;list-style:none;margin:0;padding:0}.t-dropdown__submenu--disabled{visibility:hidden}.t-dropdown__submenu .t-dropdown__item-direction{margin:0 0 0 var(--td-comp-margin-s)}.t-dropdown__submenu-wrapper--right{left:calc(100% - 6px)}.t-dropdown__submenu-wrapper--left{right:calc(100% - 6px)}.t-dropdown__item{--ripple-color:var(--td-bg-color-container-active);align-items:center;border-radius:var(--td-radius-default);box-sizing:border-box;color:var(--td-text-color-primary);cursor:pointer;display:flex;font:var(--td-font-body-medium);list-style:none;margin:0;outline:none;padding:0;padding:calc(var(--td-comp-paddingTB-xs) - 1px) var(--td-comp-paddingLR-s);transition:background-color .2s cubic-bezier(.82,0,1,.9);user-select:none;white-space:nowrap}.t-dropdown__item-icon{color:currentcolor;display:flex;font-size:var(--td-font-size-body-large);margin-right:var(--td-comp-margin-s)}.t-dropdown__item:hover>div>div{display:flex}.t-dropdown__item--disabled{cursor:not-allowed}.t-dropdown__item-content{align-items:center;display:flex;flex:1;justify-content:space-between;max-width:100%}.t-dropdown__item-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-dropdown__item.t-dropdown__item--suffix .t-dropdown__item-sub-icon{color:currentcolor;flex-shrink:0;font-size:var(--td-font-size-body-large)}.t-dropdown__item--theme-default{color:var(--td-text-color-primary)}.t-dropdown__item--theme-default:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-default:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-default.t-dropdown__item--active{background-color:var(--td-brand-color-light);color:var(--td-brand-color)}.t-dropdown__item--theme-default.t-dropdown__item--active:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-default.t-dropdown__item--active:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-default.t-dropdown__item--disabled{color:var(--td-text-color-disabled)}.t-dropdown__item--theme-default.t-dropdown__item--disabled:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-default.t-dropdown__item--suffix:hover{background-color:var(--td-brand-color-light);color:var(--td-brand-color)}.t-dropdown__item--theme-success{color:var(--td-success-color)}.t-dropdown__item--theme-success:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-success:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-success.t-dropdown__item--active{background-color:var(--td-success-color-light)}.t-dropdown__item--theme-success.t-dropdown__item--active:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-success.t-dropdown__item--active:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-success.t-dropdown__item-disabled{color:var(--td-text-color-disabled)}.t-dropdown__item--theme-success.t-dropdown__item-disabled:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-success.t-dropdown__item--suffix:hover{background-color:var(--td-success-color-light)}.t-dropdown__item--theme-error{color:var(--td-error-color)}.t-dropdown__item--theme-error:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-error:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-error.t-dropdown__item--active{background-color:var(--td-error-color-light)}.t-dropdown__item--theme-error.t-dropdown__item--active:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-error.t-dropdown__item--active:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-error.t-dropdown__item--disabled{color:var(--td-text-color-disabled)}.t-dropdown__item--theme-error.t-dropdown__item--disabled:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-error.t-dropdown__item--suffix:hover{background-color:var(--td-error-color-light)}.t-dropdown__item--theme-warning{color:var(--td-warning-color)}.t-dropdown__item--theme-warning:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-warning:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-warning.t-dropdown__item--active{background-color:var(--td-warning-color-light)}.t-dropdown__item--theme-warning.t-dropdown__item--active:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-warning.t-dropdown__item--active:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-warning.t-dropdown__item--disabled{color:var(--td-text-color-disabled)}.t-dropdown__item--theme-warning.t-dropdown__item--disabled:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-warning.t-dropdown__item--suffix:hover{background-color:var(--td-warning-color-light)}.t-tabs{background-color:var(--td-bg-color-container);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;overflow:hidden;padding:0}.t-tabs__header.t-is-left{float:left}.t-tabs__header.t-is-right{float:right}.t-tabs__header .t-icon{font-size:var(--td-font-size-body-large)}.t-tabs__nav{overflow:hidden;position:relative;user-select:none}.t-tabs__operations{background-color:var(--td-bg-color-container);border-bottom:1px solid var(--td-component-stroke);display:flex;flex-direction:row;position:absolute}.t-tabs__operations--left{left:0;z-index:2}.t-tabs__operations--right{right:0;z-index:2}.t-tabs__operations--right .t-tabs__btn:first-child{box-shadow:-10px 0 20px 5px rgba(0,0,0,.05)}.t-tabs__operations--right .t-tabs__nav-action{align-items:center;display:flex;flex:1;width:100%}.t-tabs__btn{align-items:center;background-color:var(--td-bg-color-secondarycontainer);border-left:1px solid var(--td-component-stroke);color:var(--td-text-color-secondary);cursor:pointer;display:flex;font:var(--td-font-body-large);height:100%;justify-content:center;opacity:1;transition:all .24s cubic-bezier(.38,0,.24,1);width:40px;z-index:1}.t-tabs__btn:hover{background-color:var(--td-bg-color-secondarycontainer-hover)}.t-tabs__btn.t-size-m{height:var(--td-comp-size-xxl);line-height:var(--td-comp-size-xxl)}.t-tabs__btn.t-size-l{height:var(--td-comp-size-xxxxl);line-height:var(--td-comp-size-xxxxl)}.t-tabs__btn--left{border-right:1px solid var(--td-component-stroke);box-shadow:10px 0 20px 5px rgba(0,0,0,.05)}.t-tabs__btn--left.fade-enter,.t-tabs__btn--left.fade-enter-from,.t-tabs__btn--left.fade-leave-to{transform:translateX(-50px)}.t-tabs__btn--right.fade-enter,.t-tabs__btn--right.fade-enter-from,.t-tabs__btn--right.fade-leave-to{transform:translateX(50px)}.t-tabs__nav-container{position:relative}.t-tabs__nav-container.t-is-top:after{bottom:0;top:auto}.t-tabs__nav-container.t-is-bottom:after,.t-tabs__nav-container.t-is-top:after{background-color:var(--td-component-stroke);content:"";height:1px;left:0;position:absolute;right:auto;width:100%}.t-tabs__nav-container.t-is-bottom:after{bottom:auto;top:0}.t-tabs__nav-container.t-is-left:after{left:auto;right:0}.t-tabs__nav-container.t-is-left:after,.t-tabs__nav-container.t-is-right:after{background-color:var(--td-component-stroke);bottom:auto;content:"";height:100%;position:absolute;top:0;width:1px}.t-tabs__nav-container.t-is-right:after{left:0;right:auto}.t-tabs__nav-container.t-is-addable{margin-right:40px}.t-tabs__nav-container.t-tabs__nav--card:after{background-color:transparent;content:""}.t-tabs__scroll-btn{background-color:var(--td-bg-color-secondarycontainer);border-bottom:1px solid var(--td-component-stroke);color:var(--td-text-color-secondary);cursor:pointer;display:block;font:var(--td-font-body-large);height:100%;position:absolute;text-align:center;width:40px;z-index:1}.t-tabs__scroll-btn.t-size-m{height:var(--td-comp-size-xxl);line-height:var(--td-comp-size-xxl)}.t-tabs__scroll-btn.t-size-l{height:var(--td-comp-size-xxxxl);line-height:var(--td-comp-size-xxxxl)}.t-tabs__nav-scroll{align-self:stretch;display:inline-block;display:flex;flex:auto;overflow:hidden;position:relative;transform:translate(0);white-space:nowrap;z-index:1}.t-tabs__nav-wrap{display:flex;font-size:0;position:relative}.t-tabs__nav-wrap.t-is-smooth{transition:transform .24s cubic-bezier(0,0,.15,1)}.t-tabs__nav-wrap.t-is-vertical{flex-direction:column}.t-tabs__bar{background-color:var(--td-brand-color);border-radius:var(--td-radius-small);position:absolute;transition:all .24s cubic-bezier(.38,0,.24,1);z-index:1}.t-tabs__bar.t-is-top{bottom:0;height:3px;left:0}.t-tabs__bar.t-is-bottom{height:3px;left:0;top:0}.t-tabs__bar.t-is-left{right:0;top:0;width:3px}.t-tabs__bar.t-is-right{left:0;top:0;width:3px}.t-tabs__nav-item{color:var(--td-text-color-secondary);cursor:pointer;display:inline-flex;flex-shrink:0;font:var(--td-font-body-medium);overflow:hidden;position:relative;z-index:0}.t-tabs__nav-item,.t-tabs__nav-item-wrapper{--ripple-color:var(--td-bg-color-container-active);align-items:center;transition:background-color .2s cubic-bezier(.38,0,.24,1)}.t-tabs__nav-item-wrapper{border-radius:var(--td-radius-default);display:flex;height:var(--td-comp-size-m);margin-left:var(--td-comp-margin-s);margin-right:var(--td-comp-margin-s);padding:0 var(--td-comp-paddingLR-s)}.t-tabs__nav-item.t-size-l{font:var(--td-font-body-large)}.t-tabs__nav-item.t-size-l .t-tabs__nav-item-wrapper{height:var(--td-comp-size-xxl);padding:0 var(--td-comp-paddingLR-m)}.t-tabs__nav-item-text-wrapper{align-items:center;display:flex;position:relative}.t-tabs__nav-item:not(.t-is-disabled):not(.t-is-active):hover .t-tabs__nav-item-wrapper{background-color:var(--td-bg-color-container-hover)}.t-tabs__nav-item.t-is-left,.t-tabs__nav-item.t-is-right{align-items:center;display:flex}.t-tabs__nav-item.t-size-m{height:var(--td-comp-size-xxl);line-height:var(--td-comp-size-xxl)}.t-tabs__nav-item.t-size-l{height:var(--td-comp-size-xxxxl);line-height:var(--td-comp-size-xxxxl)}.t-tabs__nav-item.t-is-active{color:var(--td-brand-color);text-shadow:0 0 .3px currentcolor}.t-tabs__nav-item.t-is-disabled{color:var(--td-text-color-disabled);cursor:not-allowed}.t-tabs__nav-item>.remove-btn{margin-left:var(--td-comp-margin-s);transition:all .3s cubic-bezier(.645,.045,.355,1)}.t-tabs__nav--card{background-color:var(--td-bg-color-secondarycontainer)}.t-tabs__nav--card.t-tabs__nav-item{border-bottom:1px solid var(--td-component-stroke);padding-left:var(--td-comp-paddingLR-l);padding-right:var(--td-comp-paddingLR-l)}.t-tabs__nav--card.t-tabs__nav-item:after{display:none}.t-tabs__nav--card.t-tabs__nav-item:not(.t-is-disabled):not(.t-is-active):hover{background-color:var(--td-bg-color-secondarycontainer-hover)}.t-tabs__nav--card.t-tabs__nav-item:not(:first-of-type){border-left:1px solid var(--td-component-stroke)}.t-tabs__nav--card.t-tabs__nav-item:last-of-type{border-right:1px solid var(--td-component-stroke)}.t-tabs__nav--card.t-tabs__nav-item.t-is-active{background-color:var(--td-bg-color-container);border-bottom-color:var(--td-bg-color-container);color:var(--td-brand-color)}.t-tabs__nav--card.t-tabs__nav-item.t-size-l{padding-left:var(--td-comp-paddingLR-xl);padding-right:var(--td-comp-paddingLR-xl)}.t-tabs__nav--card .t-icon-close{color:var(--td-text-color-secondary);transition:color .2s cubic-bezier(.38,0,.24,1)}.t-tabs__nav--card .t-icon-close:hover{color:var(--td-text-color-primary)}.t-tabs__content{overflow:hidden;position:relative}.t-tab-panel.t-is-hidden{display:none}a.t-menu__item{color:unset;text-decoration:none}a.t-menu__item:active,a.t-menu__item:hover{color:inherit}.t-menu__logo>*{margin-left:var(--td-comp-margin-xxl)}.t-head-menu{background-color:var(--td-bg-color-container);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative;width:100%}.t-head-menu__inner{display:flex;height:var(--td-comp-size-xxxl)}.t-head-menu__inner li+li{margin-left:var(--td-comp-margin-s)}.t-head-menu__inner .t-menu:first-child{margin-left:var(--td-comp-margin-xxl)}.t-head-menu .t-menu__logo:not(:empty){height:100%;margin-right:var(--td-comp-margin-xxxl)}.t-head-menu .t-menu{align-items:center;display:flex;flex:1}.t-head-menu .t-menu__operations:not(:empty){align-items:center;display:flex;height:var(--td-comp-size-xxxl);line-height:64px;margin-right:var(--td-comp-margin-s);overflow:hidden;position:relative;text-align:right}.t-head-menu .t-menu__operations-icon{box-sizing:border-box;height:var(--td-comp-size-m);line-height:var(--td-comp-size-m);padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s);width:var(--td-comp-size-m)}.t-head-menu .t-submenu>.t-menu__item{overflow:unset}.t-head-menu .t-submenu>.t-menu__item:before{bottom:-20px;content:"";display:block;height:20px;left:0;position:absolute;right:0}.t-head-menu .t-menu__item{gap:var(--td-comp-margin-m);height:var(--td-comp-size-m);justify-content:center;line-height:var(--td-comp-size-m);padding:0 var(--td-comp-paddingLR-l);transition:all .28s cubic-bezier(.645,.045,.355,1)}.t-head-menu__submenu{border-top:1px solid var(--td-component-stroke);padding-left:0}.t-default-menu{background:var(--td-bg-color-container);box-sizing:border-box;color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative;transition:width .28s cubic-bezier(.645,.045,.355,1);white-space:nowrap;width:232px}.t-default-menu .t-menu__item{color:var(--td-text-color-secondary)}.t-default-menu.t-is-collapsed{width:64px}.t-default-menu.t-is-collapsed .t-menu__logo>*{margin-left:var(--td-comp-margin-l)}.t-default-menu.t-is-collapsed .t-menu .t-menu__item{justify-content:center;padding:0 14px}.t-default-menu.t-is-collapsed .t-menu .t-menu__item .t-menu__item-link{bottom:0;content:"";left:0;margin-left:0;opacity:0;position:absolute;right:0;top:0}.t-default-menu.t-is-collapsed .t-fake-arrow{display:none}.t-default-menu.t-is-collapsed .t-menu__item{text-overflow:clip}.t-default-menu.t-is-collapsed .t-menu__item.t-is-active.t-is-opened{background-color:var(--td-brand-color-light);color:var(--td-brand-color)}.t-default-menu.t-is-collapsed .t-menu__item.t-is-active.t-is-opened .t-icon{color:var(--td-brand-color)}.t-default-menu.t-is-collapsed .t-menu__item.t-menu__item--plain:after{content:""}.t-default-menu.t-is-collapsed .t-menu__item span{display:none}.t-default-menu.t-is-collapsed .t-menu__item .t-icon{margin-right:0}.t-default-menu.t-is-collapsed .t-submenu-icon{display:none}.t-default-menu.t-is-collapsed .t-submenu>.t-menu__item{min-width:auto}.t-default-menu.t-is-collapsed .t-submenu>.t-menu__item:after{bottom:0;content:"";display:block;position:absolute;right:-20px;top:0;width:20px}.t-default-menu.t-is-collapsed .t-menu-group:first-child .t-menu-group__title{display:none}.t-default-menu.t-is-collapsed .t-menu-group:first-child .t-menu-group__title+*{margin-top:0}.t-default-menu.t-is-collapsed .t-menu-group__title{font-size:0;padding:0}.t-default-menu.t-is-collapsed .t-menu-group__title:after{background:var(--td-component-stroke);content:"";display:block;height:1px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:20px}.t-default-menu.t-is-collapsed .t-menu__operations{text-align:center}.t-default-menu.t-is-collapsed .t-menu__operations-icon{display:block}.t-default-menu.t-is-collapsed .t-menu__log>*{margin:0 auto}.t-default-menu__inner{display:flex;flex-direction:column;height:100%}.t-default-menu__inner .t-menu__logo:not(:empty){border-bottom:1px solid var(--td-component-stroke);box-sizing:border-box;height:var(--td-comp-size-xxxl);width:100%}.t-default-menu__inner .t-menu{flex:1;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-s);position:relative}.t-default-menu__inner .t-menu--scroll{overflow-x:hidden;overflow-y:auto}@-moz-document url-prefix(){.t-default-menu__inner .t-menu--scroll{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-default-menu__inner .t-menu--scroll::-webkit-scrollbar{height:6px;width:6px}.t-default-menu__inner .t-menu--scroll::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-default-menu__inner .t-menu--scroll::-webkit-scrollbar-thumb:horizontal:hover,.t-default-menu__inner .t-menu--scroll::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-default-menu__inner .t-menu .t-menu-group>:not(:first-child),.t-default-menu__inner .t-menu .t-menu__sub>:not(:first-child),.t-default-menu__inner .t-menu .t-submenu>:not(:first-child),.t-default-menu__inner .t-menu>:not(.t-menu-group):not(:first-child){margin-top:var(--td-comp-margin-xs)}.t-default-menu__inner .t-menu-group__title{box-sizing:border-box;color:var(--td-text-color-placeholder);font-size:var(--td-font-body-small);padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l) var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-l);position:relative}.t-default-menu .t-submenu{position:relative}.t-default-menu .t-menu__operations:not(:empty){border-top:1px solid var(--td-component-stroke);box-sizing:border-box;left:0;padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-l);position:relative;text-align:left;top:0;width:100%}.t-default-menu .t-menu__operations-icon{box-sizing:border-box;color:var(--td-text-color-primary);cursor:pointer;height:32px;padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s);width:32px}.t-default-menu .t-menu__item.t-is-opened{background-color:unset;color:var(--td-text-color-primary)}.t-default-menu .t-menu__item.t-is-opened .t-icon{color:var(--td-text-color-primary)}.t-default-menu .t-menu__sub{overflow:hidden;padding:0}.t-default-menu .t-menu__sub .t-menu__item{padding-left:var(--padding-left,32px)}.t-default-menu .t-slide-down-enter-active .t-menu__sub{height:100%}.t-default-menu .t-menu__item{border-bottom:0;border-radius:var(--td-radius-default);box-sizing:border-box;height:var(--td-comp-size-l);line-height:var(--td-comp-size-l);padding:0 10px 0 16px;position:relative;text-align:left;transition:background-color .28s cubic-bezier(.38,0,.24,1),padding .28s cubic-bezier(.38,0,.24,1)}.t-default-menu .t-menu__item .t-icon{flex-shrink:0;height:20px;margin-right:var(--td-comp-margin-s);width:20px}.t-default-menu .t-menu__item .t-fake-arrow{margin-left:auto;min-width:16px}.t-default-menu .t-menu__item.t-is-active:not(.t-is-opened){background-color:var(--td-brand-color-light);color:var(--td-brand-color)}.t-default-menu .t-menu__item.t-is-active:not(.t-is-opened) .t-icon{color:var(--td-brand-color)}.t-default-menu .t-menu__item:hover:not(.t-is-active):not(.t-is-disabled){background:var(--td-bg-color-secondarycontainer-hover)}.t-default-menu.t-menu--dark{background:var(--td-gray-color-13)}.t-default-menu.t-menu--dark .t-menu__item{color:var(--td-font-white-2)}.t-default-menu.t-menu--dark .t-menu__logo:not(:empty){border-bottom-color:var(--td-gray-color-10)}.t-default-menu.t-menu--dark .t-menu__operations:not(:empty){border-top-color:var(--td-gray-color-10)}.t-default-menu.t-menu--dark .t-menu__item:hover:not(.t-is-active):not(.t-is-disabled){background-color:var(--td-gray-color-10)}.t-default-menu.t-menu--dark .t-menu__item.t-is-active:not(.t-is-opened){background-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-default-menu.t-menu--dark .t-menu__item.t-is-active:not(.t-is-opened) .t-icon{color:var(--td-text-color-anti)}.t-default-menu.t-menu--dark .t-menu__item.t-is-opened.t-is-active{background-color:transparent}.t-default-menu.t-menu--dark .t-menu-group__title{color:var(--td-font-white-3)}.t-default-menu.t-menu--dark.t-is-collapsed .t-menu-group__title:after{background-color:var(--td-gray-color-10)}.t-default-menu.t-menu--dark.t-is-collapsed .t-menu__item.t-is-active.t-is-opened{background-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-default-menu.t-menu--dark.t-is-collapsed .t-menu__item.t-is-active.t-is-opened .t-icon{color:var(--td-text-color-anti)}.t-menu{color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-menu--dark{color:var(--td-font-white-2)}.t-menu__logo:not(:empty){align-items:center;display:flex}.t-menu .t-submenu{position:relative}.t-menu .t-submenu.t-is-active>.t-menu__item,.t-menu .t-submenu.t-is-active>.t-menu__item .t-icon{color:var(--td-gray-color-13)}.t-menu .t-submenu .t-submenu-icon{height:16px;width:16px}.t-menu .t-submenu.t-is-opened .t-submenu-icon{transform:scaleY(-1)}.t-menu__spacer:before{content:"";display:block;position:absolute;z-index:1}.t-menu__spacer--left:before{bottom:0;left:-16px;top:0;width:16px}.t-menu__spacer--top:before{height:20px;left:0;right:0;top:-20px}.t-menu__item{--ripple-color:var(--td-bg-color-container-active);align-items:center;border-radius:var(--td-radius-default);color:var(--td-text-color-primary);cursor:pointer;display:flex;height:40px;line-height:40px;position:relative;text-align:center;text-overflow:ellipsis}.t-menu__item ::selection{background:transparent}.t-menu__item-spacer{overflow:unset}.t-menu__item-spacer:before{content:"";display:block;position:absolute;z-index:1}.t-menu__item-spacer--right:before{bottom:0;right:-16px;top:0;width:16px}.t-menu__item-spacer--bottom:before{bottom:-20px;height:20px;left:0;right:0}.t-menu__item a{color:unset;text-decoration:none}.t-menu__item a.t-menu__item-link{color:unset;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-menu__item a.t-menu__item-link:before{bottom:0;content:"";left:0;position:absolute;right:0;top:0}.t-menu__item.t-is-active{background-color:var(--td-brand-color-light)}.t-menu__item.t-is-active,.t-menu__item.t-is-opened{color:var(--td-brand-color)}.t-menu__item:hover:not(.t-is-active):not(.t-is-opened):not(.t-is-disabled){background-color:var(--td-bg-color-container-hover)}.t-menu__item.t-is-disabled{color:var(--td-text-color-disabled);cursor:not-allowed}.t-menu__content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-menu--dark.t-head-menu{background-color:var(--td-gray-color-13)}.t-menu--dark .t-menu__item{--ripple-color:var(--td-gray-color-11);color:var(--td-text-color-anti)}.t-menu--dark .t-menu__item.t-is-active{background-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-menu--dark .t-menu__item.t-is-opened,.t-menu--dark .t-menu__item.t-is-opened .t-icon{color:var(--td-text-color-anti)}.t-menu--dark .t-menu__item.t-is-disabled{color:var(--td-font-white-4)}.t-menu--dark .t-menu__item:hover:not(.t-is-active):not(.t-is-opened):not(.t-is-disabled){background-color:var(--td-gray-color-10)}.t-menu--dark .t-menu__popup{background:var(--td-gray-color-13);border:.5px solid var(--td-gray-color-10)}.t-menu--dark .t-menu__popup .t-menu__item{border-radius:var(--td-radius-default);color:var(--td-text-color-anti)}.t-menu--dark .t-menu__popup .t-menu__item.t-is-active{background-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-menu--dark .t-menu__popup .t-menu__item:hover:not(.t-is-active){background-color:var(--td-gray-color-10)}.t-menu--dark .t-head-menu__submenu{border-top:1px solid transparent}.t-menu--dark .t-menu__operations-icon{color:var(--td-bg-color-container)}.t-menu--dark .t-menu__operations-icon:hover{background-color:var(--td-brand-color)}.t-menu__popup{background:var(--td-bg-color-container);border-radius:var(--td-radius-medium);list-style:none;margin:0;opacity:0;overflow:hidden;padding:0;z-index:1000}.t-menu__popup.t-popup__content{position:absolute}.t-menu__popup-wrapper{height:100%;list-style:none;margin:0;padding:var(--td-pop-padding-m)}@-moz-document url-prefix(){.t-menu__popup-wrapper{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-menu__popup-wrapper::-webkit-scrollbar{height:8px;width:8px}.t-menu__popup-wrapper::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid transparent;border-radius:15px}.t-menu__popup-wrapper::-webkit-scrollbar-thumb:horizontal:hover,.t-menu__popup-wrapper::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-menu__popup .t-fake-arrow{margin-left:auto}.t-menu__popup .t-menu__item{padding-left:var(--td-comp-paddingLR-l);padding-right:var(--td-comp-paddingLR-l)}.t-menu__popup.t-is-vertical{min-width:var(--popup-width,160px)}.t-menu__popup.t-is-horizontal .t-menu__item{white-space:nowrap}.t-menu__popup.t-is-horizontal li+li{margin-top:var(--td-comp-margin-xs)}.t-menu__popup.t-is-opened{box-shadow:0 5px 5px -3px rgba(0,0,0,.1),0 8px 10px 1px rgba(0,0,0,.06),0 3px 14px 6px rgba(0,0,0,.05);opacity:1;overflow:visible}.t-menu__popup .t-menu__item{color:var(--td-text-color-primary);height:var(--td-comp-size-s);line-height:var(--td-comp-size-s)}.t-menu__popup .t-menu__item+.t-menu__item{margin-left:0}.t-menu__popup .t-menu__item:hover:not(.t-is-active){background-color:var(--td-bg-color-container-hover)}.t-menu__popup .t-is-disabled{color:var(--td-text-color-disabled)}.t-menu__operations-icon{border-radius:var(--td-radius-default);color:var(--td-text-color-primary);margin-right:var(--td-comp-margin-l);transition:background-color .24s cubic-bezier(.38,0,.24,1)}.t-menu__operations-icon:hover{background-color:var(--td-brand-color-light)}.t-opacity-transition{transition:opacity .28s cubic-bezier(.55,0,.1,1)}.horizontal-collapse-transition .t-submenu__title .t-submenu__icon-arrow{opacity:0;transition:.2s}.t-menu__popup{left:calc(100% - var(--td-pop-padding-m));top:0}.t-menu__popup .t-menu__item:not(:first-child),.t-menu__popup .t-submenu:not(:first-child){margin-top:var(--td-comp-margin-xxs)}.t-is-head-menu .t-menu__popup{margin-top:calc((var(--td-comp-size-xxxl) - var(--td-comp-size-m))/2)!important}.t-menu-is-nested .t-menu__popup{margin-top:calc(0px - var(--td-pop-padding-m))!important}.input-readonly.t-is-readonly{background-color:var(--td-bg-color-specialcomponent);color:var(--td-text-color-primary)}.input-readonly.t-is-readonly .t-input__inner{cursor:pointer}.input-disabled.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled)}.input-disabled.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.input-disabled.t-is-disabled .t-input__inner{color:var(--td-text-color-disabled);cursor:not-allowed;text-overflow:clip}.input-disabled.t-is-disabled .t-input__inner::placeholder{color:var(--td-text-color-disabled)}.input-disabled.t-is-disabled>.t-input__prefix .t-icon,.input-disabled.t-is-disabled>.t-input__prefix .t-icon:hover,.input-disabled.t-is-disabled>.t-input__suffix .t-icon,.input-disabled.t-is-disabled>.t-input__suffix .t-icon:hover{color:var(--td-text-color-disabled)}.t-tips{font-size:var(--td-font-size-body-small)}.t-tips.t-is-default{color:var(--td-text-color-placeholder)}.t-tips.t-is-error{color:var(--td-error-color)}.t-tips.t-is-warning{color:var(--td-warning-color)}.t-tips.t-is-success{color:var(--td-success-color)}.t-input{align-items:center;background-color:var(--td-bg-color-specialcomponent);border-color:var(--td-border-level-2-color);border-radius:var(--td-radius-default);border-style:solid;border-width:1px;box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);height:var(--td-comp-size-m);list-style:none;margin:0;outline:none;overflow:hidden;padding:0;padding:0 var(--td-comp-paddingLR-s);position:relative;transition:border .2s cubic-bezier(.38,0,.24,1),box-shadow .2s cubic-bezier(.38,0,.24,1),background-color .2s cubic-bezier(.38,0,.24,1);width:100%}.t-input:focus,.t-input:hover{border-color:var(--td-brand-color)}.t-input:focus{box-shadow:0 0 0 2px var(--td-brand-color-focus);z-index:1}.t-input--borderless:not(.t-input--focused){border-color:transparent;transition:border .2s cubic-bezier(.38,0,.24,1),box-shadow .2s cubic-bezier(.38,0,.24,1),background-color .2s cubic-bezier(.38,0,.24,1)}.t-input--borderless:not(.t-input--focused):hover{background-color:var(--td-bg-color-container-hover);border-color:var(--td-component-border);cursor:pointer}.t-input--borderless:not(.t-input--focused).t-is-disabled{background-color:var(--td-bg-color-component-disabled);border:none}.t-input--focused{border-color:var(--td-brand-color);box-shadow:0 0 0 2px var(--td-brand-color-focus);z-index:1}.t-input :focus-visible{outline:none}.t-input__inner{word-wrap:normal;background-color:transparent;border:none;box-sizing:border-box;color:var(--td-text-color-primary);flex:1;font:inherit;max-width:100%;min-width:0;outline:none;overflow:hidden;padding:0;text-overflow:ellipsis;white-space:nowrap}.t-input__inner::placeholder{color:var(--td-text-color-placeholder)}.t-input__inner:placeholder-shown{text-overflow:ellipsis;width:100%}.t-input__inner[type=password]::-ms-reveal{display:none}.t-input__inner[type=search]::-webkit-search-cancel-button,.t-input__inner[type=search]::-webkit-search-decoration,.t-input__inner[type=search]::-webkit-search-results-button,.t-input__inner[type=search]::-webkit-search-results-decoration{appearance:none}.t-input__inner.t-input--soft-hidden{width:0}.t-input__extra{color:var(--td-text-color-placeholder);font:var(--td-font-body-small)}.t-input__status{position:absolute;right:-24px;top:0}.t-input.t-input--suffix>span.t-input__clear{opacity:0;transition:border .2s cubic-bezier(.38,0,.24,1),box-shadow .2s cubic-bezier(.38,0,.24,1),background-color .2s cubic-bezier(.38,0,.24,1);visibility:hidden}.t-input.t-input--suffix:hover>span.t-input__clear{opacity:1;visibility:visible}.t-input.t-is-success{border-color:var(--td-success-color)}.t-input.t-is-success.t-input--focused,.t-input.t-is-success:focus{box-shadow:0 0 0 2px var(--td-success-color-focus)}.t-input.t-is-success>.t-input__extra{color:var(--td-success-color)}.t-input.t-is-warning{border-color:var(--td-warning-color)}.t-input.t-is-warning.t-input--focused,.t-input.t-is-warning:focus{box-shadow:0 0 0 2px var(--td-warning-color-focus)}.t-input.t-is-warning>.t-input__extra{color:var(--td-warning-color)}.t-input.t-is-error{border-color:var(--td-error-color)}.t-input.t-is-error.t-input--focused,.t-input.t-is-error:focus{box-shadow:0 0 0 2px var(--td-error-color-focus)}.t-input.t-is-error>.t-input__extra{color:var(--td-error-color)}.t-input.t-is-readonly{background-color:var(--td-bg-color-specialcomponent);color:var(--td-text-color-primary)}.t-input.t-is-readonly .t-input__inner{cursor:pointer}.t-input.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled)}.t-input.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.t-input.t-is-disabled .t-input__inner{color:var(--td-text-color-disabled);cursor:not-allowed;text-overflow:clip}.t-input.t-is-disabled .t-input__inner::placeholder{color:var(--td-text-color-disabled)}.t-input.t-is-disabled>.t-input__prefix .t-icon,.t-input.t-is-disabled>.t-input__prefix .t-icon:hover,.t-input.t-is-disabled>.t-input__suffix .t-icon,.t-input.t-is-disabled>.t-input__suffix .t-icon:hover{color:var(--td-text-color-disabled)}.t-input.t-input--prefix>.t-input__prefix{align-items:center;display:flex;height:100%;text-align:center;z-index:2}.t-input.t-input--prefix>.t-input__prefix-icon{font-size:var(--td-font-size-body-large)}.t-input.t-input--prefix.t-size-s .t-input__prefix-icon{font-size:var(--td-font-size-body-medium)}.t-input.t-input--prefix.t-size-l .t-input__prefix-icon{font-size:var(--td-font-size-title-large)}.t-input.t-input--suffix>.t-input__suffix{align-items:center;display:flex;height:100%;text-align:center;z-index:2}.t-input.t-input--suffix>.t-input__suffix-icon{font-size:var(--td-font-size-body-large)}.t-input.t-input--suffix.t-size-s .t-input__suffix-icon{font-size:var(--td-font-size-body-medium)}.t-input.t-input--suffix.t-size-l .t-input__suffix-icon{font-size:var(--td-font-size-title-large)}.t-input .t-input__suffix-clear{cursor:pointer}.t-input.t-size-l{font:var(--td-font-body-large);height:var(--td-comp-size-xl);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-m)}.t-input.t-size-s{font:var(--td-font-body-small);height:var(--td-comp-size-xs)}.t-input .t-input__prefix>.t-icon,.t-input .t-input__suffix>.t-icon{font-size:inherit}.t-input .t-input__prefix>.t-icon{color:var(--td-text-color-placeholder)}.t-input .t-input__prefix:not(:empty){margin-right:var(--td-comp-margin-s)}.t-input .t-input__suffix>.t-icon{color:var(--td-text-color-placeholder);transition:all .2s linear}.t-input .t-input__suffix>.t-icon:hover{color:var(--td-text-color-secondary);transition:all .2s linear}.t-input .t-input__suffix:not(:empty){margin-left:var(--td-comp-margin-s)}.t-input.t-is-focused .t-input__prefix>.t-icon,.t-input.t-is-focused .t-input__suffix .t-icon-calendar,.t-input.t-is-focused .t-input__suffix>.t-icon-time{color:var(--td-brand-color)}.t-input-group{align-items:stretch;display:inline-flex;position:relative}.t-input-group .t-input__wrap{border-radius:0}.t-input-group .t-input__wrap:first-child{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-input-group .t-input__wrap:last-child{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-input-group .t-button,.t-input-group .t-select{border-radius:0}.t-input-group .t-button:not(:first-child),.t-input-group .t-input__wrap:not(:first-child) .t-input,.t-input-group .t-select:not(:first-child){margin-left:-1px}.t-input-group .t-input__wrap:first-child .t-input{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-input-group .t-input__wrap:last-child .t-input{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-input-group .t-button:first-child,.t-input-group .t-select:first-child{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-input-group .t-button:last-child,.t-input-group .t-select:last-child{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-input-group--separate .t-input__wrap+.t-input__wrap{margin-left:var(--td-comp-margin-xxxl)}.t-input-group--separate .t-button,.t-input-group--separate .t-select{border-radius:var(--td-radius-default)}.t-input-group--separate .t-button:first-child,.t-input-group--separate .t-select:first-child{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-input-group--separate .t-button:last-child,.t-input-group--separate .t-select:last-child{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-input-group--separate .t-input__wrap .t-input,.t-input-group--separate .t-input__wrap .t-input:first-child,.t-input-group--separate .t-input__wrap .t-input:last-child{border-radius:var(--td-radius-default)}.t-input-group .t-button,.t-input-group .t-input__inner,.t-input-group .t-select{position:relative;z-index:0}.t-input-group .t-button:active,.t-input-group .t-button:focus,.t-input-group .t-button:hover,.t-input-group .t-input__inner:active,.t-input-group .t-input__inner:focus,.t-input-group .t-input__inner:hover,.t-input-group .t-select:active,.t-input-group .t-select:focus,.t-input-group .t-select:hover{z-index:1}.t-input__wrap{width:100%}.t-input__tips{font:var(--td-font-body-small);height:auto;min-height:var(--td-line-height-body-small);position:absolute}.t-input__tips--default{color:var(--td-text-color-placeholder)}.t-input__tips--success{color:var(--td-success-color)}.t-input__tips--warning{color:var(--td-warning-color)}.t-input__tips--error{color:var(--td-error-color)}.t-align-center>.t-input__inner{text-align:center}.t-align-right>.t-input__inner{text-align:right}.t-input__input-pre{display:block;position:absolute;visibility:hidden;white-space:pre}.t-input--auto-width{min-width:60px;width:fit-content}.t-input__limit-number{background:var(--td-bg-color-specialcomponent);color:var(--td-text-color-placeholder);font:var(--td-font-body-medium)}.t-input__limit-number.t-is-disabled{background:var(--td-bg-color-component-disabled)}.t-input-number{box-sizing:border-box;color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;padding:0 var(--td-comp-size-m);position:relative;user-select:none;width:144px}.t-input-number:not(.t-input-number--column)>.t-input-number__decrease+.t-input__wrap{margin-left:var(--td-comp-margin-xs)}.t-input-number input::-webkit-inner-spin-button,.t-input-number input::-webkit-outer-spin-button{appearance:none}.t-input-number input[type=number]{appearance:textfield}.t-input-number>.t-input__tips{left:0;position:absolute}.t-input-number input+.t-input__suffix{margin-left:var(--td-comp-paddingLR-s)}.t-input-number .t-input__prefix{margin-right:var(--td-comp-paddingLR-s)}.t-input-number .t-input{color:var(--td-text-color-primary)}.t-input-number.t-input-number--auto-width{width:auto}.t-input-number.t-input-number--auto-width.t-is-controls-right{min-width:auto;width:auto}.t-input-number.t-input-number--auto-width .t-input__inner{min-width:42px}.t-input-number .t-input-number__decrease,.t-input-number .t-input-number__increase{align-items:center;background-color:transparent;border:1px solid var(--td-border-level-2-color);border-radius:var(--td-radius-default);box-sizing:border-box;cursor:pointer;display:flex;height:var(--td-comp-size-m);justify-content:center;position:absolute;top:0;transition:all .2s cubic-bezier(.38,0,.24,1);width:var(--td-comp-size-m);z-index:1}.t-input-number .t-input-number__decrease:hover,.t-input-number .t-input-number__increase:hover{border-color:var(--td-brand-color);color:var(--td-brand-color)}.t-input-number .t-input-number__decrease:hover .t-icon,.t-input-number .t-input-number__increase:hover .t-icon{color:var(--td-brand-color)}.t-input-number .t-input-number__decrease:active,.t-input-number .t-input-number__increase:active{background-color:var(--td-bg-color-container-hover);color:var(--td-brand-color)}.t-input-number .t-input-number__decrease .t-icon,.t-input-number .t-input-number__increase .t-icon{color:var(--td-text-color-secondary);font-size:var(--td-font-size-body-large);position:relative;z-index:1}.t-input-number .t-input-number__decrease.t-is-disabled,.t-input-number .t-input-number__increase.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:no-drop}.t-input-number .t-input-number__decrease.t-is-disabled .t-icon,.t-input-number .t-input-number__increase.t-is-disabled .t-icon{color:var(--td-text-color-disabled)}.t-input-number .t-input-number__decrease.t-is-disabled:hover,.t-input-number .t-input-number__increase.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.t-input-number .t-input-number__decrease.t-is-disabled:hover .t-icon,.t-input-number .t-input-number__increase.t-is-disabled:hover .t-icon{color:var(--td-text-color-disabled)}.t-input-number .t-input-number__decrease.t-is-disabled::placeholder,.t-input-number .t-input-number__increase.t-is-disabled::placeholder{color:var(--td-text-color-disabled)}.t-input-number .t-input-number__decrease{left:0}.t-input-number .t-input-number__increase{right:-8px}.t-input-number.t-is-disabled .t-input{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:no-drop}.t-input-number.t-is-disabled .t-input:active,.t-input-number.t-is-disabled .t-input:focus,.t-input-number.t-is-disabled .t-input:hover{border-color:var(--td-border-level-2-color)}.t-input-number.t-is-disabled .t-input-number__decrease,.t-input-number.t-is-disabled .t-input-number__increase{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:no-drop}.t-input-number.t-is-disabled .t-input-number__decrease .t-icon,.t-input-number.t-is-disabled .t-input-number__increase .t-icon{color:var(--td-text-color-secondary)}.t-input-number.t-size-s{padding:0 var(--td-comp-size-xs);width:120px}.t-input-number.t-size-s .t-input{font-size:var(--td-font-size-body-small);height:var(--td-comp-size-xs);line-height:var(--td-comp-size-xs)}.t-input-number.t-size-s .t-input-number__decrease,.t-input-number.t-size-s .t-input-number__increase{font-size:var(--td-font-size-body-medium);height:var(--td-comp-size-xs);width:var(--td-comp-size-xs)}.t-input-number.t-size-l{padding:0 var(--td-comp-size-xl);width:168px}.t-input-number.t-size-l .t-input{height:var(--td-comp-size-xl);line-height:var(--td-comp-size-xl)}.t-input-number.t-size-l .t-input-number__decrease,.t-input-number.t-size-l .t-input-number__increase{font-size:18px;height:var(--td-comp-size-xl);width:var(--td-comp-size-xl)}.t-input-number.t-size-l.t-is-controls-right .t-input{height:var(--td-comp-size-xl);line-height:var(--td-comp-size-xl);padding-right:calc(var(--td-comp-size-xl) + var(--td-comp-paddingLR-s))}.t-input-number.t-size-l.t-is-controls-right .t-input-number__decrease,.t-input-number.t-size-l.t-is-controls-right .t-input-number__increase{font-size:var(--td-font-size-body-large);width:var(--td-comp-size-xl)}.t-input-number.t-size-l .t-input--prefix{font:var(--td-font-body-large);padding:0 var(--td-comp-paddingLR-m)}.t-input-number.t-input-number--normal{border-radius:var(--td-radius-default);padding:0}.t-input-number.t-input-number--normal.t-is-disabled{color:var(--td-text-color-disabled);cursor:no-drop}.t-input-number.t-input-number--normal.t-is-disabled:hover .t-input{border-color:var(--td-border-level-2-color)}.t-input-number.t-input-number--normal.t-is-disabled::placeholder{color:var(--td-text-color-disabled)}.t-input-number.t-input-number--normal.t-is-disabled .t-input:focus{box-shadow:none}.t-input-number.t-is-controls-right{padding:0;width:96px}.t-input-number.t-is-controls-right:hover .t-input-number__decrease,.t-input-number.t-is-controls-right:hover .t-input-number__increase{opacity:1;visibility:visible}.t-input-number.t-is-controls-right .t-input{border-radius:var(--td-radius-default);box-sizing:border-box;margin:0;padding-right:calc(var(--td-comp-size-m) + var(--td-comp-paddingLR-s));width:100%}.t-input-number.t-is-controls-right .t-input-number__decrease,.t-input-number.t-is-controls-right .t-input-number__increase{background:var(--td-bg-color-secondarycontainer);border:0;border-radius:0;height:calc(var(--td-comp-size-m)/2 - 2px);left:auto;opacity:0;right:1px;top:auto;visibility:hidden;width:var(--td-comp-size-m);z-index:2}.t-input-number.t-is-controls-right .t-input-number__decrease .t-icon,.t-input-number.t-is-controls-right .t-input-number__increase .t-icon{font-size:var(--td-font-size-body-small)}.t-input-number.t-is-controls-right .t-input-number__decrease:hover,.t-input-number.t-is-controls-right .t-input-number__increase:hover{background:var(--td-bg-color-component-hover)}.t-input-number.t-is-controls-right .t-input-number__decrease:hover .t-icon,.t-input-number.t-is-controls-right .t-input-number__increase:hover .t-icon{color:var(--td-text-color-primary)}.t-input-number.t-is-controls-right .t-input-number__decrease.t-is-disabled,.t-input-number.t-is-controls-right .t-input-number__increase.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:no-drop}.t-input-number.t-is-controls-right .t-input-number__decrease.t-is-disabled .t-icon,.t-input-number.t-is-controls-right .t-input-number__increase.t-is-disabled .t-icon{color:var(--td-text-color-disabled)}.t-input-number.t-is-controls-right .t-input-number__decrease.t-is-disabled:hover,.t-input-number.t-is-controls-right .t-input-number__increase.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.t-input-number.t-is-controls-right .t-input-number__decrease.t-is-disabled:hover .t-icon,.t-input-number.t-is-controls-right .t-input-number__increase.t-is-disabled:hover .t-icon{color:var(--td-text-color-disabled)}.t-input-number.t-is-controls-right .t-input-number__decrease.t-is-disabled::placeholder,.t-input-number.t-is-controls-right .t-input-number__increase.t-is-disabled::placeholder{color:var(--td-text-color-disabled)}.t-input-number.t-is-controls-right .t-input-number__increase{border-top-right-radius:calc(var(--td-radius-default) - 1px);top:1px}.t-input-number.t-is-controls-right .t-input-number__decrease{border-bottom-right-radius:calc(var(--td-radius-default) - 1px);top:calc(var(--td-comp-size-m)/2 + 1px)}.t-input-number.t-is-controls-right.t-size-l{width:120px}.t-input-number.t-is-controls-right.t-size-l .t-input-number__decrease,.t-input-number.t-is-controls-right.t-size-l .t-input-number__increase{height:calc(var(--td-comp-size-xl)/2 - 2px)}.t-input-number.t-is-controls-right.t-size-l .t-input-number__decrease{top:calc(var(--td-comp-size-xl)/2 + 1px)}.t-input-number.t-is-controls-right.t-size-s{width:88px}.t-input-number.t-is-controls-right.t-size-s .t-input-number__decrease,.t-input-number.t-is-controls-right.t-size-s .t-input-number__increase{height:calc(var(--td-comp-size-xs)/2 - 2px)}.t-input-number.t-is-controls-right.t-size-s .t-input-number__decrease{top:calc(var(--td-comp-size-xs)/2 + 1px)}.t-input-number--row .t-input__wrap{margin-right:var(--td-comp-margin-xs);width:auto}.t-input-number--row .t-input-number__increase{right:0}.t-tag{align-items:center;border:1px solid transparent;border-radius:var(--td-radius-default);box-sizing:border-box;color:var(--td-text-color-primary);color:var(--td-text-color-anti);display:inline-flex;flex-direction:row;font:var(--td-font-body-medium);font:var(--td-font-body-small);height:var(--td-comp-size-xs);list-style:none;margin:0;padding:0;padding:0 var(--td-comp-paddingLR-s);white-space:nowrap}.t-tag .t-icon{flex-shrink:0;height:calc(var(--td-font-size-body-medium) + 2px);margin-right:var(--td-comp-margin-xs);width:calc(var(--td-font-size-body-medium) + 2px)}.t-tag .t-tag__icon-close{cursor:pointer;font:var(--td-font-body-medium);margin-left:var(--td-comp-margin-s);margin-right:0;transition:color .2s cubic-bezier(.38,0,.24,1)}.t-tag--default{background-color:var(--td-bg-color-component);color:var(--td-text-color-primary)}.t-tag--default .t-tag__icon-close{color:var(--td-text-color-placeholder)}.t-tag--default .t-tag__icon-close:hover{color:var(--td-text-color-primary)}.t-tag--default:active{cursor:default}.t-tag--default.t-tag--disabled{background-color:var(--td-bg-color-component-disabled);border-color:var(--td-component-border);color:var(--td-text-color-disabled);cursor:not-allowed}.t-tag--default.t-tag--disabled:hover{cursor:not-allowed}.t-tag--default.t-tag--disabled .t-icon:hover{cursor:pointer}.t-tag--default.t-tag--outline{border-color:var(--td-component-border)}.t-tag--default.t-tag--light,.t-tag--default.t-tag--light-outline{background-color:var(--td-bg-color-secondarycontainer)}.t-tag--default.t-tag--light-outline{border-color:var(--td-component-border)}.t-tag--primary{background-color:var(--td-brand-color)}.t-tag--primary.t-tag--outline{border-color:var(--td-brand-color)}.t-tag--primary.t-tag--light,.t-tag--primary.t-tag--light-outline{background-color:var(--td-brand-color-light)}.t-tag--primary.t-tag--light-outline{border-color:var(--td-brand-color)}.t-tag--primary.t-tag--light,.t-tag--primary.t-tag--light-outline,.t-tag--primary.t-tag--outline{color:var(--td-brand-color)}.t-tag--primary.t-tag--light .t-tag__icon-close:hover,.t-tag--primary.t-tag--light-outline .t-tag__icon-close:hover,.t-tag--primary.t-tag--outline .t-tag__icon-close:hover{color:var(--td-brand-color-hover)}.t-tag--success{background-color:var(--td-success-color)}.t-tag--success.t-tag--outline{border-color:var(--td-success-color)}.t-tag--success.t-tag--light,.t-tag--success.t-tag--light-outline{background-color:var(--td-success-color-light)}.t-tag--success.t-tag--light-outline{border-color:var(--td-success-color)}.t-tag--success.t-tag--light,.t-tag--success.t-tag--light-outline,.t-tag--success.t-tag--outline{color:var(--td-success-color)}.t-tag--success.t-tag--light .t-tag__icon-close:hover,.t-tag--success.t-tag--light-outline .t-tag__icon-close:hover,.t-tag--success.t-tag--outline .t-tag__icon-close:hover{color:var(--td-success-color-hover)}.t-tag--warning{background-color:var(--td-warning-color)}.t-tag--warning.t-tag--outline{border-color:var(--td-warning-color)}.t-tag--warning.t-tag--light,.t-tag--warning.t-tag--light-outline{background-color:var(--td-warning-color-light)}.t-tag--warning.t-tag--light-outline{border-color:var(--td-warning-color)}.t-tag--warning.t-tag--light,.t-tag--warning.t-tag--light-outline,.t-tag--warning.t-tag--outline{color:var(--td-warning-color)}.t-tag--warning.t-tag--light .t-tag__icon-close:hover,.t-tag--warning.t-tag--light-outline .t-tag__icon-close:hover,.t-tag--warning.t-tag--outline .t-tag__icon-close:hover{color:var(--td-warning-color-hover)}.t-tag--danger{background-color:var(--td-error-color)}.t-tag--danger.t-tag--outline{border-color:var(--td-error-color)}.t-tag--danger.t-tag--light,.t-tag--danger.t-tag--light-outline{background-color:var(--td-error-color-light)}.t-tag--danger.t-tag--light-outline{border-color:var(--td-error-color)}.t-tag--danger .t-tag__icon-close{fill:var(--td-error-color)}.t-tag--danger .t-tag__icon-close:hover{fill:var(--td-error-color-hover)}.t-tag--danger.t-tag--light,.t-tag--danger.t-tag--light-outline,.t-tag--danger.t-tag--outline{color:var(--td-error-color)}.t-tag--danger.t-tag--light .t-tag__icon-close:hover,.t-tag--danger.t-tag--light-outline .t-tag__icon-close:hover,.t-tag--danger.t-tag--outline .t-tag__icon-close:hover{color:var(--td-error-color-hover)}.t-tag--dark.t-tag:not(.t-tag--default) .t-tag__icon-close{color:var(--td-font-white-2)}.t-tag--dark.t-tag:not(.t-tag--default) .t-tag__icon-close:hover{color:var(--td-font-white-1)}.t-tag.t-tag--outline{background:transparent}.t-tag.t-size-s{font:var(--td-font-body-small);height:var(--td-comp-size-xxs);padding:0 var(--td-comp-paddingLR-xs)}.t-tag.t-size-s .t-icon{font-size:var(--td-font-body-small)}.t-tag.t-size-l{height:var(--td-comp-size-m);padding:0 var(--td-comp-paddingLR-m)}.t-tag.t-size-l,.t-tag.t-size-l .t-icon{font:var(--td-font-body-medium)}.t-tag.t-tag--round{border-radius:var(--td-radius-extraLarge)}.t-tag.t-tag--mark{border-radius:0 var(--td-radius-extraLarge) var(--td-radius-extraLarge) 0}.t-tag.t-tag--ellipsis .t-tag--text{word-wrap:normal;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-tag.t-tag--check:not(.t-tag--disabled){cursor:pointer;transition:background-color .2s cubic-bezier(.38,0,.24,1)}.t-tag.t-tag--check:not(.t-tag--disabled).t-tag--default.t-tag--dark:not(.t-tag--checked):hover{background-color:var(--td-bg-color-component-hover)}.t-tag.t-tag--check:not(.t-tag--disabled).t-tag--primary.t-tag--dark.t-tag--checked:hover{background-color:var(--td-brand-color-hover)}.t-tag.t-tag--check:not(.t-tag--disabled).t-tag--default.t-tag--outline:not(.t-tag--checked):hover{color:var(--td-brand-color-hover)}.t-tag--check.t-tag--disabled.t-tag--primary.t-tag--dark{background-color:var(--td-brand-color-disabled);cursor:not-allowed}.t-tag--check.t-tag--disabled.t-tag--primary.t-tag--outline{background-color:var(--td-bg-color-component-disabled);border-color:var(--td-text-color-disabled);color:var(--td-text-color-disabled);cursor:not-allowed}.t-check-tag-group .t-tag:not(:last-child){margin-right:var(--td-comp-margin-s)}a .t-tag{cursor:pointer;transition:all .2s linear}a .t-tag:hover{background-color:var(--td-bg-color-component-hover);color:var(--td-brand-color)}a .t-tag:active{background-color:var(--td-bg-color-component-active);color:var(--td-brand-color-active)}@keyframes t-fade-in{0%{opacity:0}to{opacity:1}}@keyframes t-fade-out{0%{opacity:1}to{opacity:0}}@keyframes t-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.t-icon-loading{animation:t-spin 1s linear infinite}@keyframes t-zoom-out{0%{transform:scale(.2)}to{transform:scale(1)}}.t-tag-input{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-tag-input .t-tag{animation:t-fade-in .2s ease-in-out;margin:3px var(--td-comp-margin-xs) 3px 0;vertical-align:middle}.t-tag-input .t-tag-input__drag_wrapper+.t-tag-input__drag_wrapper{margin-left:var(--td-comp-margin-xs)}.t-tag-input .t-input{height:fit-content;min-height:var(--td-comp-size-m);overflow:hidden;padding:0 var(--td-comp-paddingLR-s) 0 var(--td-comp-margin-xs)}.t-tag-input .t-input .t-input__suffix-icon{right:var(--td-comp-margin-s)}.t-tag-input .t-input.t-size-s{min-height:var(--td-comp-size-xs);padding:0 var(--td-comp-paddingLR-s) 0 var(--td-comp-margin-xs)}.t-tag-input .t-input.t-size-s .t-tag{margin:1px var(--td-comp-margin-xs) 1px 0}.t-tag-input .t-input.t-size-l{min-height:var(--td-comp-size-xl);padding:0 var(--td-comp-paddingLR-m) 0 var(--td-comp-margin-s)}.t-tag-input .t-input.t-size-l .t-input__suffix-icon{right:var(--td-comp-margin-m)}.t-tag-input.t-is-empty .t-input__inner{margin-left:var(--td-comp-margin-xs)}.t-tag-input .t-input--focused .t-input__inner:not(.t-input--soft-hidden),.t-tag-input:hover .t-input__inner:not(.t-input--soft-hidden){min-width:20px}.t-tag-input .t-tag-input__prefix{line-height:1;margin-left:var(--td-comp-margin-xs)}.t-tag-input .t-tag-input__prefix>.t-icon{color:var(--td-text-color-placeholder)}.t-tag-input .t-input .t-input__prefix:not(:empty){margin-right:0}.t-tag-input.t-input--auto-width .t-input.t-input--focused{padding-right:calc(var(--td-comp-paddingLR-xxl) + var(--td-comp-paddingLR-xxs))}.t-tag-input.t-input--auto-width .t-input__prefix{white-space:nowrap}.t-tag-input .t-input__prefix--scrollable{overflow-x:auto;overflow-y:hidden}@-moz-document url-prefix(){.t-tag-input .t-input__prefix--scrollable{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-tag-input .t-input__prefix--scrollable::-webkit-scrollbar{height:6px;width:6px}.t-tag-input .t-input__prefix--scrollable::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-tag-input .t-input__prefix--scrollable::-webkit-scrollbar-thumb:horizontal:hover,.t-tag-input .t-input__prefix--scrollable::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-tag-input__suffix-clear{cursor:pointer}.t-tag-input--drag-sort .t-input__prefix .t-tag{cursor:move}.t-tag-input--break-line:not(.t-is-empty) .t-input{display:block}.t-tag-input--break-line:not(.t-is-empty) .t-input.t-input--prefix>.t-input__prefix{display:inline;text-align:left}.t-tag-input--break-line:not(.t-is-empty) .t-input .t-input__suffix-icon{bottom:0;position:absolute}.t-tag-input--break-line:not(.t-is-empty) .t-tag-input__prefix{vertical-align:middle}.t-tag-input__prefix{display:inline-block;margin-right:var(--td-comp-margin-s);width:max-content}.t-tag-input--break-line.t-tag-input--with-tag:not(.t-input--auto-width) .t-input,.t-tag-input.t-input--auto-width:hover .t-input{padding-right:calc(var(--td-comp-paddingLR-xxl) + var(--td-comp-paddingLR-xxs))}.t-tag-input--break-line.t-tag-input--with-tag:not(.t-input--auto-width) .t-size-l .t-input,.t-tag-input.t-input--auto-width:hover .t-size-l .t-input{padding-right:calc(var(--td-comp-paddingLR-xxl) + var(--td-comp-paddingLR-xs))}.t-tag-input.t-input--auto-width .t-input{padding-right:0}.t-tag-input--max-rows .t-input{max-height:calc(var(--max-rows, 1)*(var(--td-comp-size-m) - 2px));overflow-y:scroll}.t-tag-input--max-rows .t-input.t-size-s{max-height:calc(var(--max-rows, 1)*var(--td-comp-size-xs))}.t-tag-input--max-rows .t-input.t-size-l{max-height:calc(var(--max-rows, 1)*(var(--td-comp-size-xl) - 2px))}.t-select-input{box-sizing:border-box;color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;vertical-align:middle;width:100%}.t-select-input--multiple .t-input--auto-width.t-tag-input__with-suffix-icon.t-tag-input--with-tag .t-input{padding-right:var(--td-comp-paddingLR-xl)}.t-select-input--multiple .t-input--auto-width.t-tag-input__with-suffix-icon.t-tag-input--with-tag .t-input.t-size-l{padding-right:calc(var(--td-comp-paddingLR-xl) + var(--td-comp-paddingLR-s))}.t-select-input--multiple .t-input--auto-width.t-tag-input__with-suffix-icon.t-is-empty .t-input{padding-right:var(--td-comp-paddingLR-s)}.t-select-input--multiple .t-input--auto-width.t-tag-input__with-suffix-icon.t-is-empty .t-input.t-size-l{padding-right:var(--td-comp-paddingLR-m)}.t-select-input--borderless .t-input{background:transparent;border:1px solid transparent;box-shadow:none;transition:all .2s linear}.t-select-input--borderless .t-input:hover:not(.t-input--focused){background-color:var(--td-bg-color-container-hover);border-color:var(--td-component-border);border-radius:var(--td-radius-default)}.t-select-input--borderless .t-input--focused{background-color:var(--td-bg-color-specialcomponent);border-color:var(--td-brand-color);box-shadow:0 0 0 2px var(--td-brand-color-focus)}.t-select-input--borderless.t-select-input--multiple:not(.t-select-input--empty).t-select-input--popup-visible input{display:inline-block}.t-select-input--borderless.t-select-input--multiple:not(.t-select-input--empty).t-select-input--popup-visible .t-input{background-color:var(--td-bg-color-container-hover)}.t-select-input--borderless.t-tag-input{background:transparent;border:0;box-shadow:none;transition:background-color .2s linear}.t-select-input--borderless.t-tag-input:hover{background-color:var(--td-bg-color-container-hover);border-radius:var(--td-radius-default)}.t-checkbox-group{flex-wrap:wrap;gap:16px}.t-checkbox,.t-checkbox-group{box-sizing:border-box;color:var(--td-text-color-primary);display:inline-flex;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-checkbox{align-items:center;cursor:pointer;position:relative}.t-checkbox+.t-checkbox{margin-left:inherit}.t-checkbox__former{clip:rect(0 0 0 0);appearance:none;border:0;height:1px;margin:-1px;outline:0;overflow:hidden;padding:0;position:absolute;width:1px}.t-checkbox__input{background-color:var(--td-bg-color-container);border:1px solid var(--td-border-level-2-color);border-radius:var(--td-radius-default);box-sizing:border-box;display:inline-block;flex-shrink:0;height:16px;position:relative;vertical-align:middle;width:16px}.t-checkbox__input:after{box-sizing:border-box;content:"";opacity:0;position:absolute}.t-checkbox__label{display:inline-block;font:var(--td-font-body-medium);margin-left:8px;vertical-align:middle}.t-checkbox:hover .t-checkbox__input{border-color:var(--td-brand-color);transition:border-color .2s linear}.t-checkbox.t-is-checked .t-checkbox__input{background-color:var(--td-brand-color);border-color:var(--td-brand-color);transition:background-color .2s cubic-bezier(.82,0,1,.9)}.t-checkbox.t-is-checked .t-checkbox__input:after{background:transparent;border:2px solid var(--td-text-color-anti);border-left:0;border-radius:0 0 1px;border-top:0;height:9px;left:3px;opacity:1;top:6px;transform:rotate(45deg) scale(1) translate(-50%,-50%);width:5px}.t-checkbox.t-is-indeterminate .t-checkbox__input{background-color:var(--td-brand-color);border-color:var(--td-brand-color);transition:background-color .2s cubic-bezier(.82,0,1,.9)}.t-checkbox.t-is-indeterminate .t-checkbox__input:after{background-color:var(--td-font-white-1);border:unset;height:4px;left:-1px;opacity:1;right:0;top:5px;transform:scale(.5);width:16px}.t-checkbox.t-is-disabled{cursor:not-allowed}.t-checkbox.t-is-disabled .t-checkbox__label{color:var(--td-text-color-disabled)}.t-checkbox.t-is-disabled .t-checkbox__input{background-color:var(--td-bg-color-component-disabled)}.t-checkbox.t-is-disabled.t-is-checked .t-checkbox__input,.t-checkbox.t-is-disabled:hover .t-checkbox__input{border-color:var(--td-border-level-2-color)}.t-checkbox.t-is-disabled.t-is-checked .t-checkbox__input:after{border-color:var(--td-text-color-disabled)}.t-checkbox.t-is-disabled.t-is-indeterminate .t-checkbox__input{border-color:var(--td-border-level-2-color)}.t-checkbox.t-is-disabled.t-is-indeterminate .t-checkbox__input:after{background-color:var(--td-text-color-disabled)}.t-checkbox:focus-visible:focus-visible{border-radius:0;outline:2px solid var(--td-brand-color);outline-offset:var(--td-comp-paddingTB-xs)}.t-select__wrap{width:100%}.t-select__dropdown .t-popup__content{box-shadow:var(--td-shadow-2);margin:var(--td-comp-paddingTB-s) 0;max-height:300px;overflow-y:auto;overscroll-behavior:contain;padding:0}@-moz-document url-prefix(){.t-select__dropdown .t-popup__content{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-select__dropdown .t-popup__content::-webkit-scrollbar{height:8px;width:8px}.t-select__dropdown .t-popup__content::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid transparent;border-radius:15px}.t-select__dropdown .t-popup__content::-webkit-scrollbar-thumb:horizontal:hover,.t-select__dropdown .t-popup__content::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-select__dropdown-inner{min-height:var(--td-comp-size-m)}.t-select__dropdown-inner .t-select__list .t-select__list{padding:0}.t-select__dropdown-inner .t-select__list,.t-select__dropdown-inner .t-tree{padding:var(--td-pop-padding-m)}.t-select__dropdown-inner--size-s{min-height:var(--td-comp-size-xs)}.t-select__dropdown-inner--size-s .t-select__list,.t-select__dropdown-inner--size-s .t-tree{padding:var(--td-pop-padding-s)}.t-select__dropdown-inner--size-l{min-height:var(--td-comp-size-xl)}.t-select__dropdown-inner--size-l .t-select__list,.t-select__dropdown-inner--size-l .t-tree{padding:var(--td-pop-padding-l)}.t-select__list{list-style:none;margin:0;padding:0}.t-select__dropdown.t-popup{padding:0}.t-select__empty.t-size-s{line-height:var(--td-comp-size-xs)}.t-select__empty{color:var(--td-text-color-disabled);line-height:var(--td-comp-size-m);padding:0 var(--td-comp-paddingLR-s);text-align:center}.t-select__empty.t-size-l{line-height:var(--td-comp-size-xl)}.t-select__loading-tips.t-size-s{line-height:var(--td-comp-size-xs);min-height:var(--td-comp-size-xs)}.t-select__loading-tips{align-items:center;background-color:var(--td-bg-color-container);border-radius:var(--td-radius-default);bottom:var(--td-comp-paddingTB-s);color:var(--td-text-color-disabled);display:flex;justify-content:center;left:0;line-height:var(--td-comp-size-m);min-height:var(--td-comp-size-m);position:fixed;right:0;top:var(--td-comp-paddingTB-s);z-index:1000}.t-select__loading-tips.t-size-l{line-height:var(--td-comp-size-xl);min-height:var(--td-comp-size-xl)}.t-select-option-group+.t-select-option-group{margin-top:var(--td-comp-margin-xs);padding-top:var(--td-comp-margin-xs)}.t-select-option-group__divider+.t-select-option-group__divider{position:relative}.t-select-option-group__divider+.t-select-option-group__divider:before{background-clip:content-box;background-color:var(--td-border-level-1-color);box-sizing:border-box;content:"";height:1px;left:0;padding:0 var(--td-comp-paddingLR-s);position:absolute;top:0;width:100%}.t-select-option-group__header,ul.t-select-option-group__header{word-wrap:normal;box-sizing:border-box;color:var(--td-text-color-placeholder);display:block;height:var(--td-comp-size-s);line-height:var(--td-comp-size-s);overflow:hidden;padding:0 var(--td-comp-paddingLR-s);text-overflow:ellipsis;white-space:nowrap}.t-select-option-group__header.t-size-l{height:var(--td-comp-size-l);line-height:var(--td-comp-size-l);padding:0 var(--td-comp-paddingLR-m)}.t-select-option-group__header.t-size-s{height:var(--td-comp-size-xxs);line-height:var(--td-comp-size-xxs);padding:0 var(--td-comp-paddingLR-s)}.t-select-option{--ripple-color:var(--td-bg-color-container-active);align-items:center;border-radius:var(--td-radius-default);box-sizing:border-box;color:var(--td-text-color-primary);cursor:pointer;display:flex;font:var(--td-font-body-medium);height:var(--td-comp-size-s);padding:0 var(--td-comp-paddingLR-s);transition:background-color .2s cubic-bezier(.38,0,.24,1)}.t-select-option span{word-wrap:normal;overflow:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap}.t-select-option:not(.t-is-disabled):not(.t-is-selected):hover{background-color:var(--td-bg-color-container-hover)}.t-select-option:not(.t-is-disabled):not(.t-is-selected):hover .t-checkbox__label{color:inherit}.t-select-option:not(.t-is-disabled):not(.t-is-selected):hover .t-checkbox__input{border-color:var(--td-brand-color)}.t-select-option .t-checkbox__label{word-wrap:normal;color:var(--td-text-color-primary);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-select-option .t-checkbox{width:100%}.t-select-option.t-is-disabled{color:var(--td-text-color-disabled);cursor:not-allowed}.t-select-option.t-is-disabled,.t-select-option.t-is-disabled :active,.t-select-option.t-is-disabled:hover{background:var(--td-bg-color-specialcomponent)}.t-select-option.t-size-l{font:var(--td-font-body-large);height:var(--td-comp-size-l);padding:0 var(--td-comp-paddingLR-m)}.t-select-option.t-size-m{font:var(--td-font-body-medium)}.t-select-option.t-size-s{font:var(--td-font-body-small);height:var(--td-comp-size-xxs);padding:0 var(--td-comp-paddingLR-s)}.t-select-option.t-is-selected:not(.t-is-disabled){background-color:var(--td-brand-color-light);color:var(--td-brand-color);transition:all .2s linear}.t-select-option.t-is-selected:not(.t-is-disabled) .t-checkbox__label{color:var(--td-brand-color)}.t-select-option.t-is-selected:not(.t-is-disabled):hover{background-color:var(--td-brand-color-light)}.t-select-option.t-select-option--hover:not(.t-is-disabled).t-select-option.t-select-option--hover:not(.t-is-selected),.t-select-option.t-select-option--hover:not(.t-is-disabled).t-select-option.t-select-option__hover:not(.t-is-selected),.t-select-option.t-select-option__hover:not(.t-is-disabled).t-select-option.t-select-option--hover:not(.t-is-selected),.t-select-option.t-select-option__hover:not(.t-is-disabled).t-select-option.t-select-option__hover:not(.t-is-selected){background-color:var(--td-bg-color-container-hover)}.t-select-option.t-select-option--hover:not(.t-is-disabled).t-select-option.t-select-option--hover:not(.t-is-selected) .t-checkbox__input,.t-select-option.t-select-option--hover:not(.t-is-disabled).t-select-option.t-select-option__hover:not(.t-is-selected) .t-checkbox__input,.t-select-option.t-select-option__hover:not(.t-is-disabled).t-select-option.t-select-option--hover:not(.t-is-selected) .t-checkbox__input,.t-select-option.t-select-option__hover:not(.t-is-disabled).t-select-option.t-select-option__hover:not(.t-is-selected) .t-checkbox__input{border-color:var(--td-brand-color)}.t-select-option.t-select-option--hover .t-checkbox__label,.t-select-option.t-select-option__hover .t-checkbox__label{color:inherit}.t-select-option+.t-select-option{margin-top:var(--td-comp-paddingTB-xxs)}.t-select.t-select-input--borderless .t-select__right-icon{margin:0;position:relative}.t-select .t-fake-arrow{color:var(--td-text-color-placeholder)}.t-select .t-fake-arrow--active{color:var(--td-brand-color)}.t-is-selected.t-select-option__hover{background-color:var(--td-brand-color-light-hover)}.t-is-selected.t-select-option__hover .t-checkbox__label{color:var(--td-brand-color)}.t-input-adornment{box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-input-adornment__append .t-input,.t-input-adornment__append .t-textarea__inner,.t-input-adornment__prepend .t-input,.t-input-adornment__prepend .t-textarea__inner{background-color:transparent}.t-input-adornment__prepend{margin-right:-1px}.t-input-adornment__append,.t-input-adornment__prepend{background-color:var(--td-bg-color-secondarycontainer);color:var(--td-text-color-primary);word-break:keep-all}.t-input-adornment__append{margin-left:-1px}.t-input-adornment__text{align-items:center;border:1px solid var(--td-border-level-2-color);box-sizing:border-box;display:inline-flex;height:100%;padding:0 var(--td-comp-paddingLR-s);white-space:nowrap}.t-input-adornment>:first-child,.t-input-adornment>:first-child .t-input,.t-input-adornment>:first-child .t-input-adornment__text,.t-input-adornment>:first-child .t-textarea__inner{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-input-adornment>:last-child,.t-input-adornment>:last-child .t-input,.t-input-adornment>:last-child .t-input-adornment__text,.t-input-adornment>:last-child .t-textarea__inner{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-input-adornment>:not(:last-child):hover{z-index:2}.t-input-adornment>:not(:first-child):not(:last-child) .t-input,.t-input-adornment>:not(:first-child):not(:last-child) .t-textarea__inner{border-radius:0}.t-pagination-mini{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-pagination-mini--outline .t-pagination-mini__prev{border-bottom-right-radius:0;border-top-right-radius:0;position:relative;z-index:1}.t-pagination-mini--outline .t-pagination-mini__current{border-radius:0;margin-left:-1px;position:relative}.t-pagination-mini--outline .t-pagination-mini__current:hover{z-index:1}.t-pagination-mini--outline .t-pagination-mini__next{border-bottom-left-radius:0;border-top-left-radius:0;margin-left:-1px;position:relative}.t-pagination-mini--outline .t-pagination-mini__next:hover{z-index:1}.t-pagination{align-items:center;box-sizing:border-box;color:var(--td-text-color-primary);color:var(--td-text-color-secondary);display:flex;font:var(--td-font-body-medium);justify-content:flex-end;list-style:none;margin:0;padding:0;user-select:none;white-space:nowrap;width:100%}.t-pagination.t-is-disabled{color:var(--td-text-color-disabled)}.t-pagination__total{flex:1;font:var(--td-font-body-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-pagination .t-select__wrap{width:auto}.t-pagination__select{font-size:var(--td-font-size-body-medium);margin-right:var(--td-comp-margin-l)}.t-pagination__btn,.t-pagination__select{color:var(--td-text-color-secondary);flex-shrink:0;height:var(--td-comp-size-m)}.t-pagination__btn{align-items:center;border-radius:var(--td-radius-default);cursor:pointer;display:inline-flex;font:var(--td-font-body-large);justify-content:center;line-height:var(--td-comp-size-m);width:var(--td-comp-size-m)}.t-pagination__btn:hover{background-color:var(--td-bg-color-secondarycontainer-hover);transition:all .2s cubic-bezier(.82,0,1,.9)}.t-pagination__btn:active{background-color:var(--td-bg-color-secondarycontainer-active)}.t-pagination__btn.t-is-disabled,.t-pagination__btn.t-is-disabled:active,.t-pagination__btn.t-is-disabled:hover{background:none;color:var(--td-text-color-disabled)}.t-pagination__btn.t-is-disabled{cursor:not-allowed}.t-pagination__btn-prev{margin-right:var(--td-comp-margin-s)}.t-pagination__btn-next{margin-left:var(--td-comp-margin-s)}.t-pagination__btn+.t-pagination__select{margin-right:0}.t-pagination__pager{display:inline-flex;flex-shrink:0;list-style:none;margin:0;padding:0;vertical-align:middle}.t-pagination__pager li:not(:last-child){margin-right:var(--td-comp-margin-s)}.t-pagination__number{background-color:var(--td-bg-color-container);border:1px solid var(--td-component-border);border-radius:var(--td-radius-default);box-sizing:border-box;cursor:pointer;display:inline-block;font-size:var(--td-font-body-medium);height:var(--td-comp-size-m);line-height:calc(var(--td-comp-size-m) - 2px);min-width:var(--td-comp-size-m);padding-left:var(--td-comp-paddingLR-xs);padding-right:var(--td-comp-paddingLR-xs);text-align:center}.t-pagination__number:hover{border-color:var(--td-brand-color-hover);color:var(--td-brand-color-hover);transition:all .2s cubic-bezier(.82,0,1,.9)}.t-pagination__number.t-is-current,.t-pagination__number:active{background-color:var(--td-brand-color);border-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-pagination__number.t-is-current.t-is-disabled,.t-pagination__number.t-is-current.t-is-disabled:active,.t-pagination__number.t-is-current.t-is-disabled:hover{background-color:var(--td-brand-color-focus);border-color:var(--td-brand-color-focus);color:var(--td-text-color-anti)}.t-pagination__number.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:auto}.t-pagination__number.t-is-disabled:active,.t-pagination__number.t-is-disabled:hover{background-color:var(--td-bg-color-component-disabled);border-color:var(--td-component-border);color:var(--td-text-color-disabled)}.t-pagination__number--more{border:0;padding:0}.t-pagination__number--more:hover{background-color:var(--td-bg-color-secondarycontainer-hover);color:var(--td-text-color-primary);transition:all .2s cubic-bezier(.82,0,1,.9)}.t-pagination__number--more:active{background-color:var(--td-bg-color-secondarycontainer-active);color:var(--td-text-color-primary)}.t-pagination__number--more.t-is-disabled,.t-pagination__number--more.t-is-disabled:active,.t-pagination__number--more.t-is-disabled:hover{background:none}.t-pagination__number--more .t-icon-more{color:var(--td-text-color-disabled);transform:rotate(90deg)}.t-pagination__jump{align-items:center;background-color:var(--td-bg-color-secondarycontainer);border-radius:var(--td-radius-default);display:inline-flex;flex-shrink:0;font-size:var(--td-font-body-medium);gap:var(--td-comp-margin-s);height:var(--td-comp-size-m);margin-left:var(--td-comp-margin-s);padding-left:var(--td-comp-margin-s)}.t-pagination .t-input-adornment__append{background-color:transparent;border:none;color:var(--td-text-color-secondary);height:calc(var(--td-comp-size-m) - 4px)}.t-pagination .t-input-adornment__append .t-input-adornment__text{border:none}.t-pagination .t-input-number{width:56px}.t-pagination .t-input-number .t-input{border-radius:var(--td-radius-default);height:calc(var(--td-comp-size-m) - 4px)}.t-pagination .t-input-number .t-input__inner{text-align:center}.t-pagination.t-size-s{font:var(--td-font-body-small)}.t-pagination.t-size-s .t-pagination__jump{height:var(--td-comp-size-xs)}.t-pagination.t-size-s .t-input-adornment__append{font:var(--td-font-body-small);height:calc(var(--td-comp-size-xs) - 4px)}.t-pagination.t-size-s .t-input-number{width:48px}.t-pagination.t-size-s .t-input-number .t-input{height:calc(var(--td-comp-size-xs) - 4px)}.t-pagination.t-size-s .t-pagination__total{font:var(--td-font-body-small)}.t-pagination.t-size-s .t-pagination__select{font-size:var(--td-font-size-body-small);height:var(--td-comp-size-xs)}.t-pagination.t-size-s .t-pagination__number{border:0;font-size:var(--td-font-body-small);height:var(--td-comp-size-xs);line-height:var(--td-comp-size-xs);min-width:var(--td-comp-size-xs);padding-left:var(--td-comp-paddingLR-xxs);padding-right:var(--td-comp-paddingLR-xxs)}.t-pagination.t-size-s .t-pagination__number:hover:not(.t-pagination.t-size-s .t-pagination__number.t-is-current){background-color:var(--td-bg-color-secondarycontainer-hover);color:var(--td-text-color-primary);transition:all .2s cubic-bezier(.82,0,1,.9)}.t-pagination.t-size-s .t-pagination__number:active:not(.t-pagination.t-size-s .t-pagination__number.t-is-current){background-color:var(--td-bg-color-secondarycontainer-active);color:var(--td-text-color-primary)}.t-pagination.t-size-s .t-pagination__number.t-is-disabled{background:none;color:var(--td-text-color-disabled)}.t-pagination.t-size-s .t-pagination__number.t-is-current.t-is-disabled{background-color:var(--td-brand-color-focus);border-color:var(--td-brand-color-focus);color:var(--td-text-color-anti)}.t-pagination.t-size-s .t-pagination__btn{background:none;border:0;height:var(--td-comp-size-xs);line-height:var(--td-comp-size-xs);width:var(--td-comp-size-xs)}.t-pagination.t-size-s .t-pagination__btn:hover{background-color:var(--td-bg-color-secondarycontainer-hover);transition:all .2s cubic-bezier(.82,0,1,.9)}.t-pagination.t-size-s .t-pagination__btn:active{background-color:var(--td-bg-color-secondarycontainer-active)}.t-pagination.t-size-s .t-pagination__btn.t-is-disabled,.t-pagination.t-size-s .t-pagination__btn.t-is-disabled:active,.t-pagination.t-size-s .t-pagination__btn.t-is-disabled:hover{background:none;color:var(--td-text-color-disabled)}.t-pagination-ie .t-select .t-input__inner{min-width:54px}.default-step-icon{align-items:center;border-radius:var(--td-radius-circle);display:flex;font-size:var(--td-font-size-body-large);height:22px;justify-content:center;text-align:center;width:22px}.t-steps{box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;width:100%}.t-steps .t-steps-item{display:flex;flex:1;margin-right:var(--td-comp-margin-s);overflow:hidden;position:relative;vertical-align:top}.t-steps .t-steps-item:last-child{flex:none}.t-steps .t-steps-item__inner{display:flex;position:relative;width:fit-content}.t-steps .t-steps-item__inner.t-steps-item--clickable{cursor:pointer}.t-steps .t-steps-item--finish .t-steps-item__icon .t-icon{color:var(--td-brand-color)}.t-steps .t-steps-item--finish .t-steps-item__icon--number{border-color:var(--td-brand-color)}.t-steps .t-steps-item--finish .t-steps-item__title{color:var(--td-text-color-primary);font-weight:400}.t-steps .t-steps-item--finish .t-steps-item__description{color:var(--td-text-color-secondary)}.t-steps .t-steps-item--process .t-steps-item__icon .t-icon{color:var(--td-brand-color)}.t-steps .t-steps-item--process .t-steps-item__icon--number{background-color:var(--td-brand-color);border-color:var(--td-brand-color);color:var(--td-text-color-anti);font-weight:700}.t-steps .t-steps-item--process .t-steps-item__title{color:var(--td-brand-color);font-weight:700}.t-steps .t-steps-item--process .t-steps-item__description{color:var(--td-text-color-secondary)}.t-steps .t-steps-item--error .t-steps-item__icon .t-icon{color:var(--td-error-color)}.t-steps .t-steps-item--error .t-steps-item__icon--number{border-color:var(--td-error-color);color:var(--td-error-color)}.t-steps .t-steps-item--error .t-steps-item__title{color:var(--td-error-color)}.t-steps .t-steps-item--error .t-steps-item__description{color:var(--td-text-color-secondary)}.t-steps .t-steps-item__icon{color:var(--td-text-color-placeholder);font-size:var(--td-font-size-body-medium);margin-right:var(--td-comp-margin-s);vertical-align:top}.t-steps .t-steps-item__icon--number{border:1px solid var(--td-text-color-placeholder);border-radius:var(--td-radius-circle);color:var(--td-text-color-placeholder)}.t-steps .t-steps-item__icon--finish,.t-steps .t-steps-item__icon--number{align-items:center;display:flex;font-size:var(--td-font-size-body-large);height:22px;justify-content:center;text-align:center;width:22px}.t-steps .t-steps-item__icon--finish{border:1px solid var(--td-brand-color);border-radius:var(--td-radius-circle)}.t-steps .t-steps-item__icon--error{align-items:center;border:1px solid var(--td-error-color);border-radius:var(--td-radius-circle);color:#000;display:flex;font-size:var(--td-font-size-body-large);height:22px;justify-content:center;text-align:center;width:22px}.t-steps .t-steps-item__icon>.t-icon{font-size:calc(var(--td-font-size-body-medium) + 10px)}.t-steps .t-steps-item__title{color:var(--td-text-color-placeholder);font-size:var(--td-font-size-body-large);line-height:24px;padding-right:var(--td-comp-margin-s);position:relative}.t-steps .t-steps-item__description{color:var(--td-text-color-placeholder);font-size:var(--td-font-size-body-medium);line-height:22px;margin-bottom:var(--td-comp-margin-xs)}.t-steps--line-separator .t-steps-item:after,.t-steps--line-separator .t-steps-item:before,.t-steps--line-separator .t-steps-item__title:after{border-style:solid}.t-steps--dashed-separator .t-steps-item:after,.t-steps--dashed-separator .t-steps-item:before,.t-steps--dashed-separator .t-steps-item__title:after{border-style:dashed}.t-steps--horizontal.t-steps--default-anchor .t-steps-item__title{margin-bottom:var(--td-comp-margin-xs);width:fit-content}.t-steps--horizontal.t-steps--default-anchor .t-steps-item__icon__number{height:22px;width:22px}.t-steps--horizontal.t-steps--default-anchor .t-steps-item__icon>.t-icon{font-size:calc(var(--td-font-size-body-medium) + 10px)}.t-steps--horizontal.t-steps--default-anchor .t-steps-item:not(:last-child) .t-steps-item__title:after{border-bottom-color:var(--td-text-color-placeholder);border-bottom-width:1px;border-left:0;border-top:0;content:"";display:block;left:100%;position:absolute;top:50%;transform:translateY(-50%);width:9999px}.t-steps--horizontal.t-steps--default-anchor.t-steps--arrow-separator .t-steps-item:not(:last-child):after{align-items:flex-end;border:0;color:var(--td-text-color-placeholder);content:"^";display:inline-flex;flex:1;font-size:var(--td-font-size-body-large);height:24px;justify-content:center;transform:rotate(90deg)}.t-steps--horizontal.t-steps--default-anchor.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--default-anchor .t-steps-item--finish:not(:last-child) .t-steps-item__title:after{border-bottom-color:var(--td-brand-color);border-bottom-width:2px;color:var(--td-brand-color)}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse .t-steps-item:not(:last-child) .t-steps-item__title:after{border-bottom-color:var(--td-text-color-placeholder);border-bottom-width:1px;border-left:0;border-top:0;content:"";display:block;left:100%;position:absolute;top:50%;transform:translateY(-50%);width:9999px}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):after{align-items:flex-end;border:0;color:var(--td-text-color-placeholder);content:"^";display:inline-flex;flex:1;font-size:var(--td-font-size-body-large);height:24px;justify-content:center;transform:rotate(90deg)}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):after{transform:rotate(-90deg)}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after,.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--process:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse .t-steps-item--finish:not(:last-child) .t-steps-item__title:after,.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse .t-steps-item--process:not(:last-child) .t-steps-item__title:after{border-bottom-color:var(--td-brand-color);border-bottom-width:2px;color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item{overflow:visible}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item .t-steps-item__title{margin-bottom:var(--td-comp-margin-xs);padding-right:0}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item--finish .t-steps-item__icon{border-color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item--process .t-steps-item__icon{background:var(--td-brand-color);border-color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item--error .t-steps-item__icon{background:var(--td-error-color);border-color:var(--td-error-color)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item__inner{align-items:center;display:flex;flex-direction:column}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item__icon{border:2px solid var(--td-text-color-placeholder);border-radius:var(--td-radius-circle);box-sizing:border-box;display:block;flex-shrink:0;height:8px;margin-bottom:var(--td-comp-margin-xs);position:relative;width:8px}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item__content{text-align:center;width:140px}.t-steps--horizontal.t-steps--dot-anchor.t-steps--arrow-separator .t-steps-item:not(:last-child):after{align-items:flex-start;border:0;color:var(--td-text-color-placeholder);content:"^";display:inline-flex;flex:1;font-size:var(--td-font-size-body-large);justify-content:center;transform:rotate(90deg)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item:not(:last-child):after{border-bottom-color:var(--td-text-color-placeholder);border-bottom-width:1px;border-left:0;border-top:0;content:"";display:block;left:78px;position:absolute;top:2.5px;width:calc(100% - 16px)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item:not(:last-child):not(.t-steps-item--finish):after{border-color:var(--td-text-color-placeholder)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item--finish:not(:last-child):after{border-bottom-color:var(--td-brand-color);border-bottom-width:2px;color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):after{align-items:flex-start;border:0;color:var(--td-text-color-placeholder);content:"^";display:inline-flex;flex:1;font-size:var(--td-font-size-body-large);justify-content:center;transform:rotate(90deg)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):after{transform:rotate(-90deg)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after,.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--process:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse .t-steps-item:not(:last-child):after{border-bottom-color:var(--td-text-color-placeholder);border-bottom-width:1px;border-left:0;border-top:0;content:"";display:block;left:78px;position:absolute;top:2.5px;width:calc(100% - 16px)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse .t-steps-item:not(:last-child):not(.t-steps-item--finish):after{border-color:var(--td-text-color-placeholder)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse .t-steps-item--finish:not(:last-child):after,.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse .t-steps-item--process:not(:last-child):after{border-bottom-color:var(--td-brand-color);border-bottom-width:2px;color:var(--td-brand-color)}.t-steps--vertical{flex-direction:column;width:fit-content}.t-steps--vertical.t-steps--positive.t-steps--arrow-separator .t-steps-item:not(:last-child):before{align-items:center;border:0;color:var(--td-text-color-placeholder);content:"^";display:flex;font-size:var(--td-font-size-body-large);height:calc(100% - 24px);left:6px;position:absolute;top:24px;transform:rotate(180deg)}.t-steps--vertical.t-steps--positive.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):before{color:var(--td-brand-color)}.t-steps--vertical.t-steps--positive .t-steps-item{margin-bottom:5px;padding-bottom:var(--td-comp-margin-xxl)}.t-steps--vertical.t-steps--positive .t-steps-item:not(:last-child):before{border-left:0;border-right-color:var(--td-text-color-placeholder);border-right-width:1px;border-top:0;content:"";display:block;height:100%;left:11px;position:absolute;top:35px}.t-steps--vertical.t-steps--positive .t-steps-item--finish:not(:last-child):before{border-right-color:var(--td-brand-color);border-right-width:2px;color:var(--td-brand-color)}.t-steps--vertical.t-steps--default-anchor .t-steps-item__content{margin-left:0}.t-steps--vertical.t-steps--default-anchor .t-steps-item__title{margin-bottom:var(--td-comp-margin-xs)}.t-steps--vertical.t-steps--dot-anchor.t-steps--positive.t-steps--arrow-separator .t-steps-item:not(:last-child):before{align-items:center;border:0;color:var(--td-text-color-placeholder);content:"^";display:flex;font-size:var(--td-font-size-body-medium);height:calc(100% - 4px);left:0;position:absolute;top:8px}.t-steps--vertical.t-steps--dot-anchor.t-steps--positive.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):before{color:var(--td-brand-color)}.t-steps--vertical.t-steps--dot-anchor.t-steps--positive .t-steps-item:not(:last-child):before{border-bottom:0;border-left:0;border-right-color:var(--td-text-color-placeholder);border-right-width:1px;content:"";display:block;height:100%;left:3.5px;position:absolute;top:17px}.t-steps--vertical.t-steps--dot-anchor.t-steps--positive .t-steps-item--finish:not(:last-child):before{border-right-color:var(--td-brand-color);border-right-width:2px;color:var(--td-brand-color)}.t-steps--vertical.t-steps--dot-anchor.t-steps--positive .t-steps-item:not(:last-child).t-steps-item--default:before{border-color:var(--td-text-color-placeholder)}.t-steps--vertical.t-steps--dot-anchor .t-steps-item{margin-bottom:0}.t-steps--vertical.t-steps--dot-anchor .t-steps-item .t-steps-item__title{margin-bottom:var(--td-comp-margin-xs)}.t-steps--vertical.t-steps--dot-anchor .t-steps-item--finish .t-steps-item__icon{border-color:var(--td-brand-color)}.t-steps--vertical.t-steps--dot-anchor .t-steps-item--process .t-steps-item__icon{background:var(--td-brand-color);border-color:var(--td-brand-color)}.t-steps--vertical.t-steps--dot-anchor .t-steps-item--error .t-steps-item__icon{background:var(--td-error-color);border-color:var(--td-error-color)}.t-steps--vertical.t-steps--dot-anchor .t-steps-item__icon{border:2px solid var(--td-text-color-placeholder);border-radius:var(--td-radius-circle);box-sizing:border-box;display:block;flex-shrink:0;height:8px;margin-bottom:var(--td-comp-margin-xs);position:relative;top:8px;width:8px}.t-steps--vertical.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):before{align-items:center;border:0;color:var(--td-text-color-placeholder);content:"^";display:flex;font-size:var(--td-font-size-body-large);height:calc(100% - 24px);left:6px;position:absolute;top:24px;transform:rotate(180deg)}.t-steps--vertical.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):before{color:var(--td-brand-color)}.t-steps--vertical.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):before{margin-top:var(--td-comp-margin-xs);transform:rotate(0)}.t-steps--vertical.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):before,.t-steps--vertical.t-steps--reverse.t-steps--arrow-separator .t-steps-item--process:not(:last-child):before{color:var(--td-brand-color)}.t-steps--vertical.t-steps--reverse .t-steps-item{margin-bottom:5px;padding-bottom:var(--td-comp-margin-xxl)}.t-steps--vertical.t-steps--reverse .t-steps-item:not(:last-child):before{border-bottom:0;border-left:0;border-right-color:var(--td-text-color-placeholder);border-right-width:1px;content:"";display:block;height:100%;left:11px;position:absolute;top:35px}.t-steps--vertical.t-steps--reverse .t-steps-item--finish:not(:last-child):before,.t-steps--vertical.t-steps--reverse .t-steps-item--process:not(:last-child):before{border-right-color:var(--td-brand-color);border-right-width:2px;color:var(--td-brand-color)}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor.t-steps--arrow-separator .t-steps-item:not(:last-child):before{align-items:center;border:0;color:var(--td-text-color-placeholder);content:"^";display:flex;font-size:var(--td-font-size-body-medium);height:calc(100% - 4px);left:0;position:absolute;top:8px}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):before,.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor.t-steps--arrow-separator .t-steps-item--process:not(:last-child):before{color:var(--td-brand-color)}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item{margin-bottom:0}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item:not(:last-child):before{border-bottom:0;border-left:0;border-right-color:var(--td-text-color-placeholder);border-right-width:1px;content:"";display:block;height:100%;left:3.5px;position:absolute;top:17px}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item:last-child:before{display:none}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item--finish:not(:last-child):before,.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item--process:not(:last-child):before{border-right-color:var(--td-brand-color);border-right-width:2px;color:var(--td-brand-color)}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item:not(:last-child).t-steps-item--default:before{border-color:var(--td-text-color-placeholder)}.t-sticky-tool{background-color:var(--td-bg-color-container);border:.5px solid var(--td-component-border);box-shadow:var(--td-shadow-3);box-sizing:border-box;opacity:1;position:fixed}.t-sticky-tool-popup-content{box-shadow:var(--td-shadow-3)}.t-sticky-tool .t-sticky-item,.t-sticky-tool-popup-content{color:var(--td-text-color-secondary);font-size:var(--td-font-size-body-small)}.t-sticky-tool .t-sticky-item{margin:var(--td-comp-margin-xs);opacity:1;position:relative;text-align:center;transition:background-color .2s linear}.t-sticky-tool .t-sticky-item:hover{background-color:var(--td-bg-color-container-hover);cursor:pointer}.t-sticky-tool .t-sticky-item--normal{height:var(--td-comp-size-xxxl);width:var(--td-comp-size-xxxl)}.t-sticky-tool .t-sticky-item--normal .t-icon{color:var(--td-text-color-primary);height:24px;margin:var(--td-comp-margin-s) var(--td-comp-margin-l) 0 var(--td-comp-margin-l);width:24px}.t-sticky-tool .t-sticky-item--compact{height:var(--td-comp-size-xl);width:var(--td-comp-size-xl)}.t-sticky-tool .t-sticky-item--compact .t-icon{color:var(--td-text-color-primary);height:24px;margin:var(--td-comp-margin-s);width:24px}.t-sticky-tool .t-sticky-item--square{border-radius:var(--td-radius-default)}.t-sticky-tool .t-sticky-item--round{border-radius:var(--td-radius-circle)}.t-sticky-tool .t-sticky-item .t-sticky-item__label{height:var(--td-comp-size-xxs);line-height:var(--td-comp-size-xxs);margin-top:var(--td-comp-margin-xxs);text-align:center;width:100%}.t-sticky-tool--square{border-radius:var(--td-radius-medium)}.t-sticky-tool--round{border-radius:var(--td-radius-round)}.t-back-top{align-items:center;background-color:transparent;border:.5px solid transparent;box-shadow:var(--td-shadow-3);color:var(--td-text-color-primary);cursor:pointer;display:inline-flex;flex-direction:column;justify-content:center;opacity:0;outline:none;overflow:hidden;position:fixed;touch-action:manipulation;transition:background .2s linear,border .2s linear,color .2s linear,opacity .2s linear,visibility .2s linear;vertical-align:middle;visibility:hidden;white-space:nowrap;z-index:300}.t-back-top__text{font:var(--td-font-body-small);margin-top:var(--td-comp-margin-xxs);text-align:center}.t-back-top__icon{font-size:var(--td-font-headline-small)}.t-back-top.t-size-m .t-back-top__icon{margin-top:2px}.t-back-top--show{opacity:1;visibility:visible}.t-back-top--theme-light{background-color:var(--td-bg-color-container);border-color:var(--td-component-border)}.t-back-top--theme-light:hover{background-color:var(--td-bg-color-container-hover);border-color:var(--td-bg-color-container-hover)}.t-back-top--theme-light .t-back-top__text{color:var(--td-text-color-secondary)}.t-back-top--theme-light .t-back-top__icon{color:var(--td-text-color-primary)}.t-back-top--theme-primary{background-color:var(--td-brand-color);border-color:var(--td-brand-color)}.t-back-top--theme-primary:hover{background-color:var(--td-brand-color-hover);border-color:var(--td-brand-color-hover)}.t-back-top--theme-primary .t-back-top__icon,.t-back-top--theme-primary .t-back-top__text{color:var(--td-text-color-anti)}.t-back-top--theme-dark{background-color:rgba(0,0,0,.9);border-color:rgba(0,0,0,.9)}.t-back-top--theme-dark:hover{background-color:rgba(0,0,0,.6);border-color:rgba(0,0,0,.6)}.t-back-top--theme-dark .t-back-top__icon,.t-back-top--theme-dark .t-back-top__text{color:var(--td-text-color-anti)}.t-back-top.t-size-s{height:var(--td-comp-size-xxl);width:var(--td-comp-size-xxl)}.t-back-top.t-size-s .t-back-top__text{display:none}.t-back-top.t-size-m{height:var(--td-comp-size-xxxxl);width:var(--td-comp-size-xxxxl)}.t-back-top.t-size-m .t-back-top__text{display:block}.t-back-top--circle{border-radius:var(--td-radius-circle)}.t-back-top--square{border-radius:var(--td-radius-medium)}.t-select-option__highlight-item .t-is-highlight{color:var(--td-brand-color)}.t-auto-complete{width:100%}.t-auto-complete .t-input__suffix-clear{display:none}.t-auto-complete:hover .t-input__suffix-clear{display:inline-block}.t-auto-complete__panel--empty{color:var(--td-text-color-disabled);height:var(--td-comp-size-m);line-height:var(--td-comp-size-m);text-align:center}.t-cascader .t-fake-arrow{color:var(--td-text-color-placeholder)}.t-cascader .t-fake-arrow--active{color:var(--td-brand-color)}.t-cascader__popup .t-popup__content{border:.5px solid var(--td-component-border);border-radius:var(--td-radius-medium);box-shadow:var(--td-shadow-2);overflow:hidden;padding:0}.t-cascader__panel{display:flex;height:100%}.t-cascader__panel.t-cascader--normal{height:200px}.t-cascader__panel.t-cascader--multiple{height:280px}.t-cascader__panel--empty{color:var(--td-text-color-disabled);height:var(--td-comp-size-s);line-height:var(--td-comp-size-s);margin:var(--td-pop-padding-m);padding-left:0;text-align:center;width:100%}.t-cascader__panel--empty:hover{background:none;cursor:default}.t-cascader__menu{background:var(--td-bg-color-container);box-sizing:content-box;margin:0;overflow:auto;padding:var(--td-pop-padding-m);width:148px}.t-cascader__menu.t-size-l{padding:var(--td-pop-padding-l)}.t-cascader__menu.t-size-s{padding:var(--td-pop-padding-s)}.t-cascader__menu--segment{border-right:1px solid var(--td-component-stroke)}.t-cascader__menu--filter{min-width:148px;width:auto}.t-cascader__item{--ripple-color:var(--td-bg-color-container-active);align-items:center;border-radius:var(--td-radius-default);color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);height:var(--td-comp-size-s);list-style:none;margin-top:var(--td-comp-margin-xxs);padding:0 var(--td-comp-paddingLR-s);position:relative;transition:background-color .2s cubic-bezier(.82,0,1,.9)}.t-cascader__item.t-size-s{font:var(--td-font-body-small);height:var(--td-comp-size-xs);padding:0 var(--td-comp-paddingLR-s)}.t-cascader__item.t-size-l{font:var(--td-font-body-large);height:var(--td-comp-size-m);padding:0 var(--td-comp-paddingLR-m)}.t-cascader__item.t-is-disabled{background-color:transparent;color:var(--td-text-color-disabled);cursor:not-allowed}.t-cascader__item-icon.t-icon{background:transparent;color:var(--td-text-color-placeholder);font-size:16px;height:100%;margin:0 8px;position:absolute;right:0;top:0}.t-cascader__item-icon.t-loading{color:var(--td-text-color-brand);display:flex}.t-cascader__item.t-is-expanded{background:var(--td-brand-color-light)}.t-cascader__item.t-is-expanded,.t-cascader__item.t-is-expanded .t-icon-chevron-right{color:var(--td-text-color-brand)}.t-cascader__item.t-is-expanded:hover{cursor:pointer}.t-cascader__item:first-child{margin-top:0}.t-cascader__item .t-checkbox{max-width:100%}.t-cascader__item .t-checkbox .t-checkbox__input{flex-shrink:0}.t-cascader__item .t-checkbox .t-checkbox__label{word-wrap:normal;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-cascader__item .t-checkbox .t-checkbox__label .t-cascader__item__label--filter{color:var(--td-text-color-brand)}.t-cascader__item--with-icon .t-cascader__item-label,.t-cascader__item--with-icon .t-checkbox__label{margin-right:16px}.t-cascader__item--leaf .t-checkbox{width:100%}.t-cascader__item-label{display:block;padding:0;position:relative;white-space:nowrap}.t-cascader__item-label--ellipsis{word-wrap:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-cascader__item-label--filter{color:var(--td-text-color-brand)}.t-cascader__item:hover:not(.t-is-expanded):not(.t-is-disabled){background:var(--td-bg-color-container-hover);cursor:pointer}.t-cascader__item.t-is-selected{background:var(--td-brand-color-light);color:var(--td-brand-color)}.t-cascader__item.t-is-selected .t-checkbox__label{color:var(--td-brand-color)}.range-input-disabled.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled)}.range-input-disabled.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.range-input-disabled.t-is-disabled .t-range-input__inner{color:var(--td-text-color-disabled);cursor:not-allowed}.range-input-disabled.t-is-disabled .t-range-input__inner::placeholder{color:var(--td-text-color-disabled)}.range-input-disabled.t-is-disabled>.t-range-input__prefix .t-icon,.range-input-disabled.t-is-disabled>.t-range-input__suffix .t-icon{color:var(--td-text-color-disabled)}.t-range-input{background-color:var(--td-bg-color-specialcomponent);border-color:var(--td-border-level-2-color);border-radius:var(--td-radius-default);border-style:solid;border-width:1px;box-sizing:border-box;color:var(--td-text-color-primary);display:inline-flex;flex-direction:column;font:var(--td-font-body-medium);font-size:var(--td-font-body-medium);gap:4px;height:var(--td-comp-size-m);list-style:none;margin:0;padding:0;padding:var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-s) var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-s);position:relative;transition:all .2s cubic-bezier(.38,0,.24,1);width:100%}.t-range-input:hover{border-color:var(--td-brand-color)}.t-range-input--borderless:not(.t-is-focused){border-color:transparent;transition:all .2s cubic-bezier(.38,0,.24,1)}.t-range-input--borderless:not(.t-is-focused):hover{border-color:var(--td-component-border);cursor:pointer}.t-range-input--borderless:not(.t-is-focused).t-is-disabled{background-color:var(--td-bg-color-component-disabled);border:none}.t-range-input.t-is-focused{border-color:var(--td-brand-color);box-shadow:0 0 0 2px var(--td-brand-color-focus);z-index:1}.t-range-input.t-is-success{border-color:var(--td-success-color)}.t-range-input.t-is-success.t-range-input--focused,.t-range-input.t-is-success:focus{box-shadow:0 0 0 2px var(--td-success-color-focus)}.t-range-input.t-is-success>.t-range-input__extra{color:var(--td-success-color)}.t-range-input.t-is-success>.t-range-input__tips{color:var(--td-success-color);font-size:var(--td-font-size-body-small);margin-left:calc(var(--td-comp-paddingLR-xs)*-1)}.t-range-input.t-is-warning{border-color:var(--td-warning-color)}.t-range-input.t-is-warning.t-range-input--focused,.t-range-input.t-is-warning:focus{box-shadow:0 0 0 2px var(--td-warning-color-focus)}.t-range-input.t-is-warning>.t-range-input__extra{color:var(--td-warning-color)}.t-range-input.t-is-warning>.t-range-input__tips{color:var(--td-warning-color);font-size:var(--td-font-size-body-small);margin-left:calc(var(--td-comp-paddingLR-xs)*-1)}.t-range-input.t-is-error{border-color:var(--td-error-color)}.t-range-input.t-is-error.t-range-input--focused,.t-range-input.t-is-error:focus{box-shadow:0 0 0 2px var(--td-error-color-focus)}.t-range-input.t-is-error>.t-range-input__extra{color:var(--td-error-color)}.t-range-input.t-is-error>.t-range-input__tips{color:var(--td-error-color);font-size:var(--td-font-size-body-small);margin-left:calc(var(--td-comp-paddingLR-xs)*-1)}.t-range-input.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled)}.t-range-input.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.t-range-input.t-is-disabled .t-range-input__inner{color:var(--td-text-color-disabled);cursor:not-allowed}.t-range-input.t-is-disabled .t-range-input__inner::placeholder{color:var(--td-text-color-disabled)}.t-range-input.t-is-disabled>.t-range-input__prefix .t-icon,.t-range-input.t-is-disabled>.t-range-input__suffix .t-icon{color:var(--td-text-color-disabled)}.t-range-input.t-range-input--prefix .t-range-input__prefix,.t-range-input.t-range-input--suffix .t-range-input__suffix{align-items:center;display:flex;font-size:var(--td-font-size-body-medium);height:100%;text-align:center}.t-range-input.t-size-l{font:var(--td-font-body-large);height:var(--td-comp-size-xl);padding-bottom:var(--td-comp-paddingTB-xs);padding-top:var(--td-comp-paddingTB-xs)}.t-range-input.t-size-l .t-input{padding:0 var(--td-comp-margin-s)}.t-range-input.t-size-s{font:var(--td-font-body-small);height:var(--td-comp-size-xs);padding:var(--td-comp-paddingTB-xxs) var(--td-comp-margin-xs)}.t-range-input__inner{align-items:center;display:flex;gap:var(--td-comp-margin-s);height:100%}.t-range-input__inner .t-input__wrap{border-radius:var(--td-radius-small);height:100%}.t-range-input__inner>.t-range-input__prefix{flex-shrink:0}.t-range-input__inner .t-input{border:0;border-radius:var(--td-radius-small);box-shadow:none;font-size:inherit;height:100%;padding:0 var(--td-comp-paddingLR-xs)}.t-range-input__inner .t-input:hover{background-color:var(--td-bg-color-container-hover)}.t-range-input__inner .t-input__inner{height:100%;line-height:1;width:100%}.t-range-input__inner .t-input.t-is-focused{background-color:var(--td-bg-color-component)}.t-range-input__extra{color:var(--td-text-color-placeholder);font:var(--td-font-body-small)}.t-range-input__status{position:absolute;right:calc(0px - var(--td-comp-margin-xxxl));top:0}.t-range-input.t-range-input--suffix .t-input__clear{opacity:0;transition:all .2s cubic-bezier(.38,0,.24,1);visibility:hidden}.t-range-input.t-range-input--suffix:hover .t-input__clear{opacity:1;visibility:visible}.t-range-input .t-range-input__suffix-clear{cursor:pointer}.t-range-input__prefix>.t-icon,.t-range-input__suffix>.t-icon{color:var(--td-text-color-placeholder);flex-shrink:0;font-size:16px;transition:color .2s linear}.t-range-input-popup{width:100%}.t-range-input-popup--visible .t-range-input{border-color:var(--td-brand-color);box-shadow:0 0 0 2px var(--td-brand-color-focus)}.t-range-input-popup--visible .t-range-input .t-icon-calendar,.t-range-input-popup--visible .t-range-input .t-icon-time{color:var(--td-brand-color)}.t-range-input-popup--visible .t-range-input .t-input.t-is-focused{background-color:var(--td-bg-color-component)}.t-date-picker,.t-date-range-picker{box-sizing:border-box;color:var(--td-text-color-primary);display:inline-flex;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-date-picker__header-controller-month-popup>.t-popup__content,.t-date-picker__header-controller-year-popup>.t-popup__content{max-height:160px}.t-date-picker__panel-container>.t-popup__content,.t-date-range-picker__panel-container>.t-popup__content{min-width:280px;padding:0}.t-date-picker__panel,.t-date-range-picker__panel{display:flex;flex-direction:column}.t-date-picker__panel--direction-row,.t-date-range-picker__panel--direction-row{flex-direction:row}.t-date-picker__panel .t-time-picker__panel,.t-date-range-picker__panel .t-time-picker__panel{width:216px}.t-date-picker__panel .t-time-picker__panel-section-body,.t-date-range-picker__panel .t-time-picker__panel-section-body{padding:0}.t-date-picker__panel .t-time-picker__panel-body,.t-date-range-picker__panel .t-time-picker__panel-body{margin:0}.t-date-picker__panel-content,.t-date-range-picker__panel-content,.t-date-range-picker__panel-content-wrapper{display:flex}.t-date-picker__header{align-items:center;display:flex;gap:var(--td-comp-margin-m);justify-content:space-between;width:100%}.t-date-picker__header-controller{display:inline-flex;gap:var(--td-comp-margin-s)}.t-date-picker__header-controller .t-date-picker__header-controller-month{display:flex;width:80px}.t-date-picker__header-controller .t-date-picker__header-controller-year{display:flex;width:78px}.t-date-picker__table table{border-collapse:collapse;width:100%}.t-date-picker__table table th{color:var(--td-text-color-secondary);font-weight:400;text-align:center}.t-date-picker__table table td.t-date-picker__cell{font-weight:500;text-align:center}.t-date-picker__table table td.t-date-picker__cell,.t-date-picker__table table th,.t-date-picker__table table th.t-date-picker__table-header-cell{border:0;line-height:var(--td-line-height-body-medium);padding:0}.t-date-picker__table table thead:after,.t-date-picker__table table thead:before{color:transparent;content:"-";display:block;line-height:var(--td-comp-margin-xs)}.t-date-picker__table-week-row{cursor:pointer;position:sticky}.t-date-picker__table-week-row .t-date-picker__cell:first-child .t-date-picker__cell-inner{color:var(--td-text-color-disabled)}.t-date-picker__table-week-row .t-date-picker__cell:hover .t-date-picker__cell-inner{background:none;box-shadow:none}.t-date-picker__table-week-row:after{border-radius:var(--td-radius-default);content:"";height:var(--td-comp-size-xs);left:var(--td-comp-margin-xxxl);pointer-events:none;position:absolute;right:0;top:calc(var(--td-comp-margin-xs) - 1px);transition:box-shadow .2s cubic-bezier(.38,0,.24,1),background-color .2s linear,border-color .2s linear,color .2s linear;z-index:10}.t-date-picker__table-week-row:hover .t-date-picker__cell:first-child .t-date-picker__cell-inner{color:var(--td-brand-color)}.t-date-picker__table-week-row:hover:after{box-shadow:inset 0 0 0 1px var(--td-brand-color)}.t-date-picker__table-week-row--active:after{background-color:var(--td-brand-color);opacity:1;z-index:0}.t-date-picker__table-week-row--active .t-date-picker__cell:first-child .t-date-picker__cell-inner{color:var(--td-brand-color)}.t-date-picker__table-week-row--active .t-date-picker__cell .t-date-picker__cell-inner{background:transparent;color:var(--td-text-color-anti)}.t-date-picker__table-week-row--range:after{background-color:var(--td-brand-color-light);opacity:1;z-index:0}.t-date-picker__table-week-row--range .t-date-picker__cell .t-date-picker__cell-inner{background:transparent}.t-date-picker__footer{align-items:flex-start;display:flex;gap:var(--td-comp-margin-s);justify-content:space-between;padding:var(--td-pop-padding-xl)}.t-date-picker__footer--bottom{border-top:1px solid var(--td-component-stroke)}.t-date-picker__footer--top{border-bottom:1px solid var(--td-component-stroke)}.t-date-picker__footer--left{border-right:1px solid var(--td-component-stroke);flex-direction:column}.t-date-picker__footer--left .t-date-picker__presets{flex-direction:column}.t-date-picker__footer--right{border-left:1px solid var(--td-component-stroke);flex-direction:column}.t-date-picker__footer--right .t-date-picker__presets{flex-direction:column}.t-date-picker__presets{display:flex;gap:var(--td-comp-margin-s);min-width:var(--td-comp-size-xl);white-space:nowrap}.t-date-picker__presets .t-button{cursor:pointer}.t-date-picker__presets a{color:var(--td-brand-color)}.t-date-picker__presets a:hover{color:var(--td-brand-color-hover)}.t-date-picker__panel-time,.t-date-range-picker__panel-time{border-left:1px solid var(--td-component-stroke);display:flex;flex-direction:column;gap:calc(var(--td-comp-margin-m)/2);padding:var(--td-pop-padding-xl) calc(var(--td-pop-padding-xl) - var(--td-comp-margin-xs))}.t-date-picker__panel-time-viewer,.t-date-range-picker__panel-time-viewer{align-items:center;color:var(--td-text-color-primary);display:flex;height:var(--td-comp-size-m);justify-content:center;line-height:var(--td-line-height-body-medium)}.t-date-picker__panel-time .t-time-picker__panel-body,.t-date-range-picker__panel-time .t-time-picker__panel-body{margin:0}.t-date-picker__panel-date,.t-date-picker__panel-month,.t-date-picker__panel-quarter,.t-date-picker__panel-week,.t-date-picker__panel-year{box-sizing:border-box;display:flex;flex-direction:column;gap:var(--td-comp-margin-m);padding:var(--td-pop-padding-xl);width:280px}.t-date-picker__panel-month .t-date-picker__cell--hover-highlight+.t-date-picker__cell--hover-highlight:after,.t-date-picker__panel-month .t-date-picker__cell--hover-highlight+.t-date-picker__cell--hover-highlight:before,.t-date-picker__panel-year .t-date-picker__cell--hover-highlight+.t-date-picker__cell--hover-highlight:after,.t-date-picker__panel-year .t-date-picker__cell--hover-highlight+.t-date-picker__cell--hover-highlight:before{left:calc(0px - var(--td-comp-size-xs) - var(--td-comp-margin-xxl));opacity:1}.t-date-picker__panel-month .t-date-picker__cell--hover-highlight+.t-date-picker__cell--active:after,.t-date-picker__panel-year .t-date-picker__cell--hover-highlight+.t-date-picker__cell--active:after{left:calc(0px - var(--td-comp-size-xs) - var(--td-comp-margin-xxl));opacity:1;z-index:5}.t-date-picker__panel-month .t-date-picker__cell--highlight+.t-date-picker__cell--highlight:before,.t-date-picker__panel-year .t-date-picker__cell--highlight+.t-date-picker__cell--highlight:before{left:calc(0px - var(--td-comp-size-xs) - var(--td-comp-margin-xxl))}.t-date-picker__panel-month .t-date-picker__header-controller-year,.t-date-picker__panel-quarter .t-date-picker__header-controller-year,.t-date-picker__panel-year .t-date-picker__header-controller-year{display:flex;width:130px}.t-date-picker__panel-month .t-date-picker__table table tbody,.t-date-picker__panel-quarter .t-date-picker__table table tbody,.t-date-picker__panel-year .t-date-picker__table table tbody{display:flex;flex-direction:column;gap:var(--td-comp-margin-m);width:100%}.t-date-picker__panel-month .t-date-picker__table table tbody tr,.t-date-picker__panel-quarter .t-date-picker__table table tbody tr,.t-date-picker__panel-year .t-date-picker__table table tbody tr{display:flex;justify-content:space-between}.t-date-picker__panel-month .t-date-picker__cell--disabled+.t-date-picker__cell--disabled:before,.t-date-picker__panel-quarter .t-date-picker__cell--disabled+.t-date-picker__cell--disabled:before,.t-date-picker__panel-year .t-date-picker__cell--disabled+.t-date-picker__cell--disabled:before{left:calc(0px - var(--td-comp-size-xxxl))}.t-date-picker__panel-month .t-date-picker__cell:first-child,.t-date-picker__panel-quarter .t-date-picker__cell:first-child,.t-date-picker__panel-year .t-date-picker__cell:first-child{text-align:left}.t-date-picker__panel-month .t-date-picker__cell:nth-child(3),.t-date-picker__panel-quarter .t-date-picker__cell:nth-child(3),.t-date-picker__panel-year .t-date-picker__cell:nth-child(3){text-align:right}.t-date-picker__panel-month .t-date-picker__cell-inner,.t-date-picker__panel-quarter .t-date-picker__cell-inner,.t-date-picker__panel-year .t-date-picker__cell-inner{width:var(--td-comp-size-xxl)}.t-date-picker__cell{cursor:pointer;padding:0;position:relative}.t-date-picker__cell:after,.t-date-picker__cell:before{border-radius:var(--td-radius-default);content:"";height:var(--td-comp-size-xs);left:-5%;opacity:0;position:absolute;right:-5%;top:50%;transform:translateY(-50%);transition:opacity .2s cubic-bezier(0,0,.15,1);z-index:1}.t-date-picker__cell:hover .t-date-picker__cell-inner{box-shadow:inset 0 0 0 1px var(--td-brand-color)}.t-date-picker__cell-inner{align-items:center;border-radius:var(--td-radius-default);display:inline-flex;height:var(--td-comp-size-xs);justify-content:center;margin:calc(var(--td-comp-margin-xs) - 1px);position:relative;transition:box-shadow .2s cubic-bezier(.38,0,.24,1),background-color .2s linear,border-color .2s linear,color .2s linear;width:var(--td-comp-size-xs);z-index:5}.t-date-picker__cell--now .t-date-picker__cell-inner{background:var(--td-brand-color-light);color:var(--td-brand-color)}.t-date-picker__cell--highlight:before,.t-date-picker__cell--hover-highlight:after{background-color:var(--td-brand-color-light);opacity:1}.t-date-picker__cell--highlight.t-date-picker__cell--hover-highlight:after{background-color:rgba(0,0,0,.06);opacity:1}.t-date-picker__cell--additional:hover .t-date-picker__cell-inner{background-color:var(--td-bg-color-container-hover);border-color:var(--td-bg-color-container-hover);box-shadow:none}.t-date-picker__cell--additional .t-date-picker__cell-inner{color:var(--td-text-color-disabled)}.t-date-picker__cell--active .t-date-picker__cell-inner{background-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-date-picker__cell--active-start:before{border-bottom-left-radius:var(--td-radius-default);border-top-left-radius:var(--td-radius-default);left:calc(var(--td-comp-margin-xs)*2 - 2px);opacity:1}.t-date-picker__cell--active-start:hover:before{left:-5%}.t-date-picker__cell--active-end:before{border-bottom-right-radius:var(--td-radius-default);border-top-right-radius:var(--td-radius-default);opacity:1;right:calc(var(--td-comp-margin-xs)*2 - 2px)}.t-date-picker__cell--active-end:hover:before{right:-5%}.t-date-picker__cell--disabled:hover .t-date-picker__cell-inner{background-color:var(--td-bg-color-component-disabled);box-shadow:none}.t-date-picker__cell--disabled .t-date-picker__cell-inner{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:not-allowed}.t-date-picker__cell--disabled+.t-date-picker__cell--disabled:before{background-color:var(--td-bg-color-component-disabled);border-radius:var(--td-radius-default);left:calc(0px - var(--td-comp-size-l));opacity:1}.t-date-picker__input--placeholder input{color:var(--td-text-color-placeholder)}.t-form{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;padding:0}.t-form,.t-form:not(.t-form-inline) .t-form__item:last-of-type{margin:0}.t-form__item{margin-bottom:var(--td-comp-margin-xxl)}.t-form__item.t-form__item-with-help{margin-bottom:var(--td-comp-margin-xs)}.t-form__item.t-form__item-with-extra{margin-bottom:var(--td-comp-margin-xxl)}.t-form__label{box-sizing:border-box;color:var(--td-text-color-primary);float:left;line-height:var(--td-comp-margin-xxxl);padding-right:var(--td-comp-paddingLR-xl);vertical-align:middle;white-space:nowrap}.t-form__label--top{float:none;min-height:var(--td-comp-margin-xxxl)}.t-form__label--left{text-align:left}.t-form__label--right{text-align:right}.t-form__label--required:not(.t-form__label--required-right) label:before{color:var(--td-error-color);content:"*";display:inline-block;line-height:var(--td-line-height-body-medium);margin-right:var(--td-comp-margin-xs)}.t-form__label--required-right label:after{color:var(--td-error-color);content:"*";display:inline-block;line-height:var(--td-line-height-body-medium);margin-left:var(--td-comp-margin-xs)}.t-form__label--colon label:after{content:":";margin:0 var(--td-comp-margin-xxs);position:relative}.t-form__controls{display:flow-root;min-height:var(--td-comp-margin-xxxl);position:relative}.t-form__controls-content{align-items:center;display:flex;min-height:var(--td-comp-margin-xxxl)}.t-form__controls .t-form__item{margin-bottom:0;margin-right:var(--td-comp-margin-xxl)}.t-form__controls.t-form--success-border.t-is-success .t-input__extra,.t-form__controls.t-is-success .t-form__status .t-icon,.t-form__controls.t-is-success .t-input__extra{color:var(--td-success-color)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-cascader,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-input,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-radio-button,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-range-input,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-textarea__inner{border-color:var(--td-success-color)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-cascader--focused,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-input--focused,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-radio-button--focused,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-range-input--focused,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select--focused,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-textarea__inner--focused{box-shadow:0 0 0 2px var(--td-success-color-focus)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-cascader .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-cascader .t-icon,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-input .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-input .t-icon,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-radio-button .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-radio-button .t-icon,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-range-input .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-range-input .t-icon,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select .t-icon,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select>.t-select__right-icon:not(.t-select__right-icon-clear),.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-textarea__inner .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-textarea__inner .t-icon{color:var(--td-success-color)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-radio-button:last-child{border-right-color:var(--td-success-color)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-cascader.t-is-active,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select.t-is-active,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-textarea__inner.t-is-focused{box-shadow:0 0 0 2px var(--td-success-color-focus)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-form__status .t-icon{color:var(--td-success-color)}.t-form__status{display:flex;margin:0 var(--td-comp-margin-s)}.t-form__status>.t-icon{font-size:var(--td-comp-size-xxxs)}.t-form__status-without-icon{height:25px;width:25px}.t-form__status button{width:var(--td-comp-size-m)}.t-form__status button+button{margin-left:var(--td-comp-margin-s)}.t-form-inline{display:flex;flex-wrap:wrap;row-gap:var(--td-comp-margin-l)}.t-form-inline .t-form__item{display:inline-block;margin:0;margin-right:var(--td-comp-margin-xxl);min-width:200px}.t-input__extra,.t-input__help{color:var(--td-text-color-placeholder);font:var(--td-font-body-small);height:auto;margin:0;min-height:var(--td-line-height-body-small);width:100%}.t-input__extra{bottom:calc(0px - var(--td-line-height-body-small));max-width:100%;overflow:hidden;position:absolute;text-overflow:ellipsis;white-space:nowrap}.t-is-warning .t-input__extra{color:var(--td-warning-color)}.t-is-warning .t-form__controls-content .t-cascader,.t-is-warning .t-form__controls-content .t-input,.t-is-warning .t-form__controls-content .t-radio-button,.t-is-warning .t-form__controls-content .t-range-input,.t-is-warning .t-form__controls-content .t-select,.t-is-warning .t-form__controls-content .t-textarea__inner{border-color:var(--td-warning-color)}.t-is-warning .t-form__controls-content .t-cascader--focused,.t-is-warning .t-form__controls-content .t-input--focused,.t-is-warning .t-form__controls-content .t-radio-button--focused,.t-is-warning .t-form__controls-content .t-range-input--focused,.t-is-warning .t-form__controls-content .t-select--focused,.t-is-warning .t-form__controls-content .t-textarea__inner--focused{box-shadow:0 0 0 2px var(--td-warning-color-focus)}.t-is-warning .t-form__controls-content .t-cascader .t-fake-arrow,.t-is-warning .t-form__controls-content .t-cascader .t-icon,.t-is-warning .t-form__controls-content .t-input .t-fake-arrow,.t-is-warning .t-form__controls-content .t-input .t-icon,.t-is-warning .t-form__controls-content .t-radio-button .t-fake-arrow,.t-is-warning .t-form__controls-content .t-radio-button .t-icon,.t-is-warning .t-form__controls-content .t-range-input .t-fake-arrow,.t-is-warning .t-form__controls-content .t-range-input .t-icon,.t-is-warning .t-form__controls-content .t-select .t-fake-arrow,.t-is-warning .t-form__controls-content .t-select .t-icon,.t-is-warning .t-form__controls-content .t-select>.t-select__right-icon:not(.t-select__right-icon-clear),.t-is-warning .t-form__controls-content .t-textarea__inner .t-fake-arrow,.t-is-warning .t-form__controls-content .t-textarea__inner .t-icon{color:var(--td-warning-color)}.t-is-warning .t-form__controls-content .t-radio-button:last-child{border-right-color:var(--td-warning-color)}.t-is-warning .t-form__controls-content .t-cascader.t-is-active,.t-is-warning .t-form__controls-content .t-select.t-is-active,.t-is-warning .t-form__controls-content .t-textarea__inner.t-is-focused{box-shadow:0 0 0 2px var(--td-warning-color-focus)}.t-is-warning .t-form__controls-content .t-form__status .t-icon{color:var(--td-warning-color)}.t-is-error .t-input__extra{color:var(--td-error-color)}.t-is-error .t-form__controls-content .t-cascader,.t-is-error .t-form__controls-content .t-input,.t-is-error .t-form__controls-content .t-radio-button,.t-is-error .t-form__controls-content .t-range-input,.t-is-error .t-form__controls-content .t-select,.t-is-error .t-form__controls-content .t-textarea__inner{border-color:var(--td-error-color)}.t-is-error .t-form__controls-content .t-cascader--focused,.t-is-error .t-form__controls-content .t-input--focused,.t-is-error .t-form__controls-content .t-radio-button--focused,.t-is-error .t-form__controls-content .t-range-input--focused,.t-is-error .t-form__controls-content .t-select--focused,.t-is-error .t-form__controls-content .t-textarea__inner--focused{box-shadow:0 0 0 2px var(--td-error-color-focus)}.t-is-error .t-form__controls-content .t-cascader .t-fake-arrow,.t-is-error .t-form__controls-content .t-cascader .t-icon,.t-is-error .t-form__controls-content .t-input .t-fake-arrow,.t-is-error .t-form__controls-content .t-input .t-icon,.t-is-error .t-form__controls-content .t-radio-button .t-fake-arrow,.t-is-error .t-form__controls-content .t-radio-button .t-icon,.t-is-error .t-form__controls-content .t-range-input .t-fake-arrow,.t-is-error .t-form__controls-content .t-range-input .t-icon,.t-is-error .t-form__controls-content .t-select .t-fake-arrow,.t-is-error .t-form__controls-content .t-select .t-icon,.t-is-error .t-form__controls-content .t-select>.t-select__right-icon:not(.t-select__right-icon-clear),.t-is-error .t-form__controls-content .t-textarea__inner .t-fake-arrow,.t-is-error .t-form__controls-content .t-textarea__inner .t-icon{color:var(--td-error-color)}.t-is-error .t-form__controls-content .t-radio-button:last-child{border-right-color:var(--td-error-color)}.t-is-error .t-form__controls-content .t-cascader.t-is-active,.t-is-error .t-form__controls-content .t-select.t-is-active,.t-is-error .t-form__controls-content .t-textarea__inner.t-is-focused{box-shadow:0 0 0 2px var(--td-error-color-focus)}.t-is-error .t-form__controls-content .t-form__status .t-icon{color:var(--td-error-color)}.t-radio-group{align-items:center;border-radius:var(--td-radius-default);box-sizing:border-box;color:var(--td-text-color-primary);display:inline-flex;flex-wrap:wrap;font:var(--td-font-body-medium);list-style:none;margin:0;max-width:100%;padding:0;width:fit-content}@-moz-document url-prefix(){.t-radio-group{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-radio-group::-webkit-scrollbar{height:4px;width:4px}.t-radio-group::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:7px}.t-radio-group::-webkit-scrollbar-thumb:horizontal:hover,.t-radio-group::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-radio-group .t-radio{margin-right:var(--td-comp-margin-xxl)}.t-radio-group.t-radio-group__outline{flex-wrap:wrap;row-gap:var(--td-comp-margin-xs)}.t-radio-group.t-radio-group__outline.t-size-s .t-radio-button{height:var(--td-comp-size-xs)}.t-radio-group.t-radio-group__outline.t-size-m .t-radio-button{height:var(--td-comp-size-m)}.t-radio-group.t-radio-group__outline.t-size-l .t-radio-button{height:var(--td-comp-size-xl)}.t-radio-group.t-radio-group__outline .t-radio-button:first-child{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-radio-group.t-radio-group__outline .t-radio-button:last-child{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-radio-group.t-radio-group__outline .t-radio-button:only-child{border-radius:var(--td-radius-default)}.t-radio-group.t-radio-group__outline .t-radio-button.t-is-checked{color:var(--td-brand-color)}.t-radio-group.t-radio-group__outline .t-radio-button.t-is-disabled.t-is-checked{background-color:var(--td-bg-color-specialcomponent);border-color:var(--td-brand-color-disabled);color:var(--td-brand-color-disabled)}.t-radio-group.t-radio-group--filled{background-color:var(--td-bg-color-component);border-color:var(--td-bg-color-component);border-radius:var(--td-radius-default);padding:var(--td-comp-paddingTB-xxs) var(--td-comp-paddingLR-xxs);position:relative}.t-radio-group.t-radio-group--filled .t-radio-group__bg-block{background-color:var(--td-bg-color-container-select);border-radius:var(--td-radius-small);height:calc(100% - 4px);left:2px;position:absolute;top:2px;transition:all .2s cubic-bezier(.38,0,.24,1);width:0}.t-radio-group.t-radio-group--filled .t-radio-button{background-color:transparent;border:0;color:var(--td-text-color-secondary)}.t-radio-group.t-radio-group--filled .t-radio-button:hover{color:var(--td-text-color-primary)}.t-radio-group.t-radio-group--filled .t-radio-button:before{background-color:var(--td-component-border);content:"";height:calc(100% - 16px);left:0;position:absolute;top:50%;transform:translateY(-50%);transition:opacity .2s cubic-bezier(0,0,.15,1);width:1px}.t-radio-group.t-radio-group--filled .t-radio-button:first-child:before{opacity:0}.t-radio-group.t-radio-group--filled .t-radio-button.t-is-checked{border:0;color:var(--td-text-color-primary);position:relative;transition:color .2s linear;z-index:1}.t-radio-group.t-radio-group--filled .t-radio-button.t-is-checked+label:before,.t-radio-group.t-radio-group--filled .t-radio-button.t-is-checked:before{opacity:0}.t-radio-group.t-radio-group--filled .t-radio-button.t-is-disabled{background-color:transparent}.t-radio-group.t-radio-group--filled .t-radio-button.t-is-disabled.t-is-checked{color:var(--td-text-color-disabled)}.t-radio-group.t-radio-group--filled .t-radio-button.t-is-disabled.t-is-checked~.t-radio-group__bg-block{background-color:var(--td-bg-color-component-disabled)}.t-radio-group.t-radio-group--primary-filled .t-radio-group__bg-block{background-color:var(--td-brand-color)}.t-radio-group.t-radio-group--primary-filled .t-radio-button.t-is-checked,.t-radio-group.t-radio-group--primary-filled .t-radio-button.t-is-disabled.t-is-checked{color:var(--td-text-color-anti)}.t-radio-group.t-radio-group--primary-filled .t-radio-button.t-is-disabled.t-is-checked~.t-radio-group__bg-block{background-color:var(--td-brand-color-disabled)}.t-radio-group.t-size-s .t-radio-button{font:var(--td-font-body-small);height:calc(var(--td-comp-size-xs) - var(--td-comp-paddingTB-xxs)*2);padding:0 var(--td-comp-paddingLR-s)}.t-radio-group.t-size-s .t-radio-button:before{height:calc(100% - 16px)}.t-radio-group.t-size-m .t-radio-button{font:var(--td-font-body-medium);height:calc(var(--td-comp-size-m) - var(--td-comp-paddingTB-xxs)*2);padding:var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-l)}.t-radio-group.t-size-m .t-radio-button:before{height:calc(100% - 20px)}.t-radio-group.t-size-l .t-radio-button{font:var(--td-font-body-large);height:calc(var(--td-comp-size-xl) - var(--td-comp-paddingTB-xxs)*2);padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-xl)}.t-radio-group.t-size-l .t-radio-button:before{height:calc(100% - 24px)}.t-radio-group .t-radio-button{align-items:center;border:1px solid;border-color:var(--td-border-level-2-color);border-right:0;box-sizing:border-box;color:var(--td-text-color-primary);cursor:pointer;display:inline-flex;position:relative;transition:color .2s cubic-bezier(0,0,.15,1);white-space:nowrap}.t-radio-group .t-radio-button:first-child{border-radius:var(--td-radius-small) 0 0 var(--td-radius-small)}.t-radio-group .t-radio-button:last-child{border-radius:0 var(--td-radius-small) var(--td-radius-small) 0;border-right:1px solid;border-right-color:var(--td-border-level-2-color)}.t-radio-group .t-radio-button__former{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:0;list-style:none;margin:0;opacity:0;padding:0;width:0}.t-radio-group .t-radio-button:hover{color:var(--td-brand-color)}.t-radio-group .t-radio-button.t-is-checked{border-right:1px solid;border-color:var(--td-brand-color);transition:border-color .2s cubic-bezier(0,0,.15,1)}.t-radio-group .t-radio-button.t-is-checked+.t-radio-button{border-left:0}.t-radio-group .t-radio-button.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:not-allowed}.t-radio-group .t-radio-button.t-is-disabled:hover{border-color:var(--td-border-level-2-color);color:var(--td-text-color-disabled)}.t-radio-group .t-radio-button.t-is-disabled:hover:after{width:0}.t-radio-group .t-radio-button.t-is-disabled.t-is-checked{color:var(--td-text-color-disabled)}.t-radio-group .t-radio-button.t-is-disabled.t-is-checked:after{width:0}.t-radio{cursor:pointer;display:inline-block;position:relative}.t-radio,.t-radio__former{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-radio__former{opacity:0;position:absolute}.t-radio__input{background-color:var(--td-bg-color-container);border:1px solid var(--td-border-level-2-color);border-radius:var(--td-radius-circle);display:inline-block;height:16px;position:relative;transition:border .2s cubic-bezier(0,0,.15,1);vertical-align:middle;width:16px}.t-radio__input:after{background-color:var(--td-brand-color);border-radius:var(--td-radius-circle);content:"";height:16px;left:50%;margin-left:-8px;margin-top:-8px;opacity:0;position:absolute;top:50%;transform:scale(.5);transition:all .2s cubic-bezier(0,0,.15,1);width:16px}.t-radio__label{color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);margin-left:var(--td-comp-margin-s);vertical-align:middle;white-space:nowrap}.t-radio.t-is-checked .t-radio__input,.t-radio:hover .t-radio__input{border-color:var(--td-brand-color)}.t-radio.t-is-checked .t-radio__input:after{opacity:1}.t-radio.t-is-disabled{cursor:not-allowed}.t-radio.t-is-disabled .t-radio__label{color:var(--td-text-color-disabled)}.t-radio.t-is-disabled .t-radio__input{background-color:var(--td-bg-color-component-disabled)}.t-radio.t-is-disabled.t-is-checked .t-radio__input,.t-radio.t-is-disabled:hover .t-radio__input{border-color:var(--td-border-level-2-color)}.t-radio.t-is-disabled.t-is-checked .t-radio__input:after{background-color:var(--td-text-color-disabled)}.t-radio:focus-visible:focus-visible{border-radius:0;outline:2px solid var(--td-brand-color);outline-offset:var(--td-comp-paddingTB-xs)}.t-slider__input-container{align-items:center;display:flex;margin-left:var(--td-comp-margin-xxl)}.t-slider__input-container.is-vertical{margin-left:0;padding-top:var(--td-comp-paddingTB-l)}.t-slider__input-container .t-slider__center-line{background:rgba(0,0,0,.9);height:1px;margin:0 var(--td-comp-margin-s);width:var(--td-size-4)}.t-slider{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:calc(var(--td-comp-paddingTB-xs)*2 + var(--td-size-2));list-style:none;margin:0;padding:0;padding:var(--td-comp-paddingTB-xs) 0;position:relative;width:100%}.t-slider__container{align-items:center;display:flex;justify-content:center;width:100%}.t-slider__container.is-vertical{flex-direction:column;height:100%}.t-slider__rail{background-color:var(--td-bg-color-secondarycomponent);border-radius:var(--td-radius-round);height:var(--td-size-2);position:absolute;transition:.2s linear;width:100%}.t-slider__rail:hover{background-color:var(--td-bg-color-secondarycomponent-hover)}.t-slider__track{background-color:var(--td-brand-color);border-radius:var(--td-radius-round);right:auto}.t-slider__step,.t-slider__track{height:var(--td-size-2);position:absolute}.t-slider__step{cursor:pointer;width:100%}.t-slider__button{background-color:#fff;border:2px solid var(--td-brand-color);border-radius:var(--td-radius-circle);box-shadow:var(--td-shadow-1);box-sizing:border-box;height:var(--td-comp-size-xxxs);transition:.2s;user-select:none;width:var(--td-comp-size-xxxs)}.t-slider__button--dragging{box-shadow:0 0 0 2px var(--td-brand-color-focus)}.t-slider__button:hover{background-color:var(--td-gray-color-1)}.t-slider__button-wrapper{align-items:center;background-color:transparent;cursor:pointer;display:flex;line-height:normal;outline:none;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%);user-select:none;z-index:2}.t-slider__stop{background-color:var(--td-bg-color-secondarycomponent);height:var(--td-size-2);position:absolute;top:4px;width:1px}.t-slider__mark{left:0;position:absolute;top:2px;width:100%}.t-slider__mark-text{color:var(--td-text-color-primary);cursor:pointer;display:inline-block;font:var(--td-font-body-small);position:absolute;top:calc(var(--td-size-2) + var(--td-comp-paddingTB-xs) + 2px);transform:translateX(-50%);white-space:nowrap}.t-slider__mark-text:first-child{transform:translateX(0)}.t-slider__mark-text:last-child{transform:translateX(-100%)}.t-slider--vertical{display:flex;height:100%;justify-content:center;padding:0;position:relative}.t-slider--vertical .t-slider__rail{height:100%;width:var(--td-size-2)}.t-slider--vertical .t-slider__track{top:auto;width:var(--td-size-2)}.t-slider--vertical .t-slider__step{height:100%;width:var(--td-size-2)}.t-slider--vertical .t-slider__handle{margin-left:-5px;margin-top:-6px;top:auto;transform:translateY(50%)}.t-slider--vertical .t-slider__mark{height:100%;left:12px;top:0;width:18px}.t-slider--vertical .t-slider__stop{background-color:var(--td-bg-color-secondarycomponent);height:1px;left:4px;width:var(--td-size-2)}.t-slider--vertical .t-slider__mark-text{margin-left:var(--td-comp-margin-xxs);margin-top:0;transform:translateY(-50%)}.t-slider--vertical .t-slider__button-wrapper{align-items:center;background-color:transparent;cursor:pointer;display:flex;left:50%;line-height:normal;outline:none;position:absolute;text-align:center;top:auto;transform:translate(-50%,50%);user-select:none;z-index:2}.t-is-disabled{cursor:not-allowed}.t-is-disabled .t-slider__track{background-color:var(--td-brand-color-disabled)}.t-is-disabled .t-slider__rail{background-color:var(--td-bg-color-component-disabled)}.t-is-disabled .t-slider__handle{border:2px solid var(--td-brand-color-disabled)}.t-is-disabled .t-slider__button{border-color:var(--td-brand-color-disabled);outline:none}.t-is-disabled .t-slider__mark-text{color:var(--td-text-color-disabled);cursor:not-allowed}.t-is-disabled .t-slider__button-wrapper{cursor:not-allowed}.t-switch{align-items:center;background-color:var(--td-bg-color-secondarycomponent);border:0;border-radius:var(--td-radius-round);box-sizing:border-box;color:var(--td-text-color-primary);cursor:pointer;display:inline-flex;font:var(--td-font-body-medium);height:var(--td-comp-size-xxs);line-height:var(--td-comp-size-xxs);list-style:none;margin:0;min-width:calc(var(--td-comp-size-xxs)/.618);outline:none;padding:0;position:relative;transition:all .2s cubic-bezier(.38,0,.24,1);user-select:none;vertical-align:middle}.t-switch:hover{background-color:var(--td-bg-color-secondarycomponent-hover)}.t-switch__handle{align-items:center;border-radius:var(--td-radius-round);box-shadow:var(--td-shadow-1);display:flex;height:calc(var(--td-comp-size-xxs) - 8px);justify-content:center;left:4px;position:absolute;top:4px;transition:all .2s cubic-bezier(.38,0,.24,1);width:calc(var(--td-comp-size-xxs) - 8px)}.t-switch__handle .t-icon{color:transparent;font-size:calc(var(--td-comp-size-xxs) - 4px)}.t-switch__handle:before{background-color:#fff;border-radius:var(--td-radius-round);bottom:0;content:"";left:0;position:absolute;right:0;top:0;transition:all .2s cubic-bezier(.38,0,.24,1)}.t-switch:active:not(.t-is-disabled):not(.t-is-loading) .t-switch__handle:before{left:0;right:-6px}.t-switch:active:not(.t-is-disabled):not(.t-is-loading).t-is-checked .t-switch__handle:before{left:-6px;right:0}.t-switch:active:not(.t-is-disabled):not(.t-is-loading) .t-switch__content{opacity:0}.t-switch__content{align-items:center;box-sizing:border-box;color:var(--td-text-color-anti);display:inline-flex;font-size:var(--td-font-size-body-small);min-width:calc(var(--td-comp-size-xxs)/.618);padding:0 var(--td-comp-margin-xs) 0 calc(var(--td-comp-size-xxs)/.618/2 + 2px);transition:padding .2s cubic-bezier(.38,0,.24,1),opacity .2s linear}.t-switch__content .t-icon{font-size:var(--td-font-size-body-large)}.t-switch.t-is-checked{background-color:var(--td-brand-color)}.t-switch.t-is-checked:hover{background-color:var(--td-brand-color-hover)}.t-switch.t-is-checked .t-switch__handle{height:calc(var(--td-comp-size-xxs) - 5px);left:calc(100% - 2.5px);top:2.5px;transform:translate(-100%);width:calc(var(--td-comp-size-xxs) - 5px)}.t-switch.t-is-checked .t-switch__content{color:var(--td-text-color-anti);padding:0 calc(var(--td-comp-size-xxs)/.618/2 + 2px) 0 var(--td-comp-margin-xs)}.t-switch.t-is-loading{background-color:var(--td-bg-color-component-disabled);cursor:not-allowed}.t-switch.t-is-loading .t-loading{display:inline-flex}.t-switch.t-is-loading .t-switch__handle .t-icon{color:var(--td-bg-color-component-disabled)}.t-switch.t-is-loading.t-is-checked{background-color:var(--td-brand-color-focus)}.t-switch.t-is-loading.t-is-checked .t-switch__handle .t-icon{color:var(--td-brand-color-focus)}.t-switch.t-is-disabled{background-color:var(--td-bg-color-component-disabled);cursor:not-allowed}.t-switch.t-is-disabled .t-switch__handle{box-shadow:none}.t-switch.t-is-disabled.t-is-checked{background-color:var(--td-brand-color-disabled)}.t-switch.t-is-disabled.t-is-checked .t-switch__handle{box-shadow:none}.t-switch.t-is-disabled.t-is-checked .t-switch__handle .t-icon{color:var(--td-brand-color-disabled)}.t-switch.t-size-l{border-radius:var(--td-radius-round);height:var(--td-comp-size-xs);line-height:var(--td-comp-size-xs);min-width:calc(var(--td-comp-size-xs)/.618)}.t-switch.t-size-l:active:not(.t-is-disabled):not(.t-is-loading) .t-switch__handle:before{left:0;right:-8px}.t-switch.t-size-l:active:not(.t-is-disabled):not(.t-is-loading).t-is-checked .t-switch__handle:before{left:-8px;right:0}.t-switch.t-size-l .t-switch__handle{height:calc(var(--td-comp-size-xs) - 10px);left:5px;top:5px;width:calc(var(--td-comp-size-xs) - 10px)}.t-switch.t-size-l .t-switch__handle .t-icon{font-size:calc(var(--td-comp-size-xs) - 4px)}.t-switch.t-size-l .t-switch__content{min-width:calc(var(--td-comp-size-xs)/.618);padding:0 var(--td-comp-margin-s) 0 calc(var(--td-comp-size-xs)/.618/2 + 4px)}.t-switch.t-size-l .t-switch__content,.t-switch.t-size-l .t-switch__content .t-icon{font-size:var(--td-font-size-body-large)}.t-switch.t-size-l.t-is-checked .t-switch__handle{height:calc(var(--td-comp-size-xs) - 6px);left:calc(100% - 3px);top:3px;width:calc(var(--td-comp-size-xs) - 6px)}.t-switch.t-size-l.t-is-checked .t-switch__content{padding:0 calc(var(--td-comp-size-xs)/.618/2 + 4px) 0 var(--td-comp-margin-s)}.t-switch.t-size-s{border-radius:var(--td-radius-round);height:var(--td-comp-size-xxxs);line-height:var(--td-comp-size-xxxs);min-width:calc(var(--td-comp-size-xxxs)/.618)}.t-switch.t-size-s:active:not(.t-is-disabled):not(.t-is-loading) .t-switch__handle:before{left:0;right:-4px}.t-switch.t-size-s:active:not(.t-is-disabled):not(.t-is-loading).t-is-checked .t-switch__handle:before{left:-4px;right:0}.t-switch.t-size-s .t-switch__handle{height:calc(var(--td-comp-size-xxxs) - 6px);left:3px;top:3px;width:calc(var(--td-comp-size-xxxs) - 6px)}.t-switch.t-size-s .t-switch__handle .t-icon{font-size:calc(var(--td-comp-size-xxxs) - 4px)}.t-switch.t-size-s .t-switch__content{font-size:9px;min-width:calc(var(--td-comp-size-xxxs)/.618);padding:0 var(--td-comp-margin-xxs) 0 calc(var(--td-comp-size-xxxs)/.618/2 + 2px)}.t-switch.t-size-s .t-switch__content .t-icon{font-size:var(--td-font-size-body-large)}.t-switch.t-size-s.t-is-checked .t-switch__handle{height:calc(var(--td-comp-size-xxxs) - 4px);left:calc(100% - 2px);top:2px;width:calc(var(--td-comp-size-xxxs) - 4px)}.t-switch.t-size-s.t-is-checked .t-switch__content{padding:0 calc(var(--td-comp-size-xxxs)/.618/2 + 2px) 0 var(--td-comp-margin-xxs)}.t-textarea{list-style:none;margin:0;padding:0;position:relative}.t-textarea,.t-textarea__inner{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);width:100%}.t-textarea__inner{background-color:var(--td-bg-color-specialcomponent);border:1px solid var(--td-border-level-2-color);border-radius:var(--td-radius-default);display:flex;height:var(--td-comp-size-xxxl);outline:none;padding:calc(var(--td-comp-size-m)/2 - var(--td-line-height-body-medium)/2) var(--td-comp-paddingLR-s);resize:vertical;transition:all .2s cubic-bezier(.38,0,.24,1),height 0s}@-moz-document url-prefix(){.t-textarea__inner{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-textarea__inner::-webkit-scrollbar{height:6px;width:6px}.t-textarea__inner::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-textarea__inner::-webkit-scrollbar-thumb:horizontal:hover,.t-textarea__inner::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-textarea__inner:focus,.t-textarea__inner:hover{border-color:var(--td-brand-color)}.t-textarea__inner:focus{box-shadow:0 0 0 2px var(--td-brand-color-focus)}.t-textarea__inner::placeholder{color:var(--td-text-color-placeholder)}.t-textarea__inner.t-is-success{border-color:var(--td-success-color)}.t-textarea__inner.t-is-success:focus{box-shadow:0 0 0 2px var(--td-success-color-focus)}.t-textarea__inner.t-is-warning{border-color:var(--td-warning-color)}.t-textarea__inner.t-is-warning:focus{box-shadow:0 0 0 2px var(--td-warning-color-focus)}.t-textarea__inner.t-is-error{border-color:var(--td-error-color)}.t-textarea__inner.t-is-error:focus{box-shadow:0 0 0 2px var(--td-error-color-focus)}.t-textarea__info_wrapper{column-gap:var(--td-comp-margin-s);display:flex;justify-content:space-between}.t-textarea__info_wrapper_align{justify-content:end}.t-textarea__limit{color:var(--td-text-color-placeholder);font:var(--td-font-body-small)}.t-textarea .t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:not-allowed}.t-textarea .t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.t-textarea .t-is-disabled::placeholder{color:var(--td-text-color-disabled)}.t-textarea .t-resize-none{resize:none}.t-textarea__tips{display:inline-block;font:var(--td-font-body-small);height:auto;min-height:var(--td-comp-size-xs)}.t-textarea__tips--normal{color:var(--td-text-color-placeholder)}.t-textarea__tips--success{color:var(--td-success-color)}.t-textarea__tips--warning{color:var(--td-warning-color)}.t-textarea__tips--error{color:var(--td-error-color)}.t-transfer{align-items:stretch;background:transparent;box-sizing:border-box;color:var(--td-text-color-primary);display:flex;flex-direction:row;font:var(--td-font-body-medium);list-style:none;margin:0;max-height:100%;padding:0;position:relative}.t-transfer__list{border:0;display:inline-block;height:200px;min-width:200px;padding-top:var(--td-comp-size-xxl);position:relative;vertical-align:middle;word-break:break-word}.t-transfer__list-source,.t-transfer__list-target{border:1px solid var(--td-border-level-1-color);border-radius:var(--td-radius-medium)}.t-transfer__list-header{box-sizing:border-box;display:flex;height:var(--td-comp-size-xxl);justify-content:space-between;line-height:var(--td-comp-size-xxl);margin:0 var(--td-comp-margin-s);padding:0 var(--td-comp-paddingLR-s);position:absolute;top:0;width:calc(200px - var(--td-comp-margin-s)*2)}.t-transfer__list-header+:not(.t-transfer__list--with-search){border-top:1px solid var(--td-border-level-1-color)}.t-transfer__list-header .t-checkbox{margin-right:0}.t-transfer__list-header .t-checkbox__label{margin:0}.t-transfer__list-header div{display:flex}.t-transfer__list-header div>span{margin-left:var(--td-comp-margin-s)}.t-transfer__list-header>span{color:var(--td-text-color-placeholder)}.t-transfer__list-body{box-sizing:border-box;height:100%;position:relative}.t-transfer__list--with-search{border-top:0;padding-top:var(--td-comp-size-m)}.t-transfer__list-content{height:100%;overflow:auto;width:100%}.t-transfer__list-content .t-checkbox-group{flex-direction:column;gap:var(--td-comp-margin-xs);margin:var(--td-comp-margin-s) 0;width:100%}.t-transfer__list-content .t-checkbox-group .t-checkbox{--ripple-color:var(--td-bg-color-container-active);margin-right:var(--td-comp-margin-s)}.t-transfer__list-content .t-checkbox-group .t-checkbox+.t-checkbox{margin-left:var(--td-comp-margin-s)}.t-transfer__list-content .t-checkbox-group .t-checkbox__label{flex:1;margin:0}.t-transfer__list-content .t-checkbox-group .t-checkbox__label>span{display:inline-block;margin-left:var(--td-comp-margin-s)}.t-transfer__list .t-transfer__list-item{border-radius:var(--td-radius-default);cursor:pointer;display:flex;margin:0 var(--td-comp-margin-s);padding:var(--td-comp-paddingLR-xs) var(--td-comp-paddingLR-s);transition:background-color .2s cubic-bezier(.38,0,.24,1)}.t-transfer__list .t-transfer__list-item:first-child{margin-top:0}.t-transfer__list .t-transfer__list-item.t-is-disabled:hover{background:transparent}.t-transfer__list-item:hover{background:var(--td-bg-color-container-hover);transition:background-color .2s cubic-bezier(.38,0,.24,1)}.t-transfer__list-item.t-is-checked{background:var(--td-brand-color-light)}.t-transfer__list-wrapper{height:100%;overflow:auto;padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-m);position:relative;width:100%}.t-transfer__list-pagination{height:var(--td-comp-size-xs);padding:var(--td-comp-paddingTB-m);vertical-align:middle}.t-transfer__list-footer{border-top:1px solid var(--td-border-level-1-color);bottom:0;left:0;position:absolute;width:100%}.t-transfer__operations{display:inline-flex;flex-direction:column;gap:var(--td-comp-margin-l);margin:auto var(--td-comp-margin-s);overflow:hidden;vertical-align:middle}.t-transfer__operations .t-icon{font-size:var(--td-comp-size-xxxs)}.t-transfer__operations .t-icon+.t-button__text{margin-left:0}.t-transfer__empty{color:var(--td-text-color-placeholder);left:50%;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%)}.t-transfer__search-wrapper{box-sizing:border-box;padding:0 var(--td-comp-margin-s);position:absolute;top:0;width:100%}.t-transfer__search .t-transfer__list{height:240px}.t-transfer--with-tree .t-transfer__list{height:auto}.t-transfer--with-tree .t-transfer__list .t-tree{margin:var(--td-comp-margin-s) 0;padding:0 var(--td-comp-paddingLR-m)}.t-transfer__pagination .t-transfer__list{height:240px;padding-bottom:calc(var(--td-comp-size-xs) + var(--td-comp-paddingTB-m)*2)}.t-transfer__footer .t-transfer__list{height:248px;padding-bottom:48px}.t-transfer__pagination.t-transfer__footer .t-transfer__list{height:288px;padding-bottom:calc(var(--td-comp-size-xs) + var(--td-comp-paddingTB-m)*2 + 48px)}.t-transfer__search.t-transfer__footer .t-transfer__list{height:288px;padding-bottom:48px}.t-transfer__search.t-transfer__pagination .t-transfer__list{height:280px;padding-bottom:48px}.t-transfer__search.t-transfer__footer.t-transfer__pagination .t-transfer__list{height:328px;padding-bottom:88px}.t-transfer__wrapper .t-transfer__list{height:320px;overflow:scroll;width:206px}.flex-center{align-items:center;display:flex;justify-content:center}.t-time-picker,.t-time-range-picker{background:transparent;box-sizing:border-box;color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative;width:240px}.t-time-picker.t-is-disabled,.t-time-range-picker.t-is-disabled{cursor:not-allowed}.t-time-picker>:active,.t-time-picker>:focus,.t-time-range-picker>:active,.t-time-range-picker>:focus{outline:0}.t-time-picker__group,.t-time-range-picker__group{position:relative}.t-time-picker__group.active,.t-time-range-picker__group.active{border:1px solid var(--td-brand-color);box-shadow:0 0 2px 2px var(--td-brand-color-focus)}.t-time-picker__group.active+.t-time-picker__icon-wrap>.t-time-picker__icon-clear,.t-time-range-picker__group.active+.t-time-picker__icon-wrap>.t-time-picker__icon-clear{display:block}.t-time-picker__group-text,.t-time-range-picker__group-text{color:var(--td-text-color-primary)}.t-time-picker__group input,.t-time-range-picker__group input{cursor:pointer}.t-time-range-picker{width:auto}.t-time-picker__panel{--timePickerPanelOffsetTop:15;--timePickerPanelOffsetBottom:21;background:transparent;border-radius:var(--td-radius-default);display:inline-block;font:var(--td-font-body-medium);position:relative;width:280px}.t-time-picker__panel-body{align-items:center;display:flex;height:calc(var(--td-comp-size-xs)*7 + var(--td-size-3)*7 + var(--td-size-3));justify-content:center;position:relative;user-select:none;width:100%}.t-time-picker__panel-body-active-mask{display:flex;height:var(--td-comp-size-xs);position:absolute;top:50%;width:100%}.t-time-picker__panel-body-active-mask>div{background-color:var(--td-brand-color-light);border-radius:var(--td-radius-default);flex:1;height:var(--td-comp-size-xs);margin:var(--td-size-3) var(--td-comp-margin-xs);transform:translateY(calc(0px - var(--td-comp-size-xs)/2 - var(--td-size-3)/2))}.t-time-picker__panel-body-scroll{flex:1;height:100%;list-style:none;margin:0;overflow-y:scroll;padding:0;position:relative;text-align:center}.t-time-picker__panel-body-scroll::-webkit-scrollbar{width:0}.t-time-picker__panel-body-scroll:after,.t-time-picker__panel-body-scroll:before{content:"";display:block;height:50%}.t-time-picker__panel-body-scroll:before{height:calc(50% - var(--timePickerPanelOffsetTop, 0)*1px)}.t-time-picker__panel-body-scroll:after{height:calc(50% - var(--timePickerPanelOffsetBottom, 0)*1px)}.t-time-picker__panel-body-scroll:last-child{border-right:0}.t-time-picker__panel-body-scroll-item{border-radius:var(--td-radius-default);color:var(--td-text-color-secondary);cursor:pointer;font:var(--td-font-body-medium);height:var(--td-comp-size-xs);line-height:var(--td-comp-size-xs);margin:var(--td-size-3) var(--td-comp-margin-xs);text-align:center;transition:.2s linear}.t-time-picker__panel-body-scroll-item:not(.t-time-picker__panel-body-scroll-item.t-is-current):not(.t-time-picker__panel-body-scroll-item.t-is-disabled):hover{color:var(--td-text-color-primary)}.t-time-picker__panel-body-scroll-item:not(.t-time-picker__panel-body-scroll-item.t-is-current):not(.t-time-picker__panel-body-scroll-item.t-is-disabled):active{background-color:var(--td-bg-color-container-hover)}.t-time-picker__panel-body-scroll-item.t-is-disabled{color:var(--td-text-color-disabled);cursor:not-allowed}.t-time-picker__panel-body-scroll-item.t-is-hidden{cursor:not-allowed;display:none}.t-time-picker__panel-body-scroll-item.t-is-current{color:var(--td-brand-color)}.t-time-picker__panel-section-body{padding:var(--td-pop-padding-xl) calc(var(--td-pop-padding-xl) - var(--td-comp-margin-xs))}.t-time-picker__panel-section-footer{align-items:center;background-color:transparent;border-top:1px solid var(--td-border-level-1-color);box-sizing:border-box;display:flex;flex-direction:row-reverse;justify-content:space-between;padding:var(--td-pop-padding-xl);position:relative;width:100%}.t-tree{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative}.t-tree.t-is-disabled,.t-tree.t-is-disabled .t-icon{color:var(--td-text-color-disabled)}.t-tree.t-is-disabled .t-tree__item.t-is-active{background-color:var(--td-bg-color-container-hover);color:var(--td-text-color-disabled)}.t-tree.t-is-disabled .t-tree__item .t-icon{color:var(--td-text-color-secondary)}.t-tree__empty{color:var(--td-text-color-disabled)}.t-tree__branch{display:block}.t-tree__item{--level:0;--hscale:2;align-items:center;backface-visibility:hidden;cursor:default;display:flex;flex-wrap:nowrap;padding:0 0 0 calc(var(--td-comp-margin-xxl)*var(--level));perspective:1000;position:relative;transform:translateZ(0);will-change:opacity,max-height}.t-tree__item .t-icon,.t-tree__item .t-loading{display:inline-block;font-size:calc(var(--td-font-size-body-medium) + 2px);position:relative;z-index:2}.t-tree__item .t-icon{color:var(--td-text-color-secondary)}.t-tree__item .t-checkbox{align-items:center;font-size:0}.t-tree__item .t-checkbox__input{flex-shrink:0}.t-tree__item .t-checkbox__label{overflow:hidden;text-overflow:ellipsis}.t-tree__item .t-tree__icon--default .t-icon{transform:rotate(0)}.t-tree__item--open .t-icon{color:var(--td-text-color-brand)}.t-tree__item--open .t-tree__icon--default .t-icon{transform:rotate(90deg)}.t-tree__item--clickable{cursor:pointer}.t-tree__item--locked{color:var(--td-text-color-disabled)}.t-tree__item--matched{color:inherit}.t-tree__item--draggable{cursor:pointer}.t-tree__item--draggable:hover{background-clip:content-box;background-color:var(--td-bg-color-container-hover)}.t-tree__item--draggable:after{background-clip:content-box;border-radius:1px;content:"";display:block;height:2px;left:0;padding:inherit;position:absolute;right:0;top:-1px}.t-tree__item--tip-bottom:after,.t-tree__item--tip-top:after{background-color:var(--td-brand-color)}.t-tree__item--tip-bottom:after{bottom:-1px;top:unset}.t-tree__item--tip-highlight{background-clip:content-box;background-color:var(--td-brand-color-light)}.t-tree__item:before{content:"";display:block;flex:0 0 auto;height:calc(var(--td-comp-size-m) + 2px);width:0}.t-tree--block-node .t-tree__label{flex:1}.t-tree--hoverable .t-tree__label:not(.t-is-active):not(.t-is-checked):hover{background-color:var(--td-bg-color-container-hover)}.t-tree__line{--level:0;--color:var(--td-border-level-1-color);--space:var(--td-comp-margin-xxl);--iconSize:16px;bottom:var(--td-comp-margin-l);left:calc(var(--td-comp-margin-xxl)*var(--level) - var(--td-comp-margin-l));pointer-events:none;width:1px}.t-tree__line,.t-tree__line:before{height:calc(var(--td-comp-size-m) + 2px);position:absolute}.t-tree__line:before{border-bottom:1px solid var(--color);border-left:1px solid var(--color);bottom:0;content:"";display:block;left:0;width:var(--td-comp-margin-m)}.t-tree__line--first:before{height:var(--td-line-height-body-medium)}.t-tree__line--leaf:before{width:var(--td-comp-margin-m)}.t-tree__icon{align-items:center;cursor:pointer;display:inline-flex;flex:none;font-size:0;position:relative;text-align:center;user-select:none;width:calc(var(--td-font-size-body-medium) + 2px)}.t-tree__icon:after{border-radius:var(--td-radius-default);content:"";display:block;height:calc(var(--td-font-size-body-medium) + 6px);left:-2px;position:absolute;top:-2px;width:calc(var(--td-font-size-body-medium) + 6px)}.t-tree__icon:not(:empty):hover{background-color:var(--td-bg-color-container-hover)}.t-tree__icon:empty{cursor:auto}.t-tree__label{--ripple-color:var(--td-bg-color-container-active);word-wrap:normal;border-radius:var(--td-radius-default);cursor:pointer;flex:1;flex-wrap:nowrap;margin-left:var(--td-comp-margin-xs);overflow:hidden;padding:var(--td-comp-paddingTB-xxs) var(--td-comp-paddingLR-xs);text-overflow:ellipsis;white-space:nowrap}.t-tree__label.t-is-checked{background-color:var(--td-brand-color-light);color:var(--td-text-color-primary);font-weight:500}.t-tree__label::selection{background-color:transparent}.t-is-active .t-tree__label{background-color:var(--td-brand-color-light);color:var(--td-text-color-primary);font-weight:500}.t-tree__space{display:block;flex:1 0 auto}.t-tree__operations{align-items:center;display:flex;flex:0 0 auto;justify-content:flex-end;margin-left:auto}.t-tree__operations .t-icon{cursor:pointer}.t-tree__item.t-is-disabled{color:var(--td-text-color-disabled);cursor:default}.t-tree__item.t-is-disabled .t-checkbox{cursor:default}.t-tree__item--hidden{display:none}.t-tree--transition .t-tree__label{transition:background-color .24s cubic-bezier(.38,0,.24,1)}.t-tree--transition .t-tree__icon{transition:color,transform .24s cubic-bezier(.38,0,.24,1)}.t-tree--transition .t-tree__icon:after,.t-tree--transition .t-tree__icon:not(:empty):hover{transition:.2s linear}.t-tree--transition .t-tree__icon--default .t-icon{transition:color,transform .2s cubic-bezier(.38,0,.24,1)}.t-tree--transition .t-tree__item--visible{display:flex;max-height:calc((var(--td-comp-size-m) + 2px)*var(--hscale));opacity:1;transition:opacity .15s linear .15s,max-height .15s linear 0s}.t-tree--transition .t-tree__item--hidden{animation:initial;display:flex;max-height:0;opacity:0;overflow:hidden;pointer-events:none;transition:opacity .15s linear 0s,max-height .15s linear .15s;user-select:none}.t-tree--transition .t-tree__item--enter-active{animation:t-tree-toggle .3s linear}.t-tree--transition .t-tree__item--leave-active{animation:t-tree-toggle .3s linear reverse forwards}.t-tree__lazyload,.t-tree__vscroll{overflow-y:auto}.t-tree__vscroll-cursor{height:1px;position:absolute;transition:transform .2s;width:1px}.t-tree--scrolling .t-tree__item{will-change:auto}.t-tree--scrolling .t-tree__item--enter,.t-tree--scrolling .t-tree__item--enter-active,.t-tree--scrolling .t-tree__item--enter-to,.t-tree--scrolling .t-tree__item--hidden,.t-tree--scrolling .t-tree__item--leave,.t-tree--scrolling .t-tree__item--leave-active .t-tree__item--leave-to,.t-tree--scrolling .t-tree__item--visible,.t-tree--scrolling .v-enter,.t-tree--scrolling .v-leave{animation:none;transition:none}.t-tree--scrolling .t-tree__item--enter-active,.t-tree--scrolling .t-tree__item--enter-to,.t-tree--scrolling .t-tree__item--visible{max-height:none}.t-tree--scrolling .t-tree__item--leave-active,.t-tree--scrolling .t-tree__item--leave-to{max-height:0}@keyframes t-tree-toggle{0%{max-height:0;opacity:0}50%{max-height:calc((var(--td-comp-size-m) + 2px)*var(--hscale));opacity:0}to{max-height:calc((var(--td-comp-size-m) + 2px)*var(--hscale));opacity:1}}.t-tree-select{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-tree-select--without-input input{display:none}.t-tree-select--without-input .t-input__suffix-icon{margin-left:auto}.t-tree-select .t-fake-arrow{color:var(--td-text-color-placeholder);transition:color .2s cubic-bezier(.38,0,.24,1)}.t-tree-select .t-fake-arrow--highlight{color:var(--td-text-color-brand)}.t-tree-select .t-fake-arrow--disable{color:var(--td-text-color-disabled)}.t-tree-select--placeholder{color:var(--td-text-color-placeholder)}.t-tree-select.t-single-suffix{padding-right:20px}.t-tree-select.t-tag-prefix{padding-left:4px}.t-tree-select-popup .t-popup__content{max-height:300px;overflow-y:auto;padding:var(--td-pop-padding-m)}@-moz-document url-prefix(){.t-tree-select-popup .t-popup__content{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-tree-select-popup .t-popup__content::-webkit-scrollbar{height:8px;width:8px}.t-tree-select-popup .t-popup__content::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid transparent;border-radius:15px}.t-tree-select-popup .t-popup__content::-webkit-scrollbar-thumb:horizontal:hover,.t-tree-select-popup .t-popup__content::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-color-picker__panel{background:var(--td-bg-color-container);border-radius:var(--td-radius-medium);box-shadow:var(--td-shadow-2),var(--td-shadow-inset-top),var(--td-shadow-inset-right),var(--td-shadow-inset-bottom),var(--td-shadow-inset-left);padding:0;user-select:none;width:256px}.t-popup__content .t-color-picker__panel{background:transparent;box-shadow:unset}.t-color-picker{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-color-picker.t-popup__content{box-shadow:var(--td-shadow-2),var(--td-shadow-inset-top),var(--td-shadow-inset-right),var(--td-shadow-inset-bottom),var(--td-shadow-inset-left)}.t-color-picker__icon{align-items:center;background:transparent;border-radius:var(--td-radius-default);color:var(--td-text-color-secondary);cursor:pointer;display:flex;font-size:var(--td-comp-size-xxxs);justify-content:center;transition:.2s linear}.t-color-picker__icon:hover{background:var(--td-bg-color-container-hover);transition:.2s linear}.t-color-picker__icon.t-is-disabled{color:var(--td-text-color-disabled);pointer-events:none}.t-color-picker__head{align-items:center;display:flex;justify-content:space-between;padding:var(--td-pop-padding-xl);position:relative;z-index:2}.t-color-picker__head .t-color-picker__close{flex-shrink:0}.t-color-picker__head+.t-color-picker__body{padding-top:0}.t-color-picker__body{padding:var(--td-pop-padding-xl);padding-bottom:calc(var(--td-pop-padding-xl) - 4px)}.t-color-picker__thumb{background:var(--td-text-color-anti);border-color:currentcolor;border-radius:var(--td-radius-circle);box-shadow:var(--td-shadow-1);box-sizing:border-box;color:var(--td-text-color-brand);height:calc(var(--td-comp-size-xxxs) + var(--td-size-1));outline:none;padding:2px;position:absolute;width:calc(var(--td-comp-size-xxxs) + var(--td-size-1));z-index:1}.t-color-picker__thumb:before{background:currentcolor;border-radius:var(--td-radius-circle);content:"";display:block;height:100%;width:100%}.t-color-picker__saturation{background:transparent;border-radius:var(--td-radius-default);height:160px;overflow:hidden;position:relative}.t-color-picker__saturation:after,.t-color-picker__saturation:before{content:"";height:100%;left:0;position:absolute;top:0;width:100%}.t-color-picker__saturation:before{background:linear-gradient(90deg,#fff,transparent)}.t-color-picker__saturation:after{background:linear-gradient(0deg,#000,transparent)}.t-color-picker__saturation .t-color-picker__thumb{border-radius:var(--td-radius-circle);height:calc(var(--td-comp-size-xxxs) + var(--td-size-1));transform:translate(-50%,-50%);width:calc(var(--td-comp-size-xxxs) + var(--td-size-1))}.t-color-picker__slider-wrapper{border-radius:4px;padding:0 calc(var(--td-comp-size-xxxs)/2 + var(--td-size-1)/2);position:relative}.t-color-picker__slider-wrapper--hue-type{background:red}.t-color-picker__slider-wrapper--alpha-type{background:var(--td-text-color-anti);background-image:linear-gradient(45deg,#c5c5c5 25%,transparent 0,transparent 75%,#c5c5c5 0,#c5c5c5),linear-gradient(45deg,#c5c5c5 25%,transparent 0,transparent 75%,#c5c5c5 0,#c5c5c5);background-position:0 0,3px 3px;background-size:6px 6px}.t-color-picker__slider-padding{border-radius:4px;height:8px;left:0;position:absolute;top:0;width:100%}.t-color-picker__slider{border-radius:4px;color:transparent;cursor:pointer;height:8px;outline:none;position:relative;z-index:1}.t-color-picker__slider .t-color-picker__thumb{top:50%;transform:translate(calc(var(--td-comp-size-xxxs)*-.5 + var(--td-size-1)*-.5),-50%)}.t-color-picker__slider .t-color-picker__rail{border-radius:inherit;height:100%;left:0;overflow:hidden;position:absolute;top:0;width:100%}.t-color-picker__alpha,.t-color-picker__format{margin:var(--td-comp-margin-m) 0 0 0}.t-color-picker__hue{background:linear-gradient(90deg,red,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.t-color-picker__alpha .t-color-picker__rail{background:linear-gradient(90deg,transparent,currentcolor)}.t-color-picker__sliders-wrapper{align-items:center;display:flex;margin:var(--td-comp-margin-m) 0}.t-color-picker__sliders{width:100%}.t-color-picker__sliders-preview{background:var(--td-text-color-anti);background-image:linear-gradient(45deg,#c5c5c5 25%,transparent 0,transparent 75%,#c5c5c5 0,#c5c5c5),linear-gradient(45deg,#c5c5c5 25%,transparent 0,transparent 75%,#c5c5c5 0,#c5c5c5);background-position:0 0,3px 3px;background-size:6px 6px;border-radius:var(--td-radius-default);flex-shrink:0;height:var(--td-comp-size-s);margin-left:var(--td-comp-margin-m);overflow:hidden;width:var(--td-comp-size-s)}.t-color-picker__sliders-preview-inner{display:block;height:100%;width:100%}.t-color-picker__gradient{align-items:center;display:flex;margin-bottom:var(--td-comp-margin-m);padding:0}.t-color-picker__gradient-slider{flex:1}.t-color-picker__gradient-degree{flex-shrink:0;margin-left:var(--td-comp-margin-m);position:relative;width:var(--td-comp-size-xxl)}.t-color-picker__gradient-degree .t-input{font:var(--td-font-body-small);margin:0}.t-color-picker__gradient-degree .t-input-number{padding:0;width:100%}.t-color-picker__gradient .gradient-thumbs{border-radius:inherit;cursor:pointer;height:100%;left:0;list-style:none;margin:0;padding:0;position:absolute;top:0;width:100%}.t-color-picker__gradient .gradient-thumbs__item{cursor:pointer;left:0;top:50%;transform:translate(-50%,-50%);z-index:0}.t-color-picker__gradient .gradient-thumbs__item:before{display:none}.t-color-picker__gradient .gradient-thumbs__item.t-is-active{outline:2px solid var(--td-component-border);z-index:1}.t-color-picker__gradient .gradient-thumbs__item-inner{border-radius:var(--td-radius-circle);display:block;height:100%;overflow:hidden;width:100%}.t-color-picker__gradient .gradient-thumbs__item-inner:before{background-color:currentcolor;content:"";display:block;height:100%;width:100%}.t-color-picker__format{align-items:center;display:flex;justify-content:space-between}.t-color-picker__format--item:first-child{flex-shrink:0}.t-color-picker__format--item:last-child{flex:1}.t-color-picker__format--item .t-input.t-size-m,.t-color-picker__format--item .t-size-m{font:var(--td-font-body-small)}.t-color-picker__format--item .t-input-number .t-input{margin:0}.t-color-picker__format--item .input-group{align-items:center;display:flex;justify-content:space-around;margin-left:var(--td-comp-margin-s)}.t-color-picker__format--item .input-group__item{flex:1;margin-left:-1px;width:0}.t-color-picker__format--item .input-group__item .t-input{padding:0 1px}.t-color-picker__format--item .input-group__item .t-input:focus,.t-color-picker__format--item .input-group__item .t-input:focus-within,.t-color-picker__format--item .input-group__item .t-input:hover{z-index:1}.t-color-picker__format--item .input-group__item:not(:first-child):not(:last-child) .t-input{border-radius:0}.t-color-picker__format--item .input-group__item:first-child:not(:last-child) .t-input{border-bottom-right-radius:0;border-top-right-radius:0}.t-color-picker__format--item .input-group__item:last-child:not(:first-child) .t-input{border-bottom-left-radius:0;border-top-left-radius:0}.t-color-picker__format--item .input-group .t-input-number{max-width:100%;padding:0;width:100%}.t-color-picker__format-mode-select{display:flex;width:72px}.t-color-picker__format-mode-select .t-input,.t-color-picker__format-mode-select .t-select{padding-right:0}.t-color-picker__format-mode-select .t-input--prefix>.t-input__suffix{padding-left:0}.t-color-picker__format-mode-select .t-select__right-icon{margin-right:var(--td-comp-margin-xs)}.t-color-picker__swatches-wrap{position:relative}.t-color-picker__swatches-wrap,.t-color-picker__swatches-wrap .t-color-picker__swatches+.t-color-picker__swatches{margin-top:var(--td-comp-margin-m)}.t-color-picker__swatches-wrap .t-color-picker__swatches--title{align-items:center;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-small);justify-content:space-between;padding:0}.t-color-picker__swatches-wrap .t-color-picker__swatches--actions{align-items:center;display:flex;font-size:0;margin-left:auto}.t-color-picker__swatches-wrap .t-color-picker__swatches--actions .t-color-picker__icon{height:var(--td-comp-size-xxxs);margin-left:var(--td-comp-margin-s);width:var(--td-comp-size-xxxs)}.t-color-picker__swatches-wrap .t-color-picker__swatches--items{box-sizing:content-box;display:grid;gap:calc(28.44444px - var(--td-pop-padding-xl)*2/9 - var(--td-comp-size-xxxs)*10/9) calc(28.44444px - var(--td-pop-padding-xl)*2/9 - var(--td-comp-size-xxxs)*10/9);grid-template-columns:repeat(10,var(--td-comp-size-xxxs));left:calc(8px - var(--td-pop-padding-xl));list-style:none;max-height:calc(var(--td-comp-size-xxxs)*4 + 113.77778px - var(--td-pop-padding-xl)*2/9*4 - var(--td-comp-size-xxxs)*10/9*4);overflow-x:hidden;overflow-y:auto;padding:calc(var(--td-pop-padding-xl) - 8px);position:relative;width:100%}.t-color-picker__swatches-wrap .t-color-picker__swatches--item{align-items:center;border-radius:var(--td-radius-default);box-sizing:border-box;cursor:pointer;display:flex;height:var(--td-comp-size-xxxs);justify-content:center;overflow:hidden;padding:0;position:relative;transform-origin:center;transition:all .2s cubic-bezier(.38,0,.24,1);width:var(--td-comp-size-xxxs)}.t-color-picker__swatches-wrap .t-color-picker__swatches--item:hover{transform:scale(1.25);transform-origin:center}.t-color-picker__swatches-wrap .t-color-picker__swatches--item__color{border:1px solid var(--td-component-border);border-radius:var(--td-radius-default);flex-shrink:0;height:100%;overflow:hidden;position:relative;width:100%}.t-color-picker__swatches-wrap .t-color-picker__swatches--item__inner{display:block;height:100%;width:100%}.t-color-picker__swatches-wrap .t-color-picker__swatches--item:not(.t-is-active):hover{padding:0}.t-color-picker__swatches-wrap .t-color-picker__swatches--item.t-is-active .t-color-picker__swatches--color,.t-color-picker__swatches-wrap .t-color-picker__swatches--item.t-is-active .t-color-picker__swatches--item__color{border-color:var(--td-text-color-brand)}.t-color-picker__swatches-wrap .t-color-picker__swatches--color{border-radius:var(--td-radius-default);box-sizing:border-box;height:100%;overflow:hidden;position:relative;width:100%}.t-color-picker__swatches-wrap .t-color-picker__swatches--inner{border-radius:var(--td-radius-default);box-shadow:var(--td-shadow-inset-top),var(--td-shadow-inset-right),var(--td-shadow-inset-bottom),var(--td-shadow-inset-left);display:block;height:100%;width:100%}.t-color-picker__trigger--default{align-items:center;display:inline-flex}.t-color-picker__trigger--default>.t-input{width:fit-content}.t-color-picker__trigger--default .t-input{padding:0 var(--td-comp-paddingLR-s) 0 var(--td-comp-paddingLR-xs)}.t-color-picker__trigger--default__color{align-items:center;box-sizing:border-box;display:flex;height:100%;width:100%}.t-color-picker__trigger--default__color .color-inner{border:1px solid var(--td-scrollbar-color);border-radius:var(--td-radius-small);color:transparent;display:block;height:calc(var(--td-comp-size-xs) - 2px);position:relative;width:calc(var(--td-comp-size-xs) - 2px)}.t-color-picker__trigger--default__color .color-inner.t-size-s{height:calc(var(--td-comp-size-xxs) - 2px);width:calc(var(--td-comp-size-xxs) - 2px)}.t-color-picker__trigger--default__color .color-inner.t-size-l{height:calc(var(--td-comp-size-s) - 2px);width:calc(var(--td-comp-size-s) - 2px)}.t-color-picker__gradient-slider{border-radius:4px;padding:0 calc(var(--td-comp-size-xxxs)/2 + var(--td-size-1)/2)}.t-color-picker__gradient-slider .t-color-picker--bg-alpha{background:var(--td-text-color-anti);background-image:linear-gradient(45deg,#c5c5c5 25%,transparent 0,transparent 75%,#c5c5c5 0,#c5c5c5),linear-gradient(45deg,#c5c5c5 25%,transparent 0,transparent 75%,#c5c5c5 0,#c5c5c5);background-position:0 0,3px 3px;background-size:6px 6px}.t-color-picker__panel.t-is-disabled .t-color-picker__saturation,.t-color-picker__panel.t-is-disabled .t-color-picker__slider,.t-color-picker__panel.t-is-disabled .t-color-picker__swatches--item{cursor:not-allowed;opacity:.8}.t-color-picker__panel.t-is-disabled .t-color-picker__gradient-slider .gradient-thumbs,.t-color-picker__panel.t-is-disabled .t-color-picker__gradient-slider .gradient-thumbs__item{cursor:not-allowed}.t-color-picker__panel.t-is-disabled .t-color-picker__swatches--item:hover{padding:0}.t-color-picker__select-options>.t-popup__content{box-shadow:var(--td-shadow-1),var(--td-shadow-inset-top),var(--td-shadow-inset-right),var(--td-shadow-inset-bottom),var(--td-shadow-inset-left)}.t-image__wrapper{background:var(--td-bg-color-secondarycontainer);position:relative;z-index:1}.t-image__wrapper--shape-square{border-radius:0}.t-image__wrapper--shape-round{border-radius:var(--td-radius-medium)}.t-image__wrapper--shape-circle{border-radius:50%}.t-image__wrapper--gallery{border-radius:var(--td-radius-medium)}.t-image__wrapper--gallery .t-image{position:relative;z-index:5}.t-image__wrapper--need-hover{cursor:pointer}.t-image{border-radius:inherit;height:100%;position:relative;width:100%;z-index:inherit}.t-image--fit-fill{object-fit:fill}.t-image--fit-contain{object-fit:contain}.t-image--fit-cover{object-fit:cover}.t-image--fit-scale-down{object-fit:scale-down}.t-image--fit-none{object-fit:none}.t-image--position-center{object-position:center}.t-image--position-bottom{object-position:bottom}.t-image--position-top{object-position:top}.t-image--position-left{object-position:left}.t-image--position-right{object-position:right}.t-image__gallery-shadow{background:hsla(0,0%,93%,.26);border-radius:var(--td-radius-medium);bottom:24px;left:0;position:absolute;right:-24px;top:24px;z-index:3}.t-image__gallery-shadow:after,.t-image__gallery-shadow:before{border-radius:var(--td-radius-medium);content:"";left:0;position:absolute}.t-image__gallery-shadow:after{background:hsla(0,0%,93%,.8);bottom:-16px;right:16px;top:-16px;z-index:4}.t-image__gallery-shadow:before{background:hsla(0,0%,93%,.5);bottom:-8px;right:8px;top:-8px;z-index:2}.t-image__placeholder{align-items:center;display:flex;justify-content:center;z-index:0}.t-image__overlay-content,.t-image__placeholder{height:100%;left:0;position:absolute;top:0;width:100%}.t-image__overlay-content{opacity:1;transition:visibility 0s,opacity .2s linear;visibility:visible;z-index:6}.t-image__overlay-content--hidden{opacity:0;visibility:hidden}.t-image__error,.t-image__loading{align-items:center;display:flex;height:100%;justify-content:center;left:0;position:absolute;top:0;width:100%;z-index:1}.t-image__loading{color:var(--td-text-color-secondary)}.t-image__error{color:var(--td-text-color-disabled)}.t-avatar{align-items:center;background:var(--td-brand-color-focus);box-sizing:border-box;box-sizing:content-box;color:var(--td-text-color-primary);color:var(--td-text-color-brand);display:inline-flex;font:var(--td-font-body-medium);font-size:var(--td-font-size-body-large);height:var(--td-comp-size-m);justify-content:center;line-height:var(--td-comp-size-m);list-style:none;margin:0;overflow:hidden;padding:0;position:relative;vertical-align:middle;white-space:nowrap;width:var(--td-comp-size-m)}.t-avatar.t-avatar__icon{font-size:var(--td-comp-size-xxs)}.t-avatar--circle{border-radius:var(--td-radius-circle)}.t-avatar--round{border-radius:var(--td-radius-default)}.t-avatar.t-size-s{font-size:var(--td-font-size-body-medium);height:var(--td-comp-size-xs);line-height:var(--td-comp-size-xs);width:var(--td-comp-size-xs)}.t-avatar.t-size-s.t-avatar__icon{font-size:var(--td-comp-size-xxxs)}.t-avatar.t-size-l{font-size:var(--td-font-size-title-large);height:var(--td-comp-size-xl);line-height:var(--td-comp-size-xl);width:var(--td-comp-size-xl)}.t-avatar.t-size-l.t-avatar__icon{font-size:var(--td-comp-size-xs)}.t-avatar>.t-image__wrapper{max-height:100%;max-width:100%}.t-avatar-group{align-items:center;display:inline-flex}.t-avatar-group .t-avatar{border:2px solid var(--td-bg-color-container)}.t-avatar-group.t-avatar--offset-right .t-avatar:not(:last-child){margin-right:calc(0px - var(--td-size-3))}.t-avatar-group.t-avatar--offset-right .t-avatar:not(:last-child).t-size-s{margin-right:calc(0px - var(--td-size-2))}.t-avatar-group.t-avatar--offset-right .t-avatar:not(:last-child).t-size-l{margin-right:calc(0px - var(--td-size-4))}.t-avatar-group.t-avatar--offset-left .t-avatar:first-child{z-index:49}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(2){z-index:48}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(3){z-index:47}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(4){z-index:46}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(5){z-index:45}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(6){z-index:44}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(7){z-index:43}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(8){z-index:42}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(9){z-index:41}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(10){z-index:40}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(11){z-index:39}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(12){z-index:38}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(13){z-index:37}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(14){z-index:36}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(15){z-index:35}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(16){z-index:34}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(17){z-index:33}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(18){z-index:32}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(19){z-index:31}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(20){z-index:30}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(21){z-index:29}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(22){z-index:28}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(23){z-index:27}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(24){z-index:26}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(25){z-index:25}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(26){z-index:24}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(27){z-index:23}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(28){z-index:22}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(29){z-index:21}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(30){z-index:20}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(31){z-index:19}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(32){z-index:18}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(33){z-index:17}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(34){z-index:16}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(35){z-index:15}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(36){z-index:14}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(37){z-index:13}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(38){z-index:12}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(39){z-index:11}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(40){z-index:10}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(41){z-index:9}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(42){z-index:8}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(43){z-index:7}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(44){z-index:6}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(45){z-index:5}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(46){z-index:4}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(47){z-index:3}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(48){z-index:2}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(49){z-index:1}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(50){z-index:0}.t-avatar-group.t-avatar--offset-left .t-avatar:not(:first-child){margin-left:calc(0px - var(--td-size-3))}.t-avatar-group.t-avatar--offset-left .t-avatar:not(:first-child).t-size-s{margin-left:calc(0px - var(--td-size-2))}.t-avatar-group.t-avatar--offset-left .t-avatar:not(:first-child).t-size-l{margin-left:calc(0px - var(--td-size-4))}.t-badge{box-sizing:border-box;color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative}.t-badge--circle,.t-badge--dot,.t-badge--round{box-sizing:content-box;color:var(--td-text-color-anti);font:var(--td-font-body-small);position:absolute;right:0;text-align:center;top:0;transform:translate(50%,-50%);transform-origin:100% 0}.t-badge--static{display:inline-block;position:static;transform:none}.t-badge--dot{background-color:var(--td-error-color);border-radius:var(--td-radius-circle);height:6px;margin-top:1px;right:1px;width:6px}.t-badge--circle,.t-badge--round{background-color:var(--td-error-color);height:var(--td-comp-size-xxs);line-height:var(--td-comp-size-xxs);min-width:8px;padding-left:calc((var(--td-comp-size-xxs) - 8px)/2);padding-right:calc((var(--td-comp-size-xxs) - 8px)/2)}.t-badge--circle.t-size-s,.t-badge--round.t-size-s{height:var(--td-comp-size-xxxs);line-height:var(--td-comp-size-xxxs);min-width:8px;padding-left:calc((var(--td-comp-size-xxxs) - 8px)/2);padding-right:calc((var(--td-comp-size-xxxs) - 8px)/2)}.t-badge--circle{border-radius:calc(var(--td-comp-size-xxs)/2)}.t-badge--round{border-radius:var(--td-radius-default)}.t-calendar{background-color:var(--td-bg-color-container);border:1px solid var(--td-border-level-1-color);border-radius:var(--td-radius-large);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-calendar .t-is-disabled.t-calendar__table-body-cell:hover{cursor:not-allowed}.t-calendar .t-is-disabled .t-calendar__table-body-cell-display{color:var(--td-text-color-disabled)}.t-calendar .t-is-disabled .t-calendar__table-body-cell-display:hover{box-shadow:none}.t-calendar--full{min-width:560px;padding:var(--td-comp-paddingTB-xxl) var(--td-comp-paddingLR-xxl)}.t-calendar--full .t-calendar__control{padding:0}.t-calendar--full .t-calendar__title{flex:1;font:var(--td-font-title-large)}.t-calendar--full .t-calendar__panel{margin-top:var(--td-comp-margin-xxxl);position:relative}.t-calendar--full .t-calendar__panel-title{color:var(--td-text-color-primary);font:var(--td-font-title-large);position:absolute}.t-calendar--full .t-calendar__table-body-cell,.t-calendar--full .t-calendar__table-head-cell{margin-right:var(--td-comp-margin-s);position:relative}.t-calendar--full .t-calendar__table-body-cell{align-items:flex-end;border-top:2px solid var(--td-border-level-1-color);display:flex;flex-direction:column;height:104px;justify-content:flex-start;line-height:var(--td-line-height-body-medium);margin-left:0;padding:0;transition-duration:.2s;transition-property:border-top,background;transition-timing-function:linear}.t-calendar--full .t-calendar__table-body-cell-content{box-sizing:border-box;padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-xs);width:100%}.t-calendar--full .t-calendar__table-body-cell.t-is-checked,.t-calendar--full .t-calendar__table-body-cell.t-is-checked:hover{background-color:var(--td-brand-color-light)}.t-calendar--full .t-calendar__table-body-cell--now{border-top:2px solid var(--td-brand-color)}.t-calendar--full .t-calendar__table-body-cell--now .t-calendar__table-body-cell-display{color:var(--td-text-color-primary)}.t-calendar--full .t-calendar__footer{border-top:1px solid var(--td-border-level-1-color);height:90px;padding:var(--td-comp-paddingTB-xxl) var(--td-comp-paddingLR-xxl)}.t-calendar--card{border-radius:var(--td-radius-medium);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-m);width:280px}.t-calendar--card .t-calendar__control{padding:0}.t-calendar--card .t-calendar__control-section{justify-content:flex-start;width:100%}.t-calendar--card .t-calendar__control-section-cell:last-child{display:block;flex:1;text-align:right}.t-calendar--card .t-calendar__panel.t-calendar__panel--month{height:200px;margin-top:var(--td-comp-margin-m)}.t-calendar--card .t-calendar__panel.t-calendar__panel--year{height:168px;margin-top:var(--td-comp-margin-m)}.t-calendar--card .t-calendar__panel.t-calendar__panel--year .t-calendar__table-body-cell-display{min-width:var(--td-comp-size-xxl)}.t-calendar--card .t-calendar__table{align-items:flex-start;display:flex;flex-direction:column;height:100%;justify-self:start;width:100%}.t-calendar--card .t-calendar__table-body-row,.t-calendar--card .t-calendar__table-head-row{background:var(--td-bg-color-container);flex:1}.t-calendar--card .t-calendar__table-body-cell,.t-calendar--card .t-calendar__table-head-cell{box-sizing:border-box;font:var(--td-font-body-medium);height:100%;justify-content:center;width:100%}.t-calendar--card .t-calendar__table-body-cell-display,.t-calendar--card .t-calendar__table-head-cell-display{line-height:var(--td-comp-size-xs);width:var(--td-comp-size-xs)}.t-calendar--card .t-calendar__table-body{align-items:center;display:flex;flex:1;flex-direction:column;justify-self:center}.t-calendar--card .t-calendar__table-body-cell{align-items:center;justify-content:center}.t-calendar--card .t-calendar__table-body-cell:hover{background-color:var(--td-bg-color-container)}.t-calendar--card .t-calendar__table-body-cell-display{border-radius:var(--td-radius-default);font:var(--td-font-body-medium);padding-bottom:calc(var(--td-comp-paddingTB-xxs)/2);padding-top:calc(var(--td-comp-paddingTB-xxs)/2);text-align:center;transition:all .2s linear}.t-calendar--card .t-calendar__table-body-cell-display:hover{box-shadow:inset 0 0 0 1px var(--td-brand-color);transition:box-shadow .2s linear}.t-calendar--card .t-calendar__table-body-cell--now .t-calendar__table-body-cell-display{background-color:var(--td-brand-color-light);color:var(--td-brand-color);position:relative}.t-calendar--card .t-is-checked .t-calendar__table-body-cell-display{background:var(--td-brand-color);border-radius:var(--td-radius-default);color:var(--td-text-color-anti)}.t-calendar--card .t-calendar__footer{border-top:1px solid var(--td-border-level-1-color);height:var(--td-comp-size-xxl);padding:0 var(--td-comp-paddingLR-m)}.t-calendar__control,.t-calendar__control-section{align-items:center;display:flex;justify-content:flex-end}.t-calendar__control-section{height:100%}.t-calendar__control-section:last-child{margin-right:0}.t-calendar__control-section-cell{display:flex;height:100%;margin-right:var(--td-comp-margin-s)}.t-calendar__control-section-cell .t-radio-group{vertical-align:bottom}.t-calendar__control-section-cell .t-select{display:inline}.t-calendar__control-section-cell:last-child{margin-right:0}.t-calendar__panel{box-sizing:border-box;width:100%}.t-calendar__table{border-collapse:collapse;border-spacing:0;height:100%;width:100%}.t-calendar__table-body,.t-calendar__table-head{width:100%}.t-calendar__table-body-row,.t-calendar__table-head-row{display:flex;width:100%}.t-calendar__table-body-cell,.t-calendar__table-head-cell{color:var(--td-text-color-primary);cursor:default;display:flex;flex:1;font:var(--td-font-title-small);justify-content:flex-end;padding:0}.t-calendar__table-body-cell:last-child,.t-calendar__table-head-cell:last-child{margin-right:0}.t-calendar__table-head{display:block;margin-bottom:var(--td-comp-margin-s)}.t-calendar__table-head-row{background:var(--td-bg-color-container);padding-bottom:0}.t-calendar__table-head-cell{color:var(--td-text-color-secondary);font:var(--td-font-title-small);height:100%}.t-calendar__table-body-cell{cursor:pointer}.t-calendar__table-body-cell:hover{background-color:var(--td-bg-color-container-hover);transition:background-color .2s linear}.t-calendar__table-body-cell-display{color:var(--td-text-color-primary);font:var(--td-font-title-small)}.t-card{background-color:var(--td-bg-color-container);border-radius:var(--td-radius-medium);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative;transition:box-shadow .2s cubic-bezier(.38,0,.24,1)}.t-card--bordered{border:1px solid var(--td-component-border)}.t-card--shadow,.t-card--shadow-hover:hover{box-shadow:var(--td-shadow-1)}.t-card__cover{display:flow-root}.t-card__cover img{border-radius:var(--td-radius-default) var(--td-radius-default) 0 0;display:flow-root;max-height:100%;width:100%}.t-card__body{display:flow-root;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-xl)}.t-card__header{align-items:center;display:flex;justify-content:space-between;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-xl);position:relative}.t-card__header-wrapper{align-items:center;display:flex;flex:1}.t-card__header+.t-card__cover img{border-radius:0}.t-card__footer{align-items:center;display:flex;justify-content:space-between;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-xl)}.t-card__footer-wrapper{flex:1}.t-size-s .t-card__body,.t-size-s .t-card__footer,.t-size-s .t-card__header{padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-l)}.t-card__avatar{height:var(--td-comp-size-xxxl);width:var(--td-comp-size-xxxl)}.t-card__avatar,.t-card__title{margin-right:var(--td-comp-margin-l)}.t-card__title{color:var(--td-text-color-primary);font:var(--td-font-title-medium);word-break:break-all}.t-card__description,.t-card__subtitle{color:var(--td-text-color-secondary);font:var(--td-font-body-medium);word-break:break-all}.t-card__description{margin-top:var(--td-comp-margin-xs)}.t-card__actions{color:var(--td-brand-color);float:right}.t-card__title--bordered{border-bottom:1px solid var(--td-component-border)}.t-comment{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;width:100%}.t-comment__inner{display:flex}.t-comment__avatar{cursor:pointer;display:flex;flex-shrink:0;margin-right:var(--td-comp-margin-xxl)}.t-comment__avatar-image{border-radius:var(--td-radius-circle);height:var(--td-comp-size-xxxl);width:var(--td-comp-size-xxxl)}.t-comment__content{flex:auto;font:var(--td-font-body-medium)}.t-comment__author{align-items:baseline;display:flex;flex-wrap:wrap;justify-content:flex-start;margin-bottom:var(--td-comp-margin-s)}.t-comment__name{align-items:center;cursor:pointer;display:inline-flex;font:var(--td-font-title-medium)}.t-comment__name,.t-comment__time{padding-right:var(--td-comp-paddingLR-s)}.t-comment__time{color:var(--td-text-color-placeholder);font:var(--td-font-body-small)}.t-comment__detail{font:var(--td-font-body-medium);word-break:break-all}.t-comment__quote{border-left:4px solid var(--td-component-stroke);margin-top:var(--td-comp-margin-l);padding-left:var(--td-comp-margin-l)}.t-comment__quote .t-comment__detail,.t-comment__quote .t-comment__name{color:var(--td-text-color-secondary)}.t-comment__actions{display:flex;gap:var(--td-comp-margin-s);justify-content:flex-end;list-style:none;margin-top:var(--td-comp-margin-s);padding:0}.t-comment__actions .t-button--variant-text{color:var(--td-text-color-placeholder)}.t-comment__actions .t-button--variant-text .t-button__text{gap:var(--td-comp-margin-s)}.t-comment__reply{background-color:var(--td-bg-color-secondarycontainer);border-radius:var(--td-radius-medium);margin-left:calc(var(--td-comp-size-xxxl) + var(--td-comp-margin-xxl));margin-top:var(--td-comp-margin-l);padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-xl)}.t-comment__reply .t-button--variant-text{color:var(--td-text-color-placeholder)}.t-comment__reply .t-button--variant-text:hover{background-color:var(--td-bg-color-secondarycontainer-hover)}.t-comment__reply .t-button--variant-text .t-button__text{gap:var(--td-comp-margin-s)}.t-empty{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;text-align:center}.t-empty__image{display:flex;font-size:48px;justify-content:center}.t-empty__title{color:var(--td-text-color-secondary);margin-top:var(--td-comp-margin-s)}.t-empty__description,.t-empty__title{font:var(--td-font-body-medium);margin-bottom:0}.t-empty__description{color:var(--td-text-color-placeholder);margin-top:var(--td-comp-margin-xs)}.t-empty__action{margin-bottom:0;margin-top:var(--td-comp-margin-xxl)}.t-empty.t-size-s .t-empty__image{font-size:20px}.t-empty.t-size-s .t-empty__description,.t-empty.t-size-s .t-empty__title{font:var(--td-font-body-small);margin-top:var(--td-comp-margin-xxs)}.t-empty.t-size-l .t-empty__image{font-size:64px}@keyframes tDialogZoomIn{0%{opacity:0;transform:scale(.01)}to{opacity:1}}@keyframes tDialogZoomOut{0%{opacity:1}to{opacity:0;transform:scale(.01)}}@keyframes tDialogMaskIn{0%{opacity:0}to{opacity:1}}@keyframes tDialogMaskOut{0%{opacity:1}to{opacity:0}}.t-dialog-zoom .animation-enter{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused;animation-timing-function:cubic-bezier(0,0,.15,1)}.t-dialog-zoom .animation-exit{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused;animation-timing-function:cubic-bezier(.38,0,.24,1)}.t-dialog-zoom .animation-active{animation-fill-mode:both;animation-play-state:running}.t-dialog-zoom-appear,.t-dialog-zoom-enter,.t-dialog-zoom-enter-from{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused;animation-timing-function:cubic-bezier(0,0,.15,1)}.t-dialog-zoom-exit{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused;animation-timing-function:cubic-bezier(.38,0,.24,1)}.t-dialog-zoom-appear-active,.t-dialog-zoom-enter-active{animation-fill-mode:both;animation-name:tDialogZoomIn;animation-play-state:running}.t-dialog-zoom-exit-active{animation-fill-mode:both;animation-name:tDialogZoomOut;animation-play-state:running}.t-dialog-zoom__vue-enter-active .t-dialog{animation-duration:.2s;animation-fill-mode:both;animation-name:tDialogZoomIn;animation-play-state:paused;animation-timing-function:cubic-bezier(0,0,.15,1)}.t-dialog-zoom__vue-enter-active .t-dialog__mask{animation-duration:.2s;animation-fill-mode:both;animation-name:tDialogMaskIn;animation-play-state:running;animation-timing-function:linear}.t-dialog-zoom__vue-leave-active .t-dialog{animation-duration:.2s;animation-fill-mode:both;animation-name:tDialogZoomOut;animation-play-state:paused;animation-timing-function:cubic-bezier(.38,0,.24,1)}.t-dialog-zoom__vue-leave-active .t-dialog__mask{animation-duration:.2s;animation-name:tDialogMaskOut;animation-timing-function:linear}.t-dialog-zoom__vue-enter-to .t-dialog,.t-dialog-zoom__vue-leave-active .t-dialog__mask,.t-dialog-zoom__vue-leave-to .t-dialog{animation-fill-mode:both;animation-play-state:running}.t-dialog-fade-appear,.t-dialog-fade-enter{opacity:0}.t-dialog-fade-appear,.t-dialog-fade-enter,.t-dialog-fade-exit{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused;animation-timing-function:cubic-bezier(0,0,.15,1)}.t-dialog-fade-appear.t-dialog-fade-appear-active,.t-dialog-fade-enter.t-dialog-fade-enter-active{animation-name:tDialogFadeIn;animation-play-state:running}.t-dialog-fade-exit.t-dialog-fade-exit-active{animation-name:tDialogFadeOut;animation-play-state:running}@keyframes tDialogFadeIn{0%{opacity:0}to{opacity:1}}@keyframes tDialogFadeOut{0%{opacity:1}to{opacity:0}}.t-dialog{background-color:var(--td-bg-color-container);border:1px solid var(--td-border-level-1-color);border-radius:var(--td-radius-large);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative;width:480px}.t-dialog .t-icon.t-is-info{color:var(--td-brand-color)}.t-dialog .t-icon.t-is-success{color:var(--td-success-color)}.t-dialog .t-icon.t-is-warning{color:var(--td-warning-color)}.t-dialog .t-icon.t-is-error{color:var(--td-error-color)}.t-dialog--lock{overflow:hidden}.t-dialog__header{align-items:center;box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-title-medium);font-weight:600;gap:var(--td-comp-margin-s);word-break:break-word}.t-dialog__header .t-dialog__header-content{align-items:flex-start;display:flex;width:100%}.t-dialog__header .t-icon:not(.t-icon-close){align-items:center;display:inline-flex;flex-shrink:0;font-size:calc(var(--td-font-size-body-large) + 8px);margin-right:var(--td-comp-margin-s)}.t-dialog__header--fullscreen{align-items:center;background-color:var(--td-bg-color-secondarycontainer);display:flex;flex-direction:row;justify-content:flex-end;min-height:var(--td-comp-size-xxxl);padding:0 var(--td-comp-paddingLR-xxl)}.t-dialog__header--fullscreen .t-dialog__header-content{align-items:center;box-sizing:border-box;display:flex;justify-content:center}.t-dialog__body{color:var(--td-text-color-secondary);font:var(--td-font-body-medium);overflow:auto;padding:var(--td-comp-paddingTB-l) 0;word-break:break-word}@-moz-document url-prefix(){.t-dialog__body{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-dialog__body::-webkit-scrollbar{height:6px;width:6px}.t-dialog__body::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-dialog__body::-webkit-scrollbar-thumb:horizontal:hover,.t-dialog__body::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-dialog__body--icon,.t-dialog__body__icon{padding:var(--td-comp-paddingTB-l) 0}.t-dialog__body--fullscreen{box-sizing:border-box;height:calc(100% - var(--td-comp-size-xxxl) - var(--td-comp-size-xxxxl));overflow:auto;padding:var(--td-comp-paddingTB-xl) var(--td-comp-paddingLR-xxl)}@-moz-document url-prefix(){.t-dialog__body--fullscreen{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-dialog__body--fullscreen::-webkit-scrollbar{height:6px;width:6px}.t-dialog__body--fullscreen::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-dialog__body--fullscreen::-webkit-scrollbar-thumb:horizontal:hover,.t-dialog__body--fullscreen::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-dialog__body--fullscreen--without-footer{box-sizing:border-box;height:calc(100% - var(--td-comp-size-xxxl));overflow:auto;padding:var(--td-comp-paddingTB-xl) var(--td-comp-paddingLR-xxl)}.t-dialog__footer{padding:var(--td-comp-paddingTB-l) 0 0;text-align:right;width:100%}.t-dialog__footer .t-button+.t-button{margin-left:var(--td-comp-margin-s)}.t-dialog__footer--fullscreen{box-sizing:border-box;min-height:var(--td-comp-size-xxxxl);padding:0 var(--td-comp-paddingLR-xxl) var(--td-comp-paddingTB-xxl)}.t-dialog--default{padding:var(--td-comp-paddingTB-xxl) var(--td-comp-paddingLR-xxl)}.t-dialog__close{align-items:center;border-radius:var(--td-radius-default);color:var(--td-text-color-secondary);display:flex;font-size:calc(var(--td-font-size-body-large) + 4px);height:calc(var(--td-font-size-body-large) + 4px);padding:var(--td-comp-paddingTB-xxs) var(--td-comp-paddingLR-xxs);transition:all .2s linear;width:calc(var(--td-font-size-body-large) + 4px)}.t-dialog__close:hover{background:var(--td-bg-color-container-hover);cursor:pointer}.t-dialog__close:active{background:var(--td-bg-color-container-active)}.t-dialog__close--fullscreen{background:transparent;display:flex}.t-dialog__close--fullscreen:hover{background:var(--td-bg-color-secondarycontainer-hover);cursor:pointer}.t-dialog__close--fullscreen:active{background:var(--td-bg-color-secondarycontainer-active)}.t-dialog.t-dialog--draggable:hover{cursor:move}.t-dialog.t-dialog--draggable .t-dialog__body:hover,.t-dialog.t-dialog--draggable .t-dialog__footer:hover,.t-dialog.t-dialog--draggable .t-dialog__header:hover{cursor:auto}.t-dialog__fullscreen{border-radius:0;width:100%}.t-dialog__ctx{height:100%;left:0;outline:none;pointer-events:auto;top:0;width:100%}.t-dialog__ctx.t-dialog__ctx--modeless{pointer-events:none}.t-dialog__ctx.t-dialog__ctx--fixed{position:fixed;z-index:2500}.t-dialog__ctx.t-dialog__ctx--absolute,.t-dialog__ctx.t-dialog__ctx--absolute .t-dialog__mask,.t-dialog__ctx.t-dialog__ctx--absolute .t-dialog__wrap{position:absolute}.t-dialog__ctx.t-is-visible{visibility:visible}.t-dialog__ctx.t-is-hidden{visibility:hidden}.t-dialog__ctx.t-is-display{display:block}.t-dialog__ctx.t-not-display{display:none}.t-dialog__ctx .t-dialog__mask{background:var(--td-mask-active);height:100%;left:0;pointer-events:auto;position:fixed;top:0;width:100%;z-index:1}.t-dialog__ctx .t-dialog__wrap{height:100%;left:0;overflow:auto;position:fixed;top:0;width:100%;z-index:1}@-moz-document url-prefix(){.t-dialog__ctx .t-dialog__wrap{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-dialog__ctx .t-dialog__wrap::-webkit-scrollbar{height:8px;width:8px}.t-dialog__ctx .t-dialog__wrap::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid transparent;border-radius:15px}.t-dialog__ctx .t-dialog__wrap::-webkit-scrollbar-thumb:horizontal:hover,.t-dialog__ctx .t-dialog__wrap::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-dialog__ctx .t-dialog__position{box-sizing:border-box;display:flex;justify-content:center;min-height:100%;padding:48px 0;position:relative;width:100%}.t-dialog__ctx .t-dialog__position.t-dialog--top{align-items:flex-start;padding-top:20vh}.t-dialog__ctx .t-dialog__position.t-dialog--center{align-items:center}.t-dialog__ctx .t-dialog__position_fullscreen{box-sizing:border-box;display:flex;justify-content:center;min-height:100%;position:relative;width:100%}.t-dialog__ctx .t-is-hidden{background:none}.t-dialog__ctx .t-dialog{pointer-events:auto;z-index:2500}.t-dialog__ctx.t-dialog__ctx--modeless .t-dialog{box-shadow:var(--td-shadow-3)}.t-image-viewer__img-error{background-color:var(--td-bg-color-component-disabled);border-radius:4px;color:#000;cursor:inherit;height:440px;width:440px}.t-image-viewer__img-error .t-image-viewer__img-error-content{align-content:center;align-items:center;display:flex;flex-direction:column;flex-wrap:wrap;font:var(--td-font-body-medium);height:100%;justify-content:center;width:100%}.t-image-viewer__img-error .t-image-viewer__img-error-content .t-image-viewer__img-error-text{margin-top:var(--td-comp-margin-s)}@keyframes modal-image-hide{0%{transform:scale(1)}to{transform:scale(0)}}@keyframes modal-mask-show{0%{opacity:0}to{opacity:1}}@keyframes modal-mask-hide{0%{opacity:1}to{opacity:0}}.t-image-viewer-preview-image{animation:modal-mask-show .2s cubic-bezier(.82,0,1,.9);bottom:0;left:0;overflow:hidden;position:fixed;right:0;top:0;z-index:3000}.t-image-viewer-preview-image.t-is-hide{animation:modal-mask-hide .2s cubic-bezier(0,0,.15,1) forwards}.t-image-viewer-preview-image.t-is-hide .t-image-viewer__modal-pic .t-image-viewer__modal-box{animation:modal-image-hide .2s cubic-bezier(0,0,.15,1) forwards}.t-image-viewer-preview-image .t-image-viewer__modal-index{background:rgba(0,0,0,.4);border-radius:var(--td-radius-default);color:var(--td-text-color-anti);font-size:var(--td-font-size-body-medium);left:50%;padding:var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-s);position:absolute;text-align:center;top:92px;transform:translateX(-50%);z-index:1}.t-image-viewer-preview-image .t-image-viewer__modal-mask{background-color:var(--td-mask-active);bottom:0;height:100%;left:0;opacity:1;position:fixed;right:0;top:0;transition:all .2s ease;width:100%}.t-image-viewer-preview-image .t-image-viewer__modal-pic{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.t-image-viewer-preview-image .t-image-viewer__modal-pic .t-image-viewer__modal-box{align-items:center;animation:modal-image-show .2s cubic-bezier(.38,0,.24,1);display:flex;height:100%;justify-content:center;width:100%}.t-image-viewer-preview-image .t-image-viewer__modal-pic .t-image-viewer__modal-box .t-image-viewer__modal-image{display:block;max-height:min(90vh,800px);max-width:min(90vw,1000px);object-fit:contain;transform:rotate(0deg);transition:all .2s cubic-bezier(.38,0,.24,1)}.t-image-viewer-preview-image .t-image-viewer__modal-header{align-items:center;background-color:var(--td-bg-color-container);display:flex;height:auto;justify-content:center;padding:0 0 12px;position:absolute;top:0;width:100%;z-index:1}.t-image-viewer-preview-image .t-image-viewer__modal-header.t-is-show{padding:12px 0}@keyframes preview-icon-range{0%{transform:translate(-50%,50%) rotate(0)}to{transform:translate(-50%,50%) rotate(-180deg)}}@keyframes preview-icon-unrange{0%{transform:translate(-50%,50%) rotate(-180deg)}to{transform:translate(-50%,50%) rotate(0)}}.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-pre-bt{align-items:center;animation:preview-icon-unrange .2s cubic-bezier(.38,0,.24,1) 0s 1 normal forwards running;background-color:var(--td-bg-color-container);border-radius:50%;bottom:0;box-shadow:var(--td-shadow-inset-top),var(--td-shadow-inset-right),var(--td-shadow-inset-bottom),var(--td-shadow-inset-left);color:var(--td-text-color-primary);display:inline-flex;height:var(--td-comp-size-xxs);justify-content:center;left:50%;position:absolute;transform:translate(-50%,50%);width:var(--td-comp-size-xxs)}.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-pre-bt .t-icon{font-size:var(--td-font-size-body-large)}.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-pre-bt:hover{background-color:inherit}@keyframes preview-image-show{0%{height:0}to{height:40px}}@keyframes preview-image-hide{0%{height:40px}to{height:0}}.t-image-viewer-preview-image .t-image-viewer__modal-header.t-is-show .t-image-viewer__header-prev{animation:preview-image-show .2s cubic-bezier(.38,0,.24,1) 0s 1 normal forwards running}.t-image-viewer-preview-image .t-image-viewer__modal-header.t-is-show .t-image-viewer__header-pre-bt{animation:preview-icon-range .2s cubic-bezier(.38,0,.24,1) 0s 1 normal forwards running}.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-prev{animation:preview-image-hide .2s cubic-bezier(.38,0,.24,1) 0s 1 normal forwards running;display:flex;overflow:hidden;position:relative;width:521.77778px}.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-prev:after,.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-prev:before{content:"";height:100%;pointer-events:none;position:absolute;width:71.11111px;z-index:1}.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-prev:before{background-image:linear-gradient(to right,var(--td-bg-color-container),hsla(0,0%,100%,0));left:0}.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-prev:after{background-image:linear-gradient(to right,hsla(0,0%,100%,0),var(--td-bg-color-container));right:0}.t-image-viewer-preview-image .t-image-viewer__header-trans{align-items:center;display:flex;gap:4px;height:100%;justify-content:center;margin-left:225.33333px;transition:transform .2s}.t-image-viewer-preview-image .t-image-viewer__header-box{align-items:center;background-color:var(--td-bg-color-secondarycontainer);border:1px solid transparent;border-radius:var(--td-radius-default);box-sizing:border-box;display:flex;height:40px;justify-content:center;overflow:hidden;position:relative;transition:.2s;width:71.11111px}.t-image-viewer-preview-image .t-image-viewer__header-box .t-image-viewer__header-img{height:100%;width:auto}.t-image-viewer-preview-image .t-image-viewer__header-box.t-is-active,.t-image-viewer-preview-image .t-image-viewer__header-box:hover{border-color:var(--td-brand-color)}.t-image-viewer-preview-image .t-image-viewer__modal-icon{border-radius:var(--td-radius-default);color:var(--td-text-color-primary);cursor:pointer;transition:.2s}.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-close-bt{right:40px;top:100px}.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-next-bt,.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-prev-bt{top:50%;transform:translateY(-50%)}.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-prev-bt{left:40px}.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-next-bt{right:40px}.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-close-bt,.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-next-bt,.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-prev-bt{align-items:center;background-color:rgba(0,0,0,.4);border-radius:50%;color:var(--td-text-color-anti);display:flex;height:var(--td-comp-size-xl);justify-content:center;position:fixed;width:var(--td-comp-size-xl);z-index:10}.t-image-viewer-preview-image .t-image-viewer__modal-icon .t-image-viewer__modal-icon-label{margin-left:2px}.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-is-disabled:hover{background-color:rgba(0,0,0,.4)}.t-image-viewer-preview-image .t-image-viewer__modal-icon:hover{background-color:rgba(0,0,0,.2)}.t-image-viewer__mask{background-color:transparent;height:100vh;left:0;position:fixed;top:0;width:100vh;z-index:99}.t-image-viewer__utils{align-items:center;bottom:32px;color:var(--td-text-color-primary);display:flex;height:auto;justify-content:center;position:absolute;user-select:none;width:100%;z-index:1}.t-image-viewer__utils .t-image-viewer__utils-content{align-items:center;background:var(--td-bg-color-container);border-radius:var(--td-radius-medium);display:inline-flex;height:50px;justify-content:center;line-height:100%;padding:0 var(--td-comp-paddingLR-xs)}.t-image-viewer__utils .t-image-viewer__utils-content .t-image-viewer__modal-icon{align-items:center;border-radius:var(--td-radius-default);cursor:pointer;display:flex;height:var(--td-comp-size-m);justify-content:center;margin:0 var(--td-comp-margin-xs);transition:.2s;width:var(--td-comp-size-m)}.t-image-viewer__utils .t-image-viewer__utils-content .t-image-viewer__modal-icon:hover{background-color:var(--td-bg-color-container-hover)}.t-image-viewer__utils .t-image-viewer__utils-content .t-image-viewer__utils-scale{cursor:inherit;text-align:center;width:var(--td-comp-size-xl)}.t-image-viewer__utils .t-image-viewer__utils-content .t-image-viewer__utils-scale:hover{background-color:var(--td-bg-color-container)}.t-image-viewer-mini__footer .t-image-viewer__utils{position:inherit}.t-image-viewer-mini__content{max-height:min(90vh,800px);max-width:min(90vw,1000px)}@keyframes modal-image-show{0%{transform:scale(0)}to{transform:scale(1)}}.t-image-viewer-mini__content .t-image-viewer__modal-pic .t-image-viewer__modal-box{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.t-image-viewer-mini__content .t-image-viewer__modal-pic .t-image-viewer__modal-box .t-image-viewer__modal-image{display:block;max-height:min(80vh,600px);max-width:min(80vw,800px);object-fit:contain;transform:rotate(0deg);transition:all .2s ease}.t-image-viewer__dialog.t-dialog__ctx--fixed{z-index:3000}.t-image-viewer__dialog .t-dialog__header{padding:0 var(--td-comp-paddingLR-s);pointer-events:none}.t-image-viewer__dialog .t-dialog__header .t-image-viewer__dialog-title{pointer-events:all}.t-image-viewer__dialog .t-dialog__header .t-dialog__close{pointer-events:auto}.t-image-viewer__dialog .t-dialog{border-color:var(--td-component-border);box-shadow:var(--td-shadow-3);overflow:hidden;padding:0}.t-image-viewer__dialog .t-dialog__header{background-color:var(--td-bg-color-secondarycontainer);font-size:var(--td-font-size-body-medium);height:40px;width:100%}.t-image-viewer__dialog .t-dialog__header-content{justify-content:center;margin-left:32px}.t-image-viewer__dialog .t-dialog__close:hover{background-color:var(--td-bg-color-secondarycontainer-hover)}.t-list{background:var(--td-bg-color-container);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;overflow:auto;padding:0}@-moz-document url-prefix(){.t-list{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-list::-webkit-scrollbar{height:6px;width:6px}.t-list::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-list::-webkit-scrollbar-thumb:horizontal:hover,.t-list::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-list__inner{list-style:none;margin:0;padding:0}.t-list-item{align-items:center;display:flex;font:var(--td-font-body-medium);justify-content:space-between;padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l);position:relative}.t-list-item:after{bottom:0;content:"";height:1px;left:0;position:absolute;width:100%}.t-list-item-main{align-items:center;display:flex;flex:1;justify-content:space-between;width:100%}.t-list-item__meta{display:flex}.t-list-item__meta-avatar{background:var(--td-bg-color-page);border-radius:calc(var(--td-comp-size-xxxl)/2);flex-shrink:0;height:var(--td-comp-size-xxxl);margin-right:var(--td-comp-margin-l);overflow:hidden;width:var(--td-comp-size-xxxl)}.t-list-item__meta-avatar img{height:100%;max-width:100%;width:100%}.t-list-item__meta-title{color:var(--td-text-color-primary);font:var(--td-font-title-medium);margin:0 0 var(--td-comp-margin-s);padding:0}.t-list-item__meta-description{color:var(--td-text-color-primary);margin-right:var(--td-comp-margin-xxl)}.t-list-item__action{flex-shrink:0;list-style:none;padding:0}.t-list-item__action>li{display:inline-block}.t-list-item__action>li:not(:last-child){margin-right:var(--td-comp-margin-l)}.t-list-item__action>li .t-icon{color:var(--td-text-color-secondary);font-size:var(--td-comp-size-xxxs)}.t-list-item__action>li .t-icon:hover{color:var(--td-text-color-link);cursor:pointer}.t-list-item__action>li>a{color:var(--td-brand-color);text-decoration:none}.t-list--split .t-list-item:after{background:var(--td-border-level-1-color)}.t-list--stripe .t-list-item:nth-child(2n){background:var(--td-bg-color-secondarycontainer)}.t-list--vertical-action .t-list-item{flex-direction:column}.t-list.t-size-s .t-list-item{padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-m)}.t-list.t-size-l .t-list-item{padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-xl)}.t-list__footer,.t-list__header{background:var(--td-bg-color-container);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l)}.t-list__load{background:var(--td-bg-color-container);line-height:var(--td-line-height-body-medium);text-align:center}.t-list__load>div{align-items:center;display:flex;justify-content:center}.t-list__load:not(:empty){padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l)}.t-list__load .t-loading{font-size:var(--td-comp-size-xxxs);margin-right:var(--td-comp-margin-s)}.t-list__load .t-loading.t-is-load-more{cursor:pointer}.t-progress{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-progress__inner{background:var(--td-brand-color);border-radius:var(--td-radius-round);height:100%;position:relative;transition:all .2s cubic-bezier(.38,0,.24,1)}.t-progress__info{color:var(--td-text-color-primary);display:inline-flex;margin-left:var(--td-comp-margin-s);white-space:nowrap}.t-progress__icon{font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-progress__bar{background:var(--td-bg-color-component);border-radius:var(--td-radius-round);height:var(--td-size-3);overflow:hidden;width:100%}.t-progress--thin{align-items:center;display:flex;justify-content:space-between}.t-progress--plump{align-items:center;border-radius:calc(var(--td-comp-size-xxs)/2);display:flex;height:var(--td-comp-size-xxs)}.t-progress--plump .t-progress__info{font-size:var(--td-font-size-body-small)}.t-progress--over-ten .t-progress__info{color:var(--td-text-color-anti);position:absolute;right:var(--td-comp-margin-s);top:50%;transform:translateY(-50%);z-index:10}.t-progress--under-ten .t-progress__info,.t-progress--under-ten .t-progress__inner{display:inline-block}.t-progress--under-ten .t-progress__info{vertical-align:top}.t-progress--circle{position:relative}.t-progress--circle .t-progress__info{display:block;font-size:inherit;font-weight:600;left:50%;line-height:1;margin:0;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%);width:100%}.t-progress--circle .t-progress__circle-outer{stroke:var(--td-bg-color-component)}.t-progress--circle .t-progress__circle-inner{stroke:var(--td-brand-color);transition:all .2s cubic-bezier(.38,0,.24,1)}.t-progress--circle .t-progress__icon{font-size:2.4em}.t-progress--status--active .t-progress__inner:before{animation:progress-active-animation 2s cubic-bezier(.23,.99,.86,.2) infinite;background:var(--td-text-color-anti);bottom:0;content:"";left:0;opacity:.2;position:absolute;right:0;top:0;z-index:1}.t-progress--status--success .t-progress__inner{background:var(--td-success-color)}.t-progress--status--success .t-progress__circle-inner{stroke:var(--td-success-color)}.t-progress--status--success .t-progress__icon{color:var(--td-success-color)}.t-progress--status--warning .t-progress__inner{background:var(--td-warning-color)}.t-progress--status--warning .t-progress__circle-inner{stroke:var(--td-warning-color)}.t-progress--status--warning .t-progress__icon{color:var(--td-warning-color)}.t-progress--status--error .t-progress__inner{background:var(--td-error-color)}.t-progress--status--error .t-progress__circle-inner{stroke:var(--td-error-color)}.t-progress--status--error .t-progress__icon{color:var(--td-error-color)}@keyframes progress-active-animation{0%{opacity:.1;width:0}35%{opacity:.4;width:50%}to{opacity:0;width:100%}}:root,:root[theme-mode=light]{--skeleton-animation-gradient:rgba(0,0,0,.04)}:root[theme-mode=dark]{--skeleton-animation-gradient:hsla(0,0%,100%,.06)}.t-skeleton{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-skeleton__row{align-items:center;display:flex;margin-bottom:var(--td-comp-margin-l)}.t-skeleton__row:last-child,.t-skeleton__row:only-child{margin-bottom:0}.t-skeleton__col{align-items:center;background-color:var(--td-bg-color-secondarycontainer);color:var(--td-text-color-disabled);display:flex;justify-content:center;margin-right:var(--td-comp-margin-l)}.t-skeleton__col:first-child:last-child,.t-skeleton__col:last-child{margin-right:0}.t-skeleton--type-text{border-radius:var(--td-radius-default);height:var(--td-font-size-body-large);width:100%}.t-skeleton--type-rect{border-radius:var(--td-radius-default);height:88px;width:120px}.t-skeleton--type-circle{border-radius:var(--td-radius-circle);flex-shrink:0;height:32px;width:32px}.t-skeleton--animation-gradient{overflow-x:hidden;position:relative}.t-skeleton--animation-gradient:after{animation:t-skeleton--gradient 1.5s linear 2s infinite;background:linear-gradient(90deg,hsla(0,0%,100%,0),var(--skeleton-animation-gradient),hsla(0,0%,100%,0));bottom:0;content:" ";left:0;position:absolute;right:0;top:0}.t-skeleton--animation-flashed{animation:t-skeleton--flashed 2s linear 2s infinite}@keyframes t-skeleton--gradient{0%{transform:translateX(-100%) skewX(-15deg)}to{transform:translateX(100%) skewX(-15deg)}}@keyframes t-skeleton--flashed{0%{opacity:1}50%{background-color:hsla(0,0%,90%,.3);opacity:.3}to{opacity:1}}.t-statistic{color:var(--td-text-color-secondary);display:inline-block;font-size:var(--td-font-size-body-medium);line-height:var(--td-line-height-body-medium)}.t-statistic-title{font-size:var(--td-font-body-medium);margin-bottom:var(--td-comp-margin-s)}.t-statistic-content{color:var(--td-text-color-primary);display:inline-block;text-align:left;white-space:nowrap}.t-statistic-content-value{font-size:var(--td-font-size-headline-medium);line-height:var(--td-line-height-headline-medium)}.t-statistic-content-unit,.t-statistic-content-value{font-family:TCloudNumber,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Hiragino Sans GB,Microsoft YaHei UI,Microsoft YaHei,Source Han Sans CN,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol}.t-statistic-content-unit{font-size:var(--td-font-size-body-medium);margin-left:var(--td-comp-margin-xs)}.t-statistic-content-suffix{margin-left:var(--td-comp-margin-s)}.t-statistic-content-prefix,.t-statistic-content-suffix{align-items:center;display:inline-flex;font-size:var(--td-font-size-title-large)}.t-statistic-content-prefix{margin-right:var(--td-comp-margin-s)}.t-statistic-content-prefix .t-icon{font-size:var(--td-font-size-title-large)}.t-statistic-extra{margin-top:8px}.t-statistic-extra .t-space .t-space-item{display:flex}.t-swiper{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:fit-content;list-style:none;margin:0;padding:0;position:relative}.t-swiper__wrap{display:block;height:100%;position:relative}.t-swiper__content{overflow:hidden;position:relative;z-index:1}.t-swiper__container{display:flex;flex-direction:row;height:100%;position:relative;z-index:1}.t-swiper__container__item{display:inline-block;flex:0 0 auto;height:100%;width:100%}.t-swiper__arrow{align-items:center;display:flex}.t-swiper__arrow svg.t-icon{height:20px;width:20px}.t-swiper__arrow svg.t-icon:before{font-size:24px}.t-swiper__arrow--default .t-swiper__arrow-left{align-items:center;background-color:transparent;color:var(--td-font-white-2);cursor:pointer;display:flex;height:24px;justify-content:center;left:16px;position:absolute;top:50%;transform:translateY(-50%);transition:.2s linear;width:24px;z-index:2}.t-swiper__arrow--default .t-swiper__arrow-left:hover{background-color:var(--td-font-white-4);border-radius:var(--td-radius-default);color:var(--td-bg-color-container);transition:.2s linear}.t-swiper__arrow--default .t-swiper__arrow-left:active{background-color:var(--td-font-white-3);transition:.2s linear}.t-swiper__arrow--default .t-swiper__arrow-right{align-items:center;background-color:transparent;color:var(--td-font-white-2);cursor:pointer;display:flex;height:24px;justify-content:center;position:absolute;right:16px;top:50%;transform:translateY(-50%);transition:.2s linear;width:24px;z-index:2}.t-swiper__arrow--default .t-swiper__arrow-right:hover{background-color:var(--td-font-white-4);border-radius:var(--td-radius-default);color:var(--td-bg-color-container);transition:.2s linear}.t-swiper__arrow--default .t-swiper__arrow-right:active{background-color:var(--td-font-white-3);transition:.2s linear}.t-swiper-card .t-swiper__container{display:block}.t-swiper-card .t-swiper__container .t-is-active{z-index:2}.t-swiper-card .t-swiper__card{height:100%;left:0;position:absolute;top:0;width:41.5%;z-index:0}.t-swiper-fade .t-swiper__container{display:block}.t-swiper-fade .t-swiper__fade{left:0;position:absolute;top:0}.t-swiper__navigation{bottom:0;display:flex;flex-direction:row;left:50%;margin:0;padding:0;position:absolute;transform:translateX(-50%);z-index:2}.t-swiper__navigation>li{display:flex;flex:1 0 auto;list-style-type:none}.t-swiper__navigation .t-swiper__arrow svg.t-icon{height:16px;width:16px}.t-swiper__navigation-bars .t-swiper__navigation-item{cursor:pointer;height:auto;margin:0 0 0 6px;padding:18px 0;width:14px}.t-swiper__navigation-bars .t-swiper__navigation-item span{height:3px;width:100%}.t-swiper__navigation-bars .t-swiper__navigation-item:first-child{margin-left:0}.t-swiper__navigation-bars .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active{width:24px}.t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper__navigation-dots-bar .t-swiper__navigation-item{cursor:pointer;height:auto;margin:0 0 0 6px;padding:18px 0;width:14px}.t-swiper__navigation-dots-bar .t-swiper__navigation-item span{border-radius:1.5px;height:3px;width:100%}.t-swiper__navigation-dots-bar .t-swiper__navigation-item:first-child{margin-left:0}.t-swiper__navigation-dots-bar .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper__navigation-dots-bar .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper__navigation-dots-bar .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper__navigation-dots-bar .t-swiper__navigation-item.t-is-active{width:24px}.t-swiper__navigation-dots-bar .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper__navigation-dots .t-swiper__navigation-item{cursor:pointer;height:auto;margin:0 0 0 6px;padding:18px 0;width:var(--td-size-2)}.t-swiper__navigation-dots .t-swiper__navigation-item span{border-radius:50%;height:var(--td-size-2);width:100%}.t-swiper__navigation-dots .t-swiper__navigation-item:first-child{margin-left:0}.t-swiper__navigation-dots .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper__navigation-dots .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper__navigation-dots .t-swiper__navigation-item span:active,.t-swiper__navigation-dots .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper__navigation--fraction{bottom:calc(-12px - var(--td-line-height-body-medium));height:var(--td-line-height-body-medium);left:50%;line-height:var(--td-line-height-body-medium);position:absolute;right:auto;top:auto;transform:translateX(-50%)}.t-swiper__navigation--fraction .t-swiper__arrow-left{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-medium);justify-content:center;width:var(--td-line-height-body-medium);z-index:2}.t-swiper__navigation--fraction .t-swiper__arrow-left:hover{color:var(--td-text-color-primary)}.t-swiper__navigation--fraction .t-swiper__arrow-left:active{color:var(--td-brand-color-active)}.t-swiper__navigation--fraction .t-swiper__arrow-right{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-medium);justify-content:center;width:var(--td-line-height-body-medium);z-index:2}.t-swiper__navigation--fraction .t-swiper__arrow-right:hover{color:var(--td-text-color-primary)}.t-swiper__navigation--fraction .t-swiper__arrow-right:active{color:var(--td-brand-color-active)}.t-swiper__navigation--fraction .t-swiper__navigation-text-fraction{color:var(--td-text-color-secondary);display:inline-block;font-size:var(--td-font-size-body-medium);margin:0}.t-swiper--vertical .t-swiper__container{flex-direction:column}.t-swiper--vertical .t-swiper__navigation{bottom:auto;display:flex;flex-direction:column;justify-content:center;left:auto;position:absolute;right:0;top:50%;transform:translateY(-50%)}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item{cursor:pointer;height:14px;margin:6px 0 0;padding:0 18px;width:auto}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span{height:100%;width:3px}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item:first-child{margin-top:0}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active{height:24px}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item{cursor:pointer;height:14px;margin:6px 0 0;padding:0 18px;width:auto}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item span{border-radius:1.5px;height:100%;width:3px}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item:first-child{margin-top:0}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item.t-is-active{height:24px}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item{cursor:pointer;margin:6px 0 0;max-height:var(--td-size-2);padding:0 18px;width:auto}.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item span{border-radius:50%;height:100%;width:var(--td-size-2)}.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item:first-child{margin-top:0}.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item span:active,.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--outside .t-swiper__navigation{bottom:-36px}.t-swiper--outside .t-swiper__navigation--fraction{bottom:calc(-12px - var(--td-line-height-body-medium));height:var(--td-line-height-body-medium);left:50%;line-height:var(--td-line-height-body-medium);position:absolute;right:auto;top:auto;transform:translateX(-50%)}.t-swiper--outside .t-swiper__navigation--fraction .t-swiper__arrow-left{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-medium);justify-content:center;width:var(--td-line-height-body-medium);z-index:2}.t-swiper--outside .t-swiper__navigation--fraction .t-swiper__arrow-left:hover{color:var(--td-text-color-primary)}.t-swiper--outside .t-swiper__navigation--fraction .t-swiper__arrow-left:active{color:var(--td-brand-color-active)}.t-swiper--outside .t-swiper__navigation--fraction .t-swiper__arrow-right{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-medium);justify-content:center;width:var(--td-line-height-body-medium);z-index:2}.t-swiper--outside .t-swiper__navigation--fraction .t-swiper__arrow-right:hover{color:var(--td-text-color-primary)}.t-swiper--outside .t-swiper__navigation--fraction .t-swiper__arrow-right:active{color:var(--td-brand-color-active)}.t-swiper--outside .t-swiper__navigation--fraction .t-swiper__navigation-text-fraction{color:var(--td-text-color-secondary);display:inline-block;font-size:var(--td-font-size-body-medium);margin:0}.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--outside .t-swiper__navigation-bars .t-is-active span,.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-brand-color-active)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation{bottom:auto;right:-36px}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction{bottom:calc(-12px - var(--td-line-height-body-medium));height:var(--td-line-height-body-medium);left:50%;line-height:var(--td-line-height-body-medium);position:absolute;right:auto;top:auto;transform:translateX(-50%)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction .t-swiper__arrow-left{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-medium);justify-content:center;width:var(--td-line-height-body-medium);z-index:2}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction .t-swiper__arrow-left:hover{color:var(--td-text-color-primary)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction .t-swiper__arrow-left:active{color:var(--td-brand-color-active)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction .t-swiper__arrow-right{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-medium);justify-content:center;width:var(--td-line-height-body-medium);z-index:2}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction .t-swiper__arrow-right:hover{color:var(--td-text-color-primary)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction .t-swiper__arrow-right:active{color:var(--td-brand-color-active)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction .t-swiper__navigation-text-fraction{color:var(--td-text-color-secondary);display:inline-block;font-size:var(--td-font-size-body-medium);margin:0}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation-bars .t-is-active span,.t-swiper--outside.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-brand-color-active)}.t-swiper--inside .t-swiper__navigation{bottom:0}.t-swiper--inside .t-swiper__navigation--fraction{bottom:calc(-12px - var(--td-line-height-body-medium));height:var(--td-line-height-body-medium);left:50%;line-height:var(--td-line-height-body-medium);position:absolute;right:auto;top:auto;transform:translateX(-50%)}.t-swiper--inside .t-swiper__navigation--fraction .t-swiper__arrow-left{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-medium);justify-content:center;width:var(--td-line-height-body-medium);z-index:2}.t-swiper--inside .t-swiper__navigation--fraction .t-swiper__arrow-left:hover{color:var(--td-text-color-primary)}.t-swiper--inside .t-swiper__navigation--fraction .t-swiper__arrow-left:active{color:var(--td-brand-color-active)}.t-swiper--inside .t-swiper__navigation--fraction .t-swiper__arrow-right{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-medium);justify-content:center;width:var(--td-line-height-body-medium);z-index:2}.t-swiper--inside .t-swiper__navigation--fraction .t-swiper__arrow-right:hover{color:var(--td-text-color-primary)}.t-swiper--inside .t-swiper__navigation--fraction .t-swiper__arrow-right:active{color:var(--td-brand-color-active)}.t-swiper--inside .t-swiper__navigation--fraction .t-swiper__navigation-text-fraction{color:var(--td-text-color-secondary);display:inline-block;font-size:var(--td-font-size-body-medium);margin:0}.t-swiper--large .t-swiper__arrow i.t-icon:before{font-size:32px}.t-swiper--large .t-swiper__arrow--default .t-swiper__arrow-left{height:32px;left:24px;width:32px}.t-swiper--large .t-swiper__arrow--default .t-swiper__arrow-right{height:32px;right:24px;width:32px}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item{cursor:pointer;height:auto;margin:0 0 0 8px;padding:24px 0;width:21px}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item span{height:4px;width:100%}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item:first-child{margin-left:0}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active{width:36px}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--large .t-swiper__navigation--fraction{bottom:calc(-12px - var(--td-line-height-body-large));height:var(--td-line-height-body-large);left:50%;line-height:var(--td-line-height-body-large);position:absolute;right:auto;top:auto;transform:translateX(-50%)}.t-swiper--large .t-swiper__navigation--fraction .t-swiper__arrow-left{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-large);justify-content:center;width:var(--td-line-height-body-large);z-index:2}.t-swiper--large .t-swiper__navigation--fraction .t-swiper__arrow-left:hover{color:var(--td-text-color-primary)}.t-swiper--large .t-swiper__navigation--fraction .t-swiper__arrow-left:active{color:var(--td-brand-color-active)}.t-swiper--large .t-swiper__navigation--fraction .t-swiper__arrow-right{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-large);justify-content:center;width:var(--td-line-height-body-large);z-index:2}.t-swiper--large .t-swiper__navigation--fraction .t-swiper__arrow-right:hover{color:var(--td-text-color-primary)}.t-swiper--large .t-swiper__navigation--fraction .t-swiper__arrow-right:active{color:var(--td-brand-color-active)}.t-swiper--large .t-swiper__navigation--fraction .t-swiper__navigation-text-fraction{color:var(--td-text-color-secondary);display:inline-block;font-size:var(--td-font-size-body-large);margin:0}.t-swiper--large.t-swiper--outside .t-swiper__navigation{bottom:-48px}.t-swiper--large.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--large.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--large.t-swiper--outside .t-swiper__navigation-bars .t-is-active span,.t-swiper--large.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-brand-color-active)}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item{cursor:pointer;height:21px;margin:8px 0 0;padding:0 24px;width:auto}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span{height:100%;width:4px}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item:first-child{margin-top:0}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active{height:36px}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--large.t-swiper--vertical.t-swiper--outside .t-swiper__navigation{right:-48px}.t-swiper--large.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--large.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--large.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-is-active span,.t-swiper--large.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-brand-color-active)}.t-swiper--small .t-swiper__arrow i.t-icon:before{font-size:16px}.t-swiper--small .t-swiper__arrow--default .t-swiper__arrow-left{height:16px;left:8px;width:16px}.t-swiper--small .t-swiper__arrow--default .t-swiper__arrow-right{height:16px;right:8px;width:16px}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item{cursor:pointer;height:auto;margin:0 0 0 4px;padding:12px 0;width:9px}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item span{height:2px;width:100%}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item:first-child{margin-left:0}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active{width:15px}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--small .t-swiper__navigation--fraction{bottom:calc(-12px - var(--td-line-height-body-small));height:var(--td-line-height-body-small);left:50%;line-height:var(--td-line-height-body-small);position:absolute;right:auto;top:auto;transform:translateX(-50%)}.t-swiper--small .t-swiper__navigation--fraction .t-swiper__arrow-left{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-small);justify-content:center;width:var(--td-line-height-body-small);z-index:2}.t-swiper--small .t-swiper__navigation--fraction .t-swiper__arrow-left:hover{color:var(--td-text-color-primary)}.t-swiper--small .t-swiper__navigation--fraction .t-swiper__arrow-left:active{color:var(--td-brand-color-active)}.t-swiper--small .t-swiper__navigation--fraction .t-swiper__arrow-right{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-small);justify-content:center;width:var(--td-line-height-body-small);z-index:2}.t-swiper--small .t-swiper__navigation--fraction .t-swiper__arrow-right:hover{color:var(--td-text-color-primary)}.t-swiper--small .t-swiper__navigation--fraction .t-swiper__arrow-right:active{color:var(--td-brand-color-active)}.t-swiper--small .t-swiper__navigation--fraction .t-swiper__navigation-text-fraction{color:var(--td-text-color-secondary);display:inline-block;font-size:var(--td-font-size-body-small);margin:0}.t-swiper--small.t-swiper--outside .t-swiper__navigation{bottom:-24px}.t-swiper--small.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--small.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--small.t-swiper--outside .t-swiper__navigation-bars .t-is-active span,.t-swiper--small.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-brand-color-active)}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item{cursor:pointer;height:9px;margin:4px 0 0;padding:0 12px;width:auto}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span{height:100%;width:2px}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item:first-child{margin-top:0}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active{height:15px}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--small.t-swiper--vertical.t-swiper--outside .t-swiper__navigation{right:-24px}.t-swiper--small.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--small.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--small.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-is-active span,.t-swiper--small.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-brand-color-active)}@-moz-document url-prefix(){.scrollbar{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.scrollbar::-webkit-scrollbar{height:6px;width:6px}.scrollbar::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.scrollbar::-webkit-scrollbar-thumb:horizontal:hover,.scrollbar::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.scrollbar.t-table__affixed-footer-elm::-webkit-scrollbar-track,.scrollbar.t-table__scrollbar--obvious::-webkit-scrollbar-track{background:var(--td-scroll-track-color)}.t-table--width-overflow.t-table--footer-affixed .t-table__content::-webkit-scrollbar-thumb,.t-table--width-overflow.t-table--horizontal-bar-affixed .t-table__content::-webkit-scrollbar-thumb,.t-table__affixed-footer-wrap>.scrollbar.t-table__affixed-footer-elm::-webkit-scrollbar-thumb{background:transparent}.t-table.t-table--overflow-visible{overflow:initial}.t-table{background-color:var(--td-bg-color-container);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative;width:100%}.t-table .t-popup:not(.t-tooltip)[data-popper-placement^=top] .t-popup__arrow{bottom:-4px}.t-table:focus-visible{outline:none}.t-table .t-loading--full{z-index:72}.t-table.t-vertical-align-top td:not(.t-table__cell-check),.t-table.t-vertical-align-top th:not(.t-table__cell-check){vertical-align:top}.t-table.t-vertical-align-middle td:not(.t-table__cell-check),.t-table.t-vertical-align-middle th:not(.t-table__cell-check){vertical-align:middle}.t-table.t-vertical-align-bottom td:not(.t-table__cell-check),.t-table.t-vertical-align-bottom th:not(.t-table__cell-check){vertical-align:bottom}.t-table .t-table__resize-line{border-left:1px solid var(--td-component-border);display:none;left:10px;position:absolute;width:0;z-index:1001}.t-table__column-controller-trigger.t-align-bottom-right,.t-table__column-controller-trigger.t-align-top-right{text-align:right}.t-table__column-controller-trigger{padding:var(--td-comp-paddingTB-l) 0}.t-table__column-controller-item:not(:last-child){margin-bottom:var(--td-comp-margin-l)}.t-table__content{position:relative}@-moz-document url-prefix(){.t-table__content{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-table__content::-webkit-scrollbar{height:6px;width:6px}.t-table__content::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-table__content::-webkit-scrollbar-thumb:horizontal:hover,.t-table__content::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-table__pagination{box-sizing:border-box;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l)}.t-table .t-icon{font-size:var(--td-font-size-body-large)}.t-table table{border-spacing:0;width:100%}.t-table .t-text-ellipsis{word-wrap:normal;line-height:var(--td-line-height-body-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-table td,.t-table th{background-color:inherit;border-bottom:1px solid var(--td-component-border);box-sizing:border-box;font-weight:400;line-height:var(--td-line-height-body-medium);overflow-wrap:break-word;padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l);position:relative;text-align:left}.t-table th.t-table__th-drag{height:0;padding:0;text-align:center}.t-table th,.t-table thead td{color:var(--td-text-color-placeholder)}.t-table td[key=row-select]{padding:13px 0 11px var(--td-comp-paddingLR-l)}.t-table td.t-align-left,.t-table th.t-align-left{text-align:left}.t-table td.t-align-right,.t-table th.t-align-right{text-align:right}.t-table td.t-align-center,.t-table th.t-align-center{text-align:center}.t-table tr{background-color:var(--td-bg-color-container)}.t-table.t-size-s td,.t-table.t-size-s th{padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s)}.t-table.t-size-l td,.t-table.t-size-l th{padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-xl)}.t-table .t-table__expandable-icon-cell,.t-table .t-table__selection-cell{height:0;padding:0}.t-table td.t-table__handle-draggable{height:0;padding:0;text-align:center}.t-table .t-table__cell--selectable>.t-checkbox{vertical-align:middle}.t-table .t-table__cell--selectable+td,.t-table .t-table__cell--selectable+th{padding-left:0}.t-table--bordered td,.t-table--bordered th{border-left:1px solid var(--td-component-border)}.t-table--bordered td.t-table__cell--fixed-left-last:before,.t-table--bordered th.t-table__cell--fixed-left-last:before{border-right:1px solid var(--td-component-border)}.t-table--bordered td.t-table__td-first-col,.t-table--bordered th:first-child,.t-table--bordered:not(.t-table--rowspan-colspan) td:first-child{border-left-width:0}.t-table--bordered .t-table__content{border-left:1px solid var(--td-component-border)}.t-table--bordered .t-table__content::-webkit-scrollbar-corner{background-color:transparent}.t-table--bordered .t-table__content{border:1px solid var(--td-component-border);border-radius:var(--td-radius-default)}.t-table--bordered .t-table--loading{border-bottom:1px solid var(--td-component-border)}.t-table--bordered .t-table__pagination{padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l)}.t-table--bordered .t-table__bottom-content+.t-table__pagination{padding:0}.t-table--bordered.t-table__header--fixed .t-table__content{border-bottom:1px solid var(--td-component-border)}.t-table--bordered .t-table__td-last-row,.t-table--striped:not(.t-table--bordered) td,.t-table--striped:not(.t-table--bordered) th{border-bottom:none}.t-table--striped.t-table--header-fixed>.t-table__content>table>tbody tr:nth-of-type(2n),.t-table--striped:not(.t-table--header-fixed)>.t-table__content>table>tbody>tr:nth-of-type(odd):not(.t-table__expanded-row){background-color:var(--td-bg-color-secondarycontainer)}.t-table--striped.t-table--hoverable.t-table__header--fixed tbody tr:nth-of-type(2n):hover,.t-table--striped.t-table--hoverable:not(.t-table__header--fixed)>.t-table__content>table>tbody tr:nth-of-type(odd):hover{background-color:var(--td-bg-color-secondarycontainer-hover)}.t-table--striped.t-table--hoverable>.t-table__content>table>tbody tr{transition:background-color .2s linear}.t-table--striped.t-table--hoverable>.t-table__content>table>tbody tr:hover{background-color:var(--td-bg-color-container-hover)}.t-table--hoverable tbody tr{transition:background-color .2s linear}.t-table--hoverable tbody tr:hover{background-color:var(--td-bg-color-container-hover)}.t-table.t-table--align-top tbody td{vertical-align:top}.t-table .t-table__cell--highlight{background-color:var(--td-bg-color-secondarycontainer)}.t-table__header--fixed table{table-layout:fixed}.t-table__header--fixed td,.t-table__header--fixed th{overflow-wrap:break-word}.t-table__header--fixed .t-table__header,.t-table__header--fixed.t-table__header{position:relative;width:fit-content;z-index:5}@-moz-document url-prefix(){.t-table__header--fixed .t-table__header{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-table__header--fixed .t-table__header::-webkit-scrollbar{height:6px;width:6px}.t-table__header--fixed .t-table__header::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-table__header--fixed .t-table__header::-webkit-scrollbar-thumb:horizontal:hover,.t-table__header--fixed .t-table__header::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-table__header--fixed .t-table__body{overflow-y:auto;width:fit-content}@-moz-document url-prefix(){.t-table__header--fixed .t-table__body{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-table__header--fixed .t-table__body::-webkit-scrollbar{height:6px;width:6px}.t-table__header--fixed .t-table__body::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-table__header--fixed .t-table__body::-webkit-scrollbar-thumb:horizontal:hover,.t-table__header--fixed .t-table__body::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-table:not(.t-table--bordered) .t-table__cell--selectable+td,.t-table:not(.t-table--bordered) .t-table__cell--selectable+th{padding-left:0}.t-table__cell--fixed.t-table__header--fixed .t-table__header{overflow:hidden;width:100%}.t-table__cell--fixed.t-table__header--fixed .t-table__header .t-table__cell--fixed-left:last-child:after,.t-table__cell--fixed.t-table__header--fixed .t-table__header .t-table__cell--fixed-right:last-child:after{background-color:var(--td-bg-color-secondarycontainer);content:"";height:100%;position:absolute;right:-6px;top:0;width:6px}.t-table__cell--fixed.t-table__header--fixed .t-table__body{overflow:auto scroll}.t-table__cell--fixed .t-table__content{overflow:auto hidden}.t-table__cell--fixed table{min-width:100%;table-layout:fixed}.t-table__cell--fixed td,.t-table__cell--fixed th{position:relative}.t-table__cell--fixed .t-table__cell--fixed-left-last:before{background-color:inherit;z-index:-1}.t-table__cell--fixed .t-table__cell--fixed-left-last:after{bottom:0;content:"";pointer-events:none;position:absolute;right:0;top:0;transform:translateX(100%);transition:box-shadow .3s;z-index:-2}.t-table__cell--fixed .t-table__cell--fixed-right-first:before{background-color:inherit;z-index:-1}.t-table__cell--fixed .t-table__cell--fixed-right-first:after{bottom:0;content:"";left:0;pointer-events:none;position:absolute;top:0;transform:translateX(-100%);transition:box-shadow .3s;z-index:-2}.t-table .t-table__cell-resizable{position:relative}.t-table .t-table__cell-resizable .t-table__cell--resizer{bottom:0;cursor:col-resize;position:absolute;right:-5px;top:0;width:10px;z-index:10}.t-table .t-table__row--disabled{color:var(--td-text-color-disabled)}.t-table .t-table__cell--title{align-items:center;display:flex}.t-table__column-controller-desc{margin-bottom:var(--td-comp-margin-xxl)}.t-table__column-controller-block{border-bottom:1px solid var(--td-component-border);border:1px solid var(--td-component-border);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l)}.t-table__column-controller-block+.t-table__column-controller-block{border-bottom:1px solid var(--td-component-border);border-top:0;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l)}.t-table__column-controller--fixed .t-checkbox{width:108px}.t-table.t-table__row--active-multiple tbody>tr.t-table__row--active,.t-table.t-table__row--active-single tbody>tr.t-table__row--active{background-color:var(--td-brand-color-light)}.t-table.t-table--hoverable tbody>tr.t-table__row--active:hover,.t-table.t-table__row--active-multiple tbody>tr.t-table__row--active.t-table__row--hover,.t-table.t-table__row--active-single tbody>tr.t-table__row--active.t-table__row--hover{background-color:var(--td-brand-color-light-hover)}.t-table.t-table--row-expandable tbody>tr.t-table__row--hover,.t-table.t-table--row-select tbody>tr.t-table__row--hover,.t-table.t-table__row--active-multiple tbody>tr.t-table__row--hover{background-color:var(--td-bg-color-container-hover)}.t-table--bordered .t-table__cell--filterable .t-table__cell--title,.t-table--bordered .t-table__cell--sortable .t-table__cell--title{justify-content:space-between}.t-table th.t-align-right .t-table__cell--title{justify-content:flex-end}.t-table__cell--sort-trigger{text-align:center;vertical-align:text-bottom}.t-table__cell--sort-trigger svg{vertical-align:initial}.t-table--loading{position:relative}.t-table--loading-progressbar{animation:tTableProgressbar 2s ease-in-out;animation-fill-mode:both;background-color:var(--td-brand-color);height:1px;left:0;overflow:hidden;position:absolute;top:0}.t-table--loading-message{align-items:center;color:var(--td-text-color-placeholder);display:flex;justify-content:center;min-height:120px}.t-table__expanded-cell{padding-left:45px}.t-table__async-loading{text-align:center}.t-table__async-loading.t-is-load-more{cursor:pointer}.t-table__empty{align-items:center;color:var(--td-text-color-disabled);display:flex;justify-content:center;min-height:120px}.t-table__filter-icon,.t-table__sort-icon{align-items:center;background-color:transparent;cursor:pointer;display:inline-flex;transition:.2s linear;vertical-align:text-bottom}.t-table__filter-icon>svg,.t-table__sort-icon>svg{margin-top:0}.t-table__sort-icon .t-is-focus,.t-table__sort-icon.t-is-focus,.t-table__sort-icon:hover{border-radius:var(--td-radius-circle);color:var(--td-brand-color);transition:.2s linear}.t-table__filter-icon .t-is-focus,.t-table__filter-icon.t-is-focus,.t-table__filter-icon:hover{color:var(--td-brand-color);transition:.2s linear}.t-table__filter-pop .t-popup__content{padding:0}.t-table__filter-pop .t-table__filter-pop-content .t-table__filter-pop-content-inner{padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l)}.t-table__filter-pop .t-table__filter-pop-content .t-table__filter-pop-content-inner .t-table__filter-popup-input{margin-bottom:var(--td-comp-margin-s)}.t-table__filter-pop .t-table__filter-pop-content .t-radio-group{display:block;height:auto}.t-table__filter-pop .t-table__filter-pop-content .t-checkbox-group{display:block}.t-table__filter-pop .t-table__filter-pop-content .t-checkbox,.t-table__filter-pop .t-table__filter-pop-content .t-radio{display:block;margin:var(--td-comp-margin-xs) 0}.t-table__filter-pop .t-table__filter-pop-content .t-table__filter-pop-content-button{border-top:1px solid var(--td-component-border);padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l)}.t-table__filter-pop .t-table__filter-pop-content .t-table__filter-pop-content-button .t-button+.t-button{margin-left:var(--td-comp-margin-l)}.t-table__filter-pop .t-table__list-filter-input--sticky .t-table__filter-pop-content .t-table__filter-pop-content-inner{max-height:280px;overflow:auto;padding:0;position:relative}.t-table__filter-pop .t-table__list-filter-input--sticky .t-table__filter-pop-content .t-table__filter-pop-content-inner .t-input__wrap{background-color:var(--td-bg-color-container);padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l) 0 var(--td-comp-paddingLR-l);position:sticky;top:0;z-index:1}.t-table__filter-pop .t-table__list-filter-input--sticky .t-table__filter-pop-content .t-table__filter-pop-content-inner .t-radio-group{padding:0 var(--td-comp-paddingLR-l)}.t-table__filter-pop-content-inner>.t-input__wrap{width:200px}.t-table__filter-pop-content-inner>.t-date-range-picker__panel{margin:calc(0px - var(--td-comp-margin-l))}.t-table__sort-icon--active{color:var(--td-brand-color);transition:.2s linear}.t-table__double-icons{display:flex;flex-direction:column;justify-content:center}.t-table__double-icons .t-table__sort-icon{position:relative}.t-table__double-icons .t-table-sort-asc{top:var(--td-comp-margin-xxs)}.t-table__double-icons .t-table-sort-desc{bottom:var(--td-comp-margin-xxs)}.t-table__filter-icon-wrap{align-items:center;display:flex;height:var(--td-font-size-body-large);margin-left:var(--td-comp-margin-s);pointer-events:all;width:var(--td-font-size-body-large)}.t-table--bordered .t-table__filter-icon-wrap{justify-content:flex-end}.t-table--bordered .t-table__cell--sortable.t-table__cell--filterable .t-table__filter-icon-wrap{flex:1;justify-content:space-between}.t-table .t-align-center .t-table__cell--filterable,.t-table .t-align-center .t-table__cell--sortable{display:flex;justify-content:space-around}.t-table__expand-box{align-items:center;color:var(--td-text-color-placeholder);cursor:pointer;display:flex;height:100%;justify-content:center;transition:all .2s cubic-bezier(.38,0,.24,1) 0s;width:100%}.t-table__expand-box:hover{color:var(--td-brand-color);transition:.2s linear}@keyframes tTableProgressbar{0%{width:0}to{width:100%}}.t-table__th-row-select .t-table__th-cell-inner{align-items:center;display:inline-flex}.t-table-expandable-icon-cell+.t-table__cell--selectable[key=row-select]{padding-left:var(--td-comp-margin-s)}.t-table__filter--bottom-buttons{border-top:1px solid var(--td-component-border);display:flex;justify-content:flex-end;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l)}.t-table__filter--bottom-buttons>.t-button+.t-button{margin-left:var(--td-comp-margin-s)}.t-table__row-filter-inner{left:0;position:sticky;text-align:center}.t-table__filter-result{align-items:center;display:flex;justify-content:center}.t-table__filter-result>.t-button{margin-left:var(--td-comp-margin-s)}.t-table--layout-fixed{table-layout:fixed}.t-table--layout-auto{table-layout:auto}.t-table__ellipsis{white-space:nowrap;width:100%}.t-table__content{overflow:auto}.t-table__content--scrollable-to-left .t-table__cell--fixed-left-last:after{border-right:2px solid var(--td-component-border)}.t-table__content--scrollable-to-right .t-table__cell--fixed-right-first:after{border-left:2px solid var(--td-component-border)}.t-table--bordered.t-table__content--scrollable-to-left .t-table__cell--fixed-left-last:after{border-right:4px solid var(--td-component-border)}.t-table--bordered.t-table__content--scrollable-to-right .t-table__cell--fixed-right-first:after{border-left:4px solid var(--td-component-border)}.t-table__scroll-bar-divider{border-right:1px solid var(--td-component-border);bottom:0;height:100%;position:absolute;right:0;z-index:71}.t-table__footer,.t-table__header.t-table__header--fixed{position:sticky;z-index:50}.t-table:not(.t-table--striped) .t-table__footer>tr,.t-table__header--fixed:not(.t-table__header--multiple)>tr>th{background-color:var(--td-bg-color-secondarycontainer)}.t-table__row--fixed-bottom,.t-table__row--fixed-top{position:sticky;z-index:70}.t-table__row--fixed-bottom-first>td{border-top:1px solid var(--td-component-border)}.t-table--bordered .t-table__content .t-table__row--without-border-bottom>td,.t-table--bordered tbody>tr:last-child>td,.t-table--bordered tfoot>tr:last-child>td{border-bottom:0}.t-table--bordered tfoot>tr:first-child>td{border-top:1px solid var(--td-component-border)}.t-table__header.t-table__header--fixed{top:0}.t-table__footer.t-table__footer--fixed{bottom:0}.t-table--column-fixed .t-table__cell--fixed-left-last:before{background-color:inherit;z-index:-1}.t-table--column-fixed .t-table__cell--fixed-left-last:after{bottom:0;content:"";pointer-events:none;position:absolute;right:0;top:0;transform:translateX(100%);transition:box-shadow .3s;z-index:-2}.t-table--column-fixed .t-table__cell--fixed-right-first:before{background-color:inherit;z-index:-1}.t-table--column-fixed .t-table__cell--fixed-right-first:after{bottom:0;content:"";left:0;pointer-events:none;position:absolute;top:0;transform:translateX(-100%);transition:box-shadow .3s;z-index:-2}.t-table--column-fixed .t-table__cell--fixed-left,.t-table--column-fixed .t-table__cell--fixed-right{position:sticky}.t-table--column-fixed .t-table__cell--fixed-left{z-index:30}.t-table--column-fixed .t-table__cell--fixed-right{z-index:31}.t-table__empty-row>td{border:0;padding:0}.t-table:not(.t-table--bordered) .t-table__header.t-table--bordered>tr:first-child>th{border-top:1px solid var(--td-component-border)}.t-table--multiple-header .t-table__header th.t-table__header-th--bordered{border-left-width:1px}.t-table__header.t-table__header--multiple>tr{background-color:var(--td-bg-color-container)}.t-table__tree-op-icon{cursor:pointer;display:inline-flex;margin-right:var(--td-comp-margin-s);vertical-align:-3px}.t-table__tree-op-icon:hover{color:var(--td-brand-color);transition:.2s linear}.t-table__tree-leaf-node .t-table__tree-op-icon{margin-right:var(--td-comp-margin-xxs);min-width:0}.t-table__virtual-scroll-cursor{height:1px;position:absolute;transition:transform .2s;width:1px}.t-table__virtual-scroll-header{left:0;position:absolute;z-index:51}.t-table__affixed-header-elm-wrap{overflow:hidden}.t-table__affixed-header-elm,.t-table__affixed-header-elm-wrap{left:0;position:absolute;z-index:51}.t-table__affixed-header-elm{opacity:1;overflow:auto;transition:opacity .2s linear}.t-table__affixed-footer-elm{overflow:auto;z-index:50}.t-table--bordered .t-table__affixed-header-elm{border:1px solid var(--td-component-border);border-bottom:0;border-right:0}.t-table--bordered .t-table__affixed-footer-elm{border-bottom:1px solid var(--td-component-border);border-left:1px solid var(--td-component-border)}.t-table--multiple-header.t-table--bordered .t-table__affixed-header-elm{border-right:0}.t-is-hidden{display:none}.t-positive-rotate-90{transform:rotate(90deg)}.t-negative-rotate-180{transform:rotate(180deg)}.t-table__expanded-row>td,.t-table__row--full>td{padding:0}.t-table__row-full-element{padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l)}.t-table__row-full-inner{left:0;position:sticky}.t-table__row-full-inner:not(.t-table__empty){display:inline-block}.t-table__tree-col{align-items:center;display:flex}.t-table__tree-col--inline{display:inline}.t-table--full-height{height:100%}.t-table--loading .t-table__content{min-height:168px}.t-table--row-draggable tr,.t-table__handle-draggable:hover,.t-table__th--drag-sort{cursor:move}.t-table__ele--draggable-chosen{box-shadow:var(--td-shadow-1)}.t-table:not(.t-table--row-edit) .t-table__cell--editable{cursor:pointer;line-height:var(--td-line-height-body-medium);min-height:22px}.t-table:not(.t-table--row-edit) .t-table__cell--editable .t-icon{color:var(--td-text-color-placeholder);font-size:var(--td-font-size-body-large);margin-left:var(--td-comp-margin-s);transition:.2s linear}.t-table:not(.t-table--row-edit) .t-table__cell--editable .t-icon:hover{color:var(--td-brand-color)}.t-table:not(.t-table--row-edit) .t-table__cell--editable:hover{transition:.2s linear}.t-affix .t-table__pagination{background-color:var(--td-bg-color-container)}.t-table--bordered .t-affix .t-table__pagination{border-top:1px solid var(--td-component-border)}.t-table__bottom-content+.t-table__pagination-wrap .t-table__pagination{border:0;padding:0}.t-table--column-resizable:not(.t-table--bordered) th{border-top:1px solid transparent}.t-table--column-resizable:not(.t-table--bordered) thead.t-table__header th:not(:last-child){border-right:1px solid transparent}.t-table--column-resizable:not(.t-table--bordered) thead.t-table__header:hover th:not(:last-child){border-right:1px solid var(--td-component-border)}.t-table--column-resizable:not(.t-table--bordered) thead.t-table__header:hover th{border-top:1px solid var(--td-component-border)}.t-table--column-resizable:not(.t-table--bordered).t-table__content--scrollable-to-left thead.t-table__header:hover .t-table__cell--fixed-left-last:not(:last-child),.t-table--column-resizable:not(.t-table--bordered).t-table__content--scrollable-to-left.t-table__content--scrollable-to-right thead.t-table__header:hover .t-table__cell--fixed-left-last:not(:last-child){border-right:0}.t-table td.t-table__cell-check,.t-table th.t-table__cell-check{height:0;padding:0}.t-table td.t-table__cell-check .t-checkbox__label:empty,.t-table td.t-table__cell-check .t-radio__label:empty,.t-table th.t-table__cell-check .t-checkbox__label:empty,.t-table th.t-table__cell-check .t-radio__label:empty{display:none}.t-table .t-table__cell-check .t-checkbox,.t-table .t-table__cell-check .t-radio,.t-table .t-table__cell-check .t-table__th-cell-inner{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.t-table td .t-input__tips{position:static}.t-table .t-table__sort-column{background-color:var(--td-bg-color-secondarycontainer)}.t-table__ellipsis-content.t-size-s .t-popup__content,.t-timeline{font:var(--td-font-body-medium)}.t-timeline{box-sizing:border-box;color:var(--td-text-color-primary);display:flex;flex-direction:column;list-style:none;margin:0;padding:0}.t-timeline-item{display:flex;flex-direction:row;min-height:72px;position:relative}.t-timeline-item__label.t-timeline-item__label--alternate{position:absolute}.t-timeline-item__wrapper{position:relative;width:8px}.t-timeline-item__wrapper .t-timeline-item__dot{border:2px solid transparent;border-radius:50%;box-sizing:unset;height:4px;position:absolute;top:8px;width:4px}.t-timeline-item__wrapper .t-timeline-item__dot--primary{border-color:var(--td-brand-color)}.t-timeline-item__wrapper .t-timeline-item__dot--default{border-color:var(--td-component-border)}.t-timeline-item__wrapper .t-timeline-item__dot--success{border-color:var(--td-success-color)}.t-timeline-item__wrapper .t-timeline-item__dot--warning{border-color:var(--td-warning-color)}.t-timeline-item__wrapper .t-timeline-item__dot--error{border-color:var(--td-error-color)}.t-timeline-item__wrapper .t-timeline-item__dot--custom{border:0;left:50%;position:relative;top:4px;transform:translateX(-50%)}.t-timeline-item__wrapper .t-timeline-item__dot--custom .t-timeline-item__dot-content{left:50%;position:absolute;top:0;transform:translateX(-50%)}.t-timeline-item__wrapper .t-timeline-item__tail{border-left:2px solid transparent;border-color:var(--td-component-border);bottom:0;box-sizing:border-box;height:calc(100% - 24px);left:50%;padding-bottom:var(--td-comp-size-s);position:absolute;transform:translateX(-50%)}.t-timeline-item__wrapper .t-timeline-item__tail--theme-dot{border-style:dashed;border-right:0}.t-timeline-item__label{color:var(--td-text-color-secondary);font-size:var(--td-font-size-body-medium)}.t-timeline-item__content{flex:1;font-size:var(--td-font-size-body-large);padding-left:var(--td-comp-margin-l)}.t-timeline-item--last .t-timeline-item__tail{display:none}.t-timeline-label.t-timeline-label--alternate.t-timeline-left .t-timeline-item__label{left:0;text-align:right}.t-timeline-label.t-timeline-label--alternate.t-timeline-left .t-timeline-item__wrapper{margin-left:100px}.t-timeline-label.t-timeline-label--alternate.t-timeline-right .t-timeline-item__label{right:0;text-align:left}.t-timeline-label.t-timeline-label--alternate.t-timeline-right .t-timeline-item__wrapper{margin-right:100px}.t-timeline-right .t-timeline-item{flex-direction:row-reverse}.t-timeline-right .t-timeline-item__content{padding-left:0;padding-right:var(--td-comp-margin-l);text-align:right}.t-timeline-alternate .t-timeline-item-left{margin-left:calc(50% - 4px)}.t-timeline-alternate .t-timeline-item-right{flex-direction:row-reverse;margin-right:calc(50% - 4px);text-align:right}.t-timeline-alternate .t-timeline-item-right .t-timeline-item__content{padding-left:0;padding-right:var(--td-comp-margin-l)}.t-timeline-label.t-timeline-alternate .t-timeline-item__label{width:100%}.t-timeline-label.t-timeline-alternate .t-timeline-item-left .t-timeline-item__label--alternate{left:0;padding-right:var(--td-comp-margin-l);text-align:right;transform:translateX(-100%)}.t-timeline-label.t-timeline-alternate .t-timeline-item-right .t-timeline-item__label--alternate{padding-left:var(--td-comp-margin-l);right:0;text-align:left;transform:translateX(100%)}.t-timeline-horizontal{align-items:center;flex-direction:row;min-height:200px}.t-timeline-horizontal .t-timeline-item{flex-direction:column;min-width:160px;padding-right:8px}.t-timeline-horizontal .t-timeline-item__wrapper{height:8px;width:100%}.t-timeline-horizontal .t-timeline-item__wrapper .t-timeline-item__dot{border-radius:50%;height:4px;left:unset;position:absolute;top:50%;transform:translateY(-50%);width:4px}.t-timeline-horizontal .t-timeline-item__wrapper .t-timeline-item__dot--custom{border:0;position:relative;top:50%;transform:translateY(-50%)}.t-timeline-horizontal .t-timeline-item__wrapper .t-timeline-item__dot--custom .t-timeline-item__dot-content{left:0;position:absolute;top:50%;transform:translateY(-50%)}.t-timeline-horizontal .t-timeline-item__wrapper .t-timeline-item__tail{border:0;border-top:2px solid transparent;border-color:var(--td-component-border);left:calc(8px + var(--td-comp-margin-s));padding-bottom:0;top:50%;transform:translateY(-50%);width:calc(100% - 8px - var(--td-comp-margin-s))}.t-timeline-horizontal .t-timeline-item__wrapper .t-timeline-item__tail--theme-dot{border-style:dashed;border-right:0}.t-timeline-horizontal .t-timeline-item__content{flex:unset;padding-left:unset;padding-top:var(--td-comp-margin-l)}.t-timeline-vertical .t-timeline-item__content{padding-bottom:var(--td-comp-margin-l)}.t-timeline-label.t-timeline-horizontal.t-timeline-top .t-timeline-item__label--alternate{padding-bottom:0;top:0;transform:translateY(-100%);width:100%}.t-timeline-label.t-timeline-horizontal.t-timeline-bottom .t-timeline-item{flex-direction:column-reverse}.t-timeline-label.t-timeline-horizontal.t-timeline-bottom .t-timeline-item__wrapper{padding-top:0}.t-timeline-label.t-timeline-horizontal.t-timeline-bottom .t-timeline-item__label--alternate{bottom:0;padding-top:var(--td-comp-margin-l);transform:translateY(100%);width:100%}.t-timeline-label.t-timeline-horizontal.t-timeline-bottom .t-timeline-item__content{padding-bottom:var(--td-comp-margin-l);padding-top:0}.t-timeline-label.t-timeline-horizontal.t-timeline-alternate .t-timeline-item-top .t-timeline-item__label--alternate{padding-bottom:var(--td-comp-margin-l);top:0;transform:translateY(-100%);width:100%}.t-timeline-label.t-timeline-horizontal.t-timeline-alternate .t-timeline-item-bottom{flex-direction:column-reverse;position:relative;transform:translateY(calc(-100% + 8px))}.t-timeline-label.t-timeline-horizontal.t-timeline-alternate .t-timeline-item-bottom .t-timeline-item__content{padding-bottom:var(--td-comp-margin-l);padding-top:unset}.t-timeline-label.t-timeline-horizontal.t-timeline-alternate .t-timeline-item-bottom .t-timeline-item__label--alternate{bottom:0;padding-top:var(--td-comp-margin-l);transform:translateY(100%)}.t-collapse{background:var(--td-bg-color-container);border:1px solid var(--td-component-border);border-bottom:0;box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-collapse.t--border-less{border:none}.t-collapse.t--border-less .t-collapse-panel__header{border-bottom:none}.t-collapse.t--border-less .t-collapse-panel__body{background:var(--td-bg-color-container);border:none}.t-collapse-panel__icon{align-items:center;cursor:pointer;display:flex;justify-content:center;transition:all .2s cubic-bezier(.38,0,.24,1)}.t-collapse-panel__icon>.t-fake-arrow{transform:rotate(-90deg);transition:all .2s cubic-bezier(.38,0,.24,1)}.t-collapse-panel__icon--left{margin-right:var(--td-comp-margin-s)}.t-collapse-panel__icon--right{margin-left:var(--td-comp-margin-s)}.t-collapse-panel__icon--active>.t-fake-arrow{transform:rotate(0)}.t-collapse-panel__icon:hover{background-color:var(--td-bg-color-container-hover);border-radius:var(--td-radius-small)}.t-collapse-panel__wrapper{overflow:hidden}.t-collapse-panel__wrapper.t--borderless .t-collapse-panel__header{border-bottom:none}.t-collapse-panel__wrapper.t--borderless .t-collapse-panel__body{background:var(--td-bg-color-container);border:none}.t-collapse-panel__wrapper .t-collapse-panel__header{align-items:center;border-bottom:1px solid var(--td-component-border);display:flex;font:var(--td-font-title-small);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l)}.t-collapse-panel__wrapper .t-collapse-panel__header--blank{flex:1}.t-collapse-panel__wrapper .t-collapse-panel__header.t-is-clickable{cursor:pointer}.t-collapse-panel__wrapper .t-collapse-panel__header-left,.t-collapse-panel__wrapper .t-collapse-panel__header-right,.t-collapse-panel__wrapper .t-collapse-panel__header-right-content{display:flex}.t-collapse-panel__wrapper .t-collapse-panel__body{background:var(--td-bg-color-secondarycontainer);border-bottom:1px solid var(--td-component-border);overflow:inherit}.t-collapse-panel__wrapper .t-collapse-panel__body--collapsed{border:none}.t-collapse-panel__wrapper .t-collapse-panel__content{color:var(--td-text-color-secondary);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l) var(--td-comp-paddingTB-m) calc(var(--td-comp-paddingLR-l) + var(--td-comp-margin-xxl))}.t-collapse-panel.t-is-disabled .t-collapse-panel__header{color:var(--td-text-color-disabled);cursor:not-allowed}.t-collapse-panel.t-is-disabled .t-collapse-panel__icon{cursor:not-allowed;pointer-events:none}.t-collapse-panel.t-is-disabled .t-collapse-panel__body{background:var(--td-bg-color-component-disabled)}.t-collapse-panel.t-is-disabled .t-collapse-panel__content{color:var(--td-text-color-disabled)}.t-rate{align-items:center;display:flex}.t-rate .t-rate__star-top{height:100%;left:0;overflow:hidden;position:absolute;top:0;transition:all .2s cubic-bezier(.38,0,.24,1);width:0}.t-rate .t-rate__star-bottom,.t-rate .t-rate__star-top{display:grid}.t-rate__list{display:flex;list-style:none;margin:0;padding:0}.t-rate__item{cursor:pointer;position:relative;transition:all .2s cubic-bezier(.38,0,.24,1)}.t-rate__item:hover{transform:scale(1.33)}.t-rate__item--half .t-rate__star-top{width:50%}.t-rate__item--full .t-rate__star-top{width:100%}.t-rate__text{font:var(--td-font-mark-medium);margin-left:var(--td-comp-margin-l)}.t-rate__text,.t-typography{color:var(--td-text-color-primary)}.t-typography{font:var(--td-font-body-medium);margin:var(--td-comp-margin-m) 0}h1.t-typography{font:var(--td-font-headline-large);margin-top:var(--td-comp-margin-xxxxl)}h1.t-typography,h2.t-typography{margin-bottom:var(--td-comp-margin-l)}h2.t-typography{font:var(--td-font-headline-medium);margin-top:var(--td-comp-margin-xxxl)}h3.t-typography{font:var(--td-font-headline-small);margin-top:var(--td-comp-margin-xxl)}h3.t-typography,h4.t-typography{margin-bottom:var(--td-comp-margin-m)}h4.t-typography{font:var(--td-font-title-large);margin-top:var(--td-comp-margin-xl)}h5.t-typography{font:var(--td-font-title-medium);margin-bottom:var(--td-comp-margin-m);margin-top:var(--td-comp-margin-l)}h6.t-typography{font:var(--td-font-title-small)}.t-typography strong{font-weight:600}.t-typography mark{background-color:#fcdf47}.t-typography code{background-color:var(--td-bg-color-secondarycontainer);display:inline-block;font:var(--td-font-body-small);font-family:Source Code Pro,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Hiragino Sans GB,Microsoft YaHei UI,Microsoft YaHei;margin:0 var(--td-comp-margin-xs);padding:1px var(--td-comp-paddingLR-s);transition:background-color .2s;white-space:nowrap}.t-typography code,.t-typography code:hover{border:1px solid var(--td-component-border);border-radius:var(--td-radius-default)}.t-typography code:hover{background-color:var(--td-bg-color-secondarycontainer-hover)}.t-typography kbd{background-color:var(--td-bg-color-secondarycontainer);border:1px solid var(--td-component-border);border-radius:var(--td-radius-default);box-shadow:0 1px 0 0 var(--td-component-border);display:inline-block;font:var(--td-font-body-small);font-family:Source Code Pro,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Hiragino Sans GB,Microsoft YaHei UI,Microsoft YaHei;margin:0 var(--td-comp-margin-xs);padding:1px var(--td-comp-paddingLR-s)}.t-typography--disabled{color:var(--td-text-color-disabled);cursor:not-allowed}.t-typography--success{color:var(--td-success-color)}.t-typography--warning{color:var(--td-warning-color)}.t-typography--error{color:var(--td-error-color)}.t-typography--secondary{color:var(--td-text-color-secondary)}.t-typography .t-icon-copy,.t-typography-ellipsis-symbol{color:var(--td-brand-color);cursor:pointer}.t-typography .t-icon-copy:hover,.t-typography-ellipsis-symbol:hover{color:var(--td-brand-color-hover)}.t-typography .t-icon-checked{color:var(--td-success-color)}.t-qrcode{background-color:var(--td-bg-color-container);border:1px solid var(--td-component-border);border-radius:var(--td-radius-medium);box-sizing:border-box;display:flex;padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-m);position:relative}.t-qrcode>canvas{align-self:stretch;flex:auto;min-width:0}.t-qrcode.t-borderless{border-color:transparent}.t-qrcode .t-mask{align-items:center;background-color:var(--td-mask-background);border-radius:var(--td-radius-medium);color:var(--td-text-color-primary);display:flex;flex-direction:column;height:100%;inset-block-start:0;inset-inline-start:0;justify-content:center;line-height:var(--td-line-height-body-medium);position:absolute;text-align:center;width:100%;z-index:300}.t-qrcode .t-expired__text{color:var(--td-text-color-primary);font-weight:600}.t-qrcode .t-expired__button{align-items:center;box-shadow:none;color:var(--td-brand-color);column-gap:var(--td-comp-margin-s);cursor:pointer;display:flex;height:var(--td-comp-size-m);transition:all .2s cubic-bezier(.215,.61,.355,1)}.t-qrcode .t-expired__button:hover{color:var(--td-brand-color-hover)}.t-qrcode .t-scanned{align-items:center;column-gap:var(--td-comp-margin-s);display:flex}.t-qrcode .t-scanned__icon{color:var(--td-success-color)}.t-qrcode-svg{align-items:center;justify-content:center}.t-alert{align-items:flex-start;border-radius:var(--td-radius-medium);box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);list-style:none;margin:0;opacity:1;padding:0;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-xl);transition:opacity .2s}.t-alert.t-is-hidden{display:none}.t-alert--closing{opacity:0}.t-alert--info{background-color:var(--td-brand-color-focus)}.t-alert--info .t-alert__icon,.t-alert--info .t-alert__swiper-trigger--active,.t-alert--info .t-alert__swiper-trigger-wrap{color:var(--td-brand-color)}.t-alert--success{background-color:var(--td-success-color-focus)}.t-alert--success .t-alert__icon{color:var(--td-success-color)}.t-alert--success .t-alert__swiper-trigger-wrap{color:var(--td-success-color-focus)}.t-alert--success .t-alert__swiper-trigger--active{color:var(--td-success-color)}.t-alert--warning{background-color:var(--td-warning-color-focus)}.t-alert--warning .t-alert__icon{color:var(--td-warning-color)}.t-alert--warning .t-alert__swiper-trigger-wrap{color:var(--td-warning-color-focus)}.t-alert--warning .t-alert__swiper-trigger--active{color:var(--td-warning-color)}.t-alert--error{background-color:var(--td-error-color-focus)}.t-alert--error .t-alert__icon{color:var(--td-error-color)}.t-alert--error .t-alert__swiper-trigger-wrap{color:var(--td-error-color-focus)}.t-alert--error .t-alert__swiper-trigger--active{color:var(--td-error-color)}.t-alert__icon{display:inherit;font-size:var(--td-line-height-body-medium)}.t-alert__close,.t-alert__icon{flex:0 0 auto;line-height:var(--td-line-height-body-small)}.t-alert__content{flex:1 1 0;font-size:var(--td-font-size-body-medium);line-height:var(--td-line-height-body-medium);overflow:hidden}.t-alert__message,.t-alert__title{display:flex;width:100%}.t-alert__title{color:var(--td-text-color-primary);font-weight:700}.t-alert__title+.t-alert__message{margin-top:var(--td-comp-margin-s)}.t-alert__description{color:var(--td-text-color-secondary);flex:0 1 auto;transition:height .2s}.t-alert__operation{color:var(--td-brand-color);cursor:pointer;flex:0 0 auto;padding:0 var(--td-comp-paddingLR-s);transition:color .2s}.t-alert__operation:hover{color:var(--td-brand-color-hover)}.t-alert__operation:active{color:var(--td-brand-color-active)}.t-alert__icon+.t-alert__content{margin-left:var(--td-comp-margin-s)}.t-alert__collapse{color:var(--td-brand-color);cursor:pointer;margin-top:var(--td-comp-margin-s)}.t-alert__close{align-items:center;color:var(--td-text-color-secondary);cursor:pointer;display:inline-flex;margin-left:var(--td-comp-margin-l);transition:color .2s}.t-alert__close:hover{color:var(--td-text-color-primary)}.t-alert__close>.t-icon{font-size:calc(var(--td-line-height-body-medium) - 2px);padding:calc((var(--td-line-height-body-medium) - var(--td-line-height-body-medium) - 2px)/2) 0}.t-drawer-fade-appear,.t-drawer-fade-enter{opacity:0}.t-drawer-fade-appear,.t-drawer-fade-enter,.t-drawer-fade-exit{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused;animation-timing-function:linear}.t-drawer-fade-appear.t-drawer-fade-appear-active,.t-drawer-fade-appear.t-drawer-fade-appear-active.t-drawer-fade-appear-to,.t-drawer-fade-enter.t-drawer-fade-enter-active,.t-drawer-fade-enter.t-drawer-fade-enter-active.t-drawer-fade-enter-to{animation-duration:.2s;animation-name:tDrawerFadeIn;animation-play-state:running}.t-drawer-fade-exit.t-drawer-fade-exit-active,.t-drawer-fade-leave-active.t-drawer-fade-leave-to{animation-duration:.2s;animation-name:tDrawerFadeOut;animation-play-state:running}@keyframes tDrawerFadeIn{0%{opacity:0}to{opacity:1}}@keyframes tDrawerFadeOut{0%{opacity:1}to{opacity:0}}.t-drawer{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:100%;list-style:none;margin:0;outline:none;padding:0;pointer-events:none;position:fixed;width:100%;z-index:1500}.t-drawer,.t-drawer--lock{overflow:hidden}.t-drawer--attach{position:absolute}.t-drawer--left,.t-drawer--right{top:0}.t-drawer--left{left:0}.t-drawer--right{right:0}.t-drawer--bottom,.t-drawer--top{left:0}.t-drawer--top{top:0}.t-drawer--bottom{bottom:0}.t-drawer__mask{background-color:var(--td-mask-active);height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .2s cubic-bezier(.38,0,.24,1);width:100%}.t-drawer__content-wrapper{background:var(--td-bg-color-container);box-shadow:var(--td-shadow-2);color:var(--td-text-color-secondary);display:flex;flex-direction:column;font-size:var(--td-font-body-medium);height:16px;overflow:hidden;pointer-events:auto;position:relative;transition:transform .28s cubic-bezier(.38,0,.24,1),visibility .28s cubic-bezier(.38,0,.24,1);width:16px}.t-drawer .t-drawer__content-wrapper{height:100%;position:absolute;visibility:hidden;width:100%}.t-drawer .t-drawer__content-wrapper--left,.t-drawer .t-drawer__content-wrapper--right{top:0}.t-drawer .t-drawer__content-wrapper--left{left:0;transform:translateX(-100%)}.t-drawer .t-drawer__content-wrapper--right{right:0;transform:translateX(100%)}.t-drawer .t-drawer__content-wrapper--bottom,.t-drawer .t-drawer__content-wrapper--top{left:0}.t-drawer .t-drawer__content-wrapper--top{top:0;transform:translateY(-100%)}.t-drawer .t-drawer__content-wrapper--bottom{bottom:0;transform:translateY(100%)}.t-drawer__header{align-items:center;border-bottom:1px solid var(--td-border-level-1-color);border-radius:var(--td-radius-small) var(--td-radius-small) 0 0;box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-title-medium);min-height:var(--td-comp-size-xxxl);padding:0 var(--td-comp-paddingLR-l)}.t-drawer__body{flex:1;overflow:auto}.t-drawer__body,.t-drawer__footer{padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l)}.t-drawer__footer{background-color:var(--td-bg-color-container);border-top:1px solid var(--td-border-level-1-color);box-sizing:border-box;text-align:left;width:100%}.t-drawer__footer .t-button{margin-left:var(--td-comp-margin-s)}.t-drawer__footer .t-button:first-child{margin-left:0}.t-drawer__close-btn{align-items:center;background-color:var(--td-bg-color-container);border-radius:var(--td-radius-default);color:var(--td-text-color-primary);cursor:pointer;display:flex;height:var(--td-comp-size-xs);justify-content:center;position:absolute;right:var(--td-comp-margin-s);top:calc((var(--td-comp-size-xxxl) - var(--td-comp-size-xs))/2);transition:background-color .2s;width:var(--td-comp-size-xs)}.t-drawer__close-btn:hover{background-color:var(--td-bg-color-container-hover)}.t-drawer__close-btn:active{background-color:var(--td-bg-color-container-active)}.t-drawer__close-btn .t-icon{font-size:calc(var(--td-font-size-body-medium) + 2px);vertical-align:unset}.t-drawer--open{height:100%;pointer-events:auto;width:100%}.t-drawer--open>.t-drawer__content-wrapper{visibility:visible}.t-drawer--open>.t-drawer__mask{height:100%;opacity:1;width:100%}.t-drawer--without-mask{pointer-events:none}[tabindex="-1"]:focus{outline:none!important}.t-guide{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-guide--lock{overflow:hidden}.t-guide--absolute{position:absolute}.t-guide--fixed{position:fixed}.t-guide__overlay{bottom:0;left:0;position:fixed;right:0;top:0;z-index:999997}.t-guide__highlight{border-radius:var(--td-radius-default);transition:.2s cubic-bezier(0,0,.15,1);z-index:999998}.t-guide__highlight--dialog{border-radius:var(--td-radius-large)}.t-guide__highlight--mask{box-shadow:0 0 0 0 var(--td-mask-active),var(--td-mask-active) 0 0 0 5000px}.t-guide__highlight--nomask{border:2px solid var(--td-brand-color);border-radius:var(--td-radius-medium);box-sizing:border-box}.t-guide__reference{z-index:999999}.t-guide__wrapper{bottom:0;display:flex;justify-content:center;left:0;padding-top:20vh;position:fixed;right:0;top:0;z-index:999999}.t-guide__wrapper--center{align-items:center;padding-top:0}.t-guide__dialog{animation:tGuideDialogFadeIn .3s ease-out;background:var(--td-bg-color-container);border-radius:var(--td-radius-large);box-sizing:border-box;max-width:500px;min-width:320px;padding:var(--td-comp-paddingTB-xxl) var(--td-comp-paddingLR-xxl)}.t-guide__dialog--nomask{border:1px solid var(--td-component-border)}.t-guide__dialog .t-guide__title{font:var(--td-font-title-medium);font-weight:700}.t-guide__dialog .t-guide__desc{font:var(--td-font-body-medium);margin-top:var(--td-comp-margin-l)}.t-guide__tooltip{max-height:300px;max-width:600px;min-width:240px;padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-s)}.t-guide__title{color:var(--td-text-color-primary);font:var(--td-font-title-small);font-weight:700;text-align:left}.t-guide__desc{color:var(--td-text-color-secondary);font:var(--td-font-body-small);margin-top:var(--td-comp-margin-s);text-align:left}.t-guide__action{align-items:center;display:flex}.t-guide__action button{margin-right:var(--td-comp-margin-s)}.t-guide__action button:last-child{margin-right:0}.t-guide__footer{align-items:center;display:flex}.t-guide__footer--popup{margin-top:var(--td-comp-margin-l)}.t-guide__footer--dialog{margin-top:24px}.t-guide__footer--dialog .t-guide__action{display:flex;justify-content:center}.t-guide__counter{color:var(--td-text-color-placeholder);flex:1;font:var(--td-font-body-small);text-align:left}.t-guide__popup .t-guide__popup--content{background:none;box-shadow:none;padding:0}@keyframes tGuideDialogFadeIn{0%{opacity:0}to{opacity:1}}.t-message{align-items:center;background-color:var(--td-bg-color-container);border-radius:var(--td-radius-medium);box-shadow:var(--td-shadow-3),var(--td-shadow-inset-top),var(--td-shadow-inset-right),var(--td-shadow-inset-bottom),var(--td-shadow-inset-left);box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);list-style:none;margin:0;outline:0;padding:0;padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l);width:fit-content}.t-message .t-loading,.t-message>.t-icon,.t-message>[data-t-icon]>.t-icon{color:var(--td-brand-color);flex-shrink:0;font-size:calc(var(--td-font-size-body-medium) + 6px);margin-right:var(--td-comp-margin-s)}.t-message.t-is-success .t-loading,.t-message.t-is-success>.t-icon,.t-message.t-is-success>[data-t-icon]>.t-icon{color:var(--td-success-color)}.t-message.t-is-warning .t-loading,.t-message.t-is-warning>.t-icon,.t-message.t-is-warning>[data-t-icon]>.t-icon{color:var(--td-warning-color)}.t-message.t-is-error .t-loading,.t-message.t-is-error>.t-icon,.t-message.t-is-error>[data-t-icon]>.t-icon{color:var(--td-error-color)}.t-message.t-is-closable .t-message__close{color:var(--td-text-color-secondary);cursor:pointer;display:inline-flex;margin-left:var(--td-comp-margin-xxl);margin-right:0}.t-message.t-is-closable .t-message__close .t-icon-close{border-radius:var(--td-radius-default);font-size:calc(var(--td-font-size-body-medium) + 2px);transition:all .2s linear}.t-message.t-is-closable .t-message__close .t-icon-close:hover{background:var(--td-bg-color-container-hover)}.t-message.t-is-closable .t-message__close .t-icon-close:active{background:var(--td-bg-color-container-active)}.t-message__list{pointer-events:none;position:fixed;z-index:6000}.t-message__list .t-message{margin-bottom:var(--td-comp-margin-s);pointer-events:auto;word-break:break-all}.t-notification{background-color:var(--td-bg-color-container);border:0;border-radius:var(--td-radius-medium);box-shadow:var(--td-shadow-2),var(--td-shadow-inset-top),var(--td-shadow-inset-right),var(--td-shadow-inset-bottom),var(--td-shadow-inset-left);box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);list-style:none;margin:0;outline:0;padding:0;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l);width:360px}.t-notification__icon{margin-right:var(--td-comp-margin-s);text-align:center;width:calc(var(--td-font-size-body-large) + 8px)}.t-notification__icon .t-icon{font-size:calc(var(--td-font-size-body-large) + 8px)}.t-notification .t-icon.t-is-info{color:var(--td-brand-color)}.t-notification .t-icon.t-is-success{color:var(--td-success-color)}.t-notification .t-icon.t-is-warning{color:var(--td-warning-color)}.t-notification .t-icon.t-is-error{color:var(--td-error-color-6)}.t-notification__main{flex:1}.t-notification__title__wrap{display:flex;justify-content:space-between}.t-notification__title{color:var(--td-text-color-primary);font:var(--td-font-title-medium)}.t-notification .t-icon-close{border-radius:var(--td-radius-default);color:var(--td-text-color-secondary);cursor:pointer;font-size:var(--td-font-size-body-large)}.t-notification .t-icon-close:hover{background:var(--td-bg-color-container-hover)}.t-notification .t-icon-close:active{background:var(--td-bg-color-container-active)}.t-notification__content{-webkit-line-clamp:3;-webkit-box-orient:vertical;color:var(--td-text-color-secondary);display:-webkit-box;font:var(--td-font-body-medium);margin-top:var(--td-comp-margin-s);max-height:66px;overflow:hidden;text-overflow:ellipsis;word-break:break-all}.t-notification__detail{font:var(--td-font-body-medium);margin-top:var(--td-comp-margin-l);text-align:right}.t-notification__detail-item{cursor:pointer}.t-notification__detail-item:hover{background:var(--td-bg-color-container-hover);color:inherit}.t-notification__detail-item:active{background:var(--td-bg-color-container-active);color:inherit}.t-notification__detail-item+.t-notification__detail-item{margin-left:var(--td-comp-margin-s)}.t-notification__detail-item.t-is-active{color:var(--td-brand-color)}.t-notification__show--top-left{left:0;position:fixed;top:0}.t-notification__show--top-left>.t-notification{animation-duration:.3s;animation-name:slidein-top-left}@keyframes slidein-top-left{0%{opacity:0;transform:translate3d(-100%,0,0)}to{opacity:1;transform:translateZ(0)}}.t-notification__show--top-right{position:fixed;right:0;top:0}.t-notification__show--top-right>.t-notification{animation-duration:.3s;animation-name:slidein-top-right}@keyframes slidein-top-right{0%{opacity:0;transform:translate3d(100%,0,0)}to{opacity:1;transform:translateZ(0)}}.t-notification__show--bottom-left{bottom:0;display:flex;flex-direction:column-reverse;left:0;position:fixed}.t-notification__show--bottom-left>.t-notification{animation-duration:.3s;animation-name:slidein-bottom-left}@keyframes slidein-bottom-left{0%{opacity:0;transform:translate3d(-100%,0,0)}to{opacity:1;transform:translateZ(0)}}.t-notification__show--bottom-right{bottom:0;display:flex;flex-direction:column-reverse;position:fixed;right:0}.t-notification__show--bottom-right>.t-notification{animation-duration:.3s;animation-name:slidein-bottom-right}@keyframes slidein-bottom-right{0%{opacity:0;transform:translate3d(100%,0,0)}to{opacity:1;transform:translateZ(0)}}.t-notification-list__show{position:fixed}.t-popconfirm{border-radius:var(--td-radius-medium);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;min-width:160px;padding:0}.t-popconfirm .t-popup__content{padding:0}.t-popconfirm.t-popup[data-popper-placement^=top] .t-popup__arrow{bottom:-4px}.t-popconfirm__content{border-radius:var(--td-radius-medium);padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l);position:relative}.t-popconfirm__body{align-items:flex-start;display:flex;text-align:left}.t-popconfirm__body>.t-icon{display:inline-block;font-size:calc(var(--td-font-size-body-medium) + 6px);margin-right:var(--td-comp-margin-s);padding:calc(var(--td-line-height-body-medium)/2 - var(--td-font-size-body-medium)/2 - 3px) 0}.t-popconfirm__confirm{margin-left:var(--td-comp-margin-s)}.t-popconfirm__inner{color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);max-width:320px;vertical-align:top}.t-popconfirm__icon--warning{color:var(--td-warning-color)}.t-popconfirm__icon--danger{color:var(--td-error-color)}.t-popconfirm__icon--default{color:var(--td-brand-color)}.t-popconfirm__buttons{margin-top:var(--td-comp-margin-l);text-align:right}.t-popconfirm__buttons>span:last-child{margin-right:0}.t-upload{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-upload .t-is-bordered{border:1px solid var(--td-component-border)}.t-upload .t-upload__trigger{display:inline-block}.t-upload .t-icon{flex-shrink:0;font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-upload .t-icon-check-circle-filled{color:var(--td-success-color)}.t-upload .t-icon-error-circle-filled{color:var(--td-error-color)}.t-upload .t-icon-time-filled{color:var(--td-text-color-placeholder)}.t-upload .t-icon-add{color:var(--td-text-color-primary)}.t-upload__list-file{align-items:center;display:flex;height:100px;justify-content:center;margin-right:var(--td-comp-margin-m);overflow:hidden;width:100px}.t-upload__list-file .t-icon{color:var(--td-brand-color);font-size:var(--td-comp-size-xl)}.t-upload__list-item{align-items:center;border:1px solid var(--td-component-border);border-radius:var(--td-radius-default);display:flex;font:var(--td-font-body-medium);height:124px;justify-content:space-between;margin-top:var(--td-comp-margin-m);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-m);width:496px}.t-upload__list-item.t-is--error .t-upload__list-file .t-icon,.t-upload__list-item.t-is--error .t-upload__list-name{color:var(--td-error-color)}.t-upload__list-content{align-items:center;display:flex}.t-upload-list__control{cursor:pointer}.t-upload-list__control:hover{color:var(--td-error-color)}.t-upload__list-img{cursor:pointer;max-height:100%;max-width:100%;object-fit:cover}.t-upload__list-name{word-wrap:normal;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-upload--highlight{color:var(--td-text-color-brand)}.t-upload__single-name{margin-right:var(--td-comp-margin-s)}.t-upload__card{display:flex;flex-wrap:wrap;font:var(--td-font-body-small);gap:var(--td-comp-margin-s);margin:0;overflow:hidden;padding:0;width:100%}.t-upload__card .t-is-disabled :hover{cursor:not-allowed}.t-upload__card-item{box-sizing:border-box;cursor:pointer;list-style:none}.t-upload__card-item:after{content:"";display:block}.t-upload__card-item:hover .t-upload__card-mask{opacity:1;transition:opacity .2s linear}.t-upload__card-item.t-is--error .t-icon-warning_fill{color:var(--td-error-color);margin-bottom:var(--td-comp-margin-s)}.t-upload__card-item.t-is--error .t-upload__card-status{color:var(--td-error-color)}.t-upload__card-item.t-is-background{transition:border-color .2s linear}.t-upload__card .t-icon-loading{margin-bottom:var(--td-comp-margin-s)}.t-upload__card-name{word-wrap:normal;margin-top:var(--td-comp-margin-s);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-upload__card-content{overflow:hidden;padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s)}.t-upload__card-container,.t-upload__card-content{align-items:center;background-color:var(--td-bg-color-secondarycontainer);border:1px dashed var(--td-component-border);border-radius:var(--td-radius-default);box-sizing:border-box;display:flex;height:110px;justify-content:center;position:relative;width:110px}.t-upload__card-container{flex-direction:column;transition:border .2s linear}.t-upload__card-container:hover:not(.t-is-disabled){border-color:var(--td-brand-color);transition:border-color .2s linear}.t-upload__card-container>.t-icon{color:var(--td-text-color-placeholder)}.t-upload__card-container .t-loading,.t-upload__card-container>.t-icon{font-size:var(--td-comp-size-xs);margin-bottom:var(--td-comp-margin-s)}.t-upload__card-container .t-upload__add-text,.t-upload__card-container>p{color:var(--td-text-color-placeholder);margin:0}.t-upload__card-status-wrap{text-align:center}.t-upload__card-status-wrap>svg{margin-bottom:var(--td-comp-margin-s)}.t-upload__card-status-wrap .t-icon,.t-upload__card-status-wrap .t-loading{font-size:var(--td-comp-size-xs)}.t-upload__card-image{height:100%;max-height:100%;max-width:100%;width:100%}.t-upload__card-status{color:var(--td-text-color-disabled);font:var(--td-font-body-small)}.t-upload__card-mask{align-items:center;background-color:var(--td-mask-active);bottom:0;color:var(--td-text-color-anti);display:flex;justify-content:center;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .2s linear;will-change:transform;z-index:2}.t-upload__card-mask-item-divider{border-left:1px solid var(--td-text-color-anti);height:var(--td-comp-size-xxxs);margin:0 var(--td-comp-margin-l)}.t-upload__card-mask-item>.t-icon{cursor:pointer;font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-upload__dialog .t-dialog{max-width:80%}.t-upload__dialog .t-dialog--default{padding:32px}.t-upload__dialog .t-dialog-body{padding-bottom:0}.t-upload__dialog .t-dialog-body-img-box img{display:block;max-height:100%;max-width:100%}.t-upload__dragger{border:1px dashed var(--td-component-border);border-radius:var(--td-radius-small);box-sizing:border-box;color:var(--td-text-color-secondary);cursor:pointer;display:flex;font:var(--td-font-body-medium);height:144px;overflow:auto;padding:var(--td-comp-margin-l);position:relative;transition:border-color .2s linear;width:336px}.t-upload__dragger.t-is--active{background-color:var(--td-bg-color-container-active)}.t-upload__dragger.t-is--active,.t-upload__dragger:hover{border-color:var(--td-brand-color)}.t-upload__dragger-btns{bottom:var(--td-comp-margin-l);position:absolute}.t-upload__dragger .t-size-s{display:block}.t-upload__dragger-center{align-items:center;justify-content:center}.t-upload__dragger-error,.t-upload__dragger-error:hover{border-color:var(--td-error-color)}.t-upload__dragger-text{align-items:center;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);margin-bottom:var(--td-comp-margin-s);max-width:calc(336px - var(--td-comp-margin-l)*2)}.t-upload__dragger-text .t-upload__single-name{word-wrap:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-upload__tips{color:var(--td-text-color-placeholder);display:block;font:var(--td-font-body-small);margin-top:var(--td-comp-margin-s)}.t-upload__tips.t-upload__tips-error{color:var(--td-error-color)}.t-upload__tips.t-upload__tips-warn{color:var(--td-warning-color)}.t-upload__placeholder{color:var(--td-text-color-placeholder)}.t-upload__display-text--margin{margin-top:var(--td-comp-margin-s)}.t-upload__single-display-text{align-items:center;color:var(--td-text-color-secondary);display:flex;font:var(--td-font-body-small)}.t-upload__single-display-text .t-upload__flow-status .t-icon{font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-icon-clear-circle-filled{color:var(--td-text-color-placeholder);margin-top:var(--td-comp-margin-xxs);transition:color .2s linear}.t-icon-clear-circle-filled:hover{color:var(--td-text-color-secondary);cursor:pointer;transition:color .2s linear}.t-upload__single-percent{margin-left:var(--td-comp-margin-xs)}.t-upload__single-progress{align-items:center;color:var(--td-brand-color);display:flex}.t-upload__single-progress .t-loading{flex-shrink:0;font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-upload__single-input-delete{color:var(--td-brand-color);cursor:pointer;font:var(--td-font-body-medium);margin-left:var(--td-comp-margin-l)}.t-upload__single-input-preview{display:flex;flex:1;justify-content:space-between}.t-upload__single-input-text{word-wrap:normal;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-upload__single-file-input{align-items:center;display:flex}.t-upload__single-file-input .t-upload__trigger{margin-left:var(--td-comp-margin-l)}.t-upload__single-file-input .t-upload__single-progress{white-space:nowrap}.t-upload__single-file-input .t-input__inner{align-items:center;display:flex;justify-content:space-between}.t-upload__dragger-progress{display:flex;width:100%}.t-upload__dragger-progress .t-icon,.t-upload__dragger-progress .t-loading{flex-shrink:0;font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-upload__dragger-img-wrap{align-items:center;background-color:var(--td-bg-color-secondarycontainer);border-radius:var(--td-radius-default);display:flex;flex-shrink:0;height:110px;justify-content:center;width:110px}.t-upload__dragger-img-wrap>.t-image__wrapper--shape-square{width:100%}.t-upload__dragger-img-wrap>.t-image__wrapper--shape-square .t-space-item{text-align:center}.t-upload__dragger-img-wrap>img{max-height:100%;max-width:100%}.t-upload__dragger-img-wrap+.t-upload__dragger-progress-info{margin-left:var(--td-comp-margin-l);max-width:calc(226px - var(--td-comp-margin-l)*2 - var(--td-comp-margin-l))}.t-upload__dragger-progress-info{flex:1}.t-upload__dragger-progress-info .t-upload__single-display-text{margin-bottom:var(--td-comp-margin-s)}.t-upload__dragger-progress-info .t-button:hover{background-color:transparent}.t-upload__dragger-progress-cancel,.t-upload__dragger-progress-reupload{margin-right:var(--td-comp-margin-l)}.t-upload__dragger-delete-btn:hover,.t-upload__dragger-progress-cancel:hover,.t-upload__dragger-progress-reupload:hover,.t-upload__dragger-upload-btn:hover{border-color:transparent}.t-upload__flow-image-flow{width:498px}.t-upload__flow{max-width:960px;min-width:498px}.t-upload__flow-placeholder{display:inline-block;margin-left:var(--td-comp-margin-l)}.t-upload__flow-op{align-items:center;display:flex}.t-upload__flow-bottom{display:flex;justify-content:flex-end;margin-top:var(--td-comp-margin-xxl)}.t-upload__flow-bottom .t-button+.t-button{margin-left:var(--td-comp-margin-s)}.t-upload__flow-empty{align-items:center;color:var(--td-text-color-placeholder);display:flex;height:184px;justify-content:center;width:100%}.t-upload__flow-table{border:1px dashed var(--td-component-border);border-collapse:collapse;margin-top:var(--td-comp-margin-xxl);width:100%}.t-upload__flow-table>tbody>tr,.t-upload__flow-table>tfoot>tr,.t-upload__flow-table>thead>tr,.t-upload__flow-table>tr{border-top:1px solid var(--td-component-border)}.t-upload__flow-table>tbody>tr>th,.t-upload__flow-table>tfoot>tr>th,.t-upload__flow-table>thead>tr>th,.t-upload__flow-table>tr>th{background-color:var(--td-bg-color-container);border:1px solid var(--td-component-border);color:var(--td-text-color-placeholder);font-weight:400;text-align:left}.t-upload__flow-table>tbody>tr>td,.t-upload__flow-table>tfoot>tr>td,.t-upload__flow-table>thead>tr>td,.t-upload__flow-table>tr>td{color:var(--td-text-color-primary)}.t-upload__flow-table>tbody>tr>td,.t-upload__flow-table>tbody>tr>th,.t-upload__flow-table>tfoot>tr>td,.t-upload__flow-table>tfoot>tr>th,.t-upload__flow-table>thead>tr>td,.t-upload__flow-table>thead>tr>th,.t-upload__flow-table>tr>td,.t-upload__flow-table>tr>th{padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l)}.t-upload__flow-table__batch-row{border-left:1px solid var(--td-component-border)}.t-upload__flow-button{color:var(--td-text-color-placeholder);cursor:pointer;transition:color .2s linear}.t-upload__flow-button:hover{color:var(--td-text-color-secondary)}.t-upload__flow-status{align-items:center;display:flex}.t-upload__flow-status .t-icon,.t-upload__flow-status .t-loading{font-size:calc(var(--td-font-size-body-medium) + 2px);margin-right:var(--td-comp-margin-s)}.t-upload__flow-card-area{border:1px dashed var(--td-component-border);margin-top:var(--td-comp-margin-xxl);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-m);transition:border .2s linear}.t-upload__flow-card-area:hover{border-color:var(--td-brand-color);transition:border-color .2s linear}.t-upload__icon-delete,.t-upload__single-input-clear{color:var(--td-text-color-placeholder);cursor:pointer;transition:color .2s linear}.t-upload__icon-delete:hover,.t-upload__single-input-clear:hover{color:var(--td-text-color-secondary);transition:color .2s linear}.t-icon.t-upload__single-input-clear{display:none}.t-upload__single-input-preview:hover .t-upload__single-input-clear{display:initial}.t-upload__single-input-preview:hover .t-upload__status-icon{display:none}.t-upload .t-upload__single-name{color:var(--td-text-color-secondary)}.t-upload .t-upload__file-thumbnail{align-items:center;cursor:pointer;display:flex;height:var(--td-comp-size-xxl);justify-content:center;margin-right:var(--td-comp-paddingLR-s);width:var(--td-comp-size-xxl)}.t-upload .t-upload__file-thumbnail>svg{color:var(--td-text-color-placeholder);font-size:var(--td-comp-size-s)}.t-upload__card-name{margin-top:8px}.t-upload--theme-file-input{width:100%}.t-upload__dragger-btns>.t-button{padding:0}.t-upload__file-info{align-items:center;display:flex}.t-upload__card-container.t-is-disabled{cursor:not-allowed}.t-upload__card-container.t-is-disabled .t-icon,.t-upload__card-container.t-is-disabled .t-upload__add-text{color:var(--td-text-color-disabled)} /*# sourceMappingURL=tdesign.min.css.map */ \ No newline at end of file diff --git a/docs/assets/css/tdesign.min.css.map b/docs/assets/css/tdesign.min.css.map index dd06ab1..f733eae 100644 --- a/docs/assets/css/tdesign.min.css.map +++ b/docs/assets/css/tdesign.min.css.map @@ -1 +1 @@ -{"version":3,"sources":["../../packages/common/style/web/_global.less","_global.less","../../packages/common/style/web/mixins/_scrollbar.less","../../packages/common/style/web/theme/_light.less","_index.less","../../packages/common/style/web/theme/_dark.less","../../packages/common/style/web/theme/_radius.less","../../packages/common/style/web/theme/_font.less","../../packages/common/style/web/theme/_size.less","../../packages/common/style/web/components/loading/_index.less","../../packages/common/style/web/mixins/_reset.less","../../packages/common/style/web/components/button/_index.less","../../packages/common/style/web/components/button/_mixin.less","index.css","../../packages/common/style/web/components/link/_index.less","../../packages/common/style/web/components/grid/_index.less","../../packages/common/style/web/components/grid/_mixin.less","../../packages/common/style/web/components/layout/_index.less","../../packages/common/style/web/components/divider/_index.less","../../packages/common/style/web/components/space/_index.less","../../packages/common/style/web/components/descriptions/_index.less","../../packages/common/style/web/components/descriptions/_mixin.less","../../packages/common/style/web/components/affix/_index.less","../../packages/common/style/web/components/popup/_mixin.less","../../packages/common/style/web/components/popup/_index.less","../../packages/common/style/web/components/anchor/_index.less","../../packages/common/style/web/components/tooltip/_index.less","../../packages/common/style/web/components/breadcrumb/_mixin.less","../../packages/common/style/web/components/breadcrumb/_index.less","../../packages/common/style/web/components/dropdown/_index.less","../../packages/common/style/web/components/tabs/_index.less","../../packages/common/style/web/components/tabs/_mixin.less","../../packages/common/style/web/components/menu/_index.less","../../packages/common/style/web/mixins/_layout.less","../../packages/common/style/web/components/input/_mixin.less","../../packages/common/style/web/utilities/_tips.less","../../packages/common/style/web/mixins/_text.less","../../packages/common/style/web/components/input/_index.less","../../packages/common/style/web/components/input-number/_index.less","../../packages/common/style/web/components/tag/_index.less","../../packages/common/style/web/utilities/_animation.less","../../packages/common/style/web/components/tag-input/_index.less","../../packages/common/style/web/components/tag-input/_var.less","../../packages/common/style/web/components/select-input/_index.less","../../packages/common/style/web/components/checkbox/_index.less","../../packages/common/style/web/mixins/_focus.less","../../packages/common/style/web/components/select/_index.less","../../packages/common/style/web/components/input-adornment/_index.less","../../packages/common/style/web/components/pagination/_mini.less","../../packages/common/style/web/components/pagination/_index.less","../../packages/common/style/web/components/pagination/_mixin.less","../../packages/common/style/web/components/steps/_mixin.less","../../packages/common/style/web/components/steps/_index.less","../../packages/common/style/web/components/sticky-tool/_index.less","../../packages/common/style/web/components/sticky-tool/_mixin.less","../../packages/common/style/web/components/back-top/_index.less","../../packages/common/style/web/components/back-top/_mixin.less","../../packages/common/style/web/components/auto-complete/_index.less","../../packages/common/style/web/components/cascader/_index.less","../../packages/common/style/web/components/range-input/_mixin.less","../../packages/common/style/web/components/range-input/_index.less","../../packages/common/style/web/components/date-picker/_index.less","../../packages/common/style/web/components/form/_index.less","../../packages/common/style/web/components/form/_mixin.less","../../packages/common/style/web/components/radio/_index.less","../../packages/common/style/web/components/slider/_index.less","../../packages/common/style/web/components/switch/_index.less","../../packages/common/style/web/components/textarea/_index.less","../../packages/common/style/web/components/textarea/_mixin.less","../../packages/common/style/web/components/transfer/_index.less","../../packages/common/style/web/components/time-picker/_mixin.less","../../packages/common/style/web/components/time-picker/_index.less","../../packages/common/style/web/components/tree/_index.less","../../packages/common/style/web/components/tree-select/_index.less","../../packages/common/style/web/components/color-picker/_index.less","../../packages/common/style/web/components/image/_index.less","../../packages/common/style/web/components/avatar/_index.less","../../packages/common/style/web/components/avatar/_mixin.less","../../packages/common/style/web/components/badge/_index.less","../../packages/common/style/web/components/calendar/_index.less","../../packages/common/style/web/components/card/_index.less","../../packages/common/style/web/components/comment/_index.less","../../packages/common/style/web/components/empty/_index.less","../../packages/common/style/web/components/dialog/_animate.less","../../packages/common/style/web/components/dialog/_index.less","../../packages/common/style/web/components/image-viewer/_index.less","../../packages/common/style/web/components/list/_index.less","../../packages/common/style/web/components/progress/_index.less","../../packages/common/style/web/components/skeleton/_var.less","../../packages/common/style/web/components/skeleton/_index.less","../../packages/common/style/web/components/statistic/_index.less","../../packages/common/style/web/components/swiper/_index.less","../../packages/common/style/web/components/swiper/_mixin.less","../../packages/common/style/web/components/table/_index.less","../../packages/common/style/web/components/table/_mixin.less","../../packages/common/style/web/components/timeline/_index.less","../../packages/common/style/web/components/collapse/_index.less","../../packages/common/style/web/components/rate/_index.less","../../packages/common/style/web/components/typography/_index.less","../../packages/common/style/web/components/alert/_index.less","../../packages/common/style/web/components/drawer/_animate.less","../../packages/common/style/web/components/drawer/_index.less","../../packages/common/style/web/components/guide/_index.less","../../packages/common/style/web/components/message/_index.less","../../packages/common/style/web/components/message/_mixin.less","../../packages/common/style/web/components/notification/_index.less","../../packages/common/style/web/components/notification/_mixin.less","../../packages/common/style/web/components/popconfirm/_index.less","../../packages/common/style/web/components/upload/_index.less","../../packages/common/style/web/components/upload/_mixin.less"],"names":[],"mappings":"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C,6CPsIJ,CO9DK,+CA/DH,sCAAA,CAAA,kCAAA,CAgEI,+BPkEN,COnKE,kHAEE,4CPqKJ,COhJG,yHACC,+CPqJJ,CO7KE,kHAEE,wCP+KJ,CO1JG,yHACC,2CP+JJ,COjFK,wCArEH,4BAAA,CAAA,sCAAA,CAAA,+BP2JF,CO5LE,oGAEE,4BP8LJ,COvLG,oGACC,4BP4LJ,COpLG,sDACC,oCPuLJ,CO1ME,oGAEE,iCP4MJ,COzME,+CACE,kCP2MJ,COxMG,qDACC,+BP0MJ,COlMG,sDACC,yBPqMJ,COxNE,oGAEE,wCP0NJ,COvNE,+CACE,yCPyNJ,COtNG,qDACC,sCPwNJ,COhNG,sDAEC,4BAAA,CADA,gCPmNJ,CO3HO,gEA1EL,kCAAA,CAAA,2BPyMF,CO1OE,oJAEE,iCP4OJ,COzOE,uEACE,kCP2OJ,COxOG,6EACC,2BP0OJ,COlOG,8EACC,yBPqOJ,COxPE,oJAEE,wCP0PJ,COvPE,uEACE,yCPyPJ,COtPG,6EACC,kCPwPJ,COhPG,8EAEC,4BAAA,CADA,gCPmPJ,COtJO,gEA/EL,oCAAA,CAAA,6BPyOF,CO1QE,oJAEE,mCP4QJ,COzQE,uEACE,oCP2QJ,COxQG,6EACC,6BP0QJ,COlQG,8EACC,yBPqQJ,COxRE,oJAEE,0CP0RJ,COvRE,uEACE,2CPyRJ,COtRG,6EACC,oCPwRJ,COhRG,8EAEC,4BAAA,CADA,gCPmRJ,COjLO,gEApFL,oCAAA,CAAA,6BPyQF,CO1SE,oJAEE,mCP4SJ,COzSE,uEACE,oCP2SJ,COxSG,6EACC,6BP0SJ,COlSG,8EACC,yBPqSJ,COxTE,oJAEE,0CP0TJ,COvTE,uEACE,2CPyTJ,COtTG,6EACC,oCPwTJ,COhTG,8EAEC,4BAAA,CADA,gCPmTJ,CO5MO,+DAzFL,kCAAA,CAAA,2BPySF,CO1UE,kJAEE,iCP4UJ,COzUE,sEACE,kCP2UJ,COxUG,4EACC,2BP0UJ,COlUG,6EACC,yBPqUJ,COxVE,kJAEE,wCP0VJ,COvVE,sEACE,yCPyVJ,COtVG,4EACC,kCPwVJ,COhVG,6EAEC,4BAAA,CADA,gCPmVJ,CO9NE,qIANM,kCPgPR,CO1OE,2BAvGA,oDAAA,CAAA,2CAAA,CCjBA,+BAAA,CADA,4BAAA,CAEA,mDAAA,CACA,oDRgWF,CO1OE,yEClHE,wCRgWJ,COtXE,0EAEE,iCPwXJ,COnWG,iFACC,mCPwWJ,COhYE,0EAEE,oDPkYJ,CO7WG,iFACC,sDPkXJ,CO1YE,0EAEE,wCP4YJ,COvXG,iFACC,2CP4XJ,COrQK,mDA9GH,kCAAA,CAAA,2BPuXF,COxZE,0HAEE,iCP0ZJ,COrYG,iIACC,oCP0YJ,COlaE,0HAEE,wCPoaJ,CO/YG,iIACC,2CPoZJ,COxRK,mDAnHH,oCAAA,CAAA,6BP+YF,COhbE,0HAEE,mCPkbJ,CO7ZG,iIACC,sCPkaJ,CO1bE,0HAEE,0CP4bJ,COvaG,iIACC,6CP4aJ,CO3SK,mDAxHH,oCAAA,CAAA,6BPuaF,COxcE,0HAEE,mCP0cJ,COrbG,iIACC,sCP0bJ,COldE,0HAEE,0CPodJ,CO/bG,iIACC,6CPocJ,CO9TK,kDA7HH,kCAAA,CAAA,2BP+bF,COheE,wHAEE,iCPkeJ,CO7cG,+HACC,oCPkdJ,CO1eE,wHAEE,wCP4eJ,COvdG,+HACC,2CP4dJ,COjVK,2CAlIH,4BAAA,CAAA,sCAAA,CAAA,+BPwdF,COzfE,0GAEE,4BP2fJ,COpfG,0GACC,4BPyfJ,COjfG,yDACC,oCPofJ,COvgBE,0GAEE,iCPygBJ,COtgBE,kDACE,kCPwgBJ,COrgBG,wDACC,+BPugBJ,CO/fG,yDACC,yBPkgBJ,COrhBE,0GAEE,wCPuhBJ,COphBE,kDACE,yCPshBJ,COnhBG,wDACC,sCPqhBJ,CO7gBG,yDAEC,4BAAA,CADA,gCPghBJ,CO3XO,mEAvIL,kCAAA,CAAA,2BPsgBF,COviBE,0JAEE,iCPyiBJ,COtiBE,0EACE,kCPwiBJ,COriBG,gFACC,2BPuiBJ,CO/hBG,iFACC,yBPkiBJ,COrjBE,0JAEE,wCPujBJ,COpjBE,0EACE,yCPsjBJ,COnjBG,gFACC,kCPqjBJ,CO7iBG,iFAEC,4BAAA,CADA,gCPgjBJ,COtZO,mEA5IL,oCAAA,CAAA,6BPsiBF,COvkBE,0JAEE,mCPykBJ,COtkBE,0EACE,oCPwkBJ,COrkBG,gFACC,6BPukBJ,CO/jBG,iFACC,yBPkkBJ,COrlBE,0JAEE,0CPulBJ,COplBE,0EACE,2CPslBJ,COnlBG,gFACC,oCPqlBJ,CO7kBG,iFAEC,4BAAA,CADA,gCPglBJ,COjbO,mEAjJL,oCAAA,CAAA,6BPskBF,COvmBE,0JAEE,mCPymBJ,COtmBE,0EACE,oCPwmBJ,COrmBG,gFACC,6BPumBJ,CO/lBG,iFACC,yBPkmBJ,COrnBE,0JAEE,0CPunBJ,COpnBE,0EACE,2CPsnBJ,COnnBG,gFACC,oCPqnBJ,CO7mBG,iFAEC,4BAAA,CADA,gCPgnBJ,CO5cO,kEAtJL,kCAAA,CAAA,2BPsmBF,COvoBE,wJAEE,iCPyoBJ,COtoBE,yEACE,kCPwoBJ,COroBG,+EACC,2BPuoBJ,CO/nBG,gFACC,yBPkoBJ,COrpBE,wJAEE,wCPupBJ,COppBE,yEACE,yCPspBJ,COnpBG,+EACC,kCPqpBJ,CO7oBG,gFAEC,4BAAA,CADA,gCPgpBJ,COteK,wFACC,kCPweN,COteO,gHAEC,4BAAA,CADA,2BPyeR,COreO,gHAEC,4BAAA,CADA,6BPweR,COpeO,gHAEC,4BAAA,CADA,6BPueR,COneO,+GAEC,4BAAA,CADA,2BPseR,CO/dE,0BAtLA,oDAAA,CAAA,2CAAA,CA4LE,mBAAA,CA5LF,kCAAA,CCjBA,+BAAA,CADA,4BAAA,CAEA,mDAAA,CACA,oDR8qBF,COzeE,uECjME,wCR8qBJ,COpsBE,wEAEE,iCPssBJ,COjrBG,+EACC,mCPsrBJ,CO9sBE,wEAEE,oDPgtBJ,CO3rBG,+EACC,sDPgsBJ,COxtBE,wEAEE,wCP0tBJ,COrsBG,+EACC,2CP0sBJ,COngBK,kDA9LH,kCAAA,CAAA,2BPqsBF,COtuBE,wHAEE,iCPwuBJ,COntBG,+HACC,oCPwtBJ,COhvBE,wHAEE,wCPkvBJ,CO7tBG,+HACC,2CPkuBJ,COthBK,kDAnMH,oCAAA,CAAA,6BP6tBF,CO9vBE,wHAEE,mCPgwBJ,CO3uBG,+HACC,sCPgvBJ,COxwBE,wHAEE,0CP0wBJ,COrvBG,+HACC,6CP0vBJ,COziBK,kDAxMH,oCAAA,CAAA,6BPqvBF,COtxBE,wHAEE,mCPwxBJ,COnwBG,+HACC,sCPwwBJ,COhyBE,wHAEE,0CPkyBJ,CO7wBG,+HACC,6CPkxBJ,CO5jBK,iDA7MH,kCAAA,CAAA,2BP6wBF,CO9yBE,sHAEE,iCPgzBJ,CO3xBG,6HACC,oCPgyBJ,COxzBE,sHAEE,wCP0zBJ,COryBG,6HACC,2CP0yBJ,CO/kBK,0CAlNH,4BAAA,CAAA,sCAAA,CAAA,+BPsyBF,COv0BE,wGAEE,4BPy0BJ,COl0BG,wGACC,4BPu0BJ,CO/zBG,wDACC,oCPk0BJ,COr1BE,wGAEE,iCPu1BJ,COp1BE,iDACE,kCPs1BJ,COn1BG,uDACC,+BPq1BJ,CO70BG,wDACC,yBPg1BJ,COn2BE,wGAEE,wCPq2BJ,COl2BE,iDACE,yCPo2BJ,COj2BG,uDACC,sCPm2BJ,CO31BG,wDAEC,4BAAA,CADA,gCP81BJ,COznBO,kEAvNL,kCAAA,CAAA,2BPo1BF,COr3BE,wJAEE,iCPu3BJ,COp3BE,yEACE,kCPs3BJ,COn3BG,+EACC,2BPq3BJ,CO72BG,gFACC,yBPg3BJ,COn4BE,wJAEE,wCPq4BJ,COl4BE,yEACE,yCPo4BJ,COj4BG,+EACC,kCPm4BJ,CO33BG,gFAEC,4BAAA,CADA,gCP83BJ,COppBO,kEA5NL,oCAAA,CAAA,6BPo3BF,COr5BE,wJAEE,mCPu5BJ,COp5BE,yEACE,oCPs5BJ,COn5BG,+EACC,6BPq5BJ,CO74BG,gFACC,yBPg5BJ,COn6BE,wJAEE,0CPq6BJ,COl6BE,yEACE,2CPo6BJ,COj6BG,+EACC,oCPm6BJ,CO35BG,gFAEC,4BAAA,CADA,gCP85BJ,CO/qBO,kEAjOL,oCAAA,CAAA,6BPo5BF,COr7BE,wJAEE,mCPu7BJ,COp7BE,yEACE,oCPs7BJ,COn7BG,+EACC,6BPq7BJ,CO76BG,gFACC,yBPg7BJ,COn8BE,wJAEE,0CPq8BJ,COl8BE,yEACE,2CPo8BJ,COj8BG,+EACC,oCPm8BJ,CO37BG,gFAEC,4BAAA,CADA,gCP87BJ,CO1sBO,iEAtOL,kCAAA,CAAA,2BPo7BF,COr9BE,sJAEE,iCPu9BJ,COp9BE,wEACE,kCPs9BJ,COn9BG,8EACC,2BPq9BJ,CO78BG,+EACC,yBPg9BJ,COn+BE,sJAEE,wCPq+BJ,COl+BE,wEACE,yCPo+BJ,COj+BG,8EACC,kCPm+BJ,CO39BG,+EAEC,4BAAA,CADA,gCP89BJ,COruBK,sFACC,kCPuuBN,COruBO,8GAEC,4BAAA,CADA,2BPwuBR,COpuBO,8GAEC,4BAAA,CADA,6BPuuBR,COnuBO,8GAEC,4BAAA,CADA,6BPsuBR,COluBO,6GAEC,4BAAA,CADA,2BPquBR,CO9tBE,wBArQA,4BAAA,CAAA,wBAAA,CAAA,kCAAA,CCjBA,+BAAA,CADA,4BAAA,CAEA,mDAAA,CACA,oDR2/BF,COvuBE,mEChRE,wCR2/BJ,COjhCE,oEAEE,kCPmhCJ,CO9/BG,2EACC,mCPmgCJ,CO3hCE,oEAEE,mDP6hCJ,COxgCG,2EACC,4BP6gCJ,COriCE,oEAEE,+CPuiCJ,COlhCG,2EACC,wBPuhCJ,COnwBK,gDA3QH,2BPihCF,COljCE,oHAEE,iCPojCJ,CO/hCG,2HACC,oCPoiCJ,CO5wBK,gDA/QH,6BP8hCF,CO/jCE,oHAEE,mCPikCJ,CO5iCG,2HACC,sCPijCJ,COrxBK,gDAnRH,6BP2iCF,CO5kCE,oHAEE,mCP8kCJ,COzjCG,2HACC,sCP8jCJ,CO9xBK,+CAvRH,2BPwjCF,COzlCE,kHAEE,iCP2lCJ,COtkCG,yHACC,oCP2kCJ,COvyBK,wCACC,eAAA,CA5RJ,+BPskCF,COvmCE,oGAEE,iCPymCJ,COtmCE,+CACE,kCPwmCJ,COrmCG,qDACC,+BPumCJ,CO/lCG,sDAEC,4BAAA,CADA,yBPkmCJ,COpzBO,gEAhSL,2BPulCF,COxnCE,oJAEE,iCP0nCJ,COvnCE,uEACE,kCPynCJ,COtnCG,6EACC,2BPwnCJ,COhnCG,8EAEC,4BAAA,CADA,yBPmnCJ,COj0BO,gEApSL,6BPwmCF,COzoCE,oJAEE,mCP2oCJ,COxoCE,uEACE,oCP0oCJ,COvoCG,6EACC,6BPyoCJ,COjoCG,8EAEC,4BAAA,CADA,yBPooCJ,CO90BO,gEAxSL,6BPynCF,CO1pCE,oJAEE,mCP4pCJ,COzpCE,uEACE,oCP2pCJ,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WUC,cACC,0BXRF,CWYC,eACC,sBXVF,CWcC,YACC,wBXZF,CWgBC,sBACC,6BXdF,CWkBC,qBACC,4BXhBF,CWoBC,YACC,sBXlBF,CWsBC,eACC,kBXpBF,CWwBC,eACC,oBXtBF,CW0BC,sCAEC,sBXxBF,CW4BC,0CAEC,kBX1BF,CW8BC,uCAEC,oBX5BF,CW+BC,sBACC,mBX7BF,CWgCC,uBACC,oBX9BF,CWiCC,OAIC,qBAAA,CAFA,cAAA,CACA,cAAA,CAFA,iBX5BF,CYrDG,UACC,aAAA,CACA,aAAA,CACA,cZuDJ,CYpDG,eACC,SZsDJ,CYnDG,eACC,UZqDJ,CYlDG,iBACC,gBZoDJ,CYjDG,gBACC,QZmDJ,CYtEG,UACC,aAAA,CACA,qBAAA,CACA,sBZwEJ,CYrEG,eACC,iBZuEJ,CYpEG,eACC,kBZsEJ,CYnEG,iBACC,wBZqEJ,CYlEG,gBACC,QZoEJ,CYvFG,UACC,aAAA,CACA,qBAAA,CACA,sBZyFJ,CYtFG,eACC,iBZwFJ,CYrFG,eACC,kBZuFJ,CYpFG,iBACC,wBZsFJ,CYnFG,gBACC,QZqFJ,CYxGG,SACC,aAAA,CACA,YAAA,CACA,aZ0GJ,CYvGG,cACC,QZyGJ,CYtGG,cACC,SZwGJ,CYrGG,gBACC,eZuGJ,CYpGG,eACC,OZsGJ,CYzHG,SACC,aAAA,CACA,qBAAA,CACA,sBZ2HJ,CYxHG,cACC,iBZ0HJ,CYvHG,cACC,kBZyHJ,CYtHG,gBACC,wBZwHJ,CYrHG,eACC,OZuHJ,CY1IG,SACC,aAAA,CACA,qBAAA,CACA,sBZ4IJ,CYzIG,cACC,iBZ2IJ,CYxIG,cACC,kBZ0IJ,CYvIG,gBACC,wBZyIJ,CYtIG,eACC,OZwIJ,CY3JG,SACC,aAAA,CACA,YAAA,CACA,aZ6JJ,CY1JG,cACC,QZ4JJ,CYzJG,cACC,SZ2JJ,CYxJG,gBACC,eZ0JJ,CYvJG,eACC,OZyJJ,CY5KG,SACC,aAAA,CACA,qBAAA,CACA,sBZ8KJ,CY3KG,cACC,iBZ6KJ,CY1KG,cACC,kBZ4KJ,CYzKG,gBACC,wBZ2KJ,CYxKG,eACC,OZ0KJ,CY7LG,SACC,aAAA,CACA,qBAAA,CACA,sBZ+LJ,CY5LG,cACC,iBZ8LJ,CY3LG,cACC,kBZ6LJ,CY1LG,gBACC,wBZ4LJ,CYzLG,eACC,OZ2LJ,CY9MG,SACC,aAAA,CACA,YAAA,CACA,aZgNJ,CY7MG,cACC,QZ+MJ,CY5MG,cACC,SZ8MJ,CY3MG,gBACC,eZ6MJ,CY1MG,eACC,OZ4MJ,CY/NG,SACC,aAAA,CACA,qBAAA,CACA,sBZiOJ,CY9NG,cACC,iBZgOJ,CY7NG,cACC,kBZ+NJ,CY5NG,gBACC,wBZ8NJ,CY3NG,eACC,OZ6NJ,CYhPG,SACC,aAAA,CACA,oBAAA,CACA,qBZkPJ,CY/OG,cACC,gBZiPJ,CY9OG,cACC,iBZgPJ,CY7OG,gBACC,uBZ+OJ,CY5OG,eACC,OZ8OJ,CYvOG,SACC,YZyOJ,CYtNG,gBACC,aZoOJ,CYjOG,eACC,OZmOJ,CYtRG,aACC,aAAA,CACA,aAAA,CACA,cZwRJ,CYrRG,kBACC,SZuRJ,CYpRG,kBACC,UZsRJ,CYnRG,oBACC,gBZqRJ,CYlRG,mBACC,QZoRJ,CYvSG,aACC,aAAA,CACA,qBAAA,CACA,sBZySJ,CYtSG,kBACC,iBZwSJ,CYrSG,kBACC,kBZuSJ,CYpSG,oBACC,wBZsSJ,CYnSG,mBACC,QZqSJ,CYxTG,aACC,aAAA,CACA,qBAAA,CACA,sBZ0TJ,CYvTG,kBACC,iBZyTJ,CYtTG,kBACC,kBZwTJ,CYrTG,oBACC,wBZuTJ,CYpTG,mBACC,QZsTJ,CYzUG,YACC,aAAA,CACA,YAAA,CACA,aZ2UJ,CYxUG,iBACC,QZ0UJ,CYvUG,iBACC,SZyUJ,CYtUG,mBACC,eZwUJ,CYrUG,kBACC,OZuUJ,CY1VG,YACC,aAAA,CACA,qBAAA,CACA,sBZ4VJ,CYzVG,iBACC,iBZ2VJ,CYxVG,iBACC,kBZ0VJ,CYvVG,mBACC,wBZyVJ,CYtVG,kBACC,OZwVJ,CY3WG,YACC,aAAA,CACA,qBAAA,CACA,sBZ6WJ,CY1WG,iBACC,iBZ4WJ,CYzWG,iBACC,kBZ2WJ,CYxWG,mBACC,wBZ0WJ,CYvWG,kBACC,OZyWJ,CY5XG,YACC,aAAA,CACA,YAAA,CACA,aZ8XJ,CY3XG,iBACC,QZ6XJ,CY1XG,iBACC,SZ4XJ,CYzXG,mBACC,eZ2XJ,CYxXG,kBACC,OZ0XJ,CY7YG,YACC,aAAA,CACA,qBAAA,CACA,sBZ+YJ,CY5YG,iBACC,iBZ8YJ,CY3YG,iBACC,kBZ6YJ,CY1YG,mBACC,wBZ4YJ,CYzYG,kBACC,OZ2YJ,CY9ZG,YACC,aAAA,CACA,qBAAA,CACA,sBZgaJ,CY7ZG,iBACC,iBZ+ZJ,CY5ZG,iBACC,kBZ8ZJ,CY3ZG,mBACC,wBZ6ZJ,CY1ZG,kBACC,OZ4ZJ,CY/aG,YACC,aAAA,CACA,YAAA,CACA,aZibJ,CY9aG,iBACC,QZgbJ,CY7aG,iBACC,SZ+aJ,CY5aG,mBACC,eZ8aJ,CY3aG,kBACC,OZ6aJ,CYhcG,YACC,aAAA,CACA,qBAAA,CACA,sBZkcJ,CY/bG,iBACC,iBZicJ,CY9bG,iBACC,kBZgcJ,CY7bG,mBACC,wBZ+bJ,CY5bG,kBACC,OZ8bJ,CYjdG,YACC,aAAA,CACA,oBAAA,CACA,qBZmdJ,CYhdG,iBACC,gBZkdJ,CY/cG,iBACC,iBZidJ,CY9cG,mBACC,uBZgdJ,CY7cG,kBACC,OZ+cJ,CYxcG,YACC,YZ0cJ,CYvcG,cACC,SZycJ,CYtcG,cACC,UZwcJ,CYrcG,iBACC,SZucJ,CYpcG,iBACC,UZscJ,CYncG,mBACC,aZqcJ,CYlcG,kBACC,OZocJ,CW5ZA,yBC3FG,aACC,aAAA,CACA,aAAA,CACA,cZ0fF,CYvfC,kBACC,SZyfF,CYtfC,kBACC,UZwfF,CYrfC,oBACC,gBZufF,CYpfC,mBACC,QZsfF,CYzgBC,aACC,aAAA,CACA,qBAAA,CACA,sBZ2gBF,CYxgBC,kBACC,iBZ0gBF,CYvgBC,kBACC,kBZygBF,CYtgBC,oBACC,wBZwgBF,CYrgBC,mBACC,QZugBF,CY1hBC,aACC,aAAA,CACA,qBAAA,CACA,sBZ4hBF,CYzhBC,kBACC,iBZ2hBF,CYxhBC,kBACC,kBZ0hBF,CYvhBC,oBACC,wBZyhBF,CYthBC,mBACC,QZwhBF,CY3iBC,YACC,aAAA,CACA,YAAA,CACA,aZ6iBF,CY1iBC,iBACC,QZ4iBF,CYziBC,iBACC,SZ2iBF,CYxiBC,mBACC,eZ0iBF,CYviBC,kBACC,OZyiBF,CY5jBC,YACC,aAAA,CACA,qBAAA,CACA,sBZ8jBF,CY3jBC,iBACC,iBZ6jBF,CY1jBC,iBACC,kBZ4jBF,CYzjBC,mBACC,wBZ2jBF,CYxjBC,kBACC,OZ0jBF,CY7kBC,YACC,aAAA,CACA,qBAAA,CACA,sBZ+kBF,CY5kBC,iBACC,iBZ8kBF,CY3kBC,iBACC,kBZ6kBF,CY1kBC,mBACC,wBZ4kBF,CYzkBC,kBACC,OZ2kBF,CY9lBC,YACC,aAAA,CACA,YAAA,CACA,aZgmBF,CY7lBC,iBACC,QZ+lBF,CY5lBC,iBACC,SZ8lBF,CY3lBC,mBACC,eZ6lBF,CY1lBC,kBACC,OZ4lBF,CY/mBC,YACC,aAAA,CACA,qBAAA,CACA,sBZinBF,CY9mBC,iBACC,iBZgnBF,CY7mBC,iBACC,kBZ+mBF,CY5mBC,mBACC,wBZ8mBF,CY3mBC,kBACC,OZ6mBF,CYhoBC,YACC,aAAA,CACA,qBAAA,CACA,sBZkoBF,CY/nBC,iBACC,iBZioBF,CY9nBC,iBACC,kBZgoBF,CY7nBC,mBACC,wBZ+nBF,CY5nBC,kBACC,OZ8nBF,CYjpBC,YACC,aAAA,CACA,YAAA,CACA,aZmpBF,CYhpBC,iBACC,QZkpBF,CY/oBC,iBACC,SZipBF,CY9oBC,mBACC,eZgpBF,CY7oBC,kBACC,OZ+oBF,CYlqBC,YACC,aAAA,CACA,qBAAA,CACA,sBZoqBF,CYjqBC,iBACC,iBZmqBF,CYhqBC,iBACC,kBZkqBF,CY/pBC,mBACC,wBZiqBF,CY9pBC,kBACC,OZgqBF,CYnrBC,YACC,aAAA,CACA,oBAAA,CACA,qBZqrBF,CYlrBC,iBACC,gBZorBF,CYjrBC,iBACC,iBZmrBF,CYhrBC,mBACC,uBZkrBF,CY/qBC,kBACC,OZirBF,CY1qBC,YACC,YZ4qBF,CYzqBC,cACC,SZ2qBF,CYxqBC,cACC,UZ0qBF,CYvqBC,iBACC,SZyqBF,CYtqBC,iBACC,UZwqBF,CYrqBC,mBACC,aZuqBF,CYpqBC,kBACC,OZsqBF,CACF,CW3nBA,yBC/FG,aACC,aAAA,CACA,aAAA,CACA,cZ6tBF,CY1tBC,kBACC,SZ4tBF,CYztBC,kBACC,UZ2tBF,CYxtBC,oBACC,gBZ0tBF,CYvtBC,mBACC,QZytBF,CY5uBC,aACC,aAAA,CACA,qBAAA,CACA,sBZ8uBF,CY3uBC,kBACC,iBZ6uBF,CY1uBC,kBACC,kBZ4uBF,CYzuBC,oBACC,wBZ2uBF,CYxuBC,mBACC,QZ0uBF,CY7vBC,aACC,aAAA,CACA,qBAAA,CACA,sBZ+vBF,CY5vBC,kBACC,iBZ8vBF,CY3vBC,kBACC,kBZ6vBF,CY1vBC,oBACC,wBZ4vBF,CYzvBC,mBACC,QZ2vBF,CY9wBC,YACC,aAAA,CACA,YAAA,CACA,aZgxBF,CY7wBC,iBACC,QZ+wBF,CY5wBC,iBACC,SZ8wBF,CY3wBC,mBACC,eZ6wBF,CY1wBC,kBACC,OZ4wBF,CY/xBC,YACC,aAAA,CACA,qBAAA,CACA,sBZiyBF,CY9xBC,iBACC,iBZgyBF,CY7xBC,iBACC,kBZ+xBF,CY5xBC,mBACC,wBZ8xBF,CY3xBC,kBACC,OZ6xBF,CYhzBC,YACC,aAAA,CACA,qBAAA,CACA,sBZkzBF,CY/yBC,iBACC,iBZizBF,CY9yBC,iBACC,kBZgzBF,CY7yBC,mBACC,wBZ+yBF,CY5yBC,kBACC,OZ8yBF,CYj0BC,YACC,aAAA,CACA,YAAA,CACA,aZm0BF,CYh0BC,iBACC,QZk0BF,CY/zBC,iBACC,SZi0BF,CY9zBC,mBACC,eZg0BF,CY7zBC,kBACC,OZ+zBF,CYl1BC,YACC,aAAA,CACA,qBAAA,CACA,sBZo1BF,CYj1BC,iBACC,iBZm1BF,CYh1BC,iBACC,kBZk1BF,CY/0BC,mBACC,wBZi1BF,CY90BC,kBACC,OZg1BF,CYn2BC,YACC,aAAA,CACA,qBAAA,CACA,sBZq2BF,CYl2BC,iBACC,iBZo2BF,CYj2BC,iBACC,kBZm2BF,CYh2BC,mBACC,wBZk2BF,CY/1BC,kBACC,OZi2BF,CYp3BC,YACC,aAAA,CACA,YAAA,CACA,aZs3BF,CYn3BC,iBACC,QZq3BF,CYl3BC,iBACC,SZo3BF,CYj3BC,mBACC,eZm3BF,CYh3BC,kBACC,OZk3BF,CYr4BC,YACC,aAAA,CACA,qBAAA,CACA,sBZu4BF,CYp4BC,iBACC,iBZs4BF,CYn4BC,iBACC,kBZq4BF,CYl4BC,mBACC,wBZo4BF,CYj4BC,kBACC,OZm4BF,CYt5BC,YACC,aAAA,CACA,oBAAA,CACA,qBZw5BF,CYr5BC,iBACC,gBZu5BF,CYp5BC,iBACC,iBZs5BF,CYn5BC,mBACC,uBZq5BF,CYl5BC,kBACC,OZo5BF,CY74BC,YACC,YZ+4BF,CY54BC,cACC,SZ84BF,CY34BC,cACC,UZ64BF,CY14BC,iBACC,SZ44BF,CYz4BC,iBACC,UZ24BF,CYx4BC,mBACC,aZ04BF,CYv4BC,kBACC,OZy4BF,CACF,CW11BA,0BCnGG,aACC,aAAA,CACA,aAAA,CACA,cZg8BF,CY77BC,kBACC,SZ+7BF,CY57BC,kBACC,UZ87BF,CY37BC,oBACC,gBZ67BF,CY17BC,mBACC,QZ47BF,CY/8BC,aACC,aAAA,CACA,qBAAA,CACA,sBZi9BF,CY98BC,kBACC,iBZg9BF,CY78BC,kBACC,kBZ+8BF,CY58BC,oBACC,wBZ88BF,CY38BC,mBACC,QZ68BF,CYh+BC,aACC,aAAA,CACA,qBAAA,CACA,sBZk+BF,CY/9BC,kBACC,iBZi+BF,CY99BC,kBACC,kBZg+BF,CY79BC,oBACC,wBZ+9BF,CY59BC,mBACC,QZ89BF,CYj/BC,YACC,aAAA,CACA,YAAA,CACA,aZm/BF,CYh/BC,iBACC,QZk/BF,CY/+BC,iBACC,SZi/BF,CY9+BC,mBACC,eZg/BF,CY7+BC,kBACC,OZ++BF,CYlgCC,YACC,aAAA,CACA,qBAAA,CACA,sBZogCF,CYjgCC,iBACC,iBZmgCF,CYhgCC,iBACC,kBZkgCF,CY//BC,mBACC,wBZigCF,CY9/BC,kBACC,OZggCF,CYnhCC,YACC,aAAA,CACA,qBAAA,CACA,sBZqhCF,CYlhCC,iBACC,iBZohCF,CYjhCC,iBACC,kBZmhCF,CYhhCC,mBACC,wBZkhCF,CY/gCC,kBACC,OZihCF,CYpiCC,YACC,aAAA,CACA,YAAA,CACA,aZsiCF,CYniCC,iBACC,QZqiCF,CYliCC,iBACC,SZoiCF,CYjiCC,mBACC,eZmiCF,CYhiCC,kBACC,OZkiCF,CYrjCC,YACC,aAAA,CACA,qBAAA,CACA,sBZujCF,CYpjCC,iBACC,iBZsjCF,CYnjCC,iBACC,kBZqjCF,CYljCC,mBACC,wBZojCF,CYjjCC,kBACC,OZmjCF,CYtkCC,YACC,aAAA,CACA,qBAAA,CACA,sBZwkCF,CYrkCC,iBACC,iBZukCF,CYpkCC,iBACC,kBZskCF,CYnkCC,mBACC,wBZqkCF,CYlkCC,kBACC,OZokCF,CYvlCC,YACC,aAAA,CACA,YAAA,CACA,aZylCF,CYtlCC,iBACC,QZwlCF,CYrlCC,iBACC,SZulCF,CYplCC,mBACC,eZslCF,CYnlCC,kBACC,OZqlCF,CYxmCC,YACC,aAAA,CACA,qBAAA,CACA,sBZ0mCF,CYvmCC,iBACC,iBZymCF,CYtmCC,iBACC,kBZwmCF,CYrmCC,mBACC,wBZumCF,CYpmCC,kBACC,OZsmCF,CYznCC,YACC,aAAA,CACA,oBAAA,CACA,qBZ2nCF,CYxnCC,iBACC,gBZ0nCF,CYvnCC,iBACC,iBZynCF,CYtnCC,mBACC,uBZwnCF,CYrnCC,kBACC,OZunCF,CYhnCC,YACC,YZknCF,CY/mCC,cACC,SZinCF,CY9mCC,cACC,UZgnCF,CY7mCC,iBACC,SZ+mCF,CY5mCC,iBACC,UZ8mCF,CY3mCC,mBACC,aZ6mCF,CY1mCC,kBACC,OZ4mCF,CACF,CWzjCA,0BCvGG,aACC,aAAA,CACA,aAAA,CACA,cZmqCF,CYhqCC,kBACC,SZkqCF,CY/pCC,kBACC,UZiqCF,CY9pCC,oBACC,gBZgqCF,CY7pCC,mBACC,QZ+pCF,CYlrCC,aACC,aAAA,CACA,qBAAA,CACA,sBZorCF,CYjrCC,kBACC,iBZmrCF,CYhrCC,kBACC,kBZkrCF,CY/qCC,oBACC,wBZirCF,CY9qCC,mBACC,QZgrCF,CYnsCC,aACC,aAAA,CACA,qBAAA,CACA,sBZqsCF,CYlsCC,kBACC,iBZosCF,CYjsCC,kBACC,kBZmsCF,CYhsCC,oBACC,wBZksCF,CY/rCC,mBACC,QZisCF,CYptCC,YACC,aAAA,CACA,YAAA,CACA,aZstCF,CYntCC,iBACC,QZqtCF,CYltCC,iBACC,SZotCF,CYjtCC,mBACC,eZmtCF,CYhtCC,kBACC,OZktCF,CYruCC,YACC,aAAA,CACA,qBAAA,CACA,sBZuuCF,CYpuCC,iBACC,iBZsuCF,CYnuCC,iBACC,kBZquCF,CYluCC,mBACC,wBZouCF,CYjuCC,kBACC,OZmuCF,CYtvCC,YACC,aAAA,CACA,qBAAA,CACA,sBZwvCF,CYrvCC,iBACC,iBZuvCF,CYpvCC,iBACC,kBZsvCF,CYnvCC,mBACC,wBZqvCF,CYlvCC,kBACC,OZovCF,CYvwCC,YACC,aAAA,CACA,YAAA,CACA,aZywCF,CYtwCC,iBACC,QZwwCF,CYrwCC,iBACC,SZuwCF,CYpwCC,mBACC,eZswCF,CYnwCC,kBACC,OZqwCF,CYxxCC,YACC,aAAA,CACA,qBAAA,CACA,sBZ0xCF,CYvxCC,iBACC,iBZyxCF,CYtxCC,iBACC,kBZwxCF,CYrxCC,mBACC,wBZuxCF,CYpxCC,kBACC,OZsxCF,CYzyCC,YACC,aAAA,CACA,qBAAA,CACA,sBZ2yCF,CYxyCC,iBACC,iBZ0yCF,CYvyCC,iBACC,kBZyyCF,CYtyCC,mBACC,wBZwyCF,CYryCC,kBACC,OZuyCF,CY1zCC,YACC,aAAA,CACA,YAAA,CACA,aZ4zCF,CYzzCC,iBACC,QZ2zCF,CYxzCC,iBACC,SZ0zCF,CYvzCC,mBACC,eZyzCF,CYtzCC,kBACC,OZwzCF,CY30CC,YACC,aAAA,CACA,qBAAA,CACA,sBZ60CF,CY10CC,iBACC,iBZ40CF,CYz0CC,iBACC,kBZ20CF,CYx0CC,mBACC,wBZ00CF,CYv0CC,kBACC,OZy0CF,CY51CC,YACC,aAAA,CACA,oBAAA,CACA,qBZ81CF,CY31CC,iBACC,gBZ61CF,CY11CC,iBACC,iBZ41CF,CYz1CC,mBACC,uBZ21CF,CYx1CC,kBACC,OZ01CF,CYn1CC,YACC,YZq1CF,CYl1CC,cACC,SZo1CF,CYj1CC,cACC,UZm1CF,CYh1CC,iBACC,SZk1CF,CY/0CC,iBACC,UZi1CF,CY90CC,mBACC,aZg1CF,CY70CC,kBACC,OZ+0CF,CACF,CWxxCA,0BC3GG,cACC,aAAA,CACA,aAAA,CACA,cZs4CF,CYn4CC,mBACC,SZq4CF,CYl4CC,mBACC,UZo4CF,CYj4CC,qBACC,gBZm4CF,CYh4CC,oBACC,QZk4CF,CYr5CC,cACC,aAAA,CACA,qBAAA,CACA,sBZu5CF,CYp5CC,mBACC,iBZs5CF,CYn5CC,mBACC,kBZq5CF,CYl5CC,qBACC,wBZo5CF,CYj5CC,oBACC,QZm5CF,CYt6CC,cACC,aAAA,CACA,qBAAA,CACA,sBZw6CF,CYr6CC,mBACC,iBZu6CF,CYp6CC,mBACC,kBZs6CF,CYn6CC,qBACC,wBZq6CF,CYl6CC,oBACC,QZo6CF,CYv7CC,aACC,aAAA,CACA,YAAA,CACA,aZy7CF,CYt7CC,kBACC,QZw7CF,CYr7CC,kBACC,SZu7CF,CYp7CC,oBACC,eZs7CF,CYn7CC,mBACC,OZq7CF,CYx8CC,aACC,aAAA,CACA,qBAAA,CACA,sBZ08CF,CYv8CC,kBACC,iBZy8CF,CYt8CC,kBACC,kBZw8CF,CYr8CC,oBACC,wBZu8CF,CYp8CC,mBACC,OZs8CF,CYz9CC,aACC,aAAA,CACA,qBAAA,CACA,sBZ29CF,CYx9CC,kBACC,iBZ09CF,CYv9CC,kBACC,kBZy9CF,CYt9CC,oBACC,wBZw9CF,CYr9CC,mBACC,OZu9CF,CY1+CC,aACC,aAAA,CACA,YAAA,CACA,aZ4+CF,CYz+CC,kBACC,QZ2+CF,CYx+CC,kBACC,SZ0+CF,CYv+CC,oBACC,eZy+CF,CYt+CC,mBACC,OZw+CF,CY3/CC,aACC,aAAA,CACA,qBAAA,CACA,sBZ6/CF,CY1/CC,kBACC,iBZ4/CF,CYz/CC,kBACC,kBZ2/CF,CYx/CC,oBACC,wBZ0/CF,CYv/CC,mBACC,OZy/CF,CY5gDC,aACC,aAAA,CACA,qBAAA,CACA,sBZ8gDF,CY3gDC,kBACC,iBZ6gDF,CY1gDC,kBACC,kBZ4gDF,CYzgDC,oBACC,wBZ2gDF,CYxgDC,mBACC,OZ0gDF,CY7hDC,aACC,aAAA,CACA,YAAA,CACA,aZ+hDF,CY5hDC,kBACC,QZ8hDF,CY3hDC,kBACC,SZ6hDF,CY1hDC,oBACC,eZ4hDF,CYzhDC,m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A,CACA,uCAAA,CAFA,mCAAA,CAGA,kBnCXN,CmCaM,sCACE,kBnCXR,CmCeQ,8CACE,cnCbV,CmCkBK,+BACC,uCnChBN,CmCuBK,kEAHC,sDnCbN,CmCgBK,qCACC,uCnCjBN,CmCsBE,gBACE,sCnCpBJ,CmCsBK,+BACC,kCnCpBN,CmC2BK,kEAHC,4CnCjBN,CmCoBK,qCACC,kCnCrBN,CmCyBK,iGACC,2BnCrBN,CmCwBQ,4KACE,iCnCpBV,CmC0BE,gBACE,wCnCxBJ,CmC0BK,+BACC,oCnCxBN,CmC+BK,kEAHC,8CnCrBN,CmCwBK,qCACC,oCnCzBN,CmC6BK,iGACC,6BnCzBN,CmC4BQ,4KACE,mCnCxBV,CmC8BE,gBACE,wCnC5BJ,CmC8BK,+BACC,oCnC5BN,CmCmCK,kEAHC,8CnCzBN,CmC4BK,qCACC,oCnC7BN,CmCiCK,iGACC,6BnC7BN,CmCgCQ,4KACE,mCnC5BV,CmCkCE,eACE,sCnChCJ,CmCkCK,8BACC,kCnChCN,CmCuCK,gEAHC,4CnC7BN,CmCgCK,oCACC,kCnCjCN,CmCqBE,kCAiBI,0BnCnCN,CmCqCM,wCACE,gCnCnCR,CmCuCK,8FACC,2BnCnCN,CmCsCQ,yKACE,iCnClCV,CmCwCE,2DAGI,4BnCxCN,CmC0CM,iEACE,4BnCxCR,CmC6CG,sBACC,sBnC3CJ,CmC8CG,gBAGC,8BAAA,CADA,8BAAA,CADA,qCnC1CJ,CmCyCG,wBAMG,mCnC5CN,CmCgDG,gBAEC,4BAAA,CADA,oCnC5CJ,CmC2CG,wCAGC,+BnC3CJ,CmCkDG,oBACC,yCnChDJ,CmCmDG,mBACC,yEnCjDJ,CmCoDG,oCH/OD,gBAAA,CGkPI,oBAAA,CHjPJ,eAAA,CACA,sBAAA,CAHA,kBhCmMF,CmCsDC,0CAEC,cAAA,CADA,yDnCnDF,CmCuDI,gGACE,mDnCrDN,CmC0DI,0FACE,4CnCxDN,CmC6DI,mGACE,iCnC3DN,CmCiEG,yDACC,+CAAA,CACA,kBnC/DJ,CmCkEG,4DAEC,sDAAA,CACA,0CAAA,CAFA,mCAAA,CAGA,kBnChEJ,CmCoEC,2CAEG,oCnCnEJ,CmCuEA,SAEI,cAAA,CACA,yBnCtEJ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,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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","file":"tdesign.min.css","sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,"@keyframes t-spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n.t-icon {\n display: inline-block;\n vertical-align: middle;\n width: 1em;\n height: 1em;\n}\n.t-icon::before {\n font-family: unset;\n}\n.t-icon-loading {\n animation: t-spin 1s linear infinite;\n}\n.t-icon {\n fill: currentColor;\n}\n.t-icon.t-size-s,\ni.t-size-s {\n font-size: 14px;\n}\n.t-icon.t-size-m,\ni.t-size-m {\n font-size: 16px;\n}\n.t-icon.t-size-l,\ni.t-size-l {\n font-size: 18px;\n}\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]} \ No newline at end of file +{"version":3,"sources":["../../packages/common/style/web/_global.less","_global.less","../../packages/common/style/web/mixins/_scrollbar.less","../../packages/common/style/web/theme/_light.less","_index.less","../../packages/common/style/web/theme/_dark.less","../../packages/common/style/web/theme/_radius.less","../../packages/common/style/web/theme/_font.less","../../packages/common/style/web/theme/_size.less","../../packages/common/style/web/components/loading/_index.less","../../packages/common/style/web/mixins/_reset.less","../../packages/common/style/web/components/button/_index.less","../../packages/common/style/web/components/button/_mixin.less","index.css","../../packages/common/style/web/components/link/_index.less","../../packages/common/style/web/components/grid/_index.less","../../packages/common/style/web/components/grid/_mixin.less","../../packages/common/style/web/components/layout/_index.less","../../packages/common/style/web/components/divider/_index.less","../../packages/common/style/web/components/space/_index.less","../../packages/common/style/web/components/descriptions/_index.less","../../packages/common/style/web/components/descriptions/_mixin.less","../../packages/common/style/web/components/affix/_index.less","../../packages/common/style/web/components/popup/_mixin.less","../../packages/common/style/web/components/popup/_index.less","../../packages/common/style/web/components/anchor/_index.less","../../packages/common/style/web/components/tooltip/_index.less","../../packages/common/style/web/components/breadcrumb/_mixin.less","../../packages/common/style/web/components/breadcrumb/_index.less","../../packages/common/style/web/components/dropdown/_index.less","../../packages/common/style/web/components/tabs/_index.less","../../packages/common/style/web/components/tabs/_mixin.less","../../packages/common/style/web/components/menu/_index.less","../../packages/common/style/web/mixins/_layout.less","../../packages/common/style/web/components/input/_mixin.less","../../packages/common/style/web/utilities/_tips.less","../../packages/common/style/web/mixins/_text.less","../../packages/common/style/web/components/input/_index.less","../../packages/common/style/web/components/input-number/_index.less","../../packages/common/style/web/components/tag/_index.less","../../packages/common/style/web/utilities/_animation.less","../../packages/common/style/web/components/tag-input/_index.less","../../packages/common/style/web/components/tag-input/_var.less","../../packages/common/style/web/components/select-input/_index.less","../../packages/common/style/web/components/checkbox/_index.less","../../packages/common/style/web/mixins/_focus.less","../../packages/common/style/web/components/select/_index.less","../../packages/common/style/web/components/input-adornment/_index.less","../../packages/common/style/web/components/pagination/_mini.less","../../packages/common/style/web/components/pagination/_index.less","../../packages/common/style/web/components/pagination/_mixin.less","../../packages/common/style/web/components/steps/_mixin.less","../../packages/common/style/web/components/steps/_index.less","../../packages/common/style/web/components/sticky-tool/_index.less","../../packages/common/style/web/components/sticky-tool/_mixin.less","../../packages/common/style/web/components/back-top/_index.less","../../packages/common/style/web/components/back-top/_mixin.less","../../packages/common/style/web/components/auto-complete/_index.less","../../packages/common/style/web/components/cascader/_index.less","../../packages/common/style/web/components/range-input/_mixin.less","../../packages/common/style/web/components/range-input/_index.less","../../packages/common/style/web/components/date-picker/_index.less","../../packages/common/style/web/components/form/_index.less","../../packages/common/style/web/components/form/_mixin.less","../../packages/common/style/web/components/radio/_index.less","../../packages/common/style/web/components/slider/_index.less","../../packages/common/style/web/components/switch/_index.less","../../packages/common/style/web/components/textarea/_index.less","../../packages/common/style/web/components/textarea/_mixin.less","../../packages/common/style/web/components/transfer/_index.less","../../packages/common/style/web/components/time-picker/_mixin.less","../../packages/common/style/web/components/time-picker/_index.less","../../packages/common/style/web/components/tree/_index.less","../../packages/common/style/web/components/tree-select/_index.less","../../packages/common/style/web/components/color-picker/_index.less","../../packages/common/style/web/components/image/_index.less","../../packages/common/style/web/components/avatar/_index.less","../../packages/common/style/web/components/avatar/_mixin.less","../../packages/common/style/web/components/badge/_index.less","../../packages/common/style/web/components/calendar/_index.less","../../packages/common/style/web/components/card/_index.less","../../packages/common/style/web/components/comment/_index.less","../../packages/common/style/web/components/empty/_index.less","../../packages/common/style/web/components/dialog/_animate.less","../../packages/common/style/web/components/dialog/_index.less","../../packages/common/style/web/components/image-viewer/_index.less","../../packages/common/style/web/components/list/_index.less","../../packages/common/style/web/components/progress/_index.less","../../packages/common/style/web/components/skeleton/_var.less","../../packages/common/style/web/components/skeleton/_index.less","../../packages/common/style/web/components/statistic/_index.less","../../packages/common/style/web/components/swiper/_index.less","../../packages/common/style/web/components/swiper/_mixin.less","../../packages/common/style/web/components/table/_index.less","../../packages/common/style/web/components/table/_mixin.less","../../packages/common/style/web/components/timeline/_index.less","../../packages/common/style/web/components/collapse/_index.less","../../packages/common/style/web/components/rate/_index.less","../../packages/common/style/web/components/typography/_index.less","../../packages/common/style/web/components/qrcode/_index.less","../../packages/common/style/web/components/alert/_index.less","../../packages/common/style/web/components/drawer/_animate.less","../../packages/common/style/web/components/drawer/_index.less","../../packages/common/style/web/components/guide/_index.less","../../packages/common/style/web/components/message/_index.less","../../packages/common/style/web/components/message/_mixin.less","../../packages/common/style/web/components/notification/_index.less","../../packages/common/style/web/components/notification/_mixin.less","../../packages/common/style/web/components/popconfirm/_index.less","../../packages/common/style/web/components/upload/_index.less","../../packages/common/style/web/components/upload/_mixin.less"],"names":[],"mappings":"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8CP4IJ,COvHG,2HACC,iDP4HJ,COpJE,oHAEE,0CPsJJ,COjIG,2HACC,6CPsIJ,CO9DK,+CA/DH,sCAAA,CAAA,kCAAA,CAgEI,+BPkEN,COnKE,kHAEE,4CPqKJ,COhJG,yHACC,+CPqJJ,CO7KE,kHAEE,wCP+KJ,CO1JG,yHACC,2CP+JJ,COjFK,wCArEH,4BAAA,CAAA,sCAAA,CAAA,+BP2JF,CO5LE,oGAEE,4BP8LJ,COvLG,oGACC,4BP4LJ,COpLG,sDACC,oCPuLJ,CO1ME,oGAEE,iCP4MJ,COzME,+CACE,kCP2MJ,COxMG,qDACC,+BP0MJ,COlMG,sDACC,yBPqMJ,COxNE,oGAEE,wCP0NJ,COvNE,+CACE,yCPyNJ,COtNG,qDACC,sCPwNJ,COhNG,sDAEC,4BAAA,CADA,gCPmNJ,CO3HO,gEA1EL,kCAAA,CAAA,2BPyMF,CO1OE,oJAEE,iCP4OJ,COzOE,uEACE,kCP2OJ,COxOG,6EACC,2BP0OJ,COlOG,8EACC,yBPqOJ,COxPE,oJAEE,wCP0PJ,COvPE,uEACE,yCPyPJ,COtPG,6EACC,kCPwPJ,COhPG,8EAEC,4BAAA,CADA,gCPmPJ,COtJO,gEA/EL,oCAAA,CAAA,6BPyOF,CO1QE,oJAEE,mCP4QJ,COzQE,uEACE,oCP2QJ,COxQG,6EACC,6BP0QJ,COlQG,8EACC,yBPqQJ,COxRE,oJAEE,0CP0RJ,COvRE,uEACE,2CPyRJ,COtRG,6EACC,oCPwRJ,COhRG,8EAEC,4BAAA,CADA,gCPmRJ,COjLO,gEApFL,oCAAA,CAAA,6BPyQF,CO1SE,oJAEE,mCP4SJ,COzSE,uEACE,oCP2SJ,COxSG,6EACC,6BP0SJ,COlSG,8EACC,yBPqSJ,COxTE,oJAEE,0CP0TJ,COvTE,uEACE,2CPyTJ,COtTG,6EACC,oCPwTJ,COhTG,8EAEC,4BAAA,CADA,gCPmTJ,CO5MO,+DAzFL,kCAAA,CAAA,2BPySF,CO1UE,kJAEE,iCP4UJ,COzUE,sEACE,kCP2UJ,COxUG,4EACC,2BP0UJ,COlUG,6EACC,yBPqUJ,COxVE,kJAEE,wCP0VJ,COvVE,sEACE,yCPyVJ,COtVG,4EACC,kCPwVJ,COhVG,6EAEC,4BAAA,CADA,gCPmVJ,CO9NE,qIANM,kCPgPR,CO1OE,2BAvGA,oDAAA,CAAA,2CAAA,CCjBA,+BAAA,CADA,4BAAA,CAEA,mDAAA,CACA,oDRgWF,CO1OE,yEClHE,wCRgWJ,COtXE,0EAEE,iCPwXJ,COnWG,iFACC,mCPwWJ,COhYE,0EAEE,oDPkYJ,CO7WG,iFACC,sDPkXJ,CO1YE,0EAEE,wCP4YJ,COvXG,iFACC,2CP4XJ,COrQK,mDA9GH,kCAAA,CAAA,2BPuXF,COxZE,0HAEE,iCP0ZJ,COrYG,iIACC,oCP0YJ,COlaE,0HAEE,wCPoaJ,CO/YG,iIACC,2CPoZJ,COxRK,mDAnHH,oCAAA,CAAA,6BP+YF,COhbE,0HAEE,mCPkbJ,CO7ZG,iIACC,sCPkaJ,CO1bE,0HAEE,0CP4bJ,COvaG,iIACC,6CP4aJ,CO3SK,mDAxHH,oCAAA,CAAA,6BPuaF,COxcE,0HAEE,mCP0cJ,COrbG,iIACC,sCP0bJ,COldE,0HAEE,0CPodJ,CO/bG,iIACC,6CPocJ,CO9TK,kDA7HH,kCAAA,CAAA,2BP+bF,COheE,wHAEE,iCPkeJ,CO7cG,+HACC,oCPkdJ,CO1eE,wHAEE,wCP4eJ,COvdG,+HACC,2CP4dJ,COjVK,2CAlIH,4BAAA,CAAA,sCAAA,CAAA,+BPwdF,COzfE,0GAEE,4BP2fJ,COpfG,0GACC,4BPyfJ,COjfG,yDACC,oCPofJ,COvgBE,0GAEE,iCPygBJ,COtgBE,kDACE,kCPwgBJ,COrgBG,wDACC,+BPugBJ,CO/fG,yDACC,yBPkgBJ,COrhBE,0GAEE,wCPuhBJ,COphBE,kDACE,yCPshBJ,COnhBG,wDACC,sCPqhBJ,CO7gBG,yDAEC,4BAAA,CADA,gCPghBJ,CO3XO,mEAvIL,kCAAA,CAAA,2BPsgBF,COviBE,0JAEE,iCPyiBJ,COtiBE,0EACE,kCPwiBJ,COriBG,gFACC,2BPuiBJ,CO/hBG,iFACC,yBPkiBJ,COrjBE,0JAEE,wCPujBJ,COpjBE,0EACE,yCPsjBJ,COnjBG,gFACC,kCPqjBJ,CO7iBG,iFAEC,4BAAA,CADA,gCPgjBJ,COtZO,mEA5IL,oCAAA,CAAA,6BPsiBF,COvkBE,0JAEE,mCPykBJ,COtkBE,0EACE,oCPwkBJ,COrkBG,gFACC,6BPukBJ,CO/jBG,iFACC,yBPkkBJ,COrlBE,0JAEE,0CPulBJ,COplBE,0EACE,2CPslBJ,COnlBG,gFACC,oCPqlBJ,CO7kBG,iFAEC,4BAAA,CADA,gCPglBJ,COjbO,mEAjJL,oCAAA,CAAA,6BPskBF,COvmBE,0JAEE,mCPymBJ,COtmBE,0EACE,oCPwmBJ,COrmBG,gFACC,6BPumBJ,CO/lBG,iFACC,yBPkmBJ,COrnBE,0JAEE,0CPunBJ,COpnBE,0EACE,2CPsnBJ,COnnBG,gFACC,oCPqnBJ,CO7mBG,iFAEC,4BAAA,CADA,gCPgnBJ,CO5cO,kEAtJL,kCAAA,CAAA,2BPsmBF,COvoBE,wJAEE,iCPyoBJ,COtoBE,yEACE,kCPwoBJ,COroBG,+EACC,2BPuoBJ,CO/nBG,gFACC,yBPkoBJ,COrpBE,wJAEE,wCPupBJ,COppBE,yEACE,yCPspBJ,COnpBG,+EACC,kCPqpBJ,CO7oBG,gFAEC,4BAAA,CADA,gCPgpBJ,COteK,wFACC,kCPweN,COteO,gHAEC,4BAAA,CADA,2BPyeR,COreO,gHAEC,4BAAA,CADA,6BPweR,COpeO,gHAEC,4BAAA,CADA,6BPueR,COneO,+GAEC,4BAAA,CADA,2BPseR,CO/dE,0BAtLA,oDAAA,CAAA,2CAAA,CA4LE,mBAAA,CA5LF,kCAAA,CCjBA,+BAAA,CADA,4BAAA,CAEA,mDAAA,CACA,oDR8qBF,COzeE,uECjME,wCR8qBJ,COpsBE,wEAEE,iCPssBJ,COjrBG,+EACC,mCPsrBJ,CO9sBE,wEAEE,oDPgtBJ,CO3rBG,+EACC,sDPgsBJ,COxtBE,wEAEE,wCP0tBJ,COrsBG,+EACC,2CP0sBJ,COngBK,kDA9LH,kCAAA,CAAA,2BPqsBF,COtuBE,wHAEE,iCPwuBJ,COntBG,+HACC,oCPwtBJ,COhvBE,wHAEE,wCPkvBJ,CO7tBG,+HACC,2CPkuBJ,COthBK,kDAnMH,oCAAA,CAAA,6BP6tBF,CO9vBE,wHAEE,mCPgwBJ,CO3uBG,+HACC,sCPgvBJ,COxwBE,wHAEE,0CP0wBJ,COrvBG,+HACC,6CP0vBJ,COziBK,kDAxMH,oCAAA,CAAA,6BPqvBF,COtxBE,wHAEE,mCPwxBJ,COnwBG,+HACC,sCPwwBJ,COhyBE,wHAEE,0CPkyBJ,CO7wBG,+HACC,6CPkxBJ,CO5jBK,iDA7MH,kCAAA,CAAA,2BP6wBF,CO9yBE,sHAEE,iCPgzBJ,CO3xBG,6HACC,oCPgyBJ,COxzBE,sHAEE,wCP0zBJ,COryBG,6HACC,2CP0yBJ,CO/kBK,0CAlNH,4BAAA,CAAA,sCAAA,CAAA,+BPsyBF,COv0BE,wGAEE,4BPy0BJ,COl0BG,wGACC,4BPu0BJ,CO/zBG,wDACC,oCPk0BJ,COr1BE,wGAEE,iCPu1BJ,COp1BE,iDACE,kCPs1BJ,COn1BG,uDACC,+BPq1BJ,CO70BG,wDACC,yBPg1BJ,COn2BE,wGAEE,wCPq2BJ,COl2BE,iDACE,yCPo2BJ,COj2BG,uDACC,sCPm2BJ,CO31BG,wDAEC,4BAAA,CADA,gCP81BJ,COznBO,kEAvNL,kCAAA,CAAA,2BPo1BF,COr3BE,wJAEE,iCPu3BJ,COp3BE,yEACE,kCPs3BJ,COn3BG,+EACC,2BPq3BJ,CO72BG,gFACC,yBPg3BJ,COn4BE,wJAEE,wCPq4BJ,COl4BE,yEACE,yCPo4BJ,COj4BG,+EACC,kCPm4BJ,CO33BG,gFAEC,4BAAA,CADA,gCP83BJ,COppBO,kEA5NL,oCAAA,CAAA,6BPo3BF,COr5BE,wJAEE,mCPu5BJ,COp5BE,yEACE,oCPs5BJ,COn5BG,+EACC,6BPq5BJ,CO74BG,gFACC,yBPg5BJ,COn6BE,wJAEE,0CPq6BJ,COl6BE,yEACE,2CPo6BJ,COj6BG,+EACC,oCPm6BJ,CO35BG,gFAEC,4BAAA,CADA,gCP85BJ,CO/qBO,kEAjOL,oCAAA,CAAA,6BPo5BF,COr7BE,wJAEE,mCPu7BJ,COp7BE,yEACE,oCPs7BJ,COn7BG,+EACC,6BPq7BJ,CO76BG,gFACC,yBPg7BJ,COn8BE,wJAEE,0CPq8BJ,COl8BE,yEACE,2CPo8BJ,COj8BG,+EACC,oCPm8BJ,CO37BG,gFAEC,4BAAA,CADA,gCP87BJ,CO1sBO,iEAtOL,kCAAA,CAAA,2BPo7BF,COr9BE,sJAEE,iCPu9BJ,COp9BE,wEACE,kCPs9BJ,COn9BG,8EACC,2BPq9BJ,CO78BG,+EACC,yBPg9BJ,COn+BE,sJAEE,wCPq+BJ,COl+BE,wEACE,yCPo+BJ,COj+BG,8EACC,kCPm+BJ,CO39BG,+EAEC,4BAAA,CADA,gCP89BJ,COruBK,sFACC,kCPuuBN,COruBO,8GAEC,4BAAA,CADA,2BPwuBR,COpuBO,8GAEC,4BAAA,CADA,6BPuuBR,COnuBO,8GAEC,4BAAA,CADA,6BPsuBR,COluBO,6GAEC,4BAAA,CADA,2BPquBR,CO9tBE,wBArQA,4BAAA,CAAA,wBAAA,CAAA,kCAAA,CCjBA,+BAAA,CADA,4BAAA,CAEA,mDAAA,CACA,oDR2/BF,COvuBE,mEChRE,wCR2/BJ,COjhCE,oEAEE,kCPmhCJ,CO9/BG,2EACC,mCPmgCJ,CO3hCE,oEAEE,mDP6hCJ,COxgCG,2EACC,4BP6gCJ,COriCE,oEAEE,+CPuiCJ,COlhCG,2EACC,wBPuhCJ,COnwBK,gDA3QH,2BPihCF,COljCE,oHAEE,iCPojCJ,CO/hCG,2HACC,oCPoiCJ,CO5wBK,gDA/QH,6BP8hCF,CO/jCE,oHAEE,mCPikCJ,CO5iCG,2HACC,sCPijCJ,COrxBK,gDAnRH,6BP2iCF,CO5kCE,oHAEE,mCP8kCJ,COzjCG,2HACC,sCP8jCJ,CO9xBK,+CAvRH,2BPwjCF,COzlCE,kHAEE,iCP2lCJ,COtkCG,yHACC,oCP2kCJ,COvyBK,wCACC,eAAA,CA5RJ,+BPskCF,COvmCE,oGAEE,iCPymCJ,COtmCE,+CACE,kCPwmCJ,COrmCG,qDACC,+BPumCJ,CO/lCG,sDAEC,4BAAA,CADA,yBPkmCJ,COpzBO,gEAhSL,2BPulCF,COxnCE,oJAEE,iCP0nCJ,COvnCE,uEACE,kCPynCJ,COtnCG,6EACC,2BPwnCJ,COhnCG,8EAEC,4BAAA,CADA,yBPmnCJ,COj0BO,gEApSL,6BPwmCF,COzoCE,oJAEE,mCP2oCJ,COxoCE,uEACE,oCP0oCJ,COvoCG,6EACC,6BPyoCJ,COjoCG,8EAEC,4BAAA,CADA,yBPooCJ,CO90BO,gE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A,CACA,kBAAA,CLZA,+BAAA,CAKA,eAAA,CAFA,QAAA,CACA,SNEF,CWUC,cACC,0BXRF,CWYC,eACC,sBXVF,CWcC,YACC,wBXZF,CWgBC,sBACC,6BXdF,CWkBC,qBACC,4BXhBF,CWoBC,YACC,sBXlBF,CWsBC,eACC,kBXpBF,CWwBC,eACC,oBXtBF,CW0BC,sCAEC,sBXxBF,CW4BC,0CAEC,kBX1BF,CW8BC,uCAEC,oBX5BF,CW+BC,sBACC,mBX7BF,CWgCC,uBACC,oBX9BF,CWiCC,OAIC,qBAAA,CAFA,cAAA,CACA,cAAA,CAFA,iBX5BF,CYrDG,UACC,aAAA,CACA,aAAA,CACA,cZuDJ,CYpDG,eACC,SZsDJ,CYnDG,eACC,UZqDJ,CYlDG,iBACC,gBZoDJ,CYjDG,gBACC,QZmDJ,CYtEG,UACC,aAAA,CACA,qBAAA,CACA,sBZwEJ,CYrEG,eACC,iBZuEJ,CYpEG,eACC,kBZsEJ,CYnEG,iBACC,wBZqEJ,CYlEG,gBACC,QZoEJ,CYvFG,UACC,aAAA,CACA,qBAAA,CACA,sBZyFJ,CYtFG,eACC,iBZwFJ,CYrFG,eACC,kBZuFJ,CYpFG,iBACC,wBZsFJ,CYnFG,gBACC,QZqFJ,CYxGG,SACC,aAAA,CACA,YAAA,CACA,aZ0GJ,CYvGG,cACC,QZyGJ,CYtGG,cACC,SZwGJ,CYrGG,gBACC,eZuGJ,CYpGG,eACC,OZsGJ,CYzHG,SACC,aAAA,CACA,qBAAA,CACA,sBZ2HJ,CYxHG,cACC,iBZ0HJ,CYvHG,cACC,kBZyHJ,CYtHG,gBACC,wBZwHJ,CYrHG,eACC,OZuHJ,CY1IG,SACC,aAAA,CACA,qBAAA,CACA,sBZ4IJ,CYzIG,cACC,iBZ2IJ,CYxIG,cACC,kBZ0IJ,CYvIG,gBACC,wBZyIJ,CYtIG,eACC,OZwIJ,CY3JG,SACC,aAAA,CACA,YAAA,CACA,aZ6JJ,CY1JG,cACC,QZ4JJ,CYzJG,cACC,SZ2JJ,CYxJG,gBACC,eZ0JJ,CYvJG,eACC,OZyJJ,CY5KG,SACC,aAAA,CACA,qBAAA,CACA,sBZ8KJ,CY3KG,cACC,iBZ6KJ,CY1KG,cACC,kBZ4KJ,CYzKG,gBACC,wBZ2KJ,CYxKG,eACC,OZ0KJ,CY7LG,SACC,aAAA,CACA,qBAAA,CACA,sBZ+LJ,CY5LG,cACC,iBZ8LJ,CY3LG,cACC,kBZ6LJ,CY1LG,gBACC,wBZ4LJ,CYzLG,eACC,OZ2LJ,CY9MG,SACC,aAAA,CACA,YAAA,CACA,aZgNJ,CY7MG,cACC,QZ+MJ,CY5MG,cACC,SZ8MJ,CY3MG,gBACC,eZ6MJ,CY1MG,eACC,OZ4MJ,CY/NG,SACC,aAAA,CACA,qBAAA,CACA,sBZiOJ,CY9NG,cACC,iBZgOJ,CY7NG,cACC,kBZ+NJ,CY5NG,gBACC,wBZ8NJ,CY3NG,eACC,OZ6NJ,CYhPG,SACC,aAAA,CACA,oBAAA,CACA,qBZkPJ,CY/OG,cACC,gBZiPJ,CY9OG,cACC,iBZgPJ,CY7OG,gBACC,uBZ+OJ,CY5OG,eACC,OZ8OJ,CYvOG,SACC,YZyOJ,CYtNG,gBACC,aZoOJ,CYjOG,eACC,OZmOJ,CYtRG,aACC,aAAA,CACA,aAAA,CACA,cZwRJ,CYrRG,kBACC,SZuRJ,CYpRG,kBACC,UZsRJ,CYnRG,oBACC,gBZqRJ,CYlRG,mBACC,QZoRJ,CYvSG,aACC,aAAA,CACA,qBAAA,CACA,sBZySJ,CYtSG,kBACC,iBZwSJ,CYrSG,kBACC,kBZuSJ,CYpSG,oBACC,wBZsSJ,CYnSG,mBACC,QZqSJ,CYxTG,aACC,aAAA,CACA,qBAAA,CACA,sBZ0TJ,CYvTG,kBACC,iBZyTJ,CYtTG,kBACC,kBZwTJ,CYrTG,oBACC,wBZuTJ,CYpTG,mBACC,QZsTJ,CYzUG,YACC,aAAA,CACA,YAAA,CACA,aZ2UJ,CYxUG,iBACC,QZ0UJ,CYvUG,iBACC,SZyUJ,CYtUG,mBACC,eZwUJ,CYrUG,kBACC,OZuUJ,CY1VG,YACC,aAAA,CACA,qBAAA,CACA,sBZ4VJ,CYzVG,iBACC,iBZ2VJ,CYxVG,iBACC,kBZ0VJ,CYvVG,mBACC,wBZyVJ,CYtVG,kBACC,OZwVJ,CY3WG,YACC,aAAA,CACA,qBAAA,CACA,sBZ6WJ,CY1WG,iBACC,iBZ4WJ,CYzWG,iBACC,kBZ2WJ,CYxWG,mBACC,wBZ0WJ,CYvWG,kBACC,OZyWJ,CY5XG,YACC,aAAA,CACA,YAAA,CACA,aZ8XJ,CY3XG,iBACC,QZ6XJ,CY1XG,iBACC,SZ4XJ,CYzXG,mBACC,eZ2XJ,CYxXG,kBACC,OZ0XJ,CY7YG,YACC,aAAA,CACA,qBAAA,CACA,sBZ+YJ,CY5YG,iBACC,iBZ8YJ,CY3YG,iBACC,kBZ6YJ,CY1YG,mBACC,wBZ4YJ,CYzYG,kBACC,OZ2YJ,CY9ZG,YACC,aAAA,CACA,qBAAA,CACA,sBZgaJ,CY7ZG,iBACC,iBZ+ZJ,CY5ZG,iBACC,kBZ8ZJ,CY3ZG,mBACC,wBZ6ZJ,CY1ZG,kBACC,OZ4ZJ,CY/aG,YACC,aAAA,CACA,YAAA,CACA,aZibJ,CY9aG,iBACC,QZgbJ,CY7aG,iBACC,SZ+aJ,CY5aG,mBACC,eZ8aJ,CY3aG,kBACC,OZ6aJ,CYhcG,YACC,aAAA,CACA,qBAAA,CACA,sBZkcJ,CY/bG,iBACC,iBZicJ,CY9bG,iBACC,kBZgcJ,CY7bG,mBACC,wBZ+bJ,CY5bG,kBACC,OZ8bJ,CYjdG,YACC,aAAA,CACA,oBAAA,CACA,qBZmdJ,CYhdG,iBACC,gBZkdJ,CY/cG,iBACC,iBZidJ,CY9cG,mBACC,uBZgdJ,CY7cG,kBACC,OZ+cJ,CYxcG,YACC,YZ0cJ,CYvcG,cACC,SZycJ,CYtcG,cACC,UZwcJ,CYrcG,iBACC,SZucJ,CYpcG,iBACC,UZscJ,CYncG,mBACC,aZqcJ,CYlcG,kBACC,OZocJ,CW5ZA,yBC3FG,aACC,aAAA,CACA,aAAA,CACA,cZ0fF,CYvfC,kBACC,SZyfF,CYtfC,kBACC,UZwfF,CYrfC,oBACC,gBZufF,CYpfC,mBACC,QZsfF,CYzgBC,aACC,aAAA,CACA,qBAAA,CACA,sBZ2gBF,CYxgBC,kBACC,iBZ0gBF,CYvgBC,kBACC,kBZygBF,CYtgBC,oBACC,wBZwgBF,CYrgBC,mBACC,QZugBF,CY1hBC,aACC,aAAA,CACA,qBAAA,CACA,sBZ4hBF,CYzhBC,kBACC,iBZ2hBF,CYxhBC,kBACC,kBZ0hBF,CYvhBC,oBACC,wBZyhBF,CYthBC,mBACC,QZwhBF,CY3iBC,YACC,aAAA,CACA,YAAA,CACA,aZ6iBF,CY1iBC,iBACC,QZ4iBF,CYziBC,iBACC,SZ2iBF,CYxiBC,mBACC,eZ0iBF,CYviBC,kBACC,OZyiBF,CY5jBC,YACC,aAAA,CACA,qBAAA,CACA,sBZ8jBF,CY3jBC,iBACC,iBZ6jBF,CY1jBC,iBACC,kBZ4jBF,CYzjBC,mBACC,wBZ2jBF,CYxjBC,kBACC,OZ0jBF,CY7kBC,YACC,aAAA,CACA,qBAAA,CACA,sBZ+kBF,CY5kBC,iBACC,iBZ8kBF,CY3kBC,iBACC,kBZ6kBF,CY1kBC,mBACC,wBZ4kBF,CYzkBC,kBACC,OZ2kBF,CY9lBC,YACC,aAAA,CACA,YAAA,CACA,aZgmBF,CY7lBC,iBACC,QZ+lBF,CY5lBC,iBACC,SZ8lBF,CY3lBC,mBACC,eZ6lBF,CY1lBC,kBACC,OZ4lBF,CY/mBC,YACC,aAAA,CACA,qBAAA,CACA,sBZinBF,CY9mBC,iBACC,iBZgnBF,CY7mBC,iBACC,kBZ+mBF,CY5mBC,mBACC,wBZ8mBF,CY3mBC,kBACC,OZ6mBF,CYhoBC,YACC,aAAA,CACA,qBAAA,CACA,sBZkoBF,CY/nBC,iBACC,iBZioBF,CY9nBC,iBACC,kBZgoBF,CY7nBC,mBACC,wBZ+nBF,CY5nBC,kBACC,OZ8nBF,CYjpBC,YACC,aAAA,CACA,YAAA,CACA,aZmpBF,CYhpBC,iBACC,QZkpBF,CY/oBC,iBACC,SZipBF,CY9oBC,mBACC,eZgpBF,CY7oBC,kBACC,OZ+oBF,CYlqBC,YACC,aAAA,CACA,qBAAA,CACA,sBZoqBF,CYjqBC,iBACC,iBZmqBF,CYhqBC,iBACC,kBZkqBF,CY/pBC,mBACC,wBZiqBF,CY9pBC,kBACC,OZgqBF,CYnrBC,YACC,aAAA,CACA,oBAAA,CACA,qBZqrBF,CYlrBC,iBACC,gBZorBF,CYjrBC,iBACC,iBZmrBF,CYhrBC,mBACC,uBZkrBF,CY/qBC,kBACC,OZirBF,CY1qBC,YACC,YZ4qBF,CYzqBC,cACC,SZ2qBF,CYxqBC,cACC,UZ0qBF,CYvqBC,iBACC,SZyqBF,CYtqBC,iBACC,UZwqBF,CYrqBC,mBACC,aZuqBF,CYpqBC,kBACC,OZsqBF,CACF,CW3nBA,yBC/FG,aACC,aAAA,CACA,aAAA,CACA,cZ6tBF,CY1tBC,kBACC,SZ4tBF,CYztBC,kBACC,UZ2tBF,CYxtBC,oBACC,gBZ0tBF,CYvtBC,mBACC,QZytBF,CY5uBC,aACC,aAAA,CACA,qBAAA,CACA,sBZ8uBF,CY3uBC,kBACC,iBZ6uBF,CY1uBC,kBACC,kBZ4uBF,CYzuBC,oBACC,wBZ2uBF,CYxuBC,mBACC,QZ0uBF,CY7vBC,aACC,aAAA,CACA,qBAAA,CACA,sBZ+vBF,CY5vBC,kBACC,iBZ8vBF,CY3vBC,kBACC,kBZ6vBF,CY1vBC,oBACC,wBZ4vBF,CYzvBC,mBACC,QZ2vBF,CY9wBC,YACC,aAAA,CACA,YAAA,CACA,aZgxBF,CY7wBC,iBACC,QZ+wBF,CY5wBC,iBACC,SZ8wBF,CY3wBC,mBACC,eZ6wBF,CY1wBC,kBACC,OZ4wBF,CY/xBC,YACC,aAAA,CACA,qBAAA,CACA,sBZiyBF,CY9xBC,iBACC,iBZgyBF,CY7xBC,iBACC,kBZ+xBF,CY5xBC,mBACC,wBZ8xBF,CY3xBC,kBACC,OZ6xBF,CYhzBC,YACC,aAAA,CACA,qBAAA,CACA,sBZkzBF,CY/yBC,iBACC,iBZizBF,CY9yBC,iBACC,kBZgzBF,CY7yBC,mBACC,wBZ+yBF,CY5yBC,kBACC,OZ8yBF,CYj0BC,YACC,aAAA,CACA,YAAA,CACA,aZm0BF,CYh0BC,iBACC,QZk0BF,CY/zBC,iBACC,SZi0BF,CY9zBC,mBACC,eZg0BF,CY7zBC,kBACC,OZ+zBF,CYl1BC,YACC,aAAA,CACA,qBAAA,CACA,sBZo1BF,CYj1BC,iBACC,iBZm1BF,CYh1BC,iBACC,kBZk1BF,CY/0BC,mBACC,wBZi1BF,CY90BC,kBACC,OZg1BF,CYn2BC,YACC,aAAA,CACA,qBAAA,CACA,sBZq2BF,CYl2BC,iBACC,iBZo2BF,CYj2BC,iBACC,kBZm2BF,CYh2BC,mBACC,wBZk2BF,CY/1BC,kBACC,OZi2BF,CYp3BC,YACC,aAAA,CACA,YAAA,CACA,aZs3BF,CYn3BC,iBACC,QZq3BF,CYl3BC,iBACC,SZo3BF,CYj3BC,mBACC,eZm3BF,CYh3BC,kBACC,OZk3BF,CYr4BC,YACC,aAAA,CACA,qBAAA,CACA,sBZu4BF,CYp4BC,iBACC,iBZs4BF,CYn4BC,iBACC,kBZq4BF,CYl4BC,mBACC,wBZo4BF,CYj4BC,kBACC,OZm4BF,CYt5BC,YACC,aAAA,CACA,oBAAA,CACA,qBZw5BF,CYr5BC,iBACC,gBZu5BF,CYp5BC,iBACC,iBZs5BF,CYn5BC,mBACC,uBZq5BF,CYl5BC,kBACC,OZo5BF,CY74BC,YACC,YZ+4BF,CY54BC,cACC,SZ84BF,CY34BC,cACC,UZ64BF,CY14BC,iBACC,SZ44BF,CYz4BC,iBACC,UZ24BF,CYx4BC,mBACC,aZ04BF,CYv4BC,kBACC,OZy4BF,CACF,CW11BA,0BCnGG,aACC,aAAA,CACA,aAAA,CACA,cZg8BF,CY77BC,kBACC,SZ+7BF,CY57BC,kBACC,UZ87BF,CY37BC,oBACC,gBZ67BF,CY17BC,mBACC,QZ47BF,CY/8BC,aACC,aAAA,CACA,qBAAA,CACA,sBZi9BF,CY98BC,kBACC,iBZg9BF,CY78BC,kBACC,kBZ+8BF,CY58BC,oBACC,wBZ88BF,CY38BC,mBACC,QZ68BF,CYh+BC,aACC,aAAA,CACA,qBAAA,CACA,sBZk+BF,CY/9BC,kBACC,iBZi+BF,CY99BC,kBACC,kBZg+BF,CY79BC,oBACC,wBZ+9BF,CY59BC,mBACC,QZ89BF,CYj/BC,YACC,aAAA,CACA,YAAA,CACA,aZm/BF,CYh/BC,iBACC,QZk/BF,CY/+BC,iBACC,SZi/BF,CY9+BC,mBACC,eZg/BF,CY7+BC,kBACC,OZ++BF,CYlgCC,YACC,aAAA,CACA,qBAAA,CACA,sBZogCF,CYjgCC,iBACC,iBZmgCF,CYhgCC,iBACC,kBZkgCF,CY//BC,mBACC,wBZigCF,CY9/BC,kBACC,OZggCF,CYnhCC,YACC,aAAA,CACA,qBAAA,CACA,sBZqhCF,CYlhCC,iBACC,iBZohCF,CYjhCC,iBACC,kBZmhCF,CYhhCC,mBACC,wBZkhCF,CY/gCC,kBACC,OZihCF,CYpiCC,YACC,aAAA,CACA,YAAA,CACA,aZsiCF,CYniCC,iBACC,QZqiCF,CYliCC,iBACC,SZoiCF,CYjiCC,mBACC,eZmiCF,CYhiCC,kBACC,OZkiCF,CYrjCC,YACC,aAAA,CACA,qBAAA,CACA,sBZujCF,CYpjCC,iBACC,iBZsjCF,CYnjCC,iBACC,kBZqjCF,CYljCC,mBACC,wBZojCF,CYjjCC,kBACC,OZmjCF,CYtkCC,YACC,aAAA,CACA,qBAAA,CACA,sBZwkCF,CYrkCC,iBACC,iBZukCF,CYpkCC,iBACC,kBZskCF,CYnkCC,mBACC,wBZqkCF,CYlkCC,kBACC,OZokCF,CYvlCC,YACC,aAAA,CACA,YAAA,CACA,aZylCF,CYtlCC,iBACC,QZwlCF,CYrlCC,iBACC,SZulCF,CYplCC,mBACC,eZslCF,CYnlCC,kBACC,OZqlCF,CYxmCC,YACC,aAAA,CACA,qBAAA,CACA,sBZ0mCF,CYvmCC,iBACC,iBZymCF,CYtmCC,iBACC,kBZwmCF,CYrmCC,mBACC,wBZumCF,CYpmCC,kBACC,OZsmCF,CYznCC,YACC,aAAA,CACA,oBAAA,CACA,qBZ2nCF,CYxnCC,iBACC,gBZ0nCF,CYvnCC,iBACC,iBZynCF,CYtnCC,mBACC,uBZwnCF,CYrnCC,kBACC,OZunCF,CYhnCC,YACC,YZknCF,CY/mCC,cACC,SZinCF,CY9mCC,cACC,UZgnCF,CY7mCC,iBACC,SZ+mCF,CY5mCC,iBACC,UZ8mCF,CY3mCC,mBACC,aZ6mCF,CY1mCC,kBACC,OZ4mCF,CACF,CWzjCA,0BCvGG,aACC,aAAA,CACA,aAAA,CACA,cZmqCF,CYhqCC,kBACC,SZkqCF,CY/pCC,kBACC,UZiqCF,CY9pCC,oBACC,gBZgqCF,CY7pCC,mBACC,QZ+pCF,CYlrCC,aACC,aAAA,CACA,qBAAA,CACA,sBZorCF,CYjrCC,kBACC,iBZmrCF,CYhrCC,kBACC,kBZkrCF,CY/qCC,oBACC,wBZirCF,CY9qCC,mBACC,QZgrCF,CYnsCC,aACC,aAAA,CACA,qBAAA,CACA,sBZqsCF,CYlsCC,kBACC,iBZosCF,CYjsCC,kBACC,kBZmsCF,CYhsCC,oBACC,wBZksCF,CY/rCC,mBACC,QZisCF,CYptCC,YACC,aAAA,CACA,YAAA,CACA,aZstCF,CYntCC,iBACC,QZqtCF,CYltCC,iBACC,SZotCF,CYjtCC,mBACC,eZmtCF,CYhtCC,kBACC,OZktCF,CYruCC,YACC,aAAA,CACA,qBAAA,CACA,sBZuuCF,CYpuCC,iBACC,iBZsuCF,CYnuCC,iBACC,kBZquCF,CYluCC,mBACC,wBZouCF,CYjuCC,kBACC,OZmuCF,CYtvCC,YACC,aAAA,CACA,qBAAA,CACA,sBZwvCF,CYrvCC,iBACC,iBZuvCF,CYpvCC,iBACC,kBZsvCF,CYnvCC,mBACC,wBZqvCF,CYlvCC,kBACC,OZovCF,CYvwCC,YACC,aAAA,CACA,YAAA,CACA,aZywCF,CYtwCC,iBACC,QZwwCF,CYrwCC,iBACC,SZuwCF,CYpwCC,mBACC,eZswCF,CYnwCC,kBACC,OZqwCF,CYxxCC,YACC,aAAA,CACA,qBAAA,CACA,sBZ0xCF,CYvxCC,iBACC,iBZyxCF,CYtxCC,iBACC,kBZwxCF,CYrxCC,mBACC,wBZuxCF,CYpxCC,kBACC,OZsxCF,CYzyCC,YACC,aAAA,CACA,qBAAA,CACA,sBZ2yCF,CYxyCC,iBACC,iBZ0yCF,CYvyCC,iBACC,kBZyyCF,CYtyCC,mBACC,wBZwyCF,CYryCC,kBACC,OZuyCF,CY1zCC,YACC,aAAA,CACA,YAAA,CACA,aZ4zCF,CYzzCC,iBACC,QZ2zCF,CYxzCC,iBACC,SZ0zCF,CYvzCC,mBACC,eZyzCF,CYtzCC,kBACC,OZwzCF,CY30CC,YACC,aAAA,CACA,qBAAA,CACA,sBZ60CF,CY10CC,iBACC,iBZ40CF,CYz0CC,iBACC,kBZ20CF,CYx0CC,mBACC,wBZ00CF,CYv0CC,kBACC,OZy0CF,CY51CC,YACC,aAAA,CACA,oBAAA,CACA,qBZ81CF,CY31CC,iBACC,gBZ61CF,CY11CC,iBACC,iBZ41CF,CYz1CC,mBACC,uBZ21CF,CYx1CC,kBACC,OZ01CF,CYn1CC,YACC,YZq1CF,CYl1CC,cACC,SZo1CF,CYj1CC,cACC,UZm1CF,CYh1CC,iBACC,SZk1CF,CY/0CC,iBACC,UZi1CF,CY90CC,mBACC,aZg1CF,CY70CC,kBACC,OZ+0CF,CACF,CWxxCA,0BC3GG,cACC,aAAA,CACA,aAAA,CACA,cZs4CF,CYn4CC,mBACC,SZq4CF,CYl4CC,mBACC,UZo4CF,CYj4CC,qBACC,gBZm4CF,CYh4CC,oBACC,QZk4CF,CYr5CC,cACC,aAAA,CACA,qBAAA,CACA,sBZu5CF,CYp5CC,mBACC,iBZs5CF,CYn5CC,mBACC,kBZq5CF,CYl5CC,qBACC,wBZo5CF,CYj5CC,oBACC,QZm5CF,CYt6CC,cACC,aAAA,CACA,qBAAA,CACA,sBZw6CF,CYr6CC,mBACC,iBZu6CF,CYp6CC,mBACC,kBZs6CF,CYn6CC,qBACC,wBZq6CF,CYl6CC,oBACC,QZo6CF,CYv7CC,aACC,aAAA,CACA,YAAA,CACA,aZy7CF,CYt7CC,kBACC,QZw7CF,CYr7CC,kBACC,SZu7CF,CYp7CC,oBACC,eZs7CF,CYn7CC,mBACC,OZq7CF,CYx8CC,aACC,aAAA,CACA,qBAAA,CACA,sBZ08CF,CYv8CC,kBACC,iBZy8CF,CYt8CC,kBACC,kBZw8CF,CYr8CC,oBACC,wBZu8CF,CYp8CC,mBACC,OZs8CF,CYz9CC,aACC,aAAA,CACA,qBAAA,CACA,sBZ29CF,CYx9CC,kBACC,iBZ09CF,CYv9CC,kBACC,kBZy9CF,CYt9CC,oBACC,wBZw9CF,CYr9CC,mBACC,OZu9CF,CY1+CC,aACC,aAAA,CACA,YAAA,CACA,aZ4+CF,CYz+CC,kBACC,QZ2+CF,CYx+CC,kBACC,SZ0+CF,CYv+CC,oBACC,eZy+CF,CYt+CC,mBACC,OZw+CF,CY3/CC,aACC,aAAA,CACA,qBAAA,CACA,sBZ6/CF,CY1/CC,kBACC,iBZ4/CF,CYz/CC,kBACC,kBZ2/CF,CYx/CC,oBACC,wBZ0/CF,CYv/CC,mBACC,OZy/CF,CY5gDC,aACC,aAAA,CACA,qBAAA,CACA,sBZ8gDF,CY3gDC,kBACC,iBZ6gDF,CY1gDC,kBACC,kBZ4gDF,CYzgDC,oBACC,wBZ2gDF,CYxgDC,mBACC,OZ0gDF,CY7hDC,aACC,aAAA,CACA,YAAA,CACA,aZ+hDF,CY5hDC,kBACC,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AAA,CACA,czBoBN,CyBjBI,uBAIE,MAAA,CAHA,eAAA,CACA,sBAAA,CACA,kBzBoBN,CyBhBK,sEAEG,kBAAA,CAEA,aAAA,CADA,wCzBkBR,CyBZI,iCACE,kCzBcN,CyBZM,uCACE,mDzBcR,CyBXM,wCACE,oDzBaR,CyBVO,0DAEC,4CAAA,CADA,2BzBaR,CyBVQ,gEACE,mDzBYV,CyBTQ,iEACE,oDzBWV,CyBPO,4DACC,mCzBSR,CyBPQ,kEACE,mDzBSV,CyBJQ,gEACE,4CAAA,CACA,2BzBMV,CyBDI,iCACE,6BzBGN,CyBDM,uCACE,mDzBGR,CyBAM,wCACE,oDzBER,CyBCO,0DACC,8CzBCR,CyBCQ,gEACE,mDzBCV,CyBEQ,iEACE,oDzBAV,CyBIO,2DACC,mCzBFR,CyBIQ,iEACE,mDzBFV,CyBOQ,gEACE,8CzBLV,CyBUI,+BACE,2BzBRN,CyBUM,qCACE,mDzBRR,CyBWM,sCACE,oDzBTR,CyBYO,wDACC,4CzBVR,CyBYQ,8DACE,mDzBVV,CyBaQ,+DACE,oDzBXV,CyBeO,0DACC,mCzBbR,CyBeQ,gEACE,mDzBbV,CyBkBQ,8DACE,4CzBhBV,CyBsBI,iCACE,6BzBpBN,CyBsBM,uCACE,mDzBpBR,CyBuBM,wCACE,oDzBrBR,CyBwBO,0DACC,8CzBtBR,CyBwBQ,gEACE,mDzBtBV,CyByBQ,iEACE,oDzBvBV,CyB2BO,4DACC,mCzBzBR,CyB2BQ,kEACE,mDzBzBV,CyB8BQ,gEACE,8CzB5BV,C0BnQC,QAIC,6CAAA,CpBTA,qBAAA,CADA,kCAAA,CADA,+BAAA,CAKA,eAAA,CAFA,QAAA,CoBOA,eAAA,CpBNA,SNEF,C0BQK,0BACC,U1BNN,C0BSK,2BACC,W1BPN,C0BCE,wBAUI,wC1BRN,C0BYE,aAEE,eAAA,CADA,iBAAA,CAEA,gB1BVJ,C0BaE,oBAKE,6CAAA,CADA,kDAAA,CAHA,YAAA,CACA,kBAAA,CACA,iB1BTJ,C0BaI,0BACE,MAAA,CACA,S1BXN,C0BcI,2BACE,OAAA,CACA,S1BZN,C0BeQ,oDACE,2C1BbV,C0BOI,+CAYI,kBAAA,CADA,YAAA,CAGA,MAAA,C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ADA,mC9B0JJ,C8BvJI,6BACE,2C9ByJN,C8B9JG,uCAUG,mCAAA,CADA,kBAAA,CAEA,kB9BwJN,C8BtJM,oDACE,mC9BwJR,C8B/IQ,4MACE,mC9BsJV,C8BvHK,0CAKC,kBAAA,CADA,YAAA,CAFA,WAAA,CACA,iBAAA,CAFA,S9B6HN,C8BtHK,+CACC,wC9BwHN,C8BtHK,wDAEG,yC9BuHR,C8BpHK,wDAEG,yC9BqHR,C8BvIK,0CAKC,kBAAA,CADA,YAAA,CAFA,WAAA,CACA,iBAAA,CAFA,S9B6IN,C8BtIK,+CACC,wC9BwIN,C8BtIK,wDAEG,yC9BuIR,C8BpIK,wDAEG,yC9BqIR,CiCxOC,gCA+GG,cjC4HJ,CiCxHG,kBAEC,8BAAA,CADA,6BAAA,CAEA,6DjC0HJ,CiCvHG,kBAEC,8BAAA,CADA,6BjC0HJ,CiCpPC,oEAiIK,iBjCuHN,CiCxPC,kCAuIK,sCjCoHN,CiCjHI,sCACE,oCjCmHN,CiC9PC,kCAiJK,sCAAA,CACA,yBjCgHN,CiC9GM,wCACE,oCAAA,CACA,yBjCgHR,CiC5GI,sCACE,mCjC8GN,CiCzGG,2JAUK,2BjCsGR,CiChGC,eAGC,mBAAA,CADA,mBAAA,CADA,iBjCoGF,CiCrGC,8BAMG,ejCkGJ,CiChGI,0CACE,mEjCkGN,CiC/FI,yCACE,mEjCiGN,CiC9GC,kDAmBG,ejC+FJ,CiCxFI,+IAEI,gBjC6FR,CiCzFI,mDAEI,mEjC0FR,CiCtFI,kDAEI,mEjCuFR,CiChFI,0EACE,mEjCmFN,CiChFI,wEACE,mEjCmFN,CiC/EE,uDAEI,sCjCgFN,CiClFE,sEAOI,sCjC+EN,CiC7EM,8FACE,mEjCgFR,CiC7EM,4FACE,mEjCgFR,CiCpEQ,0KACE,sCjC4EV,CiC/JC,iFA4FG,iBAAA,CACA,SjCwEJ,CiCtEI,4SAGE,SjC8EN,CiCzEC,eACC,UjC2EF,CiCxEC,eAGC,8BAAA,CAFA,WAAA,CACA,2CAAA,CAEA,iBjC0EF,CiCvEC,wBACC,sCjCyEF,CiCtEC,wBACC,6BjCwEF,CiCrEC,wBACC,6BjCuEF,CiCpEC,sBACC,2BjCsEF,CiCnEC,gCACC,iBjCqEF,C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DAAA,CAFA,qCAAA,CACA,iDnCHJ,CmCbC,0BAyBG,cAAA,CADA,+BAAA,CADA,mCAAA,CADA,cAAA,CAIA,8CnCNJ,CmCSE,gBAEE,6CAAA,CADA,kCnCNJ,CmCKE,mCAKI,sCnCPN,CmCSM,yCACE,kCnCPR,CmCWI,uBACE,cnCTN,CmCaK,gCAEC,sDAAA,CACA,uCAAA,CAFA,mCAAA,CAGA,kBnCXN,CmCaM,sCACE,kBnCXR,CmCeQ,8CACE,cnCbV,CmCkBK,+BACC,uCnChBN,CmCuBK,kEAHC,sDnCbN,CmCgBK,qCACC,uCnCjBN,CmCsBE,gBACE,sCnCpBJ,CmCsBK,+BACC,kCnCpBN,CmC2BK,kEAHC,4CnCjBN,CmCoBK,qCACC,kCnCrBN,CmCyBK,iGACC,2BnCrBN,CmCwBQ,4KACE,iCnCpBV,CmC0BE,gBACE,wCnCxBJ,CmC0BK,+BACC,oCnCxBN,CmC+BK,kEAHC,8CnCrBN,CmCwBK,qCACC,oCnCzBN,CmC6BK,iGACC,6BnCzBN,CmC4BQ,4KACE,mCnCxBV,CmC8BE,gBACE,wCnC5BJ,CmC8BK,+BACC,oCnC5BN,CmCmCK,kEAHC,8CnCzBN,CmC4BK,qCACC,oCnC7BN,CmCiCK,iGACC,6BnC7BN,CmCgCQ,4KACE,mCnC5BV,CmCkCE,eACE,sCnChCJ,CmCkCK,8BACC,kCnChCN,CmCuCK,gEAHC,4CnC7BN,CmCgCK,oCACC,kCnCjCN,CmCqBE,kCAiBI,0BnCnCN,CmCqCM,wCACE,gCnCnCR,CmCuCK,8FACC,2BnCnCN,CmCsCQ,yKACE,iCnClCV,CmCwCE,2DAGI,4BnCxCN,CmC0CM,iEACE,4BnCxCR,CmC6CG,sBACC,sBnC3CJ,CmC8CG,gBAGC,8BAAA,CADA,8BAAA,CADA,qCnC1CJ,CmCyCG,wBAMG,mCnC5CN,CmCgDG,gBAEC,4BAAA,CADA,oCnC5CJ,CmC2CG,wCAGC,+BnC3CJ,CmCkDG,oBACC,yCnChDJ,CmCmDG,mBACC,yEnCjDJ,CmCoDG,oCH/OD,gBAAA,CGkPI,oBAAA,CHjPJ,eAAA,CACA,sBAAA,CAHA,kBhCmMF,CmCsDC,0CAEC,cAAA,CADA,yDnCnDF,CmCuDI,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E+CJ,CyEhDG,6DACC,UzEkDJ,CyEnDG,6DACC,UzEqDJ,CyEtDG,6DACC,UzEwDJ,CyEzDG,6DACC,UzE2DJ,CyE5DG,6DACC,UzE8DJ,CyE/DG,6DACC,UzEiEJ,CyElEG,6DACC,UzEoEJ,CyErEG,6DACC,UzEuEJ,CyExEG,8DACC,UzE0EJ,CyE3EG,8DACC,UzE6EJ,CyE9EG,8DACC,UzEgFJ,CyEjFG,8DACC,UzEmFJ,CyEpFG,8DACC,UzEsFJ,CyEvFG,8DACC,UzEyFJ,CyE1FG,8DACC,UzE4FJ,CyE7FG,8DACC,UzE+FJ,CyEhGG,8DACC,UzEkGJ,CyEnGG,8DACC,UzEqGJ,CyEtGG,8DACC,UzEwGJ,CyEzGG,8DACC,UzE2GJ,CyE5GG,8DACC,UzE8GJ,CyE/GG,8DACC,UzEiHJ,CyElHG,8DACC,UzEoHJ,CyErHG,8DACC,UzEuHJ,CyExHG,8DACC,UzE0HJ,CyE3HG,8DACC,UzE6HJ,CyE9HG,8DACC,UzEgIJ,CyEjIG,8DACC,UzEmIJ,CyEpIG,8DACC,UzEsIJ,CyEvIG,8DACC,UzEyIJ,CyE1IG,8DACC,UzE4IJ,CyE7IG,8DACC,UzE+IJ,CyEhJG,8DACC,UzEkJJ,CyEnJG,8DACC,UzEqJJ,CyEtJG,8DACC,UzEwJJ,CyEzJG,8DACC,UzE2JJ,CyE5JG,8DACC,UzE8JJ,CyE/JG,8DACC,UzEiKJ,CyElKG,8DACC,UzEoKJ,CyErKG,8DACC,SzEuKJ,CyExKG,8DACC,SzE0KJ,CyE3KG,8DACC,SzE6KJ,CyE9KG,8DACC,SzEgLJ,CyEjLG,8DACC,SzEmLJ,CyEpLG,8DACC,SzEsLJ,CyEvLG,8DACC,SzEyLJ,CyE1LG,8DACC,SzE4LJ,CyE7LG,8DACC,SzE+LJ,CyEhMG,8DACC,SzEkMJ,CwE/IM,kECzDJ,wCzE2MF,CyE7LG,2EAdD,wCzE8MF,CyE5LG,2EAlBD,wCzEiNF,C0ExNC,SpENC,qBAAA,CADA,kCAAA,CoEWA,oBAAA,CpEZA,+BAAA,CAKA,eAAA,CAFA,QAAA,CACA,SAAA,CoEOA,iB1ELF,C0EQE,+CAWE,sBAAA,CALA,+BAAA,CAEA,8BAAA,CALA,iBAAA,CA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CAAA,CANA,sBAAA,CAKA,sCAAA,CAHA,SxF4sBJ,CwFrsBI,8EACE,kCxFusBN,CwFpsBI,+EACE,kCxFssBN,CuFziBC,qFCvIG,oCAAA,CAFA,oBAAA,CACA,wCAAA,CAEA,QxFqrBJ,CuF7hBG,yDAEG,YvF8hBN,CuFhiBG,8FCRO,8CxF2iBV,CwFziBU,oGACE,6CxF2iBZ,CuFtiBG,qLCKO,6CxFuiBV,CuFpiBG,0FCnJK,cAAA,CAyBE,UAAA,CAHA,cAAA,CACA,cAAA,CACA,UxFsqBV,CuF3iBG,+FCtHS,WAAA,CADA,SxFsqBZ,CwFlqBU,sGACE,YxFoqBZ,CuFljBG,+FC7GO,iCxFkqBV,CwFhqBU,qGACE,uCxFkqBZ,CwF/pBU,sGACE,6CxFiqBZ,CwF7pBS,sGAKG,WxF2pBZ,CwFhqBS,2GASG,6CxF0pBZ,CuF7jBK,4EAEG,WvF8jBR,CuFhkBK,iHCpBK,8CxFulBV,CwFrlBU,uHACE,6CxFulBZ,CuFtkBK,2NCPK,6CxFmlBV,CF/1BE,4BAAA,WACE,qDAAA,CACA,oBEFF,CACF,CFKE,8BAEE,UAAA,CADA,SEFJ,CFME,oCAEE,2BAAA,CACA,0CAAA,CAFA,0BAAA,CAGA,kBEJJ,CFQE,wGAEE,gDENJ,CyFkBE,gIACE,uCzFfJ,CyFuBE,8RACE,sBzFnBJ,CyFwBC,mCACC,gBzFtBF,CyFyBC,SAMC,6CAAA,CnF1DA,qBAAA,CmFyDA,kCAAA,CADA,+BAAA,CnFrDA,eAAA,CAFA,QAAA,CACA,SAAA,CmFyDA,iBAAA,CAJA,UzFhBF,CyFaC,8EAUG,WzFpBJ,CyFuBE,uBACE,YzFrBJ,CyFOC,0BAmBG,UzFvBJ,C0FXG,sHAGG,kB1FYN,C0FfG,4HAGG,qB1FgBN,C0FnBG,4HAGG,qB1FoBN,CyFRC,+BA+BG,gDAAA,CAJA,YAAA,CAEA,SAAA,CADA,iBAAA,CAEA,OAAA,CAEA,YzFhBJ,CyFoBK,+GAEC,gBzFlBN,CyFsBE,oCACE,oCzFpBJ,CyFuBE,kDACE,qCzFrBJ,CyFwBE,kBACE,iBzFtBJ,CFjFE,4BAAA,kBACE,qDAAA,CACA,oBEwGF,CACF,CFrGE,qCAEE,UAAA,C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","file":"tdesign.min.css","sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,"@keyframes t-spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n.t-icon {\n display: inline-block;\n vertical-align: middle;\n width: 1em;\n height: 1em;\n}\n.t-icon::before {\n font-family: unset;\n}\n.t-icon-loading {\n animation: t-spin 1s linear infinite;\n}\n.t-icon {\n fill: currentColor;\n}\n.t-icon.t-size-s,\ni.t-size-s {\n font-size: 14px;\n}\n.t-icon.t-size-m,\ni.t-size-m {\n font-size: 16px;\n}\n.t-icon.t-size-l,\ni.t-size-l {\n font-size: 18px;\n}\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]} \ No newline at end of file diff --git a/docs/assets/images/icon/oracle-linux.png b/docs/assets/images/icon/oracle-linux.png index 6d0d0a5..2d3b2aa 100644 Binary files a/docs/assets/images/icon/oracle-linux.png and b/docs/assets/images/icon/oracle-linux.png differ diff --git a/docs/assets/images/sponsor/langlangyun-dark.png b/docs/assets/images/sponsor/langlangyun-dark.png index 60f1e47..2bc631d 100644 Binary files a/docs/assets/images/sponsor/langlangyun-dark.png and b/docs/assets/images/sponsor/langlangyun-dark.png differ diff --git a/docs/assets/js/modules/tdesign.min.js b/docs/assets/js/modules/tdesign.min.js index 9ce1521..19e4430 100644 --- a/docs/assets/js/modules/tdesign.min.js +++ b/docs/assets/js/modules/tdesign.min.js @@ -1,22 +1,15 @@ /** - * tdesign v1.13.2 + * tdesign v1.15.2 * (c) 2025 tdesign * @license MIT */ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vue")):"function"==typeof define&&define.amd?define(["exports","vue"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TDesign={},e.Vue)}(this,(function(e,t){"use strict";function n(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var r=n(t);function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0){if(++ue>=800)return arguments[0]}else ue=0;return ie.apply(void 0,arguments)});function fe(e){return e!=e}function pe(e,t){return!!(null==e?0:e.length)&&function(e,t,n){return t==t?function(e,t,n){for(var r=n-1,o=e.length;++r-1}var me=/^(?:0|[1-9]\d*)$/;function he(e,t){var n=u(e);return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&me.test(e))&&e>-1&&e%1==0&&e-1&&e%1==0&&e<=9007199254740991}function je(e){return null!=e&&Se(e.length)&&!H(e)}function ke(e,t,n){if(!E(n))return!1;var r=u(t);return!!("number"==r?je(n)&&he(t,n.length):"string"==r&&t in n)&&ye(n[t],e)}function Ne(e){return Pe((function(t,n){var r=-1,o=n.length,a=o>1?n[o-1]:void 0,l=o>2?n[2]:void 0;for(a=e.length>3&&"function"==typeof a?(o--,a):void 0,l&&ke(n[0],n[1],l)&&(a=o<3?void 0:a,o=1),t=Object(t);++r-1},ft.prototype.set=function(e,t){var n=this.__data__,r=dt(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this};var pt=te(f,"Map");function mt(e,t){var n,r,o=e.__data__;return("string"==(r=u(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?o["string"==typeof t?"string":"hash"]:o.map}function ht(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t0&&n(i)?t>1?Vt(i,t-1,n,r,o):kt(o,i):r||(o[o.length]=i)}return o}function Dt(e){return(null==e?0:e.length)?Vt(e,1):[]}function Et(e){return ve(xe(e,void 0,Dt),e+"")}var Ft=Xe(Object.getPrototypeOf,Object),Tt=Function.prototype,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+"]",Sn="(?:"+wn+"|"+On+")",jn="(?:"+Pn+"|"+On+")",kn="(?:['\u2019](?:d|ll|m|re|s|t|ve))?",Nn="(?:['\u2019](?:D|LL|M|RE|S|T|VE))?",_n="(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?",Vn="[\\ufe0e\\ufe0f]?",Dn=Vn+_n+("(?:\\u200d(?:"+["[^"+vn+"]",Cn,xn].join("|")+")"+Vn+_n+")*"),En="(?:"+[bn,Cn,xn].join("|")+")"+Dn,Fn=RegExp([Pn+"?"+wn+"+"+kn+"(?="+[gn,Pn,"$"].join("|")+")",jn+"+"+Nn+"(?="+[gn,Pn+Sn,"$"].join("|")+")",Pn+"?"+Sn+"+"+kn,Pn+"+"+Nn,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",yn,En].join("|"),"g");function Tn(e,t,n){return e=Ct(e),void 0===(t=n?void 0:t)?function(e){return dn.test(e)}(e)?function(e){return e.match(Fn)||[]}(e):function(e){return e.match(sn)||[]}(e):e.match(t)||[]}var 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)&&je(e)}function go(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]}function yo(e,t,n,r,o,a,l){var i=go(e,n),u=go(t,n),c=l.get(u);if(c)mo(e,n,c);else{var s,d=a?a(i,u,n+"",e,t,l):void 0,v=void 0===d;if(v){var f=S(u),p=!f&&Le(u),m=!f&&!p&&$e(u);d=u,f||p||m?S(i)?d=i:ho(i)?d=ae(i):p?(v=!1,d=$n(u,!0)):m?(v=!1,d=Pr(u,!0)):d=[]:Lt(u)||Ie(u)?(d=i,Ie(i)?d=Oe(s=i,rt(s)):E(i)&&!H(i)||(d=jr(u))):v=!1}v&&(l.set(u,d),o(d,u,r,a,l),l.delete(u)),mo(e,n,d)}}function bo(e,t,n,r,o){e!==t&&io(t,(function(a,l){if(o||(o=new Hn),E(a))yo(e,t,l,n,bo,r,o);else{var i=r?r(go(e,l),a,l+"",e,t,o):void 0;void 0===i&&(i=a),mo(e,l,i)}}),rt)}var wo=Ne((function(e,t,n,r){bo(e,t,n,r)})),Oo=wo;function Co(e,t,n){for(var r=-1,o=null==e?0:e.length;++r=200&&(a=Lr,l=!1,t=new Ar(t));e:for(;++ot}function Do(e){return"string"==typeof e||!S(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(;++r1&&s.includes(Boolean)&&s.includes(Function)&&""===c&&!i)return a;if(!1===c||null===c)return;return!0===c?Ja(e,n,o)||a:H(c)?c(t.h,o):[void 0,""].includes(c)&&i?Ja(e,n,o):c}if(i)return Ja(e,n,o);var d=e.props[Bn(n)]||e.props[$o(n)];return!1!==d&&null!==d?!0===d?a:H(d)?d(t.h,o):d:void 0}},tl=function(){var e=el();return function(t,n){var r=za(n);return e(t,n)||r}},nl=function(){var e=el();return function(t,n,r){var o=Wa(r),a=za(r),l=o?{params:o}:void 0,i=e(t,l),u=e(n,l),c=Qa(i)?u:i;return Qa(c)?a:c}};var rl="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function ol(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var al={exports:{}};!function(e){e.exports=function(){var e=1e3,t=6e4,n=36e5,r="millisecond",o="second",a="minute",l="hour",i="day",c="week",s="month",d="quarter",v="year",f="date",p="Invalid Date",m=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,h=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,g={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(e){var t=["th","st","nd","rd"],n=e%100;return"["+e+(t[(n-20)%10]||t[n]||t[0])+"]"}},y=function(e,t,n){var r=String(e);return!r||r.length>=t?e:""+Array(t+1-r.length).join(n)+e},b={s:y,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),r=Math.floor(n/60),o=n%60;return(t<=0?"+":"-")+y(r,2,"0")+":"+y(o,2,"0")},m:function e(t,n){if(t.date()1)return e(l[0])}else{var i=t.name;O[i]=t,o=i}return!r&&o&&(w=o),o||!r&&w},S=function(e,t){if(x(e))return e.clone();var n="object"==u(t)?t:{};return n.date=e,n.args=arguments,new k(n)},j=b;j.l=P,j.i=x,j.w=function(e,t){return S(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var k=function(){function u(e){this.$L=P(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[C]=!0}var g=u.prototype;return g.parse=function(e){this.$d=function(e){var t=e.date,n=e.utc;if(null===t)return new Date(NaN);if(j.u(t))return new Date;if(t instanceof Date)return new Date(t);if("string"==typeof t&&!/Z$/i.test(t)){var r=t.match(m);if(r){var o=r[2]-1||0,a=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],o,r[3]||1,r[4]||0,r[5]||0,r[6]||0,a)):new Date(r[1],o,r[3]||1,r[4]||0,r[5]||0,r[6]||0,a)}}return new Date(t)}(e),this.init()},g.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},g.$utils=function(){return j},g.isValid=function(){return!(this.$d.toString()===p)},g.isSame=function(e,t){var n=S(e);return this.startOf(t)<=n&&n<=this.endOf(t)},g.isAfter=function(e,t){return S(e)0&&void 0!==arguments[0]?arguments[0]:void 0,n=arguments.length>1?arguments[1]:void 0,r=t.getCurrentInstance()?t.inject(cl,null):sl,o=t.computed((function(){return(null==r?void 0:r.value)||ul})),a=t.computed((function(){return Object.assign({},o.value[e],n)}));return{t:function(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o1?t-1:0),a=1;a1?t-1:0),o=1;o=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,l=!0,i=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return l=e.done,e},e:function(e){i=!0,a=e},f:function(){try{l||null==n.return||n.return()}finally{if(i)throw a}}}}function bl(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&void 0!==arguments[0]&&arguments[0],t=new Date,n=t.getMonth()+1;n=n<10?"0".concat(n):n;var r="".concat(t.getFullYear(),"-").concat(n,"-").concat(t.getDate()),o="".concat(t.getHours(),":").concat(t.getMinutes(),":").concat(t.getSeconds());return e?[r,o].join(" "):r}function Bl(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;r-1}function si(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 pi(e){return e&&e===e.window}function mi(e,t){if(li||!e)return 0;var n=t?"scrollLeft":"scrollTop",r=0;return pi(e)?r=e[t?"pageXOffset":"pageYOffset"]:e instanceof Document?r=e.documentElement[n]:e&&(r=e[n]),r}function hi(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?ai:l,u=mi(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);pi(r)?r.scrollTo(window.pageXOffset,l):r instanceof Document||"HTMLDocument"===r.constructor.name?r.documentElement.scrollTop=l:r.scrollTop=l,oi(on},yi=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 bi(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 wi(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 Oi(e){var t=e.parentNode;return!(!t||"HTML"===t.nodeName)&&("fixed"===wi(e,"position")||Oi(t))}function Ci(){var e=document.body,t=document.documentElement;return{scrollTop:window.pageYOffset||t.scrollTop||e.scrollTop,scrollLeft:window.pageXOffset||t.scrollLeft||e.scrollLeft}}function xi(e,n){t.onMounted((function(){window.addEventListener(e,n)})),t.onBeforeUnmount((function(){window.removeEventListener(e,n)}))}function Pi(e,t){for(var n=0;n1)||n===Array.from(t.popupStack[e]).pop()})),s(this,"getLastZIndex",(function(){return t.zIndexStack[t.zIndexStack.length-1]}))})),_i=new Ni;function Vi(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=_i.add(e)},i=function(){_i.delete(a.value,e)};return t.watch((function(){return null==r?void 0:r.value}),(function(e){e?l():i()}),{immediate:!0}),o&&(t.onMounted((function(){l()})),t.onBeforeUnmount((function(){i()}))),{zIndex:t.readonly(a),open:l,close:i,isTopInteractivePopup:function(){return!!ki.includes(e)&&_i.isTopInteractivePopup(e,a.value)}}}function Di(e){var n=t.getCurrentInstance(),r=t.computed((function(){return n.props.readonly})),o=t.inject("formReadonly",Object.create(null));return t.computed((function(){var t,n,a;return Mo(null==e||null===(t=e.beforeReadonly)||void 0===t?void 0:t.value)?e.beforeReadonly.value:Mo(null==r?void 0:r.value)?r.value:Mo(null==e||null===(n=e.afterReadonly)||void 0===n?void 0:n.value)?e.afterReadonly.value:!!Mo(null===(a=o.readonly)||void 0===a?void 0:a.value)&&o.readonly.value}))}function Ei(e,n){if("undefined"!=typeof window&&(window&&window.ResizeObserver)){var r=null,o=function(){r&&e.value&&(r.unobserve(e.value),r.disconnect(),r=null)};e&&t.watch(e,(function(e){o(),e&&function(e){(r=new ResizeObserver(n)).observe(e)}(e)}),{immediate:!0,flush:"post"}),t.onBeforeUnmount((function(){o()}))}}function Fi(e,t){Object.keys(t).forEach((function(n){e.style[n]=t[n]}))}function Ti(e,n){var r,o,a=t.ref(null),l=fl(),i=(r=dl("animation").globalConfig,{keepExpand:(o=function(e){var t,n,o=r.value;return o&&!(null!==(t=o.exclude)&&void 0!==t&&t.includes(e))&&(null===(n=o.include)||void 0===n?void 0:n.includes(e))})(Hl),keepRipple:o(Wl),keepFade:o(Kl)}).keepRipple,u=function(t){var r=e.value,o=function(e,t){var n;if(t)return t;if(null!=e&&null!==(n=e.dataset)&&void 0!==n&&n.ripple)return e.dataset.ripple;var r=getComputedStyle(e).getPropertyValue("--ripple-color");return r||"rgba(0, 0, 0, 0.35)"}(r,null==n?void 0:n.value);if(0===t.button&&e&&i&&!(r.classList.contains("".concat(l.value,"-is-active"))||r.classList.contains("".concat(l.value,"-is-disabled"))||r.classList.contains("".concat(l.value,"-is-checked"))||r.classList.contains("".concat(l.value,"-is-loading")))){var u=getComputedStyle(r),c=parseInt(u.borderWidth,10),s=c>0?c:0,d=r.offsetWidth,v=r.offsetHeight;null===a.value.parentNode&&(Fi(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");Fi(f,{marginTop:"0",marginLeft:"0",right:"".concat(d,"px"),width:"".concat(d+20,"px"),height:"100%",transition:"transform ".concat(200,"ms cubic-bezier(.38, 0, .24, 1), background ").concat(400,"ms linear"),transform:"skewX(-8deg)",pointerEvents:"none",position:"absolute",zIndex:0,backgroundColor:o,opacity:"0.9"});for(var p=new WeakMap,m=r.children.length,h=0;h4&&void 0!==arguments[4]?arguments[4]:"value",l=t.getCurrentInstance(),i=l.emit,u=l.vnode,c=t.ref(),s=u.props||{},d=Object.prototype.hasOwnProperty.call(s,"modelValue")||Object.prototype.hasOwnProperty.call(s,"model-value"),v=Object.prototype.hasOwnProperty.call(s,a)||Object.prototype.hasOwnProperty.call(s,$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;ro&&-1===u&&(u=p)-f.value.bufferSize>0&&(i=v-g-Da(l)),-1===u&&(l.push(g),l.length>f.value.bufferSize&&l.shift()),-1===d&&(v>s.value+o||p===n.value.data.length-1)&&(d=p),-1!==u&&-1!==d)break}var y,b=(y=[u-f.value.bufferSize,0])&&y.length?qo(y,z,Vo):void 0,w=function(e){return e&&e.length?qo(e,z,Zo):void 0}([d+f.value.bufferSize,n.value.data.length]);return{startIndex:b,endIndex:w,translateY:i-Da(c.slice(0,Math.min(b,a)))}}var h=Ea((function(){var e=m(),t=e.startIndex,r=e.endIndex,o=e.translateY,i=Ra(f.value.fixedRows,2),u=i[0],c=i[1],s=u?n.value.data.slice(0,u):[];u&&t0&&(d=d.slice(p)),v.value.join()!==[t,r].join()&&t>=0&&(l.value=o,a.value=s.concat(n.value.data.slice(t,r),d),v.value=[t,r])}),100),g=function(t){var n=t.index,r=t.top,o=void 0===r?0:r,a=t.behavior,l=Da(c.slice(0,n+1))-o;e.value.scrollTo({top:l,behavior:a||"auto"})};return Ei(t.computed((function(){return p.value?e.value:void 0})),(function(t){var r=Ra(t,1)[0].contentRect;if(!n.value.preventResizeRefresh){Math.abs(r.width-d.value)>16&&e.value&&(e.value.scrollTop=0,l.value=0),d.value=r.width,s.value=r.height}})),t.watch((function(){return[i(n.value.data),f.value,p.value,e.value]}),(function(){if(p.value&&e.value){if(function(e){e.forEach((function(e,t){e.VIRTUAL_SCROLL_INDEX=t}))}(n.value.data),s.value=e.value.getBoundingClientRect().height,c.length!==n.value.data.length){var t=Array.from(c);t.length=n.value.data.length,t.fill(f.value.rowHeight||47),c=t}u.value=Da(c),v.value=[0,0],h()}}),{immediate:!0}),t.watch((function(){return s.value}),(function(){h()})),{visibleData:a,translateY:l,scrollHeight:u,isVirtualScroll:p,handleScroll:function(){p.value&&h()},handleRowMounted:function(t){var n;if(p.value&&t&&!f.value.isFixedRowHeight&&e.value){var r=(null===(n=t.ref.value)||void 0===n?void 0:n.getBoundingClientRect().height)||f.value.rowHeight,o=t.data.VIRTUAL_SCROLL_INDEX;if(c[o]!==r){var a=r-c[o];c[o]=r,u.value=u.value+a}}},scrollToElement:function(e){if(g(e),!f.value.isFixedRowHeight)var t,n=null!==(t=e.time)&&void 0!==t?t:60,r=setTimeout((function(){g(e),clearTimeout(r)}),n)}}}function Ri(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r-1&&e.indexOf("MSIE")>-1,n=e.indexOf("Trident")>-1&&e.indexOf("rv:11.0")>-1;if(t){var r=new RegExp("MSIE (\\d+\\.\\d+);"),o=e.match(r);if(!o)return-1;var a=parseFloat(o[1]);return a<7?6:a}return n?11:Number.MAX_SAFE_INTEGER}function Ui(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 Yi(e){return Ho(e)?"".concat(e,"px"):e}var $i=["padding-top","padding-bottom","padding-left","padding-right","font-family","font-weight","font-size","font-variant","text-rendering","text-transform","width","text-indent","border-width","box-sizing","line-height","letter-spacing"];function Zi(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function qi(e){for(var t=1;t11){var d=l.match(/[\d.]+/g),v=d?"rgba(".concat(d[0],", ").concat(d[1],", ").concat(d[2],", 0)"):"";Fi(e,qi(qi({},o),{},{background:"conic-gradient(from 90deg at 50% 50%,".concat(v," 0deg, ").concat(l," 360deg)")}))}else Fi(e,qi(qi({},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)])])}}}),Gi={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}},Ji=t.defineComponent({name:"TLoading",inheritAttrs:!1,props:Gi,setup:function(e,n){var r=n.slots,o=n.attrs,a=t.ref(!1),l={name:fl("loading"),centerClass:fl("loading--center"),fullscreenClass:fl("loading__fullscreen"),lockClass:fl("loading--lock"),overlayClass:fl("loading__overlay"),relativeClass:fl("loading__parent"),fullClass:fl("loading--full"),inheritColorClass:fl("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=fl(),g=el(),y=nl(),b=pl().SIZE,w=function(){a.value=!1;var t=setTimeout((function(){a.value=!0,clearTimeout(t)}),e.delay)},O=Ii((function(){return e.attach})),C=t.computed((function(){return Boolean(!e.delay||e.delay&&a.value)})),x=t.computed((function(){var t={};return void 0!==e.zIndex&&(t.zIndex=e.zIndex),["small","medium","large"].includes(e.size)||(t["font-size"]=e.size),t})),P=t.computed((function(){return Boolean(e.default||r.default||e.content||r.content)})),S=t.computed((function(){return e.preventScrollThrough&&e.fullscreen})),j=t.computed((function(){return Boolean(e.text||r.text)})),k=t.computed((function(){return P.value&&e.loading&&C.value})),N=t.computed((function(){return e.fullscreen&&e.loading&&C.value})),_=t.computed((function(){return e.attach&&e.loading&&C.value})),V=t.computed((function(){var t=[u.value,Ga(b.value,e.size),s({},m.value,e.inheritColor)],n=[i.value,c.value,u.value,v.value];return{baseClasses:t,attachClasses:t.concat([i.value,p.value,s({},v.value,e.showOverlay)]),withContentClasses:t.concat([i.value,p.value,s({},v.value,e.showOverlay)]),fullScreenClasses:n,normalClasses:t.concat([i.value])}})),D=t.toRefs(e).loading;return t.watch([D],(function(e){Ra(e,1)[0]?(w(),S.value&&si(document.body,d.value)):S.value&&di(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(Xi,{size:e.size},null),s=D.value&&g("indicator",c),d=j.value&&t.createVNode("div",{class:"".concat(h.value,"-loading__text")},[g("text")]);return e.fullscreen?N.value&&e.loading?t.createVNode(t.Teleport,{disabled:!e.attach||!O.value,to:O.value},{default:function(){return[t.createVNode("div",t.mergeProps({class:r,style:x.value},o),[t.createVNode("div",{class:a},[s,d])])]}}):null:P.value?t.createVNode("div",t.mergeProps({class:f.value},o),[y("default","content"),k.value&&t.createVNode("div",{class:l,style:x.value},[s,d])]):e.attach?_.value&&D.value?t.createVNode(t.Teleport,{disabled:!e.attach||!O.value,to:O.value},{default:function(){return[t.createVNode("div",t.mergeProps({class:i,style:x.value},o),[s,d])]}}):null:D.value?t.createVNode("div",t.mergeProps({class:u,style:x.value},o),[s,d]):null}}});function Qi(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var eu=null;function tu(e){var n=function(e){return Go({fullscreen:!1,attach:"body",loading:!0,preventScrollThrough:!0},e)}(e);if(n.fullscreen&&eu)return eu;var r=t.defineComponent({setup:function(){return{loadingOptions:t.reactive(n)}},render:function(){return t.h(Ji,function(e){for(var t=1;t0)){var n=document.createElement("script");n.setAttribute("class",t),n.setAttribute("src",e),document.body.appendChild(n)}}(e,"".concat(Sf,"-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"),kf={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},Nf=t.defineComponent({name:"TLink",props:kf,emits:["click"],setup:function(e,n){var r=n.emit,o=nl(),a=el(),l=fl("link"),u=pl(),c=u.STATUS,d=u.SIZE,v=dl("classPrefix").classPrefix,f=gl(),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])}}}),_f=iu(Nf),Vf={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"}},Df=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 Ef(){var e=t.ref(Df(li?0:window.innerWidth));return xi("resize",(function(){e.value=Df(li?0:window.innerWidth)})),e}function Ff(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Tf(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 Tf(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){S(e)&&e.length&&(Ho(e[0])&&l(e[0]),E(e[0])&&e[0][n]&&l(e[0][n]))},isObject:function(e){E(e)&&!S(e)&&e[n]&&l(e[n])}},Object.keys(i).forEach((function(e){i[e](t)})),r))}return u}));return function(){var n,o,a=e.tag;return t.createVNode(a,{class:l.value,style:i.value},"function"==typeof(o=n=r("default"))||"[object Object]"===Object.prototype.toString.call(o)&&!t.isVNode(o)?n:{default:function(){return[n]}})}}}),Bf=iu(If),Lf=iu(Af),Rf=t.defineComponent({name:"TLayout",setup:function(){var e=t.ref(!1),n=el(),r=fl("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")])}}}),zf={height:{type:String,default:""}},Hf=t.defineComponent({name:"THeader",props:zf,setup:function(e){var n=fl("layout__header"),r=el();return function(){return t.createVNode("header",{class:n.value,style:e.height?{height:e.height}:{}},[r("default")])}}}),Wf={height:{type:String,default:""}},Kf=t.defineComponent({name:"TFooter",props:Wf,setup:function(e){var n=fl("layout__footer"),r=el();return function(){return t.createVNode("footer",{class:n.value,style:e.height?{height:e.height}:{}},[r("default")])}}}),Uf={width:{type:String,default:""}},Yf=t.defineComponent({name:"TAside",props:Uf,setup:function(e){var n=t.inject("layout",Object.create(null)).hasSide,r=fl("layout__sider"),o=el();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")])}}}),$f={content:{type:[String,Function]},default:{type:[String,Function]}},Zf=t.defineComponent({name:"TContent",props:$f,setup:function(){var e=fl("layout__content"),n=nl();return function(){return t.createVNode("main",{class:e.value},[n("default","content")])}}}),qf=iu(Yf),Xf=iu(Rf),Gf=iu(Hf),Jf=iu(Kf),Qf=iu(Zf),ep={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)}}},tp=t.defineComponent({name:"TDivider",props:ep,setup:function(e){var n=fl("divider"),r=nl();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])])}}}),np=iu(tp),rp={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 op(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ap(e){for(var t=1;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 pp(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 mp(e,t){return e===vp.props}var hp=t.defineComponent({name:"TDescriptionsRow",props:{row:Array,itemType:String},setup:function(e){var n=t.inject(dp),r=fl("descriptions"),o=dl("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;mp(e.itemType)?(c=i.label,s=i.span):(c=pp(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;mp(e.itemType)?(u=o.content,c=o.span):(u=pp(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)])])}))])])}}}),gp=t.defineComponent({name:"TDescriptions",props:sp,setup:function(e){var n=fl("descriptions"),r=pl().SIZE,o=Ya(),a=el(),l=t.ref(vp.props),i=function(){var t=e.column,n=e.layout,r=[];if(S(e.items))r=e.items.map((function(e){return{label:fp(e.label),content:fp(e.content),span:e.span||1}})),l.value=vp.props;else{var a=o("TDescriptionsItem");0!==a.length&&(r=a,l.value=vp.slots)}if("vertical"===n)return[r];var i=[],u=t,c=[];return r.forEach((function(e,n){var o,a=1;mp(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&&(mp(l.value)?e.span+=u:e.props.span+=u,c.push(i))})),c};t.provide(dp,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(hp,{"item-type":l.value,row:e},null)}))])]))]);var o,u}}}),yp={content:{type:[String,Function]},default:{type:[String,Function]},label:{type:[String,Function]},span:{type:Number,default:1}},bp=t.defineComponent({name:"TDescriptionsItem",props:yp}),wp=iu(gp),Op=iu(bp);function Cp(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 xp(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var a=e.apply(t,n);function l(e){Cp(a,r,o,l,i,"next",e)}function i(e){Cp(a,r,o,l,i,"throw",e)}l(void 0)}))}}var Pp={exports:{}},Sp={exports:{}};!function(e){e.exports=function(e,t){this.v=e,this.k=t},e.exports.__esModule=!0,e.exports.default=e.exports}(Sp);var jp={exports:{}},kp={exports:{}};!function(e){function t(n,r,o,a){var l=Object.defineProperty;try{l({},"",{})}catch(n){l=0}e.exports=t=function(e,n,r,o){if(n)l?l(e,n,{value:r,enumerable:!o,configurable:!o,writable:!o}):e[n]=r;else{var a=function(n,r){t(e,n,(function(e){return this._invoke(n,r,e)}))};a("next",0),a("throw",1),a("return",2)}},e.exports.__esModule=!0,e.exports.default=e.exports,t(n,r,o,a)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports}(kp),function(e){var t=kp.exports;function n(){ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vue")):"function"==typeof define&&define.amd?define(["exports","vue"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TDesign={},e.Vue)}(this,function(e,t){"use strict";function n(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach(function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}}),t.default=e,Object.freeze(t)}var r=n(t);function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0){if(++ue>=800)return arguments[0]}else ue=0;return ie.apply(void 0,arguments)});function fe(e){return e!=e}function pe(e,t){return!!(null==e?0:e.length)&&function(e,t,n){return t==t?function(e,t,n){for(var r=n-1,o=e.length;++r-1}var me=/^(?:0|[1-9]\d*)$/;function he(e,t){var n=u(e);return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&me.test(e))&&e>-1&&e%1==0&&e-1&&e%1==0&&e<=9007199254740991}function je(e){return null!=e&&Se(e.length)&&!H(e)}function ke(e,t,n){if(!E(n))return!1;var r=u(t);return!!("number"==r?je(n)&&he(t,n.length):"string"==r&&t in n)&&ye(n[t],e)}function Ne(e){return Pe(function(t,n){var r=-1,o=n.length,a=o>1?n[o-1]:void 0,l=o>2?n[2]:void 0;for(a=e.length>3&&"function"==typeof a?(o--,a):void 0,l&&ke(n[0],n[1],l)&&(a=o<3?void 0:a,o=1),t=Object(t);++r-1},ft.prototype.set=function(e,t){var n=this.__data__,r=dt(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this};var pt=te(f,"Map");function mt(e,t){var n,r,o=e.__data__;return("string"==(r=u(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?o["string"==typeof t?"string":"hash"]:o.map}function ht(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t0&&n(i)?t>1?Vt(i,t-1,n,r,o):kt(o,i):r||(o[o.length]=i)}return o}function Dt(e){return(null==e?0:e.length)?Vt(e,1):[]}function Et(e){return ve(xe(e,void 0,Dt),e+"")}var Ft=Xe(Object.getPrototypeOf,Object),Tt=Function.prototype,Mt=Object.prototype,It=Tt.toString,At=Mt.hasOwnProperty,Bt=It.call(Object);function Lt(e){if(!C(e)||"[object Object]"!=O(e))return!1;var t=Ft(e);if(null===t)return!0;var n=At.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&It.call(n)==Bt}function Rt(e,t,n){var r=-1,o=e.length;t<0&&(t=-t>o?0:o+t),(n=n>o?o:n)<0&&(n+=o),o=t>n?0:n-t>>>0,t>>>=0;for(var a=Array(o);++r=r?e:Rt(e,t,n)}var Ht=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");function Wt(e){return Ht.test(e)}var Kt="\\ud800-\\udfff",Ut="["+Kt+"]",Yt="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",$t="\\ud83c[\\udffb-\\udfff]",Zt="[^"+Kt+"]",qt="(?:\\ud83c[\\udde6-\\uddff]){2}",Xt="[\\ud800-\\udbff][\\udc00-\\udfff]",Gt="(?:"+Yt+"|"+$t+")"+"?",Jt="[\\ufe0e\\ufe0f]?",Qt=Jt+Gt+("(?:\\u200d(?:"+[Zt,qt,Xt].join("|")+")"+Jt+Gt+")*"),en="(?:"+[Zt+Yt+"?",Yt,qt,Xt,Ut].join("|")+")",tn=RegExp($t+"(?="+$t+")|"+en+Qt,"g");function nn(e){return Wt(e)?function(e){return e.match(tn)||[]}(e):function(e){return e.split("")}(e)}var rn,on=(rn="toUpperCase",function(e){var t=Wt(e=Ct(e))?nn(e):void 0,n=t?t[0]:e.charAt(0),r=t?zt(t,1).join(""):e.slice(1);return n[rn]()+r});var an,ln=(an={"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C","\u0108":"C","\u010a":"C","\u010c":"C","\u0107":"c","\u0109":"c","\u010b":"c","\u010d":"c","\u010e":"D","\u0110":"D","\u010f":"d","\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011a":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011b":"e","\u011c":"G","\u011e":"G","\u0120":"G","\u0122":"G","\u011d":"g","\u011f":"g","\u0121":"g","\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012a":"I","\u012c":"I","\u012e":"I","\u0130":"I","\u0129":"i","\u012b":"i","\u012d":"i","\u012f":"i","\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L","\u013b":"L","\u013d":"L","\u013f":"L","\u0141":"L","\u013a":"l","\u013c":"l","\u013e":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014a":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014b":"n","\u014c":"O","\u014e":"O","\u0150":"O","\u014d":"o","\u014f":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r","\u015a":"S","\u015c":"S","\u015e":"S","\u0160":"S","\u015b":"s","\u015d":"s","\u015f":"s","\u0161":"s","\u0162":"T","\u0164":"T","\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016a":"U","\u016c":"U","\u016e":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016b":"u","\u016d":"u","\u016f":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w","\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017b":"Z","\u017d":"Z","\u017a":"z","\u017c":"z","\u017e":"z","\u0132":"IJ","\u0133":"ij","\u0152":"Oe","\u0153":"oe","\u0149":"'n","\u017f":"s"},function(e){return null==an?void 0:an[e]}),un=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,cn=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]","g");var sn=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;var dn=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;var vn="\\ud800-\\udfff",fn="\\u2700-\\u27bf",pn="a-z\\xdf-\\xf6\\xf8-\\xff",mn="A-Z\\xc0-\\xd6\\xd8-\\xde",hn="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",gn="["+hn+"]",yn="\\d+",bn="["+fn+"]",wn="["+pn+"]",On="[^"+vn+hn+yn+fn+pn+mn+"]",Cn="(?:\\ud83c[\\udde6-\\uddff]){2}",xn="[\\ud800-\\udbff][\\udc00-\\udfff]",Pn="["+mn+"]",Sn="(?:"+wn+"|"+On+")",jn="(?:"+Pn+"|"+On+")",kn="(?:['\u2019](?:d|ll|m|re|s|t|ve))?",Nn="(?:['\u2019](?:D|LL|M|RE|S|T|VE))?",_n="(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?",Vn="[\\ufe0e\\ufe0f]?",Dn=Vn+_n+("(?:\\u200d(?:"+["[^"+vn+"]",Cn,xn].join("|")+")"+Vn+_n+")*"),En="(?:"+[bn,Cn,xn].join("|")+")"+Dn,Fn=RegExp([Pn+"?"+wn+"+"+kn+"(?="+[gn,Pn,"$"].join("|")+")",jn+"+"+Nn+"(?="+[gn,Pn+Sn,"$"].join("|")+")",Pn+"?"+Sn+"+"+kn,Pn+"+"+Nn,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",yn,En].join("|"),"g");function Tn(e,t,n){return e=Ct(e),void 0===(t=n?void 0:t)?function(e){return dn.test(e)}(e)?function(e){return e.match(Fn)||[]}(e):function(e){return e.match(sn)||[]}(e):e.match(t)||[]}var Mn=RegExp("['\u2019]","g");function In(e){return function(t){return function(e,t,n,r){var o=-1,a=null==e?0:e.length;for(r&&a&&(n=e[++o]);++oi))return!1;var c=a.get(e),s=a.get(t);if(c&&s)return c==t&&s==e;var d=-1,v=!0,f=2&n?new Ar:void 0;for(a.set(e,t),a.set(t,e);++d=t||n<0||d&&e-c>=a}function m(){var e=so();if(p(e))return h(e);i=setTimeout(m,function(e){var n=t-(e-u);return d?fo(n,a-(e-c)):n}(e))}function h(e){return i=void 0,v&&r?f(e):(r=o=void 0,l)}function g(){var e=so(),n=p(e);if(r=arguments,o=this,u=e,n){if(void 0===i)return function(e){return c=e,i=setTimeout(m,t),s?f(e):l}(u);if(d)return clearTimeout(i),i=setTimeout(m,t),f(u)}return void 0===i&&(i=setTimeout(m,t)),l}return t=A(t)||0,E(n)&&(s=!!n.leading,a=(d="maxWait"in n)?vo(A(n.maxWait)||0,t):a,v="trailing"in n?!!n.trailing:v),g.cancel=function(){void 0!==i&&clearTimeout(i),c=0,r=u=o=i=void 0},g.flush=function(){return void 0===i?l:h(so())},g}function mo(e,t,n){(void 0!==n&&!ye(e[t],n)||void 0===n&&!(t in e))&&ge(e,t,n)}function ho(e){return C(e)&&je(e)}function go(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]}function yo(e,t,n,r,o,a,l){var i=go(e,n),u=go(t,n),c=l.get(u);if(c)mo(e,n,c);else{var s,d=a?a(i,u,n+"",e,t,l):void 0,v=void 0===d;if(v){var f=S(u),p=!f&&Le(u),m=!f&&!p&&$e(u);d=u,f||p||m?S(i)?d=i:ho(i)?d=ae(i):p?(v=!1,d=$n(u,!0)):m?(v=!1,d=Pr(u,!0)):d=[]:Lt(u)||Me(u)?(d=i,Me(i)?d=Oe(s=i,rt(s)):E(i)&&!H(i)||(d=jr(u))):v=!1}v&&(l.set(u,d),o(d,u,r,a,l),l.delete(u)),mo(e,n,d)}}function bo(e,t,n,r,o){e!==t&&io(t,function(a,l){if(o||(o=new Hn),E(a))yo(e,t,l,n,bo,r,o);else{var i=r?r(go(e,l),a,l+"",e,t,o):void 0;void 0===i&&(i=a),mo(e,l,i)}},rt)}var wo=Ne(function(e,t,n,r){bo(e,t,n,r)}),Oo=wo;function Co(e,t,n){for(var r=-1,o=null==e?0:e.length;++r=200&&(a=Lr,l=!1,t=new Ar(t));e:for(;++ot}var Do=Math.max,Eo=Math.min;function Fo(e,t,n){return t=L(t),void 0===n?(n=t,t=0):n=L(n),function(e,t,n){return e>=Eo(t,n)&&e=120&&s.length>=120)?new Ar(l&&s):void 0}s=e[0];var d=-1,v=i[0];e:for(;++d1),t}),Oe(e,nr(e),n),r&&(n=Mr(n,7,oa));for(var o=t.length;o--;)ra(n,t[o]);return n}),la=aa;function ia(e,t,n,r){if(!E(e))return e;for(var o=-1,a=(t=xt(t,e)).length,l=a-1,i=e;null!=i&&++o9007199254740991)return n;do{t%2&&(n+=e),(t=ca(t/2))&&(e+=e)}while(t);return n}var da=ro("length"),va="\\ud800-\\udfff",fa="["+va+"]",pa="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",ma="\\ud83c[\\udffb-\\udfff]",ha="[^"+va+"]",ga="(?:\\ud83c[\\udde6-\\uddff]){2}",ya="[\\ud800-\\udbff][\\udc00-\\udfff]",ba="(?:"+pa+"|"+ma+")"+"?",wa="[\\ufe0e\\ufe0f]?",Oa=wa+ba+("(?:\\u200d(?:"+[ha,ga,ya].join("|")+")"+wa+ba+")*"),Ca="(?:"+[ha+pa+"?",pa,ga,ya,fa].join("|")+")",xa=RegExp(ma+"(?="+ma+")|"+Ca+Oa,"g");function Pa(e){return Wt(e)?function(e){for(var t=xa.lastIndex=0;xa.test(e);)++t;return t}(e):da(e)}var Sa=Math.ceil;function ja(e,t,n){e=Ct(e);var r=(t=R(t))?Pa(e):0;return t&&r=200){var c=t?null:Ba(e);if(c)return Hr(c);l=!1,o=Lr,u=new Ar}else u=t?[]:i;e:for(;++r-1}function pl(e,t){if(e){for(var n=e.className,r=(t||"").split(" "),o=0,a=r.length;o0&&void 0!==arguments[0]?arguments[0]:"body";return To(e)?document.querySelector(e):H(e)?e():e};function yl(e){return e&&e===e.window}function bl(e,t){if(sl||!e)return 0;var n=t?"scrollLeft":"scrollTop",r=0;return yl(e)?r=e[t?"pageXOffset":"pageYOffset"]:e instanceof Document?r=e.documentElement[n]:e&&(r=e[n]),r}function wl(e,t){var n=t.container,r=void 0===n?window:n,o=t.duration,a=void 0===o?450:o,l=t.easing,i=void 0===l?cl:l,u=bl(r),c=Date.now();return new Promise(function(t){var n=function(){var o=Date.now()-c,l=i(Math.min(o,a),u,e,a);yl(r)?r.scrollTo(window.pageXOffset,l):r instanceof Document||"HTMLDocument"===r.constructor.name?r.documentElement.scrollTop=l:r.scrollTop=l,ul(on},Cl=function(e){if(!(e instanceof HTMLFormElement))throw new Error("target must be HTMLFormElement");var t=document.createElement("input");t.type="submit",t.hidden=!0,e.appendChild(t),t.click(),e.removeChild(t)};function xl(e,t){var n=e.getBoundingClientRect();if(t){var r=t.getBoundingClientRect();return n.top>=r.top&&n.left>=r.left&&n.bottom<=r.bottom&&n.right<=r.right}return n.top>=0&&n.left>=0&&n.bottom+80<=window.innerHeight&&n.right<=window.innerWidth}function Pl(e,t){var n="";return document.defaultView&&document.defaultView.getComputedStyle&&(n=document.defaultView.getComputedStyle(e,null).getPropertyValue(t)),n&&n.toLowerCase?n.toLowerCase():n}function Sl(e){var t=e.parentNode;return!(!t||"HTML"===t.nodeName)&&("fixed"===Pl(e,"position")||Sl(t))}function jl(){var e=document.body,t=document.documentElement;return{scrollTop:window.pageYOffset||t.scrollTop||e.scrollTop,scrollLeft:window.pageXOffset||t.scrollLeft||e.scrollLeft}}var kl=function(e){return t.isVNode(e)&&e.type===t.Comment};function Nl(e,t,n){var r=e;return r.install=function(o,a){o.component(t||a||r.name,e),n&&o.directive(n.name,n.comp)},r}function _l(e){var n;return E(e)&&"defaultNode"in e?n=e.defaultNode:(t.isVNode(e)||To(e))&&(n=e),n}function Vl(e){var n=[],r=function(e){if(S(e))return e.forEach(function(e){if(e.children&&S(e.children)){if(e.type!==t.Fragment)return;r(e.children)}else n.push(e)}),n};return r(e)}function Dl(e){return E(e)&&"params"in e?e.params:{}}function El(){var e=t.getCurrentInstance();return function(t,n){var r,o;return n||(n=e.slots),Vl((null===(r=n)||void 0===r||null===(o=r.default)||void 0===o?void 0:o.call(r))||[]).filter(function(e){var n;return null===(n=e.type.name)||void 0===n?void 0:n.endsWith(t)})}}function Fl(){var e=t.getCurrentInstance();return function(){var n,r=e.slots;return((null==r||null===(n=r.default)||void 0===n?void 0:n.call(r))||[]).filter(function(e){return!("symbol"===u(e.type)&&!e.children)&&e.type!==t.Comment}).map(function(e){return e.children&&S(e.children)&&e.type===t.Fragment?e.children:e}).flat()}}function Tl(){return function e(n){var r=[];return n.forEach(function(n){t.isVNode(n)&&n.type===t.Fragment&&Array.isArray(n.children)?r.push.apply(r,i(e(n.children))):t.isVNode(n)&&[t.Teleport,t.Comment].some(function(e){return e===n.type})||r.push(n)}),r}}var Ml=Object.prototype.hasOwnProperty,Il=function(e,t){return Ml.call(e,t)},Al=function(e,t){return Il(e,t)?e[t]:void 0};function Bl(e,t,n){var r,o,a,l,i=null===(r=(o=e.slots)[Bn(t)])||void 0===r?void 0:r.call(o,n);return i&&i.filter(function(e){return!kl(e)}).length||(i=null===(a=(l=e.slots)[Xo(t)])||void 0===a?void 0:a.call(l,n))&&i.filter(function(e){return!kl(e)}).length?i:null}function Ll(e){return!![void 0,null,""].includes(e)||!(e instanceof Array?e:[e]).filter(function(e){var t;return"Symbol(Comment)"!==(null==e||null===(t=e.type)||void 0===t?void 0:t.toString())}).length}var Rl=function(){var e=t.getCurrentInstance();return function(n,r){var o=Dl(r),a=_l(r),l=function(e){return!(!E(e)||!("slotFirst"in e))&&e.slotFirst}(r),i=e.slots[Bn(n)]||e.slots[Xo(n)];if(l&&i)return Bl(e,n,o);if(function(e,t){var n=(null==e?void 0:e.vnode.props)||{};return Il(n,Bn(t))||Il(n,Xo(t))}(e,n)){var u,c=e.props[Bn(n)]||e.props[Xo(n)],s=null===(u=e.type.props[n])||void 0===u?void 0:u.type;if((null==s?void 0:s.length)>1&&s.includes(Boolean)&&s.includes(Function)&&""===c&&!i)return a;if(!1===c||null===c)return;return!0===c?Bl(e,n,o)||a:H(c)?c(t.h,o):[void 0,""].includes(c)&&i?Bl(e,n,o):c}if(i)return Bl(e,n,o);var d=e.props[Bn(n)]||e.props[Xo(n)];return!1!==d&&null!==d?!0===d?a:H(d)?d(t.h,o):d:void 0}},zl=function(){var e=Rl();return function(t,n){var r=_l(n);return e(t,n)||r}},Hl=function(){var e=Rl();return function(t,n,r){var o=Dl(r),a=_l(r),l=o?{params:o}:void 0,i=e(t,l),u=e(n,l),c=Ll(i)?u:i;return Ll(c)?a:c}};var Wl={exports:{}},Kl={exports:{}};!function(e){e.exports=function(){var e=1e3,t=6e4,n=36e5,r="millisecond",o="second",a="minute",l="hour",i="day",c="week",s="month",d="quarter",v="year",f="date",p="Invalid Date",m=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,h=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,g={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(e){var t=["th","st","nd","rd"],n=e%100;return"["+e+(t[(n-20)%10]||t[n]||t[0])+"]"}},y=function(e,t,n){var r=String(e);return!r||r.length>=t?e:""+Array(t+1-r.length).join(n)+e},b={s:y,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),r=Math.floor(n/60),o=n%60;return(t<=0?"+":"-")+y(r,2,"0")+":"+y(o,2,"0")},m:function e(t,n){if(t.date()1)return e(l[0])}else{var i=t.name;O[i]=t,o=i}return!r&&o&&(w=o),o||!r&&w},S=function(e,t){if(x(e))return e.clone();var n="object"==u(t)?t:{};return n.date=e,n.args=arguments,new k(n)},j=b;j.l=P,j.i=x,j.w=function(e,t){return S(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var k=function(){function u(e){this.$L=P(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[C]=!0}var g=u.prototype;return g.parse=function(e){this.$d=function(e){var t=e.date,n=e.utc;if(null===t)return new Date(NaN);if(j.u(t))return new Date;if(t instanceof Date)return new Date(t);if("string"==typeof t&&!/Z$/i.test(t)){var r=t.match(m);if(r){var o=r[2]-1||0,a=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],o,r[3]||1,r[4]||0,r[5]||0,r[6]||0,a)):new Date(r[1],o,r[3]||1,r[4]||0,r[5]||0,r[6]||0,a)}}return new Date(t)}(e),this.init()},g.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},g.$utils=function(){return j},g.isValid=function(){return!(this.$d.toString()===p)},g.isSame=function(e,t){var n=S(e);return this.startOf(t)<=n&&n<=this.endOf(t)},g.isAfter=function(e,t){return S(e)1?o-1:0),l=1;l0){var i=a[0],c=a[1];"number"==typeof i?(t=i,c&&"object"===u(c)?r=c:r.count=t):"object"===u(i)&&null!==i&&(r=i)}if(n.includes("|")){var s=n.split("|").map(function(e){return e.trim()});if("number"==typeof t){var d=function(e){return 0===e?0:1===e?1:2}(t);n=d0){n=n.replace(/\{\s*([\w-]+)\s*\}/g,function(e,t){return Object.prototype.hasOwnProperty.call(r,t)?String(r[t]):e})}return n}return""}var Gl=t.ref();function Jl(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0,n=arguments.length>1?arguments[1]:void 0,r=t.getCurrentInstance()?t.inject(ql,null):Gl,o=t.computed(function(){return(null==r?void 0:r.value)||Zl}),a=t.computed(function(){return Object.assign({},o.value[e],n)});return{t:function(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o1?t-1:0),a=1;a1?t-1:0),o=1;o=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,l=!0,i=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return l=e.done,e},e:function(e){i=!0,a=e},f:function(){try{l||null==n.return||n.return()}finally{if(i)throw a}}}}function li(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&void 0!==arguments[0]&&arguments[0],t=new Date,n=t.getMonth()+1;n=n<10?"0".concat(n):n;var r="".concat(t.getFullYear(),"-").concat(n,"-").concat(t.getDate()),o="".concat(t.getHours(),":").concat(t.getMinutes(),":").concat(t.getSeconds());return e?[r,o].join(" "):r}function Si(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:5,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:7,r=e,o=0,a=0;if(!r)return"";for(var l=0;ll-n&&a1&&void 0!==arguments[1]?arguments[1]:"",n=[],r=0;r1)||n===Array.from(t.popupStack[e]).pop()}),s(this,"getLastZIndex",function(){return t.zIndexStack[t.zIndexStack.length-1]})}),Bi=new Ai;function Li(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.visible,o=n.runOnMounted,a=t.ref(0),l=function(){a.value=Bi.add(e)},i=function(){Bi.delete(a.value,e)};return t.watch(function(){return null==r?void 0:r.value},function(e){e?l():i()},{immediate:!0}),o&&(t.onMounted(function(){l()}),t.onBeforeUnmount(function(){i()})),{zIndex:t.readonly(a),open:l,close:i,isTopInteractivePopup:function(){return!!Ii.includes(e)&&Bi.isTopInteractivePopup(e,a.value)}}}function Ri(e){var n=t.getCurrentInstance(),r=t.computed(function(){return n.props.readonly}),o=t.inject("formReadonly",Object.create(null));return t.computed(function(){var t,n,a;return Lo(null==e||null===(t=e.beforeReadonly)||void 0===t?void 0:t.value)?e.beforeReadonly.value:Lo(null==r?void 0:r.value)?r.value:Lo(null==e||null===(n=e.afterReadonly)||void 0===n?void 0:n.value)?e.afterReadonly.value:!!Lo(null===(a=o.readonly)||void 0===a?void 0:a.value)&&o.readonly.value})}function zi(e,n){if("undefined"!=typeof window&&(window&&window.ResizeObserver)){var r=null,o=function(){r&&e.value&&(r.unobserve(e.value),r.disconnect(),r=null)};e&&t.watch(e,function(e){o(),e&&function(e){(r=new ResizeObserver(n)).observe(e)}(e)},{immediate:!0,flush:"post"}),t.onBeforeUnmount(function(){o()})}}function Hi(e,t){Object.keys(t).forEach(function(n){e.style[n]=t[n]})}function Wi(e,n){var r,o,a=t.ref(null),l=ei(),i=(r=Jl("animation").globalConfig,{keepExpand:(o=function(e){var t,n,o=r.value;return o&&!(null!==(t=o.exclude)&&void 0!==t&&t.includes(e))&&(null===(n=o.include)||void 0===n?void 0:n.includes(e))})(_i),keepRipple:o(Vi),keepFade:o(Di)}).keepRipple,u=function(t){var r=e.value,o=function(e,t){var n;if(t)return t;if(null!=e&&null!==(n=e.dataset)&&void 0!==n&&n.ripple)return e.dataset.ripple;var r=getComputedStyle(e).getPropertyValue("--ripple-color");return r||"rgba(0, 0, 0, 0.35)"}(r,null==n?void 0:n.value);if(0===t.button&&e&&i&&!(r.classList.contains("".concat(l.value,"-is-active"))||r.classList.contains("".concat(l.value,"-is-disabled"))||r.classList.contains("".concat(l.value,"-is-checked"))||r.classList.contains("".concat(l.value,"-is-loading")))){var u=getComputedStyle(r),c=parseInt(u.borderWidth,10),s=c>0?c:0,d=r.offsetWidth,v=r.offsetHeight;null===a.value.parentNode&&(Hi(a.value,{position:"absolute",left:"".concat(0-s,"px"),top:"".concat(0-s,"px"),width:"".concat(d,"px"),height:"".concat(v,"px"),borderRadius:u.borderRadius,pointerEvents:"none",overflow:"hidden"}),r.appendChild(a.value));var f=document.createElement("div");Hi(f,{marginTop:"0",marginLeft:"0",right:"".concat(d,"px"),width:"".concat(d+20,"px"),height:"100%",transition:"transform ".concat(200,"ms cubic-bezier(.38, 0, .24, 1), background ").concat(400,"ms linear"),transform:"skewX(-8deg)",pointerEvents:"none",position:"absolute",zIndex:0,backgroundColor:o,opacity:"0.9"});for(var p=new WeakMap,m=r.children.length,h=0;h4&&void 0!==arguments[4]?arguments[4]:"value",l=t.getCurrentInstance(),i=l.emit,u=l.vnode,c=t.ref(),s=u.props||{},d=Object.prototype.hasOwnProperty.call(s,"modelValue")||Object.prototype.hasOwnProperty.call(s,"model-value"),v=Object.prototype.hasOwnProperty.call(s,a)||Object.prototype.hasOwnProperty.call(s,Xo(a));return d?[n,function(e){i("update:modelValue",e);for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r1?t-1:0),r=1;r1?t-1:0),r=1;ro&&-1===u&&(u=p)-f.value.bufferSize>0&&(i=v-g-Ia(l)),-1===u&&(l.push(g),l.length>f.value.bufferSize&&l.shift()),-1===d&&(v>s.value+o||p===n.value.data.length-1)&&(d=p),-1!==u&&-1!==d)break}var y=Qo([u-f.value.bufferSize,0]);return{startIndex:y,endIndex:na([d+f.value.bufferSize,n.value.data.length]),translateY:i-Ia(c.slice(0,Math.min(y,a)))}}(),r=t.startIndex,o=t.endIndex,i=t.translateY,u=Ya(f.value.fixedRows,2),d=u[0],p=u[1],m=d?n.value.data.slice(0,d):[];d&&r0&&(h=h.slice(g)),v.value.join()!==[r,o].join()&&r>=0&&(l.value=i,a.value=m.concat(n.value.data.slice(r,o),h),v.value=[r,o])},100),h=function(t){var n=t.index,r=t.top,o=void 0===r?0:r,a=t.behavior,l=Ia(c.slice(0,n+1))-o;e.value.scrollTo({top:l,behavior:a||"auto"})};return zi(t.computed(function(){return p.value?e.value:void 0}),function(t){var r=Ya(t,1)[0].contentRect;if(!n.value.preventResizeRefresh){Math.abs(r.width-d.value)>16&&e.value&&(e.value.scrollTop=0,l.value=0),d.value=r.width,s.value=r.height}}),t.watch(function(){return[i(n.value.data),f.value,p.value,e.value]},function(){if(p.value&&e.value){if(function(e){e.forEach(function(e,t){e.VIRTUAL_SCROLL_INDEX=t})}(n.value.data),s.value=e.value.getBoundingClientRect().height,c.length!==n.value.data.length){var t=Array.from(c);t.length=n.value.data.length,t.fill(f.value.rowHeight||47),c=t}u.value=Ia(c),v.value=[0,0],m()}},{immediate:!0}),t.watch(function(){return s.value},function(){m()}),{visibleData:a,translateY:l,scrollHeight:u,isVirtualScroll:p,handleScroll:function(){p.value&&m()},handleRowMounted:function(t){var n;if(p.value&&t&&!f.value.isFixedRowHeight&&e.value){var r=(null===(n=t.ref.value)||void 0===n?void 0:n.getBoundingClientRect().height)||f.value.rowHeight,o=t.data.VIRTUAL_SCROLL_INDEX;if(c[o]!==r){var a=r-c[o];c[o]=r,u.value=u.value+a}}},scrollToElement:function(e){if(h(e),!f.value.isFixedRowHeight)var t,n=null!==(t=e.time)&&void 0!==t?t:60,r=setTimeout(function(){h(e),clearTimeout(r)},n)}}}function qi(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Xi(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:Gi,o=t.ref(Xi(Xi({},Gi),r)),a=null,l=function(){var t;if(e){var r=o.value,l=r.debounceTime,i=void 0===l?0:l,u=r.config,c=void 0===u?Gi.config:u,s=function(){for(var e=arguments.length,t=new Array(e),r=0;r0?po(s,i):s)).observe(e,c)}};t.watch(function(){return r},function(e){Ko(e,o.value)||(o.value=Xi(Xi({},Gi),e),l())},{deep:!0}),t.onMounted(l),t.onBeforeUnmount(function(){var e;return null===(e=a)||void 0===e?void 0:e.disconnect()})}(null===(n=document)||void 0===n?void 0:n.documentElement,function(t){t.some(function(t){return"attributes"===t.type&&"theme-mode"===t.attributeName&&(To(e)||Array.isArray(e)?o.forEach(function(e){r[e].value=cu(e)}):Object.entries(e).forEach(function(e){var t=Ya(e,2),n=t[0],o=t[1];r[n].value=cu(o)}),!0)})}),r}function du(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r-1&&e.indexOf("MSIE")>-1,n=e.indexOf("Trident")>-1&&e.indexOf("rv:11.0")>-1;if(t){var r=new RegExp("MSIE (\\d+\\.\\d+);"),o=e.match(r);if(!o)return-1;var a=parseFloat(o[1]);return a<7?6:a}return n?11:Number.MAX_SAFE_INTEGER}function hu(e,t){var n=Uo(t);if(!e||0===e.length)return n?{length:0,characters:e}:0;for(var r=0,o=0;o127?2:1,n&&r+a>t)return{length:r,characters:e.slice(0,o)};r+=a}return n?{length:r,characters:e}:r}function gu(e){return Uo(e)?"".concat(e,"px"):e}var yu=["padding-top","padding-bottom","padding-left","padding-right","font-family","font-weight","font-size","font-variant","text-rendering","text-transform","width","text-indent","border-width","box-sizing","line-height","letter-spacing"];function bu(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function wu(e){for(var t=1;t11){var v=l.match(/[\d.]+/g),f=v?"rgba(".concat(v[0],", ").concat(v[1],", ").concat(v[2],", 0)"):"";Hi(e,wu(wu({},o),{},{background:"conic-gradient(from 90deg at 50% 50%,".concat(f," 0deg, ").concat(l," 360deg)")}))}else Hi(e,wu(wu({},o),{},{background:""}))}}(n.value)})}),function(){var r="".concat(e.value,"-loading__gradient"),o=[r,"".concat(e.value,"-icon-loading")];return t.createVNode("svg",{class:o,viewBox:"0 0 12 12",version:"1.1",width:"1em",height:"1em",xmlns:"http://www.w3.org/2000/svg"},[t.createVNode("foreignObject",{x:"0",y:"0",width:"12",height:"12"},[t.createVNode("div",{class:"".concat(r,"-conic"),ref:n},null)])])}}}),Cu={attach:{type:[String,Function],default:""},content:{type:[String,Function]},default:{type:[String,Function]},delay:{type:Number,default:0},fullscreen:Boolean,indicator:{type:[Boolean,Function],default:!0},inheritColor:Boolean,loading:{type:Boolean,default:!0},preventScrollThrough:{type:Boolean,default:!0},showOverlay:{type:Boolean,default:!0},size:{type:String,default:"medium"},text:{type:[String,Function]},zIndex:{type:Number}},xu=t.defineComponent({name:"TLoading",inheritAttrs:!1,props:Cu,setup:function(e,n){var r=n.slots,o=n.attrs,a=t.ref(!1),l={name:ei("loading"),centerClass:ei("loading--center"),fullscreenClass:ei("loading__fullscreen"),lockClass:ei("loading--lock"),overlayClass:ei("loading__overlay"),relativeClass:ei("loading__parent"),fullClass:ei("loading--full"),inheritColorClass:ei("loading--inherit-color")},i=l.name,u=l.centerClass,c=l.fullscreenClass,d=l.lockClass,v=l.overlayClass,f=l.relativeClass,p=l.fullClass,m=l.inheritColorClass,h=ei(),g=Rl(),y=Hl(),b=ti().SIZE,w=function(){a.value=!1;var t=setTimeout(function(){a.value=!0,clearTimeout(t)},e.delay)},O=Ki(function(){return e.attach}),C=t.computed(function(){return Boolean(!e.delay||e.delay&&a.value)}),x=t.computed(function(){var t={};return void 0!==e.zIndex&&(t.zIndex=e.zIndex),["small","medium","large"].includes(e.size)||(t["font-size"]=e.size),t}),P=t.computed(function(){return Boolean(e.default||r.default||e.content||r.content)}),S=t.computed(function(){return e.preventScrollThrough&&e.fullscreen}),j=t.computed(function(){return Boolean(e.text||r.text)}),k=t.computed(function(){return P.value&&e.loading&&C.value}),N=t.computed(function(){return e.fullscreen&&e.loading&&C.value}),_=t.computed(function(){return e.attach&&e.loading&&C.value}),V=t.computed(function(){var t=[u.value,Al(b.value,e.size),s({},m.value,e.inheritColor)],n=[i.value,c.value,u.value,v.value];return{baseClasses:t,attachClasses:t.concat([i.value,p.value,s({},v.value,e.showOverlay)]),withContentClasses:t.concat([i.value,p.value,s({},v.value,e.showOverlay)]),fullScreenClasses:n,normalClasses:t.concat([i.value])}}),D=t.toRefs(e).loading;return t.watch([D],function(e){Ya(e,1)[0]?(w(),S.value&&pl(document.body,d.value)):S.value&&ml(document.body,d.value)}),t.onMounted(function(){e.delay&&w()}),function(){var n=V.value,r=n.fullScreenClasses,a=n.baseClasses,l=n.withContentClasses,i=n.attachClasses,u=n.normalClasses,c=t.createVNode(Ou,{size:e.size},null),s=D.value&&g("indicator",c),d=j.value&&t.createVNode("div",{class:"".concat(h.value,"-loading__text")},[g("text")]);return e.fullscreen?N.value&&e.loading?t.createVNode(t.Teleport,{disabled:!e.attach||!O.value,to:O.value},{default:function(){return[t.createVNode("div",t.mergeProps({class:r,style:x.value},o),[t.createVNode("div",{class:a},[s,d])])]}}):null:P.value?t.createVNode("div",t.mergeProps({class:f.value},o),[y("default","content"),k.value&&t.createVNode("div",{class:l,style:x.value},[s,d])]):e.attach?_.value&&D.value?t.createVNode(t.Teleport,{disabled:!e.attach||!O.value,to:O.value},{default:function(){return[t.createVNode("div",t.mergeProps({class:i,style:x.value},o),[s,d])]}}):null:D.value?t.createVNode("div",t.mergeProps({class:u,style:x.value},o),[s,d]):null}}}),Pu=null;function Su(e,n){var r=function(e){return ta({fullscreen:!1,attach:"body",loading:!0,preventScrollThrough:!0},e)}(e);if(r.fullscreen&&Pu)return Pu;var o=t.defineComponent({setup:function(){var e=t.reactive(r);return function(){return t.h(xu,e)}}}),a=hl(r.fullscreen?"body":r.attach),l=t.createVNode(o);(null!=n?n:ku._context)&&(l.appContext=null!=n?n:ku._context);var i=document.createElement("div");t.render(l,i);var u=ei("loading__parent--relative").value,c=ei("loading--lock");return r.preventScrollThrough&&r.fullscreen&&pl(document.body,c.value),a?pl(a,u):console.error("attach is not exist"),{hide:function(){ml(a,u),ml(document.body,c.value),t.render(null,i),i.remove()}}}function ju(e,t){return!0===e?Pu=Su({fullscreen:!0,loading:!0,attach:"body",preventScrollThrough:!0},t):!1===e?(null===(n=Pu)||void 0===n||n.hide(),void(Pu=null)):Su(e);var n}var ku=ju;ku.install=function(e){e.config.globalProperties.$loading=ju,ku._context=e._context};var Nu=Symbol("TdLoading"),_u=function(e,t){var n=t.modifiers,r=n.fullscreen,o=n.inheritColor,a={attach:function(){return e},fullscreen:null!=r&&r,inheritColor:null!=o&&o,loading:t.value};E(t.value)&&function(e,t){var n={};t=ao(t),uo(e,function(e,r,o){ge(n,t(e,r,o),e)})}(t.value,function(e,t){a[t]=e}),e[Nu]={options:a,instance:ku(a)}},Vu={mounted:function(e,t){t.value&&_u(e,t)},updated:function(e,t){var n,r=e[Nu],o=t.value;Ko(o,t.oldValue)||((null!==(n=null==o?void 0:o.loading)&&void 0!==n?n:o)?_u(e,t):null==r||r.instance.hide())},unmounted:function(e){var t;null===(t=e[Nu])||void 0===t||t.instance.hide()}},Du=Nl(xu,xu.name,{name:"loading",comp:Vu}),Eu={block:Boolean,content:{type:[String,Function]},default:{type:[String,Function]},disabled:{type:Boolean,default:void 0},form:{type:String,default:void 0},ghost:Boolean,href:{type:String,default:""},icon:{type:Function},loading:Boolean,loadingProps:{type:Object},shape:{type:String,default:"rectangle",validator:function(e){return!e||["rectangle","square","round","circle"].includes(e)}},size:{type:String,default:"medium",validator:function(e){return!e||["extra-small","small","medium","large"].includes(e)}},suffix:{type:Function},tag:{type:String,validator:function(e){return!e||["button","a","div"].includes(e)}},theme:{type:String,validator:function(e){return!e||["default","primary","danger","warning","success"].includes(e)}},type:{type:String,default:"button",validator:function(e){return!e||["submit","reset","button"].includes(e)}},variant:{type:String,default:"base",validator:function(e){return!e||["base","outline","dashed","text"].includes(e)}},onClick:Function};function Fu(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Tu(e){for(var t=1;t0)){var n=document.createElement("script");n.setAttribute("class",t),n.setAttribute("src",e),document.body.appendChild(n)}}(e,"".concat(Qf,"-svg-js-stylesheet--unique-class"))})});var v=t.computed(function(){return{class:s.value,style:d.value,onClick:function(t){var n;return null===(n=e.onClick)||void 0===n?void 0:n.call(e,{e:t})}}});return function(){return t.h("svg",v.value,t.h("use",{href:e.url?"#".concat(a.value):"#t-icon-".concat(a.value)}))}}}),"TIcon"),tp={content:{type:[String,Function]},default:{type:[String,Function]},disabled:{type:Boolean,default:void 0},download:{type:[String,Boolean]},hover:{type:String,default:"underline",validator:function(e){return!e||["color","underline"].includes(e)}},href:{type:String,default:""},prefixIcon:{type:Function},size:{type:String,default:"medium",validator:function(e){return!e||["small","medium","large"].includes(e)}},suffixIcon:{type:Function},target:{type:String,default:""},theme:{type:String,default:"default",validator:function(e){return!e||["default","primary","danger","warning","success"].includes(e)}},underline:Boolean,onClick:Function},np=t.defineComponent({name:"TLink",props:tp,emits:["click"],setup:function(e,n){var r=n.emit,o=Hl(),a=Rl(),l=ei("link"),u=ti(),c=u.STATUS,d=u.SIZE,v=Jl("classPrefix").classPrefix,f=oi(),p=t.computed(function(){return["".concat(l.value),"".concat(l.value,"--theme-").concat(e.theme),s(s(s(s({},d.value[e.size],"medium"!==e.size),c.value.disabled,f.value),"".concat(v.value,"-is-underline"),e.underline),"".concat(l.value,"--hover-").concat(e.hover),!f.value)]}),m=function(e){f.value||r("click",e)};return function(){var n=o("default","content"),r=a("prefixIcon"),u=a("suffixIcon");return t.createVNode("a",{class:i(p.value),href:f.value||!e.href?void 0:e.href,target:e.target?e.target:void 0,download:e.download?e.download:void 0,onClick:m},[r?t.createVNode("span",{class:"".concat(l.value,"__prefix-icon")},[r]):null,n,u?t.createVNode("span",{class:"".concat(l.value,"__suffix-icon")},[u]):null])}}}),rp=Nl(np),op={align:{type:String,default:"top",validator:function(e){return!e||["start","end","center","stretch","baseline","top","middle","bottom"].includes(e)}},gutter:{type:[Number,Object,Array],default:0},justify:{type:String,default:"start",validator:function(e){return!e||["start","end","center","space-around","space-between"].includes(e)}},tag:{type:String,default:"div"}},ap=function(e){return e<768?"xs":e>=768&&e<992?"sm":e>=992&&e<1200?"md":e>=1200&&e<1400?"lg":e>=1400&&e<1880?"xl":"xxl"};function lp(){var e=t.ref(ap(sl?0:window.innerWidth));return Ei("resize",function(){e.value=ap(sl?0:window.innerWidth)}),e}function ip(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function up(e){for(var t=1;t=0),"".concat(e,"-").concat(r,"-offset-").concat(a.offset),parseInt(a.offset,10)>=0),"".concat(e,"-").concat(r,"-push-").concat(a.push),parseInt(a.push,10)>=0),"".concat(e,"-").concat(r,"-pull-").concat(a.pull),parseInt(a.pull,10)>=0))},{});return up(s(s(s(s(s(s({},"".concat(e),!0),"".concat(e,"-").concat(n),!Zo(n)),"".concat(e,"-order-").concat(r),r),"".concat(e,"-offset-").concat(o),o),"".concat(e,"-push-").concat(a),a),"".concat(e,"-pull-").concat(l),l),i)}(n.value,e)}),i=t.computed(function(){var t,n,r,l,i,u={},c=e.flex;if(c&&(u.flex=function(e){return Uo(e)?"".concat(e," ").concat(e," 0"):/^\d+(\.\d+)?(px|r?em|%)$/.test(e)?"0 0 ".concat(e):e}(c)),o){var s=o.gutter;Object.assign(u,(t=s,n=a.value,r={},l=function(e){return Object.assign(r,{paddingLeft:"".concat(e/2,"px"),paddingRight:"".concat(e/2,"px")})},i={isNumber:function(e){Uo(e)&&l(e)},isArray:function(e){S(e)&&e.length&&(Uo(e[0])&&l(e[0]),E(e[0])&&e[0][n]&&l(e[0][n]))},isObject:function(e){E(e)&&!S(e)&&e[n]&&l(e[n])}},Object.keys(i).forEach(function(e){i[e](t)}),r))}return u});return function(){var n,o,a=e.tag;return t.createVNode(a,{class:l.value,style:i.value},"function"==typeof(o=n=r("default"))||"[object Object]"===Object.prototype.toString.call(o)&&!t.isVNode(o)?n:{default:function(){return[n]}})}}}),vp=Nl(cp),fp=Nl(dp),pp=t.defineComponent({name:"TLayout",setup:function(){var e=t.ref(!1),n=Rl(),r=ei("layout"),o=t.computed(function(){return[r.value,s({},"".concat(r.value,"--with-sider"),e.value)]});return t.provide("layout",{hasSide:e}),function(){return t.createVNode("section",{class:o.value},[n("default")])}}}),mp={height:{type:String,default:""}},hp=t.defineComponent({name:"THeader",props:mp,setup:function(e){var n=ei("layout__header"),r=Rl();return function(){return t.createVNode("header",{class:n.value,style:e.height?{height:e.height}:{}},[r("default")])}}}),gp={height:{type:String,default:""}},yp=t.defineComponent({name:"TFooter",props:gp,setup:function(e){var n=ei("layout__footer"),r=Rl();return function(){return t.createVNode("footer",{class:n.value,style:e.height?{height:e.height}:{}},[r("default")])}}}),bp={width:{type:String,default:""}},wp=t.defineComponent({name:"TAside",props:bp,setup:function(e){var n=t.inject("layout",Object.create(null)).hasSide,r=ei("layout__sider"),o=Rl();if(n)return t.onMounted(function(){n.value=!0}),t.onUnmounted(function(){n.value=!1}),function(){var n=e.width?{width:e.width}:{};return t.createVNode("aside",{class:r.value,style:n},[o("default")])}}}),Op={content:{type:[String,Function]},default:{type:[String,Function]}},Cp=t.defineComponent({name:"TContent",props:Op,setup:function(){var e=ei("layout__content"),n=Hl();return function(){return t.createVNode("main",{class:e.value},[n("default","content")])}}}),xp=Nl(wp),Pp=Nl(pp),Sp=Nl(hp),jp=Nl(yp),kp=Nl(Cp),Np={align:{type:String,default:"center",validator:function(e){return!e||["left","right","center"].includes(e)}},content:{type:[String,Function]},dashed:Boolean,default:{type:[String,Function]},layout:{type:String,default:"horizontal",validator:function(e){return!e||["horizontal","vertical"].includes(e)}},theme:{type:String,validator:function(e){return!e||["horizontal","vertical"].includes(e)}}},_p=t.defineComponent({name:"TDivider",props:Np,setup:function(e){var n=ei("divider"),r=Hl();return function(){var o=e.layout,a=e.dashed,l=e.align,i=r("default","content"),u=["".concat(n.value),["".concat(n.value,"--").concat(o)],s(s(s({},"".concat(n.value,"--dashed"),!!a),"".concat(n.value,"--with-text"),!!i),"".concat(n.value,"--with-text-").concat(l),!!i)];return t.createVNode("div",{class:u},[i&&t.createVNode("span",{class:"".concat(n.value,"__inner-text")},[i])])}}}),Vp=Nl(_p),Dp={align:{type:String,validator:function(e){return!e||["start","end","center","baseline"].includes(e)}},breakLine:Boolean,direction:{type:String,default:"horizontal",validator:function(e){return!e||["vertical","horizontal"].includes(e)}},separator:{type:[String,Function]},size:{type:[String,Number,Array],default:"medium"}};function Ep(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Fp(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{};return To(e)?e:H(e)?e(t.h,n):H(null==e?void 0:e.render)?e.render(t.h,n):e}function Hp(e,t,n){var r,o=null===(r=e.props)||void 0===r?void 0:r[t];if(o)return o;var a=e.children,l=(null==a?void 0:a[t])||(null==a?void 0:a[n]);return l?null==l?void 0:l():null}function Wp(e,t){return e===Rp.props}var Kp=t.defineComponent({name:"TDescriptionsRow",props:{row:Array,itemType:String},setup:function(e){var n=t.inject(Lp),r=ei("descriptions"),o=Jl("descriptions").globalConfig,a=t.computed(function(){return"horizontal"===n.layout}),l=t.computed(function(){return"horizontal"===n.itemLayout}),i=function(i){var u=["".concat(r.value,"__label")],c=null,s=null;Wp(e.itemType)?(c=i.label,s=i.span):(c=Hp(i,"label"),s=i.props.span);var d=a.value?l.value?1:s:1;return t.createVNode("td",t.mergeProps({colspan:d,class:u},{style:n.labelStyle}),[c,n.colon&&o.value.colonText])},u=function(o){var i=["".concat(r.value,"__content")],u=null,c=null;Wp(e.itemType)?(u=o.content,c=o.span):(u=Hp(o,"content","default"),c=o.props.span);var s=a.value?c>1&&l.value?2*c-1:c:1;return t.createVNode("td",t.mergeProps({colspan:s,class:i},{style:n.contentStyle}),[u])};return function(){return t.createVNode(t.Fragment,null,[a.value?l.value?t.createVNode("tr",null,[e.row.map(function(e){return t.createVNode(t.Fragment,null,[i(e),u(e)])})]):t.createVNode(t.Fragment,null,[t.createVNode("tr",null,[e.row.map(function(e){return i(e)})]),t.createVNode("tr",null,[e.row.map(function(e){return u(e)})])]):l.value?t.createVNode(t.Fragment,null,[e.row.map(function(e){return t.createVNode("tr",null,[i(e),u(e)])})]):t.createVNode(t.Fragment,null,[e.row.map(function(e){return t.createVNode(t.Fragment,null,[t.createVNode("tr",null,[i(e)]),t.createVNode("tr",null,[u(e)])])})])])}}}),Up=t.defineComponent({name:"TDescriptions",props:Bp,setup:function(e){var n=ei("descriptions"),r=ti().SIZE,o=El(),a=Rl(),l=t.ref(Rp.props),i=function(){var t=e.column,n=e.layout,r=[];if(S(e.items))r=e.items.map(function(e){return{label:zp(e.label),content:zp(e.content),span:e.span||1}}),l.value=Rp.props;else{var a=o("TDescriptionsItem");0!==a.length&&(r=a,l.value=Rp.slots)}if("vertical"===n)return[r];var i=[],u=t,c=[];return r.forEach(function(e,n){var o,a=1;Wp(l.value)?a=(a=Yo(e.span)?a:e.span)>t?t:a:(e.props=e.props||{},a=(a=Yo(null===(o=e.props)||void 0===o?void 0:o.span)?a:e.props.span)>t?t:a,e.props.span=a);u>=a?(i.push(e),u-=a):(c.push(i),i=[e],u=t-a),n===r.length-1&&(Wp(l.value)?e.span+=u:e.props.span+=u,c.push(i))}),c};t.provide(Lp,e);return function(){return t.createVNode("div",{class:n.value},[(u=a("title"),u?t.createVNode("div",{class:"".concat(n.value,"__header")},[u]):""),(o=["".concat(n.value,"__body"),r.value[e.size],s({},"".concat(n.value,"__body--fixed"),"fixed"===e.tableLayout),s({},"".concat(n.value,"__body--border"),e.bordered)],t.createVNode("table",{class:o},[t.createVNode("tbody",null,[i().map(function(e){return t.createVNode(Kp,{"item-type":l.value,row:e},null)})])]))]);var o,u}}}),Yp={content:{type:[String,Function]},default:{type:[String,Function]},label:{type:[String,Function]},span:{type:Number,default:1}},$p=t.defineComponent({name:"TDescriptionsItem",props:Yp}),Zp=Nl(Up),qp=Nl($p);function Xp(e,t,n,r,o,a,l){try{var i=e[a](l),u=i.value}catch(e){return void n(e)}i.done?t(u):Promise.resolve(u).then(r,o)}function Gp(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function l(e){Xp(a,r,o,l,i,"next",e)}function i(e){Xp(a,r,o,l,i,"throw",e)}l(void 0)})}}var Jp={exports:{}},Qp={exports:{}};!function(e){e.exports=function(e,t){this.v=e,this.k=t},e.exports.__esModule=!0,e.exports.default=e.exports}(Qp);var em=Qp.exports,tm={exports:{}},nm={exports:{}};!function(e){function t(n,r,o,a){var l=Object.defineProperty;try{l({},"",{})}catch(n){l=0}e.exports=t=function(e,n,r,o){if(n)l?l(e,n,{value:r,enumerable:!o,configurable:!o,writable:!o}):e[n]=r;else{var a=function(n,r){t(e,n,function(e){return this._invoke(n,r,e)})};a("next",0),a("throw",1),a("return",2)}},e.exports.__esModule=!0,e.exports.default=e.exports,t(n,r,o,a)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports}(nm);var rm=nm.exports;!function(e){var t=rm;function n(){ /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ -var r,o,a="function"==typeof Symbol?Symbol:{},l=a.iterator||"@@iterator",i=a.toStringTag||"@@toStringTag";function u(e,n,a,l){var i=n&&n.prototype instanceof s?n:s,u=Object.create(i.prototype);return t(u,"_invoke",function(e,t,n){var a,l,i,u=0,s=n||[],d=!1,v={p:0,n:0,v:r,a:f,f:f.bind(r,4),d:function(e,t){return a=e,l=0,i=r,v.n=t,c}};function f(e,t){for(l=e,i=t,o=0;!d&&u&&!n&&o3?(n=p===t)&&(l=a[4]||3,i=a[5]===r?a[3]:a[5],a[4]=3,a[5]=r):a[0]<=f&&((n=e<2&&ft||t>p)&&(a[4]=e,a[5]=t,v.n=p,l=0))}if(n||e>1)return c;throw d=!0,t}return function(n,s,p){if(u>1)throw TypeError("Generator is already running");for(d&&1===s&&f(s,p),l=s,i=p;(o=l<2?r:i)||!d;){a||(l?l<3?(l>1&&(v.n=-1),f(l,i)):v.n=i:v.v=i);try{if(u=2,a){if(l||(n="next"),o=a[n]){if(!(o=o.call(a,i)))throw TypeError("iterator result is not an object");if(!o.done)return o;i=o.value,l<2&&(l=0)}else 1===l&&(o=a.return)&&o.call(a),l<2&&(i=TypeError("The iterator does not provide a '"+n+"' method"),l=1);a=r}else if((o=(d=v.n<0)?i:e.call(t,v))!==c)break}catch(e){a=r,l=1,i=e}finally{u=1}}return{value:o,done:d}}}(e,a,l),!0),u}var c={};function s(){}function d(){}function v(){}o=Object.getPrototypeOf;var f=[][l]?o(o([][l]())):(t(o={},l,(function(){return this})),o),p=v.prototype=s.prototype=Object.create(f);function m(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,v):(e.__proto__=v,t(e,i,"GeneratorFunction")),e.prototype=Object.create(p),e}return d.prototype=v,t(p,"constructor",v),t(v,"constructor",d),d.displayName="GeneratorFunction",t(v,i,"GeneratorFunction"),t(p),t(p,i,"Generator"),t(p,l,(function(){return this})),t(p,"toString",(function(){return"[object Generator]"})),(e.exports=n=function(){return{w:u,m:m}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=n,e.exports.__esModule=!0,e.exports.default=e.exports}(jp);var Np={exports:{}},_p={exports:{}},Vp={exports:{}};!function(e){var t=Sp.exports,n=kp.exports;e.exports=function e(r,o){function a(e,n,l,i){try{var u=r[e](n),c=u.value;return c instanceof t?o.resolve(c.v).then((function(e){a("next",e,l,i)}),(function(e){a("throw",e,l,i)})):o.resolve(c).then((function(e){u.value=e,l(u)}),(function(e){return a("throw",e,l,i)}))}catch(e){i(e)}}var l;this.next||(n(e.prototype),n(e.prototype,"function"==typeof Symbol&&Symbol.asyncIterator||"@asyncIterator",(function(){return this}))),n(this,"_invoke",(function(e,t,n){function r(){return new o((function(t,r){a(e,n,t,r)}))}return l=l?l.then(r,r):r()}),!0)},e.exports.__esModule=!0,e.exports.default=e.exports}(Vp),function(e){var t=jp.exports,n=Vp.exports;e.exports=function(e,r,o,a,l){return new n(t().w(e,r,o,a),l||Promise)},e.exports.__esModule=!0,e.exports.default=e.exports}(_p),function(e){var t=_p.exports;e.exports=function(e,n,r,o,a){var l=t(e,n,r,o,a);return l.next().then((function(e){return e.done?e.value:l.next()}))},e.exports.__esModule=!0,e.exports.default=e.exports}(Np);var Dp={exports:{}};!function(e){e.exports=function(e){var t=Object(e),n=[];for(var r in t)n.unshift(r);return function e(){for(;n.length;)if((r=n.pop())in t)return e.value=r,e.done=!1,e;return e.done=!0,e}},e.exports.__esModule=!0,e.exports.default=e.exports}(Dp);var Ep={exports:{}},Fp={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}(Fp),function(e){var t=Fp.exports.default;e.exports=function(e){if(null!=e){var n=e["function"==typeof Symbol&&Symbol.iterator||"@@iterator"],r=0;if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length))return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}}}throw new TypeError(t(e)+" is not iterable")},e.exports.__esModule=!0,e.exports.default=e.exports}(Ep),function(e){var t=Sp.exports,n=jp.exports,r=Np.exports,o=_p.exports,a=Vp.exports,l=Dp.exports,i=Ep.exports;function u(){var c=n(),s=c.m(u),d=(Object.getPrototypeOf?Object.getPrototypeOf(s):s.__proto__).constructor;function v(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===d||"GeneratorFunction"===(t.displayName||t.name))}var f={throw:1,return:2,break:3,continue:3};function p(e){var t,n;return function(r){t||(t={stop:function(){return n(r.a,2)},catch:function(){return r.v},abrupt:function(e,t){return n(r.a,f[e],t)},delegateYield:function(e,o,a){return t.resultName=o,n(r.d,i(e),a)},finish:function(e){return n(r.f,e)}},n=function(e,n,o){r.p=t.prev,r.n=t.next;try{return e(n,o)}finally{t.next=r.n}}),t.resultName&&(t[t.resultName]=r.v,t.resultName=void 0),t.sent=r.v,t.next=r.n;try{return e.call(this,t)}finally{r.p=t.prev,r.n=t.next}}}return(e.exports=u=function(){return{wrap:function(e,t,n,r){return c.w(p(e),t,n,r&&r.reverse())},isGeneratorFunction:v,mark:c.m,awrap:function(e,n){return new t(e,n)},AsyncIterator:a,async:function(e,t,n,a,l){return(v(t)?o:r)(p(e),t,n,a,l)},keys:l,values:i}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=u,e.exports.__esModule=!0,e.exports.default=e.exports}(Pp);var Tp=Pp.exports(),Ip=Tp;try{regeneratorRuntime=Tp}catch(e){"object"===("undefined"==typeof globalThis?"undefined":u(globalThis))?globalThis.regeneratorRuntime=Tp:Function("r","regeneratorRuntime = r")(Tp)}var Mp={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},Ap=t.defineComponent({name:"TAffix",props:Mp,emits:["fixedChange"],setup:function(e,n){var r,o=fl("affix"),a=el(),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=xp(Ip.mark((function n(){return Ip.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=1,t.nextTick();case 1:if(!s.value){n.next=2;break}return n.abrupt("return");case 2:d.value=fi(e.container),ii(d.value,"scroll",p),ii(window,"resize",p),s.value=!0;case 3:case"end":return n.stop()}}),n)})));return function(){return n.apply(this,arguments)}}(),h=function(){d.value&&s.value&&(ui(d.value,"scroll",p),ui(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")])])}}}),Bp=iu(Ap),Lp={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(zp);if(t){var n=document.getElementById(t[1]);if(n)return n}},w=function(){var n=xp(Ip.mark((function n(r){var o;return Ip.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(l.value!==r){n.next=1;break}return n.abrupt("return");case 1:return l.value=r,null===(o=e.onChange)||void 0===o||o.call(e,r,l.value),n.next=2,t.nextTick();case 2:O();case 3:case"end":return n.stop()}}),n)})));return function(e){return n.apply(this,arguments)}}(),O=function(){var e,t=null===(e=o.value)||void 0===e?void 0:e.querySelector(".".concat(p.value.active,">a"));if(t){var n=t.offsetTop,r=t.offsetHeight;Object.assign(c,{top:"".concat(n,"px"),height:"".concat(r,"px"),opacity:1})}else Object.assign(c,{})},C=function(){var t=xp(Ip.mark((function t(n){var r,o,a,l,c;return Ip.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r=b(n),w(n),r){t.next=1;break}return t.abrupt("return");case 1:return u.value=!0,o=e.targetOffset,a=mi(i.value),l=Hp(r,i.value),c=a+l-o,t.next=2,hi(c,{container:i.value});case 2:u.value=!1;case 3:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}();return t.onMounted(xp(Ip.mark((function e(){return Ip.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(g(),!l.value){e.next=2;break}return e.next=1,t.nextTick();case 1:C(l.value);case 2:case"end":return e.stop()}}),e)})))),t.onUnmounted((function(){i.value&&ui(i.value,"scroll",y)})),t.watchEffect((function(){i.value&&ui(i.value,"scroll",y),g()})),t.provide(Kp,t.reactive({registerLink:function(e){zp.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(Bp,l,"function"==typeof(n=u)||"[object Object]"===Object.prototype.toString.call(n)&&!t.isVNode(n)?u:{default:function(){return[u]}}):u}}});function Yp(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function $p(e){for(var t=1;t0&&Wm(r.width)/e.offsetWidth||1,a=e.offsetHeight>0&&Wm(r.height)/e.offsetHeight||1);var l=(Mm(e)?Im(e):window).visualViewport,i=!Um()&&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 $m(e){var t=Ym(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 Zm(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&Bm(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function qm(e){return Im(e).getComputedStyle(e)}function Xm(e){return["table","td","th"].indexOf(Tm(e))>=0}function Gm(e){return((Mm(e)?e.ownerDocument:e.document)||window.document).documentElement}function Jm(e){return"html"===Tm(e)?e:e.assignedSlot||e.parentNode||(Bm(e)?e.host:null)||Gm(e)}function Qm(e){return Am(e)&&"fixed"!==qm(e).position?e.offsetParent:null}function eh(e){for(var t=Im(e),n=Qm(e);n&&Xm(n)&&"static"===qm(n).position;)n=Qm(n);return n&&("html"===Tm(n)||"body"===Tm(n)&&"static"===qm(n).position)?t:n||function(e){var t=/firefox/i.test(Km());if(/Trident/i.test(Km())&&Am(e)&&"fixed"===qm(e).position)return null;var n=Jm(e);for(Bm(n)&&(n=n.host);Am(n)&&["html","body"].indexOf(Tm(n))<0;){var r=qm(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 th(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function nh(e,t,n){return zm(e,Hm(t,n))}function rh(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function oh(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}var ah={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=Rm(n.placement),u=th(i),c=[Pm,xm].indexOf(i)>=0?"height":"width";if(a&&l){var s=function(e,t){return rh("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:oh(e,jm))}(o.padding,n),d=$m(a),v="y"===u?Om:Pm,f="y"===u?Cm:xm,p=n.rects.reference[c]+n.rects.reference[u]-l[u]-n.rects.popper[c],m=l[u]-n.rects.reference[u],h=eh(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=nh(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)))&&Zm(t.elements.popper,r)&&(t.elements.arrow=r)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function lh(e){return e.split("-")[1]}var ih={top:"auto",right:"auto",bottom:"auto",left:"auto"};function uh(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=Pm,w=Om,O=window;if(c){var C=eh(n),x="clientHeight",P="clientWidth";if(C===Im(n)&&"static"!==qm(C=Gm(n)).position&&"absolute"===i&&(x="scrollHeight",P="scrollWidth"),o===Om||(o===Pm||o===xm)&&a===Nm)w=Cm,m-=(d&&C===O&&O.visualViewport?O.visualViewport.height:C[x])-r.height,m*=u?1:-1;if(o===Pm||(o===Om||o===Cm)&&a===Nm)b=xm,f-=(d&&C===O&&O.visualViewport?O.visualViewport.width:C[P])-r.width,f*=u?1:-1}var S,j=Object.assign({position:i},c&&ih),k=!0===s?function(e,t){var n=e.x,r=e.y,o=t.devicePixelRatio||1;return{x:Wm(n*o)/o||0,y:Wm(r*o)/o||0}}({x:f,y:m},Im(n)):{x:f,y:m};return f=k.x,m=k.y,u?Object.assign({},j,((S={})[w]=y?"0":"",S[b]=g?"0":"",S.transform=(O.devicePixelRatio||1)<=1?"translate("+f+"px, "+m+"px)":"translate3d("+f+"px, "+m+"px, 0)",S)):Object.assign({},j,((t={})[w]=y?m+"px":"",t[b]=g?f+"px":"",t.transform="",t))}var ch={passive:!0};var sh={left:"right",right:"left",bottom:"top",top:"bottom"};function dh(e){return e.replace(/left|right|bottom|top/g,(function(e){return sh[e]}))}var vh={start:"end",end:"start"};function fh(e){return e.replace(/start|end/g,(function(e){return vh[e]}))}function ph(e){var t=Im(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function mh(e){return Ym(Gm(e)).left+ph(e).scrollLeft}function hh(e){var t=qm(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function gh(e){return["html","body","#document"].indexOf(Tm(e))>=0?e.ownerDocument.body:Am(e)&&hh(e)?e:gh(Jm(e))}function yh(e,t){var n;void 0===t&&(t=[]);var r=gh(e),o=r===(null==(n=e.ownerDocument)?void 0:n.body),a=Im(r),l=o?[a].concat(a.visualViewport||[],hh(r)?r:[]):r,i=t.concat(l);return o?i:i.concat(yh(Jm(l)))}function bh(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function wh(e,t,n){return t===_m?bh(function(e,t){var n=Im(e),r=Gm(e),o=n.visualViewport,a=r.clientWidth,l=r.clientHeight,i=0,u=0;if(o){a=o.width,l=o.height;var c=Um();(c||!c&&"fixed"===t)&&(i=o.offsetLeft,u=o.offsetTop)}return{width:a,height:l,x:i+mh(e),y:u}}(e,n)):Mm(t)?function(e,t){var n=Ym(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):bh(function(e){var t,n=Gm(e),r=ph(e),o=null==(t=e.ownerDocument)?void 0:t.body,a=zm(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),l=zm(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),i=-r.scrollLeft+mh(e),u=-r.scrollTop;return"rtl"===qm(o||n).direction&&(i+=zm(n.clientWidth,o?o.clientWidth:0)-a),{width:a,height:l,x:i,y:u}}(Gm(e)))}function Oh(e,t,n,r){var o="clippingParents"===t?function(e){var t=yh(Jm(e)),n=["absolute","fixed"].indexOf(qm(e).position)>=0&&Am(e)?eh(e):e;return Mm(n)?t.filter((function(e){return Mm(e)&&Zm(e,n)&&"body"!==Tm(e)})):[]}(e):[].concat(t),a=[].concat(o,[n]),l=a[0],i=a.reduce((function(t,n){var o=wh(e,n,r);return t.top=zm(o.top,t.top),t.right=Hm(o.right,t.right),t.bottom=Hm(o.bottom,t.bottom),t.left=zm(o.left,t.left),t}),wh(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 Ch(e){var t,n=e.reference,r=e.element,o=e.placement,a=o?Rm(o):null,l=o?lh(o):null,i=n.x+n.width/2-r.width/2,u=n.y+n.height/2-r.height/2;switch(a){case Om:t={x:i,y:n.y-r.height};break;case Cm:t={x:i,y:n.y+n.height};break;case xm:t={x:n.x+n.width,y:u};break;case Pm:t={x:n.x-r.width,y:u};break;default:t={x:n.x,y:n.y}}var c=a?th(a):null;if(null!=c){var s="y"===c?"height":"width";switch(l){case km:t[c]=t[c]-(n[s]/2-r[s]/2);break;case Nm:t[c]=t[c]+(n[s]/2-r[s]/2)}}return t}function xh(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?_m:c,d=n.elementContext,v=void 0===d?Vm:d,f=n.altBoundary,p=void 0!==f&&f,m=n.padding,h=void 0===m?0:m,g=rh("number"!=typeof h?h:oh(h,jm)),y=v===Vm?"reference":Vm,b=e.rects.popper,w=e.elements[p?y:v],O=Oh(Mm(w)?w:w.contextElement||Gm(e.elements.popper),u,s,l),C=Ym(e.elements.reference),x=Ch({reference:C,element:b,strategy:"absolute",placement:o}),P=bh(Object.assign({},b,x)),S=v===Vm?P:C,j={top:O.top-S.top+g.top,bottom:S.bottom-O.bottom+g.bottom,left:O.left-S.left+g.left,right:S.right-O.right+g.right},k=e.modifiersData.offset;if(v===Vm&&k){var N=k[o];Object.keys(j).forEach((function(e){var t=[xm,Cm].indexOf(e)>=0?1:-1,n=[Om,Cm].indexOf(e)>=0?"y":"x";j[e]+=N[n]*t}))}return j}function Ph(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?Em:u,s=lh(r),d=s?i?Dm:Dm.filter((function(e){return lh(e)===s})):jm,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]=xh(e,{placement:n,boundary:o,rootBoundary:a,padding:l})[Rm(n)],t}),{});return Object.keys(f).sort((function(e,t){return f[e]-f[t]}))}var Sh={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=Rm(h),y=u||(g===h||!p?[dh(h)]:function(e){if(Rm(e)===Sm)return[];var t=dh(e);return[fh(e),t,fh(t)]}(h)),b=[h].concat(y).reduce((function(e,n){return e.concat(Rm(n)===Sm?Ph(t,{placement:n,boundary:s,rootBoundary:d,padding:c,flipVariations:p,allowedAutoPlacements:m}):n)}),[]),w=t.rects.reference,O=t.rects.popper,C=new Map,x=!0,P=b[0],S=0;S=0,V=_?"width":"height",D=xh(t,{placement:j,boundary:s,rootBoundary:d,altBoundary:v,padding:c}),E=_?N?xm:Pm:N?Cm:Om;w[V]>O[V]&&(E=dh(E));var F=dh(E),T=[];if(a&&T.push(D[k]<=0),i&&T.push(D[E]<=0,D[F]<=0),T.every((function(e){return e}))){P=j,x=!1;break}C.set(j,T)}if(x)for(var 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 jh(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 kh(e){return[Om,xm,Cm,Pm].some((function(t){return e[t]>=0}))}var Nh={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=Em.reduce((function(e,n){return e[n]=function(e,t,n){var r=Rm(e),o=[Pm,Om].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,[Pm,xm].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 _h={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=xh(t,{boundary:u,rootBoundary:c,padding:d,altBoundary:s}),g=Rm(t.placement),y=lh(t.placement),b=!y,w=th(g),O="x"===w?"y":"x",C=t.modifiersData.popperOffsets,x=t.rects.reference,P=t.rects.popper,S="function"==typeof m?m(Object.assign({},t.rects,{placement:t.placement})):m,j="number"==typeof S?{mainAxis:S,altAxis:S}:Object.assign({mainAxis:0,altAxis:0},S),k=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,N={x:0,y:0};if(C){if(a){var _,V="y"===w?Om:Pm,D="y"===w?Cm:xm,E="y"===w?"height":"width",F=C[w],T=F+h[V],I=F-h[D],M=f?-P[E]/2:0,A=y===km?x[E]:P[E],B=y===km?-P[E]:-x[E],L=t.elements.arrow,R=f&&L?$m(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=nh(0,x[E],R[E]),U=b?x[E]/2-M-K-H-j.mainAxis:A-K-H-j.mainAxis,Y=b?-x[E]/2+M+K+W+j.mainAxis:B+K+W+j.mainAxis,$=t.elements.arrow&&eh(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=nh(f?Hm(T,F+U-q-Z):T,F,f?zm(I,X):I);C[w]=G,N[w]=G-F}if(i){var J,Q="x"===w?Om:Pm,ee="x"===w?Cm:xm,te=C[O],ne="y"===O?"height":"width",re=te+h[Q],oe=te-h[ee],ae=-1!==[Om,Pm].indexOf(g),le=null!=(J=null==k?void 0:k[O])?J:0,ie=ae?re:te-x[ne]-P[ne]-le+j.altAxis,ue=ae?te+x[ne]+P[ne]-le-j.altAxis:oe,ce=f&&ae?function(e,t,n){var r=nh(e,t,n);return r>n?n:r}(ie,te,ue):nh(f?ie:re,te,f?ue:oe);C[O]=ce,N[O]=ce-te}t.modifiersData[r]=N}},requiresIfExists:["offset"]};function Vh(e,t,n){void 0===n&&(n=!1);var r,o=Am(t),a=Am(t)&&function(e){var t=e.getBoundingClientRect(),n=Wm(t.width)/e.offsetWidth||1,r=Wm(t.height)/e.offsetHeight||1;return 1!==n||1!==r}(t),l=Gm(t),i=Ym(e,a,n),u={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(o||!o&&!n)&&(("body"!==Tm(t)||hh(l))&&(u=(r=t)!==Im(r)&&Am(r)?function(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}(r):ph(r)),Am(t)?((c=Ym(t,!0)).x+=t.clientLeft,c.y+=t.clientTop):l&&(c.x=mh(l))),{x:i.left+u.scrollLeft-c.x,y:i.top+u.scrollTop-c.y,width:i.width,height:i.height}}function Dh(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 Eh={placement:"bottom",modifiers:[],strategy:"absolute"};function Fh(){for(var e=arguments.length,t=new Array(e),n=0;n0&&void 0!==arguments[0]?arguments[0]:[]).forEach((function(n){S(n)?e.push.apply(e,i(n)):n.type===t.Fragment?e.push.apply(e,i(Ah(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 Bh(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 Lh=t.defineComponent({name:"TPopupTrigger",props:{forwardRef:Function},emits:["resize"],setup:function(e,n){var r=n.emit,o=n.slots,a=Bh((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)})),Ei(a,(function(e){var t=Ra(e,1)[0].contentRect;l.value=t})),t.watch(l,(function(e,t){var n,o;o=t,!(n=e)&&!o||n&&o&&!["width","height","x","y"].some((function(e){return n[e]!==o[e]}))||r("resize")})),function(){var e,n,r=Ah(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]}}}),Rh=t.defineComponent({name:"TPopupContent",emits:["resize"],setup:function(e,n){var r=n.emit,o=n.slots;return Ei(Bh((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()])}}}),zh=t.defineComponent({name:"TPopupContainer",inheritAttrs:!1,props:{parent:Object,visible:Boolean,attach:Mh.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 vi(e.attach,i.value)};return t.createVNode(t.Fragment,null,[t.createVNode(Lh,{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(Rh,{onResize:c,onVnodeMounted:function(){return r("contentMounted")}},{default:function(){return[a.content&&a.content()]}})]}})])}}});function Hh(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Wh(e){for(var t=1;tn.x&&t.xn.y&&t.y0&&(fg(l.value)||fg(u.value))?(kl("Breadcrumb","\u9700\u8981\u8bbe\u7f6e itemsBeforeCollapse \u548c itemsAfterCollapse \u5c5e\u6027\u6765\u63a7\u5236\u7701\u7565\u53f7\u524d\u540e\u7684\u663e\u793a\u9879\u6570\u3002"),!1):!(r<=0||o<=r||i>=o)})),s=t.computed((function(){var e=n.value;if(!c.value)return e;var t=e.length,o=e.slice(0,l.value),a=e.slice(t-u.value,t);return[].concat(i(o),[{content:r,disabled:!0,isEllipsisItem:!0}],i(a))})),d=t.computed((function(){var e=n.value;if(!c.value)return[];var t=e.slice(l.value,e.length-u.value);return t.map((function(e,n){return vg(vg({},e),{},{isLast:n===t.length-1})}))}));return{getDisplayItems:s,getEllipsisItems:d}}(e,r,c),f=s.getDisplayItems.value.map((function(e,n){return"object"===u(e)&&"content"in e?t.createVNode(sg,t.mergeProps({key:n},e),{default:function(){return[e.content]}}):e}));return t.createVNode("div",{class:a.value},[f])}}}),gg=iu(hg),yg=iu(sg),bg={active:Boolean,content:{type:[String,Function],default:""},disabled:Boolean,divider:Boolean,prefixIcon:{type:Function},theme:{type:String,default:"default",validator:function(e){return!e||["default","success","warning","error"].includes(e)}},value:{type:[String,Number,Object]},onClick:Function};function wg(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Og(e){for(var t=1;t=e.maxHeight&&(i.value=!0));a.value=document.querySelector(".".concat(n.value,"__item")).scrollHeight+2}));var d=function(e){return H(e)?e(t.h):e},v=function(r,l){var i,f,p=[];return null===(i=r.forEach)||void 0===i||i.call(r,(function(r,i){var m=function(e){for(var t=1;t=0?h:i;m.children?(m.children=v(m.children,l+1),f=t.createVNode("div",{key:i},[t.createVNode(Cg,{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(np,null,null):null])):f=t.createVNode("div",{key:i},[t.createVNode(Cg,{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(np,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 jg(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function kg(e){for(var t=1;t0?Ng(m):null})})).filter((function(e){return!!e.content})):S(e)&&S(null===(n=e[0])||void 0===n?void 0:n.children)?Ng(null===(r=e[0])||void 0===r?void 0:r.children):[]};function _g(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Vg(e){for(var t=1;t0?e.options:Ng(u)}))}(e),f=Vg(Vg(Vg({},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(qh,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(Sg,t.mergeProps(ta(e,"onClick"),{options:v.value,onClick:c}),null):null,o("panelBottomContent")])}})}}}),Eg=iu(Dg),Fg=iu(Cg),Tg=iu(Sg),Ig={collapsed:Boolean,expanded:{type:Array,default:void 0},defaultExpanded:{type:Array,default:[]},expandMutex:Boolean,expandType:{type:String,default:"normal",validator:function(e){return!e||["normal","popup"].includes(e)}},logo:{type:Function},operations:{type:Function},theme:{type:String,default:"light",validator:function(e){return!e||["light","dark"].includes(e)}},value:{type:[String,Number],default:void 0},modelValue:{type:[String,Number],default:void 0},defaultValue:{type:[String,Number]},width:{type:[String,Number,Array],default:"232px"},onChange:Function,onExpand:Function};function Mg(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){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 Ag=function(e,t,n){if(e)for(var r=0;r0)for(var n=0,r=e.children.length;n0){var o=Lg(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=Ag(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=Bg(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=Lg(this.data,e);return t?t.children:[]}}])}();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}function Hg(e){for(var t=1;t1})),C=t.computed((function(){return c.valueMath.abs(n)?E(c.value+t):E(c.value+n)}},I=function(){setTimeout((function(){E(function(e,t,n){var r,o=e.navsContainer,a=e.activeTab,l=e.rightOperations,i=e.leftOperations,u=Zg(a),c=Zg(o),s=(null==(r=a)?void 0:r.offsetLeft)||0,d=Zg(l),v=Zg(i);if("auto"===n){if(s-vt+c-d)return s+u-c+d}else{if("start"===n)return s-v;if("center"===n)return s+(u-c)/2;if("end"===n)return s+u-c+d}return t}(b(),c.value,e.scrollPosition))}),0)},M=function(){t.nextTick((function(){var e,t,n,r,o;g.value=(e=b(),t=e.navsWrap,n=e.navsContainer,r=e.rightOperations,o=e.toRightBtn,Zg(t)-Zg(n)+Zg(r)-Zg(o))}))};t.watch([function(){return e.placement},function(){return e.panels}],M),t.watch([function(){return e.scrollPosition}],I),function(e,n){xi("resize",e);var r=null;t.onMounted((function(){window.ResizeObserver&&n&&(r=new window.ResizeObserver(e)).observe(n)})),t.onBeforeUnmount((function(){var e;null===(e=r)||void 0===e||e.disconnect()}))}(po(M),d.value);var A=function(t){var n;null===(n=e.onAdd)||void 0===n||n.call(e,{e:t})},B=function(t){var n=t.e,r=t.value,o=t.index;e.onRemove({e:n,value:r,index:o})},L=function(t){null!=t&&t.$el&&(null==t?void 0:t.value)===e.value&&h.value!==t.$el&&(h.value=t.$el,I())},R=function(e){var n,r=null,o=[],a=function(e){var t=e.target;n=t,t.style.opacity="0.5"},l=function(e){e.target.style.opacity=""},i=function(e){e.preventDefault()},u=function(e){var t=Ol(e.target,r.children);t&&t!==n&&t.draggable&&(t.firstChild.style.outline="1px dashed #0052d9",o.includes(t)||o.push(t))},c=function(e){for(var t=e.target,n=0,r=o;nl&&(o=r.children[i+1]);var u="card"===e.theme?l:l-1,c="card"===e.theme?i:i-1;null===(a=e.onDragSort)||void 0===a||a.call(e,{currentIndex:u,current:e.panels[u].value,targetIndex:c,target:e.panels[c].value})}};return t.onUnmounted((function(){r&&(r.removeEventListener("dragstart",a),r.removeEventListener("dragend",l),r.removeEventListener("dragover",i),r.removeEventListener("dragenter",u),document.removeEventListener("dragleave",c),document.removeEventListener("mousemove",c),r.removeEventListener("drop",s))})),{setNavsWrap:function(e){(r=e).addEventListener("dragstart",a,!1),r.addEventListener("dragend",l,!1),r.addEventListener("dragover",i,!1),r.addEventListener("dragenter",u,!1),document.addEventListener("dragleave",c,!1),document.addEventListener("mousemove",c,!1),r.addEventListener("drop",s,!1)}}}(e),z=R.setNavsWrap;t.onMounted((function(){z(v.value),M(),I()}));var W=function(){return e.panels.map((function(n,r){var o,a;a=null!=n&&null!==(o=n.children)&&void 0!==o&&o.label?n.children.label():H(n.label)?n.label(t.h):n.label||"\u9009\u9879\u5361".concat(r+1);var l=e.dragSort;return l&&!1===n.draggable&&(l=n.draggable),t.createVNode(qg,{ref:L,draggable:l,key:n.value,index:r,theme:e.theme,size:e.size,placement:e.placement,label:a,active:n.value===e.value,disabled:e.disabled||n.disabled,removable:n.removable,value:n.value,onClick:function(t){return function(t,n){var r=n.value;if(n.disabled||e.value===r)return!1;e.onChange(r)}(0,n)},onRemove:B},null)}))};return function(){return t.createVNode("div",{ref:d,class:["".concat(n.value,"__nav")],style:P.value},[[t.createVNode("div",{ref:f,class:["".concat(n.value,"__operations"),"".concat(n.value,"__operations--left")]},[t.createVNode(t.Transition,{name:"fade",mode:"out-in",appear:!0},{default:function(){return[O.value?t.createVNode("div",{class:j.value,onClick:function(){return F("prev")}},[t.createVNode(o,null,null)]):null]}})]),t.createVNode("div",{ref:p,class:["".concat(n.value,"__operations"),"".concat(n.value,"__operations--right")]},[t.createVNode(t.Transition,{name:"fade",mode:"out-in",appear:!0},{default:function(){return[C.value?t.createVNode("div",{ref:m,class:k.value,onClick:function(){return F("next")}},[t.createVNode(a,null,null)]):null]}}),e.addable?t.createVNode("div",{class:N.value,onClick:A},[t.createVNode(l,null,null)]):null,y.value&&e.action])],(r=W(),t.createVNode("div",{class:_.value},[t.createVNode("div",{class:V.value,onWheel:T},[t.createVNode("div",{ref:v,class:D.value,style:x.value},["card"!==e.theme&&t.createVNode(Xg,{placement:e.placement,value:e.value,navs:r},null),r])])]))]);var r}}}),ey=t.defineComponent({name:"TTabs",props:$g,setup:function(e){var n=fl("tabs"),r=fl(),o=el(),a=t.toRefs(e),l=Ra(Mi(a.value,a.modelValue,e.defaultValue||"",e.onChange),2),i=l[0],u=l[1];t.provide("tabs",{value:i});var c=function(t){var n;null===(n=e.onAdd)||void 0===n||n.call(e,{e:t.e})},d=function(e){u(e)},v=function(t){var n,r=t.e,o=t.value,a=t.index;null===(n=e.onRemove)||void 0===n||n.call(e,{value:o,index:a,e:r})},f=function(){var e=o("default");if(!e)return[];var t=function(e){return e.map((function(e){return e.children&&S(e.children)?t(e.children):e})).flat().filter((function(e){return"TTabPanel"===e.type.name}))};return t(e)},p=function(){var n,a=(null!==(n=e.list)&&void 0!==n&&n.length?e.list:f())||[],l=o("action"),u=a.map((function(e){var t=e;return e.props&&Object.keys(e.props).forEach((function(n){t[n]=e.props[n]})),t})),p={theme:e.theme,value:i.value,size:e.size,disabled:e.disabled,placement:e.placement,scrollPosition:e.scrollPosition,addable:e.addable,panels:u,dragSort:e.dragSort,action:l};return t.createVNode("div",{class:s(s({},"".concat(r.value,"-tabs__header"),!0),"".concat(r.value,"-is-").concat(e.placement),!0)},[t.createVNode(Qg,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(Yg,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()]])}}}),ty=iu(ey),ny=iu(Yg),ry={content:{type:[String,Function]},default:{type:[String,Function]},disabled:Boolean,icon:{type:Function},popupProps:{type:Object},title:{type:[String,Function]},value:{type:[String,Number]}},oy=t.defineComponent({name:"TFakeArrow",props:{isActive:{type:Boolean},overlayClassName:{type:[String,Object,Array]},overlayStyle:{type:Object||String}},setup:function(e){var n=fl("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 ay(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){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 ly=t.defineComponent({name:"TSubmenu",props:ry,setup:function(e,n){var r=n.attrs,o=n.slots,a=fl(),l=el(),u=nl(),c=t.getCurrentInstance(),d=t.inject("TdMenu"),v=t.toRefs(e).value,f=d.theme,p=d.activeValues,m=d.expandValues,h=d.isHead,g=d.open,y=t.inject("TdSubmenu",{}),b=y.setSubPopup,w=y.closeParentPopup,O=t.computed((function(){return r.expandType||d.mode.value})),C=t.ref([]),x=t.computed((function(){return p.value.indexOf(e.value)>-1})),P=t.ref(!1),S=t.ref(!1),j=t.computed((function(){return"light"===f.value?"#E7E7E7":"#383838"})),k=t.computed((function(){var t;return"popup"===O.value?P.value:!!m&&(null===(t=m.value)||void 0===t?void 0:t.includes(e.value))})),N=t.ref(!1),_=t.ref(),V=t.ref(),D=t.ref(),E=fl("slide-down");Ti(D,j);var F=t.computed((function(){return["".concat(a.value,"-submenu"),s(s({},"".concat(a.value,"-is-disabled"),e.disabled),"".concat(a.value,"-is-opened"),k.value)]})),T=t.computed((function(){var t;return["".concat(a.value,"-menu__popup"),"".concat(a.value,"-is-").concat(h?"horizontal":"vertical"),s({},"".concat(a.value,"-is-opened"),P.value),null===(t=e.popupProps)||void 0===t?void 0:t.overlayInnerClassName]})),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);S.value||t||(P.value=!1)}),0)},U=function(e){var t=e.toElement,n=e.relatedTarget,r=t||n;if(r!==V.value){for(var o=function(e){return e===D.value};null!==r&&r!==document&&!o(r);)r=r.parentNode;S.value=!1,o(r)||(P.value=!1),null==w||w(e)}},Y=function(){S.value=!0},$=function(){e.disabled||g(e.value)},Z=function(n){var r,o="right-top";!N.value&&h&&(o="bottom-left");var l=t.createVNode("div",{ref:_,class:["".concat(a.value,"-menu__spacer"),"".concat(a.value,"-menu__spacer--").concat(!N.value&&h?"top":"left")],onMouseenter:Y,onMouseleave:U},[t.createVNode("ul",{class:"".concat(a.value,"-menu__popup-wrapper")},[u("default","content")])]),c={content:function(){return l}},d=t.createVNode(qh,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(oy,{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(oy,{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(oy,{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 iy(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){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 uy=t.defineComponent({name:"THeadMenu",props:Kg,setup:function(e,n){var r,o,a,l,u=fl(),c=t.getCurrentInstance().proxy;t.watchEffect((function(){n.slots.options&&jl("TMenu","`options` slot is going to be deprecated, please use `operations` for slot instead.")}));var d=t.toRefs(e),v=d.value,f=d.modelValue,p=d.expanded,m=Ra(Mi(v,f,e.defaultValue,e.onChange),2),h=m[0],g=m[1],y=Ra(ml(p,e.defaultExpanded,e.onExpand,"expanded"),2),b=y[0],w=y[1],O=t.ref([]),C=t.computed((function(){return e.theme})),x=t.computed((function(){return["".concat(u.value,"-menu"),"".concat(u.value,"-head-menu"),"".concat(u.value,"-menu--").concat(e.theme)]})),P=t.ref(e.expandType),j=t.reactive([]),k=new Rg({isMutex:!0,expandValues:b.value});t.provide("TdMenu",{mode:P,theme:C,vMenu:k,isHead:!0,expandValues:b,activeValue:h,activeValues:O,select:function(e){g(e)},open:function(e,t){var n=i(b.value),r=n.indexOf(e);"popup"===P.value?"add"===t?-1===r&&n.push(e):"remove"===t&&n.splice(r,1):"normal"===P.value&&void 0!==e&&(n.splice(0,1),-1===r&&n.push(e)),w(n)}});var N=function(e){g(e),V(e)},_=function(e){var t=k.getChild(e);j.length=0,j.push.apply(j,i(t))};t.watch(b,(function(e){"normal"===P.value&&_(e[0])}));t.watch(h,(function(e){O.value=k.select(e)})),t.watch((function(){return e.expandType}),(function(e){P.value=e})),t.onMounted((function(){var e;O.value=k.select(h.value),(null===(e=b.value)||void 0===e?void 0:e.length)>0&&_(b.value[0])}));var V=function(e){var t,n=j.find((function(t){return t.value===e}));null===(t=n.onClick)||void 0===t||t.call(n,{value:e});var r=n.to,o=n.href,a=n.replace;o&&(window.location.href=n.href);var l=n.router||c.$router;r&&l&&(a?l.replace(r):l.push(r))},D=t.ref(),E=t.ref(),F=t.ref(),T=t.ref(),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=Ui(t,c);if(E(s))return s.characters}}}}function Sy(e,t){return"number"===t?e||0===e?Number(e):void 0:e}function jy(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=gl(),v=Di(),f=Ra(Mi(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=Py(t.computed((function(){return{value:[void 0,null].includes(p.value)?void 0:String(p.value),status:e.status,maxlength:Number(e.maxlength),maxcharacter:e.maxcharacter,allowInputOverMax:e.allowInputOverMax,onValidate:e.onValidate}}))),O=w.limitNumber,C=w.getValueByLimitNumber,x=w.tStatus,P=t.computed((function(){return(p.value&&!d.value&&e.clearable&&!v.value||e.showClearIconOnEmpty)&&h.value})),S=function(){var e;g.value=!0,null===(e=b.value)||void 0===e||e.focus()},j=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=b.value;if(t){var n=String(e);t.value&&t.value!==n&&(t.value=n)}},k=function(n){var r,o=n.target.value;"number"!==e.type&&"string"==typeof p.value&&o.length>(null===(r=p.value)||void 0===r?void 0:r.length)&&(o=C(o)),m(Sy(o,e.type),{e:n,trigger:"input"}),t.nextTick((function(){"number"===e.type&&/\.(\d+)?0$/.test(o)?j(o):j(p.value)}))},N=t.inject(xy,void 0);return t.watch((function(){return e.autofocus}),(function(e){!0===e&&t.nextTick((function(){var e;null===(e=b.value)||void 0===e||e.focus()}))}),{immediate:!0}),t.watch(p,(function(t,n){var r="number"===e.type;void 0===n&&e.format&&"number"!=typeof t&&!r?l.value=e.format(t):l.value=t;var o="number"==typeof t?t:C(t);o===t||r||m(o,{trigger:"initial"})}),{immediate:!0}),t.watch((function(){return e.type}),(function(e){y.value=e}),{immediate:!0}),n({inputRef:b,focus:S,blur:function(){var e;g.value=!1,null===(e=b.value)||void 0===e||e.blur()}}),{isHover:h,focused:g,renderType:y,showClear:P,inputRef:b,clearIconRef:c,inputValue:l,isComposition:i,compositionValue:u,limitNumber:O,tStatus:x,emitFocus:function(t){var n;h.value&&g.value||(l.value=p.value,e.disabled||(g.value=!0,null===(n=e.onFocus)||void 0===n||n.call(e,p.value,{e:t})))},formatAndEmitBlur:function(t){var n;(function(){var e,t=s.value;if(!(t&&t.tagName&&null!==(e=c.value)&&void 0!==e&&e.$el&&["path","svg"].includes(t.tagName)))return!1;for(;t;){var n;if((null===(n=c.value)||void 0===n?void 0:n.$el)===t)return!0;t=t.parentNode}return!1})()?S():(e.format&&(l.value="number"==typeof p.value||"number"===e.type?p.value:e.format(p.value)),g.value=!1,i.value&&(i.value=!1,u.value=""),null===(n=e.onBlur)||void 0===n||n.call(e,p.value,{e:t}),null==N||N.handleBlur())},onHandleCompositionend:function(t){var n;i.value=!1,u.value="",k(t),null===(n=e.onCompositionend)||void 0===n||n.call(e,String(p.value),{e:t})},onHandleCompositionstart:function(t){var n;i.value=!0;var r=t.currentTarget.value;u.value=r,null===(n=e.onCompositionstart)||void 0===n||n.call(e,String(p.value),{e:t})},onRootClick:function(t){var n,r;null===(n=b.value)||void 0===n||n.focus(),null===(r=e.onClick)||void 0===r||r.call(e,{e:t})},emitPassword:function(){if(!d.value){var e="password"===y.value?"text":"password";y.value=e}},handleInput:function(e){var t=e.inputType&&"insertCompositionText"===e.inputType,n=e.currentTarget.value;t||i.value?u.value=n:k(e)},emitClear:function(t){var n,r=t.e,o="number"===e.type?void 0:"";m(o,{e:r,trigger:"clear"}),null===(n=e.onClear)||void 0===n||n.call(e,{e:r})},onClearIconMousedown:function(e){s.value=e.target},innerValue:p}}function ky(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)};Ei(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 Ny=["isHover","tStatus","inputRef","renderType","showClear","focused","inputValue","isComposition","compositionValue","innerValue","limitNumber"];function _y(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Vy(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 Ly(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return-1!==e.indexOf(".")?(kl("InputNumber","num is not a integer number."),e):!e||"0"===e&&t?"":"0"===e?e:(t?e.replace(/0+$/,""):e.replace(/^0+/,""))||"0"}function Ry(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=Ly(e,n),o=Ly(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 zy(e,t){var n=Ra(e.split("."),2),r=n[0],o=void 0===r?"0":r,a=n[1],l=void 0===a?"0":a,i=Ra(t.split("."),2),u=i[0],c=void 0===u?"0":u,s=i[1],d=void 0===s?"0":s,v=Ry(o,c);if("0"===l&&"0"===d)return v;var f=Ly(l,!0),p=Ly(d,!0),m=Ry(f,p,!0),h=m.length;return h>f.length&&h>p.length?[Ly(Ry(v,"1")),Ly(m.slice(1),!0)].filter((function(e){return e})).join("."):[Ly(v),Ly(m,!0)].filter((function(e){return e})).join(".")}function Hy(e,t){var n=Ly(e),r=Ly(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 Wy(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 Ky(e){var t=Ra(e.split("e"),2),n=t[0],r=t[1];if(!r)return e;var o=Ra(e.split("."),2),a=o[0],l=o[1],i=void 0===l?"":l,u=Number(r),c=Ra(i.split("e"),1)[0];if(u>c.length){var s=Ay(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 Uy(e){return[-1/0,1/0].includes(Number(e))}function Yy(e){return Number(e)Number.MIN_SAFE_INTEGER}function $y(e,t,n){var r=Yy(e)&&Yy(t)&&!n,o=Uy(e)||Uy(t);return r||o?Number(e)===Number(t)?0:Number(e)>Number(t)?1:-1:function(e,t){var n=Ra(Ky(e).split("."),2),r=n[0],o=n[1],a=Ra(Ky(t).split("."),2),l=a[0],i=a[1],u=Hy(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?Wy(o,i):u}(String(e),String(t))}function Zy(e,t,n){if(e===t)return"0";for(var r=n||{},o=r.decimal,a=r.stayZero,l=Ly(e),i=Ly(t),u=Hy(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+/,"")),Ly(u?y:"-".concat(y))}function qy(e,t){if(e===t)return"0";var n=$y(e,t,!0)>0,r=n?t:e,o=Ra((n?e:t).split("."),2),a=o[0],l=o[1],i=void 0===l?"0":l,u=Ra(r.split("."),2),c=u[0],s=u[1],d=void 0===s?"0":s,v=Zy(a,c);if("0"===i&&"0"===d)return n?v:"-".concat(v);var f="",p=i;i.length=0?f=Zy(p,d,{decimal:!0}):(i.length2&&void 0!==arguments[2])||arguments[2])return e.toFixed(t);var n=Ra(e.toString().split("."),2),r=n[0],o=n[1];if(0===t)return r;if(o){var a=o.slice(0,t);return o.length1&&void 0!==arguments[1]?arguments[1]:0,r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(Number.isNaN(Number(e)))return"";if(!r)return function(e,t){var n;return E(t)?Xy(e,t.places,null===(n=t.enableRound)||void 0===n||n):Xy(e,t,!0)}(Number(e),n);var o=E(n)?n.places:n,a=!E(n)||(null===(t=n.enableRound)||void 0===t||t);if(!Do(e))return String(e);var l=Ra(e.split("."),2),i=l[0],u=l[1];if(!u)return o>0&&a?[e,Ay(o)].join("."):e;if(0===o)return a&&Number(u[0])>=5?zy(i,"1"):i;var c=u.slice(0,o);if(u.length=5;c=f?zy(c,"1"):c,d&&f&&d+c.length>=o&&(c="".concat(Ay(o-c.length)).concat(c)),v&&c.length>o&&(i=(Number(i)+1).toString(),c=Ay(o))}return[i,c].join(".")}function Jy(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 Qy(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 eb(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 kl("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 qy(t,e.slice(1));if(n&&r){var o=zy(t.slice(1),e.slice(1));return"-".concat(o)}return!n&&r?qy(e,t.slice(1)):zy(e,t)}(String(r),String(s)):(u=Number(r||0),c=Number(n),i=u<0&&c>0?Qy(c,Math.abs(u)):u<0&&c<0?-1*Jy(Math.abs(u),Math.abs(c)):u>0&&c<0?Qy(u,Math.abs(c)):Jy(u,c)):"reduce"===t&&(i=l&&Do(r)?function(e,t){var n="-"===e[0],r="-"===t[0];if(n&&!r){var o=zy(e.slice(1),t);return"-".concat(o)}return n&&r?qy(t.slice(1),e.slice(1)):!n&&r?zy(e,t.slice(1)):qy(e,t)}(String(r),String(s)):function(e,t){return e<0&&t>0?-1*Jy(Math.abs(e),t):e<0&&t<0?Qy(Math.abs(t),Math.abs(e)):e>0&&t<0?Jy(e,Math.abs(t)):Qy(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))):$y(n,e,a)<0?n:$y(r,e,a)>0?r:e:o}}(i,{max:o,min:a,lastValue:r,largeNumber:l})),l?i:Number(i)}function tb(e){var t=e.largeNumber,n=e.value,r=e.max,o=e.min;if(!Uo(n)&&!Uo(t))return t&&Ho(n)&&Sl("InputNumber","largeNumber value must be a string."),$y(n,r,t)>0?"exceed-maximum":$y(n,o,t)<0?"below-minimum":void 0}var nb=["-",".","e","E","+"];function rb(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=Ky(a)),void 0!==n&&(a=Gy(a,n,r)),r||o?a:parseFloat(a)}}function ob(e){var n=pl(),r=n.classPrefix,o=n.SIZE,a=n.STATUS,l=t.toRefs(e),i=l.value,u=l.modelValue,c=l.max,d=l.min,v=Ra(Mi(i,u,e.defaultValue,e.onChange),2),f=v[0],p=v[1],m=t.ref(),h=t.ref(""),g=gl(),y=Di(),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)?$y(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)?$y(e,t,n)<0:e1)return!1;if((null===(r=e.match(/e/g))||void 0===r?void 0:r.length)>1)return!1;var o=e.slice(1),a=o.match(/(\+|-)/g);return!(a&&(!/e(\+|-)/i.test(o)||a.length>1)||!(t&&By(e)||!Number.isNaN(Number(e))||nb.includes(e.slice(-1)))||/e/i.test(e)&&(!/\de/i.test(e)||/e\./.test(e)))}(a,e.largeNumber)){var l=a;if(void 0!==e.decimalPlaces&&""!==a&&a.includes(".")){var i=a.split("."),u="number"==typeof e.decimalPlaces?e.decimalPlaces:e.decimalPlaces.places;i[1]&&i[1].length>u&&(l="".concat(i[0],".").concat(i[1].substring(0,u)))}if(h.value=l,e.largeNumber)p(l,{type:"input",e:o});else{var c=""===l?void 0:Number(l);(function(e,t){return parseFloat(e)!==t&&!Number.isNaN(Number(e))})(l,Number(f.value))&&p(c,{type:"input",e:o})}}},isReadonly:y}}function ab(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){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 lb=t.defineComponent({name:"TInputNumber",props:My,setup:function(e,n){var r=xl({AddIcon:_u,RemoveIcon:yv,ChevronDownIcon:Sc,ChevronUpIcon:ts}),o=r.AddIcon,a=r.RemoveIcon,l=r.ChevronDownIcon,i=r.ChevronUpIcon,u=ob(e),c=u.inputRef;return n.expose(function(e){for(var t=1;t1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}if(e=Fb(e,360),t=Fb(t,100),n=Fb(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=Eb(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 pb(e,t,n){e=Fb(e,255),t=Fb(t,255),n=Fb(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(fb(r));return a}function _b(e,t){t=t||6;for(var n=fb(e).toHsv(),r=n.h,o=n.s,a=n.v,l=[],i=1/t;t--;)l.push(fb({h:r,s:o,v:a})),a=(a+i)%1;return l}fb.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=Eb(e),this._roundA=Math.round(100*this._a)/100,this},toHsv:function(){var e=mb(this._r,this._g,this._b);return{h:360*e.h,s:e.s,v:e.v,a:this._a}},toHsvString:function(){var e=mb(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=pb(this._r,this._g,this._b);return{h:360*e.h,s:e.s,l:e.l,a:this._a}},toHslString:function(){var e=pb(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 hb(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=[Mb(Math.round(e).toString(16)),Mb(Math.round(t).toString(16)),Mb(Math.round(n).toString(16)),Mb(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*Fb(this._r,255))+"%",g:Math.round(100*Fb(this._g,255))+"%",b:Math.round(100*Fb(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+Math.round(100*Fb(this._r,255))+"%, "+Math.round(100*Fb(this._g,255))+"%, "+Math.round(100*Fb(this._b,255))+"%)":"rgba("+Math.round(100*Fb(this._r,255))+"%, "+Math.round(100*Fb(this._g,255))+"%, "+Math.round(100*Fb(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(Db[hb(this._r,this._g,this._b,!0)]||!1)},toFilter:function(e){var t="#"+gb(this._r,this._g,this._b,this._a),n=t,r=this._gradientType?"GradientType = 1, ":"";if(e){var o=fb(e);n="#"+gb(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 fb(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(Ob,arguments)},brighten:function(){return this._applyModification(Cb,arguments)},darken:function(){return this._applyModification(xb,arguments)},desaturate:function(){return this._applyModification(yb,arguments)},saturate:function(){return this._applyModification(bb,arguments)},greyscale:function(){return this._applyModification(wb,arguments)},spin:function(){return this._applyModification(Pb,arguments)},_applyCombination:function(e,t){return e.apply(null,[this].concat([].slice.call(t)))},analogous:function(){return this._applyCombination(Nb,arguments)},complement:function(){return this._applyCombination(Sb,arguments)},monochromatic:function(){return this._applyCombination(_b,arguments)},splitcomplement:function(){return this._applyCombination(kb,arguments)},triad:function(){return this._applyCombination(jb,[3])},tetrad:function(){return this._applyCombination(jb,[4])}},fb.fromRatio=function(e,t){if("object"==sb(e)){var n={};for(var r in e)e.hasOwnProperty(r)&&(n[r]="a"===r?e[r]:Ab(e[r]));e=n}return fb(e,t)},fb.equals=function(e,t){return!(!e||!t)&&fb(e).toRgbString()==fb(t).toRgbString()},fb.random=function(){return fb.fromRatio({r:Math.random(),g:Math.random(),b:Math.random()})},fb.mix=function(e,t,n){n=0===n?0:n||50;var r=fb(e).toRgb(),o=fb(t).toRgb(),a=n/100;return fb({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})},fb.readability=function(e,t){var n=fb(e),r=fb(t);return(Math.max(n.getLuminance(),r.getLuminance())+.05)/(Math.min(n.getLuminance(),r.getLuminance())+.05)},fb.isReadable=function(e,t,n){var r,o,a=fb.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},fb.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=fb(t[c]));return fb.isReadable(e,i,{level:a,size:l})||!o?i:(n.includeFallbackColors=!1,fb.mostReadable(e,["#fff","#000"],n))};var Vb=fb.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"},Db=fb.hexNames=function(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[e[n]]=n);return t}(Vb);function Eb(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function Fb(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 Tb(e){return Math.min(1,Math.max(0,e))}function Ib(e){return parseInt(e,16)}function Mb(e){return 1==e.length?"0"+e:""+e}function Ab(e){return e<=1&&(e=100*e+"%"),e}function Bb(e){return Math.round(255*parseFloat(e)).toString(16)}function Lb(e){return Ib(e)/255}var Rb,zb,Hb,Wb=(zb="[\\s|\\(]+("+(Rb="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)")+")[,|\\s]+("+Rb+")[,|\\s]+("+Rb+")\\s*\\)?",Hb="[\\s|\\(]+("+Rb+")[,|\\s]+("+Rb+")[,|\\s]+("+Rb+")[,|\\s]+("+Rb+")\\s*\\)?",{CSS_UNIT:new RegExp(Rb),rgb:new RegExp("rgb"+zb),rgba:new RegExp("rgba"+Hb),hsl:new RegExp("hsl"+zb),hsla:new RegExp("hsla"+Hb),hsv:new RegExp("hsv"+zb),hsva:new RegExp("hsva"+Hb),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 Kb(e){return!!Wb.CSS_UNIT.exec(e)}var Ub={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},Yb=t.defineComponent({name:"TTag",props:Ub,setup:function(e){var n=dl("tag").globalConfig,r=fl("tag"),o=xl({CloseIcon:ds}).CloseIcon,a=el(),l=nl(),i=pl().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:fb(t).getLuminance()>.5?"black":"white"};if("outline"!==n&&"light-outline"!==n||(i.borderColor=t),"outline"!==n){i.backgroundColor="dark"===n?t:(r=fb(t).toRgb(),o=r.r,a=r.g,l=r.b,"rgba(".concat(o,", ").concat(a,", ").concat(l,", 0.1)"))}return"dark"!==n&&(i.color=t),i},p=function(t){var n;e.disabled||null===(n=e.onClick)||void 0===n||n.call(e,{e:t})};return function(){var i=function(){if(!e.closable)return null;var a="".concat(r.value,"__icon-close");return n.value.closeIcon?t.h(n.value.closeIcon(t.h),{class:a}):t.createVNode(o,{onClick:function(t){var n,r=t.e;r&&r.stopPropagation(),null===(n=e.onClose)||void 0===n||n.call(e,{e:r})},class:a},null)}(),s=l("default","content"),f=a("icon"),m=function(e){var t=u.props||{};return Reflect.has(t,"title")?t.title||void 0:e||void 0}(Do(s)?s:"");return t.createVNode("div",{class:c.value,style:d.value,onClick:p},[f,t.createVNode("span",{class:e.maxWidth?"".concat(r.value,"--text"):void 0,style:v.value,title:m},[s]),!e.disabled&&i])}}}),$b={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},Zb=/^ArrowDown$/i,qb=/^ArrowUp$/i,Xb=/^ArrowLeft$/i,Gb=/^ArrowRight$/i,Jb=/^Escape$/i,Qb=/^Space$/i,ew=/^Enter$/i,tw=/^(Shift|ShiftLeft|ShiftRight)$/i,nw=/^KeyC$/i,rw=/^(KeyA|KeyL)$/i,ow=/^(Enter|Space)$/i;function aw(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function lw(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}}(hw(hw({},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=el(),r=fl(),o=t.toRefs(e),a=o.value,l=o.modelValue,u=o.onRemove,c=o.max,s=o.minCollapsedNum,d=o.size,v=o.tagProps,f=o.getDragProps,p=Ra(Mi(a,l,e.defaultValue||[],e.onChange),2),m=p[0],h=p[1],g=t.computed((function(){return m.value||[]})),y=t.ref(),b=gl(),w=Di(),O=function(e){var t,n=i(g.value),r=Ra(n.splice(e.index,1),1)[0];h(n,pw(pw({trigger:"tag-remove"},e),{},{item:r})),null===(t=u.value)||void 0===t||t.call(u,pw(pw({},e),{},{item:r,trigger:"tag-remove",value:n}))};return{tagValue:g,clearAll:function(e){h([],{trigger:"clear",e:e.e})},onClose:O,onInnerEnter:function(t,n){var r,o=t?String(t).trim():"",a=c&&g.value.length>=c.value,l=g.value;!a&&o&&(l=g.value.concat(String(o)),h(l,{trigger:"enter",index:l.length-1,item:o,e:n.e})),null==e||null===(r=e.onEnter)||void 0===r||r.call(e,l,pw(pw({},n),{},{inputValue:t}))},onInputBackspaceKeyUp:function(e){g.value.length&&(y.value=e)},onInputBackspaceKeyDown:function(e,t){var n=t.e;if(g.value.length&&"Process"!==n.key&&!w.value){var r=/(Backspace|NumpadDelete)/i.test(n.code)||/(Backspace|NumpadDelete)/i.test(n.key);if(!e&&r){var o,a=g.value.length-1,l=g.value[a],i="backspace",c=g.value.slice(0,-1);h(c,{e:n,index:a,item:l,trigger:i}),null===(o=u.value)||void 0===o||o.call(u,{e:n,index:a,item:l,trigger:i,value:c})}y.value=e}},renderLabel:function(e){var o=e.displayNode,a=e.label,l=s.value?g.value.slice(0,s.value):g.value,i=o?[o]:l.map((function(e,r){var o,a=n("tag",{params:{value:e}});return t.createVNode(sw,t.mergeProps({key:"".concat(e).concat(r),size:d.value,disabled:b.value,onClose:function(e){return O({e:e.e,index:r})},closable:!w.value&&!b.value},null===(o=f.value)||void 0===o?void 0:o.call(f,r,e),v.value),{default:function(){return[null!=a?a:e]}})}))||[];if([null,void 0,""].includes(a)||i.unshift(t.createVNode("div",{class:"".concat(r.value,"-tag-input__prefix"),key:"label"},[a])),l.length!==g.value.length){var u=g.value.length-l.length,c=n("collapsedItems",{params:{value:g.value,count:g.value.length-s.value,collapsedTags:g.value.slice(s.value,g.value.length),collapsedSelectedItems:g.value.slice(s.value,g.value.length),onClose:O}});i.push(null!=c?c:t.createVNode(sw,t.mergeProps({key:"more",size:d.value},v.value),{default:function(){return["+",u]}}))}return i}}}(t.reactive(hw(hw({},t.toRefs(e)),{},{getDragProps:R}))),X=q.tagValue,G=q.onInnerEnter,J=q.onInputBackspaceKeyUp,Q=q.onInputBackspaceKeyDown,ee=q.clearAll,te=q.renderLabel,ne=q.onClose,re=t.computed((function(){var t=!(S(X.value)&&X.value.length);return[l.value,s(s(s(s({},c.value,"break-line"===_.value),"".concat(A.value,"-is-empty"),t),"".concat(A.value,"-tag-input--with-tag"),!t),"".concat(A.value,"-tag-input--drag-sort"),e.dragSort&&!f.value&&!v.value)]})),oe=t.computed((function(){var e;return null!==(e=X.value)&&void 0!==e&&e.length?"":D.value})),ae=t.computed((function(){var e;return Boolean(!f.value&&!v.value&&V.value&&F.value&&((null===(e=X.value)||void 0===e?void 0:e.length)||j.value))})),le=function(e,n){var r,o;null===(r=n.e)||void 0===r||null===(o=r.preventDefault)||void 0===o||o.call(r),k("",{e:n.e,trigger:"enter"}),!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,hw(hw({},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(Ty,t.mergeProps({ref:$,borderless:g.value,readonly:p,showInput:!p||!X.value||!(null!==(n=X.value)&&void 0!==n&&n.length),value:j.value,autoWidth:!0,size:y.value,disabled:v.value,label:function(){return te({displayNode:c,label:s})},class:re.value,tips:b.value,status:w.value,placeholder:oe.value,suffix:O.value,suffixIcon:function(){return a},prefixIcon:function(){return l},keepWrapperWidth:!C.value,onWheel:K,onChange:me,onPaste:x.value,onEnter:le,onKeyup:J,onKeydown:Q,onMouseenter:de,onMouseleave:ve,onFocus:fe,onBlur:pe,onClick:ce,onCompositionstart:ie,onCompositionend:ue},h.value),{suffix:r.suffix})}}}),yw=iu(gw),bw=["tips"];function ww(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ow(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),Pw({width:"".concat(Math.min(o,1e3),"px")},a)},s=function(e,t){var n;return Pw({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 jw=["tips"];function kw(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Nw(e){for(var t=1;t=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:S.value},a=t.createVNode(qh,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},Fw(Fw({onVisibleChange:j,onOverlayClick:R},b.value),{},{overlayInnerStyle:P.value})),Fw({default:function(){return[m.value?M({commonInputProps:_.value,onInnerClear:V,popupVisible:o.visible,allowInput:O.value}):D(o.visible)]}},Fw(Fw({},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])])}}}),Iw=iu(Tw),Mw={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]}},Aw={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 Lw(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Rw(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})),S=function(){O=Math.min(w+h+2*c,n.value.length),v.visibleData=n.value.slice(w,O)},j=function(){var e,o=m.get(y);if(o){var a=null==o||null===(e=o.getBoundingClientRect())||void 0===e?void 0:e.height;v.cachedScrollY[y]=r.value.scrollTop-b,v.cachedHeight[y]=a;for(var l=y+1;l<=(null===(i=v.visibleData[v.visibleData.length-1])||void 0===i?void 0:i.$index);l++){var i,u=m.get(l),c=((null==u?void 0:u.getBoundingClientRect())||{}).height;v.cachedHeight[l]=c;var s=v.cachedScrollY[l-1]+v.cachedHeight[l-1];v.cachedScrollY.splice(l,1,s)}for(var d=y-1;d>=(null===(f=v.visibleData[0])||void 0===f?void 0:f.$index);d--){var f,p=m.get(d),h=((null==p?void 0:p.getBoundingClientRect())||{}).height;v.cachedHeight[d]=h;var C=v.cachedScrollY[d+1]-v.cachedHeight[d];v.cachedScrollY.splice(d,1,C)}if(v.cachedScrollY[0]>0){for(var x=v.cachedScrollY[0],P=Math.min(O,n.value.length),S=0;S=w;o--)o===O-1?v.cachedScrollY.splice(o,1,n.value-v.cachedHeight[o]):v.cachedScrollY.splice(o,1,v.cachedScrollY[o+1]-v.cachedHeight[o])}))}};!a&&t.watch(p,j,{flush:"post"}),t.watch(n,(function(){C(),v.visibleData=[],v.cachedScrollY=[],v.cachedHeight=[],g=0,y=0,b=0,w=0,m.clear(),n.value.length<=d?v.visibleData=n.value:S(),r.value&&(r.value.scrollTop=0)}));var k=!1,N=function(){k&&(h=Math.ceil(r.value.offsetHeight/i),S())};return t.onMounted((function(){if(window&&window.IntersectionObserver){var e=new window.IntersectionObserver((function(t){var n=t[0];(n.isIntersecting||n.intersectionRatio)&&(k=!0,f.value&&N(),e.unobserve(r.value))}));r.value&&e.observe(r.value)}})),Bi(Bi({trs:m,scrollHeight:x},t.toRefs(v)),{},{translateY:P,handleScroll:function(){if(f.value){var e=r.value.scrollTop,t=e-g;g=e;var o=y;if(t+=b){if(t>=0){for(;o(v.cachedHeight[o]||i);)v.cachedHeight[o]||(v.cachedHeight[o]=i),t-=v.cachedHeight[o],o++;o>=n.value.length?(y=n.value.length-1,b=0):(y=o,b=t);var a=r.value;e+a.clientHeight===a.scrollHeight&&(y=n.value.length-h+1),w<=y-c&&(w=Math.min(n.value.length-h,y-c))<0&&(w=0)}else{for(;t<0;)o--,v.cachedHeight[o]||(v.cachedHeight[o]=i),t+=v.cachedHeight[o];o<0?(y=0,b=0):(y=o,b=t),j(),w>y-c&&(w=Math.max(0,y-c))}S()}}},handleRowMounted:function(){f.value&&p.value++},refreshContainer:N,fixedHeight:a,calculateScrollY:j})}({container:e.popupContentRef,data:e.options,fixedHeight:(null===(r=e.scroll)||void 0===r?void 0:r.isFixedRowHeight)||!1,lineHeight:(null===(o=e.scroll)||void 0===o?void 0:o.rowHeight)||28,bufferSize:(null===(a=e.scroll)||void 0===a?void 0:a.bufferSize)||20,threshold:(null===(l=e.scroll)||void 0===l?void 0:l.threshold)||100}):{},c=u.trs,s=void 0===c?null:c,d=u.visibleData,v=void 0===d?null:d,f=u.handleScroll,p=void 0===f?null:f,m=u.scrollHeight,h=void 0===m?null:m,g=u.translateY,y=void 0===g?null:g,b=u.handleRowMounted,w=void 0===b?null:b,O=-1,C=function(e){if(i.value){var t=e.target.scrollTop;Math.abs(O-t)>5?(p(),O=t):O=-1}};t.onMounted((function(){var t;null===(t=e.popupContentRef.value)||void 0===t||t.addEventListener("scroll",C)})),t.onBeforeUnmount((function(){var t;null===(t=e.popupContentRef.value)||void 0===t||t.removeEventListener("scroll",C)}));var x=t.computed((function(){return{position:"absolute",width:"1px",height:"1px",transition:"transform 0.2s",transform:"translate(0, ".concat(h.value,"px)"),"-ms-transform":"translate(0, ".concat(h.value,"px)"),"-moz-transform":"translate(0, ".concat(h.value,"px)"),"-webkit-transform":"translate(0, ".concat(h.value,"px)")}})),P=t.computed((function(){return{transform:"translate(0, ".concat(y.value,"px)"),"-ms-transform":"translate(0, ".concat(y.value,"px)"),"-moz-transform":"translate(0, ".concat(y.value,"px)"),"-webkit-transform":"translate(0, ".concat(y.value,"px)")}}));return{trs:s,scrollHeight:h,translateY:y,visibleData:v,handleRowMounted:w,isVirtual:i,cursorStyle:x,panelStyle:P}};var oO=t.defineComponent({name:"TSelectPanel",props:{inputValue:nO.inputValue,panelTopContent:nO.panelTopContent,panelBottomContent:nO.panelBottomContent,empty:nO.empty,creatable:nO.creatable,loading:nO.loading,loadingText:nO.loadingText,multiple:nO.multiple,filterable:nO.filterable,filter:nO.filter,scroll:nO.scroll,size:nO.size},setup:function(e,n){var r=n.expose,o=fl("select"),a=el(),l=tl(),i=dl("select"),u=i.t,c=i.globalConfig,s=t.inject(Xw),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=rO({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(tO,{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(Qw,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(Qw,{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 aO(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 lO(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)?lO(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 lO(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 dO(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(uO(uO({},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,jt(t,"value")),a,jt(t,"label"))}};t=e.multiple?t.map((function(e){return l(e)})):l(t)}var i;t!==x.value&&(e.multiple&&!e.reserveKeyword&&"check"==n.trigger&&O(""),P(t,fO({selectedOptions:X(t)},n)),e.multiple&&"uncheck"===n.trigger&&n.option&&(null===(i=e.onRemove)||void 0===i||i.call(e,{value:jt(n.option,N.value.value),data:n.option,e:n.e})))},A=Ra(ml(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&&Zw(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=Yw(e);try{for(o.s();!(n=o.n()).done;){var a=n.value,l=Zw(a,t);l&&r.push(l)}}catch(e){o.e(e)}finally{o.f()}return r}(I.value,V):Zw(I.value,V)})),W=t.computed((function(){if(!e.multiple)return fO(fO({},V.value.get(I.value)),{},{value:I.value,label:z.value});var t=S(I.value)?I.value.map((function(e){return V.value.get(e)})):[],n={value:t,onClose:e.multiple?function(e){return Y(e)}:function(){}};return e.minCollapsedNum&&S(I.value)?fO(fO({},n),{},{displayValue:Array.isArray(t)?t.slice(0,e.minCollapsedNum):[]}):n})),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];if(u.splice(t,1),"backspace"===i){for(var s,d=-1,v=t,f=G();v>=0;){var p;if(null===(p=f[v])||void 0===p||!p.disabled){d=v;break}v-=1}if(d<0)return;var m=f[d],h=f.filter((function(e){return e.value!==m.value}));return M(h.map((function(e){return e.value})),{selectedOptions:h,trigger:i,e:a}),void(null===(s=e.onRemove)||void 0===s||s.call(e,{value:m.value,data:m,e:a}))}"clear"!==i&&M(u,{selectedOptions:X(u),trigger:i,e:a}),null===(r=e.onRemove)||void 0===r||r.call(e,{value:c,data:V.value.get(c),e:a})},$=function(){var t;w.value&&(null===(t=e.onCreate)||void 0===t||t.call(e,w.value),B.value||O(""))},Z=t.computed((function(){var e;return null===(e=k.value)||void 0===e?void 0:e.popupRef.getOverlay()})),q=t.computed((function(){return D.value.filter((function(e){return!e.disabled&&!(e["check-all"]||""===e["check-all"])&&!e.checkAll&&T(e)}))})),X=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:I.value;return D.value.filter((function(t){if(!t.checkAll)return S(e)?e.includes(t.value):e===t.value}))},G=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:I.value,t=[];return(S(e)?e:[e]).forEach((function(e){var n=V.value.get(e);n&&t.push(n)})),t},J=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 jt(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"})}},Q=t.computed((function(){return 0!==ae.value&&ae.value===q.value.length})),ee=function(e){var n=e.displayOptions,r=e.optionsList,o=e.innerPopupVisible,a=e.setInnerPopupVisible,l=e.selectPanelRef,i=e.isFilterable,u=e.isRemoteSearch,c=e.getSelectedOptions,s=e.setInnerValue,d=e.onCheckAllChange,v=e.innerValue,f=e.popupContentRef,p=e.multiple,m=e.max,h=e.isCheckAll,g=t.ref(-1),y=t.ref([]),b=t.ref([]),w=fl();return t.watch(o,(function(e){e&&(g.value=-1,b.value=[],y.value=[])})),t.watch(g,(function(e){var t,n=(null===(t=l.value)||void 0===t||null===(t=t.innerRef)||void 0===t||null===(t=t.querySelector(".".concat(w.value,"-select-option")))||void 0===t?void 0:t.clientHeight)*e;f.value.scrollTo({top:n,behavior:"smooth"})})),{hoverIndex:g,handleKeyDown:function(e){var t,f,w=n.value.length,O=g.value;switch(e.code){case"ArrowUp":e.preventDefault(),-1===g.value?O=0:0===g.value||g.value>n.value.length-1?O=w-1:O--,null!==(t=r.value[O])&&void 0!==t&&t.disabled&&O--,g.value=O;break;case"ArrowDown":e.preventDefault(),-1===g.value||g.value>=w-1?O=0:O++,null!==(f=r.value[O])&&void 0!==f&&f.disabled&&O++,g.value=O;break;case"Enter":if(-1===g.value)break;var C=l.value.isVirtual&&i.value&&b.value.length?b.value:u.value?r.value:y.value;if(C.length||(C=r.value),!o.value){a(!0,{e:e});break}if(p){var x;if(-1===g.value)return;if(C[g.value].checkAll)return void d(!h.value);var P=null===(x=C[g.value])||void 0===x?void 0:x.value;if(!P)return;var S=qw(v.value,P);if(m>0&&S.value.length>m)return;var j=c(S.value);s(S.value,{option:j.find((function(e){return e.value==P})),selectedOptions:j,trigger:S.isCheck?"check":"uncheck",e:e}),y.value=[]}else{var k=c(C[g.value].value);s(C[g.value].value,{option:null==k?void 0:k[0],selectedOptions:c(C[g.value].value),trigger:"check",e:e}),a(!1,{e:e})}break;case"Escape":a(!1,{e:e})}},virtualFilteredOptions:b,filteredOptions:y}}({displayOptions:F,optionsList:D,innerPopupVisible:B,setInnerPopupVisible:L,selectPanelRef:j,isFilterable:K,isRemoteSearch:U,getSelectedOptions:X,setInnerValue:M,onCheckAllChange:J,isCheckAll:Q,innerValue:I,popupContentRef:Z,multiple:e.multiple,max:e.max}),te=ee.hoverIndex,ne=ee.virtualFilteredOptions,re=ee.handleKeyDown,oe=ee.filteredOptions,ae=t.computed((function(){var e=q.value.map((function(e){return e.value}));return Io(I.value,e).length})),le=t.computed((function(){return!Q.value&&0!==ae.value})),ie=t.computed((function(){return{max:e.max,multiple:e.multiple,hoverIndex:te.value,selectValue:I.value,reserveKeyword:e.reserveKeyword,handleValueChange:M,handlerInputChange:O,handlePopupVisibleChange:L,handleCreate:$,size:e.size,popupContentRef:Z,indeterminate:le.value,isCheckAll:Q.value,onCheckAllChange:J,getSelectedOptions:X,displayOptions:F.value,emitBlur:de}}));t.provide(Xw,ie);var ue=function(){!e.multiple&&S(x.value)&&P(void 0,{selectedOptions:[],trigger:"default"}),e.multiple&&!S(x.value)&&P([],{selectedOptions:[],trigger:"default"})},ce=po((function(t,n){var r,o=n.e;null===(r=e.onSearch)||void 0===r||r.call(e,"".concat(t),{e:o})}),300),se=function(e,n){e&&!B.value&&L(!0,{e:n.e}),O(e),ce("".concat(e),{e:n.e}),t.nextTick((function(){var e,t;ne.value=null===(e=j.value)||void 0===e?void 0:e.visibleData,oe.value=null===(t=j.value)||void 0===t?void 0:t.displayOptions}))},de=function(t){var n;null===(n=e.onBlur)||void 0===n||n.call(e,{e:t,value:I.value})},ve=function(e,t){L(e,t),e&&"trigger-element-click"===t.trigger&&O("")},fe=function(){var t=xp(Ip.mark((function t(n){var r,o,a;return Ip.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(a=e.popupProps,!e.loading){t.next=1;break}return t.abrupt("return");case 1:null==a||null===(r=a["on-scroll-to-bottom"])||void 0===r||r.call(a,n),null==a||null===(o=a.onScrollToBottom)||void 0===o||o.call(a,n);case 2:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}();t.watch(x,(function(n){ue(),t.nextTick((function(){!function(t){if(e.multiple){var n,r=[],o=sO(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(){ue()}));var pe=function(){return u("valueDisplay",{params:W.value})||function(){var n,r;if(e.multiple){var o=G(I.value);return null===(n=(r=I.value.slice(0,e.minCollapsedNum?e.minCollapsedNum:I.value.length)).map)||void 0===n?void 0:n.call(r,(function(n,r){var a,l,i=o.find((function(e,t){if(e.value===n)return l=t,!0}));return t.createVNode(sw,t.mergeProps({key:r,closable:!(null!=i&&i.disabled||e.disabled||e.readonly),size:e.size},e.tagProps,{onClose:function(t){var n,r,o=t.e;o.stopPropagation(),null===(n=e.tagProps)||void 0===n||null===(r=n.onClose)||void 0===r||r.call(n,{e:o}),Y(l)}}),{default:function(){return[i?null!==(a=i.label)&&void 0!==a?a:null==i?void 0:i.value:n]}})}))}}()};return t.provide("updateScrollTop",(function(e){var n;if(j.value){var r=null===(n=j.value)||void 0===n||null===(n=n.innerRef)||void 0===n?void 0:n.querySelector(".".concat(o.value,"-is-selected"));t.nextTick((function(){if(r&&e){var t=getComputedStyle(r).paddingBottom,n=getComputedStyle(e).marginBottom,o=parseInt(t,10)+parseInt(n,10),a=r.offsetTop-e.offsetTop-(e.clientHeight-r.clientHeight)+o;e.scrollTop=a}}))}})),function(){var n=e.popupProps||{},o=n.overlayClassName,i=Ri(n,cO);return t.createVNode("div",{class:"".concat(c.value,"__wrap")},[t.createVNode(Iw,t.mergeProps({autoWidth:e.autoWidth,readonly:l.value,borderless:e.borderless,multiple:e.multiple,clearable:e.clearable,loading:e.loading,status:e.status,tips:u("tips"),minCollapsedNum:e.minCollapsedNum,autofocus:e.autofocus,suffix:e.suffix,valueDisplayOptions:e.valueDisplayOptions},{ref:k,class:c.value,value:z.value,disabled:a.value,popupVisible:B.value,inputValue:B.value?w.value:"",placeholder:"".concat(R.value),allowInput:K.value,"collapsed-items":e.collapsedItems,inputProps:fO(fO({size:e.size,autofocus:e.autofocus},e.inputProps),{},{onkeydown:re}),tagInputProps:fO({size:e.size},e.tagInputProps),onTagChange:function(e,t){Y(t.index,t)},tagProps:fO({},e.tagProps),popupProps:fO(fO({overlayClassName:["".concat(c.value,"__dropdown"),o]},i),{},{onScrollToBottom:fe}),label:e.label,prefixIcon:e.prefixIcon,suffix:e.suffix,suffixIcon:function(){return e.suffixIcon||r.suffixIcon?u("suffixIcon"):e.showArrow&&t.createVNode(oy,{overlayClassName:"".concat(c.value,"__right-icon"),isActive:B.value},null)},valueDisplay:pe,onPopupVisibleChange:ve,onInputChange:se,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(oO,t.mergeProps({ref:j},xa(e,["size","multiple","empty","loading","loadingText","filterable","creatable","panelTopContent","panelBottomContent","filter","scroll"]),{inputValue:w.value}),r)},collapsedItems:r.collapsedItems})])}}}),mO=iu(pO),hO=iu(Qw),gO=iu(tO),yO={append:{type:[String,Function]},prepend:{type:[String,Function]}},bO=t.defineComponent({name:"TInputAdornment",inheritAttrs:!1,props:yO,setup:function(e,n){var r=n.slots,o=fl("input-adornment"),a=el(),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]}}}),wO=iu(bO),OO={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 CO=["pageCount"],xO=t.defineComponent({name:"TPagination",props:OO,setup:function(e){var n=t.getCurrentInstance().emit,r=t.toRefs(e),o=r.modelValue,a=r.pageSize,l=r.current,i=el(),u=Ra(Mi(l,o,e.defaultCurrent,e.onCurrentChange,"current"),2),c=u[0],d=u[1],v=Ra(ml(a,e.defaultPageSize,e.onPageSizeChange,"pageSize"),2),f=v[0],p=v[1],m=dl("pagination"),h=m.t,g=m.globalConfig,y=fl("pagination"),b=xl({PageFirstIcon:uv,PageLastIcon:fv,ChevronLeftIcon:Ic,ChevronRightIcon:Xc,ChevronLeftDoubleIcon:Vc,ChevronRightDoubleIcon:Uc,EllipsisIcon:Ms}),w=b.PageFirstIcon,O=b.PageLastIcon,C=b.ChevronLeftIcon,x=b.ChevronRightIcon,P=b.ChevronLeftDoubleIcon,S=b.ChevronRightDoubleIcon,j=b.EllipsisIcon,k=function(e,n,r,o){var a=pl(),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"),Ki()<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,_=Ri(k,CO),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(wO,{append:"/ ".concat(N.value," ").concat(h(g.value.page))},{default:function(){return[t.createVNode(ib,{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(mO,t.mergeProps({size:o,value:f,disabled:a,class:_.sizerClass.value,autoWidth:!0,onChange:U,options:R.value},e.selectProps),null),e.showFirstAndLastPageBtn?t.createVNode("div",{class:_.preBtnClass.value,onClick:function(){return W(1)}},[t.createVNode(w,null,null)]):null,e.showPreviousAndNextBtn?t.createVNode("div",{class:_.preBtnClass.value,onClick:function(){return K("prevPage")}},[t.createVNode(C,null,null)]):null,e.showPageNumber&&"default"===e.theme?t.createVNode("ul",{class:_.btnWrapClass.value},[L.value&&z.value&&t.createVNode("li",{class:_.getButtonClass(1),onClick:function(){return W(1)}},[1]),L.value&&F.value&&z.value?t.createVNode("li",{class:_.btnMoreClass.value,onClick:function(){return K("prevMorePage")},onMouseover:function(){return D.value=!0},onMouseout:function(){return D.value=!1}},[D.value?t.createVNode(P,null,null):t.createVNode(j,null,null)]):null,H.value.map((function(e){return t.createVNode("li",{class:_.getButtonClass(e),key:e,onClick:function(){return W(e)}},[e])})),L.value&&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(S,null,null):t.createVNode(j,null,null)]):null,L.value&&z.value?t.createVNode("li",{class:_.getButtonClass(N.value),onClick:function(){return W(N.value)}},[N.value]):null]):null,"simple"===e.theme&&u,e.showPreviousAndNextBtn?t.createVNode("div",{class:_.nextBtnClass.value,onClick:function(){return K("nextPage")}},[t.createVNode(x,null,null)]):null,e.showFirstAndLastPageBtn?t.createVNode("div",{class:_.nextBtnClass.value,onClick:function(){return W(N.value)}},[t.createVNode(O,null,null)]):null,"default"===e.theme&&e.showJumper&&u])}}}),PO={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},SO=t.defineComponent({name:"TPaginationMini",props:PO,setup:function(e){var n=fl("pagination-mini"),r=xl({ChevronLeftIcon:Ic,RoundIcon:Nv,ChevronRightIcon:Xc,ChevronUpIcon:ts,ChevronDownIcon:Sc}),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(fu,{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(fu,{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(fu,{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)])}}}),jO=iu(xO),kO=iu(SO),NO={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},_O={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 DO(e){for(var t=1;tr)return"finish"}return(void 0===t.value?n:t.value)===a.value?"process":"default"},c=Ya(),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 _O&&!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(EO,t.mergeProps(r,{index:a,status:u(r,o),key:r.value||o}),null)})))]);var n}}}),TO=iu(FO),IO=iu(EO),MO={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},AO={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 BO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function LO(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(ew.test(e.code)||ew.test(e.key))&&l.value&&r("select",l.value,{e:e})},h=function(){ii(document,"keydown",m)},g=function(){ui(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(XO,{content:s,keyword:e.value},null):s])}))]):t.createVNode("div",{class:"".concat(u.value,"-auto-complete__panel--empty")},[e.empty||c.value.empty])}}});function eC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function tC(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 tC({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,tC(tC({},r),{},{value:n})),t.nextTick((function(){var e;null===(e=g.value)||void 0===e||e.addKeyboardListener()})))},S=function(t,n){var r;null===(r=e.onBlur)||void 0===r||r.call(e,tC(tC({},n),{},{value:t}))},j=function(t,n){var r;null===(r=e.onCompositionend)||void 0===r||r.call(e,tC(tC({},n),{},{value:t}))},k=function(t,n){var r;null===(r=e.onCompositionstart)||void 0===r||r.call(e,tC(tC({},n),{},{value:t}))},N=function(t,n){var r;null===(r=e.onEnter)||void 0===r||r.call(e,tC(tC({},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(Ty,t.mergeProps({borderless:e.borderless,placeholder:null!==(n=e.placeholder)&&void 0!==n?n:f.value.placeholder,tips:e.tips,status:e.status,readonly:m.value,disabled:p.value,autofocus:e.autofocus,clearable:e.clearable,onChange:C,onFocus:P,onBlur:S,onClear:e.onClear,onCompositionend:j,onCompositionstart:k,onEnter:N},x.value),r),i=Array.isArray(e.options)&&t.createVNode(QO,{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=tC(tC({},e.popupProps),{},{overlayInnerStyle:y,overlayInnerClassName:O.value,overlayClassName:w.value});return t.createVNode("div",{class:b.value},[t.createVNode(qh,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]}}))])}}}),rC=iu(nC),oC=iu(XO);function aC(e,t,n){var r=n.disabled;return["".concat(e,"-cascader__icon"),s({},t.disabled,r)]}function lC(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 iC(e){var t=e.value,n=e.multiple,r=e.treeStore,o=e.showAllLevels;if(n||0!==t&&!t)return"";if(S(t))return"";var a=r&&r.getNodes(t);if(!a||!a.length)return t;var l=a&&a[0].getPath();return l&&l.length?o?l.map((function(e){return e.label})).join(" / "):l.at(-1).label:t}function uC(e){var t=[];return e.forEach((function(e){t[e.level]?t[e.level].push(e):t[e.level]=[e]})),t}function cC(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 sC=function(e){var t=[];return S(e)?e.length>0&&E(e[0])?t=e.map((function(e){return e.value})):e.length&&(t=e):dC(e)||(t=E(e)?[e.value]:[e]),t};function dC(e){return!(Ho(e)&&!isNaN(e))&&Ro(e)}function vC(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 fC={node:{type:Object,default:function(){return{}}},optionChild:{type:[Object,Array]},cascaderContext:{type:Object},onChange:Function,onClick:Function,onMouseenter:Function},pC=t.defineComponent({name:"TCascaderItem",props:fC,setup:function(e){var n=t.ref();Ti(n);var r=fl("cascader__item"),o=fl(),a=xl({ChevronRightIcon:Xc}).ChevronRightIcon,l=pl(),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(lC(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(lC(t,n,r)))}(o.value,e.node,u.value,e.cascaderContext)}));function f(e,n){var o=n.inputVal,a=o?cC(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?cC(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(uu,{class:v.value,size:"small"},null):t.createVNode(a,{class:v.value},null))])}}}),mC={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},hC=t.defineComponent({name:"TCascaderSubPanel",props:{option:mC.option,empty:mC.empty,trigger:mC.trigger,onChange:mC.onChange,loading:mC.loading,loadingText:mC.loadingText,cascaderContext:{type:Object}},setup:function(e){var n=tl(),r=fl("cascader"),o=dl("cascader").globalConfig,a=t.computed((function(){return uC(e.cascaderContext.treeNodes)})),l=function(t,n){!function(e,t,n,r){var o=r.checkStrictly,a=r.multiple,l=r.treeStore,i=r.setVisible,u=r.setValue,c=r.setTreeNodes,s=r.setExpend,d=r.value,v=r.max,f=r.valueType;if(!(n.disabled||a&&d.length>=v&&0!==v)){if(e===t){var p=n.setExpanded(!0);l.refreshNodes(),l.replaceExpanded(p),c(l.getNodes().filter((function(e){return e.visible}))),a&&s(p)}if(!a&&(n.isLeaf()||o)&&"click"===t){l.resetChecked();var m=Ra(n.setChecked(!n.checked),1)[0];u("single"===f?m:n.getPath().map((function(e){return e.value})),"check",n.getModel()),o&&"hover"!==e||i(!1,{})}}}(e.trigger,n,t,e.cascaderContext)},i=function(r,o){var a=r.data.content?za(r.data.content(t.h)):n("option",{params:{item:r.data,index:o}});return t.createVNode(pC,{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 gC="__tdesign_tree-node__",yC=function(){return Si((function e(t){ji(this,e),s(this,gC,void 0),this[gC]=t}),[{key:"value",get:function(){return this[gC].value}},{key:"label",get:function(){return this[gC].label}},{key:"data",get:function(){return this[gC].data}},{key:"actived",get:function(){return this[gC].actived}},{key:"expanded",get:function(){return this[gC].expanded}},{key:"checked",get:function(){return this[gC].checked}},{key:"indeterminate",get:function(){return this[gC].indeterminate}},{key:"loading",get:function(){return this[gC].loading}},{key:"disabled",get:function(){return this[gC].isDisabled()}},{key:"getLevel",value:function(){return this[gC].getLevel()}},{key:"getIndex",value:function(){return this[gC].getIndex()}},{key:"isFirst",value:function(){return this[gC].isFirst()}},{key:"isLast",value:function(){return this[gC].isLast()}},{key:"isLeaf",value:function(){return this[gC].isLeaf()}},{key:"insertBefore",value:function(e){return this[gC].insertBefore(e)}},{key:"insertAfter",value:function(e){return this[gC].insertAfter(e)}},{key:"appendData",value:function(e){return this[gC].append(e)}},{key:"getPath",value:function(){return this[gC].getPath().map((function(e){return e.getModel()}))}},{key:"getParent",value:function(){var e;return null===(e=this[gC].parent)||void 0===e?void 0:e.getModel()}},{key:"getParents",value:function(){return this[gC].getParents().map((function(e){return e.getModel()}))}},{key:"getRoot",value:function(){var e=this[gC].getRoot();return null==e?void 0:e.getModel()}},{key:"getSiblings",value:function(){return this[gC].getSiblings().map((function(e){return e.getModel()}))}},{key:"getChildren",value:function(e){var t=this[gC],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[gC];if(e){var n=t.tree.getNode(e);if(n)n.getParents().map((function(e){return e.value})).indexOf(t.value)<0?jl("Tree","`".concat(e,"` is not a childNode of current node")):n.remove();else jl("Tree","`".concat(e,"` is not exist"))}else t.remove()}},{key:"setData",value:function(e){var t=this[gC],n=["value","label","disabled"],r=ta(e,["children"].concat(n)),o=t.tree.config.keys;n.forEach((function(t){var n=jt(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 bC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function wC(e){for(var t=1;t0?this.append(n):this.children=!1,this.update();case 2:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"set",value:function(e){var t=this,n=this.tree;Object.keys(e).forEach((function(n){(OC.call(CC,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=!!jt(this,"tree.config.draggable");return"boolean"==typeof this.draggable&&(e=this.draggable),e}},{key:"isExpandMutex",value:function(){var e=!!jt(this,"tree.config.expandMutex");return"boolean"==typeof this.expandMutex&&(e=this.expandMutex),e}},{key:"isActivable",value:function(){var e=!!jt(this,"tree.config.activable");return"boolean"==typeof this.activable&&(e=this.activable),e}},{key:"isCheckable",value:function(){var e=!!jt(this,"tree.config.checkable");return"boolean"==typeof this.checkable&&(e=this.checkable),e}},{key:"isActived",value:function(e){var t=this.tree,n=this.value,r=e||t.activedMap;return!(!t.nodeMap.get(n)||!r.get(n))}},{key:"isExpanded",value:function(e){var t=this.tree,n=this.value,r=this.vmIsLocked,o=t.hasFilter,a=t.config.allowFoldNodeOnFilter;if(o&&!a&&r)return!0;var l=e||t.expandedMap;return!(!t.nodeMap.get(n)||!l.get(n))}},{key:"isChecked",value:function(e){var t=this.children,n=this.tree,r=this.value,o=n.config,a=o.checkStrictly,l=o.valueMode;if(!n.nodeMap.get(r))return!1;if(!this.isCheckable())return!1;var i=e||n.checkedMap;if(a)return!!i.get(r);var u=!1;if(i.get(r)&&("onlyLeaf"!==l||this.isLeaf()))return!0;Array.isArray(t)&&t.length>0?u=t.every((function(e){return e.isChecked(i)})):u=this.getParents().some((function(e){return i.get(e.value)}));return u}},{key:"isIndeterminate",value:function(){var e=this.children,t=this.tree,n=this.value,r=t.config.checkStrictly;if(!t.nodeMap.get(n))return!1;if(!this.isCheckable())return!1;if(r)return!1;if(!Array.isArray(e))return!1;var o=null;return e.some((function(e){return!!e.isIndeterminate()||(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=wC({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=wC({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=wC({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=wC({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=wC({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 yC(this),this.model=e),e}}]);var t}();function kC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function NC(e){for(var t=1;t>>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 jC&&(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 jC&&(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=NC({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 jC(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 jC&&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 jC?n.data.appendTo(this,n.node):S(n.data)?n.node.append(n.data):n.node.append([n.data]),n.node.updateRelated()):n.data instanceof jC?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[SC],"changed"):this.getNodes().forEach((function(e){o.set(e[SC],"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=NC({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 DC(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=sC(t);if(e){if(S(r)&&0===n.length){var o=new Map,a=Ra(r,1)[0];if(!dC(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(sC(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 _C({keys:DC(DC({},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&&!S(e)||!n&&S(e)&&"single"===o&&!r}(u.value,p.value)?m.scopeVal=n?[]:"":t(n?[]:"","invalid-value"),dC(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 FC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function TC(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 UC(e,t,n,r){if(""===e||null===e)return ll();var o=e;if(/[w|W]/g.test(t)){Do(o)||(o=ll(o).locale(r||"zh-cn").format(t));var a=o.split(/[-/.\s]/)[0],l=o.split(/[-/.\s]/)[1],i=t.split(/[-/.\s]/)[1],u=ll(a,"YYYY").locale(r||"zh-cn").startOf("year");(u.day()>4||0===u.day())&&(u=u.add(1,"week"));for(var c=ll(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=ll(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=ll(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=ll(o,t).isValid()?ll(o,t):ll(o);return y.isValid()?y:(kl("DatePicker","Check whether the format\u3001value format is valid.\n value: '".concat(e,"', format: '").concat(t,"'")),ll())}function YC(e,t){return Array.isArray(e)?e.every((function(e){return""===e||(ll(e,t).isValid()||ll(e).isValid())})):""===e||(ll(e,t).isValid()||ll(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&&UC(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()}))?(kl("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=UC(t,n).locale(o);return a.isValid()?"time-stamp"===r?a.toDate().getTime():"Date"===r?a.toDate():a.format(r||n):(kl("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 ZC(e,t){if(e&&t){var n=e.split(":"),r=t.split(":");return n.slice(0,r.length).join(":")}return e}function qC(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?ll(e,"string"==typeof e?t:void 0).format(n):ZC(r[o],n)})),a=a.length?a:r.map((function(e){return ZC(e,n)})),Array.isArray(e)?a:null===(o=a)||void 0===o?void 0:o[0]}function XC(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:WC}:"month"===n?{format:r||"YYYY-MM",valueType:o||r||"YYYY-MM",timeFormat:WC}:"quarter"===n?{format:r||"YYYY-[Q]Q",valueType:o||r||"YYYY-[Q]Q",timeFormat:WC}:"week"===n?{format:r||"gggg-wo",valueType:o||r||"gggg-wo",timeFormat:WC}:"date"===n?{format:r||"YYYY-MM-DD".concat(a?" HH:mm:ss":""),valueType:o||r||"YYYY-MM-DD".concat(a?" HH:mm:ss":""),timeFormat:KC(r||"YYYY-MM-DD".concat(a?" HH:mm:ss":""))||WC}:(kl("DatePicker","Invalid mode: ".concat(n)),{})}function GC(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:[ll().year(),ll().year()],month:[ll().month(),ll().month()],time:[ll().format(l),ll().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 UC(e,o).year()})),month:t.map((function(e){return UC(e,o).month()})),time:t.map((function(e){return UC(e,o).format(l)}))}:u}function JC(e){var n,r,o,a,l=t.toRefs(e),i=Ra(Mi(l.value,l.modelValue,e.defaultValue,e.onChange),2),u=i[0],c=i[1],s=t.computed((function(){return XC({mode:e.mode,format:e.format,enableTimePicker:!e.multiple&&e.enableTimePicker})}));e.enableTimePicker&&(KC(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(qC(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(UC(e.multiple?null===(r=u.value)||void 0===r?void 0:r[0]:u.value,s.value.format).month()),f=t.ref(UC(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?YC(u.value,s.value.format)&&(p.value=$C(u.value,{format:s.value.format}),d.value=qC(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 QC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ex(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)}})}(ox);var ax=ox.exports,lx={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}}}(lx);var ix=lx.exports,ux={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)}}}(ux);var cx=ux.exports,sx={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)}})}(sx);var dx=sx.exports,vx={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)}}}(vx);var fx=vx.exports,px={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)}}}()}(px);var mx=px.exports;function hx(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function gx(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:"zh-cn";return Ox(e,t)&&ll(e).locale(n).week()===ll(t).locale(n).week()}function xx(e,t){return Ox(e,t)&&e.getDate()===t.getDate()}function Px(e,t){var n=e.getTime(),r=t.getTime();return nr?1:0}function Sx(e,t){var n,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"zh-cn";return{isSameYear:bx,isSameQuarter:wx,isSameMonth:Ox,isSameWeek:Cx,isSameDate:xx}["isSame".concat((n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"date",n?n[0].toUpperCase().concat(n.substring(1,n.length)):n))](e,t,r)}function jx(e,t,n){return t&&-1===Px(e,t)||n&&1===Px(e,n)}function kx(){var e=new Date;return new Date(e.getFullYear(),e.getMonth(),e.getDate(),0,0,0)}function Nx(e,t){return ll(e).subtract(t,"month").toDate()}function _x(e,t){return ll(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,yx({year:t,month:n}))}({year:n,month:r}),g=yx({year:n,month:r}),y=[],b=1,w=kx();b<=g;b++){var O=new Date(n,r,b);y.push({text:b,active:!1,value:O,disabled:H(u)&&u(O)||!p&&jx(O,c,s),now:Sx(w,O),firstDayOfMonth:1===b,lastDayOfMonth:b===g,type:"current-month",dayjsObj:ll(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&&jx(m,c,s),additional:!0,type:"prev-month",dayjsObj:ll(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&&jx(h,c,s),additional:!0,type:"next-month",dayjsObj:ll(h).locale(v)});var C=zn(y,7);return l&&C.forEach((function(e){e.unshift(gx(gx({},e[0]),{},{active:!1,value:e[0].value,text:ll(e[0].value).locale(v).week(),dayjsObj:ll(e[0].value).locale(v)}))})),C}function Dx(e,t){var n=tx({},(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&&Sx(r,n,u),c=a&&Sx(a,n,u),s=o&&Sx(o,n,u),d=l&&Sx(l,n,u);return t.active=(i||s)&&!t.additional,r&&o&&(t.highlight=ll(n).isBetween(r,o,u,"[]")&&!t.additional,t.startOfRange=i,t.endOfRange=s),a&&l&&(t.hoverHighlight=ll(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 Sx(ll(e).toDate(),n.value,u)&&!n.additional})):n.active=r&&Sx(e.value,r,u)&&!n.additional;return n}))}))}function Ex(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=e.match(/[ap]m/i)||[""],n=Ra((e.match(/\d{1,2}(:\d{1,2})?(:\d{1,2})?(:\d{1,3})?/)||["0:0:0:0"])[0].split(":"),4),r=n[0],o=void 0===r?0:r,a=n[1],l=void 0===a?0:a,i=n[2],u=void 0===i?0:i,c=n[3];return{hours:+o,minutes:+l,seconds:+u,milliseconds:+(void 0===c?0:c),meridiem:t[0]}}ll.extend(ax),ll.extend(ix),ll.extend(cx),ll.extend(dx),ll.extend(fx),ll.extend(mx),ll.extend(rx);var Fx={allowInput:Boolean,borderless:Boolean,clearable:Boolean,defaultTime:{type:String,default:"00:00:00"},disableDate:{type:[Object,Array,Function]},disabled:{type:Boolean,default:void 0},enableTimePicker:Boolean,firstDayOfWeek:{type:Number,validator:function(e){return!e||[1,2,3,4,5,6,7].includes(e)}},format:{type:String,default:void 0},inputProps:{type:Object},label:{type:[String,Function]},mode:{type:String,default:"date",validator:function(e){return!e||["year","quarter","month","week","date"].includes(e)}},multiple:Boolean,needConfirm:{type:Boolean,default:!0},placeholder:{type:[String,Array],default:void 0},popupProps:{type:Object},prefixIcon:{type:Function},presets:{type:Object},presetsPlacement:{type:String,default:"bottom",validator:function(e){return!e||["left","top","right","bottom"].includes(e)}},readonly:{type:Boolean,default:void 0},selectInputProps:{type:Object},size:{type:String,default:"medium",validator:function(e){return!e||["small","medium","large"].includes(e)}},status:{type:String,default:"default",validator:function(e){return!e||["default","success","warning","error"].includes(e)}},suffixIcon:{type:Function},timePickerProps:{type:Object},tips:{type:[String,Function]},value:{type:[String,Number,Array,Date],default:void 0},modelValue:{type:[String,Number,Array,Date],default:void 0},defaultValue:{type:[String,Number,Array,Date],default:""},valueDisplay:{type:[String,Function]},valueType:{type:String,default:""},onBlur:Function,onChange:Function,onConfirm:Function,onFocus:Function,onPick:Function,onPresetClick:Function},Tx=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=dl("classPrefix").classPrefix,r=fl("date-picker__header"),o=dl("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(mO,{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(mO,{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(kO,{tips:v.value[e.mode],size:"small",onChange:e.onJumperClick},null)])}}}),Ix=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:al.exports.Dayjs},setup:function(e){var n=fl("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=Ex(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=Ex(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 Mx(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ax(e){for(var t=1;t=f&&y<=m&&b>p&&b1})).length;return i.value?ll(i.value,u.value):e?ll().hour(0).minute(0).second(0):ll()}));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=Kx.meridiem,r=Kx.hour,o=Kx.minute,a=Kx.second,l=Kx.milliSecond;return e.match(Ux).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=tP.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(tP.includes(t)){var r=tP.indexOf(t),o=l.value[r]||1;n=t===Kx.hour?Yx.test(u.value)?11:23:t===Kx.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 zx},w=function(e,t){e===Kx.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)+nP,f=g(),p=f.offsetHeight+f.margin,O=Math.abs(Math.round(d/p+.5)),C=zx[Math.min(O-1,1)].toLowerCase();if(Number.isNaN(O)&&(O=1),tP.includes(t)){var x=59;t===Kx.hour?x=/[h]{1}/.test(u.value)?11:23:t===Kx.milliSecond&&(x=999);var P=tP.indexOf(t),S=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]}(S,Number(b(t)[Math.min(O-1,x+1,S.length-1)]),Number(l.value[P])||1),Number.isNaN(c)&&(c=S[S.length-1]),t===Kx.hour&&v.value.includes(Kx.meridiem)&&h.value.hour()>=12&&(c=Number(c)+12)}else c=C;var j=w(t,c);if(ll(h.value).isValid()&&(!i.value||ll(i.value,u.value,!0).isValid())){if(tP.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===Lx&&_>=12?h.value.hour(_-12).format(u.value):C===Rx&&_<12?h.value.hour(_+12).format(u.value):h.value.format(u.value)}if(s!==i.value&&(null===(a=e.onChange)||void 0===a||a.call(e,s,r)),j!==d){var V,D=m[v.value.indexOf(t)];if(!D||D.scrollTop===j)return;null===(V=D.scrollTo)||void 0===V||V.call(D,{top:j,behavior:"smooth"})}}}},C=function(e,t,n){var r,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"auto",a=w(e,t),l=m[n];l&&l.scrollTop!==a&&y(e,t)&&(null===(r=l.scrollTo)||void 0===r||r.call(l,{top:a,behavior:o}))},x=function(){var n=arguments.length>0&&void 0!==arguments[0]&&arguments[0],r=i.value&&!n?"smooth":"auto",o=!!l.value.filter((function(e){return Number(e)>1})).length;t.nextTick((function(){v.value.forEach((function(e,t){var n,a,l;!o||o&&i.value?C(e,tP.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===Kx.meridiem?h.value.format("a")===t:(o=null===(n=(r=h.value)[e])||void 0===n?void 0:n.call(r),e===Kx.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(tP.includes(t))t===Kx.hour&&h.value.format("a")===Rx&&v.value.includes(Kx.meridiem)&&(n=Number(n)+12),C(t,n,r,"smooth");else{var a,l=h.value.hour();if(n===Lx&&l>=12)null===(a=e.onChange)||void 0===a||a.call(e,h.value.hour(l-12).format(u.value),o);else if(n===Rx&&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)}},[tP.includes(a)?Yx.test(u.value)&&a===Kx.hour&&"00"===i?"12":i:n.value[i===Lx?"anteMeridiem":"postMeridiem"]])}))])}))])}}});function oP(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function aP(e){for(var t=1;t1})).length})),d=t.computed((function(){s.value;var t=ll(e.value,e.format);return e.value&&t.isValid()?t.format(e.format):ll().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(vu,{theme:"primary",variant:"text",size:"small",onClick:function(){var t;return null===(t=e.onChange)||void 0===t?void 0:t.call(e,ll().format(e.format))}},{default:function(){return[n.value.now]}}):Object.keys(e.presets||[]).map((function(n){return t.createVNode(vu,{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]):kl("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(rP,t.mergeProps(e,{ref:c,format:e.format||"HH:mm:ss",steps:e.steps||Wx,value:ll(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(vu,{theme:"primary",variant:"base",disabled:!e.value,onClick:function(t){var n;return null===(n=e.handleConfirmClick)||void 0===n?void 0:n.call(e,t,d.value)},size:"small"},{default:function(){return[n.value.confirm]}}),p()]):null])}}});function iP(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function uP(e){for(var t=1;t=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 zP=t.defineComponent({name:"TDateRangePicker",props:SP,setup:function(e,n){var r=n.slots,o=fl("date-range-picker"),a=function(e){var n=fl("date-range-picker"),r=dl("datePicker").globalConfig,o=xl({CalendarIcon:ac}).CalendarIcon,a=el(),l=t.ref(!1),i=t.ref(),u=pP(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 XC({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=Di(),x=t.computed((function(){return hP(hP({},e.rangeInputProps),{},{size:e.size,ref:i,borderless:e.borderless,clearable:e.clearable&&!C.value,prefixIcon:function(){return a("prefixIcon")},readonly:C.value||!e.allowInput,separator:e.separator||r.value.rangeSeparator,placeholder:e.placeholder||r.value.placeholder[e.mode],activeIndex:y.value?w.value:void 0,suffixIcon:function(){return a("suffixIcon")||t.createVNode(o,null,null)},class:s({},"".concat(n.value,"__input--placeholder"),b.value),onClick:function(e){var t=e.position;w.value="first"===t?0:1},onClear:function(e){e.e.stopPropagation(),y.value=!1,null==d||d([],{dayjsValue:[],trigger:"clear"})},onBlur:function(t,n){var r,o=n.e,a=n.position;null===(r=e.onBlur)||void 0===r||r.call(e,{value:t,partial:gP[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:gP[a],e:o}),w.value="first"===a?0:1},onChange:function(e,t){if(t.e,t.position,O.value=e,YC(e,g.value.format)){m.value=e;var n=[],r=[],o=[];e.forEach((function(e){n.push(UC(e,g.value.format).year()),r.push(UC(e,g.value.format).month()),o.push(UC(e,g.value.format).format(g.value.timeFormat))})),p.value=n,f.value=r,v.value=o}},onEnter:function(e){(YC(e,g.value.format)||YC(c.value,g.value.format))&&(y.value=!1,YC(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 UC(e,g.value.format)})),trigger:"enter"}):YC(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 hP(hP({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?YC(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=gl(),C=Di(),x=t.computed((function(){return XC({mode:e.mode,enableTimePicker:e.enableTimePicker,format:e.format,valueType:e.valueType})})),P=t.ref(!1);function j(e){y.value=!0;var t=i(l.value);t[g.value]=$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||!YC(e,x.value.format)}));if(-1===c&&2===a.length&&(!b.value&&UC(a[0],x.value.format).isAfter(UC(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 UC(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=Nx(a,o):"current"===n?l=new Date:"next"===n&&(l=_x(a,o));var u=i(f.value);u[r]=l.getFullYear();var c=i(p.value);c[r]=l.getMonth();var s=RP(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=Ex(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=ll(s,x.value.format).isValid()?ll(s,x.value.format):ll().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||!YC(e,x.value.format)}));-1===a&&2===o.length&&(!b.value&&UC(o[0],x.value.format).isAfter(UC(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 ll(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 UC(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()),S(o))?(null==w||w($C(o,{format:x.value.format,targetFormat:x.value.valueType,autoSwap:!0}),{dayjsValue:o.map((function(e){return UC(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=RP(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=qC(v.value||[ll().format(x.value.timeFormat),ll().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 UC(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 UC(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 UC(e,x.value.format).month()}));f.value=v.value.map((function(e){return UC(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=GC({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:j,onCellMouseLeave:k,onJumperClick:_,onConfirmClick:D,onPresetClick:E,onYearChange:F,onMonthChange:T,onTimePickerChange:V}}));return function(){return t.createVNode("div",{class:o.value},[t.createVNode(MP,{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(LP,I.value,null)}},null)])}}}),HP={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 WP(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){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 KP=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 ll(e).toDate()})),trigger:"month-select"})}t.onMounted((function(){if(2===r.value.length&&!e.enableTimePicker){var t=r.value.map((function(e){return UC(e,d.value.format).month()}));o.value=r.value.map((function(e){return UC(e,d.value.valueType).year()})),o.value[0]===o.value[1]&&t[0]===t[1]&&(11===t[0]?t[0]-=1:t[1]+=1),a.value=t,["month","quarter"].includes(e.mode)&&o.value[0]===o.value[1]&&(o.value=[o.value[0],o.value[0]+1])}}));var j=t.computed((function(){return{hoverValue:f.value?p.value:[],value:v.value?u.value:r.value,activeIndex:m.value,year:o.value,month:a.value,mode:e.mode,format:d.value.format,presets:e.presets,time:l.value,disableDate:e.disableDate,firstDayOfWeek:e.firstDayOfWeek,timePickerProps:e.timePickerProps,enableTimePicker:e.enableTimePicker,presetsPlacement:e.presetsPlacement,panelPreselection:e.panelPreselection,popupVisible:!0,panelClick:e.onPanelClick,onCellClick:y,onCellMouseEnter:h,onCellMouseLeave:g,onJumperClick:b,onConfirmClick:O,onPresetClick:C,onYearChange:x,onMonthChange:P,onTimePickerChange:w}}));return function(){return t.createVNode(LP,j.value,null)}}}),UP=iu(OP),YP=iu(PP),$P=iu(zP),ZP=iu(KP),qP={exports:{}},XP={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}(XP,XP.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=XP.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=QP.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}(tS,tS.exports);var nS={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(QP.exports),r=o(XP.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}(nS,nS.exports);var rS={exports:{}};!function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,r.default)(t);var a=("object"===o(n)?n.version:arguments[1])||"";if(!a)return e(t,{version:4})||e(t,{version:6});if("4"===a.toString())return i.test(t);if("6"===a.toString())return c.test(t);return!1};var n,r=(n=QP.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)}var a="(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])",l="(".concat(a,"[.]){3}").concat(a),i=new RegExp("^".concat(l,"$")),u="(?:[0-9a-fA-F]{1,4})",c=new RegExp("^("+"(?:".concat(u,":){7}(?:").concat(u,"|:)|")+"(?:".concat(u,":){6}(?:").concat(l,"|:").concat(u,"|:)|")+"(?:".concat(u,":){5}(?::").concat(l,"|(:").concat(u,"){1,2}|:)|")+"(?:".concat(u,":){4}(?:(:").concat(u,"){0,1}:").concat(l,"|(:").concat(u,"){1,3}|:)|")+"(?:".concat(u,":){3}(?:(:").concat(u,"){0,2}:").concat(l,"|(:").concat(u,"){1,4}|:)|")+"(?:".concat(u,":){2}(?:(:").concat(u,"){0,3}:").concat(l,"|(:").concat(u,"){1,5}|:)|")+"(?:".concat(u,":){1}(?:(:").concat(u,"){0,4}:").concat(l,"|(:").concat(u,"){1,6}|:)|")+"(?::((?::".concat(u,"){0,5}:").concat(l,"|(?::").concat(u,"){1,7}|:))")+")(%[0-9a-zA-Z.]{1,})?$");e.exports=t.default,e.exports.default=t.default}(rS,rS.exports),function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){if((0,n.default)(e),(t=(0,i.default)(t,c)).require_display_name||t.allow_display_name){var u=e.match(s);if(u){var g=u[1];if(e=e.replace(g,"").replace(/(^<|>$)/g,""),g.endsWith(" ")&&(g=g.slice(0,-1)),!function(e){var t=e.replace(/^"(.+)"$/,"$1");if(!t.trim())return!1;if(/[\.";<>]/.test(t)){if(t===e)return!1;if(!(t.split('"').length===t.split('\\"').length))return!1}return!0}(g))return!1}else if(t.require_display_name)return!1}if(!t.ignore_max_length&&e.length>h)return!1;var y=e.split("@"),b=y.pop(),w=b.toLowerCase();if(t.host_blacklist.length>0&&(0,r.default)(w,t.host_blacklist))return!1;if(t.host_whitelist.length>0&&!(0,r.default)(w,t.host_whitelist))return!1;var O=y.join("@");if(t.domain_specific_validation&&("gmail.com"===w||"googlemail.com"===w)){var C=(O=O.toLowerCase()).split("+")[0];if(!(0,o.default)(C.replace(/\./g,""),{min:6,max:30}))return!1;for(var x=C.split("."),P=0;P]/.test(e))return!1;if(0===e.indexOf("mailto:"))return!1;if((t=(0,i.default)(t,s)).validate_length&&e.length>t.max_allowed_length)return!1;if(!t.allow_fragments&&(0,o.default)(e,"#"))return!1;if(!t.allow_query_components&&((0,o.default)(e,"?")||(0,o.default)(e,"&")))return!1;var u,v,f,p,m,h,g,y;if(g=e.split("#"),e=g.shift(),g=e.split("?"),e=g.shift(),(g=e.split("://")).length>1){if(u=g.shift().toLowerCase(),t.require_valid_protocol&&-1===t.protocols.indexOf(u))return!1}else{if(t.require_protocol)return!1;if("//"===e.slice(0,2)){if(!t.allow_protocol_relative_urls)return!1;g[0]=e.slice(2)}}if(""===(e=g.join("://")))return!1;if(g=e.split("/"),""===(e=g.shift())&&!t.require_host)return!0;if((g=e.split("@")).length>1){if(t.disallow_auth)return!1;if(""===g[0])return!1;if((v=g.shift()).indexOf(":")>=0&&v.split(":").length>2)return!1;var b=v.split(":"),w=(P=2,function(e){if(Array.isArray(e))return e}(x=b)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a,l,i=[],u=!0,c=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=a.call(n)).done)&&(i.push(r.value),i.length!==t);u=!0);}catch(e){c=!0,o=e}finally{try{if(!u&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(c)throw o}}return i}}(x,P)||function(e,t){if(e){if("string"==typeof e)return c(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(e,t):void 0}}(x,P)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),O=w[0],C=w[1];if(""===O&&""===C)return!1}var x,P;p=g.join("@"),h=null,y=null;var S=p.match(d);S?(f="",y=S[1],h=S[2]||null):(f=(g=p.split(":")).shift(),g.length&&(h=g.join(":")));if(null!==h&&h.length>0){if(m=parseInt(h,10),!/^[0-9]+$/.test(h)||m<=0||m>65535)return!1}else if(t.require_port)return!1;if(t.host_whitelist)return(0,r.default)(f,t.host_whitelist);if(""===f&&!t.require_host)return!0;if(!((0,l.default)(f)||(0,a.default)(f,t)||y&&(0,l.default)(y,6)))return!1;if(f=f||y,t.host_blacklist&&(0,r.default)(f,t.host_blacklist))return!1;return!0};var n=u(QP.exports),r=u(eS.exports),o=u(lS.exports),a=u(nS.exports),l=u(rS.exports),i=u(XP.exports);function u(e){return e&&e.__esModule?e:{default:e}}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=t:Ui(e)>=t},len:function(e,t){return Ui(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 dS(e,t){return vS.apply(this,arguments)}function vS(){return vS=xp(Ip.mark((function e(t,n){var r,o,a,l,i,u,c;return Ip.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r={result:!0},o=Object.keys(n),i=0;case 1:if(!(i0;return null!=r?r:o})),h=t.computed((function(){var e;return null!==(e=null==v?void 0:v.requiredMarkPosition)&&void 0!==e?e:l.value.requiredMarkPosition})),g=t.computed((function(){return r.label||e.label})),y=t.computed((function(){return!(null==v||!v.colon||!g.value)})),b=fl("form__label"),w=t.computed((function(){return Wo(e.labelAlign)?null==v?void 0:v.labelAlign:e.labelAlign})),O=t.computed((function(){return Wo(e.labelWidth)?null==v?void 0:v.labelWidth:e.labelWidth})),C=t.computed((function(){return[a.value.label,s(s(s(s(s({},"".concat(b.value,"--required"),m.value),"".concat(b.value,"--required-right"),m.value&&"right"===h.value),"".concat(b.value,"--top"),g.value&&("top"===w.value||!O.value)),"".concat(b.value,"--left"),"left"===w.value&&O.value),"".concat(b.value,"--right"),"right"===w.value&&O.value)]})),x=t.computed((function(){return"".concat(f.value,"-is-").concat(e.status||"default"," ").concat("success"===e.status?a.value.successBorder:"")})),P=function(){if(0!==Number(O.value)){var n={};return O.value&&"top"!==w.value&&(n=Ho(O.value)?{width:"".concat(O.value,"px")}:{width:O.value}),t.createVNode("div",{class:C.value,style:n},[t.createVNode("label",{for:e.for||null},[o("label")]),y.value&&l.value.colonText])}},j=function(){var e=function(e){return t.createVNode("span",{class:a.value.status},[t.createVNode(e,null,null)])},n=D.value;if(F.value===Oy.SUCCESS)return e(u);if(null!=n&&n[0]){var r=n[0].type||"error";return e({error:c,warning:d}[r]||u)}return null},k=function(){if(!1!==e.statusIcon){var n=o("statusIcon",{defaultNode:j()});if(n)return t.createVNode("span",{class:a.value.status},[n]);if(!1!==n)return(n=null==v?void 0:v.renderContent("statusIcon",{defaultNode:j(),params:e}))||void 0}},N=t.computed((function(){if(!Z.value)return"";if(F.value===Oy.SUCCESS)return e.successBorder?[a.value.success,a.value.successBorder].join(" "):a.value.success;if(D.value.length){var t=D.value[0].type||"error";return e.status?x.value:"error"===t?a.value.error:a.value.warning}})),_=t.computed((function(){return[a.value.controls,N.value]})),V=t.computed((function(){var e={};return O.value&&"top"!==w.value&&(e=Ho(O.value)?{marginLeft:"".concat(O.value,"px")}:{marginLeft:O.value}),e})),D=t.ref([]),E=t.ref([]),F=t.ref(Oy.TO_BE_VALIDATED),T=t.ref(!1),I=t.ref(!1),M=function(){I.value=!1,D.value=[],E.value=[],F.value=Oy.TO_BE_VALIDATED},A=function(){var n=xp(Ip.mark((function n(){var r,o=arguments;return Ip.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(r=o.length>0&&void 0!==o[0]?o[0]:null==v?void 0:v.resetType,e.name){n.next=1;break}return n.abrupt("return");case 1:return"empty"===r?Va(null==v?void 0:v.data,e.name,(a=void 0,l=void 0,"[object String]"===(l=Object.prototype.toString.call(jt(null==v?void 0:v.data,e.name)))&&(a=""),"[object Array]"===l&&(a=[]),"[object Object]"===l&&(a={}),a)):"initial"===r&&Va(null==v?void 0:v.data,e.name,K.value),n.next=2,t.nextTick();case 2:T.value?I.value=!0:M();case 3:case"end":return n.stop()}var a,l}),n)})));return function(){return n.apply(this,arguments)}}(),B=t.computed((function(){var e;return null!==(e=null==v?void 0:v.errorMessage)&&void 0!==e?e:l.value.errorMessage})),L=t.computed((function(){var t;if(null!==(t=e.rules)&&void 0!==t&&t.length)return e.rules;if(!e.name)return[];var n="".concat(e.name).lastIndexOf(".")||-1,r="".concat(e.name).slice(n+1);return jt(null==v?void 0:v.rules,e.name)||jt(null==v?void 0:v.rules,r)||[]})),R=function(){var t=xp(Ip.mark((function t(n){var r,o;return Ip.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if((o={successList:[],errorList:[],rules:[],resultList:[],allowSetValue:!1}).rules="all"===n?L.value:L.value.filter((function(e){return(e.trigger||"change")===n})),!L.value.length||null!==(r=o.rules)&&void 0!==r&&r.length){t.next=1;break}return t.abrupt("return",o);case 1:return o.allowSetValue=!0,t.next=2,fS(W.value,o.rules);case 2:return o.resultList=t.sent,o.errorList=o.resultList.filter((function(e){return!0!==e.result})).map((function(t){return Object.keys(t).forEach((function(n){if(!t.message&&B.value[n]){var r=Do(e.label)?e.label:e.name;t.message=(o=B.value[n],a={name:r,validate:t[n]},o.replace(/\${(.*?)}/g,(function(e,t){return a[t.trim()]||""})))}var o,a})),t})),o.successList=o.resultList.filter((function(e){return!0===e.result&&e.message&&"success"===e.type})),t.abrupt("return",o);case 3:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),z=function(){var t=xp(Ip.mark((function t(n,r){var o,a,l,i,u;return Ip.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return T.value=!0,$.value=r,t.next=1,R(n);case 1:return o=t.sent,a=o.successList,l=o.errorList,i=o.rules,u=o.resultList,o.allowSetValue&&(E.value=a,D.value=l),i.length&&(F.value=l.length?Oy.FAIL:Oy.SUCCESS),I.value&&M(),T.value=!1,t.abrupt("return",s({},e.name,0===l.length||u));case 2:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),H=function(){var t=xp(Ip.mark((function t(n){var r,o,a;return Ip.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=1,R(n);case 1:return r=t.sent,o=r.errorList,a=r.resultList,t.abrupt("return",s({},e.name,0===o.length||a));case 2:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),W=t.computed((function(){return(null==v?void 0:v.data)&&jt(null==v?void 0:v.data,e.name)})),K=t.ref(void 0),U=t.toRefs(e).name,Y=t.reactive({name:U,resetHandler:M,resetField:A,validate:z,validateOnly:H,setValidateMessage:function(e){(e||S(e))&&(0===e.length&&(D.value=[],F.value=Oy.SUCCESS),D.value=e.map((function(e){return gS(gS({},e),{},{result:!1})})),F.value=Oy.FAIL)}});t.onMounted((function(){K.value=Mr(W.value),null==v||v.children.push(Y)})),t.onBeforeUnmount((function(){v&&(v.children=null==v?void 0:v.children.filter((function(e){return e!==Y})))})),t.watch(W,xp(Ip.mark((function e(){return Ip.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,z("change");case 1:case"end":return e.stop()}}),e)}))),{deep:!0}),t.watch((function(){return[e.name,JSON.stringify(e.rules)].join(",")}),(function(){z("change")}));var $=t.ref(void 0),Z=t.computed((function(){return Mo($.value)?$.value:Mo(e.showErrorMessage)?e.showErrorMessage:null==v?void 0:v.showErrorMessage})),q=t.computed((function(){return[a.value.formItem,yS(p.value,e.name),s(s({},a.value.formItemWithHelp,X.value),a.value.formItemWithExtra,G.value)]})),X=t.computed((function(){var e=o("help");return e?t.createVNode("div",{class:a.value.help},[e]):null})),G=t.computed((function(){var e,n=function(e){return t.createVNode("div",{class:a.value.extra,title:e},[e])},r=D.value;return Z.value&&null!=r&&null!==(e=r[0])&&void 0!==e&&e.message?n(r[0].message):E.value.length?n(E.value[0].message):null})),J=t.computed((function(){var e=o("tips");if(!e)return null;var n=["".concat(p.value,"-tips"),"".concat(f.value,"-tips"),x.value];return t.createVNode("div",{class:n},[e])})),Q=function(){var e=xp(Ip.mark((function e(){return Ip.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,z("blur");case 1:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();return t.provide(xy,{handleBlur:Q}),function(){return t.createVNode("div",{class:q.value},[P(),t.createVNode("div",{class:_.value,style:V.value},[t.createVNode("div",{class:a.value.controlsContent},[o("default"),k()]),X.value,J.value,G.value])])}}}),wS={colon:Boolean,data:{type:Object,default:function(){return{}}},disabled:{type:Boolean,default:void 0},errorMessage:{type:Object},formControlledComponents:{type:Array},id:{type:String,default:void 0},labelAlign:{type:String,default:"right",validator:function(e){return!e||["left","right","top"].includes(e)}},labelWidth:{type:[String,Number],default:"100px"},layout:{type:String,default:"vertical",validator:function(e){return!e||["vertical","inline"].includes(e)}},preventSubmitDefault:{type:Boolean,default:!0},readonly:{type:Boolean,default:void 0},requiredMark:{type:Boolean,default:void 0},requiredMarkPosition:{type:String,validator:function(e){return!e||["left","right"].includes(e)}},resetType:{type:String,default:"empty",validator:function(e){return!e||["empty","initial"].includes(e)}},rules:{type:Object},scrollToFirstError:{type:String,validator:function(e){return!e||["","smooth","auto"].includes(e)}},showErrorMessage:{type:Boolean,default:!0},statusIcon:{type:[Boolean,Function],default:void 0},submitWithWarningMessage:Boolean,onReset:Function,onSubmit:Function,onValidate:Function},OS=t.defineComponent({name:"TForm",props:wS,setup:function(e,n){var r=n.expose,o=el(),a=t.toRefs(e),l=a.disabled,i=a.readonly;t.provide("formDisabled",{disabled:l}),t.provide("formReadonly",{readonly:i});var u=t.ref(null),c=t.ref([]),d=t.toRefs(e),v=d.showErrorMessage,f=d.labelWidth,p=d.labelAlign,m=d.data,h=d.colon,g=d.requiredMark,y=d.requiredMarkPosition,b=d.rules,w=d.errorMessage,O=d.resetType;t.provide(Cy,t.reactive({showErrorMessage:v,labelWidth:f,labelAlign:p,data:m,colon:h,requiredMark:g,requiredMarkPosition:y,rules:b,errorMessage:w,resetType:O,children:c,renderContent:o}));var C=fl("form"),x=wy(),P=t.computed((function(){return[x.value.form,s({},"".concat(C.value,"-inline"),"inline"===e.layout)]})),j=fl("form-item"),k=function(t){if(Mo(t))return"";var n=Ra(Object.keys(t),1)[0];if(e.scrollToFirstError){var r=yS(j.value,n);N(r)}var o=t[n];return S(o)?o.filter((function(e){return!e.result}))[0].message:""},N=function(t){var n=Ra(u.value.getElementsByClassName(t),1)[0],r=e.scrollToFirstError;r&&n&&n.scrollIntoView({behavior:r})},_=function(e,t){return!t||!S(t)||-1!==t.indexOf("".concat(e))},V=function(e){var t=e.reduce((function(e,t){return Object.assign(e||{},t)}),{});return Object.keys(t).forEach((function(e){!0===t[e]&&delete t[e]})),!!Ro(t)||t},D=function(){var t=xp(Ip.mark((function t(n){var r,o,a,l,i,u,s,d,v,f;return Ip.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=(o=n||{}).fields,l=o.trigger,i=void 0===l?"all":l,u=o.showErrorMessage,s=c.value.filter((function(e){return H(e.validate)&&_(String(e.name),a)})).map((function(e){return e.validate(i,u)})),t.next=1,Promise.all(s);case 1:return d=t.sent,v=V(d),f=k(v),null===(r=e.onValidate)||void 0===r||r.call(e,{validateResult:v,firstError:f}),t.abrupt("return",v);case 2:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),E=function(){var e=xp(Ip.mark((function e(t){var n,r,o,a,l,i;return Ip.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=(n=t||{}).fields,o=n.trigger,a=void 0===o?"all":o,l=c.value.filter((function(e){return H(e.validateOnly)&&_(String(e.name),r)})).map((function(e){return e.validateOnly(a)})),e.next=1,Promise.all(l);case 1:return i=e.sent,e.abrupt("return",V(i));case 2:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),F=t.ref(),T=function(){var e=xp(Ip.mark((function e(t){return Ip.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:F.value=t,yi(u.value);case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),I=t.ref();return r({validate:D,submit:T,reset:function(e){I.value=e,u.value.reset()},clearValidate:function(e){c.value.forEach((function(t){H(t.resetHandler)&&_(String(t.name),e)&&t.resetHandler()}))},setValidateMessage:function(e){var t=Object.keys(e);if(t.length){var n=c.value.filter((function(e){return H(e.setValidateMessage)&&t.includes("".concat(e.name))})).map((function(t){return t.setValidateMessage(e[t.name])}));Promise.all(n)}},validateOnly:E}),function(){return t.createVNode("form",{ref:u,class:P.value,onSubmit:function(t){return function(t){e.preventSubmitDefault&&t&&(t.preventDefault(),t.stopPropagation()),D(F.value).then((function(n){var r;null===(r=e.onSubmit)||void 0===r||r.call(e,{validateResult:n,firstError:k(n),e:t})})),F.value=void 0}(t)},onReset:function(t){return function(t){var n;e.preventSubmitDefault&&t&&(t.preventDefault(),t.stopPropagation()),c.value.filter((function(e){var t;return H(e.resetField)&&_(String(e.name),null===(t=I.value)||void 0===t?void 0:t.fields)})).forEach((function(e){var t;return e.resetField(null===(t=I.value)||void 0===t?void 0:t.type)})),I.value=void 0,null===(n=e.onReset)||void 0===n||n.call(e,{e:t})}(t)}},[o("default")])}}}),CS=iu(OS),xS=iu(bS),PS={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},SS=Symbol("RadioGroupProvide"),jS=Symbol("RadioButtonProvide"),kS=t.defineComponent({name:"TRadio",inheritAttrs:!1,props:PS,setup:function(e,n){var r=n.attrs,o=t.ref(),a=t.toRefs(e),l=Ra(Mi(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(SS,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 Hi({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=gl({afterDisabled:y}),O=Di({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=pl().STATUS,P=t.inject(jS,void 0),S=fl("radio-button"),j=fl("radio"),k=t.computed((function(){return P?S.value:j.value})),N=t.computed((function(){return["".concat(k.value),s(s({},x.value.checked,C.value.checked),x.value.disabled,C.value.disabled)]})),_=nl();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")])])}}}),NS={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 _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 VS(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{},l=a.window,i=void 0===l?FS:l,u=Ri(a,ES),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 IS(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function MS(e){for(var t=1;t0&&void 0!==arguments[0]&&arguments[0];if("outline"!==e.variant){var n=l.value.querySelector(p.value),r=t?"none":"all";if(n){var o=n.offsetWidth,a=n.offsetHeight,i=n.offsetLeft,u=n.offsetTop;o?m.value={"transition-property":r,width:"".concat(o,"px"),height:"".concat(a,"px"),left:"".concat(i,"px"),top:"".concat(u,"px")}:function(){var e=document.createElement("div");e.setAttribute("style","position: absolute; visibility: hidden;"),e.appendChild(l.value.cloneNode(!0)),document.body.appendChild(e);var t=e.querySelector(p.value),n=t.offsetWidth,r=t.offsetHeight,o=t.offsetLeft,a=t.offsetTop;m.value=MS(MS({},m.value),{},{width:"".concat(n,"px"),height:"".concat(r,"px"),left:"".concat(o,"px"),top:"".concat(a,"px")}),document.body.removeChild(e)}()}else m.value={"transition-property":r,width:"0px",height:"9px",left:"0px",top:"0px"}}};t.watch(o,xp(Ip.mark((function e(){return Ip.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,t.nextTick();case 1:h();case 2:case"end":return e.stop()}}),e)})))),t.onMounted((function(){h(!0),Ei(l,Ea(xp(Ip.mark((function e(){return Ip.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,t.nextTick();case 1:h();case 2:case"end":return e.stop()}}),e)}))),300));var e=l.value.querySelector("".concat(p.value," .").concat(i.value,"__label"));e&&(f=TS(e,(function(e){e.forEach((function(e){"characterData"===e.type&&h()}))}),{attributes:!0,childList:!0,characterData:!0,subtree:!0}))})),t.onUnmounted((function(){var e;null===(e=f)||void 0===e||e.stop()}));var g=t.toRefs(e),y=g.name,b=g.disabled,w=g.readonly;t.provide(SS,t.reactive({name:y,disabled:b,readonly:w,value:o,allowUncheck:e.allowUncheck,setValue:v}));var O=fl("radio-group"),C=tl(),x=function(){if(e.variant.includes("filled")&&!Wo(o.value))return t.createVNode("div",{style:m.value,class:"".concat(O.value,"__bg-block")},null)},P=t.computed((function(){return["".concat(O.value),d.value[e.size],s(s(s({},"".concat(O.value,"__outline"),"outline"===e.variant),"".concat(O.value,"--filled"),e.variant.includes("filled")),"".concat(O.value,"--primary-filled"),"primary-filled"===e.variant)]}));return function(){return t.createVNode("div",{ref:l,class:P.value},[C("default")||(null===(n=e.options)||void 0===n?void 0:n.map((function(n){var r=n;(Ho(n)||Do(n))&&(r={value:n,label:n.toString()});var a="button"===e.theme?DS:kS;return t.createVNode(a,{key:"radio-group-options-".concat(r.value,"-").concat(Math.random()),name:e.name,checked:o.value===r.value,disabled:"disabled"in r?r.disabled:e.disabled,value:r.value},{default:function(){return[H(r.label)?r.label(t.h):r.label]}})}))),x()]);var n}}}),BS=iu(kS),LS=iu(AS),RS=iu(DS),zS={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},HS=function(e,t){return t?{top:"calc(".concat(100-e,"% - 1px)")}:{left:"".concat(e,"%")}},WS=function(e,t){return"first"===t?e instanceof Array?e[0]:e:e instanceof Array?e[1]:0};function KS(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function US(e){for(var t=1;t100?r=100:r<0&&(r=0);var o=100*g.value/m.value,a=Math.round(r/o)*o*m.value*.01;a+=d.min,a=Number(parseFloat("".concat(a)).toFixed(d.precision)),n.emit("input",a),t.nextTick((function(){var e,t;l.value&&(null===(e=(t=l.value).updatePopper)||void 0===e||e.call(t))}))}},w=function(){v.value.focus(),u(!0)},O=function(){p.dragging||u(!1)},C=function(t){var n=t;if(p.dragging){f.value=!0,p.isClick=!1,null!=d&&d.resetSize&&H(null==d?void 0:d.resetSize)&&d.resetSize();var r=0,o=d.sliderSize,a=n.type,l=n.clientY,i=n.clientX;if("touchmove"===a){var u=n.touches,c=[u[0].clientY,u[0].clientX];l=c[0],i=c[1]}r=(r=e.vertical?p.startY-l:i-p.startX)/o*100,p.newPos=p.startPos+r,b(p.newPos)}},x=function(){p.dragging&&(setTimeout((function(){p.dragging=!1,u(!1),p.isClick||b(p.newPos),f.value&&n.emit("mouseup"),f.value=!1}),0),window.removeEventListener("mousemove",C),window.removeEventListener("touchmove",C),window.removeEventListener("mouseup",x),window.removeEventListener("touchend",x),window.removeEventListener("contextmenu",x))};function P(t){d.disabled||(t.preventDefault(),function(t){p.dragging=!0,p.isClick=!0;var n=t.type,r=t.clientY,o=t.clientX;if("touchstart"===n){var a=t.touches,l=[a[0].clientY,a[0].clientX];r=l[0],o=l[1]}e.vertical?p.startY=r:p.startX=o,p.startPos=parseFloat(h.value),p.newPos=p.startPos}(t),window.addEventListener("mousemove",C),window.addEventListener("mouseup",x),window.addEventListener("touchmove",C),window.addEventListener("touchend",x),window.addEventListener("contextmenu",x))}var S=function(e){if(!d.disabled){var t=g.value/m.value*100;"sub"===e&&(t=-t),p.newPos=parseFloat(h.value)+t,b(p.newPos)}},j=function(e){var t=e.code;e.preventDefault(),"ArrowDown"!==t&&"ArrowLeft"!==t||S("sub"),"ArrowUp"!==t&&"ArrowRight"!==t||S("add")};return n.expose({setPosition:b}),function(){return t.createVNode("div",{ref:v,class:"".concat(r.value,"-wrapper"),style:y.value,tabindex:"0","show-tooltip":c.value,onMouseenter:w,onMouseleave:O,onMousedown:P,onTouchstart:P,onFocus:w,onBlur:O,onKeydown:j},[t.createVNode(lg,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)]}})])}}}),XS=t.defineComponent({name:"TSliderMark",props:{mark:{type:[Object,Array,String,Number]},point:{type:Number},onClickMarkPoint:{type:Function,default:function(){}}},setup:function(e){var n=fl("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 GS(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function JS(e){for(var t=1;te.max)return[];if(0===e.step)return console.warn("[Element Warn][Slider]step should not be 0."),[];for(var t=j.value/e.step,n=100*e.step/j.value,r=[],o=1;o100*(N.value-e.max)/j.value})):r.filter((function(t){return t>100*(m.value-e.min)/j.value}))})),V=t.computed((function(){var t=[e.min,e.max,e.step].map((function(e){var t="".concat(e).split(".");return t[1]?t[1].length:0}));return Math.max.apply(null,t)})),D=function(t){var n=[e.min,e.max],r=n[0],o=n[1];if(!(r>o)){if(e.range&&S(t)){var a=[Math.min.apply(Math,i(t)),Math.max.apply(Math,i(t))],l=a[0],u=a[1];l>o&&(l=m.value),lo&&(u=o);var c=[l,u];return m.value=c[0],h.value=c[1],[l,u]}var s=t;return so&&(s=o),s}console.warn("[Slider] max should be greater than min.")},E=function(t){var n=t;void 0===n&&(n=e.range?[m.value,h.value]:m.value);var r=D(n);c(r)},F=function(){v.value&&(y.value=v.value["client".concat(b.value?"Height":"Width")])},T=t.ref(!1),I=function(){var t;e.range?(S(u.value)?(m.value=Math.max(e.min||0,u.value[0]),h.value=Math.min(e.max||100,u.value[1])):(m.value=e.min||0,h.value=e.max||100),t="".concat(m.value,"-").concat(h.value)):(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*j.value/100;(r=e.min+r,e.range||!f.value)?("button1"===(n=Math.abs(k.value-r)h.value?"button1":"button2")&&f.value&&f.value.setPosition(t),"button2"===n&&p.value&&p.value.setPosition(t)):f.value.setPosition(t)},A=function(){var t=e.range?[m.value,h.value]:m.value;return D(t)},B=function(t){var r;if(!n.value&&!g.value&&v.value){F();var o=0;if(b.value){o=(v.value.getBoundingClientRect().bottom-t.clientY)/y.value*100,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/j.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(S(t)&&e.range){var n=Ra(t,2);m.value=n[0],h.value=n[1]}else m.value=t})),t.watch([m,h,g],(function(t,n){t[0]!==n[0]&&(e.range?E([k.value,N.value]):E(m.value)),t[1]!==n[1]&&e.range&&E([k.value,N.value]),t[2]!==n[2]&&!1===t[2]&&I()})),t.onMounted((function(){I(),T.value=!0})),t.onBeforeUnmount((function(){window.removeEventListener("resize",F)}));var R,z,H,W=t.computed((function(){return{max:e.max,min:e.min,marks:e.marks,vertical:b.value,prefixName:r.value}})),K=(z=(R=W).value.prefixName,H=t.computed((function(){var e=R.value;if(!e.marks)return[];var t=[];if(S(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&&Nl("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:HS(e.position,R.value.vertical),key:n},null)}))]),t.createVNode("div",{class:"".concat(z,"__mark")},[H.value.map((function(n,r){return t.createVNode(XS,{mark:n.mark,point:n.point,key:r,style:HS(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=JS(JS({},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(ib,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(ZS,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(qS,{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(qS,{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:HS(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}}}),tj=iu(ej),nj=iu(qS),rj={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},oj=t.defineComponent({name:"TSwitch",props:rj,setup:function(e,n){var r=n.slots,o=gl(),a=fl("switch"),l=pl(),i=l.STATUS,u=l.SIZE,c=t.toRefs(e),d=Ra(Mi(c.value,c.modelValue,e.defaultValue,e.onChange),2),v=d[0],f=d[1],p=t.computed((function(){return!(e.customValue&&e.customValue.length>0)||e.customValue[0]})),m=t.computed((function(){return!!(e.customValue&&e.customValue.length>1)&&e.customValue[1]}));function h(e){var t=v.value===p.value?m.value:p.value;f(t,{e:e})}function g(t){o.value||e.loading||(e.beforeChange?Promise.resolve(e.beforeChange()).then((function(e){e&&h(t)})).catch((function(e){throw new Error("Switch: some error occurred: ".concat(e))})):h(t))}var y=t.computed((function(){return["".concat(a.value),u.value[e.size],s(s(s({},i.value.disabled,o.value),i.value.loading,e.loading),i.value.checked,v.value===p.value||e.modelValue===p.value)]})),b=t.computed((function(){return["".concat(a.value,"__handle"),s(s({},i.value.disabled,o.value),i.value.loading,e.loading)]})),w=t.computed((function(){return["".concat(a.value,"__content"),u.value[e.size],s({},i.value.disabled,o.value)]}));t.watch(v,(function(t){if(e.customValue&&e.customValue.length&&!e.customValue.includes(t))throw new Error("value is ".concat(t," not in ").concat(JSON.stringify(e.customValue)))}),{immediate:!0});var O=t.computed((function(){if(H(e.label))return e.label(t.h,{value:v.value});if(Do(e.label))return e.label;if(S(e.label)&&e.label.length){var n=v.value===p.value?e.label[0]:e.label[1];if(!n)return;if(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(uu,{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])])}}}),aj=iu(oj),lj={allowInputOverMax:Boolean,autofocus:Boolean,autosize:{type:[Boolean,Object],default:!1},disabled:{type:Boolean,default:void 0},maxcharacter:{type:Number},maxlength:{type:[String,Number]},name:{type:String,default:""},placeholder:{type:String,default:void 0},readonly:{type:Boolean,default:void 0},status:{type:String,default:"default",validator:function(e){return!e||["default","success","warning","error"].includes(e)}},tips:{type:[String,Function]},value:{type:[String,Number],default:void 0},modelValue:{type:[String,Number],default:void 0},defaultValue:{type:[String,Number]},onBlur:Function,onChange:Function,onFocus:Function,onKeydown:Function,onKeypress:Function,onKeyup:Function,onValidate:Function};function ij(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;QS||(QS=document.createElement("textarea"),document.body.appendChild(QS));var o=function(e){if("undefined"==typeof window)return{paddingSize:0,borderSize:0,boxSizing:0,sizingStyle:""};var t=window.getComputedStyle(e),n=t.getPropertyValue("box-sizing")||t.getPropertyValue("-moz-box-sizing")||t.getPropertyValue("-webkit-box-sizing");return{paddingSize:parseFloat(t.getPropertyValue("padding-bottom"))+parseFloat(t.getPropertyValue("padding-top")),borderSize:parseFloat(t.getPropertyValue("border-bottom-width"))+parseFloat(t.getPropertyValue("border-top-width")),boxSizing:n,sizingStyle:$i.map((function(e){return"".concat(e,":").concat(t.getPropertyValue(e))})).join(";")}}(e),a=o.paddingSize,l=o.borderSize,i=o.boxSizing,u=o.sizingStyle;QS.setAttribute("style","".concat(u,";").concat("\n min-height:0 !important;\n max-height:none !important;\n height:0 !important;\n visibility:hidden !important;\n overflow:hidden !important;\n position:absolute !important;\n z-index:-1000 !important;\n top:0 !important;\n right:0 !important\n")),QS.value=e.value||e.placeholder||"";var c=QS.scrollHeight,s={},d="border-box"===i;d?c+=l:"content-box"===i&&(c-=a),QS.value="";var v=QS.scrollHeight-a;null===(t=QS)||void 0===t||null===(t=t.parentNode)||void 0===t||t.removeChild(QS),QS=null;var f=function(e){var t=v*e;return d&&(t=t+a+l),t};if(!Ko(n)){var p=f(n);c=Math.max(p,c),s.minHeight="".concat(p,"px")}return Ko(r)||(c=Math.min(f(r),c)),s.height="".concat(c,"px"),s}var uj=t.defineComponent({name:"TTextarea",inheritAttrs:!1,props:lj,setup:function(e,n){var r=n.attrs,o=n.expose,a=fl(),l=fl("textarea"),i=t.computed((function(){return"".concat(l.value,"__tips")})),c=t.computed((function(){return"".concat(l.value,"__limit")})),d=t.toRefs(e),v=Ra(Mi(d.value,d.modelValue,e.defaultValue,e.onChange),2),f=v[0],p=v[1],m=gl(),h=Di(),g=t.ref({}),y=t.ref(),b=t.ref(!1),w=t.ref(!1),O=function(){var n;if(!0===e.autosize)t.nextTick((function(){g.value=ij(y.value)}));else if(e.autosize&&"object"===u(e.autosize)){var o=e.autosize,a=o.minRows,l=o.maxRows;t.nextTick((function(){g.value=ij(y.value,a,l)}))}else r.rows?g.value={height:"auto",minHeight:"auto"}:r.style&&null!==(n=y.value)&&void 0!==n&&null!==(n=n.style)&&void 0!==n&&n.height&&(g.value={height:y.value.style.height})},C=function(n){var r=n.target.value;if(e.maxcharacter&&e.maxcharacter>=0){var o=Ui(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},S=function(e){w.value=!1,C(e)},j=function(t,n){var r;if(!m.value){var o="on".concat(t[0].toUpperCase()).concat(t.slice(1));null===(r=e[o])||void 0===r||r.call(e,f.value,{e:n})}},k=function(e){j("keydown",e)},N=function(e){j("keyup",e)},_=function(e){j("keypress",e)},V=function(t){var n;O(),m.value||(b.value=!0,null===(n=e.onFocus)||void 0===n||n.call(e,f.value,{e:t}))},D=t.inject(xy,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 Hi({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=Ui(String(f.value||""));return"object"===u(e)?e.length:e})),A=Py(t.computed((function(){return{value:[void 0,null].includes(f.value)?void 0:String(f.value),status:e.status,maxlength:Number(e.maxlength),maxcharacter:e.maxcharacter,allowInputOverMax:e.allowInputOverMax,onValidate:e.onValidate}}))).tStatus;t.watch((function(){return f.value}),(function(){return O()})),t.watch(y,(function(t){t&&(O(),e.autofocus&&t.focus())})),t.watch(g,(function(e){var t=r.style;E(t)?Fi(y.value,Go(t,e)):Fi(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=el();return function(){var n,o=Hi({onFocus:V,onBlur:F,onKeydown:k,onKeyup:N,onKeypress:_}),d=pl().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:S,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])}}}),cj=iu(uj);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}var dj="source",vj="target";function fj(e){return S(e)?{source:e[0],target:e[1]}:{source:e,target:e}}function pj(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=pj(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 mj(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=mj(e.children,t,!0)),u}));return r}function hj(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 hj(e,t,n)})):!n:!n}function gj(e,t,n,r){e.forEach((function(e){var o;!function(e,t,n){return!!t.includes(e.value)&&n}(e,n,r)?hj(e,n,r)&&(o=function(e){for(var t=1;t2&&void 0!==arguments[2])||arguments[2];if(!(arguments.length>3&&void 0!==arguments[3]&&arguments[3]))return n?null==t?void 0:t.map((function(t){return e.find((function(e){return e.value===t}))})).filter((function(e){return!!e})):e.filter((function(e){return!t.includes(e.value)}));var r=[];return gj(e,r,t,n),r}function bj(e){var t=0;return e.forEach((function(e){e.children&&e.children.length>0?t+=bj(e.children):t+=1})),t}var wj=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=fl(),r=xl({SearchIcon:Fv}).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(Ty,t.mergeProps(a,{defaultValue:e.value,onChange:o,placeholder:e.placeholder}),{default:function(){return[t.createVNode(r,{slot:"suffix-icon"},null)]}})])}}});function Oj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Cj(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)?Cj(Cj(Cj({},{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=pj(e.dataSource,[],{isTreeMode:e.isTreeMode,include:!1});return e.checkedValue.length>0&&(e.isTreeMode?t.every((function(t){return e.checkedValue.includes(t)})):(e.search?p.value:e.dataSource).every((function(t){return t.disabled||e.checkedValue.includes(t.value)})))})),j=t.computed((function(){return!P.value&&e.checkedValue.length>0})),k=t.computed((function(){return bj(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))},(S(n)?Zn:_o)(n,ao(r))},_=function(t){var n;null===(n=e.onPageChange)||void 0===n||n.call(e,t),s.value=t.current,d.value=t.pageSize},V=function(t){var n;null===(n=e.onCheckedChange)||void 0===n||n.call(e,t)},D=function(t){if(t){var n=pj(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=tl(),I=function(){var r,o,a=e.draggable&&e.listType===vj,l=null;a?l=t.createVNode(Uw,{value:e.checkedValue,onChange:V},xj(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(Kw,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),xj(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(Uw,{value:e.checkedValue,onChange:V},xj(o=h.value.map((function(r,o){var a;return t.createVNode(Kw,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),xj(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(Kw,{disabled:e.disabled||!e.dataSource.length,checked:P.value,indeterminate:j.value,onChange:D},null),t.createVNode("span",null,[a(l.value.title,{checked:e.checkedValue.length,total:k.value})])]),(r=e.title&&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(wj,{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(jO,t.mergeProps(g.value,{onChange:_}),null)]),A()]);var r,o}}}),jj={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},kj=t.defineComponent({name:"TTransferOperations",props:{leftDisabled:{type:Boolean,required:!0},rightDisabled:{type:Boolean,required:!0},operation:jj.operation},emits:["moveToRight","moveToLeft"],setup:function(e,n){var r=n.slots,o=n.emit,a=fl(),l=xl({ChevronRightIcon:Xc,ChevronLeftIcon:Ic}),i=l.ChevronRightIcon,u=l.ChevronLeftIcon,c=function(){o("moveToRight")},s=function(){o("moveToLeft")},d=function(){return t.createVNode(i,null,null)},v=function(){return t.createVNode(u,null,null)},f=function(t){return H(e.operation)||"right"===t&&e.operation&&H(e.operation[0])||"left"===t&&e.operation&&H(e.operation[1])||r.operation?null:"left"===t?v:d},p=function(t,n){if(H(r.operation))return r.operation({direction:n});var o;if(H(e.operation))return(0,e.operation)(t,{direction:n});if(S(e.operation)){var a=Ra(e.operation,2),l=a[0],i=a[1];o="right"===n?i:l}else o="";return o};return function(){return t.createVNode("div",{class:"".concat(a.value,"-transfer__operations")},[t.createVNode(fu,{variant:"outline",size:"small",shape:S(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||S(e.operation)&&e.operation[1]?p(t.h,"right"):null]}}),t.createVNode(fu,{variant:"outline",size:"small",shape:S(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||S(e.operation)&&e.operation[0]?p(t.h,"left"):null]}})])}}});var Nj=t.defineComponent({name:"TTransfer",props:jj,setup:function(e,n){var r=n.slots,o=gl(),a=fl(),l=t.toRefs(e),u=l.value,c=l.modelValue,d=l.checked,v=Ra(Mi(u,c,e.defaultValue,e.onChange),2),f=v[0],p=v[1],m=Ra(ml(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 mj(e.data,e.keys,g.value)})),O=t.computed((function(){return yj(w.value,h.value,!1,g.value)})),C=t.computed((function(){return yj(w.value,h.value,!0,g.value)})),x=t.computed((function(){return s(s({},dj,pj(O.value,m.value,{isTreeMode:g.value})),vj,pj(C.value,m.value,{isTreeMode:g.value}))})),P=t.computed((function(){return!!r.footer||!!e.footer})),S=t.computed((function(){return!!e.pagination&&!r.content})),j=t.computed((function(){return!!e.search})),k=t.computed((function(){return fj(e.footer||"")})),N=t.computed((function(){return fj(e.empty)})),_=t.computed((function(){return fj(e.search)})),V=t.computed((function(){return fj(e.showCheckAll)})),D=t.computed((function(){return fj(o.value)})),E=t.computed((function(){return fj(e.title)})),F=t.computed((function(){return fj(e.pagination)})),T=function(t,n){var r,o=n===dj?t:x.value[dj],a=n===vj?t:x.value[vj],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===vj?x.value[dj]:x.value[vj];if(t===dj)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=pj(w.value,r.concat(o),{isTreeMode:g.value,remainValue:a})}else n="unshift"===e.targetSort?o.concat(r):r.concat(o);T([],t===dj?vj:dj),p(n,{type:t,movedValue:o})},M=function(){I(vj)},A=function(){I(dj)},B=function(t){var n;null===(n=e.onSearch)||void 0===n||n.call(e,t)},L=function(e,t){p(e,{type:vj,movedValue:t})},R=function(n){var o,a=xa(r,["title","empty","footer","operation","transferItem","default","tree"]);return t.createVNode(Sj,{checkboxProps:e.checkboxProps,transferItem:e.transferItem,"list-type":n,title:E.value[n],"data-source":n===dj?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===vj},"function"==typeof(o=a)||"[object Object]"===Object.prototype.toString.call(o)&&!t.isVNode(o)?a:{default:function(){return[a]}})};return function(){return t.createVNode("div",{class:["".concat(a.value,"-transfer"),j.value?"".concat(a.value,"-transfer__search"):"",P.value?"".concat(a.value,"-transfer__footer"):"",S.value?"".concat(a.value,"-transfer__pagination"):"",g.value?"".concat(a.value,"-transfer--with-tree"):""]},[R(dj),t.createVNode(kj,{leftDisabled:D.value[vj]||y.value||0===x.value[vj].length,rightDisabled:D.value[dj]||b.value||0===x.value[dj].length,operation:e.operation,onMoveToRight:M,onMoveToLeft:A},{operation:r.operation}),R(vj)])}}}),_j=iu(Nj);function Vj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var 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]:"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?Mi(t[n],a,e[r],e[o],n):ml(t[n],e[r],e[o],n)}var Wj=function(e){return e[e.Before=-1]="Before",e[e.Inside=0]="Inside",e[e.After=1]="After",e}(Wj||{});function Kj(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=tk(tk({},p),{},{disabled:b}),O=m;m=t.createVNode(Kw,{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 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){var n=e.treeScope,r=e.treeItemRef,o=n.virtualConfig,a=n.treeContentRef,l=n.scrollProps,i=fl().value,u=fl("tree").value,c=Jj(e).handleClick,d=Qj(e).renderIcon,v=nk(e).renderLabel,f=function(e){var n=fl("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=qj(u,{createElement:r,node:o});return s}}}(e),p=f.renderLine,m=function(e){var n=fl("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()}):qj(i,{createElement:r,node:o}))&&(u=t.createVNode("span",{class:"".concat(n,"__operations"),ignore:"active,expand"},[u])),u}}}(e),h=m.renderOperations,g=Kj(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=!li&&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;Cl(n.value,e.value,u,a)}))})),{hasLazyLoadHolder:l,tRowHeight:o}}(a,r,t.reactive(function(e){for(var t=1;t0),"".concat(u,"__item--tip-highlight"),!r&&n&&0===o)),a}();return e.stateId=o.stateId,t.createVNode("div",{ref:"treeItemRef",class:v,"data-value":l,"data-level":a,style:d,onClick:function(e){return c(e)},draggable:r.isDraggable(),onDragstart:function(e){return b(e)},onDragend:function(e){return w(e)},onDragover:function(e){return O(e)},onDragleave:function(e){return C(e)},onDrop:function(e){return x(e)}},[S.value?[t.createVNode("div",null,null)]:N(n)])}}}function ak(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function lk(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};Yj(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[SC];return t.createVNode(uk,{key:i,rowIndex:l,stateId:a,itemKey:i,treeScope:r,onClick:u,onChange:c},null)}(0,e,o,n)}));return o}}}function sk(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function dk(e){for(var t=1;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};Yj(t,n,"drag-start",l)},handleDragEnd:function(e){var r=e.dragEvent,o=e.node;a=o;var l={node:o.getModel(),e:r};Yj(t,n,"drag-end",l)},handleDragOver:function(e){var r=e.dragEvent,o={node:e.node.getModel(),e:r};Yj(t,n,"drag-over",o)},handleDragLeave:function(e){var r=e.dragEvent,o={node:e.node.getModel(),e:r};Yj(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===Wj.Inside?a.appendTo(o,e):u===Wj.Before?i.insertBefore(a):i.insertAfter(a),!0)})),Yj(t,n,"drop",c))}}};r.drag=l}(s);var g=Gj(s),y=g.setActived,b=g.setExpanded,w=g.setChecked,O=vk(s),C=O.onInnerVirtualScroll,x=O.virtualConfig,P=O.scrollToElement,S=ck(s),j=S.renderTreeNodes,k=S.nodesEmpty,N=function(e){var n=e.props,r=fl("tree").value,o=fl().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:fk(u.value),maxHeight:fk(c.value),overflowY:fk(u.value)||fk(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:j,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=Xj(n,r);o?n.appendNodes(e,o):n.appendNodes(e,t)}))},insertBefore:function(e,t){var n=this.store,r=Xj(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=Xj(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=hk(hk({},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=zj(),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):Ua(this,"empty");x=t.createVNode("div",{class:"".concat(O,"__empty")},[P])}else w.length<=0&&(x=t.createVNode("div",null,null));var S,j=null;j=!this.$props.transition||C&&d?t.createVNode("div",{class:"".concat(O,"__list"),style:p},[w]):t.createVNode(t.TransitionGroup,{tag:"div",class:"".concat(O,"__list"),"enter-active-class":"".concat(O,"__item--enter-active"),"leave-active-class":"".concat(O,"__item--leave-active"),style:p},"function"==typeof(S=w)||"[object Object]"===Object.prototype.toString.call(S)&&!t.isVNode(S)?w:{default:function(){return[w]}});var k=(null!==(n=null===(r=y.value)||void 0===r?void 0:r.filter((function(e){return e.visible})).length)&&void 0!==n?n:0)*(null!==(o=null===(a=b.scroll.value)||void 0===a?void 0:a.rowHeight)&&void 0!==o?o:34),N={width:"1px",height:"1px",opacity:0,pointerEvents:"none",position:"absolute",left:0,top:"".concat(k,"px")},_=t.createVNode("div",{style:N},null);return t.createVNode("div",{class:i,ref:"treeContentRef",onScroll:this.onInnerVirtualScroll,style:f},[C&&t.createVNode("div",{class:"".concat(O,"__vscroll-cursor"),style:m},null),x||j,C&&_])}}),yk=iu(gk),bk={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 wk(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var 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?S(j.value)?j.value.map((function(e){return e.value})):[]:S(j.value)?j.value.map((function(e){return e})):[]:[]})),W=t.computed((function(){return e.multiple&&!!e.max&&S(j.value)&&e.max<=j.value.length})),K=t.computed((function(){var t;return 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(xp(Ip.mark((function t(){var n;return Ip.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:T(),!j.value&&e.defaultValue&&$(e.defaultValue,null,"uncheck"),R.value?m.value=S(j.value)?j.value.map((function(e){return null==e?void 0:e.value})):[null===(n=j.value)||void 0===n?void 0:n.value]:m.value=S(j.value)?j.value:[j.value],ne();case 1:case"end":return t.stop()}}),t)}))));var $=function(e,t,n){k(e,{node:t,trigger:n}),ne()},Z=function(t){var n,r=e.multiple?[]:"";m.value=[],$(r,null,"clear"),null===(n=e.onClear)||void 0===n||n.call(e,{e:t.e})},q=function(e,t){var n=e;R.value&&(n=e.map(ae)),$(n,t.node,"check")},X=function(t,n){if(e.multiple||V(!1,n),!e.multiple&&n.node.actived&&j.value!==n.node.data[U.value]){var r=t;if(R.value){var o=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)&&S(j.value)&&j.value.splice(a,1),null===(r=e.onRemove)||void 0===r||r.call(e,{value:t,data:null,e:n&&n.e}),$(j.value,null,o)},te=function(e,t){V(e,t),e&&"trigger-element-click"===t.trigger&&F("")},ne=function(){var t=xp(Ip.mark((function t(){return Ip.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:e.multiple?e.multiple?S(j.value)?g.value=oe():g.value=[]:g.value=null:j.value||0===j.value?g.value=re():g.value="";case 1:case"end":return t.stop()}}),t)})));return function(){return t.apply(this,arguments)}}(),re=function(){var e=R.value?j.value.value:j.value;return ae(e)},oe=function(){return j.value.map((function(e){var t=R.value?e.value:e;return ae(t)}))},ae=function(t){if(p.value){var n=p.value.getItem(t);if(n)return 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;n0&&void 0!==arguments[0]?arguments[0]:"RGB",n=arguments.length>1?arguments[1]:void 0;if(e=n&&Object.keys(Lk).find((function(e){return e in Lk&&Lk[e]===t}))||t,!Rk[e])return[];var r=i(Rk[e]);return n&&"CMYK"!==t&&r.push({type:"inputNumber",key:"a",min:0,max:100,format:function(e){return"".concat(e,"%")},flex:1.15}),r},mN=function(e){var n=fl("color-picker");return t.computed((function(){return e?"".concat(n.value,"-").concat(e):n.value}))};function hN(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function gN(e){for(var t=1;t2&&r>=0&&r<=o-1){n.splice(r,1),n[r]||(r=n[r+1]?r+1:n[r-1]?r-1:0);var a=n[r];p(n,!0),f(null==a?void 0:a.id)}}},y=function(t){if(!e.disabled&&e.enableMultipleGradient){var n=t.clientX-a.left,r=(n=Math.max(0,Math.min(a.width,n)))/a.width*100,o=Jk(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=Gk({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(ib,{size:"small",theme:"normal",min:0,max:360,step:1,format:function(e){return"".concat(e,"\xb0")},modelValue:u.value,"onUpdate:modelValue":function(e){return u.value=e},onBlur:v,onEnter:v,disabled:e.disabled},null)]),t.createVNode("div",{class:["".concat(n.value,"__gradient-preview"),"".concat(n.value,"--bg-alpha")]},[t.createVNode("span",{class:"preview-inner",style:{background:p}},null)])])}}}),SN=t.defineComponent({name:"SaturationPanel",props:wN,setup:function(e){var n=mN(),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 uN(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 jN(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function kN(e){for(var t=1;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 zN(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function HN(e){for(var t=1;t-1&&e.splice(n,1),e.unshift(t),e.length>100&&(e.length=100),j(e)}},j=function(e){y(e)},k=function(t){var n=x.value.getFormattedColor(e.format,e.enableAlpha);m(n,{color:tN(x.value),trigger:t||"palette-saturation-brightness"})};t.watch((function(){return p.value}),(function(e){var t=b(e);w.value=t,x.value.isGradient="linear-gradient"===t,x.value.update(e)}));var N=function(e){w.value=e;var t="linear-gradient"===e;x.value.isGradient=t,t?x.value.update(x.value.gradientColors.length>0?x.value.linearGradient:Mk):x.value.update(x.value.rgba),k()},_=function(e){var t=e.saturation,n=e.value,r=x.value,o=r.saturation,a=r.value,l="palette-saturation-brightness";if(n!==a&&t!==o)x.value.saturation=t,x.value.value=n,l="palette-saturation-brightness";else if(t!==o)x.value.saturation=t,l="palette-saturation";else{if(n===a)return;x.value.value=n,l="palette-brightness"}k(l)},V=function(t){var n;x.value.hue=t,k("palette-hue-bar"),null===(n=e.onPaletteBarChange)||void 0===n||n.call(e,{color:tN(x.value)})},D=function(e){x.value.alpha=e,k("palette-alpha-bar")},E=function(e,t){x.value.update(e),x.value.alpha=t,k("input")},F=function(e){var t=e.key,n=e.payload,r="palette-saturation-brightness";switch(t){case"degree":x.value.gradientDegree=n,r="input";break;case"selectedId":x.value.gradientSelectedId=n;break;case"colors":x.value.gradientColors=n}k(r)},T=function(e,t){var n=b(e);w.value=n,x.value.isGradient="linear-gradient"===n,x.value.update(e),k(t)};return function(){var r={color:x.value,disabled:e.disabled},o=1===e.colorModes.length&&e.colorModes.includes("linear-gradient"),c=g.value;o&&Array.isArray(c)&&(c=c.filter((function(e){return Qk.isGradientColor(e)})));var s=!!Array.isArray(c),d=e.swatchColors;void 0===d&&(d=i(Ak)),o&&(d=d.filter((function(e){return Qk.isGradientColor(e)})));var v=Array.isArray(d);return t.createVNode("div",{class:["".concat(n.value,"__panel"),!!e.disabled&&u.disabled]},[t.createVNode(bN,t.mergeProps(e,{mode:w.value,onModeChange:N}),null),t.createVNode("div",{class:["".concat(n.value,"__body")]},[O.value?t.createVNode(PN,t.mergeProps(r,{onChange:F,enableMultipleGradient:e.enableMultipleGradient}),null):null,t.createVNode(SN,t.mergeProps(r,{onChange:_}),null),t.createVNode("div",{class:["".concat(n.value,"__sliders-wrapper")]},[t.createVNode("div",{class:["".concat(n.value,"__sliders")]},[t.createVNode(_N,t.mergeProps(r,{onChange:V}),null),e.enableAlpha?t.createVNode(VN,t.mergeProps(r,{onChange:D}),null):null]),e.showPrimaryColorPreview?t.createVNode("div",{class:["".concat(n.value,"__sliders-preview"),"".concat(n.value,"--bg-alpha")]},[t.createVNode("span",{class:"".concat(n.value,"__sliders-preview-inner"),style:{background:O.value?x.value.linearGradient:x.value.rgba}},null)]):null]),t.createVNode(AN,t.mergeProps(e,{color:x.value,format:P.value,onInputChange:E}),null),v||s?t.createVNode(t.Fragment,null,[t.createVNode("div",{class:"".concat(n.value,"__swatches-wrap")},[s?t.createVNode(RN,t.mergeProps(r,{title:a(l.value.recentColorTitle),editable:!0,colors:c,handleAddColor:S,onSetColor:function(e){return T(e,"recent")},onChange:j}),null):null,v?t.createVNode(RN,t.mergeProps(r,{title:a(l.value.swatchColorTitle),colors:d,onSetColor:function(e){return T(e,"preset")}}),null):null])]):null])])}}});function KN(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function UN(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:o_({},g.value)},[l]),d&&(l=[d,v?"":l]),b&&c.value&&(l=t.createVNode(n_,t.mergeProps({style:o_({},h.value),src:b,alt:w,onError:y},e.imageProps),null)),t.createVNode("div",{ref:i,class:O,style:o_({},m.value)},[l])}}}),l_={cascading:{type:String,default:"right-up",validator:function(e){return!e||["left-up","right-up"].includes(e)}},collapseAvatar:{type:[String,Function]},max:{type:Number},popupProps:{type:Object},size:{type:String,default:""}};var i_=t.defineComponent({name:"TAvatarGroup",props:l_,setup:function(e){t.provide("avatarGroup",e);var n=el(),r=fl("avatar"),o=fl("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(a_,{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(Ha(l))]:[l];return t.createVNode("div",{class:c},[d])}}}),u_=iu(a_),c_=iu(i_),s_={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)}}},d_=t.defineComponent({name:"TBadge",inheritAttrs:!1,props:s_,setup:function(e,n){var r=n.attrs,o=nl(),a=el(),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=fl(),u=fl("badge"),c=t.computed((function(){return!e.showZero&&(0===l.value||"0"===l.value)})),d=t.computed((function(){return[s(s(s(s({},"".concat(u.value,"--dot"),!!e.dot),"".concat(u.value,"--circle"),!e.dot&&"circle"===e.shape),"".concat(u.value,"--round"),!e.dot&&"round"===e.shape),"".concat(i.value,"-size-s"),"small"===e.size)]})),v=t.computed((function(){var t=function(){if(!e.offset)return{};var t=Ra(e.offset,2),n=t[0],r=t[1];return{xOffset:n=Number.isNaN(Number(n))?n:"".concat(n,"px"),yOffset:r=Number.isNaN(Number(r))?r:"".concat(r,"px")}}(),n=t.xOffset,r=t.yOffset;return{background:e.color,right:n,top:r}}));return function(){return t.createVNode("div",t.mergeProps({class:u.value},r),[o("default","content"),c.value?null:t.createVNode("sup",{class:d.value,style:v.value},[e.dot?null:l.value])])}}}),v_=iu(d_),f_={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},p_="calendar",m_=1970,h_={1:"\u4e00",2:"\u4e8c",3:"\u4e09",4:"\u56db",5:"\u4e94",6:"\u516d",7:"\u65e5"},g_=function(e){var t=ll(e).day();return 0===t&&(t=7),t},y_=function(e,t){var n=new Date(e);return n.setDate(n.getDate()+t),n},b_=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=ll("".concat(n,"-").concat(r)).startOf("month").toDate(),d=ll(ll("".concat(n,"-").concat(r)).endOf("month").format("YYYY-MM-DD")).toDate(),v=d.getDate(),f=function(e,t){var n=g_(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:g_(n),weekOrder:r,date:n,formattedDate:ll(n).format(i),filterDate:null,formattedFilterDate:null,isShowWeekend:!0}},g=function(e){return u?!!l.find((function(t){return t.isSame(ll(e))})):a.isSame(ll(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(w_().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=w_();r.curDate=e,r.curSelectedYear=e.year(),r.curSelectedMonth=parseInt(e.format("M"),10)},checkDayVisible:function(e){var t=!0;return r.isShowWeekend||(t=6!==e&&7!==e),t}}}function C_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function x_(e){for(var t=1;t0&&void 0!==arguments[0])||arguments[0],disabled:!1,mode:{visible:!0,radioGroupProps:{}},year:{visible:!0,selectProps:{}},month:{visible:!0,selectProps:{}},weekend:{visible:!0,showWeekendButtonProps:{},hideWeekendButtonProps:{}},current:{visible:!0,currentDayButtonProps:{},currentMonthButtonProps:{}}}};function S_(e,n){var r=dl(p_),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 h_&&(t=h_[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(ll(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(D_({},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=ll(m.value.from).year(),n=ll(m.value.to).year()),t0&&void 0!==arguments[0]?arguments[0]:document.body;return e===document.body?window.innerWidth-document.documentElement.clientWidth:e.offsetWidth-e.clientWidth}function rV(e){return Number.isNaN(Number(e))?e:"".concat(Number(e),"px")}var oV={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 aV(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function lV(e){for(var t=1;tr||i>o||(document.addEventListener("mousemove",u),document.addEventListener("mouseup",c),document.addEventListener("dragend",c))})))}},props:lV(lV({},J_),oV),setup:function(e,n){var r=n.expose,o=t.ref(null),a=fl("dialog"),l=fl(),i=el(),u=nl(),c=dl("dialog").globalConfig,s=xl({CloseIcon:ds,InfoCircleFilledIcon:$d,CheckCircleFilledIcon:mc,ErrorCircleFilledIcon:zs}),d=s.CloseIcon,v=s.InfoCircleFilledIcon,f=s.CheckCircleFilledIcon,p=s.ErrorCircleFilledIcon,m=t.toRefs(e),h=m.cancelBtn,g=m.confirmBtn,y=m.confirmLoading,b=tV({confirmBtnAction:function(t){var n;return null===(n=e.onConfirm)||void 0===n?void 0:n.call(e,{e:t})},cancelBtnAction:function(t){var n;return null===(n=e.onCancel)||void 0===n?void 0:n.call(e,{e:t})}}),w=b.getConfirmBtn,O=b.getCancelBtn,C=t.computed((function(){return"modeless"===e.mode})),x=t.computed((function(){return"full-screen"===e.mode})),P=function(t){var n;return null==e||null===(n=e.onCloseBtnClick)||void 0===n?void 0:n.call(e,{e:t})},S=function(t){C.value&&null!=e&&e.draggable&&t.stopPropagation()};r({$el:o,resetPosition:function(){!o.value&&C.value&&e.draggable||(o.value.style.position="relative",o.value.style.left="unset",o.value.style.top="unset")}});var j=t.computed((function(){var t=["".concat(a.value),"".concat(a.value,"__modal-").concat(e.theme),C.value&&e.draggable&&"".concat(a.value,"--draggable"),e.dialogClassName];return x.value?t.push("".concat(a.value,"__fullscreen")):t.push.apply(t,["".concat(a.value,"--default"),"".concat(a.value,"--").concat(e.placement)]),t})),k=t.computed((function(){return x.value?lV({},e.dialogStyle):lV({width:rV(e.width)},e.dialogStyle)}));return function(){return t.withDirectives(t.createVNode("div",{key:"dialog",ref:o,class:j.value,style:k.value},[(V=t.computed((function(){var e;return(null===(e=g.value)||void 0===e?void 0:e.loading)||y.value})),D=t.createVNode("div",null,[O({cancelBtn:h.value,globalCancel:c.value.cancel,className:"".concat(a.value,"__cancel")}),w({theme:null==e?void 0:e.theme,confirmBtn:g.value,globalConfirm:c.value.confirm,globalConfirmBtnTheme:c.value.confirmBtnTheme,className:"".concat(a.value,"__confirm"),confirmLoading:V.value})]),E=i("footer",D),t.createVNode(t.Fragment,null,[(b=null!==(m=i("header",t.createVNode("h5",{class:"title"},null)))&&void 0!==m&&m,N=x.value?["".concat(a.value,"__header"),"".concat(a.value,"__header--fullscreen")]:"".concat(a.value,"__header"),_=x.value?["".concat(a.value,"__close"),"".concat(a.value,"__close--fullscreen")]:"".concat(a.value,"__close"),(b||(null==e?void 0:e.closeBtn))&&t.createVNode("div",{class:N,onMousedown:S},[t.createVNode("div",{class:"".concat(a.value,"__header-content")},[{info:t.createVNode(v,{class:"".concat(l.value,"-is-info")},null),warning:t.createVNode(p,{class:"".concat(l.value,"-is-warning")},null),danger:t.createVNode(p,{class:"".concat(l.value,"-is-error")},null),success:t.createVNode(f,{class:"".concat(l.value,"-is-success")},null)}[null==e?void 0:e.theme],b]),null!=e&&e.closeBtn?t.createVNode("span",{class:_,onClick:P},[i("closeBtn",t.createVNode(d,null,null))]):null])),(r=u("default","body"),s="default"===(null==e?void 0:e.theme)?["".concat(a.value,"__body")]:["".concat(a.value,"__body__icon")],x.value&&E?s.push("".concat(a.value,"__body--fullscreen")):x.value&&s.push("".concat(a.value,"__body--fullscreen--without-footer")),t.createVNode("div",{class:s,onMousedown:S},[r])),!!e.footer&&(n=x.value?["".concat(a.value,"__footer"),"".concat(a.value,"__footer--fullscreen")]:"".concat(a.value,"__footer"),E&&t.createVNode("div",{class:n,onMousedown:S},[E]))]))]),[[t.resolveDirective("draggable"),C.value&&e.draggable]]);var n,r,s,m,b,N,_,V,D,E}}}),cV=["theme","onConfirm","onCancel","onCloseBtnClick"];"undefined"!=typeof window&&window.document&&window.document.documentElement&&document.documentElement.addEventListener("click",(function(e){iV={x:e.clientX,y:e.clientY},setTimeout((function(){iV=null}),100)}),!0);var sV=1,dV=t.defineComponent({name:"TDialog",inheritAttrs:!1,props:J_,emits:["update:visible"],setup:function(e,n){var r=fl("dialog"),o=fl(),a=t.ref(null),l=dl("dialog").globalConfig,i=function(t){var n;null===(n=e.onConfirm)||void 0===n||n.call(e,t)},u=function(t){var n;null===(n=e.onCancel)||void 0===n||n.call(e,t),L({e:t.e,trigger:"cancel"})},c=Ii((function(){return e.attach}));hl();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:rV(t)});return n})),O=Vi("dialog",{visible:h}).isTopInteractivePopup,C=t.ref(!1);function x(){var e,t;null===(e=v.value.parentNode)||void 0===e||null===(t=e.removeChild)||void 0===t||t.call(e,v.value)}t.watch((function(){return e.visible}),(function(n){var r;n?(C.value=!0,(f.value&&!e.showInAttachedElement||m.value)&&(e.preventScrollThrough&&document.body.appendChild(v.value),t.nextTick((function(){var e;if(iV&&null!==(e=a.value)&&void 0!==e&&e.$el){var t=a.value.$el;t.style.transformOrigin="".concat(iV.x-t.offsetLeft,"px ").concat(iV.y-t.offsetTop,"px")}}))),null===(r=document.activeElement)||void 0===r||r.blur()):(clearTimeout(d.value),d.value=setTimeout((function(){x()}),150));k(n)}));var P,S,j,k=function(t){t?(document.addEventListener("keydown",_),e.confirmOnEnter&&document.addEventListener("keydown",N)):(document.removeEventListener("keydown",_),e.confirmOnEnter&&document.removeEventListener("keydown",N))},N=function(t){if("input"!==t.target.tagName.toLowerCase()){var n,r=t.code;if(("Enter"===r||"NumpadEnter"===r)&&O())null===(n=e.onConfirm)||void 0===n||n.call(e,{e:t})}},_=function(t){var n,r;"Escape"===t.code&&O()&&(null===(n=e.onEscKeydown)||void 0===n||n.call(e,{e:t}),(null!==(r=e.closeOnEscKeydown)&&void 0!==r?r:l.value.closeOnEscKeydown)&&(L({e:t,trigger:"esc"}),t.stopImmediatePropagation()))},V=(P=function(t){var n,r;e.showOverlay&&(null!==(n=e.closeOnOverlayClick)&&void 0!==n?n:l.value.closeOnOverlayClick)&&(null===(r=e.onOverlayClick)||void 0===r||r.call(e,{e:t}),L({e:t,trigger:"overlay"}))},S=!1,j=!1,{onClick:function(e){S&&j&&P(e),S=!1,j=!1},onMousedown:function(e){S=e.target===e.currentTarget},onMouseup:function(e){j=e.target===e.currentTarget}}),D=V.onClick,E=V.onMousedown,F=V.onMouseup,T=function(t){var n;null===(n=e.onCloseBtnClick)||void 0===n||n.call(e,t),L({trigger:"close-btn",e:t.e})},I=function(){var t;null===(t=e.onBeforeOpen)||void 0===t||t.call(e)},M=function(){var t;null===(t=e.onOpened)||void 0===t||t.call(e)},A=function(){var t;null===(t=e.onBeforeClose)||void 0===t||t.call(e)},B=function(){var t,n,r;null===(t=a.value)||void 0===t||null===(n=t.resetPosition)||void 0===n||n.call(t),null===(r=e.onClosed)||void 0===r||r.call(e)},L=function(t){var r;null===(r=e.onClose)||void 0===r||r.call(e,t),n.emit("update:visible",!1)};t.onMounted((function(){var e=document.documentElement.scrollHeight>document.documentElement.clientHeight?nV():0;v.value=document.createElement("style"),v.value.dataset.id="td_dialog_".concat(+new Date,"_").concat(sV+=1),v.value.innerHTML="\n html body {\n overflow-y: hidden;\n width: calc(100% - ".concat(e,"px);\n }\n ")})),t.onBeforeUnmount((function(){k(!1),x()}));var R=t.computed((function(){var t=e.destroyOnClose,n=e.visible,r=e.lazy;return C.value?n||!t:!r}));return function(){var o=[(f.value||m.value)&&t.createVNode("div",{key:"mask",class:g.value},null),function(){var r=e.theme;e.onConfirm,e.onCancel,e.onCloseBtnClick;var o=Ri(e,cV);return t.createVNode("div",{class:b.value},[t.createVNode("div",{class:y.value,style:w.value,onClick:D,onMousedown:E,onMouseup:F},[t.createVNode(uV,t.mergeProps({ref:a,theme:r},o,{onConfirm:i,onCancel:u,onCloseBtnClick:T}),n.slots)])])}()],l={zIndex:e.zIndex},d=["".concat(r.value,"__ctx"),s(s(s({},"".concat(r.value,"__ctx--fixed"),f.value||m.value),"".concat(r.value,"__ctx--absolute"),f.value&&e.showInAttachedElement),"".concat(r.value,"__ctx--modeless"),p.value)];return t.createVNode(t.Teleport,{disabled:!e.attach||!c.value,to:c.value},{default:function(){return[t.createVNode(t.Transition,{duration:300,name:"".concat(r.value,"-zoom__vue"),onBeforeEnter:I,onAfterEnter:M,onBeforeLeave:A,onAfterLeave:B},{default:function(){return[R.value&&t.withDirectives(t.createVNode("div",t.mergeProps({class:d,style:l},n.attrs),[o]),[[t.vShow,e.visible]])]}})]}})}}});function 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;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=Jy(l.value,o);s(e)}),50),u=Ea((function(){var e=Qy(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 PV(e.images)})),H=t.computed((function(){var e;return null!==(e=z.value[m.value])&&void 0!==e?e:{mainImage:""}})),W=Vi("dialog",{visible:y}).isTopInteractivePopup,K=function(){var e=m.value-1;R(),h(e<0?0:e,{trigger:"prev"})},U=function(){var e=m.value+1;R(),h(e>=z.value.length?m.value:e,{trigger:"next"})},Y=function(t){e.onDownload?e.onDownload(t):function(e){var t,n,r,o=new Image,a=(null==e||null===(t=e.split)||void 0===t||null===(t=t.call(e,"?"))||void 0===t||null===(t=t[0])||void 0===t||null===(n=t.split)||void 0===n||null===(n=n.call(t,"#"))||void 0===n||null===(n=n[0])||void 0===n||null===(r=n.split)||void 0===r?void 0:r.call(n,"/").pop())||Math.random().toString(32).slice(2);o.setAttribute("crossOrigin","anonymous"),o.onload=function(){var e=document.createElement("canvas");e.width=o.width,e.height=o.height,e.getContext("2d").drawImage(o,0,0,o.width,o.height),e.toBlob((function(e){var t=URL.createObjectURL(e),n=document.createElement("a");n.download=a,n.href=t,n.click(),n.remove(),URL.revokeObjectURL(t)}))},o.src=e}(t)},$=function(){b(!0)},Z=function(t){var n;b(!1),null===(n=e.onClose)||void 0===n||n.call(e,t)},q=function(e){Z({e:e,trigger:"close-btn"})},X=function(t){e.closeOnOverlay&&Z({e:t,trigger:"overlay"})},G=function(t){switch(t.stopPropagation(),t.code){case CV.left:K();break;case CV.right:U();break;case CV.up:F();break;case CV.down:T();break;case CV.esc:e.closeOnEscKeydown&&W()&&Z({e:t,trigger:"esc"})}},J=t.ref();t.watch((function(){return y.value}),(function(e){clearTimeout(O.value),e?(w.value=!1,t.nextTick().then((function(){var e,t;null===(e=J.value)||void 0===e||null===(t=e.focus)||void 0===t||t.call(e)})),R()):O.value=setTimeout((function(){w.value=!0}),200)}));var Q=function(e){e.preventDefault(),e.deltaY>0?T():F()},ee=t.computed((function(){return{transform:"translateX(calc(-".concat(m.value," * (40px / 9 * 16 + 4px)))")}})),te=function(){return t.createVNode("div",{class:P.value},[t.createVNode(G_,{icon:function(){return t.createVNode(Sc,null,null)},class:"".concat(o.value,"__header-pre-bt"),onClick:j},null),t.createVNode("div",{class:"".concat(o.value,"__header-prev")},[t.createVNode("div",{class:"".concat(o.value,"__header-trans"),style:ee.value},[z.value.map((function(e,n){return t.createVNode("div",{key:n,class:["".concat(o.value,"__header-box"),s({},"".concat(r.value,"-is-active"),n===m.value)]},[t.createVNode(n_,{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(Ic,{style:{transform:"rotate(".concat(n,"deg)")},size:"24px"},null));return t.createVNode(G_,{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(ds,{size:"24px"},null))])};return function(){return"modeless"===e.mode?t.createVNode(t.Fragment,null,[a("trigger",{params:{open:$}}),t.createVNode(OV,{zIndex:S.value,visible:y.value,index:m.value,images:z.value,scale:E.value,rotate:A.value,mirror:N.value,currentImage:H.value,onRotate:B,onZoomIn:F,onZoomOut:T,onMirror:_,onReset:R,onClose:Z,onDownload:Y,draggable:e.draggable,showOverlay:i.value,title:e.title,imageReferrerpolicy:f.value},null)]):t.createVNode(t.Fragment,null,[a("trigger",{params:{open:$}}),t.createVNode(t.Teleport,{disabled:!e.attach||!C.value,to:C.value},{default:function(){return[t.createVNode(t.Transition,null,{default:function(){return[(y.value||!w.value)&&t.withDirectives(t.createVNode("div",{ref:J,class:x.value,style:{zIndex:S.value},onWheel:Q,tabindex:-1,onKeydown:G},[!!i.value&&t.createVNode("div",{class:"".concat(o.value,"__modal-mask"),onClick:X},null),z.value.length>1&&t.createVNode(t.Fragment,null,[te(),t.createVNode("div",{class:"".concat(o.value,"__modal-index")},[e.title&&a("title"),"".concat(m.value+1,"/").concat(z.value.length)]),ne("prev"),ne("next")]),re(),t.createVNode(wV,{onZoomIn:F,onZoomOut:T,onMirror:_,onReset:R,onRotate:B,onDownload:Y,scale:E.value,currentImage:H.value},null),t.createVNode(X_,{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]])]}})]}})])}}}),jV=iu(SV),kV={action:{type:[String,Function]},content:{type:[String,Function]},default:{type:[String,Function]}},NV=t.defineComponent({name:"TListItem",props:kV,setup:function(){var e=fl("list-item"),n=el();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])])])}}}),_V={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},VV="load-more";function DV(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function EV(e){for(var t=1;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 TV(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=r.value.length?kl("List","".concat(a," does not exist in data, check `index` or `key` please.")):o.scrollToElement(MV(MV({},e),{},{index:a-1})):kl("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(uu,null,null),t.createVNode("span",null,[l.value.loadingText])]);if(e.asyncLoading===VV)return t.createVNode("span",null,[l.value.loadingMoreText])}return c("asyncLoading")},x=function(t){var n;Do(e.asyncLoading)&&e.asyncLoading!==VV||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(NV,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]}},LV=t.defineComponent({name:"TListItemMeta",props:BV,setup:function(e,n){var r=fl("list-item__meta"),o=nl(),a=el(),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])}}}),RV=iu(AV),zV=iu(NV),HV=iu(LV),WV="line",KV="plump",UV="circle",YV="small",$V="medium",ZV="large",qV=72,XV=112,GV=160,JV=14/qV,QV=20/XV,eD=36/GV,tD=["success","error","warning"],nD={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:""}},rD=t.defineComponent({name:"TProgress",props:nD,setup:function(e){var n=el(),r=fl("progress"),o=xl({CloseCircleFilledIcon:ls,CheckCircleFilledIcon:mc,ErrorCircleFilledIcon:zs,CloseIcon:ds,CheckIcon:wc,ErrorIcon:Ys}),a=o.CloseCircleFilledIcon,l=o.CheckCircleFilledIcon,i=o.ErrorCircleFilledIcon,u=o.CloseIcon,c={success:o.CheckIcon,warning:o.ErrorIcon,error:u},d={success:l,warning:i,error:a},v=t.computed((function(){return!e.status&&e.percentage>=100?"success":e.status||"default"})),f=t.computed((function(){var t={};if(e.strokeWidth){var n=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&&Wi(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=XV;if(!e.size)return t;var n=YV,r=ZV,o=$V;switch(e.size){case n:t=qV;break;case o:t=XV;break;case r:t=GV;break;default:var a=Number(e.size);t=!isNaN(a)&&a>0?a:XV}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!==UV)return{};var t=g.value*QV;return g.value<=qV?t=g.value*JV:g.value>=GV&&(t=g.value*eD),{width:"".concat(g.value,"px"),height:"".concat(g.value,"px"),fontSize:"".concat(t,"px")}})),O=t.computed((function(){var t=e.size===YV?4:6;return e.strokeWidth?Number(e.strokeWidth):t})),C=t.computed((function(){var t=(g.value-O.value)/2,n=2*Math.PI*t,r=e.percentage/100;return"".concat(n*r," ").concat(n*(1-r))})),x=t.computed((function(){return e.theme===UV?c:d})),P=function(){var n="".concat(e.percentage,"%"),o=e.status||"";if(tD.includes(o)&&e.theme!==KV){var a=x.value[o];a&&(n=t.createVNode(a,{class:["".concat(r.value,"__icon")]},null))}return n},S=t.ref(!0),j=t.ref(null),k=t.computed((function(){return S.value?"".concat(r.value,"--over-ten"):"".concat(r.value,"--under-ten")}));function N(){return(N=xp(Ip.mark((function n(){var o;return Ip.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(e.theme!==KV){n.next=3;break}if(j.value&&!1!==e.label){n.next=1;break}return n.abrupt("return");case 1:return n.next=2,t.nextTick();case 2:o=j.value.querySelector(".".concat(r.value,"__info"))||j.value.nextElementSibling,S.value=j.value.clientWidth>(null==o?void 0:o.clientWidth)+10;case 3:case"end":return n.stop()}}),n)})))).apply(this,arguments)}return Ei(j,(function(){return N.apply(this,arguments)})),function(){var o=t.createVNode("div",{class:"".concat(r.value,"__info")},[n("label",P())]);return t.createVNode("div",{class:r.value},[e.theme===WV&&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===KV&&t.createVNode("div",{class:["".concat(r.value,"__bar ").concat(r.value,"--plump ").concat(k.value),s({},"".concat(r.value,"--status--").concat(v.value),v.value)],style:f.value},[t.createVNode("div",{class:"".concat(r.value,"__inner"),ref:j,style:p.value},[S.value&&o]),!S.value&&o]),e.theme===UV&&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)])])])}}}),oD=iu(rD),aD={animation:{type:String,default:"none",validator:function(e){return!e||["gradient","flashed","none"].includes(e)}},delay:{type:Number,default:0},loading:{type:Boolean,default:!0},rowCol:{type:Array},theme:{type:String,validator:function(e){return!e||["text","avatar","paragraph","avatar-text","tab","article"].includes(e)}}},lD={text:[1],avatar:[{type:"circle",size:"56px"}],paragraph:[1,1,{width:"70%"}],"avatar-text":[[{type:"circle"},{type:"text",height:"32px"}]],tab:[{height:"30px"},{height:"200px"}],article:[{type:"rect",height:"30px",width:"100%"},{type:"rect",height:"200px",width:"100%"},[{type:"text",height:"30px"},{type:"text",height:"30px"},{type:"text",height:"30px"}],[{type:"text",height:"30px"},{type:"text",height:"30px"}],[{type:"text",height:"30px"},{type:"text",height:"30px"}],[{type:"text",height:"30px"},{type:"text",height:"30px"}]]},iD=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},uD=t.defineComponent({name:"TSkeleton",props:aD,setup:function(e,n){var r=n.slots,o=t.ref(!1),a=fl("skeleton"),l=nl(),i=function(t){return["".concat(a.value,"__col"),"".concat(a.value,"--type-").concat(t.type||"text"),s({},"".concat(a.value,"--animation-").concat(e.animation),e.animation)]},u=function(n){var r=n||e.rowCol;return r.map((function(e){return t.createVNode("div",{class:["".concat(a.value,"__row")]},[(n=e,(S(n)?n:Ho(n)?new Array(n).fill({type:"text"}):[n]).map((function(e){return t.createVNode("div",{class:i(e),style:iD(e)},[H(e.content)?e.content(t.h):e.content])})))]);var n}))},c=null;return t.watch((function(){return e.loading}),(function(t){if(!t)return clearTimeout(c),void(o.value=!1);e.delay>0?c=setTimeout((function(){clearTimeout(c),o.value=!0}),e.delay):o.value=!0}),{immediate:!0}),function(){var n=l("default","content");if(r.default&&!o.value)return t.createVNode("div",null,[n]);if(o.value){var i=[];return e.theme&&i.push(u(lD[e.theme])),e.rowCol&&i.push(u(e.rowCol)),e.theme||e.rowCol||i.push(u([1,1,1,{width:"70%"}])),t.createVNode("div",{class:a.value},[i])}}}}),cD=iu(uD),sD={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}},dD=function(e){return 1-Math.abs(Math.pow(e-1,4))},vD=function(){return Si((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;ji(this,e),s(this,"from",void 0),s(this,"to",void 0),s(this,"duration",void 0),s(this,"onStart",void 0),s(this,"onUpdate",void 0),s(this,"onFinish",void 0),s(this,"startTime",void 0),s(this,"started",void 0),s(this,"finished",void 0),s(this,"timer",void 0),s(this,"keys",void 0),s(this,"time",0),s(this,"elapsed",0),this.from=r,this.to=o,this.duration=l,this.onStart=i,this.onUpdate=c,this.onFinish=d,this.startTime=Date.now(),this.started=!1,this.finished=!1,this.timer=null,this.keys={},Object.entries(r).forEach((function(e){var t=Ra(e,2),r=t[0],o=t[1];void 0===n.to[r]&&(n.to[r]=o)})),Object.entries(o).forEach((function(e){var t=Ra(e,2),r=t[0],o=t[1];void 0===n.from[r]&&(n.from[r]=o)}))}),[{key:"update",value:function(){var e=this;if(this.time=Date.now(),!(this.time=this.duration)return this.finished=!0,void(null===(t=this.onFinish)||void 0===t||t.call(this,this.keys));var n=Math.min(this.time-this.startTime,this.duration);this.elapsed=n;var r,o=dD(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=dD(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(),Ki()<10?this.polyfillStart():this.normalStart()}},{key:"stop",value:function(){Ki()<10?clearInterval(this.timer):cancelAnimationFrame(this.timer),this.timer=null}}])}(),fD={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 pD=t.defineComponent({name:"TStatistic",props:sD,setup:function(e,n){var r,o,a=n.expose,l=fl("statistic"),i=el(),u=xl({ArrowTriangleUpFilledIcon:Lu,ArrowTriangleDownFilledIcon:Tu}),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 vD({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:fD[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(cD,{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])])}}}),mD=iu(pD),hD={animation:{type:String,default:"slide",validator:function(e){return!e||["slide","fade"].includes(e)}},autoplay:{type:Boolean,default:!0},current:{type:Number,default:0},defaultCurrent:{type:Number,default:0},direction:{type:String,default:"horizontal",validator:function(e){return!e||["horizontal","vertical"].includes(e)}},duration:{type:Number,default:300},height:{type:Number},interval:{type:Number,default:5e3},loop:{type:Boolean,default:!0},navigation:{type:[Object,Function]},stopOnHover:{type:Boolean,default:!0},theme:{type:String,default:"light",validator:function(e){return!e||["light","dark"].includes(e)}},trigger:{type:String,default:"hover",validator:function(e){return!e||["hover","click"].includes(e)}},type:{type:String,default:"default",validator:function(e){return!e||["default","card"].includes(e)}},cardScale:{type:Number,default:210/332},onChange:Function};function gD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function yD(e){for(var t=1;t=e.swiperItemLength/2?e.swiperItemLength+1:e.index>e.currentIndex+1&&e.index-e.currentIndex>=e.swiperItemLength/2?-2:e.index})),i=t.computed((function(){if("card"!==e.type)return 0;var t=e.getWrapAttribute("offsetWidth")||0,n=!a.value&&e.swiperItemLength>2?l.value:e.index;return Math.abs(n-e.currentIndex)<=1?t*((n-e.currentIndex)*(1-wD*e.cardScale)-wD+1)/2:n2?l.value:e.index,n=t===e.currentIndex,r=Math.round(Math.abs(t-e.currentIndex))<=1;return n?2:r?1:0})),c=t.computed((function(){if("fade"===e.animation)return{opacity:a.value?1:0,transition:e.isSwitching?"opacity ".concat(e.duration/1e3,"s"):"",zIndex:a.value?1:0};if("card"===e.type){var t=(!a.value&&e.swiperItemLength>2?l.value:e.index)===e.currentIndex;return{transform:"translateX(".concat(i.value,"px) scale(").concat(t?1:e.cardScale,")"),transition:"transform ".concat(e.duration/1e3,"s ease"),zIndex:u.value}}return{}}));return function(){var n;return t.createVNode("div",{class:["".concat(o.value,"-swiper__container__item"),s(s(s({},"".concat(o.value,"-swiper__card"),"card"===e.type),"".concat(o.value,"-is-active"),"card"===e.type&&a.value),"".concat(o.value,"-swiper__fade"),"fade"===e.animation)],style:c.value},[(null===(n=r.default)||void 0===n?void 0:n.call(r,{}))||[]])}}});function CD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function xD(e){for(var t=1;t=O.value:!e.loop&&p.value+2>=O.value})),P=t.computed((function(){return[e.autoplay,p.value,e.duration,e.interval]})),S=t.computed((function(){return s(s(s(s(s(s({},"".concat(o.value,"-swiper__wrap"),!0),"".concat(o.value,"-swiper--inside"),"inside"===C.value.placement),"".concat(o.value,"-swiper--outside"),"outside"===C.value.placement),"".concat(o.value,"-swiper--vertical"),"vertical"===e.direction),"".concat(o.value,"-swiper--large"),"large"===C.value.size),"".concat(o.value,"-swiper--small"),"small"===C.value.size)})),j=t.computed((function(){var t=e.height?"".concat(e.height,"px"):"".concat(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=xD(xD({},e),n.props);return t.createVNode(OD,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:S.value},[t.createVNode("div",{class:["".concat(o.value,"-swiper__content"),s(s({},"".concat(o.value,"-swiper-fade"),"fade"===e.animation),"".concat(o.value,"-swiper-card"),"card"===e.type)]},[t.createVNode("div",{class:"".concat(o.value,"-swiper__container"),style:j.value},[k()])]),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])])}}}),jD=iu(SD),kD=iu(OD),ND={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 _D(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 ED(){var e=fl();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 FD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var TD=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=gi(n.value)})),t.onUpdated((function(){o.value=gi(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=Wa(o),l=za(o),u=Ua(e,n,i=a?{params:a}:void 0),c=Ua(e,r,i),d=Ro(u)?c:u,Ro(d)?l:d),p=t.createVNode("div",{ref:"root",class:this.ellipsisClasses,onMouseenter:this.onMouseAround,onMouseleave:this.onMouseAround,style:{textOverflow:this.isOverflow?"ellipsis":"clip"}},[f]),m=null,h=this.tooltipProps;if(this.isOverflow&&this.flag){var g=function(e){for(var t=1;t1}));return{thList:l,isMultipleHeader:i,spansAndLeafNodes:a,renderTitleWidthIcon:function(n,a,l,i,c,d){var v,f=Ra(n,3),p=f[0],m=f[1],h=f[2],g=s(s({},r.sortable,m),o.filterable,h),y=H(i)?i(t.h,{col:a,colIndex:l}):void 0,b=void 0!==i?Boolean(i):Boolean(a.ellipsis);return t.createVNode("div",{class:g},[t.createVNode("div",{class:r.title},[b?t.createVNode(TD,{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 LD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function RD(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,S=P.getBoundingClientRect(),j=null===(h=a.value)||void 0===h?void 0:h.getBoundingClientRect(),k=null===(g=p.value[t.colKey])||void 0===g?void 0:g.next,N=null===(x=p.value[t.colKey])||void 0===x?void 0:x.prev,_=w(t)?function(e,t,n,r,o){var a=r.left-o.left,l=e.dataset.colkey===t.colKey?t:n,i=r.left-o.left,u=O(l),c=u.minColWidth,s=u.maxColWidth;return{resizeLinePos:a,minResizeLineLeft:i+(r.width-s),maxResizeLineLeft:i+(r.width-c)}}(P,t,k,S,j):C(t,k,S,j),V=_.resizeLinePos,D=_.minResizeLineLeft,E=_.maxResizeLineLeft;if(y.isDragging=!0,y.draggingStart=e.x,null!=f&&f.value){b.display="block",b.height="".concat(j.bottom-S.top,"px"),b.left="".concat(V,"px");var F=a.value.parentElement.getBoundingClientRect();b.bottom="".concat(F.bottom-j.bottom,"px")}var T=function(){var e;if(y.isDragging){var a=V-parseFloat(b.left)||0,f=i("calculate"),h=null===(e=p.value[t.colKey])||void 0===e?void 0:e.current;if(h){var g="next"===y.effectCol?h.nextSibling:h.prevSibling,C=function(e){for(var t=1;tu}return!(a||o.value||r===m.value.length-1)}(C,"next"===y.effectCol?h.nextSibling:t,a,l);"next"===y.effectCol?w(t)?P.dataset.colkey!==t.colKey?C[k.colKey]+=a:C[x.colKey]+=a:(C[x.colKey]-=a,S&&(C[k.colKey]+=a)):"prev"===y.effectCol&&(S&&(C[x.colKey]+=a),N&&(C[N.colKey]-=a)),u(C);var j=function(e){var t=0;return m.value.forEach((function(n){t+=e[n.colKey]})),t}(C);c(Math.round(j)),d(),y.isDragging=!1,y.draggingCol=null,y.effectCol=null,P.style.cursor="",b.display="none",b.left="0",ui(document,"mouseup",T),ui(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")}};ii(document,"mouseup",T),ii(document,"mousemove",I),document.onselectstart=function(){return!1},document.ondragstart=function(){return!1}}},setEffectColMap:g}}function zD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function HD(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:new Map,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,o=arguments.length>4?arguments[4]:void 0,a=0,l=e.length;a2&&void 0!==arguments[2]?arguments[2]:{},r=0,o=e.length;r=0&&"left"!==e[u].fixed;)u-=1;var c=e[u],s=0===r&&(null==n?void 0:n.left)||0,d=t.get((null==c?void 0:c.colKey)||r-1);i&&(i.left=((null==d?void 0:d.left)||s)+((null==d?void 0:d.width)||0)),null!==(a=l.children)&&void 0!==a&&a.length&&B(l.children,t,i)}},L=function(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=e.length-1;r>=0;r--){var o,a=e[r];if("left"===a.fixed)return;for(var l=t.get(a.colKey||r),i=r+1;i=u.length-i;b--){var w=t[t.length-(u.length-b)],O=jt(u[b],d),C=n.get(O)||{},x=jt(u[b+1],d),P=n.get(x)||{},S=0;b===u.length-1&&(S=(null==o?void 0:o.getBoundingClientRect().height)||0),C.bottom=(P.bottom||S)+(P.height||0),n.set(O,HD(HD({},C),{},{height:(null==w?void 0:w.getBoundingClientRect().height)||0}))}}(o.children,n,r,a),S.value=n}},z=function(e,t){if(D.value&&e){var n=e.scrollLeft;if(A!==n||t&&t.skipScrollLimit){A=n;var r=e.clientWidth+n0;j.left===o&&j.right===r||(j.left=o&&F.value,j.right=r&&E.value)}}},H=function(){var e=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),Ki()<=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&&Ki()<11||!n)&&ii(window,"resize",G)})),t.onBeforeUnmount((function(){var e,t;"undefined"!=typeof window&&ui(window,"resize",G),null===(e=J)||void 0===e||e.unobserve(b.value),null===(t=J)||void 0===t||t.disconnect()}));return{tableWidth:N,tableElmWidth:_,thWidthList:V,isFixedHeader:O,isWidthOverflow:C,tableContentRef:w,isFixedColumn:D,showColumnShadow:j,rowAndColFixedPosition:S,virtualScrollHeaderPos:k,scrollbarWidth:P,setData:function(e){y.value=e},refreshTable:X,setTableElmWidth:K,emitScrollEvent:function(t){var n,r,o;null===(n=e.onScrollX)||void 0===n||n.call(e,{e:t}),null===(r=e.onScrollY)||void 0===r||r.call(e,{e:t}),null===(o=e.onScroll)||void 0===o||o.call(e,{e:t})},updateThWidthListHandler:Z,updateColumnFixedShadow:z,setUseFixedTableElmRef:function(e){x.value=e},getThWidthList:q,updateThWidthList:$,addTableResizeObserver:function(e){"undefined"!=typeof window&&(Ki()<11||void 0===window.ResizeObserver||(ui(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 UD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function YD(e,n){var r=t.toRefs(e),o=r.pagination,a=r.data,l=r.disableDataPage,i=dl().classPrefix,u=t.ref(e.pagination),c=t.ref([]),d=t.ref(!1),v=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10,r=e.data,o=Boolean(!l.value&&r.length>n);if(d.value=o,o){var a=(t-1)*n,i=t*n;c.value=r.slice(a,i)}else c.value=r};t.watch((function(){var e,t;return[null===(e=o.value)||void 0===e?void 0:e.current,null===(t=o.value)||void 0===t?void 0:t.pageSize,a.value.length,l]}),(function(){if(o.value&&o.value.current){var e=o.value,t=e.current,n=e.pageSize;u.value={current:t,pageSize:n},v(o.value.current,o.value.pageSize)}}),{immediate:!0}),t.watch([a],(function(){var e,t;o.value&&o.value.defaultCurrent&&(Boolean(o.value.current)||v(null!==(e=u.value.current)&&void 0!==e?e:o.value.defaultCurrent,null!==(t=u.value.pageSize)&&void 0!==t?t:o.value.defaultPageSize))}),{immediate:!0});return{isPaginateData:d,dataSource:c,innerPagination:u,renderPagination:function(){if(!e.pagination)return null;var r=function(e){for(var t=1;te.height},g=function(){var t,s,d;if(f.value||v.value||n.value){var p=null===(t=n.value)||void 0===t?void 0:t.getBoundingClientRect();if(p){var m,g=null===(s=n.value)||void 0===s||null===(s=s.querySelector("thead"))||void 0===s?void 0:s.getBoundingClientRect(),y=(null==g?void 0:g.height)||0,b=null===(d=o.value)||void 0===d?void 0:d.getBoundingClientRect();if((e.headerAffixedTop||v.value)&&r.value){var w=Mo(m=e.headerAffixProps||e.headerAffixedTop)?0:m.offsetTop||0,O=(null==b?void 0:b.height)||0,C=Math.abs(p.top)-1*g.height),i.value=C}if(e.footerAffixedBottom&&null!=o&&o.value)u.value=h(b,p,y);else if(e.horizontalScrollAffixedBottom&&null!=a&&a.value){var x=a.value.getBoundingClientRect();u.value=h(x,p,y)}if(e.paginationAffixedBottom&&l.value){var P=l.value.getBoundingClientRect();c.value=h(P,p,y)}}}},y=function(){g()},b=function(){m(o.value)},w=function(){m(r.value)},O=function(){m(a.value)},C=function(){m(n.value)},x=function(){ii(o.value,"scroll",b)},P=function(){ui(o.value,"scroll",b)},S=function(){ii(r.value,"scroll",w),F()},j=function(){s||ui(r.value,"scroll",w),T()},k=function(){ii(a.value,"scroll",O)},N=function(){ui(a.value,"scroll",O)},_=function(){ii(n.value,"scroll",C),F()},V=function(){s||ui(n.value,"scroll",C),T()},D=function(){s=!0},E=function(){s=!1,d||(ui(r.value,"scroll",w),ui(n.value,"scroll",C))},F=function(){d=!0},T=function(){d=!1},I=[],M=function(e){var t=po((function(t){ui(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,ii(e,"scroll",n),t(n),I.push((function(){ui(e,"scroll",n)})))}return ii(e,"touchstart",r),{removeElementTouchScrollListener:function(){ui(e,"touchstart",r)}}},A=[],B=function(){ui(window,"mousedown",D),ui(window,"mouseup",E),A.forEach((function(e){return e()})),A.length=0,r.value&&(ui(r.value,"mouseenter",S),ui(r.value,"mouseleave",j)),o.value&&(ui(o.value,"mouseenter",x),ui(o.value,"mouseleave",P)),n.value&&(ui(n.value,"mouseenter",_),ui(n.value,"mouseleave",V)),a.value&&(ui(a.value,"mouseenter",k),ui(a.value,"mouseleave",N))},L=function(){if(f.value||e.paginationAffixedBottom)var t=setTimeout((function(){f.value||e.paginationAffixedBottom?ii(document,"scroll",y):ui(document,"scroll",y),clearTimeout(t)}))};t.watch([r,o,a,n],(function(){!function(){if(ii(window,"mousedown",D),ii(window,"mouseup",E),B(),r.value){ii(r.value,"mouseenter",S),ii(r.value,"mouseleave",j);var t=M(r.value).removeElementTouchScrollListener;A.push(t)}if(e.footerAffixedBottom&&o.value){ii(o.value,"mouseenter",x),ii(o.value,"mouseleave",P);var l=M(o.value).removeElementTouchScrollListener;A.push(l)}if(e.horizontalScrollAffixedBottom&&a.value){ii(a.value,"mouseenter",k),ii(a.value,"mouseleave",N);var i=M(a.value).removeElementTouchScrollListener;A.push(i)}if((f.value||v.value)&&n.value){ii(n.value,"mouseenter",_),ii(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(){ui(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 ZD(e,t){if(e){for(var n=e instanceof Array?e:[e],r={},o=0;o6&&void 0!==arguments[6]?arguments[6]:0;if(!r||!r.length)return{style:void 0,classes:void 0};var i=tn-1-r[1],c=n-r[1],d=(null==o?void 0:o.get(e))||{},v=s(s(s(s({},a.top,i),a.bottom,u),a.firstBottom,t===c),a.withoutBorderBottom,t===c-1);return{style:{top:i?"".concat(d.top-l,"px"):void 0,bottom:u?"".concat(d.bottom+l,"px"):void 0},classes:v}}(jt(e.row,e.rowKey||"id"),e.rowIndex,e.dataLength,e.fixedRows,e.rowAndColFixedPosition,p,e.virtualConfig.isVirtualScroll.value?e.virtualConfig.translateY.value:0)})),y=t.computed((function(){return ZD(e.rowAttributes,{row:e.row,rowIndex:e.rowIndex,type:"body"})||{}})),b=t.computed((function(){var t,n=qD(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=!li&&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&&Cl(n.value,e.value,u,a)}))})),{hasLazyLoadHolder:l,tRowHeight:o}}(o,i,t.reactive(nE(nE({},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(TD,{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=QD(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=aE(r,n.slots,{cellEmptyContent:o.cellEmptyContent,pagination:e.pagination}),y=WD(a,l,p,f),b=XD(a.className,nE(nE({},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(nE(nE({},r),{},{type:"td"})):a.attrs,C=nE(nE({},O),u);return t.createVNode("td",t.mergeProps({key:a.colKey||l,class:w,style:y.style},C,{onClick:function(t){var n,o=nE(nE({},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 oE.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 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)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,j),[t.createVNode("div",{class:a.tableBaseClass.thCellInner},[N?t.createVNode(TD,{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=S,"function"==typeof p||"[object Object]"===Object.prototype.toString.call(p)&&!t.isVNode(p)?S:{default:function(){return[S]}})):S])])}));return t.createVNode("tr",{key:i},[c])})))])}});function hE(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function gE(e){for(var t=1;t1&&(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=WD(o,a,n.rowAndColFixedPosition,n.tableColFixedClasses),f=gE({},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(gE({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 bE(e,n){var r=t.toRefs(e),o=r.data,a=r.activeRowType,l=r.activeRowKeys,i=r.defaultActiveRowKeys,u=r.disableSpaceInactiveRow,c=t.ref(-1),s=t.ref(!1),d=t.ref(!1),v=t.ref(-1),f=Ra(ml(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:dE((e||m?c.thWidthList[n.colKey]:void 0)||n.width)||h};return n.minWidth&&(r.minWidth=dE(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=Ki()<=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=ND.headerAffixedTop?Number(this.showAffixHeader):1,S=t.computed((function(){return{width:"".concat(c.tableWidth,"px"),height:"".concat(x.value,"px"),opacity:P}})),j=this.bordered?1:0,k=Boolean((this.headerAffixedTop||this.virtualConfig.isVirtualScroll.value)&&this.tableWidth)&&t.createVNode("div",{ref:"affixHeaderRef",style:{width:"".concat(this.tableWidth-j,"px"),opacity:Number(this.showAffixHeader)},class:["scrollbar",s({},this.tableBaseClass.affixedHeaderElm,this.headerAffixedTop||this.virtualConfig.isVirtualScroll.value)]},[t.createVNode("table",{class:this.tableElmClasses,style:OE(OE({},this.tableElementStyles),{},{width:"".concat(this.tableElmWidth,"px")})},[g(!0),t.createVNode(mE,y,this.$slots)])]),N=t.createVNode("div",{class:this.tableBaseClass.affixedHeaderWrap,style:S.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(Bp,t.mergeProps({class:this.tableBaseClass.affixedFooterWrap,onFixedChange:this.onFixedChange,offsetBottom:_||0},JD(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-j,"px"),opacity:Number(c.showAffixFooter)},class:["scrollbar",s({},c.tableBaseClass.affixedFooterElm,c.footerAffixedBottom||c.virtualConfig.isVirtualScroll.value)]},[t.createVNode("table",{class:c.tableElmClasses,style:OE(OE({},c.tableElementStyles),{},{width:"".concat(c.tableElmWidth,"px")})},[g(!0),t.createVNode(yE,{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=OE(OE({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,cE)),{},{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:OE(OE({},this.tableElementStyles),{},{width:this.resizable&&this.isWidthOverflow&&this.tableElmWidth?"".concat(this.tableElmWidth,"px"):this.tableElementStyles.width})},[g(!1),this.showHeader&&t.createVNode(mE,OE(OE({},y),{},{thWidthList:m?this.thWidthList:{}}),this.$slots),t.createVNode(sE,t.mergeProps({ref:"tableBodyRef"},I),this.$slots),t.createVNode(yE,{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(uu,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(Bp,t.mergeProps({offsetTop:0},JD(c.headerAffixedTop),{onFixedChange:c.onFixedChange,ref:"headerTopAffixRef"}),CE(N)?N:{default:function(){return[N]}}):c.isFixedHeader&&N),M,E,B,W,this.showRightDivider&&t.createVNode("div",{class:this.tableBaseClass.scrollbarDivider,style:{right:"".concat(this.scrollbarWidth,"px"),bottom:this.dividerBottom?"".concat(this.dividerBottom,"px"):void 0,height:"".concat(null===(u=this.tableContentRef)||void 0===u?void 0:u.getBoundingClientRect().height,"px")}},null),this.horizontalScrollAffixedBottom&&t.createVNode(Bp,t.mergeProps({offsetBottom:0},JD(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(Bp,t.mergeProps({offsetBottom:0},JD(this.paginationAffixedBottom),{ref:"paginationAffixRef"}),CE(z)?z:{default:function(){return[z]}}):z,t.createVNode("div",{ref:"resizeLineRef",class:this.tableBaseClass.resizeLine,style:this.resizeLineStyle},null)])}}),PE={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 SE(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function jE(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:new Set,n=0,r=e.length;n1&&void 0!==arguments[1]?arguments[1]:[];if(null!==(t=d.value)&&void 0!==t&&null!==(t=t.groupColumns)&&void 0!==t&&t.length)return[];for(var r=0,o=e.length;r1&&void 0!==arguments[1]?arguments[1]:{},n=0,r=e.length;n0&&void 0!==arguments[0]?arguments[0]:{},n=i(m.value),r=jt(t,e.rowKey||"id"),o=n.indexOf(r),a=-1!==o;if("multiple"===b.value)a?n.splice(o,1):n.push(r);else{if("single"!==b.value)return void Sl("Table","`column.type` must be one of `multiple` and `single`");n=a&&C.value?[]:[r]}h(n,{selectedRowData:n.map((function(e){return g.value.get(e)})),currentRowKey:r,currentRowData:t,type:a?"uncheck":"check"})}function S(t){var n,r=e.rowKey||"id",a=w.value.map((function(e){return jt(e,r)})),l=(null===(n=o.value)||void 0===n?void 0:n.filter((function(e){return!a.includes(e)})))||[],u=t?[].concat(i(l),i(a)):i(l);h(u,{selectedRowData:t?u.map((function(e){return g.value.get(e)})):[],type:t?"check":"uncheck",currentRowKey:"CHECK_ALL_BOX"})}t.watch([c,a,m,y,l],(function(){var t,r=null!==(t=y.value)&&void 0!==t&&t.disabled?function(e){return y.value.disabled(e)?n.disabled:""}:void 0,o=new Set(m.value),a=o.size?function(t){var r=jt(t.row,e.rowKey||"id");return o.has(r)?n.selected:""}:void 0;f.value=[r,a]}),{immediate:!0}),t.watch(c,(function(){v.value=c.value}));t.watch([c,l],(function(){for(var e=0,t=c.value.length;e0&&O.value.length1)],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(lg,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 RE(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function zE(e,n){var r=n.slots,o=t.toRefs(e),a=o.sort,l=o.data,u=t.ref(),c=Ra(ml(a,e.defaultSort,e.onSortChange,"sort"),2),d=c[0],v=c[1],f=Ra(ml(l,[],e.onDataChange,"data"),2),p=f[0],m=f[1],h=t.computed((function(){return w(e.columns)})),g=t.ref(),y=t.computed((function(){var e=d.value;return e?S(e)?e:[e]:[]})),b=t.computed((function(){var e={};return y.value.forEach((function(t,n){var r=t.sortBy;e[r]=function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{},n=0,r=e.length;n3?(n=p===t)&&(i=a[(l=a[4])?5:(l=3,3)],a[4]=a[5]=r):a[0]<=f&&((n=e<2&&ft||t>p)&&(a[4]=e,a[5]=t,v.n=p,l=0))}if(n||e>1)return c;throw d=!0,t}return function(n,s,p){if(u>1)throw TypeError("Generator is already running");for(d&&1===s&&f(s,p),l=s,i=p;(o=l<2?r:i)||!d;){a||(l?l<3?(l>1&&(v.n=-1),f(l,i)):v.n=i:v.v=i);try{if(u=2,a){if(l||(n="next"),o=a[n]){if(!(o=o.call(a,i)))throw TypeError("iterator result is not an object");if(!o.done)return o;i=o.value,l<2&&(l=0)}else 1===l&&(o=a.return)&&o.call(a),l<2&&(i=TypeError("The iterator does not provide a '"+n+"' method"),l=1);a=r}else if((o=(d=v.n<0)?i:e.call(t,v))!==c)break}catch(e){a=r,l=1,i=e}finally{u=1}}return{value:o,done:d}}}(e,a,l),!0),u}var c={};function s(){}function d(){}function v(){}o=Object.getPrototypeOf;var f=[][l]?o(o([][l]())):(t(o={},l,function(){return this}),o),p=v.prototype=s.prototype=Object.create(f);function m(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,v):(e.__proto__=v,t(e,i,"GeneratorFunction")),e.prototype=Object.create(p),e}return d.prototype=v,t(p,"constructor",v),t(v,"constructor",d),d.displayName="GeneratorFunction",t(v,i,"GeneratorFunction"),t(p),t(p,i,"Generator"),t(p,l,function(){return this}),t(p,"toString",function(){return"[object Generator]"}),(e.exports=n=function(){return{w:u,m:m}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=n,e.exports.__esModule=!0,e.exports.default=e.exports}(tm);var om=tm.exports,am={exports:{}},lm={exports:{}},im={exports:{}};!function(e){var t=em,n=rm;e.exports=function e(r,o){function a(e,n,l,i){try{var u=r[e](n),c=u.value;return c instanceof t?o.resolve(c.v).then(function(e){a("next",e,l,i)},function(e){a("throw",e,l,i)}):o.resolve(c).then(function(e){u.value=e,l(u)},function(e){return a("throw",e,l,i)})}catch(e){i(e)}}var l;this.next||(n(e.prototype),n(e.prototype,"function"==typeof Symbol&&Symbol.asyncIterator||"@asyncIterator",function(){return this})),n(this,"_invoke",function(e,t,n){function r(){return new o(function(t,r){a(e,n,t,r)})}return l=l?l.then(r,r):r()},!0)},e.exports.__esModule=!0,e.exports.default=e.exports}(im);var um=im.exports;!function(e){var t=om,n=um;e.exports=function(e,r,o,a,l){return new n(t().w(e,r,o,a),l||Promise)},e.exports.__esModule=!0,e.exports.default=e.exports}(lm);var cm=lm.exports;!function(e){var t=cm;e.exports=function(e,n,r,o,a){var l=t(e,n,r,o,a);return l.next().then(function(e){return e.done?e.value:l.next()})},e.exports.__esModule=!0,e.exports.default=e.exports}(am);var sm=am.exports,dm={exports:{}};!function(e){e.exports=function(e){var t=Object(e),n=[];for(var r in t)n.unshift(r);return function e(){for(;n.length;)if((r=n.pop())in t)return e.value=r,e.done=!1,e;return e.done=!0,e}},e.exports.__esModule=!0,e.exports.default=e.exports}(dm);var vm=dm.exports,fm={exports:{}},pm={exports:{}};!function(e){function t(n){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports}(pm);var mm=pm.exports;!function(e){var t=mm.default;e.exports=function(e){if(null!=e){var n=e["function"==typeof Symbol&&Symbol.iterator||"@@iterator"],r=0;if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length))return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}}}throw new TypeError(t(e)+" is not iterable")},e.exports.__esModule=!0,e.exports.default=e.exports}(fm);var hm=fm.exports;!function(e){var t=em,n=om,r=sm,o=cm,a=um,l=vm,i=hm;function u(){var c=n(),s=c.m(u),d=(Object.getPrototypeOf?Object.getPrototypeOf(s):s.__proto__).constructor;function v(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===d||"GeneratorFunction"===(t.displayName||t.name))}var f={throw:1,return:2,break:3,continue:3};function p(e){var t,n;return function(r){t||(t={stop:function(){return n(r.a,2)},catch:function(){return r.v},abrupt:function(e,t){return n(r.a,f[e],t)},delegateYield:function(e,o,a){return t.resultName=o,n(r.d,i(e),a)},finish:function(e){return n(r.f,e)}},n=function(e,n,o){r.p=t.prev,r.n=t.next;try{return e(n,o)}finally{t.next=r.n}}),t.resultName&&(t[t.resultName]=r.v,t.resultName=void 0),t.sent=r.v,t.next=r.n;try{return e.call(this,t)}finally{r.p=t.prev,r.n=t.next}}}return(e.exports=u=function(){return{wrap:function(e,t,n,r){return c.w(p(e),t,n,r&&r.reverse())},isGeneratorFunction:v,mark:c.m,awrap:function(e,n){return new t(e,n)},AsyncIterator:a,async:function(e,t,n,a,l){return(v(t)?o:r)(p(e),t,n,a,l)},keys:l,values:i}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=u,e.exports.__esModule=!0,e.exports.default=e.exports}(Jp);var gm=(0,Jp.exports)(),ym=gm;try{regeneratorRuntime=gm}catch(e){"object"===("undefined"==typeof globalThis?"undefined":u(globalThis))?globalThis.regeneratorRuntime=gm:Function("r","regeneratorRuntime = r")(gm)}var bm=Za(ym),wm={container:{type:[String,Function],default:function(){return function(){return window}}},content:{type:[String,Function]},default:{type:[String,Function]},offsetBottom:{type:Number,default:0},offsetTop:{type:Number,default:0},zIndex:{type:Number},onFixedChange:Function},Om=t.defineComponent({name:"TAffix",props:wm,emits:["fixedChange"],setup:function(e,n){var r,o=ei("affix"),a=Rl(),l=t.ref(null),i=t.ref(null),u=t.ref(null===(r=document)||void 0===r?void 0:r.createElement("div")),c=t.ref(!1),s=t.ref(!1),d=t.ref(),v=t.ref(),f=0,p=function(){c.value||(f=window.requestAnimationFrame(function(){var t,r;f=0;var a,s=null!==(t=null===(r=l.value)||void 0===r?void 0:r.getBoundingClientRect())&&void 0!==t?t:{top:0,width:0,height:0},p=s.top,m=s.width,h=s.height,g=0;d.value instanceof HTMLElement&&(g=d.value.getBoundingClientRect().top);var y=p-g,b=g+(d.value[d.value instanceof Window?"innerHeight":"clientHeight"]-h)-e.offsetBottom;if(a=!Zo(e.offsetTop)&&y<=e.offsetTop?g+e.offsetTop:!Zo(e.offsetBottom)&&p>=b&&b,i.value){var w=!1!==a,O=l.value.contains(u.value);w?(i.value.className=o.value,v.value={top:"".concat(a,"px"),width:"".concat(m,"px"),height:"".concat(h,"px"),zIndex:e.zIndex},O||(u.value.style.width="".concat(m,"px"),u.value.style.height="".concat(h,"px"),l.value.appendChild(u.value))):(i.value.removeAttribute("class"),v.value=void 0,O&&u.value.remove()),n.emit("fixedChange",w,{top:Number(a)}),H(e.onFixedChange)&&e.onFixedChange(w,{top:Number(a)})}c.value=!1}),c.value=!0)},m=function(){var n=Gp(bm.mark(function n(){return bm.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=1,t.nextTick();case 1:if(!s.value){n.next=2;break}return n.abrupt("return");case 2:d.value=gl(e.container),dl(d.value,"scroll",p),dl(window,"resize",p),s.value=!0;case 3:case"end":return n.stop()}},n)}));return function(){return n.apply(this,arguments)}}(),h=function(){d.value&&s.value&&(vl(d.value,"scroll",p),vl(window,"resize",p),f&&window.cancelAnimationFrame(f),s.value=!1)};return t.watch(function(){return e.offsetTop},function(){p()}),t.watch(function(){return e.offsetBottom},function(){p()}),t.watch(function(){return e.zIndex},function(){p()}),t.onMounted(m),t.onActivated(m),t.onDeactivated(h),t.onBeforeUnmount(h),n.expose({scrollContainer:d,affixWrapRef:l,handleScroll:p}),function(){return t.createVNode("div",{ref:l},[t.createVNode("div",{ref:i,style:v.value},[a("default")])])}}}),Cm=Nl(Om),xm={exports:{}};!function(e){var t;t=function(){return function(){var e={686:function(e,t,n){n.d(t,{default:function(){return C}});var r=n(279),o=n.n(r),a=n(370),l=n.n(a),i=n(817),u=n.n(i);function c(e){try{return document.execCommand(e)}catch(e){return!1}}var s=function(e){var t=u()(e);return c("cut"),t},d=function(e,t){var n=function(e){var t="rtl"===document.documentElement.getAttribute("dir"),n=document.createElement("textarea");n.style.fontSize="12pt",n.style.border="0",n.style.padding="0",n.style.margin="0",n.style.position="absolute",n.style[t?"right":"left"]="-9999px";var r=window.pageYOffset||document.documentElement.scrollTop;return n.style.top="".concat(r,"px"),n.setAttribute("readonly",""),n.value=e,n}(e);t.container.appendChild(n);var r=u()(n);return c("copy"),n.remove(),r},v=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{container:document.body},n="";return"string"==typeof e?n=d(e,t):e instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(null==e?void 0:e.type)?n=d(e.value,t):(n=u()(e),c("copy")),n};function f(e){return f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},f(e)}var p=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.action,n=void 0===t?"copy":t,r=e.container,o=e.target,a=e.text;if("copy"!==n&&"cut"!==n)throw new Error('Invalid "action" value, use either "copy" or "cut"');if(void 0!==o){if(!o||"object"!==f(o)||1!==o.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===n&&o.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===n&&(o.hasAttribute("readonly")||o.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes')}return a?v(a,{container:r}):o?"cut"===n?s(o):v(o,{container:r}):void 0};function m(e){return m="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},m(e)}function h(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof e.action?e.action:this.defaultAction,this.target="function"==typeof e.target?e.target:this.defaultTarget,this.text="function"==typeof e.text?e.text:this.defaultText,this.container="object"===m(e.container)?e.container:document.body}},{key:"listenClick",value:function(e){var t=this;this.listener=l()(e,"click",function(e){return t.onClick(e)})}},{key:"onClick",value:function(e){var t=e.delegateTarget||e.currentTarget,n=this.action(t)||"copy",r=p({action:n,container:this.container,target:this.target(t),text:this.text(t)});this.emit(r?"success":"error",{action:n,text:r,trigger:t,clearSelection:function(){t&&t.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(e){return w("action",e)}},{key:"defaultTarget",value:function(e){var t=w("target",e);if(t)return document.querySelector(t)}},{key:"defaultText",value:function(e){return w("text",e)}},{key:"destroy",value:function(){this.listener.destroy()}}],r=[{key:"copy",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{container:document.body};return v(e,t)}},{key:"cut",value:function(e){return s(e)}},{key:"isSupported",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],t="string"==typeof e?[e]:e,n=!!document.queryCommandSupported;return t.forEach(function(e){n=n&&!!document.queryCommandSupported(e)}),n}}],n&&h(t.prototype,n),r&&h(t,r),a}(o()),C=O},828:function(e){if("undefined"!=typeof Element&&!Element.prototype.matches){var t=Element.prototype;t.matches=t.matchesSelector||t.mozMatchesSelector||t.msMatchesSelector||t.oMatchesSelector||t.webkitMatchesSelector}e.exports=function(e,t){for(;e&&9!==e.nodeType;){if("function"==typeof e.matches&&e.matches(t))return e;e=e.parentNode}}},438:function(e,t,n){var r=n(828);function o(e,t,n,r,o){var l=a.apply(this,arguments);return e.addEventListener(n,l,o),{destroy:function(){e.removeEventListener(n,l,o)}}}function a(e,t,n,o){return function(n){n.delegateTarget=r(n.target,t),n.delegateTarget&&o.call(e,n)}}e.exports=function(e,t,n,r,a){return"function"==typeof e.addEventListener?o.apply(null,arguments):"function"==typeof n?o.bind(null,document).apply(null,arguments):("string"==typeof e&&(e=document.querySelectorAll(e)),Array.prototype.map.call(e,function(e){return o(e,t,n,r,a)}))}},879:function(e,t){t.node=function(e){return void 0!==e&&e instanceof HTMLElement&&1===e.nodeType},t.nodeList=function(e){var n=Object.prototype.toString.call(e);return void 0!==e&&("[object NodeList]"===n||"[object HTMLCollection]"===n)&&"length"in e&&(0===e.length||t.node(e[0]))},t.string=function(e){return"string"==typeof e||e instanceof String},t.fn=function(e){return"[object Function]"===Object.prototype.toString.call(e)}},370:function(e,t,n){var r=n(879),o=n(438);e.exports=function(e,t,n){if(!e&&!t&&!n)throw new Error("Missing required arguments");if(!r.string(t))throw new TypeError("Second argument must be a String");if(!r.fn(n))throw new TypeError("Third argument must be a Function");if(r.node(e))return function(e,t,n){return e.addEventListener(t,n),{destroy:function(){e.removeEventListener(t,n)}}}(e,t,n);if(r.nodeList(e))return function(e,t,n){return Array.prototype.forEach.call(e,function(e){e.addEventListener(t,n)}),{destroy:function(){Array.prototype.forEach.call(e,function(e){e.removeEventListener(t,n)})}}}(e,t,n);if(r.string(e))return function(e,t,n){return o(document.body,e,t,n)}(e,t,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}},817:function(e){e.exports=function(e){var t;if("SELECT"===e.nodeName)e.focus(),t=e.value;else if("INPUT"===e.nodeName||"TEXTAREA"===e.nodeName){var n=e.hasAttribute("readonly");n||e.setAttribute("readonly",""),e.select(),e.setSelectionRange(0,e.value.length),n||e.removeAttribute("readonly"),t=e.value}else{e.hasAttribute("contenteditable")&&e.focus();var r=window.getSelection(),o=document.createRange();o.selectNodeContents(e),r.removeAllRanges(),r.addRange(o),t=r.toString()}return t}},279:function(e){function t(){}t.prototype={on:function(e,t,n){var r=this.e||(this.e={});return(r[e]||(r[e]=[])).push({fn:t,ctx:n}),this},once:function(e,t,n){var r=this;function o(){r.off(e,o),t.apply(n,arguments)}return o._=t,this.on(e,o,n)},emit:function(e){for(var t=[].slice.call(arguments,1),n=((this.e||(this.e={}))[e]||[]).slice(),r=0,o=n.length;rt.top?e:t}).link;w(o)}},b=function(e){var t=e.match(Sm);if(t){var n=document.getElementById(t[1]);if(n)return n}},w=function(){var n=Gp(bm.mark(function n(r){var o;return bm.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:if(l.value!==r){n.next=1;break}return n.abrupt("return");case 1:return l.value=r,null===(o=e.onChange)||void 0===o||o.call(e,r,l.value),n.next=2,t.nextTick();case 2:O();case 3:case"end":return n.stop()}},n)}));return function(e){return n.apply(this,arguments)}}(),O=function(){var e,t=null===(e=o.value)||void 0===e?void 0:e.querySelector(".".concat(p.value.active,">a"));if(t){var n=t.offsetTop,r=t.offsetHeight;Object.assign(c,{top:"".concat(n,"px"),height:"".concat(r,"px"),opacity:1})}else Object.assign(c,{})},C=function(){var t=Gp(bm.mark(function t(n){var r,o,a,l,c;return bm.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(r=b(n),w(n),r){t.next=1;break}return t.abrupt("return");case 1:return u.value=!0,o=e.targetOffset,a=bl(i.value),l=jm(r,i.value),c=a+l-o,t.next=2,wl(c,{container:i.value});case 2:u.value=!1;case 3:case"end":return t.stop()}},t)}));return function(e){return t.apply(this,arguments)}}();return t.onMounted(Gp(bm.mark(function e(){return bm.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(g(),!l.value){e.next=2;break}return e.next=1,t.nextTick();case 1:C(l.value);case 2:case"end":return e.stop()}},e)}))),t.onUnmounted(function(){i.value&&vl(i.value,"scroll",y)}),t.watchEffect(function(){i.value&&vl(i.value,"scroll",y),g()}),t.provide(Nm,t.reactive({registerLink:function(e){Sm.test(e)&&-1===a.value.indexOf(e)&&a.value.push(e)},unregisterLink:function(e){a.value=a.value.filter(function(t){return t!==e})},handleScrollTo:C,handleLinkClick:function(t){var n;null===(n=e.onClick)||void 0===n||n.call(e,t)},active:l})),function(){var n,a=e.size,l=e.affixProps,i=[s.value,m.value[a]],u=t.createVNode("div",t.mergeProps({ref:o,class:i},r),[t.createVNode("div",{class:d.value},[t.createVNode("div",{class:"".concat(v.value,"-wrapper"),style:c},[h("cursor")||t.createVNode("div",{class:v.value},null)])]),h("default")]);return l?t.createVNode(Cm,l,"function"==typeof(n=u)||"[object Object]"===Object.prototype.toString.call(n)&&!t.isVNode(n)?u:{default:function(){return[u]}}):u}}});function Vm(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Dm(e){for(var t=1;t0&&kh(r.width)/e.offsetWidth||1,a=e.offsetHeight>0&&kh(r.height)/e.offsetHeight||1);var l=(wh(e)?bh(e):window).visualViewport,i=!_h()&&n,u=(r.left+(i&&l?l.offsetLeft:0))/o,c=(r.top+(i&&l?l.offsetTop:0))/a,s=r.width/o,d=r.height/a;return{width:s,height:d,top:c,right:u+s,bottom:c+d,left:u,x:u,y:c}}function Dh(e){var t=Vh(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function Eh(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&Ch(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function Fh(e){return bh(e).getComputedStyle(e)}function Th(e){return["table","td","th"].indexOf(yh(e))>=0}function Mh(e){return((wh(e)?e.ownerDocument:e.document)||window.document).documentElement}function Ih(e){return"html"===yh(e)?e:e.assignedSlot||e.parentNode||(Ch(e)?e.host:null)||Mh(e)}function Ah(e){return Oh(e)&&"fixed"!==Fh(e).position?e.offsetParent:null}function Bh(e){for(var t=bh(e),n=Ah(e);n&&Th(n)&&"static"===Fh(n).position;)n=Ah(n);return n&&("html"===yh(n)||"body"===yh(n)&&"static"===Fh(n).position)?t:n||function(e){var t=/firefox/i.test(Nh());if(/Trident/i.test(Nh())&&Oh(e)&&"fixed"===Fh(e).position)return null;var n=Ih(e);for(Ch(n)&&(n=n.host);Oh(n)&&["html","body"].indexOf(yh(n))<0;){var r=Fh(n);if("none"!==r.transform||"none"!==r.perspective||"paint"===r.contain||-1!==["transform","perspective"].indexOf(r.willChange)||t&&"filter"===r.willChange||t&&r.filter&&"none"!==r.filter)return n;n=n.parentNode}return null}(e)||t}function Lh(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Rh(e,t,n){return Sh(e,jh(t,n))}function zh(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function Hh(e,t){return t.reduce(function(t,n){return t[n]=e,t},{})}var Wh={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,r=e.name,o=e.options,a=n.elements.arrow,l=n.modifiersData.popperOffsets,i=Ph(n.placement),u=Lh(i),c=[uh,ih].indexOf(i)>=0?"height":"width";if(a&&l){var s=function(e,t){return zh("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:Hh(e,sh))}(o.padding,n),d=Dh(a),v="y"===u?ah:uh,f="y"===u?lh:ih,p=n.rects.reference[c]+n.rects.reference[u]-l[u]-n.rects.popper[c],m=l[u]-n.rects.reference[u],h=Bh(a),g=h?"y"===u?h.clientHeight||0:h.clientWidth||0:0,y=p/2-m/2,b=s[v],w=g-d[c]-s[f],O=g/2-d[c]/2+y,C=Rh(b,O,w),x=u;n.modifiersData[r]=((t={})[x]=C,t.centerOffset=C-O,t)}},effect:function(e){var t=e.state,n=e.options.element,r=void 0===n?"[data-popper-arrow]":n;null!=r&&("string"!=typeof r||(r=t.elements.popper.querySelector(r)))&&Eh(t.elements.popper,r)&&(t.elements.arrow=r)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Kh(e){return e.split("-")[1]}var Uh={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Yh(e){var t,n=e.popper,r=e.popperRect,o=e.placement,a=e.variation,l=e.offsets,i=e.position,u=e.gpuAcceleration,c=e.adaptive,s=e.roundOffsets,d=e.isFixed,v=l.x,f=void 0===v?0:v,p=l.y,m=void 0===p?0:p,h="function"==typeof s?s({x:f,y:m}):{x:f,y:m};f=h.x,m=h.y;var g=l.hasOwnProperty("x"),y=l.hasOwnProperty("y"),b=uh,w=ah,O=window;if(c){var C=Bh(n),x="clientHeight",P="clientWidth";if(C===bh(n)&&"static"!==Fh(C=Mh(n)).position&&"absolute"===i&&(x="scrollHeight",P="scrollWidth"),o===ah||(o===uh||o===ih)&&a===vh)w=lh,m-=(d&&C===O&&O.visualViewport?O.visualViewport.height:C[x])-r.height,m*=u?1:-1;if(o===uh||(o===ah||o===lh)&&a===vh)b=ih,f-=(d&&C===O&&O.visualViewport?O.visualViewport.width:C[P])-r.width,f*=u?1:-1}var S,j=Object.assign({position:i},c&&Uh),k=!0===s?function(e,t){var n=e.x,r=e.y,o=t.devicePixelRatio||1;return{x:kh(n*o)/o||0,y:kh(r*o)/o||0}}({x:f,y:m},bh(n)):{x:f,y:m};return f=k.x,m=k.y,u?Object.assign({},j,((S={})[w]=y?"0":"",S[b]=g?"0":"",S.transform=(O.devicePixelRatio||1)<=1?"translate("+f+"px, "+m+"px)":"translate3d("+f+"px, "+m+"px, 0)",S)):Object.assign({},j,((t={})[w]=y?m+"px":"",t[b]=g?f+"px":"",t.transform="",t))}var $h={passive:!0};var Zh={left:"right",right:"left",bottom:"top",top:"bottom"};function qh(e){return e.replace(/left|right|bottom|top/g,function(e){return Zh[e]})}var Xh={start:"end",end:"start"};function Gh(e){return e.replace(/start|end/g,function(e){return Xh[e]})}function Jh(e){var t=bh(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function Qh(e){return Vh(Mh(e)).left+Jh(e).scrollLeft}function eg(e){var t=Fh(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function tg(e){return["html","body","#document"].indexOf(yh(e))>=0?e.ownerDocument.body:Oh(e)&&eg(e)?e:tg(Ih(e))}function ng(e,t){var n;void 0===t&&(t=[]);var r=tg(e),o=r===(null==(n=e.ownerDocument)?void 0:n.body),a=bh(r),l=o?[a].concat(a.visualViewport||[],eg(r)?r:[]):r,i=t.concat(l);return o?i:i.concat(ng(Ih(l)))}function rg(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function og(e,t,n){return t===fh?rg(function(e,t){var n=bh(e),r=Mh(e),o=n.visualViewport,a=r.clientWidth,l=r.clientHeight,i=0,u=0;if(o){a=o.width,l=o.height;var c=_h();(c||!c&&"fixed"===t)&&(i=o.offsetLeft,u=o.offsetTop)}return{width:a,height:l,x:i+Qh(e),y:u}}(e,n)):wh(t)?function(e,t){var n=Vh(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(t,n):rg(function(e){var t,n=Mh(e),r=Jh(e),o=null==(t=e.ownerDocument)?void 0:t.body,a=Sh(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),l=Sh(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),i=-r.scrollLeft+Qh(e),u=-r.scrollTop;return"rtl"===Fh(o||n).direction&&(i+=Sh(n.clientWidth,o?o.clientWidth:0)-a),{width:a,height:l,x:i,y:u}}(Mh(e)))}function ag(e,t,n,r){var o="clippingParents"===t?function(e){var t=ng(Ih(e)),n=["absolute","fixed"].indexOf(Fh(e).position)>=0&&Oh(e)?Bh(e):e;return wh(n)?t.filter(function(e){return wh(e)&&Eh(e,n)&&"body"!==yh(e)}):[]}(e):[].concat(t),a=[].concat(o,[n]),l=a[0],i=a.reduce(function(t,n){var o=og(e,n,r);return t.top=Sh(o.top,t.top),t.right=jh(o.right,t.right),t.bottom=jh(o.bottom,t.bottom),t.left=Sh(o.left,t.left),t},og(e,l,r));return i.width=i.right-i.left,i.height=i.bottom-i.top,i.x=i.left,i.y=i.top,i}function lg(e){var t,n=e.reference,r=e.element,o=e.placement,a=o?Ph(o):null,l=o?Kh(o):null,i=n.x+n.width/2-r.width/2,u=n.y+n.height/2-r.height/2;switch(a){case ah:t={x:i,y:n.y-r.height};break;case lh:t={x:i,y:n.y+n.height};break;case ih:t={x:n.x+n.width,y:u};break;case uh:t={x:n.x-r.width,y:u};break;default:t={x:n.x,y:n.y}}var c=a?Lh(a):null;if(null!=c){var s="y"===c?"height":"width";switch(l){case dh:t[c]=t[c]-(n[s]/2-r[s]/2);break;case vh:t[c]=t[c]+(n[s]/2-r[s]/2)}}return t}function ig(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=void 0===r?e.placement:r,a=n.strategy,l=void 0===a?e.strategy:a,i=n.boundary,u=void 0===i?"clippingParents":i,c=n.rootBoundary,s=void 0===c?fh:c,d=n.elementContext,v=void 0===d?ph:d,f=n.altBoundary,p=void 0!==f&&f,m=n.padding,h=void 0===m?0:m,g=zh("number"!=typeof h?h:Hh(h,sh)),y=v===ph?"reference":ph,b=e.rects.popper,w=e.elements[p?y:v],O=ag(wh(w)?w:w.contextElement||Mh(e.elements.popper),u,s,l),C=Vh(e.elements.reference),x=lg({reference:C,element:b,strategy:"absolute",placement:o}),P=rg(Object.assign({},b,x)),S=v===ph?P:C,j={top:O.top-S.top+g.top,bottom:S.bottom-O.bottom+g.bottom,left:O.left-S.left+g.left,right:S.right-O.right+g.right},k=e.modifiersData.offset;if(v===ph&&k){var N=k[o];Object.keys(j).forEach(function(e){var t=[ih,lh].indexOf(e)>=0?1:-1,n=[ah,lh].indexOf(e)>=0?"y":"x";j[e]+=N[n]*t})}return j}function ug(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=n.boundary,a=n.rootBoundary,l=n.padding,i=n.flipVariations,u=n.allowedAutoPlacements,c=void 0===u?hh:u,s=Kh(r),d=s?i?mh:mh.filter(function(e){return Kh(e)===s}):sh,v=d.filter(function(e){return c.indexOf(e)>=0});0===v.length&&(v=d);var f=v.reduce(function(t,n){return t[n]=ig(e,{placement:n,boundary:o,rootBoundary:a,padding:l})[Ph(n)],t},{});return Object.keys(f).sort(function(e,t){return f[e]-f[t]})}var cg={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var o=n.mainAxis,a=void 0===o||o,l=n.altAxis,i=void 0===l||l,u=n.fallbackPlacements,c=n.padding,s=n.boundary,d=n.rootBoundary,v=n.altBoundary,f=n.flipVariations,p=void 0===f||f,m=n.allowedAutoPlacements,h=t.options.placement,g=Ph(h),y=u||(g===h||!p?[qh(h)]:function(e){if(Ph(e)===ch)return[];var t=qh(e);return[Gh(e),t,Gh(t)]}(h)),b=[h].concat(y).reduce(function(e,n){return e.concat(Ph(n)===ch?ug(t,{placement:n,boundary:s,rootBoundary:d,padding:c,flipVariations:p,allowedAutoPlacements:m}):n)},[]),w=t.rects.reference,O=t.rects.popper,C=new Map,x=!0,P=b[0],S=0;S=0,V=_?"width":"height",D=ig(t,{placement:j,boundary:s,rootBoundary:d,altBoundary:v,padding:c}),E=_?N?ih:uh:N?lh:ah;w[V]>O[V]&&(E=qh(E));var F=qh(E),T=[];if(a&&T.push(D[k]<=0),i&&T.push(D[E]<=0,D[F]<=0),T.every(function(e){return e})){P=j,x=!1;break}C.set(j,T)}if(x)for(var M=function(e){var t=b.find(function(t){var n=C.get(t);if(n)return n.slice(0,e).every(function(e){return e})});if(t)return P=t,"break"},I=p?3:1;I>0;I--){if("break"===M(I))break}t.placement!==P&&(t.modifiersData[r]._skip=!0,t.placement=P,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function sg(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function dg(e){return[ah,ih,lh,uh].some(function(t){return e[t]>=0})}var vg={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.offset,a=void 0===o?[0,0]:o,l=hh.reduce(function(e,n){return e[n]=function(e,t,n){var r=Ph(e),o=[uh,ah].indexOf(r)>=0?-1:1,a="function"==typeof n?n(Object.assign({},t,{placement:e})):n,l=a[0],i=a[1];return l=l||0,i=(i||0)*o,[uh,ih].indexOf(r)>=0?{x:i,y:l}:{x:l,y:i}}(n,t.rects,a),e},{}),i=l[t.placement],u=i.x,c=i.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=u,t.modifiersData.popperOffsets.y+=c),t.modifiersData[r]=l}};var fg={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.mainAxis,a=void 0===o||o,l=n.altAxis,i=void 0!==l&&l,u=n.boundary,c=n.rootBoundary,s=n.altBoundary,d=n.padding,v=n.tether,f=void 0===v||v,p=n.tetherOffset,m=void 0===p?0:p,h=ig(t,{boundary:u,rootBoundary:c,padding:d,altBoundary:s}),g=Ph(t.placement),y=Kh(t.placement),b=!y,w=Lh(g),O="x"===w?"y":"x",C=t.modifiersData.popperOffsets,x=t.rects.reference,P=t.rects.popper,S="function"==typeof m?m(Object.assign({},t.rects,{placement:t.placement})):m,j="number"==typeof S?{mainAxis:S,altAxis:S}:Object.assign({mainAxis:0,altAxis:0},S),k=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,N={x:0,y:0};if(C){if(a){var _,V="y"===w?ah:uh,D="y"===w?lh:ih,E="y"===w?"height":"width",F=C[w],T=F+h[V],M=F-h[D],I=f?-P[E]/2:0,A=y===dh?x[E]:P[E],B=y===dh?-P[E]:-x[E],L=t.elements.arrow,R=f&&L?Dh(L):{width:0,height:0},z=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},H=z[V],W=z[D],K=Rh(0,x[E],R[E]),U=b?x[E]/2-I-K-H-j.mainAxis:A-K-H-j.mainAxis,Y=b?-x[E]/2+I+K+W+j.mainAxis:B+K+W+j.mainAxis,$=t.elements.arrow&&Bh(t.elements.arrow),Z=$?"y"===w?$.clientTop||0:$.clientLeft||0:0,q=null!=(_=null==k?void 0:k[w])?_:0,X=F+Y-q,G=Rh(f?jh(T,F+U-q-Z):T,F,f?Sh(M,X):M);C[w]=G,N[w]=G-F}if(i){var J,Q="x"===w?ah:uh,ee="x"===w?lh:ih,te=C[O],ne="y"===O?"height":"width",re=te+h[Q],oe=te-h[ee],ae=-1!==[ah,uh].indexOf(g),le=null!=(J=null==k?void 0:k[O])?J:0,ie=ae?re:te-x[ne]-P[ne]-le+j.altAxis,ue=ae?te+x[ne]+P[ne]-le-j.altAxis:oe,ce=f&&ae?function(e,t,n){var r=Rh(e,t,n);return r>n?n:r}(ie,te,ue):Rh(f?ie:re,te,f?ue:oe);C[O]=ce,N[O]=ce-te}t.modifiersData[r]=N}},requiresIfExists:["offset"]};function pg(e,t,n){void 0===n&&(n=!1);var r,o=Oh(t),a=Oh(t)&&function(e){var t=e.getBoundingClientRect(),n=kh(t.width)/e.offsetWidth||1,r=kh(t.height)/e.offsetHeight||1;return 1!==n||1!==r}(t),l=Mh(t),i=Vh(e,a,n),u={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(o||!o&&!n)&&(("body"!==yh(t)||eg(l))&&(u=(r=t)!==bh(r)&&Oh(r)?function(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}(r):Jh(r)),Oh(t)?((c=Vh(t,!0)).x+=t.clientLeft,c.y+=t.clientTop):l&&(c.x=Qh(l))),{x:i.left+u.scrollLeft-c.x,y:i.top+u.scrollTop-c.y,width:i.width,height:i.height}}function mg(e){var t=new Map,n=new Set,r=[];function o(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach(function(e){if(!n.has(e)){var r=t.get(e);r&&o(r)}}),r.push(e)}return e.forEach(function(e){t.set(e.name,e)}),e.forEach(function(e){n.has(e.name)||o(e)}),r}var hg={placement:"bottom",modifiers:[],strategy:"absolute"};function gg(){for(var e=arguments.length,t=new Array(e),n=0;n0&&void 0!==arguments[0]?arguments[0]:[]).forEach(function(n){S(n)?e.push.apply(e,i(n)):n.type===t.Fragment?e.push.apply(e,i(Og(n.children))):e.push(n)}),e.filter(function(e){return!(e&&(e.type===t.Comment||e.type===t.Fragment&&0===e.children.length||e.type===t.Text&&""===e.children.trim()))})}function Cg(e){var n=t.getCurrentInstance(),r=t.ref();return t.onMounted(function(){r.value=e(n)}),t.onUpdated(function(){var t=e(n);r.value!==t&&(r.value=t)}),r}var xg=t.defineComponent({name:"TPopupTrigger",props:{forwardRef:Function},emits:["resize"],setup:function(e,n){var r=n.emit,o=n.slots,a=Cg(function(e){return e.parent.vnode.el.nextElementSibling}),l=t.ref();return t.watch(a,function(){var t;null===(t=e.forwardRef)||void 0===t||t.call(e,a.value)}),zi(a,function(e){var t=Ya(e,1)[0].contentRect;l.value=t}),t.watch(l,function(e,t){var n,o;o=t,!(n=e)&&!o||n&&o&&!["width","height","x","y"].some(function(e){return n[e]!==o[e]})||r("resize")}),function(){var e,n,r=Og(null===(e=o.default)||void 0===e?void 0:e.call(o));return r.length>1||(null===(n=r[0])||void 0===n?void 0:n.type)===t.Text?t.createVNode("span",null,[r]):r[0]}}}),Pg=t.defineComponent({name:"TPopupContent",emits:["resize"],setup:function(e,n){var r=n.emit,o=n.slots;return zi(Cg(function(e){return e.vnode.el.children[0]}),function(){r("resize")}),function(){return t.createVNode("div",{style:"position: absolute; top: 0px; left: 0px; width: 100%"},[o.default()])}}}),Sg=t.defineComponent({name:"TPopupContainer",inheritAttrs:!1,props:{parent:Object,visible:Boolean,attach:wg.attach,forwardRef:Function},emits:["resize","contentMounted"],setup:function(e,n){var r=n.emit,o=n.attrs,a=n.slots,l=n.expose,i=t.ref(),u=t.ref(!1);function c(){r("resize")}return t.onMounted(function(){requestAnimationFrame(function(){u.value=e.visible})}),t.watch(function(){return e.visible},function(t){t&&(u.value=e.visible)}),l({unmountContent:function(){u.value=!1}}),function(){var n,l,s=function(){return hl(e.attach,i.value)};return t.createVNode(t.Fragment,null,[t.createVNode(xg,{class:o.class,forwardRef:function(t){e.forwardRef(t),i.value=t},onResize:c},(l=n=a.default(),"function"==typeof l||"[object Object]"===Object.prototype.toString.call(l)&&!t.isVNode(l)?n:{default:function(){return[n]}})),u.value&&t.createVNode(t.Teleport,{disabled:!s(),to:s()},{default:function(){return[t.createVNode(Pg,{onResize:c,onVnodeMounted:function(){return r("contentMounted")}},{default:function(){return[a.content&&a.content()]}})]}})])}}});function jg(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function kg(e){for(var t=1;tn.x&&t.xn.y&&t.y0&&(Gg(l.value)||Gg(u.value))?(pi("Breadcrumb","\u9700\u8981\u8bbe\u7f6e itemsBeforeCollapse \u548c itemsAfterCollapse \u5c5e\u6027\u6765\u63a7\u5236\u7701\u7565\u53f7\u524d\u540e\u7684\u663e\u793a\u9879\u6570\u3002"),!1):!(r<=0||o<=r||i>=o)}),s=t.computed(function(){var e=n.value;if(!c.value)return e;var t=e.length,o=e.slice(0,l.value),a=e.slice(t-u.value,t);return[].concat(i(o),[{content:r,disabled:!0,isEllipsisItem:!0}],i(a))}),d=t.computed(function(){var e=n.value;if(!c.value)return[];var t=e.slice(l.value,e.length-u.value);return t.map(function(e,n){return Xg(Xg({},e),{},{isLast:n===t.length-1})})});return{getDisplayItems:s,getEllipsisItems:d}}(e,r,c),f=s.getDisplayItems.value.map(function(e,n){return"object"===u(e)&&"content"in e?t.createVNode(Zg,t.mergeProps({key:n},e),{default:function(){return[e.content]}}):e});return t.createVNode("div",{class:a.value},[f])}}}),ty=Nl(ey),ny=Nl(Zg),ry={active:Boolean,content:{type:[String,Function],default:""},disabled:Boolean,divider:Boolean,prefixIcon:{type:Function},theme:{type:String,default:"default",validator:function(e){return!e||["default","success","warning","error"].includes(e)}},value:{type:[String,Number,Object]},onClick:Function};function oy(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function ay(e){for(var t=1;t=e.maxHeight&&(i.value=!0));a.value=document.querySelector(".".concat(n.value,"__item")).scrollHeight+2});var d=function(e){return H(e)?e(t.h):e},v=function(r,l){var i,f,p=[];return null===(i=r.forEach)||void 0===i||i.call(r,function(r,i){var m=function(e){for(var t=1;t=0?h:i;m.children?(m.children=v(m.children,l+1),f=t.createVNode("div",{key:i},[t.createVNode(ly,{style:m.style,class:["".concat(n.value,"__item"),"".concat(n.value,"__item--suffix"),m.class],value:m.value,theme:m.theme,active:m.active,prefixIcon:m.prefixIcon,disabled:m.disabled,minColumnWidth:e.minColumnWidth,maxColumnWidth:e.maxColumnWidth,isSubmenu:!0},{default:function(){return[t.createVNode("div",{class:"".concat(n.value,"__item-content")},[t.createVNode("span",{class:"".concat(n.value,"__item-text")},[d(m.content)]),t.createVNode(u,{class:"".concat(n.value,"__item-direction"),size:"16"},null)]),t.createVNode("div",{class:["".concat(n.value,"__submenu-wrapper"),s({},"".concat(n.value,"__submenu-wrapper--").concat(e.direction),e.direction)],style:{position:"absolute",top:"".concat(g*a.value,"px")}},[t.createVNode("div",{class:["".concat(n.value,"__submenu"),s({},"".concat(n.value,"__submenu--disabled"),m.disabled)],style:{position:"static",maxHeight:"".concat(e.maxHeight,"px")},onScroll:function(e){return c(e,l+1)}},[t.createVNode("ul",null,[m.children])])])]}}),m.divider?t.createVNode(Vp,null,null):null])):f=t.createVNode("div",{key:i},[t.createVNode(ly,{style:m.style,class:["".concat(n.value,"__item"),m.class],value:m.value,theme:m.theme,active:m.active,prefixIcon:m.prefixIcon,disabled:m.disabled,minColumnWidth:e.minColumnWidth,maxColumnWidth:e.maxColumnWidth,onClick:m.disabled||m.children?function(){return null}:function(t,n){return function(t){var n,r,o=t.data,a=t.context;null==o||null===(n=o.onClick)||void 0===n||n.call(o,o,a),null===(r=e.onClick)||void 0===r||r.call(e,o,a)}({data:m,context:n})}},{default:function(){return[t.createVNode("span",{class:"".concat(n.value,"__item-text")},[d(m.content)])]}}),m.divider?t.createVNode(Vp,null,null):null]),p.push(f)}),p};return function(){return t.createVNode("div",{class:[r.value,"".concat(r.value,"--").concat(e.direction),s({},"".concat(r.value,"--overflow"),i.value)],style:{maxHeight:"".concat(e.maxHeight,"px")},ref:l,onScroll:function(e){return c(e,0)}},[v(e.options,0)])}}});function sy(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function dy(e){for(var t=1;t0?vy(m):null})}).filter(function(e){return!!e.content}):S(e)&&S(null===(n=e[0])||void 0===n?void 0:n.children)?vy(null===(r=e[0])||void 0===r?void 0:r.children):[]};function fy(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function py(e){for(var t=1;t0?e.options:vy(u)})}(e),f=py(py(py({},r),{},{disabled:e.disabled,placement:e.placement,trigger:e.trigger},la(e.popupProps,["onVisibleChange","on-visible-change"])),{},{overlayInnerClassName:[a.value,null===(u=e.popupProps)||void 0===u?void 0:u.overlayInnerClassName]});return t.createVNode(Fg,t.mergeProps({destroyOnClose:!0,ref:l,visible:i.value,onVisibleChange:s,expandAnimation:!0},f),{default:function(){return[d]},content:function(){var n;return t.createVNode(t.Fragment,null,[o("panelTopContent"),null!==(n=v.value)&&void 0!==n&&n.length?t.createVNode(cy,t.mergeProps(la(e,"onClick"),{options:v.value,onClick:c}),null):null,o("panelBottomContent")])}})}}}),hy=Nl(my),gy=Nl(ly),yy=Nl(cy),by={collapsed:Boolean,expanded:{type:Array,default:void 0},defaultExpanded:{type:Array,default:[]},expandMutex:Boolean,expandType:{type:String,default:"normal",validator:function(e){return!e||["normal","popup"].includes(e)}},logo:{type:Function},operations:{type:Function},theme:{type:String,default:"light",validator:function(e){return!e||["light","dark"].includes(e)}},value:{type:[String,Number],default:void 0},modelValue:{type:[String,Number],default:void 0},defaultValue:{type:[String,Number]},width:{type:[String,Number,Array],default:"232px"},onChange:Function,onExpand:Function};function wy(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}var Oy=function(e,t,n){if(e)for(var r=0;r0)for(var n=0,r=e.children.length;n0){var o=xy(this.data,n);o&&!o.children.some(function(e){return e.value===r.value})?o.children.push(r):this.cache.add(r)}else this.cache.add(r)}},{key:"select",value:function(e){var t=Oy(this.data,e,[])||[];return t.push(e),t.filter(function(e){return null!=e})}},{key:"expand",value:function(e){var t=this;if(this.expandValues.has(e))return this.expandValues.delete(e),i(this.expandValues);if(this.expandValues.add(e),!this.isMutex.value)return i(this.expandValues);var n=Cy(this.data,e)||[],r=new Set(n.filter(function(t){var n;return(null===(n=t.children)||void 0===n?void 0:n.length)>0&&t.value!==e}).map(function(e){return e.value}));return this.expandValues.forEach(function(e){r.has(e)&&t.expandValues.delete(e)}),i(this.expandValues)}},{key:"getChild",value:function(e){var t=xy(this.data,e);return t?t.children:[]}}])}();function Sy(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function jy(e){for(var t=1;t1}),C=t.computed(function(){return c.valueMath.abs(n)?E(c.value+t):E(c.value+n)}},M=function(){setTimeout(function(){E(function(e,t,n){var r,o=e.navsContainer,a=e.activeTab,l=e.rightOperations,i=e.leftOperations,u=Ey(a),c=Ey(o),s=(null==(r=a)?void 0:r.offsetLeft)||0,d=Ey(l),v=Ey(i);if("auto"===n){if(s-vt+c-d)return s+u-c+d}else{if("start"===n)return s-v;if("center"===n)return s+(u-c)/2;if("end"===n)return s+u-c+d}return t}(b(),c.value,e.scrollPosition))},0)},I=function(){t.nextTick(function(){var e,t,n,r,o;g.value=(e=b(),t=e.navsWrap,n=e.navsContainer,r=e.rightOperations,o=e.toRightBtn,Ey(t)-Ey(n)+Ey(r)-Ey(o))})};t.watch([function(){return e.placement},function(){return e.panels}],I),t.watch([function(){return e.scrollPosition}],M),function(e,n){Ei("resize",e);var r=null;t.onMounted(function(){window.ResizeObserver&&n&&(r=new window.ResizeObserver(e)).observe(n)}),t.onBeforeUnmount(function(){var e;null===(e=r)||void 0===e||e.disconnect()})}(po(I),d.value);var A=function(t){var n;null===(n=e.onAdd)||void 0===n||n.call(e,{e:t})},B=function(t){var n=t.e,r=t.value,o=t.index;e.onRemove({e:n,value:r,index:o})},L=function(t){null!=t&&t.$el&&(null==t?void 0:t.value)===e.value&&h.value!==t.$el&&(h.value=t.$el,M())},R=function(e){var n,r=null,o=[],a=function(e){var t=e.target;n=t,t.style.opacity="0.5"},l=function(e){e.target.style.opacity=""},i=function(e){e.preventDefault()},u=function(e){var t=ui(e.target,r.children);t&&t!==n&&t.draggable&&(t.firstChild.style.outline="1px dashed #0052d9",o.includes(t)||o.push(t))},c=function(e){for(var t=e.target,n=0,r=o;nl&&(o=r.children[i+1]);var u="card"===e.theme?l:l-1,c="card"===e.theme?i:i-1;null===(a=e.onDragSort)||void 0===a||a.call(e,{currentIndex:u,current:e.panels[u].value,targetIndex:c,target:e.panels[c].value})}};return t.onUnmounted(function(){r&&(r.removeEventListener("dragstart",a),r.removeEventListener("dragend",l),r.removeEventListener("dragover",i),r.removeEventListener("dragenter",u),document.removeEventListener("dragleave",c),document.removeEventListener("mousemove",c),r.removeEventListener("drop",s))}),{setNavsWrap:function(e){(r=e).addEventListener("dragstart",a,!1),r.addEventListener("dragend",l,!1),r.addEventListener("dragover",i,!1),r.addEventListener("dragenter",u,!1),document.addEventListener("dragleave",c,!1),document.addEventListener("mousemove",c,!1),r.addEventListener("drop",s,!1)}}}(e),z=R.setNavsWrap;t.onMounted(function(){z(v.value),I(),M()});var W=function(){return e.panels.map(function(n,r){var o,a;a=null!=n&&null!==(o=n.children)&&void 0!==o&&o.label?n.children.label():H(n.label)?n.label(t.h):n.label||"\u9009\u9879\u5361".concat(r+1);var l=e.dragSort;return l&&!1===n.draggable&&(l=n.draggable),t.createVNode(Fy,{ref:L,draggable:l,key:n.value,index:r,theme:e.theme,size:e.size,placement:e.placement,label:a,active:n.value===e.value,disabled:e.disabled||n.disabled,removable:n.removable,value:n.value,onClick:function(t){return function(t,n){var r=n.value;if(n.disabled||e.value===r)return!1;e.onChange(r)}(0,n)},onRemove:B},null)})};return function(){return t.createVNode("div",{ref:d,class:["".concat(n.value,"__nav")],style:P.value},[[t.createVNode("div",{ref:f,class:["".concat(n.value,"__operations"),"".concat(n.value,"__operations--left")]},[t.createVNode(t.Transition,{name:"fade",mode:"out-in",appear:!0},{default:function(){return[O.value?t.createVNode("div",{class:j.value,onClick:function(){return F("prev")}},[t.createVNode(o,null,null)]):null]}})]),t.createVNode("div",{ref:p,class:["".concat(n.value,"__operations"),"".concat(n.value,"__operations--right")]},[t.createVNode(t.Transition,{name:"fade",mode:"out-in",appear:!0},{default:function(){return[C.value?t.createVNode("div",{ref:m,class:k.value,onClick:function(){return F("next")}},[t.createVNode(a,null,null)]):null]}}),e.addable?t.createVNode("div",{class:N.value,onClick:A},[t.createVNode(l,null,null)]):null,y.value&&e.action])],(r=W(),t.createVNode("div",{class:_.value},[t.createVNode("div",{class:V.value,onWheel:T},[t.createVNode("div",{ref:v,class:D.value,style:x.value},["card"!==e.theme&&t.createVNode(Ty,{placement:e.placement,value:e.value,navs:r},null),r])])]))]);var r}}}),By=t.defineComponent({name:"TTabs",props:Dy,setup:function(e){var n=ei("tabs"),r=ei(),o=Rl(),a=t.toRefs(e),l=Ya(Ui(a.value,a.modelValue,e.defaultValue||"",e.onChange),2),i=l[0],u=l[1];t.provide("tabs",{value:i});var c=function(t){var n;null===(n=e.onAdd)||void 0===n||n.call(e,{e:t.e})},d=function(e){u(e)},v=function(t){var n,r=t.e,o=t.value,a=t.index;null===(n=e.onRemove)||void 0===n||n.call(e,{value:o,index:a,e:r})},f=function(){var e=o("default");if(!e)return[];var t=function(e){return e.map(function(e){return e.children&&S(e.children)?t(e.children):e}).flat().filter(function(e){return"TTabPanel"===e.type.name})};return t(e)},p=function(){var n,a=(null!==(n=e.list)&&void 0!==n&&n.length?e.list:f())||[],l=o("action"),u=a.map(function(e){var t=e;return e.props&&Object.keys(e.props).forEach(function(n){t[n]=e.props[n]}),t}),p={theme:e.theme,value:i.value,size:e.size,disabled:e.disabled,placement:e.placement,scrollPosition:e.scrollPosition,addable:e.addable,panels:u,dragSort:e.dragSort,action:l};return t.createVNode("div",{class:s(s({},"".concat(r.value,"-tabs__header"),!0),"".concat(r.value,"-is-").concat(e.placement),!0)},[t.createVNode(Ay,t.mergeProps(p,{onDragSort:e.onDragSort,onChange:d,onAdd:c,onRemove:v}),null)])},m=function(){var n,o=f();return null!==(n=e.list)&&void 0!==n&&n.length?e.list.map(function(e){return t.createVNode(Vy,t.mergeProps(e,{onRemove:v}),null)}):o&&o.length?t.createVNode("div",{class:["".concat(r.value,"-tabs__content")]},[o]):void 0};return function(){return t.createVNode("div",{class:[n.value]},["bottom"!==e.placement?[p(),m()]:[m(),p()]])}}}),Ly=Nl(By),Ry=Nl(Vy),zy={content:{type:[String,Function]},default:{type:[String,Function]},disabled:Boolean,icon:{type:Function},popupProps:{type:Object},title:{type:[String,Function]},value:{type:[String,Number]}},Hy=t.defineComponent({name:"TFakeArrow",props:{isActive:{type:Boolean},overlayClassName:{type:[String,Object,Array]},overlayStyle:{type:Object||String}},setup:function(e){var n=ei("fake-arrow"),r=t.computed(function(){return[n.value,s({},"".concat(n.value,"--active"),e.isActive),e.overlayClassName]});return function(){return t.createVNode("svg",{class:r.value,width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:e.overlayStyle},[t.createVNode("path",{d:"M3.75 5.7998L7.99274 10.0425L12.2361 5.79921",stroke:"black","stroke-opacity":"0.9","stroke-width":"1.3"},null)])}}});function Wy(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}var Ky=t.defineComponent({name:"TSubmenu",props:zy,setup:function(e,n){var r=n.attrs,o=n.slots,a=ei(),l=Rl(),u=Hl(),c=t.getCurrentInstance(),d=t.inject("TdMenu"),v=t.toRefs(e).value,f=d.theme,p=d.activeValues,m=d.expandValues,h=d.isHead,g=d.open,y=t.inject("TdSubmenu",{}),b=y.setSubPopup,w=y.closeParentPopup,O=t.computed(function(){return r.expandType||d.mode.value}),C=t.ref([]),x=t.computed(function(){return p.value.indexOf(e.value)>-1}),P=t.ref(!1),S=t.ref(!1),j=t.computed(function(){return"light"===f.value?"#E7E7E7":"#383838"}),k=t.computed(function(){var t;return"popup"===O.value?P.value:!!m&&(null===(t=m.value)||void 0===t?void 0:t.includes(e.value))}),N=t.ref(!1),_=t.ref(),V=t.ref(),D=t.ref(),E=ei("slide-down");Wi(D,j);var F=t.computed(function(){return["".concat(a.value,"-submenu"),s(s({},"".concat(a.value,"-is-disabled"),e.disabled),"".concat(a.value,"-is-opened"),k.value)]}),T=t.computed(function(){var t;return["".concat(a.value,"-menu__popup"),"".concat(a.value,"-is-").concat(h?"horizontal":"vertical"),s({},"".concat(a.value,"-is-opened"),P.value),null===(t=e.popupProps)||void 0===t?void 0:t.overlayInnerClassName]}),M=t.computed(function(){var t;return["".concat(a.value,"-menu--").concat(f.value),h&&"".concat(a.value,"-is-head-menu"),s({},"".concat(a.value,"-menu-is-nested"),N.value),null===(t=e.popupProps)||void 0===t?void 0:t.overlayClassName]}),I=t.computed(function(){return["".concat(a.value,"-menu__item"),"".concat(a.value,"-menu__item-spacer"),"".concat(a.value,"-menu__item-spacer--").concat(h&&!N.value?"bottom":"right"),s(s(s({},"".concat(a.value,"-is-disabled"),e.disabled),"".concat(a.value,"-is-opened"),k.value),"".concat(a.value,"-is-active"),x.value)]}),A=t.computed(function(){return["".concat(a.value,"-menu__sub"),s({},"".concat(a.value,"-is-opened"),k.value)]}),B=t.computed(function(){return[s({},"".concat(a.value,"-fake-arrow--active"),k.value)]});t.provide("TdSubmenu",t.reactive({value:v,addMenuItem:function(e){C.value.push(e),y&&y.addMenuItem(e)},setSubPopup:function(e){V.value=e},closeParentPopup:function(e){var t=e.relatedTarget;W(t)||U(e)}}));var L=function(e){H(b)&&b(e)},R=function(){e.disabled||setTimeout(function(){P.value||(g(e.value),t.nextTick().then(function(){L(_.value)})),P.value=!0},0)},z=function(e){return null==e?void 0:e.classList.contains("".concat(a.value,"-menu__popup"))},W=function(e){return!!e&&(z(e)||W(e.parentElement))},K=function(e){setTimeout(function(){var t=z(e.relatedTarget);S.value||t||(P.value=!1)},0)},U=function(e){var t=e.toElement,n=e.relatedTarget,r=t||n;if(r!==V.value){for(var o=function(e){return e===D.value};null!==r&&r!==document&&!o(r);)r=r.parentNode;S.value=!1,o(r)||(P.value=!1),null==w||w(e)}},Y=function(){S.value=!0},$=function(){e.disabled||g(e.value)},Z=function(n){var r,o="right-top";!N.value&&h&&(o="bottom-left");var l=t.createVNode("div",{ref:_,class:["".concat(a.value,"-menu__spacer"),"".concat(a.value,"-menu__spacer--").concat(!N.value&&h?"top":"left")],onMouseenter:Y,onMouseleave:U},[t.createVNode("ul",{class:"".concat(a.value,"-menu__popup-wrapper")},[u("default","content")])]),c={content:function(){return l}},d=t.createVNode(Fg,t.mergeProps(null!==(r=e.popupProps)&&void 0!==r?r:{},{overlayInnerClassName:i(T.value),overlayClassName:i(M.value),visible:P.value,placement:o}),function(e){for(var t=1;t0&&(d=h?(n=l("icon"),r=[t.createVNode("div",{ref:D,class:I.value,onClick:$},[n,t.createVNode("span",{class:["".concat(a.value,"-menu__content")]},[l("title",{silent:!0})])]),t.createVNode("ul",{style:"opacity: 0; width: 0; height: 0; overflow: hidden"},[u("default","content")])],i="popup"===O.value&&N.value,s=[n,t.createVNode("span",{class:["".concat(a.value,"-menu__content")]},[l("title",{silent:!0})]),t.createVNode(Hy,{overlayClassName:/menu/i.test(null==c?void 0:c.parent.proxy.$options.name)?B.value:null,overlayStyle:{transform:"rotate(".concat(i?-90:0,"deg)")}},null)],"normal"===O.value?r:Z(s)):function(){for(var e=o.content||o.default,n=l("icon"),r=u("default","content"),i=c.parent,s=44;i&&"TMenu"!==i.type.name;)"TSubmenu"===i.type.name&&(s+=16),i=i.parent;var d={beforeEnter:function(e){e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.style.height="0",e.style.paddingTop="0",e.style.paddingBottom="0"},enter:function(e){e.dataset.oldOverflow=e.style.overflow,e.style.height="".concat(e.scrollHeight,"px"),e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom,e.style.overflow="hidden"},afterEnter:function(e){e.style.height="",e.style.overflow=e.dataset.oldOverflow},beforeLeave:function(e){e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.dataset.oldOverflow=e.style.overflow,e.style.height="".concat(e.scrollHeight,"px"),e.style.overflow="hidden"},leave:function(e){0!==e.scrollHeight&&(e.style.height="0",e.style.paddingTop="0",e.style.paddingBottom="0")},afterLeave:function(e){e.style.height="",e.style.overflow=e.dataset.oldOverflow,e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom}},v=d.beforeEnter,f=d.enter,p=d.afterEnter,m=d.beforeLeave,h=d.leave,g=d.afterLeave,y="popup"===O.value&&N.value,b=[t.createVNode("div",{ref:D,class:I.value,onClick:$},[n,t.createVNode("span",{class:["".concat(a.value,"-menu__content")]},[l("title",{silent:!0})]),e&&t.createVNode(Hy,{overlayClassName:B.value,overlayStyle:{transform:"rotate(".concat(y?-90:0,"deg)")}},null)]),t.createVNode(t.Transition,{name:E.value,onBeforeEnter:v,onEnter:f,onAfterEnter:p,onBeforeLeave:m,onLeave:h,onAfterLeave:g},{default:function(){return[t.withDirectives(t.createVNode("ul",{class:A.value,style:{"--padding-left":"".concat(s,"px")}},[r]),[[t.vShow,k.value]])]}})],w=[n,t.createVNode("span",{class:["".concat(a.value,"-menu__content")]},[l("title",{silent:!0})]),t.createVNode(Hy,{overlayClassName:/menu/i.test(i.proxy.$options.name)?B.value:null,overlayStyle:{transform:"rotate(".concat(y?-90:0,"deg)"),"margin-left":"auto"}},null)];return"normal"===O.value?b:Z(w)}()),t.createVNode("li",t.mergeProps({class:F.value},v),[d,e])}}});function Uy(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}var Yy=t.defineComponent({name:"THeadMenu",props:Ny,setup:function(e,n){var r,o,a,l,u=ei(),c=t.getCurrentInstance().proxy;t.watchEffect(function(){n.slots.options&&fi("TMenu","`options` slot is going to be deprecated, please use `operations` for slot instead.")});var d=t.toRefs(e),v=d.value,f=d.modelValue,p=d.expanded,m=Ya(Ui(v,f,e.defaultValue,e.onChange),2),h=m[0],g=m[1],y=Ya(ni(p,e.defaultExpanded,e.onExpand,"expanded"),2),b=y[0],w=y[1],O=t.ref([]),C=t.computed(function(){return e.theme}),x=t.computed(function(){return["".concat(u.value,"-menu"),"".concat(u.value,"-head-menu"),"".concat(u.value,"-menu--").concat(e.theme)]}),P=t.ref(e.expandType),j=t.reactive([]),k=new Py({isMutex:!0,expandValues:b.value});t.provide("TdMenu",{mode:P,theme:C,vMenu:k,isHead:!0,expandValues:b,activeValue:h,activeValues:O,select:function(e){g(e)},open:function(e,t){var n=i(b.value),r=n.indexOf(e);"popup"===P.value?"add"===t?-1===r&&n.push(e):"remove"===t&&n.splice(r,1):"normal"===P.value&&void 0!==e&&(n.splice(0,1),-1===r&&n.push(e)),w(n)}});var N=function(e){g(e),V(e)},_=function(e){var t=k.getChild(e);j.length=0,j.push.apply(j,i(t))};t.watch(b,function(e){"normal"===P.value&&_(e[0])});t.watch(h,function(e){O.value=k.select(e)}),t.watch(function(){return e.expandType},function(e){P.value=e}),t.onMounted(function(){var e;O.value=k.select(h.value),(null===(e=b.value)||void 0===e?void 0:e.length)>0&&_(b.value[0])});var V=function(e){var t,n=j.find(function(t){return t.value===e});null===(t=n.onClick)||void 0===t||t.call(n,{value:e});var r=n.to,o=n.href,a=n.replace;o&&(window.location.href=n.href);var l=n.router||c.$router;r&&l&&(a?l.replace(r):l.push(r))},D=t.ref(),E=t.ref(),F=t.ref(),T=t.ref(),M=function(e,t){e.forEach(function(e){var n,r,o,a,l=null===(n=e.props)||void 0===n?void 0:n.value;"TSubmenu"!==(null===(r=e.type)||void 0===r?void 0:r.name)&&"TMenuItem"!==(null===(o=e.type)||void 0===o?void 0:o.name)||k.add(function(e){for(var t=1;tNumber(r)?"error":""}return""}),o=t.computed(function(){return e.value.status||r.value}),a=function(){var t,n;null===(t=(n=e.value).onValidate)||void 0===t||t.call(n,{error:r.value?"exceed-maximum":void 0})};return t.watch(r,a),t.onMounted(function(){r.value&&a()}),{tStatus:o,limitNumber:n,getValueByLimitNumber:function(t){var n,r,o,a=e.value,l=a.allowInputOverMax,u=a.maxlength,c=a.maxcharacter;if(!u&&!c||l||!t)return t;if(u)return n=t,r=u,i(null!=o?o:"").slice().length===r?o||"":i(null!=n?n:"").slice(0,r).join("");if(c){var s=hu(t,c);if(E(s))return s.characters}}}}function cb(e,t){return"number"===t?e||0===e?Number(e):void 0:e}function sb(e,n){var r=t.toRefs(e),o=r.value,a=r.modelValue,l=t.ref(),i=t.ref(!1),u=t.ref(),c=t.ref(null),s=t.ref(),d=oi(),v=Ri(),f=Ya(Ui(o,a,e.defaultValue,e.onChange),2),p=f[0],m=f[1],h=t.ref(!1),g=t.ref(!1),y=t.ref(e.type),b=t.ref(null),w=ub(t.computed(function(){return{value:[void 0,null].includes(p.value)?void 0:String(p.value),status:e.status,maxlength:Number(e.maxlength),maxcharacter:e.maxcharacter,allowInputOverMax:e.allowInputOverMax,onValidate:e.onValidate}})),O=w.limitNumber,C=w.getValueByLimitNumber,x=w.tStatus,P=t.computed(function(){return(p.value&&!d.value&&e.clearable&&!v.value||e.showClearIconOnEmpty)&&h.value}),S=function(){var e;g.value=!0,null===(e=b.value)||void 0===e||e.focus()},j=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=b.value;if(t){var n=String(e);t.value&&t.value!==n&&(t.value=n)}},k=function(n){var r,o=n.target.value;"number"!==e.type&&"string"==typeof p.value&&o.length>(null===(r=p.value)||void 0===r?void 0:r.length)&&(o=C(o)),m(cb(o,e.type),{e:n,trigger:"input"}),t.nextTick(function(){"number"===e.type&&/\.(\d+)?0$/.test(o)?j(o):j(p.value)})},N=t.inject(ib,void 0);return t.watch(function(){return e.autofocus},function(e){!0===e&&t.nextTick(function(){var e;null===(e=b.value)||void 0===e||e.focus()})},{immediate:!0}),t.watch(p,function(t,n){var r="number"===e.type;void 0===n&&e.format&&"number"!=typeof t&&!r?l.value=e.format(t):l.value=t;var o="number"==typeof t?t:C(t);o===t||r||m(o,{trigger:"initial"})},{immediate:!0}),t.watch(function(){return e.type},function(e){y.value=e},{immediate:!0}),n({inputRef:b,focus:S,blur:function(){var e;g.value=!1,null===(e=b.value)||void 0===e||e.blur()}}),{isHover:h,focused:g,renderType:y,showClear:P,inputRef:b,clearIconRef:c,inputValue:l,isComposition:i,compositionValue:u,limitNumber:O,tStatus:x,emitFocus:function(t){var n;h.value&&g.value||(l.value=p.value,e.disabled||(g.value=!0,null===(n=e.onFocus)||void 0===n||n.call(e,p.value,{e:t})))},formatAndEmitBlur:function(t){var n;(function(){var e,t=s.value;if(!(t&&t.tagName&&null!==(e=c.value)&&void 0!==e&&e.$el&&["path","svg"].includes(t.tagName)))return!1;for(;t;){var n;if((null===(n=c.value)||void 0===n?void 0:n.$el)===t)return!0;t=t.parentNode}return!1})()?S():(e.format&&(l.value="number"==typeof p.value||"number"===e.type?p.value:e.format(p.value)),g.value=!1,i.value&&(i.value=!1,u.value=""),null===(n=e.onBlur)||void 0===n||n.call(e,p.value,{e:t}),null==N||N.handleBlur())},onHandleCompositionend:function(t){var n;i.value=!1,u.value="",k(t),null===(n=e.onCompositionend)||void 0===n||n.call(e,String(p.value),{e:t})},onHandleCompositionstart:function(t){var n;i.value=!0;var r=t.currentTarget.value;u.value=r,null===(n=e.onCompositionstart)||void 0===n||n.call(e,String(p.value),{e:t})},onRootClick:function(t){var n,r;null===(n=b.value)||void 0===n||n.focus(),null===(r=e.onClick)||void 0===r||r.call(e,{e:t})},emitPassword:function(){if(!d.value){var e="password"===y.value?"text":"password";y.value=e}},handleInput:function(e){var t=e.inputType&&"insertCompositionText"===e.inputType,n=e.currentTarget.value;t||i.value?u.value=n:k(e)},emitClear:function(t){var n,r=t.e,o="number"===e.type?void 0:"";m(o,{e:r,trigger:"clear"}),null===(n=e.onClear)||void 0===n||n.call(e,{e:r})},onClearIconMousedown:function(e){s.value=e.target},innerValue:p}}function db(e,n,r){var o=t.toRefs(e),a=o.autoWidth,l=o.placeholder,i=t.ref(null),u=t.ref(null),c=function(){i.value&&n.value&&(n.value.style.width=getComputedStyle(i.value).width)};zi(i,function(){a.value&&(u.value=setTimeout(function(){c(),clearTimeout(u.value)},100))}),t.onBeforeUnmount(function(){clearTimeout(u.value)});return t.onMounted(function(){a.value&&t.watch([r,l],function(){a.value&&t.nextTick(function(){c()})},{immediate:!0})}),{inputPreRef:i}}var vb=["isHover","tStatus","inputRef","renderType","showClear","focused","inputValue","isComposition","compositionValue","innerValue","limitNumber"];function fb(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function pb(e){for(var t=1;t1)return!1;if(/(e|E)+/.test(e[o])&&(t+=1)>1)return!1;if("-"===e[o]&&(n+=1)>2)return!1}return!0}function xb(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return-1!==e.indexOf(".")?(pi("InputNumber","num is not a integer number."),e):!e||"0"===e&&t?"":"0"===e?e:(t?e.replace(/0+$/,""):e.replace(/^0+/,""))||"0"}function Pb(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=xb(e,n),o=xb(t,n),a=r.length>o.length,l=a?r:o,i=a?o:r,u=[],c=[],s=n?0:l.length-i.length,d=n?i.length:l.length,v=d-1;v>=0;v--){var f=v-s,p=Number(l[v])+(Number(i[f])||0)+(c[v]||0);p>=10&&(c[v-1]=1),u.unshift(String(p%10))}return c[-1]&&u.unshift("1"),n?u.concat(l.slice(d,l.length)).join(""):u.join("")}function Sb(e,t){var n=Ya(e.split("."),2),r=n[0],o=void 0===r?"0":r,a=n[1],l=void 0===a?"0":a,i=Ya(t.split("."),2),u=i[0],c=void 0===u?"0":u,s=i[1],d=void 0===s?"0":s,v=Pb(o,c);if("0"===l&&"0"===d)return v;var f=xb(l,!0),p=xb(d,!0),m=Pb(f,p,!0),h=m.length;return h>f.length&&h>p.length?[xb(Pb(v,"1")),xb(m.slice(1),!0)].filter(function(e){return e}).join("."):[xb(v),xb(m,!0)].filter(function(e){return e}).join(".")}function jb(e,t){var n=xb(e),r=xb(t);if(n.length===r.length){for(var o=0,a=n.length;or[o])return 1;if(n[o]r.length?1:-1}function kb(e,t){for(var n=e&&"0"!==e?e.replace(/0+$/,""):"0",r=t&&"0"!==t?t.replace(/0+$/,""):"0",o=0,a=Math.max(n.length,r.length);o(r[o]||0))return 1;if((n[o]||0)<(r[o]||0))return-1}return 0}function Nb(e){var t=Ya(e.split("e"),2),n=t[0],r=t[1];if(!r)return e;var o=Ya(e.split("."),2),a=o[0],l=o[1],i=void 0===l?"":l,u=Number(r),c=Ya(i.split("e"),1)[0];if(u>c.length){var s=Ob(u-c.length);return n.replace(/(^0+|\.)/g,"")+s}var d=a.replace(/^0+/,"")+c.slice(0,u),v=c.slice(u);return v?[d,v].join("."):d}function _b(e){return[-1/0,1/0].includes(Number(e))}function Vb(e){return Number(e)Number.MIN_SAFE_INTEGER}function Db(e,t,n){var r=Vb(e)&&Vb(t)&&!n,o=_b(e)||_b(t);return r||o?Number(e)===Number(t)?0:Number(e)>Number(t)?1:-1:function(e,t){var n=Ya(Nb(e).split("."),2),r=n[0],o=n[1],a=Ya(Nb(t).split("."),2),l=a[0],i=a[1],u=jb(r.replace("-",""),l.replace("-","")),c=r.includes("-"),s=l.includes("-");return c&&!s?-1:!c&&s?1:c&&s?0===u?0:u>0?-1:1:0===u?kb(o,i):u}(String(e),String(t))}function Eb(e,t,n){if(e===t)return"0";for(var r=n||{},o=r.decimal,a=r.stayZero,l=xb(e),i=xb(t),u=jb(l,i)>0,c=u?l:i,s=u?i:l,d=[],v=[],f=o?0:c.length-s.length,p=o?s.length:c.length,m=p-1;m>=0;m--){var h=m-f,g=Number(c[m])-(Number(s[h])||0)-(v[m]||0);g<0&&(v[m-1]=1,g+=10),d.unshift(String(g))}if(o)return d.concat(c.slice(p,c.length)).join("");var y=d.join("");return a||(y=y.replace(/^0+/,"")),xb(u?y:"-".concat(y))}function Fb(e,t){if(e===t)return"0";var n=Db(e,t,!0)>0,r=n?t:e,o=Ya((n?e:t).split("."),2),a=o[0],l=o[1],i=void 0===l?"0":l,u=Ya(r.split("."),2),c=u[0],s=u[1],d=void 0===s?"0":s,v=Eb(a,c);if("0"===i&&"0"===d)return n?v:"-".concat(v);var f="",p=i;i.length=0?f=Eb(p,d,{decimal:!0}):(i.length2&&void 0!==arguments[2])||arguments[2])return e.toFixed(t);var n=Ya(e.toString().split("."),2),r=n[0],o=n[1];if(0===t)return r;if(o){var a=o.slice(0,t);return o.length1&&void 0!==arguments[1]?arguments[1]:0,r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(Number.isNaN(Number(e)))return"";if(!r)return function(e,t){var n;return E(t)?Tb(e,t.places,null===(n=t.enableRound)||void 0===n||n):Tb(e,t,!0)}(Number(e),n);var o=E(n)?n.places:n,a=!E(n)||(null===(t=n.enableRound)||void 0===t||t);if(!To(e))return String(e);var l=Ya(e.split("."),2),i=l[0],u=l[1];if(!u)return o>0&&a?[e,Ob(o)].join("."):e;if(0===o)return a&&Number(u[0])>=5?Sb(i,"1"):i;var c=u.slice(0,o);if(u.length=5;c=f?Sb(c,"1"):c,d&&f&&d+c.length>=o&&(c="".concat(Ob(o-c.length)).concat(c)),v&&c.length>o&&(i=(Number(i)+1).toString(),c=Ob(o))}return[i,c].join(".")}function Ib(e,t){var n,r;if(!e||!t)return(e||0)+(t||0);var o=(null===(n=e.toString().split(".")[1])||void 0===n?void 0:n.length)||0,a=(null===(r=t.toString().split(".")[1])||void 0===r?void 0:r.length)||0;if(!o&&!a)return e+t;var l=e,i=t,u=Math.abs(o-a),c=Math.pow(10,Math.max(o,a));if(u>0){var s=Math.pow(10,u);o>a?(l=Number(e.toString().replace(".","")),i=Number(t.toString().replace(".",""))*s):(l=Number(e.toString().replace(".",""))*s,i=Number(t.toString().replace(".","")))}else l=Number(e.toString().replace(".","")),i=Number(t.toString().replace(".",""));return(l+i)/c}function Ab(e,t){var n,r;if(!e||!t)return(e||0)-(t||0);var o=(null===(n=e.toString().split(".")[1])||void 0===n?void 0:n.length)||0,a=(null===(r=t.toString().split(".")[1])||void 0===r?void 0:r.length)||0,l=Math.pow(10,Math.max(o,a));return Number(((e*l-t*l)/l).toFixed(o>=a?o:a))}function Bb(e){var t=e.op,n=e.step,r=e.lastValue,o=e.max,a=e.min,l=e.largeNumber;if(Number(n)<=0)return pi("InputNumber","step must be larger than 0."),r;var i,u,c,s=Uo(n)?String(n):n;return"add"===t?l&&To(r)?i=function(e,t){var n="-"===e[0],r="-"===t[0];if(n&&!r)return Fb(t,e.slice(1));if(n&&r){var o=Sb(t.slice(1),e.slice(1));return"-".concat(o)}return!n&&r?Fb(e,t.slice(1)):Sb(e,t)}(String(r),String(s)):(u=Number(r||0),c=Number(n),i=u<0&&c>0?Ab(c,Math.abs(u)):u<0&&c<0?-1*Ib(Math.abs(u),Math.abs(c)):u>0&&c<0?Ab(u,Math.abs(c)):Ib(u,c)):"reduce"===t&&(i=l&&To(r)?function(e,t){var n="-"===e[0],r="-"===t[0];if(n&&!r){var o=Sb(e.slice(1),t);return"-".concat(o)}return n&&r?Fb(t.slice(1),e.slice(1)):!n&&r?Sb(e,t.slice(1)):Fb(e,t)}(String(r),String(s)):function(e,t){return e<0&&t>0?-1*Ib(Math.abs(e),t):e<0&&t<0?Ab(Math.abs(t),Math.abs(e)):e>0&&t<0?Ib(e,Math.abs(t)):Ab(e,t)}(Number(r||0),Number(n))),Zo(r)&&(i=function(e,t){if(""!==e){var n=t.max,r=t.min,o=t.lastValue,a=t.largeNumber;return Cb(e)?!a||!To(n)&&n!==1/0||!To(r)&&r!==-1/0?Math.max(Number(r),Math.min(Number(n),Number(e))):Db(n,e,a)<0?n:Db(r,e,a)>0?r:e:o}}(i,{max:o,min:a,lastValue:r,largeNumber:l})),l?i:Number(i)}function Lb(e){var t=e.largeNumber,n=e.value,r=e.max,o=e.min;if(!Zo(n)&&!Zo(t))return t&&Uo(n)&&vi("InputNumber","largeNumber value must be a string."),Db(n,r,t)>0?"exceed-maximum":Db(n,o,t)<0?"below-minimum":void 0}var Rb=["-",".","e","E","+"];function zb(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!["",null,void 0].includes(e)&&/\d+/.test(e)){var n=t.decimalPlaces,r=t.largeNumber,o=t.isToFixed,a=e.replace(/[.|+|\-|e]$/,"");return r&&(a=Nb(a)),void 0!==n&&(a=Mb(a,n,r)),r||o?a:parseFloat(a)}}function Hb(e){var n=ti(),r=n.classPrefix,o=n.SIZE,a=n.STATUS,l=t.toRefs(e),i=l.value,u=l.modelValue,c=l.max,d=l.min,v=Ya(Ui(i,u,e.defaultValue,e.onChange),2),f=v[0],p=v[1],m=t.ref(),h=t.ref(""),g=oi(),y=Ri(),b=t.ref(),w=t.computed(function(){return g.value||!function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return!e&&0!==e||(n&&To(e)?Db(e,t,n)>0:e>t)}(f.value,e.min,e.largeNumber)}),O=t.computed(function(){return g.value||!function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return!e&&0!==e||(n&&To(e)?Db(e,t,n)<0:e1)return!1;if((null===(r=e.match(/e/g))||void 0===r?void 0:r.length)>1)return!1;var o=e.slice(1),a=o.match(/(\+|-)/g);return!(a&&(!/e(\+|-)/i.test(o)||a.length>1)||!(t&&Cb(e)||!Number.isNaN(Number(e))||Rb.includes(e.slice(-1)))||/e/i.test(e)&&(!/\de/i.test(e)||/e\./.test(e)))}(a,e.largeNumber)){var l=a;if(void 0!==e.decimalPlaces&&""!==a&&a.includes(".")){var i=a.split("."),u="number"==typeof e.decimalPlaces?e.decimalPlaces:e.decimalPlaces.places;i[1]&&i[1].length>u&&(l="".concat(i[0],".").concat(i[1].substring(0,u)))}if(h.value=l,e.largeNumber)p(l,{type:"input",e:o});else{var c=""===l?void 0:Number(l);(function(e,t){return parseFloat(e)!==t&&!Number.isNaN(Number(e))})(l,Number(f.value))&&p(c,{type:"input",e:o})}}},isReadonly:y}}function Wb(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}var Kb=t.defineComponent({name:"TInputNumber",props:wb,setup:function(e,n){var r=si({AddIcon:Ju,RemoveIcon:Yv,ChevronDownIcon:Zc,ChevronUpIcon:Ps}),o=r.AddIcon,a=r.RemoveIcon,l=r.ChevronDownIcon,i=r.ChevronUpIcon,u=Hb(e),c=u.inputRef;return n.expose(function(e){for(var t=1;t1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}if(e=gw(e,360),t=gw(t,100),n=gw(n,100),0===t)r=o=a=n;else{var i=n<.5?n*(1+t):n+t-n*t,u=2*n-i;r=l(u,i,e+1/3),o=l(u,i,e),a=l(u,i,e-1/3)}return{r:255*r,g:255*o,b:255*a}}(e.h,r,a),l=!0,i="hsl"),e.hasOwnProperty("a")&&(n=e.a));var u,c,s;return n=hw(n),{ok:l,format:e.format||i,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:n}}(e);this._originalInput=e,this._r=n.r,this._g=n.g,this._b=n.b,this._a=n.a,this._roundA=Math.round(100*this._a)/100,this._format=t.format||n.format,this._gradientType=t.gradientType,this._r<1&&(this._r=Math.round(this._r)),this._g<1&&(this._g=Math.round(this._g)),this._b<1&&(this._b=Math.round(this._b)),this._ok=n.ok}function Jb(e,t,n){e=gw(e,255),t=gw(t,255),n=gw(n,255);var r,o,a=Math.max(e,t,n),l=Math.min(e,t,n),i=(a+l)/2;if(a==l)r=o=0;else{var u=a-l;switch(o=i>.5?u/(2-a-l):u/(a+l),a){case e:r=(t-n)/u+(t>1)+720)%360;--t;)r.h=(r.h+o)%360,a.push(Gb(r));return a}function fw(e,t){t=t||6;for(var n=Gb(e).toHsv(),r=n.h,o=n.s,a=n.v,l=[],i=1/t;t--;)l.push(Gb({h:r,s:o,v:a})),a=(a+i)%1;return l}Gb.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var e=this.toRgb();return(299*e.r+587*e.g+114*e.b)/1e3},getLuminance:function(){var e,t,n,r=this.toRgb();return e=r.r/255,t=r.g/255,n=r.b/255,.2126*(e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4))+.7152*(t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4))+.0722*(n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4))},setAlpha:function(e){return this._a=hw(e),this._roundA=Math.round(100*this._a)/100,this},toHsv:function(){var e=Qb(this._r,this._g,this._b);return{h:360*e.h,s:e.s,v:e.v,a:this._a}},toHsvString:function(){var e=Qb(this._r,this._g,this._b),t=Math.round(360*e.h),n=Math.round(100*e.s),r=Math.round(100*e.v);return 1==this._a?"hsv("+t+", "+n+"%, "+r+"%)":"hsva("+t+", "+n+"%, "+r+"%, "+this._roundA+")"},toHsl:function(){var e=Jb(this._r,this._g,this._b);return{h:360*e.h,s:e.s,l:e.l,a:this._a}},toHslString:function(){var e=Jb(this._r,this._g,this._b),t=Math.round(360*e.h),n=Math.round(100*e.s),r=Math.round(100*e.l);return 1==this._a?"hsl("+t+", "+n+"%, "+r+"%)":"hsla("+t+", "+n+"%, "+r+"%, "+this._roundA+")"},toHex:function(e){return ew(this._r,this._g,this._b,e)},toHexString:function(e){return"#"+this.toHex(e)},toHex8:function(e){return function(e,t,n,r,o){var a=[ww(Math.round(e).toString(16)),ww(Math.round(t).toString(16)),ww(Math.round(n).toString(16)),ww(Cw(r))];if(o&&a[0].charAt(0)==a[0].charAt(1)&&a[1].charAt(0)==a[1].charAt(1)&&a[2].charAt(0)==a[2].charAt(1)&&a[3].charAt(0)==a[3].charAt(1))return a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0)+a[3].charAt(0);return a.join("")}(this._r,this._g,this._b,this._a,e)},toHex8String:function(e){return"#"+this.toHex8(e)},toRgb:function(){return{r:Math.round(this._r),g:Math.round(this._g),b:Math.round(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+")":"rgba("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:Math.round(100*gw(this._r,255))+"%",g:Math.round(100*gw(this._g,255))+"%",b:Math.round(100*gw(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+Math.round(100*gw(this._r,255))+"%, "+Math.round(100*gw(this._g,255))+"%, "+Math.round(100*gw(this._b,255))+"%)":"rgba("+Math.round(100*gw(this._r,255))+"%, "+Math.round(100*gw(this._g,255))+"%, "+Math.round(100*gw(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(mw[ew(this._r,this._g,this._b,!0)]||!1)},toFilter:function(e){var t="#"+tw(this._r,this._g,this._b,this._a),n=t,r=this._gradientType?"GradientType = 1, ":"";if(e){var o=Gb(e);n="#"+tw(o._r,o._g,o._b,o._a)}return"progid:DXImageTransform.Microsoft.gradient("+r+"startColorstr="+t+",endColorstr="+n+")"},toString:function(e){var t=!!e;e=e||this._format;var n=!1,r=this._a<1&&this._a>=0;return t||!r||"hex"!==e&&"hex6"!==e&&"hex3"!==e&&"hex4"!==e&&"hex8"!==e&&"name"!==e?("rgb"===e&&(n=this.toRgbString()),"prgb"===e&&(n=this.toPercentageRgbString()),"hex"!==e&&"hex6"!==e||(n=this.toHexString()),"hex3"===e&&(n=this.toHexString(!0)),"hex4"===e&&(n=this.toHex8String(!0)),"hex8"===e&&(n=this.toHex8String()),"name"===e&&(n=this.toName()),"hsl"===e&&(n=this.toHslString()),"hsv"===e&&(n=this.toHsvString()),n||this.toHexString()):"name"===e&&0===this._a?this.toName():this.toRgbString()},clone:function(){return Gb(this.toString())},_applyModification:function(e,t){var n=e.apply(null,[this].concat([].slice.call(t)));return this._r=n._r,this._g=n._g,this._b=n._b,this.setAlpha(n._a),this},lighten:function(){return this._applyModification(aw,arguments)},brighten:function(){return this._applyModification(lw,arguments)},darken:function(){return this._applyModification(iw,arguments)},desaturate:function(){return this._applyModification(nw,arguments)},saturate:function(){return this._applyModification(rw,arguments)},greyscale:function(){return this._applyModification(ow,arguments)},spin:function(){return this._applyModification(uw,arguments)},_applyCombination:function(e,t){return e.apply(null,[this].concat([].slice.call(t)))},analogous:function(){return this._applyCombination(vw,arguments)},complement:function(){return this._applyCombination(cw,arguments)},monochromatic:function(){return this._applyCombination(fw,arguments)},splitcomplement:function(){return this._applyCombination(dw,arguments)},triad:function(){return this._applyCombination(sw,[3])},tetrad:function(){return this._applyCombination(sw,[4])}},Gb.fromRatio=function(e,t){if("object"==Zb(e)){var n={};for(var r in e)e.hasOwnProperty(r)&&(n[r]="a"===r?e[r]:Ow(e[r]));e=n}return Gb(e,t)},Gb.equals=function(e,t){return!(!e||!t)&&Gb(e).toRgbString()==Gb(t).toRgbString()},Gb.random=function(){return Gb.fromRatio({r:Math.random(),g:Math.random(),b:Math.random()})},Gb.mix=function(e,t,n){n=0===n?0:n||50;var r=Gb(e).toRgb(),o=Gb(t).toRgb(),a=n/100;return Gb({r:(o.r-r.r)*a+r.r,g:(o.g-r.g)*a+r.g,b:(o.b-r.b)*a+r.b,a:(o.a-r.a)*a+r.a})},Gb.readability=function(e,t){var n=Gb(e),r=Gb(t);return(Math.max(n.getLuminance(),r.getLuminance())+.05)/(Math.min(n.getLuminance(),r.getLuminance())+.05)},Gb.isReadable=function(e,t,n){var r,o,a=Gb.readability(e,t);switch(o=!1,(r=function(e){var t,n;t=((e=e||{level:"AA",size:"small"}).level||"AA").toUpperCase(),n=(e.size||"small").toLowerCase(),"AA"!==t&&"AAA"!==t&&(t="AA");"small"!==n&&"large"!==n&&(n="small");return{level:t,size:n}}(n)).level+r.size){case"AAsmall":case"AAAlarge":o=a>=4.5;break;case"AAlarge":o=a>=3;break;case"AAAsmall":o=a>=7}return o},Gb.mostReadable=function(e,t,n){var r,o,a,l,i=null,u=0;o=(n=n||{}).includeFallbackColors,a=n.level,l=n.size;for(var c=0;cu&&(u=r,i=Gb(t[c]));return Gb.isReadable(e,i,{level:a,size:l})||!o?i:(n.includeFallbackColors=!1,Gb.mostReadable(e,["#fff","#000"],n))};var pw=Gb.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},mw=Gb.hexNames=function(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[e[n]]=n);return t}(pw);function hw(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function gw(e,t){(function(e){return"string"==typeof e&&-1!=e.indexOf(".")&&1===parseFloat(e)})(e)&&(e="100%");var n=function(e){return"string"==typeof e&&-1!=e.indexOf("%")}(e);return e=Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(e*t,10)/100),Math.abs(e-t)<1e-6?1:e%t/parseFloat(t)}function yw(e){return Math.min(1,Math.max(0,e))}function bw(e){return parseInt(e,16)}function ww(e){return 1==e.length?"0"+e:""+e}function Ow(e){return e<=1&&(e=100*e+"%"),e}function Cw(e){return Math.round(255*parseFloat(e)).toString(16)}function xw(e){return bw(e)/255}var Pw,Sw,jw,kw=(Sw="[\\s|\\(]+("+(Pw="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)")+")[,|\\s]+("+Pw+")[,|\\s]+("+Pw+")\\s*\\)?",jw="[\\s|\\(]+("+Pw+")[,|\\s]+("+Pw+")[,|\\s]+("+Pw+")[,|\\s]+("+Pw+")\\s*\\)?",{CSS_UNIT:new RegExp(Pw),rgb:new RegExp("rgb"+Sw),rgba:new RegExp("rgba"+jw),hsl:new RegExp("hsl"+Sw),hsla:new RegExp("hsla"+jw),hsv:new RegExp("hsv"+Sw),hsva:new RegExp("hsva"+jw),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/});function Nw(e){return!!kw.CSS_UNIT.exec(e)}var _w={closable:Boolean,color:{type:String,default:""},content:{type:[String,Function]},default:{type:[String,Function]},disabled:Boolean,icon:{type:Function,default:void 0},maxWidth:{type:[String,Number]},shape:{type:String,default:"square",validator:function(e){return!e||["square","round","mark"].includes(e)}},size:{type:String,default:"medium",validator:function(e){return!e||["small","medium","large"].includes(e)}},theme:{type:String,default:"default",validator:function(e){return!e||["default","primary","warning","danger","success"].includes(e)}},title:{type:String,default:""},variant:{type:String,default:"dark",validator:function(e){return!e||["dark","light","outline","light-outline"].includes(e)}},onClick:Function,onClose:Function},Vw=t.defineComponent({name:"TTag",props:_w,setup:function(e){var n=Jl("tag").globalConfig,r=ei("tag"),o=si({CloseIcon:Ts}).CloseIcon,a=Rl(),l=Hl(),i=ti().SIZE,u=t.getCurrentInstance().vnode,c=t.computed(function(){return["".concat(r.value),"".concat(r.value,"--").concat(e.theme),"".concat(r.value,"--").concat(e.variant),s(s(s(s({},"".concat(r.value,"--ellipsis"),e.maxWidth),"".concat(r.value,"--close"),e.closable),"".concat(r.value,"--disabled"),e.disabled),i.value[e.size],"medium"!==e.size),"square"!==e.shape&&"".concat(r.value,"--").concat(e.shape)]}),d=t.computed(function(){return f()}),v=t.computed(function(){return e.maxWidth?{maxWidth:isNaN(Number(e.maxWidth))?String(e.maxWidth):"".concat(e.maxWidth,"px")}:{}}),f=function(){var t=e.color,n=e.variant;if(!t)return{};var r,o,a,l,i={color:Gb(t).getLuminance()>.5?"black":"white"};if("outline"!==n&&"light-outline"!==n||(i.borderColor=t),"outline"!==n){i.backgroundColor="dark"===n?t:(r=Gb(t).toRgb(),o=r.r,a=r.g,l=r.b,"rgba(".concat(o,", ").concat(a,", ").concat(l,", 0.1)"))}return"dark"!==n&&(i.color=t),i},p=function(t){var n;e.disabled||null===(n=e.onClick)||void 0===n||n.call(e,{e:t})};return function(){var i=function(){if(!e.closable)return null;var a="".concat(r.value,"__icon-close");return n.value.closeIcon?t.h(n.value.closeIcon(t.h),{class:a}):t.createVNode(o,{onClick:function(t){var n,r=t.e;r&&r.stopPropagation(),null===(n=e.onClose)||void 0===n||n.call(e,{e:r})},class:a},null)}(),s=l("default","content"),f=a("icon"),m=function(e){var t=u.props||{};return Reflect.has(t,"title")?t.title||void 0:e||void 0}(To(s)?s:"");return t.createVNode("div",{class:c.value,style:d.value,onClick:p},[f,t.createVNode("span",{class:e.maxWidth?"".concat(r.value,"--text"):void 0,style:v.value,title:m},[s]),!e.disabled&&i])}}}),Dw={checked:{type:Boolean,default:void 0},modelValue:{type:Boolean,default:void 0},defaultChecked:Boolean,checkedProps:{type:Object},content:{type:[String,Number,Array,Function]},default:{type:[String,Function]},disabled:Boolean,size:{type:String,default:"medium",validator:function(e){return!e||["small","medium","large"].includes(e)}},uncheckedProps:{type:Object},value:{type:[String,Number]},onChange:Function,onClick:Function};function Ew(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Fw(e){for(var t=1;ts&&fv))return}null==r||r({currentIndex:a.value,current:l,target:n,targetIndex:t}),a.value=t}}};if(!n)return{};function s(e,t,n){a.value=t,l.value=n;var r=e.target;if(o&&r){var i=r.getBoundingClientRect(),c=i.x,s=i.width;u.nodeX=c,u.nodeWidth=s,u.mouseX=e.clientX}}function d(){i.value=!0}function v(){i.value,i.value=!1,a.value=-1,l.value=null}return{onDragStart:s,onDragOver:c,onDrop:d,onDragEnd:v,getDragProps:function(e,t){return n?{draggable:!0,onDragstart:function(n){s(n,e,t)},onDragover:function(n){c(n,e,t)},onDrop:function(){d()},onDragend:function(){v()}}:{}},dragging:-1!==a.value}}(Ww(Ww({},e),{},{sortOnDraggable:e.dragSort,onDragOverCheck:{x:!0,targetClassNameRegExp:new RegExp("^".concat(A.value,"-tag"))}})),R=L.getDragProps,z=function(e){var n=t.ref(),r=t.toRefs(e),o=r.excessTagsDisplayType,a=r.readonly,l=r.disabled,i=t.ref(0),u=t.ref(),c=t.ref(),s=t.ref(!1),d=function(e){var t=e.children[0];u.value=t},v=function(){i.value=u.value.scrollWidth-u.value.clientWidth},f=function(e){var t;H(null===(t=u.value)||void 0===t?void 0:t.scroll)&&u.value.scroll({left:e,behavior:"smooth"})},p=function(){v(),f(i.value),setTimeout(function(){s.value=!0},200)};return t.onMounted(function(){var e,t=null===(e=n.value)||void 0===e?void 0:e.$el;t&&d(t)}),t.onUnmounted(function(){clearTimeout(c.value)}),{tagInputRef:n,scrollElement:u,scrollDistance:i,scrollTo:f,scrollToRight:p,scrollToLeft:function(){f(0)},updateScrollElement:d,updateScrollDistance:v,onWheel:function(e){var t=e.e;if(!a.value&&!l.value&&u.value)if(t.deltaX>0){var n=Math.min(u.value.scrollLeft+120,i.value);f(n)}else{var r=Math.max(u.value.scrollLeft-120,0);f(r)}},scrollToRightOnEnter:function(){"scroll"===o.value&&(c.value=setTimeout(function(){p(),clearTimeout(c.value)},100))},scrollToLeftOnLeave:function(){"scroll"===o.value&&(s.value=!1,f(0),clearTimeout(c.value))},isScrollable:s}}(e),W=z.scrollToRight,K=z.onWheel,U=z.scrollToRightOnEnter,Y=z.scrollToLeftOnLeave,$=z.tagInputRef,Z=z.isScrollable,q=function(e){var n=Rl(),r=ei(),o=t.toRefs(e),a=o.value,l=o.modelValue,u=o.onRemove,c=o.max,s=o.minCollapsedNum,d=o.size,v=o.tagProps,f=o.getDragProps,p=Ya(Ui(a,l,e.defaultValue||[],e.onChange),2),m=p[0],h=p[1],g=t.computed(function(){return m.value||[]}),y=t.ref(),b=oi(),w=Ri(),O=function(e){var t,n=i(g.value),r=Ya(n.splice(e.index,1),1)[0];h(n,zw(zw({trigger:"tag-remove"},e),{},{item:r})),null===(t=u.value)||void 0===t||t.call(u,zw(zw({},e),{},{item:r,trigger:"tag-remove",value:n}))};return{tagValue:g,clearAll:function(e){h([],{trigger:"clear",e:e.e})},onClose:O,onInnerEnter:function(t,n){var r,o=t?String(t).trim():"",a=c&&g.value.length>=c.value,l=g.value;!a&&o&&(l=g.value.concat(String(o)),h(l,{trigger:"enter",index:l.length-1,item:o,e:n.e})),null==e||null===(r=e.onEnter)||void 0===r||r.call(e,l,zw(zw({},n),{},{inputValue:t}))},onInputBackspaceKeyUp:function(e){g.value.length&&(y.value=e)},onInputBackspaceKeyDown:function(e,t){var n=t.e;if(g.value.length&&"Process"!==n.key&&!w.value){var r=/(Backspace|NumpadDelete)/i.test(n.code)||/(Backspace|NumpadDelete)/i.test(n.key);if(!e&&r){var o,a=g.value.length-1,l=g.value[a],i="backspace",c=g.value.slice(0,-1);h(c,{e:n,index:a,item:l,trigger:i}),null===(o=u.value)||void 0===o||o.call(u,{e:n,index:a,item:l,trigger:i,value:c})}y.value=e}},renderLabel:function(e){var o=e.displayNode,a=e.label,l=s.value?g.value.slice(0,s.value):g.value,i=o?[o]:l.map(function(e,r){var o,a=n("tag",{params:{value:e}});return t.createVNode(Aw,t.mergeProps({key:"".concat(e).concat(r),size:d.value,disabled:b.value,onClose:function(e){return O({e:e.e,index:r})},closable:!w.value&&!b.value},null===(o=f.value)||void 0===o?void 0:o.call(f,r,e),v.value),{default:function(){return[null!=a?a:e]}})})||[];if([null,void 0,""].includes(a)||i.unshift(t.createVNode("div",{class:"".concat(r.value,"-tag-input__prefix"),key:"label"},[a])),l.length!==g.value.length){var u=g.value.length-l.length,c=n("collapsedItems",{params:{value:g.value,count:g.value.length-s.value,collapsedTags:g.value.slice(s.value,g.value.length),collapsedSelectedItems:g.value.slice(s.value,g.value.length),onClose:O}});i.push(null!=c?c:t.createVNode(Aw,t.mergeProps({key:"more",size:d.value},v.value),{default:function(){return["+",u]}}))}return i}}}(t.reactive(Ww(Ww({},t.toRefs(e)),{},{getDragProps:R}))),X=q.tagValue,G=q.onInnerEnter,J=q.onInputBackspaceKeyUp,Q=q.onInputBackspaceKeyDown,ee=q.clearAll,te=q.renderLabel,ne=q.onClose,re=t.computed(function(){var t=!(S(X.value)&&X.value.length);return[l.value,s(s(s(s({},c.value,"break-line"===_.value),"".concat(A.value,"-is-empty"),t),"".concat(A.value,"-tag-input--with-tag"),!t),"".concat(A.value,"-tag-input--drag-sort"),e.dragSort&&!f.value&&!v.value)]}),oe=t.computed(function(){var e;return null!==(e=X.value)&&void 0!==e&&e.length?"":D.value}),ae=t.computed(function(){var e;return Boolean(!f.value&&!v.value&&V.value&&F.value&&((null===(e=X.value)||void 0===e?void 0:e.length)||j.value))}),le=function(e,n){var r,o;null===(r=n.e)||void 0===r||null===(o=r.preventDefault)||void 0===o||o.call(r),k("",{e:n.e,trigger:"enter"}),!I.value&&G(e,n),t.nextTick(function(){W(),I.value=!1})},ie=function(e,t){var n,r;I.value=!0,null===(n=h.value)||void 0===n||null===(r=n.onCompositionstart)||void 0===r||r.call(n,e,t)},ue=function(e,t){var n,r;I.value=!1,null===(n=h.value)||void 0===n||null===(r=n.onCompositionend)||void 0===r||r.call(n,e,t)},ce=function(t){var n,r;v.value||(B.value=!0,null===(n=$.value)||void 0===n||n.focus(),null===(r=e.onClick)||void 0===r||r.call(e,t))},se=function(t){var n;ee(t),k("",{e:t.e,trigger:"clear"}),null===(n=e.onClear)||void 0===n||n.call(e,t)},de=function(e){T(e),U()},ve=function(e){M(e),Y()},fe=function(t,n){var r;B.value||(B.value=!0,null===(r=e.onFocus)||void 0===r||r.call(e,X.value,{e:n.e,inputValue:t}))},pe=function(t,n){var r;B.value=!1,k("",{e:n.e,trigger:"blur"}),null===(r=e.onBlur)||void 0===r||r.call(e,X.value,{e:n.e,inputValue:t})},me=function(e,t){k(e,Ww(Ww({},t),{},{trigger:"input"}))};return t.watch(function(){return Z.value},function(t){if("scroll"===e.excessTagsDisplayType){var n="".concat(A.value,"-input__prefix"),r=$.value.$el.querySelector(".".concat(n));t?r.classList.add("".concat(n,"--scrollable")):r.classList.remove("".concat(n,"--scrollable"))}}),function(){var e,n,a=ae.value?t.createVNode(d,{class:u.value,onClick:se},null):o("suffixIcon"),l=o("prefixIcon"),i="".concat(A.value,"-tag-input__with-suffix-icon");a&&!re.value.includes(i)&&re.value.push(i);var c=o("valueDisplay",{params:{value:X.value,onClose:function(e){return ne({index:e})}}}),s=o("label",{silent:!0}),p=f.value||(null===(e=h.value)||void 0===e?void 0:e.readonly);return t.createVNode(yb,t.mergeProps({ref:$,borderless:g.value,readonly:p,showInput:!p||!X.value||!(null!==(n=X.value)&&void 0!==n&&n.length),value:j.value,autoWidth:!0,size:y.value,disabled:v.value,label:function(){return te({displayNode:c,label:s})},class:re.value,tips:b.value,status:w.value,placeholder:oe.value,suffix:O.value,suffixIcon:function(){return a},prefixIcon:function(){return l},keepWrapperWidth:!C.value,onWheel:K,onChange:me,onPaste:x.value,onEnter:le,onKeyup:J,onKeydown:Q,onMouseenter:de,onMouseleave:ve,onFocus:fe,onBlur:pe,onClick:ce,onCompositionstart:ie,onCompositionend:ue},h.value),{suffix:r.suffix})}}}),Uw=Nl(Kw),Yw=["tips"];function $w(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Zw(e){for(var t=1;t=e.offsetWidth?t.offsetWidth:e.offsetWidth,a={};return r.value&&"object"===u(r.value.overlayInnerStyle)&&!r.value.overlayInnerStyle.width&&(a=r.value.overlayInnerStyle),Gw({width:"".concat(Math.min(o,1e3),"px")},a)},s=function(e,t){var n;return Gw({width:"".concat(Math.max(e.offsetWidth,t.offsetWidth),"px")},null===(n=r.value)||void 0===n?void 0:n.overlayInnerStyle)};return{tOverlayInnerStyle:t.computed(function(){var e,t=(null===(e=r.value)||void 0===e?void 0:e.overlayInnerStyle)||{};return H(t)||E(t)&&t.width?t:o.value?s:c}),innerPopupVisible:a,onInnerPopupVisibleChange:function(t,n){if(!l.value&&!i.value){var r,o=!("trigger-element-click"!==n.trigger||!e.allowInput)||t;if(e.popupVisible!==o)a.value=o,null===(r=e.onPopupVisibleChange)||void 0===r||r.call(e,o,n)}}}}var Qw=["tips"];function eO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function tO(e){for(var t=1;t=0||e.multiple&&(null===(r=M.value)||void 0===r||null===(o=r.focus)||void 0===o||o.call(r))};return n.expose({popupRef:f,allowInput:O}),function(){var e,r,o={visible:null!==(e=g.value)&&void 0!==e?e:S.value},a=t.createVNode(Fg,t.mergeProps({ref:f,trigger:(null===(r=b.value)||void 0===r?void 0:r.trigger)||"click",placement:"bottom-left"},o,{content:w.value,hideEmptyPopup:!0},lO(lO({onVisibleChange:j,onOverlayClick:R},b.value),{},{overlayInnerStyle:P.value})),lO({default:function(){return[m.value?I({commonInputProps:_.value,onInnerClear:V,popupVisible:o.visible,allowInput:O.value}):D(o.visible)]}},lO(lO({},n.slots),{},{content:n.slots.panel}))),l=d("tips"),i=["".concat(c.value,"-input__tips"),"".concat(c.value,"-tips"),"".concat(c.value,"-is-").concat(C.value)];return t.createVNode("div",{ref:v,class:B.value},[a,l&&t.createVNode("div",{class:i},[l])])}}}),uO=Nl(iO),cO={checkAll:Boolean,content:{type:[String,Function]},default:{type:[String,Function]},disabled:Boolean,label:{type:String,default:""},title:{type:String,default:""},value:{type:[String,Number,Boolean]}},sO={checkAll:Boolean,checked:{type:Boolean,default:void 0},modelValue:{type:Boolean,default:void 0},defaultChecked:Boolean,default:{type:[String,Function]},disabled:{type:Boolean,default:void 0},indeterminate:Boolean,label:{type:[String,Function]},lazyLoad:Boolean,name:{type:String,default:""},readonly:{type:Boolean,default:void 0},title:{type:String,default:""},value:{type:[String,Number,Boolean]},onChange:Function},dO=Symbol("CheckboxGroupProvide");function vO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function fO(e){for(var t=1;t=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,l=!0,i=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return l=e.done,e},e:function(e){i=!0,a=e},f:function(){try{l||null==n.return||n.return()}finally{if(i)throw a}}}}function wO(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n((null===(r=e.scroll)||void 0===r?void 0:r.threshold)||100)}),u="virtual"===(null===(n=e.scroll)||void 0===n?void 0:n.type)?function(e){var n=e.data,r=e.container,o=e.fixedHeight,a=void 0!==o&&o,l=e.lineHeight,i=void 0===l?30:l,u=e.bufferSize,c=void 0===u?20:u,s=e.threshold,d=void 0===s?100:s,v=t.reactive({visibleData:[],cachedHeight:[],cachedScrollY:[]}),f=t.computed(function(){return n.value.length>d}),p=t.ref(0),m=new Map,h=0,g=0,y=0,b=0,w=0,O=0,C=function(){n.value.forEach(function(e,t){e.$index=t,a&&(v.cachedScrollY[t]=t*i)}),a||(v.cachedScrollY[n.value.length-1]=void 0)};C();var x=t.computed(function(){var e=v.cachedHeight;if(e.length){var t=e.reduce(function(e,t){return e+t||i},0);if(e.length===n.value.length)return t;var r=t/e.length;return t+(n.value.length-e.length)*r}return f.value?n.value.length*i:0}),P=t.computed(function(){var e=v.visibleData,t=e[0];return t?1===e.length?0:v.cachedScrollY[t.$index]:0}),S=function(){O=Math.min(w+h+2*c,n.value.length),v.visibleData=n.value.slice(w,O)},j=function(){var e,o=m.get(y);if(o){var a=null==o||null===(e=o.getBoundingClientRect())||void 0===e?void 0:e.height;v.cachedScrollY[y]=r.value.scrollTop-b,v.cachedHeight[y]=a;for(var l=y+1;l<=(null===(i=v.visibleData[v.visibleData.length-1])||void 0===i?void 0:i.$index);l++){var i,u=m.get(l),c=((null==u?void 0:u.getBoundingClientRect())||{}).height;v.cachedHeight[l]=c;var s=v.cachedScrollY[l-1]+v.cachedHeight[l-1];v.cachedScrollY.splice(l,1,s)}for(var d=y-1;d>=(null===(f=v.visibleData[0])||void 0===f?void 0:f.$index);d--){var f,p=m.get(d),h=((null==p?void 0:p.getBoundingClientRect())||{}).height;v.cachedHeight[d]=h;var C=v.cachedScrollY[d+1]-v.cachedHeight[d];v.cachedScrollY.splice(d,1,C)}if(v.cachedScrollY[0]>0){for(var x=v.cachedScrollY[0],P=Math.min(O,n.value.length),S=0;S=w;o--)o===O-1?v.cachedScrollY.splice(o,1,n.value-v.cachedHeight[o]):v.cachedScrollY.splice(o,1,v.cachedScrollY[o+1]-v.cachedHeight[o])})}};!a&&t.watch(p,j,{flush:"post"}),t.watch(n,function(){C(),v.visibleData=[],v.cachedScrollY=[],v.cachedHeight=[],g=0,y=0,b=0,w=0,m.clear(),n.value.length<=d?v.visibleData=n.value:S(),r.value&&(r.value.scrollTop=0)});var k=!1,N=function(){k&&(h=Math.ceil(r.value.offsetHeight/i),S())};return t.onMounted(function(){if(window&&window.IntersectionObserver){var e=new window.IntersectionObserver(function(t){var n=t[0];(n.isIntersecting||n.intersectionRatio)&&(k=!0,f.value&&N(),e.unobserve(r.value))});r.value&&e.observe(r.value)}}),$i($i({trs:m,scrollHeight:x},t.toRefs(v)),{},{translateY:P,handleScroll:function(){if(f.value){var e=r.value.scrollTop,t=e-g;g=e;var o=y;if(t+=b){if(t>=0){for(;o(v.cachedHeight[o]||i);)v.cachedHeight[o]||(v.cachedHeight[o]=i),t-=v.cachedHeight[o],o++;o>=n.value.length?(y=n.value.length-1,b=0):(y=o,b=t);var a=r.value;e+a.clientHeight===a.scrollHeight&&(y=n.value.length-h+1),w<=y-c&&(w=Math.min(n.value.length-h,y-c))<0&&(w=0)}else{for(;t<0;)o--,v.cachedHeight[o]||(v.cachedHeight[o]=i),t+=v.cachedHeight[o];o<0?(y=0,b=0):(y=o,b=t),j(),w>y-c&&(w=Math.max(0,y-c))}S()}}},handleRowMounted:function(){f.value&&p.value++},refreshContainer:N,fixedHeight:a,calculateScrollY:j})}({container:e.popupContentRef,data:e.options,fixedHeight:(null===(r=e.scroll)||void 0===r?void 0:r.isFixedRowHeight)||!1,lineHeight:(null===(o=e.scroll)||void 0===o?void 0:o.rowHeight)||28,bufferSize:(null===(a=e.scroll)||void 0===a?void 0:a.bufferSize)||20,threshold:(null===(l=e.scroll)||void 0===l?void 0:l.threshold)||100}):{},c=u.trs,s=void 0===c?null:c,d=u.visibleData,v=void 0===d?null:d,f=u.handleScroll,p=void 0===f?null:f,m=u.scrollHeight,h=void 0===m?null:m,g=u.translateY,y=void 0===g?null:g,b=u.handleRowMounted,w=void 0===b?null:b,O=-1,C=function(e){if(i.value){var t=e.target.scrollTop;Math.abs(O-t)>5?(p(),O=t):O=-1}};t.onMounted(function(){var t;null===(t=e.popupContentRef.value)||void 0===t||t.addEventListener("scroll",C)}),t.onBeforeUnmount(function(){var t;null===(t=e.popupContentRef.value)||void 0===t||t.removeEventListener("scroll",C)});var x=t.computed(function(){return{position:"absolute",width:"1px",height:"1px",transition:"transform 0.2s",transform:"translate(0, ".concat(h.value,"px)"),"-ms-transform":"translate(0, ".concat(h.value,"px)"),"-moz-transform":"translate(0, ".concat(h.value,"px)"),"-webkit-transform":"translate(0, ".concat(h.value,"px)")}}),P=t.computed(function(){return{transform:"translate(0, ".concat(y.value,"px)"),"-ms-transform":"translate(0, ".concat(y.value,"px)"),"-moz-transform":"translate(0, ".concat(y.value,"px)"),"-webkit-transform":"translate(0, ".concat(y.value,"px)")}});return{trs:s,scrollHeight:h,translateY:y,visibleData:v,handleRowMounted:w,isVirtual:i,cursorStyle:x,panelStyle:P}};function DO(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return EO(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?EO(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,l=!0,i=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return l=e.done,e},e:function(e){i=!0,a=e},f:function(){try{l||null==n.return||n.return()}finally{if(i)throw a}}}}function EO(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,l=!0,i=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return l=e.done,e},e:function(e){i=!0,a=e},f:function(){try{l||null==n.return||n.return()}finally{if(i)throw a}}}}function BO(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n-1},v=t.ref([]),f=function(e,t){return e.filter(function(e){if(!e.checkAll)return S(t)?t.includes(e.value):t===e.value})},p=t.computed(function(){var e=f(c.value,o.value);v.value=Ra([].concat(i(v.value),i(e)),"value");var t=f(v.value,o.value);return Ra([].concat(i(t),i(c.value)),"value")}),m=t.computed(function(){if(e.onSearch&&e.filterable)return u.value;if(!r.value||!e.filterable&&!H(e.filter))return u.value;var t,n=[];if(u.value.forEach(function(e){e.children&&n.push(TO(TO({},e),{},{children:e.children.filter(d)})),!0===(null==e?void 0:e.checkAll)&&(t=e),d(e)&&n.push(e)}),!H(e.filter)){var o=n.filter(function(e){return e.label===r.value}),a=n.filter(function(e){return e.label!==r.value});n=o.concat(a)}return n.length&&t?[t].concat(i(n)):n});return{options:u,optionsMap:s,optionsList:c,optionsCache:l,displayOptions:m,filterMethods:d,searchDisplayOptions:p}}(e,N,w,V),E=D.optionsMap,F=D.optionsList,T=D.optionsCache,M=D.displayOptions,I=D.filterMethods,A=D.searchDisplayOptions,B=function(t,n){if(_.value){var r=N.value,o=r.value,a=r.label,l=function(e){if(void 0!==e){var t=E.value.get(e);return s(s({},o,jt(t,"value")),a,jt(t,"label"))}};t=e.multiple?t.map(function(e){return l(e)}):l(t)}var i;t!==x.value&&(e.multiple&&!e.reserveKeyword&&"check"==n.trigger&&O(""),P(t,RO({selectedOptions:J(t)},n)),e.multiple&&"uncheck"===n.trigger&&n.option&&(null===(i=e.onRemove)||void 0===i||i.call(e,{value:jt(n.option,N.value.value),data:n.option,e:n.e})))},L=Ya(ni(m,!1,function(t,n){var r;null===(r=e.onPopupVisibleChange)||void 0===r||r.call(e,t,n)},"popupVisible"),2),R=L[0],z=L[1],W=t.computed(function(){var t;return null!==(t=!e.multiple&&R.value&&OO(V.value,$.value,he,E)||e.placeholder)&&void 0!==t?t:f(v.value.placeholder)}),K=t.computed(function(){return e.multiple?function(e,t,n,r){var o,a=[],l=bO(e);try{for(l.s();!(o=l.n()).done;){var i=o.value,u=OO(i,t,n,r);u&&a.push(u)}}catch(e){l.e(e)}finally{l.f()}return a}(V.value,$.value,he,E):OO(V.value,$.value,he,E)}),U=t.computed(function(){if(!e.multiple)return RO(RO({},E.value.get(V.value)),{},{value:V.value,label:K.value});var t=S(V.value)?V.value.map(function(e){return E.value.get(e)}):[],n={value:t,onClose:e.multiple?function(e){return Z(e)}:function(){}};return e.minCollapsedNum&&S(V.value)?RO(RO({},n),{},{displayValue:Array.isArray(t)?t.slice(0,e.minCollapsedNum):[]}):n}),Y=t.computed(function(){return Boolean(e.filterable||v.value.filterable||H(e.filter))}),$=t.computed(function(){return Boolean((e.filterable||v.value.filterable)&&H(e.onSearch))}),Z=function(t,n){var r,o=n||{},a=o.e,l=o.trigger,i=void 0===l?"tag-remove":l;a&&a.stopPropagation();var u=Ir(V.value),c=u[t];if(u.splice(t,1),"backspace"===i){for(var s,d=-1,v=t,f=Q();v>=0;){var p;if(null===(p=f[v])||void 0===p||!p.disabled){d=v;break}v-=1}if(d<0)return;var m=f[d],h=f.filter(function(e){return e.value!==m.value});return B(h.map(function(e){return e.value}),{selectedOptions:h,trigger:i,e:a}),void(null===(s=e.onRemove)||void 0===s||s.call(e,{value:m.value,data:m,e:a}))}"clear"!==i&&B(u,{selectedOptions:J(u),trigger:i,e:a}),null===(r=e.onRemove)||void 0===r||r.call(e,{value:c,data:E.value.get(c),e:a})},q=function(){var t;w.value&&(null===(t=e.onCreate)||void 0===t||t.call(e,w.value),R.value||O(""))},X=t.computed(function(){var e;return null===(e=k.value)||void 0===e?void 0:e.popupRef.getOverlay()}),G=t.computed(function(){return F.value.filter(function(e){return!e.disabled&&!(e["check-all"]||""===e["check-all"])&&!e.checkAll&&I(e)})}),J=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:V.value;return F.value.filter(function(t){if(!t.checkAll)return S(e)?e.includes(t.value):e===t.value})},Q=function(){var e=[],t=_.value?x.value:V.value;return(S(t)?t:[t]).forEach(function(t){var n=E.value.get(_.value?t.value:t);n?e.push(n):e.push(_.value?t:{value:t})}),e},ee=function(t){if(e.multiple){var n=N.value.value,r=V.value.filter(function(e){return F.value.find(function(t){return t.value===e&&t.disabled})}),o=G.value.map(function(e){return e.value}),a=_.value?x.value.map(function(e){return jt(e,n)}):x.value,l=i(t?new Set([].concat(i(a),i(o),i(r))):r);B(l,{selectedOptions:J(l),trigger:t?"check":"clear"})}},te=t.computed(function(){return 0!==ie.value&&ie.value===($.value?A.value.length:G.value.length)}),ne=function(e){var n=e.displayOptions,r=e.optionsList,o=e.innerPopupVisible,a=e.setInnerPopupVisible,l=e.selectPanelRef,i=e.isFilterable,u=e.isRemoteSearch,c=e.getSelectedOptions,s=e.setInnerValue,d=e.onCheckAllChange,v=e.innerValue,f=e.popupContentRef,p=e.multiple,m=e.max,h=e.isCheckAll,g=t.ref(-1),y=t.ref([]),b=t.ref([]),w=ei();return t.watch(o,function(e){e&&(g.value=-1,b.value=[],y.value=[])}),t.watch(g,function(e){var t,n=(null===(t=l.value)||void 0===t||null===(t=t.innerRef)||void 0===t||null===(t=t.querySelector(".".concat(w.value,"-select-option")))||void 0===t?void 0:t.clientHeight)*e;f.value.scrollTo({top:n,behavior:"smooth"})}),{hoverIndex:g,handleKeyDown:function(e){var t,f,w=n.value.length,O=g.value;switch(e.code){case"ArrowUp":e.preventDefault(),-1===g.value?O=0:0===g.value||g.value>n.value.length-1?O=w-1:O--,null!==(t=r.value[O])&&void 0!==t&&t.disabled&&O--,g.value=O;break;case"ArrowDown":e.preventDefault(),-1===g.value||g.value>=w-1?O=0:O++,null!==(f=r.value[O])&&void 0!==f&&f.disabled&&O++,g.value=O;break;case"Enter":if(-1===g.value)break;var C=l.value.isVirtual&&i.value&&b.value.length?b.value:u.value?r.value:y.value;if(C.length||(C=r.value),!o.value){a(!0,{e:e});break}if(p){var x;if(-1===g.value)return;if(C[g.value].checkAll)return void d(!h.value);var P=null===(x=C[g.value])||void 0===x?void 0:x.value;if(!P)return;var S=CO(v.value,P);if(m>0&&S.value.length>m)return;var j=c(S.value);s(S.value,{option:j.find(function(e){return e.value==P}),selectedOptions:j,trigger:S.isCheck?"check":"uncheck",e:e}),y.value=[]}else{var k=c(C[g.value].value);s(C[g.value].value,{option:null==k?void 0:k[0],selectedOptions:c(C[g.value].value),trigger:"check",e:e}),a(!1,{e:e})}break;case"Escape":a(!1,{e:e})}},virtualFilteredOptions:b,filteredOptions:y}}({displayOptions:M,optionsList:F,innerPopupVisible:R,setInnerPopupVisible:z,selectPanelRef:j,isFilterable:Y,isRemoteSearch:$,getSelectedOptions:J,setInnerValue:B,onCheckAllChange:ee,isCheckAll:te,innerValue:V,popupContentRef:X,multiple:e.multiple,max:e.max}),re=ne.hoverIndex,oe=ne.virtualFilteredOptions,ae=ne.handleKeyDown,le=ne.filteredOptions,ie=t.computed(function(){var e=G.value.map(function(e){return e.value});return Bo(V.value,e).length}),ue=t.computed(function(){return!te.value&&0!==ie.value}),ce=t.computed(function(){return{max:e.max,multiple:e.multiple,hoverIndex:re.value,selectValue:V.value,reserveKeyword:e.reserveKeyword,handleValueChange:B,handlerInputChange:O,handlePopupVisibleChange:z,handleCreate:q,size:e.size,popupContentRef:X,indeterminate:ue.value,isCheckAll:te.value,onCheckAllChange:ee,getSelectedOptions:J,displayOptions:M.value,emitBlur:fe}});t.provide(xO,ce);var se=function(){!e.multiple&&S(x.value)&&P(void 0,{selectedOptions:[],trigger:"default"}),e.multiple&&!S(x.value)&&P([],{selectedOptions:[],trigger:"default"})},de=po(function(t,n){var r,o=n.e;null===(r=e.onSearch)||void 0===r||r.call(e,"".concat(t),{e:o})},300),ve=function(e,n){e&&!R.value&&z(!0,{e:n.e}),O(e),de("".concat(e),{e:n.e}),t.nextTick(function(){var e,t;oe.value=null===(e=j.value)||void 0===e?void 0:e.visibleData,le.value=null===(t=j.value)||void 0===t?void 0:t.displayOptions})},fe=function(t){var n;null===(n=e.onBlur)||void 0===n||n.call(e,{e:t,value:V.value})},pe=function(e,t){z(e,t),e&&"trigger-element-click"===t.trigger&&O("")},me=function(){var t=Gp(bm.mark(function t(n){var r,o,a;return bm.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(a=e.popupProps,!e.loading){t.next=1;break}return t.abrupt("return");case 1:null==a||null===(r=a["on-scroll-to-bottom"])||void 0===r||r.call(a,n),null==a||null===(o=a.onScrollToBottom)||void 0===o||o.call(a,n);case 2:case"end":return t.stop()}},t)}));return function(e){return t.apply(this,arguments)}}();t.watch(x,function(n){se(),t.nextTick(function(){!function(t){if(e.multiple){var n,r=[],o=AO(t||[]);try{for(o.s();!(n=o.n()).done;){var a=n.value,l=E.value.get(a);l&&r.push(l)}}catch(e){o.e(e)}finally{o.f()}T.value=Array.from(new Set([].concat(r,i(T.value))))}else{var u=E.value.get(t);u&&(T.value=Array.from(new Set([u].concat(i(T.value)))))}}(n)})},{immediate:!0}),t.watch(function(){return e.multiple},function(){se()});var he=t.computed(function(){return $.value?A.value:Q()}),ge=function(){return u("valueDisplay",{params:U.value})||function(){var n,r,o;if(e.multiple&&!1!==(null===(n=e.selectInputProps)||void 0===n?void 0:n.multiple))return null===(r=(o=V.value.slice(0,e.minCollapsedNum?e.minCollapsedNum:V.value.length)).map)||void 0===r?void 0:r.call(o,function(n,r){var o,i=he.value.find(function(e){if(e.value===n)return!0});return t.createVNode(Aw,t.mergeProps({key:r,closable:!(null!=i&&i.disabled||a.value||l.value),size:e.size},e.tagProps,{onClose:function(t){var n,o,a=t.e;a.stopPropagation(),null===(n=e.tagProps)||void 0===n||null===(o=n.onClose)||void 0===o||o.call(n,{e:a}),Z(r)}}),{default:function(){return[i?null!==(o=i.label)&&void 0!==o?o:null==i?void 0:i.value:n]}})})}()};return t.provide("updateScrollTop",function(e){var n;if(j.value){var r=null===(n=j.value)||void 0===n||null===(n=n.innerRef)||void 0===n?void 0:n.querySelector(".".concat(o.value,"-is-selected"));t.nextTick(function(){if(r&&e){var t=getComputedStyle(r).paddingBottom,n=getComputedStyle(e).marginBottom,o=parseInt(t,10)+parseInt(n,10),a=r.offsetTop-e.offsetTop-(e.clientHeight-r.clientHeight)+o;e.scrollTop=a}})}}),function(){var n=e.popupProps||{},o=n.overlayClassName,i=du(n,IO);return t.createVNode("div",{class:"".concat(c.value,"__wrap")},[t.createVNode(uO,t.mergeProps({autoWidth:e.autoWidth,readonly:l.value,borderless:e.borderless,multiple:e.multiple,clearable:e.clearable,loading:e.loading,status:e.status,tips:u("tips"),minCollapsedNum:e.minCollapsedNum,autofocus:e.autofocus,suffix:e.suffix,valueDisplayOptions:e.valueDisplayOptions},{ref:k,class:c.value,value:K.value,disabled:a.value,popupVisible:R.value,inputValue:R.value?w.value:"",placeholder:"".concat(W.value),allowInput:Y.value,"collapsed-items":e.collapsedItems,inputProps:RO(RO({size:e.size,autofocus:e.autofocus},e.inputProps),{},{onkeydown:ae}),tagInputProps:RO({size:e.size},e.tagInputProps),onTagChange:function(e,t){Z(t.index,t)},tagProps:RO({},e.tagProps),popupProps:RO(RO({overlayClassName:["".concat(c.value,"__dropdown"),o]},i),{},{onScrollToBottom:me}),label:e.label,prefixIcon:e.prefixIcon,suffix:e.suffix,suffixIcon:function(){return e.suffixIcon||r.suffixIcon?u("suffixIcon"):e.showArrow&&t.createVNode(Hy,{overlayClassName:"".concat(c.value,"__right-icon"),isActive:R.value},null)},valueDisplay:ge,onPopupVisibleChange:pe,onInputChange:ve,onClear:function(t){var n,r=t.e;B(e.multiple?[]:void 0,{option:null,selectedOptions:J(e.multiple?[]:void 0),trigger:"clear",e:r}),null===(n=e.onClear)||void 0===n||n.call(e,{e:r})},onEnter:function(t,n){var r=n.e;setTimeout(function(){var t;null===(t=e.onEnter)||void 0===t||t.call(e,{inputValue:"".concat(w.value),e:r,value:V.value}),q()},0)},onBlur:function(t,n){var r,o=n.e;null===(r=e.onBlur)||void 0===r||r.call(e,{e:o,value:V.value})},onFocus:function(t,n){var r,o=n.e;null===(r=e.onFocus)||void 0===r||r.call(e,{e:o,value:V.value})}},e.selectInputProps),{label:r.label,prefixIcon:r.prefixIcon,suffix:r.suffix,panel:function(){return t.createVNode(MO,t.mergeProps({ref:j},Na(e,["size","multiple","empty","loading","loadingText","filterable","creatable","panelTopContent","panelBottomContent","filter","scroll","keys"]),{inputValue:w.value}),r)},collapsedItems:r.collapsedItems})])}}}),HO=Nl(zO),WO=Nl(jO),KO=Nl(NO),UO={append:{type:[String,Function]},prepend:{type:[String,Function]}},YO=t.defineComponent({name:"TInputAdornment",props:UO,setup:function(e,n){var r=n.slots,o=ei("input-adornment"),a=Rl(),l=function(e,n,a){var l,i=To(a)||Uo(a);return r[n]||!To(a)||a?(l=r[n]?1===r[n](null).length&&"string"==typeof r[n](null)[0].children?t.createVNode("span",{class:"".concat(o.value,"__text")},[r[n](null)]):r[n](null):H(a)?a(e):i?t.createVNode("span",{class:"".concat(o.value,"__text")},[a]):a)?t.createVNode("span",{class:"".concat(o.value,"__").concat(n)},[l]):l:null};return function(){var n=l(t.h,"prepend",e.prepend),r=l(t.h,"append",e.append),i=a("default")||[null],u=[o.value,s(s({},"".concat(o.value,"--prepend"),n),"".concat(o.value,"--append"),r)];return n||r?t.createVNode("div",{class:u},[n,i[0],r]):i[0]}}}),$O=Nl(YO),ZO={current:{type:Number,default:void 0},modelValue:{type:Number,default:void 0},defaultCurrent:{type:Number,default:1},disabled:Boolean,foldedMaxPageBtn:{type:Number,default:5},maxPageBtn:{type:Number,default:10},pageEllipsisMode:{type:String,default:"mid",validator:function(e){return!e||["mid","both-ends"].includes(e)}},pageSize:{type:Number,default:void 0},defaultPageSize:{type:Number,default:10},pageSizeOptions:{type:Array,default:function(){return[5,10,20,50]}},selectProps:{type:Object},showFirstAndLastPageBtn:Boolean,showJumper:Boolean,showPageNumber:{type:Boolean,default:!0},showPageSize:{type:Boolean,default:!0},showPreviousAndNextBtn:{type:Boolean,default:!0},size:{type:String,default:"medium",validator:function(e){return!e||["small","medium"].includes(e)}},theme:{type:String,default:"default",validator:function(e){return!e||["default","simple"].includes(e)}},total:{type:Number,default:0},totalContent:{type:[Boolean,Function],default:!0},onChange:Function,onCurrentChange:Function,onPageSizeChange:Function};var qO=["pageCount"],XO=t.defineComponent({name:"TPagination",props:ZO,setup:function(e){var n=t.getCurrentInstance().emit,r=t.toRefs(e),o=r.modelValue,a=r.pageSize,l=r.current,i=Rl(),u=Ya(Ui(l,o,e.defaultCurrent,e.onCurrentChange,"current"),2),c=u[0],d=u[1],v=Ya(ni(a,e.defaultPageSize,e.onPageSizeChange,"pageSize"),2),f=v[0],p=v[1],m=Jl("pagination"),h=m.t,g=m.globalConfig,y=ei("pagination"),b=si({PageFirstIcon:Dv,PageLastIcon:Iv,ChevronLeftIcon:os,ChevronRightIcon:bs,ChevronLeftDoubleIcon:Qc,ChevronRightDoubleIcon:ps,EllipsisIcon:ad}),w=b.PageFirstIcon,O=b.PageLastIcon,C=b.ChevronLeftIcon,x=b.ChevronRightIcon,P=b.ChevronLeftDoubleIcon,S=b.ChevronRightDoubleIcon,j=b.EllipsisIcon,k=function(e,n,r,o){var a=ti(),l=a.SIZE,i=a.STATUS,u=t.computed(function(){var t=Math.ceil(e.total/r.value);return t>0?t:1}),c=t.computed(function(){return["".concat(o.value),l.value[e.size],s(s({},i.value.disabled,e.disabled),"".concat(o.value,"-ie"),mu()<11),"simple"===e.theme?"".concat(o.value,"--simple"):""]}),d=t.computed(function(){return["".concat(o.value,"__total")]}),v=t.computed(function(){return["".concat(o.value,"__select")]}),f=t.computed(function(){return["".concat(o.value,"__btn"),"".concat(o.value,"__btn-prev"),s({},i.value.disabled,e.disabled||1===n.value)]}),p=t.computed(function(){return["".concat(o.value,"__btn"),"".concat(o.value,"__btn-next"),s({},i.value.disabled,e.disabled||n.value===u.value)]}),m=t.computed(function(){return["".concat(o.value,"__pager")]}),h=t.computed(function(){return["".concat(o.value,"__number"),"".concat(o.value,"__number--more"),s({},i.value.disabled,e.disabled)]}),g=t.computed(function(){return["".concat(o.value,"__jump")]}),y=t.computed(function(){return["".concat(o.value,"__input")]}),b=t.computed(function(){return["".concat(o.value,"__select")]});return{pageCount:u,paginationClass:c,totalClass:d,sizerClass:v,preBtnClass:f,nextBtnClass:p,btnWrapClass:m,btnMoreClass:h,jumperClass:g,jumperInputClass:y,simpleClass:b,getButtonClass:function(t){return["".concat(o.value,"__number"),s(s({},i.value.disabled,e.disabled),i.value.current,n.value===t)]}}}(e,c,f,y),N=k.pageCount,_=du(k,qO),V=function(e,n,r){var o=t.ref(!1),a=t.ref(!1),l=t.computed(function(){return Math.ceil((e.foldedMaxPageBtn-1)/2)}),i=t.computed(function(){return Math.floor((e.foldedMaxPageBtn-1)/2)}),u=t.computed(function(){return 2+l.valuer.value});return{prevMore:o,nextMore:a,curPageLeftCount:l,curPageRightCount:i,isPrevMoreShow:u,isNextMoreShow:c}}(e,N,c),D=V.prevMore,F=V.isPrevMoreShow,T=V.curPageLeftCount,M=V.nextMore,I=V.isNextMoreShow,A=V.curPageRightCount,B=t.ref(c.value),L=t.computed(function(){return N.value>e.maxPageBtn}),R=t.computed(function(){return e.pageSizeOptions.map(function(e){return E(e)?e:{label:h(g.value.itemsPerPage,{size:e}),value:Number(e)}}).sort(function(e,t){return e.value-t.value})}),z=t.computed(function(){return"mid"===e.pageEllipsisMode}),H=t.computed(function(){var t,n,r=[];if(L.value)if(F.value&&I.value)t=c.value-T.value,n=c.value+A.value;else{var o=z.value?2:1,a=z.value?N.value-1:N.value;t=F.value?Math.min(c.value-1,N.value-e.foldedMaxPageBtn+1):o,n=I.value?Math.max(c.value+1,e.foldedMaxPageBtn):a}else t=1,n=N.value;for(var l=t;l<=n;l++)r.push(l);return r});t.watch(function(){return N.value},function(){c.value>N.value&&(c.value=1)}),t.watch(function(){return c.value},function(e){return B.value=e});var W=function(t,r){if(!e.disabled){var o=t;if(t<1?o=1:t>N.value&&(o=N.value),c.value!==o){var a,l=c.value;if(r=r||{current:o,previous:l,pageSize:f.value})d(o,r),null===(a=e.onChange)||void 0===a||a.call(e,r);else n("update:modelValue",o)}}},K=function(t){({prevPage:function(){return W(c.value-1)},nextPage:function(){return W(c.value+1)},prevMorePage:function(){return W(Math.max(2,c.value-e.foldedMaxPageBtn))},nextMorePage:function(){return W(Math.min(c.value+e.foldedMaxPageBtn,N.value-1))}})[t]()},U=function(t){if(!e.disabled){var n=parseInt(t,10),r=1;n>0&&(r=Math.max(Math.ceil(e.total/n),1));var o=!1;c.value>r&&(o=!0);var a,l={current:o?r:c.value,previous:c.value,pageSize:n};if(p(n,l),o)W(r,l);else null===(a=e.onChange)||void 0===a||a.call(e,l)}},Y=function(e){var t,n=Math.trunc(+e);Uo(t=n)&&t!=+t||(B.value=n,W(n))};return function(){var n=e.total,r=e.pageSizeOptions,o=e.size,a=e.disabled,l=e.showPageSize;if(N.value<1)return null;var u=t.createVNode("div",{class:_.jumperClass.value},[h(g.value.jumpTo),t.createVNode($O,{append:"/ ".concat(N.value," ").concat(h(g.value.page))},{default:function(){return[t.createVNode(Ub,{class:_.jumperInputClass.value,modelValue:B.value,"onUpdate:modelValue":function(e){return B.value=e},onBlur:Y,onEnter:Y,max:N.value,min:1,size:o,disabled:a,theme:"normal",placeholder:""},null)]}})]);return t.createVNode("div",{class:_.paginationClass.value},[i("totalContent",t.createVNode("div",{class:_.totalClass.value},[h(g.value.total,n)])),l&&r.length>0&&t.createVNode(HO,t.mergeProps({size:o,value:f,disabled:a,class:_.sizerClass.value,autoWidth:!0,onChange:U,options:R.value},e.selectProps),null),e.showFirstAndLastPageBtn?t.createVNode("div",{class:_.preBtnClass.value,onClick:function(){return W(1)}},[t.createVNode(w,null,null)]):null,e.showPreviousAndNextBtn?t.createVNode("div",{class:_.preBtnClass.value,onClick:function(){return K("prevPage")}},[t.createVNode(C,null,null)]):null,e.showPageNumber&&"default"===e.theme?t.createVNode("ul",{class:_.btnWrapClass.value},[L.value&&z.value&&t.createVNode("li",{class:_.getButtonClass(1),onClick:function(){return W(1)}},[1]),L.value&&F.value&&z.value?t.createVNode("li",{class:_.btnMoreClass.value,onClick:function(){return K("prevMorePage")},onMouseover:function(){return D.value=!0},onMouseout:function(){return D.value=!1}},[D.value?t.createVNode(P,null,null):t.createVNode(j,null,null)]):null,H.value.map(function(e){return t.createVNode("li",{class:_.getButtonClass(e),key:e,onClick:function(){return W(e)}},[e])}),L.value&&I.value&&z.value?t.createVNode("li",{class:_.btnMoreClass.value,onClick:function(){return K("nextMorePage")},onMouseover:function(){return M.value=!0},onMouseout:function(){return M.value=!1}},[M.value?t.createVNode(S,null,null):t.createVNode(j,null,null)]):null,L.value&&z.value?t.createVNode("li",{class:_.getButtonClass(N.value),onClick:function(){return W(N.value)}},[N.value]):null]):null,"simple"===e.theme&&u,e.showPreviousAndNextBtn?t.createVNode("div",{class:_.nextBtnClass.value,onClick:function(){return K("nextPage")}},[t.createVNode(x,null,null)]):null,e.showFirstAndLastPageBtn?t.createVNode("div",{class:_.nextBtnClass.value,onClick:function(){return W(N.value)}},[t.createVNode(O,null,null)]):null,"default"===e.theme&&e.showJumper&&u])}}}),GO={disabled:{type:[Boolean,Object]},layout:{type:String,default:"horizontal",validator:function(e){return!e||["horizontal","vertical"].includes(e)}},showCurrent:{type:Boolean,default:!0},size:{type:String,default:"medium",validator:function(e){return!e||["small","medium","large"].includes(e)}},tips:{type:Object},variant:{type:String,default:"text",validator:function(e){return!e||["text","outline"].includes(e)}},onChange:Function};var JO=t.defineComponent({name:"TPaginationMini",props:GO,setup:function(e){var n=ei("pagination-mini"),r=si({ChevronLeftIcon:os,RoundIcon:nf,ChevronRightIcon:bs,ChevronUpIcon:Ps,ChevronDownIcon:Zc}),o=r.ChevronLeftIcon,a=r.RoundIcon,l=r.ChevronRightIcon,i=r.ChevronUpIcon,u=r.ChevronDownIcon,c=t.computed(function(){return E(e.tips)?e.tips:!0===e.tips?{prev:"\u4e0a\u4e00\u9875",current:"\u5f53\u524d",next:"\u4e0b\u4e00\u9875"}:{}}),d=t.computed(function(){return E(e.disabled)?e.disabled:!0===e.disabled?{prev:!0,current:!0,next:!0}:{prev:!1,current:!1,next:!1}}),v=function(e,n){return e?t.createVNode(Kg,{content:e,showArrow:!1},"function"==typeof(r=n)||"[object Object]"===Object.prototype.toString.call(r)&&!t.isVNode(r)?n:{default:function(){return[n]}}):n;var r};return function(){var r=[n.value,s({},"".concat(n.value,"--outline"),"outline"===e.variant)];return t.createVNode("div",{class:r},[v(c.value.prev,t.createVNode(Iu,{variant:e.variant,size:e.size,shape:"square",onClick:function(t){var n;return null===(n=e.onChange)||void 0===n?void 0:n.call(e,{e:t,trigger:"prev"})},icon:"horizontal"===e.layout?function(){return t.createVNode(o,null,null)}:function(){return t.createVNode(i,null,null)},class:"".concat(n.value,"__prev"),disabled:d.value.prev},null)),e.showCurrent&&v(c.value.current,t.createVNode(Iu,{variant:e.variant,size:e.size,shape:"square",onClick:function(t){var n;return null===(n=e.onChange)||void 0===n?void 0:n.call(e,{e:t,trigger:"current"})},icon:function(){return t.createVNode(a,null,null)},class:"".concat(n.value,"__current"),disabled:d.value.current},null)),v(c.value.next,t.createVNode(Iu,{variant:e.variant,size:e.size,shape:"square",onClick:function(t){var n;return null===(n=e.onChange)||void 0===n?void 0:n.call(e,{e:t,trigger:"next"})},icon:"horizontal"===e.layout?function(){return t.createVNode(l,null,null)}:function(){return t.createVNode(u,null,null)},class:"".concat(n.value,"__next"),disabled:d.value.next},null))])}}}),QO=Nl(XO),eC=Nl(JO),tC={current:{type:[String,Number],default:void 0},modelValue:{type:[String,Number],default:void 0},defaultCurrent:{type:[String,Number]},layout:{type:String,default:"horizontal",validator:function(e){return!e||["horizontal","vertical"].includes(e)}},options:{type:Array},readonly:{type:Boolean,default:void 0},separator:{type:String,default:"line",validator:function(e){return!e||["line","dashed","arrow"].includes(e)}},sequence:{type:String,default:"positive",validator:function(e){return!e||["positive","reverse"].includes(e)}},theme:{type:String,default:"default",validator:function(e){return!e||["default","dot"].includes(e)}},onChange:Function},nC={content:{type:[String,Function],default:""},default:{type:[String,Function]},extra:{type:[String,Function]},icon:{type:[Boolean,Function],default:!0},status:{type:String,default:"default",validator:function(e){return!e||["default","process","finish","error"].includes(e)}},title:{type:[String,Function],default:""},value:{type:[String,Number]}};function rC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function oC(e){for(var t=1;tr)return"finish"}return(void 0===t.value?n:t.value)===a.value?"process":"default"},c=El(),s=function(){var t,n;null!==(t=e.options)&&void 0!==t&&t.length?n="reverse"===e.sequence?e.options.slice().reverse():e.options:n=function(t){var n=[];return null==t||t.forEach(function(t){var r=(null==t?void 0:t.props)||{},o=null==t?void 0:t.children;if(r||o){if(o&&E(o))for(var a in o)a in nC&&!r[a]&&(r[a]=o[a]);"reverse"===e.sequence?n.unshift(r):n.push(r)}}),n}(c("StepItem"));return(n||[]).forEach(function(e,t){void 0!==e.value&&(i.value[e.value]=t)}),n},d=t.computed(function(){return[n.value,"".concat(n.value,"--").concat(e.layout),"".concat(n.value,"--").concat((t=e.theme,s().forEach(function(e){void 0!==(null==e?void 0:e.icon)&&(t="default")}),t),"-anchor"),"".concat(n.value,"--").concat(e.sequence),"".concat(n.value,"--").concat(e.separator,"-separator")];var t});return function(){return t.createVNode("div",{class:d.value},[(n=s(),n.map(function(r,o){var a="reverse"===e.sequence?n.length-o-1:o;return o=void 0!==r.value?o:a,t.createVNode(aC,t.mergeProps(r,{index:a,status:u(r,o),key:r.value||o}),null)}))]);var n}}}),iC=Nl(lC),uC=Nl(aC),cC={list:{type:Array,default:function(){return[]}},offset:{type:Array},placement:{type:String,default:"right-bottom",validator:function(e){return!e||["right-top","right-center","right-bottom","left-top","left-center","left-bottom"].includes(e)}},popupProps:{type:Object},shape:{type:String,default:"square",validator:function(e){return!e||["square","round"].includes(e)}},type:{type:String,default:"normal",validator:function(e){return!e||["normal","compact"].includes(e)}},width:{type:[String,Number]},onClick:Function,onHover:Function},sC={icon:{type:Function},label:{type:[String,Function]},popup:{type:[String,Function]},popupProps:{type:Object},trigger:{type:String,default:"hover",validator:function(e){return!e||["hover","click"].includes(e)}}};function dC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function vC(e){for(var t=1;t=t&&(n.value=!0),r=f.value.length?0:i+1;l.value=null===(a=f.value[u])||void 0===a?void 0:a.text}else(ou.test(e.code)||ou.test(e.key))&&l.value&&r("select",l.value,{e:e})},h=function(){dl(document,"keydown",m)},g=function(){vl(document,"keydown",m)};return a({addKeyboardListener:h,removeKeyboardListener:g}),t.watch(function(){return e.popupVisible},function(){e.popupVisible?h():g()},{immediate:!0}),t.watch(function(){return e.value},function(){e.value||(l.value="")},{immediate:!0}),t.onBeforeUnmount(function(){g()}),function(){return f.value.length?t.createVNode("ul",{class:d.value},[f.value.map(function(n){var r=i(v.value);n.text===l.value&&r.push("".concat(u.value,"-select-option--hover"));var a=n.label;if(H(n.label))a=n.label(t.h);else if(o.option){var c;a=null===(c=o.option)||void 0===c?void 0:c.call(o,{option:n})}var s=a||n.text;return t.createVNode("li",{key:n.text,class:r,title:n.text,onClick:p},[To(s)&&e.highlightKeyword?t.createVNode(xC,{content:s,keyword:e.value},null):s])})]):t.createVNode("div",{class:"".concat(u.value,"-auto-complete__panel--empty")},[e.empty||c.value.empty])}}});function kC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function NC(e){for(var t=1;t=(n.getBoundingClientRect().width||n.offsetWidth||n.clientWidth)?"".concat(o,"px"):"auto"},null===(r=e.popupProps)||void 0===r?void 0:r.overlayInnerStyle)},b=t.computed(function(){return["".concat(d.value,"-auto-complete")]}),w=t.computed(function(){var t,n=["".concat(d.value,"-select__dropdown")];return null!==(t=e.popupProps)&&void 0!==t&&t.overlayClassName&&(n=n.concat(e.popupProps.overlayClassName)),n}),O=t.computed(function(){var t,n=["".concat(d.value,"-select__dropdown-inner")];return null!==(t=e.popupProps)&&void 0!==t&&t.overlayInnerClassName&&(n=n.concat(e.popupProps.overlayInnerClassName)),n}),C=function(e,t){i(e,t)},x=t.computed(function(){return NC({value:l.value,size:e.size},e.inputProps)}),P=function(n,r){var o;m.value||p.value||(h.value=!0,null===(o=e.onFocus)||void 0===o||o.call(e,NC(NC({},r),{},{value:n})),t.nextTick(function(){var e;null===(e=g.value)||void 0===e||e.addKeyboardListener()}))},S=function(t,n){var r;null===(r=e.onBlur)||void 0===r||r.call(e,NC(NC({},n),{},{value:t}))},j=function(t,n){var r;null===(r=e.onCompositionend)||void 0===r||r.call(e,NC(NC({},n),{},{value:t}))},k=function(t,n){var r;null===(r=e.onCompositionstart)||void 0===r||r.call(e,NC(NC({},n),{},{value:t}))},N=function(t,n){var r;null===(r=e.onEnter)||void 0===r||r.call(e,NC(NC({},n),{},{value:t}))},_=function(t,n){var r;m.value||p.value||(h.value=!1,i(t,n),null===(r=e.onSelect)||void 0===r||r.call(e,t,n))},V=function(e,t){var n=t.trigger;m.value||p.value||"trigger-element-click"!==n&&(h.value=e)};return function(){var n,o,a=u("default","triggerElement")||t.createVNode(yb,t.mergeProps({borderless:e.borderless,placeholder:null!==(n=e.placeholder)&&void 0!==n?n:f.value.placeholder,tips:e.tips,status:e.status,readonly:m.value,disabled:p.value,autofocus:e.autofocus,clearable:e.clearable,onChange:C,onFocus:P,onBlur:S,onClear:e.onClear,onCompositionend:j,onCompositionstart:k,onEnter:N},x.value),r),i=Array.isArray(e.options)&&t.createVNode(jC,{ref:g,value:l.value,options:e.options,size:e.size,sizeClassNames:v,onSelect:_,popupVisible:h.value,highlightKeyword:e.highlightKeyword,filterable:e.filterable,filter:e.filter,empty:c("empty")},{option:r.option}),s=c("panelTopContent"),D=c("panelBottomContent"),E=s||i||D?t.createVNode("div",{class:"".concat(d.value,"-auto-complete__panel")},[s,i,D]):null,F=NC(NC({},e.popupProps),{},{overlayInnerStyle:y,overlayInnerClassName:O.value,overlayClassName:w.value});return t.createVNode("div",{class:b.value},[t.createVNode(Fg,t.mergeProps({visible:h.value,onVisibleChange:V,trigger:"focus",placement:"bottom-left",hideEmptyPopup:!0,content:E?function(){return E}:null},F),(o=a,"function"==typeof o||"[object Object]"===Object.prototype.toString.call(o)&&!t.isVNode(o)?a:{default:function(){return[a]}}))])}}}),VC=Nl(_C),DC=Nl(xC);function EC(e,t,n){var r=n.disabled;return["".concat(e,"-cascader__icon"),s({},t.disabled,r)]}function FC(e,t,n){var r=n.checkStrictly,o=n.multiple,a=n.value,l=n.max,i=!r&&e.expanded&&(!o||!e.isLeaf())||r&&e.expanded,u=e.isLeaf(),c=e.disabled||o&&a.length>=l&&0!==l,d=e.checked||o&&!r&&e.expanded&&!u;return o||r||u||(d=e.expanded),[s(s(s({},t.selected,!c&&d),t.expanded,!c&&i),t.disabled,c)]}function TC(e){var t=e.value,n=e.multiple,r=e.treeStore,o=e.showAllLevels;if(n||0!==t&&!t)return"";if(S(t))return"";var a=r&&r.getNodes(t);if(!a||!a.length)return t;var l=a&&a[0].getPath();return l&&l.length?o?l.map(function(e){return e.label}).join(" / "):l.at(-1).label:t}function MC(e){var t=[];return e.forEach(function(e){t[e.level]?t[e.level].push(e):t[e.level]=[e]}),t}function IC(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"/";return null==e?void 0:e.getPath().map(function(e){return e.label}).join(t)}var AC=function(e){var t=[];return S(e)?e.length>0&&E(e[0])?t=e.map(function(e){return e.value}):e.length&&(t=e):BC(e)||(t=E(e)?[e.value]:[e]),t};function BC(e){return!(Uo(e)&&!isNaN(e))&&Wo(e)}function LC(e,t,n){var r=e.disabled,o=e.setValue,a=e.value,l=e.valueType,i=e.treeStore;if(!r)if(void 0!==t){var u=Ir(a).splice(t,1),c=i.getNodes(u[0])[0],s=c.setChecked(!c.isChecked());o("single"===l?s:s.map(function(e){return i.getNode(e).getPath().map(function(e){return e.value})}),"uncheck",c.getModel()),H(n)&&n({value:s,node:c})}else H(n)&&n({value:a,node:void 0})}var RC={node:{type:Object,default:function(){return{}}},optionChild:{type:[Object,Array]},cascaderContext:{type:Object},onChange:Function,onClick:Function,onMouseenter:Function},zC=t.defineComponent({name:"TCascaderItem",props:RC,setup:function(e){var n=t.ref();Wi(n);var r=ei("cascader__item"),o=ei(),a=si({ChevronRightIcon:bs}).ChevronRightIcon,l=ti(),u=l.STATUS,c=l.SIZE,d=t.computed(function(){return function(e,t,n,r,o){var a=o.size;return["".concat(e,"-cascader__item")].concat(i(FC(t,r,o)),[n[a],s(s({},"".concat(e,"-cascader__item--with-icon"),!!t.children),"".concat(e,"-cascader__item--leaf"),t.isLeaf())])}(o.value,e.node,c.value,u.value,e.cascaderContext)}),v=t.computed(function(){return function(e,t,n,r){return["".concat(e,"-cascader__item-icon"),"".concat(e,"-icon")].concat(i(FC(t,n,r)))}(o.value,e.node,u.value,e.cascaderContext)});function f(e,n){var o=n.inputVal,a=o?IC(e):e.label;if(o){for(var l=a.split(o),i=[],u=0;u=i&&0!==i,name:String(n.value),stopLabelTrigger:!!n.children,title:u?IC(n):p(n),onChange:function(){e.onChange()}},a),"function"==typeof(o=c)||"[object Object]"===Object.prototype.toString.call(o)&&!t.isVNode(o)?c:{default:function(){return[c]}})}return function(){var r=e.cascaderContext,o=e.node,l=e.optionChild,i=l&&r.multiple;return t.createVNode("li",{ref:n,class:d.value,onClick:function(){return i?e.onChange():e.onClick()},onMouseenter:e.onMouseenter},[l||(r.multiple?h(o,r):m(o,r)),o.children&&(o.loading?t.createVNode(Du,{class:v.value,size:"small"},null):t.createVNode(a,{class:v.value},null))])}}}),HC={autofocus:Boolean,borderless:Boolean,checkProps:{type:Object},checkStrictly:Boolean,clearable:Boolean,collapsedItems:{type:Function},disabled:{type:Boolean,default:void 0},empty:{type:[String,Function]},filter:{type:Function},filterable:Boolean,inputProps:{type:Object},keys:{type:Object},label:{type:[String,Function]},lazy:{type:Boolean,default:!0},load:{type:Function},loading:Boolean,loadingText:{type:[String,Function]},max:{type:Number,default:0},minCollapsedNum:{type:Number,default:0},multiple:Boolean,option:{type:Function},options:{type:Array,default:function(){return[]}},panelBottomContent:{type:[String,Function]},panelTopContent:{type:[String,Function]},placeholder:{type:String,default:void 0},popupProps:{type:Object},popupVisible:Boolean,prefixIcon:{type:Function},readonly:{type:Boolean,default:void 0},reserveKeyword:Boolean,selectInputProps:{type:Object},showAllLevels:{type:Boolean,default:!0},size:{type:String,default:"medium",validator:function(e){return!e||["large","medium","small"].includes(e)}},status:{type:String,default:"default",validator:function(e){return!e||["default","success","warning","error"].includes(e)}},suffix:{type:[String,Function]},suffixIcon:{type:Function},tagInputProps:{type:Object},tagProps:{type:Object},tips:{type:[String,Function]},trigger:{type:String,default:"click",validator:function(e){return!e||["click","hover"].includes(e)}},value:{type:[String,Number,Array],default:void 0},modelValue:{type:[String,Number,Array],default:void 0},defaultValue:{type:[String,Number,Array],default:function(){return[]}},valueDisplay:{type:[String,Function]},valueMode:{type:String,default:"onlyLeaf",validator:function(e){return!e||["onlyLeaf","parentFirst","all"].includes(e)}},valueType:{type:String,default:"single",validator:function(e){return!e||["single","full"].includes(e)}},onBlur:Function,onChange:Function,onFocus:Function,onPopupVisibleChange:Function,onRemove:Function},WC=t.defineComponent({name:"TCascaderSubPanel",props:{option:HC.option,empty:HC.empty,trigger:HC.trigger,onChange:HC.onChange,loading:HC.loading,loadingText:HC.loadingText,cascaderContext:{type:Object}},setup:function(e){var n=zl(),r=ei("cascader"),o=Jl("cascader").globalConfig,a=t.computed(function(){return MC(e.cascaderContext.treeNodes)}),l=function(t,n){!function(e,t,n,r){var o=r.checkStrictly,a=r.multiple,l=r.treeStore,i=r.setVisible,u=r.setValue,c=r.setTreeNodes,s=r.setExpend,d=r.value,v=r.max,f=r.valueType;if(!(n.disabled||a&&d.length>=v&&0!==v)){if(e===t){var p=n.setExpanded(!0);l.refreshNodes(),l.replaceExpanded(p),c(l.getNodes().filter(function(e){return e.visible})),a&&s(p)}if(!a&&(n.isLeaf()||o)&&"click"===t){l.resetChecked();var m=Ya(n.setChecked(!n.checked),1)[0];u("single"===f?m:n.getPath().map(function(e){return e.value}),"check",n.getModel()),o&&"hover"!==e||i(!1,{})}}}(e.trigger,n,t,e.cascaderContext)},i=function(r,o){var a=r.data.content?_l(r.data.content(t.h)):n("option",{params:{item:r.data,index:o}});return t.createVNode(zC,{key:r.value,node:r,optionChild:a,cascaderContext:e.cascaderContext,onClick:function(){l(r,"click")},onMouseenter:function(){l(r,"hover")},onChange:function(){!function(e,t){var n=t.disabled,r=t.max,o=t.inputVal,a=t.multiple,l=t.setVisible,i=t.setValue,u=t.treeNodes,c=t.treeStore,s=t.valueType;if(e&&!n&&!e.disabled){var d=e.setChecked(!e.isChecked());if(Uo(r)&&r<0&&console.warn("TDesign Warn:","max should > 0"),!(d.length>r&&Uo(r)&&r>0)){if(0===d.length){var v=c.getExpanded();setTimeout(function(){c.replaceExpanded(v),c.refreshNodes()},0)}a||l(!1,{});var f=u.every(function(e){return d.indexOf(e.value)>-1});o&&f&&l(!1,{}),i("single"===s?d:d.map(function(e){return c.getNode(e).getPath().map(function(e){return e.value})}),e.checked?"uncheck":"check",e.getModel())}}}(r,e.cascaderContext)}},null)},u=function(e){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;return t.createVNode("ul",{class:["".concat(r.value,"__menu"),"narrow-scrollbar",s(s({},"".concat(r.value,"__menu--segment"),o),"".concat(r.value,"__menu--filter"),n)],key:"".concat(r,"__menu").concat(a)},[e.map(function(e){return i(e,a)})])};return function(){var l,i,c,d;return l=e.loading?n("loadingText",t.createVNode("div",{class:"".concat(r.value,"__panel--empty")},[o.value.loadingText])):a.value.length?(i=e.cascaderContext,c=i.inputVal,d=i.treeNodes,c?u(d,!0):a.value.map(function(e,t){return u(e,!1,t!==a.value.length-1,t)})):n("empty",t.createVNode("div",{class:"".concat(r.value,"__panel--empty")},[o.value.empty])),t.createVNode("div",{class:["".concat(r.value,"__panel"),s({},"".concat(r.value,"--normal"),a.value.length&&!e.loading)]},[l])}}});var KC="__tdesign_tree-node__",UC=function(){return Ti(function e(t){Mi(this,e),s(this,KC,void 0),this[KC]=t},[{key:"value",get:function(){return this[KC].value}},{key:"label",get:function(){return this[KC].label}},{key:"data",get:function(){return this[KC].data}},{key:"actived",get:function(){return this[KC].actived}},{key:"expanded",get:function(){return this[KC].expanded}},{key:"checked",get:function(){return this[KC].checked}},{key:"indeterminate",get:function(){return this[KC].indeterminate}},{key:"loading",get:function(){return this[KC].loading}},{key:"disabled",get:function(){return this[KC].isDisabled()}},{key:"getLevel",value:function(){return this[KC].getLevel()}},{key:"getIndex",value:function(){return this[KC].getIndex()}},{key:"isFirst",value:function(){return this[KC].isFirst()}},{key:"isLast",value:function(){return this[KC].isLast()}},{key:"isLeaf",value:function(){return this[KC].isLeaf()}},{key:"insertBefore",value:function(e){return this[KC].insertBefore(e)}},{key:"insertAfter",value:function(e){return this[KC].insertAfter(e)}},{key:"appendData",value:function(e){return this[KC].append(e)}},{key:"getPath",value:function(){return this[KC].getPath().map(function(e){return e.getModel()})}},{key:"getParent",value:function(){var e;return null===(e=this[KC].parent)||void 0===e?void 0:e.getModel()}},{key:"getParents",value:function(){return this[KC].getParents().map(function(e){return e.getModel()})}},{key:"getRoot",value:function(){var e=this[KC].getRoot();return null==e?void 0:e.getModel()}},{key:"getSiblings",value:function(){return this[KC].getSiblings().map(function(e){return e.getModel()})}},{key:"getChildren",value:function(e){var t=this[KC],n=!1,r=t.children;if(Array.isArray(r))if(r.length>0)if(e){var o=t.walk();o.shift(),n=o.map(function(e){return e.getModel()})}else n=r.map(function(e){return e.getModel()});else n=!1;else Lo(r)&&(n=r);return n}},{key:"remove",value:function(e){var t=this[KC];if(e){var n=t.tree.getNode(e);if(n)n.getParents().map(function(e){return e.value}).indexOf(t.value)<0?fi("Tree","`".concat(e,"` is not a childNode of current node")):n.remove();else fi("Tree","`".concat(e,"` is not exist"))}else t.remove()}},{key:"setData",value:function(e){var t=this[KC],n=["value","label","disabled"],r=la(e,["children"].concat(n)),o=t.tree.config.keys;n.forEach(function(t){var n=jt(e,(null==o?void 0:o[t])||t);Zo(n)||(r[t]=n)}),Object.assign(t.data,r),Object.assign(t,r),t.update()}}])}();function YC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function $C(e){for(var t=1;t0?this.append(n):this.children=!1,this.update();case 2:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"set",value:function(e){var t=this,n=this.tree;Object.keys(e).forEach(function(n){(ZC.call(qC,n)||"label"===n)&&(t[n]=e[n]),"disabled"===n&&t.setDisabled(e[n])}),n.updated(this)}},{key:"getParent",value:function(){return this.parent}},{key:"getParents",value:function(){for(var e=[],t=this.parent;t;)e.push(t),t=t.parent;return e}},{key:"getSiblings",value:function(){var e=this.parent,t=this.tree,n=[];return e?Array.isArray(e.children)&&(n=e.children):t&&(n=t.children),n}},{key:"getChildren",value:function(e){var t=!1,n=this.children;if(Array.isArray(n))if(n.length>0)if(e){var r=this.walk();r.shift(),t=r.map(function(e){return e.getModel()})}else t=n.map(function(e){return e.getModel()});else t=!1;else Lo(n)&&(t=n);return t}},{key:"getRoot",value:function(){var e=this.getParents();return e[e.length-1]||null}},{key:"getIndex",value:function(){return this.getSiblings().indexOf(this)}},{key:"getPath",value:function(){var e=this.getParents();return e.unshift(this),e.reverse()}},{key:"getLevel",value:function(){return this.getParents().length}},{key:"isRest",value:function(){var e=this.tree,t=e.config,n=e.filterMap,r=!1;if(e.hasFilter){var o=this.getModel();r=t.filter(o)}return r?n.set(this.value,!0):n.get(this.value)&&n.delete(this.value),r}},{key:"isVisible",value:function(){var e=this.tree,t=e.nodeMap,n=e.hasFilter,r=e.config.allowFoldNodeOnFilter;if(!t.get(this.value))return!1;if(n&&!r)return this.vmIsLocked||this.vmIsRest;var o=!0,a=this.getParents();return a.length>0&&(o=a.every(function(e){return e.expanded})),n?o&&(this.vmIsRest||this.vmIsLocked):o}},{key:"isDisabledState",value:function(){var e=this.tree,t=this.parent,n=e.config,r=n.disabled,o=n.disableCheck,a=n.checkStrictly,l=r||!1;return this.disabled&&(l=!0),!a&&null!=t&&t.isDisabledState()&&(l=!0),"boolean"==typeof o?o&&(l=!0):"function"==typeof o&&o(this.getModel())&&(l=!0),l}},{key:"isDisabled",value:function(){var e=this.tree,t=e.hasFilter,n=e.config.allowFoldNodeOnFilter;return!(!t||n||!this.vmIsLocked||this.vmIsRest)||this.isDisabledState()}},{key:"isDraggable",value:function(){var e=!!jt(this,"tree.config.draggable");return"boolean"==typeof this.draggable&&(e=this.draggable),e}},{key:"isExpandMutex",value:function(){var e=!!jt(this,"tree.config.expandMutex");return"boolean"==typeof this.expandMutex&&(e=this.expandMutex),e}},{key:"isActivable",value:function(){var e=!!jt(this,"tree.config.activable");return"boolean"==typeof this.activable&&(e=this.activable),e}},{key:"isCheckable",value:function(){var e=!!jt(this,"tree.config.checkable");return"boolean"==typeof this.checkable&&(e=this.checkable),e}},{key:"isActived",value:function(e){var t=this.tree,n=this.value,r=e||t.activedMap;return!(!t.nodeMap.get(n)||!r.get(n))}},{key:"isExpanded",value:function(e){var t=this.tree,n=this.value,r=this.vmIsLocked,o=t.hasFilter,a=t.config.allowFoldNodeOnFilter;if(o&&!a&&r)return!0;var l=e||t.expandedMap;return!(!t.nodeMap.get(n)||!l.get(n))}},{key:"isChecked",value:function(e){var t=this.children,n=this.tree,r=this.value,o=n.config,a=o.checkStrictly,l=o.valueMode;if(!n.nodeMap.get(r))return!1;if(!this.isCheckable())return!1;var i=e||n.checkedMap;if(a)return!!i.get(r);var u=!1;if(i.get(r)&&("onlyLeaf"!==l||this.isLeaf()))return!0;Array.isArray(t)&&t.length>0?u=t.every(function(e){return e.isChecked(i)}):u=this.getParents().some(function(e){return i.get(e.value)});return u}},{key:"isIndeterminate",value:function(){var e=this.children,t=this.tree,n=this.value,r=t.config.checkStrictly;if(!t.nodeMap.get(n))return!1;if(!this.isCheckable())return!1;if(r)return!1;if(!Array.isArray(e))return!1;var o=null;return e.some(function(e){return!!e.isIndeterminate()||($o(o)&&(o=e.isChecked()),o!==e.isChecked())})}},{key:"isFirst",value:function(){return this.getSiblings()[0]===this}},{key:"isLast",value:function(){var e=this.getSiblings();return e[e.length-1]===this}},{key:"isLeaf",value:function(){var e=!1;return e=Array.isArray(this.children)?this.children.length<=0:!this.children,e}},{key:"lock",value:function(e){this.vmIsLocked=e,this.expanded=this.isExpanded(),this.visible=this.isVisible()}},{key:"afterExpanded",value:function(){this.update(),this.expanded&&!0===this.children&&this.loadChildren(),this.updateChildren()}},{key:"toggleExpanded",value:function(e){return this.setExpanded(!this.isExpanded(),e)}},{key:"setExpanded",value:function(e,t){var n=this.tree,r=n.config,o=$C({directly:!1},t),a=n.expandedMap;if(o.directly||(a=new Map(n.expandedMap)),e){var l=[];l.push(this),r.expandParent&&this.getParents().forEach(function(e){l.push(e)}),l.forEach(function(e){var t,r=!1;e.parent?r=e.parent.isExpandMutex():r=null==n||null===(t=n.config)||void 0===t?void 0:t.expandMutex;r&&e.getSiblings().forEach(function(e){a.delete(e.value),e.update(),e.updateChildren()});a.set(e.value,!0),e.update(),e.updateChildren()})}else a.delete(this.value);return o.directly&&this.afterExpanded(),n.getExpanded(a)}},{key:"toggleActived",value:function(e){return this.setActived(!this.isActived(),e)}},{key:"setActived",value:function(e,t){var n=this.tree,r=$C({isAction:!0,directly:!1},t),o=n.config||{},a=n.activedMap;if(r.directly||(a=new Map(n.activedMap)),r.isAction&&this.isDisabledState())return n.getActived(a);if(this.isActivable())if(e){var l=Array.from(a.keys());o.activeMultiple||a.clear(),l.forEach(function(e){var t=n.getNode(e);null==t||t.update()}),a.set(this.value,!0)}else a.delete(this.value);return this.update(),n.getActived(a)}},{key:"hasEnableUnCheckedChild",value:function(){var e=this.children;if(!Array.isArray(e)||e.length<=0)return!1;var t=!1;return e.some(function(e){return!e.isDisabledState()&&(!e.isChecked()&&(e.isIndeterminate()?!!e.hasEnableUnCheckedChild()&&(t=!0,!0):(t=!0,!0)))}),t}},{key:"toggleChecked",value:function(e){if(this.isIndeterminate()){var t=this.hasEnableUnCheckedChild();return this.setChecked(t,e)}return this.setChecked(!this.isChecked(),e)}},{key:"setChecked",value:function(e,t){var n=this.tree,r=n.config||{},o=$C({isAction:!0,directly:!1},t),a=n.checkedMap;if(o.directly||(a=new Map(n.checkedMap)),!this.isCheckable())return n.getChecked(a);if(o.isAction&&this.isDisabledState())return n.getChecked(a);if(e===this.isChecked()&&!(this.isIndeterminate()&&!this.hasEnableUnCheckedChild()))return n.getChecked(a);(e?a.set(this.value,!0):a.delete(this.value),r.checkStrictly)?o.directly&&this.updateChecked():(this.spreadChildrenChecked(e,a,o),this.spreadParentChecked(e,a,o),o.directly&&n.getRelatedNodes([this.value],{reverse:!0}).forEach(function(e){e.updateChecked()}));return n.getChecked(a)}},{key:"spreadParentChecked",value:function(e,t,n){var r=$C({isAction:!0,directly:!1},n);if(this.isCheckable()){var o=this.children;Array.isArray(o)&&o.length>0&&t.delete(this.value);var a=this.parent;a&&a.spreadParentChecked(e,t,r)}}},{key:"spreadChildrenChecked",value:function(e,t,n){var r=$C({isAction:!0,directly:!1},n);if(this.isCheckable()&&(!r.isAction||!this.isDisabledState())){var o=this.children;Array.isArray(o)&&(o.length<=0||(t.delete(this.value),o.forEach(function(n){r.isAction&&n.isDisabledState()||(e?t.set(n.value,!0):t.delete(n.value),n.spreadChildrenChecked(e,t,r))})))}}},{key:"setDisabled",value:function(e){this.disabled=e,this.update(),this.updateChildren()}},{key:"update",value:function(){this.level=this.getLevel(),this.vmIsFirst=this.isFirst(),this.vmIsLast=this.isLast(),this.vmIsLeaf=this.isLeaf(),this.vmCheckable=this.isCheckable(),this.vmIsRest=this.isRest(),this.actived=this.isActived(),this.expanded=this.isExpanded(),this.visible=this.isVisible(),this.tree.updated(this)}},{key:"updateChecked",value:function(){var e=this.tree,t=this.value,n=e.checkedMap;this.checked=this.isChecked(),this.indeterminate=this.isIndeterminate(),this.checked&&n.set(t,!0),e.updated(this)}},{key:"updateChildren",value:function(){var e=this;this.spreadChildren(function(t){t!==e&&(t.update(),t.updateChecked())})}},{key:"updateParents",value:function(){var e=this;this.spreadParents(function(t){t!==e&&(t.update(),t.updateChecked())})}},{key:"updateRelated",value:function(){this.tree.getRelatedNodes([this.value]).forEach(function(e){e.update(),e.updateChecked()})}},{key:"walk",value:function(){var e=[];return this.spreadChildren(function(t){e.push(t)}),e}},{key:"spreadChildren",value:function(e){e(this);var t=this.children;Array.isArray(t)&&t.length>0&&t.forEach(function(t){null==t||t.spreadChildren(e)})}},{key:"spreadParents",value:function(e){e(this);var t=this.parent;t&&(null==t||t.spreadParents(e))}},{key:"getModel",value:function(){var e=this.model;return e||(e=new UC(this),this.model=e),e}}]);var t}();function ex(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function tx(e){for(var t=1;t>>0,1):n.set(e,[]))},emit:function(e,t){var r=n.get(e);r&&r.slice().map(function(e){e(t)}),(r=n.get("*"))&&r.slice().map(function(n){n(e,t)})}}},[{key:"setConfig",value:function(e){var t=this.config,n=!1;Object.keys(e).forEach(function(r){var o=e[r];o!==t[r]&&(n=!0,t[r]=o)}),this.hasFilter=H(t.filter),n&&this.refreshState()}},{key:"getChildren",value:function(){return this.children}},{key:"getNode",value:function(e){var t=null;return To(e)||Uo(e)?t=this.nodeMap.get(e):e instanceof QC&&(t=this.nodeMap.get(e.value)),t||(t=null),t}},{key:"getIndex",value:function(e){return this.nodes.indexOf(e)}},{key:"getParent",value:function(e){var t=null,n=this.getNode(e);return n&&(t=n.getParent()),t}},{key:"getParents",value:function(e){var t=this.getNode(e),n=[];return t&&(n=t.getParents()),n}},{key:"getNodeIndex",value:function(e){var t=this.getNode(e),n=-1;return t&&(n=t.getIndex()),n}},{key:"getNodes",value:function(e,t){var n=[],r="";if(To(e)||Uo(e)?r=e:e instanceof QC&&(r=e.value),r||0===r){var o=this.getNode(r);o&&(n=o.walk())}else n=this.nodes.slice(0);if(t){var a=tx({filter:null,level:1/0},t);Uo(a.level)&&a.level!==1/0&&(n=n.filter(function(e){return e.level<=a.level})),H(a.filter)&&(n=n.filter(function(e){var t=e.getModel();return a.filter(t)})),Lt(a.props)&&(n=n.filter(function(e){var t=Object.keys(a.props).every(function(t){return e[t]===a.props[t]});return t}))}return n}},{key:"append",value:function(e){var t=this;e.forEach(function(e){var n=new QC(t,e);t.children.push(n)}),this.reflow()}},{key:"reload",value:function(e){this.removeAll(),this.append(e)}},{key:"parseNodeData",value:function(e,t){var n="",r=null,o=null;return To(e)||Uo(e)?(n=e,r=this.getNode(n),o=t):e instanceof QC&&t?(r=e,o=t):o=e,{node:r,data:o}}},{key:"appendNodes",value:function(e,t){var n=this.parseNodeData(e,t);n.data&&(n.node?(n.data instanceof QC?n.data.appendTo(this,n.node):S(n.data)?n.node.append(n.data):n.node.append([n.data]),n.node.updateRelated()):n.data instanceof QC?n.data.appendTo(this):Array.isArray(n.data)?this.append(n.data):this.append([n.data]))}},{key:"insertBefore",value:function(e,t){var n=this.getNode(e);n&&n.insertBefore(t)}},{key:"insertAfter",value:function(e,t){var n=this.getNode(e);n&&n.insertAfter(t)}},{key:"refreshNodes",value:function(){var e=this.children,t=this.nodes;t.length=0,e.forEach(function(e){var n=e.walk();Array.prototype.push.apply(t,n)})}},{key:"reflow",value:function(e){this.shouldReflow=!0,this.updated(e)}},{key:"updated",value:function(e){var t,n,r=this,o=this.updatedMap;(e?o.set(e[JC],"changed"):this.getNodes().forEach(function(e){o.set(e[JC],"changed")}),this.updateTick)||(this.updateTick=(t=function(){r.updateTick=null,r.shouldReflow&&(r.refreshNodes(),r.emit("reflow")),r.lockFilterPathNodes();var e="t".concat((new Date).getTime()),t=Array.from(o.keys()).map(function(t){return o.set(t,e),r.privateMap.get(t)});r.emit("update",{nodes:t,map:o}),r.shouldReflow=!1,o.clear()},(n=Promise.resolve()).then(t),n))}},{key:"getActived",value:function(e){var t=e||this.activedMap;return Array.from(t.keys())}},{key:"getActivedNodes",value:function(e){var t=this.getNodes(e);return t=t.filter(function(e){return e.isActived()})}},{key:"replaceActived",value:function(e){this.resetActived(),this.setActived(e)}},{key:"setActived",value:function(e){var t=this,n=this.config.activeMultiple,r=e.slice(0);n||(r.length=1),r.forEach(function(e){t.activedMap.set(e,!0);var n=t.getNode(e);n&&n.update()})}},{key:"resetActived",value:function(){var e=this.getActived();this.activedMap.clear(),this.getRelatedNodes(e).forEach(function(e){e.update()})}},{key:"getExpanded",value:function(e){var t=e||this.expandedMap;return Array.from(t.keys())}},{key:"replaceExpanded",value:function(e){var t=this.getExpanded(),n=Po(e,t),r=Po(t,e);this.setExpandedDirectly(r,!1),this.updateExpanded(r),this.setExpanded(n)}},{key:"setExpanded",value:function(e){this.setExpandedDirectly(e),this.updateExpanded(e)}},{key:"setExpandedDirectly",value:function(e){var t=this,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];e.forEach(function(e){n?t.expandedMap.set(e,!0):t.expandedMap.delete(e);var r=t.getNode(e);r&&r.afterExpanded()})}},{key:"resetExpanded",value:function(){var e=this.getExpanded();this.expandedMap.clear(),this.updateExpanded(e)}},{key:"updateExpanded",value:function(e){this.getRelatedNodes(e,{withParents:!1}).forEach(function(e){e.update()})}},{key:"getChecked",value:function(e){var t=this.nodeMap,n=this.config,r=n.valueMode,o=n.checkStrictly,a=[],l=e||this.checkedMap;return t.forEach(function(e){e.isChecked(l)&&("parentFirst"!==r||o?("onlyLeaf"!==r||o||e.isLeaf())&&a.push(e.value):e.parent&&e.parent.isChecked(l)||a.push(e.value))}),a}},{key:"getCheckedNodes",value:function(e){var t=this.getNodes(e);return t=t.filter(function(e){return e.isChecked()})}},{key:"replaceChecked",value:function(e){this.resetChecked(),this.setChecked(e)}},{key:"setChecked",value:function(e){var t=this,n=this.config,r=n.checkStrictly;if(n.checkable&&(e.forEach(function(e){var n=t.getNode(e);n&&(r?(t.checkedMap.set(e,!0),n.updateChecked()):n.walk().forEach(function(e){t.checkedMap.set(e.value,!0)}))}),!r)){var o=this.getChecked();this.getRelatedNodes(o).forEach(function(e){e.updateChecked()})}}},{key:"resetChecked",value:function(){var e=this.getChecked(),t=this.getRelatedNodes(e);this.checkedMap.clear(),t.forEach(function(e){e.updateChecked()})}},{key:"refreshState",value:function(){this.nodeMap.forEach(function(e){e.update()})}},{key:"updateAll",value:function(){this.nodeMap.forEach(function(e){e.update(),e.updateChecked()})}},{key:"remove",value:function(e){var t=this.getNode(e);t&&t.remove()}},{key:"removeAll",value:function(){this.expandedMap.clear(),this.checkedMap.clear(),this.activedMap.clear(),this.filterMap.clear(),this.nodeMap.clear(),this.privateMap.clear(),this.updatedMap.clear(),this.nodes=[],this.children=[],this.reflow()}},{key:"getRelatedNodes",value:function(e,t){var n=this,r=tx({reverse:!1,withParents:!0},t),o=new Map;e.forEach(function(e){if(!o.get(e)){var t=n.getNode(e);if(t){var a=t.getParents().reverse(),l=t.walk();(r.withParents?a.concat(l):l).forEach(function(e){o.set(e.value,e)})}}});var a=Array.from(o.values());return r.reverse&&(a=a.reverse()),a}},{key:"emit",value:function(e,t){var n=this.config,r=this.emitter,o=n[Bn("on-".concat(e))];H(o)&&o(t),r.emit(e,t)}},{key:"lockFilterPathNodes",value:function(){var e=this.config,t=this.getNodes();this.prevFilter&&t.forEach(function(e){e.vmIsLocked&&e.lock(!1)});var n=e.filter;n&&H(n)&&(this.prevFilter=e.filter,t.reverse().forEach(function(e){var t=e.getParent();t&&(e.vmIsRest||e.vmIsLocked)&&(t.vmIsLocked||t.lock(!0))}))}}])}();function rx(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function ox(e){for(var t=1;t-1}):t.getNodes().filter(function(e){return e.visible}))}}(t.inputVal,t.treeStore,t.setTreeNodes,e.filter)},y=function(){var e=p.value,t=e.value,n=e.treeStore;!function(e,t,n){var r=AC(t);if(e){if(S(r)&&0===n.length){var o=new Map,a=Ya(r,1)[0];if(!BC(a)){o.set(a,!0);var l=e.getNode(a);if(!l)return void e.refreshNodes();l.getParents().forEach(function(e){o.set(e.value,!0)});var i=Array.from(o.keys());e.replaceExpanded(i)}}e.getExpanded()&&n.length&&e.replaceExpanded(n),e.refreshNodes()}}(n,t,m.expend),n.replaceChecked(AC(t))};t.watch(function(){return e.options},function(){var n=e.options,r=e.keys,o=void 0===r?{}:r,a=e.checkStrictly,l=e.lazy,i=e.load,u=e.valueMode,c=m.treeStore;if(n.length||c){if(c)c.reload(n),c.refreshNodes();else{var s=new nx({keys:ox(ox({},o),{},{children:To(o.children)?o.children:"children"}),checkable:!0,expandMutex:!0,expandParent:!0,lazy:l,load:i,valueMode:u,checkStrictly:a,onLoad:function(){t.nextTick(function(){s.refreshNodes(),g()})}});s.append(n),m.treeStore=s}y(),g()}},{immediate:!0,deep:!0}),t.watch(function(){var t=e.checkStrictly,n=e.lazy,r=e.load,o=e.valueMode;return JSON.stringify({valueMode:o,checkStrictly:t,lazy:n,load:r})},function(){var t=m.treeStore;if(t){var r=e.checkStrictly,o=e.lazy,a=e.load,l=e.valueMode,i={checkStrictly:r,disabled:n,load:a,lazy:o,valueMode:l};t.setConfig(i)}},{immediate:!0}),t.watch(u,function(){var e=p.value,t=e.setValue,n=e.multiple,r=e.valueType;(function(e,t){var n=t.multiple,r=t.showAllLevels,o=t.valueType;return n&&!S(e)||!n&&S(e)&&"single"===o&&!r})(u.value,p.value)&&t(n?[]:"","invalid-value"),BC(u.value)?m.scopeVal=n?[]:"":m.scopeVal=function(e,t,n){if("single"===t)return e;var r=e;return n?r.map(function(e){return e.at(-1)}):r.at(-1)}(u.value,r,n),m.treeStore&&(y(),g())},{immediate:!0}),t.watch(function(){return d.value&&h.value},function(e){var t=p.value.setInputVal;e&&t("")}),t.watch(function(){return m.inputVal},function(){g()});return{cascaderContext:p,isFilterable:h,innerValue:u,getCascaderItems:function(e){var t=[];return e.forEach(function(e){var n,r=null===(n=m.treeStore)||void 0===n?void 0:n.getNodes(e);r&&r[0]&&t.push(r[0].data)}),t}}};function lx(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function ix(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:"").replace(/\W?Y{2,4}|\W?D{1,2}|\W?Do|\W?d{1,4}|\W?M{1,4}|\W?y{2,4}/g,"").trim()}function yx(e,t,n,r){if(""===e||null===e)return Yl();var o=e;if(/[w|W]/g.test(t)){To(o)||(o=Yl(o).locale(r||"zh-cn").format(t));var a=o.split(/[-/.\s]/)[0],l=o.split(/[-/.\s]/)[1],i=t.split(/[-/.\s]/)[1],u=Yl(a,"YYYY").locale(r||"zh-cn").startOf("year");(u.day()>4||0===u.day())&&(u=u.add(1,"week"));for(var c=Yl(a,"YYYY").locale(r||"zh-cn").isoWeeksInYear(),s=0;s<=c;s+=1){var d=u.add(s,"week");if("start"===n&&(d=d.subtract(5,"day")),d.format(i)===l)return d}}if(/Q/g.test(t)){To(o)||(o=Yl(o).locale(r||"zh-cn").format(t));for(var v=o.split(/[-/.\s]/)[0],f=o.split(/[-/.\s]/)[1],p=t.split(/[-/.\s]/)[1],m=Yl(v,"YYYY").startOf("year"),h=0;h<4;h+=1){var g=m.add(h,"quarter");if(g.format(p)===f)return g}}var y=Yl(o,t).isValid()?Yl(o,t):Yl(o);return y.isValid()?y:(pi("DatePicker","Check whether the format\u3001value format is valid.\n value: '".concat(e,"', format: '").concat(t,"'")),Yl())}function bx(e,t){return Array.isArray(e)?e.every(function(e){return""===e||(Yl(e,t).isValid()||Yl(e).isValid())}):""===e||(Yl(e,t).isValid()||Yl(e).isValid())}function wx(e,t){var n,r=t.format,o=t.targetFormat,a=t.dayjsLocale,l=void 0===a?"zh-cn":a,i=t.autoSwap;return n=Array.isArray(e)?function(e){var t=e.newDate,n=e.format,r=e.dayjsLocale,o=e.targetFormat,a=e.autoSwap;if(!t||!Array.isArray(t))return[];var l=t.map(function(e){return e&&yx(e,n).locale(r)});return a&&l[0]&&l[1]&&l[0].toDate().getTime()>l[1].toDate().getTime()&&(l=[l[1],l[0]]),l.some(function(e){return e&&!e.isValid()})?(pi("DatePicker","Check whether the value\u3001format\u3001valueType format is valid.\nformat: '".concat(n,"' value: '").concat(t,"' valueType: '").concat(o,"'")),[]):"time-stamp"===o?l.map(function(e){return e&&e.toDate().getTime()}):"Date"===o?l.map(function(e){return e&&e.toDate()}):l.map(function(e){return e&&e.format(o||n)})}({newDate:e,format:r,dayjsLocale:l,targetFormat:o,autoSwap:i}):function(e){var t=e.newDate,n=e.format,r=e.targetFormat,o=e.dayjsLocale;if(!t)return"";var a=yx(t,n).locale(o);return a.isValid()?"time-stamp"===r?a.toDate().getTime():"Date"===r?a.toDate():a.format(r||n):(pi("DatePicker","Check whether the format\u3001value format is valid.\nformat: '".concat(n,"' value: '").concat(t,"'")),"")}({newDate:e,format:r,dayjsLocale:l,targetFormat:o}),n}function Ox(e,t){if(e&&t){var n=e.split(":"),r=t.split(":");return n.slice(0,r.length).join(":")}return e}function Cx(e,t,n,r){var o,a=Array.isArray(e)?e:[e];return r=Array.isArray(r)?r:[r,r],a=a.map(function(e,o){return e?Yl(e,"string"==typeof e?t:void 0).format(n):Ox(r[o],n)}),a=a.length?a:r.map(function(e){return Ox(e,n)}),Array.isArray(e)?a:null===(o=a)||void 0===o?void 0:o[0]}function xx(e){var t=e.mode,n=void 0===t?"date":t,r=e.format,o=e.valueType,a=e.enableTimePicker;return"year"===n?{format:r||"YYYY",valueType:o||r||"YYYY",timeFormat:hx}:"month"===n?{format:r||"YYYY-MM",valueType:o||r||"YYYY-MM",timeFormat:hx}:"quarter"===n?{format:r||"YYYY-[Q]Q",valueType:o||r||"YYYY-[Q]Q",timeFormat:hx}:"week"===n?{format:r||"gggg-wo",valueType:o||r||"gggg-wo",timeFormat:hx}:"date"===n?{format:r||"YYYY-MM-DD".concat(a?" HH:mm:ss":""),valueType:o||r||"YYYY-MM-DD".concat(a?" HH:mm:ss":""),timeFormat:gx(r||"YYYY-MM-DD".concat(a?" HH:mm:ss":""))||hx}:(pi("DatePicker","Invalid mode: ".concat(n)),{})}function Px(e){var t=e.value,n=e.mode,r=void 0===n?"date":n,o=e.format,a=e.timeFormat,l=void 0===a?"HH:mm:ss":a,i=e.enableTimePicker,u={year:[Yl().year(),Yl().year()],month:[Yl().month(),Yl().month()],time:[Yl().format(l),Yl().format(l)]};return"year"===r?u.year[1]+=10:"month"===r||"quarter"===r?u.year[1]+=1:"date"!==r&&"week"!==r||i||(11===u.month[0]?(u.year[1]+=1,u.month[1]=0):u.month[1]+=1),t&&Array.isArray(t)&&t.length?{year:t.map(function(e){return yx(e,o).year()}),month:t.map(function(e){return yx(e,o).month()}),time:t.map(function(e){return yx(e,o).format(l)})}:u}function Sx(e){var n,r,o,a,l=t.toRefs(e),i=Ya(Ui(l.value,l.modelValue,e.defaultValue,e.onChange),2),u=i[0],c=i[1],s=t.computed(function(){return xx({mode:e.mode,format:e.format,enableTimePicker:!e.multiple&&e.enableTimePicker})});e.enableTimePicker&&(gx(s.value.format)||console.error("format: ".concat(s.value.format," \u4e0d\u89c4\u8303\uff0c\u5305\u542b\u65f6\u95f4\u9009\u62e9\u5fc5\u987b\u8981\u6709\u65f6\u95f4\u683c\u5f0f\u5316 HH:mm:ss")));var d=t.ref(Cx(e.multiple?null===(n=u.value)||void 0===n?void 0:n[0]:u.value,s.value.format,s.value.timeFormat,e.defaultTime)),v=t.ref(yx(e.multiple?null===(r=u.value)||void 0===r?void 0:r[0]:u.value,s.value.format).month()),f=t.ref(yx(e.multiple?null===(o=u.value)||void 0===o?void 0:o[0]:u.value,s.value.format).year()),p=t.ref(wx(e.multiple?null===(a=u.value)||void 0===a?void 0:a[0]:u.value,{format:s.value.format}));return t.watchEffect(function(){u.value?bx(u.value,s.value.format)&&(p.value=wx(u.value,{format:s.value.format}),d.value=Cx(u.value,s.value.format,s.value.timeFormat,e.defaultTime)):p.value=""}),{year:f,month:v,value:u,time:d,cacheValue:p,onChange:c}}function jx(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function kx(e){for(var t=1;t25){var a=o(this).startOf(t).add(1,t).date(r),l=o(this).endOf(e);if(a.isBefore(l))return 1}var i=o(this).startOf(t).date(r).startOf(e).subtract(1,"millisecond"),u=this.diff(i,e,!0);return u<0?o(this).startOf("week").week():Math.ceil(u)},a.weeks=function(e){return void 0===e&&(e=null),this.week(e)}}}()}(Dx);var Ex=Za(Dx.exports),Fx={exports:{}};!function(e){e.exports=function(e,t){t.prototype.weekYear=function(){var e=this.month(),t=this.week(),n=this.year();return 1===t&&11===e?n+1:0===e&&t>=52?n-1:n}}}(Fx);var Tx=Za(Fx.exports),Mx={exports:{}};!function(e){e.exports=function(e,t,n){var r=t.prototype,o=function(e){return e&&(e.indexOf?e:e.s)},a=function(e,t,n,r,a){var l=e.name?e:e.$locale(),i=o(l[t]),u=o(l[n]),c=i||u.map(function(e){return e.slice(0,r)});if(!a)return c;var s=l.weekStart;return c.map(function(e,t){return c[(t+(s||0))%7]})},l=function(){return n.Ls[n.locale()]},i=function(e,t){return e.formats[t]||function(e){return e.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(e,t,n){return t||n.slice(1)})}(e.formats[t.toUpperCase()])},u=function(){var e=this;return{months:function(t){return t?t.format("MMMM"):a(e,"months")},monthsShort:function(t){return t?t.format("MMM"):a(e,"monthsShort","months",3)},firstDayOfWeek:function(){return e.$locale().weekStart||0},weekdays:function(t){return t?t.format("dddd"):a(e,"weekdays")},weekdaysMin:function(t){return t?t.format("dd"):a(e,"weekdaysMin","weekdays",2)},weekdaysShort:function(t){return t?t.format("ddd"):a(e,"weekdaysShort","weekdays",3)},longDateFormat:function(t){return i(e.$locale(),t)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};r.localeData=function(){return u.bind(this)()},n.localeData=function(){var e=l();return{firstDayOfWeek:function(){return e.weekStart||0},weekdays:function(){return n.weekdays()},weekdaysShort:function(){return n.weekdaysShort()},weekdaysMin:function(){return n.weekdaysMin()},months:function(){return n.months()},monthsShort:function(){return n.monthsShort()},longDateFormat:function(t){return i(e,t)},meridiem:e.meridiem,ordinal:e.ordinal}},n.months=function(){return a(l(),"months")},n.monthsShort=function(){return a(l(),"monthsShort","months",3)},n.weekdays=function(e){return a(l(),"weekdays",null,null,e)},n.weekdaysShort=function(e){return a(l(),"weekdaysShort","weekdays",3,e)},n.weekdaysMin=function(e){return a(l(),"weekdaysMin","weekdays",2,e)}}}(Mx);var Ix=Za(Mx.exports),Ax={exports:{}};!function(e){e.exports=function(){var e="month",t="quarter";return function(n,r){var o=r.prototype;o.quarter=function(e){return this.$utils().u(e)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(e-1))};var a=o.add;o.add=function(n,r){return n=Number(n),this.$utils().p(r)===t?this.add(3*n,e):a.bind(this)(n,r)};var l=o.startOf;o.startOf=function(n,r){var o=this.$utils(),a=!!o.u(r)||r;if(o.p(n)===t){var i=this.quarter()-1;return a?this.month(3*i).startOf(e).startOf("day"):this.month(3*i+2).endOf(e).endOf("day")}return l.bind(this)(n,r)}}}()}(Ax);var Bx=Za(Ax.exports),Lx={exports:{}};!function(e){e.exports=function(e,t){var n=t.prototype,r=n.format;n.format=function(e){var t=this,n=this.$locale();if(!this.isValid())return r.bind(this)(e);var o=this.$utils(),a=(e||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,function(e){switch(e){case"Q":return Math.ceil((t.$M+1)/3);case"Do":return n.ordinal(t.$D);case"gggg":return t.weekYear();case"GGGG":return t.isoWeekYear();case"wo":return n.ordinal(t.week(),"W");case"w":case"ww":return o.s(t.week(),"w"===e?1:2,"0");case"W":case"WW":return o.s(t.isoWeek(),"W"===e?1:2,"0");case"k":case"kk":return o.s(String(0===t.$H?24:t.$H),"k"===e?1:2,"0");case"X":return Math.floor(t.$d.getTime()/1e3);case"x":return t.$d.getTime();case"z":return"["+t.offsetName()+"]";case"zzz":return"["+t.offsetName("long")+"]";default:return e}});return r.bind(this)(a)}}}(Lx);var Rx=Za(Lx.exports),zx={exports:{}};!function(e){e.exports=function(){var e={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},t=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\d\d/,r=/\d\d?/,o=/\d*[^-_:/,()\s\d]+/,a={},l=function(e){return(e=+e)+(e>68?1900:2e3)},i=function(e){return function(t){this[e]=+t}},u=[/[+-]\d\d:?(\d\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if("Z"===e)return 0;var t=e.match(/([+-]|\d\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:"+"===t[0]?-n:n}(e)}],c=function(e){var t=a[e];return t&&(t.indexOf?t:t.s.concat(t.f))},s=function(e,t){var n,r=a.meridiem;if(r){for(var o=1;o<=24;o+=1)if(e.indexOf(r(o,0,t))>-1){n=o>12;break}}else n=e===(t?"pm":"PM");return n},d={A:[o,function(e){this.afternoon=s(e,!1)}],a:[o,function(e){this.afternoon=s(e,!0)}],S:[/\d/,function(e){this.milliseconds=100*+e}],SS:[n,function(e){this.milliseconds=10*+e}],SSS:[/\d{3}/,function(e){this.milliseconds=+e}],s:[r,i("seconds")],ss:[r,i("seconds")],m:[r,i("minutes")],mm:[r,i("minutes")],H:[r,i("hours")],h:[r,i("hours")],HH:[r,i("hours")],hh:[r,i("hours")],D:[r,i("day")],DD:[n,i("day")],Do:[o,function(e){var t=a.ordinal,n=e.match(/\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\[|\]/g,"")===e&&(this.day=r)}],M:[r,i("month")],MM:[n,i("month")],MMM:[o,function(e){var t=c("months"),n=(c("monthsShort")||t.map(function(e){return e.slice(0,3)})).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[o,function(e){var t=c("months").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\d+/,i("year")],YY:[n,function(e){this.year=l(e)}],YYYY:[/\d{4}/,i("year")],Z:u,ZZ:u};function v(n){var r,o;r=n,o=a&&a.formats;for(var l=(n=r.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(t,n,r){var a=r&&r.toUpperCase();return n||o[r]||e[r]||o[a].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(e,t,n){return t||n.slice(1)})})).match(t),i=l.length,u=0;u-1)return new Date(("X"===t?1e3:1)*e);var r=v(t)(e),o=r.year,a=r.month,l=r.day,i=r.hours,u=r.minutes,c=r.seconds,s=r.milliseconds,d=r.zone,f=new Date,p=l||(o||a?1:f.getDate()),m=o||f.getFullYear(),h=0;o&&!a||(h=a>0?a-1:f.getMonth());var g=i||0,y=u||0,b=c||0,w=s||0;return d?new Date(Date.UTC(m,h,p,g,y,b,w+60*d.offset*1e3)):n?new Date(Date.UTC(m,h,p,g,y,b,w)):new Date(m,h,p,g,y,b,w)}catch(e){return new Date("")}}(t,i,r),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),s&&t!=this.format(i)&&(this.$d=new Date("")),a={}}else if(i instanceof Array)for(var f=i.length,p=1;p<=f;p+=1){l[1]=i[p-1];var m=n.apply(this,l);if(m.isValid()){this.$d=m.$d,this.$L=m.$L,this.init();break}p===f&&(this.$d=new Date(""))}else o.call(this,e)}}}()}(zx);var Hx=Za(zx.exports);function Wx(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Kx(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:"zh-cn";return Zx(e,t)&&Yl(e).locale(n).week()===Yl(t).locale(n).week()}function Xx(e,t){return Zx(e,t)&&e.getDate()===t.getDate()}function Gx(e,t){var n=e.getTime(),r=t.getTime();return nr?1:0}function Jx(e,t){var n,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"zh-cn";return{isSameYear:Yx,isSameQuarter:$x,isSameMonth:Zx,isSameWeek:qx,isSameDate:Xx}["isSame".concat((n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"date",n?n[0].toUpperCase().concat(n.substring(1,n.length)):n))](e,t,r)}function Qx(e,t,n){return t&&-1===Gx(e,t)||n&&1===Gx(e,n)}function eP(){var e=new Date;return new Date(e.getFullYear(),e.getMonth(),e.getDate(),0,0,0)}function tP(e,t){return Yl(e).subtract(t,"month").toDate()}function nP(e,t){return Yl(e).add(t,"month").toDate()}function rP(e,t){for(var n=e.year,r=e.month,o=t.firstDayOfWeek,a=t.showWeekOfYear,l=void 0!==a&&a,i=t.disableDate,u=void 0===i?function(){return!1}:i,c=t.minDate,s=t.maxDate,d=t.dayjsLocale,v=void 0===d?"zh-cn":d,f=t.cancelRangeSelectLimit,p=void 0!==f&&f,m=function(e){var t=e.year,n=e.month;return new Date(t,n,1)}({year:n,month:r}),h=function(e){var t=e.year,n=e.month;return new Date(t,n,Ux({year:t,month:n}))}({year:n,month:r}),g=Ux({year:n,month:r}),y=[],b=1,w=eP();b<=g;b++){var O=new Date(n,r,b);y.push({text:b,active:!1,value:O,disabled:H(u)&&u(O)||!p&&Qx(O,c,s),now:Jx(w,O),firstDayOfMonth:1===b,lastDayOfMonth:b===g,type:"current-month",dayjsObj:Yl(O).locale(v)})}if(m.getDay()!==o)for(m.setDate(0);y.unshift({text:m.getDate().toString(),active:!1,value:new Date(m),disabled:H(u)&&u(m)||!p&&Qx(m,c,s),additional:!0,type:"prev-month",dayjsObj:Yl(m).locale(v)}),m.setDate(m.getDate()-1),m.getDay()!==Math.abs(o+6)%7;);for(;y.length<42;)h.setDate(h.getDate()+1),y.push({text:h.getDate(),active:!1,value:new Date(h),disabled:H(u)&&u(h)||!p&&Qx(h,c,s),additional:!0,type:"next-month",dayjsObj:Yl(h).locale(v)});var C=zn(y,7);return l&&C.forEach(function(e){e.unshift(Kx(Kx({},e[0]),{},{active:!1,value:e[0].value,text:Yl(e[0].value).locale(v).week(),dayjsObj:Yl(e[0].value).locale(v)}))}),C}function oP(e,t){var n=Nx({},(function(e){if(null==e)throw new TypeError("Cannot destructure "+e)}(t),t)),r=n.start,o=n.end,a=n.hoverStart,l=n.hoverEnd,i=n.type,u=void 0===i?"date":i,c=n.isRange,s=void 0!==c&&c,d=n.value,v=n.multiple,f=void 0!==v&&v;return"week"===u?e:s?e.map(function(e){return e.map(function(e){var t=e,n=e.value,i=r&&Jx(r,n,u),c=a&&Jx(a,n,u),s=o&&Jx(o,n,u),d=l&&Jx(l,n,u);return t.active=(i||s)&&!t.additional,r&&o&&(t.highlight=Yl(n).isBetween(r,o,u,"[]")&&!t.additional,t.startOfRange=i,t.endOfRange=s),a&&l&&(t.hoverHighlight=Yl(n).isBetween(a,l,u,"[]")&&!t.additional,t.hoverStartOfRange=c,t.hoverEndOfRange=d),t})}):e.map(function(e){return e.map(function(e){var t,n=e;f?n.active=null==d||null===(t=d.some)||void 0===t?void 0:t.call(d,function(e){return Jx(Yl(e).toDate(),n.value,u)&&!n.additional}):n.active=r&&Jx(e.value,r,u)&&!n.additional;return n})})}function aP(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=e.match(/[ap]m/i)||[""],n=Ya((e.match(/\d{1,2}(:\d{1,2})?(:\d{1,2})?(:\d{1,3})?/)||["0:0:0:0"])[0].split(":"),4),r=n[0],o=void 0===r?0:r,a=n[1],l=void 0===a?0:a,i=n[2],u=void 0===i?0:i,c=n[3];return{hours:+o,minutes:+l,seconds:+u,milliseconds:+(void 0===c?0:c),meridiem:t[0]}}Yl.extend(Ex),Yl.extend(Tx),Yl.extend(Ix),Yl.extend(Bx),Yl.extend(Rx),Yl.extend(Hx),Yl.extend(Vx);var lP={allowInput:Boolean,borderless:Boolean,clearable:Boolean,defaultTime:{type:String,default:"00:00:00"},disableDate:{type:[Object,Array,Function]},disabled:{type:Boolean,default:void 0},enableTimePicker:Boolean,firstDayOfWeek:{type:Number,validator:function(e){return!e||[1,2,3,4,5,6,7].includes(e)}},format:{type:String,default:void 0},inputProps:{type:Object},label:{type:[String,Function]},mode:{type:String,default:"date",validator:function(e){return!e||["year","quarter","month","week","date"].includes(e)}},multiple:Boolean,needConfirm:{type:Boolean,default:!0},placeholder:{type:[String,Array],default:void 0},popupProps:{type:Object},prefixIcon:{type:Function},presets:{type:Object},presetsPlacement:{type:String,default:"bottom",validator:function(e){return!e||["left","top","right","bottom"].includes(e)}},readonly:{type:Boolean,default:void 0},selectInputProps:{type:Object},size:{type:String,default:"medium",validator:function(e){return!e||["small","medium","large"].includes(e)}},status:{type:String,default:"default",validator:function(e){return!e||["default","success","warning","error"].includes(e)}},suffixIcon:{type:Function},timePickerProps:{type:Object},tips:{type:[String,Function]},value:{type:[String,Number,Array,Date],default:void 0},modelValue:{type:[String,Number,Array,Date],default:void 0},defaultValue:{type:[String,Number,Array,Date],default:""},valueDisplay:{type:[String,Function]},valueType:{type:String,default:""},onBlur:Function,onChange:Function,onConfirm:Function,onFocus:Function,onPick:Function,onPresetClick:Function},iP=t.defineComponent({name:"TDatePickerHeader",props:{mode:{type:String,default:"date"},year:Number,month:Number,onMonthChange:Function,onYearChange:Function,onJumperClick:Function},setup:function(e){var n=Jl("classPrefix").classPrefix,r=ei("date-picker__header"),o=Jl("datePicker").globalConfig,a=t.ref(s(e.year)),l=t.computed(function(){return"date"===e.mode||"week"===e.mode}),u=t.computed(function(){var t;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(HO,{class:"".concat(r.value,"-controller-month"),value:e.month,options:c.value,onChange:function(t){var n;return null===(n=e.onMonthChange)||void 0===n?void 0:n.call(e,t)},popupProps:{attach:function(e){return e.parentNode},overlayClassName:"".concat(r.value,"-controller-month-popup")}},null),t.createVNode(HO,{class:"".concat(r.value,"-controller-year"),value:"year"===e.mode?u.value:e.year,options:a.value,onChange:function(t){var n;return null===(n=e.onYearChange)||void 0===n?void 0:n.call(e,t)},popupProps:{onScroll:f,attach:function(e){return e.parentNode},overlayClassName:"".concat(r.value,"-controller-year-popup")},panelTopContent:function(){return t.createVNode("div",{class:"".concat(n.value,"-select-option"),onClick:p},[t.createTextVNode("...")])},panelBottomContent:function(){return t.createVNode("div",{class:"".concat(n.value,"-select-option"),onClick:m},[t.createTextVNode("...")])}},null)]),t.createVNode(eC,{tips:v.value[e.mode],size:"small",onChange:e.onJumperClick},null)])}}}),uP=t.defineComponent({name:"TDatePickerCell",props:{time:String,text:[String,Number],value:Date,active:Boolean,highlight:Boolean,disabled:Boolean,startOfRange:Boolean,endOfRange:Boolean,hoverHighlight:Boolean,hoverStartOfRange:Boolean,hoverEndOfRange:Boolean,additional:Boolean,now:Boolean,firstDayOfMonth:Boolean,lastDayOfMonth:Boolean,onClick:Function,onMouseEnter:Function,dayjsObj:Ul.Dayjs},setup:function(e){var n=ei("date-picker__cell"),r=t.computed(function(){var t;return[n.value,(t={},s(s(s(s(s(s(s(s(s(s(t,"".concat(n.value,"--now"),e.now),"".concat(n.value,"--active"),e.active),"".concat(n.value,"--disabled"),e.disabled),"".concat(n.value,"--highlight"),e.highlight),"".concat(n.value,"--hover-highlight"),e.hoverHighlight),"".concat(n.value,"--active-start"),e.startOfRange),"".concat(n.value,"--active-end"),e.endOfRange),"".concat(n.value,"--hover-start"),e.hoverStartOfRange),"".concat(n.value,"--hover-end"),e.hoverEndOfRange),"".concat(n.value,"--additional"),e.additional),s(s(t,"".concat(n.value,"--first-day-of-month"),e.firstDayOfMonth),"".concat(n.value,"--last-day-of-month"),e.lastDayOfMonth))]});function o(t){var n;if(!e.disabled){if(e.time){var r=aP(e.time),o=r.hours,a=r.minutes,l=r.seconds,i=r.milliseconds,u=r.meridiem,c=o;/am/i.test(u)&&12===c&&(c-=12),/pm/i.test(u)&&c<12&&(c+=12),e.value.setHours(c),e.value.setMinutes(a),e.value.setSeconds(l),e.value.setMilliseconds(i)}null===(n=e.onClick)||void 0===n||n.call(e,e.value,{e:t})}}function a(){var t;if(!e.disabled){if(e.time){var n=aP(e.time),r=n.hours,o=n.minutes,a=n.seconds,l=n.milliseconds,i=n.meridiem,u=r;/am/i.test(i)&&12===u&&(u-=12),/pm/i.test(i)&&u<12&&(u+=12),e.value.setHours(u),e.value.setMinutes(o),e.value.setSeconds(a),e.value.setMilliseconds(l)}null===(t=e.onMouseEnter)||void 0===t||t.call(e,e.value)}}return function(){return t.createVNode("td",{class:r.value,onClick:o,onMouseenter:a},[t.createVNode("div",{class:"".concat(n.value,"-inner")},[e.text])])}}});function cP(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function sP(e){for(var t=1;t=f&&y<=m&&b>p&&b1}).length;return i.value?Yl(i.value,u.value):e?Yl().hour(0).minute(0).second(0):Yl()});t.watch(function(){return h.value},function(){h.value&&i.value&&x(!0)}),t.watch(function(){return d.value},function(){d.value&&x(!0)}),t.onMounted(function(){v.value=function(e){var t=[],n=gP.meridiem,r=gP.hour,o=gP.minute,a=gP.second,l=gP.milliSecond;return e.match(yP).forEach(function(e){switch(e){case"H":case"HH":case"h":case"hh":t.push(r);break;case"a":case"A":t.push(n);break;case"m":case"mm":t.push(o);break;case"s":case"ss":t.push(a);break;case"SSS":t.push(l)}}),t}(u.value)});var g=function(){var e,t=null===(e=p.value)||void 0===e?void 0:e.querySelector("div");return t?{offsetHeight:parseFloat(getComputedStyle(t).height),margin:parseFloat(getComputedStyle(t).marginTop)}:{offsetHeight:0,margin:0}},y=function(t,n){var r=NP.indexOf(t);if(-1!==r){var o,a=[h.value.hour(),h.value.minute(),h.value.second(),h.value.millisecond()];return a[r]=Number(n),!(null!==(o=e.disableTime)&&void 0!==o&&null!==(o=o.call.apply(o,[e].concat(a,[{partial:c.value||"start"}])))&&void 0!==o&&null!==(o=o[t])&&void 0!==o&&o.includes(Number(n)))}return!0},b=function(t){var n=0;if(NP.includes(t)){var r=NP.indexOf(t),o=l.value[r]||1;n=t===gP.hour?bP.test(u.value)?11:23:t===gP.milliSecond?999:59;var a=Fa(0,n+1,Number(o)).map(function(e){return ja(String(e),2,"0")})||[];return e.hideDisabledTime&&e.disableTime?a.filter(function(n){var o,a=[h.value.hour(),h.value.minute(),h.value.second(),h.value.millisecond()];return a[r]=Number(n),!(null!==(o=e.disableTime)&&void 0!==o&&null!==(o=o.call.apply(o,[e].concat(a,[{partial:c.value||"start"}])))&&void 0!==o&&null!==(o=o[t])&&void 0!==o&&o.includes(Number(n)))}):a}return pP},w=function(e,t){e===gP.hour&&/[h]{1}/.test(u.value)&&(t%=12);var n=b(e).indexOf(ja(String(t),2,"0")),r=g(),o=r.offsetHeight+r.margin;return Math.abs(Math.max(0,n)*o)},O=function(t,n,r){var o,a,c,s;if(e.isShowPanel){var d=((null===(o=m[n])||void 0===o?void 0:o.scrollTop)||0)+_P,f=g(),p=f.offsetHeight+f.margin,O=Math.abs(Math.round(d/p+.5)),C=pP[Math.min(O-1,1)].toLowerCase();if(Number.isNaN(O)&&(O=1),NP.includes(t)){var x=59;t===gP.hour?x=/[h]{1}/.test(u.value)?11:23:t===gP.milliSecond&&(x=999);var P=NP.indexOf(t),S=Fa(0,x+1,Number(l.value[P])||1);c=function(e,t,n){return n<=1?t:e.sort(function(e,n){return Math.abs(t+1-e)-Math.abs(t+1-n)})[0]}(S,Number(b(t)[Math.min(O-1,x+1,S.length-1)]),Number(l.value[P])||1),Number.isNaN(c)&&(c=S[S.length-1]),t===gP.hour&&v.value.includes(gP.meridiem)&&h.value.hour()>=12&&(c=Number(c)+12)}else c=C;var j=w(t,c);if(Yl(h.value).isValid()&&(!i.value||Yl(i.value,u.value,!0).isValid())){if(NP.includes(t)){var k,N;s=y(t,c)?null===(k=(N=h.value)[t])||void 0===k?void 0:k.call(N,c).format(u.value):h.value.format(u.value)}else{var _=h.value.hour();s=C===vP&&_>=12?h.value.hour(_-12).format(u.value):C===fP&&_<12?h.value.hour(_+12).format(u.value):h.value.format(u.value)}if(s!==i.value&&(null===(a=e.onChange)||void 0===a||a.call(e,s,r)),j!==d){var V,D=m[v.value.indexOf(t)];if(!D||D.scrollTop===j)return;null===(V=D.scrollTo)||void 0===V||V.call(D,{top:j,behavior:"smooth"})}}}},C=function(e,t,n){var r,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"auto",a=w(e,t),l=m[n];l&&l.scrollTop!==a&&y(e,t)&&(null===(r=l.scrollTo)||void 0===r||r.call(l,{top:a,behavior:o}))},x=function(){var n=arguments.length>0&&void 0!==arguments[0]&&arguments[0],r=i.value&&!n?"smooth":"auto",o=!!l.value.filter(function(e){return Number(e)>1}).length;t.nextTick(function(){v.value.forEach(function(e,t){var n,a,l;!o||o&&i.value?C(e,NP.includes(e)?null===(n=(a=h.value)[e])||void 0===n?void 0:n.call(a):h.value.format("a"),t,r):C(e,null===(l=b(e))||void 0===l?void 0:l[0],t,r)})}),e.resetTriggerScroll()},P=function(e,t){var n,r,o;return e===gP.meridiem?h.value.format("a")===t:(o=null===(n=(r=h.value)[e])||void 0===n?void 0:n.call(r),e===gP.hour&&/[h]{1}/.test(u.value)&&(o%=12),o===Number(t))};return function(){var a,l,i,c;return t.createVNode("div",{class:"".concat(r.value,"-body"),ref:f},[t.createVNode("div",{class:"".concat(r.value,"-body-active-mask"),ref:p},[null===(a=(l=v.value).map)||void 0===a?void 0:a.call(l,function(e,n){return t.createVNode("div",{key:"".concat(e,"_").concat(n)},null)})]),null===(i=(c=v.value).map)||void 0===i?void 0:i.call(c,function(a,l){return t.createVNode("ul",{key:"".concat(a,"_").concat(l),ref:function(e){return m[l]=e},class:"".concat(r.value,"-body-scroll"),onScroll:po(function(e){return O(a,l,e)},50)},[b(a).map(function(i){return t.createVNode("li",{key:i,class:["".concat(r.value,"-body-scroll-item"),s(s({},o.value.disabled,!y(a,i)),o.value.current,P(a,i))],onClick:function(t){return function(t,n,r,o){if(y(t,n))if(NP.includes(t))t===gP.hour&&h.value.format("a")===fP&&v.value.includes(gP.meridiem)&&(n=Number(n)+12),C(t,n,r,"smooth");else{var a,l=h.value.hour();if(n===vP&&l>=12)null===(a=e.onChange)||void 0===a||a.call(e,h.value.hour(l-12).format(u.value),o);else if(n===fP&&l<12){var i;null===(i=e.onChange)||void 0===i||i.call(e,h.value.hour(l+12).format(u.value),o)}}}(a,i,l,t)}},[NP.includes(a)?bP.test(u.value)&&a===gP.hour&&"00"===i?"12":i:n.value[i===vP?"anteMeridiem":"postMeridiem"]])})])})])}}});function DP(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function EP(e){for(var t=1;t1}).length}),d=t.computed(function(){s.value;var t=Yl(e.value,e.format);return e.value&&t.isValid()?t.format(e.format):Yl().hour(0).minute(0).second(0).format(e.format)}),v=function(){t.nextTick(function(){u.value=!0})},f=function(){u.value=!1},p=function(){return Zo(e.presets)?s.value?null:t.createVNode(Mu,{theme:"primary",variant:"text",size:"small",onClick:function(){var t;return null===(t=e.onChange)||void 0===t?void 0:t.call(e,Yl().format(e.format))}},{default:function(){return[n.value.now]}}):Object.keys(e.presets||[]).map(function(n){return t.createVNode(Mu,{key:n,theme:"primary",size:"small",variant:"text",onClick:function(){return t=e.presets[n],a="function"==typeof t?t():t,void("number"==typeof e.activeIndex?Array.isArray(a)?null===(r=e.onChange)||void 0===r||r.call(e,a[e.activeIndex]):pi("TimePicker","preset: ".concat(e.presets," \u9884\u8bbe\u503c\u5fc5\u987b\u662f\u6570\u7ec4!")):null===(o=e.onChange)||void 0===o||o.call(e,a));var t,r,o,a}},"function"==typeof(r=n)||"[object Object]"===Object.prototype.toString.call(r)&&!t.isVNode(r)?n:{default:function(){return[n]}});var r})};return t.onMounted(function(){v()}),t.watch(function(){return i.value},function(){v()}),function(){return t.createVNode("div",{class:r.value},[t.createVNode("div",{class:"".concat(r.value,"-section-body")},[t.createVNode(VP,t.mergeProps(e,{ref:c,format:e.format||"HH:mm:ss",steps:e.steps||hP,value:Yl(e.value,e.format).isValid()?e.value:d.value,triggerScroll:u.value,onChange:e.onChange,resetTriggerScroll:f,isShowPanel:e.isShowPanel}),null)]),l.value?t.createVNode("div",{class:"".concat(r.value,"-section-footer")},[t.createVNode(Mu,{theme:"primary",variant:"base",disabled:!e.value,onClick:function(t){var n;return null===(n=e.handleConfirmClick)||void 0===n?void 0:n.call(e,t,d.value)},size:"small"},{default:function(){return[n.value.confirm]}}),p()]):null])}}});function TP(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function MP(e){for(var t=1;t=o[1]&&(r?o[0]=o[1]-1:(o[0]=o[1],a[0]>=a[1]&&(a[0]=a[1]-1,-1===a[0]&&(a[0]=11,o=[o[0]-1,o[1]])))),{nextYear:o,nextMonth:a}}var pS=t.defineComponent({name:"TDateRangePicker",props:JP,setup:function(e,n){var r=n.slots,o=ei("date-range-picker"),a=function(e){var n=ei("date-range-picker"),r=Jl("datePicker").globalConfig,o=si({CalendarIcon:Nc}).CalendarIcon,a=Rl(),l=t.ref(!1),i=t.ref(),u=zP(e),c=u.value,d=u.onChange,v=u.time,f=u.month,p=u.year,m=u.cacheValue,h=u.isFirstValueSelected,g=t.computed(function(){return xx({mode:e.mode,format:e.format,valueType:e.valueType,enableTimePicker:e.enableTimePicker})}),y=t.ref(!1),b=t.ref(!1),w=t.ref(0),O=t.ref(wx(e.value,{format:g.value.format})),C=Ri(),x=t.computed(function(){return WP(WP({},e.rangeInputProps),{},{size:e.size,ref:i,borderless:e.borderless,clearable:e.clearable&&!C.value,prefixIcon:function(){return a("prefixIcon")},readonly:C.value||!e.allowInput,separator:e.separator||r.value.rangeSeparator,placeholder:e.placeholder||r.value.placeholder[e.mode],activeIndex:y.value?w.value:void 0,suffixIcon:function(){return a("suffixIcon")||t.createVNode(o,null,null)},class:s({},"".concat(n.value,"__input--placeholder"),b.value),onClick:function(e){var t=e.position;w.value="first"===t?0:1},onClear:function(e){e.e.stopPropagation(),y.value=!1,null==d||d([],{dayjsValue:[],trigger:"clear"})},onBlur:function(t,n){var r,o=n.e,a=n.position;null===(r=e.onBlur)||void 0===r||r.call(e,{value:t,partial:KP[a],e:o})},onFocus:function(t,n){var r,o=n.e,a=n.position;null===(r=e.onFocus)||void 0===r||r.call(e,{value:t,partial:KP[a],e:o}),w.value="first"===a?0:1},onChange:function(e,t){if(t.e,t.position,O.value=e,bx(e,g.value.format)){m.value=e;var n=[],r=[],o=[];e.forEach(function(e){n.push(yx(e,g.value.format).year()),r.push(yx(e,g.value.format).month()),o.push(yx(e,g.value.format).format(g.value.timeFormat))}),p.value=n,f.value=r,v.value=o}},onEnter:function(e){(bx(e,g.value.format)||bx(c.value,g.value.format))&&(y.value=!1,bx(e,g.value.format)?null==d||d(wx(e,{format:g.value.format,targetFormat:g.value.valueType,autoSwap:!0}),{dayjsValue:e.map(function(e){return yx(e,g.value.format)}),trigger:"enter"}):bx(c.value,g.value.format)?O.value=wx(c.value,{format:g.value.format}):O.value=[])}})}),P=t.computed(function(){var t,r,o;return WP(WP({expandAnimation:!0},la(e.popupProps,"on-visible-change")),{},{overlayInnerStyle:null!==(t=null===(r=e.popupProps)||void 0===r?void 0:r.overlayInnerStyle)&&void 0!==t?t:{width:"auto"},overlayClassName:[null===(o=e.popupProps)||void 0===o?void 0:o.overlayClassName,"".concat(n.value,"__panel-container")],onVisibleChange:function(t,n){var r,o,a,l;if(!C.value){if(null===(r=e.popupProps)||void 0===r||null===(o=r.onVisibleChange)||void 0===o||o.call(r,t,n),null===(a=e.popupProps)||void 0===a||null===(l=a["on-visible-change"])||void 0===l||l.call(a,t,n),"trigger-element-click"===n.trigger)return i.value.focus({position:{0:"first",1:"second"}[w.value]}),void(y.value=!0);y.value=t}}})});return t.watch(c,function(e){e?bx(e,g.value.format)&&(O.value=wx(e,{format:g.value.valueType,targetFormat:g.value.format})):O.value=[]},{immediate:!0}),t.watch(w,function(e){var t,n;l.value?y.value&&(null===(t=i.value)||void 0===t||null===(n=t.focus)||void 0===n||n.call(t,{position:{0:"first",1:"second"}[e]})):l.value=!0},{immediate:!0}),{year:p,month:f,value:c,time:v,inputValue:O,popupVisible:y,rangeInputProps:x,popupProps:P,isHoverCell:b,activeIndex:w,isFirstValueSelected:h,cacheValue:m,onChange:d}}(e),l=a.inputValue,u=a.popupVisible,c=a.rangeInputProps,d=a.popupProps,v=a.value,f=a.year,p=a.month,m=a.time,h=a.cacheValue,g=a.activeIndex,y=a.isHoverCell,b=a.isFirstValueSelected,w=a.onChange,O=oi(),C=Ri(),x=t.computed(function(){return xx({mode:e.mode,enableTimePicker:e.enableTimePicker,format:e.format,valueType:e.valueType})}),P=t.ref(!1);function j(e){y.value=!0;var t=i(l.value);t[g.value]=wx(e,{format:x.value.format}),l.value=t}function k(){y.value=!1,l.value=h.value}function N(t,n){var r,o=n.e;null===(r=e.onPick)||void 0===r||r.call(e,t,{e:o,partial:g.value?"end":"start"}),y.value=!1,P.value=!0;var a=i(l.value);if(a[g.value]=wx(t,{format:x.value.format}),h.value=a,l.value=a,!e.enableTimePicker){var c=a.findIndex(function(e){return!e||!bx(e,x.value.format)});if(-1===c&&2===a.length&&(!b.value&&yx(a[0],x.value.format).isAfter(yx(a[1],x.value.format))?(a[g.value?0:1]="",h.value=a,l.value=a):null==w||w(wx(a,{format:x.value.format,targetFormat:x.value.valueType,autoSwap:!0}),{dayjsValue:a.map(function(e){return yx(e,x.value.format)}),trigger:"pick"})),b.value&&g.value)u.value=!1;else{var s=c;-1===s&&(s=g.value?0:1),g.value=s,b.value=!!a[0]}}}function _(t){var n=t.trigger,r="start"===t.partial?0:1,o={date:1,week:1,month:12,quarter:12,year:120}[e.mode]||0,a=new Date(f.value[r],p.value[r]),l=null;"prev"===n?l=tP(a,o):"current"===n?l=new Date:"next"===n&&(l=nP(a,o));var u=i(f.value);u[r]=l.getFullYear();var c=i(p.value);c[r]=l.getMonth();var s=fS(r,u,c,["year","quarter","month"].includes(e.mode));u=s.nextYear,c=s.nextMonth,f.value=u,p.value=c}function V(e){var t=aP(e),n=t.hours,r=t.minutes,o=t.seconds,a=t.milliseconds,u=t.meridiem,c=i(l.value),s=c[g.value],d=Yl(s,x.value.format).isValid()?Yl(s,x.value.format):Yl().year(f.value[g.value]).month(p.value[g.value]),v=n;/am/i.test(u)&&12===v&&(v-=12),/pm/i.test(u)&&v<12&&(v+=12);var y=d.hour(v).minute(r).second(o).millisecond(a).toDate();c[g.value]=y;var b=i(m.value);b[g.value]=e,m.value=b,P.value=!0,l.value=wx(c,{format:x.value.format}),h.value=wx(c,{format:x.value.format})}t.watch(u,function(t){if(t)if(P.value=!1,h.value=wx(v.value||[],{format:x.value.valueType,targetFormat:x.value.format}),m.value=Cx(v.value||[Yl().format(x.value.timeFormat),Yl().format(x.value.timeFormat)],x.value.format,x.value.timeFormat,e.defaultTime),v.value.length)if(2!==v.value.length||e.enableTimePicker)f.value=v.value.map(function(e){return yx(e,x.value.format).year()}),1===f.value.length&&(f.value=[f.value[0],f.value[0]]),p.value=v.value.map(function(e){return yx(e,x.value.format).month()}),1===p.value.length&&(p.value=[p.value[0],Math.min(p.value[0]+1,11)]);else{var n=v.value.map(function(e){return yx(e,x.value.format).month()});f.value=v.value.map(function(e){return yx(e,x.value.valueType).year()}),f.value[0]===f.value[1]&&n[0]===n[1]&&(11===n[0]?n[0]-=1:n[1]+=1),p.value=n,"month"!==e.mode&&"quarter"!==e.mode||f.value[0]!==f.value[1]||(f.value=[f.value[0],f.value[0]+1])}else{var r=Px({value:v.value,mode:e.mode,format:x.value.format,enableTimePicker:e.enableTimePicker}),o=r.year,a=r.month;f.value=o,p.value=a}else g.value=0,y.value=!1,b.value=!1,e.needConfirm?l.value=wx(v.value,{format:x.value.valueType,targetFormat:x.value.format}):D()});var D=function(t){var n,r=i(l.value);-1===r.findIndex(function(e){return!e||!bx(e,x.value.format)})&&2===r.length&&(!b.value&&yx(r[0],x.value.format).isAfter(yx(r[1],x.value.format))?(r[g.value?0:1]="",h.value=r,l.value=r):(null==e||null===(n=e.onConfirm)||void 0===n||n.call(e,{date:r.map(function(e){return Yl(e).toDate()}),e:t||null,partial:g.value?"end":"start"}),null==w||w(wx(r,{format:x.value.format,targetFormat:x.value.valueType,autoSwap:!0}),{dayjsValue:r.map(function(e){return yx(e,x.value.format)}),trigger:"confirm"})))};function E(e){var t=e.e;D(t);var n=i(l.value),r=n.findIndex(function(e){return!e||!bx(e,x.value.format)});if(b.value&&g.value)2===n.length&&(u.value=!1);else{var o=r;-1===o&&(o=g.value?0:1),g.value=o,b.value=!!n[0]}}function F(t,n){var r,o=t;(H(t)&&(o=t()),S(o))?(null==w||w(wx(o,{format:x.value.format,targetFormat:x.value.valueType,autoSwap:!0}),{dayjsValue:o.map(function(e){return yx(e,x.value.format)}),trigger:"preset"}),u.value=!1,null===(r=e.onPresetClick)||void 0===r||r.call(e,n)):console.error("preset: ".concat(t," \u9884\u8bbe\u503c\u5fc5\u987b\u662f\u6570\u7ec4!"))}function T(t,n){var r="start"===n.partial?0:1;e.enableTimePicker&&(r=g.value);var o=i(f.value),a=i(p.value);o[r]=t;var l=["year","quarter","month"].includes(e.mode),u=fS(r,o,a,l);o=u.nextYear,a=u.nextMonth,f.value=o,l||(p.value=a)}function M(t,n){var r="start"===n.partial?0:1;e.enableTimePicker&&(r=g.value);var o=i(p.value);if(o[r]=t,f.value[0]===f.value[1]){var a,l,u,c;if(0===r)if(o[1]<=o[0])if(o[1]=o[0]+1,12===o[1])o[1]=0,f.value=[null===(a=f.value)||void 0===a?void 0:a[0],(null===(l=f.value)||void 0===l?void 0:l[1])+1];if(1===r)if(o[0]=Math.min(o[0],o[1]),o[0]>=o[1])if(o[0]-=1,-1===o[0])o[0]=11,f.value=[(null===(u=f.value)||void 0===u?void 0:u[0])-1,null===(c=f.value)||void 0===c?void 0:c[1]]}p.value=o}var I=t.computed(function(){return{hoverValue:y.value?l.value:[],value:P.value?h.value:v.value,isFirstValueSelected:b.value,activeIndex:g.value,year:f.value,month:p.value,format:x.value.format,mode:e.mode,presets:e.presets,time:m.value,disableDate:e.disableDate,firstDayOfWeek:e.firstDayOfWeek,timePickerProps:e.timePickerProps,enableTimePicker:e.enableTimePicker,presetsPlacement:e.presetsPlacement,popupVisible:u.value,panelPreselection:e.panelPreselection,cancelRangeSelectLimit:e.cancelRangeSelectLimit,needConfirm:e.needConfirm,onCellClick:N,onCellMouseEnter:j,onCellMouseLeave:k,onJumperClick:_,onConfirmClick:E,onPresetClick:F,onYearChange:T,onMonthChange:M,onTimePickerChange:V}});return function(){return t.createVNode("div",{class:o.value},[t.createVNode(cS,{readonly:C.value,disabled:O.value,label:e.label,status:e.status,tips:e.tips||r.tips,inputValue:l.value,popupProps:d.value,rangeInputProps:c.value,popupVisible:u.value,panel:function(){return t.createVNode(vS,I.value,null)}},null)])}}}),mS={defaultTime:{type:Array,default:function(){return["00:00:00","23:59:59"]}},onCellClick:Function,onChange:Function,onConfirm:Function,onMonthChange:Function,onPanelClick:Function,onPresetClick:Function,onTimeChange:Function,onYearChange:Function};function hS(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}var gS=t.defineComponent({name:"TDateRangePickerPanel",props:function(e){for(var t=1;t=s[1])if(s[0]-=1,-1===s[0])s[0]=11,o.value=[(null===(f=o.value)||void 0===f?void 0:f[0])-1,null===(p=o.value)||void 0===p?void 0:p[1]]}a.value=s,null===(l=e.onMonthChange)||void 0===l||l.call(e,{partial:u,month:s[c],date:r.value.map(function(e){return Yl(e).toDate()}),trigger:"month-select"})}t.onMounted(function(){if(2===r.value.length&&!e.enableTimePicker){var t=r.value.map(function(e){return yx(e,d.value.format).month()});o.value=r.value.map(function(e){return yx(e,d.value.valueType).year()}),o.value[0]===o.value[1]&&t[0]===t[1]&&(11===t[0]?t[0]-=1:t[1]+=1),a.value=t,["month","quarter"].includes(e.mode)&&o.value[0]===o.value[1]&&(o.value=[o.value[0],o.value[0]+1])}});var j=t.computed(function(){return{hoverValue:f.value?p.value:[],value:v.value?u.value:r.value,activeIndex:m.value,year:o.value,month:a.value,mode:e.mode,format:d.value.format,presets:e.presets,time:l.value,disableDate:e.disableDate,firstDayOfWeek:e.firstDayOfWeek,timePickerProps:e.timePickerProps,enableTimePicker:e.enableTimePicker,presetsPlacement:e.presetsPlacement,panelPreselection:e.panelPreselection,popupVisible:!0,panelClick:e.onPanelClick,onCellClick:y,onCellMouseEnter:h,onCellMouseLeave:g,onJumperClick:b,onConfirmClick:O,onPresetClick:C,onYearChange:x,onMonthChange:P,onTimePickerChange:w}});return function(){return t.createVNode(vS,j.value,null)}}}),yS=Nl(ZP),bS=Nl(GP),wS=Nl(pS),OS=Nl(gS),CS={colon:Boolean,data:{type:Object,default:function(){return{}}},disabled:{type:Boolean,default:void 0},errorMessage:{type:Object},id:{type:String,default:void 0},labelAlign:{type:String,default:"right",validator:function(e){return!e||["left","right","top"].includes(e)}},labelWidth:{type:[String,Number],default:"100px"},layout:{type:String,default:"vertical",validator:function(e){return!e||["vertical","inline"].includes(e)}},preventSubmitDefault:{type:Boolean,default:!0},readonly:{type:Boolean,default:void 0},requiredMark:{type:Boolean,default:void 0},requiredMarkPosition:{type:String,validator:function(e){return!e||["left","right"].includes(e)}},resetType:{type:String,default:"empty",validator:function(e){return!e||["empty","initial"].includes(e)}},rules:{type:Object},scrollToFirstError:{type:String,validator:function(e){return!e||["","smooth","auto"].includes(e)}},showErrorMessage:{type:Boolean,default:!0},statusIcon:{type:[Boolean,Function],default:void 0},submitWithWarningMessage:Boolean,onReset:Function,onSubmit:Function,onValidate:Function},xS={exports:{}},PS={exports:{}};!function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;for(var n in t)void 0===e[n]&&(e[n]=t[n]);return e},e.exports=t.default,e.exports.default=t.default}(PS,PS.exports);var SS=PS.exports;!function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){t="string"==typeof t?(0,r.default)({format:t},i):(0,r.default)(t,i);if("string"==typeof e&&function(e){return/(^(y{4}|y{2})[.\/-](m{1,2})[.\/-](d{1,2})$)|(^(m{1,2})[.\/-](d{1,2})[.\/-]((y{4}|y{2})$))|(^(d{1,2})[.\/-](m{1,2})[.\/-]((y{4}|y{2})$))/gi.test(e)}(t.format)){if(t.strictMode&&e.length!==t.format.length)return!1;var n,l=t.delimiters.find(function(e){return-1!==t.format.indexOf(e)}),u=t.strictMode?l:t.delimiters.find(function(t){return-1!==e.indexOf(t)}),c=function(e,t){for(var n=[],r=Math.max(e.length,t.length),o=0;o=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var l,i=!0,u=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){u=!0,l=e},f:function(){try{i||null==n.return||n.return()}finally{if(u)throw l}}}}(c);try{for(d.s();!(n=d.n()).done;){var v=o(n.value,2),f=v[0],p=v[1];if(!f||!p||f.length!==p.length)return!1;s[p.charAt(0)]=f}}catch(e){d.e(e)}finally{d.f()}var m=s.y;if(m.startsWith("-"))return!1;if(2===s.y.length){var h=parseInt(s.y,10);if(isNaN(h))return!1;m=h<(new Date).getFullYear()%100?"20".concat(s.y):"19".concat(s.y)}var g=s.m;1===s.m.length&&(g="0".concat(s.m));var y=s.d;return 1===s.d.length&&(y="0".concat(s.d)),new Date("".concat(m,"-").concat(g,"-").concat(y,"T00:00:00.000Z")).getUTCDate()===+s.d}if(!t.strictMode)return"[object Date]"===Object.prototype.toString.call(e)&&isFinite(e);return!1};var n,r=(n=SS)&&n.__esModule?n:{default:n};function o(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a,l,i=[],u=!0,c=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=a.call(n)).done)&&(i.push(r.value),i.length!==t);u=!0);}catch(e){c=!0,o=e}finally{try{if(!u&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(c)throw o}}return i}}(e,t)||a(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(e,t){if(e){if("string"==typeof e)return l(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?l(e,t):void 0}}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=n&&(void 0===a||l<=a)};var n,r=(n=_S)&&n.__esModule?n:{default:n};function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}e.exports=t.default,e.exports.default=t.default}(ES,ES.exports);var FS=ES.exports,TS={exports:{}};!function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,n.default)(e),(t=(0,r.default)(t,a)).allow_trailing_dot&&"."===e[e.length-1]&&(e=e.substring(0,e.length-1));!0===t.allow_wildcard&&0===e.indexOf("*.")&&(e=e.substring(2));var o=e.split("."),l=o[o.length-1];if(t.require_tld){if(o.length<2)return!1;if(!t.allow_numeric_tld&&!/^([a-z\u00A1-\u00A8\u00AA-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i.test(l))return!1;if(/\s/.test(l))return!1}if(!t.allow_numeric_tld&&/^\d+$/.test(l))return!1;return o.every(function(e){return!(e.length>63&&!t.ignore_max_length)&&(!!/^[a-z_\u00a1-\uffff0-9-]+$/i.test(e)&&(!/[\uff01-\uff5e]/.test(e)&&(!/^-|-$/.test(e)&&!(!t.allow_underscores&&/_/.test(e)))))})};var n=o(_S),r=o(SS);function o(e){return e&&e.__esModule?e:{default:e}}var a={require_tld:!0,allow_underscores:!1,allow_trailing_dot:!1,allow_numeric_tld:!1,allow_wildcard:!1,ignore_max_length:!1};e.exports=t.default,e.exports.default=t.default}(TS,TS.exports);var MS=TS.exports,IS={exports:{}};!function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,r.default)(t);var a=("object"===o(n)?n.version:arguments[1])||"";if(!a)return e(t,{version:4})||e(t,{version:6});if("4"===a.toString())return i.test(t);if("6"===a.toString())return c.test(t);return!1};var n,r=(n=_S)&&n.__esModule?n:{default:n};function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}var a="(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])",l="(".concat(a,"[.]){3}").concat(a),i=new RegExp("^".concat(l,"$")),u="(?:[0-9a-fA-F]{1,4})",c=new RegExp("^("+"(?:".concat(u,":){7}(?:").concat(u,"|:)|")+"(?:".concat(u,":){6}(?:").concat(l,"|:").concat(u,"|:)|")+"(?:".concat(u,":){5}(?::").concat(l,"|(:").concat(u,"){1,2}|:)|")+"(?:".concat(u,":){4}(?:(:").concat(u,"){0,1}:").concat(l,"|(:").concat(u,"){1,3}|:)|")+"(?:".concat(u,":){3}(?:(:").concat(u,"){0,2}:").concat(l,"|(:").concat(u,"){1,4}|:)|")+"(?:".concat(u,":){2}(?:(:").concat(u,"){0,3}:").concat(l,"|(:").concat(u,"){1,5}|:)|")+"(?:".concat(u,":){1}(?:(:").concat(u,"){0,4}:").concat(l,"|(:").concat(u,"){1,6}|:)|")+"(?::((?::".concat(u,"){0,5}:").concat(l,"|(?::").concat(u,"){1,7}|:))")+")(%[0-9a-zA-Z.]{1,})?$");e.exports=t.default,e.exports.default=t.default}(IS,IS.exports);var AS=IS.exports;!function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){if((0,n.default)(e),(t=(0,i.default)(t,c)).require_display_name||t.allow_display_name){var u=e.match(s);if(u){var g=u[1];if(e=e.replace(g,"").replace(/(^<|>$)/g,""),g.endsWith(" ")&&(g=g.slice(0,-1)),!function(e){var t=e.replace(/^"(.+)"$/,"$1");if(!t.trim())return!1;if(/[\.";<>]/.test(t)){if(t===e)return!1;if(!(t.split('"').length===t.split('\\"').length))return!1}return!0}(g))return!1}else if(t.require_display_name)return!1}if(!t.ignore_max_length&&e.length>h)return!1;var y=e.split("@"),b=y.pop(),w=b.toLowerCase();if(t.host_blacklist.length>0&&(0,r.default)(w,t.host_blacklist))return!1;if(t.host_whitelist.length>0&&!(0,r.default)(w,t.host_whitelist))return!1;var O=y.join("@");if(t.domain_specific_validation&&("gmail.com"===w||"googlemail.com"===w)){var C=(O=O.toLowerCase()).split("+")[0];if(!(0,o.default)(C.replace(/\./g,""),{min:6,max:30}))return!1;for(var x=C.split("."),P=0;P]/.test(e))return!1;if(0===e.indexOf("mailto:"))return!1;if((t=(0,i.default)(t,s)).validate_length&&e.length>t.max_allowed_length)return!1;if(!t.allow_fragments&&(0,o.default)(e,"#"))return!1;if(!t.allow_query_components&&((0,o.default)(e,"?")||(0,o.default)(e,"&")))return!1;var u,v,f,p,m,h,g,y;if(g=e.split("#"),e=g.shift(),g=e.split("?"),e=g.shift(),(g=e.split("://")).length>1){if(u=g.shift().toLowerCase(),t.require_valid_protocol&&-1===t.protocols.indexOf(u))return!1}else{if(t.require_protocol)return!1;if("//"===e.slice(0,2)){if(!t.allow_protocol_relative_urls)return!1;g[0]=e.slice(2)}}if(""===(e=g.join("://")))return!1;if(g=e.split("/"),""===(e=g.shift())&&!t.require_host)return!0;if((g=e.split("@")).length>1){if(t.disallow_auth)return!1;if(""===g[0])return!1;if((v=g.shift()).indexOf(":")>=0&&v.split(":").length>2)return!1;var b=v.split(":"),w=(P=2,function(e){if(Array.isArray(e))return e}(x=b)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a,l,i=[],u=!0,c=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=a.call(n)).done)&&(i.push(r.value),i.length!==t);u=!0);}catch(e){c=!0,o=e}finally{try{if(!u&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(c)throw o}}return i}}(x,P)||function(e,t){if(e){if("string"==typeof e)return c(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(e,t):void 0}}(x,P)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),O=w[0],C=w[1];if(""===O&&""===C)return!1}var x,P;p=g.join("@"),h=null,y=null;var S=p.match(d);S?(f="",y=S[1],h=S[2]||null):(f=(g=p.split(":")).shift(),g.length&&(h=g.join(":")));if(null!==h&&h.length>0){if(m=parseInt(h,10),!/^[0-9]+$/.test(h)||m<=0||m>65535)return!1}else if(t.require_port)return!1;if(t.host_whitelist)return(0,r.default)(f,t.host_whitelist);if(""===f&&!t.require_host)return!0;if(!((0,l.default)(f)||(0,a.default)(f,t)||y&&(0,l.default)(y,6)))return!1;if(f=f||y,t.host_blacklist&&(0,r.default)(f,t.host_blacklist))return!1;return!0};var n=u(_S),r=u(DS),o=u(zS),a=u(MS),l=u(AS),i=u(SS);function u(e){return e&&e.__esModule?e:{default:e}}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=t:hu(e)>=t},len:function(e,t){return hu(String(e))===t},number:function(e){return Uo(e)},enum:function(e,t){return t.includes(e)},idcard:function(e){return/^(\d{18,18}|\d{15,15}|\d{17,17}x)$/i.test(e)},telnumber:function(e){return/^1[3-9]\d{9}$/.test(e)},pattern:function(e,t){return t.test(e)},validator:function(e,t){return t(e)}};function YS(e,t){return $S.apply(this,arguments)}function $S(){return $S=Gp(bm.mark(function e(t,n){var r,o,a,l,i,u,c;return bm.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:r={result:!0},o=Object.keys(n),i=0;case 1:if(!(i0;return null!=r?r:o}),h=t.computed(function(){var e;return null!==(e=null==v?void 0:v.requiredMarkPosition)&&void 0!==e?e:l.value.requiredMarkPosition}),g=t.computed(function(){return r.label||e.label}),y=t.computed(function(){return!(null==v||!v.colon||!g.value)}),b=ei("form__label"),w=t.computed(function(){return Yo(e.labelAlign)?null==v?void 0:v.labelAlign:e.labelAlign}),O=t.computed(function(){return Yo(e.labelWidth)?null==v?void 0:v.labelWidth:e.labelWidth}),C=t.computed(function(){return[a.value.label,s(s(s(s(s({},"".concat(b.value,"--required"),m.value),"".concat(b.value,"--required-right"),m.value&&"right"===h.value),"".concat(b.value,"--top"),g.value&&("top"===w.value||!O.value)),"".concat(b.value,"--left"),"left"===w.value&&O.value),"".concat(b.value,"--right"),"right"===w.value&&O.value)]}),x=t.computed(function(){return"".concat(f.value,"-is-").concat(e.status||"default"," ").concat("success"===e.status?a.value.successBorder:"")}),P=function(){if(0!==Number(O.value)){var n={};return O.value&&"top"!==w.value&&(n=Uo(O.value)?{width:"".concat(O.value,"px")}:{width:O.value}),t.createVNode("div",{class:C.value,style:n},[t.createVNode("label",{for:e.for||null},[o("label")]),y.value&&l.value.colonText])}},j=function(){var e=function(e){return t.createVNode("span",{class:a.value.status},[t.createVNode(e,null,null)])},n=D.value;if(F.value===ab.SUCCESS)return e(u);if(null!=n&&n[0]){var r=n[0].type||"error";return e({error:c,warning:d,success:u}[r])}return null},k=function(){if(!1!==e.statusIcon){var n=o("statusIcon",{defaultNode:j()});if(n)return t.createVNode("span",{class:a.value.status},[n]);if(!1!==n)return(n=null==v?void 0:v.renderContent("statusIcon",{defaultNode:j(),params:e}))||void 0}},N=t.computed(function(){if(!q.value)return"";if(F.value===ab.SUCCESS)return e.successBorder?[a.value.success,a.value.successBorder].join(" "):a.value.success;if(D.value.length){var t=D.value[0].type||"error";return e.status?x.value:"error"===t?a.value.error:a.value.warning}}),_=t.computed(function(){return[a.value.controls,N.value]}),V=t.computed(function(){var e={};return O.value&&"top"!==w.value&&(e=Uo(O.value)?{marginLeft:"".concat(O.value,"px")}:{marginLeft:O.value}),e}),D=t.ref([]),E=t.ref([]),F=t.ref(ab.TO_BE_VALIDATED),T=t.ref(!1),M=t.ref(!1),I=function(){M.value=!1,D.value=[],E.value=[],F.value=ab.TO_BE_VALIDATED},A=function(){var t,n=Object.prototype.toString.call(jt(null==v?void 0:v.data,e.name));return"[object String]"===n&&(t=""),"[object Array]"===n&&(t=[]),"[object Object]"===n&&(t={}),t},B=function(){var n=Gp(bm.mark(function n(){var r,o=arguments;return bm.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:if(r=o.length>0&&void 0!==o[0]?o[0]:null==v?void 0:v.resetType,e.name){n.next=1;break}return n.abrupt("return");case 1:return"empty"===r?Ma(null==v?void 0:v.data,e.name,A()):"initial"===r&&Ma(null==v?void 0:v.data,e.name,U.value),n.next=2,t.nextTick();case 2:T.value?M.value=!0:I();case 3:case"end":return n.stop()}},n)}));return function(){return n.apply(this,arguments)}}(),L=t.computed(function(){var e;return null!==(e=null==v?void 0:v.errorMessage)&&void 0!==e?e:l.value.errorMessage}),R=t.computed(function(){var t;if(null!==(t=e.rules)&&void 0!==t&&t.length)return e.rules;if(!e.name)return[];var n="".concat(e.name).lastIndexOf(".")||-1,r="".concat(e.name).slice(n+1);return jt(null==v?void 0:v.rules,e.name)||jt(null==v?void 0:v.rules,r)||[]}),z=function(){var t=Gp(bm.mark(function t(n){var r,o;return bm.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if((o={successList:[],errorList:[],rules:[],resultList:[],allowSetValue:!1}).rules="all"===n?R.value:R.value.filter(function(e){return(e.trigger||"change")===n}),!R.value.length||null!==(r=o.rules)&&void 0!==r&&r.length){t.next=1;break}return t.abrupt("return",o);case 1:return o.allowSetValue=!0,t.next=2,ZS(K.value,o.rules);case 2:return o.resultList=t.sent,o.errorList=o.resultList.filter(function(e){return!0!==e.result}).map(function(t){return Object.keys(t).forEach(function(n){if(!t.message&&L.value[n]){var r=To(e.label)?e.label:e.name;t.message=(o=L.value[n],a={name:r,validate:t[n]},o.replace(/\${(.*?)}/g,function(e,t){var n;return null!==(n=a[t.trim()])&&void 0!==n?n:""}))}var o,a}),t}),o.successList=o.resultList.filter(function(e){return!0===e.result&&e.message&&"success"===e.type}),t.abrupt("return",o);case 3:case"end":return t.stop()}},t)}));return function(e){return t.apply(this,arguments)}}(),H=function(){var t=Gp(bm.mark(function t(n,r){var o,a,l,i,u;return bm.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return T.value=!0,Z.value=r,t.next=1,z(n);case 1:return o=t.sent,a=o.successList,l=o.errorList,i=o.rules,u=o.resultList,o.allowSetValue&&(E.value=a,D.value=l),i.length&&(F.value=l.length?ab.FAIL:ab.SUCCESS),M.value&&I(),T.value=!1,t.abrupt("return",s({},e.name,0===l.length||u));case 2:case"end":return t.stop()}},t)}));return function(e,n){return t.apply(this,arguments)}}(),W=function(){var t=Gp(bm.mark(function t(n){var r,o,a;return bm.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=1,z(n);case 1:return r=t.sent,o=r.errorList,a=r.resultList,t.abrupt("return",s({},e.name,0===o.length||a));case 2:case"end":return t.stop()}},t)}));return function(e){return t.apply(this,arguments)}}(),K=t.computed(function(){return(null==v?void 0:v.data)&&jt(null==v?void 0:v.data,e.name)}),U=t.ref(void 0),Y=t.toRefs(e).name,$=t.reactive({name:Y,resetHandler:I,resetField:B,validate:H,validateOnly:W,setValidateMessage:function(e){(e||S(e))&&(0===e.length&&(D.value=[],F.value=ab.SUCCESS),D.value=e.map(function(e){return ej(ej({},e),{},{result:!1})}),F.value=ab.FAIL)}});t.onMounted(function(){U.value=Ir(K.value),null==v||v.children.push($)}),t.onBeforeUnmount(function(){v&&(v.children=null==v?void 0:v.children.filter(function(e){return e!==$}))}),t.watch(K,Gp(bm.mark(function e(){return bm.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,H("change");case 1:case"end":return e.stop()}},e)})),{deep:!0}),t.watch(function(){return[e.name,JSON.stringify(e.rules)].join(",")},function(){H("change")});var Z=t.ref(void 0),q=t.computed(function(){return Lo(Z.value)?Z.value:Lo(e.showErrorMessage)?e.showErrorMessage:null==v?void 0:v.showErrorMessage}),X=t.computed(function(){return[a.value.formItem,XS(p.value,e.name),s(s({},a.value.formItemWithHelp,G.value),a.value.formItemWithExtra,J.value)]}),G=t.computed(function(){var e=o("help");return e?t.createVNode("div",{class:a.value.help},[e]):null}),J=t.computed(function(){var e,n=function(e){return t.createVNode("div",{class:a.value.extra,title:e},[e])},r=D.value;return q.value&&null!=r&&null!==(e=r[0])&&void 0!==e&&e.message?n(r[0].message):E.value.length?n(E.value[0].message):null}),Q=t.computed(function(){var e=o("tips");if(!e)return null;var n=["".concat(p.value,"-tips"),"".concat(f.value,"-tips"),x.value];return t.createVNode("div",{class:n},[e])}),ee=function(){var e=Gp(bm.mark(function e(){return bm.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,H("blur");case 1:case"end":return e.stop()}},e)}));return function(){return e.apply(this,arguments)}}();return t.provide(ib,{handleBlur:ee}),function(){return t.createVNode("div",{class:X.value},[P(),t.createVNode("div",{class:_.value,style:V.value},[t.createVNode("div",{class:a.value.controlsContent},[o("default"),k()]),G.value,Q.value,J.value])])}}}),nj=Nl(GS),rj=Nl(tj),oj={allowUncheck:Boolean,checked:{type:Boolean,default:void 0},modelValue:{type:Boolean,default:void 0},defaultChecked:Boolean,default:{type:[String,Function]},disabled:{type:Boolean,default:void 0},label:{type:[String,Function]},name:{type:String,default:""},readonly:{type:Boolean,default:void 0},value:{type:[String,Number,Boolean],default:void 0},onChange:Function,onClick:Function},aj=Symbol("RadioGroupProvide"),lj=Symbol("RadioButtonProvide"),ij=t.defineComponent({name:"TRadio",inheritAttrs:!1,props:oj,setup:function(e,n){var r=n.attrs,o=t.ref(),a=t.toRefs(e),l=Ya(Ui(a.checked,a.modelValue,e.defaultChecked,e.onChange,"checked"),2),u=l[0],c=l[1],d=t.computed(function(){return v?e.value===v.value:u.value}),v=t.inject(aj,void 0),f=t.computed(function(){return Boolean(e.allowUncheck||(null==v?void 0:v.allowUncheck))}),p=function(e){e.stopPropagation()},m=function(t){var n;if(!w.value&&!O.value&&(null===(n=e.onClick)||void 0===n||n.call(e,{e:t}),!d.value||f.value))if(v){var r=d.value&&f.value?void 0:e.value;v.setValue(r,{e:t,name:v.name})}else{var o=!f.value||!d.value;c(o,{e:t})}},h=t.computed(function(){return fu({focus:r.onFocus,blur:r.onBlur,keydown:r.onKeydown,keyup:r.onKeyup,keypresss:r.onKeypresss})}),g=t.computed(function(){var e=[].concat(i(Object.keys(h.value)),["input","change"]).map(function(e){return"on".concat(e[0].toUpperCase()).concat(e.slice(1))});return la(r,e)}),y=t.computed(function(){return null==v?void 0:v.disabled}),b=t.computed(function(){return null==v?void 0:v.readonly}),w=oi({afterDisabled:y}),O=Ri({afterReadonly:b}),C=t.computed(function(){return{name:v?v.name:e.name,checked:d.value,disabled:w.value,readonly:O.value,value:e.value}}),x=ti().STATUS,P=t.inject(lj,void 0),S=ei("radio-button"),j=ei("radio"),k=t.computed(function(){return P?S.value:j.value}),N=t.computed(function(){return["".concat(k.value),s(s({},x.value.checked,C.value.checked),x.value.disabled,C.value.disabled)]}),_=Hl();return function(){return t.createVNode("label",t.mergeProps({ref:o,class:N.value},g.value,{tabindex:w.value?void 0:"0",onClick:m}),[t.createVNode("input",t.mergeProps({type:"radio",class:"".concat(k.value,"__former")},h.value,C.value,{onClick:p,tabindex:"-1","data-value":To(e.value)?"'".concat(e.value,"'"):e.value,"data-allow-uncheck":f.value||void 0}),null),t.createVNode("span",{class:"".concat(k.value,"__input")},null),t.createVNode("span",{class:"".concat(k.value,"__label")},[_("default","label")])])}}}),uj={allowUncheck:Boolean,disabled:{type:Boolean,default:void 0},name:{type:String,default:""},options:{type:Array},readonly:{type:Boolean,default:void 0},size:{type:String,default:"medium",validator:function(e){return!e||["small","medium","large"].includes(e)}},theme:{type:String,default:"radio",validator:function(e){return!e||["radio","button"].includes(e)}},value:{type:[String,Number,Boolean],default:void 0},modelValue:{type:[String,Number,Boolean],default:void 0},defaultValue:{type:[String,Number,Boolean]},variant:{type:String,default:"outline",validator:function(e){return!e||["outline","primary-filled","default-filled"].includes(e)}},onChange:Function};function cj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function sj(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{},l=a.window,i=void 0===l?fj:l,u=du(a,vj),c=i&&"MutationObserver"in i,s=function(){r&&(r.disconnect(),r=void 0)},d=t.watch(function(){return n=e,o=t.unref(n),null!==(r=null==o?void 0:o.$el)&&void 0!==r?r:o;var n,r,o},function(e){s(),c&&i&&e&&(r=new MutationObserver(n)).observe(e,u)},{immediate:!0}),v=function(){s(),d()};return o=v,t.getCurrentScope()&&t.onScopeDispose(o),{isSupported:c,stop:v}}function mj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function hj(e){for(var t=1;t0&&void 0!==arguments[0]&&arguments[0];if("outline"!==e.variant){var n=l.value.querySelector(p.value),r=t?"none":"all";if(n){var o=n.offsetWidth,a=n.offsetHeight,i=n.offsetLeft,u=n.offsetTop;o?m.value={"transition-property":r,width:"".concat(o,"px"),height:"".concat(a,"px"),left:"".concat(i,"px"),top:"".concat(u,"px")}:function(){var e=document.createElement("div");e.setAttribute("style","position: absolute; visibility: hidden;"),e.appendChild(l.value.cloneNode(!0)),document.body.appendChild(e);var t=e.querySelector(p.value),n=t.offsetWidth,r=t.offsetHeight,o=t.offsetLeft,a=t.offsetTop;m.value=hj(hj({},m.value),{},{width:"".concat(n,"px"),height:"".concat(r,"px"),left:"".concat(o,"px"),top:"".concat(a,"px")}),document.body.removeChild(e)}()}else m.value={"transition-property":r,width:"0px",height:"9px",left:"0px",top:"0px"}}};t.watch(o,Gp(bm.mark(function e(){return bm.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,t.nextTick();case 1:h();case 2:case"end":return e.stop()}},e)}))),t.onMounted(function(){h(!0),zi(l,Aa(Gp(bm.mark(function e(){return bm.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,t.nextTick();case 1:h();case 2:case"end":return e.stop()}},e)})),300));var e=l.value.querySelector("".concat(p.value," .").concat(i.value,"__label"));e&&(f=pj(e,function(e){e.forEach(function(e){"characterData"===e.type&&h()})},{attributes:!0,childList:!0,characterData:!0,subtree:!0}))}),t.onUnmounted(function(){var e;null===(e=f)||void 0===e||e.stop()});var g=t.toRefs(e),y=g.name,b=g.disabled,w=g.readonly;t.provide(aj,t.reactive({name:y,disabled:b,readonly:w,value:o,allowUncheck:e.allowUncheck,setValue:v}));var O=ei("radio-group"),C=zl(),x=function(){if(e.variant.includes("filled")&&!Yo(o.value))return t.createVNode("div",{style:m.value,class:"".concat(O.value,"__bg-block")},null)},P=t.computed(function(){return["".concat(O.value),d.value[e.size],s(s(s({},"".concat(O.value,"__outline"),"outline"===e.variant),"".concat(O.value,"--filled"),e.variant.includes("filled")),"".concat(O.value,"--primary-filled"),"primary-filled"===e.variant)]});return function(){return t.createVNode("div",{ref:l,class:P.value},[C("default")||(null===(n=e.options)||void 0===n?void 0:n.map(function(n){var r=n;(Uo(n)||To(n))&&(r={value:n,label:n.toString()});var a="button"===e.theme?dj:ij;return t.createVNode(a,{key:"radio-group-options-".concat(r.value,"-").concat(Math.random()),name:e.name,checked:o.value===r.value,disabled:"disabled"in r?r.disabled:e.disabled,value:r.value},{default:function(){return[H(r.label)?r.label(t.h):r.label]}})})),x()]);var n}}}),yj=Nl(ij),bj=Nl(gj),wj=Nl(dj),Oj={disabled:{type:Boolean,default:void 0},inputNumberProps:{type:[Boolean,Object],default:!1},label:{type:[String,Boolean,Function],default:!0},layout:{type:String,default:"horizontal",validator:function(e){return!e||["vertical","horizontal"].includes(e)}},marks:{type:[Object,Array]},max:{type:Number,default:100},min:{type:Number,default:0},range:Boolean,showStep:Boolean,step:{type:Number,default:1},tooltipProps:{type:Object},value:{type:[Number,Array],default:void 0},modelValue:{type:[Number,Array],default:void 0},defaultValue:{type:[Number,Array],default:0},onChange:Function,onChangeEnd:Function},Cj=function(e,t){return t?{top:"calc(".concat(100-e,"% - 1px)")}:{left:"".concat(e,"%")}},xj=function(e,t){return"first"===t?e instanceof Array?e[0]:e:e instanceof Array?e[1]:0};function Pj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Sj(e){for(var t=1;t100?r=100:r<0&&(r=0);var o=100*g.value/m.value,a=Math.round(r/o)*o*m.value*.01;a+=d.min,a=Number(parseFloat("".concat(a)).toFixed(d.precision)),n.emit("input",a),t.nextTick(function(){var e,t;l.value&&(null===(e=(t=l.value).updatePopper)||void 0===e||e.call(t))})}},w=function(){v.value.focus(),u(!0)},O=function(){p.dragging||u(!1)},C=function(t){var n=t;if(p.dragging){f.value=!0,p.isClick=!1,null!=d&&d.resetSize&&H(null==d?void 0:d.resetSize)&&d.resetSize();var r=0,o=d.sliderSize,a=n.type,l=n.clientY,i=n.clientX;if("touchmove"===a){var u=n.touches,c=[u[0].clientY,u[0].clientX];l=c[0],i=c[1]}r=(r=e.vertical?p.startY-l:i-p.startX)/o*100,p.newPos=p.startPos+r,b(p.newPos)}},x=function(){p.dragging&&(setTimeout(function(){p.dragging=!1,u(!1),p.isClick||b(p.newPos),f.value&&n.emit("mouseup"),f.value=!1},0),window.removeEventListener("mousemove",C),window.removeEventListener("touchmove",C),window.removeEventListener("mouseup",x),window.removeEventListener("touchend",x),window.removeEventListener("contextmenu",x))};function P(t){d.disabled||(t.preventDefault(),function(t){p.dragging=!0,p.isClick=!0;var n=t.type,r=t.clientY,o=t.clientX;if("touchstart"===n){var a=t.touches,l=[a[0].clientY,a[0].clientX];r=l[0],o=l[1]}e.vertical?p.startY=r:p.startX=o,p.startPos=parseFloat(h.value),p.newPos=p.startPos}(t),window.addEventListener("mousemove",C),window.addEventListener("mouseup",x),window.addEventListener("touchmove",C),window.addEventListener("touchend",x),window.addEventListener("contextmenu",x))}var S=function(e){if(!d.disabled){var t=g.value/m.value*100;"sub"===e&&(t=-t),p.newPos=parseFloat(h.value)+t,b(p.newPos)}},j=function(e){var t=e.code;e.preventDefault(),"ArrowDown"!==t&&"ArrowLeft"!==t||S("sub"),"ArrowUp"!==t&&"ArrowRight"!==t||S("add")};return n.expose({setPosition:b}),function(){return t.createVNode("div",{ref:v,class:"".concat(r.value,"-wrapper"),style:y.value,tabindex:"0","show-tooltip":c.value,onMouseenter:w,onMouseleave:O,onMousedown:P,onTouchstart:P,onFocus:w,onBlur:O,onKeydown:j},[t.createVNode(Kg,t.mergeProps({ref:l,hideEmptyPopup:!0,disabled:!c.value},i.value),{default:function(){return[t.createVNode("div",{class:[r.value,s({},"".concat(r.value,"--dragging"),p.dragging)]},null)]}})])}}}),Vj=t.defineComponent({name:"TSliderMark",props:{mark:{type:[Object,Array,String,Number]},point:{type:Number},onClickMarkPoint:{type:Function,default:function(){}}},setup:function(e){var n=ei("slider__mark"),r=function(t){var n;t.stopPropagation(),null==e||null===(n=e.onClickMarkPoint)||void 0===n||n.call(e,e.point)};return function(){return t.createVNode("div",{class:"".concat(n.value,"-text"),onClick:r},[e.mark])}}});function Dj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Ej(e){for(var t=1;te.max)return[];if(0===e.step)return console.warn("[Element Warn][Slider]step should not be 0."),[];for(var t=j.value/e.step,n=100*e.step/j.value,r=[],o=1;o100*(N.value-e.max)/j.value}):r.filter(function(t){return t>100*(m.value-e.min)/j.value})}),V=t.computed(function(){var t=[e.min,e.max,e.step].map(function(e){var t="".concat(e).split(".");return t[1]?t[1].length:0});return Math.max.apply(null,t)}),D=function(t){var n=[e.min,e.max],r=n[0],o=n[1];if(!(r>o)){if(e.range&&S(t)){var a=[Math.min.apply(Math,i(t)),Math.max.apply(Math,i(t))],l=a[0],u=a[1];l>o&&(l=m.value),lo&&(u=o);var c=[l,u];return m.value=c[0],h.value=c[1],[l,u]}var s=t;return so&&(s=o),s}console.warn("[Slider] max should be greater than min.")},E=function(t){var n=t;void 0===n&&(n=e.range?[m.value,h.value]:m.value);var r=D(n);c(r)},F=function(){v.value&&(y.value=v.value["client".concat(b.value?"Height":"Width")])},T=t.ref(!1),M=function(){var t;e.range?(S(u.value)?(m.value=Math.max(e.min||0,u.value[0]),h.value=Math.min(e.max||100,u.value[1])):(m.value=e.min||0,h.value=e.max||100),t="".concat(m.value,"-").concat(h.value)):(Uo(u.value)?m.value=Math.min(e.max,Math.max(e.min,u.value)):m.value=e.min,t=String(m.value)),d.value&&d.value.setAttribute("aria-valuetext",t),F(),window.addEventListener("resize",F)},I=function(t){var n,r=t*j.value/100;(r=e.min+r,e.range||!f.value)?("button1"===(n=Math.abs(k.value-r)h.value?"button1":"button2")&&f.value&&f.value.setPosition(t),"button2"===n&&p.value&&p.value.setPosition(t)):f.value.setPosition(t)},A=function(){var t=e.range?[m.value,h.value]:m.value;return D(t)},B=function(t){var r;if(!n.value&&!g.value&&v.value){F();var o=0;if(b.value){o=(v.value.getBoundingClientRect().bottom-t.clientY)/y.value*100,I(o)}else{var a=v.value.getBoundingClientRect().left;o=(t.clientX-a)/y.value*100,I(o)}var l=A();null===(r=e.onChangeEnd)||void 0===r||r.call(e,l)}},L=function(t){var r;if(!n.value&&!g.value){F();var o=Number(t/j.value*100);I(o),E(t);var a=A();null===(r=e.onChangeEnd)||void 0===r||r.call(e,a)}};t.watch(function(){return u.value},function(t){if(!0!==g.value)if(S(t)&&e.range){var n=Ya(t,2);m.value=n[0],h.value=n[1]}else m.value=t}),t.watch([m,h,g],function(t,n){t[0]!==n[0]&&(e.range?E([k.value,N.value]):E(m.value)),t[1]!==n[1]&&e.range&&E([k.value,N.value]),t[2]!==n[2]&&!1===t[2]&&M()}),t.onMounted(function(){M(),T.value=!0}),t.onBeforeUnmount(function(){window.removeEventListener("resize",F)});var R,z,H,W=t.computed(function(){return{max:e.max,min:e.min,marks:e.marks,vertical:b.value,prefixName:r.value}}),K=(z=(R=W).value.prefixName,H=t.computed(function(){var e=R.value;if(!e.marks)return[];var t=[];if(S(e.marks)){var n=Ir(e.marks).sort(function(e,t){return e-t}),r=Math.max.apply(Math,i(n).concat([e.max])),o=Math.min.apply(Math,i(n).concat([e.min]));o= props min"),r>e.max&&mi("TSlider","marks max value should <= props max"),n.forEach(function(e){t.push({point:e,position:(e-o)/(r-o)*100,mark:e})})}else Object.keys(e.marks).map(parseFloat).sort(function(e,t){return e-t}).filter(function(t){return t<=e.max&&t>=e.min}).forEach(function(n){var r={point:n,position:100*(n-e.min)/(e.max-e.min),mark:e.marks[n]};t.push(r)});return t}),function(e){return H.value.length?t.createVNode("div",null,[t.createVNode("div",{class:"".concat(z,"__stops")},[H.value.map(function(e,n){return 0===e.position||100===e.position?null:t.createVNode("div",{class:"".concat(z,"__stop ").concat(z,"__mark-stop"),style:Cj(e.position,R.value.vertical),key:n},null)})]),t.createVNode("div",{class:"".concat(z,"__mark")},[H.value.map(function(n,r){return t.createVNode(Vj,{mark:n.mark,point:n.point,key:r,style:Cj(n.position,R.value.vertical),onClickMarkPoint:e},null)})])]):null}),U=function(e){var n=e.value.prefixName,r=t.computed(function(){var t,n={format:void 0,placeholder:"",theme:"column",decimalPlaces:(null===(t=e.value.step.toString().split(".")[1])||void 0===t?void 0:t.length)||0},r=e.value;if(!Lo(r.inputNumberProps)){var o,a=null===(o=r.inputNumberProps)||void 0===o?void 0:o.theme;n=Ej(Ej({},n),la(r.inputNumberProps,"onChange")),["column","row","normal"].includes(a)&&(n.theme=a)}return n}),o=t.computed(function(){return["".concat(n,"__input"),{"is-vertical":e.value.vertical}]});return function(n,a){return t.createVNode(Ub,t.mergeProps(r.value,{class:o.value,value:n,step:e.value.step,onChange:function(t,n){var r,o;void 0===t||isNaN(t)||a(t),null===(r=e.value)||void 0===r||null===(r=r.inputNumberProps)||void 0===r||null===(o=r.onChange)||void 0===o||o.call(r,t,n)},disabled:e.value.disabled,min:e.value.min,max:e.value.max}),null)}}(t.computed(function(){return{max:e.max,min:e.min,inputNumberProps:e.inputNumberProps,step:e.step,prefixName:r.value,vertical:b.value,disabled:n.value}})),Y=t.toRefs(e),$=Y.min,Z=Y.max,q=Y.step;return t.provide(Nj,t.reactive({min:$,max:Z,step:q,dragging:g,toggleDragging:function(e){g.value=e},precision:V,disabled:n,resetSize:F,sliderSize:y})),function(){return t.createVNode("div",{class:w.value,ref:d},[t.createVNode("div",{class:O.value,role:"slider","aria-valuemin":e.min,"aria-valuemax":e.max,"aria-orientation":e.layout,"aria-disabled":n.value,"tooltip-props":e.tooltipProps},[t.createVNode("div",{class:C.value,style:x.value,onClick:B,ref:v},[t.createVNode("div",{class:"".concat(r.value,"__track"),style:P.value},null),t.createVNode(_j,{vertical:b.value,value:m.value,ref:f,disabled:n.value,range:e.range,position:"start","tooltip-props":e.tooltipProps,label:e.label,onInput:function(e){m.value=e},onMouseup:function(){var t,n=A();null===(t=e.onChangeEnd)||void 0===t||t.call(e,n)}},null),e.range&&t.createVNode(_j,{vertical:b.value,value:h.value,ref:p,disabled:n.value,label:e.label,range:e.range,position:"end","tooltip-props":e.tooltipProps,onInput:function(e){h.value=e},onMouseup:function(){var t,n=A();null===(t=e.onChangeEnd)||void 0===t||t.call(e,n)}},null),e.showStep&&t.createVNode("div",{class:"".concat(r.value,"__stops")},[_.value.map(function(e,n){return 0===e.position||100===e.position?null:t.createVNode("div",{class:"".concat(r.value,"__stop"),key:n,style:Cj(e,b.value)},null)})]),K(L)])]),T.value&&e.inputNumberProps&&(o=D(m.value),a=D(h.value),t.createVNode("div",{class:["".concat(r.value,"__input-container"),{"is-vertical":b.value}]},[U(o,function(e){m.value=D(e)}),e.range&&t.createVNode("div",{class:"".concat(r.value,"__center-line")},null),e.range&&U(a,function(e){h.value=D(e)})]))]);var o,a}}}),Mj=Nl(Tj),Ij=Nl(_j),Aj={beforeChange:{type:Function},customValue:{type:Array},disabled:{type:Boolean,default:void 0},label:{type:[Array,Function],default:function(){return[]}},loading:Boolean,size:{type:String,default:"medium",validator:function(e){return!e||["small","medium","large"].includes(e)}},value:{type:[String,Number,Boolean],default:void 0},modelValue:{type:[String,Number,Boolean],default:void 0},defaultValue:{type:[String,Number,Boolean]},onChange:Function},Bj=t.defineComponent({name:"TSwitch",props:Aj,setup:function(e,n){var r=n.slots,o=oi(),a=ei("switch"),l=ti(),i=l.STATUS,u=l.SIZE,c=t.toRefs(e),d=Ya(Ui(c.value,c.modelValue,e.defaultValue,e.onChange),2),v=d[0],f=d[1],p=t.computed(function(){return!(e.customValue&&e.customValue.length>0)||e.customValue[0]}),m=t.computed(function(){return!!(e.customValue&&e.customValue.length>1)&&e.customValue[1]});function h(e){var t=v.value===p.value?m.value:p.value;f(t,{e:e})}function g(t){o.value||e.loading||(e.beforeChange?Promise.resolve(e.beforeChange()).then(function(e){e&&h(t)}).catch(function(e){throw new Error("Switch: some error occurred: ".concat(e))}):h(t))}var y=t.computed(function(){return["".concat(a.value),u.value[e.size],s(s(s({},i.value.disabled,o.value),i.value.loading,e.loading),i.value.checked,v.value===p.value||e.modelValue===p.value)]}),b=t.computed(function(){return["".concat(a.value,"__handle"),s(s({},i.value.disabled,o.value),i.value.loading,e.loading)]}),w=t.computed(function(){return["".concat(a.value,"__content"),u.value[e.size],s({},i.value.disabled,o.value)]});t.watch(v,function(t){if(e.customValue&&e.customValue.length&&!e.customValue.includes(t))throw new Error("value is ".concat(t," not in ").concat(JSON.stringify(e.customValue)))},{immediate:!0});var O=t.computed(function(){if(H(e.label))return e.label(t.h,{value:v.value});if(To(e.label))return e.label;if(S(e.label)&&e.label.length){var n=v.value===p.value?e.label[0]:e.label[1];if(!n)return;if(To(n))return n;if(H(n))return n(t.h)}return r.label?r.label({value:v.value}):null});return function(){var n,r;return e.loading?r=t.createVNode(Du,{size:"small"},null):O.value&&(n=O.value),t.createVNode("div",{class:y.value,onClick:g},[t.createVNode("span",{class:b.value},[r]),t.createVNode("div",{class:w.value},[n])])}}}),Lj=Nl(Bj),Rj={allowInputOverMax:Boolean,autofocus:Boolean,autosize:{type:[Boolean,Object],default:!1},disabled:{type:Boolean,default:void 0},maxcharacter:{type:Number},maxlength:{type:[String,Number]},name:{type:String,default:""},placeholder:{type:String,default:void 0},readonly:{type:Boolean,default:void 0},status:{type:String,default:"default",validator:function(e){return!e||["default","success","warning","error"].includes(e)}},tips:{type:[String,Function]},value:{type:[String,Number],default:void 0},modelValue:{type:[String,Number],default:void 0},defaultValue:{type:[String,Number]},onBlur:Function,onChange:Function,onFocus:Function,onKeydown:Function,onKeypress:Function,onKeyup:Function,onValidate:Function};function zj(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;Fj||(Fj=document.createElement("textarea"),document.body.appendChild(Fj));var o=function(e){if("undefined"==typeof window)return{paddingSize:0,borderSize:0,boxSizing:0,sizingStyle:""};var t=window.getComputedStyle(e),n=t.getPropertyValue("box-sizing")||t.getPropertyValue("-moz-box-sizing")||t.getPropertyValue("-webkit-box-sizing");return{paddingSize:parseFloat(t.getPropertyValue("padding-bottom"))+parseFloat(t.getPropertyValue("padding-top")),borderSize:parseFloat(t.getPropertyValue("border-bottom-width"))+parseFloat(t.getPropertyValue("border-top-width")),boxSizing:n,sizingStyle:yu.map(function(e){return"".concat(e,":").concat(t.getPropertyValue(e))}).join(";")}}(e),a=o.paddingSize,l=o.borderSize,i=o.boxSizing,u=o.sizingStyle;Fj.setAttribute("style","".concat(u,";").concat("\n min-height:0 !important;\n max-height:none !important;\n height:0 !important;\n visibility:hidden !important;\n overflow:hidden !important;\n position:absolute !important;\n z-index:-1000 !important;\n top:0 !important;\n right:0 !important\n")),Fj.value=e.value||e.placeholder||"";var c=Fj.scrollHeight,s={},d="border-box"===i;d?c+=l:"content-box"===i&&(c-=a),Fj.value="";var v=Fj.scrollHeight-a;null===(t=Fj)||void 0===t||null===(t=t.parentNode)||void 0===t||t.removeChild(Fj),Fj=null;var f=function(e){var t=v*e;return d&&(t=t+a+l),t};if(!$o(n)){var p=f(n);c=Math.max(p,c),s.minHeight="".concat(p,"px")}return $o(r)||(c=Math.min(f(r),c)),s.height="".concat(c,"px"),s}var Hj=t.defineComponent({name:"TTextarea",inheritAttrs:!1,props:Rj,setup:function(e,n){var r=n.attrs,o=n.expose,a=ei(),l=ei("textarea"),i=t.computed(function(){return"".concat(l.value,"__tips")}),c=t.computed(function(){return"".concat(l.value,"__limit")}),d=t.toRefs(e),v=Ya(Ui(d.value,d.modelValue,e.defaultValue,e.onChange),2),f=v[0],p=v[1],m=oi(),h=Ri(),g=t.ref({}),y=t.ref(),b=t.ref(!1),w=t.ref(!1),O=function(){var n;if(!0===e.autosize)t.nextTick(function(){g.value=zj(y.value)});else if(e.autosize&&"object"===u(e.autosize)){var o=e.autosize,a=o.minRows,l=o.maxRows;t.nextTick(function(){g.value=zj(y.value,a,l)})}else r.rows?g.value={height:"auto",minHeight:"auto"}:r.style&&null!==(n=y.value)&&void 0!==n&&null!==(n=n.style)&&void 0!==n&&n.height&&(g.value={height:y.value.style.height})},C=function(n){var r=n.target.value;if(e.maxcharacter&&e.maxcharacter>=0){var o=hu(r,e.maxcharacter);r="object"===u(o)&&o.characters}!w.value&&p(r,{e:n}),t.nextTick(function(){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=y.value,n=String(e);t&&t.value!==n&&(t.value=n,f.value=n)}(r)}),O()},x=function(e){C(e)},P=function(){w.value=!0},S=function(e){w.value=!1,C(e)},j=function(t,n){var r;if(!m.value){var o="on".concat(t[0].toUpperCase()).concat(t.slice(1));null===(r=e[o])||void 0===r||r.call(e,f.value,{e:n})}},k=function(e){j("keydown",e)},N=function(e){j("keyup",e)},_=function(e){j("keypress",e)},V=function(t){var n;O(),m.value||(b.value=!0,null===(n=e.onFocus)||void 0===n||n.call(e,f.value,{e:t}))},D=t.inject(ib,void 0),F=function(t){var n;t.target&&(O(),b.value=!1,null===(n=e.onBlur)||void 0===n||n.call(e,f.value,{e:t}),null==D||D.handleBlur())},T=t.computed(function(){return[l.value,s(s({},"".concat(a.value,"-is-disabled"),m.value),"".concat(a.value,"-is-readonly"),h.value)]}),M=t.computed(function(){return fu({autofocus:e.autofocus,disabled:m.value,readonly:h.value,placeholder:e.placeholder,maxlength:!e.allowInputOverMax&&e.maxlength||void 0,name:e.name||void 0})}),I=t.computed(function(){var e=hu(String(f.value||""));return"object"===u(e)?e.length:e}),A=ub(t.computed(function(){return{value:[void 0,null].includes(f.value)?void 0:String(f.value),status:e.status,maxlength:Number(e.maxlength),maxcharacter:e.maxcharacter,allowInputOverMax:e.allowInputOverMax,onValidate:e.onValidate}})).tStatus;t.watch(function(){return f.value},function(){return O()}),t.watch(y,function(t){t&&(O(),e.autofocus&&t.focus())}),t.watch(g,function(e){var t=r.style;E(t)?Hi(y.value,ta(t,e)):Hi(y.value,e)}),t.watch(f,function(){t.nextTick(function(){return O()})}),t.watch(function(){return e.autosize},O,{deep:!0}),o({focus:function(){var e;return null===(e=y.value)||void 0===e?void 0:e.focus()},blur:function(){var e;return null===(e=y.value)||void 0===e?void 0:e.blur()}}),t.onMounted(function(){O()});var B=Rl();return function(){var n,o=fu({onFocus:V,onBlur:F,onKeydown:k,onKeyup:N,onKeypress:_}),d=ti().STATUS,v=t.computed(function(){return["".concat(l.value,"__inner"),s(s(s(s({},"".concat(a.value,"-is-").concat(A.value),A.value),d.value.disabled,m.value),d.value.focused,b.value),"".concat(a.value,"-resize-none"),"object"===u(e.autosize))]}),p=B("tips"),h=p&&t.createVNode("div",{class:"".concat(i.value," ").concat(l.value,"__tips--").concat(e.status||"normal")},[p]),g=e.maxcharacter&&t.createVNode("span",{class:c.value},["".concat(I.value,"/").concat(e.maxcharacter)])||!e.maxcharacter&&e.maxlength&&t.createVNode("span",{class:c.value},["".concat(f.value?null===(n=String(f.value))||void 0===n?void 0:n.length:0,"/").concat(e.maxlength)]);return t.createVNode("div",t.mergeProps({class:T.value},la(r,["style"])),[t.createVNode("textarea",t.mergeProps({onInput:x,onCompositionstart:P,onCompositionend:S,ref:y,value:f.value,class:v.value},o,M.value),null),h||g?t.createVNode("div",{class:["".concat(l.value,"__info_wrapper"),s({},"".concat(l.value,"__info_wrapper_align"),!h)]},[h,g]):null])}}}),Wj=Nl(Hj);function Kj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}var Uj="source",Yj="target";function $j(e){return S(e)?{source:e[0],target:e[1]}:{source:e,target:e}}function Zj(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.isTreeMode,o=void 0!==r&&r,a=n.include,l=void 0===a||a,i=n.remainValue,u=void 0===i?[]:i;if(o){var c=[];if(e)for(var s=0;s0){var f=Zj(d.children,t,{isTreeMode:o,include:l});c=c.concat(f)}else(l&&v||!l&&!v)&&c.push(d.value)}return c}return e.filter(function(e){if(!e)return!1;var n=t.includes(e.value);return(l&&n||!l&&!n)&&(!e.disabled||u.includes(e.value))}).map(function(e){return e.value})}function qj(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=e.map(function(e,r){var o,a=(null==t?void 0:t.label)||"label",l=(null==t?void 0:t.value)||"value",i=(null==t?void 0:t.disabled)||"disabled";if(Zo(e[a]))throw new Error("".concat(a," is not in DataOption ").concat(JSON.stringify(e)));if(Zo(e[l]))throw new Error("".concat(l," is not in DataOption ").concat(JSON.stringify(e)));var u={label:e[a],value:e[l],key:"key__value_".concat(e[l],"_index_").concat(r),disabled:null!==(o=e[i])&&void 0!==o&&o,data:e};return n&&e.children&&(u.children=qj(e.children,t,!0)),u});return r}function Xj(e,t,n){var r;return e?t.includes(e.value)?n:null!==(r=e.children)&&void 0!==r&&r.length?e.children.some(function(e){return Xj(e,t,n)}):!n:!n}function Gj(e,t,n,r){e.forEach(function(e){var o;!function(e,t,n){return!!t.includes(e.value)&&n}(e,n,r)?Xj(e,n,r)&&(o=function(e){for(var t=1;t2&&void 0!==arguments[2])||arguments[2];if(!(arguments.length>3&&void 0!==arguments[3]&&arguments[3]))return n?null==t?void 0:t.map(function(t){return e.find(function(e){return e.value===t})}).filter(function(e){return!!e}):e.filter(function(e){return!t.includes(e.value)});var r=[];return Gj(e,r,t,n),r}function Qj(e){var t=0;return e.forEach(function(e){e.children&&e.children.length>0?t+=Qj(e.children):t+=1}),t}var ek=t.defineComponent({name:"TTransferSearch",props:{value:{type:String,default:""},search:{type:[Boolean,Object],default:!1},placeholder:{type:String,default:""},onChange:Function},setup:function(e){var n=ei(),r=si({SearchIcon:uf}).SearchIcon,o=function(t,n){var r,o=n.e,a=n.trigger;null===(r=e.onChange)||void 0===r||r.call(e,{value:t,e:o,trigger:a})},a="object"===u(e.search)?e.search:{clearable:!0};return function(){return t.createVNode("div",{class:"".concat(n.value,"-transfer__search-wrapper")},[t.createVNode(yb,t.mergeProps(a,{defaultValue:e.value,onChange:o,placeholder:e.placeholder}),{default:function(){return[t.createVNode(r,{slot:"suffix-icon"},null)]}})])}}});function tk(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function nk(e){for(var t=1;t-1})}),m=t.computed(function(){return p.value&&p.value.length||0}),h=t.computed(function(){var t=p.value;if(!e.pagination)return t;if(0===f.value)return t;var n=(v.value-1)*f.value,r=v.value*f.value;return t=t.slice(n,r)}),g=t.computed(function(){return"object"===u(e.pagination)?nk(nk(nk({},{totalContent:!1,pageSizeOptions:[]}),e.pagination),{},{size:"small",theme:"simple",current:v.value,total:m.value,pageSize:f.value}):{}}),y=function(e,n,r){var o=t.ref(null),a=t.ref(null),l=t.ref(null);return{onDragStart:function(e){var t=Number(e.target.dataset.index);o.value=t},onDragEnd:function(){o.value=null,a.value=null,l.value=""},onDrop:function(t){t.preventDefault();var u=o.value,c=a.value;if(o.value=null,a.value=null,l.value="",u!==c){var s=i(e.value),d=n.value[u].value,v=n.value[c].value,f=s.indexOf(d),p=s.indexOf(v);s.splice(f,1),"bottom"===l.value&&(p+=1),s.splice(p,0,d),null==r||r(s,[d,v])}},onDragOver:function(e){if(e.preventDefault(),e.currentTarget){var t=e.currentTarget,n=Number(t.dataset.index),r=t.offsetHeight,i=e.clientY-t.getBoundingClientRect().top,u=.3*r;if(a.value=n,a.value===o.value)return void(l.value="");l.value=ir-u?"bottom":"center"}},onDragLeave:function(){l.value="",a.value=null}}}(r,h,e.onDataChange),b=y.onDragStart,w=y.onDragEnd,O=y.onDrop,C=y.onDragOver,x=y.onDragLeave,P=t.computed(function(){var t=Zj(e.dataSource,[],{isTreeMode:e.isTreeMode,include:!1});return e.checkedValue.length>0&&(e.isTreeMode?t.every(function(t){return e.checkedValue.includes(t)}):(e.search?p.value:e.dataSource).every(function(t){return t.disabled||e.checkedValue.includes(t.value)}))}),j=t.computed(function(){return!P.value&&e.checkedValue.length>0}),k=t.computed(function(){return Qj(e.dataSource)});t.watch(k,function(e){if(e<=(v.value-1)*f.value){var t=Math.ceil(e/f.value);s.value=t}});var N=function(e,t){var n,r;return n=Ir(e),r=function(e){return!!e.label.toLowerCase().includes(t.toLowerCase())||!!(e.children&&e.children.length>0&&(e.children=N(e.children,t),e.children.length>0))},(S(n)?Zn:_o)(n,ao(r))},_=function(t){var n;null===(n=e.onPageChange)||void 0===n||n.call(e,t),s.value=t.current,d.value=t.pageSize},V=function(t){var n;null===(n=e.onCheckedChange)||void 0===n||n.call(e,t)},D=function(t){if(t){var n=Zj(e.search?p.value:e.dataSource,[],{isTreeMode:e.isTreeMode,include:!1});V(n)}else V([])},E=function(t){var n;null===(n=e.onScroll)||void 0===n||n.call(e,t)},F=function(t){var n,r={query:t.value,type:e.listType,e:t.e,trigger:t.trigger};c.value=t.value,null===(n=e.onSearch)||void 0===n||n.call(e,r)},T=zl(),M=function(){var r,o,a=e.draggable&&e.listType===Yj,l=null;a?l=t.createVNode(yO,{value:e.checkedValue,onChange:V},rk(r=h.value.map(function(r,o){var l;return t.createVNode("div",{draggable:a,onDragend:w,onDragstart:b,onDragover:C,onDragleave:x,onDrop:O,"data-index":o},[t.createVNode(gO,t.mergeProps({disabled:e.disabled||r.disabled,value:r.value,needRipple:!0,class:["".concat(n.value,"-transfer__list-item"),e.checkedValue.includes(r.value)?"".concat(n.value,"-is-checked"):""],key:r.key},e.checkboxProps),rk(l=T("transferItem",{defaultNode:t.createVNode("span",null,[r.label]),params:{data:r.data,index:o,type:e.listType}}))?l:{default:function(){return[l]}})])}))?r:{default:function(){return[r]}}):l=t.createVNode(yO,{value:e.checkedValue,onChange:V},rk(o=h.value.map(function(r,o){var a;return t.createVNode(gO,t.mergeProps({disabled:e.disabled||r.disabled,value:r.value,needRipple:!0,class:["".concat(n.value,"-transfer__list-item"),e.checkedValue.includes(r.value)?"".concat(n.value,"-is-checked"):""],key:r.key},e.checkboxProps),rk(a=T("transferItem",{defaultNode:t.createVNode("span",null,[r.label]),params:{data:r.data,index:o,type:e.listType}}))?a:{default:function(){return[a]}})}))?o:{default:function(){return[o]}});return t.createVNode("div",{class:["".concat(n.value,"-transfer__list-content"),"narrow-scrollbar"],onScroll:E},[T("tree",{defaultNode:l,params:{data:h.value,value:e.checkedValue,onChange:V}})])},I=function(){var r=e.empty||a(l.value.empty),o=To(r)?t.createVNode("span",null,[r]):null;return t.createVNode("div",{class:"".concat(n.value,"-transfer__empty")},[T("empty",{defaultNode:o,params:{type:e.listType}})])},A=function(){var r=To(e.footer)?t.createVNode("div",{class:"".concat(n.value,"-transfer__footer")},[e.footer]):null;return T("footer",{defaultNode:r,params:{type:e.listType}})};return function(){return t.createVNode("div",{class:["".concat(n.value,"-transfer__list"),"".concat(n.value,"-transfer__list-").concat(e.listType)]},[t.createVNode("div",{class:"".concat(n.value,"-transfer__list-header")},[t.createVNode("div",null,[e.checkAll&&t.createVNode(gO,{disabled:e.disabled||!e.dataSource.length,checked:P.value,indeterminate:j.value,onChange:D},null),t.createVNode("span",null,[a(l.value.title,{checked:e.checkedValue.length,total:k.value})])]),(r=e.title&&To(e.title)?t.createVNode("template",null,[e.title]):null,o=T("title",{defaultNode:r,params:{type:e.listType}}),t.createVNode("span",null,[o]))]),t.createVNode("div",{class:["".concat(n.value,"-transfer__list-body"),e.search?"".concat(n.value,"-transfer__list--with-search"):""]},[e.search&&t.createVNode(ek,{searchValue:c.value,placeholder:a(l.value.placeholder),onChange:F,disabled:e.disabled,search:e.search},null),h.value.length>0?M():I()]),e.pagination&&f.value>0&&m.value>0&&t.createVNode("div",{class:"".concat(n.value,"-transfer__list-pagination")},[t.createVNode(QO,t.mergeProps(g.value,{onChange:_}),null)]),A()]);var r,o}}}),lk={checkboxProps:{type:Object},checked:{type:Array,default:void 0},defaultChecked:{type:Array,default:function(){return[]}},data:{type:Array,default:function(){return[]}},direction:{type:String,default:"both",validator:function(e){return!e||["left","right","both"].includes(e)}},disabled:{type:[Boolean,Array],default:void 0},empty:{type:[String,Array,Function],default:""},footer:{type:[Array,Function]},keys:{type:Object},operation:{type:[Array,Function]},pagination:{type:[Object,Array]},search:{type:[Boolean,Object,Array],default:!1},showCheckAll:{type:[Boolean,Array],default:!0},targetDraggable:Boolean,targetSort:{type:String,default:"original",validator:function(e){return!e||["original","push","unshift"].includes(e)}},title:{type:[Array,Function],default:function(){return[]}},transferItem:{type:Function},value:{type:Array,default:void 0},modelValue:{type:Array,default:void 0},defaultValue:{type:Array,default:function(){return[]}},onChange:Function,onCheckedChange:Function,onPageChange:Function,onScroll:Function,onSearch:Function},ik=t.defineComponent({name:"TTransferOperations",props:{leftDisabled:{type:Boolean,required:!0},rightDisabled:{type:Boolean,required:!0},operation:lk.operation},emits:["moveToRight","moveToLeft"],setup:function(e,n){var r=n.slots,o=n.emit,a=ei(),l=si({ChevronRightIcon:bs,ChevronLeftIcon:os}),i=l.ChevronRightIcon,u=l.ChevronLeftIcon,c=function(){o("moveToRight")},s=function(){o("moveToLeft")},d=function(){return t.createVNode(i,null,null)},v=function(){return t.createVNode(u,null,null)},f=function(t){return H(e.operation)||"right"===t&&e.operation&&H(e.operation[0])||"left"===t&&e.operation&&H(e.operation[1])||r.operation?null:"left"===t?v:d},p=function(t,n){if(H(r.operation))return r.operation({direction:n});var o;if(H(e.operation))return(0,e.operation)(t,{direction:n});if(S(e.operation)){var a=Ya(e.operation,2),l=a[0],i=a[1];o="right"===n?i:l}else o="";return o};return function(){return t.createVNode("div",{class:"".concat(a.value,"-transfer__operations")},[t.createVNode(Iu,{variant:"outline",size:"small",shape:S(e.operation)&&To(e.operation[1])?"rectangle":"square",key:e.rightDisabled?"right-outline":"right-base",disabled:e.rightDisabled,onClick:c,icon:f("right")},{default:function(){return[r.operation||S(e.operation)&&e.operation[1]?p(t.h,"right"):null]}}),t.createVNode(Iu,{variant:"outline",size:"small",shape:S(e.operation)&&To(e.operation[0])?"rectangle":"square",key:e.rightDisabled?"left-outline":"left-base",disabled:e.leftDisabled,onClick:s,icon:f("left")},{default:function(){return[r.operation||S(e.operation)&&e.operation[0]?p(t.h,"left"):null]}})])}}});var uk=t.defineComponent({name:"TTransfer",props:lk,setup:function(e,n){var r=n.slots,o=oi(),a=ei(),l=t.toRefs(e),u=l.value,c=l.modelValue,d=l.checked,v=Ya(Ui(u,c,e.defaultValue,e.onChange),2),f=v[0],p=v[1],m=Ya(ni(d,e.defaultChecked,e.onCheckedChange,"checked"),1)[0],h=t.computed(function(){return f.value}),g=t.computed(function(){return H(r.tree)}),y=t.computed(function(){return"right"===e.direction}),b=t.computed(function(){return"left"===e.direction}),w=t.computed(function(){return qj(e.data,e.keys,g.value)}),O=t.computed(function(){return Jj(w.value,h.value,!1,g.value)}),C=t.computed(function(){return Jj(w.value,h.value,!0,g.value)}),x=t.computed(function(){return s(s({},Uj,Zj(O.value,m.value,{isTreeMode:g.value})),Yj,Zj(C.value,m.value,{isTreeMode:g.value}))}),P=t.computed(function(){return!!r.footer||!!e.footer}),S=t.computed(function(){return!!e.pagination&&!r.content}),j=t.computed(function(){return!!e.search}),k=t.computed(function(){return $j(e.footer||"")}),N=t.computed(function(){return $j(e.empty)}),_=t.computed(function(){return $j(e.search)}),V=t.computed(function(){return $j(e.showCheckAll)}),D=t.computed(function(){return $j(o.value)}),E=t.computed(function(){return $j(e.title)}),F=t.computed(function(){return $j(e.pagination)}),T=function(t,n){var r,o=n===Uj?t:x.value[Uj],a=n===Yj?t:x.value[Yj],l=[].concat(i(o),i(a)),u={checked:l,sourceChecked:o,targetChecked:a,type:n};m.value=l,null===(r=e.onCheckedChange)||void 0===r||r.call(e,u)},M=function(t){var n,r=JSON.parse(JSON.stringify(h.value)),o=t===Yj?x.value[Uj]:x.value[Yj];if(t===Uj)n=r.filter(function(e){return!o.includes(e)});else if("original"===e.targetSort){var a=w.value.reduce(function(e,t){return r.includes(t.value)&&t.disabled?e.concat(t.value):e},[]);n=Zj(w.value,r.concat(o),{isTreeMode:g.value,remainValue:a})}else n="unshift"===e.targetSort?o.concat(r):r.concat(o);T([],t===Uj?Yj:Uj),p(n,{type:t,movedValue:o})},I=function(){M(Yj)},A=function(){M(Uj)},B=function(t){var n;null===(n=e.onSearch)||void 0===n||n.call(e,t)},L=function(e,t){p(e,{type:Yj,movedValue:t})},R=function(n){var o,a=Na(r,["title","empty","footer","operation","transferItem","default","tree"]);return t.createVNode(ak,{checkboxProps:e.checkboxProps,transferItem:e.transferItem,"list-type":n,title:E.value[n],"data-source":n===Uj?O.value:C.value,"checked-value":x.value[n],disabled:D.value[n],search:_.value[n],pagination:F.value[n],"check-all":V.value[n],footer:k.value[n],empty:N.value[n],onCheckedChange:function(e){return T(e,n)},onScroll:function(t){return function(t,n){var r,o=t.target,a={e:t,bottomDistance:o.scrollHeight-o.scrollTop-o.clientHeight,type:n};null===(r=e.onScroll)||void 0===r||r.call(e,a)}(t,n)},onSearch:B,onPageChange:function(t){return function(t,n){var r;null===(r=e.onPageChange)||void 0===r||r.call(e,t,{type:n})}(t,n)},isTreeMode:g.value,onDataChange:L,currentValue:h.value,draggable:e.targetDraggable&&n===Yj},"function"==typeof(o=a)||"[object Object]"===Object.prototype.toString.call(o)&&!t.isVNode(o)?a:{default:function(){return[a]}})};return function(){return t.createVNode("div",{class:["".concat(a.value,"-transfer"),j.value?"".concat(a.value,"-transfer__search"):"",P.value?"".concat(a.value,"-transfer__footer"):"",S.value?"".concat(a.value,"-transfer__pagination"):"",g.value?"".concat(a.value,"-transfer--with-tree"):""]},[R(Uj),t.createVNode(ik,{leftDisabled:D.value[Yj]||y.value||0===x.value[Yj].length,rightDisabled:D.value[Uj]||b.value||0===x.value[Uj].length,operation:e.operation,onMoveToRight:I,onMoveToLeft:A},{operation:r.operation}),R(Yj)])}}}),ck=Nl(uk);function sk(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function dk(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:"value",r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"defaultValue",o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"onChange",a=t.modelValue;return"value"===n?Ui(t[n],a,e[r],e[o],n):ni(t[n],e[r],e[o],n)}var xk=function(e){return e[e.Before=-1]="Before",e[e.Inside=0]="Inside",e[e.After=1]="After",e}(xk||{});function Pk(e){var n=e.treeItemRef,r=t.reactive({isDragOver:!1,isDragging:!1,dropPosition:0}),o=function(t,n){var o,l,i,u,c,s=e.node,d=e.treeScope.drag;if(d)switch(t){case"dragStart":r.isDragging=!0,r.dropPosition=0,null===(o=d.handleDragStart)||void 0===o||o.call(d,{node:s,dragEvent:n});break;case"dragEnd":r.isDragging=!1,r.isDragOver=!1,r.dropPosition=0,a.cancel(),null===(l=d.handleDragEnd)||void 0===l||l.call(d,{node:s,dragEvent:n});break;case"dragOver":r.isDragOver=!0,a(n),null===(i=d.handleDragOver)||void 0===i||i.call(d,{node:s,dragEvent:n});break;case"dragLeave":r.isDragOver=!1,r.dropPosition=0,a.cancel(),null===(u=d.handleDragLeave)||void 0===u||u.call(d,{node:s,dragEvent:n});break;case"drop":null===(c=d.handleDrop)||void 0===c||c.call(d,{node:s,dropPosition:r.dropPosition,dragEvent:n}),r.isDragOver=!1,a.cancel()}},a=Aa(function(e){!function(e){var t,o=n.value;if(o){var a=null==o||null===(t=o.getBoundingClientRect)||void 0===t?void 0:t.call(o),l=window.scrollY+a.top,i=e.pageY,u=a.height/4,c=i-l;c3?o-3:0),l=3;l0,n=Lo(l.children)&&l.children;return f&&(t||n)});if(l.vmCheckable){var b=!1;l.vmIsLocked&&!l.vmIsRest&&(b=!0),l.isDisabled()&&(b=!0);var w=Mk(Mk({},p),{},{disabled:b}),O=m;m=t.createVNode(gO,{class:g,checked:l.checked,indeterminate:l.indeterminate,disabled:b,name:String(l.value),onChange:o,stopLabelTrigger:y.value,ignore:d.expandOnClickNode?"active":"expand,active",props:w,title:l.label},"function"==typeof(h=m)||"[object Object]"===Object.prototype.toString.call(h)&&!t.isVNode(h)?m:{default:function(){return[O]}})}else{var C=t.createVNode("span",{style:"position: relative"},[m]);m=l.isActivable()?t.createVNode("span",{key:"1",ref:"label",class:g,title:l.label},[C]):t.createVNode("span",{key:"2",class:g,title:l.label},[C])}return m}}}function Ak(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Bk(e){var n=e.treeScope,r=e.treeItemRef,o=n.virtualConfig,a=n.treeContentRef,l=n.scrollProps,i=ei().value,u=ei("tree").value,c=Ek(e).handleClick,d=Fk(e).renderIcon,v=Ik(e).renderLabel,f=function(e){var n=ei("tree").value;return{renderLine:function(r){var o=e.node,a=e.treeScope,l=a.scopedSlots,i=(null==a?void 0:a.treeProps)||{},u=i.line,c=!!i.icon,s=null;if(!0===u){if(null!=l&&l.line)s=l.line({node:null==o?void 0:o.getModel()});else if(o.parent&&o.tree){var d=o.vmIsLeaf,v=o.vmIsFirst,f=o.level,p=[];p.push("".concat(n,"__line")),!d&&c||p.push("".concat(n,"__line--leaf")),v&&c&&p.push("".concat(n,"__line--first"));var m=[],h=o.getParents();h.pop(),h.forEach(function(e,t){e.vmIsLast||m.push("calc(-".concat(t+1," * var(--space)) 0 var(--color)"))});var g={"--level":f?String(f):void 0,"box-shadow":m.join(",")};s=t.createVNode("span",{class:p,style:g},null)}}else s=_k(u,{createElement:r,node:o});return s}}}(e),p=f.renderLine,m=function(e){var n=ei("tree").value;return{renderOperations:function(r){var o=e.node,a=e.treeScope,l=a.scopedSlots,i=((null==a?void 0:a.treeProps)||{}).operations,u=null;return(u=null!=l&&l.operations?l.operations({node:null==o?void 0:o.getModel()}):_k(i,{createElement:r,node:o}))&&(u=t.createVNode("span",{class:"".concat(n,"__operations"),ignore:"active,expand"},[u])),u}}}(e),h=m.renderOperations,g=Pk(e),y=g.dragStates,b=g.handleDragStart,w=g.handleDragEnd,O=g.handleDragOver,C=g.handleDragLeave,x=g.handleDrop,P=function(e,n,r){var o=t.computed(function(){return Math.max(r.rowHeight||48,48)}),a=t.ref(!1),l=t.computed(function(){return"lazy"===(null==r?void 0:r.type)&&!a.value}),i=!sl&&window.requestAnimationFrame||function(e){return setTimeout(e,16.6)},u=function(){a.value||i(function(){a.value=!0})};return t.onMounted(function(){"lazy"===(null==r?void 0:r.type)&&t.nextTick(function(){var t=Math.max(10,r.bufferSize||10),a=o.value*t;ci(n.value,e.value,u,a)})}),{hasLazyLoadHolder:l,tRowHeight:o}}(a,r,t.reactive(function(e){for(var t=1;t0),"".concat(u,"__item--tip-highlight"),!r&&n&&0===o)),a}();return e.stateId=o.stateId,t.createVNode("div",{ref:"treeItemRef",class:v,"data-value":l,"data-level":a,style:d,onClick:function(e){return c(e)},draggable:r.isDraggable(),onDragstart:function(e){return b(e)},onDragend:function(e){return w(e)},onDragover:function(e){return O(e)},onDragleave:function(e){return C(e)},onDrop:function(e){return x(e)}},[S.value?[t.createVNode("div",null,null)]:N(n)])}}}function Lk(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Rk(e){for(var t=1;t=0&&("trigger"===e?(c=!0,d=!0):"ignore"===e&&(c=!1)),n.indexOf("active")>=0&&"ignore"===e&&(s=!1)}),!c||(a(u),!d)){s&&l(u);var v={node:u.getModel(),e:o};jk(n,r,"click",v),t.mouseEvent=null}}}}}(e),u=i.handleClick,c=i.handleChange,s=t.ref(!1),d=new Map,v=function(){o.value=n.getNodes()},f=function(){if(!(null==l?void 0:l.isVirtualScroll.value)){var e=[],t=!1;o.value.forEach(function(n){n.visible&&(t=!0,d.set(n.value,n.value)),d.has(n.value)&&e.push(n)}),d.forEach(function(e){n.getNode(e)||d.delete(e)}),a.value=e,s.value=!t}},p=function(){if(null==l?void 0:l.isVirtualScroll.value){var e=l.visibleData.value;a.value=e,s.value=e.length<=0}};return t.watch(o,f),t.watch(l.visibleData,p),v(),f(),p(),n.emitter.on("update",v),{nodesEmpty:s,renderTreeNodes:function(e){var n="render-".concat((new Date).getTime()),o=a.value.map(function(e,o){return function(e,n,o,a){var l=n.VIRTUAL_SCROLL_INDEX||o,i=n[JC];return t.createVNode(Hk,{key:i,rowIndex:l,stateId:a,itemKey:i,treeScope:r,onClick:u,onChange:c},null)}(0,e,o,n)});return o}}}function Kk(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Uk(e){for(var t=1;t0&&c.replaceChecked(s.value),Array.isArray(v.value)&&v.value.length>0&&c.replaceExpanded(v.value),Array.isArray(d.value)&&d.value.length>0&&c.replaceActived(d.value),null!=n&&n.onLoad&&(null==n||n.onLoad(t)),r.emit("load",t)};return c.setConfig({keys:u}),f(),c.append(n.data||[]),c.refreshNodes(),Array.isArray(s.value)&&c.setChecked(s.value),p(),Array.isArray(d.value)&&c.setActived(d.value),c.emitter.on("load",b),c.emitter.on("update",g),e.setStore(c),t.watch(function(){return i(s.value||[])},function(e){c.replaceChecked(e)}),t.watch(function(){return i(v.value||[])},function(e){c.replaceExpanded(e)}),t.watch(function(){return i(d.value||[])},function(e){c.replaceActived(e)}),t.watch(o.filter,function(e,t){y(e,t)}),t.watch(o.keys,function(e){c.setConfig({keys:e})}),t.watch(o.expandAll,function(e){if(e){var t=c.getNodes().filter(function(e){return Array.isArray(e.children)&&e.children.length}).map(function(e){return e.value});c.setExpanded(t)}else c.replaceExpanded(h),h=null}),{store:c,rebuild:function(e){c.reload(e||[]),c.refreshNodes(),Array.isArray(s.value)&&c.setChecked(s.value),p(),Array.isArray(d.value)&&c.setActived(d.value),c.refreshState()},checkFilterExpand:y,updateStoreConfig:f,updateExpanded:p,expandFilterPath:g}}(d),m=p.store,h=p.updateStoreConfig,g=p.rebuild;!function(e){var t=e.props,n=e.context,r=e.scope,o=e.store,a=null,l={handleDragStart:function(e){var r=e.dragEvent,o=e.node;a=o;var l={node:o.getModel(),e:r};jk(t,n,"drag-start",l)},handleDragEnd:function(e){var r=e.dragEvent,o=e.node;a=o;var l={node:o.getModel(),e:r};jk(t,n,"drag-end",l)},handleDragOver:function(e){var r=e.dragEvent,o={node:e.node.getModel(),e:r};jk(t,n,"drag-over",o)},handleDragLeave:function(e){var r=e.dragEvent,o={node:e.node.getModel(),e:r};jk(t,n,"drag-leave",o)},handleDrop:function(e){var r,l=e.dragEvent,i=e.node,u=e.dropPosition;if(i.value!==a.value&&!i.getParents().some(function(e){return e.value===a.value})){var c={dropNode:i.getModel(),dragNode:a.getModel(),dropPosition:u,e:l};!1!==(null===(r=t.allowDrop)||void 0===r?void 0:r.call(t,c))&&(o.getNodes().some(function(e){return e.value===i.value&&(u===xk.Inside?a.appendTo(o,e):u===xk.Before?i.insertBefore(a):i.insertAfter(a),!0)}),jk(t,n,"drop",c))}}};r.drag=l}(d);var y=Dk(d),b=y.setActived,w=y.setExpanded,O=y.setChecked,C=Yk(d),x=C.onInnerVirtualScroll,P=C.virtualConfig,S=C.scrollToElement,j=Wk(d),k=j.renderTreeNodes,N=j.nodesEmpty,_=function(e){var n=e.props,r=ei("tree").value,o=ei().value,a=e.virtualConfig,l=e.isScrolling,i=e.refProps,u=i.height,c=i.maxHeight;return{treeClasses:t.computed(function(){var e=[r],t=n.disabled,i=n.hover,u=n.transition,c=n.checkable,s=n.draggable,d=n.expandOnClickNode,v=n.scroll;return t&&e.push("".concat(o,"-is-disabled")),i&&e.push("".concat(r,"--hoverable")),c&&e.push("".concat(r,"--checkable")),s&&e.push("".concat(r,"--draggable")),u&&e.push("".concat(r,"--transition")),d&&e.push("".concat(r,"--block-node")),(null==a?void 0:a.isVirtualScroll.value)?(e.push("".concat(r,"__vscroll")),l.value&&e.push("".concat(r,"--scrolling"))):v&&"lazy"===v.type&&e.push("".concat(r,"__lazyload")),e}),treeContentStyles:t.computed(function(){return{height:$k(u.value),maxHeight:$k(c.value),overflowY:$k(u.value)||$k(c.value)?"auto":void 0}}),scrollStyles:t.computed(function(){var e=(null==a?void 0:a.isVirtualScroll.value)?null==a?void 0:a.translateY.value:0,t="translateY(".concat(e,"px)");return{transform:t,"-ms-transform":t,"-moz-transform":t,"-webkit-transform":t}}),cursorStyles:t.computed(function(){var e=(null==a?void 0:a.isVirtualScroll.value)?null==a?void 0:a.translateY.value:0,t="translate(0, ".concat(e,"px)");return{transform:t,"-ms-transform":t,"-moz-transform":t,"-webkit-transform":t}})}}(d);return{t:o,global:a,classPrefix:l,componentName:u,state:d,store:m,treeClasses:_.treeClasses,treeContentRef:v,renderTNodeJSX:c,rebuild:g,updateStoreConfig:h,setActived:b,setExpanded:w,setChecked:O,renderTreeNodes:k,nodesEmpty:N,isScrolling:f,onInnerVirtualScroll:x,treeContentStyles:_.treeContentStyles,scrollStyles:_.scrollStyles,cursorStyles:_.cursorStyles,virtualConfig:P,scrollToElement:S,scrollTo:S}},watch:{data:function(e){this.rebuild(e)}},methods:{refresh:function(){this.store.refreshState()},setItem:function(e,t){var n=this,r=this.store.getNode(e),o=t,a=Object.keys(o);r&&o&&(["expanded","actived","checked"].forEach(function(e){if(a.includes(e)){var t=o[e];delete o[e];var l="set".concat(on(e)),i=n[l];H(i)&&i.call(n,r,t)}}),r.set(o))},getItem:function(e){var t=this.store.getNode(e);return null==t?void 0:t.getModel()},getItems:function(e){return this.store.getNodes(e).map(function(e){return e.getModel()})},appendTo:function(e,t){var n=this.store;(Array.isArray(t)?t:[t]).forEach(function(t){var r=(null==t?void 0:t.value)||"",o=Vk(n,r);o?n.appendNodes(e,o):n.appendNodes(e,t)})},insertBefore:function(e,t){var n=this.store,r=Vk(n,(null==t?void 0:t.value)||"");r?n.insertBefore(e,r):n.insertBefore(e,t)},insertAfter:function(e,t){var n=this.store,r=Vk(n,(null==t?void 0:t.value)||"");r?n.insertAfter(e,r):n.insertAfter(e,t)},remove:function(e){return this.store.remove(e)},getIndex:function(e){return this.store.getNodeIndex(e)},getParent:function(e){var t=this.store.getParent(e);return null==t?void 0:t.getModel()},getParents:function(e){return this.store.getParents(e).map(function(e){return e.getModel()})},getPath:function(e){var t=this.store.getNode(e),n=[];return t&&(n=t.getPath().map(function(e){return e.getModel()})),n},getTreeData:function(e){var t=[];if(e){if(!this.store.getNode(e))return[];t=this.store.getNodes(e)}else t=this.store.getNodes();var n={},r=[];return t.forEach(function(e){var t=e.value,o=Xk(Xk({},e.data),{},{value:t});!0!==o.children&&delete o.children,n[t]=o;var a=e.getParent();if(a){var l=n[a.value];l?(Array.isArray(l.children)||(l.children=[]),l.children.push(o)):r.push(o)}else r.push(o)}),r}},render:function(e){var n,r,o,a,l=this.state,i=this.treeClasses,u=this.updateStoreConfig,c=this.renderTreeNodes,s=this.nodesEmpty,d=this.isScrolling,v=this.virtualConfig,f=this.treeContentStyles,p=this.scrollStyles,m=this.cursorStyles,h=Ok(),g=l.scope,y=l.allNodes,b=l.refProps;g.scopedSlots=this.$slots,u();var w=c(h),O=this.componentName,C=v.isVirtualScroll.value,x=null;if(s){var P=!this.empty&&!this.$slots.empty?this.t(this.global.empty):this.renderTNodeJSX("empty");x=t.createVNode("div",{class:"".concat(O,"__empty")},[P])}else w.length<=0&&(x=t.createVNode("div",null,null));var S,j=null;j=!this.$props.transition||C&&d?t.createVNode("div",{class:"".concat(O,"__list"),style:p},[w]):t.createVNode(t.TransitionGroup,{tag:"div",class:"".concat(O,"__list"),"enter-active-class":"".concat(O,"__item--enter-active"),"leave-active-class":"".concat(O,"__item--leave-active"),style:p},"function"==typeof(S=w)||"[object Object]"===Object.prototype.toString.call(S)&&!t.isVNode(S)?w:{default:function(){return[w]}});var k=(null!==(n=null===(r=y.value)||void 0===r?void 0:r.filter(function(e){return e.visible}).length)&&void 0!==n?n:0)*(null!==(o=null===(a=b.scroll.value)||void 0===a?void 0:a.rowHeight)&&void 0!==o?o:34),N={width:"1px",height:"1px",opacity:0,pointerEvents:"none",position:"absolute",left:0,top:"".concat(k,"px")},_=t.createVNode("div",{style:N},null);return t.createVNode("div",{class:i,ref:"treeContentRef",onScroll:this.onInnerVirtualScroll,style:f},[C&&t.createVNode("div",{class:"".concat(O,"__vscroll-cursor"),style:m},null),x||j,C&&_])}}),Jk=Nl(Gk),Qk={autoWidth:Boolean,borderless:Boolean,clearable:Boolean,collapsedItems:{type:Function},data:{type:Array,default:function(){return[]}},disabled:{type:Boolean,default:void 0},empty:{type:[String,Function],default:""},filter:{type:Function},filterable:Boolean,inputProps:{type:Object},inputValue:{type:[String,Number],default:void 0},defaultInputValue:{type:[String,Number]},keys:{type:Object},loading:Boolean,loadingText:{type:[String,Function],default:""},max:{type:Number,default:0},minCollapsedNum:{type:Number,default:0},multiple:Boolean,panelBottomContent:{type:[String,Function]},panelTopContent:{type:[String,Function]},placeholder:{type:String,default:void 0},popupProps:{type:Object},popupVisible:{type:Boolean,default:void 0},prefixIcon:{type:Function},readonly:{type:Boolean,default:void 0},selectInputProps:{type:Object},size:{type:String,default:"medium",validator:function(e){return!e||["small","medium","large"].includes(e)}},suffix:{type:[String,Function]},suffixIcon:{type:Function},tagProps:{type:Object},treeProps:{type:Object},value:{type:[String,Number,Object,Array],default:void 0},modelValue:{type:[String,Number,Object,Array],default:void 0},defaultValue:{type:[String,Number,Object,Array]},valueDisplay:{type:Function},valueType:{type:String,default:"value",validator:function(e){return!e||["value","object"].includes(e)}},onBlur:Function,onChange:Function,onClear:Function,onFocus:Function,onInputChange:Function,onPopupVisibleChange:Function,onRemove:Function,onSearch:Function};function eN(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function tN(e){for(var t=1;t=0}}),I=t.computed(function(){return v.value||e.disabled}),A=t.computed(function(){var t;return _.value&&(null===(t=g.value)||void 0===t?void 0:t.label)||e.placeholder||d.value.placeholder}),B=t.computed(function(){return["".concat(c.value,"-select__dropdown"),"narrow-scrollbar"]}),L=t.computed(function(){return{small:"s",medium:"m",large:"l"}[e.size]}),R=t.computed(function(){return"object"===e.valueType}),z=t.computed(function(){return e.multiple?R.value?S(j.value)?j.value.map(function(e){return e.value}):[]:S(j.value)?j.value.map(function(e){return e}):[]:[]}),W=t.computed(function(){return e.multiple&&!!e.max&&S(j.value)&&e.max<=j.value.length}),K=t.computed(function(){var t;return Wo(e.treeProps)||Wo(e.treeProps.keys)?(null===(t=e.keys)||void 0===t?void 0:t.label)||"label":e.treeProps.keys.label||"label"}),U=t.computed(function(){var t;return Wo(e.treeProps)||Wo(e.treeProps.keys)?(null===(t=e.keys)||void 0===t?void 0:t.value)||"value":e.treeProps.keys.value||"value"}),Y=t.computed(function(){var t;return Wo(e.treeProps)||Wo(e.treeProps.keys)?(null===(t=e.keys)||void 0===t?void 0:t.children)||"children":e.treeProps.keys.children||"children"});t.onMounted(Gp(bm.mark(function t(){var n;return bm.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:T(),!j.value&&e.defaultValue&&$(e.defaultValue,null,"uncheck"),R.value?m.value=S(j.value)?j.value.map(function(e){return null==e?void 0:e.value}):[null===(n=j.value)||void 0===n?void 0:n.value]:m.value=S(j.value)?j.value:[j.value],ne();case 1:case"end":return t.stop()}},t)})));var $=function(e,t,n){k(e,{node:t,trigger:n}),ne()},Z=function(t){var n,r=e.multiple?[]:"";m.value=[],$(r,null,"clear"),null===(n=e.onClear)||void 0===n||n.call(e,{e:t.e})},q=function(e,t){var n=e;R.value&&(n=e.map(ae)),$(n,t.node,"check")},X=function(t,n){if(e.multiple||V(!1,n),!e.multiple&&n.node.actived&&j.value!==n.node.data[U.value]){var r=t;if(R.value){var o=Wo(t)?"":t[0];r=ae(o)}else r=Wo(t)?"":t[0];$(r,n.node,"check"),m.value=t}},G=function(e){h.value=e},J=function(){ne()},Q=function(t){var n,r;_.value?(F(t),null===(n=e.onSearch)||void 0===n||n.call(e,String(t))):null===(r=e.onSearch)||void 0===r||r.call(e,String(t))},ee=function(t,n){var r,o=n.trigger,a=n.index;["tag-remove","backspace"].includes(o)&&S(j.value)&&j.value.splice(a,1),null===(r=e.onRemove)||void 0===r||r.call(e,{value:t,data:null,e:n&&n.e}),$(j.value,null,o)},te=function(e,t){V(e,t),e&&"trigger-element-click"===t.trigger&&F("")},ne=function(){var t=Gp(bm.mark(function t(){return bm.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:e.multiple?e.multiple?S(j.value)?g.value=oe():g.value=[]:g.value=null:j.value||0===j.value?g.value=re():g.value="";case 1:case"end":return t.stop()}},t)}));return function(){return t.apply(this,arguments)}}(),re=function(){var e=R.value?j.value.value:j.value;return ae(e)},oe=function(){return j.value.map(function(e){var t=R.value?e.value:e;return ae(t)})},ae=function(t){if(p.value){var n=p.value.getItem(t);if(n)return tN(tN({},n.data),{},{label:n.data[K.value],value:n.data[U.value]})}var r=le(e.data,t);return r||{label:t,value:t}},le=function(e,t){for(var n=0,r=e.length;n0&&void 0!==arguments[0]?arguments[0]:"RGB",n=arguments.length>1?arguments[1]:void 0;if(e=n&&Object.keys(bN).find(function(e){return e in bN&&bN[e]===t})||t,!wN[e])return[];var r=i(wN[e]);return n&&"CMYK"!==t&&r.push({type:"inputNumber",key:"a",min:0,max:100,format:function(e){return"".concat(e,"%")},flex:1.15}),r},qN=function(e){var n=ei("color-picker");return t.computed(function(){return e?"".concat(n.value,"-").concat(e):n.value})};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 GN(e){for(var t=1;t2&&r>=0&&r<=o-1){n.splice(r,1),n[r]||(r=n[r+1]?r+1:n[r-1]?r-1:0);var a=n[r];p(n,!0),f(null==a?void 0:a.id)}}},y=function(t){if(!e.disabled&&e.enableMultipleGradient){var n=t.offsetX/a.width*100,r=EN(n,e.color.rgba);s.value.push(r),p(s.value,!0),f(r.id)}};return t.onMounted(function(){var e=o.value.getBoundingClientRect();a.left=e.left,a.width=e.width||176}),t.onBeforeUnmount(function(){window.removeEventListener("mousemove",m,!1),window.removeEventListener("mouseup",h,!1),window.removeEventListener("contextmenu",h,!1)}),function(){var d=e.color,p=d.linearGradient,b=d.gradientColors,w=DN({points:b,degree:90});return t.createVNode("div",{class:"".concat(n.value,"__gradient")},[t.createVNode("div",{class:"".concat(n.value,"__gradient-slider")},[t.createVNode("div",{class:["".concat(n.value,"__slider"),"".concat(n.value,"--bg-alpha")],onKeyup:g,tabindex:0,ref:o},[t.createVNode("ul",{class:"gradient-thumbs",onClick:y,style:{background:w}},[s.value.map(function(u){var s="".concat(Math.round(100*u.left)/100,"%");return t.createVNode("li",{class:["".concat(n.value,"__thumb"),"gradient-thumbs__item",c.value===u.id?r.active:""],key:u.id,title:"".concat(u.color," ").concat(s),style:{color:u.color,left:s},onClick:function(e){return e.stopPropagation()},onMousedown:function(){return function(t){var n=o.value.getBoundingClientRect();a.left=n.left,a.width=n.width||176,l.value||e.disabled||(i.value=!1,l.value=!0,f(t),o.value.focus(),window.addEventListener("mousemove",m,!1),window.addEventListener("mouseup",h,!1),window.addEventListener("contextmenu",h,!1))}(u.id)}},[t.createVNode("span",{class:["gradient-thumbs__item-inner","".concat(n.value,"--bg-alpha")]},null)])})])])]),t.createVNode("div",{class:"".concat(n.value,"__gradient-degree"),title:"".concat(u.value,"deg")},[t.createVNode(Ub,{size:"small",theme:"normal",min:0,max:360,step:1,format:function(e){return"".concat(e,"\xb0")},modelValue:u.value,"onUpdate:modelValue":function(e){return u.value=e},onBlur:v,onEnter:v,disabled:e.disabled},null)]),t.createVNode("div",{class:["".concat(n.value,"__gradient-preview"),"".concat(n.value,"--bg-alpha")]},[t.createVNode("span",{class:"preview-inner",style:{background:p}},null)])])}}}),a_=t.defineComponent({name:"SaturationPanel",props:e_,setup:function(e){var n=qN(),r=t.ref(null),o=t.ref(null),a=t.ref(null),l=t.reactive({width:230,height:168}),i=t.computed(function(){var t=e.color,n=t.saturation,r=t.value,o=l.width,a=l.height,i=Math.round((1-r)*a),u=Math.round(n*o);return{color:e.color.rgb,left:"".concat(u,"px"),top:"".concat(i,"px")}}),u=function(t,n){if(!e.disabled){var r=function(e){var t=l.width,n=l.height,r=e.x,o=e.y;return{saturation:Math.round(r/t*100),value:Math.round(100*(1-o/n))}}(t),o=r.saturation,a=r.value;e.onChange({saturation:o/100,value:a/100,addUsedColor:n})}},c=function(n){e.disabled||t.nextTick(function(){u(n,!0)})},s=t.computed(function(){return"hsl(".concat(e.color.hue,", 100%, 50%)")});return t.onMounted(function(){l.width=r.value.offsetWidth||230,l.height=r.value.offsetHeight||168,a.value=new HN(r.value,{start:function(){l.width=r.value.offsetWidth,l.height=r.value.offsetHeight},drag:function(e){u(e)},end:c})}),t.onBeforeUnmount(function(){a.value.destroy()}),function(){return t.createVNode("div",{class:["".concat(n.value,"__saturation")],ref:r,style:{background:s.value}},[t.createVNode("span",{class:["".concat(n.value,"__thumb")],role:"slider",tabindex:0,ref:o,style:i.value},null)])}}});function l_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function i_(e){for(var t=1;t0?t.createVNode("span",{role:"button",class:"".concat(n.value,"__icon"),onClick:function(){return s()}},[t.createVNode(o,null,null)]):null]):null]),t.createVNode("ul",{class:["".concat(r,"--items"),"narrow-scrollbar"]},[e.colors.map(function(o){return t.createVNode("li",{class:["".concat(r,"--item"),u(o)&&e.editable?l.active:""],title:o,key:o,onClick:function(){e.disabled||function(t){e.onSetColor(t)}(o)}},[t.createVNode("div",{class:["".concat(r,"--color"),"".concat(n.value,"--bg-alpha")]},[t.createVNode("span",{class:"".concat(r,"--inner"),style:{background:o}},null)])])})])])}}});function O_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function C_(e){for(var t=1;t-1&&e.splice(n,1),e.unshift(t),e.length>100&&(e.length=100),j(e)}},j=function(e){y(e)},k=function(t){var n=x.value.getFormattedColor(e.format,e.enableAlpha);m(n,{color:MN(x.value),trigger:t||"palette-saturation-brightness"})};t.watch(function(){return p.value},function(t){var n=b(t);w.value=n,x.value.isGradient="linear-gradient"===n,x.value.getFormattedColor(e.format,e.enableAlpha)!==t&&x.value.update(t)});var N=function(e){w.value=e;var t="linear-gradient"===e;x.value.isGradient=t,t?x.value.update(x.value.gradientColors.length>0?x.value.linearGradient:hN):x.value.update(x.value.rgba),k()},_=function(e){var t=e.saturation,n=e.value,r=x.value,o=r.saturation,a=r.value,l="palette-saturation-brightness";if(n!==a&&t!==o)x.value.saturation=t,x.value.value=n,l="palette-saturation-brightness";else if(t!==o)x.value.saturation=t,l="palette-saturation";else{if(n===a)return;x.value.value=n,l="palette-brightness"}k(l)},V=function(t){var n;x.value.hue=t,k("palette-hue-bar"),null===(n=e.onPaletteBarChange)||void 0===n||n.call(e,{color:MN(x.value)})},D=function(e){x.value.alpha=e,k("palette-alpha-bar")},E=function(e,t){x.value.update(e),x.value.alpha=t,k("input")},F=function(e){var t=e.key,n=e.payload,r="palette-saturation-brightness";switch(t){case"degree":x.value.gradientDegree=n,r="input";break;case"selectedId":x.value.gradientSelectedId=n;break;case"colors":x.value.gradientColors=n}k(r)},T=function(e,t){var n=b(e);w.value=n,x.value.isGradient="linear-gradient"===n,x.value.update(e),k(t)};return function(){var r={color:x.value,disabled:e.disabled},o=1===e.colorModes.length&&e.colorModes.includes("linear-gradient"),c=g.value;o&&Array.isArray(c)&&(c=c.filter(function(e){return FN.isGradientColor(e)}));var s=!!Array.isArray(c),d=e.swatchColors;Zo(d)&&(d=i(gN)),$o(d)&&(d=[]),o&&(d=d.filter(function(e){return FN.isGradientColor(e)}));var v=Array.isArray(d)&&d.length;return t.createVNode("div",{class:["".concat(n.value,"__panel"),!!e.disabled&&u.disabled]},[t.createVNode(QN,t.mergeProps(e,{mode:w.value,onModeChange:N}),null),t.createVNode("div",{class:["".concat(n.value,"__body")]},[O.value?t.createVNode(o_,t.mergeProps(r,{onChange:F,enableMultipleGradient:e.enableMultipleGradient}),null):null,t.createVNode(a_,t.mergeProps(r,{onChange:_}),null),t.createVNode("div",{class:["".concat(n.value,"__sliders-wrapper")]},[t.createVNode("div",{class:["".concat(n.value,"__sliders")]},[t.createVNode(c_,t.mergeProps(r,{onChange:V}),null),e.enableAlpha?t.createVNode(s_,t.mergeProps(r,{onChange:D}),null):null]),e.showPrimaryColorPreview?t.createVNode("div",{class:["".concat(n.value,"__sliders-preview"),"".concat(n.value,"--bg-alpha")]},[t.createVNode("span",{class:"".concat(n.value,"__sliders-preview-inner"),style:{background:O.value?x.value.linearGradient:x.value.rgba}},null)]):null]),t.createVNode(g_,t.mergeProps(e,{color:x.value,format:P.value,onInputChange:E}),null),v||s?t.createVNode(t.Fragment,null,[t.createVNode("div",{class:"".concat(n.value,"__swatches-wrap")},[s?t.createVNode(w_,t.mergeProps(r,{title:a(l.value.recentColorTitle),editable:!0,colors:c,handleAddColor:S,onSetColor:function(e){return T(e,"recent")},onChange:j}),null):null,v?t.createVNode(w_,t.mergeProps(r,{title:a(l.value.swatchColorTitle),colors:d,onSetColor:function(e){return T(e,"preset")}}),null):null])]):null])])}}});function P_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function S_(e){for(var t=1;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:B_({},g.value)},[l]),d&&(l=[d,v?"":l]),b&&c.value&&(l=t.createVNode(I_,t.mergeProps({style:B_({},h.value),src:b,alt:w,onError:y},e.imageProps),null)),t.createVNode("div",{ref:i,class:O,style:B_({},m.value)},[l])}}}),R_={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 z_=t.defineComponent({name:"TAvatarGroup",props:R_,setup:function(e){t.provide("avatarGroup",e);var n=Rl(),r=ei("avatar"),o=ei("avatar-group"),a=function(n){if((null==n?void 0:n.length)>e.max){var o=l(n),a=n.slice(0,e.max);return a.push(t.createVNode(L_,{class:"".concat(r.value,"__collapse"),size:e.size},"function"==typeof(i=o)||"[object Object]"===Object.prototype.toString.call(i)&&!t.isVNode(i)?o:{default:function(){return[o]}})),a}var i;return n},l=function(t){return n("collapseAvatar")||"+".concat(t.length-e.max)};return function(){var l=n("default"),i=e.cascading,u=e.max,c=["".concat(o.value),s(s({},"".concat(r.value,"--offset-right"),"right-up"===i),"".concat(r.value,"--offset-left"),"left-up"===i)],d=u&&u>=0?[a(Vl(l))]:[l];return t.createVNode("div",{class:c},[d])}}}),H_=Nl(L_),W_=Nl(z_),K_={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)}}},U_=t.defineComponent({name:"TBadge",inheritAttrs:!1,props:K_,setup:function(e,n){var r=n.attrs,o=Hl(),a=Rl(),l=t.computed(function(){var t=a("count");return Number.isNaN(Number(t))?t:(t=Number(e.count))>e.maxCount?"".concat(e.maxCount,"+"):t}),i=ei(),u=ei("badge"),c=t.computed(function(){return!e.showZero&&(0===l.value||"0"===l.value)}),d=t.computed(function(){return[s(s(s(s({},"".concat(u.value,"--dot"),!!e.dot),"".concat(u.value,"--circle"),!e.dot&&"circle"===e.shape),"".concat(u.value,"--round"),!e.dot&&"round"===e.shape),"".concat(i.value,"-size-s"),"small"===e.size)]}),v=t.computed(function(){var t=function(){if(!e.offset)return{};var t=Ya(e.offset,2),n=t[0],r=t[1];return{xOffset:n=Number.isNaN(Number(n))?n:"".concat(n,"px"),yOffset:r=Number.isNaN(Number(r))?r:"".concat(r,"px")}}(),n=t.xOffset,r=t.yOffset;return{background:e.color,right:n,top:r}});return function(){return t.createVNode("div",t.mergeProps({class:u.value},r),[o("default","content"),c.value?null:t.createVNode("sup",{class:d.value,style:v.value},[e.dot?null:l.value])])}}}),Y_=Nl(U_),$_={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},Z_="calendar",q_=1970,X_={1:"\u4e00",2:"\u4e8c",3:"\u4e09",4:"\u56db",5:"\u4e94",6:"\u516d",7:"\u65e5"},G_=function(e){var t=Yl(e).day();return 0===t&&(t=7),t},J_=function(e,t){var n=new Date(e);return n.setDate(n.getDate()+t),n},Q_=function(e,t){for(var n=t.curSelectedYear,r=t.curSelectedMonth,o=t.realFirstDayOfWeek,a=t.curDate,l=t.curDateList,i=e.format,u=e.multiple,c=[],s=Yl("".concat(n,"-").concat(r)).startOf("month").toDate(),d=Yl(Yl("".concat(n,"-").concat(r)).endOf("month").format("YYYY-MM-DD")).toDate(),v=d.getDate(),f=function(e,t){var n=G_(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:G_(n),weekOrder:r,date:n,formattedDate:Yl(n).format(i),filterDate:null,formattedFilterDate:null,isShowWeekend:!0}},g=function(e){return u?!!l.find(function(t){return t.isSame(Yl(e))}):a.isSame(Yl(e))},y=0;y0&&(r.curSelectedYear=n)},{immediate:!0}),t.watch(function(){return e.month},function(e){var t,n;n=(t=e)?parseInt("".concat(t),10):parseInt(eV().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=eV();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 nV(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function rV(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 aV(e,n){var r=Jl(Z_),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 X_&&(t=X_[n]),t)}var u=t.computed(function(){for(var e=[],t=n.realFirstDayOfWeek;t<=7;t++)e.push({num:t,display:i(t)});if(n.realFirstDayOfWeek>1)for(var r=1;rparseInt(Yl(m.value.to).format("M"),10)}}return n}t.watch(function(){return{year:"".concat(c.curSelectedYear),month:"".concat(c.curSelectedMonth)}},function(t){H(e.onMonthChange)&&e.onMonthChange(dV({},t)),p.emitControllerChange()});var g={yearSelectOptionList:t.computed(function(){var e=[],t=c.curSelectedYear-10,n=c.curSelectedYear+10;m.value&&m.value.from&&m.value.to&&(t=Yl(m.value.from).year(),n=Yl(m.value.to).year()),t0&&void 0!==arguments[0]?arguments[0]:document.body;return e===document.body?window.innerWidth-document.documentElement.clientWidth:e.offsetWidth-e.clientWidth}function AV(e){return Number.isNaN(Number(e))?e:"".concat(Number(e),"px")}var BV={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 LV(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function RV(e){for(var t=1;tr||i>o||(document.addEventListener("mousemove",u),document.addEventListener("mouseup",c),document.addEventListener("dragend",c))}))}},props:RV(RV({},EV),BV),setup:function(e,n){var r=n.expose,o=t.ref(null),a=ei("dialog"),l=ei(),i=Rl(),u=Hl(),c=Jl("dialog").globalConfig,s=si({CloseIcon:Ts,InfoCircleFilledIcon:hv,CheckCircleFilledIcon:Bc,ErrorCircleFilledIcon:sd}),d=s.CloseIcon,v=s.InfoCircleFilledIcon,f=s.CheckCircleFilledIcon,p=s.ErrorCircleFilledIcon,m=t.toRefs(e),h=m.cancelBtn,g=m.confirmBtn,y=m.confirmLoading,b=MV({confirmBtnAction:function(t){var n;return null===(n=e.onConfirm)||void 0===n?void 0:n.call(e,{e:t})},cancelBtnAction:function(t){var n;return null===(n=e.onCancel)||void 0===n?void 0:n.call(e,{e:t})}}),w=b.getConfirmBtn,O=b.getCancelBtn,C=t.computed(function(){return"modeless"===e.mode}),x=t.computed(function(){return"full-screen"===e.mode}),P=function(t){var n;return null==e||null===(n=e.onCloseBtnClick)||void 0===n?void 0:n.call(e,{e:t})},S=function(t){C.value&&null!=e&&e.draggable&&t.stopPropagation()};r({$el:o,resetPosition:function(){!o.value&&C.value&&e.draggable||(o.value.style.position="relative",o.value.style.left="unset",o.value.style.top="unset")}});var j=t.computed(function(){var t=["".concat(a.value),"".concat(a.value,"__modal-").concat(e.theme),C.value&&e.draggable&&"".concat(a.value,"--draggable"),e.dialogClassName];return x.value?t.push("".concat(a.value,"__fullscreen")):t.push.apply(t,["".concat(a.value,"--default"),"".concat(a.value,"--").concat(e.placement)]),t}),k=t.computed(function(){return x.value?RV({},e.dialogStyle):RV({width:AV(e.width)},e.dialogStyle)});return function(){return t.withDirectives(t.createVNode("div",{key:"dialog",ref:o,class:j.value,style:k.value},[(V=t.computed(function(){var e;return(null===(e=g.value)||void 0===e?void 0:e.loading)||y.value}),D=t.createVNode("div",null,[O({cancelBtn:h.value,globalCancel:c.value.cancel,className:"".concat(a.value,"__cancel")}),w({theme:null==e?void 0:e.theme,confirmBtn:g.value,globalConfirm:c.value.confirm,globalConfirmBtnTheme:c.value.confirmBtnTheme,className:"".concat(a.value,"__confirm"),confirmLoading:V.value})]),E=i("footer",D),t.createVNode(t.Fragment,null,[(b=null!==(m=i("header",t.createVNode("h5",{class:"title"},null)))&&void 0!==m&&m,N=x.value?["".concat(a.value,"__header"),"".concat(a.value,"__header--fullscreen")]:"".concat(a.value,"__header"),_=x.value?["".concat(a.value,"__close"),"".concat(a.value,"__close--fullscreen")]:"".concat(a.value,"__close"),(b||(null==e?void 0:e.closeBtn))&&t.createVNode("div",{class:N,onMousedown:S},[t.createVNode("div",{class:"".concat(a.value,"__header-content")},[{info:t.createVNode(v,{class:"".concat(l.value,"-is-info")},null),warning:t.createVNode(p,{class:"".concat(l.value,"-is-warning")},null),danger:t.createVNode(p,{class:"".concat(l.value,"-is-error")},null),success:t.createVNode(f,{class:"".concat(l.value,"-is-success")},null)}[null==e?void 0:e.theme],b]),null!=e&&e.closeBtn?t.createVNode("span",{class:_,onClick:P},[i("closeBtn",t.createVNode(d,null,null))]):null])),(r=u("default","body"),s="default"===(null==e?void 0:e.theme)?["".concat(a.value,"__body")]:["".concat(a.value,"__body__icon")],x.value&&E?s.push("".concat(a.value,"__body--fullscreen")):x.value&&s.push("".concat(a.value,"__body--fullscreen--without-footer")),t.createVNode("div",{class:s,onMousedown:S},[r])),!!e.footer&&(n=x.value?["".concat(a.value,"__footer"),"".concat(a.value,"__footer--fullscreen")]:"".concat(a.value,"__footer"),E&&t.createVNode("div",{class:n,onMousedown:S},[E]))]))]),[[t.resolveDirective("draggable"),C.value&&e.draggable]]);var n,r,s,m,b,N,_,V,D,E}}}),WV=["theme","onConfirm","onCancel","onCloseBtnClick"];"undefined"!=typeof window&&window.document&&window.document.documentElement&&document.documentElement.addEventListener("click",function(e){zV={x:e.clientX,y:e.clientY},setTimeout(function(){zV=null},100)},!0);var KV=1,UV=t.defineComponent({name:"TDialog",inheritAttrs:!1,props:EV,emits:["update:visible"],setup:function(e,n){var r=ei("dialog"),o=ei(),a=t.ref(null),l=Jl("dialog").globalConfig,i=function(t){var n;null===(n=e.onConfirm)||void 0===n||n.call(e,t)},u=function(t){var n;null===(n=e.onCancel)||void 0===n||n.call(e,t),L({e:t.e,trigger:"cancel"})},c=Ki(function(){return e.attach});ri();var d=t.ref(),v=t.ref(),f=t.computed(function(){return"modal"===e.mode}),p=t.computed(function(){return"modeless"===e.mode}),m=t.computed(function(){return"full-screen"===e.mode}),h=t.computed(function(){return e.visible}),g=t.computed(function(){return["".concat(r.value,"__mask"),!e.showOverlay&&"".concat(o.value,"-is-hidden")]}),y=t.computed(function(){return m.value?["".concat(r.value,"__position_fullscreen")]:f.value||p.value?["".concat(r.value,"__position"),!!e.top&&"".concat(r.value,"--top"),"".concat(e.placement&&!e.top?"".concat(r.value,"--").concat(e.placement):"")]:[]}),b=t.computed(function(){return m.value||f.value||p.value?["".concat(r.value,"__wrap")]:null}),w=t.computed(function(){if(m.value)return{};var t=e.top,n={};void 0!==t&&(n={paddingTop:AV(t)});return n}),O=Li("dialog",{visible:h}).isTopInteractivePopup,C=t.ref(!1);function x(){var e,t;null===(e=v.value.parentNode)||void 0===e||null===(t=e.removeChild)||void 0===t||t.call(e,v.value)}t.watch(function(){return e.visible},function(n){var r;n?(C.value=!0,(f.value&&!e.showInAttachedElement||m.value)&&(e.preventScrollThrough&&document.body.appendChild(v.value),t.nextTick(function(){var e;if(zV&&null!==(e=a.value)&&void 0!==e&&e.$el){var t=a.value.$el;t.style.transformOrigin="".concat(zV.x-t.offsetLeft,"px ").concat(zV.y-t.offsetTop,"px")}})),null===(r=document.activeElement)||void 0===r||r.blur()):(clearTimeout(d.value),d.value=setTimeout(function(){x()},150));k(n)});var P,S,j,k=function(t){t?(document.addEventListener("keydown",_),e.confirmOnEnter&&document.addEventListener("keydown",N)):(document.removeEventListener("keydown",_),e.confirmOnEnter&&document.removeEventListener("keydown",N))},N=function(t){if("input"!==t.target.tagName.toLowerCase()){var n,r=t.code;if(("Enter"===r||"NumpadEnter"===r)&&O())null===(n=e.onConfirm)||void 0===n||n.call(e,{e:t})}},_=function(t){var n,r;"Escape"===t.code&&O()&&(null===(n=e.onEscKeydown)||void 0===n||n.call(e,{e:t}),(null!==(r=e.closeOnEscKeydown)&&void 0!==r?r:l.value.closeOnEscKeydown)&&(L({e:t,trigger:"esc"}),t.stopImmediatePropagation()))},V=(P=function(t){var n,r;e.showOverlay&&(null!==(n=e.closeOnOverlayClick)&&void 0!==n?n:l.value.closeOnOverlayClick)&&(null===(r=e.onOverlayClick)||void 0===r||r.call(e,{e:t}),L({e:t,trigger:"overlay"}))},S=!1,j=!1,{onClick:function(e){S&&j&&(null==P||P(e)),S=!1,j=!1},onMousedown:function(e){S=e.target===e.currentTarget},onMouseup:function(e){j=e.target===e.currentTarget}}),D=V.onClick,E=V.onMousedown,F=V.onMouseup,T=function(t){var n;null===(n=e.onCloseBtnClick)||void 0===n||n.call(e,t),L({trigger:"close-btn",e:t.e})},M=function(){var t;null===(t=e.onBeforeOpen)||void 0===t||t.call(e)},I=function(){var t;null===(t=e.onOpened)||void 0===t||t.call(e)},A=function(){var t;null===(t=e.onBeforeClose)||void 0===t||t.call(e)},B=function(){var t,n,r;null===(t=a.value)||void 0===t||null===(n=t.resetPosition)||void 0===n||n.call(t),null===(r=e.onClosed)||void 0===r||r.call(e)},L=function(t){var r;null===(r=e.onClose)||void 0===r||r.call(e,t),n.emit("update:visible",!1)};t.onMounted(function(){var e=document.documentElement.scrollHeight>document.documentElement.clientHeight?IV():0;v.value=document.createElement("style"),v.value.dataset.id="td_dialog_".concat(+new Date,"_").concat(KV+=1),v.value.innerHTML="\n html body {\n overflow-y: hidden;\n width: calc(100% - ".concat(e,"px);\n }\n ")}),t.onBeforeUnmount(function(){k(!1),x()});var R=t.computed(function(){var t=e.destroyOnClose,n=e.visible,r=e.lazy;return C.value?n||!t:!r});return function(){var o=[(f.value||m.value)&&t.createVNode("div",{key:"mask",class:g.value},null),function(){var r=e.theme;e.onConfirm,e.onCancel,e.onCloseBtnClick;var o=du(e,WV);return t.createVNode("div",{class:b.value},[t.createVNode("div",{class:y.value,style:w.value,onClick:D,onMousedown:E,onMouseup:F},[t.createVNode(HV,t.mergeProps({ref:a,theme:r},o,{onConfirm:i,onCancel:u,onCloseBtnClick:T}),n.slots)])])}()],l={zIndex:e.zIndex},d=["".concat(r.value,"__ctx"),s(s(s({},"".concat(r.value,"__ctx--fixed"),f.value||m.value),"".concat(r.value,"__ctx--absolute"),f.value&&e.showInAttachedElement),"".concat(r.value,"__ctx--modeless"),p.value)];return t.createVNode(t.Teleport,{disabled:!e.attach||!c.value,to:c.value},{default:function(){return[t.createVNode(t.Transition,{duration:300,name:"".concat(r.value,"-zoom__vue"),onBeforeEnter:M,onAfterEnter:I,onBeforeLeave:A,onAfterLeave:B},{default:function(){return[R.value&&t.withDirectives(t.createVNode("div",t.mergeProps({class:d,style:l},n.attrs),[o]),[[t.vShow,e.visible]])]}})]}})}}});function YV(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function $V(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{max:2,min:.5,step:.2},n=e.max,r=e.min,o=e.step,a=e.defaultScale,l=t.ref(null!=a?a:1),i=Aa(function(){var e=Ib(l.value,o);s(e)},50),u=Aa(function(){var e=Ab(l.value,o);s(e)},50),c=function(){l.value=null!=a?a:1},s=function(e){var t=e;en&&(t=n),l.value=t};return t.watch(function(){return e},function(){return c()}),{scale:l,onZoomIn:i,onZoomOut:u,resetScale:c}}(e.imageScale),E=D.scale,F=D.onZoomIn,T=D.onZoomOut,M=D.resetScale,I=function(){var e=t.ref(0);return{rotate:e,onRotate:function(){e.value+=90},resetRotate:function(){e.value=0}}}(),A=I.rotate,B=I.onRotate,L=I.resetRotate,R=function(){V(),M(),L()},z=t.computed(function(){return oD(e.images)}),H=t.computed(function(){var e;return null!==(e=z.value[m.value])&&void 0!==e?e:{mainImage:""}}),W=Li("dialog",{visible:y}).isTopInteractivePopup,K=function(){var e=m.value-1;R(),h(e<0?0:e,{trigger:"prev"})},U=function(){var e=m.value+1;R(),h(e>=z.value.length?m.value:e,{trigger:"next"})},Y=function(t){e.onDownload?e.onDownload(t):function(e){var t,n,r,o=new Image,a=(null==e||null===(t=e.split)||void 0===t||null===(t=t.call(e,"?"))||void 0===t||null===(t=t[0])||void 0===t||null===(n=t.split)||void 0===n||null===(n=n.call(t,"#"))||void 0===n||null===(n=n[0])||void 0===n||null===(r=n.split)||void 0===r?void 0:r.call(n,"/").pop())||Math.random().toString(32).slice(2);o.setAttribute("crossOrigin","anonymous"),o.onload=function(){var e=document.createElement("canvas");e.width=o.width,e.height=o.height,e.getContext("2d").drawImage(o,0,0,o.width,o.height),e.toBlob(function(e){var t=URL.createObjectURL(e),n=document.createElement("a");n.download=a,n.href=t,n.click(),n.remove(),URL.revokeObjectURL(t)})},o.src=e}(t)},$=function(){b(!0)},Z=function(t){var n;b(!1),null===(n=e.onClose)||void 0===n||n.call(e,t)},q=function(e){Z({e:e,trigger:"close-btn"})},X=function(t){e.closeOnOverlay&&Z({e:t,trigger:"overlay"})},G=function(t){switch(t.stopPropagation(),t.code){case nD.left:K();break;case nD.right:U();break;case nD.up:F();break;case nD.down:T();break;case nD.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(DV,{icon:function(){return t.createVNode(Zc,null,null)},class:"".concat(o.value,"__header-pre-bt"),onClick:j},null),t.createVNode("div",{class:"".concat(o.value,"__header-prev")},[t.createVNode("div",{class:"".concat(o.value,"__header-trans"),style:ee.value},[z.value.map(function(e,n){return t.createVNode("div",{key:n,class:["".concat(o.value,"__header-box"),s({},"".concat(r.value,"-is-active"),n===m.value)]},[t.createVNode(I_,{src:e.thumbnail||e.mainImage,error:"",class:"".concat(o.value,"__header-img"),onClick:function(){return function(e){h(e,{trigger:"current"})}(n)}},null)])})])])])},ne=function(e){var n="prev"===e?0:180,r=a("navigationArrow",t.createVNode(os,{style:{transform:"rotate(".concat(n,"deg)")},size:"24px"},null));return t.createVNode(DV,{class:"".concat(o.value,"__modal-").concat(e,"-bt"),onClick:"prev"===e?K:U,icon:function(){return r}},null)},re=function(){if(!1!==e.closeBtn)return t.createVNode("div",{class:["".concat(o.value,"__modal-icon"),"".concat(o.value,"__modal-close-bt")],onClick:q},[a("closeBtn",t.createVNode(Ts,{size:"24px"},null))])};return function(){return"modeless"===e.mode?t.createVNode(t.Fragment,null,[a("trigger",{params:{open:$}}),t.createVNode(tD,{zIndex:S.value,visible:y.value,index:m.value,images:z.value,scale:E.value,rotate:A.value,mirror:N.value,currentImage:H.value,onRotate:B,onZoomIn:F,onZoomOut:T,onMirror:_,onReset:R,onClose:Z,onDownload:Y,draggable:e.draggable,showOverlay:i.value,title:e.title,imageReferrerpolicy:f.value},null)]):t.createVNode(t.Fragment,null,[a("trigger",{params:{open:$}}),t.createVNode(t.Teleport,{disabled:!e.attach||!C.value,to:C.value},{default:function(){return[t.createVNode(t.Transition,null,{default:function(){return[(y.value||!w.value)&&t.withDirectives(t.createVNode("div",{ref:J,class:x.value,style:{zIndex:S.value},onWheel:Q,tabindex:-1,onKeydown:G},[!!i.value&&t.createVNode("div",{class:"".concat(o.value,"__modal-mask"),onClick:X},null),z.value.length>1&&t.createVNode(t.Fragment,null,[te(),t.createVNode("div",{class:"".concat(o.value,"__modal-index")},[e.title&&a("title"),"".concat(m.value+1,"/").concat(z.value.length)]),ne("prev"),ne("next")]),re(),t.createVNode(eD,{onZoomIn:F,onZoomOut:T,onMirror:_,onReset:R,onRotate:B,onDownload:Y,scale:E.value,currentImage:H.value},null),t.createVNode(VV,{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]])]}})]}})])}}}),lD=Nl(aD),iD={action:{type:[String,Function]},content:{type:[String,Function]},default:{type:[String,Function]}},uD=t.defineComponent({name:"TListItem",props:iD,setup:function(){var e=ei("list-item"),n=Rl();return function(){var r=n("content"),o=n("default"),a=n("action");return t.createVNode("li",{class:e.value},[t.createVNode("div",{class:"".concat(e.value,"-main")},[o||r,a&&t.createVNode("li",{class:"".concat(e.value,"__action")},[a])])])}}}),cD={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},sD="load-more";function dD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function vD(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 pD(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=r.value.length?pi("List","".concat(a," does not exist in data, check `index` or `key` please.")):o.scrollToElement(hD(hD({},e),{},{index:a-1})):pi("List","scrollTo: `index` or `key` must exist.")}}}(e.scroll,a,d),f=v.virtualConfig,p=v.cursorStyle,m=v.listStyle,h=v.isVirtualScroll,g=v.onInnerVirtualScroll,y=v.scrollToElement,b=t.computed(function(){return["".concat(i.value),u.value[e.size],s(s(s({},"".concat(i.value,"--split"),e.split),"".concat(i.value,"--stripe"),e.stripe),"".concat(i.value,"--vertical-action"),"vertical"===e.layout)]}),w=function(t){var n,r=t.target,o=r.scrollTop,a=r.scrollHeight,l=r.clientHeight;h.value&&g(t),null===(n=e.onScroll)||void 0===n||n.call(e,{e:t,scrollTop:o,scrollBottom:a-l-o})},O=t.computed(function(){return To(e.asyncLoading)&&["loading","load-more"].includes(e.asyncLoading)?"".concat(i.value,"__load ").concat(i.value,"__load--").concat(e.asyncLoading):"".concat(i.value,"__load")}),C=function(){if(e.asyncLoading&&To(e.asyncLoading)){if("loading"===e.asyncLoading)return t.createVNode("div",null,[t.createVNode(Du,null,null),t.createVNode("span",null,[l.value.loadingText])]);if(e.asyncLoading===sD)return t.createVNode("span",null,[l.value.loadingMoreText])}return c("asyncLoading")},x=function(t){var n;To(e.asyncLoading)&&e.asyncLoading!==sD||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(uD,la(e,"slots"),e.slots)])})])]):t.createVNode("ul",{class:"".concat(i.value,"__inner")},[c("default")]),n?t.createVNode("div",{class:"".concat(i.value,"__footer")},[n]):null])),t.createVNode("div",{class:O.value,onClick:x},[C()])];return t.createVNode("div",{class:b.value,onScroll:w,ref:a,style:h.value?"position:relative":void 0},[o])}}}),yD={avatar:{type:[String,Function]},description:{type:[String,Function]},image:{type:[String,Function]},title:{type:[String,Function]}},bD=t.defineComponent({name:"TListItemMeta",props:yD,setup:function(e,n){var r=ei("list-item__meta"),o=Hl(),a=Rl(),l=function(){(e.avatar||n.slots.avatar)&&console.warn("`avatar` is going to be deprecated, please use `image` instead");var a=o("avatar","image");if(a)return To(a)?t.createVNode("div",{class:"".concat(r.value,"-avatar")},[t.createVNode("img",{src:a},null)]):t.createVNode("div",{class:"".concat(r.value,"-avatar")},[a])};return function(){var e=a("title"),n=a("description"),o=[l(),t.createVNode("div",{class:"".concat(r.value,"-content")},[e&&t.createVNode("h3",{class:"".concat(r.value,"-title")},[e]),n&&t.createVNode("p",{class:"".concat(r.value,"-description")},[n])])];return t.createVNode("div",{class:r.value},[o])}}}),wD=Nl(gD),OD=Nl(uD),CD=Nl(bD),xD="line",PD="plump",SD="circle",jD="small",kD="medium",ND="large",_D=72,VD=112,DD=160,ED=14/_D,FD=20/VD,TD=36/DD,MD=["success","error","warning"],ID={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:""}},AD=t.defineComponent({name:"TProgress",props:ID,setup:function(e){var n=Rl(),r=ei("progress"),o=si({CloseCircleFilledIcon:_s,CheckCircleFilledIcon:Bc,ErrorCircleFilledIcon:sd,CloseIcon:Ts,CheckIcon:Wc,ErrorIcon:md}),a=o.CloseCircleFilledIcon,l=o.CheckCircleFilledIcon,i=o.ErrorCircleFilledIcon,u=o.CloseIcon,c={success:o.CheckIcon,warning:o.ErrorIcon,error:u},d={success:l,warning:i,error:a},v=t.computed(function(){return!e.status&&e.percentage>=100?"success":e.status||"default"}),f=t.computed(function(){var t={};if(e.strokeWidth){var n=To(e.strokeWidth)?e.strokeWidth:"".concat(e.strokeWidth,"px");t.height=n,t.borderRadius=n}return e.trackColor&&(t.backgroundColor=e.trackColor),t}),p=t.computed(function(){return{width:"".concat(e.percentage,"%"),background:e.color&&pu(e.color)}}),m=t.computed(function(){return{stroke:E(e.color)?"":e.color}}),h=t.computed(function(){return{stroke:E(e.trackColor)?"":e.trackColor}}),g=t.computed(function(){var t=VD;if(!e.size)return t;var n=jD,r=ND,o=kD;switch(e.size){case n:t=_D;break;case o:t=VD;break;case r:t=DD;break;default:var a=Number(e.size);t=!isNaN(a)&&a>0?a:VD}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!==SD)return{};var t=g.value*FD;return g.value<=_D?t=g.value*ED:g.value>=DD&&(t=g.value*TD),{width:"".concat(g.value,"px"),height:"".concat(g.value,"px"),fontSize:"".concat(t,"px")}}),O=t.computed(function(){var t=e.size===jD?4:6;return e.strokeWidth?Number(e.strokeWidth):t}),C=t.computed(function(){var t=(g.value-O.value)/2,n=2*Math.PI*t,r=e.percentage/100;return"".concat(n*r," ").concat(n*(1-r))}),x=t.computed(function(){return e.theme===SD?c:d}),P=function(){var n="".concat(e.percentage,"%"),o=e.status||"";if(MD.includes(o)&&e.theme!==PD){var a=x.value[o];a&&(n=t.createVNode(a,{class:["".concat(r.value,"__icon")]},null))}return n},S=t.ref(!0),j=t.ref(null),k=t.computed(function(){return S.value?"".concat(r.value,"--over-ten"):"".concat(r.value,"--under-ten")});function N(){return(N=Gp(bm.mark(function n(){var o;return bm.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:if(e.theme!==PD){n.next=3;break}if(j.value&&!1!==e.label){n.next=1;break}return n.abrupt("return");case 1:return n.next=2,t.nextTick();case 2:o=j.value.querySelector(".".concat(r.value,"__info"))||j.value.nextElementSibling,S.value=j.value.clientWidth>(null==o?void 0:o.clientWidth)+10;case 3:case"end":return n.stop()}},n)}))).apply(this,arguments)}return zi(j,function(){return N.apply(this,arguments)}),function(){var o=t.createVNode("div",{class:"".concat(r.value,"__info")},[n("label",P())]);return t.createVNode("div",{class:r.value},[e.theme===xD&&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===PD&&t.createVNode("div",{class:["".concat(r.value,"__bar ").concat(r.value,"--plump ").concat(k.value),s({},"".concat(r.value,"--status--").concat(v.value),v.value)],style:f.value},[t.createVNode("div",{class:"".concat(r.value,"__inner"),ref:j,style:p.value},[S.value&&o]),!S.value&&o]),e.theme===SD&&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)])])])}}}),BD=Nl(AD),LD={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)}}},RD={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"}]]},zD=function(e){var t=Object.create(null);return["width","height","marginRight","marginLeft","margin","size","background","backgroundColor"].forEach(function(n){if(n in e){var r=e[n],o=Uo(r)?"".concat(r,"px"):r;if("size"===n){var a=[o,o];t.width=a[0],t.height=a[1]}else t[n]=o}}),t},HD=t.defineComponent({name:"TSkeleton",props:LD,setup:function(e,n){var r=n.slots,o=t.ref(!1),a=ei("skeleton"),l=Hl(),i=function(t){return["".concat(a.value,"__col"),"".concat(a.value,"--type-").concat(t.type||"text"),s({},"".concat(a.value,"--animation-").concat(e.animation),e.animation)]},u=function(n){var r=n||e.rowCol;return r.map(function(e){return t.createVNode("div",{class:["".concat(a.value,"__row")]},[(n=e,(S(n)?n:Uo(n)?new Array(n).fill({type:"text"}):[n]).map(function(e){return t.createVNode("div",{class:i(e),style:zD(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(RD[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])}}}}),WD=Nl(HD),KD={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}},UD=function(e){return 1-Math.abs(Math.pow(e-1,4))},YD=function(){return Ti(function e(t){var n=this,r=t.from,o=t.to,a=t.duration,l=void 0===a?200:a,i=t.onStart,u=t.onUpdate,c=void 0===u?function(){}:u,d=t.onFinish;Mi(this,e),s(this,"from",void 0),s(this,"to",void 0),s(this,"duration",void 0),s(this,"onStart",void 0),s(this,"onUpdate",void 0),s(this,"onFinish",void 0),s(this,"startTime",void 0),s(this,"started",void 0),s(this,"finished",void 0),s(this,"timer",void 0),s(this,"keys",void 0),s(this,"time",0),s(this,"elapsed",0),this.from=r,this.to=o,this.duration=l,this.onStart=i,this.onUpdate=c,this.onFinish=d,this.startTime=Date.now(),this.started=!1,this.finished=!1,this.timer=null,this.keys={},Object.entries(r).forEach(function(e){var t=Ya(e,2),r=t[0],o=t[1];void 0===n.to[r]&&(n.to[r]=o)}),Object.entries(o).forEach(function(e){var t=Ya(e,2),r=t[0],o=t[1];void 0===n.from[r]&&(n.from[r]=o)})},[{key:"update",value:function(){var e=this;if(this.time=Date.now(),!(this.time=this.duration)return this.finished=!0,void(null===(t=this.onFinish)||void 0===t||t.call(this,this.keys));var n=Math.min(this.time-this.startTime,this.duration);this.elapsed=n;var r,o=UD(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=UD(t/this.duration);this.timer=setInterval(function(){e.update(),e.finished&&clearInterval(e.timer)},n)}},{key:"normalStart",value:function(){var e=this,t=function(){e.update(),e.timer=requestAnimationFrame(t),e.finished&&(cancelAnimationFrame(e.timer),e.timer=null)};t()}},{key:"start",value:function(){this.startTime=Date.now(),mu()<10?this.polyfillStart():this.normalStart()}},{key:"stop",value:function(){mu()<10?clearInterval(this.timer):cancelAnimationFrame(this.timer),this.timer=null}}])}(),$D={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 ZD=t.defineComponent({name:"TStatistic",props:KD,setup:function(e,n){var r,o,a=n.expose,l=ei("statistic"),i=Rl(),u=si({ArrowTriangleUpFilledIcon:uc,ArrowTriangleDownFilledIcon:rc}),c=u.ArrowTriangleUpFilledIcon,s=u.ArrowTriangleDownFilledIcon,d={increase:t.createVNode(c,null,null),decrease:t.createVNode(s,null,null)},v=t.computed(function(){return Uo(e.value)?e.value:0}),f=t.ref(null!==(r=null===(o=e.animation)||void 0===o?void 0:o.valueFrom)&&void 0!==r?r:e.value),p=t.computed(function(){var t,n,r;return null!==(t=null!==(n=e.decimalPlaces)&&void 0!==n?n:null===(r=v.value.toString().split(".")[1])||void 0===r?void 0:r.length)&&void 0!==t?t:0}),m=t.ref(),h=t.toRefs(e).value,g=function(){var t,n,r,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null!==(t=null===(n=e.animation)||void 0===n?void 0:n.valueFrom)&&void 0!==t?t:0,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:v.value;o!==a&&(m.value=new YD({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:$D[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(WD,{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])])}}}),qD=Nl(ZD),XD={animation:{type:String,default:"slide",validator:function(e){return!e||["slide","fade"].includes(e)}},autoplay:{type:Boolean,default:!0},current:{type:Number,default:0},defaultCurrent:{type:Number,default:0},direction:{type:String,default:"horizontal",validator:function(e){return!e||["horizontal","vertical"].includes(e)}},duration:{type:Number,default:300},height:{type:Number},interval:{type:Number,default:5e3},loop:{type:Boolean,default:!0},navigation:{type:[Object,Function]},stopOnHover:{type:Boolean,default:!0},theme:{type:String,default:"light",validator:function(e){return!e||["light","dark"].includes(e)}},trigger:{type:String,default:"hover",validator:function(e){return!e||["hover","click"].includes(e)}},type:{type:String,default:"default",validator:function(e){return!e||["default","card"].includes(e)}},cardScale:{type:Number,default:210/332},onChange:Function};function GD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function JD(e){for(var t=1;t=e.swiperItemLength/2?e.swiperItemLength+1:e.index>e.currentIndex+1&&e.index-e.currentIndex>=e.swiperItemLength/2?-2:e.index}),i=t.computed(function(){if("card"!==e.type)return 0;var t=e.getWrapAttribute("offsetWidth")||0,n=!a.value&&e.swiperItemLength>2?l.value:e.index;return Math.abs(n-e.currentIndex)<=1?t*((n-e.currentIndex)*(1-eE*e.cardScale)-eE+1)/2:n2?l.value:e.index,n=t===e.currentIndex,r=Math.round(Math.abs(t-e.currentIndex))<=1;return n?2:r?1:0}),c=t.computed(function(){if("fade"===e.animation)return{opacity:a.value?1:0,transition:e.isSwitching?"opacity ".concat(e.duration/1e3,"s"):"",zIndex:a.value?1:0};if("card"===e.type){var t=(!a.value&&e.swiperItemLength>2?l.value:e.index)===e.currentIndex;return{transform:"translateX(".concat(i.value,"px) scale(").concat(t?1:e.cardScale,")"),transition:"transform ".concat(e.duration/1e3,"s ease"),zIndex:u.value}}return{}});return function(){var n;return t.createVNode("div",{class:["".concat(o.value,"-swiper__container__item"),s(s(s({},"".concat(o.value,"-swiper__card"),"card"===e.type),"".concat(o.value,"-is-active"),"card"===e.type&&a.value),"".concat(o.value,"-swiper__fade"),"fade"===e.animation)],style:c.value},[(null===(n=r.default)||void 0===n?void 0:n.call(r,{}))||[]])}}});function nE(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function rE(e){for(var t=1;t=O.value:!e.loop&&p.value+2>=O.value}),P=t.computed(function(){return[e.autoplay,p.value,e.duration,e.interval]}),S=t.computed(function(){return s(s(s(s(s(s({},"".concat(o.value,"-swiper__wrap"),!0),"".concat(o.value,"-swiper--inside"),"inside"===C.value.placement),"".concat(o.value,"-swiper--outside"),"outside"===C.value.placement),"".concat(o.value,"-swiper--vertical"),"vertical"===e.direction),"".concat(o.value,"-swiper--large"),"large"===C.value.size),"".concat(o.value,"-swiper--small"),"small"===C.value.size)}),j=t.computed(function(){var t=e.height?"".concat(e.height,"px"):"".concat(M("offsetHeight"),"px");if("card"===e.type||"fade"===e.animation)return{height:t};if("slide"===e.animation){var n={transition:g.value?"transform ".concat(e.duration/1e3,"s ease"):""},r=p.value;return O.value>1&&(r+=1,(v||f)&&(n.transition="")),"vertical"===e.direction?(n.height=t,n.transform="translate3d(0, -".concat(100*r,"%, 0px)")):n.transform="translate3d(-".concat(100*r,"%, 0px, 0px)"),["msTransform","WebkitTransform"].forEach(function(e){n[e]=n.transform}),n}return{}}),k=function(){var n=w("SwiperItem");O.value=n.length;var r=n.map(function(n,r){var o,a,l=rE(rE({},e),n.props);return t.createVNode(tE,t.mergeProps({index:r,currentIndex:p.value,isSwitching:g.value,getWrapAttribute:M,swiperItemLength:O.value},l),"function"==typeof(a=o=n.children.default())||"[object Object]"===Object.prototype.toString.call(a)&&!t.isVNode(a)?o:{default:function(){return[o]}})});if("slide"===e.animation&&r.length>1){var o=t.cloneVNode(r[0],{key:"swiper-item-append-".concat(0)}),a=t.cloneVNode(r[r.length-1],{key:"swiper-item-prepend-".concat(r.length-1)});r.unshift(a),r.push(o)}return r},N=function(t,n){var o,a=t%O.value;m.value=a,r("update:current",a),null===(o=e.onChange)||void 0===o||o.call(e,a,n),g.value=!0,"slide"===e.animation&&O.value>1&&"card"!==e.type&&(a=t,v=!1,f=!1,t>=O.value&&(_(),setTimeout(function(){f=!0,p.value=0},e.duration)),0===p.value&&O.value>=2&&t===O.value-1&&(a=-1,m.value=O.value-1,_(),setTimeout(function(){v=!0,p.value=O.value-1},e.duration))),p.value=a},_=function(){c&&(clearTimeout(c),c=null)},V=function(){e.autoplay&&e.interval>0&&(_(),c=setTimeout(function(){N(p.value+1,{source:"autoplay"})},0===p.value?e.interval-(e.duration+50):e.interval))},D=function(){h.value=!0,e.stopOnHover&&_(),"hover"===C.value.showSlideBtn&&(y.value=!0)},E=function(){h.value=!1,x.value||V(),"hover"===C.value.showSlideBtn&&(y.value=!1)},F=function(t){if(!g.value)return"card"===e.type?N(p.value+1>=O.value?0:p.value+1,t):N(p.value+1,t)},T=function(t){if(!g.value)return p.value-1<0?"slide"===e.animation&&2===O.value?N(0,t):N(O.value-1,t):N(p.value-1,t)},M=function(e){var t;return null===(t=b.value)||void 0===t||null===(t=t.parentNode)||void 0===t?void 0:t[e]},I=function(){if(t.isVNode(e.navigation))return e.navigation;var n,r=a("navigation");if(r&&t.isVNode(null==r?void 0:r[0]))return r;if("fraction"===C.value.type)return t.createVNode("div",{class:["".concat(o.value,"-swiper__navigation"),"".concat(o.value,"-swiper__navigation--fraction")]},[(n=p.value+1>O.value?1:p.value+1,t.createVNode("div",{class:"".concat(o.value,"-swiper__arrow")},[t.createVNode("div",{class:"".concat(o.value,"-swiper__arrow-left"),onClick:function(){return T({source:"click"})}},[t.createVNode(i,null,null)]),t.createVNode("div",{class:"".concat(o.value,"-swiper__navigation-text-fraction")},[n,"/",O.value]),t.createVNode("div",{class:"".concat(o.value,"-swiper__arrow-right"),onClick:function(){return F({source:"click"})}},[t.createVNode(u,null,null)])]))]);var l=w("SwiperItem");return t.createVNode("ul",{class:["".concat(o.value,"-swiper__navigation"),s(s(s({},"".concat(o.value,"-swiper__navigation-bars"),"bars"===C.value.type),"".concat(o.value,"-swiper__navigation-dots"),"dots"===C.value.type),"".concat(o.value,"-swiper__navigation-dots-bar"),"dots-bar"===C.value.type)]},[l.map(function(n,r){return t.createVNode("li",{key:r,class:["".concat(o.value,"-swiper__navigation-item"),s({},"".concat(o.value,"-is-active"),r===m.value)],onMouseenter:function(){return function(t){"hover"===e.trigger&&N(t,{source:"hover"})}(r)},onClick:function(){return function(t){"click"===e.trigger&&N(t,{source:"click"})}(r)}},[t.createVNode("span",null,null)])})])};return t.watch(function(){return P.value},function(){V()}),t.watch(function(){return g.value},function(){g.value&&(d&&clearTimeout(d),d=setTimeout(function(){g.value=!1,d=0,x.value&&_()},e.duration+50))}),t.watch(function(){return e.current},function(){N(e.current,{source:"autoplay"})}),t.onMounted(function(){V(),y.value="always"===C.value.showSlideBtn}),function(){return t.createVNode("div",{class:["".concat(o.value,"-swiper")],onMouseenter:D,onMouseleave:E,ref:b},[t.createVNode("div",{class:S.value},[t.createVNode("div",{class:["".concat(o.value,"-swiper__content"),s(s({},"".concat(o.value,"-swiper-fade"),"fade"===e.animation),"".concat(o.value,"-swiper-card"),"card"===e.type)]},[t.createVNode("div",{class:"".concat(o.value,"-swiper__container"),style:j.value},[k()])]),I(),y.value?t.createVNode("div",{class:["".concat(o.value,"-swiper__arrow"),"".concat(o.value,"-swiper__arrow--default")]},[t.createVNode("div",{class:"".concat(o.value,"-swiper__arrow-left"),onClick:function(){return T({source:"click"})}},[t.createVNode(i,null,null)]),t.createVNode("div",{class:"".concat(o.value,"-swiper__arrow-right"),onClick:function(){return F({source:"click"})}},[t.createVNode(u,null,null)])]):null])])}}}),lE=Nl(aE),iE=Nl(tE),uE={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 cE(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 sE(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 vE(){var e=ei();return{classPrefix:e.value,tableBaseClass:{table:"".concat(e.value,"-table"),columnResizableTable:"".concat(e.value,"-table--column-resizable"),overflowVisible:"".concat(e.value,"-table--overflow-visible"),body:"".concat(e.value,"-table__body"),content:"".concat(e.value,"-table__content"),topContent:"".concat(e.value,"-table__top-content"),bottomContent:"".concat(e.value,"-table__bottom-content"),paginationWrap:"".concat(e.value,"-table__pagination-wrap"),tdLastRow:"".concat(e.value,"-table__td-last-row"),tdFirstCol:"".concat(e.value,"-table__td-first-col"),thCellInner:"".concat(e.value,"-table__th-cell-inner"),tableRowEdit:"".concat(e.value,"-table--row-edit"),cellEditable:"".concat(e.value,"-table__cell--editable"),cellEditWrap:"".concat(e.value,"-table__cell-wrap"),bordered:"".concat(e.value,"-table--bordered"),striped:"".concat(e.value,"-table--striped"),hover:"".concat(e.value,"-table--hoverable"),loading:"".concat(e.value,"-table--loading"),rowspanAndColspan:"".concat(e.value,"-table--rowspan-colspan"),empty:"".concat(e.value,"-table__empty"),emptyRow:"".concat(e.value,"-table__empty-row"),headerFixed:"".concat(e.value,"-table--header-fixed"),columnFixed:"".concat(e.value,"-table--column-fixed"),widthOverflow:"".concat(e.value,"-table--width-overflow"),multipleHeader:"".concat(e.value,"-table--multiple-header"),footerAffixed:"".concat(e.value,"-table--footer-affixed"),horizontalBarAffixed:"".concat(e.value,"-table--horizontal-bar-affixed"),affixedHeader:"".concat(e.value,"-table--affixed-header"),affixedHeaderElm:"".concat(e.value,"-table__affixed-header-elm"),affixedFooterElm:"".concat(e.value,"-table__affixed-footer-elm"),affixedFooterWrap:"".concat(e.value,"-table__affixed-footer-wrap"),scrollbarDivider:"".concat(e.value,"-table__scroll-bar-divider"),fullHeight:"".concat(e.value,"-table--full-height"),resizeLine:"".concat(e.value,"-table__resize-line"),obviousScrollbar:"".concat(e.value,"-table__scrollbar--obvious"),affixedHeaderWrap:"".concat(e.value,"-table__affixed-header-elm-wrap")},tdAlignClasses:{left:"".concat(e.value,"-align-left"),right:"".concat(e.value,"-align-right"),center:"".concat(e.value,"-align-center")},tableHeaderClasses:{header:"".concat(e.value,"-table__header"),thBordered:"".concat(e.value,"-table__header-th--bordered"),fixed:"".concat(e.value,"-table__header--fixed"),multipleHeader:"".concat(e.value,"-table__header--multiple")},tableFooterClasses:{footer:"".concat(e.value,"-table__footer"),fixed:"".concat(e.value,"-table__footer--fixed")},tableAlignClasses:{top:"".concat(e.value,"-vertical-align-top"),middle:"".concat(e.value,"-vertical-align-middle"),bottom:"".concat(e.value,"-vertical-align-bottom")},tableRowFixedClasses:{top:"".concat(e.value,"-table__row--fixed-top"),bottom:"".concat(e.value,"-table__row--fixed-bottom"),firstBottom:"".concat(e.value,"-table__row--fixed-bottom-first"),withoutBorderBottom:"".concat(e.value,"-table__row--without-border-bottom")},tableColFixedClasses:{left:"".concat(e.value,"-table__cell--fixed-left"),right:"".concat(e.value,"-table__cell--fixed-right"),lastLeft:"".concat(e.value,"-table__cell--fixed-left-last"),firstRight:"".concat(e.value,"-table__cell--fixed-right-first"),leftShadow:"".concat(e.value,"-table__content--scrollable-to-left"),rightShadow:"".concat(e.value,"-table__content--scrollable-to-right")},tableLayoutClasses:{auto:"".concat(e.value,"-table--layout-auto"),fixed:"".concat(e.value,"-table--layout-fixed")},tdEllipsisClass:"".concat(e.value,"-table-td--ellipsis"),tableFullRowClasses:{base:"".concat(e.value,"-table__row--full"),innerFullRow:"".concat(e.value,"-table__row-full-inner"),innerFullElement:"".concat(e.value,"-table__row-full-element"),firstFullRow:"".concat(e.value,"-table__first-full-row"),lastFullRow:"".concat(e.value,"-table__last-full-row")},tableExpandClasses:{iconBox:"".concat(e.value,"-table__expand-box"),iconCell:"".concat(e.value,"-table__expandable-icon-cell"),rowExpanded:"".concat(e.value,"-table__row--expanded"),rowFolded:"".concat(e.value,"-table__row--folded"),row:"".concat(e.value,"-table__expanded-row"),rowInner:"".concat(e.value,"-table__expanded-row-inner"),expanded:"".concat(e.value,"-table__row--expanded"),collapsed:"".concat(e.value,"-table__row--collapsed")},tableSortClasses:{sortable:"".concat(e.value,"-table__cell--sortable"),sortColumn:"".concat(e.value,"-table__sort-column"),title:"".concat(e.value,"-table__cell--title"),trigger:"".concat(e.value,"-table__cell--sort-trigger"),doubleIcon:"".concat(e.value,"-table__double-icons"),sortIcon:"".concat(e.value,"-table__sort-icon"),iconDirection:{asc:"".concat(e.value,"-table-sort-asc"),desc:"".concat(e.value,"-table-sort-desc")},iconActive:"".concat(e.value,"-table__sort-icon--active"),iconDefault:"".concat(e.value,"-icon-sort--default")},tableSelectedClasses:{selected:"".concat(e.value,"-table__row--selected"),disabled:"".concat(e.value,"-table__row--disabled"),checkCell:"".concat(e.value,"-table__cell-check")},tableFilterClasses:{filterable:"".concat(e.value,"-table__cell--filterable"),popup:"".concat(e.value,"-table__filter-pop"),icon:"".concat(e.value,"-table__filter-icon"),popupContent:"".concat(e.value,"-table__filter-pop-content"),result:"".concat(e.value,"-table__filter-result"),inner:"".concat(e.value,"-table__row-filter-inner"),bottomButtons:"".concat(e.value,"-table__filter--bottom-buttons"),contentInner:"".concat(e.value,"-table__filter-pop-content-inner"),iconWrap:"".concat(e.value,"-table__filter-icon-wrap")},asyncLoadingClass:"".concat(e.value,"-table__async-loading"),isFocusClass:"".concat(e.value,"-is-focus"),isLoadingClass:"".concat(e.value,"-is-loading"),isLoadMoreClass:"".concat(e.value,"-is-load-more"),tableTreeClasses:{col:"".concat(e.value,"-table__tree-col"),inlineCol:"".concat(e.value,"-table__tree-col--inline"),icon:"".concat(e.value,"-table__tree-op-icon"),leafNode:"".concat(e.value,"-table__tree-leaf-node")},tableDraggableClasses:{rowDraggable:"".concat(e.value,"-table--row-draggable"),rowHandlerDraggable:"".concat(e.value,"-table--row-handler-draggable"),colDraggable:"".concat(e.value,"-table--col-draggable"),handle:"".concat(e.value,"-table__handle-draggable"),ghost:"".concat(e.value,"-table__ele--draggable-ghost"),chosen:"".concat(e.value,"-table__ele--draggable-chosen"),dragging:"".concat(e.value,"-table__ele--draggable-dragging"),dragSortTh:"".concat(e.value,"-table__th--drag-sort")},virtualScrollClasses:{cursor:"".concat(e.value,"-table__virtual-scroll-cursor"),header:"".concat(e.value,"-table__virtual-scroll-header")},positiveRotate90:"".concat(e.value,"-positive-rotate-90"),negativeRotate180:"".concat(e.value,"-negative-rotate-180")}}function fE(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){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 pE=t.defineComponent({name:"TEllipsis",props:{content:{type:[String,Function]},default:{type:[String,Function]},tooltipContent:{type:[String,Number,Function]},placement:String,attach:[String,Function],tooltipProps:Object,zIndex:Number,overlayClassName:String,classPrefix:{type:String,default:"t"}},setup:function(e){var n=t.ref(),r=t.ref(!1),o=t.ref(!1),a=Hl(),l=t.computed(function(){return["".concat(e.classPrefix,"-table__ellipsis"),"".concat(e.classPrefix,"-text-ellipsis")]}),i=t.computed(function(){return["".concat(e.classPrefix,"-table__ellipsis-content"),e.overlayClassName]});t.onMounted(function(){o.value=Ol(n.value)}),t.onUpdated(function(){o.value=Ol(n.value)});var u=function(e){e||(r.value=!1)},c=po(function(e){"mouseleave"===e.type?n.value:n.value&&(r.value=!0)},80);return function(){var d,v=a("default","content"),f=t.createVNode("div",{ref:n,class:l.value,onMouseenter:c,onMouseleave:c,style:{textOverflow:o.value?"ellipsis":"clip"}},[v]),p=null,m=e.tooltipProps;if(o.value&&r.value){var h=function(e){for(var t=1;t1});return{thList:l,isMultipleHeader:i,spansAndLeafNodes:a,renderTitleWidthIcon:function(n,a,l,i,c,d){var v,f=Ya(n,3),p=f[0],m=f[1],h=f[2],g=s(s({},r.sortable,m),o.filterable,h),y=H(i)?i(t.h,{col:a,colIndex:l}):void 0,b=void 0!==i?Boolean(i):Boolean(a.ellipsis);return t.createVNode("div",{class:g},[t.createVNode("div",{class:r.title},[b?t.createVNode(pE,{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 bE(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function wE(e){var n,r,o=e.isWidthOverflow,a=e.tableContentRef,l=e.showColumnShadow,i=e.getThWidthList,u=e.updateThWidthList,c=e.setTableElmWidth,d=e.updateTableAfterColumnResize,v=e.onColumnResizeChange,f=t.ref(),p=t.ref({}),m=t.ref([]);t.onMounted(function(){var e="undefined"!=typeof document;n=e?document.onselectstart:null,r=e?document.ondragstart:null});var h=function(e,t,n){for(var r=t;e[r]&&!1===e[r].resizable;)"next"===n?r+=1:r-=1;return e[r]},g=function(e,t){e&&(m.value=e,e.forEach(function(n,r){var o=h(e,r-1,"prev"),a=h(e,r+1,"next"),l=t?p.value[t.colKey].prev:a,i=t?p.value[t.colKey].next:o,u=0===r?l:o,c=r===e.length-1?i:a;p.value[n.colKey]={prev:u,next:c,current:{prevSibling:h(e,r-1,"prev"),nextSibling:h(e,r+1,"next")}},g(n.children,n)}))},y={isDragging:!1,draggingCol:null,draggingStart:0,effectCol:"next"},b=t.reactive({display:"none",height:"10px",left:"10px",bottom:"0"}),w=function(e){return"right"===e.fixed&&l.right},O=function(e){var t,n,r=Uo(e.minWidth)?e.minWidth:parseInt(e.minWidth||"0",10);return{minColWidth:Math.max((null===(t=e.resize)||void 0===t?void 0:t.minWidth)||80,r),maxColWidth:(null===(n=e.resize)||void 0===n?void 0:n.maxWidth)||600}},C=function(e,t,n,r){return t?function(e,t,n,r){var o=n.right-r.left,a=n.left-r.left,l="next"===y.effectCol?e:t,i=O(l);return{resizeLinePos:o,minResizeLineLeft:a+i.minColWidth,maxResizeLineLeft:a+i.maxColWidth}}(e,t,n,r):function(e,t){var n=e.left-t.left,r=e.left-t.left;return{resizeLinePos:n,minResizeLineLeft:r,maxResizeLineLeft:r}}(n,r)};return{resizeLineRef:f,resizeLineStyle:b,onColumnMouseover:function(e,t){if(f.value&&!y.isDragging&&e.target){var n=e.target.closest("th"),r=n.getAttribute("data-colkey");if(m.value.find(function(e){return e.colKey===r})){var o,a=n.getBoundingClientRect(),l=a.right-e.pageX<=8,i=e.pageX-a.left<=8,u=w(t);if(l||u){if(null===(o=t.resizable)||void 0===o||o){n.style.cursor=l||u&&i?"col-resize":"";var c=l&&!u||u&&i;return y.draggingCol=c?n:n.nextElementSibling,void(y.effectCol="next")}}else if(i){var s=n.previousElementSibling;if(s){var d,v,h=null===(d=p.value[t.colKey])||void 0===d?void 0:d.prev;if(null===(v=null==h?void 0:h.resizable)||void 0===v||v)return n.style.cursor="col-resize",y.draggingCol=s,void(y.effectCol="prev")}}n.style.cursor="",y.draggingCol=null,y.effectCol=null}}},onColumnMousedown:function(e,t,l){var h,g,x;if(y.draggingCol){var P=y.draggingCol,S=P.getBoundingClientRect(),j=null===(h=a.value)||void 0===h?void 0:h.getBoundingClientRect(),k=null===(g=p.value[t.colKey])||void 0===g?void 0:g.next,N=null===(x=p.value[t.colKey])||void 0===x?void 0:x.prev,_=w(t)?function(e,t,n,r,o){var a=r.left-o.left,l=e.dataset.colkey===t.colKey?t:n,i=r.left-o.left,u=O(l),c=u.minColWidth,s=u.maxColWidth;return{resizeLinePos:a,minResizeLineLeft:i+(r.width-s),maxResizeLineLeft:i+(r.width-c)}}(P,t,k,S,j):C(t,k,S,j),V=_.resizeLinePos,D=_.minResizeLineLeft,E=_.maxResizeLineLeft;if(y.isDragging=!0,y.draggingStart=e.x,null!=f&&f.value){b.display="block",b.height="".concat(j.bottom-S.top,"px"),b.left="".concat(V,"px");var F=a.value.parentElement.getBoundingClientRect();b.bottom="".concat(F.bottom-j.bottom,"px")}var T=function(){var e;if(y.isDragging){var a=V-parseFloat(b.left)||0,f=i("calculate"),h=null===(e=p.value[t.colKey])||void 0===e?void 0:e.current;if(h){var g="next"===y.effectCol?h.nextSibling:h.prevSibling,C=function(e){for(var t=1;tu}return!(a||o.value||r===m.value.length-1)}(C,"next"===y.effectCol?h.nextSibling:t,a,l);"next"===y.effectCol?w(t)?P.dataset.colkey!==t.colKey?C[k.colKey]+=a:C[x.colKey]+=a:(C[x.colKey]-=a,S&&(C[k.colKey]+=a)):"prev"===y.effectCol&&(S&&(C[x.colKey]+=a),N&&(C[N.colKey]-=a)),u(C);var j=function(e){var t=0;return m.value.forEach(function(n){t+=e[n.colKey]}),t}(C);c(Math.round(j)),d(),y.isDragging=!1,y.draggingCol=null,y.effectCol=null,P.style.cursor="",b.display="none",b.left="0",vl(document,"mouseup",T),vl(document,"mousemove",M),document.onselectstart=n,document.ondragstart=r,null==v||v({columnsWidth:C})}}},M=function(e){if(y.isDragging){var t=V+e.x-y.draggingStart;b.left="".concat(Math.min(Math.max(t,D),E),"px")}};dl(document,"mouseup",T),dl(document,"mousemove",M),document.onselectstart=function(){return!1},document.ondragstart=function(){return!1}}},setEffectColMap:g}}function OE(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function CE(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:new Map,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,o=arguments.length>4?arguments[4]:void 0,a=0,l=e.length;a2&&void 0!==arguments[2]?arguments[2]:{},r=0,o=e.length;r=0&&"left"!==e[u].fixed;)u-=1;var c=e[u],s=0===r&&(null==n?void 0:n.left)||0,d=t.get((null==c?void 0:c.colKey)||r-1);i&&(i.left=((null==d?void 0:d.left)||s)+((null==d?void 0:d.width)||0)),null!==(a=l.children)&&void 0!==a&&a.length&&B(l.children,t,i)}},L=function(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=e.length-1;r>=0;r--){var o,a=e[r];if("left"===a.fixed)return;for(var l=t.get(a.colKey||r),i=r+1;i=u.length-i;b--){var w=t[t.length-(u.length-b)],O=jt(u[b],d),C=n.get(O)||{},x=jt(u[b+1],d),P=n.get(x)||{},S=0;b===u.length-1&&(S=(null==o?void 0:o.getBoundingClientRect().height)||0),C.bottom=(P.bottom||S)+(P.height||0),n.set(O,CE(CE({},C),{},{height:(null==w?void 0:w.getBoundingClientRect().height)||0}))}}(o.children,n,r,a),S.value=n}},z=function(e,t){if(D.value&&e){var n=e.scrollLeft;if(A!==n||t&&t.skipScrollLimit){A=n;var r=e.clientWidth+n0;j.left===o&&j.right===r||(j.left=o&&F.value,j.right=r&&E.value)}}},H=function(){var e=I(l.value),t=e.newColumnsMap;!function(e){for(var t=0;tw.value.clientHeight,C.value=w.value.scrollWidth>w.value.clientWidth;var t=w.value.getBoundingClientRect();k.value={top:t.top,left:t.left},clearTimeout(e)}},0)},K=function(e){_.value!==e&&(_.value=e)},U=function(){var e,t,n,r,a,l,i,u;null===(e=o.paginationAffixRef.value)||void 0===e||null===(t=e.handleScroll)||void 0===t||t.call(e),null===(n=o.horizontalScrollAffixRef.value)||void 0===n||null===(r=n.handleScroll)||void 0===r||r.call(n),null===(a=o.headerTopAffixRef.value)||void 0===a||null===(l=a.handleScroll)||void 0===l||l.call(a),null===(i=o.footerBottomAffixRef.value)||void 0===i||null===(u=i.handleScroll)||void 0===u||u.call(i)},Y=function(e){for(var t={},n=0,r=e.length;n0&&void 0!==arguments[0]?arguments[0]:0)+(arguments.length>1?arguments[1]:void 0)},0),d=w.value.clientWidth,v=s-u;K(Math.max(d,v))}});var X=function(){Z(),W(),U(),(D.value||O.value)&&(H(),z(w.value,{skipScrollLimit:!0})),"auto"===i.value&&$(q("calculate"))},G=po(function(){X()},30),J=null;t.onMounted(function(){var e=function(){if("undefined"==typeof navigator||!navigator)return 6;if(/(Chrome|Safari)/i.test(navigator.userAgent))return 6;var e=document.createElement("div");e.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(e);var t=e.offsetWidth-e.clientWidth;return document.body.removeChild(e),/Firefox/.test(navigator.userAgent)&&(t-=4),mu()<=11&&(t=12),t}();P.value=e,Z();var t=D.value||O.value||!M.value||!y.value.length,n="undefined"!=typeof window&&void 0!==window.ResizeObserver;(t&&mu()<11||!n)&&dl(window,"resize",G)}),t.onBeforeUnmount(function(){var e,t;"undefined"!=typeof window&&vl(window,"resize",G),null===(e=J)||void 0===e||e.unobserve(b.value),null===(t=J)||void 0===t||t.disconnect()});return{tableWidth:N,tableElmWidth:_,thWidthList:V,isFixedHeader:O,isWidthOverflow:C,tableContentRef:w,isFixedColumn:D,showColumnShadow:j,rowAndColFixedPosition:S,virtualScrollHeaderPos:k,scrollbarWidth:P,setData:function(e){y.value=e},refreshTable:X,setTableElmWidth:K,emitScrollEvent:function(t){var n,r,o;null===(n=e.onScrollX)||void 0===n||n.call(e,{e:t}),null===(r=e.onScrollY)||void 0===r||r.call(e,{e:t}),null===(o=e.onScroll)||void 0===o||o.call(e,{e:t})},updateThWidthListHandler:Z,updateColumnFixedShadow:z,setUseFixedTableElmRef:function(e){x.value=e},getThWidthList:q,updateThWidthList:$,addTableResizeObserver:function(e){"undefined"!=typeof window&&(mu()<11||void 0===window.ResizeObserver||(vl(window,"resize",G),(J=new window.ResizeObserver(function(){var e=setTimeout(function(){X(),clearTimeout(e)},200)})).observe(e),b.value=e))},updateTableAfterColumnResize:function(){H(),W()}}}function SE(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function jE(e,n){var r=t.toRefs(e),o=r.pagination,a=r.data,l=r.disableDataPage,i=Jl().classPrefix,u=t.ref(e.pagination),c=t.ref([]),d=t.ref(!1),v=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10,r=e.data,o=Boolean(!l.value&&r.length>n);if(d.value=o,o){var a=(t-1)*n,i=t*n;c.value=r.slice(a,i)}else c.value=r};t.watch(function(){var e,t;return[null===(e=o.value)||void 0===e?void 0:e.current,null===(t=o.value)||void 0===t?void 0:t.pageSize,a.value.length,l]},function(){if(o.value&&o.value.current){var e=o.value,t=e.current,n=e.pageSize;u.value={current:t,pageSize:n},v(o.value.current,o.value.pageSize)}},{immediate:!0}),t.watch([a],function(){var e,t;o.value&&o.value.defaultCurrent&&(Boolean(o.value.current)||v(null!==(e=u.value.current)&&void 0!==e?e:o.value.defaultCurrent,null!==(t=u.value.pageSize)&&void 0!==t?t:o.value.defaultPageSize))},{immediate:!0});return{isPaginateData:d,dataSource:c,innerPagination:u,renderPagination:function(){if(!e.pagination)return null;var r=function(e){for(var t=1;te.height},g=function(){var t,s,d;if(f.value||v.value||n.value){var p=null===(t=n.value)||void 0===t?void 0:t.getBoundingClientRect();if(p){var m,g=null===(s=n.value)||void 0===s||null===(s=s.querySelector("thead"))||void 0===s?void 0:s.getBoundingClientRect(),y=(null==g?void 0:g.height)||0,b=null===(d=o.value)||void 0===d?void 0:d.getBoundingClientRect();if((e.headerAffixedTop||v.value)&&r.value){var w=Lo(m=e.headerAffixProps||e.headerAffixedTop)?0:m.offsetTop||0,O=(null==b?void 0:b.height)||0,C=Math.abs(p.top)-1*g.height),i.value=C}if(e.footerAffixedBottom&&null!=o&&o.value)u.value=h(b,p,y);else if(e.horizontalScrollAffixedBottom&&null!=a&&a.value){var x=a.value.getBoundingClientRect();u.value=h(x,p,y)}if(e.paginationAffixedBottom&&l.value){var P=l.value.getBoundingClientRect();c.value=h(P,p,y)}}}},y=function(){g()},b=function(){m(o.value)},w=function(){m(r.value)},O=function(){m(a.value)},C=function(){m(n.value)},x=function(){dl(o.value,"scroll",b)},P=function(){vl(o.value,"scroll",b)},S=function(){dl(r.value,"scroll",w),F()},j=function(){s||vl(r.value,"scroll",w),T()},k=function(){dl(a.value,"scroll",O)},N=function(){vl(a.value,"scroll",O)},_=function(){dl(n.value,"scroll",C),F()},V=function(){s||vl(n.value,"scroll",C),T()},D=function(){s=!0},E=function(){s=!1,d||(vl(r.value,"scroll",w),vl(n.value,"scroll",C))},F=function(){d=!0},T=function(){d=!1},M=[],I=function(e){var t=po(function(t){vl(e,"scroll",t)},200);function n(){m(e),t(n)}function r(r){r.composedPath().includes(e)&&(M.forEach(function(e){return e()}),M.length=0,dl(e,"scroll",n),t(n),M.push(function(){vl(e,"scroll",n)}))}return dl(e,"touchstart",r),{removeElementTouchScrollListener:function(){vl(e,"touchstart",r)}}},A=[],B=function(){vl(window,"mousedown",D),vl(window,"mouseup",E),A.forEach(function(e){return e()}),A.length=0,r.value&&(vl(r.value,"mouseenter",S),vl(r.value,"mouseleave",j)),o.value&&(vl(o.value,"mouseenter",x),vl(o.value,"mouseleave",P)),n.value&&(vl(n.value,"mouseenter",_),vl(n.value,"mouseleave",V)),a.value&&(vl(a.value,"mouseenter",k),vl(a.value,"mouseleave",N))},L=function(){if(f.value||e.paginationAffixedBottom)var t=setTimeout(function(){f.value||e.paginationAffixedBottom?dl(document,"scroll",y):vl(document,"scroll",y),clearTimeout(t)})};t.watch([r,o,a,n],function(){!function(){if(dl(window,"mousedown",D),dl(window,"mouseup",E),B(),r.value){dl(r.value,"mouseenter",S),dl(r.value,"mouseleave",j);var t=I(r.value).removeElementTouchScrollListener;A.push(t)}if(e.footerAffixedBottom&&o.value){dl(o.value,"mouseenter",x),dl(o.value,"mouseleave",P);var l=I(o.value).removeElementTouchScrollListener;A.push(l)}if(e.horizontalScrollAffixedBottom&&a.value){dl(a.value,"mouseenter",k),dl(a.value,"mouseleave",N);var i=I(a.value).removeElementTouchScrollListener;A.push(i)}if((f.value||v.value)&&n.value){dl(n.value,"mouseenter",_),dl(n.value,"mouseleave",V);var u=I(n.value).removeElementTouchScrollListener;A.push(u)}}(),m(),g()}),t.watch(f,L),t.watch(function(){return[e.data,e.columns,e.headerAffixedTop,e.footerAffixedBottom,e.horizontalScrollAffixedBottom]},function(){m()}),t.onBeforeUnmount(function(){vl(document,"scroll",y),B(),r.value=null,o.value=null,a.value=null,n.value=null});return{showAffixHeader:i,showAffixFooter:u,showAffixPagination:c,affixHeaderRef:r,affixFooterRef:o,horizontalScrollbarRef:a,paginationRef:l,onHorizontalScroll:m,setTableContentRef:function(e){n.value=e,L()},updateAffixHeaderOrFooter:g}}function NE(e,t){if(e){for(var n=e instanceof Array?e:[e],r={},o=0;o6&&void 0!==arguments[6]?arguments[6]:0;if(!r||!r.length)return{style:void 0,classes:void 0};var i=tn-1-r[1],c=n-r[1],d=(null==o?void 0:o.get(e))||{},v=s(s(s(s({},a.top,i),a.bottom,u),a.firstBottom,t===c),a.withoutBorderBottom,t===c-1);return{style:{top:i?"".concat(d.top-l,"px"):void 0,bottom:u?"".concat(d.bottom+l,"px"):void 0},classes:v}}(jt(e.row,e.rowKey||"id"),e.rowIndex,e.dataLength,e.fixedRows,e.rowAndColFixedPosition,p,e.virtualConfig.isVirtualScroll.value?e.virtualConfig.translateY.value:0)}),y=t.computed(function(){return NE(e.rowAttributes,{row:e.row,rowIndex:e.rowIndex,type:"body"})||{}}),b=t.computed(function(){var t,n=_E(e.rowClassName,{row:e.row,rowKey:e.rowKey,rowIndex:e.rowIndex,type:"body"},e.rowKey||"id");return[null===(t=g.value)||void 0===t?void 0:t.classes,n,s(s({},"".concat(e.classPrefix,"-table__row--active"),a.value),"".concat(e.classPrefix,"-table__row--hover"),l.value)].filter(function(e){return e})}),w=function(e,n,r){var o=t.computed(function(){return Math.max(r.rowHeight||48,48)}),a=t.ref(!1),l=t.computed(function(){return"lazy"===(null==r?void 0:r.type)&&!a.value}),i=!sl&&window.requestAnimationFrame||function(e){return setTimeout(e,16.6)},u=function(){a.value||i(function(){a.value=!0})};return t.onMounted(function(){"lazy"===(null==r?void 0:r.type)&&t.nextTick(function(){var t=Math.max(10,r.bufferSize||10),a=o.value*t;null!=n&&n.value&&null!=e&&e.value&&ci(n.value,e.value,u,a)})}),{hasLazyLoadHolder:l,tRowHeight:o}}(o,i,t.reactive(IE(IE({},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(pE,{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=FE(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=LE(r,n.slots,{cellEmptyContent:o.cellEmptyContent,pagination:e.pagination}),y=xE(a,l,p,f),b=VE(a.className,IE(IE({},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(IE(IE({},r),{},{type:"td"})):a.attrs,C=IE(IE({},O),u);return t.createVNode("td",t.mergeProps({key:a.colKey||l,class:w,style:y.style},C,{onClick:function(t){var n,o=IE(IE({},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 BE.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 zE(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function HE(e){for(var t=1;t1)for(var l=r+1;l1)for(var y=p+1;y1&&(T.colspan=c.colspan),t.createVNode("th",t.mergeProps({key:c.colKey,"data-colkey":c.colKey,class:k,style:_},T,g,D),[t.createVNode("div",{class:i.thCellInner},[F?t.createVNode(pE,{placement:"bottom",attach:e.attach||(o.value?function(){return function(t){for(var n=t;n;){var r;if(null!==(r=n=n.parentNode)&&void 0!==r&&null!==(r=r.classList)&&void 0!==r&&r.contains("".concat(e.classPrefix,"-table")))break}return n}(o.value)}:void 0),tooltipContent:E&&function(){return E},tooltipProps:"object"===u(c.ellipsisTitle)?c.ellipsisTitle:void 0,overlayClassName:e.ellipsisOverlayClassName,classPrefix:e.classPrefix},(b=V,"function"==typeof b||"[object Object]"===Object.prototype.toString.call(b)&&!t.isVNode(b)?V:{default:function(){return[V]}})):V])])});return t.createVNode("tr",{key:p},[m])}))])}}});function XE(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function GE(e){for(var t=1;t1&&(c.rowspan=s.rowspan),(null===(p=s)||void 0===p?void 0:p.colspan)>1&&(c.colspan=s.colspan),s.skipped)return null}var h=xE(a,l,e.rowAndColFixedPosition,o.tableColFixedClasses),g=GE({},h.style);return null!==(i=e.thWidthList)&&void 0!==i&&i[a.colKey]&&(g.width="".concat(e.thWidthList[a.colKey],"px")),t.createVNode("td",t.mergeProps(GE({key:a.colKey},c),{class:h.classes,style:g}),[v({row:n,rowIndex:r,col:a,colIndex:l})])})])}),c=r("footerSummary");return c||e.footData&&e.footData.length?t.createVNode("tfoot",{class:a,style:{visibility:e.virtualScroll?"hidden":"visible"}},[c&&t.createVNode("tr",{class:o.tableFullRowClasses.base},[t.createVNode("td",{colspan:i.value.length},[t.createVNode("div",{class:o.tableFullRowClasses.innerFullElement},[c])])]),l]):null}}});function QE(e,n){var r=t.toRefs(e),o=r.data,a=r.activeRowType,l=r.activeRowKeys,i=r.defaultActiveRowKeys,u=r.disableSpaceInactiveRow,c=t.ref(-1),s=t.ref(!1),d=t.ref(!1),v=t.ref(-1),f=Ya(ni(l,i.value,e.onActiveChange,"activeRowKeys"),2),p=f[0],m=f[1],h=function(){for(var t=[],n=0,r=o.value.length;n1?[l]:[];m(i,{type:"inactive",activeRowList:[{row:n,rowIndex:r}],currentRowData:n})}else if("multiple"===a.value){for(var u=p.value.filter(function(e){return e!==l}),c=[],s=0,d=o.value.length;s0&&void 0!==arguments[0])||arguments[0];return t.createVNode("colgroup",null,[k.map(function(r){var o={width:UE((n||_?K.value[r.colKey]:void 0)||r.width)||M};return r.minWidth&&(o.minWidth=UE(r.minWidth)),o.width||r.minWidth||"fixed"!==e.tableLayout||(o.minWidth="80px"),t.createVNode("col",{key:r.colKey,style:o},null)})])},$={isFixedHeader:R.value,rowAndColFixedPosition:Y.value,isMultipleHeader:P.value,bordered:e.bordered,maxHeight:e.maxHeight,height:e.height,spansAndLeafNodes:S.value,thList:j.value,thWidthList:K.value,resizable:e.resizable,columnResizeParams:be,classPrefix:v,ellipsisOverlayClassName:"medium"!==N.value?b[N.value]:"",attach:e.attach,showColumnShadow:U,thDraggable:e.thDraggable},Z=mu()<=11?4:0,q=z.value?I.value:0,X=t.ref(((null===(d=oe.value)||void 0===d?void 0:d.getBoundingClientRect().height)||0)-Z),G=setTimeout(function(){var e;X.value=((null===(e=oe.value)||void 0===e?void 0:e.getBoundingClientRect().height)||0)-Z,clearTimeout(G)},0),J=t.computed(function(){return X.value-q}),Q=e.headerAffixedTop?Number(ue.value):1,ee=t.computed(function(){return{width:"".concat(A.value,"px"),height:"".concat(J.value,"px"),opacity:Q}}),te=e.bordered?1:0,ne=Boolean((e.headerAffixedTop||He.isVirtualScroll.value)&&A.value)&&t.createVNode("div",{ref:oe,style:{width:"".concat(A.value-te,"px"),opacity:Number(ue.value)},class:["scrollbar",s({},m.affixedHeaderElm,e.headerAffixedTop||He.isVirtualScroll.value)]},[t.createVNode("table",{class:Pe.value,style:tF(tF({},O.value),{},{width:"".concat(B.value,"px")})},[W(!0),t.createVNode(qE,$,n.slots)])]),re=t.createVNode("div",{class:m.affixedHeaderWrap,style:ee.value},[ne]),de=z.value?I.value:0;e.bordered&&(de+=1);var ve=Boolean(He.isVirtualScroll.value||e.footerAffixedBottom),fe=(null===(p=e.footData)||void 0===p?void 0:p.length)||e.footerSummary||n.slots.footerSummary,pe=Boolean(ve&&fe&&A.value)&&t.createVNode(Cm,t.mergeProps({class:m.affixedFooterWrap,onFixedChange:Le,offsetBottom:de||0},EE(e.footerAffixedBottom),{style:{marginTop:"".concat(-1*((null!==(h=c.value)&&void 0!==h?h:0)+de),"px")},ref:T}),{default:function(){return[t.createVNode("div",{ref:ae,style:{width:"".concat(A.value-te,"px"),opacity:Number(ce.value)},class:["scrollbar",s({},m.affixedFooterElm,e.footerAffixedBottom||He.isVirtualScroll.value)]},[t.createVNode("table",{class:Pe.value,style:tF(tF({},O.value),{},{width:"".concat(B.value,"px")})},[W(!0),t.createVNode(JE,{rowKey:e.rowKey,isFixedHeader:R.value,rowAndColFixedPosition:Y.value,footData:e.footData,columns:S.value.leafColumns,rowAttributes:e.rowAttributes,rowClassName:e.rowClassName,thWidthList:K.value,footerSummary:e.footerSummary,rowspanAndColspanInFooter:e.rowspanAndColspanInFooter},n.slots)])])]}}),Ce="translate(0, ".concat(He.scrollHeight.value+(null!==(g=c.value)&&void 0!==g?g:0)+(null!==(y=X.value)&&void 0!==y?y:0),"px)"),ke={transform:Ce,"-ms-transform":Ce,"-moz-transform":Ce,"-webkit-transform":Ce},_e=tF(tF({classPrefix:v,ellipsisOverlayClassName:"medium"!==N.value?b[N.value]:"",rowAndColFixedPosition:Y.value,showColumnShadow:U,data:x,virtualConfig:He,columns:S.value.leafColumns,tableElm:a.value,tableWidth:A.value,isWidthOverflow:z.value,scroll:e.scroll,cellEmptyContent:e.cellEmptyContent,tableContentElm:L.value,handleRowMounted:He.handleRowMounted,renderExpandedRow:e.renderExpandedRow},Na(e,WE)),{},{pagination:he.value,attach:e.attach,hoverRow:Fe.value,activeRow:Ne.value,onRowClick:Ze}),Ve=t.createVNode("div",{ref:L,class:m.content,style:w.value,onScroll:Ke},[He.isVirtualScroll.value&&t.createVNode("div",{class:f.cursor,style:ke},null),t.createVNode("table",{ref:l,class:Pe.value,style:tF(tF({},O.value),{},{width:e.resizable&&z.value&&B.value?"".concat(B.value,"px"):O.value.width})},[W(!1),e.showHeader&&t.createVNode(qE,tF(tF({},$),{},{thWidthList:_?K.value:{}}),n.slots),t.createVNode(KE,t.mergeProps({ref:i},_e),n.slots),t.createVNode(JE,{rowKey:e.rowKey,isFixedHeader:R.value,rowAndColFixedPosition:Y.value,footData:e.footData,columns:S.value.leafColumns,rowAttributes:e.rowAttributes,rowClassName:e.rowClassName,footerSummary:e.footerSummary,rowspanAndColspanInFooter:e.rowspanAndColspanInFooter,virtualScroll:He.isVirtualScroll.value},n.slots)])]),De=H(e.loading)?e.loading:n.slots.loading,Ee=void 0!==e.loading&&t.createVNode(Du,t.mergeProps({loading:!!e.loading,text:De,attach:a.value?function(){return a.value}:void 0,showOverlay:!0,size:"small"},e.loadingProps),null),Te=o("topContent"),Me=o("bottomContent"),Ie=t.createVNode("div",{ref:ie,class:m.paginationWrap,style:{opacity:Number(se.value)}},[ye()]),Ae=!!Me&&t.createVNode("div",{ref:u,class:m.bottomContent},[Me]);return t.createVNode("div",{ref:a,tabindex:Be.value,class:xe.value,onFocus:Ye,onBlur:$e},[!!Te&&t.createVNode("div",{class:m.topContent},[Te]),!1===e.showHeader?null:!(!He.isVirtualScroll.value&&!e.headerAffixedTop)&&(e.headerAffixedTop?t.createVNode(Cm,t.mergeProps({offsetTop:0},EE(e.headerAffixedTop),{onFixedChange:Le,ref:F}),nF(re)?re:{default:function(){return[re]}}):R.value&&re),Ve,pe,Ee,Ae,Se.value&&t.createVNode("div",{class:m.scrollbarDivider,style:{right:"".concat(I.value,"px"),bottom:je.value?"".concat(je.value,"px"):void 0,height:"".concat(null===(C=L.value)||void 0===C?void 0:C.getBoundingClientRect().height,"px")}},null),e.horizontalScrollAffixedBottom&&t.createVNode(Cm,t.mergeProps({offsetBottom:0},EE(e.horizontalScrollAffixedBottom),{style:{marginTop:"-".concat(2*I.value,"px")},horizontalScrollAffixedBottom:!0,ref:E}),{default:function(){return[t.createVNode("div",{ref:le,class:["scrollbar",m.obviousScrollbar],style:{width:"".concat(A.value,"px"),overflow:"auto",opacity:Number(ce.value)}},[t.createVNode("div",{style:{width:"".concat(B.value,"px"),height:"5px"}},null)])]}}),e.paginationAffixedBottom?t.createVNode(Cm,t.mergeProps({offsetBottom:0},EE(e.paginationAffixedBottom),{ref:D}),nF(Ie)?Ie:{default:function(){return[Ie]}}):Ie,t.createVNode("div",{ref:we,class:m.resizeLine,style:Oe},null)])}}}),oF={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 aF(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function lF(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:new Set,n=0,r=e.length;n1&&void 0!==arguments[1]?arguments[1]:[];if(null!==(t=d.value)&&void 0!==t&&null!==(t=t.groupColumns)&&void 0!==t&&t.length)return[];for(var r=0,o=e.length;r1&&void 0!==arguments[1]?arguments[1]:{},n=0,r=e.length;n0&&void 0!==arguments[0]?arguments[0]:{},n=i(m.value),r=jt(t,e.rowKey||"id"),o=n.indexOf(r),a=-1!==o;if("multiple"===b.value)a?n.splice(o,1):n.push(r);else{if("single"!==b.value)return void vi("Table","`column.type` must be one of `multiple` and `single`");n=a&&C.value?[]:[r]}h(n,{selectedRowData:n.map(function(e){return g.value.get(e)}),currentRowKey:r,currentRowData:t,type:a?"uncheck":"check"})}function S(t){var n,r=e.rowKey||"id",a=w.value.map(function(e){return jt(e,r)}),l=(null===(n=o.value)||void 0===n?void 0:n.filter(function(e){return!a.includes(e)}))||[],u=t?[].concat(i(l),i(a)):i(l);h(u,{selectedRowData:t?u.map(function(e){return g.value.get(e)}):[],type:t?"check":"uncheck",currentRowKey:"CHECK_ALL_BOX"})}t.watch([c,a,m,y,l],function(){var t,r=null!==(t=y.value)&&void 0!==t&&t.disabled?function(e){return y.value.disabled(e)?n.disabled:""}:void 0,o=new Set(m.value),a=o.size?function(t){var r=jt(t.row,e.rowKey||"id");return o.has(r)?n.selected:""}:void 0;f.value=[r,a]},{immediate:!0}),t.watch(c,function(){v.value=c.value});t.watch([c,l],function(){for(var e=0,t=c.value.length;e0&&O.value.length1)],r={asc:c.value.sortAscendingOperationText,desc:c.value.sortDescendingOperationText},a=v.value.map(function(n){var a,l,i,u=n===e.sortOrder?o.iconActive:o.iconDefault,s=c.value.sortCancelOperationText,d=n===e.sortOrder?s:r[n];return(null!==(l=e.hideSortTips)&&void 0!==l?l:c.value.hideSortTips)?f(n,u):t.createVNode(Kg,t.mergeProps({content:d,placement:"right",showArrow:!1,class:o.iconDirection[n]},e.tooltipProps),"function"==typeof(i=a=f(n,u))||"[object Object]"===Object.prototype.toString.call(i)&&!t.isVNode(i)?a:{default:function(){return[a]}})});return t.createVNode("div",{class:n},[a])}}});function wF(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function OF(e,n){var r=n.slots,o=t.toRefs(e),a=o.sort,l=o.data,u=t.ref(),c=Ya(ni(a,e.defaultSort,e.onSortChange,"sort"),2),d=c[0],v=c[1],f=Ya(ni(l,[],e.onDataChange,"data"),2),p=f[0],m=f[1],h=t.computed(function(){return w(e.columns)}),g=t.ref(),y=t.computed(function(){var e=d.value;return e?S(e)?e:[e]:[]}),b=t.computed(function(){var e={};return y.value.forEach(function(t,n){var r=t.sortBy;e[r]=function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{},n=0,r=e.length;n * @author owenm * @license MIT - */function qE(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function XE(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function tF(e){if("undefined"!=typeof window&&window.navigator)return!!navigator.userAgent.match(e)}var nF=tF(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),rF=tF(/Edge/i),oF=tF(/firefox/i),aF=tF(/safari/i)&&!tF(/chrome/i)&&!tF(/android/i),lF=tF(/iP(ad|od|hone)/i),iF=tF(/chrome/i)&&tF(/android/i),uF={capture:!1,passive:!1};function cF(e,t,n){e.addEventListener(t,n,!nF&&uF)}function sF(e,t,n){e.removeEventListener(t,n,!nF&&uF)}function dF(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 vF(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function fF(e,t,n,r){if(e){n=n||document;do{if(null!=t&&(">"===t[0]?e.parentNode===n&&dF(e,t):dF(e,t))||r&&e===n)return e;if(e===n)break}while(e=vF(e))}return null}var pF,mF=/\s+/g;function hF(e,t,n){if(e&&t)if(e.classList)e.classList[n?"add":"remove"](t);else{var r=(" "+e.className+" ").replace(mF," ").replace(" "+t+" "," ");e.className=(r+(n?" "+t:"")).replace(mF," ")}}function gF(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 yF(e,t){var n="";if("string"==typeof e)n=e;else do{var r=gF(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 bF(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===wF())break;r=kF(r,!1)}return!1}function xF(e,t,n,r){for(var o=0,a=0,l=e.children;a2&&void 0!==arguments[2]?arguments[2]:{},r=n.evt,o=eF(n,BF);AF.pluginEvent.bind(DT)(e,t,XE({dragEl:zF,parentEl:HF,ghostEl:WF,rootEl:KF,nextEl:UF,lastDownEl:YF,cloneEl:$F,cloneHidden:ZF,dragStarted:iT,putSortable:eT,activeSortable:DT.active,originalEvent:r,oldIndex:qF,oldDraggableIndex:GF,newIndex:XF,newDraggableIndex:JF,hideGhostForTarget:kT,unhideGhostForTarget:NT,cloneNowHidden:function(){ZF=!0},cloneNowShown:function(){ZF=!1},dispatchSortableEvent:function(e){RF({sortable:t,name:e,originalEvent:r})}},o))};function RF(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[FF]){var m,h=t.options,g="on"+r.charAt(0).toUpperCase()+r.substr(1);!window.CustomEvent||nF||rF?(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=XE(XE({},p),AF.getEventProperties(r,t));for(var b in y)m[b]=y[b];n&&n.dispatchEvent(m),h[g]&&h[g].call(t,m)}}(XE({putSortable:eT,cloneEl:$F,targetEl:zF,rootEl:KF,oldIndex:qF,oldDraggableIndex:GF,newIndex:XF,newDraggableIndex:JF},e))}var zF,HF,WF,KF,UF,YF,$F,ZF,qF,XF,GF,JF,QF,eT,tT,nT,rT,oT,aT,lT,iT,uT,cT,sT,dT,vT=!1,fT=!1,pT=[],mT=!1,hT=!1,gT=[],yT=!1,bT=[],wT="undefined"!=typeof document,OT=lF,CT=rF||nF?"cssFloat":"float",xT=wT&&!iF&&!lF&&"draggable"in document.createElement("div"),PT=function(){if(wT){if(nF)return!1;var e=document.createElement("x");return e.style.cssText="pointer-events:auto","auto"===e.style.pointerEvents}}(),ST=function(e,t){var n=gF(e),r=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),o=xF(e,0,t),a=xF(e,1,t),l=o&&gF(o),i=a&&gF(a),u=l&&parseInt(l.marginLeft)+parseInt(l.marginRight)+OF(o).width,c=i&&parseInt(i.marginLeft)+parseInt(i.marginRight)+OF(a).width;if("flex"===n.display)return"column"===n.flexDirection||"column-reverse"===n.flexDirection?"vertical":"horizontal";if("grid"===n.display)return n.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(o&&l.float&&"none"!==l.float){var s="left"===l.float?"left":"right";return!a||"both"!==i.clear&&i.clear!==s?"horizontal":"vertical"}return o&&("block"===l.display||"flex"===l.display||"table"===l.display||"grid"===l.display||u>=r&&"none"===n[CT]||a&&"none"===n[CT]&&u+c>r)?"vertical":"horizontal"},jT=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"==GE(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},kT=function(){!PT&&WF&&gF(WF,"display","none")},NT=function(){!PT&&WF&&gF(WF,"display","")};wT&&!iF&&document.addEventListener("click",(function(e){if(fT)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),fT=!1,!1}),!0);var _T=function(e){if(zF){e=e.touches?e.touches[0]:e;var t=(o=e.clientX,a=e.clientY,pT.some((function(e){var t=e[FF].options.emptyInsertThreshold;if(t&&!PF(e)){var n=OF(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[FF]._onDragOver(n)}}var o,a,l},VT=function(e){zF&&zF.parentNode[FF]._isOutsideThisEl(e.target)};function DT(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=QE({},t),e[FF]=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 ST(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!==DT.supportPointer&&"PointerEvent"in window&&(!aF||lF),emptyInsertThreshold:5};for(var r in AF.initializePlugins(this,e,n),n)!(r in t)&&(t[r]=n[r]);for(var o in jT(t),this)"_"===o.charAt(0)&&"function"==typeof this[o]&&(this[o]=this[o].bind(this));this.nativeDraggable=!t.forceFallback&&xT,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?cF(e,"pointerdown",this._onTapStart):(cF(e,"mousedown",this._onTapStart),cF(e,"touchstart",this._onTapStart)),this.nativeDraggable&&(cF(e,"dragover",this),cF(e,"dragenter",this)),pT.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),QE(this,TF())}function ET(e,t,n,r,o,a,l,i){var u,c,s=e[FF],d=s.options.onMove;return!window.CustomEvent||nF||rF?(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||OF(t),u.willInsertAfter=i,u.originalEvent=l,e.dispatchEvent(u),d&&(c=d.call(s,u,l)),c}function FT(e){e.draggable=!1}function TT(){yT=!1}function IT(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 MT(e){return setTimeout(e,0)}function AT(e){return clearTimeout(e)}DT.prototype={constructor:DT,_isOutsideThisEl:function(e){this.el.contains(e)||e===this.el||(uT=null)},_getDirection:function(e,t){return"function"==typeof this.options.direction?this.options.direction.call(this,e,t,zF):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){bT.length=0;var t=e.getElementsByTagName("input"),n=t.length;for(;n--;){var r=t[n];r.checked&&bT.push(r)}}(n),!zF&&!(/mousedown|pointerdown/.test(a)&&0!==e.button||r.disabled)&&!u.isContentEditable&&(this.nativeDraggable||!aF||!i||"SELECT"!==i.tagName.toUpperCase())&&!((i=fF(i,r.draggable,n,!1))&&i.animated||YF===i)){if(qF=SF(i),GF=SF(i,r.draggable),"function"==typeof c){if(c.call(this,e,i,this))return RF({sortable:t,rootEl:u,name:"filter",targetEl:i,toEl:n,fromEl:n}),LF("filter",t,{evt:e}),void(o&&e.preventDefault())}else if(c&&(c=c.split(",").some((function(r){if(r=fF(u,r.trim(),n,!1))return RF({sortable:t,rootEl:r,name:"filter",targetEl:i,fromEl:n,toEl:n}),LF("filter",t,{evt:e}),!0}))))return void(o&&e.preventDefault());r.handle&&!fF(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&&!zF&&n.parentNode===a){var u=OF(n);if(KF=a,HF=(zF=n).parentNode,UF=zF.nextSibling,YF=n,QF=l.group,DT.dragged=zF,tT={target:zF,clientX:(t||e).clientX,clientY:(t||e).clientY},aT=tT.clientX-u.left,lT=tT.clientY-u.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,zF.style["will-change"]="all",r=function(){LF("delayEnded",o,{evt:e}),DT.eventCanceled?o._onDrop():(o._disableDelayedDragEvents(),!oF&&o.nativeDraggable&&(zF.draggable=!0),o._triggerDragStart(e,t),RF({sortable:o,name:"choose",originalEvent:e}),hF(zF,l.chosenClass,!0))},l.ignore.split(",").forEach((function(e){bF(zF,e.trim(),FT)})),cF(i,"dragover",_T),cF(i,"mousemove",_T),cF(i,"touchmove",_T),l.supportPointer?(cF(i,"pointerup",o._onDrop),!this.nativeDraggable&&cF(i,"pointercancel",o._onDrop)):(cF(i,"mouseup",o._onDrop),cF(i,"touchend",o._onDrop),cF(i,"touchcancel",o._onDrop)),oF&&this.nativeDraggable&&(this.options.touchStartThreshold=4,zF.draggable=!0),LF("delayStart",this,{evt:e}),!l.delay||l.delayOnTouchOnly&&!t||this.nativeDraggable&&(rF||nF))r();else{if(DT.eventCanceled)return void this._onDrop();l.supportPointer?(cF(i,"pointerup",o._disableDelayedDrag),cF(i,"pointercancel",o._disableDelayedDrag)):(cF(i,"mouseup",o._disableDelayedDrag),cF(i,"touchend",o._disableDelayedDrag),cF(i,"touchcancel",o._disableDelayedDrag)),cF(i,"mousemove",o._delayedDragTouchMoveHandler),cF(i,"touchmove",o._delayedDragTouchMoveHandler),l.supportPointer&&cF(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(){zF&&FT(zF),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;sF(e,"mouseup",this._disableDelayedDrag),sF(e,"touchend",this._disableDelayedDrag),sF(e,"touchcancel",this._disableDelayedDrag),sF(e,"pointerup",this._disableDelayedDrag),sF(e,"pointercancel",this._disableDelayedDrag),sF(e,"mousemove",this._delayedDragTouchMoveHandler),sF(e,"touchmove",this._delayedDragTouchMoveHandler),sF(e,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t=t||"touch"==e.pointerType&&e,!this.nativeDraggable||t?this.options.supportPointer?cF(document,"pointermove",this._onTouchMove):cF(document,t?"touchmove":"mousemove",this._onTouchMove):(cF(zF,"dragend",this),cF(KF,"dragstart",this._onDragStart));try{document.selection?MT((function(){document.selection.empty()})):window.getSelection().removeAllRanges()}catch(e){}},_dragStarted:function(e,t){if(vT=!1,KF&&zF){LF("dragStarted",this,{evt:t}),this.nativeDraggable&&cF(document,"dragover",VT);var n=this.options;!e&&hF(zF,n.dragClass,!1),hF(zF,n.ghostClass,!0),DT.active=this,e&&this._appendGhost(),RF({sortable:this,name:"start",originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(nT){this._lastX=nT.clientX,this._lastY=nT.clientY,kT();for(var e=document.elementFromPoint(nT.clientX,nT.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(nT.clientX,nT.clientY))!==t;)t=e;if(zF.parentNode[FF]._isOutsideThisEl(e),t)do{if(t[FF]){if(t[FF]._onDragOver({clientX:nT.clientX,clientY:nT.clientY,target:e,rootEl:t})&&!this.options.dragoverBubble)break}e=t}while(t=vF(t));NT()}},_onTouchMove:function(e){if(tT){var t=this.options,n=t.fallbackTolerance,r=t.fallbackOffset,o=e.touches?e.touches[0]:e,a=WF&&yF(WF,!0),l=WF&&a&&a.a,i=WF&&a&&a.d,u=OT&&dT&&jF(dT),c=(o.clientX-tT.clientX+r.x)/(l||1)+(u?u[0]-gT[0]:0)/(l||1),s=(o.clientY-tT.clientY+r.y)/(i||1)+(u?u[1]-gT[1]:0)/(i||1);if(!DT.active&&!vT){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===zF)return D(!1);if(m&&a===e.target&&(l=m),l&&(n=OF(l)),!1!==ET(KF,a,zF,t,l,n,e,!!l))return V(),m&&m.nextSibling?a.insertBefore(zF,m.nextSibling):a.appendChild(zF),HF=a,E(),D(!0)}else if(m&&function(e,t,n){var r=OF(xF(n.el,0,n.options,!0)),o=EF(n.el,n.options,WF),a=10;return t?e.clientXs+c*a/2:ud-sT)return-cT}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,hT,uT===l),0!==g){var S=SF(zF);do{S-=g,b=HF.children[S]}while(b&&("none"===gF(b,"display")||b===WF))}if(0===g||b===l)return D(!1);uT=l,cT=g;var j=l.nextElementSibling,k=!1,N=ET(KF,a,zF,t,l,n,e,k=1===g);if(!1!==N)return 1!==N&&-1!==N||(k=1===N),yT=!0,setTimeout(TT,30),V(),k&&!j?a.appendChild(zF):l.parentNode.insertBefore(zF,k?j:l),x&&VF(x,0,P-x.scrollTop),HF=zF.parentNode,void 0===y||hT||(sT=Math.abs(y-OF(l)[C])),E(),D(!0)}if(a.contains(zF))return D(!1)}return!1}function _(i,u){LF(i,f,XE({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 ET(KF,a,zF,t,n,OF(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&&(hF(zF,eT?eT.options.ghostClass:c.options.ghostClass,!1),hF(zF,i.ghostClass,!0)),eT!==f&&f!==DT.active?eT=f:f===DT.active&&eT&&(eT=null),v===f&&(f._ignoreWhileAnimating=l),f.animateAll((function(){_("dragOverAnimationComplete"),f._ignoreWhileAnimating=null})),f!==v&&(v.animateAll(),v._ignoreWhileAnimating=null)),(l===zF&&!zF.animated||l===a&&!l.animated)&&(uT=null),i.dragoverBubble||e.rootEl||l===document||(zF.parentNode[FF]._isOutsideThisEl(e.target),!t&&_T(e)),!i.dragoverBubble&&e.stopPropagation&&e.stopPropagation(),p=!0}function E(){XF=SF(zF),JF=SF(zF,i.draggable),RF({sortable:f,name:"change",toEl:a,newIndex:XF,newDraggableIndex:JF,originalEvent:e})}},_ignoreWhileAnimating:null,_offMoveEvents:function(){sF(document,"mousemove",this._onTouchMove),sF(document,"touchmove",this._onTouchMove),sF(document,"pointermove",this._onTouchMove),sF(document,"dragover",_T),sF(document,"mousemove",_T),sF(document,"touchmove",_T)},_offUpEvents:function(){var e=this.el.ownerDocument;sF(e,"mouseup",this._onDrop),sF(e,"touchend",this._onDrop),sF(e,"pointerup",this._onDrop),sF(e,"pointercancel",this._onDrop),sF(e,"touchcancel",this._onDrop),sF(document,"selectstart",this)},_onDrop:function(e){var t=this.el,n=this.options;XF=SF(zF),JF=SF(zF,n.draggable),LF("drop",this,{evt:e}),HF=zF&&zF.parentNode,XF=SF(zF),JF=SF(zF,n.draggable),DT.eventCanceled||(vT=!1,hT=!1,mT=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),AT(this.cloneId),AT(this._dragStartId),this.nativeDraggable&&(sF(document,"drop",this),sF(t,"dragstart",this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),aF&&gF(document.body,"user-select",""),gF(zF,"transform",""),e&&(iT&&(e.cancelable&&e.preventDefault(),!n.dropBubble&&e.stopPropagation()),WF&&WF.parentNode&&WF.parentNode.removeChild(WF),(KF===HF||eT&&"clone"!==eT.lastPutMode)&&$F&&$F.parentNode&&$F.parentNode.removeChild($F),zF&&(this.nativeDraggable&&sF(zF,"dragend",this),FT(zF),zF.style["will-change"]="",iT&&!vT&&hF(zF,eT?eT.options.ghostClass:this.options.ghostClass,!1),hF(zF,this.options.chosenClass,!1),RF({sortable:this,name:"unchoose",toEl:HF,newIndex:null,newDraggableIndex:null,originalEvent:e}),KF!==HF?(XF>=0&&(RF({rootEl:HF,name:"add",toEl:HF,fromEl:KF,originalEvent:e}),RF({sortable:this,name:"remove",toEl:HF,originalEvent:e}),RF({rootEl:HF,name:"sort",toEl:HF,fromEl:KF,originalEvent:e}),RF({sortable:this,name:"sort",toEl:HF,originalEvent:e})),eT&&eT.save()):XF!==qF&&XF>=0&&(RF({sortable:this,name:"update",toEl:HF,originalEvent:e}),RF({sortable:this,name:"sort",toEl:HF,originalEvent:e})),DT.active&&(null!=XF&&-1!==XF||(XF=qF,JF=GF),RF({sortable:this,name:"end",toEl:HF,originalEvent:e}),this.save())))),this._nulling()},_nulling:function(){LF("nulling",this),KF=zF=HF=WF=UF=$F=YF=ZF=tT=nT=iT=XF=JF=qF=GF=uT=cT=eT=QF=DT.dragged=DT.ghost=DT.clone=DT.active=null,bT.forEach((function(e){e.checked=!0})),bT.length=rT=oT=0},handleEvent:function(e){switch(e.type){case"drop":case"dragend":this._onDrop(e);break;case"dragenter":case"dragover":zF&&(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 QT(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function eI(e){for(var t=1;tl?l*(a-1)+t:t}e.sortOnRowDraggable&&kl("Table","`sortOnRowDraggable` is going to be deprecated, use dragSort='row' instead.");var C=function(t,n){var r=eI({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&&(tI(t.item),nI(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=FE(m.value,s.dataset.colkey),f=FE(m.value,d.dataset.colkey);v&&v.colKey||kl("Table","colKey is missing in ".concat(JSON.stringify(v))),f&&f.colKey||kl("Table","colKey is missing in ".concat(JSON.stringify(f))),u=TE(e.columns,v.colKey),c=TE(e.columns,f.colKey);var p={data:m.value,currentIndex:u,current:v,targetIndex:c,target:f,newData:JT(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 DT(t,r)},x=function(e){if(w.value&&e){var t=e.querySelectorAll("thead > tr");if(t.length<=1){var n=Ra(t,1)[0];C(n,!0)}else null==t||t.forEach((function(e){C(e,!1)}))}};return t.watch([h,m,l,r],(function(r){var o=Ra(r,4),a=o[0];o[1],o[2],function(r,o){var a=r;if(!r||!a.$el||!o.showElement)return;var l=setTimeout((function(){!function(r){var o;if(0!==(null==r||null===(o=r.children)||void 0===o?void 0:o.length)&&(b.value||y.value)){var a=null==r?void 0:r.querySelector("tbody");if(!a)return console.error("tbody does not exist."),null;var l=eI({animation:150,ghostClass:d.ghost,chosenClass:d.chosen,dragClass:d.dragging,filter:".".concat(f.base,",.").concat(p.row),onMove:function(e){return!ci(e.related,f.base)},onEnd:function(r){var o;if(r.newIndex!==r.oldIndex){tI(r.item),nI(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:JT(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 DT(a,eI({},l)):new DT(a,eI(eI({},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 oI(e){return Ba(e)||a(e)||l(e)||La()}function aI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function lI(e){for(var t=1;t2?r-2:0),u=2;u1?f-1:0),m=1;m0&&void 0!==arguments[0]?arguments[0]:{errors:[],errorMap:{}}).errorMap;e&&Object.assign(a,e)})),o.value=a,null===(r=e.onValidate)||void 0===r||r.call(e,{result:a}),n({result:a})}),r)}))},validateTableCellData:s,validateRowData:function(t){return new Promise((function(n,r){c(t).then((function(t){var r,a=t.errors,l=t.errorMap;o.value=l;var i="parent";null===(r=e.onRowValidate)||void 0===r||r.call(e,{trigger:i,result:a}),n({trigger:i,result:a})}),r)}))},onRuleChange:function(t){if(e.editableRowKeys){var n=jt(t.row,e.rowKey||"id"),o=r.get(n);if(o){var a=o.findIndex((function(e){return e.col.colKey===t.col.colKey}));-1===a?o.push(t):o[a]=t,r.set(n,o)}else r.set(n,[t])}},clearValidateData:function(){o.value={}},onUpdateEditedCell:function(e,t,n){i.value[e]||(i.value[e]=Mr(t)),Object.entries(n).forEach((function(t){var n=Ra(t,2),r=n[0],o=n[1];Va(i.value[e],r,o)}))},getEditRowData:function(t){var n,r=t.row,o=t.col,a=jt(r,e.rowKey||"id"),l=i.value[a];if(l&&null!==(n=e.editableRowKeys)&&void 0!==n&&n.includes(a)){var u=cI({},l);return Va(u,o.colKey,jt(l,o.colKey)),u}return r},onPrimaryTableCellEditChange:function(t){var n=QD(t.row,e.rowKey,t.col.colKey,t.colIndex);t.isEdit?l.value[n]=t:delete l.value[n]}}}function dI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function vI(e){for(var t=1;t1&&void 0!==arguments[1]&&arguments[1],a=[],l=function(){var l,c,s,d,f,m=vI({},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=AD(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=vI(vI({},o),{},{row:ve(o),oldCell:P,rowKey:e.rowKey||"id",tableBaseClass:p,cellEmptyContent:e.cellEmptyContent,onChange:we,onValidate:e.onRowValidate,onRuleChange:ce,onEditableChange:fe});if(e.editableRowKeys){var l,i=jt(o.row,e.rowKey||"id");a.editable=ae.value[i]||!1;var u=[i,o.col.colKey].join("__"),c=null===(l=oe.value)||void 0===l?void 0:l[u];c&&(a.errors=c)}return e.editableCellState&&(a.readonly=!e.editableCellState(o)),t.createVNode(iI,t.mergeProps(a,{onUpdateEditedCell:de}),n.slots)}}null!==(d=m.children)&&void 0!==d&&d.length&&(m.children=Oe(m.children,o||(null===(g=O.value)||void 0===g?void 0:g.includes(m.colKey))));(!m.children||null!==(f=m.children)&&void 0!==f&&f.length)&&a.push(m)},i=0,c=r.length;i2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,o=jt(e,t);return n||r?"".concat(o,"_").concat(n||0,"_").concat(r||0,"}"):o}var OI=function(){return Si((function e(){ji(this,e),s(this,"treeDataMap",new Map),s(this,"expandAllRowIndex",void 0),this.treeDataMap=new Map}),[{key:"initialTreeStore",value:function(e,t,n){var r;null===(r=this.treeDataMap)||void 0===r||r.clear(),this.initialTreeDataMap(this.treeDataMap,e,t.find((function(e){return"row-select"===e.colKey})),n)}},{key:"getAllUniqueKeys",value:function(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=0,o=e.length;r2&&void 0!==arguments[2]?arguments[2]:[],r=0,o=e.length;r=0){var o=(r.expandChildrenLength||0)+1;if(t.splice(r.rowIndex,o),r.parent){var a=jt(r.parent.row,n.childrenKey),l=a.findIndex((function(t){return jt(t,n.rowKey)===e}));a.splice(l,1),CI(this.treeDataMap,r.parent.row,-1*o,"delete",n)}this.treeDataMap.delete(e),jI(this.treeDataMap,t,{minRowIndex:r.rowIndex,rowKey:n.rowKey,type:"remove"})}else Sl("EnhancedTable","Can not remove this node, which is not appeared.");return t}},{key:"removeChildren",value:function(e,t,n){var r=this.treeDataMap.get(e);if(r&&r.rowIndex>=0){var o=r.expandChildrenLength||0;o&&t.splice(r.rowIndex+1,o),r.parent&&CI(this.treeDataMap,r.parent.row,-1*o,"delete",n),r.expandChildrenLength=0,r.expanded=!1,Va(r.row,n.childrenKey,void 0),this.treeDataMap.set(e,r),o&&jI(this.treeDataMap,t,{minRowIndex:r.rowIndex+1,rowKey:n.rowKey,type:"remove"})}else Sl("EnhancedTable","Can not remove this node's children, which is not appeared.");return t}},{key:"appendTo",value:function(e,t,n,r){var o=this.treeDataMap.get(e);if(!this.validateDataExist(o,e))return n;for(var a=jt(o.row,r.childrenKey),l=o.expanded||!(null!=a&&a.length),u=t instanceof Array?t:[t],c=[],s=-1,d=0,v=u.length;do){var p=e.slice(d,r),m=v.concat(f,p);e.splice(o,m.length),e.splice.apply(e,[o,0].concat(i(m))),jI(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))),jI(this.treeDataMap,e,{rowKey:n.rowKey,minRowIndex:r,maxRowIndex:d})}if(u.parent){for(var g=u.parent.row[n.childrenKey],y=0,b=-1,w=-1,O=0,C=g.length;O=2));O++);w2&&void 0!==arguments[2]?arguments[2]:null,l=0,i=e.length;l2&&void 0!==arguments[2]?arguments[2]:"data",o=[];return e.forEach((function(e){var a=jt(e,t.rowKey),l=n.treeDataMap.get(a);l.expanded&&("unique"===r?o.push(a):"data"===r?o.push(e):o.push(l))})),o}},{key:"initialTreeDataMap",value:function(e,t,n,r){for(var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,l=0,i=t.length;l0&&void 0!==arguments[0]?arguments[0]:"expand-all",t=(arguments.length>1?arguments[1]:void 0)||u.value;o.value=r.value.expandAll(t,a.value);var n=o.value.map((function(e){return wI(e,a.value.rowKey)}));m(n,{row:void 0,rowState:void 0,rowIndex:void 0,type:"expand",trigger:e}),h.value.type="expand-all"}function y(e,t){var n=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=[],r=[],o=new Map,a=new Map,l=0,i=e.length;l2&&void 0!==arguments[2]?arguments[2]:[]),o=n.addedList,l=n.removedList;return r.value.expandTreeNode(o,e,a.value),r.value.foldTreeNode(l,e,a.value),i(e)}t.watch([p,u],(function(e,t){var n=Ra(e,1)[0],l=Ra(t,1)[0];if(r.value.treeDataMap.size&&u.value.length){if("user-reaction-change"===h.value.type){var c=h.value||{},s=c.row,d=c.rowIndex;o.value=i(r.value.toggleExpandData({row:s,rowIndex:d},i(o.value),a.value))}else"props-change"===h.value.type&&y(o.value,n,l);h.value.type="props-change"}}));return{tExpandedTreeNode:p,isDefaultExpandAllExecute:d,isDefaultExpandedTreeNodesExecute:v,expandAll:g,foldAll:function(){o.value=i(r.value.foldAll(o.value,a.value)),m([],{row:void 0,rowState:void 0,rowIndex:void 0,type:"fold",trigger:"fold-all"})},onExpandFoldIconClick:function(t,n){var o,l=t.row,u=t.rowIndex;h.value=NI({type:"user-reaction-change"},t);var c=wI(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=DI({},m.value);return o.cell=function(o,a){var l,i,d=aE(DI(DI({},a),{},{col:DI({},m.value)}),n.slots,{cellEmptyContent:e.cellEmptyContent}),h=p.value.treeDataMap.get(jt(a.row,b.value.rowKey)),w=function(t){var n,r;if(void 0!==t){var o=void 0===(null===(n=e.tree)||void 0===n?void 0:n.indent)?24:null===(r=e.tree)||void 0===r?void 0:r.indent;return o?{paddingLeft:"".concat(t*o||1,"px")}:{}}}(null==h?void 0:h.level),O=s({},g.inlineCol,!!r.ellipsis),C=jt(a.row,b.value.childrenKey);if(C&&C instanceof Array||!0===C){var x,P=null!==(x=p.value.treeDataMap.get(jt(a.row,b.value.rowKey)))&&void 0!==x&&x.expanded?(l=DI(DI({},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=DI(DI({},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 aE(DI(DI({},t),{},{col:DI({},m.value)}),n.slots)}),o},toggleExpandData:function(t,n){var r,o,a=DI({},t);void 0!==t.row.VIRTUAL_SCROLL_INDEX&&(a.rowIndex=t.row.VIRTUAL_SCROLL_INDEX),h.value=i(p.value.toggleExpandData(a,h.value,b.value));var l=jt(t.row,b.value.rowKey),u=null===(r=p.value)||void 0===r||null===(r=r.treeDataMap)||void 0===r?void 0:r.get(l);null===(o=e.onTreeExpandChange)||void 0===o||o.call(e,{row:t.row,rowIndex:t.rowIndex,rowState:u,trigger:n})},expandAll:P,foldAll:S,getTreeNode:function(){return p.value.getTreeNode(h.value,b.value)},resetData:_,getTreeExpandedRow:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"data";return p.value.getTreeExpandedRow(h.value,b.value,e)},onExpandFoldIconClick:k}}function 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;t0&&v=0?e.rowIndex:e.rowIndex<0?w(e.parent):void 0:-1};return n.expose(RI(RI({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 kl("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)&&kl("Table","".concat(e.key," does not exist in data, check `rowKey` or `data` please."))}r.value.scrollToElement(RI(RI({},e),{},{index:t}))}})),function(){var o,a=RI(RI({},t.getCurrentInstance().vnode.props),{},{rowKey:e.rowKey||"id",data:l.value,columns:g.value,indeterminateSelectedRowKeys:p.value,disableDataPage:Boolean(e.tree&&Object.keys(e.tree).length)||e.disableDataPage,onSelectChange:m,onDragSort:y,rowClassName:function(t){var n=jt(t.row,e.rowKey||"id"),r=v.value.get(n);return r?["".concat(d.value,"-table-tr--level-").concat(r.level),e.rowClassName]:[e.rowClassName]}});return null!==(o=e.tree)&&void 0!==o&&o.expandTreeNodeOnClick&&(a.onRowClick=b),t.createVNode(pI,t.mergeProps(a,{ref:r}),n.slots)}}}),HI=iu(xE),WI=iu(pI),KI=iu(zI),UI=iu(Mr(pI),"TTable"),YI={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"]},ZI=Symbol("timeLineProvide"),qI=t.computed((function(){return{theme:"default",reverse:!1,itemsStatus:[],layout:"horizontal",renderAlign:"left",mode:"alternate"}})),XI={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 GI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function JI(e){for(var t=1;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])}}}),lM={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 iM=t.defineComponent({name:"TCollapsePanel",props:lM,setup:function(e,n){var r=n.slots,o=el(),a=nl(),l=fl("collapse-panel"),i=fl("is-disabled"),u=fl("is-clickable"),c=fl("slide-down"),d=t.toRefs(e),v=d.value,f=d.disabled,p=d.destroyOnCollapse,m=t.inject("collapseValue"),h=t.inject("updateCollapseValue"),g=t.inject("getUniqId",(function(){}),!1),y=t.inject("collapseProps"),b=y.defaultExpandAll,w=y.disabled,O=y.expandIconPlacement,C=y.expandOnRowClick,x=t.inject("renderParentTNode"),P=v.value||g();b.value&&h(P);var S={beforeEnter:function(e){e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.style.height="0",e.style.paddingTop="0",e.style.paddingBottom="0"},enter:function(e){e.dataset.oldOverflow=e.style.overflow,e.style.height="".concat(e.scrollHeight,"px"),e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom,e.style.overflow="hidden"},afterEnter:function(e){e.style.height="",e.style.overflow=e.dataset.oldOverflow},beforeLeave:function(e){e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.dataset.oldOverflow=e.style.overflow,e.style.height="".concat(e.scrollHeight,"px"),e.style.overflow="hidden"},leave:function(e){0!==e.scrollHeight&&(e.style.height="0",e.style.paddingTop="0",e.style.paddingBottom="0")},afterLeave:function(e){e.style.height="",e.style.overflow=e.dataset.oldOverflow,e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom}},j=S.beforeEnter,k=S.enter,N=S.afterEnter,_=S.beforeLeave,V=S.leave,D=S.afterLeave,E=t.ref(),F=t.computed((function(){return f.value||w.value})),T=t.computed((function(){return m.value instanceof Array?m.value.includes(P):m.value===P})),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(oy,{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:j,onEnter:k,onAfterEnter:N,onBeforeLeave:_,onLeave:V,onAfterLeave:D},(n=e=R(),"function"==typeof n||"[object Object]"===Object.prototype.toString.call(n)&&!t.isVNode(n)?e:{default:function(){return[e]}}))])])}}}),uM=iu(aM),cM=iu(iM),sM={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 dM(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function vM(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 pM(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=l)return n;if(a-r=m.value?"":t2&&void 0!==arguments[2]?arguments[2]:{};if(e){var o,a=s;s=t.createVNode(n,{style:r},"function"==typeof(o=s)||"[object Object]"===Object.prototype.toString.call(o)&&!t.isVNode(o)?s:{default:function(){return[a]}})}}return d(l,"strong"),d(o,"u"),d(a,"del"),d(r,"code"),d(!1!==u,"mark",u?{color:u}:{}),d(i,"kbd"),d(c,"i"),s},s=t.computed((function(){var t=e.theme,n=e.disabled,r=o.value,a=[r];return n?a.push("".concat(r,"--disabled")):t&&["primary","secondary","success","warning","error"].includes(t)&&a.push("".concat(r,"--").concat(t)),a})),d=t.computed((function(){var t,n=e.copyable;return l.value?a.value.copiedText:"object"===u(n)?null===(t=n.tooltipProps)||void 0===t?void 0:t.content:null})),v=t.computed((function(){return e.content||(null==r?void 0:r.default())})),f=function(){var n=e.copyable;if(n){var r=l.value?function(){return t.createVNode(wc,null,null)}:function(){return t.createVNode(hs,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(lg,t.mergeProps(o,{content:d.value}),{default:function(){return[t.createVNode(fu,{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),OM("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(SM,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 kM=t.defineComponent({name:"TTypography",setup:function(){var e=el();return function(){var n,r;return t.createVNode(jM,null,"function"==typeof(r=n=e("default"))||"[object Object]"===Object.prototype.toString.call(r)&&!t.isVNode(r)?n:{default:function(){return[n]}})}}}),NM={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 _M=t.defineComponent({name:"TTypographyTitle",props:NM,setup:function(e){var n=fl("typography"),r=nl();return function(){var o,a,l=e.level,u=r("default","content");return e.ellipsis?t.createVNode(SM,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 DM=t.defineComponent({name:"TTypographyParagraph",components:{TTooltip:lg},props:function(e){for(var t=1;t0&&e.maxLinedocument.documentElement.clientWidth?nV():0;a.value=document.createElement("style"),a.value.dataset.id="td_drawer_".concat(+new Date,"_").concat(KM+=1),a.value.innerHTML="\n html body {\n overflow-y: hidden;\n transition: margin 300ms cubic-bezier(0.7, 0.3, 0.1, 1) 0s;\n ".concat("push"===e.mode?"":"width: calc(100% - ".concat(t,"px);"),"\n }\n ")}}(),a.value&&!document.head.contains(a.value)&&document.head.appendChild(a.value))};t.watch((function(){return e.visible}),(function(t){if(!li){var n,a;if(t)I(),null===(n=e.onBeforeOpen)||void 0===n||n.call(e);else F(),null===(a=e.onBeforeClose)||void 0===a||a.call(e);!function(t){if(t&&(b.value=!0),!e.destroyOnClose)return r.value&&t?(r.value=!1,void setTimeout((function(){return o.value=!0}))):void setTimeout((function(){return o.value=t}));t?(r.value=!1,setTimeout((function(){return o.value=!0}))):(o.value=!1,setTimeout((function(){return r.value=!0}),200))}(t)}}),{immediate:!0});var M=function(t){var n;null===(n=e.onCloseBtnClick)||void 0===n||n.call(e,{e:t}),B({trigger:"close-btn",e:t})},A=function(t){var n,r;null===(n=e.onOverlayClick)||void 0===n||n.call(e,{e:t}),(null!==(r=e.closeOnOverlayClick)&&void 0!==r?r:i.value.closeOnOverlayClick)&&B({trigger:"overlay",e:t})},B=function(t){var r;null===(r=e.onClose)||void 0===r||r.call(e,t),n.emit("update:visible",!1)};t.onUpdated((function(){if(_.value&&"push"===e.mode){var t={left:{name:"margin-left",value:j.value},right:{name:"margin-right",value:"-".concat(j.value)},top:{name:"margin-top",value:j.value},bottom:{name:"margin-bottom",value:"-".concat(j.value)}}[e.placement];o.value?_.value.style.setProperty(t.name,t.value):_.value.style.removeProperty(t.name)}})),t.onMounted((function(){I(),window.addEventListener("keydown",E)})),t.onBeforeUnmount((function(){F(),window.removeEventListener("keydown",E)}));var L=t.computed((function(){return b.value?o.value||!r.value:!e.lazy}));return function(){if(L.value){var r,o,a=d("body","default"),l=c("header"),s=(r=C({confirmBtn:e.confirmBtn,globalConfirm:i.value.confirm,className:"".concat(v.value,"__confirm")}),o=x({cancelBtn:e.cancelBtn,globalCancel:i.value.cancel,className:"".concat(v.value,"__cancel")}),t.createVNode("div",{style:D.value},["right"===e.placement?r:null,o,"right"!==e.placement?r:null]));return t.createVNode(t.Teleport,{disabled:!e.attach||!w.value,to:w.value},{default:function(){return[t.createVNode("div",t.mergeProps({ref:P,class:S.value,style:{zIndex:e.zIndex},onKeydown:E,tabindex:0},n.attrs),[e.showOverlay&&t.createVNode("div",{class:"".concat(v.value,"__mask"),onClick:A},null),t.createVNode("div",{class:N.value,style:WM(WM({},k.value),g.value)},[l&&t.createVNode("div",{class:"".concat(v.value,"__header")},[l]),e.closeBtn&&t.createVNode("div",{class:"".concat(v.value,"__close-btn"),onClick:M},[c("closeBtn",t.createVNode(u,null,null))]),t.createVNode("div",{class:["".concat(v.value,"__body"),"narrow-scrollbar"]},[a]),e.footer&&t.createVNode("div",{class:"".concat(v.value,"__footer")},[c("footer",s)]),e.sizeDraggable&&t.createVNode("div",{style:h.value,onMousedown:m},null)])])]}})}}}});function 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;t0&&void 0!==arguments[0]?arguments[0]:{currentStepInfo:N.value},n=new Function("return "+t.h.toString())();return Object.assign({},n,e)},M=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.body,n=Ci(),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=wi(t,"position");return"body"!==t.tagName.toLowerCase()&&"relative"===d||"sticky"===d?{top:l-c,left:i-s}:Oi(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=Ci();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")});Fi(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&&(JM(C.value),M(w.value),M(O.value,!0),QM(C.value),null===(e=S.value)||void 0===e||e.update())}))},B=function(){var e;null===(e=O.value)||void 0===e||e.parentNode.removeChild(O.value)},L=function(){var e,t;null===(e=P.value)||void 0===e||e.parentNode.removeChild(P.value),null===(t=x.value)||void 0===t||t.parentNode.removeChild(x.value)},R=function(){_.value?(L(),A()):(B(),t.nextTick((function(){C.value=P.value,JM(C.value),M(w.value),QM(C.value)}))),T.value=!0},z=function(t){var n,r=k.value;j.value=!1,y(-1,{e:t,total:r}),null===(n=e.onSkip)||void 0===n||n.call(e,{e:t,current:g.value,total:r})},W=function(t){var n,r=k.value;y(g.value-1,{e:t,total:r}),null===(n=e.onPrevStepClick)||void 0===n||n.call(e,{e:t,prev:g.value-1,current:g.value,total:r})},K=function(t){var n,r=k.value;y(g.value+1,{e:t,total:r}),null===(n=e.onNextStepClick)||void 0===n||n.call(e,{e:t,next:g.value+1,current:g.value,total:r})},U=function(t){var n,r=k.value;j.value=!1,y(-1,{e:t,total:r}),null===(n=e.onFinish)||void 0===n||n.call(e,{e:t,current:g.value,total:r})},Y=function(){g.value>=0&&g.value=0&&e-1}}},setup:function(e,n){var r=n.expose,o=fl("notification-list"),a=e.placement,l=t.ref([]),i=t.ref([]),u=t.computed((function(){return pA({zIndex:6e3},aA[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:oA};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(vA,t.mergeProps({ref:v,key:e.id,style:d(e)},function(e,t){return pA(pA({},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 hA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function gA(e){for(var t=1;t=1024&&r<1048576?"".concat((r/1024).toFixed(1)," KB"):r>=1048576?"".concat((r/1048576).toFixed(1)," MB"):"")]),t.createVNode("small",{class:"".concat(v.value.small),key:"time"},[c.value.file.fileOperationDateText,"\uff1a",o.uploadTime||"-"])];return t.createVNode("div",{class:"".concat(f,"__dragger-progress")},["image"===e.theme&&O(),t.createVNode("div",{class:"".concat(f,"__dragger-progress-info")},[d("fileListDisplay",{params:{files:e.displayFiles}})||s,t.createVNode("div",{class:"".concat(f,"__dragger-btns")},[["progress","waiting"].includes(o.status)&&!l.value&&t.createVNode(fu,{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(fu,{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(fu,{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(fu,{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 MA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function AA(e){for(var t=1;t=Ml.KB&&c=Ml.MB&&c=Ml.GB?"".concat((c/Ml.GB).toFixed(1)," GB"):"")]),t.createVNode("td",null,[I(n)]),l.value?null:s])}))])])},L=function(){var n=p("fileListDisplay",{params:{cancelUpload:e.cancelUpload,uploadFiles:e.uploadFiles,onRemove:e.onRemove,onPreview:e.onPreview,toUploadFiles:e.toUploadFiles,sizeOverLimitMessage:e.sizeOverLimitMessage,locale:e.locale,files:e.displayFiles,dragEvents:D.value}});return n||e.fileListDisplay?n:t.createVNode("ul",{class:"".concat(v.value,"__card clearfix")},[e.displayFiles.map((function(n,r){return function(n,r){var o,a=F(),d=a.iconMap,f=a.textMap,p=e.abridgeName&&n.name?Bl.apply(void 0,[n.name].concat(i(e.abridgeName))):n.name;return t.createVNode("li",{class:"".concat(v.value,"__card-item"),key:n.name+r+n.percent+n.status||"0"},[t.createVNode("div",{class:["".concat(v.value,"__card-content"),s({},"".concat(c.value,"-is-bordered"),"waiting"!==n.status)]},["progress"===n.status&&t.createVNode("div",{class:"".concat(v.value,"__card-status-wrap ").concat(v.value,"__").concat(e.theme,"-progress")},[d[n.status],t.createVNode("p",null,[f[n.status],e.showUploadProgress&&" ".concat(n.percent,"%")])]),"fail"===n.status&&t.createVNode("div",{class:"".concat(v.value,"__card-status-wrap ").concat(v.value,"__").concat(e.theme,"-fail")},[d[n.status],t.createVNode("p",null,[(null===(o=n.response)||void 0===o?void 0:o.error)||f[n.status]])]),(["waiting","success"].includes(n.status)||!n.status&&n.url)&&t.createVNode(n_,{class:"".concat(v.value,"__card-image"),src:n.url||n.raw,error:"",loading:"",fit:"contain"},null),t.createVNode("div",{class:"".concat(v.value,"__card-mask")},[(n.url||n.raw)&&!["progress","fail"].includes(n.status)&&t.createVNode("span",{class:"".concat(v.value,"__card-mask-item")},[t.createVNode(h,{onClick:function(t){var o,a=t.e;_.value=r,N.value=u.value,null===(o=e.onPreview)||void 0===o||o.call(e,{file:n,index:r,e:a})}},null),t.createVNode("span",{class:"".concat(v.value,"__card-mask-item-divider")},null)]),!l.value&&t.createVNode("span",{class:"".concat(v.value,"__card-mask-item ").concat(v.value,"__delete"),onClick:function(t){return e.onRemove({e:t,index:r,file:n})}},[t.createVNode(g,null,null)])])]),e.showImageFileName&&t.createVNode("p",{class:["".concat(v.value,"__card-name"),"".concat(v.value,"__flow-status")]},[["success","waiting"].includes(n.status)&&d[n.status],p])])}(n,r)}))])};return function(){var n,o,i,c="".concat(v.value,"__flow-card-area"),s=l.value||!a.value,d=r.uploadButton||H(e.uploadButton),m=Boolean(l.value||a.value||!u.value.length),h=r.cancelUploadButton||H(e.cancelUploadButton);return t.createVNode("div",{class:"".concat(v.value,"__flow ").concat(v.value,"__flow-").concat(e.theme)},[t.createVNode("div",{class:"".concat(v.value,"__flow-op")},[null===(n=r.default)||void 0===n?void 0:n.call(r),e.placeholder&&t.createVNode("small",{class:"".concat(v.value,"__flow-placeholder ").concat(v.value,"__placeholder")},[e.placeholder])]),"image-flow"===e.theme&&t.createVNode("div",t.mergeProps({class:c},D.value),[u.value.length?L():T()]),"file-flow"===e.theme&&(u.value.length?B():t.createVNode("div",t.mergeProps({class:c},D.value),[T()])),!e.autoUpload&&(null!==e.uploadButton||null!==e.cancelUploadButton)&&t.createVNode("div",{class:"".concat(v.value,"__flow-bottom")},[null!==e.cancelUploadButton&&(d?p("cancelUploadButton",{params:{disabled:s,cancelUploadText:null===(o=f.value)||void 0===o?void 0:o.cancelUploadText,cancelUpload:e.cancelUpload}}):t.createVNode(fu,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(fu,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(jV,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 HA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function WA(e){for(var t=1;tt*Ml[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 XA(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 GA(e){var t=e.action,n=e.toUploadFiles,r=e.requestMethod;return new Promise((function(o){if(!t&&!r)return kl("Upload","one of action and requestMethod must be exist."),void o({});if(!n||!n.length)return Sl("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)||Sl("Upload","`requestMethodResponse.response.url` or `requestMethodResponse.response.files` is required if `status` is `success`"),!0):(kl("Upload","`requestMethodResponse.status` must be `success` or `fail`, examples `{ status: 'success', response: { url: '' } }`"),!1):(kl("Upload","`requestMethodResponse.status` is missing, which value only can be `success` or `fail`"),!1):(kl("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 ZA(ZA(ZA({},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)||Al()})),a=n);var l,i={response:r,file:a[0],files:a};if("success"===t.status)null===(l=e.onResponseSuccess)||void 0===l||l.call(e,i);else if("fail"===t.status){var u;null===(u=e.onResponseError)||void 0===u||u.call(e,i)}o({status:t.status,data:i})}else o({})}));else{var a,l=function(e){var t,n,r,o=e.method,a=void 0===o?"POST":o,l=e.action,c=e.withCredentials,s=void 0!==c&&c,d=e.headers,v=void 0===d?{}:d,f=e.data,p=void 0===f?{}:f,m=e.file,h=e.files,g=void 0===h?[]:h,y=e.name,b=void 0===y?"file":y,w=e.useMockProgress,O=void 0===w||w,C=e.mockProgressDuration,x=void 0===C?300:C,P=e.formatRequest,S=e.onError,j=e.onProgress,k=e.onSuccess,N=g||[],_=0,V=new XMLHttpRequest;if(s&&(V.withCredentials=!0),O&&"progress"===(null===(t=g[0])||void 0===t?void 0:t.status))var D=setTimeout((function(){n=setInterval((function(){_+10<100?(_=Math.max(_+10,_),g[0]&&_!==g[0].percent&&(g[0].percent=_,j({percent:_,file:m||N[0],files:N.map((function(e){return YA(YA({},e),{},{percent:_})})),type:"mock",XMLHttpRequest:V}))):clearInterval(n)}),x),clearTimeout(D)}),x);var E={};if(p){var F=H(p)?p(N):p;Object.assign(E,F)}N.forEach((function(e,t){var n=N.length>1?"".concat(b,"[").concat(t,"]"):b;E[n]=e.raw})),1===N.length?E[b]=N[0].raw:E[b]=N.map((function(e){return e.raw})),E.length=N.length,P&&(E=P(E));var T=new FormData;return Object.keys(E).forEach((function(e){T.append(e,E[e])})),V.open(a,l,!0),Object.keys(v).forEach((function(e){V.setRequestHeader(e,v[e])})),V.onerror=function(e){S({event:e,file:m,files:N,XMLHttpRequest:V}),clearInterval(n),clearTimeout(r)},V.ontimeout=function(e){S({event:e,file:m,files:N,XMLHttpRequest:V})},V.upload&&(V.upload.onprogress=function(e){var t,n=0;if(e.total>0&&(n=Math.round(e.loaded/e.total*100)),(_=Math.max(n,_))!==n&&(null===(t=N[0])||void 0===t?void 0:t.percent)!==_){var r=N.map((function(e){return YA(YA({},e),{},{percent:_})}));j({event:e,percent:_,file:m||r[0],files:r,type:"real",XMLHttpRequest:V})}}),V.onload=function(e){var t={};if(t.XMLHttpRequest=V,V.status<200||V.status>=300)return S({event:e,file:m,files:N,response:t,XMLHttpRequest:V});var o=V.responseText||V.response;try{t=JSON.parse(o)}catch(e){t=o,kl("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)||Al()})),"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=XA(ZA(ZA({},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=XA(ZA(ZA({},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&&kl("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}}(ZA(ZA({},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 JA(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 GA(ZA(ZA({},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 GA(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?ZA(ZA({},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)),ZA({raw:e,lastModified:e.lastModified,name:e.name,size:e.size,type:e.type,percent:r,status:n},o)}))}function eB(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function tB(e){for(var t=1;tr&&(u=!0)}var s,d=QA(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){qA(t,{beforeUpload:e.beforeUpload,sizeLimit:e.sizeLimit}).then((function(e){var r=Ra(e,2),o=r[0],a=r[1];o?n({file:t,validateResult:{type:"FILE_OVER_SIZE_LIMIT",extra:o}}):!1===a&&n({file:t,validateResult:{type:"CUSTOM_BEFORE_UPLOAD"}}),n({file:t})}))}))}));Promise.all([s].concat(p)).then((function(e){var t=oI(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=QA(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=[],JA({action:e.action,headers:e.headers,method:e.method,name:e.name,withCredentials:e.withCredentials,uploadedFiles:g.value,toUploadFiles:r,multiple:e.multiple,isBatchUpload:l.value,autoUpload:e.autoUpload,uploadAllFilesInOneRequest:e.uploadAllFilesInOneRequest,useMockProgress:e.useMockProgress,data:e.data,mockProgressDuration:e.mockProgressDuration,requestMethod:e.requestMethod,formatRequest:e.formatRequest,formatResponse:e.formatResponse,onResponseProgress:D,onResponseSuccess:E,onResponseError:V,setXhrObject:function(e){var t;null!==(t=e.files[0])&&void 0!==t&&t.raw&&b.value.find((function(t){var n;return(null===(n=t.files[0])||void 0===n?void 0:n.raw)===e.files[0].raw}))||(b.value=b.value.concat(e))}}).then((function(t){var n,o,l=t.status,u=t.data,c=t.list,s=t.failedFiles;if(k.value=!1,"success"===l)y(i(u.files),{trigger:"add",file:u.files[0]}),b.value=[],null===(n=e.onSuccess)||void 0===n||n.call(e,{fileList:u.files,currentFiles:r,file:r[0],results:null==c?void 0:c.map((function(e){return e.data})),response:u.response||c.map((function(e){return e.data.response})),XMLHttpRequest:u.XMLHttpRequest});else if(null!=s&&s[0]){var d;null===(d=e.onFail)||void 0===d||d.call(e,{e:u.event,file:s[0],failedFiles:s,currentFiles:r,response:u.response,XMLHttpRequest:u.XMLHttpRequest})}a.value&&(w.value=s,null===(o=e.onWaitingUploadFilesChange)||void 0===o||o.call(e,{files:s,trigger:"uploaded"}))})))}function M(t){var n,r,o;O.value="",null===(n=(r=t.e).stopPropagation)||void 0===n||n.call(r);var a,l={e:t.e,trigger:"remove",index:t.index,file:t.file};if(e.isBatchUpload||!e.multiple)w.value=[],null===(a=e.onWaitingUploadFilesChange)||void 0===a||a.call(e,{files:[],trigger:"remove"}),y([],l);else if(e.autoUpload){var u;if(t.index=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function MF(e){if("undefined"!=typeof window&&window.navigator)return!!navigator.userAgent.match(e)}var IF=MF(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),AF=MF(/Edge/i),BF=MF(/firefox/i),LF=MF(/safari/i)&&!MF(/chrome/i)&&!MF(/android/i),RF=MF(/iP(ad|od|hone)/i),zF=MF(/chrome/i)&&MF(/android/i),HF={capture:!1,passive:!1};function WF(e,t,n){e.addEventListener(t,n,!IF&&HF)}function KF(e,t,n){e.removeEventListener(t,n,!IF&&HF)}function UF(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 YF(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function $F(e,t,n,r){if(e){n=n||document;do{if(null!=t&&(">"===t[0]?e.parentNode===n&&UF(e,t):UF(e,t))||r&&e===n)return e;if(e===n)break}while(e=YF(e))}return null}var ZF,qF=/\s+/g;function XF(e,t,n){if(e&&t)if(e.classList)e.classList[n?"add":"remove"](t);else{var r=(" "+e.className+" ").replace(qF," ").replace(" "+t+" "," ");e.className=(r+(n?" "+t:"")).replace(qF," ")}}function GF(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 JF(e,t){var n="";if("string"==typeof e)n=e;else do{var r=GF(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 QF(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===eT())break;r=iT(r,!1)}return!1}function rT(e,t,n,r){for(var o=0,a=0,l=e.children;a2&&void 0!==arguments[2]?arguments[2]:{},r=n.evt,o=TF(n,yT);gT.pluginEvent.bind(dM)(e,t,VF({dragEl:OT,parentEl:CT,ghostEl:xT,rootEl:PT,nextEl:ST,lastDownEl:jT,cloneEl:kT,cloneHidden:NT,dragStarted:zT,putSortable:TT,activeSortable:dM.active,originalEvent:r,oldIndex:_T,oldDraggableIndex:DT,newIndex:VT,newDraggableIndex:ET,hideGhostForTarget:iM,unhideGhostForTarget:uM,cloneNowHidden:function(){NT=!0},cloneNowShown:function(){NT=!1},dispatchSortableEvent:function(e){wT({sortable:t,name:e,originalEvent:r})}},o))};function wT(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[fT]){var m,h=t.options,g="on"+r.charAt(0).toUpperCase()+r.substr(1);!window.CustomEvent||IF||AF?(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=VF(VF({},p),gT.getEventProperties(r,t));for(var b in y)m[b]=y[b];n&&n.dispatchEvent(m),h[g]&&h[g].call(t,m)}}(VF({putSortable:TT,cloneEl:kT,targetEl:OT,rootEl:PT,oldIndex:_T,oldDraggableIndex:DT,newIndex:VT,newDraggableIndex:ET},e))}var OT,CT,xT,PT,ST,jT,kT,NT,_T,VT,DT,ET,FT,TT,MT,IT,AT,BT,LT,RT,zT,HT,WT,KT,UT,YT=!1,$T=!1,ZT=[],qT=!1,XT=!1,GT=[],JT=!1,QT=[],eM="undefined"!=typeof document,tM=RF,nM=AF||IF?"cssFloat":"float",rM=eM&&!zF&&!RF&&"draggable"in document.createElement("div"),oM=function(){if(eM){if(IF)return!1;var e=document.createElement("x");return e.style.cssText="pointer-events:auto","auto"===e.style.pointerEvents}}(),aM=function(e,t){var n=GF(e),r=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),o=rT(e,0,t),a=rT(e,1,t),l=o&&GF(o),i=a&&GF(a),u=l&&parseInt(l.marginLeft)+parseInt(l.marginRight)+tT(o).width,c=i&&parseInt(i.marginLeft)+parseInt(i.marginRight)+tT(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[nM]||a&&"none"===n[nM]&&u+c>r)?"vertical":"horizontal"},lM=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"==DF(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},iM=function(){!oM&&xT&&GF(xT,"display","none")},uM=function(){!oM&&xT&&GF(xT,"display","")};eM&&!zF&&document.addEventListener("click",function(e){if($T)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),$T=!1,!1},!0);var cM=function(e){if(OT){e=e.touches?e.touches[0]:e;var t=(o=e.clientX,a=e.clientY,ZT.some(function(e){var t=e[fT].options.emptyInsertThreshold;if(t&&!oT(e)){var n=tT(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[fT]._onDragOver(n)}}var o,a,l},sM=function(e){OT&&OT.parentNode[fT]._isOutsideThisEl(e.target)};function dM(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=FF({},t),e[fT]=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 aM(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!==dM.supportPointer&&"PointerEvent"in window&&(!LF||RF),emptyInsertThreshold:5};for(var r in gT.initializePlugins(this,e,n),n)!(r in t)&&(t[r]=n[r]);for(var o in lM(t),this)"_"===o.charAt(0)&&"function"==typeof this[o]&&(this[o]=this[o].bind(this));this.nativeDraggable=!t.forceFallback&&rM,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?WF(e,"pointerdown",this._onTapStart):(WF(e,"mousedown",this._onTapStart),WF(e,"touchstart",this._onTapStart)),this.nativeDraggable&&(WF(e,"dragover",this),WF(e,"dragenter",this)),ZT.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),FF(this,pT())}function vM(e,t,n,r,o,a,l,i){var u,c,s=e[fT],d=s.options.onMove;return!window.CustomEvent||IF||AF?(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||tT(t),u.willInsertAfter=i,u.originalEvent=l,e.dispatchEvent(u),d&&(c=d.call(s,u,l)),c}function fM(e){e.draggable=!1}function pM(){JT=!1}function mM(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 hM(e){return setTimeout(e,0)}function gM(e){return clearTimeout(e)}dM.prototype={constructor:dM,_isOutsideThisEl:function(e){this.el.contains(e)||e===this.el||(HT=null)},_getDirection:function(e,t){return"function"==typeof this.options.direction?this.options.direction.call(this,e,t,OT):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){QT.length=0;var t=e.getElementsByTagName("input"),n=t.length;for(;n--;){var r=t[n];r.checked&&QT.push(r)}}(n),!OT&&!(/mousedown|pointerdown/.test(a)&&0!==e.button||r.disabled)&&!u.isContentEditable&&(this.nativeDraggable||!LF||!i||"SELECT"!==i.tagName.toUpperCase())&&!((i=$F(i,r.draggable,n,!1))&&i.animated||jT===i)){if(_T=aT(i),DT=aT(i,r.draggable),"function"==typeof c){if(c.call(this,e,i,this))return wT({sortable:t,rootEl:u,name:"filter",targetEl:i,toEl:n,fromEl:n}),bT("filter",t,{evt:e}),void(o&&e.preventDefault())}else if(c&&(c=c.split(",").some(function(r){if(r=$F(u,r.trim(),n,!1))return wT({sortable:t,rootEl:r,name:"filter",targetEl:i,fromEl:n,toEl:n}),bT("filter",t,{evt:e}),!0})))return void(o&&e.preventDefault());r.handle&&!$F(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&&!OT&&n.parentNode===a){var u=tT(n);if(PT=a,CT=(OT=n).parentNode,ST=OT.nextSibling,jT=n,FT=l.group,dM.dragged=OT,MT={target:OT,clientX:(t||e).clientX,clientY:(t||e).clientY},LT=MT.clientX-u.left,RT=MT.clientY-u.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,OT.style["will-change"]="all",r=function(){bT("delayEnded",o,{evt:e}),dM.eventCanceled?o._onDrop():(o._disableDelayedDragEvents(),!BF&&o.nativeDraggable&&(OT.draggable=!0),o._triggerDragStart(e,t),wT({sortable:o,name:"choose",originalEvent:e}),XF(OT,l.chosenClass,!0))},l.ignore.split(",").forEach(function(e){QF(OT,e.trim(),fM)}),WF(i,"dragover",cM),WF(i,"mousemove",cM),WF(i,"touchmove",cM),l.supportPointer?(WF(i,"pointerup",o._onDrop),!this.nativeDraggable&&WF(i,"pointercancel",o._onDrop)):(WF(i,"mouseup",o._onDrop),WF(i,"touchend",o._onDrop),WF(i,"touchcancel",o._onDrop)),BF&&this.nativeDraggable&&(this.options.touchStartThreshold=4,OT.draggable=!0),bT("delayStart",this,{evt:e}),!l.delay||l.delayOnTouchOnly&&!t||this.nativeDraggable&&(AF||IF))r();else{if(dM.eventCanceled)return void this._onDrop();l.supportPointer?(WF(i,"pointerup",o._disableDelayedDrag),WF(i,"pointercancel",o._disableDelayedDrag)):(WF(i,"mouseup",o._disableDelayedDrag),WF(i,"touchend",o._disableDelayedDrag),WF(i,"touchcancel",o._disableDelayedDrag)),WF(i,"mousemove",o._delayedDragTouchMoveHandler),WF(i,"touchmove",o._delayedDragTouchMoveHandler),l.supportPointer&&WF(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(){OT&&fM(OT),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;KF(e,"mouseup",this._disableDelayedDrag),KF(e,"touchend",this._disableDelayedDrag),KF(e,"touchcancel",this._disableDelayedDrag),KF(e,"pointerup",this._disableDelayedDrag),KF(e,"pointercancel",this._disableDelayedDrag),KF(e,"mousemove",this._delayedDragTouchMoveHandler),KF(e,"touchmove",this._delayedDragTouchMoveHandler),KF(e,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t=t||"touch"==e.pointerType&&e,!this.nativeDraggable||t?this.options.supportPointer?WF(document,"pointermove",this._onTouchMove):WF(document,t?"touchmove":"mousemove",this._onTouchMove):(WF(OT,"dragend",this),WF(PT,"dragstart",this._onDragStart));try{document.selection?hM(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch(e){}},_dragStarted:function(e,t){if(YT=!1,PT&&OT){bT("dragStarted",this,{evt:t}),this.nativeDraggable&&WF(document,"dragover",sM);var n=this.options;!e&&XF(OT,n.dragClass,!1),XF(OT,n.ghostClass,!0),dM.active=this,e&&this._appendGhost(),wT({sortable:this,name:"start",originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(IT){this._lastX=IT.clientX,this._lastY=IT.clientY,iM();for(var e=document.elementFromPoint(IT.clientX,IT.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(IT.clientX,IT.clientY))!==t;)t=e;if(OT.parentNode[fT]._isOutsideThisEl(e),t)do{if(t[fT]){if(t[fT]._onDragOver({clientX:IT.clientX,clientY:IT.clientY,target:e,rootEl:t})&&!this.options.dragoverBubble)break}e=t}while(t=YF(t));uM()}},_onTouchMove:function(e){if(MT){var t=this.options,n=t.fallbackTolerance,r=t.fallbackOffset,o=e.touches?e.touches[0]:e,a=xT&&JF(xT,!0),l=xT&&a&&a.a,i=xT&&a&&a.d,u=tM&&UT&&lT(UT),c=(o.clientX-MT.clientX+r.x)/(l||1)+(u?u[0]-GT[0]:0)/(l||1),s=(o.clientY-MT.clientY+r.y)/(i||1)+(u?u[1]-GT[1]:0)/(i||1);if(!dM.active&&!YT){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===OT)return D(!1);if(m&&a===e.target&&(l=m),l&&(n=tT(l)),!1!==vM(PT,a,OT,t,l,n,e,!!l))return V(),m&&m.nextSibling?a.insertBefore(OT,m.nextSibling):a.appendChild(OT),CT=a,E(),D(!0)}else if(m&&function(e,t,n){var r=tT(rT(n.el,0,n.options,!0)),o=vT(n.el,n.options,xT),a=10;return t?e.clientXs+c*a/2:ud-KT)return-WT}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,XT,HT===l),0!==g){var S=aT(OT);do{S-=g,b=CT.children[S]}while(b&&("none"===GF(b,"display")||b===xT))}if(0===g||b===l)return D(!1);HT=l,WT=g;var j=l.nextElementSibling,k=!1,N=vM(PT,a,OT,t,l,n,e,k=1===g);if(!1!==N)return 1!==N&&-1!==N||(k=1===N),JT=!0,setTimeout(pM,30),V(),k&&!j?a.appendChild(OT):l.parentNode.insertBefore(OT,k?j:l),x&&sT(x,0,P-x.scrollTop),CT=OT.parentNode,void 0===y||XT||(KT=Math.abs(y-tT(l)[C])),E(),D(!0)}if(a.contains(OT))return D(!1)}return!1}function _(i,u){bT(i,f,VF({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 vM(PT,a,OT,t,n,tT(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&&(XF(OT,TT?TT.options.ghostClass:c.options.ghostClass,!1),XF(OT,i.ghostClass,!0)),TT!==f&&f!==dM.active?TT=f:f===dM.active&&TT&&(TT=null),v===f&&(f._ignoreWhileAnimating=l),f.animateAll(function(){_("dragOverAnimationComplete"),f._ignoreWhileAnimating=null}),f!==v&&(v.animateAll(),v._ignoreWhileAnimating=null)),(l===OT&&!OT.animated||l===a&&!l.animated)&&(HT=null),i.dragoverBubble||e.rootEl||l===document||(OT.parentNode[fT]._isOutsideThisEl(e.target),!t&&cM(e)),!i.dragoverBubble&&e.stopPropagation&&e.stopPropagation(),p=!0}function E(){VT=aT(OT),ET=aT(OT,i.draggable),wT({sortable:f,name:"change",toEl:a,newIndex:VT,newDraggableIndex:ET,originalEvent:e})}},_ignoreWhileAnimating:null,_offMoveEvents:function(){KF(document,"mousemove",this._onTouchMove),KF(document,"touchmove",this._onTouchMove),KF(document,"pointermove",this._onTouchMove),KF(document,"dragover",cM),KF(document,"mousemove",cM),KF(document,"touchmove",cM)},_offUpEvents:function(){var e=this.el.ownerDocument;KF(e,"mouseup",this._onDrop),KF(e,"touchend",this._onDrop),KF(e,"pointerup",this._onDrop),KF(e,"pointercancel",this._onDrop),KF(e,"touchcancel",this._onDrop),KF(document,"selectstart",this)},_onDrop:function(e){var t=this.el,n=this.options;VT=aT(OT),ET=aT(OT,n.draggable),bT("drop",this,{evt:e}),CT=OT&&OT.parentNode,VT=aT(OT),ET=aT(OT,n.draggable),dM.eventCanceled||(YT=!1,XT=!1,qT=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),gM(this.cloneId),gM(this._dragStartId),this.nativeDraggable&&(KF(document,"drop",this),KF(t,"dragstart",this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),LF&&GF(document.body,"user-select",""),GF(OT,"transform",""),e&&(zT&&(e.cancelable&&e.preventDefault(),!n.dropBubble&&e.stopPropagation()),xT&&xT.parentNode&&xT.parentNode.removeChild(xT),(PT===CT||TT&&"clone"!==TT.lastPutMode)&&kT&&kT.parentNode&&kT.parentNode.removeChild(kT),OT&&(this.nativeDraggable&&KF(OT,"dragend",this),fM(OT),OT.style["will-change"]="",zT&&!YT&&XF(OT,TT?TT.options.ghostClass:this.options.ghostClass,!1),XF(OT,this.options.chosenClass,!1),wT({sortable:this,name:"unchoose",toEl:CT,newIndex:null,newDraggableIndex:null,originalEvent:e}),PT!==CT?(VT>=0&&(wT({rootEl:CT,name:"add",toEl:CT,fromEl:PT,originalEvent:e}),wT({sortable:this,name:"remove",toEl:CT,originalEvent:e}),wT({rootEl:CT,name:"sort",toEl:CT,fromEl:PT,originalEvent:e}),wT({sortable:this,name:"sort",toEl:CT,originalEvent:e})),TT&&TT.save()):VT!==_T&&VT>=0&&(wT({sortable:this,name:"update",toEl:CT,originalEvent:e}),wT({sortable:this,name:"sort",toEl:CT,originalEvent:e})),dM.active&&(null!=VT&&-1!==VT||(VT=_T,ET=DT),wT({sortable:this,name:"end",toEl:CT,originalEvent:e}),this.save())))),this._nulling()},_nulling:function(){bT("nulling",this),PT=OT=CT=xT=ST=kT=jT=NT=MT=IT=zT=VT=ET=_T=DT=HT=WT=TT=FT=dM.dragged=dM.ghost=dM.clone=dM.active=null,QT.forEach(function(e){e.checked=!0}),QT.length=AT=BT=0},handleEvent:function(e){switch(e.type){case"drop":case"dragend":this._onDrop(e);break;case"dragenter":case"dragover":OT&&(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 FM(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function TM(e){for(var t=1;tl?l*(a-1)+t:t}e.sortOnRowDraggable&&pi("Table","`sortOnRowDraggable` is going to be deprecated, use dragSort='row' instead.");var C=function(t,n){var r=TM({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&&(MM(t.item),IM(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=fF(m.value,s.dataset.colkey),f=fF(m.value,d.dataset.colkey);v&&v.colKey||pi("Table","colKey is missing in ".concat(JSON.stringify(v))),f&&f.colKey||pi("Table","colKey is missing in ".concat(JSON.stringify(f))),u=pF(e.columns,v.colKey),c=pF(e.columns,f.colKey);var p={data:m.value,currentIndex:u,current:v,targetIndex:c,target:f,newData:EM(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 dM(t,r)},x=function(e){if(w.value&&e){var t=e.querySelectorAll("thead > tr");if(t.length<=1){var n=Ya(t,1)[0];C(n,!0)}else null==t||t.forEach(function(e){C(e,!1)})}};return t.watch([h,m,l,r],function(r){var o=Ya(r,4),a=o[0];o[1],o[2],function(r,o){var a=r;if(!r||!a.$el||!o.showElement)return;var l=setTimeout(function(){!function(r){var o;if(0!==(null==r||null===(o=r.children)||void 0===o?void 0:o.length)&&(b.value||y.value)){var a=null==r?void 0:r.querySelector("tbody");if(!a)return console.error("tbody does not exist."),null;var l=TM({animation:150,ghostClass:d.ghost,chosenClass:d.chosen,dragClass:d.dragging,filter:".".concat(f.base,",.").concat(p.row),onMove:function(e){return!fl(e.related,f.base)},onEnd:function(r){var o;if(r.newIndex!==r.oldIndex){MM(r.item),IM(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:EM(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 dM(a,TM({},l)):new dM(a,TM(TM({},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 BM(e){return Ka(e)||a(e)||l(e)||Ua()}function LM(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function RM(e){for(var t=1;t2?r-2:0),u=2;u1?f-1:0),m=1;m0&&void 0!==arguments[0]?arguments[0]:{errors:[],errorMap:{}}).errorMap;e&&Object.assign(a,e)}),o.value=a,null===(r=e.onValidate)||void 0===r||r.call(e,{result:a}),n({result:a})},r)})},validateTableCellData:s,validateRowData:function(t){return new Promise(function(n,r){c(t).then(function(t){var r,a=t.errors,l=t.errorMap;o.value=l;var i="parent";null===(r=e.onRowValidate)||void 0===r||r.call(e,{trigger:i,result:a}),n({trigger:i,result:a})},r)})},onRuleChange:function(t){if(e.editableRowKeys){var n=jt(t.row,e.rowKey||"id"),o=r.get(n);if(o){var a=o.findIndex(function(e){return e.col.colKey===t.col.colKey});-1===a?o.push(t):o[a]=t,r.set(n,o)}else r.set(n,[t])}},clearValidateData:function(){o.value={}},onUpdateEditedCell:function(e,t,n){i.value[e]||(i.value[e]=Ir(t)),Object.entries(n).forEach(function(t){var n=Ya(t,2),r=n[0],o=n[1];Ma(i.value[e],r,o)})},getEditRowData:function(t){var n,r=t.row,o=t.col,a=jt(r,e.rowKey||"id"),l=i.value[a];if(l&&null!==(n=e.editableRowKeys)&&void 0!==n&&n.includes(a)){var u=WM({},l);return Ma(u,o.colKey,jt(l,o.colKey)),u}return r},onPrimaryTableCellEditChange:function(t){var n=FE(t.row,e.rowKey,t.col.colKey,t.colIndex);t.isEdit?l.value[n]=t:delete l.value[n]}}}function UM(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function YM(e){for(var t=1;t1&&void 0!==arguments[1]&&arguments[1],a=[],l=function(){var l,c,s,d,f,m=YM({},r[i]);if(!((null===(l=m.children)||void 0===l?void 0:l.length)||(null===(c=O.value)||void 0===c?void 0:c.includes(m.colKey)))&&(e.columnController||e.displayColumns||e.defaultDisplayColumns)&&!o)return 1;m=I(m);var g,w=e.sort;m.sorter&&e.showSortColumnBgColor&&((w instanceof Array?w:[w]).find(function(e){return e&&e.sortBy===m.colKey&&void 0!==e.descending})&&(m.className=m.className instanceof Array?m.className.concat(h.sortColumn):[m.className,h.sortColumn]));if(m.sorter||m.filter){var C=gE(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=YM(YM({},o),{},{row:ve(o),oldCell:P,rowKey:e.rowKey||"id",tableBaseClass:p,cellEmptyContent:e.cellEmptyContent,onChange:we,onValidate:e.onRowValidate,onRuleChange:ce,onEditableChange:fe});if(e.editableRowKeys){var l,i=jt(o.row,e.rowKey||"id");a.editable=ae.value[i]||!1;var u=[i,o.col.colKey].join("__"),c=null===(l=oe.value)||void 0===l?void 0:l[u];c&&(a.errors=c)}return e.editableCellState&&(a.readonly=!e.editableCellState(o)),t.createVNode(zM,t.mergeProps(a,{onUpdateEditedCell:de}),n.slots)}}null!==(d=m.children)&&void 0!==d&&d.length&&(m.children=Oe(m.children,o||(null===(g=O.value)||void 0===g?void 0:g.includes(m.colKey))));(!m.children||null!==(f=m.children)&&void 0!==f&&f.length)&&a.push(m)},i=0,c=r.length;i2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,o=jt(e,t);return n||r?"".concat(o,"_").concat(n||0,"_").concat(r||0,"}"):o}var tI=function(){return Ti(function e(){Mi(this,e),s(this,"treeDataMap",new Map),s(this,"expandAllRowIndex",void 0),this.treeDataMap=new Map},[{key:"initialTreeStore",value:function(e,t,n){var r;null===(r=this.treeDataMap)||void 0===r||r.clear(),this.initialTreeDataMap(this.treeDataMap,e,t.find(function(e){return"row-select"===e.colKey}),n)}},{key:"getAllUniqueKeys",value:function(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=0,o=e.length;r2&&void 0!==arguments[2]?arguments[2]:[],r=0,o=e.length;r=0){var o=(r.expandChildrenLength||0)+1;if(t.splice(r.rowIndex,o),r.parent){var a=jt(r.parent.row,n.childrenKey),l=a.findIndex(function(t){return jt(t,n.rowKey)===e});a.splice(l,1),nI(this.treeDataMap,r.parent.row,-1*o,"delete",n)}this.treeDataMap.delete(e),lI(this.treeDataMap,t,{minRowIndex:r.rowIndex,rowKey:n.rowKey,type:"remove"})}else vi("EnhancedTable","Can not remove this node, which is not appeared.");return t}},{key:"removeChildren",value:function(e,t,n){var r=this.treeDataMap.get(e);if(r&&r.rowIndex>=0){var o=r.expandChildrenLength||0;o&&t.splice(r.rowIndex+1,o),r.parent&&nI(this.treeDataMap,r.parent.row,-1*o,"delete",n),r.expandChildrenLength=0,r.expanded=!1,Ma(r.row,n.childrenKey,void 0),this.treeDataMap.set(e,r),o&&lI(this.treeDataMap,t,{minRowIndex:r.rowIndex+1,rowKey:n.rowKey,type:"remove"})}else vi("EnhancedTable","Can not remove this node's children, which is not appeared.");return t}},{key:"appendTo",value:function(e,t,n,r){var o=this.treeDataMap.get(e);if(!this.validateDataExist(o,e))return n;for(var a=jt(o.row,r.childrenKey),l=o.expanded||!(null!=a&&a.length),u=t instanceof Array?t:[t],c=[],s=-1,d=0,v=u.length;do){var p=e.slice(d,r),m=v.concat(f,p);e.splice(o,m.length),e.splice.apply(e,[o,0].concat(i(m))),lI(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))),lI(this.treeDataMap,e,{rowKey:n.rowKey,minRowIndex:r,maxRowIndex:d})}if(u.parent){for(var g=u.parent.row[n.childrenKey],y=0,b=-1,w=-1,O=0,C=g.length;O=2));O++);w2&&void 0!==arguments[2]?arguments[2]:null,l=0,i=e.length;l2&&void 0!==arguments[2]?arguments[2]:"data",o=[];return e.forEach(function(e){var a=jt(e,t.rowKey),l=n.treeDataMap.get(a);l.expanded&&("unique"===r?o.push(a):"data"===r?o.push(e):o.push(l))}),o}},{key:"initialTreeDataMap",value:function(e,t,n,r){for(var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,l=0,i=t.length;l0&&void 0!==arguments[0]?arguments[0]:"expand-all",t=(arguments.length>1?arguments[1]:void 0)||u.value;o.value=r.value.expandAll(t,a.value);var n=o.value.map(function(e){return eI(e,a.value.rowKey)});m(n,{row:void 0,rowState:void 0,rowIndex:void 0,type:"expand",trigger:e}),h.value.type="expand-all"}function y(e,t){var n=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=[],r=[],o=new Map,a=new Map,l=0,i=e.length;l2&&void 0!==arguments[2]?arguments[2]:[]),o=n.addedList,l=n.removedList;return r.value.expandTreeNode(o,e,a.value),r.value.foldTreeNode(l,e,a.value),i(e)}t.watch([p,u],function(e,t){var n=Ya(e,1)[0],l=Ya(t,1)[0];if(r.value.treeDataMap.size&&u.value.length){if("user-reaction-change"===h.value.type){var c=h.value||{},s=c.row,d=c.rowIndex;o.value=i(r.value.toggleExpandData({row:s,rowIndex:d},i(o.value),a.value))}else"props-change"===h.value.type&&y(o.value,n,l);h.value.type="props-change"}});return{tExpandedTreeNode:p,isDefaultExpandAllExecute:d,isDefaultExpandedTreeNodesExecute:v,expandAll:g,foldAll:function(){o.value=i(r.value.foldAll(o.value,a.value)),m([],{row:void 0,rowState:void 0,rowIndex:void 0,type:"fold",trigger:"fold-all"})},onExpandFoldIconClick:function(t,n){var o,l=t.row,u=t.rowIndex;h.value=uI({type:"user-reaction-change"},t);var c=eI(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=dI({},m.value);return o.cell=function(o,a){var l,i,d=LE(dI(dI({},a),{},{col:dI({},m.value)}),n.slots,{cellEmptyContent:e.cellEmptyContent}),h=p.value.treeDataMap.get(jt(a.row,b.value.rowKey)),w=function(t){var n,r;if(void 0!==t){var o=void 0===(null===(n=e.tree)||void 0===n?void 0:n.indent)?24:null===(r=e.tree)||void 0===r?void 0:r.indent;return o?{paddingLeft:"".concat(t*o||1,"px")}:{}}}(null==h?void 0:h.level),O=s({},g.inlineCol,!!r.ellipsis),C=jt(a.row,b.value.childrenKey);if(C&&C instanceof Array||!0===C){var x,P=null!==(x=p.value.treeDataMap.get(jt(a.row,b.value.rowKey)))&&void 0!==x&&x.expanded?(l=dI(dI({},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=dI(dI({},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 LE(dI(dI({},t),{},{col:dI({},m.value)}),n.slots)}),o},toggleExpandData:function(t,n){var r,o,a=dI({},t);void 0!==t.row.VIRTUAL_SCROLL_INDEX&&(a.rowIndex=t.row.VIRTUAL_SCROLL_INDEX),h.value=i(p.value.toggleExpandData(a,h.value,b.value));var l=jt(t.row,b.value.rowKey),u=null===(r=p.value)||void 0===r||null===(r=r.treeDataMap)||void 0===r?void 0:r.get(l);null===(o=e.onTreeExpandChange)||void 0===o||o.call(e,{row:t.row,rowIndex:t.rowIndex,rowState:u,trigger:n})},expandAll:P,foldAll:S,getTreeNode:function(){return p.value.getTreeNode(h.value,b.value)},resetData:_,getTreeExpandedRow:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"data";return p.value.getTreeExpandedRow(h.value,b.value,e)},onExpandFoldIconClick:k}}function 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 pI(e){for(var t=1;t0&&v=0?e.rowIndex:e.rowIndex<0?w(e.parent):void 0:-1};return n.expose(wI(wI({store:a.value,dataSource:l.value},s),{},{primaryTableRef:r,validateRowData:function(e){return r.value.validateRowData(e)},validateTableData:function(){return r.value.validateTableData()},clearValidateData:function(){r.value.clearValidateData()},refreshTable:function(){r.value.refreshTable()},scrollToElement:function(e){var t=e.index;if(!t&&0!==t){if(!e.key)return void pi("Table","scrollToElement: one of `index` or `key` must exist.");var n=v.value.get(e.key);((t=w(n,e.key))<0||void 0===t)&&pi("Table","".concat(e.key," does not exist in data, check `rowKey` or `data` please."))}r.value.scrollToElement(wI(wI({},e),{},{index:t}))}})),function(){var o,a=wI(wI({},t.getCurrentInstance().vnode.props),{},{rowKey:e.rowKey||"id",data:l.value,columns:g.value,indeterminateSelectedRowKeys:p.value,disableDataPage:Boolean(e.tree&&Object.keys(e.tree).length)||e.disableDataPage,onSelectChange:m,onDragSort:y,rowClassName:function(t){var n=jt(t.row,e.rowKey||"id"),r=v.value.get(n);return r?["".concat(d.value,"-table-tr--level-").concat(r.level),e.rowClassName]:[e.rowClassName]}});return null!==(o=e.tree)&&void 0!==o&&o.expandTreeNodeOnClick&&(a.onRowClick=b),t.createVNode(ZM,t.mergeProps(a,{ref:r}),n.slots)}}}),CI=Nl(rF),xI=Nl(ZM),PI=Nl(OI),SI=Nl(Ir(ZM),"TTable"),jI={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)}}},kI={vertical:["left","right"],horizontal:["top","bottom"]},NI=Symbol("timeLineProvide"),_I=t.computed(function(){return{theme:"default",reverse:!1,itemsStatus:[],layout:"horizontal",renderAlign:"left",mode:"alternate"}}),VI={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 DI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function EI(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])}}}),RI={content:{type:[String,Function]},default:{type:[String,Function]},destroyOnCollapse:Boolean,disabled:{type:Boolean,default:void 0},expandIcon:{type:[Boolean,Function],default:void 0},header:{type:[String,Function]},headerRightContent:{type:[String,Function]},value:{type:[String,Number]}};var zI=t.defineComponent({name:"TCollapsePanel",props:RI,setup:function(e,n){var r=n.slots,o=Rl(),a=Hl(),l=ei("collapse-panel"),i=ei("is-disabled"),u=ei("is-clickable"),c=ei("slide-down"),d=t.toRefs(e),v=d.value,f=d.disabled,p=d.destroyOnCollapse,m=t.inject("collapseValue"),h=t.inject("updateCollapseValue"),g=t.inject("getUniqId",function(){},!1),y=t.inject("collapseProps"),b=y.defaultExpandAll,w=y.disabled,O=y.expandIconPlacement,C=y.expandOnRowClick,x=t.inject("renderParentTNode"),P=v.value||g();b.value&&h(P);var S={beforeEnter:function(e){e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.style.height="0",e.style.paddingTop="0",e.style.paddingBottom="0"},enter:function(e){e.dataset.oldOverflow=e.style.overflow,e.style.height="".concat(e.scrollHeight,"px"),e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom,e.style.overflow="hidden"},afterEnter:function(e){e.style.height="",e.style.overflow=e.dataset.oldOverflow},beforeLeave:function(e){e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.dataset.oldOverflow=e.style.overflow,e.style.height="".concat(e.scrollHeight,"px"),e.style.overflow="hidden"},leave:function(e){0!==e.scrollHeight&&(e.style.height="0",e.style.paddingTop="0",e.style.paddingBottom="0")},afterLeave:function(e){e.style.height="",e.style.overflow=e.dataset.oldOverflow,e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom}},j=S.beforeEnter,k=S.enter,N=S.afterEnter,_=S.beforeLeave,V=S.leave,D=S.afterLeave,E=t.ref(),F=t.computed(function(){return f.value||w.value}),T=t.computed(function(){return m.value instanceof Array?m.value.includes(P):m.value===P}),M=t.computed(function(){return[l.value,s({},i.value,F.value)]}),I=t.computed(function(){return r.expandIcon||e.expandIcon}),A=function(e){(C.value||e.currentTarget===E.value)&&!F.value&&h(P),e.stopPropagation()},B=function(e){e.stopPropagation()},L=function(){var e=void 0===I.value?x:o;return t.createVNode("div",{ref:E,class:"".concat(l.value,"__icon ").concat(l.value,"__icon--").concat(O.value," ").concat(T.value?"".concat(l.value,"__icon--active"):""),onClick:A},[e("expandIcon",t.createVNode(Hy,{overlayClassName:"".concat(l.value,"__icon--default")},null))])},R=function(){return p.value?T.value?t.createVNode("div",{class:"".concat(l.value,"__body")},[t.createVNode("div",{class:"".concat(l.value,"__content")},[a("default","content")])]):null:t.withDirectives(t.createVNode("div",{class:"".concat(l.value,"__body")},[t.createVNode("div",{class:"".concat(l.value,"__content")},[a("default","content")])]),[[t.vShow,T.value]])};return function(){var e,n,r,a;return t.createVNode("div",{class:M.value},[t.createVNode("div",{class:"".concat(l.value,"__wrapper")},[(a=["".concat(l.value,"__header"),s({},u.value,C.value&&!F.value)],t.createVNode("div",{class:a,onClick:A},["left"===O.value&&L(),o("header"),t.createVNode("div",{class:"".concat(l.value,"__header--blank")},null),(r=o("headerRightContent"),r?t.createVNode("div",{onClick:B},[r]):null),"right"===O.value&&L()])),t.createVNode(t.Transition,{name:c.value,onBeforeEnter:j,onEnter:k,onAfterEnter:N,onBeforeLeave:_,onLeave:V,onAfterLeave:D},(n=e=R(),"function"==typeof n||"[object Object]"===Object.prototype.toString.call(n)&&!t.isVNode(n)?e:{default:function(){return[e]}}))])])}}}),HI=Nl(LI),WI=Nl(zI),KI={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 UI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function YI(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 ZI(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=l)return n;if(a-r=m.value?"":t2&&void 0!==arguments[2]?arguments[2]:{};if(e){var o,a=s;s=t.createVNode(n,{style:r},"function"==typeof(o=s)||"[object Object]"===Object.prototype.toString.call(o)&&!t.isVNode(o)?s:{default:function(){return[a]}})}}return d(l,"strong"),d(o,"u"),d(a,"del"),d(r,"code"),d(!1!==u,"mark",u?{color:u}:{}),d(i,"kbd"),d(c,"i"),s},s=t.computed(function(){var t=e.theme,n=e.disabled,r=o.value,a=[r];return n?a.push("".concat(r,"--disabled")):t&&["primary","secondary","success","warning","error"].includes(t)&&a.push("".concat(r,"--").concat(t)),a}),d=t.computed(function(){var t,n=e.copyable;return l.value?a.value.copiedText:"object"===u(n)?null===(t=n.tooltipProps)||void 0===t?void 0:t.content:null}),v=t.computed(function(){return e.content||(null==r?void 0:r.default())}),f=function(){var n=e.copyable;if(n){var r=l.value?function(){return t.createVNode(Wc,null,null)}:function(){return t.createVNode(Ls,null,null)},o={theme:"default"},a=function(){};return"object"===u(n)&&(n.suffix&&!l.value&&(r=n.suffix),n.tooltipProps&&(o=n.tooltipProps),"function"==typeof n.onCopy&&(a=n.onCopy)),t.createVNode(Kg,t.mergeProps(o,{content:d.value}),{default:function(){return[t.createVNode(Iu,{icon:r,shape:"square",theme:"primary",variant:"text",onClick:function(e){return p(e,a)}},null)]}})}},p=function(e,t){e.preventDefault(),e.stopPropagation(),l.value=!0,setTimeout(function(){l.value=!1},1500),tA("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(oA,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 lA=t.defineComponent({name:"TTypography",setup:function(){var e=Rl();return function(){var n,r;return t.createVNode(aA,null,"function"==typeof(r=n=e("default"))||"[object Object]"===Object.prototype.toString.call(r)&&!t.isVNode(r)?n:{default:function(){return[n]}})}}}),iA={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 uA=t.defineComponent({name:"TTypographyTitle",props:iA,setup:function(e){var n=ei("typography"),r=Hl();return function(){var o,a,l=e.level,u=r("default","content");return e.ellipsis?t.createVNode(oA,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 cA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}var sA,dA,vA=t.defineComponent({name:"TTypographyParagraph",components:{TTooltip:Kg},props:function(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 bA(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n31||e>>>t!==0)throw new RangeError("Value out of range");for(var r=t-1;r>=0;r--)n.push(e>>>r&1)}function OA(e,t){return!!(e>>>t&1)}function CA(e){if(!e)throw new Error("Assertion error")}var xA=function(){return Ti(function e(t,n){Mi(this,e),s(this,"modeBits",void 0),s(this,"numBitsCharCount",void 0),this.modeBits=t,this.numBitsCharCount=n},[{key:"numCharCountBits",value:function(e){return this.numBitsCharCount[Math.floor((e+7)/17)]}}])}();s(xA,"NUMERIC",new(sA=xA)(1,[10,12,14])),s(xA,"ALPHANUMERIC",new sA(2,[9,11,13])),s(xA,"BYTE",new sA(4,[8,16,16])),s(xA,"KANJI",new sA(8,[8,10,12])),s(xA,"ECI",new sA(7,[0,0,0]));var PA=Ti(function e(t,n){Mi(this,e),s(this,"ordinal",void 0),s(this,"formatBits",void 0),this.ordinal=t,this.formatBits=n});s(PA,"LOW",new(dA=PA)(0,1)),s(PA,"MEDIUM",new dA(1,0)),s(PA,"QUARTILE",new dA(2,3)),s(PA,"HIGH",new dA(3,2));var SA=function(){function e(t,n,r){if(Mi(this,e),s(this,"mode",void 0),s(this,"numChars",void 0),s(this,"bitData",void 0),this.mode=t,this.numChars=n,this.bitData=r,n<0)throw new RangeError("Invalid argument");this.bitData=r.slice()}return Ti(e,[{key:"getData",value:function(){return this.bitData.slice()}}],[{key:"makeBytes",value:function(t){var n,r=[],o=yA(t);try{for(o.s();!(n=o.n()).done;){wA(n.value,8,r)}}catch(e){o.e(e)}finally{o.f()}return new e(xA.BYTE,t.length,r)}},{key:"makeNumeric",value:function(t){if(!e.isNumeric(t))throw new RangeError("String contains non-numeric characters");for(var n=[],r=0;r=1<e.MAX_VERSION)throw new RangeError("Version value out of range");if(a<-1||a>7)throw new RangeError("Mask value out of range");this.size=4*t+17;for(var l=[],i=0;i=0&&a<=7),this.mask=a,this.applyMask(a),this.drawFormatBits(a),this.isFunction=[]}return Ti(e,[{key:"getModule",value:function(e,t){return e>=0&&e=0&&t>>9);var o=21522^(t<<10|n);CA(o>>>15==0);for(var a=0;a<=5;a++)this.setFunctionModule(8,a,OA(o,a));this.setFunctionModule(8,7,OA(o,6)),this.setFunctionModule(8,8,OA(o,7)),this.setFunctionModule(7,8,OA(o,8));for(var l=9;l<15;l++)this.setFunctionModule(14-l,8,OA(o,l));for(var i=0;i<8;i++)this.setFunctionModule(this.size-1-i,8,OA(o,i));for(var u=8;u<15;u++)this.setFunctionModule(8,this.size-15+u,OA(o,u));this.setFunctionModule(8,this.size-8,!0)}},{key:"drawVersion",value:function(){if(!(this.version<7)){for(var e=this.version,t=0;t<12;t++)e=e<<1^7973*(e>>>11);var n=this.version<<12|e;CA(n>>>18==0);for(var r=0;r<18;r++){var o=OA(n,r),a=this.size-11+r%3,l=Math.floor(r/3);this.setFunctionModule(a,l,o),this.setFunctionModule(l,a,o)}}}},{key:"drawFinderPattern",value:function(e,t){for(var n=-4;n<=4;n++)for(var r=-4;r<=4;r++){var o=Math.max(Math.abs(r),Math.abs(n)),a=e+r,l=t+n;a>=0&&a=0&&l=i)&&m.push(t[e])})},g=0;g=1;r-=2){6===r&&(r=5);for(var o=0;o>>3],7-(7&n)),n++)}}CA(n===8*t.length)}},{key:"applyMask",value:function(e){if(e<0||e>7)throw new RangeError("Mask value out of range");for(var t=0;t5&&t++:(this.finderPenaltyAddHistory(o,a),r||(t+=this.finderPenaltyCountPatterns(a)*e.PENALTY_N3),r=this.modules[n][l],o=1);t+=this.finderPenaltyTerminateAndCount(r,o,a)*e.PENALTY_N3}for(var i=0;i5&&t++:(this.finderPenaltyAddHistory(c,s),u||(t+=this.finderPenaltyCountPatterns(s)*e.PENALTY_N3),u=this.modules[d][i],c=1);t+=this.finderPenaltyTerminateAndCount(u,c,s)*e.PENALTY_N3}for(var v=0;v=0&&b<=9),CA((t+=b*e.PENALTY_N4)>=0&&t<=2568888),t}},{key:"getAlignmentPatternPositions",value:function(){if(1===this.version)return[];for(var e=Math.floor(this.version/7)+2,t=32===this.version?26:2*Math.ceil((4*this.version+4)/(2*e-2)),n=[6],r=this.size-7;n.length0&&e[2]===t&&e[3]===3*t&&e[4]===t&&e[5]===t;return(n&&e[0]>=4*t&&e[6]>=t?1:0)+(n&&e[6]>=4*t&&e[0]>=t?1:0)}},{key:"finderPenaltyTerminateAndCount",value:function(e,t,n){var r=t;return e&&(this.finderPenaltyAddHistory(r,n),r=0),r+=this.size,this.finderPenaltyAddHistory(r,n),this.finderPenaltyCountPatterns(n)}},{key:"finderPenaltyAddHistory",value:function(e,t){var n=e;0===t[0]&&(n+=this.size),t.pop(),t.unshift(n)}}],[{key:"encodeText",value:function(t,n){var r=SA.makeSegments(t);return e.encodeSegments(r,n)}},{key:"encodeBinary",value:function(t,n){var r=SA.makeBytes(t);return e.encodeSegments([r],n)}},{key:"encodeSegments",value:function(t,n){var r,o,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,l=arguments.length>3&&void 0!==arguments[3]?arguments[3]:40,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:-1,u=!(arguments.length>5&&void 0!==arguments[5])||arguments[5];if(!(e.MIN_VERSION<=a&&a<=l&&l<=e.MAX_VERSION)||i<-1||i>7)throw new RangeError("Invalid value");for(r=a;;r++){var c=8*e.getNumDataCodewords(r,n),s=SA.getTotalBits(t,r);if(s<=c){o=s;break}if(r>=l)throw new RangeError("Data too long")}for(var d=n,v=0,f=[PA.MEDIUM,PA.QUARTILE,PA.HIGH];v>>3]|=e<<7-(7&t)}),new e(r,d,P,i)}},{key:"getNumRawDataModules",value:function(t){if(te.MAX_VERSION)throw new RangeError("Version number out of range");var n=(16*t+128)*t+64;if(t>=2){var r=Math.floor(t/7)+2;n-=(25*r-10)*r-55,t>=7&&(n-=36)}return CA(n>=208&&n<=29648),n}},{key:"getNumDataCodewords",value:function(t,n){return Math.floor(e.getNumRawDataModules(t)/8)-e.ECC_CODEWORDS_PER_BLOCK[n.ordinal][t]*e.NUM_ERROR_CORRECTION_BLOCKS[n.ordinal][t]}},{key:"reedSolomonComputeDivisor",value:function(t){if(t<1||t>255)throw new RangeError("Degree out of range");for(var n=[],r=0;r>>8!=0||t>>>8!=0)throw new RangeError("Byte out of range");for(var n=0,r=7;r>=0;r--)n=n<<1^285*(n>>>7),n^=(t>>>r&1)*e;return CA(n>>>8==0),n}}])}();s(jA,"MIN_VERSION",1),s(jA,"MAX_VERSION",40),s(jA,"PENALTY_N1",3),s(jA,"PENALTY_N2",3),s(jA,"PENALTY_N3",40),s(jA,"PENALTY_N4",10),s(jA,"ECC_CODEWORDS_PER_BLOCK",[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]]),s(jA,"NUM_ERROR_CORRECTION_BLOCKS",[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]]);var kA={L:PA.LOW,M:PA.MEDIUM,Q:PA.QUARTILE,H:PA.HIGH},NA=!1,_A=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=[];return e.forEach(function(e,r){var o=null;e.forEach(function(a,l){if(!a&&null!==o)return n.push("M".concat(o+t," ").concat(r+t,"h").concat(l-o,"v1H").concat(o+t,"z")),void(o=null);if(l!==e.length-1)a&&null===o&&(o=l);else{if(!a)return;null===o?n.push("M".concat(l+t,",").concat(r+t," h1v1H").concat(l+t,"z")):n.push("M".concat(o+t,",").concat(r+t," h").concat(l+1-o,"v1H").concat(o+t,"z"))}})}),n.join("")},VA=function(e,t){return e.slice().map(function(e,n){return n=t.y+t.h?e:e.map(function(e,n){return(n=t.x+t.w)&&e})})},DA=function(){try{(new Path2D).addPath(new Path2D)}catch(e){return!1}return!0}(),EA={value:{type:String,default:""},size:{type:Number,default:128},level:{type:String,default:"L"},bgColor:{type:String,default:"#FFFFFF"},fgColor:{type:String,default:"#000000"},style:{type:Object,default:function(){return{}}},includeMargin:{type:Boolean,default:!1},marginSize:{type:Number,default:0},imageSettings:{type:Object,default:function(){return{}}},title:{type:String,default:""},minVersion:{type:Number,default:1}},FA={locale:{type:Object,default:function(){return{}}},onRefresh:{type:Function},statusRender:{type:Function},status:{type:String,default:"active"}},TA=function(e){var n=e.value,r=e.level,o=e.minVersion,a=e.includeMargin,l=e.marginSize,i=e.imageSettings,u=e.size,c=t.computed(function(){var e=SA.makeSegments(n);return jA.encodeSegments(e,kA[r],o)}),s=t.computed(function(){return c.value.getModules()}),d=t.computed(function(){return function(e,t){return null!=t?Math.max(Math.floor(t),0):e?4:0}(a,l)}),v=t.computed(function(){return function(e,t,n,r){if(null==r)return null;var o=e.length+2*n,a=Math.floor(.1*t),l=o/t,i=(r.width||a)*l,u=(r.height||a)*l,c=null==r.x?e.length/2-i/2:r.x*l,s=null==r.y?e.length/2-u/2:r.y*l,d=null==r.opacity?1:r.opacity,v=null;if(r.excavate){var f=Math.floor(c),p=Math.floor(s);v={x:f,y:p,w:Math.ceil(i+c-f),h:Math.ceil(u+s-p)}}return{x:c,y:s,h:u,w:i,excavation:v,opacity:d,crossOrigin:r.crossOrigin}}(s.value,u,d.value,i)});return{cells:s,margin:d,numCells:t.computed(function(){return s.value.length+2*d.value}),calculatedImageSettings:v,qrcode:c}},MA=t.defineComponent({name:"QRCodeCanvas",props:EA,setup:function(e){var n=t.computed(function(){var t;return null===(t=e.imageSettings)||void 0===t?void 0:t.src}),r=t.ref(null),o=t.ref(null),a=t.ref(""),l=function(){var n,l=TA({value:e.value,level:e.level,minVersion:1,includeMargin:NA,marginSize:e.marginSize,imageSettings:e.imageSettings,size:e.size}),i=l.margin,u=l.cells,c=l.numCells,s=l.calculatedImageSettings;if(o.value){var d=o.value,v=d.getContext("2d");if(v){a.value=null===(n=s.value)||void 0===n?void 0:n.crossOrigin;var f=u,p=r.value;p&&(p.crossOrigin=s.value.crossOrigin);var m=s.value&&null!==p&&p.complete&&0!==p.naturalHeight&&0!==p.naturalWidth;m&&null!=s.value.excavation&&(f=t.computed(function(){return VA(u.value,s.value.excavation)}));var h=window.devicePixelRatio||1;d.height=e.size*h,d.width=e.size*h;var g=e.size/c.value*h;v.scale(g,g),v.fillStyle=e.bgColor,v.fillRect(0,0,c.value,c.value),v.fillStyle=e.fgColor,DA?v.fill(new Path2D(_A(f.value,i.value))):u.value.forEach(function(e,t){e.forEach(function(e,n){e&&v.fillRect(n+i.value,t+i.value,1,1)})}),s&&(v.globalAlpha=s.value.opacity),m&&(v.globalAlpha=s.value.opacity,v.drawImage(p,s.value.x+i.value,s.value.y+i.value,s.value.w,s.value.h))}}};return t.watchEffect(function(){l()}),t.onMounted(function(){l()}),function(){return t.createVNode(t.Fragment,null,[t.createVNode("canvas",{ref:o,role:"img"},null),null!=n.value?t.createVNode("img",{ref:r,onLoad:l,style:{display:"none"},src:n.value},null):null])}}}),IA=t.defineComponent({name:"QRCodeSVG",props:EA,setup:function(e){var n=TA({value:e.value,level:e.level,minVersion:1,includeMargin:NA,marginSize:e.marginSize,imageSettings:e.imageSettings,size:e.size}),r=n.margin,o=n.cells,a=n.numCells,l=n.calculatedImageSettings,i=t.computed(function(){var t;return e.imageSettings&&null!=(null===(t=l.value)||void 0===t?void 0:t.excavation)?VA(o.value,l.value.excavation):o.value}),u=t.computed(function(){return e.imageSettings&&l.value?t.createVNode("image",{href:e.imageSettings.src,height:l.value.h,width:l.value.w,x:l.value.x+r.value,y:l.value.y+r.value,crossOrigin:l.value.crossOrigin},null):null});return function(){var n=_A(i.value,r.value);return t.createVNode("svg",{height:e.size,width:e.size,viewBox:"0 0 ".concat(a.value," ").concat(a.value),role:"img",style:e.style},[!!e.title&&t.createVNode("title",null,[e.title]),t.createVNode("path",{fill:e.bgColor,d:"M0,0 h".concat(a.value,"v").concat(a.value,"H0z"),"shape-rendering":"crispEdges"},null),t.createVNode("path",{fill:e.fgColor,d:n,"shape-rendering":"crispEdges"},null),u.value])}}}),AA=t.defineComponent({name:"QRCodeStatus",props:FA,setup:function(e){var n,r=ei(),o=t.createVNode(Du,{size:"32px"},null),a=t.computed(function(){var n,o;return t.createVNode(t.Fragment,null,[t.createVNode("p",{class:"".concat(r.value,"-expired__text")},[null===(n=e.locale)||void 0===n?void 0:n.expiredText]),(null==e?void 0:e.onRefresh)&&t.createVNode("p",{class:"".concat(r.value,"-expired__button"),onClick:null==e?void 0:e.onRefresh},[t.createVNode(zv,{size:"16"},null),null===(o=e.locale)||void 0===o?void 0:o.refreshText])])}),l=t.createVNode("p",{class:"".concat(r.value,"-scanned")},[t.createVNode(Bc,{size:"16",class:"".concat(r.value,"-scanned__icon")},null),null===(n=e.locale)||void 0===n?void 0:n.scannedText]),i=t.computed(function(){return{expired:a.value,loading:o,scanned:l,active:null}});return function(){return t.createVNode(t.Fragment,null,[e.statusRender||(n={status:e.status,onRefresh:e.onRefresh},i.value[n.status])]);var n}}}),BA=t.defineComponent({name:"TQRCode",props:gA,setup:function(e){var n=ei(),r=Rl(),o=Jl("qrcode").globalConfig,a=su({themeFgColor:"--td-text-color-primary",themeBgColor:"--td-bg-color-specialcomponent"}),l=a.themeFgColor,i=a.themeBgColor,u=t.computed(function(){return e.bgColor||i.value||"transparent"}),c=t.computed(function(){return e.color||l.value||"#000000"});if(!e.value)return null;var d=t.computed(function(){var t,n,r,o;return{src:e.icon,x:void 0,y:void 0,height:Uo(e.iconSize)?e.iconSize:null!==(t=null===(n=e.iconSize)||void 0===n?void 0:n.height)&&void 0!==t?t:40,width:Uo(e.iconSize)?e.iconSize:null!==(r=null===(o=e.iconSize)||void 0===o?void 0:o.width)&&void 0!==r?r:40,excavate:!0,crossOrigin:"anonymous"}}),v=t.computed(function(){return["".concat(n.value,"-qrcode"),s(s({},"".concat(n.value,"-borderless"),e.borderless),"".concat(n.value,"-qrcode-svg"),"svg"===e.type)]}),f=t.computed(function(){return{backgroundColor:u.value,width:"".concat(e.size,"px"),height:"".concat(e.size,"px")}});return function(){var a={value:e.value,size:e.size,bgColor:u.value,fgColor:c.value,imageSettings:e.icon?d.value:void 0,level:e.level};return t.createVNode("div",t.mergeProps({class:v.value,style:f.value},{level:e.level}),["active"!==e.status&&t.createVNode("div",{class:["".concat(n.value,"-mask"),s({},"".concat(n.value,"-").concat(e.status),"loading"!==e.status)]},[t.createVNode(AA,{locale:o.value,status:e.status,onRefresh:e.onRefresh,statusRender:r("statusRender",{params:{status:e.status,onRefresh:e.onRefresh}})},null)]),"canvas"===e.type?t.createVNode(MA,t.mergeProps(a,{size:e.size}),null):t.createVNode(IA,t.mergeProps(a,{size:e.size}),null)])}}}),LA=Nl(BA,"TQrcode"),RA={close:{type:[String,Boolean,Function],default:!1},closeBtn:{type:[String,Boolean,Function],default:!1},default:{type:[String,Function]},icon:{type:Function},maxLine:{type:Number,default:0},message:{type:[String,Function]},operation:{type:Function},theme:{type:String,default:"info",validator:function(e){return!e||["success","info","warning","error"].includes(e)}},title:{type:[String,Function]},onClose:Function,onClosed:Function},zA=t.defineComponent({name:"TAlert",props:RA,setup:function(e,n){var r=n.slots,o=t.getCurrentInstance(),a=Jl("alert"),l=a.globalConfig,i=a.classPrefix,u=si({CheckCircleFilledIcon:Bc,CloseIcon:Ts,ErrorCircleFilledIcon:sd,HelpCircleFilledIcon:tv,InfoCircleFilledIcon:hv}),c=u.CheckCircleFilledIcon,d=u.CloseIcon,v=u.ErrorCircleFilledIcon,f=u.HelpCircleFilledIcon,p=u.InfoCircleFilledIcon,m=ei("alert"),h=Rl(),g=function(){var e=t.getCurrentInstance();return function(n,r){var o;if(H(e.props[n]))o=e.props[n](t.h);else if(e.slots[n])o=e.slots[n]&&e.slots[n](null)[0];else if(r){var a=r[e.props.theme];o=t.createVNode(a,null,null)}return o}}(),y=t.ref(null),b=t.ref(null),w=t.ref(0),O=t.ref(!0),C=t.ref(!0),x=function(){var n=e.closeBtn,a=Object.prototype.hasOwnProperty.call(o.vnode.props||{},"close")||r.close,l=a?e.close:n;a&&fi("TAlert","prop `close` is going to be deprecated, please use `closeBtn` instead.");var i=null;return(i=!0===l||""===l?t.createVNode(d,null,null):To(l)?l:h(a?"close":"closeBtn"))?t.createVNode("div",{class:"".concat(m.value,"__close"),onClick:j},[i]):null},P=function(){var n,r=h("default")||h("message");S(r)&&(r=r.filter(function(e){return!kl(e)}));var o=S(r)?r.length:1,a=e.maxLine>0&&e.maxLinedocument.documentElement.clientWidth?IV():0;a.value=document.createElement("style"),a.value.dataset.id="td_drawer_".concat(+new Date,"_").concat(ZA+=1),a.value.innerHTML="\n html body {\n overflow-y: hidden;\n transition: margin 300ms cubic-bezier(0.7, 0.3, 0.1, 1) 0s;\n ".concat("push"===e.mode?"":"width: calc(100% - ".concat(t,"px);"),"\n }\n ")}}(),a.value&&!document.head.contains(a.value)&&document.head.appendChild(a.value))};t.watch(function(){return e.visible},function(t){if(!sl){var n,a;if(t)M(),null===(n=e.onBeforeOpen)||void 0===n||n.call(e);else F(),null===(a=e.onBeforeClose)||void 0===a||a.call(e);!function(t){if(t&&(b.value=!0),!e.destroyOnClose)return r.value&&t?(r.value=!1,void setTimeout(function(){return o.value=!0})):void setTimeout(function(){return o.value=t});t?(r.value=!1,setTimeout(function(){return o.value=!0})):(o.value=!1,r.value&&(r.value=!1),setTimeout(function(){return r.value=!0},300))}(t)}},{immediate:!0});var I=function(t){var n;null===(n=e.onCloseBtnClick)||void 0===n||n.call(e,{e:t}),B({trigger:"close-btn",e:t})},A=function(t){var n,r;null===(n=e.onOverlayClick)||void 0===n||n.call(e,{e:t}),(null!==(r=e.closeOnOverlayClick)&&void 0!==r?r:i.value.closeOnOverlayClick)&&B({trigger:"overlay",e:t})},B=function(t){var r;null===(r=e.onClose)||void 0===r||r.call(e,t),n.emit("update:visible",!1)};t.onUpdated(function(){if(_.value&&"push"===e.mode){var t={left:{name:"margin-left",value:j.value},right:{name:"margin-right",value:"-".concat(j.value)},top:{name:"margin-top",value:j.value},bottom:{name:"margin-bottom",value:"-".concat(j.value)}}[e.placement];o.value?_.value.style.setProperty(t.name,t.value):_.value.style.removeProperty(t.name)}}),t.onMounted(function(){M(),window.addEventListener("keydown",E)}),t.onBeforeUnmount(function(){F(),window.removeEventListener("keydown",E)});var L=t.computed(function(){return b.value?o.value||!r.value:!e.lazy});return function(){if(L.value){var r,o,a=d("body","default"),l=c("header"),s=(r=C({confirmBtn:e.confirmBtn,globalConfirm:i.value.confirm,className:"".concat(v.value,"__confirm")}),o=x({cancelBtn:e.cancelBtn,globalCancel:i.value.cancel,className:"".concat(v.value,"__cancel")}),t.createVNode("div",{style:D.value},["right"===e.placement?r:null,o,"right"!==e.placement?r:null]));return t.createVNode(t.Teleport,{disabled:!e.attach||!w.value,to:w.value},{default:function(){return[t.createVNode("div",t.mergeProps({ref:P,class:S.value,style:{zIndex:e.zIndex},onKeydown:E,tabindex:0},n.attrs),[e.showOverlay&&t.createVNode("div",{class:"".concat(v.value,"__mask"),onClick:A},null),t.createVNode("div",{class:N.value,style:$A($A({},k.value),g.value)},[l&&t.createVNode("div",{class:"".concat(v.value,"__header")},[l]),e.closeBtn&&t.createVNode("div",{class:"".concat(v.value,"__close-btn"),onClick:I},[c("closeBtn",t.createVNode(u,null,null))]),t.createVNode("div",{class:["".concat(v.value,"__body"),"narrow-scrollbar"]},[a]),e.footer&&t.createVNode("div",{class:"".concat(v.value,"__footer")},[c("footer",s)]),e.sizeDraggable&&t.createVNode("div",{style:h.value,onMousedown:m},null)])])]}})}}}});function XA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function GA(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{currentStepInfo:N.value},n=new Function("return "+t.h.toString())();return Object.assign({},n,e)},I=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.body,n=jl(),r=n.scrollTop,o=n.scrollLeft,a=e.getBoundingClientRect(),l=a.top,i=a.left,u=t.getBoundingClientRect(),c=u.top,s=u.left,d=Pl(t,"position");return"body"!==t.tagName.toLowerCase()&&"relative"===d||"sticky"===d?{top:l-c,left:i-s}:Sl(e)?{top:l,left:i}:{top:l+r,left:i+o}}(C.value),r=n.top,o=n.left,a=C.value.getBoundingClientRect(),l=a.width,i=a.height,u=D("highlightPadding");if(_.value)l+=2*u,i+=2*u,r-=u,o-=u;else{var c=jl();r+=c.scrollTop,o+=c.scrollLeft}var s={top:"".concat(r,"px"),left:"".concat(o,"px")};if(F.value)if(t){var d=w.value.getBoundingClientRect(),v=d.width,f=d.height;Object.assign(s,{width:"".concat(v,"px"),height:"".concat(f,"px")})}else Object.assign(s,{width:"auto",height:"auto"});else Object.assign(s,{width:"".concat(l,"px"),height:"".concat(i,"px")});Hi(e,s)},A=function(){t.nextTick(function(){var e;C.value=function(e){if(!e)return document.body;var t,n=null;if(To(e))n=document.querySelector(e);else{if(!H(e))throw new Error("elm should be string or function");n=e()}if(n)return n;if("test"!==(null===(t=process)||void 0===t||null===(t=t.env)||void 0===t?void 0:t.NODE_ENV))throw new Error("There is no element with given.")}(N.value.element),C.value&&(nB(C.value),I(w.value),I(O.value,!0),rB(C.value),null===(e=S.value)||void 0===e||e.update())})},B=function(){var e;null===(e=O.value)||void 0===e||e.parentNode.removeChild(O.value)},L=function(){var e,t;null===(e=P.value)||void 0===e||e.parentNode.removeChild(P.value),null===(t=x.value)||void 0===t||t.parentNode.removeChild(x.value)},R=function(){_.value?(L(),A()):(B(),t.nextTick(function(){C.value=P.value,nB(C.value),I(w.value),rB(C.value)})),T.value=!0},z=function(t){var n,r=k.value;j.value=!1,y(-1,{e:t,total:r}),null===(n=e.onSkip)||void 0===n||n.call(e,{e:t,current:g.value,total:r})},W=function(t){var n,r=k.value;y(g.value-1,{e:t,total:r}),null===(n=e.onPrevStepClick)||void 0===n||n.call(e,{e:t,prev:g.value-1,current:g.value,total:r})},K=function(t){var n,r=k.value;y(g.value+1,{e:t,total:r}),null===(n=e.onNextStepClick)||void 0===n||n.call(e,{e:t,next:g.value+1,current:g.value,total:r})},U=function(t){var n,r=k.value;j.value=!1,y(-1,{e:t,total:r}),null===(n=e.onFinish)||void 0===n||n.call(e,{e:t,current:g.value,total:r})},Y=function(){g.value>=0&&g.value=0&&e-1}}},setup:function(e,n){var r=n.expose,o=ei("notification-list"),a=e.placement,l=t.ref([]),i=t.ref([]),u=t.computed(function(){return yB({zIndex:6e3},cB[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:uB};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(hB,t.mergeProps({ref:v,key:e.id,style:d(e)},function(e,t){return yB(yB({},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 wB(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function OB(e){for(var t=1;t=1024&&r<1048576?"".concat((r/1024).toFixed(1)," KB"):r>=1048576?"".concat((r/1048576).toFixed(1)," MB"):"")]),t.createVNode("small",{class:"".concat(v.value.small),key:"time"},[c.value.file.fileOperationDateText,"\uff1a",o.uploadTime||"-"])];return t.createVNode("div",{class:"".concat(f,"__dragger-progress")},["image"===e.theme&&O(),t.createVNode("div",{class:"".concat(f,"__dragger-progress-info")},[d("fileListDisplay",{params:{files:e.displayFiles}})||s,t.createVNode("div",{class:"".concat(f,"__dragger-btns")},[["progress","waiting"].includes(o.status)&&!l.value&&t.createVNode(Iu,{theme:"primary",variant:"text",class:"".concat(f,"__dragger-progress-cancel"),onClick:function(t){var n;return null===(n=e.cancelUpload)||void 0===n?void 0:n.call(e,{e:t,file:e.toUploadFiles[0]||e.files[0]})}},{default:function(){return[null===(n=c.value)||void 0===n?void 0:n.cancelUploadText]}}),!e.autoUpload&&"waiting"===o.status&&t.createVNode(Iu,{theme:"primary",variant:"text",disabled:l.value,onClick:function(){var t;return null===(t=e.uploadFiles)||void 0===t?void 0:t.call(e)},class:"".concat(f,"__dragger-upload-btn")},{default:function(){return[c.value.triggerUploadText.normal]}})]),["fail","success"].includes(null==o?void 0:o.status)&&!l.value&&t.createVNode("div",{class:"".concat(f,"__dragger-btns")},[t.createVNode(Iu,{theme:"primary",variant:"text",disabled:l.value,class:"".concat(f,"__dragger-progress-cancel"),onClick:e.triggerUpload},{default:function(){return[c.value.triggerUploadText.reupload]}}),t.createVNode(Iu,{theme:"danger",variant:"text",disabled:l.value,class:"".concat(f,"__dragger-delete-btn"),onClick:function(t){return e.onRemove({e:t,index:0,file:o})}},{default:function(){return[c.value.triggerUploadText.delete]}})])])])}()};return function(){var n;return t.createVNode("div",{ref:h,class:g.value,onDrop:p.handleDrop,onDragenter:p.handleDragenter,onDragover:p.handleDragover,onDragleave:p.handleDragleave},[(null===(n=e.trigger)||void 0===n?void 0:n.call(e,t.h,{files:a.value,dragActive:m.value}))||x()])}}});function 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;t=xi.KB&&c=xi.MB&&c=xi.GB?"".concat((c/xi.GB).toFixed(1)," GB"):"")]),t.createVNode("td",null,[M(n)]),l.value?null:s])})])])},L=function(){var n=p("fileListDisplay",{params:{cancelUpload:e.cancelUpload,uploadFiles:e.uploadFiles,onRemove:e.onRemove,onPreview:e.onPreview,toUploadFiles:e.toUploadFiles,sizeOverLimitMessage:e.sizeOverLimitMessage,locale:e.locale,files:e.displayFiles,dragEvents:D.value}});return n||e.fileListDisplay?n:t.createVNode("ul",{class:"".concat(v.value,"__card clearfix")},[e.displayFiles.map(function(n,r){return function(n,r){var o,a=F(),d=a.iconMap,f=a.textMap,p=e.abridgeName&&n.name?Si.apply(void 0,[n.name].concat(i(e.abridgeName))):n.name;return t.createVNode("li",{class:"".concat(v.value,"__card-item"),key:n.name+r+n.percent+n.status||"0"},[t.createVNode("div",{class:["".concat(v.value,"__card-content"),s({},"".concat(c.value,"-is-bordered"),"waiting"!==n.status)]},["progress"===n.status&&t.createVNode("div",{class:"".concat(v.value,"__card-status-wrap ").concat(v.value,"__").concat(e.theme,"-progress")},[d[n.status],t.createVNode("p",null,[f[n.status],e.showUploadProgress&&" ".concat(n.percent,"%")])]),"fail"===n.status&&t.createVNode("div",{class:"".concat(v.value,"__card-status-wrap ").concat(v.value,"__").concat(e.theme,"-fail")},[d[n.status],t.createVNode("p",null,[(null===(o=n.response)||void 0===o?void 0:o.error)||f[n.status]])]),(["waiting","success"].includes(n.status)||!n.status&&n.url)&&t.createVNode(I_,{class:"".concat(v.value,"__card-image"),src:n.url||n.raw,error:"",loading:"",fit:"contain"},null),t.createVNode("div",{class:"".concat(v.value,"__card-mask")},[(n.url||n.raw)&&!["progress","fail"].includes(n.status)&&t.createVNode("span",{class:"".concat(v.value,"__card-mask-item")},[t.createVNode(h,{onClick:function(t){var o,a=t.e;_.value=r,N.value=u.value,null===(o=e.onPreview)||void 0===o||o.call(e,{file:n,index:r,e:a})}},null),t.createVNode("span",{class:"".concat(v.value,"__card-mask-item-divider")},null)]),!l.value&&t.createVNode("span",{class:"".concat(v.value,"__card-mask-item ").concat(v.value,"__delete"),onClick:function(t){return e.onRemove({e:t,index:r,file:n})}},[t.createVNode(g,null,null)])])]),e.showImageFileName&&t.createVNode("p",{class:["".concat(v.value,"__card-name"),"".concat(v.value,"__flow-status")]},[["success","waiting"].includes(n.status)&&d[n.status],p])])}(n,r)})])};return function(){var n,o,i,c="".concat(v.value,"__flow-card-area"),s=l.value||!a.value,d=r.uploadButton||H(e.uploadButton),m=Boolean(l.value||a.value||!u.value.length),h=r.cancelUploadButton||H(e.cancelUploadButton);return t.createVNode("div",{class:"".concat(v.value,"__flow ").concat(v.value,"__flow-").concat(e.theme)},[t.createVNode("div",{class:"".concat(v.value,"__flow-op")},[null===(n=r.default)||void 0===n?void 0:n.call(r),e.placeholder&&t.createVNode("small",{class:"".concat(v.value,"__flow-placeholder ").concat(v.value,"__placeholder")},[e.placeholder])]),"image-flow"===e.theme&&t.createVNode("div",t.mergeProps({class:c},D.value),[u.value.length?L():T()]),"file-flow"===e.theme&&(u.value.length?B():t.createVNode("div",t.mergeProps({class:c},D.value),[T()])),!e.autoUpload&&(null!==e.uploadButton||null!==e.cancelUploadButton)&&t.createVNode("div",{class:"".concat(v.value,"__flow-bottom")},[null!==e.cancelUploadButton&&(d?p("cancelUploadButton",{params:{disabled:s,cancelUploadText:null===(o=f.value)||void 0===o?void 0:o.cancelUploadText,cancelUpload:e.cancelUpload}}):t.createVNode(Iu,t.mergeProps({theme:"default",disabled:s,content:null===(i=f.value)||void 0===i?void 0:i.cancelUploadText,class:"".concat(v.value,"__cancel"),onClick:function(t){var n;return null===(n=e.cancelUpload)||void 0===n?void 0:n.call(e,{e:t})}},E(e.cancelUploadButton)?e.cancelUploadButton:{}),null)),null!==e.uploadButton&&(h?p("uploadButton",{params:{disabled:m,uploading:a.value,uploadText:V.value,uploadFiles:e.uploadFiles}}):t.createVNode(Iu,t.mergeProps({disabled:m,theme:"primary",loading:a.value,class:"".concat(v.value,"__continue"),content:V.value,onClick:function(){var t;return null===(t=e.uploadFiles)||void 0===t?void 0:t.call(e)}},E(e.uploadButton)?e.uploadButton:{}),null))]),t.createVNode(lD,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 YB(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function $B(e){for(var t=1;tt*xi[n]}(e.size,o.size,o.unit);a&&(r=o)}t(r)}),a=[o,void 0];if(H(r)){var l=r(e),i=l instanceof Promise?l:new Promise(function(e){return e(l)});a[1]=i}return new Promise(function(e){Promise.all(a).then(function(t){e(t)})})}function eL(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 tL(e){var t=e.action,n=e.toUploadFiles,r=e.requestMethod;return new Promise(function(o){if(!t&&!r)return pi("Upload","one of action and requestMethod must be exist."),void o({});if(!n||!n.length)return vi("Upload","No files need to be uploaded"),void o({});if(n.forEach(function(e){e.status="progress"}),r)r(e.multiple?n:n[0]).then(function(t){if(function(e){return e?e.status?["success","fail"].includes(e.status)?("success"!==e.status||e.response&&(e.response.url||e.response.files)||vi("Upload","`requestMethodResponse.response.url` or `requestMethodResponse.response.files` is required if `status` is `success`"),!0):(pi("Upload","`requestMethodResponse.status` must be `success` or `fail`, examples `{ status: 'success', response: { url: '' } }`"),!1):(pi("Upload","`requestMethodResponse.status` is missing, which value only can be `success` or `fail`"),!1):(pi("Upload","`requestMethodResponse` is required."),!1)}(t)){var r=t.response||{};H(e.formatResponse)&&(r=e.formatResponse(r,{file:n[0],currentFiles:n})),"fail"===t.status&&(r.error=t.error||r.error);var a=[];"success"===t.status&&r.files?a=r.files.map(function(e){return JB(JB(JB({},n.find(function(t){return e.name&&t.name===e.name||e.raw&&t.raw===e.raw})),e),{},{status:t.status,response:r})}):(n.forEach(function(e){var n;e.status=t.status,e.response=r,e.url=r.url,e.percent="success"===t.status?100:0,e.uploadTime=(null===(n=r)||void 0===n?void 0:n.uploadTime)||Pi()}),a=n);var l,i={response:r,file:a[0],files:a};if("success"===t.status)null===(l=e.onResponseSuccess)||void 0===l||l.call(e,i);else if("fail"===t.status){var u;null===(u=e.onResponseError)||void 0===u||u.call(e,i)}o({status:t.status,data:i})}else o({})});else{var a,l=function(e){var t,n,r,o=e.method,a=void 0===o?"POST":o,l=e.action,c=e.withCredentials,s=void 0!==c&&c,d=e.headers,v=void 0===d?{}:d,f=e.data,p=void 0===f?{}:f,m=e.file,h=e.files,g=void 0===h?[]:h,y=e.name,b=void 0===y?"file":y,w=e.useMockProgress,O=void 0===w||w,C=e.mockProgressDuration,x=void 0===C?300:C,P=e.formatRequest,S=e.onError,j=e.onProgress,k=e.onSuccess,N=g||[],_=0,V=new XMLHttpRequest;if(s&&(V.withCredentials=!0),O&&"progress"===(null===(t=g[0])||void 0===t?void 0:t.status))var D=setTimeout(function(){n=setInterval(function(){_+10<100?(_=Math.max(_+10,_),g[0]&&_!==g[0].percent&&(g[0].percent=_,j({percent:_,file:m||N[0],files:N.map(function(e){return XB(XB({},e),{},{percent:_})}),type:"mock",XMLHttpRequest:V}))):clearInterval(n)},x),clearTimeout(D)},x);var E={};if(p){var F=H(p)?p(N):p;Object.assign(E,F)}N.forEach(function(e,t){var n=N.length>1?"".concat(b,"[").concat(t,"]"):b;E[n]=e.raw}),1===N.length?E[b]=N[0].raw:E[b]=N.map(function(e){return e.raw}),E.length=N.length,P&&(E=P(E));var T=new FormData;return Object.keys(E).forEach(function(e){T.append(e,E[e])}),V.open(a,l,!0),Object.keys(v).forEach(function(e){V.setRequestHeader(e,v[e])}),V.onerror=function(e){S({event:e,file:m,files:N,XMLHttpRequest:V}),clearInterval(n),clearTimeout(r)},V.ontimeout=function(e){S({event:e,file:m,files:N,XMLHttpRequest:V})},V.upload&&(V.upload.onprogress=function(e){var t,n=0;if(e.total>0&&(n=Math.round(e.loaded/e.total*100)),(_=Math.max(n,_))!==n&&(null===(t=N[0])||void 0===t?void 0:t.percent)!==_){var r=N.map(function(e){return XB(XB({},e),{},{percent:_})});j({event:e,percent:_,file:m||r[0],files:r,type:"real",XMLHttpRequest:V})}}),V.onload=function(e){var t={};if(t.XMLHttpRequest=V,V.status<200||V.status>=300)return S({event:e,file:m,files:N,response:t,XMLHttpRequest:V});var o=V.responseText||V.response;try{t=JSON.parse(o)}catch(e){t=o,pi("Upload","response does not a valid json")}clearInterval(n),clearTimeout(r),N.forEach(function(e){var n;e.percent=100,e.status="success",e.uploadTime=(null===(n=t)||void 0===n?void 0:n.uploadTime)||Pi()}),"object"===u(t)&&(t.XMLHttpRequest=V),k({event:e,file:m||N[0],files:i(N),XMLHttpRequest:V,response:t})},V.send(T),V.upload.requestParams=E,V.upload.requestHeaders=v,V}({action:e.action,files:e.toUploadFiles,useMockProgress:e.useMockProgress,mockProgressDuration:e.mockProgressDuration,onError:function(t){var n,r=eL(JB(JB({},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=eL(JB(JB({},t),{},{response:r}));null===(a=e.onResponseError)||void 0===a||a.call(e,l),o({status:"fail",data:l})}else{var i;t.file.response=r,t.files[0].response=r;var u=function(e){var t=e.event,n=e.files,r=e.response,o=e.XMLHttpRequest;(null==n?void 0:n.length)<=0&&pi("Upload","Empty File in Success Callback"),n.forEach(function(e){var t;e.percent=100,e.status="success",null===(t=e.response)||void 0===t||delete t.error});var a=r;return n[0].url=a.url||n[0].url,{response:a,event:t,files:n,XMLHttpRequest:o}}(JB(JB({},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 nL(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 tL(JB(JB({},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 tL(e).then(function(t){"success"===t.status&&(t.data.files=o||!e.multiple?t.data.files:function(e,t){for(var n=e.filter(function(e){return e.url}),r=n,o=function(){var n=t[a],o=e.findIndex(function(e){return e.raw&&e.raw===n.raw||e.name&&e.name===n.name}),l=o>=0?JB(JB({},e[o]),n):n;r.push(l)},a=0,l=t.length;a2&&void 0!==arguments[2]?arguments[2]:void 0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;return e.map(function(e){var o=e;return H(t)&&(o=t(e)),JB({raw:e,lastModified:e.lastModified,name:e.name,size:e.size,type:e.type,percent:r,status:n},o)})}function oL(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function aL(e){for(var t=1;tr&&(u=!0)}var s,d=rL(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){QB(t,{beforeUpload:e.beforeUpload,sizeLimit:e.sizeLimit}).then(function(e){var r=Ya(e,2),o=r[0],a=r[1];o?n({file:t,validateResult:{type:"FILE_OVER_SIZE_LIMIT",extra:o}}):!1===a&&n({file:t,validateResult:{type:"CUSTOM_BEFORE_UPLOAD"}}),n({file:t})})})});Promise.all([s].concat(p)).then(function(e){var t=BM(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=rL(t,e.format,e.autoUpload?"progress":"waiting");a({hasSameNameFile:i,file:null==m?void 0:m[0],files:m,validateResult:{type:"FILTER_FILE_SAME_NAME"}})}})}({uploadValue:g.value,files:i(t),allowUploadDuplicateFile:e.allowUploadDuplicateFile,max:e.multiple?e.max:0,sizeLimit:e.sizeLimit,isBatchUpload:l.value,autoUpload:a.value,format:e.format,beforeUpload:e.beforeUpload,beforeAllFilesUpload:e.beforeAllFilesUpload}).then(function(t){var n;if("BEFORE_ALL_FILES_UPLOAD"!==(null===(n=t.validateResult)||void 0===n?void 0:n.type)){if(t.lengthOverLimit){var r,o={type:"FILES_OVER_LENGTH_LIMIT",files:t.files};if(null===(r=e.onValidate)||void 0===r||r.call(e,o),!t.files.length)return}if(t.hasSameNameFile){var i,u={type:"FILTER_FILE_SAME_NAME",files:t.files};null===(i=e.onValidate)||void 0===i||i.call(e,u)}if(t.fileValidateList instanceof Array){var c,s,d=function(e,t){var n=[],r=[],o=[];return e.forEach(function(e){var a,l;if("CUSTOM_BEFORE_UPLOAD"!==(null===(a=e.validateResult)||void 0===a?void 0:a.type))return"FILE_OVER_SIZE_LIMIT"===(null===(l=e.validateResult)||void 0===l?void 0:l.type)?(e.file.response||(e.file.response={}),e.file.response.error=e.file.response.error||t(e.validateResult.extra),void n.push(e)):void o.push(e.file);r.push(e.file)}),{sizeLimitErrors:n,beforeUploadErrorFiles:r,toFiles:o}}(t.fileValidateList,F),v=d.sizeLimitErrors,f=d.beforeUploadErrorFiles,p=d.toFiles,m=a.value?p:w.value.concat(p);if(w.value=m,null===(c=e.onWaitingUploadFilesChange)||void 0===c||c.call(e,{files:m,trigger:"validate"}),v[0])O.value=v[0].file.response.error,null===(s=e.onValidate)||void 0===s||s.call(e,{type:"FILE_OVER_SIZE_LIMIT",files:v.map(function(e){return e.file})});else if(O.value="",f.length){var h,b={type:"CUSTOM_BEFORE_UPLOAD",files:f};null===(h=e.onValidate)||void 0===h||h.call(e,b)}a.value?M(m):function(t){var n=e.multiple&&!l.value?g.value.concat(t):t;n.length&&(y(n,{trigger:"add",index:g.value.length,file:t[0],files:t}),w.value=[])}(m)}}else{var C,x={type:"BEFORE_ALL_FILES_UPLOAD",files:t.files};null===(C=e.onValidate)||void 0===C||C.call(e,x)}}),n.value.value=null}};function M(t){var n=g.value.filter(function(e){return"success"!==e.status}),r=a.value?t||w.value:n;r&&r.length&&(k.value=!0,b.value=[],nL({action:e.action,headers:e.headers,method:e.method,name:e.name,withCredentials:e.withCredentials,uploadedFiles:g.value,toUploadFiles:r,multiple:e.multiple,isBatchUpload:l.value,autoUpload:e.autoUpload,uploadAllFilesInOneRequest:e.uploadAllFilesInOneRequest,useMockProgress:e.useMockProgress,data:e.data,mockProgressDuration:e.mockProgressDuration,requestMethod:e.requestMethod,formatRequest:e.formatRequest,formatResponse:e.formatResponse,onResponseProgress:D,onResponseSuccess:E,onResponseError:V,setXhrObject:function(e){var t;null!==(t=e.files[0])&&void 0!==t&&t.raw&&b.value.find(function(t){var n;return(null===(n=t.files[0])||void 0===n?void 0:n.raw)===e.files[0].raw})||(b.value=b.value.concat(e))}}).then(function(t){var n,o,l=t.status,u=t.data,c=t.list,s=t.failedFiles;if(k.value=!1,"success"===l)y(i(u.files),{trigger:"add",file:u.files[0]}),b.value=[],null===(n=e.onSuccess)||void 0===n||n.call(e,{fileList:u.files,currentFiles:r,file:r[0],results:null==c?void 0:c.map(function(e){return e.data}),response:u.response||c.map(function(e){return e.data.response}),XMLHttpRequest:u.XMLHttpRequest});else if(null!=s&&s[0]){var d;null===(d=e.onFail)||void 0===d||d.call(e,{e:u.event,file:s[0],failedFiles:s,currentFiles:r,response:u.response,XMLHttpRequest:u.XMLHttpRequest})}a.value&&(w.value=s,null===(o=e.onWaitingUploadFilesChange)||void 0===o||o.call(e,{files:s,trigger:"uploaded"}))}))}function I(t){var n,r,o;O.value="",null===(n=(r=t.e).stopPropagation)||void 0===n||n.call(r);var a,l={e:t.e,trigger:"remove",index:t.index,file:t.file};if(e.isBatchUpload||!e.multiple)w.value=[],null===(a=e.onWaitingUploadFilesChange)||void 0===a||a.call(e,{files:[],trigger:"remove"}),y([],l);else if(e.autoUpload){var u;if(t.index r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nexport default trimmedEndIndex;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nexport default baseTrim;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import toNumber from './toNumber.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nexport default toFinite;\n","import toFinite from './toFinite.js';\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nexport default toInteger;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nexport default identity;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import isObject from './isObject.js';\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nexport default baseCreate;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nexport default copyArray;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nexport default shortOut;\n","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nexport default defineProperty;\n","import constant from './constant.js';\nimport defineProperty from './_defineProperty.js';\nimport identity from './identity.js';\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nexport default baseSetToString;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nexport default constant;\n","import baseSetToString from './_baseSetToString.js';\nimport shortOut from './_shortOut.js';\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nexport default setToString;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nexport default baseIsNaN;\n","import baseIndexOf from './_baseIndexOf.js';\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nexport default arrayIncludes;\n","import baseFindIndex from './_baseFindIndex.js';\nimport baseIsNaN from './_baseIsNaN.js';\nimport strictIndexOf from './_strictIndexOf.js';\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nexport default baseIndexOf;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nexport default strictIndexOf;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nexport default baseFindIndex;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nexport default baseAssignValue;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n","import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nexport default copyObject;\n","import apply from './_apply.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nexport default overRest;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nexport default apply;\n","import identity from './identity.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nexport default baseRest;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","import eq from './eq.js';\nimport isArrayLike from './isArrayLike.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nexport default isIterateeCall;\n","import baseRest from './_baseRest.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nexport default createAssigner;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default arrayLikeKeys;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nexport default baseTimes;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n","import isObject from './isObject.js';\nimport isPrototype from './_isPrototype.js';\nimport nativeKeysIn from './_nativeKeysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeysIn;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default nativeKeysIn;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeysIn from './_baseKeysIn.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nexport default keysIn;\n","import isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nexport default isKey;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nexport default getMapData;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nexport default stringToPath;\n","import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nexport default memoizeCapped;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","import isArray from './isArray.js';\nimport isKey from './_isKey.js';\nimport stringToPath from './_stringToPath.js';\nimport toString from './toString.js';\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nexport default castPath;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n","import castPath from './_castPath.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nexport default baseGet;\n","import baseGet from './_baseGet.js';\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nexport default get;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nexport default arrayPush;\n","import Symbol from './_Symbol.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nexport default isFlattenable;\n","import arrayPush from './_arrayPush.js';\nimport isFlattenable from './_isFlattenable.js';\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nexport default baseFlatten;\n","import baseFlatten from './_baseFlatten.js';\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nexport default flatten;\n","import flatten from './flatten.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nfunction flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n}\n\nexport default flatRest;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nexport default baseSlice;\n","import baseSlice from './_baseSlice.js';\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nexport default castSlice;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nexport default hasUnicode;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nexport default unicodeToArray;\n","import asciiToArray from './_asciiToArray.js';\nimport hasUnicode from './_hasUnicode.js';\nimport unicodeToArray from './_unicodeToArray.js';\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nexport default stringToArray;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nexport default asciiToArray;\n","import createCaseFirst from './_createCaseFirst.js';\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nexport default upperFirst;\n","import castSlice from './_castSlice.js';\nimport hasUnicode from './_hasUnicode.js';\nimport stringToArray from './_stringToArray.js';\nimport toString from './toString.js';\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nexport default createCaseFirst;\n","import basePropertyOf from './_basePropertyOf.js';\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n};\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\nexport default deburrLetter;\n","/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default basePropertyOf;\n","import deburrLetter from './_deburrLetter.js';\nimport toString from './toString.js';\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\nexport default deburr;\n","/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nexport default asciiWords;\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nexport default hasUnicodeWord;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nexport default unicodeWords;\n","import asciiWords from './_asciiWords.js';\nimport hasUnicodeWord from './_hasUnicodeWord.js';\nimport toString from './toString.js';\nimport unicodeWords from './_unicodeWords.js';\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nexport default words;\n","import arrayReduce from './_arrayReduce.js';\nimport deburr from './deburr.js';\nimport words from './words.js';\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\";\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nexport default createCompounder;\n","/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nexport default arrayReduce;\n","import capitalize from './capitalize.js';\nimport createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\nvar camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n});\n\nexport default camelCase;\n","import toString from './toString.js';\nimport upperFirst from './upperFirst.js';\n\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\nfunction capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n}\n\nexport default capitalize;\n","import baseSlice from './_baseSlice.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toInteger from './toInteger.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * Creates an array of elements split into groups the length of `size`.\n * If `array` can't be split evenly, the final chunk will be the remaining\n * elements.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to process.\n * @param {number} [size=1] The length of each chunk\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the new array of chunks.\n * @example\n *\n * _.chunk(['a', 'b', 'c', 'd'], 2);\n * // => [['a', 'b'], ['c', 'd']]\n *\n * _.chunk(['a', 'b', 'c', 'd'], 3);\n * // => [['a', 'b', 'c'], ['d']]\n */\nfunction chunk(array, size, guard) {\n if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {\n size = 1;\n } else {\n size = nativeMax(toInteger(size), 0);\n }\n var length = array == null ? 0 : array.length;\n if (!length || size < 1) {\n return [];\n }\n var index = 0,\n resIndex = 0,\n result = Array(nativeCeil(length / size));\n\n while (index < length) {\n result[resIndex++] = baseSlice(array, index, (index += size));\n }\n return result;\n}\n\nexport default chunk;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n","import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nexport default stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nexport default stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nexport default stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nexport default stackHas;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nexport default stackSet;\n","import root from './_root.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nexport default cloneBuffer;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nexport default stubArray;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nexport default getSymbols;\n","import arrayPush from './_arrayPush.js';\nimport getPrototype from './_getPrototype.js';\nimport getSymbols from './_getSymbols.js';\nimport stubArray from './stubArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nexport default getSymbolsIn;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nexport default getAllKeysIn;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nexport default initCloneArray;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","import Uint8Array from './_Uint8Array.js';\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nexport default cloneArrayBuffer;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nexport default cloneRegExp;\n","import Symbol from './_Symbol.js';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nexport default cloneSymbol;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nexport default cloneTypedArray;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\nimport cloneDataView from './_cloneDataView.js';\nimport cloneRegExp from './_cloneRegExp.js';\nimport cloneSymbol from './_cloneSymbol.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nexport default initCloneByTag;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nexport default cloneDataView;\n","import baseCreate from './_baseCreate.js';\nimport getPrototype from './_getPrototype.js';\nimport isPrototype from './_isPrototype.js';\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nexport default initCloneObject;\n","import baseIsMap from './_baseIsMap.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nexport default isMap;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nexport default baseIsMap;\n","import baseIsSet from './_baseIsSet.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nexport default isSet;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nexport default baseIsSet;\n","import Stack from './_Stack.js';\nimport arrayEach from './_arrayEach.js';\nimport assignValue from './_assignValue.js';\nimport baseAssign from './_baseAssign.js';\nimport baseAssignIn from './_baseAssignIn.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport copyArray from './_copyArray.js';\nimport copySymbols from './_copySymbols.js';\nimport copySymbolsIn from './_copySymbolsIn.js';\nimport getAllKeys from './_getAllKeys.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\nimport getTag from './_getTag.js';\nimport initCloneArray from './_initCloneArray.js';\nimport initCloneByTag from './_initCloneByTag.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isMap from './isMap.js';\nimport isObject from './isObject.js';\nimport isSet from './isSet.js';\nimport keys from './keys.js';\nimport keysIn from './keysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nexport default baseClone;\n","import copyObject from './_copyObject.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nexport default copySymbolsIn;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nexport default baseAssignIn;\n","import copyObject from './_copyObject.js';\nimport getSymbols from './_getSymbols.js';\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nexport default copySymbols;\n","import copyObject from './_copyObject.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nexport default baseAssign;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nexport default arrayEach;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nexport default cloneDeep;\n","import MapCache from './_MapCache.js';\nimport setCacheAdd from './_setCacheAdd.js';\nimport setCacheHas from './_setCacheHas.js';\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nexport default SetCache;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nexport default arraySome;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nexport default cacheHas;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nexport default setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nexport default setCacheHas;\n","import SetCache from './_SetCache.js';\nimport arraySome from './_arraySome.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nexport default equalArrays;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nexport default mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nexport default setToArray;\n","import Symbol from './_Symbol.js';\nimport Uint8Array from './_Uint8Array.js';\nimport eq from './eq.js';\nimport equalArrays from './_equalArrays.js';\nimport mapToArray from './_mapToArray.js';\nimport setToArray from './_setToArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nexport default equalByTag;\n","import getAllKeys from './_getAllKeys.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nexport default equalObjects;\n","import Stack from './_Stack.js';\nimport equalArrays from './_equalArrays.js';\nimport equalByTag from './_equalByTag.js';\nimport equalObjects from './_equalObjects.js';\nimport getTag from './_getTag.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nexport default baseIsEqualDeep;\n","import baseIsEqualDeep from './_baseIsEqualDeep.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nexport default baseIsEqual;\n","import isObject from './isObject.js';\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nexport default isStrictComparable;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nexport default matchesStrictComparable;\n","import baseIsMatch from './_baseIsMatch.js';\nimport getMatchData from './_getMatchData.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nexport default baseMatches;\n","import isStrictComparable from './_isStrictComparable.js';\nimport keys from './keys.js';\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nexport default getMatchData;\n","import Stack from './_Stack.js';\nimport baseIsEqual from './_baseIsEqual.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nexport default baseIsMatch;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nexport default baseHasIn;\n","import baseHasIn from './_baseHasIn.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nexport default hasIn;\n","import castPath from './_castPath.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isIndex from './_isIndex.js';\nimport isLength from './isLength.js';\nimport toKey from './_toKey.js';\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nexport default hasPath;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default baseProperty;\n","import baseProperty from './_baseProperty.js';\nimport basePropertyDeep from './_basePropertyDeep.js';\nimport isKey from './_isKey.js';\nimport toKey from './_toKey.js';\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nexport default property;\n","import baseGet from './_baseGet.js';\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nexport default basePropertyDeep;\n","import baseMatches from './_baseMatches.js';\nimport baseMatchesProperty from './_baseMatchesProperty.js';\nimport identity from './identity.js';\nimport isArray from './isArray.js';\nimport property from './property.js';\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nexport default baseIteratee;\n","import baseIsEqual from './_baseIsEqual.js';\nimport get from './get.js';\nimport hasIn from './hasIn.js';\nimport isKey from './_isKey.js';\nimport isStrictComparable from './_isStrictComparable.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\nimport toKey from './_toKey.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nexport default baseMatchesProperty;\n","import createBaseFor from './_createBaseFor.js';\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nexport default baseFor;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nexport default createBaseFor;\n","import baseFor from './_baseFor.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nexport default baseForOwn;\n","import baseForOwn from './_baseForOwn.js';\nimport createBaseEach from './_createBaseEach.js';\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nexport default baseEach;\n","import isArrayLike from './isArrayLike.js';\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nexport default createBaseEach;\n","import root from './_root.js';\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nexport default now;\n","import isObject from './isObject.js';\nimport now from './now.js';\nimport toNumber from './toNumber.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nexport default debounce;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignMergeValue;\n","import isArrayLike from './isArrayLike.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nexport default isArrayLikeObject;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nexport default safeGet;\n","import assignMergeValue from './_assignMergeValue.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\nimport copyArray from './_copyArray.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport isBuffer from './isBuffer.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport isPlainObject from './isPlainObject.js';\nimport isTypedArray from './isTypedArray.js';\nimport safeGet from './_safeGet.js';\nimport toPlainObject from './toPlainObject.js';\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nexport default baseMergeDeep;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nexport default toPlainObject;\n","import Stack from './_Stack.js';\nimport assignMergeValue from './_assignMergeValue.js';\nimport baseFor from './_baseFor.js';\nimport baseMergeDeep from './_baseMergeDeep.js';\nimport isObject from './isObject.js';\nimport keysIn from './keysIn.js';\nimport safeGet from './_safeGet.js';\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nexport default baseMerge;\n","import baseMerge from './_baseMerge.js';\nimport createAssigner from './_createAssigner.js';\n\n/**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\nvar mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n});\n\nexport default mergeWith;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nexport default arrayIncludesWith;\n","import SetCache from './_SetCache.js';\nimport arrayIncludes from './_arrayIncludes.js';\nimport arrayIncludesWith from './_arrayIncludesWith.js';\nimport arrayMap from './_arrayMap.js';\nimport baseUnary from './_baseUnary.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\nfunction baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n}\n\nexport default baseDifference;\n","import baseDifference from './_baseDifference.js';\nimport baseFlatten from './_baseFlatten.js';\nimport baseRest from './_baseRest.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\nvar difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n});\n\nexport default difference;\n","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nexport default last;\n","import toString from './toString.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n reHasRegExpChar = RegExp(reRegExpChar.source);\n\n/**\n * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n */\nfunction escapeRegExp(string) {\n string = toString(string);\n return (string && reHasRegExpChar.test(string))\n ? string.replace(reRegExpChar, '\\\\$&')\n : string;\n}\n\nexport default escapeRegExp;\n","import baseEach from './_baseEach.js';\n\n/**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n}\n\nexport default baseFilter;\n","/**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\nfunction baseGt(value, other) {\n return value > other;\n}\n\nexport default baseGt;\n","import baseGetTag from './_baseGetTag.js';\nimport isArray from './isArray.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nexport default isString;\n","import SetCache from './_SetCache.js';\nimport arrayIncludes from './_arrayIncludes.js';\nimport arrayIncludesWith from './_arrayIncludesWith.js';\nimport arrayMap from './_arrayMap.js';\nimport baseUnary from './_baseUnary.js';\nimport cacheHas from './_cacheHas.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of shared values.\n */\nfunction baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n ? new SetCache(othIndex && array)\n : undefined;\n }\n array = arrays[0];\n\n var index = -1,\n seen = caches[0];\n\n outer:\n while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (!(seen\n ? cacheHas(seen, computed)\n : includes(result, computed, comparator)\n )) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache\n ? cacheHas(cache, computed)\n : includes(arrays[othIndex], computed, comparator))\n ) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nexport default baseIntersection;\n","import isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\nfunction castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n}\n\nexport default castArrayLikeObject;\n","import arrayMap from './_arrayMap.js';\nimport baseIntersection from './_baseIntersection.js';\nimport baseRest from './_baseRest.js';\nimport castArrayLikeObject from './_castArrayLikeObject.js';\n\n/**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\nvar intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n});\n\nexport default intersection;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]';\n\n/**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\nfunction isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n}\n\nexport default isBoolean;\n","import baseIsDate from './_baseIsDate.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsDate = nodeUtil && nodeUtil.isDate;\n\n/**\n * Checks if `value` is classified as a `Date` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n * @example\n *\n * _.isDate(new Date);\n * // => true\n *\n * _.isDate('Mon April 23 2012');\n * // => false\n */\nvar isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;\n\nexport default isDate;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar dateTag = '[object Date]';\n\n/**\n * The base implementation of `_.isDate` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n */\nfunction baseIsDate(value) {\n return isObjectLike(value) && baseGetTag(value) == dateTag;\n}\n\nexport default baseIsDate;\n","import baseKeys from './_baseKeys.js';\nimport getTag from './_getTag.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLike from './isArrayLike.js';\nimport isBuffer from './isBuffer.js';\nimport isPrototype from './_isPrototype.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nexport default isEmpty;\n","import baseIsEqual from './_baseIsEqual.js';\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nexport default isEqual;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n}\n\nexport default isNumber;\n","/**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nexport default isNil;\n","/**\n * Checks if `value` is `null`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `null`, else `false`.\n * @example\n *\n * _.isNull(null);\n * // => true\n *\n * _.isNull(void 0);\n * // => false\n */\nfunction isNull(value) {\n return value === null;\n}\n\nexport default isNull;\n","/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nexport default isUndefined;\n","import createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\nvar kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n});\n\nexport default kebabCase;\n","/**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\nfunction baseLt(value, other) {\n return value < other;\n}\n\nexport default baseLt;\n","import isSymbol from './isSymbol.js';\n\n/**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\nfunction baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n}\n\nexport default baseExtremum;\n","import baseMerge from './_baseMerge.js';\nimport createAssigner from './_createAssigner.js';\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nexport default merge;\n","import castPath from './_castPath.js';\nimport last from './last.js';\nimport parent from './_parent.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\nfunction baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n}\n\nexport default baseUnset;\n","import baseGet from './_baseGet.js';\nimport baseSlice from './_baseSlice.js';\n\n/**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\nfunction parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n}\n\nexport default parent;\n","import isPlainObject from './isPlainObject.js';\n\n/**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\nfunction customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n}\n\nexport default customOmitClone;\n","import arrayMap from './_arrayMap.js';\nimport baseClone from './_baseClone.js';\nimport baseUnset from './_baseUnset.js';\nimport castPath from './_castPath.js';\nimport copyObject from './_copyObject.js';\nimport customOmitClone from './_customOmitClone.js';\nimport flatRest from './_flatRest.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\nvar omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n});\n\nexport default omit;\n","import assignValue from './_assignValue.js';\nimport castPath from './_castPath.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nexport default baseSet;\n","import baseGet from './_baseGet.js';\nimport baseSet from './_baseSet.js';\nimport castPath from './_castPath.js';\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n}\n\nexport default basePickBy;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeFloor = Math.floor;\n\n/**\n * The base implementation of `_.repeat` which doesn't coerce arguments.\n *\n * @private\n * @param {string} string The string to repeat.\n * @param {number} n The number of times to repeat the string.\n * @returns {string} Returns the repeated string.\n */\nfunction baseRepeat(string, n) {\n var result = '';\n if (!string || n < 1 || n > MAX_SAFE_INTEGER) {\n return result;\n }\n // Leverage the exponentiation by squaring algorithm for a faster repeat.\n // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.\n do {\n if (n % 2) {\n result += string;\n }\n n = nativeFloor(n / 2);\n if (n) {\n string += string;\n }\n } while (n);\n\n return result;\n}\n\nexport default baseRepeat;\n","import baseProperty from './_baseProperty.js';\n\n/**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\nvar asciiSize = baseProperty('length');\n\nexport default asciiSize;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\nfunction unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n ++result;\n }\n return result;\n}\n\nexport default unicodeSize;\n","import asciiSize from './_asciiSize.js';\nimport hasUnicode from './_hasUnicode.js';\nimport unicodeSize from './_unicodeSize.js';\n\n/**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\nfunction stringSize(string) {\n return hasUnicode(string)\n ? unicodeSize(string)\n : asciiSize(string);\n}\n\nexport default stringSize;\n","import baseRepeat from './_baseRepeat.js';\nimport baseToString from './_baseToString.js';\nimport castSlice from './_castSlice.js';\nimport hasUnicode from './_hasUnicode.js';\nimport stringSize from './_stringSize.js';\nimport stringToArray from './_stringToArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil;\n\n/**\n * Creates the padding for `string` based on `length`. The `chars` string\n * is truncated if the number of characters exceeds `length`.\n *\n * @private\n * @param {number} length The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padding for `string`.\n */\nfunction createPadding(length, chars) {\n chars = chars === undefined ? ' ' : baseToString(chars);\n\n var charsLength = chars.length;\n if (charsLength < 2) {\n return charsLength ? baseRepeat(chars, length) : chars;\n }\n var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));\n return hasUnicode(chars)\n ? castSlice(stringToArray(result), 0, length).join('')\n : result.slice(0, length);\n}\n\nexport default createPadding;\n","import createPadding from './_createPadding.js';\nimport stringSize from './_stringSize.js';\nimport toInteger from './toInteger.js';\nimport toString from './toString.js';\n\n/**\n * Pads `string` on the left side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padStart('abc', 6);\n * // => ' abc'\n *\n * _.padStart('abc', 6, '_-');\n * // => '_-_abc'\n *\n * _.padStart('abc', 3);\n * // => 'abc'\n */\nfunction padStart(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (createPadding(length - strLength, chars) + string)\n : string;\n}\n\nexport default padStart;\n","import basePick from './_basePick.js';\nimport flatRest from './_flatRest.js';\n\n/**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\nvar pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n});\n\nexport default pick;\n","import basePickBy from './_basePickBy.js';\nimport hasIn from './hasIn.js';\n\n/**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\nfunction basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n}\n\nexport default basePick;\n","import baseUnset from './_baseUnset.js';\nimport isIndex from './_isIndex.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * The base implementation of `_.pullAt` without support for individual\n * indexes or capturing the removed elements.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {number[]} indexes The indexes of elements to remove.\n * @returns {Array} Returns `array`.\n */\nfunction basePullAt(array, indexes) {\n var length = array ? indexes.length : 0,\n lastIndex = length - 1;\n\n while (length--) {\n var index = indexes[length];\n if (length == lastIndex || index !== previous) {\n var previous = index;\n if (isIndex(index)) {\n splice.call(array, index, 1);\n } else {\n baseUnset(array, index);\n }\n }\n }\n return array;\n}\n\nexport default basePullAt;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\n\nexport default baseRange;\n","import createRange from './_createRange.js';\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\nvar range = createRange();\n\nexport default range;\n","import baseRange from './_baseRange.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toFinite from './toFinite.js';\n\n/**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\nfunction createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n}\n\nexport default createRange;\n","import baseIteratee from './_baseIteratee.js';\nimport basePullAt from './_basePullAt.js';\n\n/**\n * Removes all elements from `array` that `predicate` returns truthy for\n * and returns an array of the removed elements. The predicate is invoked\n * with three arguments: (value, index, array).\n *\n * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`\n * to pull elements from an array by value.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = [1, 2, 3, 4];\n * var evens = _.remove(array, function(n) {\n * return n % 2 == 0;\n * });\n *\n * console.log(array);\n * // => [1, 3]\n *\n * console.log(evens);\n * // => [2, 4]\n */\nfunction remove(array, predicate) {\n var result = [];\n if (!(array && array.length)) {\n return result;\n }\n var index = -1,\n indexes = [],\n length = array.length;\n\n predicate = baseIteratee(predicate, 3);\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result.push(value);\n indexes.push(index);\n }\n }\n basePullAt(array, indexes);\n return result;\n}\n\nexport default remove;\n","import baseSet from './_baseSet.js';\n\n/**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\nfunction set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n}\n\nexport default set;\n","import baseSum from './_baseSum.js';\nimport identity from './identity.js';\n\n/**\n * Computes the sum of the values in `array`.\n *\n * @static\n * @memberOf _\n * @since 3.4.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {number} Returns the sum.\n * @example\n *\n * _.sum([4, 2, 8, 6]);\n * // => 20\n */\nfunction sum(array) {\n return (array && array.length)\n ? baseSum(array, identity)\n : 0;\n}\n\nexport default sum;\n","/**\n * The base implementation of `_.sum` and `_.sumBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the sum.\n */\nfunction baseSum(array, iteratee) {\n var result,\n index = -1,\n length = array.length;\n\n while (++index < length) {\n var current = iteratee(array[index]);\n if (current !== undefined) {\n result = result === undefined ? current : (result + current);\n }\n }\n return result;\n}\n\nexport default baseSum;\n","import debounce from './debounce.js';\nimport isObject from './isObject.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nexport default throttle;\n","import Set from './_Set.js';\nimport noop from './noop.js';\nimport setToArray from './_setToArray.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nexport default createSet;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nexport default noop;\n","import SetCache from './_SetCache.js';\nimport arrayIncludes from './_arrayIncludes.js';\nimport arrayIncludesWith from './_arrayIncludesWith.js';\nimport cacheHas from './_cacheHas.js';\nimport createSet from './_createSet.js';\nimport setToArray from './_setToArray.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nexport default baseUniq;\n","import toString from './toString.js';\n\n/** Used to generate unique IDs. */\nvar idCounter = 0;\n\n/**\n * Generates a unique ID. If `prefix` is given, the ID is appended to it.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {string} [prefix=''] The value to prefix the ID with.\n * @returns {string} Returns the unique ID.\n * @example\n *\n * _.uniqueId('contact_');\n * // => 'contact_104'\n *\n * _.uniqueId();\n * // => '105'\n */\nfunction uniqueId(prefix) {\n var id = ++idCounter;\n return toString(prefix) + id;\n}\n\nexport default uniqueId;\n","import arrayFilter from './_arrayFilter.js';\nimport baseRest from './_baseRest.js';\nimport baseXor from './_baseXor.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport last from './last.js';\n\n/**\n * This method is like `_.xor` except that it accepts `comparator` which is\n * invoked to compare elements of `arrays`. The order of result values is\n * determined by the order they occur in the arrays. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.xorWith(objects, others, _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\nvar xorWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator);\n});\n\nexport default xorWith;\n","import baseDifference from './_baseDifference.js';\nimport baseFlatten from './_baseFlatten.js';\nimport baseUniq from './_baseUniq.js';\n\n/**\n * The base implementation of methods like `_.xor`, without support for\n * iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of values.\n */\nfunction baseXor(arrays, iteratee, comparator) {\n var length = arrays.length;\n if (length < 2) {\n return length ? baseUniq(arrays[0]) : [];\n }\n var index = -1,\n result = Array(length);\n\n while (++index < length) {\n var array = arrays[index],\n othIndex = -1;\n\n while (++othIndex < length) {\n if (othIndex != index) {\n result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);\n }\n }\n }\n return baseUniq(baseFlatten(result, 1), iteratee, comparator);\n}\n\nexport default baseXor;\n","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 };","import { h, ComponentPublicInstance, VNode, isVNode, Fragment } from 'vue';\nimport { isEmpty, isArray, isString, isObject, camelCase, kebabCase, isFunction } 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 {\n Slots,\n VNode,\n Component,\n getCurrentInstance,\n Fragment,\n Comment,\n RendererNode,\n VNodeArrayChildren,\n RendererElement,\n VNodeChild,\n isVNode,\n Teleport,\n} from 'vue';\nimport { isArray } from 'lodash-es';\n// TODO need refactor\nimport { getChildren } from '../../components/utils/render-tnode';\n\n/**\n * 渲染default slot,获取子组件VNode。处理多种子组件创建场景\n * 使用场景: , \n * @returns {function(childComponentName: string, slots: Slots): VNode[]}\n * @param childComponentName\n * @param slots\n * @example const getChildByName = useChildComponentSlots()\n * @example getChildComponentByName('TStepItem')\n */\nexport function useChildComponentSlots() {\n const instance = getCurrentInstance();\n return (childComponentName: string, slots?: Slots): VNode[] => {\n if (!slots) {\n slots = instance.slots;\n }\n const content = slots?.default?.() || [];\n\n return getChildren(content).filter((item: VNode) =>\n (item.type as Component).name?.endsWith(childComponentName),\n ) as VNode[];\n };\n}\n\n/**\n * 渲染default slot,获取slot child\n * @param childComponentName\n * @param slots\n * @example const getChildSlots = useChildSlots()\n * @example getChildSlots()\n */\nexport function useChildSlots(): () => (\n | VNode<\n RendererNode,\n RendererElement,\n {\n [key: string]: any;\n }\n >\n | VNodeArrayChildren\n | VNodeChild\n)[] {\n const instance = getCurrentInstance();\n return () => {\n const { slots } = instance;\n const content = slots?.default?.() || [];\n\n return content\n .filter((item) => {\n if (typeof item.type === 'symbol' && !item.children) {\n return false;\n }\n return item.type !== Comment;\n })\n .map((item) => {\n if (item.children && isArray(item.children) && item.type === Fragment) return item.children;\n return item;\n })\n .flat();\n };\n}\n\n/**\n * 递归展开所有 Fragment,并跳过 Comment 节点,返回一维 VNodeChild 数组\n * @example const useFlatChildrenSlots = useFlatChildrenSlotsHook()\n * @example useFlatChildrenSlots(children)\n */\nexport function useFlatChildrenSlots() {\n function getFlatChildren(children: VNodeChild[]): VNodeChild[] {\n const result: VNodeChild[] = [];\n children.forEach((child) => {\n if (isVNode(child) && child.type === Fragment && Array.isArray(child.children)) {\n result.push(...getFlatChildren(child.children as VNodeChild[]));\n } else if (isVNode(child) && [Teleport, Comment].some((vNode) => vNode === child.type)) {\n // skip Teleport and Comment\n } else {\n result.push(child);\n }\n });\n return result;\n }\n return getFlatChildren;\n}\n","import { isFunction, isObject } from 'lodash-es';\n\nconst { hasOwnProperty } = Object.prototype;\n\nexport const hasOwn = (val: T, key: string | symbol | number): key is keyof T => hasOwnProperty.call(val, key);\nexport const getPropertyValFromObj = (\n val: T,\n key: string | symbol | number,\n): T[keyof T] | undefined => (hasOwn(val, key) ? val[key] : undefined);\n\nconst objectToString: typeof Object.prototype.toString = Object.prototype.toString;\nconst toTypeString = (value: unknown): string => objectToString.call(value);\nexport const isPlainObject = (val: unknown): val is T => toTypeString(val) === '[object Object]';\nexport const isPromise = (val: unknown): val is Promise => (isObject(val) || isFunction(val))\n && isFunction((val as any).then)\n && isFunction((val as any).catch);\n","import { h, getCurrentInstance, ComponentInternalInstance, VNode } from 'vue';\nimport { camelCase, kebabCase, isFunction } from 'lodash-es';\n\n// TODO need refactor\nimport {\n getDefaultNode,\n getParams,\n OptionsType,\n JSXRenderContext,\n getSlotFirst,\n} from '../../components/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 // 如果该属性的类型有多种且包含 Boolean 和 Slot 的情况下,处理 boolean casting true 的场景\n // https://vuejs.org/guide/components/props.html#boolean-casting\n const types = instance.type.props[name]?.type;\n if (types?.length > 1) {\n if (types.includes(Boolean) && types.includes(Function)) {\n if (propsNode === '' && !renderSlot) return defaultNode;\n }\n }\n // 2.1.2 如果 prop 的值为 false 或者 null,那么直接不渲染\n if (propsNode === false || propsNode === null) return;\n // 2.1.3 如果 prop 的值为 true,那么使用 slot 渲染\n if (propsNode === true) {\n return handleSlots(instance, name, renderParams) || defaultNode;\n }\n // 2.1.4 如果 prop 的值为函数,那么执行函数\n if (isFunction(propsNode)) return propsNode(h, renderParams);\n // 2.1.5 如果 prop 的值为 undefined、'',那么使用插槽渲染\n const isPropsEmpty = [undefined, ''].includes(propsNode as any);\n if (isPropsEmpty && renderSlot) {\n return handleSlots(instance, name, renderParams);\n }\n // 2.1.6 如果 prop 的值为其他值,那么直接返回\n return propsNode;\n }\n // 2.2 如果未主动传入 prop,那么渲染 slot,当然前提是存在 slot\n if (renderSlot) {\n return handleSlots(instance, name, renderParams);\n }\n // 2.3 如果未主动传入 prop,也没有 slot,那么就走 prop\n const propsNode = instance.props[camelCase(name)] || instance.props[kebabCase(name)];\n if (propsNode === false || propsNode === null) return;\n if (propsNode === true) {\n return defaultNode;\n }\n if (isFunction(propsNode)) return propsNode(h, renderParams);\n return propsNode;\n }\n };\n};\n\n/**\n * 在setup中,通过JSX的方式 TNode,props 和 插槽同时处理。与 renderTNodeJSX 区别在于属性值为 undefined 时会渲染默认节点\n * @example const renderTNodeJSXDefault = useTNodeDefault()\n * @return () => {}\n * @param name 插槽和属性名称\n * @example renderTNodeJSXDefault('closeBtn')\n * @example renderTNodeJSXDefault('closeBtn', ) closeBtn 为空时,则兜底渲染 \n * @example renderTNodeJSXDefault('closeBtn', { defaultNode: , params }) 。params 为渲染节点时所需的参数\n */\nexport const useTNodeDefault = () => {\n const renderTNodeJSX = useTNodeJSX();\n return function (name: string, options?: VNode | JSXRenderContext) {\n const defaultNode = getDefaultNode(options);\n return renderTNodeJSX(name, options) || defaultNode;\n };\n};\n\n/**\n * 在setup中,用于处理相同名称的 TNode 渲染\n * @example const renderContent = useContent()\n * @return () => {}\n * @param name1 第一个名称,优先级高于 name2\n * @param name2 第二个名称\n * @param defaultNode 默认渲染内容:当 name1 和 name2 都为空时会启动默认内容渲染\n * @example renderContent('default', 'content')\n * @example renderContent('default', 'content', '我是默认内容')\n * @example renderContent('default', 'content', { defaultNode: '我是默认内容', params })\n */\nexport const useContent = () => {\n const renderTNodeJSX = useTNodeJSX();\n return function (name1: string, name2: string, options?: VNode | JSXRenderContext) {\n // assemble params && defaultNode\n const params = getParams(options);\n const defaultNode = getDefaultNode(options);\n\n const toParams = params ? { params } : undefined;\n\n const node1 = renderTNodeJSX(name1, toParams);\n const node2 = renderTNodeJSX(name2, toParams);\n\n const res = isEmptyNode(node1) ? node2 : node1;\n return isEmptyNode(res) ? defaultNode : res;\n };\n};\n","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';\n// TODO need refactor\nimport { useConfig } from '../../components/config-provider/hooks/useConfig';\n\nexport function usePrefixClass(componentName?: string) {\n const { classPrefix } = useConfig('classPrefix');\n return computed(() => {\n return componentName ? `${classPrefix.value}-${componentName}` : classPrefix.value;\n });\n}\n\nexport { useConfig };\n","import { computed } from 'vue';\nimport { useConfig } from '../useConfig';\n\nexport function useCommonClassName() {\n const { classPrefix } = useConfig('classPrefix');\n\n return {\n classPrefix,\n SIZE: computed(() => ({\n small: `${classPrefix.value}-size-s`,\n medium: `${classPrefix.value}-size-m`,\n large: `${classPrefix.value}-size-l`,\n default: '',\n xs: `${classPrefix.value}-size-xs`,\n xl: `${classPrefix.value}-size-xl`,\n block: `${classPrefix.value}-size-full-width`,\n })),\n STATUS: computed(() => ({\n loading: `${classPrefix.value}-is-loading`,\n loadMore: `${classPrefix.value}-is-load-more`,\n disabled: `${classPrefix.value}-is-disabled`,\n focused: `${classPrefix.value}-is-focused`,\n success: `${classPrefix.value}-is-success`,\n error: `${classPrefix.value}-is-error`,\n warning: `${classPrefix.value}-is-warning`,\n selected: `${classPrefix.value}-is-selected`,\n active: `${classPrefix.value}-is-active`,\n checked: `${classPrefix.value}-is-checked`,\n current: `${classPrefix.value}-is-current`,\n hidden: `${classPrefix.value}-is-hidden`,\n visible: `${classPrefix.value}-is-visible`,\n expanded: `${classPrefix.value}-is-expanded`,\n indeterminate: `${classPrefix.value}-is-indeterminate`,\n })),\n };\n}\n\nexport type CommonClassNameType = ReturnType;\n","import { ref, Ref, getCurrentInstance } from 'vue';\nimport { kebabCase } from 'lodash-es';\nimport { ChangeHandler } from '../useVModel';\n\nexport function useDefaultValue(\n value: Ref,\n defaultValue: T,\n onChange: ChangeHandler,\n propsName: string,\n): [Ref, ChangeHandler] {\n const { emit, vnode } = getCurrentInstance();\n const internalValue: Ref = ref();\n\n const vProps = vnode.props || {};\n const isVMP =\n Object.prototype.hasOwnProperty.call(vProps, propsName) ||\n Object.prototype.hasOwnProperty.call(vProps, kebabCase(propsName));\n\n if (isVMP) {\n return [\n value,\n (newValue, ...args) => {\n emit(`update:${propsName}`, newValue);\n onChange?.(newValue, ...args);\n },\n ];\n }\n\n internalValue.value = defaultValue;\n return [\n internalValue,\n (newValue, ...args) => {\n internalValue.value = newValue;\n onChange?.(newValue, ...args);\n },\n ];\n}\n","import { ref, provide, onUpdated } from 'vue';\n\nexport const TDisplayNoneElementRefresh = 't-display-none-element-refresh';\n\n// destroyOnClose=false 时,父元素为 display: none,此时的子元素无法获取到自身元素的任何宽度\n// 因此,需在父元素 display: none 发生变化时主动更新子元素\nexport function useDestroyOnClose() {\n const refresh = ref(0);\n provide(TDisplayNoneElementRefresh, refresh);\n onUpdated(() => {\n refresh.value += 1;\n });\n}\n","import { Ref, inject, computed, getCurrentInstance } from 'vue';\nimport { isBoolean } from 'lodash-es';\n// TODO: need refator\nimport { TdFormProps } from '../../components/form/type';\n\nexport interface FormDisabledProvider {\n disabled: Ref;\n}\n\nexport interface DisabledContext {\n beforeDisabled?: Ref;\n afterDisabled?: Ref;\n}\n\n/**\n * 用于实现组件全局禁用状态的hook\n * 优先级:(beforeDisabled) > Component.disabled > ComponentGroup.disabled(afterDisabled) > Form.disabled\n * @returns\n */\nexport function useDisabled(context?: DisabledContext) {\n const currentInstance = getCurrentInstance();\n const componentDisabled = computed(() => currentInstance.props.disabled as boolean);\n\n const formDisabled = inject('formDisabled', Object.create(null));\n\n return computed(() => {\n if (isBoolean(context?.beforeDisabled?.value)) return context.beforeDisabled.value;\n // Component\n if (isBoolean(componentDisabled.value)) return componentDisabled.value;\n // ComponentGroup\n if (isBoolean(context?.afterDisabled?.value)) return context.afterDisabled.value;\n // Form\n if (isBoolean(formDisabled.disabled?.value)) return formDisabled.disabled.value;\n\n return false;\n });\n}\n","import { onUnmounted } from 'vue';\n\nconst traversalTabNavs = (tabNavs: HTMLCollection, fn: { (itemNode: any): void; (tabNav: HTMLDivElement): void }) => {\n for (const itemNode of tabNavs) {\n if (itemNode.getAttribute('draggable')) {\n fn(itemNode);\n }\n }\n};\n\nconst handleTarget = (target: EventTarget, tabNavs: HTMLCollection): any => {\n let resultTarget;\n traversalTabNavs(tabNavs, (itemNode) => {\n if (itemNode.contains(target)) {\n resultTarget = itemNode;\n }\n });\n return resultTarget;\n};\n\nexport function useDragSort(props: any) {\n let navsWrap: HTMLDivElement = null;\n\n // 获取当前正在拖动的tabNav节点\n let dragged: HTMLDivElement;\n const enterTargets: HTMLDivElement[] = [];\n\n const dragstart = (event: DragEvent) => {\n const target = event.target as HTMLDivElement;\n // const { target } = event;\n // 保存拖动元素的引用(ref.)\n dragged = target;\n // 使其半透明\n target.style.opacity = '0.5';\n };\n const dragend = (event: DragEvent) => {\n // 重置透明度\n (event.target as HTMLDivElement).style.opacity = '';\n };\n /* 放置目标元素时触发事件 */\n const dragover = (event: DragEvent) => {\n // 阻止默认动作以启用drop\n event.preventDefault();\n };\n // 当可拖动的元素进入可放置的目标时\n const dragenter = (event: DragEvent) => {\n // 高亮目标节点\n const target = handleTarget(event.target, navsWrap.children);\n if (target && target !== dragged && target.draggable) {\n target.firstChild.style.outline = '1px dashed #0052d9';\n // 进入的节点全部记录下来\n if (!enterTargets.includes(target)) {\n enterTargets.push(target);\n }\n }\n };\n // 当拖动元素离开可放置目标节点\n const dragleave = (event: DragEvent) => {\n const target = event.target as HTMLDivElement;\n // 重置其边框\n // const { target } = event;\n for (const enterTarget of enterTargets) {\n // 目标不在需要放入的节点内,则重置边框\n if (!enterTarget.contains(target)) {\n // 记录过的节点全部重置边框\n (enterTarget.firstChild as HTMLDivElement).style.outline = 'none';\n }\n }\n };\n const drop = (event: DragEvent) => {\n // 阻止默认动作(如打开一些元素的链接)\n event.preventDefault();\n\n traversalTabNavs(navsWrap.children, (tabNav) => {\n tabNav.firstChild.style.outline = 'none';\n });\n // 将拖动的元素到所选择的放置目标节点中\n let target = handleTarget(event.target, navsWrap.children);\n if (target && target.parentNode !== dragged && target.draggable) {\n // 获取拖拽元素index\n const dragIndex = [].indexOf.call(navsWrap.children, dragged);\n // 获取放入元素index\n const targetIndex = [].indexOf.call(navsWrap.children, target);\n if (targetIndex > dragIndex) {\n target = navsWrap.children[targetIndex + 1];\n }\n\n // 当props.theme === \"normal\" 会多出一个指示条为第一个dom节点,所以需要减1\n const currentIndex = props.theme === 'card' ? dragIndex : dragIndex - 1;\n const endIndex = props.theme === 'card' ? targetIndex : targetIndex - 1;\n props.onDragSort?.({\n currentIndex,\n current: props.panels[currentIndex].value,\n targetIndex: endIndex,\n target: props.panels[endIndex].value,\n });\n }\n };\n function setNavsWrap(val: HTMLDivElement) {\n navsWrap = val;\n navsWrap.addEventListener('dragstart', dragstart, false);\n navsWrap.addEventListener('dragend', dragend, false);\n navsWrap.addEventListener('dragover', dragover, false);\n navsWrap.addEventListener('dragenter', dragenter, false);\n document.addEventListener('dragleave', dragleave, false);\n document.addEventListener('mousemove', dragleave, false);\n navsWrap.addEventListener('drop', drop, false);\n }\n\n onUnmounted(() => {\n if (navsWrap) {\n navsWrap.removeEventListener('dragstart', dragstart);\n navsWrap.removeEventListener('dragend', dragend);\n navsWrap.removeEventListener('dragover', dragover);\n navsWrap.removeEventListener('dragenter', dragenter);\n document.removeEventListener('dragleave', dragleave);\n document.removeEventListener('mousemove', dragleave);\n navsWrap.removeEventListener('drop', drop);\n }\n });\n return { setNavsWrap };\n}\n","export default function observe(\n element: HTMLElement,\n root: HTMLElement,\n callback: Function,\n marginBottom: number,\n): IntersectionObserver {\n if (typeof window === 'undefined') return null;\n if (!window || !window.IntersectionObserver) {\n callback();\n return null;\n }\n let io: IntersectionObserver = null;\n try {\n io = new window.IntersectionObserver(\n (entries) => {\n const entry = entries[0];\n if (entry.isIntersecting) {\n callback();\n io.unobserve(element);\n }\n },\n {\n rootMargin: `0px 0px ${marginBottom}px 0px`,\n root,\n },\n );\n io.observe(element);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(e);\n callback();\n }\n return io;\n}\n","import { useConfig } from '../useConfig';\n// TODO need refactor\nimport { IconConfig } from '../../components/config-provider/type';\n\n// 从 globalConfig 获取 icon 配置用于覆盖组件内置 icon\nexport function useGlobalIcon(tdIcon: object) {\n const { globalConfig } = useConfig('icon');\n\n const resultIcon: IconConfig = {};\n\n Object.keys(tdIcon).forEach((key: keyof typeof tdIcon) => {\n resultIcon[key] = globalConfig.value?.[key] || tdIcon[key];\n });\n\n return resultIcon;\n}\n\nexport default useGlobalIcon;\n","/* eslint-disable no-console */\nimport { Log } from './types';\n\nconst logSet = new Set();\n\nconst log: Log = {\n warn(componentName, message): void {\n console.warn(`TDesign ${componentName} Warn: ${message}`);\n },\n warnOnce(componentName, message): void {\n const msgContent = `TDesign ${componentName} Warn: ${message}`;\n if (logSet.has(msgContent)) return;\n logSet.add(msgContent);\n console.warn(msgContent);\n },\n error(componentName, message): void {\n console.error(`TDesign ${componentName} Error: ${message}`);\n },\n errorOnce(componentName, message): void {\n const msgContent = `TDesign ${componentName} Error: ${message}`;\n if (logSet.has(msgContent)) return;\n logSet.add(msgContent);\n console.error(msgContent);\n },\n info(componentName, message): void {\n console.info(`TDesign ${componentName} Info: ${message}`);\n },\n};\n\nexport default log;\n","import { SizeUnit } from './types';\nimport log from '../log/log';\n\nexport const IMAGE_REGEXP = /(.png|.jpg|.jpeg|.jpe|.webp|.avif|.svg|.gif|.bmp)/i;\nexport const IMAGE_ALL_REGEXP = /(.png|.jpg|.jpeg|.jpe|.webp|.avif|.svg|.gif|.bmp|.dwg|.dxf|.svf|.tif|.tiff|.arw)/i;\nexport const FILE_PDF_REGEXP = /(.pdf)/i;\nexport const FILE_EXCEL_REGEXP = /(.xlsx|.xls|.csv|.xlc|.xlm|.xlt|.xlw)/i;\nexport const FILE_WORD_REGEXP = /(.dox|docx|.document|.wps|.wdb|.msword)/i;\nexport const FILE_PPT_REGEXP = /(.ppt|.pptx|.key)/i;\nexport const VIDEO_REGEXP = /(.avi|.mp4|.wmv|.mpg|.mpeg|.mov|.rm|.ram|.swf|.flv|.rmvb|.flash|.mid|.3gp)/i;\nexport const AUDIO_REGEXP = /(.mp2|.mp3|.mp4|.ogg|.3gpp|.ac3|.au)/i;\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types\n */\nconst INPUT_FILE_MAP = {\n 'audio/*': AUDIO_REGEXP,\n 'video/*': VIDEO_REGEXP,\n 'image/*': IMAGE_ALL_REGEXP,\n '.ico': /image\\/vnd.microsoft.icon/i,\n '.doc': /application\\/msword/i,\n '.docx': /application\\/vnd.openxmlformats-officedocument.wordprocessingml.document/i,\n '.xls': /application\\/vnd.ms-excel/i,\n '.xlsx': /application\\/vnd.openxmlformats-officedocument.spreadsheetml.sheet/i,\n '.ppt': /application\\/vnd.ms-powerpoint/i,\n '.pptx': /application\\/vnd.openxmlformats-officedocument.presentationml.presentation/i,\n '.vsd': /application\\/vnd.visio/i,\n '.txt': /text\\/plain/i,\n '.abw': /application\\/x-abiword/i,\n '.avi': /video\\/x-msvideo/i,\n '.azw': /application\\/vnd.amazon.ebook/i,\n '.bin': /application\\/octet-stream/i,\n '.cda': /application\\/x-cdf/i,\n '.mpkg': /application\\/vnd.apple.installer+xml/i,\n '.odp': /application\\/vnd.oasis.opendocument.presentation/i,\n '.ods': /application\\/vnd.oasis.opendocument.spreadsheet/i,\n '.odt': /application\\/vnd.oasis.opendocument.text/i,\n '.oga': /audio\\/ogg/i,\n '.ogv': /video\\/ogg/i,\n '.ogx': /application\\/ogg/i,\n};\n\n/**\n * 各个单位和 KB 的关系\n *\n * [*] 表示方法采用这种方式\n * [x] 表示方法不采用这种方式\n *\n * [x] bit 位 b 0 or 1\n * [*] byte 字节 B 8 bits\n * [x] kilobit 千位 kb 1000 bites\n * [*] kilobyte 千字节(二进制) KB 1024 bytes\n * [x] kilobyte 千字节(十进制) KB 1000 bytes\n * [x] Megabite 百万位 Mb 1000 kilobits\n * [*] Megabyte 兆字节(二进制) KB 1024 kilobytes\n * [*] Megabyte 兆字节(十进制) KB 1000 kilobytes\n * [x] Gigabit 万亿位 Gb 1000 Megabite\n * [*] Gigabyte 吉字节(二进制) GB 1024 Megabytes\n * [x] Gigabyte 吉字节(十进制) GB 1000 Megabytes\n */\nexport const SIZE_MAP = {\n B: 1,\n KB: 1024,\n MB: 1048576, // 1024 * 1024\n GB: 1073741824, // 1024 * 1024 * 1024\n};\n\nexport function returnFileSize(number: number) {\n if (number < SIZE_MAP.KB) {\n return `${number} Bytes`;\n }\n if (number >= SIZE_MAP.KB && number < SIZE_MAP.MB) {\n return `${(number / SIZE_MAP.KB).toFixed(1)} KB`;\n }\n if (number >= SIZE_MAP.MB && number < SIZE_MAP.GB) {\n return `${(number / SIZE_MAP.MB).toFixed(1)} MB`;\n }\n\n if (number >= SIZE_MAP.GB) {\n return `${(number / SIZE_MAP.GB).toFixed(1)} GB`;\n }\n return '';\n}\n\nexport function getCurrentDate(needTime = false) {\n const d = new Date();\n let month: string | number = d.getMonth() + 1;\n month = month < 10 ? `0${month}` : month;\n const date = `${d.getFullYear()}-${month}-${d.getDate()}`;\n const time = `${d.getHours()}:${d.getMinutes()}:${d.getSeconds()}`;\n if (needTime) return [date, time].join(' ');\n return date;\n}\n\n/**\n * 缩略文件名 ABCDEFG => ABC...FG\n * @param inputName 文件名\n * @param leftCount 左边长度\n * @param rightCount 右边长度\n * @returns 缩略后的文件名\n */\nexport function abridgeName(\n inputName: string,\n leftCount = 5,\n rightCount = 7\n): string {\n const name = inputName;\n let leftLength = 0;\n let rightLength = 0;\n if (!name) return '';\n for (let i = 0; i < name.length; i++) {\n const w = name[i];\n const isCn = escape(w).indexOf('%u') === 0;\n if (i < leftCount * 2 && leftLength < leftCount) {\n // eslint-disable-next-line no-unused-expressions\n isCn ? (leftLength += 1) : (leftLength += 2);\n } else if (i > i - rightCount && rightLength < rightCount) {\n // eslint-disable-next-line no-unused-expressions\n isCn ? (rightLength += 1) : (rightLength += 2);\n }\n }\n return name.replace(\n new RegExp(`^(.{${leftLength}})(.+)(.{${rightLength}})$`),\n '$1…$3'\n );\n}\n\nexport function getFileSizeText(number: number) {\n if (number < 1024) {\n return `${number} Bytes`;\n }\n if (number >= 1024 && number < 1048576) {\n return `${(number / 1024).toFixed(1)} KB`;\n }\n if (number >= 1048576) {\n return `${(number / 1048576).toFixed(1)} MB`;\n }\n return '';\n}\n\n/**\n * 大小比较\n * @param size 文件大小,单位:B\n * @param unit 计算机计量单位\n */\nexport function isOverSizeLimit(\n fileSize: number,\n sizeLimit: number,\n unit: SizeUnit\n) {\n const units = ['B', 'KB', 'MB', 'GB'];\n const KBIndex = 1;\n let index = units.indexOf(unit);\n if (index === -1) {\n log.warn('Upload', `\\`sizeLimit.unit\\` can only be one of ${units.join()}`);\n index = KBIndex;\n }\n const num = SIZE_MAP[unit];\n return fileSize > sizeLimit * num;\n}\n\n// vue2临时使用的 sizeLimit 计算\nexport function isOverSizeLimit1(\n fileSize: number,\n sizeLimit: number,\n unit: SizeUnit\n) {\n // 以 KB 为单位进行比较\n const units = ['B', 'KB', 'MB', 'GB'];\n // 各个单位和 KB 的关系\n\n const KBIndex = 1;\n let index = units.indexOf(unit);\n if (index === -1) {\n // eslint-disable-next-line no-console\n console.warn(\n `TDesign Upload Warn: \\`sizeLimit.unit\\` can only be one of ${units.join()}`\n );\n index = KBIndex;\n }\n const num = SIZE_MAP[unit];\n const limit = index < KBIndex ? sizeLimit / num : sizeLimit * num;\n return fileSize <= limit;\n}\n\nexport const urlCreator = () => window.webkitURL || window.URL;\n\nexport function getFileUrlByFileRaw(fileRaw: File): Promise {\n return new Promise((resolve) => {\n if (!fileRaw) {\n resolve('');\n return;\n }\n const reader = new FileReader();\n reader.readAsDataURL(fileRaw);\n reader.onload = (event: ProgressEvent) => {\n resolve(event.target?.result as string);\n };\n });\n}\n\nexport function validateFileType(accept: string, fileType: string, fileName?: string) {\n const tmpFileType = fileType || fileName;\n if (!accept) return true;\n\n if (!tmpFileType) return false;\n\n const acceptList = accept.split(',').map((v) => v.trim());\n for (let i = 0, len = acceptList.length; i < len; i++) {\n const oneRule = acceptList[i] as keyof typeof INPUT_FILE_MAP;\n if (INPUT_FILE_MAP[oneRule] && INPUT_FILE_MAP[oneRule].test(tmpFileType)) {\n return true;\n }\n const regExp = new RegExp(oneRule, 'i');\n if (regExp.test(tmpFileType)) {\n return true;\n }\n }\n return false;\n}\n\nexport function getFileList(files: FileList, accept: string = '') {\n const fileList: File[] = [];\n for (let i = 0; i < files.length; i++) {\n if (validateFileType(accept, files[i].type, files[i].name)) {\n fileList.push(files[i]);\n }\n }\n return fileList;\n}\n","import { ComputedRef, ref, Ref, watch } from 'vue';\nimport { getFileUrlByFileRaw } from '@tdesign/common-js/upload/utils';\n\nexport function useImagePreviewUrl(imgUrl: Ref | ComputedRef) {\n const previewUrl = ref('');\n\n watch(\n [imgUrl],\n ([imgUrl], [preImgUrl]) => {\n if (preImgUrl === imgUrl) return;\n if (typeof imgUrl === 'string') {\n previewUrl.value = imgUrl;\n return;\n }\n getFileUrlByFileRaw(imgUrl).then((url) => {\n previewUrl.value = url;\n });\n },\n { immediate: true },\n );\n\n return { previewUrl };\n}\n","import { useConfig } from '../useConfig';\n// TODO need refactor\nimport { EAnimationType } from '../../components/config-provider/utils/context';\n\nconst { expand, ripple, fade } = EAnimationType;\n\nexport function useKeepAnimation() {\n const { globalConfig } = useConfig('animation');\n\n const keepAnimation = (type: EAnimationType) => {\n const animationConfig = globalConfig.value;\n return animationConfig && !animationConfig.exclude?.includes(type) && animationConfig.include?.includes(type);\n };\n return {\n keepExpand: keepAnimation(expand),\n keepRipple: keepAnimation(ripple),\n keepFade: keepAnimation(fade),\n };\n}\n","// 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 { isArray, isString, isFunction } from 'lodash-es';\n\nimport { easeInOutCubic, EasingFunction } from '@tdesign/common-js/utils/easing';\nimport { ScrollContainer, ScrollContainerElement } from '../common';\n\nexport const isServer = typeof window === 'undefined';\nconst trim = (str: string): string => (str || '').replace(/^[\\s\\uFEFF]+|[\\s\\uFEFF]+$/g, '');\n\nexport const on = ((): any => {\n if (!isServer && document.addEventListener) {\n return (\n element: Node,\n event: string,\n handler: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ): any => {\n if (element && event && handler) {\n element.addEventListener(event, handler, options);\n }\n };\n }\n return (element: Node, event: string, handler: EventListenerOrEventListenerObject): any => {\n if (element && event && handler) {\n (element as any).attachEvent(`on${event}`, handler);\n }\n };\n})();\n\nexport const off = ((): any => {\n if (!isServer && document.removeEventListener) {\n return (\n element: Node,\n event: string,\n handler: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ): any => {\n if (element && event) {\n element.removeEventListener(event, handler, options);\n }\n };\n }\n return (element: Node, event: string, handler: EventListenerOrEventListenerObject): any => {\n if (element && event) {\n (element as any).detachEvent(`on${event}`, handler);\n }\n };\n})();\n\nexport function once(\n element: Node,\n event: string,\n handler: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n) {\n const handlerFn = isFunction(handler) ? handler : handler.handleEvent;\n const callback = (evt: any) => {\n handlerFn(evt);\n off(element, event, callback, options);\n };\n\n on(element, event, callback, options);\n}\n\nexport function hasClass(el: Element, cls: string): any {\n if (!el || !cls) return false;\n if (cls.indexOf(' ') !== -1) throw new Error('className should not contain space.');\n if (el.classList) {\n return el.classList.contains(cls);\n }\n return ` ${el.className} `.indexOf(` ${cls} `) > -1;\n}\n\nexport function addClass(el: Element, cls: string): any {\n if (!el) return;\n let curClass = el.className;\n const classes = (cls || '').split(' ');\n\n for (let i = 0, j = classes.length; i < j; i++) {\n const clsName = classes[i];\n if (!clsName) continue;\n\n if (el.classList) {\n el.classList.add(clsName);\n } else if (!hasClass(el, clsName)) {\n curClass += ` ${clsName}`;\n }\n }\n if (!el.classList) {\n el.className = curClass;\n }\n}\n\nexport function removeClass(el: Element, cls: string): any {\n if (!el || !cls) return;\n const classes = cls.split(' ');\n let curClass = ` ${el.className} `;\n\n for (let i = 0, j = classes.length; i < j; i++) {\n const clsName = classes[i];\n if (!clsName) continue;\n\n if (el.classList) {\n el.classList.remove(clsName);\n } else if (hasClass(el, clsName)) {\n curClass = curClass.replace(` ${clsName} `, ' ');\n }\n }\n if (!el.classList) {\n el.className = trim(curClass);\n }\n}\n\nexport const getAttach = (node: any, triggerNode?: any): HTMLElement | Element => {\n const attachNode = isFunction(node) ? node(triggerNode) : node;\n if (!attachNode) {\n return document.body;\n }\n if (isString(attachNode)) {\n return document.querySelector(attachNode);\n }\n if (attachNode instanceof HTMLElement) {\n return attachNode;\n }\n return document.body;\n};\n\n/**\n * 获取滚动容器\n * 因为document不存在scroll等属性, 因此排除document\n * window | HTMLElement\n * @param {ScrollContainerElement} [container='body']\n * @returns {ScrollContainer}\n */\nexport const getScrollContainer = (container: ScrollContainer = 'body'): ScrollContainerElement => {\n if (isString(container)) {\n return document.querySelector(container) as HTMLElement;\n }\n if (isFunction(container)) {\n return container();\n }\n return container;\n};\n\n/**\n * 返回是否window对象\n *\n * @export\n * @param {any} obj\n * @returns\n */\nfunction isWindow(obj: any) {\n return obj && obj === obj.window;\n}\n\ntype ScrollTarget = HTMLElement | Window | Document;\n\n/**\n * 获取滚动距离\n *\n * @export\n * @param {ScrollTarget} target\n * @param {boolean} isLeft true为获取scrollLeft, false为获取scrollTop\n * @returns {number}\n */\nexport function getScroll(target: ScrollTarget, isLeft?: boolean): number {\n // node环境或者target为空\n if (isServer || !target) {\n return 0;\n }\n const method = isLeft ? 'scrollLeft' : 'scrollTop';\n let result = 0;\n if (isWindow(target)) {\n result = (target as Window)[isLeft ? 'pageXOffset' : 'pageYOffset'];\n } else if (target instanceof Document) {\n result = target.documentElement[method];\n } else if (target) {\n result = (target as HTMLElement)[method];\n }\n return result;\n}\ninterface ScrollTopOptions {\n container?: ScrollTarget;\n duration?: number;\n easing?: EasingFunction;\n}\n\ndeclare type ScrollToResult = T | { default: T };\n\nexport function scrollTo(target: number, opt: ScrollTopOptions): Promise {\n const { container = window, duration = 450, easing = easeInOutCubic } = opt;\n const scrollTop = getScroll(container);\n const startTime = Date.now();\n return new Promise((res) => {\n const fnc = () => {\n const timestamp = Date.now();\n const time = timestamp - startTime;\n const nextScrollTop = easing(Math.min(time, duration), scrollTop, target, duration);\n if (isWindow(container)) {\n (container as Window).scrollTo(window.pageXOffset, nextScrollTop);\n } else if (container instanceof Document || container.constructor.name === 'HTMLDocument') {\n (container as Document).documentElement.scrollTop = nextScrollTop;\n } else {\n (container as HTMLElement).scrollTop = nextScrollTop;\n }\n if (time < duration) {\n raf(fnc);\n } else {\n // 由于上面步骤设置了scrollTop, 滚动事件可能未触发完毕\n // 此时应该在下一帧再执行res\n raf(res);\n }\n };\n raf(fnc);\n });\n}\n\nfunction containerDom(parent: VNode | Element | Iterable | ArrayLike, child: any): boolean {\n if (parent && child) {\n let pNode = child;\n while (pNode) {\n if (parent === pNode) {\n return true;\n }\n const { parentNode } = pNode;\n pNode = parentNode;\n }\n }\n return false;\n}\nexport const clickOut = (els: VNode | Element | Iterable | ArrayLike, cb: () => void): void => {\n on(document, 'click', (event: { target: Element }) => {\n if (isArray(els)) {\n const isFlag = Array.from(els).every((item) => containerDom(item, event.target) === false);\n return isFlag && cb && cb();\n }\n if (containerDom(els, event.target)) {\n return false;\n }\n return cb && cb();\n });\n};\n\n// 用于判断节点内容是否溢出\nexport const isTextEllipsis = (\n ele: ComponentPublicInstance | Element | ComponentPublicInstance[] | Element[],\n): boolean => {\n const { clientWidth = 0, scrollWidth = 0 } = ele as Element & { clientWidth: number; scrollWidth: number };\n return scrollWidth > clientWidth;\n};\n\n// 将子元素selected滚动到父元素parentEle的可视范围内\nexport const scrollSelectedIntoView = (parentEle: HTMLElement, selected: HTMLElement) => {\n // 服务端不处理\n if (isServer) return;\n // selected不存在或selected父元素不为parentEle则不处理\n if (!selected || selected.offsetParent !== parentEle) {\n parentEle.scrollTop = 0;\n return;\n }\n const selectedTop = selected.offsetTop;\n const selectedBottom = selectedTop + selected.offsetHeight;\n const parentScrollTop = parentEle.scrollTop;\n const parentViewBottom = parentScrollTop + parentEle.clientHeight;\n if (selectedTop < parentScrollTop) {\n // selected元素滚动过了,则将其向下滚动到可视范围顶部\n parentEle.scrollTop = selectedTop;\n } else if (selectedBottom > parentViewBottom) {\n // selected元素未滚动到,则将其向上滚动到可视范围底部\n parentEle.scrollTop = selectedBottom - parentEle.clientHeight;\n }\n};\n\nexport const requestSubmit = (target: HTMLFormElement) => {\n if (!(target instanceof HTMLFormElement)) {\n throw new Error('target must be HTMLFormElement');\n }\n const submitter = document.createElement('input');\n submitter.type = 'submit';\n submitter.hidden = true;\n target.appendChild(submitter);\n submitter.click();\n target.removeChild(submitter);\n};\n\n/**\n * 检查元素是否在父元素视图\n * http://stackoverflow.com/questions/123999/how-to-tell-if-a-dom-element-is-visible-in-the-current-viewport\n * @param elm 元素\n * @param parent\n * @returns boolean\n */\nexport function elementInViewport(elm: HTMLElement, parent?: HTMLElement): boolean {\n const rect = elm.getBoundingClientRect();\n if (parent) {\n const parentRect = parent.getBoundingClientRect();\n return (\n rect.top >= parentRect.top &&\n rect.left >= parentRect.left &&\n rect.bottom <= parentRect.bottom &&\n rect.right <= parentRect.right\n );\n }\n return rect.top >= 0 && rect.left >= 0 && rect.bottom + 80 <= window.innerHeight && rect.right <= window.innerWidth;\n}\n\n/**\n * 获取元素某个 css 对应的值\n * @param element 元素\n * @param propName css 名\n * @returns string\n */\nexport function getElmCssPropValue(element: HTMLElement, propName: string): string {\n let propValue = '';\n\n if (document.defaultView && document.defaultView.getComputedStyle) {\n propValue = document.defaultView.getComputedStyle(element, null).getPropertyValue(propName);\n }\n\n if (propValue && propValue.toLowerCase) {\n return propValue.toLowerCase();\n }\n\n return propValue;\n}\n\n/**\n * 判断元素是否处在 position fixed 中\n * @param element 元素\n * @returns boolean\n */\nexport function isFixed(element: HTMLElement): boolean {\n const p = element.parentNode as HTMLElement;\n\n if (!p || p.nodeName === 'HTML') {\n return false;\n }\n\n if (getElmCssPropValue(element, 'position') === 'fixed') {\n return true;\n }\n\n return isFixed(p);\n}\n\n/**\n * 获取当前视图滑动的距离\n * @returns { scrollTop: number, scrollLeft: number }\n */\nexport function getWindowScroll(): { scrollTop: number; scrollLeft: number } {\n const { body } = document;\n const docElm = document.documentElement;\n const scrollTop = window.pageYOffset || docElm.scrollTop || body.scrollTop;\n const scrollLeft = window.pageXOffset || docElm.scrollLeft || body.scrollLeft;\n\n return { scrollTop, scrollLeft };\n}\n\n/**\n * 获取当前视图的大小\n * @returns { width: number, height: number }\n */\nexport function getWindowSize(): { width: number; height: number } {\n if (window.innerWidth !== undefined) {\n return { width: window.innerWidth, height: window.innerHeight };\n }\n const doc = document.documentElement;\n return { width: doc.clientWidth, height: doc.clientHeight };\n}\n","import { onBeforeUnmount, onMounted } from 'vue';\n\n/**\n * 用于订阅Listener事件\n * @param updateSize\n */\nexport function useListener(type: string, listener: () => void): void {\n onMounted(() => {\n window.addEventListener(type, listener);\n });\n\n onBeforeUnmount(() => {\n window.removeEventListener(type, listener);\n });\n}\n\nexport function useResize(listener: () => void, observer?: HTMLElement) {\n useListener('resize', listener);\n\n let resizeObserver: ResizeObserver = null;\n\n onMounted(() => {\n if (!window.ResizeObserver || !observer) return;\n resizeObserver = new window.ResizeObserver(listener);\n resizeObserver.observe(observer);\n });\n\n onBeforeUnmount(() => {\n resizeObserver?.disconnect();\n });\n}\n","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","// https://github.dev/arco-design/arco-design-vue\nimport { onMounted, onBeforeUnmount, readonly, Ref, ref, watch } from 'vue';\nexport type PopupType = 'popup' | 'dialog' | 'message' | 'drawer';\n\nconst popupStackType = ['dialog', 'drawer'];\nconst POPUP_BASE_Z_INDEX = 1000;\nconst MESSAGE_BASE_Z_INDEX = 5000;\nconst Z_INDEX_STEP = 1;\n\nclass PopupManager {\n private popupStack = {\n popup: new Set(),\n dialog: new Set(),\n message: new Set(),\n drawer: new Set(),\n };\n\n private zIndexStack: number[] = [];\n\n private getNextZIndex = (type: PopupType) => {\n const current =\n type === 'message'\n ? Array.from(this.popupStack.message).pop() || MESSAGE_BASE_Z_INDEX\n : Array.from(this.popupStack.popup).pop() || POPUP_BASE_Z_INDEX;\n return current + Z_INDEX_STEP;\n };\n\n public add = (type: PopupType) => {\n const zIndex = this.getNextZIndex(type);\n this.popupStack[type].add(zIndex);\n if (popupStackType.includes(type)) {\n this.popupStack.popup.add(zIndex);\n }\n this.zIndexStack.push(zIndex);\n return zIndex;\n };\n\n public delete = (zIndex: number, type: PopupType) => {\n this.popupStack[type].delete(zIndex);\n if (popupStackType.includes(type)) {\n this.popupStack.popup.delete(zIndex);\n }\n const index = this.zIndexStack.indexOf(zIndex);\n if (index !== -1) {\n this.zIndexStack.splice(index, 1);\n }\n };\n\n // 最顶层的交互式弹窗(指Dialog和Drawer)\n public isTopInteractivePopup = (popupType: PopupType, zIndex: number) => {\n if (popupStackType.includes(popupType)) {\n const lastZIndex = this.zIndexStack[this.zIndexStack.length - 1];\n return zIndex === lastZIndex;\n }\n\n if (this.popupStack[popupType]?.size > 1) {\n return zIndex === Array.from(this.popupStack[popupType]).pop();\n }\n\n return true;\n };\n\n public getLastZIndex = () => {\n return this.zIndexStack[this.zIndexStack.length - 1];\n };\n}\n\nconst popupManager = new PopupManager();\n\nexport function usePopupManager(\n type: PopupType,\n {\n visible,\n runOnMounted,\n }: {\n visible?: Ref;\n runOnMounted?: boolean;\n } = {},\n) {\n const zIndex = ref(0);\n\n const open = () => {\n zIndex.value = popupManager.add(type);\n };\n\n const close = () => {\n popupManager.delete(zIndex.value, type);\n };\n\n const isTopInteractivePopup = () => {\n if (popupStackType.includes(type)) {\n return popupManager.isTopInteractivePopup(type, zIndex.value);\n }\n return false;\n };\n\n watch(\n () => visible?.value,\n (visible) => {\n if (visible) {\n open();\n } else {\n close();\n }\n },\n {\n immediate: true,\n },\n );\n\n if (runOnMounted) {\n onMounted(() => {\n open();\n });\n\n onBeforeUnmount(() => {\n close();\n });\n }\n\n return {\n zIndex: readonly(zIndex),\n open,\n close,\n isTopInteractivePopup,\n };\n}\n","import { Ref, inject, computed, getCurrentInstance } from 'vue';\nimport { isBoolean } from 'lodash-es';\n// TODO need refactor\nimport { TdFormProps } from '../../components/form/type';\n\nexport interface FormReadonlyProvider {\n readonly: Ref;\n}\n\nexport interface ReadonlyContext {\n beforeReadonly?: Ref;\n afterReadonly?: Ref;\n}\n\n/**\n * 用于实现组件全局只读状态的hook\n * 优先级:(beforeReadonly) > Component.readonly > ComponentGroup.readonly(afterReadonly) > Form.readonly\n * @returns\n */\nexport function useReadonly(context?: ReadonlyContext) {\n const currentInstance = getCurrentInstance();\n const componentReadonly = computed(() => currentInstance.props.readonly as boolean);\n\n const formReadonly = inject('formReadonly', Object.create(null));\n\n return computed(() => {\n if (isBoolean(context?.beforeReadonly?.value)) return context.beforeReadonly.value;\n // Component\n if (isBoolean(componentReadonly?.value)) return componentReadonly.value;\n // ComponentGroup\n if (isBoolean(context?.afterReadonly?.value)) return context.afterReadonly.value;\n // Form\n if (isBoolean(formReadonly.readonly?.value)) return formReadonly.readonly.value;\n\n return false;\n });\n}\n","import { Ref, watch, onBeforeUnmount } from 'vue';\n\nexport function useResizeObserver(container: Ref, callback: (data: ResizeObserverEntry[]) => void) {\n if (typeof window === 'undefined') return;\n\n const isSupport = window && (window as Window & typeof globalThis).ResizeObserver;\n // unit tests do not need any warn console; too many warns influence focusing on more important log info\n if (!isSupport) return;\n\n let containerObserver: ResizeObserver = null;\n\n const cleanupObserver = () => {\n if (!containerObserver || !container.value) return;\n containerObserver.unobserve(container.value);\n containerObserver.disconnect();\n containerObserver = null;\n };\n\n const addObserver = (el: HTMLElement) => {\n containerObserver = new ResizeObserver(callback);\n containerObserver.observe(el);\n };\n\n // can not use container.value to judge\n container &&\n watch(\n container,\n (el) => {\n cleanupObserver();\n el && addObserver(el);\n },\n { immediate: true, flush: 'post' },\n );\n\n onBeforeUnmount(() => {\n cleanupObserver();\n });\n}\n","import { Styles } from '../common';\n\n/**\n * 用于为节点增加styles\n * @param el HTMLElement\n * @param style Styles\n */\nfunction setStyle(el: HTMLElement, styles: Styles): void {\n const keys = Object.keys(styles);\n keys.forEach((key) => {\n // @ts-ignore\n // eslint-disable-next-line no-param-reassign\n el.style[key] = styles[key];\n });\n // TODO: 这个怎么样\n // Object.assign(el.style, styles);\n}\n\nexport default setStyle;\n","import { ref, onMounted, onUnmounted, Ref } from 'vue';\nimport { useKeepAnimation } from '../useKeepAnimation';\nimport { usePrefixClass } from '../useConfig';\nimport setStyle from '@tdesign/common-js/utils/setStyle';\n\nconst period = 200;\nconst noneRippleBg = 'rgba(0, 0, 0, 0)';\nconst defaultRippleColor = 'rgba(0, 0, 0, 0.35)';\n\n// 设置动画颜色 get the ripple animation color\nconst getRippleColor = (el: HTMLElement, fixedRippleColor?: string) => {\n // get fixed color from params\n if (fixedRippleColor) {\n return fixedRippleColor;\n }\n // get dynamic color from the dataset\n if (el?.dataset?.ripple) {\n const rippleColor = el.dataset.ripple;\n return rippleColor;\n }\n // use css variable\n const cssVariable = getComputedStyle(el).getPropertyValue('--ripple-color');\n if (cssVariable) {\n return cssVariable;\n }\n return defaultRippleColor;\n};\n\n/**\n * 斜八角动画hooks 支持三种方式使用\n * 1. fixedRippleColor 固定色值 useRipple(ref,fixedRippleColor);\n * 2. dynamicColor 动态色值 data.ripple=\"rippleColor\" useRipple(ref)\n * 3. CSS variables(recommended) 配合节点对应CSS设置 --ripple-color useRipple(ref)\n * @param ref 需要使用斜八角动画的DOM\n * @param fixedRippleColor 斜八角的动画颜色\n */\nexport function useRipple(el: Ref, fixedRippleColor?: Ref) {\n const rippleContainer = ref(null);\n const classPrefix = usePrefixClass();\n\n // 全局配置ripple\n const { keepRipple } = useKeepAnimation();\n\n // 为节点添加斜八角动画 add ripple to the DOM and set up the animation\n const handleAddRipple = (e: MouseEvent) => {\n const dom = el.value;\n const rippleColor = getRippleColor(dom, fixedRippleColor?.value);\n if (e.button !== 0 || !el || !keepRipple) return;\n\n if (\n dom.classList.contains(`${classPrefix.value}-is-active`) ||\n dom.classList.contains(`${classPrefix.value}-is-disabled`) ||\n dom.classList.contains(`${classPrefix.value}-is-checked`) ||\n dom.classList.contains(`${classPrefix.value}-is-loading`)\n )\n return;\n\n const elStyle = getComputedStyle(dom);\n\n const elBorder = parseInt(elStyle.borderWidth, 10);\n const border = elBorder > 0 ? elBorder : 0;\n const width = dom.offsetWidth;\n const height = dom.offsetHeight;\n\n if (rippleContainer.value.parentNode === null) {\n setStyle(rippleContainer.value, {\n position: 'absolute',\n left: `${0 - border}px`,\n top: `${0 - border}px`,\n width: `${width}px`,\n height: `${height}px`,\n borderRadius: elStyle.borderRadius,\n pointerEvents: 'none',\n overflow: 'hidden',\n });\n dom.appendChild(rippleContainer.value);\n }\n // 新增一个ripple\n const ripple = document.createElement('div');\n\n setStyle(ripple, {\n marginTop: '0',\n marginLeft: '0',\n right: `${width}px`,\n width: `${width + 20}px`,\n height: '100%',\n transition: `transform ${period}ms cubic-bezier(.38, 0, .24, 1), background ${period * 2}ms linear`,\n transform: 'skewX(-8deg)',\n pointerEvents: 'none',\n position: 'absolute',\n zIndex: 0,\n backgroundColor: rippleColor,\n opacity: '0.9',\n });\n\n // fix zIndex:避免遮盖内部元素\n const elMap = new WeakMap();\n for (let n = dom.children.length, i = 0; i < n; ++i) {\n const child = dom.children[i];\n if ((child as HTMLElement).style.zIndex === '' && child !== rippleContainer.value) {\n (child as HTMLElement).style.zIndex = '1';\n elMap.set(child, true);\n }\n }\n\n // fix position\n const initPosition = dom.style.position ? dom.style.position : getComputedStyle(dom).position;\n if (initPosition === '' || initPosition === 'static') {\n // eslint-disable-next-line no-param-reassign\n dom.style.position = 'relative';\n }\n rippleContainer.value.insertBefore(ripple, rippleContainer.value.firstChild);\n\n setTimeout(() => {\n ripple.style.transform = `translateX(${width}px)`;\n }, 0);\n // 清除动画节点 clear ripple container\n const handleClearRipple = () => {\n ripple.style.backgroundColor = noneRippleBg;\n\n if (!el.value) return;\n\n el.value.removeEventListener('pointerup', handleClearRipple, false);\n el.value.removeEventListener('pointerleave', handleClearRipple, false);\n\n setTimeout(() => {\n ripple.remove();\n if (rippleContainer.value.children.length === 0) rippleContainer.value.remove();\n }, period * 2 + 100);\n };\n el.value.addEventListener('pointerup', handleClearRipple, false);\n el.value.addEventListener('pointerleave', handleClearRipple, false);\n };\n\n onMounted(() => {\n const dom = el?.value;\n if (!dom) return;\n\n rippleContainer.value = document.createElement('div');\n\n dom.addEventListener('pointerdown', handleAddRipple, false);\n });\n\n onUnmounted(() => {\n el?.value?.removeEventListener('pointerdown', handleAddRipple, false);\n });\n}\n","// TODO need refactor\nimport { getAttach } from '../../components/utils/dom';\nimport { computed, Ref, onMounted, ref, watch } from 'vue';\n// TODO need refactor\nimport { AttachNode } from '../../components/common';\nimport { isFunction } from 'lodash-es';\n\n/**\n * @description 返回挂载的节点, 用于teleport\n * @param attach 既可以是一个函数, 也可以是一个ref\n * @param triggerNode 既可以是一个函数, 也可以是一个ref\n */\nexport function useTeleport(\n attach: (() => AttachNode) | Ref,\n triggerNode?: (() => any) | Ref,\n): Ref {\n // 如果是函数, 则使用computed包裹 否则直接使用ref\n const to = isFunction(attach) ? computed(attach) : ref(attach);\n const innerTriggerNode = isFunction(triggerNode) ? computed(triggerNode) : ref(triggerNode);\n\n const element = ref();\n\n const getElement = () => {\n element.value = getAttach(to.value, innerTriggerNode.value);\n };\n\n onMounted(() => getElement());\n\n watch([to, innerTriggerNode], () => getElement());\n\n return element;\n}\n","import { ref, Ref, getCurrentInstance } from 'vue';\nimport { kebabCase } from 'lodash-es';\n\nexport type ChangeHandler = (value: T, ...args: P) => void;\n\nexport function useVModel(\n value: Ref,\n modelValue: Ref,\n defaultValue: T,\n onChange: ChangeHandler,\n propName = 'value',\n): [Ref, ChangeHandler] {\n const { emit, vnode } = getCurrentInstance();\n const internalValue: Ref = ref();\n\n const vProps = vnode.props || {};\n const isVM =\n Object.prototype.hasOwnProperty.call(vProps, 'modelValue') ||\n Object.prototype.hasOwnProperty.call(vProps, 'model-value');\n const isVMP =\n Object.prototype.hasOwnProperty.call(vProps, propName) ||\n Object.prototype.hasOwnProperty.call(vProps, kebabCase(propName));\n\n if (isVM) {\n return [\n modelValue,\n (newValue, ...args) => {\n emit('update:modelValue', newValue);\n onChange?.(newValue, ...args);\n },\n ];\n }\n\n if (isVMP) {\n return [\n value,\n (newValue, ...args) => {\n emit(`update:${propName}`, newValue);\n onChange?.(newValue, ...args);\n },\n ];\n }\n\n internalValue.value = defaultValue;\n return [\n internalValue,\n (newValue, ...args) => {\n internalValue.value = newValue;\n onChange?.(newValue, ...args);\n },\n ];\n}\n","/**\n * 基于原作者(@louiszhai)的思路二次开发,为保证其他组件暂不受影响,单独开一个文件\n * 新增支持以下 3 个特性\n * 1. 支持不同表格高度\n * 2. 支持滚动到特定元素,方便 Select 等组件展开时直接定位到选中元素\n * 3. 支持数据变化不重置,方便支持树形结构虚拟滚动\n */\nimport { ref, computed, watch, Ref } from 'vue';\n// TODO need refactor\nimport { TScroll } from '../../components/common';\nimport { useResizeObserver } from '../useResizeObserver';\nimport { max, min, sum, throttle } from 'lodash-es';\n\nexport type UseVirtualScrollParams = Ref<{\n /** 列数据 */\n data: { [key: string]: any }[];\n scroll: TScroll & {\n /** 固定行(冻结行),示例:[M, N],表示冻结头 M 行和尾 N 行。M 和 N 值为 0 时,表示不冻结行 */\n fixedRows?: Array;\n };\n preventResizeRefresh?: boolean;\n}>;\n\nexport interface ScrollToElementParams {\n /** 跳转元素下标 */\n index: number;\n /** 跳转元素距离顶部的距离 */\n top?: number;\n /** 单个元素高度非固定场景下,即 isFixedRowHeight = false。延迟设置元素位置,一般用于依赖不同高度异步渲染等场景,单位:毫秒 */\n time?: number;\n behavior?: 'auto' | 'smooth';\n}\n\nexport function useVirtualScrollNew(container: Ref, params: UseVirtualScrollParams) {\n /** 注意测试:数据长度为空;数据长度小于表格高度等情况。即期望只有数据量达到一定程度才允许开启虚拟滚动 */\n const visibleData = ref([]);\n // 用于显示表格列\n const translateY = ref((params.value.data?.length || 0) * (params.value.scroll?.rowHeight || 50));\n // 滚动高度,用于显示滚动条\n const scrollHeight = ref(0);\n // 已经通过节点渲染计算出来的各自行高\n // 不要使用响应式,数据量大时会产生卡顿\n let trHeightList: number[] = [];\n const containerHeight = ref(0);\n const containerWidth = ref(0);\n const startAndEndIndex = ref<[number, number]>([0, 15]);\n\n // 设置初始值\n const tScroll = computed(() => {\n const { scroll } = params.value;\n if (!scroll) return {};\n return {\n bufferSize: scroll.bufferSize || 10,\n isFixedRowHeight: scroll.isFixedRowHeight ?? false,\n rowHeight: scroll.rowHeight || 47,\n threshold: scroll.threshold || 100,\n type: scroll.type,\n fixedRows: scroll.fixedRows ?? [0, 0],\n };\n });\n\n // 当前场景是否满足开启虚拟滚动的条件\n const isVirtualScroll = computed(() => {\n const { data } = params.value;\n return tScroll.value.type === 'virtual' && tScroll.value.threshold < data.length;\n });\n\n // 一次循环遍历中计算可视范围的相关信息,减少大数据量时的遍历开销\n function getVisibleRangeConfig() {\n const scrollTop = container.value?.scrollTop ?? 0;\n const fixedStart = tScroll.value.fixedRows[0];\n\n // 记录前置 buffer 的高度\n const prevBufferHeightList: number[] = [];\n // 没有被渲染的行的高度,用于设定容器的 translateY\n let hiddenHeight = 0;\n\n let visibleStart = -1;\n let visibleEnd = -1;\n\n let totalHeight = 0;\n\n for (let i = 0, len = params.value.data.length; i < len; i++) {\n const rowHeight = trHeightList[i] ?? tScroll.value.rowHeight;\n totalHeight = totalHeight + rowHeight;\n // 获取第一个可视范围内的元素\n if (totalHeight > scrollTop && visibleStart === -1) {\n visibleStart = i;\n if (visibleStart - tScroll.value.bufferSize > 0) {\n hiddenHeight = totalHeight - rowHeight - sum(prevBufferHeightList);\n }\n }\n if (visibleStart === -1) {\n prevBufferHeightList.push(rowHeight);\n if (prevBufferHeightList.length > tScroll.value.bufferSize) {\n prevBufferHeightList.shift();\n }\n }\n // 获取最后一个可视范围内的元素\n if (\n visibleEnd === -1 &&\n (totalHeight > containerHeight.value + scrollTop || i === params.value.data.length - 1)\n ) {\n visibleEnd = i;\n }\n\n if (visibleStart !== -1 && visibleEnd !== -1) {\n // 不再统计高度\n break;\n }\n }\n\n // 前后偏移 buffer\n const startIndex = max([visibleStart - tScroll.value.bufferSize, 0]);\n const endIndex = min([visibleEnd + tScroll.value.bufferSize, params.value.data.length]);\n\n // 以 sticky 定位渲染的固定行,会占据高度,影响整体高度\n const stickyHeight = sum(trHeightList.slice(0, Math.min(startIndex, fixedStart)));\n\n return {\n startIndex,\n endIndex,\n translateY: hiddenHeight - stickyHeight,\n };\n }\n\n const updateVisibleData = throttle(() => {\n // 计算前后的buffer偏移后的渲染数据\n const { startIndex, endIndex, translateY: translateYValue } = getVisibleRangeConfig();\n\n // 需要考虑固定行的情况\n const fixedRows = tScroll.value.fixedRows;\n const [fixedStart, fixedEnd] = fixedRows;\n let fixedStartData = fixedStart ? params.value.data.slice(0, fixedStart) : [];\n if (fixedStart && startIndex < fixedStart) {\n fixedStartData = fixedStartData.slice(0, startIndex);\n }\n let fixedEndData = fixedEnd ? params.value.data.slice(params.value.data.length - fixedEnd) : [];\n const bottomStartIndex = endIndex - params.value.data.length + 1 + (fixedEnd ?? 0);\n if (fixedEnd && bottomStartIndex > 0) {\n fixedEndData = fixedEndData.slice(bottomStartIndex);\n }\n\n if (startAndEndIndex.value.join() !== [startIndex, endIndex].join() && startIndex >= 0) {\n translateY.value = translateYValue;\n visibleData.value = fixedStartData.concat(params.value.data.slice(startIndex, endIndex), fixedEndData);\n startAndEndIndex.value = [startIndex, endIndex];\n }\n }, 100);\n\n // 固定高度场景,不需要通过行渲染获取高度(仅非固定高度场景需要)\n const handleRowMounted = (rowData: any) => {\n if (!isVirtualScroll.value || !rowData || tScroll.value.isFixedRowHeight || !container.value) return;\n const trHeight = rowData.ref.value?.getBoundingClientRect().height || tScroll.value.rowHeight;\n const rowIndex = rowData.data.VIRTUAL_SCROLL_INDEX;\n\n if (trHeightList[rowIndex] !== trHeight) {\n const diff = trHeight - trHeightList[rowIndex];\n trHeightList[rowIndex] = trHeight;\n // 采用 diff 的方式更新,不再遍历数组\n scrollHeight.value = scrollHeight.value + diff;\n }\n };\n\n const handleScroll = () => {\n if (!isVirtualScroll.value) return;\n updateVisibleData();\n };\n\n const refreshVirtualScroll = ([{ contentRect }]: [ResizeObserverEntry]) => {\n // 如果宽度发生变化,重置滚动位置\n if (params.value.preventResizeRefresh) return;\n const maxScrollbarWidth = 16;\n if (Math.abs(contentRect.width - containerWidth.value) > maxScrollbarWidth && !!container.value) {\n container.value.scrollTop = 0;\n translateY.value = 0;\n }\n containerWidth.value = contentRect.width;\n // 高度更新后,由 height 独立的 watch 触发可视区域的更新\n containerHeight.value = contentRect.height;\n };\n\n const addIndexToData = (data: any[]) => {\n data.forEach((item, index) => {\n // eslint-disable-next-line\n item['VIRTUAL_SCROLL_INDEX'] = index;\n });\n };\n\n const updateScrollTop = ({ index, top = 0, behavior }: ScrollToElementParams) => {\n const scrollTop = sum(trHeightList.slice(0, index + 1)) - top;\n\n container.value.scrollTo({\n top: scrollTop,\n behavior: behavior || 'auto',\n });\n };\n\n /**\n * 滚动到指定元素(对外暴露的方法,谨慎修改)\n */\n const scrollToElement = (p: ScrollToElementParams) => {\n updateScrollTop(p);\n // 不同行高的表格需要异步计算\n if (!tScroll.value.isFixedRowHeight) {\n const duration = p.time ?? 60;\n const timer = setTimeout(() => {\n updateScrollTop(p);\n clearTimeout(timer);\n }, duration);\n }\n };\n\n // 如果初始化时 isVirtualScroll 为 false,undefined 的 ref 会导致无法监听元素高度变化\n useResizeObserver(\n computed(() => (isVirtualScroll.value ? container.value : undefined)),\n refreshVirtualScroll,\n );\n\n // 固定高度场景,可直接通过数据长度计算出最大滚动高度\n watch(\n () => [[...params.value.data], tScroll.value, isVirtualScroll.value, container.value],\n () => {\n if (!isVirtualScroll.value || !container.value) return;\n const { data } = params.value;\n addIndexToData(data);\n\n // 有可能初始化时,resize 监听没触发,尝试设置初始化容器高度\n containerHeight.value = container.value.getBoundingClientRect().height;\n\n if (trHeightList.length !== params.value.data.length) {\n // 暂时对于 table 和 tree 场景,信任之前缓存的行高\n // 后续优化可能提供一个参数,进行监听从而清除记录的行高会更好\n const initHeightList: number[] = Array.from(trHeightList);\n // 数据长度如果发生变化,裁剪高度记录的数组,避免算出异常的总高度\n initHeightList.length = params.value.data.length;\n initHeightList.fill(tScroll.value.rowHeight || 47);\n trHeightList = initHeightList;\n }\n\n scrollHeight.value = sum(trHeightList);\n\n // 清除记录的滚动顺序\n startAndEndIndex.value = [0, 0];\n updateVisibleData();\n },\n { immediate: true },\n );\n\n // 当容器高度变化后,重新计算可视区域数据\n watch(\n () => containerHeight.value,\n () => {\n updateVisibleData();\n },\n );\n\n return {\n visibleData,\n translateY,\n scrollHeight,\n isVirtualScroll,\n handleScroll,\n handleRowMounted,\n scrollToElement,\n };\n}\n\nexport type VirtualScrollConfig = ReturnType;\n","import 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","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","import { isString, isNull, isUndefined, isNumber, isArray } from 'lodash-es';\n\nexport function omit(obj: Record, fields: string[]) {\n const shallowCopy = {\n ...obj,\n };\n for (let i = 0; i < fields.length; i++) {\n const key = fields[i];\n delete shallowCopy[key];\n }\n return shallowCopy;\n}\n\nexport function getValidAttrs>(obj: T): Partial {\n const newObj: Partial = {};\n\n Object.keys(obj).forEach((key) => {\n if (!isUndefined(obj[key]) || isNull(obj[key])) {\n newObj[key as keyof T] = obj[key];\n }\n });\n\n return newObj;\n}\n\nexport function removeEmptyAttrs>(obj: T): Partial {\n const newObj: Partial = {};\n\n Object.keys(obj).forEach((key) => {\n if (!isUndefined(obj[key]) || isNull(obj[key])) {\n newObj[key as keyof T] = obj[key];\n }\n });\n\n return newObj;\n}\n\nexport function getTabElementByValue(tabs: [] = [], value: string): object {\n const [result] = tabs.filter((item) => {\n const { id } = item as any;\n return id === value;\n });\n return result || null;\n}\n\nexport function firstUpperCase(str: string): string {\n return str.toLowerCase().replace(/( |^)[a-z]/g, (char: string) => char.toUpperCase());\n}\n\nexport type Gradients = { [percent: string]: string };\nexport type FromTo = { from: string; to: string };\nexport type LinearGradient = { direction?: string } & (Gradients | FromTo);\nexport function getBackgroundColor(color: string | string[] | LinearGradient): string {\n if (isString(color)) {\n return color;\n }\n if (isArray(color)) {\n if (color[0] && color[0][0] === '#') {\n color.unshift('90deg');\n }\n return `linear-gradient( ${color.join(',')} )`;\n }\n const {\n from, to, direction = 'to right', ...rest\n } = color;\n let keys = Object.keys(rest);\n if (keys.length) {\n keys = keys.sort((a, b) => {\n const c = parseFloat(a.substr(0, a.length - 1)) - parseFloat(b.substr(0, b.length - 1));\n return c;\n });\n const tempArr = keys.map((key: any) => `${rest[key as keyof typeof rest]} ${key}`);\n return `linear-gradient(${direction}, ${tempArr.join(',')})`;\n }\n return `linear-gradient(${direction}, ${from}, ${to})`;\n}\n\n/**\n *\n * @returns 获取 ie 浏览器版本\n */\nexport function getIEVersion() {\n if (typeof navigator === 'undefined' || !navigator) return Number.MAX_SAFE_INTEGER;\n\n const { userAgent } = navigator;\n // 判断是否IE<11浏览器\n const isIE = userAgent.indexOf('compatible') > -1 && userAgent.indexOf('MSIE') > -1;\n // 判断是否IE11浏览器\n const isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf('rv:11.0') > -1;\n if (isIE) {\n const reIE = new RegExp('MSIE (\\\\d+\\\\.\\\\d+);');\n const match = userAgent.match(reIE);\n if (!match) return -1;\n const fIEVersion = parseFloat(match[1]);\n return fIEVersion < 7 ? 6 : fIEVersion;\n }\n if (isIE11) {\n // IE11\n return 11;\n }\n // 不是ie浏览器\n return Number.MAX_SAFE_INTEGER;\n}\n\n/**\n * Safari Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.5 Safari/605.1.15\n * FireFox Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/114.0\n * Chrome Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36\n * Chrome 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.3\n * 搜狗 Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36 SE 2.X MetaSr 1.\n * 360 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.6045.9 Safari/537.36 QIHU 360EE\n */\nexport function getFlexGapPolyFill() {\n if (typeof navigator === 'undefined' || !navigator) return false;\n const ua = navigator.userAgent;\n const chromeMatch = ua.match(/AppleWebKit.+Chrome\\/(.+) Safari\\/.+/i);\n if (Number(chromeMatch?.[1]?.split('.')[0]) < 100) return true;\n const safariMatch = ua.match(/AppleWebKit.+Version\\/(.+) Safari\\/.+/i);\n if (Number(safariMatch?.[1]?.split('.')[0]) < 12) return true;\n const ieVersion = getIEVersion();\n if (ieVersion <= 11) return true;\n const fireFoxMatch = ua.match(/Firefox\\/(.+)/i);\n if (Number(fireFoxMatch?.[1]?.split('.')[0]) < 100) return true;\n return false;\n}\n\n/**\n * 计算字符串字符的长度并可以截取字符串。\n * @param str 传入字符串\n * @param maxCharacter 规定最大字符串长度\n * @returns 当没有传入maxCharacter时返回字符串字符长度,当传入maxCharacter时返回截取之后的字符串和长度。\n */\nexport function getCharacterLength(str: string): number;\nexport function getCharacterLength(str: string, maxCharacter?: number): { length: number; characters: string }\nexport function getCharacterLength(str: string, maxCharacter?: number) {\n const hasMaxCharacter = isNumber(maxCharacter);\n if (!str || str.length === 0) {\n if (hasMaxCharacter) {\n return {\n length: 0,\n characters: str,\n };\n }\n return 0;\n }\n let len = 0;\n for (let i = 0; i < str.length; i++) {\n let currentStringLength = 0;\n if (str.charCodeAt(i) > 127) {\n currentStringLength = 2;\n } else {\n currentStringLength = 1;\n }\n if (hasMaxCharacter && len + currentStringLength > maxCharacter) {\n return {\n length: len,\n characters: str.slice(0, i),\n };\n }\n len += currentStringLength;\n }\n if (hasMaxCharacter) {\n return {\n length: len,\n characters: str,\n };\n }\n return len;\n}\n\n/**\n * 返回 Unicode 字符长度\n * '👨'.length === 2\n * getUnicodeLength('👨') === 1\n * @param str\n * @returns {number}\n */\nexport function getUnicodeLength(str?: string): number {\n return [...(str ?? '')].length;\n}\n\n/**\n * 修正 Unicode 最大字符长度\n * '👨👨👨'.slice(0, 2) === '👨'\n * limitUnicodeMaxLength('👨👨👨', 2) === '👨👨'\n * @param str\n * @param maxLength\n * @param oldStr\n * @returns {string}\n */\nexport function limitUnicodeMaxLength(\n str?: string,\n maxLength?: number,\n oldStr?: string\n): string {\n // 旧字符满足字数要求则返回\n if ([...(oldStr ?? '')].slice().length === maxLength) return oldStr || '';\n return [...(str ?? '')].slice(0, maxLength).join('');\n}\n\n/**\n * 兼容样式中支持number/string类型的传值 得出最后的结果。\n * @param param number或string类型的可用于样式上的值\n * @returns 可使用的样式值。\n */\nexport function pxCompat(param: string | number) {\n return isNumber(param) ? `${param}px` : param;\n}\n\n/**\n * 计算dom元素盒模型尺寸\n * @param targetElement 需要计算盒模型尺寸的元素\n * @returns 计算出各维度尺寸。\n */\nconst DOM_STYLE_PROPS = [\n 'padding-top',\n 'padding-bottom',\n 'padding-left',\n 'padding-right',\n 'font-family',\n 'font-weight',\n 'font-size',\n 'font-variant',\n 'text-rendering',\n 'text-transform',\n 'width',\n 'text-indent',\n 'border-width',\n 'box-sizing',\n 'line-height',\n 'letter-spacing',\n];\n\nexport function calculateNodeSize(targetElement: HTMLElement) {\n if (typeof window === 'undefined') {\n return {\n paddingSize: 0,\n borderSize: 0,\n boxSizing: 0,\n sizingStyle: '',\n };\n }\n\n const style = window.getComputedStyle(targetElement);\n\n const boxSizing = style.getPropertyValue('box-sizing')\n || style.getPropertyValue('-moz-box-sizing')\n || style.getPropertyValue('-webkit-box-sizing');\n\n const paddingSize = (\n parseFloat(style.getPropertyValue('padding-bottom'))\n + parseFloat(style.getPropertyValue('padding-top'))\n );\n\n const borderSize = (\n parseFloat(style.getPropertyValue('border-bottom-width'))\n + parseFloat(style.getPropertyValue('border-top-width'))\n );\n\n const sizingStyle = DOM_STYLE_PROPS\n .map((name) => `${name}:${style.getPropertyValue(name)}`)\n .join(';');\n\n return {\n paddingSize, borderSize, boxSizing, sizingStyle,\n };\n}\n","import { defineComponent, onMounted, nextTick, ref } from 'vue';\nimport { usePrefixClass } from '@tdesign/hooks';\nimport circleAdapter from '@tdesign/common-js/loading/circle-adapter';\n\nexport default defineComponent({\n name: 'TLoadingGradient',\n setup() {\n const classPrefix = usePrefixClass();\n const circleRef = ref();\n\n onMounted(() => {\n nextTick(() => {\n circleAdapter(circleRef.value);\n });\n });\n\n return () => {\n const name = `${classPrefix.value}-loading__gradient`;\n const classes = [name, `${classPrefix.value}-icon-loading`];\n\n return (\n \n \n
\n \n \n );\n };\n },\n});\n","import setStyle from '../utils/setStyle';\nimport { getIEVersion } from '../utils/helper';\n\nexport default function circleAdapter(circleElem: HTMLElement) {\n let basicStyle = {};\n\n if (!circleElem || typeof window === 'undefined') {\n return;\n }\n\n const { color, fontSize } = window?.getComputedStyle?.(circleElem);\n\n // to fix the browser compat of foreignObject in Safari,\n // https://bugs.webkit.org/show_bug.cgi?id=23113\n const ua = window?.navigator?.userAgent;\n const isSafari = /Safari/.test(ua) && !/Chrome/.test(ua);\n // 判断是否为 iOS 下的微信和企业微信\n const isIosWechat = /(?=.*iPhone)[?=.*MicroMessenger]/.test(ua) && !/Chrome/.test(ua);\n\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","/* 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 { useContent, useTNodeJSX, useTeleport, usePrefixClass, useCommonClassName } from '@tdesign/hooks';\n\nimport props from './props';\n\nconst useComponentClassName = () => {\n return {\n name: usePrefixClass('loading'),\n centerClass: usePrefixClass('loading--center'),\n fullscreenClass: usePrefixClass('loading__fullscreen'),\n lockClass: usePrefixClass('loading--lock'),\n overlayClass: usePrefixClass('loading__overlay'),\n relativeClass: usePrefixClass('loading__parent'),\n fullClass: usePrefixClass('loading--full'),\n inheritColorClass: usePrefixClass('loading--inherit-color'),\n };\n};\n\nexport default defineComponent({\n name: 'TLoading',\n inheritAttrs: false,\n props,\n setup(props, { slots, attrs }) {\n const delayShowLoading = ref(false);\n\n const { name, centerClass, fullscreenClass, lockClass, overlayClass, relativeClass, fullClass, inheritColorClass } =\n useComponentClassName();\n\n const classPrefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n const renderContent = useContent();\n const { SIZE } = useCommonClassName();\n\n const countDelay = () => {\n delayShowLoading.value = false;\n const timer = setTimeout(() => {\n delayShowLoading.value = true;\n clearTimeout(timer);\n }, props.delay);\n };\n // teleport容器\n const teleportElement = useTeleport(() => props.attach);\n // 延时计时是否完成。用于控制延时计时结束前不能显示加载态\n const delayCounted = computed(() => Boolean(!props.delay || (props.delay && delayShowLoading.value)));\n\n // loading style\n const styles = computed(() => {\n const styles: CSSProperties = {};\n if (props.zIndex !== undefined) {\n styles.zIndex = props.zIndex;\n }\n if (!['small', 'medium', 'large'].includes(props.size)) {\n styles['font-size'] = props.size;\n }\n return styles;\n });\n\n const hasContent = computed(() => Boolean(props.default || slots.default || props.content || slots.content));\n const lockFullscreen = computed(() => props.preventScrollThrough && props.fullscreen);\n const showText = computed(() => Boolean(props.text || slots.text));\n const showWrapLoading = computed(() => hasContent.value && props.loading && delayCounted.value);\n const showFullScreenLoading = computed(() => props.fullscreen && props.loading && delayCounted.value);\n const showAttachedLoading = computed(() => props.attach && props.loading && delayCounted.value);\n const classes = computed(() => {\n const baseClasses = [\n centerClass.value,\n getPropertyValFromObj(SIZE.value, props.size),\n { [inheritColorClass.value]: props.inheritColor },\n ];\n const fullScreenClasses = [name.value, fullscreenClass.value, centerClass.value, overlayClass.value];\n\n return {\n baseClasses,\n attachClasses: baseClasses.concat([name.value, fullClass.value, { [overlayClass.value]: props.showOverlay }]),\n withContentClasses: baseClasses.concat([\n name.value,\n fullClass.value,\n {\n [overlayClass.value]: props.showOverlay,\n },\n ]),\n fullScreenClasses,\n normalClasses: baseClasses.concat([name.value]),\n };\n });\n\n const { loading } = toRefs(props);\n\n watch([loading], ([isLoading]) => {\n if (isLoading) {\n countDelay();\n lockFullscreen.value && addClass(document.body, lockClass.value);\n } else {\n lockFullscreen.value && removeClass(document.body, lockClass.value);\n }\n });\n\n onMounted(() => {\n props.delay && countDelay();\n });\n\n return () => {\n const { fullScreenClasses, baseClasses, withContentClasses, attachClasses, normalClasses } = classes.value;\n\n const defaultIndicator = ;\n const indicator = loading.value && renderTNodeJSX('indicator', defaultIndicator);\n const text = showText.value &&
{renderTNodeJSX('text')}
;\n\n // full screen loading\n if (props.fullscreen) {\n if (!showFullScreenLoading.value || !props.loading) return null;\n return (\n \n
\n
\n {indicator}\n {text}\n
\n
\n
\n );\n }\n\n // Loading is wrapping a HTMLElement.\n if (hasContent.value) {\n return (\n
\n {renderContent('default', 'content')}\n {showWrapLoading.value && (\n
\n {indicator}\n {text}\n
\n )}\n
\n );\n }\n\n // transfer parent node\n if (props.attach) {\n if (!showAttachedLoading.value || !loading.value) return null;\n return (\n \n
\n {indicator}\n {text}\n
\n
\n );\n }\n\n // Normal Loading without overlay or content\n return loading.value ? (\n
\n {indicator}\n {text}\n
\n ) : null;\n };\n },\n});\n","import { App, Plugin, 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 '@tdesign/hooks';\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, isEqual, isObject } from 'lodash-es';\n\nimport { TdLoadingProps } from './type';\nimport produceLoading from './plugin';\n\nconst INSTANCE_KEY = Symbol('TdLoading');\n\nconst createInstance = (el: HTMLElement, binding: DirectiveBinding) => {\n const { fullscreen, inheritColor } = binding.modifiers;\n const options: TdLoadingProps = {\n attach: () => el,\n fullscreen: fullscreen ?? false,\n inheritColor: inheritColor ?? false,\n loading: binding.value,\n };\n\n if (isObject(binding.value)) {\n mapKeys(binding.value, (value, key: keyof typeof options) => {\n options[key] = value;\n });\n }\n\n // @ts-ignore\n // TODO: unique symbol' can't be used to index type 'HTMLElement'\n el[INSTANCE_KEY] = {\n options,\n instance: produceLoading(options),\n };\n};\n\nexport const vLoading: Directive = {\n mounted(el, binding) {\n if (binding.value) {\n createInstance(el, binding);\n }\n },\n updated(el, binding) {\n const instance = el[INSTANCE_KEY];\n const { value, oldValue } = binding;\n if (!isEqual(value, oldValue)) {\n const loading = value?.loading ?? value;\n if (loading) {\n createInstance(el, binding);\n } else {\n instance?.instance.hide();\n }\n }\n },\n unmounted(el) {\n el[INSTANCE_KEY]?.instance.hide();\n },\n};\n\nexport default vLoading;\n","import baseAssignValue from './_baseAssignValue.js';\nimport baseForOwn from './_baseForOwn.js';\nimport baseIteratee from './_baseIteratee.js';\n\n/**\n * The opposite of `_.mapValues`; this method creates an object with the\n * same values as `object` and keys generated by running each own enumerable\n * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n * with three arguments: (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapValues\n * @example\n *\n * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n * return key + value;\n * });\n * // => { 'a1': 1, 'b2': 2 }\n */\nfunction mapKeys(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, iteratee(value, key, object), value);\n });\n return result;\n}\n\nexport default mapKeys;\n","import { 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, useResizeObserver } from '@tdesign/hooks';\n\nimport { debounce } from 'lodash-es';\n\nexport default defineComponent({\n props: {\n navs: {\n type: Array as PropType,\n },\n placement: tabProps.placement,\n value: tabProps.value,\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('tabs');\n const classPrefix = usePrefixClass();\n const barRef = ref();\n const navBarClass = computed(() => {\n return [`${COMPONENT_NAME.value}__bar`, `${classPrefix.value}-is-${props.placement}`];\n });\n const navBarStyle = ref(null);\n const getStyle = () => {\n const isVertical = ['left', 'right'].includes(props.placement.toLowerCase());\n const [sizePropName, offsetPropName] = isVertical ? ['height', 'top'] : ['width', 'left'];\n let offset = 0;\n let i = 0;\n for (; i < props.navs.length; i++) {\n if (props.navs[i].props.value === props.value) {\n break;\n }\n if (props.navs[i]?.el) {\n const sizeWithUnit = getComputedStyle(props.navs[i].el as Element)[sizePropName as 'width' | 'left'];\n const size = parseFloat(sizeWithUnit);\n offset += size;\n }\n }\n if (!props.navs[i]) return {};\n return {\n [offsetPropName]: `${offset}px`,\n [sizePropName]: props.navs[i].el\n ? getComputedStyle(props.navs[i].el as Element)[sizePropName as 'width' | 'left']\n : '0px',\n };\n };\n const update = () => (navBarStyle.value = getStyle());\n\n onMounted(() => {\n nextTick(() => {\n update();\n });\n });\n\n watch([() => props.navs, () => props.value, () => props.placement], () => {\n nextTick(() => {\n update();\n });\n });\n\n useResizeObserver(\n barRef,\n debounce(() => {\n update();\n // 数值大了动画不流畅,小了会频繁触发,所以在合适区间里选择一个值\n }, 35),\n );\n return () => {\n return
;\n };\n },\n});\n","import { h, defineComponent, Transition, ref, computed, watch, onMounted, nextTick } from 'vue';\nimport { debounce, isFunction } from 'lodash-es';\nimport {\n ChevronLeftIcon as TdChevronLeftIcon,\n ChevronRightIcon as TdChevronRightIcon,\n AddIcon as TdAddIcon,\n} from 'tdesign-icons-vue-next';\nimport { TdTabsProps } from './type';\nimport tabProps from './props';\nimport { calcMaxOffset, calcValidOffset, calculateOffset, calcPrevOrNextOffset } from '@tdesign/common-js/tabs/base';\n\n// 子组件\nimport TTabPanel from './tab-panel';\nimport TTabNavItem from './tab-nav-item';\nimport TTabNavBar from './tab-nav-bar';\n\n// hooks\nimport { useResize, useDragSort, useGlobalIcon, usePrefixClass, useCommonClassName } from '@tdesign/hooks';\n\nexport default defineComponent({\n name: 'TTabNav',\n resizeObserver: null,\n props: {\n theme: tabProps.theme,\n panels: {\n type: Array as { new (): Array> },\n default: (): Array> => [] as Array>,\n },\n action: Array,\n value: tabProps.value,\n placement: tabProps.placement,\n scrollPosition: tabProps.scrollPosition,\n size: tabProps.size,\n disabled: tabProps.disabled,\n addable: tabProps.addable,\n onChange: tabProps.onChange,\n onAdd: tabProps.onAdd,\n onRemove: tabProps.onRemove,\n dragSort: tabProps.dragSort,\n onDragSort: tabProps.onDragSort,\n },\n setup(props) {\n const componentName = usePrefixClass('tabs');\n const { ChevronLeftIcon, ChevronRightIcon, AddIcon } = useGlobalIcon({\n ChevronLeftIcon: TdChevronLeftIcon,\n ChevronRightIcon: TdChevronRightIcon,\n AddIcon: TdAddIcon,\n });\n const classPrefix = usePrefixClass();\n\n const { SIZE } = useCommonClassName();\n\n const scrollLeft = ref(0);\n\n // refs\n const navsContainerRef = ref();\n const navsWrapRef = ref();\n const leftOperationsRef = ref();\n const rightOperationsRef = ref();\n const toRightBtnRef = ref();\n const activeTabRef = ref();\n const maxScrollLeft = ref(0);\n const showAction = computed(() => {\n return ['top', 'bottom'].includes(props?.placement?.toLowerCase());\n });\n\n const getRefs = () => ({\n navsContainer: navsContainerRef.value,\n navsWrap: navsWrapRef.value,\n leftOperations: leftOperationsRef.value,\n rightOperations: rightOperationsRef.value,\n toRightBtn: toRightBtnRef.value,\n activeTab: activeTabRef.value,\n });\n\n // left right位置 选项卡的位置是在左右侧垂直方向铺开的\n const isVerticalPlacement = computed(() => ['left', 'right'].includes(props.placement.toLowerCase()));\n\n // 展示操作按钮\n const canToLeft = computed(() => scrollLeft.value > 1);\n const canToRight = computed(() => scrollLeft.value < maxScrollLeft.value - 1);\n\n // style\n const wrapTransformStyle = computed(() => {\n if (isVerticalPlacement.value) return {};\n return {\n transform: `translate3d(${-scrollLeft.value}px, 0, 0)`,\n };\n });\n const navsContainerStyle = computed(() => {\n return props.addable ? { 'min-height': '48px' } : null;\n });\n\n // class\n const iconBaseClass = computed(() => {\n return {\n [`${componentName.value}__btn`]: true,\n [SIZE.value.medium]: props.size === 'medium',\n [SIZE.value.large]: props.size === 'large',\n };\n });\n const leftIconClass = computed(() => {\n return {\n [`${componentName.value}__btn--left`]: true,\n ...iconBaseClass.value,\n };\n });\n const rightIconClass = computed(() => {\n return {\n [`${componentName.value}__btn--right`]: true,\n ...iconBaseClass.value,\n };\n });\n const addIconClass = computed(() => {\n return {\n [`${componentName.value}__add-btn`]: true,\n ...iconBaseClass.value,\n };\n });\n const navContainerClass = computed(() => {\n return {\n [`${componentName.value}__nav-container`]: true,\n [`${componentName.value}__nav--card`]: props.theme === 'card',\n [`${classPrefix.value}-is-${props.placement}`]: true,\n [`${classPrefix.value}-is-addable`]: props.addable,\n };\n });\n const navScrollContainerClass = computed(() => {\n return {\n [`${componentName.value}__nav-scroll`]: true,\n [`${classPrefix.value}-is-scrollable`]: canToLeft.value || canToRight.value,\n };\n });\n\n const navsWrapClass = computed(() => {\n return [\n `${componentName.value}__nav-wrap`,\n `${classPrefix.value}-is-smooth`,\n { [`${classPrefix.value}-is-vertical`]: isVerticalPlacement.value },\n ];\n });\n\n const setOffset = (offset: number) => {\n scrollLeft.value = calcValidOffset(offset, maxScrollLeft.value);\n };\n\n const handleScroll = (action: 'prev' | 'next') => {\n setOffset(calcPrevOrNextOffset(getRefs(), scrollLeft.value, action));\n };\n\n const handleWheel = (event: WheelEvent) => {\n if (!canToLeft.value && !canToRight.value) return;\n\n event.preventDefault();\n const { deltaX, deltaY } = event;\n\n if (Math.abs(deltaX) > Math.abs(deltaY)) {\n setOffset(scrollLeft.value + deltaX);\n } else {\n setOffset(scrollLeft.value + deltaY);\n }\n };\n\n const handleActiveTabScroll = () => {\n setTimeout(() => {\n setOffset(calculateOffset(getRefs(), scrollLeft.value, props.scrollPosition));\n }, 0);\n };\n\n const getMaxScrollLeft = () => {\n nextTick(() => {\n maxScrollLeft.value = calcMaxOffset(getRefs());\n });\n };\n\n // watch\n watch([() => props.placement, () => props.panels], getMaxScrollLeft);\n watch([() => props.scrollPosition], handleActiveTabScroll);\n\n // life times\n useResize(debounce(getMaxScrollLeft), navsContainerRef.value);\n\n const handleAddTab = (e: MouseEvent) => {\n props.onAdd?.({ e });\n };\n\n const tabClick = (event: MouseEvent, nav: Partial>) => {\n const { value, disabled } = nav;\n if (disabled || props.value === value) {\n return false;\n }\n props.onChange(value);\n };\n const removeBtnClick = ({ e, value, index }: Parameters[0]) => {\n props.onRemove({ e, value, index });\n };\n const setActiveTab = (ref: any) => {\n if (!ref?.$el) return;\n if (ref?.value === props.value && activeTabRef.value !== ref.$el) {\n activeTabRef.value = ref.$el;\n handleActiveTabScroll();\n }\n };\n\n const { setNavsWrap } = useDragSort(props);\n\n onMounted(() => {\n setNavsWrap(navsWrapRef.value);\n getMaxScrollLeft();\n handleActiveTabScroll();\n });\n // renders\n const renderNavsContent = () => {\n return props.panels.map((panel, index) => {\n let label;\n if (panel?.children?.label) {\n label = panel.children.label();\n } else if (isFunction(panel.label)) {\n label = panel.label(h);\n } else {\n label = panel.label || `选项卡${index + 1}`;\n }\n let draggable = props.dragSort;\n if (draggable && panel.draggable === false) {\n draggable = panel.draggable;\n }\n return (\n tabClick(e, panel)}\n onRemove={removeBtnClick}\n />\n );\n });\n };\n const renderArrows = () => {\n return [\n \n \n {canToLeft.value ? (\n
handleScroll('prev')}>\n \n
\n ) : null}\n
\n ,\n \n \n {canToRight.value ? (\n
handleScroll('next')}>\n \n
\n ) : null}\n
\n {props.addable ? (\n
\n \n
\n ) : null}\n {showAction.value && props.action}\n ,\n ];\n };\n const renderNavs = () => {\n const navContent = renderNavsContent();\n return (\n
\n
\n
\n {props.theme !== 'card' && (\n \n )}\n {navContent}\n
\n
\n
\n );\n };\n\n return () => {\n return (\n
\n {renderArrows()}\n {renderNavs()}\n
\n );\n };\n },\n});\n","import { ComponentPublicInstance, defineComponent, provide, Ref, toRefs } from 'vue';\nimport TTabPanel from './tab-panel';\nimport TTabNav from './tab-nav';\nimport { TabValue, TdTabsProps } from './type';\nimport props from './props';\n\nimport { useVModel, useTNodeJSX, usePrefixClass } from '@tdesign/hooks';\n\nimport { isArray } from 'lodash-es';\n\nexport interface InjectTabs {\n value: Ref;\n}\n\nexport default defineComponent({\n name: 'TTabs',\n props,\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('tabs');\n const classPrefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n\n const { value, modelValue } = toRefs(props);\n const [tabValue, setTabValue] = useVModel(value, modelValue, props.defaultValue || '', props.onChange);\n\n provide('tabs', { value: tabValue });\n\n // methods\n const onTabAdd = (context: { e: MouseEvent }) => {\n props.onAdd?.({ e: context.e });\n };\n const onTabChange = (value: TabValue) => {\n setTabValue(value);\n };\n const onTabRemove = ({ e, value, index }: Parameters[0]) => {\n props.onRemove?.({ value, index, e });\n };\n\n // render\n const getSlotPanels = () => {\n const content = renderTNodeJSX('default');\n if (!content) return [];\n\n const flatContent = (ct: any) => {\n return ct\n .map((item: ComponentPublicInstance) => {\n if (item.children && isArray(item.children)) return flatContent(item.children);\n return item;\n })\n .flat()\n .filter((item: ComponentPublicInstance) => {\n return item.type.name === 'TTabPanel';\n });\n };\n\n return flatContent(content);\n };\n const renderHeader = () => {\n const panels = (props.list?.length ? props.list : getSlotPanels()) || [];\n const actionContent = renderTNodeJSX('action');\n const panelsData = panels.map((item: ComponentPublicInstance) => {\n const selfItem = item;\n\n if (item.props) {\n Object.keys(item.props).forEach((key) => {\n selfItem[key] = item.props[key];\n });\n }\n\n return selfItem;\n });\n const tabNavProps = {\n theme: props.theme,\n value: tabValue.value,\n size: props.size,\n disabled: props.disabled,\n placement: props.placement,\n scrollPosition: props.scrollPosition,\n addable: props.addable,\n panels: panelsData,\n dragSort: props.dragSort,\n action: actionContent,\n };\n return (\n \n \n \n );\n };\n const renderContent = () => {\n const panels = getSlotPanels();\n if (props.list?.length) {\n return props.list.map((item) => );\n }\n if (panels && panels.length) {\n return
{panels}
;\n }\n };\n\n return () => {\n return (\n
\n {props.placement !== 'bottom' ? [renderHeader(), renderContent()] : [renderContent(), renderHeader()]}\n
\n );\n };\n },\n});\n","import _Tabs from './tabs';\nimport _TabPanel from './tab-panel';\nimport withInstall from '../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 '@tdesign/hooks';\n\n// 统一使用的翻转箭头组件\nexport default defineComponent({\n name: 'TFakeArrow',\n props: {\n // 是否active状态 active状态下箭头向上翻转\n isActive: {\n type: Boolean as PropType,\n },\n overlayClassName: {\n type: [String, Object, Array],\n },\n overlayStyle: {\n type: Object || (String as PropType),\n },\n },\n\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('fake-arrow');\n const classes = computed(() => [\n COMPONENT_NAME.value,\n {\n [`${COMPONENT_NAME.value}--active`]: props.isActive,\n },\n props.overlayClassName,\n ]);\n\n return () => (\n \n \n \n );\n },\n});\n","import {\n defineComponent,\n computed,\n inject,\n ref,\n provide,\n onMounted,\n getCurrentInstance,\n watch,\n Slots,\n toRefs,\n reactive,\n nextTick,\n Transition,\n} from 'vue';\nimport props from './submenu-props';\nimport { TdMenuInterface, TdSubMenuInterface, TdMenuItem } from './types';\nimport FakeArrow from '../common-components/fake-arrow';\nimport { useRipple, useContent, useTNodeJSX, usePrefixClass, useCollapseAnimation } from '@tdesign/hooks';\n\nimport { Popup, PopupPlacement } from '../popup';\nimport { isFunction } from 'lodash-es';\nimport { TdSubmenuProps } from './type';\n\nexport default defineComponent({\n name: 'TSubmenu',\n props,\n setup(props: TdSubmenuProps, { attrs, slots }) {\n const classPrefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n const renderContent = useContent();\n\n const instance = getCurrentInstance();\n const menu = inject('TdMenu');\n const { value } = toRefs(props);\n const { theme, activeValues, expandValues, isHead, open } = menu;\n 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 function useCollapseAnimation() {\n const beforeEnter = (el: HTMLElement) => {\n el.dataset.oldPaddingTop = el.style.paddingTop;\n el.dataset.oldPaddingBottom = el.style.paddingBottom;\n\n el.style.height = '0';\n el.style.paddingTop = '0';\n el.style.paddingBottom = '0';\n };\n const enter = (el: HTMLElement) => {\n el.dataset.oldOverflow = el.style.overflow;\n el.style.height = `${el.scrollHeight}px`;\n el.style.paddingTop = el.dataset.oldPaddingTop;\n el.style.paddingBottom = el.dataset.oldPaddingBottom;\n el.style.overflow = 'hidden';\n };\n const afterEnter = (el: HTMLElement) => {\n el.style.height = '';\n el.style.overflow = el.dataset.oldOverflow;\n };\n const beforeLeave = (el: HTMLElement) => {\n el.dataset.oldPaddingTop = el.style.paddingTop;\n el.dataset.oldPaddingBottom = el.style.paddingBottom;\n el.dataset.oldOverflow = el.style.overflow;\n\n el.style.height = `${el.scrollHeight}px`;\n el.style.overflow = 'hidden';\n };\n const leave = (el: HTMLElement) => {\n if (el.scrollHeight !== 0) {\n el.style.height = '0';\n el.style.paddingTop = '0';\n el.style.paddingBottom = '0';\n }\n };\n const afterLeave = (el: HTMLElement) => {\n el.style.height = '';\n el.style.overflow = el.dataset.oldOverflow;\n el.style.paddingTop = el.dataset.oldPaddingTop;\n el.style.paddingBottom = el.dataset.oldPaddingBottom;\n };\n\n return {\n beforeEnter,\n enter,\n afterEnter,\n beforeLeave,\n leave,\n afterLeave,\n };\n}\n","import {\n defineComponent,\n computed,\n provide,\n ref,\n reactive,\n watch,\n onMounted,\n watchEffect,\n toRefs,\n h,\n VNode,\n Component,\n getCurrentInstance,\n} from 'vue';\nimport { EllipsisIcon } from 'tdesign-icons-vue-next';\nimport { isArray, isFunction } from 'lodash-es';\n\nimport log from '@tdesign/common-js/log/log';\nimport props from './head-menu-props';\nimport { MenuValue } from './type';\nimport { TdMenuInterface, TdOpenType } from './types';\nimport { Tabs, TabPanel } from '../tabs';\nimport Submenu from './submenu';\nimport { VMenu } from './utils';\n\nimport { useVModel, usePrefixClass, useDefaultValue } from '@tdesign/hooks';\n\nexport default defineComponent({\n name: 'THeadMenu',\n props,\n setup(props, ctx) {\n const classPrefix = usePrefixClass();\n const { proxy } = getCurrentInstance();\n watchEffect(() => {\n if (ctx.slots.options) {\n log.warnOnce('TMenu', '`options` slot is going to be deprecated, please use `operations` for slot instead.');\n }\n });\n const { value, modelValue, expanded } = toRefs(props);\n const [activeValue, setActiveValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const [expandValues, setExpanded] = useDefaultValue(expanded, props.defaultExpanded, props.onExpand, 'expanded');\n const activeValues = ref([]);\n const theme = computed(() => props.theme);\n const menuClass = computed(() => [\n `${classPrefix.value}-menu`,\n `${classPrefix.value}-head-menu`,\n `${classPrefix.value}-menu--${props.theme}`,\n ]);\n const mode = ref(props.expandType);\n const submenu = reactive([]);\n const vMenu = new VMenu({ isMutex: true, expandValues: expandValues.value });\n\n provide('TdMenu', {\n mode,\n theme,\n vMenu,\n isHead: true,\n expandValues,\n activeValue,\n activeValues,\n select: (value: MenuValue) => {\n setActiveValue(value);\n },\n open: (value: MenuValue, type: TdOpenType) => {\n const expanded = [...expandValues.value];\n const index = expanded.indexOf(value);\n\n if (mode.value === 'popup') {\n if (type === 'add') {\n if (index === -1) {\n // 可能初始expanded里包含了该value\n expanded.push(value);\n }\n } else if (type === 'remove') {\n expanded.splice(index, 1);\n }\n } else if (mode.value === 'normal' && value !== undefined) {\n expanded.splice(0, 1);\n if (index === -1) {\n expanded.push(value);\n }\n }\n setExpanded(expanded);\n },\n });\n\n // methods\n const handleTabChange = (value: MenuValue) => {\n setActiveValue(value);\n handleClickSubMenuItem(value);\n };\n\n const handleSubmenuExpand = (value: MenuValue) => {\n const ans = vMenu.getChild(value);\n submenu.length = 0;\n submenu.push(...ans);\n };\n\n // watch\n watch(expandValues, (value) => {\n if (mode.value === 'normal') {\n handleSubmenuExpand(value[0]);\n }\n });\n const updateActiveValues = (value: MenuValue) => {\n activeValues.value = vMenu.select(value);\n };\n watch(activeValue, updateActiveValues);\n watch(\n () => props.expandType,\n (value) => {\n mode.value = value;\n },\n );\n\n onMounted(() => {\n activeValues.value = vMenu.select(activeValue.value);\n if (expandValues.value?.length > 0) {\n handleSubmenuExpand(expandValues.value[0]); // 顶部导航只能同时展开一个子菜单\n }\n });\n\n const handleClickSubMenuItem = (value: MenuValue) => {\n const activeMenuItem = submenu.find((v) => v.value === value);\n activeMenuItem.onClick?.({ value });\n const { to, href, replace } = activeMenuItem;\n if (href) {\n window.location.href = activeMenuItem.href;\n }\n const router = activeMenuItem.router || proxy.$router;\n if (to && router) {\n replace ? router.replace(to) : router.push(to);\n }\n };\n // setup返回的render函数中无法访问methods属性中的类容,移动此方法到setup中\n const renderNormalSubmenu = () => {\n if (submenu.length === 0) return null;\n return (\n
      \n {\n \n {submenu.map((item) => (\n \n ))}\n \n }\n
    \n );\n };\n\n const menuRef = ref();\n const innerRef = ref();\n const logoRef = ref();\n const operationRef = ref();\n\n const getComputedCss = (el: Element, cssProperty: keyof CSSStyleDeclaration) =>\n getComputedStyle(el)[cssProperty] ?? '';\n\n const getComputedCssValue = (el: Element, cssProperty: keyof CSSStyleDeclaration) =>\n Number.parseInt(String(getComputedCss(el, cssProperty)), 10);\n\n const calcMenuWidth = () => {\n const menuPaddingLeft = getComputedCssValue(menuRef.value, 'paddingLeft');\n const menuPaddingRight = getComputedCssValue(menuRef.value, 'paddingRight');\n let totalWidth = innerRef.value.clientWidth;\n if (logoRef.value) {\n const logoMarginLeft = getComputedCssValue(logoRef.value, 'marginLeft');\n const logoMarginRight = getComputedCssValue(logoRef.value, 'marginRight');\n totalWidth = totalWidth - logoRef.value.offsetWidth - logoMarginLeft - logoMarginRight;\n }\n\n if (operationRef.value) {\n const operationMarginLeft = getComputedCssValue(operationRef.value, 'marginLeft');\n const operationMarginRight = getComputedCssValue(operationRef.value, 'marginRight');\n totalWidth = totalWidth - operationRef.value.offsetWidth - operationMarginLeft - operationMarginRight;\n }\n\n return totalWidth - menuPaddingLeft - menuPaddingRight;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const formatContent = () => {\n let slot = ctx.slots.default?.() || ctx.slots.content?.() || [];\n\n if (menuRef.value && innerRef.value) {\n const validNodes = Array.from(menuRef.value.childNodes ?? []).filter(\n (item) => item.nodeName !== '#text' || item.nodeValue,\n ) as HTMLElement[];\n\n const menuWidth = calcMenuWidth();\n const menuItemMinWidth = 104;\n\n let remainWidth = menuWidth;\n let sliceIndex = validNodes.length;\n\n for (let index = 0; index < validNodes.length; index++) {\n const element = validNodes[index];\n remainWidth -= element.offsetWidth || 0;\n if (remainWidth < menuItemMinWidth) {\n sliceIndex = index;\n break;\n }\n }\n\n const defaultSlot = slot.slice(0, sliceIndex);\n const subMore = slot.slice(sliceIndex);\n\n if (subMore.length) {\n slot = defaultSlot.concat(\n }>\n {subMore}\n ,\n );\n }\n }\n return slot;\n };\n\n const initVMenu = (slots: VNode[], parentValue?: string) => {\n slots.forEach((node) => {\n const nodeValue = node.props?.value;\n if ((node.type as Component)?.name === 'TSubmenu' || (node.type as Component)?.name === 'TMenuItem') {\n vMenu.add({ value: nodeValue, parent: parentValue, vnode: (node.children as any).default, ...node.props });\n }\n if (isFunction((node.children as any)?.default)) {\n initVMenu((node.children as any).default(), nodeValue);\n return;\n }\n if (isArray(node.children)) {\n initVMenu(node.children as VNode[], nodeValue);\n }\n });\n };\n initVMenu(ctx.slots.default?.() || ctx.slots.content?.() || []);\n\n return () => {\n const logo = props.logo?.(h) || ctx.slots.logo?.();\n const operations = props.operations?.(h) || ctx.slots.operations?.() || ctx.slots.options?.();\n\n // TODO: 判断逻辑不够完善 影响封装组件的子菜单样式渲染 暂时先不执行 待调整实现方案\n // const content = formatContent();\n const content = ctx.slots.default?.() || ctx.slots.content?.() || [];\n\n return (\n
    \n
    \n {logo && (\n
    \n {logo}\n
    \n )}\n
      \n {content}\n
    \n {operations && (\n
    \n {operations}\n
    \n )}\n
    \n {mode.value === 'normal' && renderNormalSubmenu()}\n
    \n );\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdMenuItemProps } from '../menu/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 菜单项内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 菜单项内容,同 content */\n default: {\n type: [String, Function] as PropType,\n },\n /** 是否禁用菜单项展开/收起/跳转等功能 */\n disabled: Boolean,\n /** 跳转链接,菜单项渲染为a标签,当routerLink为true时将使用Router进行路由跳转 */\n href: {\n type: String,\n default: '',\n },\n /** 图标 */\n icon: {\n type: Function as PropType,\n },\n /** 路由跳转是否采用覆盖的方式(覆盖后将没有浏览器历史记录) */\n replace: Boolean,\n /** 路由对象。如果项目存在 Router,则默认使用 Router。 */\n router: {\n type: Object as PropType,\n },\n /**\n * 菜单项内容是否渲染为使用Router进行跳转的a标签,当且仅当 Router 存在时,该 API 有效\n */\n routerLink: Boolean,\n /** 链接或路由跳转方式 */\n target: {\n type: String as PropType,\n default: '_self' as TdMenuItemProps['target'],\n validator(val: TdMenuItemProps['target']): boolean {\n if (!val) return true;\n return ['_blank', '_self', '_parent', '_top'].includes(val);\n },\n },\n /** 路由跳转目标,当且仅当 Router 存在时,该 API 有效 */\n to: {\n type: [String, Object] as PropType,\n },\n /** 菜单项唯一标识 */\n value: {\n type: [String, Number] as PropType,\n },\n /** 点击时触发 */\n onClick: Function as PropType,\n};\n","import { defineComponent, computed, inject, onMounted, ref, toRefs, getCurrentInstance } from 'vue';\nimport props from './menu-item-props';\nimport { TdMenuInterface, TdSubMenuInterface } from './types';\nimport { useRipple, useContent, useTNodeJSX, usePrefixClass } from '@tdesign/hooks';\n\nimport Tooltip from '../tooltip';\nimport type { TdMenuItemProps } from './type';\n\nexport default defineComponent({\n name: 'TMenuItem',\n props,\n emits: ['click'],\n setup(props: TdMenuItemProps, ctx) {\n const { href, target, to, disabled, value, onClick, routerLink, replace } = toRefs(props);\n const classPrefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n const renderContent = useContent();\n\n const menu = inject('TdMenu');\n const itemRef = ref();\n const instance = getCurrentInstance();\n\n useRipple(itemRef);\n const submenu = inject('TdSubmenu', null);\n const active = computed(() => menu.activeValue.value === props.value);\n const collapsed = computed(() => menu.collapsed?.value);\n const classes = computed(() => [\n `${classPrefix.value}-menu__item`,\n {\n [`${classPrefix.value}-is-active`]: active.value,\n [`${classPrefix.value}-is-disabled`]: props.disabled,\n [`${classPrefix.value}-menu__item--plain`]: !ctx.slots.icon && !props.icon,\n [`${classPrefix.value}-submenu__item`]: !!submenu && !menu.isHead,\n },\n ]);\n const router = computed(() => props.router || instance?.proxy.$router);\n\n const handleClick = (e: MouseEvent) => {\n e.stopPropagation();\n if (disabled.value) return;\n menu.select(value.value);\n onClick.value?.({ e, value: value.value });\n if (to.value || (routerLink.value && href.value)) {\n const methods = replace.value ? 'replace' : 'push';\n router.value[methods](to.value || href.value).catch((err: Error) => {\n // vue-router 3.1.0+ push/replace cause NavigationDuplicated error\n // https://github.com/vuejs/vue-router/issues/2872\n // 当前path和目标path相同时,会抛出NavigationDuplicated的错误\n if (\n err.name !== 'NavigationDuplicated' &&\n !err.message.includes('Avoided redundant navigation to current location')\n ) {\n throw err;\n }\n });\n }\n submenu?.closeParentPopup?.(e);\n };\n\n // lifetimes\n onMounted(() => {\n menu?.vMenu?.add({ value: props.value, parent: submenu?.value, vnode: ctx.slots.default, ...props });\n });\n\n return () => {\n const liContent = (\n
  • \n {renderTNodeJSX('icon')}\n {routerLink.value ? (\n e.preventDefault()}\n >\n {renderContent('default', 'content')}\n \n ) : href.value ? (\n disabled.value && e.preventDefault()}\n >\n {renderContent('default', 'content')}\n \n ) : (\n {renderContent('default', 'content')}\n )}\n
  • \n );\n\n const node = instance?.parent;\n // 菜单收起,且只有本身为一级菜单才需要显示 tooltip\n if (collapsed.value && /tmenu/i.test(node?.type.name)) {\n return (\n renderContent('default', 'content')} placement=\"right\">\n {liContent}\n \n );\n }\n return liContent;\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdMenuGroupProps } from '../menu/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 菜单组标题 */\n title: {\n type: [String, Function] as PropType,\n },\n};\n","import { defineComponent } from 'vue';\nimport props from './menu-group-props';\nimport { useTNodeJSX, usePrefixClass } from '@tdesign/hooks';\n\nexport default defineComponent({\n name: 'TMenuGroup',\n props,\n setup() {\n const classPrefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n\n return () => (\n
    \n
    {renderTNodeJSX('title', { silent: false })}
    \n {renderTNodeJSX('default')}\n
    \n );\n },\n});\n","import _Menu from './menu';\nimport _HeadMenu from './head-menu';\nimport _Submenu from './submenu';\nimport _MenuItem from './menu-item';\nimport _MenuGroup from './menu-group';\nimport withInstall from '../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 { computed, InjectionKey } from 'vue';\nimport { FormItemValidateResult } from '../form-item';\nimport {\n AllValidateResult,\n Data,\n FormItemValidateMessage,\n FormRule,\n TdFormItemProps,\n TdFormProps,\n ValidateResultType,\n ValidateTriggerType,\n} from '../type';\nimport { usePrefixClass, useTNodeJSX } from '@tdesign/hooks';\n\n// 允许 Form 统一控制的表单\nexport const FORM_CONTROL_COMPONENTS = [\n 'TInput',\n 'TInputNumber',\n 'TTextarea',\n 'TCascader',\n 'TSelect',\n 'TOption',\n 'TSwitch',\n 'TCheckbox',\n 'TCheckboxGroup',\n 'TRadio',\n 'TRadioGroup',\n 'TTreeSelect',\n 'TDatePicker',\n 'TTimePicker',\n 'TUpload',\n 'TTransfer',\n 'TSlider',\n];\n\nexport const useCLASSNAMES = () => {\n const classPrefix = usePrefixClass();\n\n return computed(() => {\n const form = `${classPrefix.value}-form`;\n const input = `${classPrefix.value}-input`;\n const is = `${classPrefix.value}-is`;\n\n return {\n form,\n label: `${form}__label`,\n labelTop: `${form}__label--top`,\n inline: `${form}-inline`,\n formItem: `${form}__item`,\n formItemWithHelp: `${form}__item-with-help`,\n formItemWithExtra: `${form}__item-with-extra`,\n controls: `${form}__controls`,\n controlsContent: `${form}__controls-content`,\n status: `${form}__status`,\n extra: `${input}__extra`,\n help: `${input}__help`,\n success: `${is}-success`,\n successBorder: `${form}--success-border`,\n error: `${is}-error`,\n warning: `${is}-warning`,\n };\n });\n};\n\nexport const enum ValidateStatus {\n TO_BE_VALIDATED = 'not',\n SUCCESS = 'success',\n FAIL = 'fail',\n}\n\nexport type ErrorListType =\n | {\n result: false;\n message: string;\n type: 'error' | 'warning';\n }\n | ValidateResultType;\n\nexport type SuccessListType =\n | {\n result: true;\n message: string;\n type: 'success';\n }\n | ValidateResultType;\n\nexport interface AnalysisValidateResult {\n successList?: SuccessListType[];\n errorList?: ErrorListType[];\n rules: FormRule[];\n resultList: AllValidateResult[];\n allowSetValue: boolean;\n}\n\nexport interface FormItemContext {\n name: TdFormItemProps['name'];\n resetHandler: () => void;\n resetField: (resetType?: 'initial' | 'empty') => Promise;\n validate: (\n trigger: ValidateTriggerType,\n showErrorMessage?: boolean,\n ) => Promise>;\n validateOnly: (trigger: ValidateTriggerType) => Promise>;\n setValidateMessage: (validateMessage: FormItemValidateMessage[]) => void;\n}\n\nexport const FormInjectionKey: InjectionKey<{\n showErrorMessage: TdFormProps['showErrorMessage'];\n labelWidth: TdFormProps['labelWidth'];\n labelAlign: TdFormProps['labelAlign'];\n data: TdFormProps['data'];\n colon: TdFormProps['colon'];\n requiredMark: TdFormProps['requiredMark'];\n requiredMarkPosition: TdFormProps['requiredMarkPosition'];\n rules: TdFormProps['rules'];\n errorMessage: TdFormProps['errorMessage'];\n resetType: TdFormProps['resetType'];\n children: FormItemContext[];\n renderContent: ReturnType;\n}> = Symbol('FormProvide');\n\nexport const FormItemInjectionKey: InjectionKey<{\n handleBlur: () => Promise;\n}> = Symbol('FormItemProvide');\n","import { computed, ComputedRef, onMounted, watch } from 'vue';\nimport { TdInputProps } from './../type';\nimport log from '@tdesign/common-js/log/index';\nimport { getCharacterLength, getUnicodeLength, limitUnicodeMaxLength } from '@tdesign/common-js/utils/helper';\nimport { isNumber, isObject } from 'lodash-es';\n\nexport interface UseLengthLimitParams {\n value: string;\n maxlength: number;\n maxcharacter: number;\n allowInputOverMax: boolean;\n status: TdInputProps['status'];\n onValidate: TdInputProps['onValidate'];\n}\n\nexport function useLengthLimit(params: ComputedRef) {\n // 文本超出数量限制时,是否允许继续输入\n const getValueByLimitNumber = (inputValue: string) => {\n const { allowInputOverMax, maxlength, maxcharacter } = params.value;\n if (!(maxlength || maxcharacter) || allowInputOverMax || !inputValue) return inputValue;\n if (maxlength) {\n // input value could be unicode 😊\n return limitUnicodeMaxLength(inputValue, maxlength);\n }\n if (maxcharacter) {\n const r = getCharacterLength(inputValue, maxcharacter);\n if (isObject(r)) {\n return r.characters;\n }\n }\n };\n\n const limitNumber = computed(() => {\n const { maxlength, maxcharacter, value } = params.value;\n if (isNumber(value)) return String(value);\n if (maxlength && maxcharacter) {\n log.warn('Input', 'Pick one of maxlength and maxcharacter please.');\n }\n if (maxlength) {\n const length = value?.length ? getUnicodeLength(value) : 0;\n return `${length}/${maxlength}`;\n }\n if (maxcharacter) {\n return `${getCharacterLength(value || '')}/${maxcharacter}`;\n }\n return '';\n });\n\n const innerStatus = computed(() => {\n if (limitNumber.value) {\n const [current, total] = limitNumber.value.split('/');\n return Number(current) > Number(total) ? 'error' : '';\n }\n return '';\n });\n\n const tStatus = computed(() => {\n const { status } = params.value;\n return status || innerStatus.value;\n });\n\n const onValidateChange = () => {\n params.value.onValidate?.({\n error: innerStatus.value ? 'exceed-maximum' : undefined,\n });\n };\n\n watch(innerStatus, onValidateChange);\n\n onMounted(() => {\n innerStatus.value && onValidateChange();\n });\n\n return {\n tStatus,\n limitNumber,\n getValueByLimitNumber,\n };\n}\n","import { ref, computed, watch, nextTick, toRefs, inject } from 'vue';\nimport { InputValue, TdInputProps } from './../type';\nimport { FormItemInjectionKey } from '../../form/consts';\nimport { useVModel, useDisabled, useReadonly } from '@tdesign/hooks';\n\nimport { useLengthLimit } from './useLengthLimit';\n\nexport function getOutputValue(val: InputValue, type: TdInputProps['type']) {\n if (type === 'number') {\n return val || val === 0 ? Number(val) : undefined;\n }\n return val;\n}\n\nexport interface ExtendsTdInputProps extends TdInputProps {\n showInput: boolean;\n keepWrapperWidth: boolean;\n}\n\nexport function useInput(props: ExtendsTdInputProps, expose: (exposed: Record) => void) {\n const { value, modelValue } = toRefs(props);\n const inputValue = ref();\n const isComposition = ref(false);\n const compositionValue = ref();\n const clearIconRef = ref(null);\n const innerClickElement = ref();\n const disabled = useDisabled();\n const readonly = useReadonly();\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n const isHover = ref(false);\n const focused = ref(false);\n const renderType = ref(props.type);\n const inputRef = ref(null);\n\n const limitParams = computed(() => ({\n value: [undefined, null].includes(innerValue.value) ? undefined : String(innerValue.value),\n status: props.status,\n maxlength: Number(props.maxlength),\n maxcharacter: props.maxcharacter,\n allowInputOverMax: props.allowInputOverMax,\n onValidate: props.onValidate,\n }));\n const { limitNumber, getValueByLimitNumber, tStatus } = useLengthLimit(limitParams);\n\n const showClear = computed(() => {\n return (\n ((innerValue.value && !disabled.value && props.clearable && !readonly.value) || props.showClearIconOnEmpty) &&\n isHover.value\n );\n });\n\n const focus = () => {\n focused.value = true;\n inputRef.value?.focus();\n };\n\n const blur = () => {\n focused.value = false;\n inputRef.value?.blur();\n };\n\n const emitFocus = (e: FocusEvent) => {\n if (isHover.value && focused.value) return;\n inputValue.value = innerValue.value;\n if (props.disabled) return;\n focused.value = true;\n props.onFocus?.(innerValue.value, { e });\n };\n\n const emitClear = ({ e }: { e: MouseEvent }) => {\n const val = props.type === 'number' ? undefined : '';\n setInnerValue(val, { e, trigger: 'clear' });\n props.onClear?.({ e });\n };\n\n const onClearIconMousedown = (e: MouseEvent) => {\n innerClickElement.value = e.target;\n };\n\n const emitPassword = () => {\n if (disabled.value) return;\n const toggleType = renderType.value === 'password' ? 'text' : 'password';\n renderType.value = toggleType;\n };\n\n const setInputElValue = (v: InputValue = '') => {\n const inputEl = inputRef.value as HTMLInputElement;\n if (!inputEl) return;\n const sV = String(v);\n if (!inputEl.value) {\n return;\n }\n if (inputEl.value !== sV) {\n inputEl.value = sV;\n }\n };\n const inputValueChangeHandle = (e: InputEvent | CompositionEvent) => {\n const { target } = e;\n let val = (target as HTMLInputElement).value;\n // over length: allow delete; not add\n if (props.type !== 'number' && typeof innerValue.value === 'string' && val.length > innerValue.value?.length) {\n val = getValueByLimitNumber(val);\n }\n setInnerValue(getOutputValue(val, props.type), { e, trigger: 'input' });\n // 受控\n nextTick(() => {\n // type = 'number'时, 解决小数点后面有 0 自动删除的问题\n if (props.type === 'number' && /\\.(\\d+)?0$/.test(val)) {\n setInputElValue(val);\n } else {\n setInputElValue(innerValue.value);\n }\n });\n };\n\n const handleInput = (e: InputEvent) => {\n const checkInputType = e.inputType && e.inputType === 'insertCompositionText';\n const {\n currentTarget: { value: val },\n }: any = e;\n if (checkInputType || isComposition.value) {\n compositionValue.value = val;\n return;\n }\n inputValueChangeHandle(e);\n };\n\n const isClearIcon = () => {\n let tmp = innerClickElement.value;\n if (!tmp || !tmp.tagName || !clearIconRef.value?.$el || !['path', 'svg'].includes(tmp.tagName)) return false;\n while (tmp) {\n if (clearIconRef.value?.$el === tmp) {\n return true;\n }\n tmp = tmp.parentNode;\n }\n return false;\n };\n\n const formItem = inject(FormItemInjectionKey, undefined);\n const formatAndEmitBlur = (e: FocusEvent) => {\n if (!isClearIcon()) {\n if (props.format) {\n inputValue.value =\n typeof innerValue.value === 'number' || props.type === 'number'\n ? innerValue.value\n : props.format(innerValue.value);\n }\n focused.value = false;\n if (isComposition.value) {\n isComposition.value = false;\n compositionValue.value = '';\n }\n props.onBlur?.(innerValue.value, { e });\n formItem?.handleBlur();\n } else {\n focus();\n }\n };\n\n const onHandleCompositionend = (e: CompositionEvent) => {\n isComposition.value = false;\n compositionValue.value = '';\n inputValueChangeHandle(e);\n props.onCompositionend?.(String(innerValue.value), { e });\n };\n\n const onHandleCompositionstart = (e: CompositionEvent) => {\n isComposition.value = true;\n const {\n currentTarget: { value },\n }: any = e;\n compositionValue.value = value;\n props.onCompositionstart?.(String(innerValue.value), { e });\n };\n\n const onRootClick = (e: MouseEvent) => {\n inputRef.value?.focus();\n props.onClick?.({ e });\n };\n\n watch(\n () => props.autofocus,\n (value) => {\n if (value === true) {\n nextTick(() => {\n inputRef.value?.focus();\n });\n }\n },\n { immediate: true },\n );\n\n watch(\n innerValue,\n (val, oldVal) => {\n const isNumberType = props.type === 'number';\n // 初始化时,如果有 format 函数,需要对 value 进行格式化\n if (oldVal === undefined && props.format && typeof val !== 'number' && !isNumberType) {\n inputValue.value = props.format(val);\n } else {\n inputValue.value = val;\n }\n // limit props value\n const newVal = typeof val === 'number' ? val : getValueByLimitNumber(val);\n if (newVal !== val && !isNumberType) {\n setInnerValue(newVal, { trigger: 'initial' });\n }\n },\n { immediate: true },\n );\n\n watch(\n () => props.type,\n (v) => {\n renderType.value = v;\n },\n { immediate: true },\n );\n\n expose({\n inputRef,\n focus,\n blur,\n });\n\n return {\n isHover,\n focused,\n renderType,\n showClear,\n inputRef,\n clearIconRef,\n inputValue,\n isComposition,\n compositionValue,\n limitNumber,\n tStatus,\n emitFocus,\n formatAndEmitBlur,\n onHandleCompositionend,\n onHandleCompositionstart,\n onRootClick,\n emitPassword,\n handleInput,\n emitClear,\n onClearIconMousedown,\n innerValue,\n };\n}\n","import { onMounted, Ref, ref, watch, nextTick, onBeforeUnmount, toRefs } from 'vue';\nimport { useResizeObserver } from '@tdesign/hooks';\nimport { InputValue, TdInputProps } from './../type';\n\nconst ANIMATION_TIME = 100;\n\nexport function useInputWidth(props: TdInputProps, inputRef: Ref, innerValue: Ref) {\n const { autoWidth, placeholder } = toRefs(props);\n const inputPreRef = ref(null);\n const observerTimer = ref(null);\n\n const updateInputWidth = () => {\n if (!inputPreRef.value || !inputRef.value) return;\n // 使用 getComputedStyle 规避 transform 带来的影响\n inputRef.value.style.width = getComputedStyle(inputPreRef.value).width;\n };\n\n useResizeObserver(inputPreRef, () => {\n if (autoWidth.value) {\n observerTimer.value = setTimeout(() => {\n updateInputWidth();\n clearTimeout(observerTimer.value);\n }, ANIMATION_TIME);\n }\n });\n\n onBeforeUnmount(() => {\n clearTimeout(observerTimer.value);\n });\n\n const addListeners = () => {\n watch(\n [innerValue, placeholder],\n () => {\n if (!autoWidth.value) return;\n nextTick(() => {\n updateInputWidth();\n });\n },\n { immediate: true },\n );\n };\n\n onMounted(() => {\n if (autoWidth.value) {\n addListeners();\n }\n });\n\n return {\n inputPreRef,\n };\n}\n","import { defineComponent, computed } from 'vue';\nimport {\n BrowseIcon as TdBrowseIcon,\n BrowseOffIcon as TdBrowseOffIcon,\n CloseCircleFilledIcon as TdCloseCircleFilledIcon,\n} from 'tdesign-icons-vue-next';\nimport props from './props';\nimport {\n useConfig,\n useDisabled,\n useReadonly,\n useTNodeJSX,\n useGlobalIcon,\n usePrefixClass,\n useCommonClassName,\n} from '@tdesign/hooks';\n\nimport { useInput, useInputEventHandler, useInputWidth } from './hooks';\nimport { getValidAttrs } from '@tdesign/common-js/utils/helper';\n\nexport default defineComponent({\n name: 'TInput',\n props: {\n ...props,\n /**\n * 非公开 API,随时可能变动,请勿使用。控制透传readonly同时是否展示input 默认保留 因为正常Input需要撑开宽度\n */\n showInput: {\n type: Boolean,\n default: true,\n },\n /**\n * 非公开 API,随时可能变动,请勿使用。控制透传autoWidth之后是否容器宽度也自适应 多选等组件需要用到自适应但也需要保留宽度\n */\n keepWrapperWidth: {\n type: Boolean,\n default: false,\n },\n },\n setup(props, { expose }) {\n const { globalConfig } = useConfig('input');\n const { BrowseIcon, BrowseOffIcon, CloseCircleFilledIcon } = useGlobalIcon({\n BrowseIcon: TdBrowseIcon,\n BrowseOffIcon: TdBrowseOffIcon,\n CloseCircleFilledIcon: TdCloseCircleFilledIcon,\n });\n const readonly = useReadonly();\n const disabled = useDisabled();\n\n const COMPONENT_NAME = usePrefixClass('input');\n const INPUT_WRAP_CLASS = usePrefixClass('input__wrap');\n const INPUT_TIPS_CLASS = usePrefixClass('input__tips');\n const { STATUS, SIZE } = useCommonClassName();\n const classPrefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n const {\n isHover,\n tStatus,\n inputRef,\n renderType,\n showClear,\n focused,\n inputValue,\n isComposition,\n compositionValue,\n innerValue,\n limitNumber,\n ...inputHandle\n } = useInput(props, expose);\n\n const { inputPreRef } = useInputWidth(props, inputRef, innerValue);\n\n const inputEventHandler = useInputEventHandler(props, isHover);\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 { useTNodeJSX, usePrefixClass } from '@tdesign/hooks';\n\nimport inputGroupProps from './input-group-props';\n\nexport default defineComponent({\n name: 'TInputGroup',\n props: inputGroupProps,\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('input-group');\n const renderTNodeJSX = useTNodeJSX();\n const CLASS = computed(() => [\n COMPONENT_NAME.value,\n {\n [`${COMPONENT_NAME.value}--separate`]: props.separate,\n },\n ]);\n return () =>
    {renderTNodeJSX('default')}
    ;\n },\n});\n","import _Input from './input';\nimport _InputGroup from './input-group';\nimport withInstall from '../utils/withInstall';\nimport { InputValue, TdInputProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type InputProps = TdInputProps;\nexport type InputBlurEventParams = Parameters;\nexport type InputFocusEventParams = Parameters;\nexport type StrInputProps = TdInputProps;\nexport type NumberInputProps = TdInputProps;\n\nexport const Input = withInstall(_Input);\nexport const InputGroup = withInstall(_InputGroup);\n\nexport default Input;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdInputNumberProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 文本内容位置,居左/居中/居右 */\n align: {\n type: String as PropType,\n validator(val: TdInputNumberProps['align']): boolean {\n if (!val) return true;\n return ['left', 'center', 'right'].includes(val);\n },\n },\n /** 是否允许输入超过 `max` `min` 范围外的数字。为保障用户体验,仅在失去焦点时进行数字范围矫正。默认允许超出,数字超出范围时,输入框变红提醒 */\n allowInputOverLimit: {\n type: Boolean,\n default: true,\n },\n /** 宽度随内容自适应 */\n autoWidth: Boolean,\n /** [小数位数](https://en.wiktionary.org/wiki/decimal_place) */\n decimalPlaces: {\n type: [Number, Object] as PropType,\n default: undefined as TdInputNumberProps['decimalPlaces'],\n },\n /** 禁用组件 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 格式化输入框展示值。第二个事件参数 `context.fixedNumber` 表示处理过小数位数 `decimalPlaces` 的数字 */\n format: {\n type: Function as PropType,\n },\n /** 透传 Input 输入框组件全部属性 */\n inputProps: {\n type: Object as PropType,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 是否作为大数使用。JS 支持的最大数字位数是 16 位,超过 16 位的数字需作为字符串大数处理。此时,数据类型必须保持为字符串,否则会丢失数据 */\n largeNumber: Boolean,\n /** 最大值。如果是大数,请传入字符串 */\n max: {\n type: [String, Number] as PropType,\n default: Infinity as TdInputNumberProps['max'],\n },\n /** 最小值。如果是大数,请传入字符串 */\n min: {\n type: [String, Number] as PropType,\n default: -Infinity as TdInputNumberProps['min'],\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 组件尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdInputNumberProps['size'],\n validator(val: TdInputNumberProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 文本框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdInputNumberProps['status'],\n validator(val: TdInputNumberProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 数值改变步数,可以是小数。如果是大数,请保证数据类型为字符串 */\n step: {\n type: [String, Number] as PropType,\n default: 1 as TdInputNumberProps['step'],\n },\n /** 后置内容 */\n suffix: {\n type: [String, Function] as PropType,\n },\n /** 按钮布局 */\n theme: {\n type: String as PropType,\n default: 'row' as TdInputNumberProps['theme'],\n validator(val: TdInputNumberProps['theme']): boolean {\n if (!val) return true;\n return ['column', 'row', 'normal'].includes(val);\n },\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 数字输入框的值。当值为 '' 时,输入框显示为空 */\n value: {\n type: [String, Number] as PropType,\n default: undefined as TdInputNumberProps['value'],\n },\n modelValue: {\n type: [String, Number] as PropType,\n default: undefined as TdInputNumberProps['value'],\n },\n /** 数字输入框的值。当值为 '' 时,输入框显示为空,非受控属性 */\n defaultValue: {\n type: [String, Number] as PropType,\n },\n /** 失去焦点时触发 */\n onBlur: Function as PropType,\n /** 值变化时触发,`type` 表示触发本次变化的来源 */\n onChange: Function as PropType,\n /** 回车键按下时触发 */\n onEnter: Function as PropType,\n /** 获取焦点时触发 */\n onFocus: Function as PropType,\n /** 键盘按下时触发 */\n onKeydown: Function as PropType,\n /** 按下字符键时触发(keydown -> keypress -> keyup) */\n onKeypress: Function as PropType,\n /** 释放键盘时触发 */\n onKeyup: Function as PropType,\n /** 最大值或最小值校验结束后触发,`exceed-maximum` 表示超出最大值,`below-minimum` 表示小于最小值 */\n onValidate: Function as PropType,\n};\n","import { isString, isNumber, isObject } from 'lodash-es';\nimport log from '../log/log';\n\nexport type InputNumberDecimalPlaces = number | { enableRound: boolean, places: number };\n\nexport function fillZero(length: number) {\n return new Array(length).fill(0).join('');\n}\n\n/**\n * 大数,是否是一个数字,数字字符包括 - . e [0-9]\n */\nexport function isInputNumber(num: number | string): boolean {\n if (!num) return true;\n if (isNumber(num)) return !Number.isNaN(num);\n const r = /^[0-9|e|E|-]+\\.*[0-9|e|E|-]*$/.test(num);\n if (!r) return false;\n // only allow one [.e] and two [-]\n let eCount = 0;\n let negativeCount = 0;\n let dotCount = 0;\n for (let i = 0, len = num.length; i < len; i++) {\n if (num[i] === '.') {\n dotCount += 1;\n if (dotCount > 1) return false;\n }\n if (/(e|E)+/.test(num[i])) {\n eCount += 1;\n if (eCount > 1) return false;\n }\n if (num[i] === '-') {\n negativeCount += 1;\n if (negativeCount > 2) return false;\n }\n }\n return true;\n}\n\n// 整数,去除前面的无效 0(本身是 0 除外);小数去除末尾的无效 0\nexport function removeInvalidZero(num: string, decimal = false) {\n if (num.indexOf('.') !== -1) {\n log.error('InputNumber', 'num is not a integer number.');\n return num;\n }\n if (!num || (num === '0' && decimal)) return '';\n if (num === '0') return num;\n return (decimal ? num.replace(/0+$/, '') : num.replace(/^0+/, '')) || '0';\n}\n\n/**\n * 大数加法,仅支持正整数(没有精度问题)\n * @param num1 被加数\n * @param num2 加数\n */\nexport function largeIntNumberAdd(num1: string, num2: string, decimal = false): string {\n const number1 = removeInvalidZero(num1, decimal);\n const number2 = removeInvalidZero(num2, decimal);\n const isFirstLarger = number1.length > number2.length;\n const maxNumber = isFirstLarger ? number1 : number2;\n const minNumber = isFirstLarger ? number2 : number1;\n const newNumber: string[] = [];\n const step = [];\n const diff = decimal ? 0 : maxNumber.length - minNumber.length;\n const len = decimal ? minNumber.length : maxNumber.length;\n for (let i = len - 1; i >= 0; i--) {\n const minIndex = i - diff;\n // 第一个数,加第二个数,加进位\n const count = Number(maxNumber[i]) + (Number(minNumber[minIndex]) || 0) + (step[i] || 0);\n if (count >= 10) {\n step[i - 1] = 1;\n }\n newNumber.unshift(String(count % 10));\n }\n // 999 + 1 = 1000,之类的进位\n if (step[-1]) {\n newNumber.unshift('1');\n }\n if (decimal) {\n return newNumber.concat(maxNumber.slice(len, maxNumber.length)).join('');\n }\n return newNumber.join('');\n}\n\n/**\n * 大数加法,支持小数和整数(没有精度问题)\n * @param num1 被加数\n * @param num2 加数\n */\nexport function largePositiveNumberAdd(num1: string, num2: string): string {\n const [intNumber1 = '0', decimalNumber1 = '0'] = num1.split('.');\n const [intNumber2 = '0', decimalNumber2 = '0'] = num2.split('.');\n const integerSum = largeIntNumberAdd(intNumber1, intNumber2);\n // 如果不存在小数,则直接返回整数相加结果\n if (decimalNumber1 === '0' && decimalNumber2 === '0') return integerSum;\n const newDecimalNumber1 = removeInvalidZero(decimalNumber1, true);\n const newDecimalNumber2 = removeInvalidZero(decimalNumber2, true);\n // 小数点相加\n const decimalNumberSum = largeIntNumberAdd(newDecimalNumber1, newDecimalNumber2, true);\n // 组合整数部分和小数部分\n const decimalLength = decimalNumberSum.length;\n // 如果小数相加进位\n if (decimalLength > newDecimalNumber1.length && decimalLength > newDecimalNumber2.length) {\n return [\n removeInvalidZero(largeIntNumberAdd(integerSum, '1')),\n removeInvalidZero(decimalNumberSum.slice(1), true),\n ].filter((v: string) => v).join('.');\n }\n return [\n removeInvalidZero(integerSum),\n removeInvalidZero(decimalNumberSum, true)\n ].filter((v: string) => v).join('.');\n}\n\n/**\n * 比较两个大数的大小,仅正整数有效\n */\nfunction compareLargeIntegerNumber(num1: string, num2: string): 1 | -1 | 0 {\n const number1 = removeInvalidZero(num1);\n const number2 = removeInvalidZero(num2);\n if (number1.length === number2.length) {\n for (let i = 0, len = number1.length; i < len; i++) {\n if (number1[i] > number2[i]) return 1;\n if (number1[i] < number2[i]) return -1;\n }\n return 0;\n }\n return number1.length > number2.length ? 1 : -1;\n}\n\nfunction compareLargeDecimalNumber(num1: string, num2: string) {\n const number1 = num1 && num1 !== '0' ? num1.replace(/0+$/, '') : '0';\n const number2 = num2 && num2 !== '0' ? num2.replace(/0+$/, '') : '0';\n const maxLength = Math.max(number1.length, number2.length);\n for (let i = 0, len = maxLength; i < len; i++) {\n if ((number1[i] || 0) > (number2[i] || 0)) return 1;\n if ((number1[i] || 0) < (number2[i] || 0)) return -1;\n }\n return 0;\n}\n\n/**\n * 2e3 => 2000\n * 0.2e3 => 200\n */\nexport function formatENumber(num: string): string {\n const [num1, num2] = num.split('e');\n if (!num2) return num;\n const [integer, initDecimal = ''] = num.split('.');\n const zeroCount = Number(num2);\n const [decimal] = initDecimal.split('e');\n if (zeroCount > decimal.length) {\n const multipleZero = fillZero(zeroCount - decimal.length);\n return num1.replace(/(^0+|\\.)/g, '') + multipleZero;\n }\n const n1 = integer.replace(/^0+/, '') + decimal.slice(0, zeroCount);\n const d2 = decimal.slice(zeroCount);\n return d2 ? [n1, d2].join('.') : n1;\n}\n\n/**\n * 比较两个大数的大小\n */\nexport function compareLargeNumber(\n num1: string,\n num2: string,\n): 1 | -1 | 0 {\n const [integer1, decimal1] = formatENumber(num1).split('.');\n const [integer2, decimal2] = formatENumber(num2).split('.');\n const result = compareLargeIntegerNumber(integer1.replace('-', ''), integer2.replace('-', ''));\n const integer1IsNegative = integer1.includes('-');\n const integer2IsNegative = integer2.includes('-');\n if (integer1IsNegative && !integer2IsNegative) return -1;\n if (!integer1IsNegative && integer2IsNegative) return 1;\n if (integer1IsNegative && integer2IsNegative) {\n if (result === 0) return 0;\n return result > 0 ? -1 : 1;\n }\n if (result === 0) {\n return compareLargeDecimalNumber(decimal1, decimal2);\n }\n return result;\n}\n\n// 确认是否为无限大/小\nexport function isInfinity(num: number| string) {\n return [-Infinity, Infinity].includes(Number(num));\n}\n\n// 确认是否是大数\nexport function isSafeNumber(num: string | number) {\n return Number(num) < Number.MAX_SAFE_INTEGER && Number(num) > Number.MIN_SAFE_INTEGER;\n}\n\n/**\n * 比较两个数的大小\n */\nexport function compareNumber(\n num1: string | number,\n num2: string | number,\n largeNumber?: boolean,\n) {\n const isSafeNumberCompare = isSafeNumber(num1) && isSafeNumber(num2) && !largeNumber;\n const isInfinityCompare = isInfinity(num1) || isInfinity(num2);\n if (isSafeNumberCompare || isInfinityCompare) {\n // 比较两个非大数或涉及无穷的大小\n if (Number(num1) === Number(num2)) return 0;\n return Number(num1) > Number(num2) ? 1 : -1;\n }\n // 比较两个大数的大小\n return compareLargeNumber(String(num1), String(num2));\n}\n\n/**\n * 大数减法,仅支持整数\n * @param num1 被减数\n * @param num2 减数\n * @param decimal 是否为小数位相减\n */\nexport function largeIntegerNumberSubtract(\n num1: string, num2: string, p?: { decimal?: boolean, stayZero?: boolean }\n): string {\n if (num1 === num2) return '0';\n const { decimal, stayZero } = p || {};\n const number1 = removeInvalidZero(num1);\n const number2 = removeInvalidZero(num2);\n const isFirstLarger = compareLargeIntegerNumber(number1, number2) > 0;\n const maxNumber = isFirstLarger ? number1 : number2;\n const minNumber = isFirstLarger ? number2 : number1;\n const newNumber: string[] = [];\n // step 存储借位信息\n const step = [];\n const diff = decimal ? 0 : maxNumber.length - minNumber.length;\n const len = decimal ? minNumber.length : maxNumber.length;\n for (let i = len - 1; i >= 0; i--) {\n const minIndex = i - diff;\n // 第一个数,减第二个数,减借位\n let count = Number(maxNumber[i]) - (Number(minNumber[minIndex]) || 0) - (step[i] || 0);\n if (count < 0) {\n step[i - 1] = 1;\n count += 10;\n }\n newNumber.unshift(String(count));\n }\n if (decimal) {\n return newNumber.concat(maxNumber.slice(len, maxNumber.length)).join('');\n }\n let finalNumber = newNumber.join('');\n if (!stayZero) {\n finalNumber = finalNumber.replace(/^0+/, '');\n }\n return removeInvalidZero(isFirstLarger ? finalNumber : `-${finalNumber}`);\n}\n\n/**\n * 大数减法,支持整数和小数(无精度问题)\n * @param num1 被减数\n * @param num2 减数\n * @param decimal 是否为小数位相减\n */\nexport function largePositiveNumberSubtract(num1: string, num2: string): string {\n if (num1 === num2) return '0';\n const isFirstLarger = compareNumber(num1, num2, true) > 0;\n const maxNumber = isFirstLarger ? num1 : num2;\n const minNumber = isFirstLarger ? num2 : num1;\n // 整数部分和小数部分分开处理\n const [intNumber1, decimalNumber1 = '0'] = maxNumber.split('.');\n const [intNumber2, decimalNumber2 = '0'] = minNumber.split('.');\n let integerNumber = largeIntegerNumberSubtract(intNumber1, intNumber2);\n // 如果不存在小数,则直接返回整数相加结果\n if (decimalNumber1 === '0' && decimalNumber2 === '0') {\n return isFirstLarger ? integerNumber : `-${integerNumber}`;\n }\n // 小数点相减\n let decimalNumber = '';\n let addOneNumber = decimalNumber1;\n // 第一个数字的小数位数比第二个少,需补足 0\n if (decimalNumber1.length < decimalNumber2.length) {\n addOneNumber = `${decimalNumber1}${fillZero(decimalNumber2.length - decimalNumber1.length)}`;\n }\n // 第一个小数位更小,是否需要借位\n if (compareLargeDecimalNumber(addOneNumber, decimalNumber2) >= 0) {\n decimalNumber = largeIntegerNumberSubtract(addOneNumber, decimalNumber2, { decimal: true });\n } else {\n if (decimalNumber1.length < decimalNumber2.length || decimalNumber1 === '0') {\n decimalNumber = largeIntegerNumberSubtract(`1${addOneNumber}`, decimalNumber2, { stayZero: true });\n decimalNumber = fillZero(decimalNumber2.length - decimalNumber.length) + decimalNumber;\n } else {\n decimalNumber = largeIntegerNumberSubtract(decimalNumber1, decimalNumber2, { decimal: true });\n }\n integerNumber = largeIntegerNumberSubtract(integerNumber, '1');\n }\n const finalNumber = decimalNumber ? [integerNumber, decimalNumber].join('.') : integerNumber;\n return isFirstLarger ? finalNumber : `-${finalNumber}`;\n}\n\n/**\n * -0.6 - 0.8 => -(0.6 + 0.8)\n * -0.6 - (-0.8) => 0.8 - 0.6\n * 0.6 - (-0.8) => 0.6 + 0.8\n * 0.6 - 0.8 => 0.6 - 0.8\n */\nexport function largeNumberSubtract(num1: string, num2: string): string {\n const isFirstNegative = num1[0] === '-';\n const isSecondNegative = num2[0] === '-';\n if (isFirstNegative && !isSecondNegative) {\n const r = largePositiveNumberAdd(num1.slice(1), num2);\n return `-${r}`;\n }\n if (isFirstNegative && isSecondNegative) {\n return largePositiveNumberSubtract(num2.slice(1), num1.slice(1));\n }\n if (!isFirstNegative && isSecondNegative) {\n return largePositiveNumberAdd(num1, num2.slice(1));\n }\n return largePositiveNumberSubtract(num1, num2);\n}\n\n/**\n * -0.6 + 0.8 => 0.8 - 0.6\n * -0.6 + (-0.8) => -(0.6 + 0.8)\n * 0.6 + (-0.8) => 0.6 - 0.8\n * 0.6 + 0.8 => 0.6 + 0.8\n */\nexport function largeNumberAdd(num1: string, num2: string): string {\n const isFirstNegative = num1[0] === '-';\n const isSecondNegative = num2[0] === '-';\n if (isFirstNegative && !isSecondNegative) {\n return largePositiveNumberSubtract(num2, num1.slice(1));\n }\n if (isFirstNegative && isSecondNegative) {\n const r = largePositiveNumberAdd(num2.slice(1), num1.slice(1));\n return `-${r}`;\n }\n if (!isFirstNegative && isSecondNegative) {\n return largePositiveNumberSubtract(num1, num2.slice(1));\n }\n return largePositiveNumberAdd(num1, num2);\n}\n\n/**\n * 格式化小数,并且可以控制小数点后的位数和是否进行四舍五入。\n *\n * @param {number} num - 要格式化的数字。\n * @param {number} places - 小数点后的位数。\n * @param {boolean} rounding - 是否进行四舍五入。\n * @returns {string} 格式化后的数字字符串。\n */\nexport function formatDecimal(num: number, places: number, enableRound: boolean = true) {\n // 开启四舍五入 直接用 toFixed\n if (enableRound) {\n return num.toFixed(places);\n }\n\n const [integer, decimal] = num.toString().split('.');\n // 保留 0 位小数\n if (places === 0) {\n return integer;\n }\n // 补足小数位数\n if (decimal) {\n let decimalNumber = decimal.slice(0, places);\n if (decimal.length < places) {\n decimalNumber += fillZero(places - decimal.length);\n }\n return [integer, decimalNumber].join('.');\n }\n\n return [integer, fillZero(places)].join('.');\n}\n\nexport function decimalPlacesToFixedNum(num: number, decimalPlaces: InputNumberDecimalPlaces) {\n if (isObject(decimalPlaces)) {\n return formatDecimal(num, decimalPlaces.places, decimalPlaces.enableRound ?? true);\n }\n return formatDecimal(num, decimalPlaces, true);\n}\n\n/**\n * 大数保留 N 位小数(没有精度问题)\n * @param {String} number 大数(只能使用字符串表示)\n * @param {Number} decimalPlaces 保留的小数位数\n * @param {Boolean} largeNumber 是否为大数\n */\nexport function largeNumberToFixed(\n number: string | number,\n decimalPlaces: InputNumberDecimalPlaces = 0,\n largeNumber: boolean = true,\n): string {\n if (Number.isNaN(Number(number))) return '';\n if (!largeNumber) {\n return decimalPlacesToFixedNum(Number(number), decimalPlaces);\n }\n const places = isObject(decimalPlaces) ? decimalPlaces.places : decimalPlaces;\n const enableRound = isObject(decimalPlaces) ? (decimalPlaces.enableRound ?? true) : true;\n if (!isString(number)) return String(number);\n // eslint-disable-next-line prefer-const\n let [num1, num2] = number.split('.');\n // 如果不存在小数点,则补足位数\n if (!num2) {\n return (places > 0 && enableRound) ? [number, (fillZero(places))].join('.') : number;\n }\n // 存在小数点,保留 0 位小数,灵活配置四舍五入\n if (places === 0) {\n return (enableRound && Number(num2[0]) >= 5) ? largePositiveNumberAdd(num1, '1') : num1;\n }\n // 存在小数点,保留 > 0 位小数,灵活配置四舍五入\n let decimalNumber = num2.slice(0, places);\n if (num2.length < places) {\n decimalNumber += (fillZero(places - num2.length));\n } else if (enableRound) {\n // 用于判断是否处于 1.08 这种小数为0开始的边界情况\n const leadZeroNum = decimalNumber.match(/^0+/)?.[0].length;\n // 用于判断是否处于 0.99/1.99 等需要往非0位进位的场景\n const leadNineNum = decimalNumber.match(/^9+/);\n // 决定是否需要四舍五入\n const needAdded = Number(num2[places]) >= 5;\n\n // 四舍五入后的结果\n decimalNumber = needAdded\n ? largePositiveNumberAdd(decimalNumber, '1')\n : decimalNumber;\n\n // 边界场景1(1.08 这种小数为0开始的边界情况):计算后有误判的可能,如008 +1 误判为 8+1,需要手动补 0\n if (\n leadZeroNum\n && needAdded\n && leadZeroNum + decimalNumber.length >= places\n ) {\n decimalNumber = `${fillZero(\n places - decimalNumber.length\n )}${decimalNumber}`;\n }\n // 边界场景2:(0.99 这种可能进位的边界情况):计算后有误判的可能,如995 四舍五入后需进位\n if (leadNineNum && decimalNumber.length > places) {\n num1 = (Number(num1) + 1).toString();\n decimalNumber = fillZero(places);\n }\n }\n return [num1, decimalNumber].join('.');\n}\n","import { isUndefined, isString, isNumber } from 'lodash-es';\n/** 普通数相关方法 */\nimport {\n compareNumber,\n formatENumber,\n largeNumberToFixed,\n isInputNumber,\n largeNumberAdd,\n largeNumberSubtract,\n} from './large-number';\nimport log from '../log';\nimport type { InputNumberDecimalPlaces } from './large-number';\n\nexport * from './large-number';\n\nexport type NumberType = number | string;\n\n// 小于最大值,才允许继续添加\nexport function canAddNumber(\n num: NumberType,\n max: NumberType,\n largeNumber = false\n): boolean {\n if (!num && num !== 0) return true;\n if (largeNumber && isString(num)) {\n return compareNumber(num, max, largeNumber) < 0;\n }\n return num < max;\n}\n\n// 大于最小值,才允许继续减少\nexport function canReduceNumber(\n num: NumberType,\n min: NumberType,\n largeNumber = false\n): boolean {\n if (!num && num !== 0) return true;\n if (largeNumber && isString(num)) {\n return compareNumber(num, min, largeNumber) > 0;\n }\n return num > min;\n}\n\n/**\n * 将数字控制在 max 和 min 之间\n */\nexport function putInRangeNumber(\n val: NumberType,\n params: {\n max?: NumberType;\n min?: NumberType;\n lastValue?: NumberType;\n largeNumber?: boolean;\n }\n) {\n if (val === '') return undefined;\n const { max, min, lastValue, largeNumber } = params;\n if (!isInputNumber(val)) return lastValue;\n if (largeNumber && (isString(max) || max === Infinity) && (isString(min) || min === -Infinity)) {\n if (compareNumber(max, val, largeNumber) < 0) return max;\n if (compareNumber(min, val, largeNumber) > 0) return min;\n return val;\n }\n return Math.max(Number(min), Math.min(Number(max), Number(val)));\n}\n\n/**\n * 仅支持正数,小数加法精度处理,小数部分和整数部分分开处理\n */\nexport function positiveAdd(num1: number, num2: number): number {\n if (!num1 || !num2) return (num1 || 0) + (num2 || 0);\n const r1 = num1.toString().split('.')[1]?.length || 0;\n const r2 = num2.toString().split('.')[1]?.length || 0;\n // 整数不存在精度问题,直接返回\n if (!r1 && !r2) return num1 + num2;\n let newNumber1 = num1;\n let newNumber2 = num2;\n const diff = Math.abs(r1 - r2);\n const digit = 10 ** Math.max(r1, r2);\n if (diff > 0) {\n const cm = 10 ** diff;\n if (r1 > r2) {\n newNumber1 = Number(num1.toString().replace('.', ''));\n newNumber2 = Number(num2.toString().replace('.', '')) * cm;\n } else {\n newNumber1 = Number(num1.toString().replace('.', '')) * cm;\n newNumber2 = Number(num2.toString().replace('.', ''));\n }\n } else {\n newNumber1 = Number(num1.toString().replace('.', ''));\n newNumber2 = Number(num2.toString().replace('.', ''));\n }\n return (newNumber1 + newNumber2) / digit;\n}\n\n/**\n * 正数,小数减法精度处理,小数部分和整数部分分开处理\n */\nexport function positiveSubtract(num1: number, num2: number): number {\n if (!num1 || !num2) return (num1 || 0) - (num2 || 0);\n const r1 = num1.toString().split('.')[1]?.length || 0;\n const r2 = num2.toString().split('.')[1]?.length || 0;\n const digit = 10 ** Math.max(r1, r2);\n const n = r1 >= r2 ? r1 : r2;\n return Number(((num1 * digit - num2 * digit) / digit).toFixed(n));\n}\n\n/**\n * 支持正数、负数、小数等全部数字的加法\n * -0.766 + 1 => 1 - 0.766\n * -1 + (-0.766) => - (1 + 0.766)\n * 1 + (-0.766) => 1 - 0.766\n * 1 + 0.766 => 1 + 0.766\n */\nexport function add(num1: number, num2: number): number {\n if (num1 < 0 && num2 > 0) return positiveSubtract(num2, Math.abs(num1));\n if (num1 < 0 && num2 < 0) return positiveAdd(Math.abs(num1), Math.abs(num2)) * -1;\n if (num1 > 0 && num2 < 0) return positiveSubtract(num1, Math.abs(num2));\n return positiveAdd(num1, num2);\n}\n\n/**\n * 支持正数、负数、小数等全部数字的减法\n * -0.766 - 1 => - (1 + 0.766)\n * -1 - (-0.766) => 0.766 - 1\n * 1 - (-0.766) => 1 + 0.766\n * 1 - 0.766 => 1 - 0.766\n */\nexport function subtract(num1: number, num2: number): number {\n if (num1 < 0 && num2 > 0) return positiveAdd(Math.abs(num1), num2) * -1;\n if (num1 < 0 && num2 < 0) return positiveSubtract(Math.abs(num2), Math.abs(num1));\n if (num1 > 0 && num2 < 0) return positiveAdd(num1, Math.abs(num2));\n return positiveSubtract(num1, num2);\n}\n\nexport function getStepValue(p: {\n op: 'add' | 'reduce';\n step: NumberType;\n max?: NumberType;\n min?: NumberType;\n lastValue?: NumberType;\n largeNumber?: boolean;\n}) {\n const { op, step, lastValue, max, min, largeNumber } = p;\n if (Number(step) <= 0) {\n log.error('InputNumber', 'step must be larger than 0.');\n return lastValue;\n }\n const tStep = isNumber(step) ? String(step) : step;\n let newVal;\n if (op === 'add') {\n if (largeNumber && isString(lastValue)) {\n newVal = largeNumberAdd(String(lastValue), String(tStep));\n } else {\n newVal = add(Number(lastValue || 0), Number(step));\n }\n } else if (op === 'reduce') {\n if (largeNumber && isString(lastValue)) {\n newVal = largeNumberSubtract(String(lastValue), String(tStep));\n } else {\n newVal = subtract(Number(lastValue || 0), Number(step));\n }\n }\n if (isUndefined(lastValue)) {\n newVal = putInRangeNumber(newVal, { max, min, lastValue, largeNumber });\n }\n return largeNumber ? newVal : Number(newVal);\n}\n\nexport type InputNumberErrorType =\n | 'exceed-maximum'\n | 'below-minimum'\n | undefined;\n\n/**\n * 最大值和最小值校验\n */\nexport function getMaxOrMinValidateResult(p: {\n largeNumber: boolean;\n value: NumberType;\n max: NumberType;\n min: NumberType;\n}): InputNumberErrorType {\n const { largeNumber, value, max, min } = p;\n if (isUndefined(value) || isUndefined(largeNumber)) return undefined;\n if (largeNumber && isNumber(value)) {\n log.warn('InputNumber', 'largeNumber value must be a string.');\n }\n let error: InputNumberErrorType;\n if (compareNumber(value, max, largeNumber) > 0) {\n error = 'exceed-maximum';\n } else if (compareNumber(value, min, largeNumber) < 0) {\n error = 'below-minimum';\n } else {\n error = undefined;\n }\n return error;\n}\n\nexport const specialCode = ['-', '.', 'e', 'E', '+'];\n\n/**\n * 是否允许输入当前字符,输入字符校验\n * 1.23E+08 就表示 1.23 乘 10 的 8 次方\n * 2e3 表示 2 乘 10 的 3 次方\n */\nexport function canInputNumber(number: string | undefined | null, largeNumber?: boolean) {\n if (['', null, undefined].includes(number)) return true;\n // 数字最前方不允许出现连续的两个 0\n if (number.slice(0, 2) === '00') return false;\n // 不能出现空格\n if (number.match(/\\s/g)) return false;\n // 只能出现一个点(.)\n if (number.match(/\\./g)?.length > 1) return false;\n // 只能出现一个e(e)\n if (number.match(/e/g)?.length > 1) return false;\n // 只能出现一个负号(-)或 一个正号(+),并且在第一个位置;但允许 3e+10 这种形式\n const tmpNumber = number.slice(1);\n const tmpMatched = tmpNumber.match(/(\\+|-)/g);\n if (tmpMatched && (!/e(\\+|-)/i.test(tmpNumber) || tmpMatched.length > 1)) return false;\n // 允许输入数字字符\n const isNumber = (largeNumber && isInputNumber(number)) || !Number.isNaN(Number(number));\n if (!isNumber && !specialCode.includes(number.slice(-1))) return false;\n if (/e/i.test(number) && (!/\\de/i.test(number) || /e\\./.test(number))) return false;\n return true;\n}\n\n/**\n * 是否允许设置组件新值,触发 onChange 事件\n */\nexport function canSetValue(number: string, lastNumber: number) {\n return parseFloat(number) !== lastNumber && !Number.isNaN(Number(number));\n}\n\n/**\n * 1. 格式化未输入完成的数字,如:如:2e/2+/2.等\n * 2. 处理小数点 decimalPlaces\n * 3. 格式化大数字 formatENumber\n */\nexport function formatUnCompleteNumber(\n number: string,\n extra: {\n decimalPlaces?: InputNumberDecimalPlaces;\n largeNumber?: boolean;\n isToFixed?: boolean;\n } = {}\n): number | string {\n if (['', null, undefined].includes(number) || !/\\d+/.test(number)) return undefined;\n const { decimalPlaces, largeNumber, isToFixed } = extra;\n let newNumber = number.replace(/[.|+|\\-|e]$/, '');\n if (largeNumber) {\n newNumber = formatENumber(newNumber);\n }\n if (decimalPlaces !== undefined) {\n newNumber = largeNumberToFixed(newNumber, decimalPlaces, largeNumber);\n }\n if (largeNumber) return newNumber;\n return isToFixed ? newNumber : parseFloat(newNumber);\n}\n\n/**\n * 对千分位进行处理 111,111,222 -> 111111222\n */\nexport function formatThousandths(number: string) {\n const thousandthsRegExp = /^[-+]?\\d{1,3}(,\\d{3})*(\\.(\\d*))?$/;\n if (thousandthsRegExp.test(number)) return number.replace(/,/g, '');\n return number;\n}\n","import { computed, ref, toRefs, watch } from 'vue';\nimport { useVModel, useReadonly, useDisabled, useCommonClassName } from '@tdesign/hooks';\n\nimport { InputNumberValue, TdInputNumberProps } from '../type';\n\n// 计算逻辑,统一到 common 中,方便各框架复用(如超过 16 位的大数处理)\nimport {\n canAddNumber,\n canInputNumber,\n canReduceNumber,\n getMaxOrMinValidateResult,\n getStepValue,\n formatThousandths,\n canSetValue,\n formatUnCompleteNumber,\n largeNumberToFixed,\n} from '@tdesign/common-js/input-number/number';\n\nimport { StrInputProps } from '../../input';\n\n/**\n * 独立一个组件 Hook 方便用户直接使用相关逻辑 自定义任何样式的数字输入框\n */\nexport default function useInputNumber(props: TdInputNumberProps) {\n const { classPrefix, SIZE, STATUS } = useCommonClassName();\n const { value, modelValue, max, min } = toRefs(props);\n // 统一处理受控、非受控、语法糖 v-model 等\n const [tValue, setTValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const inputRef = ref();\n const userInput = ref('');\n\n const tDisabled = useDisabled();\n\n const isReadonly = useReadonly();\n\n const isError = ref<'exceed-maximum' | 'below-minimum'>();\n\n const disabledReduce = computed(\n () => tDisabled.value || !canReduceNumber(tValue.value, props.min, props.largeNumber),\n );\n\n const disabledAdd = computed(() => tDisabled.value || !canAddNumber(tValue.value, props.max, props.largeNumber));\n\n const wrapClasses = computed(() => [\n `${classPrefix.value}-input-number`,\n SIZE.value[props.size],\n {\n [STATUS.value.disabled]: tDisabled.value,\n [`${classPrefix.value}-is-controls-right`]: props.theme === 'column',\n [`${classPrefix.value}-input-number--${props.theme}`]: props.theme,\n [`${classPrefix.value}-input-number--auto-width`]: props.autoWidth,\n },\n ]);\n\n const reduceClasses = computed(() => [\n `${classPrefix.value}-input-number__decrease`,\n { [STATUS.value.disabled]: disabledReduce.value },\n ]);\n\n const addClasses = computed(() => [\n `${classPrefix.value}-input-number__increase`,\n { [STATUS.value.disabled]: disabledAdd.value },\n ]);\n\n const getUserInput = (value: InputNumberValue) => {\n if (!value && value !== 0) return '';\n let inputStr = value || value === 0 ? String(value) : '';\n if (!inputRef.value?.inputRef?.contains(document.activeElement)) {\n const num = formatUnCompleteNumber(inputStr, {\n decimalPlaces: props.decimalPlaces,\n largeNumber: props.largeNumber,\n isToFixed: true,\n });\n inputStr = num || num === 0 ? String(num) : '';\n if (props.format) {\n inputStr = String(props.format(value, { fixedNumber: inputStr }));\n }\n }\n return inputStr;\n };\n\n watch(\n tValue,\n (val) => {\n const { largeNumber, decimalPlaces } = props;\n const inputValue = [undefined, null].includes(val) ? '' : String(val);\n // userInput.value 为非合法数字,则表示用户正在输入,此时无需处理\n if (!largeNumber && !Number.isNaN(userInput.value)) {\n if (parseFloat(userInput.value) !== val) {\n userInput.value = getUserInput(inputValue);\n }\n const fixedNumber = Number(largeNumberToFixed(inputValue, decimalPlaces, largeNumber));\n if (\n decimalPlaces !== undefined &&\n ![undefined, null].includes(val) &&\n Number(fixedNumber) !== Number(tValue.value)\n ) {\n setTValue(fixedNumber, { type: 'props', e: undefined });\n }\n }\n if (largeNumber) {\n userInput.value = getUserInput(inputValue);\n\n if (decimalPlaces !== undefined && largeNumberToFixed(inputValue, decimalPlaces, largeNumber) !== val) {\n let completeValue = inputValue;\n if (!inputRef.value?.inputRef?.contains(document.activeElement)) {\n // isToFixed为true 只可能是string\n completeValue = formatUnCompleteNumber(completeValue, {\n decimalPlaces: props.decimalPlaces,\n largeNumber: props.largeNumber,\n isToFixed: true,\n }) as string;\n }\n setTValue(completeValue, { type: 'props', e: undefined });\n }\n }\n },\n { immediate: true },\n );\n\n watch(\n [tValue, max, min],\n () => {\n // @ts-ignore 没有输入完成,则无需校验\n if ([undefined, '', null].includes(tValue.value)) return;\n const { max, min, largeNumber } = props;\n const error = getMaxOrMinValidateResult({\n value: tValue.value,\n largeNumber,\n max,\n min,\n });\n isError.value = error;\n props.onValidate?.({ error });\n },\n { immediate: true },\n );\n\n const handleStepValue = (op: 'add' | 'reduce') => {\n const newValue = getStepValue({\n op,\n step: props.step,\n max: props.max,\n min: props.min,\n lastValue: tValue.value,\n largeNumber: props.largeNumber,\n });\n const { largeNumber, max, min } = props;\n const overLimit = getMaxOrMinValidateResult({\n value: newValue,\n largeNumber,\n max,\n min,\n });\n return {\n overLimit,\n newValue,\n };\n };\n\n const handleReduce = (e: KeyboardEvent | MouseEvent) => {\n if (disabledReduce.value || isReadonly.value) return;\n const r = handleStepValue('reduce');\n if (r.overLimit && !props.allowInputOverLimit) return;\n setTValue(r.newValue, { type: 'reduce', e });\n };\n\n const handleAdd = (e: KeyboardEvent | MouseEvent) => {\n if (disabledAdd.value || isReadonly.value) return;\n const r = handleStepValue('add');\n if (r.overLimit && !props.allowInputOverLimit) return;\n setTValue(r.newValue, { type: 'add', e });\n };\n\n const onInnerInputChange: StrInputProps['onChange'] = (inputValue, { e }) => {\n // 千分位处理\n const val = formatThousandths(inputValue);\n if (!canInputNumber(val, props.largeNumber)) return;\n\n // 先处理小数位数限制,然后再更新显示值和实际值\n let processedVal = val;\n if (props.decimalPlaces !== undefined && val !== '' && val.includes('.')) {\n const parts = val.split('.');\n // 获取实际小数位数限制\n const decimalLimit = typeof props.decimalPlaces === 'number' ? props.decimalPlaces : props.decimalPlaces.places;\n\n if (parts[1] && parts[1].length > decimalLimit) {\n // 直接截断为指定小数位数\n processedVal = `${parts[0]}.${parts[1].substring(0, decimalLimit)}`;\n }\n }\n\n // 更新显示值\n userInput.value = processedVal;\n\n if (props.largeNumber) {\n setTValue(processedVal, { type: 'input', e });\n return;\n }\n\n // 当处理后的值与当前值不同时,才更新\n const newNumber = processedVal === '' ? undefined : Number(processedVal);\n if (canSetValue(processedVal, Number(tValue.value))) {\n setTValue(newNumber, { type: 'input', e });\n }\n };\n\n const handleBlur = (value: string, ctx: { e: FocusEvent }) => {\n const { largeNumber, max, min, decimalPlaces } = props;\n if (!props.allowInputOverLimit && 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 '@tdesign/hooks';\nimport { TdInputNumberProps } from './type';\nimport useInputNumber from './hooks/useInputNumber';\n\nexport default defineComponent({\n name: 'TInputNumber',\n props,\n // 保持纯净(逻辑和节点渲染分开)\n setup(props: TdInputNumberProps, context: SetupContext) {\n const { AddIcon, RemoveIcon, ChevronDownIcon, ChevronUpIcon } = useGlobalIcon({\n AddIcon: TdAddIcon,\n RemoveIcon: TdRemoveIcon,\n ChevronDownIcon: TdChevronDownIcon,\n ChevronUpIcon: TdChevronUpIcon,\n });\n const p = useInputNumber(props);\n const { inputRef } = p;\n context.expose({ ...p });\n\n return () => {\n const reduceIcon =\n props.theme === 'column' ? : ;\n const addIcon = props.theme === 'column' ? : ;\n const status = p.isError.value ? 'error' : props.status;\n\n return (\n
    \n {props.theme !== 'normal' && (\n reduceIcon}\n />\n )}\n \n {props.theme !== 'normal' && (\n addIcon}\n />\n )}\n
    \n );\n };\n },\n});\n","import _InputNumber from './input-number';\nimport withInstall from '../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, useContent, useTNodeJSX, useGlobalIcon, usePrefixClass, useCommonClassName } from '@tdesign/hooks';\n\nimport { Styles } from '../common';\n\nexport default defineComponent({\n name: 'TTag',\n props,\n setup(props) {\n const { globalConfig: tagGlobalConfig } = useConfig('tag');\n const COMPONENT_NAME = usePrefixClass('tag');\n const { CloseIcon } = useGlobalIcon({ CloseIcon: TdCloseIcon });\n const renderTNodeJSX = useTNodeJSX();\n const renderContent = useContent();\n const { SIZE } = useCommonClassName();\n const { vnode } = getCurrentInstance();\n\n const tagClass = computed(() => {\n return [\n `${COMPONENT_NAME.value}`,\n `${COMPONENT_NAME.value}--${props.theme}`,\n `${COMPONENT_NAME.value}--${props.variant}`,\n {\n [`${COMPONENT_NAME.value}--ellipsis`]: props.maxWidth,\n [`${COMPONENT_NAME.value}--close`]: props.closable,\n [`${COMPONENT_NAME.value}--disabled`]: props.disabled,\n [SIZE.value[props.size]]: props.size !== 'medium',\n },\n props.shape !== 'square' && `${COMPONENT_NAME.value}--${props.shape}`,\n ];\n });\n const tagStyle = computed(() => {\n return getTagColorStyle();\n });\n\n const textStyle = computed(() => {\n if (!props.maxWidth) return {};\n\n return {\n maxWidth: isNaN(Number(props.maxWidth)) ? String(props.maxWidth) : `${props.maxWidth}px`,\n };\n });\n\n const getTagColorStyle = () => {\n const { color, variant } = props;\n if (!color) return {};\n\n const luminance = tinycolor(color).getLuminance();\n\n const style: Styles = {\n color: luminance > 0.5 ? 'black' : 'white',\n };\n\n if (variant === 'outline' || variant === 'light-outline') {\n style.borderColor = color;\n }\n if (variant !== 'outline') {\n const getLightestShade = () => {\n const { r, g, b } = tinycolor(color).toRgb();\n // alpha 0.1 is designed by @wen1kang\n return `rgba(${r}, ${g}, ${b}, 0.1)`;\n };\n style.backgroundColor = variant === 'dark' ? color : getLightestShade();\n }\n if (variant !== 'dark') {\n style.color = color;\n }\n return style;\n };\n\n const handleClick = (e: MouseEvent) => {\n if (props.disabled) return;\n props.onClick?.({ e });\n };\n\n const getCloseIcon = () => {\n if (!props.closable) return null;\n const iconClassName = `${COMPONENT_NAME.value}__icon-close`;\n if (tagGlobalConfig.value.closeIcon) {\n return h(tagGlobalConfig.value.closeIcon(h) as VNode, { class: iconClassName });\n }\n return (\n {\n if (e) e.stopPropagation();\n props.onClose?.({ e });\n }}\n class={iconClassName}\n />\n );\n };\n\n const renderTitle = (tagContent: string) => {\n const vProps = vnode.props || {};\n if (Reflect.has(vProps, 'title')) {\n return vProps.title || undefined;\n }\n\n if (tagContent) {\n return tagContent;\n }\n\n return undefined;\n };\n\n return () => {\n // 关闭按钮 自定义组件使用 nativeOnClick 绑定事件\n const closeIcon = getCloseIcon();\n // 标签内容\n const tagContent = renderContent('default', 'content');\n // 图标\n const icon = renderTNodeJSX('icon');\n\n const title = renderTitle(isString(tagContent) ? tagContent : '');\n\n return (\n
    \n {icon}\n \n {tagContent}\n \n {!props.disabled && closeIcon}\n
    \n );\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdCheckTagProps } from '../tag/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 标签选中的状态,默认风格(theme=default)才有选中态 */\n checked: {\n type: Boolean,\n default: undefined,\n },\n modelValue: {\n type: Boolean,\n default: undefined,\n },\n /** 标签选中的状态,默认风格(theme=default)才有选中态,非受控属性 */\n defaultChecked: Boolean,\n /** 透传标签选中态属性 */\n checkedProps: {\n type: Object as PropType,\n },\n /** 组件子元素;传入数组时:[选中内容,非选中内容] */\n content: {\n type: [String, Number, Array, Function] as PropType,\n },\n /** 组件子元素,默认插槽 */\n default: {\n type: [String, Function] as PropType,\n },\n /** 标签禁用态,失效标签不能触发事件。默认风格(theme=default)才有禁用态 */\n disabled: Boolean,\n /** 标签尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdCheckTagProps['size'],\n validator(val: TdCheckTagProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 透传标签未选态属性 */\n uncheckedProps: {\n type: Object as PropType,\n },\n /** 标签唯一标识,一般用于标签组场景,单个可选择标签无需设置 */\n value: {\n type: [String, Number] as PropType,\n },\n /** 状态切换时触发 */\n onChange: Function as PropType,\n /** 点击标签时触发 */\n onClick: Function as PropType,\n};\n","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 { useVModel, useContent, usePrefixClass, useCommonClassName } from '@tdesign/hooks';\n\nimport Tag from './tag';\nimport { TdCheckTagProps, TdTagProps } from './type';\nimport { ENTER_REG, SPACE_REG } from '@tdesign/common-js/common';\n\nexport default defineComponent({\n name: 'TCheckTag',\n props,\n setup(props: TdCheckTagProps) {\n const componentName = usePrefixClass('tag');\n const { SIZE } = useCommonClassName();\n const renderContent = useContent();\n\n const { checked, modelValue } = toRefs(props);\n const [innerChecked, setInnerChecked] = useVModel(\n checked,\n modelValue,\n props.defaultChecked,\n props.onChange,\n 'checked',\n );\n\n const tagClass = computed(() => {\n return [\n `${componentName.value}`,\n `${componentName.value}--check`,\n SIZE.value[props.size],\n {\n [`${componentName.value}--checked`]: innerChecked.value,\n [`${componentName.value}--disabled`]: props.disabled,\n },\n ];\n });\n\n const checkTagProps = computed(() => {\n const checkedProps: TdTagProps = { theme: 'primary', ...props.checkedProps };\n const uncheckedProps: TdTagProps = { ...props.uncheckedProps };\n return innerChecked.value ? checkedProps : uncheckedProps;\n });\n\n const handleClick = ({ e }: { e: MouseEvent }) => {\n if (!props.disabled) {\n props.onClick?.({ e });\n setInnerChecked(!innerChecked.value, { e, value: props.value });\n }\n };\n\n const keyboardEventListener = (e: KeyboardEvent) => {\n const code = e.code || e.key?.trim();\n const isCheckedCode = SPACE_REG.test(code) || ENTER_REG.test(code);\n if (isCheckedCode) {\n e.preventDefault();\n setInnerChecked(!innerChecked.value, { e, value: props.value });\n }\n };\n\n const onCheckboxFocus = (e: FocusEvent) => {\n e.currentTarget.addEventListener('keydown', keyboardEventListener);\n };\n\n const onCheckboxBlur = (e: FocusEvent) => {\n e.currentTarget.removeEventListener('keydown', keyboardEventListener);\n };\n\n return () => {\n const tagContent = renderContent('default', 'content');\n return (\n \n {tagContent}\n \n );\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdCheckTagGroupProps } from '../tag/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 透传标签选中态属性 */\n checkedProps: {\n type: Object as PropType,\n },\n /** 是否支持选中多个标签 */\n multiple: Boolean,\n /** 标签选项列表 */\n options: {\n type: Array as PropType,\n },\n /** 透传标签未选态属性 */\n uncheckedProps: {\n type: Object as PropType,\n },\n /** 选中标签值 */\n value: {\n type: Array as PropType,\n default: undefined as TdCheckTagGroupProps['value'],\n },\n modelValue: {\n type: Array as PropType,\n default: undefined as TdCheckTagGroupProps['value'],\n },\n /** 选中标签值,非受控属性 */\n defaultValue: {\n type: Array as PropType,\n default: (): TdCheckTagGroupProps['defaultValue'] => [],\n },\n /** null */\n onChange: Function as PropType,\n};\n","import { computed, defineComponent, toRefs, h } from 'vue';\nimport { useVModel, usePrefixClass } from '@tdesign/hooks';\nimport props from './check-tag-group-props';\nimport CheckTag from './check-tag';\n\nimport { CheckTagGroupOption, CheckTagGroupValue, TdCheckTagProps } from './type';\nimport { isFunction } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TCheckTagGroup',\n props,\n setup(props, context) {\n const { value, modelValue, options } = toRefs(props);\n const componentName = usePrefixClass('check-tag-group');\n const checkTagGroupClasses = computed(() => [componentName.value]);\n\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n const onCheckTagChange: TdCheckTagProps['onChange'] = (checked, ctx) => {\n const value = ctx.value;\n if (checked) {\n if (props.multiple) {\n setInnerValue(innerValue.value.concat(value), { e: ctx.e, type: 'check', value });\n } else {\n setInnerValue([value], { e: ctx.e, type: 'check', value });\n }\n } else {\n let newValue: CheckTagGroupValue = [];\n if (props.multiple) {\n newValue = innerValue.value.filter((t) => t !== value);\n }\n setInnerValue(newValue, { e: ctx.e, type: 'uncheck', value });\n }\n };\n\n const getTagContent = (option: CheckTagGroupOption) => {\n if (context.slots.option) return context.slots.option(option);\n if (context.slots.label) return context.slots.label(option);\n if (option.label) {\n return isFunction(option.label) ? option.label(h) : option.label;\n }\n if (option.content && isFunction(option.content)) return option.content(h);\n if (option.default && isFunction(option.default)) return option.default(h);\n return option.value;\n };\n\n return () => {\n return (\n
    \n {(options.value || []).map((option) => (\n \n {getTagContent(option)}\n \n ))}\n
    \n );\n };\n },\n});\n","import _Tag from './tag';\nimport _CheckTag from './check-tag';\nimport _CheckTagGroup from './check-tag-group';\nimport withInstall from '../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 { useDisabled, useReadonly, useTNodeJSX, useGlobalIcon, usePrefixClass, useDefaultValue } from '@tdesign/hooks';\n\nimport { useTagScroll, useHover, useDragSorter, useTagList } from './hooks';\n\nimport { isArray } from 'lodash-es';\n\nconst useComponentClassName = () => {\n return {\n NAME_CLASS: usePrefixClass('tag-input'),\n CLEAR_CLASS: usePrefixClass('tag-input__suffix-clear'),\n BREAK_LINE_CLASS: usePrefixClass('tag-input--break-line'),\n };\n};\n\nexport default defineComponent({\n name: 'TTagInput',\n props,\n setup(props: TdTagInputProps, { slots }) {\n const renderTNodeJSX = useTNodeJSX();\n const { NAME_CLASS, CLEAR_CLASS, BREAK_LINE_CLASS } = useComponentClassName();\n const { CloseCircleFilledIcon } = useGlobalIcon({ CloseCircleFilledIcon: TdCloseCircleFilledIcon });\n\n const isDisabled = useDisabled();\n const isReadonly = useReadonly();\n\n const { inputValue, inputProps, borderless, size, tips, status, suffix, autoWidth, onPaste } = toRefs(props);\n const [tInputValue, setTInputValue] = useDefaultValue(\n inputValue,\n props.defaultInputValue,\n props.onInputChange,\n 'inputValue',\n );\n const { excessTagsDisplayType, clearable, placeholder } = toRefs(props);\n const { isHover, addHover, cancelHover } = useHover({\n readonly: isReadonly.value,\n disabled: isDisabled.value,\n onMouseenter: props.onMouseenter,\n onMouseleave: props.onMouseleave,\n });\n const isComposition = ref(false);\n const { classPrefix } = useConfig();\n const isFocused = ref(false);\n\n // 这里不需要响应式,因此直接传递参数\n const { getDragProps } = useDragSorter({\n ...props,\n sortOnDraggable: props.dragSort,\n onDragOverCheck: {\n x: true,\n targetClassNameRegExp: new RegExp(`^${classPrefix.value}-tag`),\n },\n });\n const { scrollToRight, onWheel, scrollToRightOnEnter, scrollToLeftOnLeave, tagInputRef, isScrollable } =\n useTagScroll(props);\n // handle tag add and remove\n // 需要响应式,为了尽量的和 react 版本做法相同,这里进行响应式处理\n const { tagValue, onInnerEnter, onInputBackspaceKeyUp, onInputBackspaceKeyDown, clearAll, renderLabel, onClose } =\n useTagList(\n reactive({\n ...toRefs(props),\n getDragProps,\n }),\n );\n\n const classes = computed(() => {\n const isEmpty = !(isArray(tagValue.value) && tagValue.value.length);\n return [\n NAME_CLASS.value,\n {\n [BREAK_LINE_CLASS.value]: excessTagsDisplayType.value === 'break-line',\n [`${classPrefix.value}-is-empty`]: isEmpty,\n [`${classPrefix.value}-tag-input--with-tag`]: !isEmpty,\n [`${classPrefix.value}-tag-input--drag-sort`]: props.dragSort && !isReadonly.value && !isDisabled.value,\n },\n ];\n });\n\n const tagInputPlaceholder = computed(() => (!tagValue.value?.length ? placeholder.value : ''));\n\n const showClearIcon = computed(() =>\n Boolean(\n !isReadonly.value &&\n !isDisabled.value &&\n clearable.value &&\n isHover.value &&\n (tagValue.value?.length || tInputValue.value),\n ),\n );\n\n const onInputEnter = (value: string, context: { e: KeyboardEvent }) => {\n // 阻止 Enter 默认行为,避免在 Form 中触发 submit 事件\n context.e?.preventDefault?.();\n setTInputValue('', { e: context.e, trigger: 'enter' });\n !isComposition.value && onInnerEnter(value, context);\n nextTick(() => {\n scrollToRight();\n isComposition.value = false;\n });\n };\n\n const onInputCompositionstart = (value: string, context: { e: CompositionEvent }) => {\n isComposition.value = true;\n inputProps.value?.onCompositionstart?.(value, context);\n };\n\n const onInputCompositionend = (value: string, context: { e: CompositionEvent }) => {\n isComposition.value = false;\n inputProps.value?.onCompositionend?.(value, context);\n };\n\n const onClick: TdInputProps['onClick'] = (ctx) => {\n if (isDisabled.value) return;\n isFocused.value = true;\n tagInputRef.value?.focus();\n props.onClick?.(ctx);\n };\n\n const onClearClick = (context: { e: MouseEvent }) => {\n clearAll(context);\n setTInputValue('', { e: context.e, trigger: 'clear' });\n props.onClear?.(context);\n };\n\n const onMouseEnter: InputProps['onMouseenter'] = (context) => {\n addHover(context);\n scrollToRightOnEnter();\n };\n\n const onMouseLeave: InputProps['onMouseleave'] = (context) => {\n cancelHover(context);\n scrollToLeftOnLeave();\n };\n\n const onInnerFocus: InputProps['onFocus'] = (inputValue: string, context: { e: MouseEvent }) => {\n if (isFocused.value) return;\n isFocused.value = true;\n props.onFocus?.(tagValue.value, { e: context.e, inputValue });\n };\n\n const onInnerBlur: InputProps['onBlur'] = (inputValue: string, context: { e: MouseEvent }) => {\n isFocused.value = false;\n setTInputValue('', { e: context.e, trigger: 'blur' });\n props.onBlur?.(tagValue.value, { e: context.e, inputValue });\n };\n\n const onInnerChange: StrInputProps['onChange'] = (val, context) => {\n setTInputValue(val, { ...context, trigger: 'input' });\n };\n\n watch(\n () => isScrollable.value,\n (v) => {\n if (props.excessTagsDisplayType !== 'scroll') return;\n const scrollElementClass = `${classPrefix.value}-input__prefix`;\n const scrollElement = tagInputRef.value.$el.querySelector(`.${scrollElementClass}`);\n if (v) scrollElement.classList.add(`${scrollElementClass}--scrollable`);\n else scrollElement.classList.remove(`${scrollElementClass}--scrollable`);\n },\n );\n\n return () => {\n const suffixIconNode = showClearIcon.value ? (\n \n ) : (\n renderTNodeJSX('suffixIcon')\n );\n const prefixIconNode = renderTNodeJSX('prefixIcon');\n const suffixClass = `${classPrefix.value}-tag-input__with-suffix-icon`;\n if (suffixIconNode && !classes.value.includes(suffixClass)) {\n classes.value.push(suffixClass);\n }\n // 自定义 Tag 节点\n const displayNode = renderTNodeJSX('valueDisplay', {\n params: {\n value: tagValue.value,\n onClose: (index: number) => onClose({ index }),\n },\n });\n // 左侧文本\n const label = renderTNodeJSX('label', { silent: true });\n // const inputProps = inputProps as TdTagInputProps['inputProps'];\n const readonly = isReadonly.value || inputProps.value?.readonly;\n\n return (\n renderLabel({ displayNode, label })}\n class={classes.value}\n tips={tips.value}\n status={status.value}\n placeholder={tagInputPlaceholder.value}\n suffix={suffix.value}\n suffixIcon={() => suffixIconNode}\n prefixIcon={() => prefixIconNode}\n keepWrapperWidth={!autoWidth.value}\n onWheel={onWheel}\n onChange={onInnerChange}\n onPaste={onPaste.value}\n onEnter={onInputEnter}\n onKeyup={onInputBackspaceKeyUp}\n onKeydown={onInputBackspaceKeyDown}\n onMouseenter={onMouseEnter}\n onMouseleave={onMouseLeave}\n onFocus={onInnerFocus}\n onBlur={onInnerBlur}\n onClick={onClick}\n onCompositionstart={onInputCompositionstart}\n onCompositionend={onInputCompositionend}\n {...inputProps.value}\n />\n );\n };\n },\n});\n","import { ref } from 'vue';\n\nexport interface UseHoverParams {\n readonly: boolean;\n disabled: boolean;\n onMouseenter: (context: { e: MouseEvent }) => void;\n onMouseleave: (context: { e: MouseEvent }) => void;\n}\n\nexport function useHover(props: UseHoverParams) {\n const { disabled, readonly, onMouseenter, onMouseleave } = props;\n const isHover = ref(false);\n\n const addHover = (context: { e: MouseEvent }) => {\n if (readonly || disabled) return;\n isHover.value = true;\n onMouseenter?.(context);\n };\n\n const cancelHover = (context: { e: MouseEvent }) => {\n if (readonly || disabled) return;\n isHover.value = false;\n onMouseleave?.(context);\n };\n\n return { isHover, addHover, cancelHover };\n}\n","import { ref, reactive } from 'vue';\nimport { DragSortProps, DragSortInnerProps } from '../types';\n\nexport function useDragSorter(props: DragSortProps): DragSortInnerProps {\n const { sortOnDraggable, onDragSort, onDragOverCheck } = props;\n const draggingIndex = ref(-1);\n const dragStartData = ref(null);\n const isDropped = ref(null);\n const startInfo = reactive({ nodeX: 0, nodeWidth: 0, mouseX: 0 });\n\n const onDragOver = (e: DragEvent, index: number, record: T) => {\n e.preventDefault();\n if (draggingIndex.value === index || draggingIndex.value === -1) return;\n const target = e.target as HTMLElement;\n if (onDragOverCheck?.targetClassNameRegExp && !onDragOverCheck?.targetClassNameRegExp.test(target.className)) {\n return;\n }\n\n if (onDragOverCheck?.x && target) {\n if (!startInfo.nodeWidth) return;\n\n const { x, width } = target.getBoundingClientRect();\n const targetNodeMiddleX = x + width / 2;\n const draggingNodeLeft = e.clientX - (startInfo.mouseX - startInfo.nodeX);\n const draggingNodeRight = draggingNodeLeft + startInfo.nodeWidth;\n\n let overlap = false;\n if (draggingNodeLeft > x && draggingNodeLeft < x + width) {\n overlap = draggingNodeLeft < targetNodeMiddleX;\n } else {\n overlap = draggingNodeRight > targetNodeMiddleX;\n }\n\n if (!overlap) return;\n }\n\n onDragSort?.({\n currentIndex: draggingIndex.value,\n current: dragStartData,\n target: record,\n targetIndex: index,\n });\n\n draggingIndex.value = index;\n };\n\n if (!sortOnDraggable) {\n return {};\n }\n\n function onDragStart(e: DragEvent, index: number, record: T) {\n draggingIndex.value = index;\n dragStartData.value = record;\n const target = e.target as HTMLElement;\n if (onDragOverCheck && target) {\n const { x, width } = target.getBoundingClientRect();\n startInfo.nodeX = x;\n startInfo.nodeWidth = width;\n startInfo.mouseX = e.clientX;\n }\n }\n\n function onDrop() {\n isDropped.value = true;\n }\n\n function onDragEnd() {\n if (!isDropped.value) {\n // 取消排序,待扩展 api,输出 dragStartData\n }\n isDropped.value = false;\n draggingIndex.value = -1;\n dragStartData.value = null;\n }\n\n function getDragProps(index: number, record: T) {\n if (sortOnDraggable) {\n return {\n draggable: true,\n onDragstart: (e: DragEvent) => {\n onDragStart(e, index, record);\n },\n onDragover: (e: DragEvent) => {\n onDragOver(e, index, record);\n },\n onDrop: () => {\n onDrop();\n },\n onDragend: () => {\n onDragEnd();\n },\n };\n }\n return {};\n }\n\n return { onDragStart, onDragOver, onDrop, onDragEnd, getDragProps, dragging: draggingIndex.value !== -1 };\n}\n","/**\n * 当标签数量过多时,输入框显示不下,则需要滚动查看,以下为滚动逻辑\n * 如果标签过多时的处理方式,是标签省略,则不需要此功能\n */\n\nimport { isFunction } from 'lodash-es';\nimport { onMounted, onUnmounted, ref, toRefs } from 'vue';\nimport { TdTagInputProps } from '../type';\n\nexport function useTagScroll(props: TdTagInputProps) {\n const tagInputRef = ref();\n const { excessTagsDisplayType, readonly, disabled } = toRefs(props);\n // 允许向右滚动的最大距离\n const scrollDistance = ref(0);\n const scrollElement = ref();\n const mouseEnterTimer = ref();\n const isScrollable = ref(false); // 设置可滚动\n\n const updateScrollElement = (element: HTMLElement) => {\n const inputElement = element.children[0] as HTMLElement;\n scrollElement.value = inputElement;\n };\n\n const updateScrollDistance = () => {\n scrollDistance.value = scrollElement.value.scrollWidth - scrollElement.value.clientWidth;\n };\n\n const scrollTo = (distance: number) => {\n if (!isFunction(scrollElement.value?.scroll)) return;\n scrollElement.value.scroll({ left: distance, behavior: 'smooth' });\n };\n\n const scrollToRight = () => {\n updateScrollDistance();\n scrollTo(scrollDistance.value);\n setTimeout(() => {\n isScrollable.value = true;\n }, 200);\n };\n\n const scrollToLeft = () => {\n scrollTo(0);\n };\n\n // TODO:MAC 电脑横向滚动,Windows 纵向滚动。当前只处理了横向滚动\n const onWheel = ({ e }: { e: WheelEvent }) => {\n if (readonly.value || disabled.value) return;\n if (!scrollElement.value) return;\n if (e.deltaX > 0) {\n const distance = Math.min(scrollElement.value.scrollLeft + 120, scrollDistance.value);\n scrollTo(distance);\n } else {\n const distance = Math.max(scrollElement.value.scrollLeft - 120, 0);\n scrollTo(distance);\n }\n };\n\n // 鼠标 hover,自动滑动到最右侧,以便输入新标签\n const scrollToRightOnEnter = () => {\n if (excessTagsDisplayType.value !== 'scroll') return;\n // 一闪而过的 mousenter 不需要执行\n mouseEnterTimer.value = setTimeout(() => {\n scrollToRight();\n clearTimeout(mouseEnterTimer.value);\n }, 100);\n };\n\n const scrollToLeftOnLeave = () => {\n if (excessTagsDisplayType.value !== 'scroll') return;\n isScrollable.value = false; // 离开焦点不可滚动\n scrollTo(0);\n clearTimeout(mouseEnterTimer.value);\n };\n\n const init = () => {\n const element = tagInputRef.value?.$el;\n if (!element) return;\n updateScrollElement(element);\n };\n\n const clear = () => {\n clearTimeout(mouseEnterTimer.value);\n };\n\n onMounted(init);\n\n onUnmounted(clear);\n\n return {\n tagInputRef,\n scrollElement,\n scrollDistance,\n scrollTo,\n scrollToRight,\n scrollToLeft,\n updateScrollElement,\n updateScrollDistance,\n onWheel,\n scrollToRightOnEnter,\n scrollToLeftOnLeave,\n isScrollable,\n };\n}\n","import { computed, ref, toRefs } from 'vue';\nimport { TagInputValue, TagInputChangeContext } from '../type';\nimport { TagInputProps } from '../types';\nimport { InputValue } from '../../input';\nimport Tag from '../../tag';\nimport { useVModel, useTNodeJSX, useDisabled, useReadonly, usePrefixClass } from '@tdesign/hooks';\n\nexport type ChangeParams = [TagInputChangeContext];\n\n// handle tag add and remove\nexport function useTagList(props: TagInputProps) {\n const renderTNode = useTNodeJSX();\n const classPrefix = usePrefixClass();\n const { value, modelValue, onRemove, max, minCollapsedNum, size, tagProps, getDragProps } = toRefs(props);\n // handle controlled property and uncontrolled property\n const [_tagValue, setTagValue] = useVModel(value, modelValue, props.defaultValue || [], props.onChange);\n const tagValue = computed(() => _tagValue.value || []);\n const oldInputValue = ref();\n\n const isDisabled = useDisabled();\n const isReadonly = useReadonly();\n\n // 点击标签关闭按钮,删除标签\n const onClose = (p: { e?: MouseEvent; index: number }) => {\n const arr = [...tagValue.value];\n const [item] = arr.splice(p.index, 1); // 当前删除的item无需参数传递\n setTagValue(arr, { trigger: 'tag-remove', ...p, item });\n onRemove.value?.({ ...p, item, trigger: 'tag-remove', value: arr });\n };\n\n const clearAll = (context: { e: MouseEvent }) => {\n setTagValue([], { trigger: 'clear', e: context.e });\n };\n\n // 按下 Enter 键,新增标签\n const onInnerEnter = (value: string, context: { e: KeyboardEvent }) => {\n const valueStr = value ? String(value).trim() : '';\n const isLimitExceeded = max && tagValue.value.length >= max.value;\n let newValue: TagInputValue = tagValue.value;\n if (!isLimitExceeded && valueStr) {\n newValue = tagValue.value.concat(String(valueStr));\n setTagValue(newValue, {\n trigger: 'enter',\n index: newValue.length - 1,\n item: valueStr,\n e: context.e,\n });\n }\n props?.onEnter?.(newValue, { ...context, inputValue: value });\n };\n\n // 按下回退键,删除标签\n const onInputBackspaceKeyUp = (value: InputValue) => {\n if (!tagValue.value.length) return;\n oldInputValue.value = value;\n };\n // 按下回退键,删除标签\n const onInputBackspaceKeyDown = (value: InputValue, context: { e: KeyboardEvent }) => {\n const { e } = context;\n if (!tagValue.value.length || e.key === 'Process' || isReadonly.value) return;\n // 回车键删除,输入框值为空时,才允许 Backspace 删除标签\n const isDelete = /(Backspace|NumpadDelete)/i.test(e.code) || /(Backspace|NumpadDelete)/i.test(e.key);\n if (!value && isDelete) {\n const index = tagValue.value.length - 1;\n const item = tagValue.value[index];\n const trigger = 'backspace';\n const newValue = tagValue.value.slice(0, -1);\n setTagValue(newValue, { e, index, item, trigger });\n onRemove.value?.({ e, index, item, trigger, value: newValue });\n }\n oldInputValue.value = value;\n };\n\n const renderLabel = ({ displayNode, label }: { displayNode: any; label: any }) => {\n const newList = minCollapsedNum.value ? tagValue.value.slice(0, minCollapsedNum.value) : tagValue.value;\n const list = displayNode\n ? [displayNode]\n : newList.map((item, index) => {\n const tagContent = renderTNode('tag', { params: { value: item } });\n return (\n onClose({ e: context.e, index })}\n closable={!isReadonly.value && !isDisabled.value}\n {...getDragProps.value?.(index, item)}\n {...tagProps.value}\n >\n {tagContent ?? item}\n \n );\n }) || [];\n if (![null, undefined, ''].includes(label)) {\n list.unshift(\n
    \n {label}\n
    ,\n );\n }\n // 超出省略\n if (newList.length !== tagValue.value.length) {\n const len = tagValue.value.length - newList.length;\n const more = renderTNode('collapsedItems', {\n params: {\n value: tagValue.value,\n count: tagValue.value.length - minCollapsedNum.value,\n collapsedTags: tagValue.value.slice(minCollapsedNum.value, tagValue.value.length),\n collapsedSelectedItems: tagValue.value.slice(minCollapsedNum.value, tagValue.value.length),\n onClose,\n },\n });\n list.push(\n more ?? (\n \n +{len}\n \n ),\n );\n }\n return list;\n };\n\n return {\n tagValue,\n clearAll,\n onClose,\n onInnerEnter,\n onInputBackspaceKeyUp,\n onInputBackspaceKeyDown,\n renderLabel,\n };\n}\n","import _TagInput from './tag-input';\nimport withInstall from '../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 { useDisabled, useReadonly, usePrefixClass, useDefaultValue } from '@tdesign/hooks';\n\nimport { PopupInstanceFunctions } from '../../popup';\n\nexport interface RenderSelectMultipleParams {\n commonInputProps: SelectInputCommonProperties;\n onInnerClear: (context: { e: MouseEvent }) => void;\n popupVisible: boolean;\n allowInput: boolean;\n}\n\nconst DEFAULT_KEYS = {\n label: 'label',\n key: 'key',\n children: 'children',\n};\n\nexport function useMultiple(props: TdSelectInputProps, context: SetupContext, popupRef: Ref) {\n const { inputValue } = toRefs(props);\n const classPrefix = usePrefixClass();\n const tagInputRef = ref();\n const isMultipleFocus = ref(props.autofocus);\n const [tInputValue, setTInputValue] = useDefaultValue(\n inputValue,\n props.defaultInputValue,\n props.onInputChange,\n 'inputValue',\n );\n const disable = useDisabled();\n const isReadonly = useReadonly();\n\n const iKeys = computed(() => ({ ...DEFAULT_KEYS, ...props.keys }));\n const tags = computed(() => {\n if (!(props.value instanceof Array)) {\n // TODO: replace isObject as isPlainObject\n return isObject(props.value) ? [(props.value as Record)[iKeys.value.label]] : [props.value];\n }\n return props.value.map((item) => (isObject(item) ? (item as Record)[iKeys.value.label] : item));\n });\n\n const tPlaceholder = computed(() => (!tags.value || !tags.value.length ? props.placeholder : ''));\n\n const onTagInputChange = (val: TagInputValue, context: SelectInputChangeContext) => {\n // 避免触发浮层的显示或隐藏\n if (context.trigger === 'tag-remove') {\n context.e?.stopPropagation();\n }\n props.onTagChange?.(val, context);\n };\n\n const onInputChange: TagInputProps['onInputChange'] = (val, ctx) => {\n if (ctx.trigger === 'enter' || ctx.trigger === 'blur') return;\n setTInputValue(val, { trigger: ctx.trigger, e: ctx.e });\n };\n\n /**\n * 筛选器统一特性:\n * 1. 筛选器按下回车时不清空输入框;\n * 2. SelectInput 的失焦不等于 TagInput。如点击下拉面板时,TagInput 失去焦点,但 SelectInput 依旧保持聚焦,允许继续选择。\n */\n const onBlur: TagInputProps['onBlur'] = (val, ctx) => {\n const overlayState = popupRef.value?.getOverlayState();\n if (overlayState?.hover) return;\n isMultipleFocus.value = false;\n props.onBlur?.(props.value, { ...ctx, tagInputValue: val });\n };\n\n const onFocus: TagInputProps['onFocus'] = (val, ctx) => {\n const overlayState = popupRef.value?.getOverlayState();\n if (isMultipleFocus.value || overlayState?.hover) return;\n isMultipleFocus.value = true;\n const params = { ...ctx, tagInputValue: val };\n props.onFocus?.(props.value, params);\n };\n\n const onEnter: TagInputProps['onEnter'] = (val, ctx) => {\n const params = { ...ctx, tagInputValue: val };\n props.onEnter?.(props.value, params);\n };\n\n const renderSelectMultiple = (p: RenderSelectMultipleParams) => {\n const tagInputProps = {\n ...p.commonInputProps,\n tagProps: props.tagProps,\n label: props.label,\n autoWidth: props.autoWidth,\n readonly: isReadonly.value,\n placeholder: tPlaceholder.value,\n minCollapsedNum: props.minCollapsedNum,\n collapsedItems: props.collapsedItems,\n tag: props.tag,\n value: tags.value,\n valueDisplay: props.valueDisplay,\n inputValue: p.popupVisible && p.allowInput ? tInputValue.value : '',\n inputProps: {\n readonly: !props.allowInput || isReadonly.value,\n inputClass: {\n [`${classPrefix.value}-input--focused`]: p.popupVisible,\n },\n ...props.inputProps,\n },\n suffixIcon: !disable.value && props.loading ? () => : props.suffixIcon,\n ...props.tagInputProps,\n };\n\n const { tips: _tips, ...slots } = context.slots;\n return (\n \n );\n };\n\n return {\n tags,\n tPlaceholder,\n tagInputRef,\n isMultipleFocus,\n multipleInputValue: tInputValue,\n renderSelectMultiple,\n };\n}\n","import { ref, toRefs, computed, CSSProperties } from 'vue';\nimport { isObject, isFunction } from 'lodash-es';\n\nimport { TdSelectInputProps } from '../type';\nimport { TdPopupProps, PopupVisibleChangeContext } from '../../popup';\nimport { useDisabled, useReadonly } from '@tdesign/hooks';\n\nexport type overlayInnerStyleProps = Pick<\n TdSelectInputProps,\n 'popupProps' | 'autoWidth' | 'readonly' | 'onPopupVisibleChange' | 'disabled' | 'allowInput' | 'popupVisible'\n>;\n\n// 单位:px\nconst MAX_POPUP_WIDTH = 1000;\n// 避免因滚动条出现文本省略,预留宽度 8\nconst RESERVE_WIDTH = 0;\n\nexport function useOverlayInnerStyle(props: overlayInnerStyleProps) {\n const { popupProps, autoWidth } = toRefs(props);\n const innerPopupVisible = ref(false);\n const disable = useDisabled();\n const isReadonly = useReadonly();\n\n const matchWidthFunc = (triggerElement: HTMLElement, popupElement: HTMLElement) => {\n const SCROLLBAR_WIDTH = popupElement.scrollHeight > popupElement.offsetHeight ? RESERVE_WIDTH : 0;\n const width =\n popupElement.offsetWidth + SCROLLBAR_WIDTH >= triggerElement.offsetWidth\n ? popupElement.offsetWidth\n : triggerElement.offsetWidth;\n let otherOverlayInnerStyle: CSSProperties = {};\n if (\n popupProps.value &&\n typeof popupProps.value.overlayInnerStyle === 'object' &&\n !popupProps.value.overlayInnerStyle.width\n ) {\n otherOverlayInnerStyle = popupProps.value.overlayInnerStyle;\n }\n return {\n width: `${Math.min(width, MAX_POPUP_WIDTH)}px`,\n ...otherOverlayInnerStyle,\n };\n };\n\n const onInnerPopupVisibleChange = (visible: boolean, ctx: PopupVisibleChangeContext) => {\n if (disable.value || isReadonly.value) return;\n // 如果点击触发元素(输入框)且为可输入状态,则继续显示下拉框\n const newVisible = ctx.trigger === 'trigger-element-click' && props.allowInput ? true : visible;\n // 重复点击触发元素时,下拉框展示状态不变,不重复触发事件\n if (props.popupVisible !== newVisible) {\n innerPopupVisible.value = newVisible;\n props.onPopupVisibleChange?.(newVisible, ctx);\n }\n };\n\n const getAutoWidthPopupStyleWidth = (triggerElement: HTMLElement, popupElement: HTMLElement) => {\n return {\n width: `${Math.max(triggerElement.offsetWidth, popupElement.offsetWidth)}px`,\n ...popupProps.value?.overlayInnerStyle,\n };\n };\n\n const tOverlayInnerStyle = computed(() => {\n let result: TdPopupProps['overlayInnerStyle'] = {};\n const overlayInnerStyle = popupProps.value?.overlayInnerStyle || {};\n if (isFunction(overlayInnerStyle) || (isObject(overlayInnerStyle) && overlayInnerStyle.width)) {\n result = overlayInnerStyle;\n } else {\n if (autoWidth.value) {\n result = getAutoWidthPopupStyleWidth;\n } else {\n result = matchWidthFunc;\n }\n }\n return result;\n });\n\n return {\n tOverlayInnerStyle,\n innerPopupVisible,\n onInnerPopupVisibleChange,\n };\n}\n","import { SetupContext, ref, computed, toRefs, Ref } from 'vue';\nimport { pick, isObject } from 'lodash-es';\n\nimport Input, { StrInputProps } from '../../input';\nimport Loading from '../../loading';\nimport { useTNodeJSX, useDisabled, useReadonly, usePrefixClass, useDefaultValue } from '@tdesign/hooks';\n\nimport { PopupInstanceFunctions } from '../../popup';\nimport { TdSelectInputProps } from '../type';\nimport { SelectInputCommonProperties } from '../types';\n\n// single 和 multiple 共有特性\nconst COMMON_PROPERTIES = [\n 'status',\n 'clearable',\n 'disabled',\n 'label',\n 'placeholder',\n 'readonly',\n 'prefixIcon',\n 'suffix',\n 'suffixIcon',\n 'onPaste',\n 'onMouseenter',\n 'onMouseleave',\n 'size',\n 'autofocus',\n];\n\nconst DEFAULT_KEYS = {\n label: 'label',\n value: 'value',\n children: 'children',\n};\n\nexport interface SelectInputValueDisplayOptions {\n useInputDisplay: boolean;\n usePlaceholder: boolean;\n}\n\nfunction getInputValue(value: TdSelectInputProps['value'], keys: TdSelectInputProps['keys']) {\n const iKeys = { ...DEFAULT_KEYS, ...keys };\n // TODO: replace isObject as isPlainObject\n return isObject(value) ? (value as Record)[iKeys.label] : value;\n}\n\nexport function useSingle(\n props: TdSelectInputProps & { valueDisplayOptions: SelectInputValueDisplayOptions },\n context: SetupContext,\n popupRef: Ref,\n) {\n const { value, keys, inputValue: propsInputValue } = toRefs(props);\n const classPrefix = usePrefixClass();\n const isSingleFocus = ref(props.autofocus);\n const inputRef = ref();\n const [inputValue, setInputValue] = useDefaultValue(\n propsInputValue,\n props.defaultInputValue ?? '',\n props.onInputChange,\n 'inputValue',\n );\n const renderTNode = useTNodeJSX();\n const disable = useDisabled();\n const isReadonly = useReadonly();\n\n const commonInputProps = computed(() => ({\n ...pick(props, COMMON_PROPERTIES),\n disabled: disable.value,\n readonly: isReadonly.value,\n }));\n\n const onInnerClear = (context: { e: MouseEvent }) => {\n context?.e?.stopPropagation();\n props.onClear?.(context);\n setInputValue('', { trigger: 'clear' });\n };\n\n const onInnerInputChange: StrInputProps['onChange'] = (value, context) => {\n if (props.allowInput) {\n setInputValue(value, { ...context, trigger: context.trigger || 'input' });\n }\n };\n\n const renderSelectSingle = (popupVisible: boolean) => {\n const singleValueDisplay = renderTNode('valueDisplay');\n const displayedValue = popupVisible && props.allowInput ? inputValue.value : getInputValue(value.value, keys.value);\n const prefixContent = renderPrefixContent(singleValueDisplay, popupVisible);\n 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 { useTNodeJSX, usePrefixClass } from '@tdesign/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","import { defineComponent, ref, toRefs, inject, watch, computed } from 'vue';\nimport { isString } from 'lodash-es';\nimport props from './props';\nimport {\n useVModel,\n useRipple,\n useContent,\n useDisabled,\n useReadonly,\n usePrefixClass,\n useCommonClassName,\n} from '@tdesign/hooks';\n\nimport { CheckboxGroupInjectionKey } from './consts';\nimport useCheckboxLazyLoad from './hooks/useCheckboxLazyLoad';\nimport useKeyboardEvent from './hooks/useKeyboardEvent';\n\nexport default defineComponent({\n name: 'TCheckbox',\n props: {\n ...props,\n needRipple: Boolean,\n stopLabelTrigger: Boolean,\n index: Number,\n // 传递给 Checkbox 组件额外的数据\n data: Object,\n },\n setup(props) {\n const labelRef = ref();\n if (props.needRipple) {\n useRipple(labelRef);\n }\n const { STATUS } = useCommonClassName();\n\n const { checked, modelValue, lazyLoad } = toRefs(props);\n const [innerChecked, setInnerChecked] = useVModel(\n checked,\n modelValue,\n props.defaultChecked,\n props.onChange,\n 'checked',\n );\n\n const checkboxGroupData = inject(CheckboxGroupInjectionKey, undefined);\n\n /**\n * Warn: Do not use computed to set tName,\n * otherwise checkbox group will render all checkbox items on every checked or unchecked.\n */\n const tName = ref();\n watch(\n () => [props.name, checkboxGroupData?.value.name].join('_'),\n () => {\n const name = props.name || checkboxGroupData?.value.name;\n if (name) {\n tName.value = name;\n }\n },\n { immediate: true },\n );\n\n // checked\n const tChecked = ref(false);\n const getChecked = () => {\n const { value, checkAll } = props;\n if (checkAll) return checkboxGroupData?.value.isCheckAll;\n return checkboxGroupData?.value ? checkboxGroupData.value.checkedValues.includes(value) : innerChecked.value;\n };\n watch(\n () => [\n innerChecked.value,\n checkboxGroupData?.value.isCheckAll,\n checkboxGroupData?.value.checkedValues?.join(','),\n ],\n () => {\n tChecked.value = getChecked();\n },\n { immediate: true },\n );\n\n // Checkbox.disabled > CheckboxGroup.disabled > Form.disabled\n const beforeDisabled = computed(() => {\n if (!props.checkAll && !tChecked.value && checkboxGroupData?.value.maxExceeded) {\n return true;\n }\n return null;\n });\n const afterDisabled = computed(() => {\n return checkboxGroupData?.value.disabled;\n });\n const isDisabled = useDisabled({ beforeDisabled, afterDisabled });\n\n // Checkbox.readonly > CheckboxGroup.readonly > Form.readonly\n const afterReadonly = computed(() => {\n return checkboxGroupData?.value.readonly;\n });\n const isReadonly = useReadonly({ afterReadonly });\n\n const tIndeterminate = ref(false);\n watch(\n () => [props.checkAll, props.indeterminate, checkboxGroupData?.value.indeterminate],\n () => {\n tIndeterminate.value = props.checkAll ? checkboxGroupData?.value.indeterminate : props.indeterminate;\n },\n { immediate: true },\n );\n\n /** update labelClasses, do not use computed to get labelClasses */\n const COMPONENT_NAME = usePrefixClass('checkbox');\n const labelClasses = ref({});\n watch(\n [tChecked, isDisabled, tIndeterminate],\n () => {\n labelClasses.value = [\n `${COMPONENT_NAME.value}`,\n {\n [STATUS.value.checked]: tChecked.value,\n [STATUS.value.disabled]: isDisabled.value,\n [STATUS.value.indeterminate]: tIndeterminate.value,\n },\n ];\n },\n { immediate: true },\n );\n\n const handleChange = (e: Event) => {\n if (isReadonly.value) return;\n const checked = !tChecked.value;\n setInnerChecked(checked, { e });\n if (checkboxGroupData?.value.handleCheckboxChange) {\n checkboxGroupData.value.onCheckedChange({ checked, checkAll: props.checkAll, e, option: props });\n }\n };\n\n const renderContent = useContent();\n\n const handleLabelClick = (e: MouseEvent) => {\n // 在tree等组件中使用 阻止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 { isObject, isUndefined, intersection } from 'lodash-es';\n\nimport Checkbox from './checkbox';\nimport props from './checkbox-group-props';\nimport { CheckboxOptionObj, TdCheckboxProps, CheckboxGroupValue } from './type';\nimport { CheckboxGroupInjectionKey } from './consts';\nimport { useVModel, useTNodeJSX, usePrefixClass, useChildComponentSlots } from '@tdesign/hooks';\n\nexport default defineComponent({\n name: 'TCheckboxGroup',\n props,\n setup(props) {\n /** 样式 */\n const COMPONENT_NAME = usePrefixClass('checkbox-group');\n const renderTNodeJSX = useTNodeJSX();\n\n const { isArray } = Array;\n const { value, modelValue } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n const optionList = ref>([]);\n\n const intersectionLen = computed(() => {\n if (!isArray(innerValue.value)) return 0;\n const values = optionList.value.map((item) => item.value);\n const n = intersection(innerValue.value, values);\n return n.length;\n });\n\n /**\n * 计算是否所有选项都被选中。\n * 此函数不接受参数,但依赖于外部的 `optionList` 和 `innerValue` 变量。\n *\n * @returns {boolean} 如果所有符合条件的选项都被选中,则返回 `true`;否则返回 `false`。\n */\n const isCheckAll = computed(() => {\n // 筛选出非禁用、非只读且不设置为“全选”的选项,并提取其值\n const optionItems = optionList.value\n .filter((item) => !item.disabled && !item.readonly && !item.checkAll)\n .map((t) => t.value);\n\n // 计算当前选中值与筛选后的选项值的交集\n const intersectionValues = intersection(optionItems, innerValue.value);\n\n // 判断交集的长度是否等于所有选项值的长度,以确定是否所有选项都被选中\n return intersectionValues.length === optionItems.length;\n });\n\n const indeterminate = computed(\n () => !isCheckAll.value && intersectionLen.value < optionList.value.length && intersectionLen.value !== 0,\n );\n\n const maxExceeded = computed(() => !isUndefined(props.max) && innerValue.value.length === props.max);\n\n watchEffect(() => {\n if (!props.options) return [];\n optionList.value = props.options.map((item) => {\n return isObject(item) ? item : { label: String(item), value: item };\n });\n });\n\n /**\n * 获取所有复选框的值。\n * 此函数遍历 `optionList` 中的项,忽略被标记为 `checkAll`、`disabled` 或 `readonly` 的项,\n * 并收集非这些状态的项的值到一个 Set 集合中。如果达到最大限制 `maxExceeded`,则停止遍历。\n *\n * @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 { useRipple, useContent, useDisabled, usePrefixClass, useCommonClassName } from '@tdesign/hooks';\n\nimport { getNewMultipleValue } from './utils';\nimport { selectInjectKey } from './consts';\nimport { SelectValue } from './type';\n\nexport default defineComponent({\n name: 'TOption',\n props: {\n ...props,\n createAble: Boolean,\n multiple: Boolean,\n index: Number,\n rowIndex: Number,\n trs: Map,\n scrollType: String,\n isVirtual: Boolean,\n bufferSize: Number,\n checkAll: Boolean,\n },\n emits: ['row-mounted'],\n\n setup(props, context) {\n const selectProvider = inject(selectInjectKey);\n const formDisabled = useDisabled();\n const { vnode } = getCurrentInstance();\n\n const isReachMax = computed(\n () =>\n selectProvider.value.max !== 0 &&\n selectProvider.value.max <= (selectProvider.value.selectValue as SelectValue[]).length,\n );\n const disabled = computed(\n () =>\n formDisabled.value ||\n (props.multiple && isReachMax.value && !isSelected.value && !selectProvider.value.isCheckAll),\n );\n\n const renderContent = useContent();\n\n const selectName = usePrefixClass('select');\n const { STATUS, SIZE } = useCommonClassName();\n const liRef = ref();\n\n const isHover = ref(false);\n\n const isSelected = computed(() => {\n if (selectProvider.value.isCheckAll && !props.disabled) return true;\n return !props.multiple\n ? selectProvider.value.selectValue === props.value\n : (selectProvider.value.selectValue as SelectValue[]).includes(props.value);\n });\n\n const isIndeterminate = computed(() => {\n if (!props.checkAll) return false;\n return selectProvider.value.indeterminate;\n });\n\n const classes = computed(() => [\n `${selectName.value}-option`,\n [SIZE.value[selectProvider.value.size]],\n {\n [STATUS.value.disabled]: disabled.value,\n [STATUS.value.selected]: isSelected.value,\n [`${selectName.value}-option__hover`]:\n (isHover.value || selectProvider.value.hoverIndex === props.index) && !disabled.value,\n },\n ]);\n\n const labelText = computed(() => props.label || props.value);\n\n const handleClick = (e: MouseEvent | KeyboardEvent) => {\n if (props.disabled || disabled.value) return;\n if (props.multiple) {\n handleCheckboxClick(!isSelected.value, { e });\n e.preventDefault();\n return;\n }\n\n if (props.createAble) {\n selectProvider.value.handleCreate?.(props.value);\n if (selectProvider.value.multiple) {\n selectProvider.value.handleValueChange(\n [...(selectProvider.value.selectValue as SelectValue[]), props.value],\n {\n selectedOptions: selectProvider.value.getSelectedOptions(),\n trigger: 'check',\n e,\n },\n );\n return;\n }\n }\n const selectedOptions = selectProvider.value.getSelectedOptions(props.value);\n selectProvider.value.handleValueChange(props.value, {\n option: selectedOptions?.[0],\n selectedOptions: selectedOptions,\n trigger: 'check',\n e,\n });\n selectProvider.value.handlePopupVisibleChange(false, { e });\n selectProvider.value.emitBlur(e);\n };\n\n const handleCheckboxClick = (val: boolean, context: { e: MouseEvent | KeyboardEvent }) => {\n if (props.checkAll) {\n selectProvider.value.onCheckAllChange(val);\n return;\n }\n const newValue = getNewMultipleValue(selectProvider.value.selectValue as SelectValue[], props.value);\n const selectedOptions = selectProvider.value.getSelectedOptions(newValue.value);\n\n const currentOption = selectProvider.value.getSelectedOptions(props.value)?.[0];\n selectProvider.value.handleValueChange(newValue.value, {\n option: currentOption,\n selectedOptions,\n trigger: val ? 'check' : 'uncheck',\n e: context.e,\n });\n };\n\n const renderTitle = () => {\n const vProps = vnode.props || {};\n // 如果设置了title 说明希望自己控制title的展示\n if (Reflect.has(vProps, 'title')) {\n return props.title;\n }\n if (typeof labelText.value === 'string') return labelText.value;\n\n return null;\n };\n\n // 处理虚拟滚动节点挂载\n onMounted(() => {\n const { trs, rowIndex, isVirtual } = props;\n if (isVirtual) {\n trs.set(rowIndex, liRef.value);\n context.emit('row-mounted');\n }\n });\n\n // 处理虚拟滚动节点移除\n onBeforeUnmount(() => {\n if (props.isVirtual) {\n const { trs, rowIndex } = props;\n trs.delete(rowIndex);\n }\n });\n\n useRipple(liRef);\n\n return () => {\n const optionChild = renderContent('default', 'content') || labelText.value;\n\n return (\n (isHover.value = true)}\n onMouseleave={() => (isHover.value = false)}\n onClick={handleClick}\n >\n {selectProvider && props.multiple ? (\n \n {optionChild}\n \n ) : (\n {optionChild}\n )}\n \n );\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nexport default {\n /** 是否显示分隔线 */\n divider: {\n type: Boolean,\n default: true,\n },\n /** 分组别名 */\n label: {\n type: String,\n },\n};\n","import { defineComponent, inject, computed } from 'vue';\nimport { useTNodeJSX, usePrefixClass, useCommonClassName } from '@tdesign/hooks';\nimport props from './option-group-props';\n\nimport { selectInjectKey } from './consts';\n\nexport default defineComponent({\n name: 'TOptionGroup',\n props,\n setup(props) {\n const selectProvider = inject(selectInjectKey);\n const COMPONENT_NAME = usePrefixClass('select-option-group');\n const { SIZE } = useCommonClassName();\n const renderTNodeJSX = useTNodeJSX();\n\n const classes = computed(() => [\n COMPONENT_NAME.value,\n SIZE.value[selectProvider.value.size],\n {\n [`${COMPONENT_NAME.value}__divider`]: props.divider,\n },\n ]);\n\n return () => (\n
  • \n {(props.label ?? false) &&
    {props.label}
    }\n {renderTNodeJSX('default')}\n
  • \n );\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdSelectProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 宽度随内容自适应 */\n autoWidth: Boolean,\n /** 自动聚焦 */\n autofocus: Boolean,\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否可以清空选项 */\n clearable: Boolean,\n /** 多选情况下,用于设置折叠项内容,默认为 `+N`。如果需要悬浮就显示其他内容,可以使用 collapsedItems 自定义。`value` 表示当前存在的所有标签,`collapsedTags` 表示折叠的标签,泛型 `T` 继承 `SelectOption`,表示选项数据;`count` 表示折叠的数量, `onClose` 表示移除标签 */\n collapsedItems: {\n type: Function as PropType,\n },\n /** 是否允许用户创建新条目,需配合 filterable 使用 */\n creatable: Boolean,\n /** 是否禁用组件 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 当下拉列表为空时显示的内容 */\n empty: {\n type: [String, Function] as PropType,\n },\n /** 自定义搜索规则,用于对现有数据进行搜索,判断是否过滤某一项数据。参数 `filterWords` 表示搜索词,`option`表示单个选项内容,返回值为 `true` 保留该选项,返回值为 `false` 则隐藏该选项。使用该方法时无需设置 `filterable` */\n filter: {\n type: Function as PropType,\n },\n /** 是否可搜索,默认搜索规则不区分大小写,全文本任意位置匹配。如果默认搜索规则不符合业务需求,可以更为使用 `filter` 自定义过滤规则 */\n filterable: Boolean,\n /** 透传 Input 输入框组件的全部属性 */\n inputProps: {\n type: Object as PropType,\n },\n /** 输入框的值 */\n inputValue: {\n type: [String, Number] as PropType,\n default: undefined as TdSelectProps['inputValue'],\n },\n /** 输入框的值,非受控属性 */\n defaultInputValue: {\n type: [String, Number] as PropType,\n },\n /** 用来定义 value / label / disabled 在 `options` 中对应的字段别名 */\n keys: {\n type: Object as PropType,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 是否为加载状态 */\n loading: Boolean,\n /** 远程加载时显示的文字,支持自定义。如加上超链接 */\n loadingText: {\n type: [String, Function] as PropType,\n },\n /** 用于控制多选数量,值为 0 则不限制 */\n max: {\n type: Number,\n default: 0,\n },\n /** 最小折叠数量,用于多选情况下折叠选中项,超出该数值的选中项折叠。值为 0 则表示不折叠 */\n minCollapsedNum: {\n type: Number,\n default: 0,\n },\n /** 是否允许多选 */\n multiple: Boolean,\n /** 数据化配置选项内容 */\n options: {\n type: Array as PropType,\n },\n /** 面板内的底部内容 */\n panelBottomContent: {\n type: [String, Function] as PropType,\n },\n /** 面板内的顶部内容 */\n panelTopContent: {\n type: [String, Function] as PropType,\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 透传给 popup 组件的全部属性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 是否显示下拉框 */\n popupVisible: {\n type: Boolean,\n default: undefined,\n },\n /** 是否显示下拉框,非受控属性 */\n defaultPopupVisible: Boolean,\n /** 组件前置图标 */\n prefixIcon: {\n type: Function as PropType,\n },\n /** 只读状态,值为真会隐藏输入框,且无法打开下拉框 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 多选且可搜索时,是否在选中一个选项后保留当前的搜索关键词 */\n reserveKeyword: Boolean,\n /** 懒加载和虚拟滚动。为保证组件收益最大化,当数据量小于阈值 `scroll.threshold` 时,无论虚拟滚动的配置是否存在,组件内部都不会开启虚拟滚动,`scroll.threshold` 默认为 `100` */\n scroll: {\n type: Object as PropType,\n },\n /** 透传 SelectInput 筛选器输入框组件的全部属性 */\n selectInputProps: {\n type: Object as PropType,\n },\n /** 是否显示右侧箭头,默认显示 */\n showArrow: {\n type: Boolean,\n default: true,\n },\n /** 组件尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdSelectProps['size'],\n validator(val: TdSelectProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdSelectProps['status'],\n validator(val: TdSelectProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 后置图标前的后置内容 */\n suffix: {\n type: [String, Function] as PropType,\n },\n /** 组件后置图标 */\n suffixIcon: {\n type: Function as PropType,\n },\n /** 透传 TagInput 标签输入框组件的全部属性 */\n tagInputProps: {\n type: Object as PropType,\n },\n /** 透传 Tag 标签组件全部属性 */\n tagProps: {\n type: Object as PropType,\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 选中值 */\n value: {\n type: [String, Number, Boolean, Object, Array] as PropType,\n default: undefined as TdSelectProps['value'],\n },\n modelValue: {\n type: [String, Number, Boolean, Object, Array] as PropType,\n default: undefined as TdSelectProps['value'],\n },\n /** 选中值,非受控属性 */\n defaultValue: {\n type: [String, Number, Boolean, Object, Array] as PropType,\n default: undefined,\n },\n /** 自定义选中项呈现的内容 */\n valueDisplay: {\n type: [String, Function] as PropType,\n },\n /** 用于控制选中值的类型。假设数据选项为:`[{ label: '姓名', value: 'name' }]`,value 表示值仅返回数据选项中的 value, object 表示值返回全部数据。 */\n valueType: {\n type: String as PropType,\n default: 'value' as TdSelectProps['valueType'],\n validator(val: TdSelectProps['valueType']): boolean {\n if (!val) return true;\n return ['value', 'object'].includes(val);\n },\n },\n /** 输入框失去焦点时触发 */\n onBlur: Function as PropType,\n /** 选中值变化时触发。`context.trigger` 表示触发变化的来源;`context.selectedOptions` 表示选中值的完整对象,数组长度一定和 `value` 相同;`context.option` 表示当前操作的选项,不一定存在 */\n onChange: Function as PropType,\n /** 点击清除按钮时触发 */\n onClear: Function as PropType,\n /** 当选择新创建的条目时触发 */\n onCreate: Function as PropType,\n /** 回车键按下时触发。`inputValue` 表示输入框的值,`value` 表示选中值 */\n onEnter: Function as PropType,\n /** 输入框获得焦点时触发 */\n onFocus: Function as PropType,\n /** 输入框值发生变化时触发,`context.trigger` 表示触发输入框值变化的来源:文本输入触发、清除按钮触发、失去焦点等 */\n onInputChange: Function as PropType,\n /** 下拉框显示或隐藏时触发 */\n onPopupVisibleChange: Function as PropType,\n /** 多选模式下,选中数据被移除时触发 */\n onRemove: Function as PropType,\n /** 输入值变化时,触发搜索事件。主要用于远程搜索新数据 */\n onSearch: Function as PropType,\n};\n","import { Ref, computed, onMounted, onBeforeUnmount } from 'vue';\nimport { useVirtualScroll } from '@tdesign/hooks';\nimport { TdSelectProps } from '../type';\nimport { Styles } from '../../common';\n\nexport const usePanelVirtualScroll = (props: {\n scroll: TdSelectProps['scroll'];\n popupContentRef: Ref;\n options: Ref;\n}) => {\n const isVirtual = computed(\n () => props.scroll?.type === 'virtual' && props.options.value?.length > (props.scroll?.threshold || 100),\n );\n\n const {\n trs = null,\n visibleData = null,\n handleScroll: handleVirtualScroll = null,\n scrollHeight = null,\n translateY = null,\n handleRowMounted = null,\n } = props.scroll?.type === 'virtual'\n ? useVirtualScroll({\n container: props.popupContentRef,\n data: props.options,\n fixedHeight: props.scroll?.isFixedRowHeight || false,\n lineHeight: props.scroll?.rowHeight || 28, // 默认每行高度28\n bufferSize: props.scroll?.bufferSize || 20,\n threshold: props.scroll?.threshold || 100,\n })\n : {};\n let lastScrollY = -1;\n\n const onInnerVirtualScroll = (e: WheelEvent) => {\n if (!isVirtual.value) {\n return;\n }\n const target = e.target as HTMLElement;\n const top = target.scrollTop;\n // 排除横向滚动触发的纵向虚拟滚动计算\n if (Math.abs(lastScrollY - top) > 5) {\n handleVirtualScroll();\n lastScrollY = top;\n } else {\n lastScrollY = -1;\n }\n };\n\n // 监听popup滚动 处理虚拟滚动时的virtualData变化\n onMounted(() => {\n props.popupContentRef.value?.addEventListener('scroll', onInnerVirtualScroll);\n });\n\n // 卸载时取消监听\n onBeforeUnmount(() => {\n props.popupContentRef.value?.removeEventListener('scroll', onInnerVirtualScroll);\n });\n\n const cursorStyle = computed(\n () =>\n ({\n position: 'absolute',\n width: '1px',\n height: '1px',\n transition: 'transform 0.2s',\n transform: `translate(0, ${scrollHeight.value}px)`,\n '-ms-transform': `translate(0, ${scrollHeight.value}px)`,\n '-moz-transform': `translate(0, ${scrollHeight.value}px)`,\n '-webkit-transform': `translate(0, ${scrollHeight.value}px)`,\n } as Styles),\n );\n\n const panelStyle = computed(\n () =>\n ({\n transform: `translate(0, ${translateY.value}px)`,\n '-ms-transform': `translate(0, ${translateY.value}px)`,\n '-moz-transform': `translate(0, ${translateY.value}px)`,\n '-webkit-transform': `translate(0, ${translateY.value}px)`,\n } as Styles),\n );\n\n return {\n trs,\n scrollHeight,\n translateY,\n visibleData,\n handleRowMounted,\n isVirtual,\n cursorStyle,\n panelStyle,\n };\n};\n","/* eslint-disable */\n/**\n * 当前虚拟滚动存在的问题\n * 1. 反复拖动滚动条,底部会出现奇怪的高度\n * 2. 表格高度发生变化时,底部也会出现奇怪的高度\n * 3. 无法直接定位滚动到某个元素,进而无法实现 Select 组件直接滚动到选中项\n */\nimport { ref, toRefs, reactive, onMounted, computed, watch, nextTick } from 'vue';\n\n// 虚拟滚动Hooks的完整实现,只所以封装成hooks,主要是为了方便跟其他组件搭配使用,比如说表格或者下拉框\nexport function useVirtualScroll({\n data,\n container,\n fixedHeight = false,\n lineHeight = 30,\n bufferSize = 20,\n threshold = 100,\n}: {\n data: any;\n container: any;\n fixedHeight: boolean;\n lineHeight: number;\n bufferSize: number;\n threshold: number;\n}) {\n const state = reactive({\n visibleData: [],\n cachedHeight: [],\n cachedScrollY: [],\n });\n const isVirtual = computed(() => data.value.length > threshold);\n const updateId = ref(0);\n const trs = new Map(); // 当前展示的行元素和数据\n\n let visibleCount = 0; // 可见的节点数量\n let beforeScrollTop = 0; // 上一次的滚动条位置\n let index = 0; // 偏移行数\n let offset = 0; // 少于一行行高的偏移量\n let start = 0; // 第一条显示的行\n let last = 0; // 最后一条显示的行\n // let revising = false; // 是否正在修正滚动条\n\n const reset = () => {\n data.value.forEach((item: any, i: number) => {\n item.$index = i;\n if (fixedHeight) {\n state.cachedScrollY[i] = i * lineHeight;\n }\n });\n if (!fixedHeight) {\n state.cachedScrollY[data.value.length - 1] = undefined; // 初始化cachedScrollY数组的长度\n }\n };\n reset();\n\n // 计算虚拟滚动列表总高度,需要动态修正\n const scrollHeight = computed(() => {\n const { cachedHeight } = state;\n const { length } = cachedHeight;\n if (length) {\n const maxScrollY = cachedHeight.reduce((sum, v) => sum + v || lineHeight, 0); // 当前总高度\n if (cachedHeight.length === data.value.length) {\n return maxScrollY;\n }\n const average = maxScrollY / cachedHeight.length; // 平均高度\n return maxScrollY + (data.value.length - cachedHeight.length) * average; // 预估总高度\n }\n return isVirtual.value ? data.value.length * lineHeight : 0;\n });\n const translateY = computed(() => {\n const { visibleData } = state;\n const firstRow = visibleData[0];\n if (firstRow) {\n // 修复只有一个元素时存在偏移的问题\n return visibleData.length === 1 ? 0 : state.cachedScrollY[firstRow.$index];\n }\n return 0;\n });\n\n // 更新可视区域的节点数据\n const updateVisibleData = () => {\n last = Math.min(start + visibleCount + bufferSize * 2, data.value.length);\n state.visibleData = data.value.slice(start, last);\n };\n // 计算每行对应的scrollTop值\n const calculateScrollY = () => {\n const anchorDom = trs.get(index); // 获取锚点元素\n if (!anchorDom) {\n return; // 快速调整高度时,新的元素可能来不及加载,暂时跳过更新\n }\n const anchorDomHeight = anchorDom?.getBoundingClientRect()?.height; // 获取锚点元素的高\n state.cachedScrollY[index] = container.value.scrollTop - offset; // 锚点元素scrollY= 容器滚动高度 - 锚点元素的offset\n state.cachedHeight[index] = anchorDomHeight;\n\n for (let i = index + 1; i <= state.visibleData[state.visibleData.length - 1]?.$index; i++) {\n // 计算锚点后面的元素scrollY\n const tr = trs.get(i);\n const { height } = tr?.getBoundingClientRect() || {};\n state.cachedHeight[i] = height;\n const scrollY = state.cachedScrollY[i - 1] + state.cachedHeight[i - 1]; // 当前元素的y 是前一个元素的y+前一个元素高度\n // state.cachedScrollY[i] = scrollY;\n state.cachedScrollY.splice(i, 1, scrollY); // 兼容vue2的composition api\n }\n\n for (let i = index - 1; i >= state.visibleData[0]?.$index; i--) {\n const tr = trs.get(i);\n const { height } = tr?.getBoundingClientRect() || {};\n state.cachedHeight[i] = height;\n const scrollY = state.cachedScrollY[i + 1] - state.cachedHeight[i]; // 当前元素的y是下一个元素y - 当前元素高度\n // state.cachedScrollY[i] = scrollY;\n state.cachedScrollY.splice(i, 1, scrollY);\n }\n if (state.cachedScrollY[0] > 0) {\n // 修正滚动过快时,滚动到顶部时,滚动条多余的问题\n // revising = true;\n const distance = state.cachedScrollY[0]; // 第一个元素scrollY即为多出的量\n const length = Math.min(last, data.value.length);\n for (let i = 0; i < length; i++) {\n // state.cachedScrollY[i] -= distance;\n state.cachedScrollY.splice(i, 1, state.cachedScrollY[i] - distance);\n }\n\n const scrollTop = state.cachedScrollY[index - 1] ? state.cachedScrollY[index - 1] + offset : offset;\n container.value.scrollTop = scrollTop;\n beforeScrollTop = scrollTop;\n // revising = false;\n }\n // 修正拖动过快时,滚动到顶端时,滚动条不足的偏差\n if (state.cachedScrollY[start] < 0) {\n // revising = true;\n const s = state.cachedHeight.slice(0, Math.max(0, index)).reduce((sum, v) => sum + v, 0) + offset;\n container.value.scrollTop = s;\n beforeScrollTop = s;\n if (s === 0) {\n index = 0;\n offset = 0;\n }\n // revising = false;\n }\n nextTick(() => {\n // setTimeout是为了保证快速拖动到底部时,以下逻辑能够正常执行\n const { scrollTop, scrollHeight, clientHeight } = container.value;\n if (scrollTop + clientHeight === scrollHeight) {\n // 滚动到底部时,修正底部有空余的问题\n // revising = true;\n for (let i = last - 1; i >= start; i--) {\n if (i === last - 1) {\n // state.cachedScrollY[i] = scrollHeight.value - state.cachedHeight[i];\n state.cachedScrollY.splice(i, 1, scrollHeight.value - state.cachedHeight[i]);\n } else {\n // state.cachedScrollY[i] = state.cachedScrollY[i + 1] - state.cachedHeight[i];\n state.cachedScrollY.splice(i, 1, state.cachedScrollY[i + 1] - state.cachedHeight[i]);\n }\n }\n // revising = false;\n }\n });\n };\n\n // 滚动时动态计算和渲染\n const handleScroll = () => {\n if (!isVirtual.value) return;\n // if (revising) {\n // return false; // 修正滚动条时,暂停滚动逻辑\n // }\n const { scrollTop } = container.value;\n let distance = scrollTop - beforeScrollTop; // 滚动差值\n beforeScrollTop = scrollTop;\n distance += offset;\n let lastIndex = index;\n // !disatance 可能为横向滚动,不做任何计算\n if (!distance) return;\n if (distance >= 0) {\n // 向下滚动\n while (lastIndex < data.value.length && distance > (state.cachedHeight[lastIndex] || lineHeight)) {\n if (!state.cachedHeight[lastIndex]) {\n state.cachedHeight[lastIndex] = lineHeight;\n }\n distance -= state.cachedHeight[lastIndex];\n lastIndex++;\n }\n if (lastIndex >= data.value.length) {\n index = data.value.length - 1;\n offset = 0;\n } else {\n index = lastIndex;\n offset = distance;\n }\n const { clientHeight, scrollHeight } = container.value;\n if (scrollTop + clientHeight === scrollHeight) {\n // 滚动条到底了\n index = data.value.length - visibleCount + 1;\n // calculateScrollY();\n }\n if (start <= index - bufferSize) {\n // 计算第一个挂载元素\n start = Math.min(data.value.length - visibleCount, index - bufferSize);\n if (start < 0) {\n start = 0;\n }\n }\n } else {\n // 向上滚动\n while (distance < 0) {\n lastIndex--;\n if (!state.cachedHeight[lastIndex]) {\n state.cachedHeight[lastIndex] = lineHeight;\n }\n distance += state.cachedHeight[lastIndex];\n }\n if (lastIndex < 0) {\n index = 0;\n offset = 0;\n } else {\n index = lastIndex;\n offset = distance;\n }\n calculateScrollY();\n if (start > index - bufferSize) {\n // 计算第一个挂载元素\n start = Math.max(0, index - bufferSize);\n }\n }\n updateVisibleData();\n };\n\n !fixedHeight && watch(updateId, calculateScrollY, { flush: 'post' });\n const handleRowMounted = () => {\n if (!isVirtual.value) return;\n updateId.value++;\n };\n watch(data, () => {\n reset();\n state.visibleData = [];\n state.cachedScrollY = [];\n state.cachedHeight = [];\n beforeScrollTop = 0;\n index = 0;\n offset = 0;\n start = 0;\n // revising = false;\n trs.clear();\n if (data.value.length <= threshold) {\n state.visibleData = data.value;\n } else {\n updateVisibleData();\n }\n\n container.value && (container.value.scrollTop = 0);\n });\n let mounted = false;\n const refreshContainer = () => {\n if (mounted) {\n visibleCount = Math.ceil(container.value.offsetHeight / lineHeight);\n updateVisibleData();\n }\n };\n onMounted(() => {\n if (!window || !window.IntersectionObserver) {\n return;\n }\n const ob = new window.IntersectionObserver((entries) => {\n const entry = entries[0];\n if (entry.isIntersecting || entry.intersectionRatio) {\n mounted = true;\n isVirtual.value && refreshContainer();\n ob.unobserve(container.value);\n }\n });\n container.value && ob.observe(container.value);\n });\n return {\n trs,\n scrollHeight,\n ...toRefs(state),\n translateY,\n handleScroll,\n handleRowMounted,\n refreshContainer,\n fixedHeight,\n calculateScrollY,\n };\n}\n","import { computed, defineComponent, inject, Slots, ref } from 'vue';\nimport { omit } from 'lodash-es';\nimport { Styles } from '../common';\n\nimport { SelectOption, SelectOptionGroup, TdOptionProps } from './type';\nimport Option from './option';\nimport OptionGroup from './option-group';\nimport TdSelectProps from './props';\n\nimport { useConfig, useTNodeJSX, usePrefixClass, useTNodeDefault } from '@tdesign/hooks';\n\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 { get, omit, isArray, isFunction } from 'lodash-es';\n\nimport { useChildComponentSlots } from '@tdesign/hooks';\nimport { TdSelectProps, TdOptionProps, SelectOptionGroup, SelectValue, SelectOption } from '../type';\nimport { KeysType } from '../../common';\n\ntype UniOption = (TdOptionProps | SelectOptionGroup) & {\n index?: number;\n slots?: Slots;\n};\n\nexport const useSelectOptions = (props: TdSelectProps, keys: Ref, inputValue: Ref) => {\n const getChildComponentSlots = useChildComponentSlots();\n const optionsCache = ref([]);\n\n const options = computed(() => {\n let dynamicIndex = 0;\n // 统一处理 keys,处理通用数据\n const innerOptions: UniOption[] =\n props.options?.map((option) => {\n const getFormatOption = (option: TdOptionProps) => {\n const { value, label, disabled } = keys.value;\n const restOption = omit(option, [value, label, disabled]) as Partial;\n const res = {\n ...restOption,\n index: dynamicIndex,\n label: get(option, label),\n value: get(option, value),\n disabled: get(option, disabled) || false,\n };\n dynamicIndex++;\n return res;\n };\n if ((option as SelectOptionGroup).children) {\n return {\n ...option,\n children: (option as SelectOptionGroup).children.map((child) => getFormatOption(child)),\n };\n }\n return getFormatOption(option);\n }) || [];\n\n // 处理 slots\n const optionsSlots = getChildComponentSlots('Option');\n const groupSlots = getChildComponentSlots('OptionGroup');\n\n if (isArray(groupSlots)) {\n for (const group of groupSlots) {\n const groupOption = {\n group: group.props?.label,\n ...group.props,\n children: [] as TdOptionProps[],\n };\n const res = getChildComponentSlots('Option', group.children as Slots);\n if (!isArray(res)) continue;\n for (const child of res) {\n groupOption.children.push({\n ...child.props,\n slots: child.children,\n index: dynamicIndex,\n } as TdOptionProps);\n dynamicIndex++;\n }\n\n innerOptions.push(groupOption);\n }\n }\n if (isArray(optionsSlots)) {\n for (const child of optionsSlots) {\n innerOptions.push({\n ...child.props,\n slots: child.children,\n index: dynamicIndex,\n } as TdOptionProps);\n dynamicIndex++;\n }\n }\n return innerOptions;\n });\n\n const optionsList = computed(() => {\n const res: TdOptionProps[] = [];\n const getOptionsList = (options: TdOptionProps[]) => {\n for (const option of options) {\n if ((option as SelectOptionGroup).children) {\n getOptionsList((option as SelectOptionGroup).children);\n } else {\n res.push(option);\n }\n }\n };\n getOptionsList(options.value);\n return res;\n });\n\n const optionsMap = computed(() => {\n const res = new Map();\n // map以最新的为主 避免存在重复value更新的场景 https://github.com/Tencent/tdesign-vue-next/issues/2646\n optionsCache.value.concat(optionsList.value).forEach((option: TdOptionProps) => {\n res.set(option.value, option);\n });\n return res;\n });\n\n const filterMethods = (option: SelectOption) => {\n if (isFunction(props.filter)) {\n return props.filter(`${inputValue.value}`, option);\n }\n return option.label?.toLowerCase?.().indexOf(`${inputValue.value}`.toLowerCase()) > -1;\n };\n\n const displayOptions = computed(() => {\n if (props.onSearch && props.filterable) return options.value; // 远程搜索时,不执行内部的过滤,不干预用户的自行处理,如输入首字母搜索中文的场景等\n\n if (!inputValue.value || !(props.filterable || isFunction(props.filter))) return options.value;\n\n let checkAllOption: SelectOption;\n\n let res: SelectOption[] = [];\n\n options.value.forEach((option) => {\n if ((option as SelectOptionGroup).children) {\n res.push({\n ...option,\n children: (option as SelectOptionGroup).children.filter(filterMethods),\n });\n }\n\n if ((option as TdOptionProps)?.checkAll === true) checkAllOption = option;\n\n if (filterMethods(option)) {\n res.push(option);\n }\n });\n\n if (!isFunction(props.filter)) {\n // 使用默认 filter,增加表现,调整全等项到首尾,避免全等项位于最后\n // inputValue: ab\n // options abcde, abcd, abc, ab\n const exactMatch = res.filter((item) => item.label === inputValue.value);\n const fuzzyMatch = res.filter((item) => item.label !== inputValue.value);\n res = exactMatch.concat(fuzzyMatch);\n }\n\n return res.length && checkAllOption ? [checkAllOption, ...res] : res;\n });\n\n return {\n options,\n optionsMap,\n optionsList,\n optionsCache,\n displayOptions,\n filterMethods,\n };\n};\n","import { defineComponent, provide, computed, toRefs, watch, ref, nextTick, PropType } from 'vue';\nimport { get, isArray, debounce, cloneDeep, isFunction, intersection, pick as picker } from 'lodash-es';\n\nimport FakeArrow from '../common-components/fake-arrow';\nimport SelectInput from '../select-input';\nimport SelectPanel from './select-panel';\nimport Tag from '../tag';\nimport props from './props';\n// hooks\nimport {\n useVModel,\n useConfig,\n useDisabled,\n useReadonly,\n useTNodeJSX,\n usePrefixClass,\n useDefaultValue,\n} from '@tdesign/hooks';\n\nimport { getSingleContent, getMultipleContent } from './utils';\nimport { selectInjectKey } from './consts';\nimport { useSelectOptions, useKeyboardControl } from './hooks';\nimport type { PopupProps, PopupVisibleChangeContext } from '../popup';\nimport type { SelectInputChangeContext, SelectInputValueChangeContext } from '../select-input';\nimport type { TdSelectProps, SelectValue, TdOptionProps } from './type';\nimport { SelectInputValueDisplayOptions } from '../select-input/hooks/useSingle';\nimport { TagInputTriggerSource } from '../tag-input';\n\nexport default defineComponent({\n name: 'TSelect',\n props: {\n ...props,\n /**\n * 非公开 API,请勿使用(后续即将删除)\n */\n valueDisplayOptions: {\n type: Object as PropType,\n },\n },\n setup(props: TdSelectProps & { valueDisplayOptions: SelectInputValueDisplayOptions }, { slots }) {\n const classPrefix = usePrefixClass();\n const isDisabled = useDisabled();\n const isReadonly = useReadonly();\n const renderTNodeJSX = useTNodeJSX();\n const COMPONENT_NAME = usePrefixClass('select');\n const { globalConfig, t } = useConfig('select');\n const { popupVisible, inputValue, modelValue, value } = toRefs(props);\n const [innerInputValue, setInputValue] = useDefaultValue(\n inputValue,\n props.defaultInputValue,\n props.onInputChange,\n 'inputValue',\n );\n const [orgValue, setOrgValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const selectPanelRef = ref(null);\n const selectInputRef = ref(null);\n const keys = computed(() => ({\n label: props.keys?.label || 'label',\n value: props.keys?.value || 'value',\n disabled: props.keys?.disabled || 'disabled',\n }));\n const { optionsMap, optionsList, optionsCache, displayOptions, filterMethods } = useSelectOptions(\n props,\n keys,\n innerInputValue,\n );\n\n // 内部数据,格式化过的\n const innerValue = computed(() => {\n if (orgValue.value === undefined) {\n return props.multiple ? [] : undefined;\n }\n if (props.valueType === 'object') {\n return !props.multiple\n ? // @ts-ignore\n // TODO optimize SelectValue\n orgValue.value[keys.value.value]\n : // @ts-ignore\n // TODO optimize SelectValue\n (orgValue.value as SelectValue[]).map((option) => option[keys.value.value]);\n }\n return orgValue.value;\n });\n\n const setInnerValue: TdSelectProps['onChange'] = (newVal: SelectValue | SelectValue[], context) => {\n if (props.valueType === 'object') {\n const { value, label } = keys.value;\n const getOption = (val: SelectValue) => {\n if (val === undefined) {\n return undefined;\n }\n const option = optionsMap.value.get(val);\n return {\n [value]: get(option, 'value'),\n [label]: get(option, 'label'),\n };\n };\n newVal = props.multiple ? (newVal as SelectValue[]).map((val) => getOption(val)) : getOption(newVal);\n }\n if (newVal === orgValue.value) return;\n\n // 多选场景下 在选中值时,且不保留reserveKeyword 的情况下 ,需要清空输入(筛选)值\n if (props.multiple && !props.reserveKeyword && context.trigger == 'check') setInputValue('');\n\n setOrgValue(newVal, {\n selectedOptions: getSelectedOptions(newVal),\n ...context,\n });\n if (props.multiple && context.trigger === 'uncheck' && context.option) {\n props.onRemove?.({\n value: get(context.option, keys.value.value),\n data: context.option,\n e: context.e,\n });\n }\n };\n\n const [innerPopupVisible, setInnerPopupVisible] = useDefaultValue(\n popupVisible,\n false,\n (visible: boolean, context: PopupVisibleChangeContext) => {\n props.onPopupVisibleChange?.(visible, context);\n },\n 'popupVisible',\n );\n\n const placeholderText = computed(\n () =>\n ((!props.multiple && innerPopupVisible.value && getSingleContent(innerValue.value, optionsMap)) ||\n props.placeholder) ??\n t(globalConfig.value.placeholder),\n );\n\n // selectInput 展示值\n const displayText = computed(() =>\n props.multiple\n ? getMultipleContent(innerValue.value as SelectValue[], optionsMap)\n : getSingleContent(innerValue.value, optionsMap),\n );\n\n // valueDisplayParams参数\n const valueDisplayParams = computed(() => {\n if (!props.multiple) {\n return {\n ...optionsMap.value.get(innerValue.value),\n value: innerValue.value,\n label: displayText.value,\n };\n }\n\n const val = isArray(innerValue.value) ? innerValue.value.map((value) => optionsMap.value.get(value)) : [];\n const params = {\n value: val,\n onClose: props.multiple ? (index: number) => removeTag(index) : () => {},\n };\n\n if (props.minCollapsedNum && isArray(innerValue.value)) {\n return {\n ...params,\n displayValue: Array.isArray(val) ? val.slice(0, props.minCollapsedNum) : [],\n };\n }\n return params;\n });\n\n const isFilterable = computed(() => {\n return Boolean(props.filterable || globalConfig.value.filterable || isFunction(props.filter));\n });\n\n const isRemoteSearch = computed(() => {\n return Boolean((props.filterable || globalConfig.value.filterable) && isFunction(props.onSearch));\n });\n\n // 移除tag\n const removeTag = (index: number, context?: SelectInputChangeContext) => {\n const { e, trigger = 'tag-remove' } =\n (context as SelectInputChangeContext & {\n trigger: Exclude;\n }) || {};\n\n e && e.stopPropagation();\n\n const selectValue = cloneDeep(innerValue.value) as SelectValue[];\n const value = selectValue[index];\n\n selectValue.splice(index, 1);\n\n if (trigger === 'backspace') {\n // 如果最后一个为disabled,则应删除前一项(非disabled的)\n let closest = -1;\n let len = index;\n const currentSelected = getCurrentSelectedOptions();\n while (len >= 0) {\n if (!currentSelected[len]?.disabled) {\n closest = len;\n break;\n }\n len -= 1;\n }\n // 只剩下disabled的情况,不做任何操作\n if (closest < 0) return;\n\n // 前面不是disabled的option\n const values = currentSelected[closest];\n\n const currentSelectedOptions = currentSelected.filter((item) => item.value !== values.value);\n\n setInnerValue(\n currentSelectedOptions.map((item) => item.value),\n { selectedOptions: currentSelectedOptions, trigger, e },\n );\n\n props.onRemove?.({\n value: values.value as string | number,\n data: values,\n e,\n });\n\n return;\n }\n\n if (trigger !== 'clear') {\n setInnerValue(selectValue, { selectedOptions: getSelectedOptions(selectValue), trigger, e });\n }\n\n props.onRemove?.({\n value: value as string | number,\n data: optionsMap.value.get(value),\n e,\n });\n };\n\n const handleCreate = () => {\n if (!innerInputValue.value) return;\n props.onCreate?.(innerInputValue.value);\n // only clean input value when reopen popup\n if (!innerPopupVisible.value) setInputValue('');\n };\n\n const popupContentRef = computed(() => selectInputRef.value?.popupRef.getOverlay() as HTMLElement);\n\n /**\n * 可选选项的列表\n * 排除已禁用和全选的选项,考虑过滤情况\n */\n const optionalList = computed(() =>\n optionsList.value.filter((item) => {\n return (\n !item.disabled &&\n // @ts-ignore types only declare checkAll not declare check-all\n !(item['check-all'] || item['check-all'] === '') &&\n !item.checkAll &&\n filterMethods(item)\n );\n }),\n );\n\n const getSelectedOptions = (selectValue: SelectValue[] | SelectValue = innerValue.value) => {\n return optionsList.value.filter((option) => {\n if (option.checkAll) return;\n if (isArray(selectValue)) return selectValue.includes(option.value);\n return selectValue === option.value;\n });\n };\n\n // 获取当前选中的选项,和 getSelectedOptions 的区别是 这个会保持选择的先后顺序\n const getCurrentSelectedOptions = (selectValue: SelectValue[] | SelectValue = innerValue.value) => {\n const options: TdOptionProps[] = [];\n const values = isArray(selectValue) ? selectValue : [selectValue];\n\n values.forEach((value) => {\n const option = optionsMap.value.get(value);\n if (option) options.push(option);\n });\n\n return options;\n };\n\n /*\n * 全选逻辑:\n * 根据 checked 的值计算最终选中的值:\n * - 如果 checked 为 true,则选中所有非 disabled 选项,并保留已选中的 disabled 选项。\n * - 如果 checked 为 false,则只保留已选中的 disabled 选项。\n * - 过滤条件下,如果 checked 为 true,则选中所有非 disabled 选项,并保留已选中的选项。\n * - 过滤条件下,如果 checked 为 false,则只保留已选中的 disabled 选项。\n */\n const onCheckAllChange = (checked: boolean) => {\n if (!props.multiple) return;\n const { value } = keys.value;\n // disabled状态的选项,不参与全选的计算,始终保留\n const lockedValues = innerValue.value.filter((value: string | number | boolean) => {\n return optionsList.value.find((item) => item.value === value && item.disabled);\n });\n\n const activeValues = optionalList.value.map((option) => option.value);\n const formattedOrgValue =\n props.valueType === 'object'\n ? (orgValue.value as Array).map((v) => get(v, value))\n : orgValue.value;\n\n const values = checked\n ? [...new Set([...(formattedOrgValue as Array), ...activeValues, ...lockedValues])]\n : [...lockedValues];\n setInnerValue(values, { selectedOptions: getSelectedOptions(values), trigger: checked ? 'check' : 'clear' });\n };\n\n // 全选\n const isCheckAll = computed(() => {\n if (intersectionLen.value === 0) return false;\n return intersectionLen.value === optionalList.value.length;\n });\n\n const { hoverIndex, virtualFilteredOptions, handleKeyDown, filteredOptions } = useKeyboardControl({\n displayOptions,\n optionsList,\n innerPopupVisible,\n setInnerPopupVisible,\n selectPanelRef,\n isFilterable,\n isRemoteSearch,\n getSelectedOptions,\n setInnerValue,\n onCheckAllChange,\n isCheckAll,\n innerValue,\n popupContentRef,\n multiple: props.multiple,\n max: props.max,\n });\n\n // 已选的长度\n const intersectionLen = computed(() => {\n const values = optionalList.value.map((item) => item.value);\n const n = intersection(innerValue.value, values);\n return n.length;\n });\n\n // 半选\n const indeterminate = computed(() => !isCheckAll.value && intersectionLen.value !== 0);\n\n const SelectProvider = computed(() => ({\n max: props.max,\n multiple: props.multiple,\n hoverIndex: hoverIndex.value,\n selectValue: innerValue.value,\n reserveKeyword: props.reserveKeyword,\n handleValueChange: setInnerValue,\n handlerInputChange: setInputValue,\n handlePopupVisibleChange: setInnerPopupVisible,\n handleCreate,\n size: props.size,\n popupContentRef,\n indeterminate: indeterminate.value,\n isCheckAll: isCheckAll.value,\n onCheckAllChange,\n getSelectedOptions,\n displayOptions: displayOptions.value,\n emitBlur: handleOptionEmitBlur,\n }));\n\n provide(selectInjectKey, SelectProvider);\n\n const checkValueInvalid = () => {\n // 参数类型检测与修复\n if (!props.multiple && isArray(orgValue.value)) {\n setOrgValue(undefined, { selectedOptions: [], trigger: 'default' });\n }\n if (props.multiple && !isArray(orgValue.value)) {\n setOrgValue([], { selectedOptions: [], trigger: 'default' });\n }\n };\n\n const handleSearch = debounce((value: string, { e }: { e: KeyboardEvent }) => {\n props.onSearch?.(`${value}`, { e });\n }, 300);\n\n const handlerInputChange = (value: string, context: SelectInputValueChangeContext) => {\n if (value) {\n !innerPopupVisible.value && setInnerPopupVisible(true, { e: context.e as KeyboardEvent });\n }\n setInputValue(value);\n handleSearch(`${value}`, { e: context.e as KeyboardEvent });\n nextTick(() => {\n virtualFilteredOptions.value = selectPanelRef.value?.visibleData;\n filteredOptions.value = selectPanelRef.value?.displayOptions;\n });\n };\n\n const handleOptionEmitBlur = (e: MouseEvent | KeyboardEvent) => {\n props.onBlur?.({ e, value: innerValue.value });\n };\n\n const handlerPopupVisibleChange = (visible: boolean, context: PopupVisibleChangeContext) => {\n setInnerPopupVisible(visible, context);\n // 在通过点击选择器打开弹窗时 清空此前的输入内容 避免在关闭时就清空引起的闪烁问题\n if (visible && context.trigger === 'trigger-element-click') setInputValue('');\n };\n\n const handlerPopupScrollToBottom: PopupProps['onScrollToBottom'] = async (context) => {\n const { popupProps } = props;\n if (props.loading) {\n return;\n }\n // @ts-ignore types 中只有 onScrollToBottom,但 Vue 会自动转换 on-scroll-to-bottom 并支持,故此处都进行调用\n popupProps?.['on-scroll-to-bottom']?.(context);\n popupProps?.onScrollToBottom?.(context);\n };\n\n const addCache = (val: SelectValue) => {\n if (props.multiple) {\n const newCache = [];\n for (const item of (val as SelectValue[]) || []) {\n const option = optionsMap.value.get(item);\n if (option) {\n newCache.push(option);\n }\n }\n optionsCache.value = Array.from(new Set([...newCache, ...optionsCache.value]));\n } else {\n const option = optionsMap.value.get(val);\n if (option) {\n optionsCache.value = Array.from(new Set([option, ...optionsCache.value]));\n }\n }\n };\n\n watch(\n orgValue,\n (val) => {\n checkValueInvalid();\n nextTick(() => {\n addCache(val);\n });\n },\n {\n immediate: true,\n },\n );\n watch(\n () => props.multiple,\n () => {\n checkValueInvalid();\n },\n );\n\n // 列表展开时定位置选中项\n const updateScrollTop = (content: HTMLDivElement) => {\n if (!selectPanelRef.value) {\n return;\n }\n const firstSelectedNode: HTMLDivElement = (selectPanelRef.value?.innerRef as HTMLDivElement)?.querySelector(\n `.${classPrefix.value}-is-selected`,\n );\n // 此处需要等待渲染后进行计算\n nextTick(() => {\n if (firstSelectedNode && content) {\n const { paddingBottom } = getComputedStyle(firstSelectedNode);\n const { marginBottom } = getComputedStyle(content);\n const elementBottomHeight = parseInt(paddingBottom, 10) + parseInt(marginBottom, 10);\n // 小于0时不需要特殊处理,会被设为0\n const updateValue =\n firstSelectedNode.offsetTop -\n content.offsetTop -\n (content.clientHeight - firstSelectedNode.clientHeight) +\n elementBottomHeight;\n // eslint-disable-next-line no-param-reassign\n content.scrollTop = updateValue;\n }\n });\n };\n\n const renderValueDisplay = () => {\n const renderTag = () => {\n if (!props.multiple) {\n return undefined;\n }\n const currentSelectedOptions = getCurrentSelectedOptions(innerValue.value);\n return innerValue.value\n .slice(0, props.minCollapsedNum ? props.minCollapsedNum : innerValue.value.length)\n .map?.((v: string, key: number) => {\n let tagIndex: number;\n const option = currentSelectedOptions.find((item, index) => {\n if (item.value === v) {\n tagIndex = index;\n return true;\n }\n });\n\n return (\n {\n e.stopPropagation();\n props.tagProps?.onClose?.({ e });\n removeTag(tagIndex);\n }}\n >\n {option ? option.label ?? option?.value : v}\n \n );\n });\n };\n\n return (\n renderTNodeJSX('valueDisplay', {\n params: valueDisplayParams.value,\n }) || renderTag()\n );\n };\n\n provide('updateScrollTop', updateScrollTop);\n return () => {\n const { overlayClassName, ...restPopupProps } = (props.popupProps || {}) as TdSelectProps['popupProps'];\n return (\n
    \n {\n removeTag(ctx.index, ctx);\n }}\n tagProps={{ ...(props.tagProps as TdSelectProps['tagProps']) }}\n popupProps={{\n overlayClassName: [`${COMPONENT_NAME.value}__dropdown`, overlayClassName],\n ...restPopupProps,\n onScrollToBottom: handlerPopupScrollToBottom,\n }}\n label={props.label}\n prefixIcon={props.prefixIcon}\n suffix={props.suffix}\n suffixIcon={() => {\n if (props.suffixIcon || slots.suffixIcon) {\n return renderTNodeJSX('suffixIcon');\n }\n\n return (\n props.showArrow && (\n \n )\n );\n }}\n valueDisplay={renderValueDisplay}\n onPopupVisibleChange={handlerPopupVisibleChange}\n onInputChange={handlerInputChange}\n onClear={({ e }) => {\n setInnerValue(props.multiple ? [] : undefined, {\n option: null,\n selectedOptions: getSelectedOptions(props.multiple ? [] : undefined),\n trigger: 'clear',\n e,\n });\n props.onClear?.({ e });\n }}\n onEnter={(inputValue, { e }) => {\n // onEnter和handleKeyDown的Enter事件同时触发,需要通过setTimeout设置先后\n setTimeout(() => {\n props.onEnter?.({ inputValue: `${innerInputValue.value}`, e, value: innerValue.value });\n handleCreate();\n }, 0);\n }}\n onBlur={(inputValue, { e }) => {\n props.onBlur?.({ e, value: innerValue.value });\n }}\n onFocus={(inputValue, { e }) => {\n props.onFocus?.({ e, value: innerValue.value });\n }}\n {...(props.selectInputProps as TdSelectProps['selectInputProps'])}\n v-slots={{\n label: slots.label,\n prefixIcon: slots.prefixIcon,\n suffix: slots.suffix,\n panel: () => (\n \n ),\n collapsedItems: slots.collapsedItems,\n }}\n />\n
    \n );\n };\n },\n});\n","import { ref, watch, ComputedRef, Ref } from 'vue';\nimport { usePrefixClass } from '@tdesign/hooks';\n\nimport { getNewMultipleValue } from '../utils';\n\nimport type { SelectOption, TdOptionProps, SelectValue } from '../type';\nimport type { ChangeHandler } from '@tdesign/hooks';\nimport type { PopupVisibleChangeContext } from '../../popup';\n\nexport type useKeyboardControlType = {\n displayOptions: ComputedRef;\n optionsList: ComputedRef;\n innerPopupVisible: Ref;\n setInnerPopupVisible: ChangeHandler;\n selectPanelRef: Ref<{ isVirtual: boolean; innerRef: HTMLDivElement }>;\n isFilterable: ComputedRef;\n isRemoteSearch: ComputedRef;\n getSelectedOptions: (selectValue?: SelectValue[] | SelectValue) => TdOptionProps[];\n setInnerValue: Function;\n onCheckAllChange: Function;\n isCheckAll: ComputedRef;\n innerValue: Ref;\n popupContentRef: ComputedRef;\n multiple: boolean;\n max: number;\n};\n\n// 统一处理键盘控制的hooks\nexport function useKeyboardControl({\n displayOptions,\n optionsList,\n innerPopupVisible,\n setInnerPopupVisible,\n selectPanelRef,\n isFilterable,\n isRemoteSearch,\n getSelectedOptions,\n setInnerValue,\n onCheckAllChange,\n innerValue,\n popupContentRef,\n multiple,\n max,\n isCheckAll,\n}: useKeyboardControlType) {\n const hoverIndex = ref(-1);\n const filteredOptions = ref([]); // 处理普通场景选项过滤键盘选中的问题\n const virtualFilteredOptions = ref([]); // 处理虚拟滚动下选项过滤通过键盘选择的问题\n const classPrefix = usePrefixClass();\n const handleKeyDown = (e: KeyboardEvent) => {\n const optionsListLength = displayOptions.value.length;\n let newIndex = hoverIndex.value;\n switch (e.code) {\n case 'ArrowUp':\n e.preventDefault();\n if (hoverIndex.value === -1) {\n newIndex = 0;\n } else if (hoverIndex.value === 0 || hoverIndex.value > displayOptions.value.length - 1) {\n newIndex = optionsListLength - 1;\n } else {\n newIndex--;\n }\n if (optionsList.value[newIndex]?.disabled) {\n newIndex--;\n }\n hoverIndex.value = newIndex;\n break;\n case 'ArrowDown':\n e.preventDefault();\n\n if (hoverIndex.value === -1 || hoverIndex.value >= optionsListLength - 1) {\n newIndex = 0;\n } else {\n newIndex++;\n }\n if (optionsList.value[newIndex]?.disabled) {\n newIndex++;\n }\n hoverIndex.value = newIndex;\n break;\n case 'Enter':\n if (hoverIndex.value === -1) break;\n\n let finalOptions =\n selectPanelRef.value.isVirtual && isFilterable.value && virtualFilteredOptions.value.length\n ? virtualFilteredOptions.value\n : isRemoteSearch.value\n ? optionsList.value\n : filteredOptions.value;\n\n if (!finalOptions.length) finalOptions = optionsList.value;\n if (!innerPopupVisible.value) {\n setInnerPopupVisible(true, { e });\n break;\n }\n\n if (!multiple) {\n const selectedOptions = getSelectedOptions(finalOptions[hoverIndex.value].value);\n setInnerValue(finalOptions[hoverIndex.value].value, {\n option: selectedOptions?.[0],\n selectedOptions: getSelectedOptions(finalOptions[hoverIndex.value].value),\n trigger: 'check',\n e,\n });\n setInnerPopupVisible(false, { e });\n } else {\n if (hoverIndex.value === -1) return;\n\n if (finalOptions[hoverIndex.value].checkAll) {\n onCheckAllChange(!isCheckAll.value);\n return;\n }\n\n const optionValue = finalOptions[hoverIndex.value]?.value;\n\n if (!optionValue) return;\n const newValue = getNewMultipleValue(innerValue.value, optionValue);\n\n if (max > 0 && newValue.value.length > max) return; // 如果已选达到最大值 则不处理\n const selectedOptions = getSelectedOptions(newValue.value);\n setInnerValue(newValue.value, {\n option: selectedOptions.find((v) => v.value == optionValue),\n selectedOptions,\n trigger: newValue.isCheck ? 'check' : 'uncheck',\n e,\n });\n filteredOptions.value = [];\n }\n break;\n case 'Escape':\n setInnerPopupVisible(false, { e });\n break;\n }\n };\n\n watch(innerPopupVisible, (value) => {\n if (value) {\n // 展开重新恢复初始值\n hoverIndex.value = -1;\n virtualFilteredOptions.value = [];\n filteredOptions.value = [];\n }\n });\n\n // 处理键盘操作滚动 超出视图时继续自动滚动到键盘所在元素\n watch(hoverIndex, (index) => {\n const optionHeight = selectPanelRef.value?.innerRef?.querySelector(\n `.${classPrefix.value}-select-option`,\n )?.clientHeight;\n\n const scrollHeight = optionHeight * index;\n\n popupContentRef.value.scrollTo({\n top: scrollHeight,\n behavior: 'smooth',\n });\n });\n\n return {\n hoverIndex,\n handleKeyDown,\n virtualFilteredOptions,\n filteredOptions,\n };\n}\n","import _Select from './select';\nimport _Option from './option';\nimport _OptionGroup from './option-group';\nimport withInstall from '../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, isNumber, isFunction } from 'lodash-es';\n\nimport { useTNodeJSX, usePrefixClass } from '@tdesign/hooks';\n\nimport props from './props';\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, isObject } from 'lodash-es';\nimport {\n PageFirstIcon as TdPageFirstIcon,\n PageLastIcon as TdPageLastIcon,\n ChevronLeftIcon as TdChevronLeftIcon,\n ChevronRightIcon as TdChevronRightIcon,\n ChevronLeftDoubleIcon as TdChevronLeftDoubleIcon,\n ChevronRightDoubleIcon as TdChevronRightDoubleIcon,\n EllipsisIcon as TdEllipsisIcon,\n} from 'tdesign-icons-vue-next';\nimport { useConfig, useVModel, useTNodeJSX, useGlobalIcon, usePrefixClass, useDefaultValue } from '@tdesign/hooks';\n\nimport TInputNumber from '../input-number';\nimport { Select } from '../select';\nimport TInputAdornment from '../input-adornment';\nimport props from './props';\nimport { usePaginationClasses, useMoreAction } from './hooks';\n\nimport type { PageInfo, TdPaginationProps } from '../pagination/type';\n\nconst min = 1;\n\ntype PageChangeType = 'prevPage' | 'nextPage' | 'prevMorePage' | 'nextMorePage';\n\nexport default defineComponent({\n name: 'TPagination',\n props,\n\n setup(props: TdPaginationProps) {\n const { emit } = getCurrentInstance();\n\n const { modelValue, pageSize, current } = toRefs(props);\n const renderTNodeJSX = useTNodeJSX();\n const [innerCurrent, setInnerCurrent] = useVModel(\n current,\n modelValue,\n props.defaultCurrent,\n props.onCurrentChange,\n 'current',\n );\n\n const [innerPageSize, setInnerPageSize] = useDefaultValue(\n pageSize,\n props.defaultPageSize,\n props.onPageSizeChange,\n 'pageSize',\n );\n\n const { t, globalConfig } = useConfig('pagination');\n const COMPONENT_NAME = usePrefixClass('pagination');\n const {\n PageFirstIcon,\n PageLastIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n ChevronLeftDoubleIcon,\n ChevronRightDoubleIcon,\n EllipsisIcon,\n } = useGlobalIcon({\n PageFirstIcon: TdPageFirstIcon,\n PageLastIcon: TdPageLastIcon,\n ChevronLeftIcon: TdChevronLeftIcon,\n ChevronRightIcon: TdChevronRightIcon,\n ChevronLeftDoubleIcon: TdChevronLeftDoubleIcon,\n ChevronRightDoubleIcon: TdChevronRightDoubleIcon,\n EllipsisIcon: TdEllipsisIcon,\n });\n\n const { pageCount, ...CLASS_MAP } = usePaginationClasses(props, innerCurrent, innerPageSize, COMPONENT_NAME);\n\n const { prevMore, isPrevMoreShow, curPageLeftCount, nextMore, isNextMoreShow, curPageRightCount } = useMoreAction(\n props,\n pageCount,\n innerCurrent,\n );\n\n const jumpIndex = ref(innerCurrent.value);\n\n const isFolded = computed(() => pageCount.value > props.maxPageBtn);\n\n const sizeOptions = computed>(() => {\n const pageSizeOptions = props.pageSizeOptions as TdPaginationProps['pageSizeOptions'];\n const options = pageSizeOptions.map((option) =>\n isObject(option)\n ? option\n : {\n label: t(globalConfig.value.itemsPerPage, { size: option }),\n value: Number(option),\n },\n );\n return options.sort((a, b) => a.value - b.value);\n });\n\n const isMidEllipsis = computed(() => {\n return props.pageEllipsisMode === 'mid';\n });\n\n const pages = computed(() => {\n const array = [];\n let start;\n let end;\n\n if (isFolded.value) {\n if (isPrevMoreShow.value && isNextMoreShow.value) {\n start = innerCurrent.value - curPageLeftCount.value;\n end = innerCurrent.value + curPageRightCount.value;\n } else {\n const foldedStart = isMidEllipsis.value ? 2 : 1;\n const foldedEnd = isMidEllipsis.value ? pageCount.value - 1 : pageCount.value;\n if (isPrevMoreShow.value) {\n // 保证前面还有一页展示\n start = Math.min(innerCurrent.value - 1, pageCount.value - props.foldedMaxPageBtn + 1);\n } else {\n start = foldedStart;\n }\n\n if (isNextMoreShow.value) {\n // 保证后面还有一页展示\n end = Math.max(innerCurrent.value + 1, props.foldedMaxPageBtn);\n } else {\n end = foldedEnd;\n }\n }\n } else {\n start = 1;\n end = pageCount.value;\n }\n\n for (let i = start; i <= end; i++) {\n array.push(i);\n }\n return array;\n });\n\n // 如果页面总数发生变化并当前页数大于总页数则重置为1\n watch(\n () => pageCount.value,\n () => {\n if (innerCurrent.value > pageCount.value) innerCurrent.value = 1;\n },\n );\n watch(\n () => innerCurrent.value,\n (val) => (jumpIndex.value = val),\n );\n\n const toPage: (pageIndex: number, pageInfo?: PageInfo) => void = (pageIndex, pageInfo) => {\n if (props.disabled) {\n return;\n }\n let current = pageIndex;\n if (pageIndex < min) {\n current = min;\n } else if (pageIndex > pageCount.value) {\n current = pageCount.value;\n }\n if (innerCurrent.value !== current) {\n const prev = innerCurrent.value;\n pageInfo = pageInfo || {\n current,\n previous: prev,\n pageSize: innerPageSize.value,\n };\n if (pageInfo) {\n setInnerCurrent(current, pageInfo);\n props.onChange?.(pageInfo);\n } else {\n // 非主动更改时应仅更新modelValue不触发onCurrentChange事件\n emit('update:modelValue', current);\n }\n }\n };\n\n const handlePageChange = (type: PageChangeType) => {\n const pageChangeMap = {\n prevPage: () => toPage(innerCurrent.value - 1),\n nextPage: () => toPage(innerCurrent.value + 1),\n prevMorePage: () => toPage(Math.max(2, innerCurrent.value - props.foldedMaxPageBtn)),\n nextMorePage: () => toPage(Math.min(innerCurrent.value + props.foldedMaxPageBtn, pageCount.value - 1)),\n };\n pageChangeMap[type]();\n };\n\n const onSelectorChange: (e: string) => void = (e) => {\n if (props.disabled) {\n return;\n }\n const pageSize: number = parseInt(e, 10);\n let pageCount = 1;\n if (pageSize > 0) {\n pageCount = Math.max(Math.ceil(props.total / pageSize), 1);\n }\n\n let isIndexChange = false;\n\n if (innerCurrent.value > pageCount) {\n isIndexChange = true;\n }\n\n /**\n * 分页大小变化事件\n * @param {Number} pageSize 分页大小\n * @param {Number} index 当前页\n */\n const pageInfo = {\n current: isIndexChange ? pageCount : innerCurrent.value,\n previous: innerCurrent.value,\n pageSize,\n };\n setInnerPageSize(pageSize, pageInfo);\n if (isIndexChange) {\n toPage(pageCount, pageInfo);\n } else {\n props.onChange?.(pageInfo);\n }\n };\n\n const onJumperChange = (val: number) => {\n const currentIndex = Math.trunc(+val);\n if (isNaN(currentIndex)) return;\n jumpIndex.value = currentIndex;\n toPage(currentIndex);\n };\n\n return () => {\n const { total, pageSizeOptions, size, disabled, showPageSize } = props;\n if (pageCount.value < 1) return null;\n\n const Jumper = (\n
    \n {t(globalConfig.value.jumpTo)}\n \n \n \n
    \n );\n\n return (\n
    \n {/* 数据统计区 */}\n {renderTNodeJSX(\n 'totalContent',\n
    {t(globalConfig.value.total, { total })}
    ,\n )}\n {/* 分页器 */}\n {showPageSize && pageSizeOptions.length > 0 && (\n \n )}\n {/* 首页按钮 */}\n {props.showFirstAndLastPageBtn ? (\n
    toPage(1)}>\n \n
    \n ) : null}\n {/* 向前按钮 */}\n {props.showPreviousAndNextBtn ? (\n
    handlePageChange('prevPage')}>\n \n
    \n ) : null}\n {/* 常规版 */}\n {props.showPageNumber && props.theme === 'default' ? (\n
      \n {isFolded.value && isMidEllipsis.value && (\n
    • toPage(min)}>\n {min}\n
    • \n )}\n {isFolded.value && isPrevMoreShow.value && isMidEllipsis.value ? (\n handlePageChange('prevMorePage')}\n onMouseover={() => (prevMore.value = true)}\n onMouseout={() => (prevMore.value = false)}\n >\n {prevMore.value ? : }\n \n ) : null}\n {pages.value.map((i) => (\n
    • toPage(i)}>\n {i}\n
    • \n ))}\n {isFolded.value && isNextMoreShow.value && isMidEllipsis.value ? (\n handlePageChange('nextMorePage')}\n onMouseover={() => (nextMore.value = true)}\n onMouseout={() => (nextMore.value = false)}\n >\n {nextMore.value ? : }\n \n ) : null}\n {isFolded.value && isMidEllipsis.value ? (\n
    • toPage(pageCount.value)}>\n {pageCount.value}\n
    • \n ) : null}\n
    \n ) : null}\n {/* 极简版 */}\n {props.theme === 'simple' && Jumper}\n {/* 向后按钮 */}\n {props.showPreviousAndNextBtn ? (\n
    handlePageChange('nextPage')}>\n \n
    \n ) : null}\n {/* 尾页按钮 */}\n {props.showFirstAndLastPageBtn ? (\n
    toPage(pageCount.value)}>\n \n
    \n ) : null}\n {/* 快速跳转 */}\n {props.theme === 'default' && props.showJumper && Jumper}\n
    \n );\n };\n },\n});\n","import { computed, Ref } from 'vue';\nimport { getIEVersion } from '@tdesign/common-js/utils/helper';\nimport { useCommonClassName } from '@tdesign/hooks';\nimport { TdPaginationProps } from '../type';\n\nexport function usePaginationClasses(\n props: TdPaginationProps,\n innerCurrent: Ref,\n innerPageSize: Ref,\n name: Ref,\n) {\n const { SIZE, STATUS } = useCommonClassName();\n\n const pageCount = computed(() => {\n const c: number = Math.ceil(props.total / innerPageSize.value);\n return c > 0 ? c : 1;\n });\n\n const paginationClass = computed(() => [\n `${name.value}`,\n SIZE.value[props.size],\n {\n [STATUS.value.disabled]: props.disabled,\n [`${name.value}-ie`]: getIEVersion() < 11,\n },\n props.theme === 'simple' ? `${name.value}--simple` : ``,\n ]);\n\n const totalClass = computed(() => [`${name.value}__total`]);\n\n const sizerClass = computed(() => [`${name.value}__select`]);\n\n const preBtnClass = computed(() => [\n `${name.value}__btn`,\n `${name.value}__btn-prev`,\n {\n [STATUS.value.disabled]: props.disabled || innerCurrent.value === 1,\n },\n ]);\n\n const nextBtnClass = computed(() => [\n `${name.value}__btn`,\n `${name.value}__btn-next`,\n {\n [STATUS.value.disabled]: props.disabled || innerCurrent.value === pageCount.value,\n },\n ]);\n\n const btnWrapClass = computed(() => [`${name.value}__pager`]);\n\n const btnMoreClass = computed(() => [\n `${name.value}__number`,\n `${name.value}__number--more`,\n {\n [STATUS.value.disabled]: props.disabled,\n },\n ]);\n\n const jumperClass = computed(() => [`${name.value}__jump`]);\n\n const jumperInputClass = computed(() => [`${name.value}__input`]);\n\n const simpleClass = computed(() => [`${name.value}__select`]);\n\n const getButtonClass = (index: number) => [\n `${name.value}__number`,\n {\n [STATUS.value.disabled]: props.disabled,\n [STATUS.value.current]: innerCurrent.value === index,\n },\n ];\n\n return {\n pageCount,\n paginationClass,\n totalClass,\n sizerClass,\n preBtnClass,\n nextBtnClass,\n btnWrapClass,\n btnMoreClass,\n jumperClass,\n jumperInputClass,\n simpleClass,\n getButtonClass,\n };\n}\n","import { computed, ref, Ref } from 'vue';\nimport { TdPaginationProps } from '../type';\n\nexport function useMoreAction(props: TdPaginationProps, pageCount: Ref, innerCurrent: Ref) {\n const prevMore = ref(false);\n\n const nextMore = ref(false);\n\n const curPageLeftCount = computed(() => Math.ceil((props.foldedMaxPageBtn - 1) / 2));\n\n const curPageRightCount = computed(() => Math.floor((props.foldedMaxPageBtn - 1) / 2));\n\n const isPrevMoreShow = computed(() => 2 + curPageLeftCount.value < innerCurrent.value);\n\n const isNextMoreShow = computed(() => pageCount.value - 1 - curPageRightCount.value > innerCurrent.value);\n\n return {\n prevMore,\n nextMore,\n curPageLeftCount,\n curPageRightCount,\n isPrevMoreShow,\n isNextMoreShow,\n };\n}\n","import isNumber from './isNumber.js';\n\n/**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\nfunction isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n}\n\nexport default isNaN;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdPaginationMiniProps } from '../pagination/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 按钮禁用配置 */\n disabled: {\n type: [Boolean, Object] as PropType,\n },\n /** 按钮方向 */\n layout: {\n type: String as PropType,\n default: 'horizontal' as TdPaginationMiniProps['layout'],\n validator(val: TdPaginationMiniProps['layout']): boolean {\n if (!val) return true;\n return ['horizontal', 'vertical'].includes(val);\n },\n },\n /** 是否展示当前按钮 */\n showCurrent: {\n type: Boolean,\n default: true,\n },\n /** 按钮尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdPaginationMiniProps['size'],\n validator(val: TdPaginationMiniProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 提示文案配置,值为 `true` 显示默认文案;值为 `false` 不显示提示文案;值类型为对象则单独配置文案内容 */\n tips: {\n type: Object as PropType,\n },\n /** 按钮形式 */\n variant: {\n type: String as PropType,\n default: 'text' as TdPaginationMiniProps['variant'],\n validator(val: TdPaginationMiniProps['variant']): boolean {\n if (!val) return true;\n return ['text', 'outline'].includes(val);\n },\n },\n /** 按钮点击事件回调 */\n onChange: Function as PropType,\n};\n","import { defineComponent, computed } from 'vue';\nimport { isObject } from 'lodash-es';\nimport {\n ChevronLeftIcon as TdChevronLeftIcon,\n RoundIcon as TdRoundIcon,\n ChevronRightIcon as TdChevronRightIcon,\n ChevronUpIcon as TdChevronUpIcon,\n ChevronDownIcon as TdChevronDownIcon,\n} from 'tdesign-icons-vue-next';\n\nimport props from './pagination-mini-props';\nimport { useGlobalIcon, usePrefixClass } from '@tdesign/hooks';\n\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, useContent, useTNodeJSX, useGlobalIcon, usePrefixClass } from '@tdesign/hooks';\n\nexport default defineComponent({\n name: 'TStepItem',\n props: { ...props, index: Number },\n setup(props) {\n const stepsState = inject('StepsState', undefined);\n const stepsProps = inject('StepsProps', undefined);\n\n const { globalConfig } = useConfig('steps');\n const { CheckIcon, CloseIcon } = useGlobalIcon({ CheckIcon: TdCheckIcon, CloseIcon: TdCloseIcon });\n const canClick = computed(() => {\n return props.status !== 'process' && !stepsProps?.readonly;\n });\n\n // when props.value is undefined\n const onStepClick = (e: MouseEvent) => {\n if (!canClick.value) return;\n const val = props.value === undefined ? props.index : props.value;\n stepsState.setCurrent(val, stepsState.current, { e });\n };\n\n // class\n const COMPONENT_NAME = usePrefixClass('steps-item');\n const statusClass = computed(() => ({ [`${COMPONENT_NAME.value}--${props.status}`]: props.status }));\n const baseClass = computed(() => [COMPONENT_NAME.value, statusClass.value]);\n const iconClass = computed(() => [`${COMPONENT_NAME.value}__icon`, statusClass.value]);\n\n // render\n const renderTNodeJSX = useTNodeJSX();\n const renderContent = useContent();\n const renderIcon = () => {\n let defaultIcon;\n if (stepsProps.theme === 'default') {\n let icon: SlotReturnValue = '';\n switch (props.status) {\n case 'finish':\n if (isFunction(globalConfig.value.checkIcon)) {\n icon = globalConfig.value.checkIcon(h);\n } else {\n icon = ;\n }\n break;\n case 'error':\n if (isFunction(globalConfig.value.errorIcon)) {\n icon = globalConfig.value.errorIcon(h);\n } else {\n icon = ;\n }\n break;\n default:\n icon = String(props.index + 1);\n break;\n }\n defaultIcon = {icon};\n }\n return renderTNodeJSX('icon', defaultIcon);\n };\n\n return () => (\n
    \n \n
    {renderIcon()}
    \n
    \n
    {renderTNodeJSX('title')}
    \n
    {renderContent('default', 'content')}
    \n
    {renderTNodeJSX('extra')}
    \n
    \n
    \n \n );\n },\n});\n","import { computed, defineComponent, provide, reactive, ref, toRefs, VNode } from 'vue';\nimport { isObject } from 'lodash-es';\nimport props from './props';\nimport stepItemProps from './step-item-props';\nimport { TdStepItemProps } from './type';\nimport StepItem from './step-item';\n\nimport { useVModel, usePrefixClass, useChildComponentSlots } from '@tdesign/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 { useTNodeJSX, usePrefixClass } from '@tdesign/hooks';\nimport type { Styles } from '../common';\nimport Popup from '../popup';\n\nimport type { TdStickyItemProps } from './type';\nimport type { TdPopupProps } from '../popup/type';\n\nexport default defineComponent({\n name: 'TStickyItem',\n props: {\n ...baseProps,\n type: TdStickyToolProps.type,\n shape: TdStickyToolProps.shape,\n placement: TdStickyToolProps.placement,\n basePopupProps: Object as PropType,\n baseWidth: TdStickyToolProps.width,\n onClick: TdStickyToolProps.onClick,\n onHover: TdStickyToolProps.onHover,\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('sticky-item');\n const baseClass = computed(() => {\n return [\n `${COMPONENT_NAME.value}`,\n `${COMPONENT_NAME.value}--${props.type}`,\n `${COMPONENT_NAME.value}--${props.shape}`,\n ];\n });\n const labelClass = computed(() => {\n return [`${COMPONENT_NAME.value}__label`];\n });\n const popupPlacement = computed(() => {\n return props.placement.indexOf('right') !== -1 ? 'left' : 'right';\n });\n const styles = computed(() => {\n const styles: Styles = {};\n if (props.baseWidth) {\n const selfWidth = props.type === 'normal' ? '56px' : '40px';\n styles.margin = `calc((${props.baseWidth} - ${selfWidth})/2)`;\n }\n return styles;\n });\n const handleClickItem = (e: MouseEvent) => {\n const item: TdStickyItemProps = {};\n // @ts-ignore\n // TODO 这里因为 props 类型的原因,暂不好修改,后续改成 setup 就简单了\n (Object.keys(baseProps) as (keyof typeof baseProps)[]).forEach((i) => (item[i] = props[i] as any));\n props.onClick({ e, item });\n };\n const handleHoverItem = (e: MouseEvent) => {\n const item: TdStickyItemProps = {};\n // @ts-ignore\n // TODO 这里因为 props 类型的原因,暂不好修改,后续改成 setup 就简单了\n (Object.keys(baseProps) as (keyof typeof baseProps)[]).forEach((i) => (item[i] = props[i] as any));\n props.onHover({ e, item });\n };\n const renderTNodeJSX = useTNodeJSX();\n const popupProps = Object.assign({ hideEmptyPopup: true }, props.basePopupProps, props.popupProps);\n return () => (\n renderTNodeJSX('popup')}\n {...popupProps}\n >\n
    \n {renderTNodeJSX('icon')}\n {props.type === 'normal' ?
    {renderTNodeJSX('label')}
    : null}\n
    \n \n );\n },\n});\n","import { computed, defineComponent, VNode } from 'vue';\nimport props from './props';\nimport { isObject } from 'lodash-es';\nimport StickyItem from './sticky-item';\n\nimport { usePrefixClass, useChildComponentSlots } from '@tdesign/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 { useConfig, useContent, useChildSlots, useGlobalIcon, usePrefixClass } from '@tdesign/hooks';\n\nimport props from './props';\n\nimport type { TdBackTopProps } from './type';\n\nexport default defineComponent({\n name: 'TBackTop',\n props,\n setup(props: TdBackTopProps) {\n const visible = ref(false);\n const containerRef = ref(null);\n const componentName = usePrefixClass('back-top');\n const { classPrefix } = useConfig('alert');\n\n const { BacktopIcon } = useGlobalIcon({\n BacktopIcon: TdBackTopIcon,\n });\n const renderContent = useContent();\n const getContainer = (container: TdBackTopProps['container']) => {\n if (typeof container === 'string' && typeof document !== undefined) {\n if (container === 'body') {\n return document;\n }\n return document.querySelector(container);\n }\n if (typeof container === 'function') {\n return container();\n }\n return null;\n };\n onMounted(() => {\n containerRef.value = getContainer(props.container) as HTMLElement;\n let visibleHeight: number;\n if (typeof props.visibleHeight === 'string') {\n visibleHeight = Number(props.visibleHeight.replace('px', ''));\n } else {\n visibleHeight = props.visibleHeight;\n }\n if (visibleHeight === 0) {\n visible.value = true;\n return;\n }\n let scrollDOM: HTMLElement;\n if (containerRef.value.scrollTop === undefined) {\n scrollDOM = document.documentElement;\n } else {\n scrollDOM = containerRef.value;\n }\n containerRef.value.onscroll = () => {\n const scrollTop = scrollDOM?.scrollTop;\n if (scrollTop >= visibleHeight) {\n visible.value = true;\n }\n if (scrollTop < visibleHeight && visible.value) {\n visible.value = false;\n }\n };\n });\n\n onBeforeUnmount(() => {\n containerRef.value.onscroll = null;\n });\n\n return () => {\n const { theme, shape, size, target, duration, offset, container } = props;\n const getChild = useChildSlots();\n let children = getChild();\n if (children.length < 1) children = null;\n const cls = computed(() => {\n return {\n [componentName.value]: true,\n [`${componentName.value}--theme-${theme}`]: true,\n [`${componentName.value}--${shape}`]: true,\n [`${componentName.value}--show`]: visible.value,\n [`${classPrefix.value}-size-s`]: size === 'small',\n [`${classPrefix.value}-size-m`]: size === 'medium',\n };\n });\n const defaultContent = (\n <>\n \n TOP\n \n );\n const getBackTo = () => {\n if (target === container) return 0;\n if (target === 'body') return 0;\n if (!target) return 0;\n const targetNode = getContainer(target);\n if (!targetNode) return 0;\n const y = (targetNode as HTMLElement).getBoundingClientRect().y;\n return y;\n };\n const handleClick = (e: MouseEvent) => {\n const y = getBackTo();\n scrollTo(y, { container: containerRef.value, duration });\n props.onClick?.({ e });\n };\n const positionStyle = computed(() => {\n return {\n insetInlineEnd: offset[0],\n insetBlockEnd: offset[1],\n };\n });\n return (\n \n );\n };\n },\n});\n","import withInstall from '../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 '@tdesign/hooks';\nimport { isString, escapeRegExp } from 'lodash-es';\n\nexport interface HighlightOptionProps {\n content: string;\n keyword: string;\n}\n\nexport default defineComponent({\n name: 'HighlightOption',\n props: {\n /** 联想词 */\n content: String as PropType,\n /** 搜索词 */\n keyword: String as PropType,\n },\n setup(props) {\n const classPrefix = usePrefixClass();\n const words = computed<{ list: string[]; keyword?: string }>(() => {\n const { content, keyword } = props;\n if (!content) return { list: [] };\n if (!isString(content) || !keyword) return { list: [content] };\n const regExp = new RegExp(escapeRegExp(keyword), 'i');\n const splitKeyword = content.match(regExp)?.[0];\n return {\n list: content.split(splitKeyword),\n keyword: splitKeyword,\n };\n });\n\n return () => {\n const { list, keyword } = words.value;\n return (\n
    \n {list.map((item, index) => {\n if (!index) return item;\n return [\n \n {keyword}\n ,\n item,\n ];\n })}\n
    \n );\n };\n },\n});\n","import { ref, computed, defineComponent, PropType, h, watch, onBeforeUnmount } from 'vue';\nimport { isString, isFunction, escapeRegExp } from 'lodash-es';\nimport HighlightOption from './highlight-option';\nimport { useConfig, usePrefixClass, CommonClassNameType } from '@tdesign/hooks';\nimport { AutoCompleteOptionObj, TdAutoCompleteProps } from './type';\nimport log from '@tdesign/common-js/log/index';\n\nimport { on, off } from '../utils/dom';\n\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.value[props.size]]: props.size,\n },\n ]);\n\n // 整理数据格式\n const tOptions = computed(() => {\n let options = (props.options || []).map((item) => {\n let option: AutoCompleteOptionObj = {};\n if (isString(item)) {\n option = { text: item, label: item };\n } else {\n if (item.text && !isString(item.text)) {\n log.warn('AutoComplete', '`text` must be a string.');\n }\n if (!item.text) {\n if (isString(item.label)) {\n option = { ...item, text: item.label };\n } else {\n log.warn('AutoComplete', 'one of `label` and `text` must be a existed string.');\n }\n } else {\n option = item;\n }\n }\n return option;\n });\n // 自定义过滤规则\n if (props.filter) {\n options = options.filter((option) => props.filter(props.value, option));\n } else if (props.filterable) {\n // 默认过滤规则\n const regExp = new RegExp(escapeRegExp(props.value), 'i');\n options = options.filter((item) => regExp.test(item.text));\n }\n return options;\n });\n\n const onOptionClick = (e: MouseEvent) => {\n let liNode = e.target as HTMLElement;\n while (liNode && liNode.tagName !== 'LI') {\n liNode = liNode.parentNode as HTMLElement;\n }\n const keyword = liNode.getAttribute('title');\n active.value = keyword;\n emit('select', keyword, { e });\n };\n\n // 键盘事件,上下选择\n const onKeyInnerPress = (e: KeyboardEvent) => {\n if (ARROW_UP_REG.test(e.code) || ARROW_UP_REG.test(e.key)) {\n const index = tOptions.value.findIndex((item) => item.text === active.value);\n const newIndex = index - 1 < 0 ? tOptions.value.length - 1 : index - 1;\n active.value = tOptions.value[newIndex]?.text;\n } else if (ARROW_DOWN_REG.test(e.code) || ARROW_DOWN_REG.test(e.key)) {\n const index = tOptions.value.findIndex((item) => item.text === active.value);\n const newIndex = index + 1 >= tOptions.value.length ? 0 : index + 1;\n active.value = tOptions.value[newIndex]?.text;\n } else if (ENTER_REG.test(e.code) || ENTER_REG.test(e.key)) {\n if (active.value) {\n emit('select', active.value, { e });\n }\n }\n };\n\n const addKeyboardListener = () => {\n on(document, 'keydown', onKeyInnerPress);\n };\n\n const removeKeyboardListener = () => {\n off(document, 'keydown', onKeyInnerPress);\n };\n\n expose({\n addKeyboardListener,\n removeKeyboardListener,\n });\n\n watch(\n () => props.popupVisible,\n () => {\n if (props.popupVisible) {\n addKeyboardListener();\n } else {\n removeKeyboardListener();\n }\n },\n { immediate: true },\n );\n\n watch(\n () => props.value,\n () => {\n if (!props.value) {\n active.value = '';\n }\n },\n { immediate: true },\n );\n\n onBeforeUnmount(() => {\n removeKeyboardListener();\n });\n\n return () => {\n if (!tOptions.value.length) {\n return (\n
    \n {props.empty || globalConfig.value.empty}\n
    \n );\n }\n\n return (\n
      \n {tOptions.value.map((item) => {\n const cls = [...optionClasses.value];\n if (item.text === active.value) {\n cls.push(`${classPrefix.value}-select-option--hover`);\n }\n let labelNode: any = item.label;\n if (isFunction(item.label)) {\n labelNode = item.label(h);\n } else if (slots.option) {\n labelNode = slots.option?.({ option: item });\n }\n const content = labelNode || item.text;\n return (\n
    • \n {isString(content) && props.highlightKeyword ? (\n \n ) : (\n content\n )}\n
    • \n );\n })}\n
    \n );\n };\n },\n});\n","import { computed, ref, defineComponent, toRefs, nextTick } from 'vue';\nimport props from './props';\nimport { TdAutoCompleteProps } from './type';\nimport TInput, { InputProps, StrInputProps } from '../input';\nimport Popup, { PopupProps } from '../popup';\nimport { useVModel, useContent, useTNodeJSX, useDisabled, useReadonly, useCommonClassName } from '@tdesign/hooks';\nimport AutoCompleteOptionList from './option-list';\n\nimport { useConfig } from '../config-provider/hooks/useConfig';\nimport { ClassName } from '../common';\n\nexport default defineComponent({\n name: 'TAutoComplete',\n props,\n setup(props: TdAutoCompleteProps, { slots }) {\n const { value, modelValue } = toRefs(props);\n const [tValue, setTValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const renderContent = useContent();\n const renderTNodeJSX = useTNodeJSX();\n const { classPrefix, SIZE } = useCommonClassName();\n const { globalConfig: global } = useConfig('input');\n const isDisabled = useDisabled();\n const isReadonly = useReadonly();\n const popupVisible = ref();\n const optionListRef = ref();\n\n const getOverlayStyle = (trigger: HTMLElement, popupElement: HTMLElement) => {\n const triggerWidth = trigger.getBoundingClientRect().width || trigger.offsetWidth || trigger.clientWidth;\n const popupWidth =\n popupElement.getBoundingClientRect().width || popupElement.offsetWidth || popupElement.clientWidth;\n return {\n width: triggerWidth >= popupWidth ? `${triggerWidth}px` : 'auto',\n ...props.popupProps?.overlayInnerStyle,\n };\n };\n\n const classes = computed(() => [`${classPrefix.value}-auto-complete`]);\n const popupClasses = computed(() => {\n let classes: ClassName = [`${classPrefix.value}-select__dropdown`];\n if (props.popupProps?.overlayClassName) {\n classes = classes.concat(props.popupProps.overlayClassName);\n }\n return classes;\n });\n const popupInnerClasses = computed(() => {\n let classes: ClassName = [`${classPrefix.value}-select__dropdown-inner`];\n if (props.popupProps?.overlayInnerClassName) {\n classes = classes.concat(props.popupProps.overlayInnerClassName);\n }\n return classes;\n });\n\n const onInputChange: StrInputProps['onChange'] = (value, context) => {\n setTValue(value, context);\n };\n\n const innerInputProps = computed(() => {\n const tProps: InputProps = {\n value: tValue.value,\n size: props.size,\n ...props.inputProps,\n };\n return tProps;\n });\n\n const onInnerFocus: StrInputProps['onFocus'] = (value, context) => {\n if (isReadonly.value || isDisabled.value) return;\n popupVisible.value = true;\n props.onFocus?.({ ...context, value });\n nextTick(() => {\n optionListRef.value?.addKeyboardListener();\n });\n };\n\n const onInnerBlur: StrInputProps['onBlur'] = (value, context) => {\n props.onBlur?.({ ...context, value });\n };\n\n const onInnerCompositionend: InputProps['onCompositionend'] = (value, context) => {\n props.onCompositionend?.({ ...context, value });\n };\n\n const onInnerCompositionstart: InputProps['onCompositionstart'] = (value, context) => {\n props.onCompositionstart?.({ ...context, value });\n };\n\n const onInnerEnter: StrInputProps['onEnter'] = (value, context) => {\n props.onEnter?.({ ...context, value });\n };\n\n const onInnerSelect: TdAutoCompleteProps['onSelect'] = (value, context) => {\n if (isReadonly.value || isDisabled.value) return;\n popupVisible.value = false;\n setTValue(value, context);\n props.onSelect?.(value, context);\n };\n\n const onPopupVisibleChange: PopupProps['onVisibleChange'] = (visible, { trigger }) => {\n if (isReadonly.value || isDisabled.value) return;\n if (trigger !== 'trigger-element-click') {\n popupVisible.value = visible;\n }\n };\n\n return () => {\n // 触发元素\n const triggerNode = renderContent('default', 'triggerElement') || (\n \n );\n // 联想词列表\n const listContent = Array.isArray(props.options) && (\n \n );\n\n const topContent = renderTNodeJSX('panelTopContent');\n const bottomContent = renderTNodeJSX('panelBottomContent');\n const panelContent =\n topContent || listContent || bottomContent ? (\n
    \n {topContent}\n {listContent}\n {bottomContent}\n
    \n ) : null;\n const popupProps = {\n ...props.popupProps,\n overlayInnerStyle: getOverlayStyle,\n overlayInnerClassName: popupInnerClasses.value,\n overlayClassName: popupClasses.value,\n };\n return (\n
    \n panelContent : null}\n {...popupProps}\n >\n {triggerNode}\n \n
    \n );\n };\n },\n});\n","import _AutoComplete from './auto-complete';\nimport _HighlightOption from './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 { isArray, isEmpty, isNumber, isObject } from 'lodash-es';\n\nimport { TreeNode, CascaderContextType, TdCascaderProps, CascaderValue, TreeNodeValue, TreeOptionData } from '../types';\n\n/**\n * 单选状态下内容\n * @param isHover\n * @param cascaderContext\n * @returns\n */\nexport function getSingleContent(cascaderContext: CascaderContextType): string {\n const { value, multiple, treeStore, showAllLevels } = cascaderContext;\n if (multiple || (value !== 0 && !value)) return '';\n\n if (isArray(value)) return '';\n const node = treeStore && treeStore.getNodes(value as TreeNodeValue | TreeNode);\n if (!(node && node.length)) {\n return value as string;\n }\n const path = node && node[0].getPath();\n if (path && path.length) {\n return showAllLevels ? path.map((node: TreeNode) => node.label).join(' / ') : path.at(-1).label;\n }\n return value as string;\n}\n\n/**\n * 多选状态下选中内容\n * @param cascaderContext\n * @returns\n */\nexport function getMultipleContent(cascaderContext: CascaderContextType) {\n const { value, multiple, treeStore, showAllLevels } = cascaderContext;\n\n if (!multiple) return [];\n if (multiple && !isArray(value)) return [];\n\n const node = treeStore && treeStore.getNodes(value as TreeNodeValue | TreeNode);\n if (!node) return [];\n\n return (value as TreeNodeValue[])\n .map((item: TreeNodeValue) => {\n const node = treeStore.getNodes(item);\n return showAllLevels ? getFullPathLabel(node[0]) : node[0]?.label;\n })\n .filter((item) => !!item);\n}\n\n/**\n * 面板数据计算方法\n * @param treeNodes\n * @returns\n */\nexport function getPanels(treeNodes: CascaderContextType['treeNodes']) {\n const panels: TreeNode[][] = [];\n treeNodes.forEach((node: TreeNode) => {\n if (panels[node.level]) {\n panels[node.level].push(node);\n } else {\n panels[node.level] = [node];\n }\n });\n return panels;\n}\n\n/**\n * 获取node的全部路径\n * @param node\n * @returns\n */\nexport function getFullPathLabel(node: TreeNode, separator = '/') {\n return node\n ?.getPath()\n .map((node: TreeNode) => node.label)\n .join(separator);\n}\n\n/**\n * treeValue计算方法\n * @param value\n * @returns\n */\nexport const getTreeValue = (value: CascaderContextType['value']) => {\n let treeValue: TreeNodeValue[] = [];\n if (isArray(value)) {\n if (value.length > 0 && isObject(value[0])) {\n treeValue = (value as TreeOptionData[]).map((val) => val.value);\n } else if (value.length) {\n treeValue = value as TreeNodeValue[];\n }\n } else if (!isEmptyValues(value)) {\n if (isObject(value)) {\n treeValue = [(value as TreeOptionData).value];\n } else {\n treeValue = [value];\n }\n }\n return treeValue;\n};\n\n/**\n * 按数据类型计算通用数值\n * @param value\n * @param showAllLevels\n * @param multiple\n * @returns\n */\nexport const getCascaderValue = (value: CascaderValue, valueType: TdCascaderProps['valueType'], multiple: boolean) => {\n if (valueType === 'single') {\n return value;\n }\n const val = value as Array;\n if (multiple) {\n return val.map((item: TreeNodeValue[]) => item.at(-1));\n }\n return val.at(-1);\n};\n\n/**\n * 空值校验\n * 补充value为Number时的空值校验逻辑,排除NaN\n * @param value\n * @returns\n */\nexport function isEmptyValues(value: unknown): boolean {\n if (isNumber(value) && !isNaN(value)) return false;\n return isEmpty(value);\n}\n\n/**\n * 初始化数据校验\n * @param value\n * @param cascaderContext\n * @returns boolean\n */\nexport function isValueInvalid(value: CascaderValue, cascaderContext: CascaderContextType) {\n const { multiple, showAllLevels, valueType } = cascaderContext;\n return (multiple && !isArray(value)) || (!multiple && isArray(value) && valueType === 'single' && !showAllLevels);\n}\n","import { isArray, isNumber, cloneDeep, isFunction } from 'lodash-es';\n\nimport type { TreeNode, CascaderContextType, TdCascaderProps, TreeNodeValue, TreeNodeModel } from '../types';\nimport { getFullPathLabel, getTreeValue, isEmptyValues } from './helper';\n\n/**\n * 点击item的副作用\n * @param propsTrigger\n * @param trigger\n * @param node\n * @param cascaderContext\n */\nexport function expendClickEffect(\n propsTrigger: TdCascaderProps['trigger'],\n trigger: TdCascaderProps['trigger'],\n node: TreeNode,\n cascaderContext: CascaderContextType,\n) {\n const { checkStrictly, multiple, treeStore, setVisible, setValue, setTreeNodes, setExpend, value, max, valueType } =\n cascaderContext;\n\n const isDisabled = node.disabled || (multiple && (value as TreeNodeValue[]).length >= max && max !== 0);\n\n if (isDisabled) return;\n // 点击展开节点,设置展开状态\n if (propsTrigger === trigger) {\n const expanded = node.setExpanded(true);\n treeStore.refreshNodes();\n 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 { useRipple, useGlobalIcon, usePrefixClass, useCommonClassName } from '@tdesign/hooks';\n\nconst props = {\n node: {\n type: Object as PropType,\n default() {\n return {};\n },\n },\n optionChild: {\n type: [Object, Array] as PropType,\n },\n cascaderContext: {\n type: Object as PropType,\n },\n onChange: Function as PropType<() => void>,\n onClick: Function as PropType<() => void>,\n onMouseenter: Function as PropType<() => void>,\n};\n\nexport default defineComponent({\n name: 'TCascaderItem',\n props,\n setup(props) {\n const liRef = ref();\n useRipple(liRef);\n\n const COMPONENT_NAME = usePrefixClass('cascader__item');\n const classPrefix = usePrefixClass();\n const { ChevronRightIcon } = useGlobalIcon({ ChevronRightIcon: TdChevronRightIcon });\n const { STATUS, SIZE } = useCommonClassName();\n\n const itemClass = computed(() => {\n return getCascaderItemClass(classPrefix.value, props.node, SIZE.value, STATUS.value, props.cascaderContext);\n });\n\n const iconClass = computed(() => {\n return getCascaderItemIconClass(classPrefix.value, props.node, STATUS.value, props.cascaderContext);\n });\n\n function RenderLabelInner(node: TreeNode, cascaderContext: CascaderContextType) {\n const { inputVal } = cascaderContext;\n const labelText = inputVal ? getFullPathLabel(node) : node.label;\n if (inputVal) {\n const texts = labelText.split(inputVal as string);\n const doms = [];\n for (let index = 0; index < texts.length; index++) {\n doms.push({texts[index]});\n if (index === texts.length - 1) break;\n doms.push(\n \n {inputVal}\n ,\n );\n }\n return doms;\n }\n return labelText;\n }\n\n const renderTitle = (node: TreeNode) => {\n if (typeof node.label === 'string') return node.label;\n\n return null;\n };\n\n function RenderLabelContent(node: TreeNode, cascaderContext: CascaderContextType) {\n const label = RenderLabelInner(node, cascaderContext);\n\n const labelCont = (\n \n {label}\n \n );\n\n return labelCont;\n }\n\n function RenderCheckBox(node: TreeNode, cascaderContext: CascaderContextType) {\n const { checkProps, value, max, inputVal } = cascaderContext;\n const label = RenderLabelInner(node, cascaderContext);\n return (\n = max && max !== 0)}\n // node.value maybe string or number\n name={String(node.value)}\n stopLabelTrigger={!!node.children}\n title={inputVal ? getFullPathLabel(node) : renderTitle(node)}\n onChange={() => {\n props.onChange();\n }}\n {...checkProps}\n >\n {label}\n \n );\n }\n\n return () => {\n const { cascaderContext, node, optionChild } = props;\n const isOptionChildAndMultiple = optionChild && cascaderContext.multiple;\n return (\n (isOptionChildAndMultiple ? props.onChange() : props.onClick())}\n onMouseenter={props.onMouseenter}\n >\n {optionChild ||\n (cascaderContext.multiple\n ? RenderCheckBox(node, cascaderContext)\n : RenderLabelContent(node, cascaderContext))}\n {node.children &&\n (node.loading ? (\n \n ) : (\n \n ))}\n \n );\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdCascaderProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 自动聚焦 */\n autofocus: Boolean,\n /** 无边框模式 */\n borderless: Boolean,\n /** 参考 checkbox 组件 API */\n checkProps: {\n type: Object as PropType,\n },\n /** 父子节点选中状态不再关联,可各自选中或取消 */\n checkStrictly: Boolean,\n /** 是否支持清空选项 */\n clearable: Boolean,\n /** 多选情况下,用于设置折叠项内容,默认为 `+N`。如果需要悬浮就显示其他内容,可以使用 collapsedItems 自定义。`value` 表示当前存在的所有标签,`collapsedSelectedItems` 表示折叠的标签,`count` 表示折叠的数量,`onClose` 表示移除标签的事件回调 */\n collapsedItems: {\n type: Function as PropType,\n },\n /** 是否禁用组件 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 无匹配选项时的内容,默认全局配置为 '暂无数据' */\n empty: {\n type: [String, Function] as PropType,\n },\n /** 自定义过滤方法,用于对现有数据进行搜索过滤,判断是否过滤某一项数据 */\n filter: {\n type: Function as PropType,\n },\n /** 是否可搜索 */\n filterable: Boolean,\n /** 透传 Input 输入框组件的全部属性 */\n inputProps: {\n type: Object as PropType,\n },\n /** 用来定义 value / label / children / disabled 在 `options` 中对应的字段别名 */\n keys: {\n type: Object as PropType,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 延迟加载 children 为 true 的子节点,即使 expandAll 被设置为 true,也同样延迟加载 */\n lazy: {\n type: Boolean,\n default: true,\n },\n /** 加载子树数据的方法(仅当节点 children 为 true 时生效) */\n load: {\n type: Function as PropType,\n },\n /** 是否为加载状态 */\n loading: Boolean,\n /** 远程加载时显示的文字,支持自定义。如加上超链接 */\n loadingText: {\n type: [String, Function] as PropType,\n },\n /** 用于控制多选数量,值为 0 则不限制 */\n max: {\n type: Number,\n default: 0,\n },\n /** 最小折叠数量,用于多选情况下折叠选中项,超出该数值的选中项折叠。值为 0 则表示不折叠 */\n minCollapsedNum: {\n type: Number,\n default: 0,\n },\n /** 是否允许多选 */\n multiple: Boolean,\n /** 自定义单个级联选项 */\n option: {\n type: Function as PropType,\n },\n /** 可选项数据源 */\n options: {\n type: Array as PropType,\n default: (): TdCascaderProps['options'] => [],\n },\n /** 面板内的底部内容 */\n panelBottomContent: {\n type: [String, Function] as PropType,\n },\n /** 面板内的顶部内容 */\n panelTopContent: {\n type: [String, Function] as PropType,\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 参考 popup 组件 API */\n popupProps: {\n type: Object as PropType,\n },\n /** 是否显示下拉框 */\n popupVisible: Boolean,\n /** 组件前置图标 */\n prefixIcon: {\n type: Function as PropType,\n },\n /** 只读状态,值为真会隐藏输入框,且无法打开下拉框 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 多选且可搜索时,是否在选中一个选项后保留当前的搜索关键词 */\n reserveKeyword: Boolean,\n /** 透传 SelectInput 筛选器输入框组件的全部属性 */\n selectInputProps: {\n type: Object as PropType,\n },\n /** 选中值使用完整路径,输入框在单选时也显示完整路径 */\n showAllLevels: {\n type: Boolean,\n default: true,\n },\n /** 组件尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdCascaderProps['size'],\n validator(val: TdCascaderProps['size']): boolean {\n if (!val) return true;\n return ['large', 'medium', 'small'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdCascaderProps['status'],\n validator(val: TdCascaderProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 后置图标前的后置内容 */\n suffix: {\n type: [String, Function] as PropType,\n },\n /** 组件后置图标 */\n suffixIcon: {\n type: Function as PropType,\n },\n /** 透传 TagInput 标签输入框组件的全部属性 */\n tagInputProps: {\n type: Object as PropType,\n },\n /** 透传 Tag 标签组件全部属性 */\n tagProps: {\n type: Object as PropType,\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 展开下一层级的方式 */\n trigger: {\n type: String as PropType,\n default: 'click' as TdCascaderProps['trigger'],\n validator(val: TdCascaderProps['trigger']): boolean {\n if (!val) return true;\n return ['click', 'hover'].includes(val);\n },\n },\n /** 选中项的值 */\n value: {\n type: [String, Number, Array] as PropType,\n default: undefined as TdCascaderProps['value'],\n },\n modelValue: {\n type: [String, Number, Array] as PropType,\n default: undefined as TdCascaderProps['value'],\n },\n /** 选中项的值,非受控属性 */\n defaultValue: {\n type: [String, Number, Array] as PropType,\n default: (): TdCascaderProps['defaultValue'] => [] as TdCascaderProps['defaultValue'],\n },\n /** 自定义选中项呈现的内容 */\n valueDisplay: {\n type: [String, Function] as PropType,\n },\n /** 选中值模式。all 表示父节点和子节点全部会出现在选中值里面;parentFirst 表示当子节点全部选中时,仅父节点在选中值里面;onlyLeaf 表示无论什么情况,选中值仅呈现叶子节点 */\n valueMode: {\n type: String as PropType,\n default: 'onlyLeaf' as TdCascaderProps['valueMode'],\n validator(val: TdCascaderProps['valueMode']): boolean {\n if (!val) return true;\n return ['onlyLeaf', 'parentFirst', 'all'].includes(val);\n },\n },\n /** 用于控制选中值的类型。single 表示输入输出值为 叶子结点值, full 表示输入输出值为全路径 */\n valueType: {\n type: String as PropType,\n default: 'single' as TdCascaderProps['valueType'],\n validator(val: TdCascaderProps['valueType']): boolean {\n if (!val) return true;\n return ['single', 'full'].includes(val);\n },\n },\n /** 当输入框失去焦点时触发 */\n onBlur: Function as PropType,\n /** 选中值发生变化时触发。TreeNodeModel 从树组件中导出。`context.node` 表示触发事件的节点,`context.source` 表示触发事件的来源 */\n onChange: Function as PropType,\n /** 获得焦点时触发 */\n onFocus: Function as PropType,\n /** 下拉框显示或隐藏时触发 */\n onPopupVisibleChange: Function as PropType,\n /** 多选模式下,选中数据被移除时触发 */\n onRemove: Function as PropType,\n};\n","import { defineComponent, PropType, computed, h } from 'vue';\n\nimport Item from './Item';\nimport { TreeNode, CascaderContextType } from '../types';\nimport CascaderProps from '../props';\nimport { useConfig, usePrefixClass, useTNodeDefault } from '@tdesign/hooks';\n\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, isString, isFunction } from 'lodash-es';\n\nimport TreeStore from '@tdesign/common-js/tree/tree-store';\nimport { useVModel, useDisabled, useDefaultValue } from '@tdesign/hooks';\n\nimport {\n getTreeValue,\n getCascaderValue,\n isEmptyValues,\n isValueInvalid,\n treeNodesEffect,\n treeStoreExpendEffect,\n} from '../utils';\n\nimport {\n TreeNode,\n TreeNodeValue,\n TdCascaderProps,\n TreeNodeModel,\n CascaderChangeSource,\n CascaderValue,\n TreeOptionData,\n} from '../types';\n\n// 全局状态\nexport const useContext = (\n props: TdCascaderProps,\n setInnerValue: TdCascaderProps['onChange'],\n innerPopupVisible: Ref,\n setPopupVisible: TdCascaderProps['onPopupVisibleChange'],\n) => {\n const statusContext = reactive({\n treeStore: null,\n inputVal: null,\n scopeVal: undefined,\n treeNodes: [],\n expend: [],\n });\n\n return {\n statusContext,\n cascaderContext: computed(() => {\n const {\n size,\n checkStrictly,\n lazy,\n multiple,\n filterable,\n clearable,\n checkProps,\n max,\n disabled,\n showAllLevels,\n minCollapsedNum,\n valueType,\n modelValue,\n } = props;\n return {\n value: statusContext.scopeVal,\n size,\n checkStrictly,\n lazy,\n multiple,\n filterable,\n clearable,\n checkProps,\n max,\n disabled,\n showAllLevels,\n minCollapsedNum,\n valueType,\n visible: innerPopupVisible.value,\n ...statusContext,\n setTreeNodes: (nodes: TreeNode[]) => {\n statusContext.treeNodes = nodes;\n },\n setValue: (val: CascaderValue, source: CascaderChangeSource, node?: TreeNodeModel) => {\n if (isEqual(val, modelValue)) return;\n setInnerValue(val, { source, node });\n },\n setVisible: setPopupVisible,\n setInputVal: (val: string) => {\n statusContext.inputVal = val;\n },\n setExpend: (val: TreeNodeValue[]) => {\n statusContext.expend = val;\n },\n };\n }),\n };\n};\n\n// 内聚组件核心的副作用与状态处理\nexport const useCascaderContext = (props: TdCascaderProps) => {\n const disabled = useDisabled();\n const { value, modelValue, popupVisible } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const [innerPopupVisible, setPopupVisible] = useDefaultValue(\n popupVisible,\n false,\n props.onPopupVisibleChange,\n 'popupVisible',\n );\n const { cascaderContext, statusContext } = useContext(props, setInnerValue, innerPopupVisible, setPopupVisible);\n\n const isFilterable = computed(() => {\n return Boolean(props.filterable || isFunction(props.filter));\n });\n\n // 更新treeNodes\n const updatedTreeNodes = () => {\n const { inputVal, treeStore, setTreeNodes } = cascaderContext.value;\n treeNodesEffect(inputVal, treeStore, setTreeNodes, props.filter);\n };\n\n // 更新节点展开状态\n const updateExpend = () => {\n const { value, treeStore } = cascaderContext.value;\n const { expend } = statusContext;\n treeStoreExpendEffect(treeStore, value, expend);\n treeStore.replaceChecked(getTreeValue(value));\n };\n\n watch(\n () => props.options,\n () => {\n const { options, keys = {}, checkStrictly, lazy, load, valueMode } = props;\n const { treeStore } = statusContext;\n\n if (!options.length && !treeStore) return;\n\n if (!treeStore) {\n const store = new TreeStore({\n keys: {\n ...keys,\n children: isString(keys.children) ? keys.children : 'children',\n },\n checkable: true,\n expandMutex: true,\n expandParent: true,\n lazy,\n load,\n valueMode,\n checkStrictly,\n onLoad: () => {\n nextTick(() => {\n store.refreshNodes();\n updatedTreeNodes();\n });\n },\n });\n store.append(options);\n statusContext.treeStore = store;\n } else {\n treeStore.reload(options);\n treeStore.refreshNodes();\n }\n updateExpend();\n updatedTreeNodes();\n },\n { immediate: true, deep: true },\n );\n\n // tree插件配置变化\n watch(\n () => {\n const { checkStrictly, lazy, load, valueMode } = props;\n return JSON.stringify({\n valueMode,\n checkStrictly,\n lazy,\n load,\n });\n },\n () => {\n const { treeStore } = statusContext;\n if (!treeStore) return;\n const { checkStrictly, lazy, load, valueMode } = props;\n const treeProps = {\n checkStrictly,\n disabled,\n load,\n lazy,\n valueMode,\n };\n treeStore.setConfig(treeProps);\n },\n { immediate: true },\n );\n\n watch(\n innerValue,\n () => {\n // 初始化判断 value 逻辑\n const { setValue, multiple, valueType } = cascaderContext.value;\n\n if (isValueInvalid(innerValue.value, cascaderContext.value)) {\n setValue(multiple ? [] : '', 'invalid-value');\n } 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, useTNodeJSX, useDisabled, useReadonly, usePrefixClass, useCommonClassName } from '@tdesign/hooks';\nimport { useCascaderContext } from './hooks';\n\nexport default defineComponent({\n name: 'TCascader',\n props,\n setup(props, { slots }) {\n const COMPONENT_NAME = usePrefixClass('cascader');\n const classPrefix = usePrefixClass();\n const { STATUS } = useCommonClassName();\n const overlayClassName = usePrefixClass('cascader__popup');\n const { globalConfig } = useConfig('cascader');\n const isDisabled = useDisabled();\n const isReadonly = useReadonly();\n const renderTNodeJSX = useTNodeJSX();\n\n // 拿到全局状态的上下文\n const { cascaderContext, innerValue, isFilterable, getCascaderItems } = useCascaderContext(props);\n\n const displayValue = computed(() =>\n props.multiple ? getMultipleContent(cascaderContext.value) : getSingleContent(cascaderContext.value),\n );\n\n const panels = computed(() => getPanels(cascaderContext.value.treeNodes));\n\n const inputPlaceholder = computed(\n () =>\n (cascaderContext.value.visible && !props.multiple && getSingleContent(cascaderContext.value)) ||\n (props.placeholder ?? globalConfig.value.placeholder),\n );\n\n const renderSuffixIcon = () => {\n if (props.suffixIcon || slots.suffixIcon) {\n return renderTNodeJSX('suffixIcon');\n }\n\n const { visible, disabled } = cascaderContext.value;\n return (\n \n );\n };\n\n const valueDisplayParams = computed(() => {\n const arrayValue = innerValue.value instanceof Array ? innerValue.value : [innerValue.value];\n const displayValue =\n props.multiple && props.minCollapsedNum ? arrayValue.slice(0, props.minCollapsedNum) : innerValue.value;\n const options = getCascaderItems(arrayValue);\n return {\n value: innerValue.value,\n selectedOptions: options,\n onClose: (index: number) => {\n handleRemoveTagEffect(cascaderContext.value, index, props.onRemove);\n },\n displayValue,\n };\n });\n\n const renderValueDisplay = () => {\n return renderTNodeJSX('valueDisplay', {\n params: valueDisplayParams.value,\n });\n };\n\n const renderLabel = () => {\n const label = renderTNodeJSX('label');\n if (props.multiple) return label;\n if (!label) return null;\n return
    {label}
    ;\n };\n\n const cascaderClassNames = computed(() => [\n COMPONENT_NAME.value,\n props.multiple ? `${COMPONENT_NAME.value}--multiple` : `${COMPONENT_NAME.value}--single`,\n ]);\n\n return () => {\n const { setVisible, visible, inputVal, setInputVal } = cascaderContext.value;\n\n return (\n renderSuffixIcon()}\n popupProps={{\n ...(props.popupProps as TdCascaderProps['popupProps']),\n overlayInnerStyle: panels.value.length && !props.loading ? { width: 'auto' } : '',\n overlayClassName: [\n overlayClassName.value,\n (props.popupProps as TdCascaderProps['popupProps'])?.overlayClassName,\n ],\n }}\n inputProps={{ size: props.size, ...(props.inputProps as TdCascaderProps['inputProps']) }}\n tagInputProps={{\n size: props.size,\n ...(props.tagInputProps as TdCascaderProps['tagInputProps']),\n }}\n tagProps={{ ...(props.tagProps as TdCascaderProps['tagProps']) }}\n onInputChange={(value, ctx) => {\n if (!isFilterable.value) return;\n setInputVal(`${value}`);\n (props?.selectInputProps as TdSelectInputProps)?.onInputChange?.(value, ctx);\n }}\n onTagChange={(val: CascaderValue, ctx) => {\n // 按 enter 键不处理\n if (ctx.trigger === 'enter') return;\n handleRemoveTagEffect(cascaderContext.value, ctx.index, props.onRemove);\n // @ts-ignore TODO: fix bug\n (props?.selectInputProps as TdSelectInputProps)?.onTagChange?.(val, ctx);\n }}\n onPopupVisibleChange={(val: boolean, context) => {\n if (isDisabled.value) return;\n setVisible(val, context);\n (props?.selectInputProps as TdSelectInputProps)?.onPopupVisibleChange?.(val, context);\n }}\n onBlur={(val, context) => {\n props.onBlur?.({\n value: cascaderContext.value.value,\n inputValue: context.inputValue || '',\n e: context.e as FocusEvent,\n });\n (props?.selectInputProps as TdSelectInputProps)?.onBlur?.(val, context);\n }}\n onFocus={(val, context) => {\n props.onFocus?.({\n value: cascaderContext.value.value,\n e: context.e,\n });\n (props?.selectInputProps as TdSelectInputProps)?.onFocus?.(val, context);\n }}\n onClear={(context: { e: MouseEvent }) => {\n closeIconClickEffect(cascaderContext.value);\n (props?.selectInputProps as TdSelectInputProps)?.onClear?.(context);\n }}\n v-slots={{\n label: slots.label,\n suffix: slots.suffix,\n prefixIcon: slots.prefixIcon,\n panel: () => (\n <>\n {renderTNodeJSX('panelTopContent')}\n \n {renderTNodeJSX('panelBottomContent')}\n \n ),\n collapsedItems: slots.collapsedItems,\n }}\n {...omit(props.selectInputProps as TdSelectInputProps, [\n 'onTagChange',\n 'onInputChange',\n 'onPopupVisibleChange',\n 'onBlur',\n 'onFocus',\n 'onClear',\n ])}\n />\n );\n };\n },\n});\n","import { defineComponent } from 'vue';\nimport Panel from './components/Panel';\nimport props from './props';\n\nimport { useCascaderContext } from './hooks';\n\nexport default defineComponent({\n name: 'TCascaderPanel',\n props,\n setup(props, { slots }) {\n const { cascaderContext } = useCascaderContext(props);\n\n return () => (\n \n );\n },\n});\n","import _Cascader from './cascader';\nimport _CascaderPanel from './cascader-panel';\nimport withInstall from '../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 '@tdesign/hooks';\nimport { TdDatePickerProps, DateMultipleValue, DateValue } from '../type';\n\nexport function useSingleValue(props: TdDatePickerProps) {\n const { value: valueFromProps, modelValue } = toRefs(props);\n const [value, onChange] = useVModel(valueFromProps, modelValue, props.defaultValue, props.onChange);\n\n const formatRef = computed(() =>\n getDefaultFormat({\n mode: props.mode,\n format: props.format,\n enableTimePicker: props.multiple ? false : props.enableTimePicker,\n }),\n );\n\n if (props.enableTimePicker) {\n if (!extractTimeFormat(formatRef.value.format))\n console.error(`format: ${formatRef.value.format} 不规范,包含时间选择必须要有时间格式化 HH:mm:ss`);\n }\n\n const time = ref(\n formatTime(\n props.multiple ? (value.value as DateMultipleValue)?.[0] : value.value,\n formatRef.value.format,\n formatRef.value.timeFormat,\n props.defaultTime,\n ),\n );\n const month = ref(\n parseToDayjs(\n props.multiple ? (value.value as DateMultipleValue)?.[0] : (value.value as DateValue),\n formatRef.value.format,\n ).month(),\n );\n const year = ref(\n parseToDayjs(\n props.multiple ? (value.value as DateMultipleValue)?.[0] : (value.value as DateValue),\n formatRef.value.format,\n ).year(),\n );\n const cacheValue = ref(\n formatDate(props.multiple ? (value.value as DateMultipleValue)?.[0] : value.value, {\n format: formatRef.value.format,\n }),\n ); // 缓存选中值,panel 点击时更改\n\n // 输入框响应 value 变化\n watchEffect(() => {\n if (!value.value) {\n cacheValue.value = '';\n return;\n }\n if (!isValidDate(value.value, formatRef.value.format)) return;\n\n cacheValue.value = formatDate(value.value, {\n format: formatRef.value.format,\n });\n time.value = formatTime(value.value, formatRef.value.format, formatRef.value.timeFormat, props.defaultTime);\n });\n\n return {\n year,\n month,\n value,\n time,\n cacheValue,\n onChange,\n };\n}\n","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","!function(e,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isBetween=i()}(this,(function(){\"use strict\";return function(e,i,t){i.prototype.isBetween=function(e,i,s,f){var n=t(e),o=t(i),r=\"(\"===(f=f||\"()\")[0],u=\")\"===f[1];return(r?this.isAfter(n,s):!this.isBefore(n,s))&&(u?this.isBefore(o,s):!this.isAfter(o,s))||(r?this.isBefore(n,s):!this.isAfter(n,s))&&(u?this.isAfter(o,s):!this.isBefore(o,s))}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekOfYear=t()}(this,(function(){\"use strict\";var e=\"week\",t=\"year\";return function(i,n,r){var f=n.prototype;f.week=function(i){if(void 0===i&&(i=null),null!==i)return this.add(7*(i-this.week()),\"day\");var n=this.$locale().yearStart||1;if(11===this.month()&&this.date()>25){var f=r(this).startOf(t).add(1,t).date(n),s=r(this).endOf(e);if(f.isBefore(s))return 1}var a=r(this).startOf(t).date(n).startOf(e).subtract(1,\"millisecond\"),o=this.diff(a,e,!0);return o<0?r(this).startOf(\"week\").week():Math.ceil(o)},f.weeks=function(e){return void 0===e&&(e=null),this.week(e)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekYear=t()}(this,(function(){\"use strict\";return function(e,t){t.prototype.weekYear=function(){var e=this.month(),t=this.week(),n=this.year();return 1===t&&11===e?n+1:0===e&&t>=52?n-1:n}}}));","!function(n,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(n=\"undefined\"!=typeof globalThis?globalThis:n||self).dayjs_plugin_localeData=e()}(this,(function(){\"use strict\";return function(n,e,t){var r=e.prototype,o=function(n){return n&&(n.indexOf?n:n.s)},u=function(n,e,t,r,u){var i=n.name?n:n.$locale(),a=o(i[e]),s=o(i[t]),f=a||s.map((function(n){return n.slice(0,r)}));if(!u)return f;var d=i.weekStart;return f.map((function(n,e){return f[(e+(d||0))%7]}))},i=function(){return t.Ls[t.locale()]},a=function(n,e){return n.formats[e]||function(n){return n.replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(n,e,t){return e||t.slice(1)}))}(n.formats[e.toUpperCase()])},s=function(){var n=this;return{months:function(e){return e?e.format(\"MMMM\"):u(n,\"months\")},monthsShort:function(e){return e?e.format(\"MMM\"):u(n,\"monthsShort\",\"months\",3)},firstDayOfWeek:function(){return n.$locale().weekStart||0},weekdays:function(e){return e?e.format(\"dddd\"):u(n,\"weekdays\")},weekdaysMin:function(e){return e?e.format(\"dd\"):u(n,\"weekdaysMin\",\"weekdays\",2)},weekdaysShort:function(e){return e?e.format(\"ddd\"):u(n,\"weekdaysShort\",\"weekdays\",3)},longDateFormat:function(e){return a(n.$locale(),e)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};r.localeData=function(){return s.bind(this)()},t.localeData=function(){var n=i();return{firstDayOfWeek:function(){return n.weekStart||0},weekdays:function(){return t.weekdays()},weekdaysShort:function(){return t.weekdaysShort()},weekdaysMin:function(){return t.weekdaysMin()},months:function(){return t.months()},monthsShort:function(){return t.monthsShort()},longDateFormat:function(e){return a(n,e)},meridiem:n.meridiem,ordinal:n.ordinal}},t.months=function(){return u(i(),\"months\")},t.monthsShort=function(){return u(i(),\"monthsShort\",\"months\",3)},t.weekdays=function(n){return u(i(),\"weekdays\",null,null,n)},t.weekdaysShort=function(n){return u(i(),\"weekdaysShort\",\"weekdays\",3,n)},t.weekdaysMin=function(n){return u(i(),\"weekdaysMin\",\"weekdays\",2,n)}}}));","!function(t,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_quarterOfYear=n()}(this,(function(){\"use strict\";var t=\"month\",n=\"quarter\";return function(e,i){var r=i.prototype;r.quarter=function(t){return this.$utils().u(t)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(t-1))};var s=r.add;r.add=function(e,i){return e=Number(e),this.$utils().p(i)===n?this.add(3*e,t):s.bind(this)(e,i)};var u=r.startOf;r.startOf=function(e,i){var r=this.$utils(),s=!!r.u(i)||i;if(r.p(e)===n){var o=this.quarter()-1;return s?this.month(3*o).startOf(t).startOf(\"day\"):this.month(3*o+2).endOf(t).endOf(\"day\")}return u.bind(this)(e,i)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_advancedFormat=t()}(this,(function(){\"use strict\";return function(e,t){var r=t.prototype,n=r.format;r.format=function(e){var t=this,r=this.$locale();if(!this.isValid())return n.bind(this)(e);var s=this.$utils(),a=(e||\"YYYY-MM-DDTHH:mm:ssZ\").replace(/\\[([^\\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(e){switch(e){case\"Q\":return Math.ceil((t.$M+1)/3);case\"Do\":return r.ordinal(t.$D);case\"gggg\":return t.weekYear();case\"GGGG\":return t.isoWeekYear();case\"wo\":return r.ordinal(t.week(),\"W\");case\"w\":case\"ww\":return s.s(t.week(),\"w\"===e?1:2,\"0\");case\"W\":case\"WW\":return s.s(t.isoWeek(),\"W\"===e?1:2,\"0\");case\"k\":case\"kk\":return s.s(String(0===t.$H?24:t.$H),\"k\"===e?1:2,\"0\");case\"X\":return Math.floor(t.$d.getTime()/1e3);case\"x\":return t.$d.getTime();case\"z\":return\"[\"+t.offsetName()+\"]\";case\"zzz\":return\"[\"+t.offsetName(\"long\")+\"]\";default:return e}}));return n.bind(this)(a)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_customParseFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},t=/(\\[[^[]*\\])|([-_:/.,()\\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\\d\\d/,r=/\\d\\d?/,i=/\\d*[^-_:/,()\\s\\d]+/,o={},s=function(e){return(e=+e)+(e>68?1900:2e3)};var a=function(e){return function(t){this[e]=+t}},f=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:\"+\"===t[0]?-n:n}(e)}],h=function(e){var t=o[e];return t&&(t.indexOf?t:t.s.concat(t.f))},u=function(e,t){var n,r=o.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?\"pm\":\"PM\");return n},d={A:[i,function(e){this.afternoon=u(e,!1)}],a:[i,function(e){this.afternoon=u(e,!0)}],S:[/\\d/,function(e){this.milliseconds=100*+e}],SS:[n,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[r,a(\"seconds\")],ss:[r,a(\"seconds\")],m:[r,a(\"minutes\")],mm:[r,a(\"minutes\")],H:[r,a(\"hours\")],h:[r,a(\"hours\")],HH:[r,a(\"hours\")],hh:[r,a(\"hours\")],D:[r,a(\"day\")],DD:[n,a(\"day\")],Do:[i,function(e){var t=o.ordinal,n=e.match(/\\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\\[|\\]/g,\"\")===e&&(this.day=r)}],M:[r,a(\"month\")],MM:[n,a(\"month\")],MMM:[i,function(e){var t=h(\"months\"),n=(h(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[i,function(e){var t=h(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,a(\"year\")],YY:[n,function(e){this.year=s(e)}],YYYY:[/\\d{4}/,a(\"year\")],Z:f,ZZ:f};function c(n){var r,i;r=n,i=o&&o.formats;for(var s=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=s.length,f=0;f-1)return new Date((\"X\"===t?1e3:1)*e);var r=c(t)(e),i=r.year,o=r.month,s=r.day,a=r.hours,f=r.minutes,h=r.seconds,u=r.milliseconds,d=r.zone,l=new Date,m=s||(i||o?1:l.getDate()),M=i||l.getFullYear(),Y=0;i&&!o||(Y=o>0?o-1:l.getMonth());var p=a||0,v=f||0,D=h||0,g=u||0;return d?new Date(Date.UTC(M,Y,m,p,v,D,g+60*d.offset*1e3)):n?new Date(Date.UTC(M,Y,m,p,v,D,g)):new Date(M,Y,m,p,v,D,g)}catch(e){return new Date(\"\")}}(t,a,r),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),o={}}else if(a instanceof Array)for(var l=a.length,m=1;m<=l;m+=1){s[1]=a[m-1];var M=n.apply(this,s);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===l&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}));","import { isFunction, chunk } from 'lodash-es';\nimport dayjs from 'dayjs';\nimport dayJsIsBetween from 'dayjs/plugin/isBetween';\nimport weekOfYear from 'dayjs/plugin/weekOfYear';\nimport weekYear from 'dayjs/plugin/weekYear';\nimport localeData from 'dayjs/plugin/localeData';\nimport quarterOfYear from 'dayjs/plugin/quarterOfYear';\nimport advancedFormat from 'dayjs/plugin/advancedFormat';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { parseToDayjs } from './format';\n\ndayjs.extend(weekOfYear);\ndayjs.extend(weekYear);\ndayjs.extend(localeData);\ndayjs.extend(quarterOfYear);\ndayjs.extend(advancedFormat);\ndayjs.extend(customParseFormat);\ndayjs.extend(dayJsIsBetween);\n\n/**\n * 首字母大写\n * @param {String} str 目标字符串\n * @returns {String}\n */\nexport function firstUpperCase(str: string): string {\n if (!str) return str;\n return str[0].toUpperCase().concat(str.substring(1, str.length));\n}\n\ninterface DateObj {\n year: number;\n month: number;\n}\n\n/**\n * 返回指定年、月的第一天日期\n * @param {Object} { year, month }\n * @returns {Date}\n */\nfunction getFirstDayOfMonth({ year, month }: DateObj): Date {\n return new Date(year, month, 1);\n}\n\n/**\n * 返回指定年、月的天数\n * @param {Object} { year, month }\n * @returns {Number}\n */\nfunction getDaysInMonth({ year, month }: DateObj): number {\n return new Date(year, month + 1, 0).getDate();\n}\n\n/**\n * 返回指定年、月的最后一天日期\n * @param {Object} { year, month }\n * @returns {Date}\n */\nfunction getLastDayOfMonth({ year, month }: DateObj): Date {\n return new Date(year, month, getDaysInMonth({ year, month }));\n}\n\nfunction isSameYear(date1: Date, date2: Date): boolean {\n return date1.getFullYear() === date2.getFullYear();\n}\n\nfunction isSameQuarter(date1: Date, date2: Date): boolean {\n return isSameYear(date1, date2) && dayjs(date1).quarter() === dayjs(date2).quarter();\n}\n\nfunction isSameMonth(date1: Date, date2: Date): boolean {\n return isSameYear(date1, date2) && date1.getMonth() === date2.getMonth();\n}\n\nfunction isSameWeek(date1: Date, date2: Date, dayjsLocale = 'zh-cn'): boolean {\n return isSameMonth(date1, date2) && dayjs(date1).locale(dayjsLocale).week() === dayjs(date2).locale(dayjsLocale).week();\n}\n\nfunction isSameDate(date1: Date, date2: Date): boolean {\n return isSameMonth(date1, date2) && date1.getDate() === date2.getDate();\n}\n\n/**\n * 比较两个日期对象的时间戳\n * @param {Date} date1 日期1\n * @param {Date} date2 日期2\n * @returns {Number} 返回 date1.getTime() - date2.getTime() 的差值\n */\nfunction compareAsc(date1: { getTime: () => any }, date2: Date): number {\n const d1 = date1.getTime();\n const d2 = date2.getTime();\n\n if (d1 < d2) return -1;\n if (d1 > d2) return 1;\n return 0;\n}\n\n/**\n * 比较两个 Date 是否是同一天 或则 同一月 或则 同一年\n * @param {Date} date1 比较的日期\n * @param {Date} date2 比较的日期\n * @param {String} type 比较类型,默认比较到『日』 date|month|year\n * @returns {Boolean}\n */\nexport function isSame(date1: Date, date2: Date, type = 'date', dayjsLocale = 'zh-cn'): boolean {\n const func = {\n isSameYear,\n isSameQuarter,\n isSameMonth,\n isSameWeek,\n isSameDate,\n } as Record boolean>;\n return func[`isSame${firstUpperCase(type)}`](date1, date2, dayjsLocale);\n}\n\nexport function outOfRanges(d: Date, min: any, max: any) {\n return (min && compareAsc(d, min) === -1) || (max && compareAsc(d, max) === 1);\n}\n\n/**\n * @returns {Date} 当天零点的日期对象\n */\nexport function getToday(): Date {\n const now = new Date();\n return new Date(now.getFullYear(), now.getMonth(), now.getDate(), 0, 0, 0);\n}\n\n/**\n * 返回日期对象的年、月、日、小时、分钟、秒、12小时制标识\n * @param {Date} date\n * @returns {Object}\n */\nexport function getDateObj(date: Date) {\n let tempDate = date;\n if (!(date instanceof Date)) {\n tempDate = getToday();\n }\n return {\n year: tempDate.getFullYear(),\n month: tempDate.getMonth(),\n date: tempDate.getDate(),\n hours: tempDate.getHours(),\n minutes: tempDate.getMinutes(),\n seconds: tempDate.getSeconds(),\n milliseconds: tempDate.getMilliseconds(),\n meridiem: tempDate.getHours() > 11 ? 'PM' : 'AM',\n };\n}\n\n/**\n * 设置日期对象的时间部分\n * @param {Date} date 日期\n * @param {Number} hours 小时\n * @param {Number} minutes 分钟\n * @param {Number} seconds 秒\n * @param {Number} milliseconds 毫秒\n * @returns {Date} 一个新的date\n */\nexport function setDateTime(\n date: Date,\n hours: number,\n minutes: number,\n seconds: number,\n milliseconds?: number\n): Date {\n return dayjs(date)\n .hour(hours)\n .minute(minutes)\n .second(seconds)\n .millisecond(milliseconds)\n .toDate();\n}\n\n/**\n * 减少月份\n * @param {Date} date 起始日期\n * @param {Number} num 月份数\n * @returns {Date}\n */\nexport function subtractMonth(date: Date, num: number): Date {\n return dayjs(date).subtract(num, 'month').toDate();\n}\n\n/**\n * 增加月份\n * @param {Date} date 起始日期\n * @param {Number} num 月份数\n * @returns {Date}\n */\nexport function addMonth(date: Date, num: number): Date {\n return dayjs(date).add(num, 'month').toDate();\n}\n\nexport type DateValue = string | Date | number;\nexport interface DisableDateObj { from?: string; to?: string; before?: string; after?: string }\nexport type DisableDate = Array | DisableDateObj | ((date: DateValue) => boolean);\n\nexport interface OptionsType {\n firstDayOfWeek: number;\n disableDate: DisableDate;\n minDate: Date;\n maxDate: Date;\n showWeekOfYear?: Boolean;\n dayjsLocale?: string;\n monthLocal?: string[];\n quarterLocal?: string[];\n cancelRangeSelectLimit?: boolean;\n}\n\nexport function getWeeks(\n { year, month }: { year: number; month: number },\n {\n firstDayOfWeek,\n showWeekOfYear = false,\n disableDate = () => false,\n minDate,\n maxDate,\n dayjsLocale = 'zh-cn',\n cancelRangeSelectLimit = false,\n }: OptionsType,\n) {\n const prependDay = getFirstDayOfMonth({ year, month });\n const appendDay = getLastDayOfMonth({ year, month });\n const maxDays = getDaysInMonth({ year, month });\n const daysArr = [];\n let i = 1;\n const today = getToday();\n for (i; i <= maxDays; i++) {\n const currentDay = new Date(year, month, i);\n daysArr.push({\n text: i,\n active: false,\n value: currentDay,\n disabled: (isFunction(disableDate) && disableDate(currentDay))\n || (!cancelRangeSelectLimit && outOfRanges(currentDay, minDate, maxDate)),\n now: isSame(today, currentDay),\n firstDayOfMonth: i === 1,\n lastDayOfMonth: i === maxDays,\n type: 'current-month',\n dayjsObj: dayjs(currentDay).locale(dayjsLocale),\n });\n }\n\n if (prependDay.getDay() !== firstDayOfWeek) {\n prependDay.setDate(0); // 上一月\n while (true) {\n daysArr.unshift({\n text: prependDay.getDate().toString(),\n active: false,\n value: new Date(prependDay),\n disabled: (isFunction(disableDate) && disableDate(prependDay)) || (!cancelRangeSelectLimit && outOfRanges(prependDay, minDate, maxDate)),\n additional: true, // 非当前月\n type: 'prev-month',\n dayjsObj: dayjs(prependDay).locale(dayjsLocale),\n });\n prependDay.setDate(prependDay.getDate() - 1);\n if (prependDay.getDay() === Math.abs(firstDayOfWeek + 6) % 7) break;\n }\n }\n\n const LEN = 42; // 显示6周\n while (daysArr.length < LEN) {\n appendDay.setDate(appendDay.getDate() + 1);\n daysArr.push({\n text: appendDay.getDate(),\n active: false,\n value: new Date(appendDay),\n disabled: (isFunction(disableDate) && disableDate(appendDay)) || (!cancelRangeSelectLimit && outOfRanges(appendDay, minDate, maxDate)),\n additional: true, // 非当前月\n type: 'next-month',\n dayjsObj: dayjs(appendDay).locale(dayjsLocale),\n });\n }\n\n const dataList = chunk(daysArr, 7);\n // 显示周数\n if (showWeekOfYear) {\n dataList.forEach((d) => {\n d.unshift({\n ...d[0],\n active: false,\n value: d[0].value,\n text: dayjs(d[0].value).locale(dayjsLocale).week(),\n dayjsObj: dayjs(d[0].value).locale(dayjsLocale),\n });\n });\n }\n\n return dataList;\n}\n\nexport function getQuarters(\n year: number,\n {\n disableDate = () => false,\n minDate,\n maxDate,\n quarterLocal,\n dayjsLocale = 'zh-cn',\n cancelRangeSelectLimit = false,\n }: OptionsType,\n) {\n const quarterArr = [];\n const today = getToday();\n\n for (let i = 1; i <= 4; i++) {\n const date = dayjs(new Date(year, 0)).quarter(i).toDate();\n\n quarterArr.push({\n value: date,\n now: isSame(date, today, 'quarter'),\n disabled: (isFunction(disableDate) && disableDate(date)) || (!cancelRangeSelectLimit && outOfRanges(date, minDate, maxDate)),\n active: false,\n text: quarterLocal[i - 1],\n dayjsObj: dayjs(date).locale(dayjsLocale),\n });\n }\n\n return chunk(quarterArr, 4);\n}\n\nexport function getYears(\n year: number,\n {\n disableDate = () => false,\n minDate,\n maxDate,\n dayjsLocale = 'zh-cn',\n cancelRangeSelectLimit = false,\n }: OptionsType,\n) {\n const startYear = parseInt((year / 10).toString(), 10) * 10;\n const endYear = startYear + 9;\n\n const yearArr = [];\n\n const today = getToday();\n\n for (let i = startYear; i <= endYear; i++) {\n const date = new Date(i, 0);\n\n yearArr.push({\n value: date,\n now: isSame(date, today, 'year'),\n disabled: (isFunction(disableDate) && disableDate(date)) || (!cancelRangeSelectLimit && outOfRanges(date, minDate, maxDate)),\n active: false,\n text: `${date.getFullYear()}`,\n dayjsObj: dayjs(date).locale(dayjsLocale),\n });\n }\n\n return chunk(yearArr, 3);\n}\n\nexport function getMonths(year: number, params: OptionsType) {\n const {\n disableDate = () => false, minDate, maxDate, monthLocal, dayjsLocale = 'zh-cn', cancelRangeSelectLimit = false,\n } = params;\n const MonthArr = [];\n const today = getToday();\n\n for (let i = 0; i <= 11; i++) {\n const date = new Date(year, i);\n\n MonthArr.push({\n value: date,\n now: isSame(date, today, 'month'),\n disabled: (isFunction(disableDate) && disableDate(date)) || (!cancelRangeSelectLimit && outOfRanges(date, minDate, maxDate)),\n active: false,\n text: monthLocal[date.getMonth()], // `${date.getMonth() + 1} ${monthText || '月'}`,\n dayjsObj: dayjs(date).locale(dayjsLocale),\n });\n }\n\n return chunk(MonthArr, 3);\n}\n\nexport interface DateTime {\n additional: boolean;\n active: boolean;\n highlight: boolean;\n hoverHighlight: boolean;\n startOfRange: boolean;\n endOfRange: boolean;\n hoverStartOfRange: boolean;\n hoverEndOfRange: boolean;\n value: Date;\n}\n\ninterface FlagActiveOptions {\n start: Date;\n end: Date;\n hoverStart: Date;\n hoverEnd: Date;\n type: any;\n isRange: boolean;\n value: DateValue | DateValue[];\n multiple: boolean;\n}\n\nexport function flagActive(data: any[], { ...args }: FlagActiveOptions) {\n const {\n start,\n end,\n hoverStart,\n hoverEnd,\n type = 'date',\n isRange = false,\n value,\n multiple = false,\n } = args;\n\n // 周选择器不更改 cell 样式\n if (type === 'week') return data;\n\n if (!isRange) {\n return data.map((row: any[]) => row.map((item: DateTime) => {\n const _item = item;\n\n if (multiple) {\n _item.active = (value as DateValue[])?.some?.((val) => isSame(dayjs(val).toDate(), _item.value, type) && !_item.additional);\n } else {\n _item.active = start && isSame(item.value, start, type) && !_item.additional;\n }\n\n return _item;\n }));\n }\n\n return data.map((row: any[]) => row.map((item: DateTime) => {\n const _item = item;\n const date = item.value;\n\n const isStart = start && isSame(start, date, type);\n const isHoverStart = hoverStart && isSame(hoverStart, date, type);\n const isEnd = end && isSame(end, date, type);\n const isHoverEnd = hoverEnd && isSame(hoverEnd, date, type);\n _item.active = (isStart || isEnd) && !_item.additional;\n\n if (start && end) {\n _item.highlight = dayjs(date).isBetween(start, end, type, '[]') && !_item.additional;\n _item.startOfRange = isStart;\n _item.endOfRange = isEnd;\n }\n\n if (hoverStart && hoverEnd) {\n _item.hoverHighlight = dayjs(date).isBetween(hoverStart, hoverEnd, type, '[]') && !_item.additional;\n _item.hoverStartOfRange = isHoverStart;\n _item.hoverEndOfRange = isHoverEnd;\n }\n return _item;\n }));\n}\n\n/**\n * 返回时间对象的小时、分钟、秒、12小时制标识\n * @param {String} timeFormat 'pm 20:11:11:333'\n * @returns {Object}\n */\nexport function extractTimeObj(timeFormat: string = '') {\n const matchedMeridiem = timeFormat.match(/[ap]m/i) || [''];\n const timeReg = /\\d{1,2}(:\\d{1,2})?(:\\d{1,2})?(:\\d{1,3})?/;\n const matchedTimeStr = timeFormat.match(timeReg) || ['0:0:0:0'];\n const [hours = 0, minutes = 0, seconds = 0, milliseconds = 0] = matchedTimeStr[0].split(':');\n\n return {\n hours: +hours,\n minutes: +minutes,\n seconds: +seconds,\n milliseconds: +milliseconds,\n meridiem: matchedMeridiem[0],\n };\n}\n\n/**\n * 日期是否可用\n * @param {Object} { value, disableDate, mode, format }\n * @returns {Boolean}\n */\nexport function isEnabledDate({\n value,\n disableDate,\n mode,\n format,\n}: {\n value: Date;\n mode: 'year' | 'month' | 'date' | 'quarter' | 'week';\n format: string;\n disableDate: any;\n}): boolean {\n if (!disableDate) return true;\n\n const availableMode = mode === 'quarter' ? 'date' : mode;\n\n let isEnabled = true;\n // 值类型为 Function 则表示返回值为 true 的日期会被禁用\n if (isFunction(disableDate)) {\n return !disableDate(value);\n }\n\n // 禁用日期,示例:['A', 'B'] 表示日期 A 和日期 B 会被禁用。\n if (Array.isArray(disableDate)) {\n const formattedDisabledDate = disableDate.map((item: string) => parseToDayjs(item, format));\n // eslint-disable-next-line\n const isIncludes = formattedDisabledDate.some(item => item.isSame(dayjs(value)));\n return !isIncludes;\n }\n\n // { from: 'A', to: 'B' } 表示在 A 到 B 之间的日期会被禁用(包括A和B)。\n // eslint-disable-next-line\n const { from, to, before, after } = disableDate;\n\n if (from && to) {\n const compareMin = dayjs(from).startOf('day');\n const compareMax = dayjs(to).endOf('day');\n return !dayjs(value).isBetween(compareMin, compareMax, availableMode, '[]');\n }\n\n // 最小时间与最大时间的边界,防止正负时区出现禁用时间不一致的情况\n const min = before ? new Date(dayjs(before).startOf('day').format()) : null;\n const max = after ? new Date(dayjs(after).endOf('day').format()) : null;\n\n // { before: 'A', after: 'B' } 表示在 A 之前和在 B 之后的日期都会被禁用。\n if (max && min) {\n const compareMin = dayjs(new Date(min));\n const compareMax = dayjs(new Date(max));\n\n isEnabled = dayjs(value).isBetween(compareMin, compareMax, availableMode, '[]');\n } else if (min) {\n const compareMin = dayjs(new Date(min));\n isEnabled = !dayjs(value).isBefore(compareMin, availableMode);\n } else if (max) {\n const compareMax = dayjs(new Date(max));\n isEnabled = !dayjs(value).isAfter(compareMax, availableMode);\n }\n return isEnabled;\n}\n\n/**\n * formatDate 方法需要date作为入参,部分场景需要将timestamp或格式化后的时间string转换为date进行使用\n */\nexport function covertToDate(value: string, valueType: string) {\n return valueType === 'time-stamp'\n ? new Date(value)\n : dayjs(value, valueType).toDate();\n}\n","function _objectDestructuringEmpty(t) {\n if (null == t) throw new TypeError(\"Cannot destructure \" + t);\n}\nexport { _objectDestructuringEmpty as default };","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdDatePickerProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否允许输入日期 */\n allowInput: Boolean,\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否显示清除按钮 */\n clearable: Boolean,\n /** 时间选择器默认值,当 value/defaultValue 未设置值时有效 */\n defaultTime: {\n type: String,\n default: '00:00:00',\n },\n /** 禁用日期,示例:['A', 'B'] 表示日期 A 和日期 B 会被禁用。`{ from: 'A', to: 'B' }` 表示在 A 到 B 之间的日期会被禁用。`{ before: 'A', after: 'B' }` 表示在 A 之前和在 B 之后的日期都会被禁用。其中 A = '2021-01-01',B = '2021-02-01'。值类型为 Function 则表示返回值为 true 的日期会被禁用 */\n disableDate: {\n type: [Object, Array, Function] as PropType,\n },\n /** 是否禁用组件 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 是否显示时间选择 */\n enableTimePicker: Boolean,\n /** 第一天从星期几开始 */\n firstDayOfWeek: {\n type: Number,\n validator(val: TdDatePickerProps['firstDayOfWeek']): boolean {\n if (!val) return true;\n return [1, 2, 3, 4, 5, 6, 7].includes(val);\n },\n },\n /** 仅用于格式化日期显示的格式,不影响日期值。注意和 `valueType` 的区别,`valueType`会直接决定日期值 `value` 的格式。全局配置默认为:'YYYY-MM-DD',[详细文档](https://day.js.org/docs/en/display/format) */\n format: {\n type: String,\n default: undefined,\n },\n /** 透传给输入框(Input)组件的参数 */\n inputProps: {\n type: Object as PropType,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 选择器模式 */\n mode: {\n type: String as PropType,\n default: 'date' as TdDatePickerProps['mode'],\n validator(val: TdDatePickerProps['mode']): boolean {\n if (!val) return true;\n return ['year', 'quarter', 'month', 'week', 'date'].includes(val);\n },\n },\n /** 支持多选日期,但不支持在range-picker中,或与enableTimePicker、allowInput 一起使用 */\n multiple: Boolean,\n /** 决定在日期时间选择器的场景下是否需要点击确认按钮才完成选择动作,默认为`true` */\n needConfirm: {\n type: Boolean,\n default: true,\n },\n /** 占位符 */\n placeholder: {\n type: [String, Array] as PropType,\n default: undefined as TdDatePickerProps['placeholder'],\n },\n /** 透传给 popup 组件的参数 */\n popupProps: {\n type: Object as PropType,\n },\n /** 用于自定义组件前置图标 */\n prefixIcon: {\n type: Function as PropType,\n },\n /** 预设快捷日期选择,示例:`{ '元旦': '2021-01-01', '昨天': dayjs().subtract(1, 'day').format('YYYY-MM-DD'), '特定日期': () => ['2021-02-01'] }` */\n presets: {\n type: Object as PropType,\n },\n /** 预设面板展示区域(包含确定按钮) */\n presetsPlacement: {\n type: String as PropType,\n default: 'bottom' as TdDatePickerProps['presetsPlacement'],\n validator(val: TdDatePickerProps['presetsPlacement']): boolean {\n if (!val) return true;\n return ['left', 'top', 'right', 'bottom'].includes(val);\n },\n },\n /** 是否只读,优先级大于 allowInput */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 透传 SelectInput 筛选器输入框组件的全部属性 */\n selectInputProps: {\n type: Object as PropType,\n },\n /** 输入框尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdDatePickerProps['size'],\n validator(val: TdDatePickerProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdDatePickerProps['status'],\n validator(val: TdDatePickerProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 用于自定义组件后置图标 */\n suffixIcon: {\n type: Function as PropType,\n },\n /** 透传 TimePicker 组件属性 */\n timePickerProps: {\n type: Object as PropType,\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 选中值 */\n value: {\n type: [String, Number, Array, Date] as PropType,\n default: undefined as TdDatePickerProps['value'],\n },\n modelValue: {\n type: [String, Number, Array, Date] as PropType,\n default: undefined as TdDatePickerProps['value'],\n },\n /** 选中值,非受控属性 */\n defaultValue: {\n type: [String, Number, Array, Date] as PropType,\n default: '' as TdDatePickerProps['defaultValue'],\n },\n /** 自定义选中项呈现的内容 */\n valueDisplay: {\n type: [String, Function] as PropType,\n },\n /** 用于格式化日期的值,仅支持部分格式,时间戳、日期等。⚠️ `YYYYMMDD` 这种格式不支持,请勿使用,如果希望支持可以给 `dayjs` 提个 PR。注意和 `format` 的区别,`format` 仅用于处理日期在页面中呈现的格式。`ValueTypeEnum` 即将废弃,请更为使用 `DatePickerValueType` */\n valueType: {\n type: String as PropType,\n default: '' as TdDatePickerProps['valueType'],\n },\n /** 当输入框失去焦点时触发 */\n onBlur: Function as PropType,\n /** 选中值发生变化时触发 */\n onChange: Function as PropType,\n /** 如果存在“确定”按钮,则点击“确定”按钮时触发 */\n onConfirm: Function as PropType,\n /** 输入框获得焦点时触发 */\n onFocus: Function as PropType,\n /** 面板选中值后触发 */\n onPick: Function as PropType,\n /** 点击预设按钮后触发 */\n onPresetClick: Function as PropType,\n};\n","import { defineComponent, PropType, ref, computed, watch } from 'vue';\nimport { PaginationMini, JumperTrigger } from '../../../pagination';\nimport TSelect from '../../../select';\nimport { useConfig, usePrefixClass } from '@tdesign/hooks';\n\nimport type { TdDatePickerProps } from '../../type';\n\nexport default defineComponent({\n name: 'TDatePickerHeader',\n props: {\n mode: {\n type: String as PropType,\n default: 'date',\n },\n year: Number,\n month: Number,\n 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 '@tdesign/hooks';\nimport { extractTimeObj } from '@tdesign/common-js/date-picker/utils';\nimport { Dayjs } from 'dayjs';\n\nexport default defineComponent({\n name: 'TDatePickerCell',\n props: {\n time: String,\n text: [String, Number],\n value: Date,\n active: Boolean,\n highlight: Boolean,\n disabled: Boolean,\n startOfRange: Boolean,\n endOfRange: Boolean,\n hoverHighlight: Boolean,\n hoverStartOfRange: Boolean,\n hoverEndOfRange: Boolean,\n additional: Boolean,\n now: Boolean,\n firstDayOfMonth: Boolean,\n lastDayOfMonth: Boolean,\n onClick: Function,\n onMouseEnter: Function,\n dayjsObj: Dayjs,\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('date-picker__cell');\n\n const cellClass = computed(() => [\n COMPONENT_NAME.value,\n {\n [`${COMPONENT_NAME.value}--now`]: props.now,\n [`${COMPONENT_NAME.value}--active`]: props.active,\n [`${COMPONENT_NAME.value}--disabled`]: props.disabled,\n [`${COMPONENT_NAME.value}--highlight`]: props.highlight,\n [`${COMPONENT_NAME.value}--hover-highlight`]: props.hoverHighlight,\n [`${COMPONENT_NAME.value}--active-start`]: props.startOfRange,\n [`${COMPONENT_NAME.value}--active-end`]: props.endOfRange,\n [`${COMPONENT_NAME.value}--hover-start`]: props.hoverStartOfRange,\n [`${COMPONENT_NAME.value}--hover-end`]: props.hoverEndOfRange,\n [`${COMPONENT_NAME.value}--additional`]: props.additional,\n [`${COMPONENT_NAME.value}--first-day-of-month`]: props.firstDayOfMonth,\n [`${COMPONENT_NAME.value}--last-day-of-month`]: props.lastDayOfMonth,\n },\n ]);\n\n function handleClick(e: MouseEvent) {\n if (props.disabled) return;\n if (props.time) {\n const { hours, minutes, seconds, milliseconds, meridiem } = extractTimeObj(props.time);\n // am pm 12小时制转化 24小时制\n let nextHours = hours;\n if (/am/i.test(meridiem) && nextHours === 12) nextHours -= 12;\n if (/pm/i.test(meridiem) && nextHours < 12) nextHours += 12;\n props.value.setHours(nextHours);\n props.value.setMinutes(minutes);\n props.value.setSeconds(seconds);\n props.value.setMilliseconds(milliseconds);\n }\n props.onClick?.(props.value, { e });\n }\n\n function handleMouseEnter() {\n if (props.disabled) return;\n if (props.time) {\n const { hours, minutes, seconds, milliseconds, meridiem } = extractTimeObj(props.time);\n // am pm 12小时制转化 24小时制\n let nextHours = hours;\n if (/am/i.test(meridiem) && nextHours === 12) nextHours -= 12;\n if (/pm/i.test(meridiem) && nextHours < 12) nextHours += 12;\n props.value.setHours(nextHours);\n props.value.setMinutes(minutes);\n props.value.setSeconds(seconds);\n props.value.setMilliseconds(milliseconds);\n }\n props.onMouseEnter?.(props.value);\n }\n\n return () => (\n \n
    {props.text}
    \n \n );\n },\n});\n","import { defineComponent, PropType, computed } from 'vue';\n\nimport TDatePickerCell from './Cell';\nimport { useConfig, usePrefixClass } from '@tdesign/hooks';\nimport { parseToDayjs } from '@tdesign/common-js/date-picker/format';\nimport { isArray } from 'lodash-es';\n\nimport type { TdDatePickerProps, DateMultipleValue } from '../../type';\n\nexport default defineComponent({\n name: 'TDatePickerTable',\n props: {\n mode: {\n type: String as PropType,\n default: 'date',\n },\n value: [String, Number, Array, Date],\n format: String,\n firstDayOfWeek: Number,\n multiple: Boolean,\n data: Array,\n time: String,\n onCellClick: Function,\n onCellMouseEnter: Function,\n onCellMouseLeave: Function,\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('date-picker__table');\n const { globalConfig } = useConfig('datePicker');\n const { dayjsLocale } = globalConfig.value;\n\n const weekArr = computed(() => {\n const weekArr = [];\n let wi = props.firstDayOfWeek - 1;\n const len = globalConfig.value.weekdays.length;\n while (weekArr.length < len) {\n weekArr.push(globalConfig.value.weekdays[wi]);\n wi = (wi + len + 1) % len;\n }\n\n if (props.mode === 'week') weekArr.unshift(globalConfig.value.weekAbbreviation);\n\n return weekArr;\n });\n\n const showThead = computed(() => props.mode === 'date' || props.mode === 'week');\n\n // 高亮周区间\n const weekRowClass = (value: any, targetValue: Date) => {\n if (props.mode !== 'week' || !value) return {};\n\n if (isArray(value)) {\n if (!value.length) return {};\n const [startObj, endObj] = value.map((v) => v && parseToDayjs(v, props.format));\n const startYear = startObj && startObj.year();\n const startWeek = startObj?.locale?.(dayjsLocale)?.week?.();\n const endYear = endObj && endObj.year();\n const endWeek = endObj?.locale?.(dayjsLocale)?.week?.();\n\n const targetObj = parseToDayjs(targetValue, props.format);\n const targetYear = targetObj.year();\n const targetWeek = targetObj.week();\n const isActive =\n (targetYear === startYear && targetWeek === startWeek) || (targetYear === endYear && targetWeek === endWeek);\n const isRange =\n targetYear >= startYear && targetYear <= endYear && targetWeek > startWeek && targetWeek < endWeek;\n return {\n // 同年同周\n [`${COMPONENT_NAME.value}-${props.mode}-row--active`]: isActive,\n [`${COMPONENT_NAME.value}-${props.mode}-row--range`]: isRange,\n };\n }\n\n return {\n [`${COMPONENT_NAME.value}-${props.mode}-row--active`]:\n parseToDayjs(value, props.format).locale(dayjsLocale).week() ===\n parseToDayjs(targetValue, props.format).locale(dayjsLocale).week(),\n };\n };\n\n const multipleWeekRowClass = (value: DateMultipleValue, targetValue: Date) => {\n const targetDayjs = parseToDayjs(targetValue, props.format);\n if (props.mode !== 'week' || (Array.isArray(value) && !value.length)) return {};\n const isSomeYearWeek = value\n .map?.((v) => parseToDayjs(v, props.format))\n .some((item) => item.week() === targetDayjs.week() && item.year() === targetDayjs.year());\n return {\n [`${COMPONENT_NAME.value}-${props.mode}-row--active`]: isSomeYearWeek,\n };\n };\n const activeRowCss = props.multiple ? multipleWeekRowClass : weekRowClass;\n\n return () => (\n
    props.onCellMouseLeave?.({ e })}>\n \n {showThead.value && (\n \n \n {weekArr.value.map((value: string, i: number) => (\n \n ))}\n \n \n )}\n \n {props.data.map((row: Array, i: number) => (\n \n {row.map((col: any, j: number) => (\n \n ))}\n \n ))}\n \n
    \n {value}\n
    \n
    \n );\n },\n});\n","export const AM = 'am';\nexport const PM = 'pm';\nexport const MERIDIEM_LIST = [AM, PM];\n\nexport const TIME_PICKER_EMPTY: Array = [undefined, undefined];\n\nexport const DEFAULT_STEPS = [1, 1, 1];\nexport const DEFAULT_FORMAT = 'HH:mm:ss';\nexport const EMPTY_VALUE = -1;\n\nexport enum EPickerCols {\n hour = 'hour',\n minute = 'minute',\n second = 'second',\n milliSecond = 'millisecond',\n meridiem = 'meridiem',\n}\n\n// RegExp\nexport const TIME_FORMAT = /\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g;\n// 上下午前置\nexport const PRE_MERIDIEM_FORMAT = /^(a|A)\\s+?[h]{1,2}(:[m]{1,2}(:[s]{1,2})?)?$/;\n// 上下午后置\nexport const POST_MERIDIEM_FORMAT = /^[h]{1,2}(:[m]{1,2}(:[s]{1,2})?)?(\\s+(a|A))?$/;\n// 12小时制\nexport const TWELVE_HOUR_FORMAT = /[h]{1}/;\n// HH:mm\nexport const HM_FORMAT = /[hH]{1,2}:m{1,2}/;\n// HH:mm:ss\nexport const HMS_FORMAT = /[hH]{1,2}:m{1,2}:s{1,2}/;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTimePickerProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否允许直接输入时间 */\n allowInput: Boolean,\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否允许清除选中值 */\n clearable: Boolean,\n /** 禁用时间项的配置函数 */\n disableTime: {\n type: Function as PropType,\n },\n /** 是否禁用组件 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 用于格式化时间,[详细文档](https://day.js.org/docs/en/display/format) */\n format: {\n type: String,\n default: 'HH:mm:ss',\n },\n /** 是否隐藏禁用状态的时间项 */\n hideDisabledTime: {\n type: Boolean,\n default: true,\n },\n /** 透传给输入框(Input)组件的参数 */\n inputProps: {\n type: Object as PropType,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 透传 Popup 组件全部属性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 预设快捷时间选择,示例:`{ '前一小时': '11:00:00' }` */\n presets: {\n type: Object as PropType,\n },\n /** 只读状态,优先级大于 `allowInput` */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 透传 SelectInput 筛选器输入框组件的全部属性 */\n selectInputProps: {\n type: Object as PropType,\n },\n /** 尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdTimePickerProps['size'],\n validator(val: TdTimePickerProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdTimePickerProps['status'],\n validator(val: TdTimePickerProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 时间间隔步数,数组排列 [小时, 分钟, 秒],示例:[2, 1, 1] 或者 ['2', '1', '1'] */\n steps: {\n type: Array as PropType,\n default: (): TdTimePickerProps['steps'] => [1, 1, 1],\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 选中值 */\n value: {\n type: String as PropType,\n default: undefined as TdTimePickerProps['value'],\n },\n modelValue: {\n type: String as PropType,\n default: undefined as TdTimePickerProps['value'],\n },\n /** 选中值,非受控属性 */\n defaultValue: {\n type: String as PropType,\n default: '' as TdTimePickerProps['defaultValue'],\n },\n /** 自定义选中项呈现的内容 */\n valueDisplay: {\n type: [String, Function] as PropType,\n },\n /** 当输入框失去焦点时触发,value 表示组件当前有效值 */\n onBlur: Function as PropType,\n /** 选中值发生变化时触发 */\n onChange: Function as PropType,\n /** 点击清空按钮时触发 */\n onClear: Function as PropType,\n /** 面板关闭时触发 */\n onClose: Function as PropType,\n /** 点击确认按钮时触发 */\n onConfirm: Function as PropType,\n /** 输入框获得焦点时触发,value 表示组件当前有效值 */\n onFocus: Function as PropType,\n /** 当输入框内容发生变化时触发,参数 value 表示组件当前有效值 */\n onInput: Function as PropType,\n /** 面板打开时触发 */\n onOpen: Function as PropType,\n /** 面板选中值后触发 */\n onPick: Function as PropType,\n};\n","import { isBoolean } from 'lodash-es';\nimport { PropType } from 'vue';\nimport dayjs from 'dayjs';\n\nimport * as Props from '../props';\nimport { EPickerCols } from '@tdesign/common-js/time-picker/const';\nimport { TdTimePickerProps, TdTimeRangePickerProps } from '../type';\n\n// 布尔类型\nconst BooleanType = {\n type: Boolean,\n default: true,\n validator(v: boolean): boolean {\n return isBoolean(v);\n },\n};\n\nexport const panelProps = () => ({\n disabled: {\n ...BooleanType,\n ...{\n default: false,\n },\n },\n isFocus: {\n ...BooleanType,\n ...{\n default: false,\n },\n },\n value: {\n type: String,\n default: '',\n },\n format: {\n type: String,\n default: 'HH:mm:ss',\n },\n steps: {\n type: Array as PropType>,\n ...{\n default: [1, 1, 1],\n },\n },\n isShowPanel: {\n ...BooleanType,\n ...{\n default: true,\n },\n },\n activeIndex: {\n type: Number,\n },\n presets: {\n type: Object as PropType,\n },\n hideDisabledTime: {\n ...Props.default.hideDisabledTime,\n },\n disableTime: {\n type: Function,\n },\n isFooterDisplay: {\n ...BooleanType,\n },\n});\n\nexport const panelColProps = () => ({\n format: {\n type: String,\n default: 'HH:mm:ss',\n },\n cols: {\n type: Array as PropType>,\n default: () => [EPickerCols.hour, EPickerCols.minute, EPickerCols.second],\n },\n value: {\n type: String,\n default: '',\n },\n range: {\n type: Array as PropType>,\n default: () => [] as Array,\n },\n steps: {\n type: Array as PropType>,\n ...{\n default: [1, 1, 1],\n },\n },\n hideDisabledTime: {\n ...Props.default.hideDisabledTime,\n },\n disableTime: {\n type: Function,\n },\n localeMeridiems: {\n type: Array as PropType>,\n },\n});\n","import dayjs from 'dayjs';\nimport advancedFormat from 'dayjs/plugin/advancedFormat';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { EPickerCols, TIME_FORMAT } from './const';\n\ndayjs.extend(advancedFormat);\ndayjs.extend(customParseFormat);\n\n// 判断是否输入的值是合法的timepicker的值\nexport function validateInputValue(value: string, format: string) {\n return dayjs(value, format).format(format) === value;\n}\n\n// 转换输入值为标准格式的timepicker的值\nexport function formatInputValue(value: string, format: string) {\n return dayjs(value, format).format(format);\n}\n\n// 计算最接近的时间点\nexport function closestLookup(\n availableArr: Array,\n calcVal: number,\n step: number\n) {\n if (step <= 1) return calcVal;\n return availableArr.sort(\n (a, b) => Math.abs(calcVal + 1 - a) - Math.abs(calcVal + 1 - b)\n )[0];\n}\n\nexport function getPickerCols(format:string) {\n const renderCol: EPickerCols[] = [];\n const {\n meridiem, hour, minute, second, milliSecond,\n } = EPickerCols;\n const match = format.match(TIME_FORMAT);\n match.forEach((m) => {\n switch (m) {\n case 'H':\n case 'HH':\n case 'h':\n case 'hh':\n renderCol.push(hour);\n break;\n case 'a':\n case 'A':\n renderCol.push(meridiem);\n break;\n case 'm':\n case 'mm':\n renderCol.push(minute);\n break;\n case 's':\n case 'ss':\n renderCol.push(second);\n break;\n case 'SSS':\n renderCol.push(milliSecond);\n break;\n default:\n break;\n }\n });\n return renderCol;\n}\n","import { computed, defineComponent, ref, watch, toRefs, onMounted, reactive, nextTick } from 'vue';\nimport { range, debounce, padStart } from 'lodash-es';\n\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\n\nimport { panelColProps } from './props';\nimport { EPickerCols, TWELVE_HOUR_FORMAT, AM, PM, MERIDIEM_LIST } from '@tdesign/common-js/time-picker/const';\nimport { closestLookup, getPickerCols } from '@tdesign/common-js/time-picker/utils';\nimport { useCommonClassName, useConfig, usePrefixClass } from '@tdesign/hooks';\n\ndayjs.extend(customParseFormat);\n\nconst timeArr = [EPickerCols.hour, EPickerCols.minute, EPickerCols.second, EPickerCols.milliSecond];\n\nconst panelOffset = {\n top: 15,\n bottom: 21,\n};\n\nexport default defineComponent({\n name: 'TTimePickerPanelCol',\n props: {\n ...panelColProps(),\n position: String,\n triggerScroll: Boolean,\n onChange: Function,\n resetTriggerScroll: Function,\n isShowPanel: Boolean,\n },\n setup(props) {\n const { globalConfig } = useConfig('timePicker');\n const COMPONENT_NAME = usePrefixClass('time-picker__panel');\n const { STATUS } = useCommonClassName();\n\n const { steps, value, format, position, triggerScroll } = toRefs(props);\n\n const cols = ref>([]);\n const bodyRef = ref();\n const maskRef = ref(null);\n // 每个滚动列的ref 顺序不定 所以只要有5列标识即可\n const colsRef = reactive>({\n 0: null,\n 1: null,\n 2: null,\n 3: null,\n 4: null,\n 5: null,\n });\n\n const dayjsValue = computed(() => {\n const isStepsSet = !!steps.value.filter((step) => Number(step) > 1).length;\n\n if (value.value) return dayjs(value.value, format.value);\n\n if (isStepsSet) return dayjs().hour(0).minute(0).second(0);\n\n return dayjs();\n });\n\n // 面板打开时 触发滚动 初始化面板\n watch(\n () => dayjsValue.value,\n () => {\n if (dayjsValue.value && value.value) updateTimeScrollPos(true);\n },\n );\n\n // 时间通过外部触发时 同样触发滚动\n watch(\n () => triggerScroll.value,\n () => {\n if (triggerScroll.value) {\n updateTimeScrollPos(true);\n }\n },\n );\n\n onMounted(() => {\n cols.value = getPickerCols(format.value);\n });\n\n // 获取每个时间的高度\n const getItemHeight = () => {\n const maskDom = maskRef.value?.querySelector('div');\n if (!maskDom) {\n return {\n offsetHeight: 0,\n margin: 0,\n };\n }\n return {\n offsetHeight: parseFloat(getComputedStyle(maskDom).height),\n margin: parseFloat(getComputedStyle(maskDom).marginTop),\n };\n };\n\n const timeItemCanUsed = (col: EPickerCols, el: string | number) => {\n const colIdx = timeArr.indexOf(col);\n if (colIdx !== -1) {\n const params: [number, number, number, number] = [\n dayjsValue.value.hour(),\n dayjsValue.value.minute(),\n dayjsValue.value.second(),\n dayjsValue.value.millisecond(),\n ];\n params[colIdx] = Number(el);\n return !props.disableTime?.(...params, { partial: position.value || 'start' })?.[col]?.includes(Number(el));\n }\n return true;\n };\n\n // 获取需要渲染的column\n const getColList = (col: EPickerCols) => {\n let count = 0;\n\n if (timeArr.includes(col)) {\n // hour、minute and second columns\n const colIdx = timeArr.indexOf(col);\n const colStep = steps.value[colIdx] || 1;\n\n if (col === EPickerCols.hour)\n count = TWELVE_HOUR_FORMAT.test(format.value) ? 11 : 23; // 小时最大为23 12小时制最大为11\n else if (col === EPickerCols.milliSecond) count = 999; // 毫秒最大为999\n else count = 59;\n\n const colList = range(0, count + 1, Number(colStep)).map((v) => padStart(String(v), 2, '0')) || [];\n return props.hideDisabledTime && !!props.disableTime\n ? colList.filter((t) => {\n const params: [number, number, number, number] = [\n dayjsValue.value.hour(),\n dayjsValue.value.minute(),\n dayjsValue.value.second(),\n dayjsValue.value.millisecond(),\n ];\n params[colIdx] = Number(t);\n return !props\n .disableTime?.(...params, { partial: position.value || 'start' })\n ?.[col]?.includes(Number(t));\n })\n : colList;\n }\n // meridiem column\n return MERIDIEM_LIST;\n };\n\n const getScrollDistance = (col: EPickerCols, time: number | string) => {\n if (col === EPickerCols.hour && /[h]{1}/.test(format.value))\n // eslint-disable-next-line no-param-reassign\n (time as number) %= 12; // 一定是数字,直接cast\n\n const itemIdx = getColList(col).indexOf(padStart(String(time), 2, '0'));\n const { offsetHeight, margin } = getItemHeight();\n const timeItemTotalHeight = offsetHeight + margin;\n const distance = Math.abs(Math.max(0, itemIdx) * timeItemTotalHeight);\n return distance;\n };\n\n const handleScroll = (col: EPickerCols, idx: number, e: MouseEvent) => {\n let val: number | string;\n let formattedVal: string;\n if (!props.isShowPanel) return;\n\n const scrollTop = (colsRef[idx]?.scrollTop || 0) + panelOffset.top;\n const { offsetHeight, margin } = getItemHeight();\n const timeItemTotalHeight = offsetHeight + margin;\n let colStep = Math.abs(Math.round(scrollTop / timeItemTotalHeight + 0.5));\n\n const meridiem = MERIDIEM_LIST[Math.min(colStep - 1, 1)].toLowerCase(); // 处理PM、AM与am、pm\n\n if (Number.isNaN(colStep)) colStep = 1;\n if (timeArr.includes(col)) {\n // hour、minute、 second and milliSecond\n let max = 59;\n if (col === EPickerCols.hour) max = /[h]{1}/.test(format.value) ? 11 : 23; // 小时最大为23 12小时制最大为11\n else if (col === EPickerCols.milliSecond) max = 999; // 毫秒最大为999\n\n const colIdx = timeArr.indexOf(col);\n const availableArr = range(0, max + 1, Number(steps.value[colIdx]) || 1);\n val = closestLookup(\n availableArr,\n Number(getColList(col)[Math.min(colStep - 1, max + 1, availableArr.length - 1)]),\n Number(steps.value[colIdx]) || 1,\n );\n if (Number.isNaN(val)) val = availableArr[availableArr.length - 1];\n if (col === EPickerCols.hour && cols.value.includes(EPickerCols.meridiem) && dayjsValue.value.hour() >= 12) {\n // 如果是十二小时制需要再判断\n val = Number(val) + 12;\n }\n }\n // meridiem columns\n else val = meridiem;\n\n const distance = getScrollDistance(col, val);\n if (!dayjs(dayjsValue.value).isValid() || (value.value && !dayjs(value.value, format.value, true).isValid()))\n return;\n\n if (timeArr.includes(col)) {\n // @ts-ignore\n // TODO: 这里不好改,要改的话需要分类型处理\n if (timeItemCanUsed(col, val)) formattedVal = dayjsValue.value[col]?.(val).format(format.value);\n else formattedVal = dayjsValue.value.format(format.value);\n } else {\n const currentHour = dayjsValue.value.hour();\n if (meridiem === AM && currentHour >= 12) {\n formattedVal = dayjsValue.value.hour(currentHour - 12).format(format.value);\n } else if (meridiem === PM && currentHour < 12) {\n formattedVal = dayjsValue.value.hour(currentHour + 12).format(format.value);\n } else {\n formattedVal = dayjsValue.value.format(format.value);\n }\n }\n if (formattedVal !== value.value) props.onChange?.(formattedVal, e);\n\n if (distance !== scrollTop) {\n const scrollCtrl = colsRef[cols.value.indexOf(col)];\n\n if (!scrollCtrl || scrollCtrl.scrollTop === distance) return;\n\n scrollCtrl.scrollTo?.({\n top: distance,\n behavior: 'smooth',\n });\n }\n };\n\n const scrollToTime = (\n col: EPickerCols,\n time: number | string,\n idx: number,\n behavior: 'auto' | 'smooth' = 'auto',\n ) => {\n const distance = getScrollDistance(col, time);\n const scrollCtrl = colsRef[idx];\n if (!scrollCtrl || scrollCtrl.scrollTop === distance || !timeItemCanUsed(col, time)) return;\n\n scrollCtrl.scrollTo?.({\n top: distance,\n behavior,\n });\n };\n\n const handleTimeItemClick = (col: EPickerCols, el: string | number, idx: number, e: MouseEvent) => {\n if (!timeItemCanUsed(col, el)) return;\n if (timeArr.includes(col)) {\n if (\n col === EPickerCols.hour &&\n dayjsValue.value.format('a') === PM &&\n cols.value.includes(EPickerCols.meridiem)\n ) {\n // eslint-disable-next-line no-param-reassign\n el = Number(el) + 12;\n }\n scrollToTime(col, el, idx, 'smooth');\n } else {\n const currentHour = dayjsValue.value.hour();\n if (el === AM && currentHour >= 12) {\n props.onChange?.(dayjsValue.value.hour(currentHour - 12).format(format.value), e);\n } else if (el === PM && currentHour < 12) {\n props.onChange?.(dayjsValue.value.hour(currentHour + 12).format(format.value), e);\n }\n }\n };\n\n // update each columns scroll distance\n const updateTimeScrollPos = (isAutoScroll = false) => {\n const behavior = value.value && !isAutoScroll ? 'smooth' : 'auto';\n const isStepsSet = !!steps.value.filter((step) => Number(step) > 1).length;\n nextTick(() => {\n cols.value.forEach((col: EPickerCols, idx: number) => {\n if (!isStepsSet || (isStepsSet && value.value)) {\n // 如果没有设置大于1的steps或设置了大于1的step 正常处理滚动\n scrollToTime(\n col,\n // @ts-ignore\n // TODO: 这里不好改,要改的话需要分类型处理\n timeArr.includes(col) ? dayjsValue.value[col]?.() : dayjsValue.value.format('a'),\n idx,\n behavior,\n );\n } else {\n // 否则初始化到每列第一个选项\n scrollToTime(col, getColList(col)?.[0], idx, behavior);\n }\n });\n });\n\n props.resetTriggerScroll();\n };\n\n const isCurrent = (col: EPickerCols, colItem: string | number) => {\n let colVal: number;\n if (col === EPickerCols.meridiem) {\n const currentMeridiem = dayjsValue.value.format('a');\n return currentMeridiem === colItem;\n }\n colVal = dayjsValue.value[col]?.();\n if (col === EPickerCols.hour && /[h]{1}/.test(format.value)) {\n colVal %= 12;\n }\n return colVal === Number(colItem);\n };\n\n return () => (\n
    \n
    \n {/* 渲染遮罩层 */}\n {cols.value.map?.((col, idx) => (\n
    \n ))}\n
    \n {/* 渲染实际滚动列 */}\n {cols.value.map?.((col, idx) => (\n (colsRef[idx] = el as HTMLElement)}\n class={`${COMPONENT_NAME.value}-body-scroll`}\n onScroll={debounce((e) => handleScroll(col, idx, e), 50)}\n >\n {getColList(col).map((el) => (\n handleTimeItemClick(col, el, idx, e)}\n >\n {/* eslint-disable-next-line no-nested-ternary */}\n {timeArr.includes(col)\n ? TWELVE_HOUR_FORMAT.test(format.value) && col === EPickerCols.hour && el === '00'\n ? '12'\n : el\n : globalConfig.value[el === AM ? 'anteMeridiem' : 'postMeridiem']}\n \n ))}\n \n ))}\n
    \n );\n },\n});\n","import { defineComponent, toRefs, computed, ref, onMounted, nextTick, watch } from 'vue';\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { isUndefined } from 'lodash-es';\n\nimport { DEFAULT_STEPS, DEFAULT_FORMAT } from '@tdesign/common-js/time-picker/const';\nimport { panelProps } from './props';\nimport SinglePanel from './single-panel';\nimport TButton from '../../button/button';\nimport { useConfig, usePrefixClass } from '@tdesign/hooks';\nimport { TimePickerValue, TimeRangeValue } from '../type';\nimport log from '@tdesign/common-js/log/index';\n\ndayjs.extend(customParseFormat);\n\nexport default defineComponent({\n name: 'TTimePickerPanel',\n props: {\n ...panelProps(),\n isFooterDisplay: Boolean,\n handleConfirmClick: Function,\n onChange: Function,\n },\n setup(props) {\n const { globalConfig } = useConfig('timePicker');\n const COMPONENT_NAME = usePrefixClass('time-picker__panel');\n const { steps, isFooterDisplay, isShowPanel } = toRefs(props);\n const triggerScroll = ref(false);\n const panelRef = ref();\n const showNowTimeBtn = computed(() => !!steps.value.filter((step) => Number(step) > 1).length);\n\n const defaultValue = computed(() => {\n const isStepsSet = showNowTimeBtn.value;\n const formattedValue = dayjs(props.value, props.format);\n if (props.value && formattedValue.isValid()) {\n return formattedValue.format(props.format);\n }\n\n if (isStepsSet) {\n return dayjs().hour(0).minute(0).second(0).format(props.format);\n }\n return dayjs().hour(0).minute(0).second(0).format(props.format);\n });\n\n const panelColUpdate = () => {\n nextTick(() => {\n triggerScroll.value = true;\n });\n };\n\n const resetTriggerScroll = () => {\n triggerScroll.value = false;\n };\n const handlePresetClick = (\n presetValue: TimePickerValue | (() => TimePickerValue) | TimeRangeValue | (() => TimeRangeValue),\n ) => {\n const presetVal = typeof presetValue === 'function' ? presetValue() : presetValue;\n if (typeof props.activeIndex === 'number') {\n if (Array.isArray(presetVal)) {\n props.onChange?.(presetVal[props.activeIndex]);\n } else {\n log.error('TimePicker', `preset: ${props.presets} 预设值必须是数组!`);\n }\n } else {\n props.onChange?.(presetVal);\n }\n };\n\n const renderFooter = () => {\n if (!isUndefined(props.presets))\n return Object.keys(props.presets || []).map((key: string) => (\n handlePresetClick(props.presets[key])}\n >\n {key}\n \n ));\n return !showNowTimeBtn.value ? (\n props.onChange?.(dayjs().format(props.format))}\n >\n {globalConfig.value.now}\n \n ) : null;\n };\n\n // 渲染后执行update 使面板滚动至当前时间位置\n onMounted(() => {\n panelColUpdate();\n });\n\n watch(\n () => isShowPanel.value,\n () => {\n panelColUpdate();\n },\n );\n\n return () => (\n
    \n
    \n \n
    \n {isFooterDisplay.value ? (\n \n ) : null}\n
    \n );\n },\n});\n","import { defineComponent, PropType } from 'vue';\nimport { usePrefixClass } from '@tdesign/hooks';\nimport type { TdDatePickerProps } from '../../type';\n\nimport TDateHeader from '../base/Header';\nimport TDateTable from '../base/Table';\nimport TTimePickerPanel from '../../../time-picker/panel/time-picker-panel';\nimport { getDefaultFormat } from '@tdesign/common-js/date-picker/format';\n\nexport default defineComponent({\n name: 'TPanelContent',\n props: {\n mode: String as PropType,\n format: String as PropType,\n enableTimePicker: Boolean as PropType,\n timePickerProps: {\n type: Object as PropType,\n default: () => ({}),\n },\n year: Number,\n month: Number,\n tableData: Array,\n time: String,\n multiple: Boolean,\n firstDayOfWeek: Number,\n partial: String,\n popupVisible: Boolean,\n onYearChange: Function,\n onMonthChange: Function,\n onJumperClick: Function,\n onCellMouseEnter: Function,\n onCellClick: Function,\n onCellMouseLeave: Function,\n onTimePickerChange: Function,\n value: [String, Number, Array, Date],\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('date-picker__panel');\n\n const { timeFormat } = getDefaultFormat({\n mode: props.mode,\n format: props.format,\n enableTimePicker: props.enableTimePicker,\n });\n\n const defaultTimeValue = '00:00:00';\n\n return () => (\n
    \n
    \n props.onMonthChange?.(val, { partial: props.partial })}\n onYearChange={(val: number) => props.onYearChange?.(val, { partial: props.partial })}\n onJumperClick={({ trigger }: { trigger: string }) =>\n props.onJumperClick?.({ trigger, partial: props.partial })\n }\n />\n\n \n props.onCellClick?.(date, { e, partial: props.partial })\n }\n onCellMouseEnter={(date: Date) => props.onCellMouseEnter?.(date, { partial: props.partial })}\n onCellMouseLeave={props.onCellMouseLeave}\n />\n
    \n\n {props.enableTimePicker && (\n
    \n
    {props.time || defaultTimeValue}
    \n \n
    \n )}\n
    \n );\n },\n});\n","import { defineComponent, computed, PropType } from 'vue';\nimport { useConfig, usePrefixClass } from '@tdesign/hooks';\nimport TButton from '../../../button';\n\nimport type { TdDatePickerProps } from '../../type';\n\nexport default defineComponent({\n name: 'TDatePickerTable',\n props: {\n enableTimePicker: Boolean,\n presetsPlacement: String,\n presets: Object,\n needConfirm: {\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 '@tdesign/hooks';\nimport { isArray } from 'lodash-es';\n\nimport { TdDateRangePickerProps } from '../type';\nimport {\n isValidDate,\n formatDate,\n formatTime,\n getDefaultFormat,\n initYearMonthTime,\n extractTimeFormat,\n} from '@tdesign/common-js/date-picker/format';\n\nexport function useRangeValue(props: TdDateRangePickerProps) {\n const { value: valueFromProps, modelValue } = toRefs(props);\n\n const [value, onChange] = useVModel(valueFromProps, modelValue, props.defaultValue, props.onChange);\n\n const formatRef = computed(() =>\n getDefaultFormat({\n mode: props.mode,\n format: props.format,\n valueType: props.valueType,\n enableTimePicker: props.enableTimePicker,\n }),\n );\n\n if (props.enableTimePicker) {\n if (!extractTimeFormat(formatRef.value.format))\n console.error(`format: ${formatRef.value.format} 不规范,包含时间选择必须要有时间格式化 HH:mm:ss`);\n }\n\n // warning invalid value\n if (!isArray(value.value)) {\n console.error(`typeof value: ${value.value} must be Array!`);\n } else if (!isValidDate(value.value, formatRef.value.format)) {\n console.error(\n `value: ${value.value} is invalid dateTime! Check whether the value is consistent with format: ${formatRef.value.format}`,\n );\n }\n\n const isFirstValueSelected = ref(false); // 记录面板点击次数,两次后才自动关闭\n const time = ref(\n initYearMonthTime({\n value: value.value,\n mode: props.mode,\n format: formatRef.value.format,\n timeFormat: formatRef.value.timeFormat,\n }).time,\n );\n const month = ref(\n initYearMonthTime({\n value: value.value,\n mode: props.mode,\n format: formatRef.value.format,\n enableTimePicker: props.enableTimePicker,\n }).month,\n );\n const year = ref(initYearMonthTime({ value: value.value, mode: props.mode, format: formatRef.value.format }).year);\n const cacheValue = ref(formatDate(value.value, { format: formatRef.value.format })); // 选择阶段预选状态\n\n // 输入框响应 value 变化\n watchEffect(() => {\n if (!value.value) {\n cacheValue.value = [];\n return;\n }\n if (!isValidDate(value.value, formatRef.value.format)) return;\n\n cacheValue.value = formatDate(value.value, {\n format: formatRef.value.valueType,\n targetFormat: formatRef.value.format,\n });\n time.value = formatTime(\n value.value,\n formatRef.value.format,\n formatRef.value.timeFormat,\n props.defaultTime,\n ) as string[];\n });\n\n return {\n year,\n month,\n value,\n time,\n isFirstValueSelected,\n cacheValue,\n onChange,\n };\n}\n","import { ref, computed, watch } from 'vue';\nimport { CalendarIcon as TdCalendarIcon } from 'tdesign-icons-vue-next';\nimport { omit } from 'lodash-es';\n\nimport { useConfig, useTNodeJSX, useReadonly, useGlobalIcon, usePrefixClass } from '@tdesign/hooks';\n\nimport { TdDateRangePickerProps, DateValue, DateRangePickerPartial } from '../type';\nimport { isValidDate, formatDate, getDefaultFormat, parseToDayjs } from '@tdesign/common-js/date-picker/format';\nimport { useRangeValue } from './useRangeValue';\n\nexport const PARTIAL_MAP: Record<'first' | 'second', DateRangePickerPartial> = { first: 'start', second: 'end' };\n\nexport function useRange(props: TdDateRangePickerProps) {\n const COMPONENT_NAME = usePrefixClass('date-range-picker');\n const { globalConfig } = useConfig('datePicker');\n const { CalendarIcon } = useGlobalIcon({ CalendarIcon: TdCalendarIcon });\n const renderTNodeJSX = useTNodeJSX();\n\n const isMountedRef = ref(false);\n const inputRef = ref();\n\n const { value, onChange, time, month, year, cacheValue, isFirstValueSelected } = useRangeValue(props);\n\n const formatRef = computed(() =>\n getDefaultFormat({\n mode: props.mode,\n format: props.format,\n valueType: props.valueType,\n enableTimePicker: props.enableTimePicker,\n }),\n );\n\n const popupVisible = ref(false);\n const isHoverCell = ref(false);\n const activeIndex = ref<0 | 1>(0); // 确定当前选中的输入框序号\n const inputValue = ref(formatDate(props.value, { format: formatRef.value.format })); // 未真正选中前可能不断变更输入框的内容\n const isReadOnly = useReadonly();\n\n // input 设置\n const rangeInputProps = computed(() => ({\n ...props.rangeInputProps,\n size: props.size,\n ref: inputRef,\n borderless: props.borderless,\n clearable: props.clearable && !isReadOnly.value,\n prefixIcon: () => renderTNodeJSX('prefixIcon'),\n readonly: isReadOnly.value || !props.allowInput,\n separator: props.separator || globalConfig.value.rangeSeparator,\n placeholder:\n props.placeholder || (globalConfig.value.placeholder as { [key in typeof props.mode]: string })[props.mode],\n activeIndex: popupVisible.value ? activeIndex.value : undefined,\n suffixIcon: () => {\n return renderTNodeJSX('suffixIcon') || ;\n },\n class: {\n [`${COMPONENT_NAME.value}__input--placeholder`]: isHoverCell.value,\n },\n onClick: ({ position }: any) => {\n activeIndex.value = position === 'first' ? 0 : 1;\n },\n onClear: ({ e }: { e: MouseEvent }) => {\n e.stopPropagation();\n popupVisible.value = false;\n onChange?.([], { dayjsValue: [], trigger: 'clear' });\n },\n onBlur: (newVal: string[], { e, position }: { e: MouseEvent; position: 'first' | 'second' }) => {\n props.onBlur?.({ value: newVal, partial: PARTIAL_MAP[position], e });\n },\n onFocus: (newVal: string[], { e, position }: { e: MouseEvent; position: 'first' | 'second' }) => {\n props.onFocus?.({ value: newVal, partial: PARTIAL_MAP[position], e });\n activeIndex.value = position === 'first' ? 0 : 1;\n },\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onChange: (newVal: string[], { e, position }: { e: MouseEvent; position: 'first' | 'second' }) => {\n inputValue.value = newVal;\n\n // 跳过不符合格式化的输入框内容\n if (!isValidDate(newVal, formatRef.value.format)) return;\n cacheValue.value = newVal;\n const newYear: Array = [];\n const newMonth: Array = [];\n const newTime: Array = [];\n newVal.forEach((v) => {\n newYear.push(parseToDayjs(v, formatRef.value.format).year());\n newMonth.push(parseToDayjs(v, formatRef.value.format).month());\n newTime.push(parseToDayjs(v, formatRef.value.format).format(formatRef.value.timeFormat));\n });\n year.value = newYear;\n month.value = newMonth;\n time.value = newTime;\n },\n onEnter: (newVal: string[]) => {\n if (!isValidDate(newVal, formatRef.value.format) && !isValidDate(value.value, formatRef.value.format)) return;\n\n popupVisible.value = false;\n if (isValidDate(newVal, formatRef.value.format)) {\n onChange?.(\n formatDate(newVal, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n autoSwap: true,\n }) as DateValue[],\n {\n dayjsValue: newVal.map((v) => parseToDayjs(v, formatRef.value.format)),\n trigger: 'enter',\n },\n );\n } else if (isValidDate(value.value, formatRef.value.format)) {\n inputValue.value = formatDate(value.value, {\n format: formatRef.value.format,\n });\n } else {\n inputValue.value = [];\n }\n },\n }));\n\n // popup 设置\n const popupProps = computed(() => ({\n expandAnimation: true,\n ...omit(props.popupProps, 'on-visible-change'),\n overlayInnerStyle: props.popupProps?.overlayInnerStyle ?? { width: 'auto' },\n overlayClassName: [props.popupProps?.overlayClassName, `${COMPONENT_NAME.value}__panel-container`],\n onVisibleChange: (visible: boolean, context: any) => {\n if (isReadOnly.value) return;\n\n // 这里劫持了进一步向 popup 传递的 onVisibleChange 事件,为了保证可以在 Datepicker 中使用 popupProps.onVisibleChange,故此处理\n props.popupProps?.onVisibleChange?.(visible, context);\n // TODO\n // @ts-ignore types only declare onVisibleChange,but not declare on-visible-change\n props.popupProps?.['on-visible-change']?.(visible, context);\n\n // 输入框点击不关闭面板\n if (context.trigger === 'trigger-element-click') {\n const indexMap = { 0: 'first', 1: 'second' };\n inputRef.value.focus({ position: indexMap[activeIndex.value] });\n popupVisible.value = true;\n return;\n }\n\n popupVisible.value = visible;\n },\n }));\n\n // 输入框响应 value 变化\n watch(\n value,\n (value) => {\n if (!value) {\n inputValue.value = [];\n return;\n }\n if (!isValidDate(value, formatRef.value.format)) return;\n\n inputValue.value = formatDate(value, {\n format: formatRef.value.valueType,\n targetFormat: formatRef.value.format,\n });\n },\n {\n immediate: true,\n },\n );\n\n // activeIndex 变化自动 focus 对应输入框\n watch(\n activeIndex,\n (index) => {\n if (!isMountedRef.value) {\n isMountedRef.value = true;\n return;\n }\n if (!popupVisible.value) return;\n const indexMap = { 0: 'first', 1: 'second' };\n inputRef.value?.focus?.({ position: indexMap[index] });\n },\n {\n immediate: true,\n },\n );\n\n return {\n year,\n month,\n value,\n time,\n inputValue,\n popupVisible,\n rangeInputProps,\n popupProps,\n isHoverCell,\n activeIndex,\n isFirstValueSelected,\n cacheValue,\n onChange,\n };\n}\n","import { useConfig } from '@tdesign/hooks';\n\nimport { getWeeks, getYears, getMonths, getQuarters, flagActive } from '@tdesign/common-js/date-picker/utils';\n\nexport function useTableData(props: any) {\n // 国际化文本初始化\n const { globalConfig } = useConfig('datePicker');\n\n const options = {\n minDate: props.minDate,\n maxDate: props.maxDate,\n disableDate: props.disableDate,\n firstDayOfWeek: props.firstDayOfWeek ?? globalConfig.value.firstDayOfWeek,\n monthLocal: globalConfig.value.months as string[],\n quarterLocal: globalConfig.value.quarters as string[],\n showWeekOfYear: props.mode === 'week',\n dayjsLocale: globalConfig.value.dayjsLocale,\n cancelRangeSelectLimit: props.cancelRangeSelectLimit,\n };\n\n let data: Array = [];\n if (props.mode === 'date') {\n data = getWeeks({ year: props.year, month: props.month }, options);\n } else if (props.mode === 'week') {\n data = getWeeks({ year: props.year, month: props.month }, options);\n } else if (props.mode === 'quarter') {\n data = getQuarters(props.year, options);\n } else if (props.mode === 'month') {\n data = getMonths(props.year, options);\n } else if (props.mode === 'year') {\n data = getYears(props.year, options);\n }\n return flagActive(data, {\n start: props.start,\n end: props.end,\n hoverStart: props.hoverStart,\n hoverEnd: props.hoverEnd,\n type: props.mode,\n isRange: props.isRange,\n value: props.value,\n multiple: props.multiple,\n });\n}\n","import { defineComponent, PropType, computed } from 'vue';\nimport { useConfig, usePrefixClass } from '@tdesign/hooks';\nimport TPanelContent from './PanelContent';\nimport TExtraContent from './ExtraContent';\nimport { getDefaultFormat, parseToDayjs } from '@tdesign/common-js/date-picker/format';\nimport { useTableData, useDisableDate } from '../../hooks';\n\nimport type { TdDatePickerProps, DateMultipleValue, DateValue } from '../../type';\n\nexport default defineComponent({\n name: 'TSinglePanel',\n props: {\n disableDate: [Object, Array, Function] as PropType,\n mode: {\n type: String as PropType,\n default: 'date',\n },\n format: String as PropType,\n presetsPlacement: {\n type: String as PropType,\n default: 'bottom',\n },\n value: [String, Number, Array, Date] as PropType,\n timePickerProps: Object as PropType,\n presets: Object as PropType,\n enableTimePicker: Boolean,\n firstDayOfWeek: Number,\n year: Number,\n month: Number,\n time: String,\n popupVisible: Boolean,\n multiple: Boolean,\n needConfirm: {\n type: Boolean,\n default: true,\n },\n onPanelClick: Function,\n onCellClick: Function,\n onCellMouseEnter: Function,\n onCellMouseLeave: Function,\n onJumperClick: Function,\n onConfirmClick: Function,\n onPresetClick: Function,\n onYearChange: Function,\n onMonthChange: Function,\n onTimePickerChange: Function,\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('date-picker__panel');\n const { globalConfig } = useConfig('datePicker');\n\n const format = computed(\n () =>\n getDefaultFormat({\n mode: props.mode,\n format: props.format,\n enableTimePicker: props.enableTimePicker,\n })?.format,\n );\n\n const disableDateOptions = computed(() =>\n useDisableDate({\n format: format.value,\n mode: props.mode,\n disableDate: props.disableDate,\n }),\n );\n const tableData = computed(() =>\n useTableData({\n year: props.year,\n month: props.month,\n mode: props.mode,\n start: props.value\n ? parseToDayjs(\n props.multiple ? (props.value as DateMultipleValue)[0] : (props.value as DateValue),\n format.value,\n ).toDate()\n : undefined,\n firstDayOfWeek: props.firstDayOfWeek || globalConfig.value.firstDayOfWeek,\n multiple: props.multiple,\n value: props.value,\n ...disableDateOptions.value,\n }),\n );\n\n const panelContentProps = computed(() => ({\n format: format.value,\n value: props.value,\n mode: props.mode,\n year: props.year,\n month: props.month,\n firstDayOfWeek: props.firstDayOfWeek || globalConfig.value.firstDayOfWeek,\n tableData: tableData.value,\n popupVisible: props.popupVisible,\n multiple: props.multiple,\n enableTimePicker: props.enableTimePicker,\n timePickerProps: props.timePickerProps,\n time: props.time,\n onMonthChange: props.onMonthChange,\n onYearChange: props.onYearChange,\n onJumperClick: props.onJumperClick,\n onCellClick: props.onCellClick,\n onCellMouseEnter: props.onCellMouseEnter,\n onCellMouseLeave: props.onCellMouseLeave,\n onTimePickerChange: props.onTimePickerChange,\n }));\n\n const extraProps = computed(() => ({\n presets: props.presets,\n enableTimePicker: props.enableTimePicker,\n presetsPlacement: props.presetsPlacement,\n onPresetClick: props.onPresetClick,\n onConfirmClick: props.onConfirmClick,\n selectedValue: props.value,\n needConfirm: props.needConfirm,\n }));\n\n return () => (\n props.onPanelClick?.({ e })}\n >\n {['top', 'left'].includes(props.presetsPlacement) ? : null}\n \n {['bottom', 'right'].includes(props.presetsPlacement) ? : null}\n
    \n );\n },\n});\n","import { defineComponent, computed, watch } from 'vue';\nimport dayjs from 'dayjs';\nimport { isFunction, isDate } from 'lodash-es';\nimport { CalendarIcon as TdCalendarIcon } from 'tdesign-icons-vue-next';\n\nimport { useConfig, useTNodeJSX, useDisabled, useReadonly, useGlobalIcon, usePrefixClass } from '@tdesign/hooks';\n\nimport { useSingle } from './hooks/useSingle';\nimport { parseToDayjs, getDefaultFormat, formatTime, formatDate } from '@tdesign/common-js/date-picker/format';\nimport { subtractMonth, addMonth, extractTimeObj, covertToDate, isSame } from '@tdesign/common-js/date-picker/utils';\nimport props from './props';\nimport TSelectInput from '../select-input';\nimport TSinglePanel from './components/panel/SinglePanel';\n\nimport type { TdDatePickerProps, DateMultipleValue, DateValue } from './type';\nimport type { TagInputRemoveContext } from '../tag-input';\n\nexport default defineComponent({\n name: 'TDatePicker',\n props,\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('date-picker');\n\n const {\n inputValue,\n popupVisible,\n inputProps,\n popupProps,\n isHoverCell,\n cacheValue,\n value,\n year,\n month,\n time,\n inputRef,\n onChange,\n } = useSingle(props);\n\n const disabled = useDisabled();\n const renderTNodeJSX = useTNodeJSX();\n const { globalConfig } = useConfig('datePicker');\n const isReadOnly = useReadonly();\n const { CalendarIcon } = useGlobalIcon({ CalendarIcon: TdCalendarIcon });\n\n const formatRef = computed(() =>\n getDefaultFormat({\n mode: props.mode,\n format: props.format,\n valueType: props.valueType,\n enableTimePicker: props.multiple ? false : props.enableTimePicker,\n }),\n );\n const valueDisplayParams = computed(() => {\n return {\n value: value.value,\n displayValue: inputValue.value,\n };\n });\n\n watch(popupVisible, (visible) => {\n // 多选不考虑输入情况\n if (props.multiple) return;\n // 如果不需要确认,直接保存当前值\n if (!props.needConfirm && props.enableTimePicker && !visible) {\n const nextValue = formatDate(inputValue.value, {\n format: formatRef.value.format,\n });\n if (nextValue) {\n onChange?.(\n formatDate(inputValue.value, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n }) as DateValue,\n {\n dayjsValue: parseToDayjs(inputValue.value as string, formatRef.value.format),\n trigger: 'confirm',\n },\n );\n } else {\n inputValue.value = formatDate(value.value, {\n format: formatRef.value.format,\n });\n }\n }\n\n // 格式化 input 值\n const dateValue =\n // Date 属性、季度和周不再 parse,避免 dayjs 处理成 Invalid\n value.value && !isDate(value.value) && !['week', 'quarter'].includes(props.mode)\n ? covertToDate(value.value as string, formatRef.value?.valueType)\n : value.value;\n\n cacheValue.value = formatDate(dateValue, {\n format: formatRef.value.valueType,\n targetFormat: formatRef.value.format,\n });\n inputValue.value = formatDate(dateValue, {\n format: formatRef.value.valueType,\n targetFormat: formatRef.value.format,\n });\n\n // 面板展开重置数据\n if (visible) {\n year.value = parseToDayjs(value.value as DateValue, formatRef.value.valueType).year();\n month.value = parseToDayjs(value.value as DateValue, formatRef.value.format).month();\n time.value = formatTime(value.value, formatRef.value.format, formatRef.value.timeFormat, props.defaultTime);\n } else {\n isHoverCell.value = false;\n }\n });\n\n // 日期 hover\n function onCellMouseEnter(date: Date) {\n if (props.multiple) return;\n\n isHoverCell.value = true;\n inputValue.value = formatDate(date, {\n format: formatRef.value.format,\n });\n }\n\n // 日期 leave\n function onCellMouseLeave() {\n if (props.multiple) return;\n\n isHoverCell.value = false;\n inputValue.value = formatDate(cacheValue.value, {\n format: formatRef.value.format,\n });\n }\n\n // 日期点击\n function onCellClick(date: Date) {\n isHoverCell.value = false;\n // date 模式自动切换年月\n if (props.mode === 'date') {\n year.value = date.getFullYear();\n month.value = date.getMonth();\n }\n if (props.enableTimePicker) {\n cacheValue.value = formatDate(date, {\n format: formatRef.value.format,\n });\n } else {\n if (props.multiple) {\n const newDate = processDate(date);\n onChange(newDate, {\n dayjsValue: parseToDayjs(date, formatRef.value.format),\n trigger: 'pick',\n });\n return;\n }\n\n onChange?.(\n formatDate(date, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n }) as DateValue,\n {\n dayjsValue: parseToDayjs(date, formatRef.value.format),\n trigger: 'pick',\n },\n );\n popupVisible.value = false;\n }\n\n props.onPick?.(date);\n }\n\n function processDate(date: Date) {\n let isSameDate: boolean;\n const currentValue = (value.value || []) as DateMultipleValue;\n const { dayjsLocale } = globalConfig.value;\n\n let currentDate: DateMultipleValue;\n if (props.mode !== 'week')\n isSameDate = currentValue.some((val) =>\n isSame(parseToDayjs(val, formatRef.value.format).toDate(), date, props.mode, dayjsLocale),\n );\n else {\n isSameDate = currentValue.some((val) => val === dayjs(date).locale(dayjsLocale).format(formatRef.value.format));\n }\n\n if (!isSameDate) {\n currentDate = currentValue.concat(\n formatDate(date, { format: formatRef.value.format, targetFormat: formatRef.value.valueType }),\n );\n } else {\n currentDate = currentValue.filter(\n (val) =>\n formatDate(val, { format: formatRef.value.format, targetFormat: formatRef.value.valueType }) !==\n formatDate(date, { format: formatRef.value.format, targetFormat: formatRef.value.valueType }),\n );\n }\n return currentDate;\n }\n\n function onTagRemoveClick(ctx: TagInputRemoveContext) {\n const removeDate = dayjs(ctx.item).toDate();\n const newDate = processDate(removeDate);\n onChange?.(newDate, {\n dayjsValue: parseToDayjs(removeDate, formatRef.value.format),\n trigger: 'tag-remove',\n });\n }\n\n function onTagClearClick({ e }: { e: MouseEvent }) {\n e.stopPropagation();\n popupVisible.value = false;\n onChange?.([], { dayjsValue: dayjs(), trigger: 'clear' });\n }\n\n // 头部快速切换\n function onJumperClick({ trigger }: { trigger: string }) {\n const monthCountMap = { date: 1, week: 1, month: 12, quarter: 12, year: 120 };\n const monthCount = monthCountMap[props.mode] || 0;\n\n const current = new Date(year.value, month.value);\n\n let next = null;\n if (trigger === 'prev') {\n next = subtractMonth(current, monthCount);\n } else if (trigger === 'current') {\n next = new Date();\n } else if (trigger === 'next') {\n next = addMonth(current, monthCount);\n }\n\n const nextYear = next.getFullYear();\n const nextMonth = next.getMonth();\n\n year.value = nextYear;\n month.value = nextMonth;\n }\n\n // timePicker 点击\n function onTimePickerChange(val: string) {\n time.value = val;\n\n const { hours, minutes, seconds, milliseconds, meridiem } = extractTimeObj(val);\n\n // am pm 12小时制转化 24小时制\n let nextHours = hours;\n if (/am/i.test(meridiem) && nextHours === 12) nextHours -= 12;\n if (/pm/i.test(meridiem) && nextHours < 12) nextHours += 12;\n const currentDate = !dayjs(inputValue.value as string, formatRef.value.format).isValid()\n ? dayjs()\n : dayjs(inputValue.value as string, formatRef.value.format);\n const nextDate = currentDate.hour(nextHours).minute(minutes).second(seconds).millisecond(milliseconds).toDate();\n inputValue.value = formatDate(nextDate, {\n format: formatRef.value.format,\n });\n cacheValue.value = formatDate(nextDate, {\n format: formatRef.value.format,\n });\n\n props.onPick?.(nextDate);\n }\n\n // 确定\n function onConfirmClick({ e }: { e: MouseEvent }) {\n const nextValue = formatDate(inputValue.value, {\n format: formatRef.value.format,\n });\n if (nextValue) {\n props?.onConfirm?.({ date: dayjs(nextValue as string).toDate(), e });\n onChange?.(\n formatDate(inputValue.value, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n }) as DateValue,\n {\n dayjsValue: parseToDayjs(inputValue.value as string, formatRef.value.format),\n trigger: 'confirm',\n },\n );\n } else {\n inputValue.value = formatDate(value.value, {\n format: formatRef.value.format,\n });\n }\n popupVisible.value = false;\n }\n\n // 预设\n function onPresetClick(presetValue: DateValue | (() => DateValue)) {\n const presetVal = isFunction(presetValue) ? presetValue() : presetValue;\n onChange?.(\n formatDate(presetVal, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n }) as DateValue,\n {\n dayjsValue: parseToDayjs(presetVal, formatRef.value.format),\n trigger: 'preset',\n },\n );\n // 更新到 input,避免 needConfirm 导致值被覆盖\n inputValue.value = formatDate(presetVal, {\n format: formatRef.value.format,\n });\n popupVisible.value = false;\n }\n\n function onYearChange(nextYear: number) {\n year.value = nextYear;\n }\n\n function onMonthChange(nextMonth: number) {\n month.value = nextMonth;\n }\n\n const panelProps = computed(() => ({\n value: cacheValue.value as string,\n year: year.value,\n month: month.value,\n format: formatRef.value.format,\n mode: props.mode,\n presets: props.presets,\n multiple: props.multiple,\n time: props.multiple ? '' : time.value,\n disableDate: props.disableDate,\n firstDayOfWeek: props.firstDayOfWeek,\n timePickerProps: props.timePickerProps,\n enableTimePicker: props.multiple ? false : props.enableTimePicker,\n presetsPlacement: props.presetsPlacement,\n popupVisible: popupVisible.value,\n needConfirm: props.needConfirm,\n onCellClick,\n onCellMouseEnter,\n onCellMouseLeave,\n onJumperClick,\n onConfirmClick,\n onPresetClick,\n onYearChange,\n onMonthChange,\n onTimePickerChange,\n onPanelClick: () => inputRef.value?.focus?.(),\n }));\n\n return () => (\n
    \n renderTNodeJSX('label')}\n status={props.status}\n tips={props.tips}\n clearable={props.clearable}\n readonly={isReadOnly.value}\n multiple={props.multiple}\n popupProps={popupProps.value}\n inputProps={inputProps.value}\n placeholder={\n props.placeholder || (globalConfig.value.placeholder as { [key in typeof props.mode]: string })[props.mode]\n }\n popupVisible={!isReadOnly.value && popupVisible.value}\n valueDisplay={() => renderTNodeJSX('valueDisplay', { params: valueDisplayParams.value })}\n needConfirm={props.needConfirm}\n {...(props.selectInputProps as TdDatePickerProps['selectInputProps'])}\n panel={() => }\n tagInputProps={{\n onRemove: onTagRemoveClick,\n }}\n onClear={onTagClearClick}\n prefixIcon={() => renderTNodeJSX('prefixIcon')}\n suffixIcon={() => renderTNodeJSX('suffixIcon') || }\n />\n
    \n );\n },\n});\n","import { ref, computed, watch } from 'vue';\nimport dayjs from 'dayjs';\nimport { omit } from 'lodash-es';\n\nimport { useDisabled, useReadonly, usePrefixClass } from '@tdesign/hooks';\n\nimport { TdDatePickerProps, DateValue } from '../type';\nimport {\n isValidDate,\n formatDate,\n formatTime,\n getDefaultFormat,\n parseToDayjs,\n} from '@tdesign/common-js/date-picker/format';\nimport { useSingleValue } from './useSingleValue';\n\nexport function useSingle(props: TdDatePickerProps) {\n const COMPONENT_NAME = usePrefixClass('date-picker');\n const disabled = useDisabled();\n\n const inputRef = ref();\n const isReadOnly = useReadonly();\n\n const { value, onChange, time, month, year, cacheValue } = useSingleValue(props);\n\n const formatRef = computed(() =>\n getDefaultFormat({\n mode: props.mode,\n format: props.format,\n valueType: props.valueType,\n enableTimePicker: props.multiple ? false : props.enableTimePicker,\n }),\n );\n\n const popupVisible = ref(false);\n const isHoverCell = ref(false);\n // 未真正选中前可能不断变更输入框的内容\n const inputValue = ref(\n props.multiple\n ? formatDate(value.value, { format: formatRef.value.format }) || []\n : formatDate(value.value, { format: formatRef.value.format }),\n );\n\n // input 设置\n const inputProps = computed(() => {\n const defaultInputProps = {\n ...props.inputProps,\n size: props.size,\n ref: inputRef,\n readonly: isReadOnly.value || !props.allowInput,\n class: [\n {\n [`${COMPONENT_NAME.value}__input--placeholder`]: isHoverCell.value,\n },\n ],\n onClear: (context: { e: InputEvent }) => {\n context?.e?.stopPropagation();\n popupVisible.value = false;\n onChange?.('', { dayjsValue: dayjs(), trigger: 'clear' });\n },\n };\n return props.multiple\n ? defaultInputProps\n : {\n ...defaultInputProps,\n onBlur: (val: string, context: { e: FocusEvent }) => {\n props.onBlur?.({ value: val, e: context.e });\n },\n onFocus: (_: string, { e }: { e: FocusEvent }) => {\n props.onFocus?.({ value: value.value, e });\n },\n onChange: (val: string) => {\n // 输入事件\n inputValue.value = val;\n\n // 跳过不符合格式化的输入框内容\n if (!isValidDate(val, formatRef.value.format)) return;\n cacheValue.value = val;\n const newMonth = parseToDayjs(val, formatRef.value.format).month();\n const newYear = parseToDayjs(val, formatRef.value.format).year();\n const newTime = formatTime(val, formatRef.value.format, formatRef.value.timeFormat, props.defaultTime);\n !Number.isNaN(newYear) && (year.value = newYear);\n !Number.isNaN(newMonth) && (month.value = newMonth);\n !Number.isNaN(newTime) && (time.value = newTime);\n },\n onEnter: (val: string) => {\n if (!val) {\n onChange('', { dayjsValue: dayjs(), trigger: 'enter' });\n popupVisible.value = false;\n return;\n }\n\n if (!isValidDate(val, formatRef.value.format) && !isValidDate(value.value, formatRef.value.format)) return;\n\n popupVisible.value = false;\n if (isValidDate(val, formatRef.value.format)) {\n onChange?.(\n formatDate(val, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n }) as DateValue,\n {\n dayjsValue: parseToDayjs(val, formatRef.value.format),\n trigger: 'enter',\n },\n );\n } else if (isValidDate(value.value, formatRef.value.format)) {\n inputValue.value = formatDate(value.value, {\n format: formatRef.value.format,\n });\n } else {\n inputValue.value = '';\n }\n },\n };\n });\n\n // popup 设置\n const popupProps = computed(() => ({\n expandAnimation: true,\n ...omit(props.popupProps, 'on-visible-change'),\n disabled: disabled.value,\n overlayInnerStyle: props.popupProps?.overlayInnerStyle ?? { width: 'auto' },\n overlayClassName: [props.popupProps?.overlayClassName, `${COMPONENT_NAME.value}__panel-container`],\n onVisibleChange: (visible: boolean, context: any) => {\n if (disabled.value) return;\n // 这里劫持了进一步向 popup 传递的 onVisibleChange 事件,为了保证可以在 Datepicker 中使用 popupProps.onVisibleChange,故此处理\n props.popupProps?.onVisibleChange?.(visible, context);\n // TODO\n // @ts-ignore types only declare onVisibleChange,but not declare on-visible-change\n props.popupProps?.['on-visible-change']?.(visible, context);\n // 输入框点击不关闭面板\n if (context.trigger === 'trigger-element-click') {\n popupVisible.value = true;\n return;\n }\n popupVisible.value = visible;\n },\n }));\n\n watch(value, (value) => {\n if (!value) {\n inputValue.value = '';\n return;\n }\n if (!isValidDate(value, formatRef.value.format)) return;\n\n inputValue.value = formatDate(value, {\n format: formatRef.value.format,\n });\n });\n\n return {\n year,\n month,\n value,\n time,\n inputValue,\n popupVisible,\n inputProps,\n popupProps,\n inputRef,\n cacheValue,\n isHoverCell,\n onChange,\n };\n}\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdDatePickerPanelProps } from '../date-picker/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 时间选择器默认值,当 value/defaultValue 未设置值时有效 */\n defaultTime: {\n type: String,\n default: '00:00:00',\n },\n /** 点击日期单元格时触发 */\n onCellClick: Function as PropType,\n /** 选中值发生变化时触发。参数 `context.trigger` 表示触发当前事件的来源,不同的模式触发来源也会不同 */\n onChange: Function as PropType,\n /** 如果存在“确定”按钮,则点击“确定”按钮时触发 */\n onConfirm: Function as PropType,\n /** 月份切换发生变化时触发 */\n onMonthChange: Function as PropType,\n /** 点击面板时触发 */\n onPanelClick: Function as PropType,\n /** 点击预设按钮后触发 */\n onPresetClick: Function as PropType,\n /** 时间切换发生变化时触发 */\n onTimeChange: Function as PropType,\n /** 年份切换发生变化时触发 */\n onYearChange: Function as PropType,\n};\n","import { defineComponent, computed } from 'vue';\nimport dayjs from 'dayjs';\nimport { isFunction } from 'lodash-es';\nimport { useSingleValue } from './hooks/useSingleValue';\nimport { formatDate, getDefaultFormat, parseToDayjs } from '@tdesign/common-js/date-picker/format';\nimport { subtractMonth, addMonth, extractTimeObj } from '@tdesign/common-js/date-picker/utils';\nimport type {\n DateValue,\n TdDatePickerPanelProps,\n DatePickerYearChangeTrigger,\n DatePickerMonthChangeTrigger,\n} from './type';\n\nimport datePickerPanelProps from './date-picker-panel-props';\nimport datePickerProps from './props';\n\nimport TSinglePanel from './components/panel/SinglePanel';\n\nexport default defineComponent({\n name: 'TDatePickerPanel',\n props: {\n value: datePickerProps.value,\n defaultValue: datePickerProps.defaultValue,\n modelValue: datePickerProps.modelValue,\n disabled: datePickerProps.disabled,\n disableDate: datePickerProps.disableDate,\n enableTimePicker: datePickerProps.enableTimePicker,\n firstDayOfWeek: datePickerProps.firstDayOfWeek,\n format: datePickerProps.format,\n mode: datePickerProps.mode,\n presets: datePickerProps.presets,\n presetsPlacement: datePickerProps.presetsPlacement,\n timePickerProps: datePickerProps.timePickerProps,\n ...datePickerPanelProps,\n },\n\n setup(props: TdDatePickerPanelProps) {\n const { cacheValue, value, year, month, time, onChange } = useSingleValue(props);\n\n const formatRef = computed(() =>\n getDefaultFormat({\n mode: props.mode,\n format: props.format,\n enableTimePicker: props.enableTimePicker,\n }),\n );\n\n // 日期点击\n function onCellClick(date: Date, { e }: { e: MouseEvent }) {\n props.onCellClick?.({ date, e });\n\n // date 模式自动切换年月\n if (props.mode === 'date') {\n year.value = date.getFullYear();\n month.value = date.getMonth();\n }\n if (props.enableTimePicker) {\n cacheValue.value = formatDate(date, { format: formatRef.value.format });\n } else {\n onChange?.(formatDate(date, { format: formatRef.value.format }) as DateValue, {\n dayjsValue: parseToDayjs(date, formatRef.value.format),\n trigger: 'pick',\n });\n }\n }\n\n // 头部快速切换\n function onJumperClick({ trigger }: { trigger: 'prev' | 'next' | 'current' }) {\n const triggerMap = {\n prev: 'arrow-previous',\n next: 'arrow-next',\n };\n const monthCountMap = { date: 1, week: 1, month: 12, quarter: 12, year: 120 };\n const monthCount = monthCountMap[props.mode] || 0;\n\n const current = new Date(year.value, month.value);\n\n let next = null;\n if (trigger === 'prev') {\n next = subtractMonth(current, monthCount);\n } else if (trigger === 'current') {\n next = new Date();\n } else if (trigger === 'next') {\n next = addMonth(current, monthCount);\n }\n\n const nextYear = next.getFullYear();\n const nextMonth = next.getMonth();\n\n if (year.value !== nextYear) {\n props.onYearChange?.({\n year: nextYear,\n date: dayjs(value.value as DateValue).toDate(),\n trigger: trigger === 'current' ? 'today' : (`year-${triggerMap[trigger]}` as DatePickerYearChangeTrigger),\n });\n }\n if (month.value !== nextMonth) {\n props.onMonthChange?.({\n month: nextMonth,\n date: dayjs(value.value as DateValue).toDate(),\n trigger: trigger === 'current' ? 'today' : (`month-${triggerMap[trigger]}` as DatePickerMonthChangeTrigger),\n });\n }\n\n year.value = nextYear;\n month.value = nextMonth;\n }\n\n // timepicker 点击\n function onTimePickerChange(val: string) {\n time.value = val;\n\n const { hours, minutes, seconds, milliseconds, meridiem } = extractTimeObj(val);\n\n // am pm 12小时制转化 24小时制\n let nextHours = hours;\n if (/am/i.test(meridiem) && nextHours === 12) nextHours -= 12;\n if (/pm/i.test(meridiem) && nextHours < 12) nextHours += 12;\n const currentDate = !dayjs(cacheValue.value as string, formatRef.value.format).isValid()\n ? dayjs()\n : dayjs(cacheValue.value as string, formatRef.value.format);\n const nextDate = currentDate.hour(nextHours).minute(minutes).second(seconds).millisecond(milliseconds).toDate();\n cacheValue.value = formatDate(nextDate, { format: formatRef.value.format });\n\n props.onTimeChange?.({\n time: val,\n date: dayjs(value.value as DateValue).toDate(),\n trigger: 'time-hour',\n });\n }\n\n // 确定\n function onConfirmClick({ e }: { e: MouseEvent }) {\n onChange?.(\n formatDate(cacheValue.value, {\n format: formatRef.value.format,\n }) as DateValue,\n {\n dayjsValue: parseToDayjs(cacheValue.value as string, formatRef.value.format),\n trigger: 'confirm',\n },\n );\n props.onConfirm?.({ date: dayjs(cacheValue.value as string).toDate(), e });\n }\n\n // 预设\n function onPresetClick(preset: any, context: any) {\n const presetVal = isFunction(preset) ? preset() : preset;\n onChange?.(formatDate(presetVal, { format: formatRef.value.format }) as DateValue, {\n dayjsValue: parseToDayjs(presetVal, formatRef.value.format),\n trigger: 'preset',\n });\n props.onPresetClick?.(context);\n }\n\n function onYearChange(nextYear: number) {\n year.value = nextYear;\n\n props.onYearChange?.({\n year: year.value,\n date: dayjs(value.value as DateValue).toDate(),\n trigger: 'year-select',\n });\n }\n\n function onMonthChange(nextMonth: number) {\n month.value = nextMonth;\n\n props.onMonthChange?.({\n month: month.value,\n date: dayjs(value.value as DateValue).toDate(),\n trigger: 'month-select',\n });\n }\n\n const panelProps = computed(() => ({\n value: cacheValue.value as string,\n year: year.value,\n month: month.value,\n mode: props.mode,\n format: formatRef.value.format,\n presets: props.presets,\n time: time.value as string,\n disableDate: props.disableDate,\n firstDayOfWeek: props.firstDayOfWeek,\n timePickerProps: props.timePickerProps,\n enableTimePicker: props.enableTimePicker,\n presetsPlacement: props.presetsPlacement,\n popupVisible: true,\n panelClick: props.onPanelClick,\n onCellClick,\n onJumperClick,\n onConfirmClick,\n onPresetClick,\n onYearChange,\n onMonthChange,\n onTimePickerChange,\n }));\n\n return () => ;\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdDateRangePickerProps } from '../date-picker/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否允许输入日期 */\n allowInput: Boolean,\n /** 无边框模式 */\n borderless: Boolean,\n /** 默认的日期选择交互是根据点击前后日期的顺序来决定并且会加以限制。比如:用户先点击开始时间输入框,选择了一个日期例如2020-05-15,紧接着交互会自动将焦点跳到结束日期输入框,等待用户选择结束时间。此时用户只能选择大于2020-05-15的日期(之前的日期会被灰态禁止点击,限制用户的点击)。当该值传递`true`时,则取消该限制 */\n cancelRangeSelectLimit: Boolean,\n /** 是否显示清除按钮 */\n clearable: Boolean,\n /** 时间选择器默认值,当 value/defaultValue 未设置值时有效 */\n defaultTime: {\n type: Array as PropType,\n default: (): TdDateRangePickerProps['defaultTime'] => ['00:00:00', '23:59:59'],\n },\n /** 禁用日期,示例:['A', 'B'] 表示日期 A 和日期 B 会被禁用。{ from: 'A', to: 'B' } 表示在 A 到 B 之间的日期会被禁用。{ before: 'A', after: 'B' } 表示在 A 之前和在 B 之后的日期都会被禁用。其中 A = '2021-01-01',B = '2021-02-01'。值类型为 Function 则表示返回值为 true 的日期会被禁用 */\n disableDate: {\n type: [Object, Array, Function] as PropType,\n },\n /** 是否禁用组件 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 是否显示时间选择 */\n enableTimePicker: Boolean,\n /** 第一天从星期几开始 */\n firstDayOfWeek: {\n type: Number,\n validator(val: TdDateRangePickerProps['firstDayOfWeek']): boolean {\n if (!val) return true;\n return [1, 2, 3, 4, 5, 6, 7].includes(val);\n },\n },\n /** 用于格式化日期,[详细文档](https://day.js.org/docs/en/display/format) */\n format: {\n type: String,\n default: '',\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 选择器模式 */\n mode: {\n type: String as PropType,\n default: 'date' as TdDateRangePickerProps['mode'],\n validator(val: TdDateRangePickerProps['mode']): boolean {\n if (!val) return true;\n return ['year', 'quarter', 'month', 'week', 'date'].includes(val);\n },\n },\n /** 决定在日期时间区间选择器的场景下是否需要点击确认按钮才完成选择动作,默认为 `true` */\n needConfirm: {\n type: Boolean,\n default: true,\n },\n /** 在开始日期选中之前,面板是否显示预选状态,即是否高亮预选日期 */\n panelPreselection: {\n type: Boolean,\n default: true,\n },\n /** 占位符,值为数组表示可分别为开始日期和结束日期设置占位符 */\n placeholder: {\n type: [String, Array] as PropType,\n },\n /** 透传 Popup 组件全部属性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 组件前置图标 */\n prefixIcon: {\n type: Function as PropType,\n },\n /** 预设快捷日期选择,示例:{ '特定日期范围': ['2021-01-01', '2022-01-01'], '本月': [dayjs().startOf('month'), dayjs().endOf('month')] } */\n presets: {\n type: Object as PropType,\n },\n /** 预设面板展示区域(包含确定按钮) */\n presetsPlacement: {\n type: String as PropType,\n default: 'bottom' as TdDateRangePickerProps['presetsPlacement'],\n validator(val: TdDateRangePickerProps['presetsPlacement']): boolean {\n if (!val) return true;\n return ['left', 'top', 'right', 'bottom'].includes(val);\n },\n },\n /** 透传给范围输入框 RangeInput 组件的参数 */\n rangeInputProps: {\n type: Object as PropType,\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 日期分隔符,支持全局配置,默认为 '-' */\n separator: {\n type: String,\n default: '',\n },\n /** 输入框尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdDateRangePickerProps['size'],\n validator(val: TdDateRangePickerProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdDateRangePickerProps['status'],\n validator(val: TdDateRangePickerProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 组件后置图标 */\n suffixIcon: {\n type: Function as PropType,\n },\n /** 透传 TimePicker 组件属性 */\n timePickerProps: {\n type: Object as PropType,\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 选中值 */\n value: {\n type: Array as PropType,\n default: undefined as TdDateRangePickerProps['value'],\n },\n modelValue: {\n type: Array as PropType,\n default: undefined as TdDateRangePickerProps['value'],\n },\n /** 选中值,非受控属性 */\n defaultValue: {\n type: Array as PropType,\n default: (): TdDateRangePickerProps['defaultValue'] => [],\n },\n /** 用于格式化日期的值,仅支持部分格式,时间戳、日期等。⚠️ `YYYYMMDD` 这种格式不支持,请勿使用,如果希望支持可以给 `dayjs` 提个 PR。注意和 `format` 的区别,`format` 仅用于处理日期在页面中呈现的格式 */\n valueType: {\n type: String as PropType,\n validator(val: TdDateRangePickerProps['valueType']): boolean {\n if (!val) return true;\n return [\n 'time-stamp',\n 'Date',\n 'YYYY',\n 'YYYY-MM',\n 'YYYY-MM-DD',\n 'YYYY-MM-DD HH',\n 'YYYY-MM-DD HH:mm',\n 'YYYY-MM-DD HH:mm:ss',\n 'YYYY-MM-DD HH:mm:ss:SSS',\n ].includes(val);\n },\n },\n /** 当输入框失去焦点时触发 */\n onBlur: Function as PropType,\n /** 选中值发生变化时触发 */\n onChange: Function as PropType,\n /** 如果存在“确定”按钮,则点击“确定”按钮时触发 */\n onConfirm: Function as PropType,\n /** 输入框获得焦点时触发 */\n onFocus: Function as PropType,\n /** 输入框数据发生变化时触发,参数 input 表示输入内容,value 表示组件当前有效值 */\n onInput: Function as PropType,\n /** 选中日期时触发,可能是开始日期,也可能是结束日期,第二个参数可以区分是开始日期或是结束日期 */\n onPick: Function as PropType,\n /** 点击预设按钮后触发 */\n onPresetClick: Function as PropType,\n};\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdRangeInputProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 输入框高亮状态序号 */\n activeIndex: {\n type: Number,\n },\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否可清空 */\n clearable: Boolean,\n /** 是否禁用范围输入框 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 指定输入框展示值的格式 */\n format: {\n type: [Array, Function] as PropType,\n },\n /** 透传 Input 输入框组件全部属性,数组第一项表示第一个输入框属性,第二项表示第二个输入框属性。示例:`[{ label: 'A', name: 'A-name' }, { label: 'B', name: 'B-name' }]` */\n inputProps: {\n type: [Object, Array] as PropType,\n },\n /** 左侧内容 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 占位符,示例:'请输入' 或者 ['开始日期', '结束日期'] */\n placeholder: {\n type: [String, Array] as PropType,\n },\n /** 组件前置图标 */\n prefixIcon: {\n type: Function as PropType,\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 范围分隔符 */\n separator: {\n type: [String, Function] as PropType,\n default: '-' as TdRangeInputProps['separator'],\n },\n /** 输入框内容为空时,悬浮状态是否显示清空按钮,默认不显示 */\n showClearIconOnEmpty: Boolean,\n /** 输入框尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdRangeInputProps['size'],\n validator(val: TdRangeInputProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdRangeInputProps['status'],\n validator(val: TdRangeInputProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 后置图标前的后置内容 */\n suffix: {\n type: [String, Function] as PropType,\n },\n /** 组件后置图标 */\n suffixIcon: {\n type: Function as PropType,\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 范围输入框的值 */\n value: {\n type: Array as PropType,\n default: undefined as TdRangeInputProps['value'],\n },\n modelValue: {\n type: Array as PropType,\n default: undefined as TdRangeInputProps['value'],\n },\n /** 范围输入框的值,非受控属性 */\n defaultValue: {\n type: Array as PropType,\n default: (): TdRangeInputProps['defaultValue'] => [],\n },\n /** 范围输入框失去焦点时触发 */\n onBlur: Function as PropType,\n /** 范围输入框值发生变化时触发 */\n onChange: Function as PropType,\n /** 清空按钮点击时触发 */\n onClear: Function as PropType,\n /** 范围输入框点击时触发 */\n onClick: Function as PropType,\n /** 回车键按下时触发 */\n onEnter: Function as PropType,\n /** 范围输入框获得焦点时触发 */\n onFocus: Function as PropType,\n /** 进入输入框时触发 */\n onMouseenter: Function as PropType,\n /** 离开输入框时触发 */\n onMouseleave: Function as PropType,\n};\n","import { defineComponent, ref, toRefs, computed, Fragment } from 'vue';\nimport { CloseCircleFilledIcon as TdCloseCircleFilledIcon } from 'tdesign-icons-vue-next';\n\nimport Input from '../input';\nimport props from './props';\nimport { RangeInputValue, RangeInputPosition } from './type';\n\n// hooks\nimport {\n useVModel,\n useDisabled,\n useReadonly,\n useTNodeJSX,\n useGlobalIcon,\n usePrefixClass,\n useCommonClassName,\n} from '@tdesign/hooks';\n\nimport { isArray } from 'lodash-es';\n\nfunction calcArrayValue(value: unknown | Array) {\n if (isArray(value)) {\n return value;\n }\n return [value, value];\n}\n\nexport default defineComponent({\n name: 'TRangeInput',\n inheritAttrs: false,\n props,\n setup(props, { expose, attrs }) {\n const { value, modelValue } = toRefs(props);\n const { STATUS, SIZE } = useCommonClassName();\n const classPrefix = usePrefixClass();\n const COMPONENT_NAME = usePrefixClass('range-input');\n const { CloseCircleFilledIcon } = useGlobalIcon({ CloseCircleFilledIcon: TdCloseCircleFilledIcon });\n const renderTNodeJSX = useTNodeJSX();\n\n const isDisabled = useDisabled();\n const isReadonly = useReadonly();\n const focused = ref(false);\n const isHover = ref(false);\n const format = computed(() => calcArrayValue(props.format));\n const inputProps = computed(() => calcArrayValue(props.inputProps));\n const placeholder = computed(() => calcArrayValue(props.placeholder));\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n const inputValue = computed(() => String((innerValue.value?.[0] || innerValue.value?.[1]) ?? ''));\n\n const isShowClearIcon = computed(\n () =>\n ((props.clearable && inputValue.value?.length && !isDisabled.value) || props.showClearIconOnEmpty) &&\n isHover.value,\n );\n\n const inputRefs = {\n firstInputRef: ref(),\n secondInputRef: ref(),\n };\n\n function handleClear(context: { e: MouseEvent }) {\n props.onClear?.(context);\n setInnerValue(['', ''], { ...context, trigger: 'clear', position: 'all' });\n }\n\n function handleEnter(rangeValue: RangeInputValue, context: { e: MouseEvent }) {\n props.onEnter?.(rangeValue, context);\n }\n\n function handleFocus(rangeValue: RangeInputValue, context: { e: MouseEvent }) {\n focused.value = true;\n props.onFocus?.(rangeValue, context);\n }\n\n function handleBlur(rangeValue: RangeInputValue, context: { e: MouseEvent }) {\n focused.value = false;\n props.onBlur?.(rangeValue, context);\n }\n\n function handleMouseEnter(e: MouseEvent) {\n isHover.value = true;\n props?.onMouseenter?.({ e });\n }\n\n function handleMouseLeave(e: MouseEvent) {\n isHover.value = false;\n props?.onMouseleave?.({ e });\n }\n\n expose({\n firstInputElement: inputRefs.firstInputRef.value,\n secondInputElement: inputRefs.secondInputRef.value,\n focus: (options: any) => {\n const { position = 'first' } = options || {};\n inputRefs[`${position as Exclude}InputRef`].value?.focus();\n },\n blur: (options: any) => {\n const { position = 'first' } = options || {};\n inputRefs[`${position as Exclude}InputRef`].value?.blur();\n },\n select: (options: any) => {\n const { position = 'first' } = options || {};\n inputRefs[`${position as Exclude}InputRef`].value?.select();\n },\n });\n\n return () => {\n const labelContent = renderTNodeJSX('label');\n const prefixIconContent = renderTNodeJSX('prefixIcon');\n const suffixContent = renderTNodeJSX('suffix');\n const suffixIconContent = renderTNodeJSX('suffixIcon');\n const tips = renderTNodeJSX('tips');\n const separator = renderTNodeJSX('separator');\n\n const RangeInputContent = (\n \n
    \n {prefixIconContent &&
    {prefixIconContent}
    }\n {labelContent ?
    {labelContent}
    : null}\n props.onClick?.({ e, position: 'first' })}\n onClear={() => setInnerValue([], { position: 'first', trigger: 'input' })}\n onEnter={(val, { e }) =>\n handleEnter([val, innerValue.value?.[1]], { e, position: 'first' } as {\n e: any;\n position: RangeInputPosition;\n })\n }\n onFocus={(val, { e }) =>\n handleFocus([val, innerValue.value?.[1]], { e, position: 'first' } as {\n e: any;\n position: RangeInputPosition;\n })\n }\n onBlur={(val, { e }) =>\n handleBlur([val, innerValue.value?.[1]], { e, position: 'first' } as {\n e: any;\n position: RangeInputPosition;\n })\n }\n onChange={(val, { e }) =>\n setInnerValue([val, innerValue.value?.[1]], { e, position: 'first', trigger: 'input' })\n }\n {...inputProps.value[0]}\n />\n\n
    {separator}
    \n\n props.onClick?.({ e, position: 'second' })}\n onClear={() => setInnerValue([], { position: 'second', trigger: 'input' })}\n onEnter={(val, { e }) =>\n handleEnter([innerValue.value?.[0], val], { e, position: 'second' } as {\n e: any;\n position: RangeInputPosition;\n })\n }\n onFocus={(val, { e }) =>\n handleFocus([innerValue.value?.[0], val], { e, position: 'second' } as {\n e: any;\n position: RangeInputPosition;\n })\n }\n onBlur={(val, { e }) =>\n handleBlur([innerValue.value?.[0], val], { e, position: 'second' } as {\n e: any;\n position: RangeInputPosition;\n })\n }\n onChange={(val, { e }) =>\n setInnerValue([innerValue.value?.[0], val], { e, position: 'second', trigger: 'input' })\n }\n {...inputProps.value[1]}\n />\n {suffixContent ?
    {suffixContent}
    : null}\n {(suffixIconContent || isShowClearIcon.value) && (\n \n {isShowClearIcon.value ? (\n \n ) : (\n suffixIconContent\n )}\n \n )}\n
    \n \n );\n\n const tipsClasses = [\n `${COMPONENT_NAME.value}__tips`,\n `${classPrefix.value}-tips`,\n `${classPrefix.value}-is-${props.status}`,\n ];\n return (\n \n {RangeInputContent}\n {tips &&
    {tips}
    }\n
    \n );\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdRangeInputPopupProps } from '../range-input/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 宽度随内容自适应 */\n autoWidth: Boolean,\n /** 是否禁用范围输入框,值为数组表示可分别控制某一个输入框是否禁用 */\n disabled: Boolean,\n /** 输入框的值 */\n inputValue: {\n type: Array as PropType,\n default: undefined as TdRangeInputPopupProps['inputValue'],\n },\n /** 输入框的值,非受控属性 */\n defaultInputValue: {\n type: Array as PropType,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 下拉框内容,可完全自定义 */\n panel: {\n type: [String, Function] as PropType,\n },\n /** 透传 Popup 浮层组件全部属性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 是否显示下拉框 */\n popupVisible: Boolean,\n /** 透传 RangeInput 组件全部属性 */\n rangeInputProps: {\n type: Object as PropType,\n },\n /** 只读状态,值为真会隐藏输入框,且无法打开下拉框 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdRangeInputPopupProps['status'],\n validator(val: TdRangeInputPopupProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 输入框值发生变化时触发,`context.trigger` 表示触发输入框值变化的来源:文本输入触发、清除按钮触发等 */\n onInputChange: Function as PropType,\n /** 下拉框显示或隐藏时触发 */\n onPopupVisibleChange: Function as PropType,\n};\n","import { defineComponent, computed } from 'vue';\nimport Popup from '../popup';\nimport { usePrefixClass } from '@tdesign/hooks';\nimport RangeInput from './range-input';\nimport props from './range-input-popup-props';\nimport { useOverlayInnerStyle } from '../select-input/hooks/useOverlayInnerStyle';\nimport { TdRangeInputPopupProps } from './type';\n\nexport default defineComponent({\n name: 'TRangeInputPopup',\n props,\n setup(props: TdRangeInputPopupProps) {\n const COMPONENT_NAME = usePrefixClass('range-input-popup');\n\n const { tOverlayInnerStyle, innerPopupVisible, onInnerPopupVisibleChange } = useOverlayInnerStyle(props);\n\n const popupClasses = computed(() => [\n COMPONENT_NAME.value,\n {\n [`${COMPONENT_NAME.value}--visible`]: props.popupVisible || innerPopupVisible.value,\n },\n ]);\n\n return () => (\n
    \n \n \n \n
    \n );\n },\n});\n","import _RangeInput from './range-input';\nimport _RangeInputPopup from './range-input-popup';\nimport withInstall from '../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 '@tdesign/hooks';\nimport TPanelContent from './PanelContent';\nimport TExtraContent from './ExtraContent';\nimport { TdDateRangePickerProps } from '../../type';\nimport { getDefaultFormat, parseToDayjs } from '@tdesign/common-js/date-picker/format';\nimport { useTableData, useDisableDate } from '../../hooks';\n\nexport default defineComponent({\n name: 'TRangePanel',\n props: {\n hoverValue: Array as PropType>,\n activeIndex: Number,\n isFirstValueSelected: Boolean,\n disableDate: [Object, Array, Function] as PropType,\n mode: {\n type: String as PropType,\n default: 'date',\n },\n format: String as PropType,\n presetsPlacement: {\n type: String as PropType,\n default: 'bottom',\n },\n value: Array as PropType>,\n timePickerProps: Object as PropType,\n presets: Object as PropType,\n popupVisible: Boolean,\n enableTimePicker: Boolean,\n panelPreselection: Boolean,\n firstDayOfWeek: Number,\n year: Array as PropType>,\n month: Array as PropType>,\n time: Array as PropType>,\n cancelRangeSelectLimit: Boolean,\n onClick: Function,\n onCellClick: Function,\n onCellMouseEnter: Function,\n onCellMouseLeave: Function,\n onJumperClick: Function,\n onConfirmClick: Function,\n onPresetClick: Function,\n onYearChange: Function,\n onMonthChange: Function,\n onTimePickerChange: Function,\n },\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, useReadonly, usePrefixClass } from '@tdesign/hooks';\n\nimport { isArray, isFunction } from 'lodash-es';\n\nimport props from './date-range-picker-props';\nimport { DateValue, DateRangePickerPartial } from './type';\n\nimport { RangeInputPopup as TRangeInputPopup } from '../range-input';\nimport TRangePanel from './components/panel/RangePanel';\nimport { useRange } from './hooks/useRange';\nimport {\n parseToDayjs,\n formatTime,\n formatDate,\n isValidDate,\n getDefaultFormat,\n initYearMonthTime,\n} from '@tdesign/common-js/date-picker/format';\nimport { subtractMonth, addMonth, extractTimeObj } from '@tdesign/common-js/date-picker/utils';\nimport { dateCorrection } from './utils';\n\nexport default defineComponent({\n name: 'TDateRangePicker',\n props,\n setup(props, { slots }) {\n const COMPONENT_NAME = usePrefixClass('date-range-picker');\n\n const {\n inputValue,\n popupVisible,\n rangeInputProps,\n popupProps,\n value,\n year,\n month,\n time,\n cacheValue,\n activeIndex,\n isHoverCell,\n isFirstValueSelected,\n onChange,\n } = useRange(props);\n\n const disabled = useDisabled();\n const isReadOnly = useReadonly();\n\n const formatRef = computed(() =>\n getDefaultFormat({\n mode: props.mode,\n enableTimePicker: props.enableTimePicker,\n format: props.format,\n valueType: props.valueType,\n }),\n );\n\n // 记录面板是否选中过\n const isSelected = ref(false);\n\n watch(popupVisible, (visible) => {\n // 面板展开重置数据\n if (visible) {\n isSelected.value = false;\n cacheValue.value = formatDate(value.value || [], {\n format: formatRef.value.valueType,\n targetFormat: formatRef.value.format,\n }) as string[];\n time.value = formatTime(\n value.value || [dayjs().format(formatRef.value.timeFormat), dayjs().format(formatRef.value.timeFormat)],\n formatRef.value.format,\n formatRef.value.timeFormat,\n props.defaultTime,\n ) as string[];\n\n // 空数据重置为当前年月\n if (!value.value.length) {\n const { year: defaultYear, month: defaultMonth } = initYearMonthTime({\n value: value.value,\n mode: props.mode,\n format: formatRef.value.format,\n enableTimePicker: props.enableTimePicker,\n });\n year.value = defaultYear;\n month.value = defaultMonth;\n } else if (value.value.length === 2 && !props.enableTimePicker) {\n // 确保右侧面板月份比左侧大 避免两侧面板月份一致\n const nextMonth = value.value.map((v: string) => parseToDayjs(v, formatRef.value.format).month());\n year.value = value.value.map((v: string) => parseToDayjs(v, formatRef.value.valueType).year());\n if (year.value[0] === year.value[1] && nextMonth[0] === nextMonth[1]) {\n nextMonth[0] === 11 ? (nextMonth[0] -= 1) : (nextMonth[1] += 1);\n }\n month.value = nextMonth;\n // 月份季度选择时需要确保右侧面板年份比左侧大\n if ((props.mode === 'month' || props.mode === 'quarter') && year.value[0] === year.value[1]) {\n year.value = [year.value[0], year.value[0] + 1];\n }\n } else {\n year.value = value.value.map((v: string) => parseToDayjs(v, formatRef.value.format).year());\n if (year.value.length === 1) year.value = [year.value[0], year.value[0]];\n\n month.value = value.value.map((v: string) => parseToDayjs(v, formatRef.value.format).month());\n if (month.value.length === 1) month.value = [month.value[0], Math.min(month.value[0] + 1, 11)];\n }\n } else {\n activeIndex.value = 0;\n isHoverCell.value = false;\n isFirstValueSelected.value = false;\n 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 { isArray, isFunction } from 'lodash-es';\n\nimport dateRangePickerPanelProps from './date-range-picker-panel-props';\nimport dateRangePickerProps from './date-range-picker-props';\nimport {\n DateValue,\n DateRangePickerPartial,\n TdDateRangePickerPanelProps,\n DatePickerYearChangeTrigger,\n DatePickerMonthChangeTrigger,\n} from './type';\n\nimport TRangePanel from './components/panel/RangePanel';\nimport { useRangeValue } from './hooks/useRangeValue';\nimport { formatDate, getDefaultFormat, parseToDayjs } from '@tdesign/common-js/date-picker/format';\nimport { subtractMonth, addMonth, extractTimeObj } from '@tdesign/common-js/date-picker/utils';\nimport { dateCorrection } from './utils';\n\nexport default defineComponent({\n name: 'TDateRangePickerPanel',\n props: {\n value: dateRangePickerProps.value,\n defaultValue: dateRangePickerProps.defaultValue,\n modelValue: dateRangePickerProps.modelValue,\n disabled: dateRangePickerProps.disabled,\n disableDate: dateRangePickerProps.disableDate,\n enableTimePicker: dateRangePickerProps.enableTimePicker,\n firstDayOfWeek: dateRangePickerProps.firstDayOfWeek,\n format: dateRangePickerProps.format,\n mode: dateRangePickerProps.mode,\n presets: dateRangePickerProps.presets,\n presetsPlacement: dateRangePickerProps.presetsPlacement,\n timePickerProps: dateRangePickerProps.timePickerProps,\n panelPreselection: dateRangePickerProps.panelPreselection,\n ...dateRangePickerPanelProps,\n },\n\n setup(props: TdDateRangePickerPanelProps) {\n const { value, year, month, time, cacheValue, isFirstValueSelected, onChange } = useRangeValue(props);\n\n const formatRef = computed(() =>\n getDefaultFormat({\n mode: props.mode,\n enableTimePicker: props.enableTimePicker,\n format: props.format,\n }),\n );\n\n // 记录面板是否选中过\n const isSelected = ref(false);\n const isHoverCell = ref(false);\n const hoverValue = ref([]);\n const activeIndex = computed(() => (isFirstValueSelected.value ? 1 : 0));\n\n onMounted(() => {\n if (value.value.length === 2 && !props.enableTimePicker) {\n // 确保右侧面板月份比左侧大 避免两侧面板月份一致\n const nextMonth = value.value.map((v: string) => parseToDayjs(v, formatRef.value.format).month());\n year.value = value.value.map((v: string) => parseToDayjs(v, formatRef.value.valueType).year());\n if (year.value[0] === year.value[1] && nextMonth[0] === nextMonth[1]) {\n nextMonth[0] === 11 ? (nextMonth[0] -= 1) : (nextMonth[1] += 1);\n }\n month.value = nextMonth;\n // 月份季度选择时需要确保右侧面板年份比左侧大\n if (['month', 'quarter'].includes(props.mode) && year.value[0] === year.value[1]) {\n year.value = [year.value[0], year.value[0] + 1];\n }\n }\n });\n\n // 日期 hover\n function onCellMouseEnter(date: Date) {\n isHoverCell.value = true;\n const nextValue = [...(hoverValue.value as string[])];\n nextValue[activeIndex.value] = formatDate(date, {\n format: formatRef.value.format,\n }) as string;\n hoverValue.value = nextValue;\n }\n\n // 日期 leave\n function onCellMouseLeave() {\n isHoverCell.value = false;\n hoverValue.value = cacheValue.value as string[];\n }\n\n // 日期点击\n function onCellClick(date: Date, { e }: { e: MouseEvent }) {\n 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 assertString(input) {\n if (input === undefined || input === null) throw new TypeError(\"Expected a string but received a \".concat(input));\n if (input.constructor.name !== 'String') throw new TypeError(\"Expected a string but received a \".concat(input.constructor.name));\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = checkHost;\nfunction isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n}\nfunction checkHost(host, matches) {\n for (var i = 0; i < matches.length; i++) {\n var match = matches[i];\n if (host === match || isRegExp(match) && match.test(host)) {\n return true;\n }\n }\n return false;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isByteLength;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/* eslint-disable prefer-rest-params */\nfunction isByteLength(str, options) {\n (0, _assertString.default)(str);\n var min;\n var max;\n if (_typeof(options) === 'object') {\n min = options.min || 0;\n max = options.max;\n } else {\n // backwards compatibility: isByteLength(str, min [, max])\n min = arguments[1];\n max = arguments[2];\n }\n var len = encodeURI(str).split(/%..|./).length - 1;\n return len >= min && (typeof max === 'undefined' || len <= max);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isFQDN;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nvar default_fqdn_options = {\n require_tld: true,\n allow_underscores: false,\n allow_trailing_dot: false,\n allow_numeric_tld: false,\n allow_wildcard: false,\n ignore_max_length: false\n};\nfunction isFQDN(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_fqdn_options);\n\n /* Remove the optional trailing dot before checking validity */\n if (options.allow_trailing_dot && str[str.length - 1] === '.') {\n str = str.substring(0, str.length - 1);\n }\n\n /* Remove the optional wildcard before checking validity */\n if (options.allow_wildcard === true && str.indexOf('*.') === 0) {\n str = str.substring(2);\n }\n var parts = str.split('.');\n var tld = parts[parts.length - 1];\n if (options.require_tld) {\n // disallow fqdns without tld\n if (parts.length < 2) {\n return false;\n }\n if (!options.allow_numeric_tld && !/^([a-z\\u00A1-\\u00A8\\u00AA-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i.test(tld)) {\n return false;\n }\n\n // disallow spaces\n if (/\\s/.test(tld)) {\n return false;\n }\n }\n\n // reject numeric TLDs\n if (!options.allow_numeric_tld && /^\\d+$/.test(tld)) {\n return false;\n }\n return parts.every(function (part) {\n if (part.length > 63 && !options.ignore_max_length) {\n return false;\n }\n if (!/^[a-z_\\u00a1-\\uffff0-9-]+$/i.test(part)) {\n return false;\n }\n\n // disallow full-width chars\n if (/[\\uff01-\\uff5e]/.test(part)) {\n return false;\n }\n\n // disallow parts starting or ending with hyphen\n if (/^-|-$/.test(part)) {\n return false;\n }\n if (!options.allow_underscores && /_/.test(part)) {\n return false;\n }\n return true;\n });\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIP;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/**\n11.3. Examples\n\n The following addresses\n\n fe80::1234 (on the 1st link of the node)\n ff02::5678 (on the 5th link of the node)\n ff08::9abc (on the 10th organization of the node)\n\n would be represented as follows:\n\n fe80::1234%1\n ff02::5678%5\n ff08::9abc%10\n\n (Here we assume a natural translation from a zone index to the\n part, where the Nth zone of any scope is translated into\n \"N\".)\n\n If we use interface names as , those addresses could also be\n represented as follows:\n\n fe80::1234%ne0\n ff02::5678%pvc1.3\n ff08::9abc%interface10\n\n where the interface \"ne0\" belongs to the 1st link, \"pvc1.3\" belongs\n to the 5th link, and \"interface10\" belongs to the 10th organization.\n * * */\nvar IPv4SegmentFormat = '(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';\nvar IPv4AddressFormat = \"(\".concat(IPv4SegmentFormat, \"[.]){3}\").concat(IPv4SegmentFormat);\nvar IPv4AddressRegExp = new RegExp(\"^\".concat(IPv4AddressFormat, \"$\"));\nvar IPv6SegmentFormat = '(?:[0-9a-fA-F]{1,4})';\nvar IPv6AddressRegExp = new RegExp('^(' + \"(?:\".concat(IPv6SegmentFormat, \":){7}(?:\").concat(IPv6SegmentFormat, \"|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){6}(?:\").concat(IPv4AddressFormat, \"|:\").concat(IPv6SegmentFormat, \"|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){5}(?::\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,2}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){4}(?:(:\").concat(IPv6SegmentFormat, \"){0,1}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,3}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){3}(?:(:\").concat(IPv6SegmentFormat, \"){0,2}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,4}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){2}(?:(:\").concat(IPv6SegmentFormat, \"){0,3}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,5}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){1}(?:(:\").concat(IPv6SegmentFormat, \"){0,4}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,6}|:)|\") + \"(?::((?::\".concat(IPv6SegmentFormat, \"){0,5}:\").concat(IPv4AddressFormat, \"|(?::\").concat(IPv6SegmentFormat, \"){1,7}|:))\") + ')(%[0-9a-zA-Z.]{1,})?$');\nfunction isIP(ipAddress) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n (0, _assertString.default)(ipAddress);\n\n // accessing 'arguments' for backwards compatibility: isIP(ipAddress [, version])\n // eslint-disable-next-line prefer-rest-params\n var version = (_typeof(options) === 'object' ? options.version : arguments[1]) || '';\n if (!version) {\n return isIP(ipAddress, {\n version: 4\n }) || isIP(ipAddress, {\n version: 6\n });\n }\n if (version.toString() === '4') {\n return IPv4AddressRegExp.test(ipAddress);\n }\n if (version.toString() === '6') {\n return IPv6AddressRegExp.test(ipAddress);\n }\n return false;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEmail;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _checkHost = _interopRequireDefault(require(\"./util/checkHost\"));\nvar _isByteLength = _interopRequireDefault(require(\"./isByteLength\"));\nvar _isFQDN = _interopRequireDefault(require(\"./isFQDN\"));\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nvar default_email_options = {\n allow_display_name: false,\n allow_underscores: false,\n require_display_name: false,\n allow_utf8_local_part: true,\n require_tld: true,\n blacklisted_chars: '',\n ignore_max_length: false,\n host_blacklist: [],\n host_whitelist: []\n};\n\n/* eslint-disable max-len */\n/* eslint-disable no-control-regex */\nvar splitNameAddress = /^([^\\x00-\\x1F\\x7F-\\x9F\\cX]+)]/.test(display_name_without_quotes);\n if (contains_illegal) {\n // if contains illegal characters,\n // must to be enclosed in double-quotes, otherwise it's not a valid display name\n if (display_name_without_quotes === display_name) {\n return false;\n }\n\n // the quotes in display name must start with character symbol \\\n var all_start_with_back_slash = display_name_without_quotes.split('\"').length === display_name_without_quotes.split('\\\\\"').length;\n if (!all_start_with_back_slash) {\n return false;\n }\n }\n return true;\n}\nfunction isEmail(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_email_options);\n if (options.require_display_name || options.allow_display_name) {\n var display_email = str.match(splitNameAddress);\n if (display_email) {\n var display_name = display_email[1];\n\n // Remove display name and angle brackets to get email address\n // Can be done in the regex but will introduce a ReDOS (See #1597 for more info)\n str = str.replace(display_name, '').replace(/(^<|>$)/g, '');\n\n // sometimes need to trim the last space to get the display name\n // because there may be a space between display name and email address\n // eg. myname \n // the display name is `myname` instead of `myname `, so need to trim the last space\n if (display_name.endsWith(' ')) {\n display_name = display_name.slice(0, -1);\n }\n if (!validateDisplayName(display_name)) {\n return false;\n }\n } else if (options.require_display_name) {\n return false;\n }\n }\n if (!options.ignore_max_length && str.length > defaultMaxEmailLength) {\n return false;\n }\n var parts = str.split('@');\n var domain = parts.pop();\n var lower_domain = domain.toLowerCase();\n if (options.host_blacklist.length > 0 && (0, _checkHost.default)(lower_domain, options.host_blacklist)) {\n return false;\n }\n if (options.host_whitelist.length > 0 && !(0, _checkHost.default)(lower_domain, options.host_whitelist)) {\n return false;\n }\n var user = parts.join('@');\n if (options.domain_specific_validation && (lower_domain === 'gmail.com' || lower_domain === 'googlemail.com')) {\n /*\n Previously we removed dots for gmail addresses before validating.\n This was removed because it allows `multiple..dots@gmail.com`\n to be reported as valid, but it is not.\n Gmail only normalizes single dots, removing them from here is pointless,\n should be done in normalizeEmail\n */\n user = user.toLowerCase();\n\n // Removing sub-address from username before gmail validation\n var username = user.split('+')[0];\n\n // Dots are not included in gmail length restriction\n if (!(0, _isByteLength.default)(username.replace(/\\./g, ''), {\n min: 6,\n max: 30\n })) {\n return false;\n }\n var _user_parts = username.split('.');\n for (var i = 0; i < _user_parts.length; i++) {\n if (!gmailUserPart.test(_user_parts[i])) {\n return false;\n }\n }\n }\n if (options.ignore_max_length === false && (!(0, _isByteLength.default)(user, {\n max: 64\n }) || !(0, _isByteLength.default)(domain, {\n max: 254\n }))) {\n return false;\n }\n if (!(0, _isFQDN.default)(domain, {\n require_tld: options.require_tld,\n ignore_max_length: options.ignore_max_length,\n allow_underscores: options.allow_underscores\n })) {\n if (!options.allow_ip_domain) {\n return false;\n }\n if (!(0, _isIP.default)(domain)) {\n if (!domain.startsWith('[') || !domain.endsWith(']')) {\n return false;\n }\n var noBracketdomain = domain.slice(1, -1);\n if (noBracketdomain.length === 0 || !(0, _isIP.default)(noBracketdomain)) {\n return false;\n }\n }\n }\n if (options.blacklisted_chars) {\n if (user.search(new RegExp(\"[\".concat(options.blacklisted_chars, \"]+\"), 'g')) !== -1) return false;\n }\n if (user[0] === '\"' && user[user.length - 1] === '\"') {\n user = user.slice(1, user.length - 1);\n return options.allow_utf8_local_part ? quotedEmailUserUtf8.test(user) : quotedEmailUser.test(user);\n }\n var pattern = options.allow_utf8_local_part ? emailUserUtf8Part : emailUserPart;\n var user_parts = user.split('.');\n for (var _i = 0; _i < user_parts.length; _i++) {\n if (!pattern.test(user_parts[_i])) {\n return false;\n }\n }\n return true;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { isEmpty, isObject, isNumber, isBoolean } from 'lodash-es';\n\n// https://github.com/validatorjs/validator.js\n\nimport isDate from 'validator/lib/isDate';\nimport isEmail from 'validator/lib/isEmail';\n\nimport isURL from 'validator/lib/isURL';\n\nimport { getCharacterLength } from '@tdesign/common-js/utils/helper';\nimport {\n CustomValidator,\n FormRule,\n ValueType,\n AllValidateResult,\n ValidateResultType,\n CustomValidateResolveType,\n} from '../type';\n\n// `{} / [] / '' / undefined / null` 等内容被认为是空; 0 和 false 被认为是正常数据,部分数据的值就是 0 或者 false\nexport function isValueEmpty(val: ValueType): boolean {\n const type: string = Object.prototype.toString.call(val);\n const typeMap: Record = {\n Date: '[object Date]',\n };\n if (type === typeMap.Date) {\n return false;\n }\n return isObject(val) ? isEmpty(val) : ['', undefined, null].includes(val);\n}\n\nconst VALIDATE_MAP = {\n date: isDate,\n url: isURL,\n email: isEmail,\n required: (val: ValueType): boolean => !isValueEmpty(val),\n whitespace: (val: ValueType): boolean => !(/^\\s+$/.test(val) || val === ''),\n boolean: (val: ValueType): boolean => isBoolean(val),\n max: (val: ValueType, num: number): boolean => (isNumber(val) ? val <= num : getCharacterLength(val) <= num),\n min: (val: ValueType, num: number): boolean => (isNumber(val) ? val >= num : getCharacterLength(val) >= num),\n len: (val: ValueType, num: number): boolean => getCharacterLength(String(val)) === num,\n number: (val: ValueType): boolean => isNumber(val),\n enum: (val: ValueType, strs: Array): boolean => strs.includes(val),\n idcard: (val: ValueType): boolean => /^(\\d{18,18}|\\d{15,15}|\\d{17,17}x)$/i.test(val),\n telnumber: (val: ValueType): boolean => /^1[3-9]\\d{9}$/.test(val),\n pattern: (val: ValueType, regexp: RegExp): boolean => regexp.test(val),\n // 自定义校验规则,可能是异步校验\n validator: (val: ValueType, validate: CustomValidator): ReturnType => validate(val),\n};\n\nexport type ValidateFuncType = typeof VALIDATE_MAP[keyof typeof VALIDATE_MAP];\n\n/**\n * 校验某一条数据的某一条规则,一种校验规则不满足则不再进行校验。\n * @param value 值\n * @param rule 校验规则\n * @returns 两种校验结果,一种是内置校验规则的校验结果哦,二种是自定义校验规则(validator)的校验结果\n */\nexport async function validateOneRule(value: ValueType, rule: FormRule): Promise {\n let validateResult: CustomValidateResolveType | ValidateResultType = { result: true };\n const keys = Object.keys(rule) as (keyof FormRule)[];\n let vOptions: undefined | FormRule[keyof FormRule];\n let vValidateFun: ValidateFuncType;\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n // 非必填选项,值为空,非自定义规则:无需校验,直接返回 true\n if (!rule.required && isValueEmpty(value) && !rule.validator) {\n return validateResult;\n }\n\n const validateRule: ValidateFuncType = VALIDATE_MAP[key as keyof typeof VALIDATE_MAP];\n // 找到一个校验规则,则无需再找,因为参数只允许对一个规则进行校验\n if (validateRule && (rule[key] || rule[key] === 0)) {\n // rule 值为 true 则表示没有校验参数,只是对值进行默认规则校验\n vOptions = rule[key] === true ? undefined : rule[key];\n vValidateFun = validateRule;\n break;\n }\n }\n if (vValidateFun) {\n // @ts-ignore\n validateResult = await vValidateFun(value, vOptions);\n // 如果校验不通过,则返回校验不通过的规则\n if (isBoolean(validateResult)) {\n return { ...rule, result: validateResult };\n }\n // 校验结果为 CustomValidateObj,只有自定义校验规则会存在这种情况\n if (isObject(validateResult)) {\n return validateResult;\n }\n }\n return validateResult;\n}\n\n// 单个数据进行全规则校验,校验成功也可能会有 message\nexport async function validate(value: ValueType, rules: Array): Promise {\n const all = rules.map((rule) => validateOneRule(value, rule));\n const r = await Promise.all(all);\n return r;\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar includes = function includes(str, val) {\n return str.indexOf(val) !== -1;\n};\nvar _default = exports.default = includes;\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isURL;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _checkHost = _interopRequireDefault(require(\"./util/checkHost\"));\nvar _includesString = _interopRequireDefault(require(\"./util/includesString\"));\nvar _isFQDN = _interopRequireDefault(require(\"./isFQDN\"));\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\n/*\noptions for isURL method\n\nprotocols - valid protocols can be modified with this option.\nrequire_tld - If set to false isURL will not check if the URL's host includes a top-level domain.\nrequire_protocol - if set to true isURL will return false if protocol is not present in the URL.\nrequire_host - if set to false isURL will not check if host is present in the URL.\nrequire_port - if set to true isURL will check if port is present in the URL.\nrequire_valid_protocol - isURL will check if the URL's protocol is present in the protocols option.\nallow_underscores - if set to true, the validator will allow underscores in the URL.\nhost_whitelist - if set to an array of strings or regexp, and the domain matches none of the strings\n defined in it, the validation fails.\nhost_blacklist - if set to an array of strings or regexp, and the domain matches any of the strings\n defined in it, the validation fails.\nallow_trailing_dot - if set to true, the validator will allow the domain to end with\n a `.` character.\nallow_protocol_relative_urls - if set to true protocol relative URLs will be allowed.\nallow_fragments - if set to false isURL will return false if fragments are present.\nallow_query_components - if set to false isURL will return false if query components are present.\ndisallow_auth - if set to true, the validator will fail if the URL contains an authentication\n component, e.g. `http://username:password@example.com`\nvalidate_length - if set to false isURL will skip string length validation. `max_allowed_length`\n will be ignored if this is set as `false`.\nmax_allowed_length - if set, isURL will not allow URLs longer than the specified value (default is\n 2084 that IE maximum URL length).\n\n*/\n\nvar default_url_options = {\n protocols: ['http', 'https', 'ftp'],\n require_tld: true,\n require_protocol: false,\n require_host: true,\n require_port: false,\n require_valid_protocol: true,\n allow_underscores: false,\n allow_trailing_dot: false,\n allow_protocol_relative_urls: false,\n allow_fragments: true,\n allow_query_components: true,\n validate_length: true,\n max_allowed_length: 2084\n};\nvar wrapped_ipv6 = /^\\[([^\\]]+)\\](?::([0-9]+))?$/;\nfunction isURL(url, options) {\n (0, _assertString.default)(url);\n if (!url || /[\\s<>]/.test(url)) {\n return false;\n }\n if (url.indexOf('mailto:') === 0) {\n return false;\n }\n options = (0, _merge.default)(options, default_url_options);\n if (options.validate_length && url.length > options.max_allowed_length) {\n return false;\n }\n if (!options.allow_fragments && (0, _includesString.default)(url, '#')) {\n return false;\n }\n if (!options.allow_query_components && ((0, _includesString.default)(url, '?') || (0, _includesString.default)(url, '&'))) {\n return false;\n }\n var protocol, auth, host, hostname, port, port_str, split, ipv6;\n split = url.split('#');\n url = split.shift();\n split = url.split('?');\n url = split.shift();\n split = url.split('://');\n if (split.length > 1) {\n protocol = split.shift().toLowerCase();\n if (options.require_valid_protocol && options.protocols.indexOf(protocol) === -1) {\n return false;\n }\n } else if (options.require_protocol) {\n return false;\n } else if (url.slice(0, 2) === '//') {\n if (!options.allow_protocol_relative_urls) {\n return false;\n }\n split[0] = url.slice(2);\n }\n url = split.join('://');\n if (url === '') {\n return false;\n }\n split = url.split('/');\n url = split.shift();\n if (url === '' && !options.require_host) {\n return true;\n }\n split = url.split('@');\n if (split.length > 1) {\n if (options.disallow_auth) {\n return false;\n }\n if (split[0] === '') {\n return false;\n }\n auth = split.shift();\n if (auth.indexOf(':') >= 0 && auth.split(':').length > 2) {\n return false;\n }\n var _auth$split = auth.split(':'),\n _auth$split2 = _slicedToArray(_auth$split, 2),\n user = _auth$split2[0],\n password = _auth$split2[1];\n if (user === '' && password === '') {\n return false;\n }\n }\n hostname = split.join('@');\n port_str = null;\n ipv6 = null;\n var ipv6_match = hostname.match(wrapped_ipv6);\n if (ipv6_match) {\n host = '';\n ipv6 = ipv6_match[1];\n port_str = ipv6_match[2] || null;\n } else {\n split = hostname.split(':');\n host = split.shift();\n if (split.length) {\n port_str = split.join(':');\n }\n }\n if (port_str !== null && port_str.length > 0) {\n port = parseInt(port_str, 10);\n if (!/^[0-9]+$/.test(port_str) || port <= 0 || port > 65535) {\n return false;\n }\n } else if (options.require_port) {\n return false;\n }\n if (options.host_whitelist) {\n return (0, _checkHost.default)(host, options.host_whitelist);\n }\n if (host === '' && !options.require_host) {\n return true;\n }\n if (!(0, _isIP.default)(host) && !(0, _isFQDN.default)(host, options) && (!ipv6 || !(0, _isIP.default)(ipv6, 6))) {\n return false;\n }\n host = host || ipv6;\n if (options.host_blacklist && (0, _checkHost.default)(host, options.host_blacklist)) {\n return false;\n }\n return true;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdFormItemProps } from '../form/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** label 原生属性 */\n for: {\n type: String,\n default: '',\n },\n /** 表单项说明内容 */\n help: {\n type: [String, Function] as PropType,\n },\n /** 字段标签名称 */\n label: {\n type: [String, Function] as PropType,\n default: '' as TdFormItemProps['label'],\n },\n /** 表单字段标签对齐方式:左对齐、右对齐、顶部对齐。默认使用 Form 的对齐方式,优先级高于 Form.labelAlign */\n labelAlign: {\n type: String as PropType,\n validator(val: TdFormItemProps['labelAlign']): boolean {\n if (!val) return true;\n return ['left', 'right', 'top'].includes(val);\n },\n },\n /** 可以整体设置标签宽度,优先级高于 Form.labelWidth */\n labelWidth: {\n type: [String, Number] as PropType,\n },\n /** 表单字段名称 */\n name: {\n type: String,\n default: '',\n },\n /** 是否显示必填符号(*),优先级高于 Form.requiredMark */\n requiredMark: {\n type: Boolean,\n default: undefined,\n },\n /** 表单字段校验规则 */\n rules: {\n type: Array as PropType,\n },\n /** 校验不通过时,是否显示错误提示信息,优先级高于 `Form.showErrorMessage` */\n showErrorMessage: {\n type: Boolean,\n default: undefined,\n },\n /** 校验状态,可在需要完全自主控制校验状态时使用 */\n status: {\n type: String as PropType,\n default: '' as TdFormItemProps['status'],\n },\n /** 校验状态图标,值为 `true` 显示默认图标,默认图标有 成功、失败、警告 等,不同的状态图标不同。`statusIcon` 值为 `false`,不显示图标。`statusIcon` 值类型为渲染函数,则可以自定义右侧状态图标。优先级高级 Form 的 statusIcon */\n statusIcon: {\n type: [Boolean, Function] as PropType,\n default: undefined as TdFormItemProps['statusIcon'],\n },\n /** 是否显示校验成功的边框,默认不显示 */\n successBorder: Boolean,\n /** 自定义提示内容,样式跟随 `status` 变动,可在需要完全自主控制校验规则时使用 */\n tips: {\n type: [String, Function] as PropType,\n },\n};\n","import {\n computed,\n defineComponent,\n inject,\n nextTick,\n onBeforeUnmount,\n onMounted,\n provide,\n reactive,\n ref,\n toRefs,\n VNode,\n watch,\n} from 'vue';\nimport {\n CheckCircleFilledIcon as TdCheckCircleFilledIcon,\n CloseCircleFilledIcon as TdCloseCircleFilledIcon,\n ErrorCircleFilledIcon as TdErrorCircleFilledIcon,\n GlobalIconType,\n} from 'tdesign-icons-vue-next';\nimport {\n isNil,\n isArray,\n isNumber,\n isString,\n isBoolean,\n cloneDeep,\n get as lodashGet,\n set as lodashSet,\n} from 'lodash-es';\n\nimport { validate } from './utils/form-model';\nimport {\n AllValidateResult,\n Data,\n FormErrorMessage,\n FormItemValidateMessage,\n FormRule,\n ValidateTriggerType,\n ValueType,\n} from './type';\nimport props from './form-item-props';\nimport {\n AnalysisValidateResult,\n ErrorListType,\n FormInjectionKey,\n FormItemContext,\n FormItemInjectionKey,\n SuccessListType,\n useCLASSNAMES,\n ValidateStatus,\n} from './consts';\n\nimport { useConfig, useTNodeJSX, useGlobalIcon, usePrefixClass } from '@tdesign/hooks';\n\nimport { template } from '@tdesign/common-js/utils/stringTemplate';\n\nexport type FormItemValidateResult = { [key in keyof T]: boolean | AllValidateResult[] };\n\nexport function getFormItemClassName(componentName: string, name?: string) {\n if (!name) return '';\n return `${componentName}__${name}`.replace(/(\\[|\\]\\.)/g, '_');\n}\n\nexport default defineComponent({\n name: 'TFormItem',\n props,\n setup(props, { slots }) {\n const renderContent = useTNodeJSX();\n const CLASS_NAMES = useCLASSNAMES();\n const { globalConfig } = useConfig('form');\n const { CheckCircleFilledIcon, CloseCircleFilledIcon, ErrorCircleFilledIcon } = useGlobalIcon({\n CheckCircleFilledIcon: TdCheckCircleFilledIcon,\n CloseCircleFilledIcon: TdCloseCircleFilledIcon,\n ErrorCircleFilledIcon: TdErrorCircleFilledIcon,\n });\n const form = inject(FormInjectionKey, undefined);\n\n const classPrefix = usePrefixClass();\n const formItemClassPrefix = usePrefixClass('form-item');\n\n const needRequiredMark = computed(() => {\n const requiredMark = props.requiredMark ?? form?.requiredMark ?? globalConfig.value.requiredMark;\n const isRequired = innerRules.value.filter((rule) => rule.required).length > 0;\n return requiredMark ?? isRequired;\n });\n\n const requiredMarkPosition = computed(() => {\n return form?.requiredMarkPosition ?? globalConfig.value.requiredMarkPosition;\n });\n\n const hasLabel = computed(() => slots.label || props.label);\n const hasColon = computed(() => !!(form?.colon && hasLabel.value));\n const FROM_LABEL = usePrefixClass('form__label');\n const labelAlign = computed(() => (isNil(props.labelAlign) ? form?.labelAlign : props.labelAlign));\n const labelWidth = computed(() => (isNil(props.labelWidth) ? form?.labelWidth : props.labelWidth));\n\n const labelClasses = computed(() => [\n CLASS_NAMES.value.label,\n {\n [`${FROM_LABEL.value}--required`]: needRequiredMark.value,\n [`${FROM_LABEL.value}--required-right`]: needRequiredMark.value && requiredMarkPosition.value === 'right',\n [`${FROM_LABEL.value}--top`]: hasLabel.value && (labelAlign.value === 'top' || !labelWidth.value),\n [`${FROM_LABEL.value}--left`]: labelAlign.value === 'left' && labelWidth.value,\n [`${FROM_LABEL.value}--right`]: labelAlign.value === 'right' && labelWidth.value,\n },\n ]);\n\n const statusClass = computed(\n () =>\n `${classPrefix.value}-is-${props.status || 'default'} ${\n props.status === 'success' ? CLASS_NAMES.value.successBorder : ''\n }`,\n );\n\n const renderLabel = () => {\n if (Number(labelWidth.value) === 0) return;\n\n let labelStyle = {};\n if (labelWidth.value && labelAlign.value !== 'top') {\n if (isNumber(labelWidth.value)) {\n labelStyle = { width: `${labelWidth.value}px` };\n } else {\n labelStyle = { width: labelWidth.value };\n }\n }\n\n return (\n
    \n \n {hasColon.value && globalConfig.value.colonText}\n
    \n );\n };\n\n /** Suffix Icon */\n const getDefaultIcon = (): VNode => {\n const resultIcon = (Icon: GlobalIconType) => (\n \n \n \n );\n const list = errorList.value;\n if (verifyStatus.value === ValidateStatus.SUCCESS) {\n return resultIcon(CheckCircleFilledIcon);\n }\n if (list?.[0]) {\n const type = list[0].type || 'error';\n const icon =\n {\n error: CloseCircleFilledIcon,\n warning: ErrorCircleFilledIcon,\n }[type] || CheckCircleFilledIcon;\n return resultIcon(icon);\n }\n return null;\n };\n const renderSuffixIcon = () => {\n const { statusIcon } = props;\n if (statusIcon === false) return;\n\n let resultIcon = renderContent('statusIcon', { defaultNode: getDefaultIcon() });\n if (resultIcon) return {resultIcon};\n if (resultIcon === false) return;\n\n resultIcon = form?.renderContent('statusIcon', { defaultNode: getDefaultIcon(), params: props });\n if (resultIcon) return resultIcon;\n };\n /** Suffix Icon END */\n\n /** Content Style */\n const errorClasses = computed(() => {\n if (!showErrorMessage.value) return '';\n if (verifyStatus.value === ValidateStatus.SUCCESS) {\n return props.successBorder\n ? [CLASS_NAMES.value.success, CLASS_NAMES.value.successBorder].join(' ')\n : CLASS_NAMES.value.success;\n }\n if (!errorList.value.length) return;\n const type = errorList.value[0].type || 'error';\n if (props.status) return statusClass.value;\n return type === 'error' ? CLASS_NAMES.value.error : CLASS_NAMES.value.warning;\n });\n const contentClasses = computed(() => [CLASS_NAMES.value.controls, errorClasses.value]);\n const contentStyle = computed(() => {\n let contentStyle = {};\n if (labelWidth.value && labelAlign.value !== 'top') {\n if (isNumber(labelWidth.value)) {\n contentStyle = { marginLeft: `${labelWidth.value}px` };\n } else {\n contentStyle = { marginLeft: labelWidth.value };\n }\n }\n\n return contentStyle;\n });\n /** Content Style END */\n\n const errorList = ref([]);\n const successList = ref([]);\n const verifyStatus = ref(ValidateStatus.TO_BE_VALIDATED);\n const resetValidating = ref(false);\n const needResetField = ref(false);\n\n const resetHandler = () => {\n needResetField.value = false;\n errorList.value = [];\n successList.value = [];\n verifyStatus.value = ValidateStatus.TO_BE_VALIDATED;\n };\n const getEmptyValue = (): ValueType => {\n const type = Object.prototype.toString.call(lodashGet(form?.data, props.name));\n let emptyValue: ValueType;\n if (type === '[object String]') {\n emptyValue = '';\n }\n if (type === '[object Array]') {\n emptyValue = [];\n }\n if (type === '[object Object]') {\n emptyValue = {};\n }\n return emptyValue;\n };\n const resetField = async (resetType: 'initial' | 'empty' | undefined = form?.resetType) => {\n if (!props.name) return;\n\n if (resetType === 'empty') lodashSet(form?.data, props.name, getEmptyValue());\n else if (resetType === 'initial') lodashSet(form?.data, props.name, initialValue.value);\n\n await nextTick();\n if (resetValidating.value) {\n needResetField.value = true;\n } else {\n resetHandler();\n }\n };\n\n const errorMessages = computed(() => form?.errorMessage ?? globalConfig.value.errorMessage);\n const innerRules = computed(() => {\n if (props.rules?.length) return props.rules;\n if (!props.name) return [];\n const index = `${props.name}`.lastIndexOf('.') || -1;\n const pRuleName = `${props.name}`.slice(index + 1);\n return lodashGet(form?.rules, props.name) || lodashGet(form?.rules, pRuleName) || [];\n });\n\n const analysisValidateResult = async (trigger: ValidateTriggerType): Promise => {\n const result: AnalysisValidateResult = {\n successList: [],\n errorList: [],\n rules: [],\n resultList: [],\n allowSetValue: false,\n };\n result.rules =\n trigger === 'all'\n ? innerRules.value\n : innerRules.value.filter((item) => (item.trigger || 'change') === trigger);\n if (innerRules.value.length && !result.rules?.length) {\n return result;\n }\n result.allowSetValue = true;\n result.resultList = await validate(value.value, result.rules);\n result.errorList = result.resultList\n .filter((item) => item.result !== true)\n .map((item: ErrorListType) => {\n Object.keys(item).forEach((key) => {\n // @ts-ignore\n if (!item.message && errorMessages.value[key]) {\n const name = isString(props.label) ? props.label : props.name;\n // @ts-ignore\n item.message = template(errorMessages.value[key], {\n name,\n // @ts-ignore\n validate: item[key],\n });\n }\n });\n return item;\n });\n // 仅有自定义校验方法才会存在 successList\n result.successList = result.resultList.filter(\n (item) => item.result === true && item.message && item.type === 'success',\n ) as SuccessListType[];\n\n return result;\n };\n const validateHandler = async (\n trigger: ValidateTriggerType,\n showErrorMessage?: boolean,\n ): Promise> => {\n resetValidating.value = true;\n // undefined | boolean\n freeShowErrorMessage.value = showErrorMessage;\n const {\n successList: innerSuccessList,\n errorList: innerErrorList,\n rules,\n resultList,\n allowSetValue,\n } = await analysisValidateResult(trigger);\n\n if (allowSetValue) {\n successList.value = innerSuccessList;\n errorList.value = innerErrorList;\n }\n // 根据校验结果设置校验状态\n if (rules.length) {\n verifyStatus.value = innerErrorList.length ? ValidateStatus.FAIL : ValidateStatus.SUCCESS;\n }\n // 重置处理\n if (needResetField.value) {\n resetHandler();\n }\n resetValidating.value = false;\n\n return {\n [props.name]: innerErrorList.length === 0 ? true : resultList,\n } as FormItemValidateResult;\n };\n const validateOnly = async (trigger: ValidateTriggerType): Promise> => {\n const { errorList: innerErrorList, resultList } = await analysisValidateResult(trigger);\n\n return {\n [props.name]: innerErrorList.length === 0 ? true : resultList,\n } as FormItemValidateResult;\n };\n\n const setValidateMessage = (validateMessage: FormItemValidateMessage[]) => {\n if (!validateMessage && !isArray(validateMessage)) return;\n if (validateMessage.length === 0) {\n errorList.value = [];\n verifyStatus.value = ValidateStatus.SUCCESS;\n }\n errorList.value = validateMessage.map((item) => ({ ...item, result: false }));\n verifyStatus.value = ValidateStatus.FAIL;\n };\n\n const value = computed(() => form?.data && lodashGet(form?.data, props.name));\n const initialValue = ref(undefined);\n const { name } = toRefs(props);\n const context: FormItemContext = reactive({\n name,\n resetHandler,\n resetField,\n validate: validateHandler,\n validateOnly,\n setValidateMessage,\n });\n\n onMounted(() => {\n initialValue.value = cloneDeep(value.value);\n form?.children.push(context);\n });\n\n onBeforeUnmount(() => {\n if (form) form.children = form?.children.filter((ctx) => ctx !== context);\n });\n\n watch(\n value,\n async () => {\n await validateHandler('change');\n },\n { deep: true },\n );\n\n watch(\n () => [props.name, JSON.stringify(props.rules)].join(','),\n () => {\n validateHandler('change');\n },\n );\n\n const freeShowErrorMessage = ref(undefined);\n const showErrorMessage = computed(() => {\n if (isBoolean(freeShowErrorMessage.value)) return freeShowErrorMessage.value;\n if (isBoolean(props.showErrorMessage)) return props.showErrorMessage;\n return form?.showErrorMessage;\n });\n\n const classes = computed(() => [\n CLASS_NAMES.value.formItem,\n getFormItemClassName(formItemClassPrefix.value, props.name),\n {\n [CLASS_NAMES.value.formItemWithHelp]: helpNode.value,\n [CLASS_NAMES.value.formItemWithExtra]: extraNode.value,\n },\n ]);\n const helpNode = computed(() => {\n const help = renderContent('help');\n if (help) return
    {help}
    ;\n return null;\n });\n const extraNode = computed(() => {\n const getExtraNode = (content: string) => (\n
    \n {content}\n
    \n );\n const list = errorList.value;\n if (showErrorMessage.value && list?.[0]?.message) {\n return getExtraNode(list[0].message);\n }\n if (successList.value.length) {\n return getExtraNode(successList.value[0].message);\n }\n return null;\n });\n\n const tipsNode = computed(() => {\n const tmpTips = renderContent('tips');\n if (!tmpTips) return null;\n const tmpClasses = [`${formItemClassPrefix.value}-tips`, `${classPrefix.value}-tips`, statusClass.value];\n return
    {tmpTips}
    ;\n });\n\n const handleBlur = async () => {\n await validateHandler('blur');\n };\n provide(FormItemInjectionKey, {\n handleBlur,\n });\n\n return () => (\n
    \n {renderLabel()}\n
    \n
    \n {renderContent('default')}\n {renderSuffixIcon()}\n
    \n {helpNode.value}\n {tipsNode.value}\n {extraNode.value}\n
    \n
    \n );\n },\n});\n","/**\n * 用正则实现模板字符串功能\n * @param str 模板字符串\n * @param vars 取值的对象\n * @returns 替换后的字符串\n */\nexport function template>(str: string, vars: T): string {\n return str.replace(/\\${(.*?)}/g, (_, prop: string) => vars[prop.trim()] || '');\n}\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdFormProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否在表单标签字段右侧显示冒号 */\n colon: Boolean,\n /** 表单数据 */\n data: {\n type: Object as PropType,\n default: () => ({}),\n },\n /** 是否禁用整个表单 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 表单错误信息配置,示例:`{ idcard: '请输入正确的身份证号码', max: '字符长度不能超过 ${max}' }` */\n errorMessage: {\n type: Object as PropType,\n },\n /** 允许表单统一控制禁用状态的自定义组件名称列表。默认会有组件库的全部输入类组件:TInput、TInputNumber、TCascader、TSelect、TOption、TSwitch、TCheckbox、TCheckboxGroup、TRadio、TRadioGroup、TTreeSelect、TDatePicker、TTimePicker、TUpload、TTransfer、TSlider。对于自定义组件,组件内部需要包含可以控制表单禁用状态的变量 `formDisabled`。示例:`['CustomUpload', 'CustomInput']` */\n formControlledComponents: {\n type: Array as PropType,\n },\n /** 表单原生的id属性,支持用于配合非表单内的按钮通过form属性来触发表单事件 */\n id: {\n type: String,\n default: undefined,\n },\n /** 表单字段标签对齐方式:左对齐、右对齐、顶部对齐 */\n labelAlign: {\n type: String as PropType,\n default: 'right' as TdFormProps['labelAlign'],\n validator(val: TdFormProps['labelAlign']): boolean {\n if (!val) return true;\n return ['left', 'right', 'top'].includes(val);\n },\n },\n /** 可以整体设置label标签宽度,默认为100px */\n labelWidth: {\n type: [String, Number] as PropType,\n default: '100px' as TdFormProps['labelWidth'],\n },\n /** 表单布局,有两种方式:纵向布局 和 行内布局 */\n layout: {\n type: String as PropType,\n default: 'vertical' as TdFormProps['layout'],\n validator(val: TdFormProps['layout']): boolean {\n if (!val) return true;\n return ['vertical', 'inline'].includes(val);\n },\n },\n /** 是否阻止表单提交默认事件(表单提交默认事件会刷新页面),设置为 `true` 可以避免刷新 */\n preventSubmitDefault: {\n type: Boolean,\n default: true,\n },\n /** 是否整个表单只读 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 是否显示必填符号(*),默认显示 */\n requiredMark: {\n type: Boolean,\n default: undefined,\n },\n /** 表单必填符号(*)显示位置 */\n requiredMarkPosition: {\n type: String as PropType,\n validator(val: TdFormProps['requiredMarkPosition']): boolean {\n if (!val) return true;\n return ['left', 'right'].includes(val);\n },\n },\n /** 重置表单的方式,值为 empty 表示重置表单为空,值为 initial 表示重置表单数据为初始值 */\n resetType: {\n type: String as PropType,\n default: 'empty' as TdFormProps['resetType'],\n validator(val: TdFormProps['resetType']): boolean {\n if (!val) return true;\n return ['empty', 'initial'].includes(val);\n },\n },\n /** 表单字段校验规则 */\n rules: {\n type: Object as PropType,\n },\n /** 表单校验不通过时,是否自动滚动到第一个校验不通过的字段,平滑滚动或是瞬间直达。值为空则表示不滚动 */\n scrollToFirstError: {\n type: String as PropType,\n validator(val: TdFormProps['scrollToFirstError']): boolean {\n if (!val) return true;\n return ['', 'smooth', 'auto'].includes(val);\n },\n },\n /** 校验不通过时,是否显示错误提示信息,统一控制全部表单项。如果希望控制单个表单项,请给 FormItem 设置该属性 */\n showErrorMessage: {\n type: Boolean,\n default: true,\n },\n /** 校验状态图标,值为 `true` 显示默认图标,默认图标有 成功、失败、警告 等,不同的状态图标不同。`statusIcon` 值为 `false`,不显示图标。`statusIcon` 值类型为渲染函数,则可以自定义右侧状态图标 */\n statusIcon: {\n type: [Boolean, Function] as PropType,\n default: undefined as TdFormProps['statusIcon'],\n },\n /** 【讨论中】当校验结果只有告警信息时,是否触发 `submit` 提交事件 */\n submitWithWarningMessage: Boolean,\n /** 表单重置时触发 */\n onReset: Function as PropType,\n /** 表单提交时触发。其中 `context.validateResult` 表示校验结果,`context.firstError` 表示校验不通过的第一个规则提醒。`context.validateResult` 值为 `true` 表示校验通过;如果校验不通过,`context.validateResult` 值为校验结果列表。
    【注意】⚠️ 默认情况,输入框按下 Enter 键会自动触发提交事件,如果希望禁用这个默认行为,可以给输入框添加 enter 事件,并在事件中设置 `e.preventDefault()` */\n onSubmit: Function as PropType,\n /** 校验结束后触发,result 值为 true 表示校验通过;如果校验不通过,result 值为校验结果列表 */\n onValidate: Function as PropType,\n};\n","import { computed, defineComponent, provide, reactive, ref, toRefs } from 'vue';\nimport { isEmpty, isArray, isBoolean, isFunction } from 'lodash-es';\n\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 '@tdesign/hooks';\n\ntype Result = FormValidateResult;\n\nexport default defineComponent({\n name: 'TForm',\n props,\n setup(props, { expose }) {\n const renderContent = useTNodeJSX();\n const { disabled, readonly } = toRefs(props);\n provide('formDisabled', {\n disabled,\n });\n provide('formReadonly', {\n readonly,\n });\n\n const formRef = ref(null);\n const children = ref([]);\n\n const {\n showErrorMessage,\n labelWidth,\n labelAlign,\n data,\n colon,\n requiredMark,\n requiredMarkPosition,\n rules,\n errorMessage,\n resetType,\n } = toRefs(props);\n provide(\n FormInjectionKey,\n reactive({\n showErrorMessage,\n labelWidth,\n labelAlign,\n data,\n colon,\n requiredMark,\n requiredMarkPosition,\n rules,\n errorMessage,\n resetType,\n children,\n renderContent,\n }),\n );\n\n const COMPONENT_NAME = usePrefixClass('form');\n const CLASS_NAMES = useCLASSNAMES();\n const formClass = computed(() => [\n CLASS_NAMES.value.form,\n { [`${COMPONENT_NAME.value}-inline`]: props.layout === 'inline' },\n ]);\n\n const FORM_ITEM_CLASS_PREFIX = usePrefixClass('form-item');\n\n const getFirstError = (result: Result) => {\n if (isBoolean(result)) return '';\n const [firstKey] = Object.keys(result);\n if (props.scrollToFirstError) {\n const tmpClassName = getFormItemClassName(FORM_ITEM_CLASS_PREFIX.value, firstKey);\n scrollTo(tmpClassName);\n }\n const resArr = result[firstKey] as ValidateResultList;\n if (!isArray(resArr)) return '';\n return resArr.filter((item) => !item.result)[0].message;\n };\n // 校验不通过时,滚动到第一个错误表单\n const scrollTo = (selector: string) => {\n const [dom] = formRef.value.getElementsByClassName(selector);\n const behavior = props.scrollToFirstError;\n if (behavior) {\n dom && dom.scrollIntoView({ behavior });\n }\n };\n\n const needValidate = (name: string | number, fields: string[] | undefined) => {\n if (!fields || !isArray(fields)) return true;\n return fields.indexOf(`${name}`) !== -1;\n };\n const formatValidateResult = (validateResultList: FormItemValidateResult[]) => {\n const result: Record = validateResultList.reduce((r, err) => Object.assign(r || {}, err), {});\n Object.keys(result).forEach((key) => {\n if (result[key] === true) {\n delete result[key];\n }\n });\n return isEmpty(result) ? true : result;\n };\n const validate = async (param?: FormValidateParams): Promise => {\n const { fields, trigger = 'all', showErrorMessage } = param || {};\n const list = children.value\n .filter((child) => isFunction(child.validate) && needValidate(String(child.name), fields))\n .map((child) => child.validate(trigger, showErrorMessage));\n const arr = await Promise.all(list);\n const result = formatValidateResult(arr);\n const firstError = getFirstError(result);\n props.onValidate?.({\n validateResult: result,\n firstError,\n });\n return result;\n };\n const validateOnly = async (params?: Omit) => {\n const { fields, trigger = 'all' } = params || {};\n const list = children.value\n .filter((child) => isFunction(child.validateOnly) && needValidate(String(child.name), fields))\n .map((child) => child.validateOnly(trigger));\n const arr = await Promise.all(list);\n return formatValidateResult(arr);\n };\n const submitParams = ref>();\n const onSubmit = (e?: FormSubmitEvent) => {\n if (props.preventSubmitDefault && e) {\n e.preventDefault();\n e.stopPropagation();\n }\n validate(submitParams.value).then((r) => {\n props.onSubmit?.({ validateResult: r, firstError: getFirstError(r), e });\n });\n submitParams.value = undefined;\n };\n const submit = async (params?: Pick) => {\n submitParams.value = params;\n requestSubmit(formRef.value);\n };\n\n const resetParams = ref>();\n const onReset = (e?: FormResetEvent) => {\n if (props.preventSubmitDefault && e) {\n e.preventDefault();\n e.stopPropagation();\n }\n children.value\n .filter(\n (child) =>\n isFunction(child.resetField) && needValidate(String(child.name), resetParams.value?.fields as string[]),\n )\n .forEach((child) => child.resetField(resetParams.value?.type));\n resetParams.value = undefined;\n props.onReset?.({ e });\n };\n const reset = (params?: FormResetParams) => {\n (resetParams.value as any) = params;\n formRef.value.reset();\n };\n\n const clearValidate = (fields?: Array) => {\n children.value.forEach((child) => {\n if (isFunction(child.resetHandler) && needValidate(String(child.name), fields)) {\n child.resetHandler();\n }\n });\n };\n const setValidateMessage = (validateMessage: FormValidateMessage) => {\n const keys = Object.keys(validateMessage);\n if (!keys.length) return;\n const list = children.value\n .filter((child) => isFunction(child.setValidateMessage) && keys.includes(`${child.name}`))\n .map((child) => child.setValidateMessage(validateMessage[child.name as keyof FormData]));\n Promise.all(list);\n };\n\n expose({ validate, submit, reset, clearValidate, setValidateMessage, validateOnly });\n\n return () => (\n
    onSubmit(e)} onReset={(e) => onReset(e)}>\n {renderContent('default')}\n
    \n );\n },\n});\n","import _Form from './form';\nimport _FormItem from './form-item';\nimport withInstall from '../utils/withInstall';\nimport { TdFormProps, TdFormItemProps, Data } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type FormProps = TdFormProps;\nexport type FormItemProps = TdFormItemProps;\n\nexport const Form = withInstall(_Form);\nexport const FormItem = withInstall(_FormItem);\nexport default Form;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdRadioProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否允许取消选中 */\n allowUncheck: Boolean,\n /** 是否选中 */\n checked: {\n type: Boolean,\n default: undefined,\n },\n modelValue: {\n type: Boolean,\n default: undefined,\n },\n /** 是否选中,非受控属性 */\n defaultChecked: Boolean,\n /** 单选按钮内容,同 label */\n default: {\n type: [String, Function] as PropType,\n },\n /** 是否为禁用态。如果存在父组件 RadioGroup,默认值由 RadioGroup.disabled 控制。优先级:Radio.disabled > RadioGroup.disabled > Form.disabled */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 主文案 */\n label: {\n type: [String, Function] as PropType,\n },\n /** HTML 元素原生属性 */\n name: {\n type: String,\n default: '',\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 单选按钮的值 */\n value: {\n type: [String, Number, Boolean] as PropType,\n default: undefined as TdRadioProps['value'],\n },\n /** 选中状态变化时触发 */\n onChange: Function as PropType,\n /** 点击时触发,一般用于外层阻止冒泡场景 */\n onClick: Function as PropType,\n};\n","import { InjectionKey } from 'vue';\nimport { RadioValue } from '../type';\n\nexport const RadioGroupInjectionKey: InjectionKey<{\n name: string;\n disabled: boolean;\n readonly: boolean;\n value: RadioValue;\n allowUncheck: boolean;\n setValue: (value: RadioValue, context: { e: Event; name?: string }) => void;\n}> = Symbol('RadioGroupProvide');\n\nexport const RadioButtonInjectionKey: InjectionKey<{}> = Symbol('RadioButtonProvide');\n","import { defineComponent, inject, toRefs, computed, ref } from 'vue';\nimport { useVModel, useContent, useDisabled, useReadonly, usePrefixClass, useCommonClassName } from '@tdesign/hooks';\nimport { omit, isString } from 'lodash-es';\nimport props from './props';\nimport { RadioGroupInjectionKey, RadioButtonInjectionKey } from './consts';\n\n// hooks\n\nimport { getValidAttrs } from '@tdesign/common-js/utils/helper';\n\nexport default defineComponent({\n name: 'TRadio',\n inheritAttrs: false,\n props,\n setup(props, { attrs }) {\n const inputRef = ref();\n const { checked, modelValue } = toRefs(props);\n const [innerChecked, setInnerChecked] = useVModel(\n checked,\n modelValue,\n props.defaultChecked,\n props.onChange,\n 'checked',\n );\n\n const radioChecked = computed(() => (radioGroup ? props.value === radioGroup.value : innerChecked.value));\n\n const radioGroup = inject(RadioGroupInjectionKey, undefined);\n\n const allowUncheck = computed(() => Boolean(props.allowUncheck || radioGroup?.allowUncheck));\n\n const handleClick = (e: MouseEvent) => {\n e.stopPropagation();\n };\n\n const onLabelClick = (e: MouseEvent) => {\n if (isDisabled.value || isReadonly.value) return;\n props.onClick?.({ e });\n\n if (radioChecked.value && !allowUncheck.value) return;\n\n if (radioGroup) {\n const value = radioChecked.value && allowUncheck.value ? undefined : props.value;\n radioGroup.setValue(value, { e, name: radioGroup.name });\n } else {\n const value = allowUncheck.value ? !radioChecked.value : true;\n setInnerChecked(value, { e });\n }\n };\n\n const inputEvents = computed(() =>\n getValidAttrs({\n focus: attrs.onFocus,\n blur: attrs.onBlur,\n keydown: attrs.onKeydown,\n keyup: attrs.onKeyup,\n keypresss: attrs.onKeypresss,\n }),\n );\n const wrapperAttrs = computed(() => {\n const events = [...Object.keys(inputEvents.value), 'input', 'change'].map(\n (str) => `on${str[0].toUpperCase()}${str.slice(1)}`,\n );\n return omit(attrs, events);\n });\n /** Event END */\n\n // extend radioGroup disabled props\n const groupDisabled = computed(() => radioGroup?.disabled);\n const groupReadonly = computed(() => radioGroup?.readonly);\n const isDisabled = useDisabled({ afterDisabled: groupDisabled });\n const isReadonly = useReadonly({ afterReadonly: groupReadonly });\n\n // attribute\n const inputProps = computed(() => ({\n name: radioGroup ? radioGroup.name : props.name,\n checked: radioChecked.value,\n disabled: isDisabled.value,\n readonly: isReadonly.value,\n value: props.value,\n }));\n\n /** Style */\n const { STATUS } = useCommonClassName();\n const radioButton = inject(RadioButtonInjectionKey, undefined);\n const radioBtnName = usePrefixClass('radio-button');\n const COMPONENT_NAME = usePrefixClass('radio');\n const prefixCls = computed(() => (radioButton ? radioBtnName.value : COMPONENT_NAME.value));\n const inputClass = computed(() => [\n `${prefixCls.value}`,\n {\n [STATUS.value.checked]: inputProps.value.checked,\n [STATUS.value.disabled]: inputProps.value.disabled,\n },\n ]);\n /** Style END */\n\n const renderContent = useContent();\n\n return () => (\n \n \n \n {renderContent('default', 'label')}\n \n );\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdRadioGroupProps } from '../radio/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否允许取消选中 */\n allowUncheck: Boolean,\n /** 是否禁用全部子单选框。优先级:Radio.disabled > RadioGroup.disabled > Form.disabled */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** HTML 元素原生属性 */\n name: {\n type: String,\n default: '',\n },\n /** 单选组件按钮形式。RadioOption 数据类型为 string 或 number 时,表示 label 和 value 值相同 */\n options: {\n type: Array as PropType,\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 组件尺寸【讨论中】 */\n size: {\n type: String as PropType,\n default: 'medium' as TdRadioGroupProps['size'],\n validator(val: TdRadioGroupProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 组件风格 */\n theme: {\n type: String as PropType,\n default: 'radio' as TdRadioGroupProps['theme'],\n validator(val: TdRadioGroupProps['theme']): boolean {\n if (!val) return true;\n return ['radio', 'button'].includes(val);\n },\n },\n /** 选中的值 */\n value: {\n type: [String, Number, Boolean] as PropType,\n default: undefined as TdRadioGroupProps['value'],\n },\n modelValue: {\n type: [String, Number, Boolean] as PropType,\n default: undefined as TdRadioGroupProps['value'],\n },\n /** 选中的值,非受控属性 */\n defaultValue: {\n type: [String, Number, Boolean] as PropType,\n },\n /** 单选组件按钮形式 */\n variant: {\n type: String as PropType,\n default: 'outline' as TdRadioGroupProps['variant'],\n validator(val: TdRadioGroupProps['variant']): boolean {\n if (!val) return true;\n return ['outline', 'primary-filled', 'default-filled'].includes(val);\n },\n },\n /** 选中值发生变化时触发, `context.name` 指 RadioGroup 的 name 属性 */\n onChange: Function as PropType,\n};\n","import { computed, defineComponent, provide, reactive } from 'vue';\nimport props from './props';\nimport Radio from './radio';\nimport { omit } from 'lodash-es';\nimport { RadioButtonInjectionKey } from './consts';\n\nimport { useContent } from '@tdesign/hooks';\n\nexport default defineComponent({\n name: 'TRadioButton',\n inheritAttrs: false,\n props,\n setup(props, { attrs }) {\n provide(RadioButtonInjectionKey, reactive({}));\n\n const radioProps = computed(() => {\n const res = {\n ...props,\n ...omit(\n attrs,\n Object.keys(attrs).filter((key) => key.startsWith('on')),\n ),\n };\n\n return res;\n });\n\n const renderContent = useContent();\n\n return () => {renderContent('default', 'label')};\n },\n});\n","import type { ComponentPublicInstance, Ref } from 'vue';\nimport { unref, watch, getCurrentScope, onScopeDispose } from 'vue';\n\nexport const defaultWindow = typeof window !== 'undefined' ? window : undefined;\nexport interface ConfigurableWindow {\n window?: Window;\n}\n// eslint-disable-next-line no-undef\nexport interface MutationObserverOptions extends MutationObserverInit, ConfigurableWindow {}\nexport type MaybeRef = T | Ref;\nexport type VueInstance = ComponentPublicInstance;\nexport type MaybeElementRef = MaybeRef;\nexport type MaybeElement = HTMLElement | SVGElement | VueInstance | undefined | null;\nexport type UnRefElementReturn = T extends VueInstance\n ? Exclude\n : T | undefined;\n\nexport type Fn = () => void;\n\nexport function unrefElement(elRef: MaybeElementRef): UnRefElementReturn {\n const plain = unref(elRef);\n return (plain as VueInstance)?.$el ?? plain;\n}\nexport function tryOnScopeDispose(fn: Fn) {\n if (getCurrentScope()) {\n onScopeDispose(fn);\n return true;\n }\n return false;\n}\n\nexport function useMutationObserver(\n target: MaybeElementRef,\n // eslint-disable-next-line no-undef\n callback: MutationCallback,\n options: MutationObserverOptions = {},\n) {\n const { window = defaultWindow, ...mutationOptions } = options;\n let observer: MutationObserver | undefined;\n const isSupported = window && 'MutationObserver' in window;\n\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = undefined;\n }\n };\n\n const stopWatch = watch(\n () => unrefElement(target),\n (el) => {\n cleanup();\n\n if (isSupported && window && el) {\n observer = new MutationObserver(callback);\n observer.observe(el, mutationOptions);\n }\n },\n { immediate: true },\n );\n\n const stop = () => {\n cleanup();\n stopWatch();\n };\n\n tryOnScopeDispose(stop);\n\n return {\n isSupported,\n stop,\n };\n}\n\nexport type UseMutationObserverReturn = ReturnType;\n","import {\n VNode,\n defineComponent,\n h,\n provide,\n reactive,\n ref,\n computed,\n onMounted,\n watch,\n nextTick,\n toRefs,\n onUnmounted,\n} from 'vue';\nimport { isNil, isEqual, isString, isNumber, throttle, isFunction } from 'lodash-es';\n\nimport props from './radio-group-props';\nimport type { RadioOptionObj, RadioOption, TdRadioGroupProps } from './type';\nimport TRadio from './radio';\nimport TRadioButton from './radio-button';\nimport { RadioGroupInjectionKey } from './consts';\nimport { useVModel, usePrefixClass, useTNodeDefault, useResizeObserver, useCommonClassName } from '@tdesign/hooks';\n\nimport { useKeyboard } from './hooks';\n\nimport { useMutationObserver } from '../watermark/hooks';\nimport type { UseMutationObserverReturn } from '../watermark/hooks';\n\nexport default defineComponent({\n name: 'TRadioGroup',\n props,\n setup(props) {\n const { value, modelValue } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n /** calculate bar style */\n const radioGroupRef = ref();\n const radioBtnName = usePrefixClass('radio-button');\n const { STATUS, SIZE } = useCommonClassName();\n\n const updateInnerValue: TdRadioGroupProps['onChange'] = (value, context) => {\n if (isEqual(value, innerValue.value)) return;\n setInnerValue(value, context);\n };\n\n // 键盘操作\n useKeyboard(radioGroupRef, updateInnerValue);\n\n const checkedClassName = computed(() => `.${radioBtnName.value}.${STATUS.value.checked}`);\n\n const barStyle = ref({ width: '0px', height: '0px', left: '0px', top: '0px', 'transition-property': 'none' });\n\n const calcDefaultBarStyle = () => {\n const div = document.createElement('div');\n div.setAttribute('style', 'position: absolute; visibility: hidden;');\n div.appendChild(radioGroupRef.value.cloneNode(true));\n document.body.appendChild(div);\n\n const defaultCheckedRadio: HTMLElement = div.querySelector(checkedClassName.value);\n const { offsetWidth, offsetHeight, offsetLeft, offsetTop } = defaultCheckedRadio;\n barStyle.value = {\n ...barStyle.value,\n width: `${offsetWidth}px`,\n height: `${offsetHeight}px`,\n left: `${offsetLeft}px`,\n top: `${offsetTop}px`,\n };\n document.body.removeChild(div);\n };\n\n const calcBarStyle = (disableAnimation = false) => {\n if (props.variant === 'outline') return;\n\n const checkedRadio: HTMLElement = radioGroupRef.value.querySelector(checkedClassName.value);\n\n const transitionProperty = disableAnimation ? 'none' : 'all';\n if (!checkedRadio) {\n barStyle.value = {\n 'transition-property': transitionProperty,\n width: '0px',\n height: '9px',\n left: '0px',\n top: '0px',\n };\n return;\n }\n\n const { offsetWidth, offsetHeight, offsetLeft, offsetTop } = checkedRadio;\n // current node is not rendered,fallback to default render\n if (!offsetWidth) {\n calcDefaultBarStyle();\n } else {\n barStyle.value = {\n 'transition-property': transitionProperty,\n width: `${offsetWidth}px`,\n height: `${offsetHeight}px`,\n left: `${offsetLeft}px`,\n top: `${offsetTop}px`,\n };\n }\n };\n\n let observerReturn: UseMutationObserverReturn;\n\n watch(innerValue, async () => {\n await nextTick();\n calcBarStyle();\n });\n\n onMounted(() => {\n calcBarStyle(true);\n useResizeObserver(\n radioGroupRef,\n throttle(async () => {\n await nextTick();\n calcBarStyle();\n }, 300),\n );\n\n const checkedRadioLabel: HTMLElement = radioGroupRef.value.querySelector(\n `${checkedClassName.value} .${radioBtnName.value}__label`,\n );\n if (checkedRadioLabel) {\n observerReturn = useMutationObserver(\n checkedRadioLabel,\n (mutations) => {\n mutations.forEach((mutation) => {\n if (mutation.type === 'characterData') {\n calcBarStyle();\n }\n });\n },\n {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true,\n },\n );\n }\n });\n onUnmounted(() => {\n observerReturn?.stop();\n });\n /** calculate bar style end */\n\n const { name, disabled, readonly } = toRefs(props);\n provide(\n RadioGroupInjectionKey,\n reactive({\n name,\n disabled,\n readonly,\n value: innerValue,\n allowUncheck: props.allowUncheck,\n setValue: updateInnerValue,\n }),\n );\n\n const radioGroupName = usePrefixClass('radio-group');\n const renderSlot = useTNodeDefault();\n const renderBlock = (): VNode => {\n if (props.variant.includes('filled') && !isNil(innerValue.value))\n return
    ;\n };\n const renderOptions = (): VNode[] => {\n return props.options?.map((option: RadioOption) => {\n let opt = option as RadioOptionObj;\n if (isNumber(option) || isString(option)) {\n opt = { value: option, label: option.toString() };\n }\n const RadioComponent = props.theme === 'button' ? TRadioButton : TRadio;\n return (\n \n {isFunction(opt.label) ? opt.label(h) : opt.label}\n \n );\n });\n };\n\n const groupClass = computed(() => [\n `${radioGroupName.value}`,\n SIZE.value[props.size],\n {\n [`${radioGroupName.value}__outline`]: props.variant === 'outline',\n [`${radioGroupName.value}--filled`]: props.variant.includes('filled'),\n [`${radioGroupName.value}--primary-filled`]: props.variant === 'primary-filled',\n },\n ]);\n\n return () => (\n
    \n {renderSlot('default') || renderOptions()}\n {renderBlock()}\n
    \n );\n },\n});\n","import { onBeforeMount, onMounted, Ref } from 'vue';\nimport { isString } from 'lodash-es';\nimport { off, on } from '../../utils/dom';\nimport { CHECKED_CODE_REG } from '@tdesign/common-js/common';\n\n/** 键盘操作 */\nexport function useKeyboard(\n radioGroupRef: Ref,\n setInnerValue: (value: any, context: { e: Event }) => void,\n) {\n const checkRadioInGroup = (e: KeyboardEvent) => {\n const inputNode = (e.target as HTMLElement).querySelector('input');\n if (!inputNode) return;\n\n const isCheckedCode = CHECKED_CODE_REG.test(e.key) || CHECKED_CODE_REG.test(e.code);\n if (isCheckedCode) {\n e.preventDefault();\n\n const data = inputNode.dataset;\n if (inputNode.checked && data.allowUncheck) {\n setInnerValue(undefined, { e });\n } else {\n // Number\n let value: number | string | boolean = !isNaN(Number(data.value)) ? Number(data.value) : data.value;\n // Boolean\n value = (isString(value) && { true: true, false: false }[value]) || value;\n // String\n value = isString(value) && value[0] === \"'\" ? value.replace(/'/g, '') : value;\n setInnerValue(value, { e });\n }\n }\n };\n\n onMounted(() => {\n on(radioGroupRef.value, 'keydown', checkRadioInGroup);\n });\n\n onBeforeMount(() => {\n off(radioGroupRef.value, 'keydown', checkRadioInGroup);\n });\n}\n","import _Radio from './radio';\nimport _Group from './group';\nimport _RadioButton from './radio-button';\nimport withInstall from '../utils/withInstall';\nimport { TdRadioProps, TdRadioGroupProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type RadioProps = TdRadioProps;\nexport type RadioGroupProps = TdRadioGroupProps;\n\nexport const Radio = withInstall(_Radio);\nexport const RadioGroup = withInstall(_Group);\nexport const RadioButton = withInstall(_RadioButton);\n\nexport default Radio;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdSliderProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否禁用组件 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 用于控制数字输入框组件,值为 false 表示不显示数字输入框;值为 true 表示呈现默认数字输入框;值类型为 Object 表示透传属性到数字输入框组件 */\n inputNumberProps: {\n type: [Boolean, Object] as PropType,\n default: false as TdSliderProps['inputNumberProps'],\n },\n /** 滑块当前值文本。
    值为 true 显示默认文案;值为 false 不显示滑块当前值文本;
    值为 `${value}%` 则表示组件会根据占位符渲染文案;
    值类型为函数时,参数 `value` 标识滑块值,参数 `position=start` 表示范围滑块的起始值,参数 `position=end` 表示范围滑块的终点值 */\n label: {\n type: [String, Boolean, Function] as PropType,\n default: true as TdSliderProps['label'],\n },\n /** 滑块布局方向 */\n layout: {\n type: String as PropType,\n default: 'horizontal' as TdSliderProps['layout'],\n validator(val: TdSliderProps['layout']): boolean {\n if (!val) return true;\n return ['vertical', 'horizontal'].includes(val);\n },\n },\n /** 刻度标记,示例:[0, 10, 40, 200] 或者 `{ 10: (val) => val + '%', 50: (h) => }` */\n marks: {\n type: [Object, Array] as PropType,\n },\n /** 滑块范围最大值 */\n max: {\n type: Number,\n default: 100,\n },\n /** 滑块范围最小值 */\n min: {\n type: Number,\n default: 0,\n },\n /** 双游标滑块 */\n range: Boolean,\n /** 控制步长刻度值显示 */\n showStep: Boolean,\n /** 步长 */\n step: {\n type: Number,\n default: 1,\n },\n /** 透传提示组件属性 */\n tooltipProps: {\n type: Object as PropType,\n },\n /** 滑块值 */\n value: {\n type: [Number, Array] as PropType,\n default: undefined as TdSliderProps['value'],\n },\n modelValue: {\n type: [Number, Array] as PropType,\n default: undefined as TdSliderProps['value'],\n },\n /** 滑块值,非受控属性 */\n defaultValue: {\n type: [Number, Array] as PropType,\n default: 0 as TdSliderProps['defaultValue'],\n },\n /** 滑块值变化时触发 */\n onChange: Function as PropType,\n /** 松开拖动`mouseup` 或点击滑块条时触发,适合不希望在拖动滑块过程频繁触发回调的场景实用 */\n onChangeEnd: Function as PropType,\n};\n","import { isString } from 'lodash-es';\nimport { TNode } from '../../common';\n/**\n * 计算刻度区间值停止坐标\n * @param position 刻度坐标值 ;\n * @param isVertical 是否垂直方向\n * @returns {string} style内联样式值\n */\nexport const getStopStyle = (position: number, isVertical: boolean) => {\n return isVertical ? { top: `calc(${100 - position}% - 1px)` } : { left: `${position}%` };\n};\n\n/**\n * 格式化返回slider初始值\n * @param val slider传入的value\n * @param type 第一个滑块or第二个滑块值\n * @returns {number}\n */\nexport const formatSliderValue = (val: number | number[], type: 'first' | 'second') => {\n if (type === 'first') {\n if (val instanceof Array) {\n return val[0];\n }\n return val;\n }\n if (val instanceof Array) {\n return val[1];\n }\n return 0;\n};\n\n/**\n * 格式化label参数\n * @param label slider传入的label属性\n * @param val slider传入的value\n */\nexport const formatLabel = (label: TNode | string, val: number) => {\n if (Boolean(label) === false) {\n return String(val);\n }\n if (isString(label)) {\n let text = String(val);\n try {\n const rule = /\\${value}%/g;\n const enableToReplace = rule.test(label);\n if (enableToReplace) {\n text = label.replace(rule, String(val));\n } else {\n text = label;\n throw new Error();\n }\n } catch (e) {\n console.warn(`fail to parse label prop, please pass string such as '\\${value}%'`);\n }\n return text;\n }\n return label;\n};\n","import { TooltipProps } from '../../tooltip';\nimport { ref, computed, ComputedRef, Ref } from 'vue';\nimport { TdSliderProps } from '../type';\nimport { formatLabel } from '../utils';\nimport { useTNodeJSX } from '@tdesign/hooks';\n\nconst initialProps: TooltipProps & { overlayClassName: string } = {\n visible: false,\n trigger: 'hover',\n showArrow: true,\n overlayInnerStyle: undefined,\n overlayClassName: undefined,\n attach: 'body',\n theme: 'default',\n};\n\nexport interface TooltipConfig {\n tooltipProps: boolean | TooltipProps;\n vertical: boolean;\n value: number;\n label: TdSliderProps['label'];\n position: string;\n range: boolean;\n}\n\n/**\n * 聚合管理滑块tooltip内容hook\n * @param tooltipProps tooltip属性配置\n * @param vertical 是否垂直展示\n * @returns\n */\nexport const useSliderTooltip = (tooltipConfig: Ref) => {\n const tooltipRef = ref();\n const showTooltip = computed({\n get() {\n return !tooltipConfig.value.tooltipProps === false;\n },\n set(val) {\n return val;\n },\n });\n const normalizeProps = ref({ ...initialProps });\n /** 开关显示tooltip */\n const toggleTooltip = (toState: boolean) => {\n if (!showTooltip.value) return;\n normalizeProps.value.visible = toState;\n };\n\n const renderTNodeJSX = useTNodeJSX();\n\n /** 合并最终tooltip属性,以外部同名属性覆盖初始化属性 */\n const validProps = computed(() => {\n const { vertical, tooltipProps, label, value, position, range } = tooltipConfig.value;\n const placement = vertical ? 'right' : 'top';\n\n let content = (() => {\n if (label === true) {\n return String(value);\n }\n if (typeof label === 'string') {\n return formatLabel(label, value);\n }\n return renderTNodeJSX('label', {\n params: range\n ? {\n value,\n position,\n }\n : { value },\n });\n })();\n\n if (tooltipProps instanceof Object) {\n if (!tooltipProps?.placement) {\n normalizeProps.value.placement = placement;\n }\n if (tooltipProps.content) {\n content = tooltipProps.content;\n }\n // @ts-ignore\n return { ...normalizeProps.value, ...tooltipProps, content };\n }\n return { ...normalizeProps.value, placement, content };\n });\n\n return {\n tooltipRef,\n tooltipProps: validProps as ComputedRef,\n toggleTooltip,\n showTooltip,\n };\n};\n","import { InjectionKey } from 'vue';\n\ntype SliderPropsInjectKey = InjectionKey<{\n max: number;\n min: number;\n step: number;\n dragging: boolean;\n toggleDragging: (val: boolean) => void;\n precision: number;\n disabled: boolean;\n resetSize: () => void;\n sliderSize: number;\n}>;\nexport const sliderPropsInjectKey: SliderPropsInjectKey = Symbol('sliderProps');\n","import {\n ComponentPublicInstance,\n PropType,\n computed,\n defineComponent,\n inject,\n nextTick,\n reactive,\n ref,\n watchEffect,\n} from 'vue';\nimport TTooltip from '../tooltip/index';\nimport { TdSliderProps } from './type';\n\nimport { isFunction } from 'lodash-es';\nimport { usePrefixClass } from '@tdesign/hooks';\nimport { useSliderTooltip } from './hooks/useSliderTooltip';\nimport { sliderPropsInjectKey } from './consts';\n\nexport default defineComponent({\n name: 'TSliderButton',\n props: {\n value: {\n type: [Number],\n default: 0,\n },\n vertical: {\n type: Boolean,\n default: false,\n },\n tooltipProps: {\n type: [Boolean, Object],\n default: true,\n },\n label: {\n type: [String, Boolean, Function] as PropType,\n },\n range: {\n type: Boolean,\n default: false,\n },\n position: {\n type: String,\n },\n },\n emits: ['input', 'mouseup'],\n setup(props, ctx) {\n const COMPONENT_NAME = usePrefixClass('slider__button');\n const tooltipConfig = computed(() => props);\n const { tooltipRef, tooltipProps, toggleTooltip, showTooltip } = useSliderTooltip(tooltipConfig);\n const parentProps = inject(sliderPropsInjectKey);\n const buttonRef = ref();\n const dragged = ref(false);\n\n /** --------------------- slide button 相关状态start ------------------- */\n const slideButtonProps = reactive({\n dragging: false,\n isClick: false,\n startX: 0,\n startY: 0,\n startPos: 0,\n newPos: null,\n });\n\n const rangeDiff = computed(() => {\n return Number(parentProps.max) - Number(parentProps.min);\n });\n\n const currentPos = computed(() => {\n return `${((props.value - parentProps.min) / rangeDiff.value) * 100}%`;\n });\n\n const step = computed(() => {\n return parentProps.step;\n });\n\n const wrapperStyle = computed(() => {\n return props.vertical ? { bottom: currentPos.value } : { left: currentPos.value };\n });\n\n watchEffect(() => {\n parentProps.toggleDragging(slideButtonProps.dragging);\n });\n /** --------------------- slide button 相关状态end ------------------- */\n\n /** --------------------- slide button 相关事件start ------------------- */\n /** 设置当前位置 */\n const setPosition = (pos: number) => {\n let newPos = pos;\n if (newPos === null || Number.isNaN(newPos)) {\n return;\n }\n\n if (newPos > 100) {\n newPos = 100;\n } else if (newPos < 0) {\n newPos = 0;\n }\n const perStepLen = (100 * step.value) / rangeDiff.value;\n const steps = Math.round(newPos / perStepLen);\n let value = steps * perStepLen * rangeDiff.value * 0.01;\n value += parentProps.min;\n value = Number(parseFloat(`${value}`).toFixed(parentProps.precision));\n ctx.emit('input', value);\n nextTick(() => {\n tooltipRef.value && tooltipRef.value.updatePopper?.();\n });\n };\n\n const handleMouseEnter = () => {\n (buttonRef.value as ComponentPublicInstance).focus();\n toggleTooltip(true);\n };\n const handleMouseLeave = () => {\n if (!slideButtonProps.dragging) {\n toggleTooltip(false);\n }\n };\n\n const onDragStart = (event: MouseEvent | TouchEvent) => {\n slideButtonProps.dragging = true;\n slideButtonProps.isClick = true;\n const { type } = event;\n let { clientY, clientX } = event as MouseEvent;\n if (type === 'touchstart') {\n const touch = (event as TouchEvent).touches;\n [clientY, clientX] = [touch[0].clientY, touch[0].clientX];\n }\n if (props.vertical) {\n slideButtonProps.startY = clientY;\n } else {\n slideButtonProps.startX = clientX;\n }\n slideButtonProps.startPos = parseFloat(currentPos.value);\n slideButtonProps.newPos = slideButtonProps.startPos;\n };\n\n const onDragging = (e: MouseEvent | TouchEvent) => {\n const event = e;\n if (!slideButtonProps.dragging) {\n return;\n }\n dragged.value = true;\n slideButtonProps.isClick = false;\n if (parentProps?.resetSize && isFunction(parentProps?.resetSize)) {\n parentProps.resetSize();\n }\n let diff = 0;\n const parentSliderSize = parentProps.sliderSize;\n const { type } = event;\n let { clientY, clientX } = event as MouseEvent;\n if (type === 'touchmove') {\n const touch = (event as TouchEvent).touches;\n [clientY, clientX] = [touch[0].clientY, touch[0].clientX];\n }\n if (props.vertical) {\n diff = slideButtonProps.startY - clientY;\n } else {\n diff = clientX - slideButtonProps.startX;\n }\n diff = (diff / parentSliderSize) * 100;\n slideButtonProps.newPos = slideButtonProps.startPos + diff;\n setPosition(slideButtonProps.newPos);\n };\n\n const onDragEnd = () => {\n if (slideButtonProps.dragging) {\n setTimeout(() => {\n slideButtonProps.dragging = false;\n toggleTooltip(false);\n if (!slideButtonProps.isClick) {\n setPosition(slideButtonProps.newPos);\n }\n dragged.value && ctx.emit('mouseup');\n dragged.value = false;\n }, 0);\n window.removeEventListener('mousemove', onDragging);\n window.removeEventListener('touchmove', onDragging);\n window.removeEventListener('mouseup', onDragEnd);\n window.removeEventListener('touchend', onDragEnd);\n window.removeEventListener('contextmenu', onDragEnd);\n }\n };\n\n function onButtonDown(event: MouseEvent | TouchEvent) {\n if (parentProps.disabled) {\n return;\n }\n event.preventDefault();\n onDragStart(event);\n window.addEventListener('mousemove', onDragging);\n window.addEventListener('mouseup', onDragEnd);\n window.addEventListener('touchmove', onDragging);\n window.addEventListener('touchend', onDragEnd);\n window.addEventListener('contextmenu', onDragEnd);\n }\n\n const onKeyDown = (state: 'sub' | 'add') => {\n if (parentProps.disabled) {\n return;\n }\n let stepLength = (step.value / rangeDiff.value) * 100;\n if (state === 'sub') {\n stepLength = -stepLength;\n }\n slideButtonProps.newPos = parseFloat(currentPos.value) + stepLength;\n setPosition(slideButtonProps.newPos);\n };\n\n const onNativeKeyDown = (e: KeyboardEvent) => {\n const { code } = e;\n e.preventDefault();\n if (code === 'ArrowDown' || code === 'ArrowLeft') {\n onKeyDown('sub');\n }\n if (code === 'ArrowUp' || code === 'ArrowRight') {\n onKeyDown('add');\n }\n };\n /** --------------------- slide button 相关事件end ------------------- */\n\n /** 暴露设置按钮坐标方法供父组件调用 */\n ctx.expose({\n setPosition,\n });\n\n return () => (\n \n {/* hide tooltip with `hideEmptyPopup`, empty content won't show */}\n \n
    \n \n
    \n );\n },\n});\n","import { defineComponent, PropType } from 'vue';\nimport { TdSliderProps } from './type';\nimport { usePrefixClass } from '@tdesign/hooks';\n\nexport default defineComponent({\n name: 'TSliderMark',\n props: {\n mark: {\n type: [Object, Array, String, Number] as PropType,\n },\n point: {\n type: Number,\n },\n onClickMarkPoint: {\n type: Function,\n default: () => {},\n },\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('slider__mark');\n const changeValue = (e: MouseEvent) => {\n e.stopPropagation();\n props?.onClickMarkPoint?.(props.point);\n };\n\n return () => (\n
    \n {props.mark}\n
    \n );\n },\n});\n","import { computed, Ref } from 'vue';\nimport { omit, isBoolean } from 'lodash-es';\nimport { TdSliderProps } from '../type';\nimport InputNumber, { InputNumberProps, ChangeContext } from '../../input-number';\n\ninterface useSliderInputProps {\n inputNumberProps: boolean | TdSliderProps['inputNumberProps'];\n max: number;\n min: number;\n step: number;\n prefixName: string;\n vertical: boolean;\n disabled: boolean;\n}\n\n/**\n * 聚合管理inputNumber渲染逻辑\n */\nexport const useSliderInput = (config: Ref) => {\n const name = config.value.prefixName;\n\n /** 根据传入属性缓存计算inputNumber props */\n const sliderInputState = computed(() => {\n let initialState: InputNumberProps = {\n format: undefined,\n placeholder: '',\n theme: 'column',\n decimalPlaces: config.value.step.toString().split('.')[1]?.length || 0,\n };\n const inputProps = config.value;\n if (!isBoolean(inputProps.inputNumberProps)) {\n const inputTheme = inputProps.inputNumberProps?.theme;\n initialState = { ...initialState, ...omit(inputProps.inputNumberProps, 'onChange') };\n if (['column', 'row', 'normal'].includes(inputTheme)) {\n initialState.theme = inputTheme;\n }\n }\n return initialState;\n });\n\n const sliderNumberClass = computed(() => {\n return [\n `${name}__input`,\n {\n 'is-vertical': config.value.vertical,\n },\n ];\n });\n\n const renderInputNumber = (val: number, changeFn: (val: number) => void) => {\n // if exist min or max prop, onChange callback function will pass undefined value when decrease\n const normalizeChangeFn = (num: number | undefined, context: ChangeContext) => {\n if (num !== undefined && !isNaN(num)) {\n changeFn(num);\n }\n (config.value?.inputNumberProps as InputNumberProps)?.onChange?.(num, context);\n };\n return (\n \n );\n };\n\n return renderInputNumber;\n};\n","import { isNull } from 'lodash-es';\nimport { calculateNodeSize } from './helper';\n\ntype CalculateStyleType = {\n height?: string,\n minHeight?: string\n};\n\ntype LimitType = number | null;\n\nconst TEXTAREA_STYLE = `\n min-height:0 !important;\n max-height:none !important;\n height:0 !important;\n visibility:hidden !important;\n overflow:hidden !important;\n position:absolute !important;\n z-index:-1000 !important;\n top:0 !important;\n right:0 !important\n`;\n\nlet hiddenTextarea: HTMLTextAreaElement;\n\nfunction calcTextareaHeight(\n targetElement: HTMLTextAreaElement,\n minRows: LimitType = 1,\n maxRows: LimitType = null,\n): CalculateStyleType {\n if (!hiddenTextarea) {\n hiddenTextarea = document.createElement('textarea');\n document.body.appendChild(hiddenTextarea);\n }\n\n const {\n paddingSize,\n borderSize,\n boxSizing,\n sizingStyle,\n } = calculateNodeSize(targetElement);\n\n hiddenTextarea.setAttribute('style', `${sizingStyle};${TEXTAREA_STYLE}`);\n hiddenTextarea.value = targetElement.value || targetElement.placeholder || '';\n\n let height = hiddenTextarea.scrollHeight;\n const result: CalculateStyleType = {};\n const isBorderbox = boxSizing === 'border-box';\n const isContentbox = boxSizing === 'content-box';\n\n if (isBorderbox) {\n height += borderSize;\n } else if (isContentbox) {\n height -= paddingSize;\n }\n\n hiddenTextarea.value = '';\n const singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;\n hiddenTextarea?.parentNode?.removeChild(hiddenTextarea);\n // @ts-ignore\n hiddenTextarea = null;\n\n const calcHeight = (rows: number) => {\n let rowsHeight = singleRowHeight * rows;\n if (isBorderbox) {\n rowsHeight = rowsHeight + paddingSize + borderSize;\n }\n return rowsHeight;\n };\n\n if (!isNull(minRows)) {\n const minHeight = calcHeight(minRows);\n height = Math.max(minHeight, height);\n result.minHeight = `${minHeight}px`;\n }\n if (!isNull(maxRows)) {\n height = Math.min(calcHeight(maxRows), height);\n }\n result.height = `${height}px`;\n return result;\n}\n\nexport default calcTextareaHeight;\n","import {\n defineComponent,\n VNode,\n ref,\n reactive,\n provide,\n computed,\n onBeforeUnmount,\n onMounted,\n watch,\n toRefs,\n} from 'vue';\nimport { isArray, isNumber } from 'lodash-es';\n\nimport props from './props';\nimport TSliderButton from './slider-button';\nimport { SliderValue } from './type';\n\n// hooks\nimport { useVModel, useDisabled, usePrefixClass, useCommonClassName } from '@tdesign/hooks';\nimport { useSliderMark } from './hooks/useSliderMark';\nimport { useSliderInput } from './hooks/useSliderInput';\nimport { formatSliderValue, getStopStyle } from './utils';\nimport { sliderPropsInjectKey } from './consts';\n\ninterface SliderButtonType {\n setPosition: (param: number) => {};\n}\nexport default defineComponent({\n name: 'TSlider',\n model: {\n prop: 'value',\n event: 'change',\n },\n props,\n setup(props) {\n const disabled = useDisabled();\n const COMPONENT_NAME = usePrefixClass('slider');\n const { STATUS } = useCommonClassName();\n const { value, modelValue } = toRefs(props) as any;\n const [sliderValue, setSliderValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n const sliderContainerRef = ref();\n const sliderRef = ref();\n const firstButtonRef = ref();\n const secondButtonRef = ref();\n\n const firstValue = ref(formatSliderValue(sliderValue.value, 'first'));\n const secondValue = ref(formatSliderValue(sliderValue.value, 'second'));\n const dragging = ref(false);\n const sliderSize = ref(1);\n\n const vertical = computed(() => {\n return props.layout === 'vertical';\n });\n\n /** ----------------- 样式计算 start ------------- */\n const containerClass = computed(() => [`${COMPONENT_NAME.value}__container`, { 'is-vertical': vertical.value }]);\n const sliderClass = computed(() => {\n return [\n `${COMPONENT_NAME.value}`,\n {\n 'is-vertical': vertical.value,\n [`${COMPONENT_NAME.value}--with-input`]: props.inputNumberProps,\n [`${COMPONENT_NAME.value}--vertical`]: vertical.value,\n [STATUS.value.disabled]: disabled.value,\n },\n ];\n });\n const sliderRailClass = computed(() => [\n `${COMPONENT_NAME.value}__rail`,\n { 'show-input': props.inputNumberProps, disabled: disabled.value },\n ]);\n const runwayStyle = computed(() => {\n return vertical.value ? { height: '100%' } : {};\n });\n const barStyle = computed(() => {\n const barStart = props.range ? `${(100 * (minValue.value - props.min)) / rangeDiff.value}%` : '0%';\n const currentDiff = props.range ? maxValue.value - minValue.value : firstValue.value - props.min;\n const barSize = `${(100 * currentDiff) / rangeDiff.value}%`;\n return vertical.value\n ? {\n height: barSize,\n bottom: barStart,\n }\n : {\n width: barSize,\n left: barStart,\n };\n });\n /** ----------------- 样式计算 end ------------- */\n\n // 差值范围\n const rangeDiff = computed(() => {\n return props.max - props.min;\n });\n const minValue = computed(() => {\n return Math.min(firstValue.value, secondValue.value);\n });\n const maxValue = computed(() => {\n return Math.max(firstValue.value, secondValue.value);\n });\n const steps = computed(() => {\n if (!props.showStep || props.min > props.max) return [];\n if (props.step === 0) {\n console.warn('[Element Warn][Slider]step should not be 0.');\n return [];\n }\n const stepCount = rangeDiff.value / props.step;\n const stepWidth = (100 * props.step) / rangeDiff.value;\n const result = [];\n for (let i = 1; i < stepCount; i++) {\n result.push(i * stepWidth);\n }\n if (props.range) {\n const r = result.filter(\n (step) =>\n step < (100 * (minValue.value - props.min)) / rangeDiff.value ||\n props.step > (100 * (maxValue.value - props.max)) / rangeDiff.value,\n );\n return r;\n }\n return result.filter((step) => step > (100 * (firstValue.value - props.min)) / rangeDiff.value);\n });\n const precision = computed(() => {\n const precisions = [props.min, props.max, props.step].map((item) => {\n const decimalArr = `${item}`.split('.');\n return decimalArr[1] ? decimalArr[1].length : 0;\n });\n return Math.max.apply(null, precisions);\n });\n // 防止值越级\n const setValues = (value: SliderValue): SliderValue => {\n const [min, max] = [props.min, props.max];\n if (min > max) {\n console.warn('[Slider] max should be greater than min.');\n return;\n }\n // 双向滑块\n if (props.range && isArray(value)) {\n let [maxLimit, minLimit] = [Math.min(...value), Math.max(...value)];\n if (maxLimit > max) {\n maxLimit = firstValue.value;\n }\n if (maxLimit < min) {\n maxLimit = min;\n }\n if (minLimit < min) {\n minLimit = secondValue.value;\n }\n if (minLimit > max) {\n minLimit = max;\n }\n [firstValue.value, secondValue.value] = [maxLimit, minLimit];\n return [maxLimit, minLimit];\n }\n let preValue = value as number;\n if (preValue < min) {\n preValue = min;\n }\n if (preValue > max) {\n preValue = max;\n }\n return preValue;\n };\n // 只要触发修改就要有这个方法抛出change事件\n const emitChange = (value: SliderValue) => {\n let changeValue = value;\n if (changeValue === undefined) {\n if (props.range) {\n changeValue = [firstValue.value, secondValue.value];\n } else {\n changeValue = firstValue.value;\n }\n }\n const fixValue: SliderValue = setValues(changeValue);\n setSliderValue(fixValue);\n };\n\n const resetSize = () => {\n if (sliderRef.value) {\n sliderSize.value = sliderRef.value[`client${vertical.value ? 'Height' : 'Width'}`];\n }\n };\n\n // 是否以完成挂载(部分组合组件如inputNumber依赖于首次init后的状态值进行渲染)\n const isAlreadyMount = ref(false);\n // 初始化传入的value\n const init = () => {\n let valuetext: string | number;\n if (props.range) {\n if (isArray(sliderValue.value)) {\n firstValue.value = Math.max(props.min || 0, sliderValue.value[0]);\n secondValue.value = Math.min(props.max || 100, sliderValue.value[1]);\n } else {\n firstValue.value = props.min || 0;\n secondValue.value = props.max || 100;\n }\n valuetext = `${firstValue.value}-${secondValue.value}`;\n } else {\n if (!isNumber(sliderValue.value)) {\n firstValue.value = props.min;\n } else {\n firstValue.value = Math.min(props.max, Math.max(props.min, sliderValue.value as number));\n }\n valuetext = String(firstValue.value);\n }\n if (sliderContainerRef.value) {\n sliderContainerRef.value.setAttribute('aria-valuetext', valuetext);\n }\n resetSize();\n window.addEventListener('resize', resetSize);\n };\n // 相应button的位置\n const setPosition = (percent: number): void => {\n let targetValue = (percent * rangeDiff.value) / 100;\n targetValue = props.min + targetValue;\n if (!props.range && firstButtonRef.value) {\n firstButtonRef.value.setPosition(percent);\n return;\n }\n let button;\n if (Math.abs(minValue.value - targetValue) < Math.abs(maxValue.value - targetValue)) {\n button = firstValue.value < secondValue.value ? 'button1' : 'button2';\n } else {\n button = firstValue.value > secondValue.value ? 'button1' : 'button2';\n }\n if (button === 'button1' && firstButtonRef.value) {\n firstButtonRef.value.setPosition(percent);\n }\n if (button === 'button2' && secondButtonRef.value) {\n secondButtonRef.value.setPosition(percent);\n }\n };\n\n const getFixValue = () => {\n const changeValue = props.range ? [firstValue.value, secondValue.value] : firstValue.value;\n return setValues(changeValue);\n };\n\n // 全局点击\n const onSliderClick = (event: MouseEvent): void => {\n if (disabled.value || dragging.value) {\n return;\n }\n if (!sliderRef.value) return;\n resetSize();\n let value = 0;\n if (vertical.value) {\n const sliderOffsetBottom = sliderRef.value.getBoundingClientRect().bottom;\n value = ((sliderOffsetBottom - event.clientY) / sliderSize.value) * 100;\n setPosition(value);\n } else {\n const sliderOffsetLeft = sliderRef.value.getBoundingClientRect().left;\n value = ((event.clientX - sliderOffsetLeft) / sliderSize.value) * 100;\n setPosition(value);\n }\n const fixValue = getFixValue();\n props.onChangeEnd?.(fixValue);\n };\n\n // mark 点击触发修改事件\n const changeValue = (point: number) => {\n if (disabled.value || dragging.value) {\n return;\n }\n resetSize();\n const value = Number((point / rangeDiff.value) * 100);\n setPosition(value);\n emitChange(point);\n const fixValue = getFixValue();\n props.onChangeEnd?.(fixValue);\n };\n\n /** 副作用监听 */\n watch(\n () => sliderValue.value,\n (newVal) => {\n if (dragging.value === true) return;\n if (isArray(newVal) && props.range) {\n [firstValue.value, secondValue.value] = newVal;\n } else {\n firstValue.value = newVal as number;\n }\n },\n );\n\n watch([firstValue, secondValue, dragging], (newStates, prevStates) => {\n if (newStates[0] !== prevStates[0]) {\n if (props.range) {\n emitChange([minValue.value, maxValue.value]);\n } else {\n emitChange(firstValue.value);\n }\n }\n if (newStates[1] !== prevStates[1]) {\n if (props.range) {\n emitChange([minValue.value, maxValue.value]);\n }\n }\n if (newStates[2] !== prevStates[2] && newStates[2] === false) {\n init();\n }\n });\n\n /** 挂载&卸载 */\n onMounted(() => {\n init();\n isAlreadyMount.value = true;\n });\n onBeforeUnmount(() => {\n window.removeEventListener('resize', resetSize);\n });\n\n /** -------------------------- 渲染相关逻辑 start -------------------------- */\n const markConfig = computed(() => ({\n max: props.max,\n min: props.min,\n marks: props.marks,\n vertical: vertical.value,\n prefixName: COMPONENT_NAME.value,\n }));\n const renderMask = useSliderMark(markConfig);\n\n const inputConfig = computed(() => ({\n max: props.max,\n min: props.min,\n inputNumberProps: props.inputNumberProps,\n step: props.step,\n prefixName: COMPONENT_NAME.value,\n vertical: vertical.value,\n disabled: disabled.value,\n }));\n const renderInputNumber = useSliderInput(inputConfig);\n\n const renderInputButton = (): VNode => {\n const firstInputVal = setValues(firstValue.value) as number;\n const firstInputOnChange = (v: number) => {\n firstValue.value = setValues(v) as number;\n };\n const secondInputVal = setValues(secondValue.value) as number;\n const secondInputOnChange = (v: number) => {\n secondValue.value = setValues(v) as number;\n };\n return (\n \n {renderInputNumber(firstInputVal, firstInputOnChange)}\n {props.range &&
    }\n {props.range && renderInputNumber(secondInputVal, secondInputOnChange)}\n
    \n );\n };\n /** -------------------------- 渲染相关逻辑 end -------------------------- */\n\n /** 父子共用状态&方法 */\n const toggleDragging = (toState: boolean) => {\n dragging.value = toState;\n };\n\n const { min, max, step } = toRefs(props);\n provide(\n sliderPropsInjectKey,\n reactive({\n min,\n max,\n step,\n dragging,\n toggleDragging,\n precision,\n disabled,\n resetSize,\n sliderSize,\n }),\n );\n\n return () => (\n
    \n \n
    \n
    \n {\n firstValue.value = v;\n }}\n onMouseup={() => {\n const fixValue = getFixValue();\n props.onChangeEnd?.(fixValue);\n }}\n />\n {props.range && (\n {\n secondValue.value = v;\n }}\n onMouseup={() => {\n const fixValue = getFixValue();\n props.onChangeEnd?.(fixValue);\n }}\n />\n )}\n {props.showStep && (\n
    \n {steps.value.map((item: any, key) => {\n if (item.position === 0 || item.position === 100) return null;\n return (\n
    \n );\n })}\n
    \n )}\n {renderMask(changeValue)}\n
    \n
    \n {isAlreadyMount.value && props.inputNumberProps && renderInputButton()}\n
    \n );\n },\n});\n","import { computed, VNode, Ref } from 'vue';\nimport { isArray, cloneDeep } from 'lodash-es';\nimport { SliderMarks } from '../type';\nimport { TNode } from '../../common';\nimport log from '@tdesign/common-js/log/log';\nimport { getStopStyle } from '../utils';\nimport TSliderMark from '../slider-mark';\n\ninterface MarkItem {\n point: number;\n position: number;\n mark: string | number | TNode<{ value: number }>;\n}\n\ninterface useSliderMarkProps {\n max: number;\n min: number;\n marks: number[] | SliderMarks;\n vertical: boolean;\n prefixName: string;\n}\n\n/**\n * 聚合管理刻度值渲染逻辑\n */\nexport const useSliderMark = (config: Ref) => {\n const name = config.value.prefixName;\n const markList = computed(() => {\n const markProps = config.value;\n if (!markProps.marks) {\n return [];\n }\n const legalMarks: Array = [];\n if (isArray(markProps.marks)) {\n const marksList = cloneDeep(markProps.marks).sort((a, b) => a - b);\n const maxLimit = Math.max(...marksList, markProps.max);\n const minLimit = Math.min(...marksList, markProps.min);\n if (minLimit < markProps.min) {\n log.errorOnce('TSlider', 'marks min value should >= props min');\n }\n if (maxLimit > markProps.max) {\n log.errorOnce('TSlider', 'marks max value should <= props max');\n }\n marksList.forEach((item) => {\n legalMarks.push({\n point: item,\n position: ((item - minLimit) / (maxLimit - minLimit)) * 100,\n mark: item,\n });\n });\n } else {\n Object.keys(markProps.marks)\n .map(parseFloat)\n .sort((a, b) => a - b)\n .filter((point) => point <= markProps.max && point >= markProps.min)\n .forEach((point) => {\n const item: MarkItem = {\n point,\n position: ((point - markProps.min) * 100) / (markProps.max - markProps.min),\n mark: markProps.marks[point],\n };\n legalMarks.push(item);\n });\n }\n return legalMarks;\n });\n\n const renderMask = (onChangeFn?: (point: number) => void): VNode => {\n if (!markList.value.length) return null;\n\n return (\n
    \n
    \n {markList.value.map((item, index) => {\n if (item.position === 0 || item.position === 100) return null;\n return (\n \n );\n })}\n
    \n
    \n {markList.value.map((item, key) => (\n \n ))}\n
    \n
    \n );\n };\n\n return renderMask;\n};\n","import _Slider from './slider';\nimport _SliderButton from './slider-button';\nimport withInstall from '../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 { useVModel, useDisabled, usePrefixClass, useCommonClassName } from '@tdesign/hooks';\nimport TLoading from '../loading';\nimport props from './props';\nimport { TNodeReturnValue } from '../common';\n\n// hooks\n\nimport { isArray, isString, isFunction } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TSwitch',\n props,\n setup(props, { slots }) {\n const disabled = useDisabled();\n const COMPONENT_NAME = usePrefixClass('switch');\n const { STATUS, SIZE } = useCommonClassName();\n // values\n const { value, modelValue } = toRefs(props);\n const [innerValue, setSwitchVal] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n const activeValue = computed(() => {\n if (props.customValue && props.customValue.length > 0) {\n return props.customValue[0];\n }\n return true;\n });\n const inactiveValue = computed(() => {\n if (props.customValue && props.customValue.length > 1) {\n return props.customValue[1];\n }\n return false;\n });\n\n // methods\n function handleToggle(e: MouseEvent) {\n const checked = innerValue.value === activeValue.value ? inactiveValue.value : activeValue.value;\n // emits\n setSwitchVal(checked, { e });\n }\n\n function toggle(e: MouseEvent) {\n if (disabled.value || props.loading) {\n return;\n }\n if (!props.beforeChange) {\n handleToggle(e);\n return;\n }\n Promise.resolve(props.beforeChange())\n .then((v) => {\n if (v) {\n handleToggle(e);\n }\n })\n .catch((e) => {\n throw new Error(`Switch: some error occurred: ${e}`);\n });\n }\n\n // classes\n const classes = computed(() => [\n `${COMPONENT_NAME.value}`,\n SIZE.value[props.size],\n {\n [STATUS.value.disabled]: disabled.value,\n [STATUS.value.loading]: props.loading,\n [STATUS.value.checked]: innerValue.value === activeValue.value || props.modelValue === activeValue.value,\n },\n ]);\n const nodeClasses = computed(() => {\n return [\n `${COMPONENT_NAME.value}__handle`,\n {\n [STATUS.value.disabled]: disabled.value,\n [STATUS.value.loading]: props.loading,\n },\n ];\n });\n const contentClasses = computed(() => {\n return [\n `${COMPONENT_NAME.value}__content`,\n SIZE.value[props.size],\n {\n [STATUS.value.disabled]: disabled.value,\n },\n ];\n });\n\n watch(\n innerValue,\n (val) => {\n if (props.customValue && props.customValue.length && !props.customValue.includes(val)) {\n throw new Error(`value is ${val} not in ${JSON.stringify(props.customValue)}`);\n }\n },\n {\n immediate: true,\n },\n );\n\n const content = computed(() => {\n if (isFunction(props.label)) {\n return props.label(h, { value: innerValue.value });\n }\n if (isString(props.label)) {\n return props.label;\n }\n if (isArray(props.label) && props.label.length) {\n const label = innerValue.value === activeValue.value ? props.label[0] : props.label[1];\n if (!label) return;\n if (isString(label)) {\n return label;\n }\n if (isFunction(label)) {\n return label(h);\n }\n }\n if (slots.label) {\n return slots.label({ value: innerValue.value });\n }\n return null;\n });\n return () => {\n let switchContent: VNodeChild;\n let loadingContent: TNodeReturnValue;\n if (props.loading) {\n loadingContent = ;\n } else if (content.value) {\n switchContent = content.value;\n }\n\n return (\n
    \n {loadingContent}\n
    {switchContent}
    \n
    \n );\n };\n },\n});\n","import _Switch from './switch';\nimport withInstall from '../utils/withInstall';\nimport { TdSwitchProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type SwitchProps = TdSwitchProps;\n\nexport const Switch = withInstall(_Switch);\nexport default Switch;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTextareaProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 超出maxlength或maxcharacter之后是否还允许输入 */\n allowInputOverMax: Boolean,\n /** 自动聚焦,拉起键盘 */\n autofocus: Boolean,\n /** 高度自动撑开。 autosize = true 表示组件高度自动撑开,同时,依旧允许手动拖高度。如果设置了 autosize.maxRows 或者 autosize.minRows 则不允许手动调整高度 */\n autosize: {\n type: [Boolean, Object] as PropType,\n default: false as TdTextareaProps['autosize'],\n },\n /** 是否禁用文本框 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 用户最多可以输入的字符个数,一个中文汉字表示两个字符长度 */\n maxcharacter: {\n type: Number,\n },\n /** 用户最多可以输入的字符个数 */\n maxlength: {\n type: [String, Number] as PropType,\n },\n /** 名称,HTML 元素原生属性 */\n name: {\n type: String,\n default: '',\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 文本框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdTextareaProps['status'],\n validator(val: TdTextareaProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 文本框值 */\n value: {\n type: [String, Number] as PropType,\n default: undefined as TdTextareaProps['value'],\n },\n modelValue: {\n type: [String, Number] as PropType,\n default: undefined as TdTextareaProps['value'],\n },\n /** 文本框值,非受控属性 */\n defaultValue: {\n type: [String, Number] as PropType,\n },\n /** 失去焦点时触发 */\n onBlur: Function as PropType,\n /** 输入内容变化时触发 */\n onChange: Function as PropType,\n /** 获得焦点时触发 */\n onFocus: Function as PropType,\n /** 键盘按下时触发 */\n onKeydown: Function as PropType,\n /** 按下字符键时触发(keydown -> keypress -> keyup) */\n onKeypress: Function as PropType,\n /** 释放键盘时触发 */\n onKeyup: Function as PropType,\n /** 字数超出限制时触发 */\n onValidate: Function as PropType,\n};\n","import {\n defineComponent,\n computed,\n watch,\n ref,\n nextTick,\n onMounted,\n toRefs,\n inject,\n StyleValue,\n CSSProperties,\n} from 'vue';\nimport { isObject, merge, omit } from 'lodash-es';\n\nimport { FormItemInjectionKey } from '../form/consts';\nimport setStyle from '@tdesign/common-js/utils/setStyle';\nimport { getCharacterLength, getValidAttrs } from '@tdesign/common-js/utils/helper';\n\n// hooks\nimport { useVModel, useDisabled, useReadonly, useTNodeJSX, usePrefixClass, useCommonClassName } from '@tdesign/hooks';\n\nimport { useLengthLimit } from '../input/hooks/useLengthLimit';\n\nimport props from './props';\nimport type { TextareaValue, TdTextareaProps } from './type';\n\nimport calcTextareaHeight from '@tdesign/common-js/utils/calcTextareaHeight';\n\nexport default defineComponent({\n name: 'TTextarea',\n inheritAttrs: false,\n props,\n setup(props: TdTextareaProps, { attrs, expose }) {\n const prefix = usePrefixClass();\n const name = usePrefixClass('textarea');\n const TEXTAREA_TIPS_CLASS = computed(() => `${name.value}__tips`);\n const TEXTAREA_LIMIT = computed(() => `${name.value}__limit`);\n\n const { value, modelValue } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const disabled = useDisabled();\n const isReadonly = useReadonly();\n const textareaStyle = ref({});\n\n const refTextareaElem = ref();\n const focused = ref(false);\n const isComposing = ref(false);\n\n const focus = () => refTextareaElem.value?.focus();\n const blur = () => refTextareaElem.value?.blur();\n\n // methods\n const adjustTextareaHeight = () => {\n if (props.autosize === true) {\n nextTick(() => {\n textareaStyle.value = calcTextareaHeight(refTextareaElem.value);\n });\n } else if (props.autosize && typeof props.autosize === 'object') {\n const { minRows, maxRows } = props.autosize;\n nextTick(() => {\n textareaStyle.value = calcTextareaHeight(refTextareaElem.value, minRows, maxRows);\n });\n } else if (attrs.rows) {\n textareaStyle.value = { height: 'auto', minHeight: 'auto' };\n } else if (attrs.style && refTextareaElem.value?.style?.height) {\n textareaStyle.value = { height: refTextareaElem.value.style.height };\n }\n };\n\n const setInputValue = (v: TextareaValue = '') => {\n const textareaElem = refTextareaElem.value;\n const sV = String(v);\n if (!textareaElem) {\n return;\n }\n\n if (textareaElem.value !== sV) {\n textareaElem.value = sV;\n innerValue.value = sV;\n }\n };\n const inputValueChangeHandle = (e: InputEvent) => {\n const { target } = e;\n let val = (target as HTMLInputElement).value;\n if (props.maxcharacter && props.maxcharacter >= 0) {\n const stringInfo = getCharacterLength(val, props.maxcharacter);\n val = typeof stringInfo === 'object' && stringInfo.characters;\n }\n !isComposing.value && setInnerValue(val, { e });\n nextTick(() => setInputValue(val));\n adjustTextareaHeight();\n };\n\n const handleInput = (e: InputEvent) => {\n inputValueChangeHandle(e);\n };\n\n const onCompositionstart = () => {\n isComposing.value = true;\n };\n\n const onCompositionend = (e: InputEvent | CompositionEvent) => {\n isComposing.value = false;\n inputValueChangeHandle(e as InputEvent);\n };\n\n const eventDeal = (name: T, e: KeyboardEvent) => {\n if (disabled.value) return;\n const eventName = `on${name[0].toUpperCase()}${name.slice(1)}` as `on${Capitalize}`;\n props[eventName]?.(innerValue.value, { e });\n };\n\n const emitKeyDown = (e: KeyboardEvent) => {\n eventDeal('keydown', e);\n };\n const emitKeyUp = (e: KeyboardEvent) => {\n eventDeal('keyup', e);\n };\n const emitKeypress = (e: KeyboardEvent) => {\n eventDeal('keypress', e);\n };\n\n const emitFocus = (e: FocusEvent) => {\n adjustTextareaHeight();\n if (disabled.value) return;\n focused.value = true;\n props.onFocus?.(innerValue.value, { e });\n };\n\n const formItem = inject(FormItemInjectionKey, undefined);\n const emitBlur = (e: FocusEvent) => {\n if (!e.target) return;\n adjustTextareaHeight();\n focused.value = false;\n props.onBlur?.(innerValue.value, { e });\n formItem?.handleBlur();\n };\n\n // computed\n const textareaClasses = computed(() => {\n return [\n name.value,\n {\n [`${prefix.value}-is-disabled`]: disabled.value,\n [`${prefix.value}-is-readonly`]: isReadonly.value,\n },\n ];\n });\n const inputAttrs = computed>(() => {\n return getValidAttrs({\n autofocus: props.autofocus,\n disabled: disabled.value,\n readonly: isReadonly.value,\n placeholder: props.placeholder,\n maxlength: (!props.allowInputOverMax && props.maxlength) || undefined,\n name: props.name || undefined,\n });\n });\n const characterNumber = computed(() => {\n const characterInfo = getCharacterLength(String(innerValue.value || ''));\n if (typeof characterInfo === 'object') {\n // @ts-ignore\n // TODO: 这里的写法本身就有问题,因为 getCharacterLength(String(innerValue.value || '')) 一定会返回 number,所以这个分支肯定是进不了的,除非 getCharacterLength 写得有问题\n return characterInfo.length;\n }\n return characterInfo;\n });\n\n const limitParams = computed(() => ({\n value: [undefined, null].includes(innerValue.value) ? undefined : String(innerValue.value),\n status: props.status,\n maxlength: Number(props.maxlength),\n maxcharacter: props.maxcharacter,\n allowInputOverMax: props.allowInputOverMax,\n onValidate: props.onValidate,\n }));\n const { tStatus } = useLengthLimit(limitParams);\n\n // watch\n watch(\n () => innerValue.value,\n () => adjustTextareaHeight(),\n );\n\n watch(refTextareaElem, (el) => {\n if (!el) return;\n adjustTextareaHeight();\n if (props.autofocus) {\n el.focus();\n }\n });\n\n watch(textareaStyle, (val) => {\n const { style } = attrs as { style: StyleValue };\n if (isObject(style)) {\n setStyle(refTextareaElem.value, merge(style, val) as Record);\n } else {\n setStyle(refTextareaElem.value, val);\n }\n });\n\n watch(innerValue, () => {\n nextTick(() => adjustTextareaHeight());\n });\n\n watch(() => props.autosize, adjustTextareaHeight, { deep: true });\n\n expose({\n focus,\n blur,\n });\n\n onMounted(() => {\n adjustTextareaHeight();\n });\n\n const renderTNodeJSX = useTNodeJSX();\n return () => {\n const inputEvents = getValidAttrs({\n onFocus: emitFocus,\n onBlur: emitBlur,\n onKeydown: emitKeyDown,\n onKeyup: emitKeyUp,\n onKeypress: emitKeypress,\n });\n const { STATUS } = useCommonClassName();\n const classes = computed(() => [\n `${name.value}__inner`,\n {\n [`${prefix.value}-is-${tStatus.value}`]: tStatus.value,\n [STATUS.value.disabled]: disabled.value,\n [STATUS.value.focused]: focused.value,\n [`${prefix.value}-resize-none`]: typeof props.autosize === 'object',\n },\n 'narrow-scrollbar',\n ]);\n\n const tips = renderTNodeJSX('tips');\n\n const textTips = tips && (\n
    {tips}
    \n );\n\n const limitText =\n (props.maxcharacter && (\n {`${characterNumber.value}/${props.maxcharacter}`}\n )) ||\n (!props.maxcharacter && props.maxlength && (\n {`${innerValue.value ? String(innerValue.value)?.length : 0}/${\n props.maxlength\n }`}\n ));\n\n return (\n
    \n \n {textTips || limitText ? (\n \n {textTips}\n {limitText}\n
    \n ) : null}\n
    \n );\n };\n },\n});\n","import _Textarea from './textarea';\nimport withInstall from '../utils/withInstall';\nimport { TdTextareaProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type TextareaProps = TdTextareaProps;\n\nexport const Textarea = withInstall(_Textarea);\nexport default Textarea;\n","import { ComponentPublicInstance } from 'vue';\nimport { isArray, cloneDeep, isUndefined } 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 { useGlobalIcon, usePrefixClass } from '@tdesign/hooks';\n\nexport default defineComponent({\n name: 'TTransferSearch',\n props: {\n value: {\n type: String,\n default: '',\n },\n search: {\n type: [Boolean, Object] as PropType,\n default: false,\n },\n placeholder: {\n type: String,\n default: '',\n },\n onChange: Function,\n },\n setup(props) {\n const classPrefix = usePrefixClass();\n const { SearchIcon } = useGlobalIcon({ SearchIcon: TdSearchIcon });\n const handleChange = (value: string, changeCtx: any) => {\n const { e, trigger } = changeCtx;\n props.onChange?.({\n value,\n e,\n trigger,\n });\n };\n const inputProps = typeof props.search === 'object' ? props.search : { clearable: true };\n\n return () => (\n
    \n \n \n \n
    \n );\n },\n});\n","import { defineComponent, VNode, PropType, ref, computed, watch, toRefs } from 'vue';\nimport {\n EmptyType,\n SearchEvent,\n SearchOption,\n TransferValue,\n TdTransferProps,\n TransferListType,\n TransferItemOption,\n} from '../types';\nimport { PageInfo, TdPaginationProps, Pagination } from '../../pagination';\nimport { Checkbox as TCheckbox, CheckboxGroup as TCheckboxGroup, CheckboxProps } from '../../checkbox';\nimport { getLefCount, getDataValues, TARGET } from '../utils';\nimport Search from './transfer-search';\nimport { useConfig, usePrefixClass, useTNodeDefault } from '@tdesign/hooks';\n\nimport { filter, isString, cloneDeep } from 'lodash-es';\n\nimport useDragSort from '../hooks/useDragSort';\n\nconst props = {\n checkboxProps: {\n type: Object as PropType,\n default: () => ({}),\n },\n dataSource: {\n type: Array as PropType>,\n default(): Array {\n return [];\n },\n },\n listType: {\n type: String as PropType,\n default: 'target',\n },\n title: {\n type: [String, Function],\n },\n checkedValue: {\n type: Array as PropType>,\n default(): Array {\n return [];\n },\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n search: {\n type: [Boolean, Object] as PropType,\n default: false,\n },\n transferItem: Function as PropType,\n empty: {\n type: [Function, String] as PropType,\n },\n pagination: [Boolean, Object],\n footer: [Function, String],\n checkAll: Boolean,\n isTreeMode: {\n type: Boolean as PropType,\n default: false,\n },\n onCheckedChange: Function as PropType<(event: Array) => void>,\n onPageChange: Function,\n onScroll: Function,\n onSearch: Function,\n onDataChange: Function as PropType<(data: Array, movedValue: Array) => void>,\n draggable: Boolean,\n currentValue: {\n type: Array as PropType>,\n },\n};\n\nexport default defineComponent({\n name: 'TTransferList',\n props,\n setup(props) {\n const classPrefix = usePrefixClass();\n const { currentValue } = toRefs(props);\n const { t, globalConfig } = useConfig('transfer');\n // 搜索框输入内容\n const filterValue = ref('');\n // 用于兼容处理 Pagination 的非受控属性(非受控属性仅有 change 事件变化,无 props 变化,因此只需监听事件)\n const defaultCurrent = ref(1);\n // 用于兼容处理 Pagination 的非受控属性\n const defaultPageSize = ref(0);\n\n const currentPage = computed(() => {\n const pagination = props.pagination as any;\n return pagination?.current || defaultCurrent.value || pagination?.defaultCurrent;\n });\n const pageSize = computed(() => {\n const pagination = props.pagination as any;\n return pagination?.pageSize || defaultPageSize.value || pagination?.defaultPageSize;\n });\n\n const filteredData = computed(() => {\n const isTreeData = props.dataSource.some((item) => item.children && item.children.length);\n if (!isTreeData) {\n return props.dataSource.filter((item: TransferItemOption) => {\n const label = item && item.label.toString();\n return label.toLowerCase().indexOf(filterValue.value.toLowerCase()) > -1;\n });\n } else {\n return filteredTreeData(props.dataSource, filterValue.value);\n }\n });\n\n const pageTotal = computed(() => {\n return (filteredData.value && filteredData.value.length) || 0;\n });\n\n const curPageData = computed(() => {\n let pageData = filteredData.value;\n if (!props.pagination) return pageData;\n if (pageSize.value === 0) return pageData;\n const startIndex = (currentPage.value - 1) * pageSize.value;\n const endIndex = currentPage.value * pageSize.value;\n pageData = pageData.slice(startIndex, endIndex);\n return pageData;\n });\n const paginationProps = computed(() => {\n const defaultPaginationProps: TdPaginationProps = {\n totalContent: false,\n pageSizeOptions: [],\n };\n return typeof props.pagination === 'object'\n ? {\n ...defaultPaginationProps,\n ...props.pagination,\n size: 'small',\n theme: 'simple',\n current: currentPage.value,\n total: pageTotal.value,\n pageSize: pageSize.value,\n }\n : {};\n });\n const { onDragStart, onDragEnd, onDrop, onDragOver, onDragLeave } = useDragSort(\n currentValue,\n curPageData,\n props.onDataChange,\n );\n const isAllChecked = computed(() => {\n const allValue = getDataValues(props.dataSource, [], { isTreeMode: props.isTreeMode, include: false });\n\n return (\n props.checkedValue.length > 0 &&\n (props.isTreeMode\n ? allValue.every((item) => props.checkedValue.includes(item))\n : (props.search ? filteredData.value : props.dataSource).every(\n (item: TransferItemOption) => item.disabled || props.checkedValue.includes(item.value),\n ))\n );\n });\n const indeterminate = computed(() => {\n return !isAllChecked.value && props.checkedValue.length > 0;\n });\n\n const totalCount = computed(() => {\n return getLefCount(props.dataSource);\n });\n\n watch(totalCount, (val) => {\n if (val <= (currentPage.value - 1) * pageSize.value) {\n const lastPage = Math.ceil(val / pageSize.value);\n defaultCurrent.value = lastPage;\n }\n });\n\n const filteredTreeData = (list: TransferItemOption[], keyword: string) => {\n const res = filter(cloneDeep(list), (node) => {\n if (node.label.toLowerCase().includes(keyword.toLowerCase())) {\n return true;\n }\n if (node.children && node.children.length > 0) {\n node.children = filteredTreeData(node.children, keyword);\n if (node.children.length > 0) {\n return true;\n }\n }\n return false;\n });\n return res;\n };\n\n const handlePaginationChange = (pageInfo: PageInfo) => {\n props.onPageChange?.(pageInfo);\n defaultCurrent.value = pageInfo.current;\n defaultPageSize.value = pageInfo.pageSize;\n };\n const handleCheckedChange = (val: Array) => {\n props.onCheckedChange?.(val);\n };\n const handleCheckedAllChange = (checked: boolean) => {\n if (checked) {\n const allValue = getDataValues(props.search ? filteredData.value : props.dataSource, [], {\n isTreeMode: props.isTreeMode,\n include: false,\n });\n handleCheckedChange(allValue);\n } else {\n handleCheckedChange([]);\n }\n };\n const handleScroll = (e: Event) => {\n props.onScroll?.(e);\n };\n const handleSearch = (e: any) => {\n const event: SearchEvent = {\n query: e.value,\n type: props.listType as TransferListType,\n e: e.e,\n trigger: e.trigger,\n };\n filterValue.value = e.value;\n props.onSearch?.(event);\n };\n const renderTNodeJSX = useTNodeDefault();\n const renderTitle = () => {\n const defaultNode = props.title && isString(props.title) ? : null;\n const titleNode = renderTNodeJSX('title', {\n defaultNode,\n params: {\n type: props.listType,\n },\n });\n return {titleNode};\n };\n const renderContent = () => {\n const isDraggable = props.draggable && props.listType === TARGET;\n let defaultNode: JSX.Element = null;\n if (!isDraggable) {\n defaultNode = (\n \n {curPageData.value.map((item, index) => (\n \n {renderTNodeJSX('transferItem', {\n defaultNode: {item.label},\n params: { data: item.data, index, type: props.listType },\n })}\n \n ))}\n \n );\n } else {\n defaultNode = (\n \n {curPageData.value.map((item, index) => (\n \n \n {renderTNodeJSX('transferItem', {\n defaultNode: {item.label},\n params: { data: item.data, index, type: props.listType },\n })}\n \n
    \n ))}\n \n );\n }\n\n return (\n
    \n {renderTNodeJSX('tree', {\n defaultNode,\n params: {\n data: curPageData.value,\n value: props.checkedValue,\n onChange: handleCheckedChange,\n },\n })}\n
    \n );\n };\n const renderEmpty = () => {\n const empty = props.empty || t(globalConfig.value.empty);\n const defaultNode: VNode = isString(empty) ? {empty} : null;\n return (\n
    \n {renderTNodeJSX('empty', {\n defaultNode,\n params: {\n type: props.listType,\n },\n })}\n
    \n );\n };\n const renderFooter = () => {\n const defaultNode = isString(props.footer) ? (\n
    {props.footer}
    \n ) : null;\n return renderTNodeJSX('footer', {\n defaultNode,\n params: {\n type: props.listType,\n },\n });\n };\n\n return () => (\n
    \n
    \n
    \n {props.checkAll && (\n \n )}\n \n {t(globalConfig.value.title, {\n checked: props.checkedValue.length,\n total: totalCount.value,\n })}\n \n
    \n {renderTitle()}\n
    \n \n {props.search && (\n \n )}\n {curPageData.value.length > 0 ? renderContent() : renderEmpty()}\n
    \n {props.pagination && pageSize.value > 0 && pageTotal.value > 0 && (\n
    \n \n
    \n )}\n {renderFooter()}\n \n );\n },\n});\n","import { ref, ComputedRef, Ref } from 'vue';\nimport type { TransferValue } from '../type';\nimport type { TransferItemOption } from '../types';\nexport default function useDragSort(\n currentValue: Ref>,\n curPageData: ComputedRef,\n handleDataChange: (data: Array, movedValue: Array) => void,\n) {\n const draggingIndex = ref(null);\n const dragoverIndex = ref(null);\n const dragoverPos = ref(null);\n\n const onDragStart = (e: DragEvent) => {\n const index = Number((e.target as HTMLElement).dataset.index);\n draggingIndex.value = index;\n };\n\n const onDragOver = (e: DragEvent) => {\n e.preventDefault();\n if (e.currentTarget) {\n const currentElement = e.currentTarget as HTMLElement;\n const index = Number(currentElement.dataset.index);\n const elemHeight = currentElement.offsetHeight;\n const dragY = e.clientY - currentElement.getBoundingClientRect().top;\n const insertAreaPercent = 0.3;\n const insertAreaHeight = elemHeight * insertAreaPercent;\n\n dragoverIndex.value = index;\n\n if (dragoverIndex.value === draggingIndex.value) {\n dragoverPos.value = '';\n return;\n }\n if (dragY < insertAreaHeight) {\n dragoverPos.value = 'top';\n } else if (dragY > elemHeight - insertAreaHeight) {\n dragoverPos.value = 'bottom';\n } else {\n dragoverPos.value = 'center';\n }\n }\n };\n\n const onDragLeave = () => {\n dragoverPos.value = '';\n dragoverIndex.value = null;\n };\n\n const onDragEnd = () => {\n draggingIndex.value = null;\n dragoverIndex.value = null;\n dragoverPos.value = '';\n };\n\n const onDrop = (e: DragEvent) => {\n e.preventDefault();\n const currentDraggingIndex = draggingIndex.value;\n const currentDragoverIndex = dragoverIndex.value;\n\n draggingIndex.value = null;\n dragoverIndex.value = null;\n dragoverPos.value = '';\n if (currentDraggingIndex === currentDragoverIndex) {\n return;\n }\n\n const newData = [...currentValue.value];\n\n const sourceItem = curPageData.value[currentDraggingIndex].value;\n const targetItem = curPageData.value[currentDragoverIndex].value;\n const sourceIndex = newData.indexOf(sourceItem);\n let targetIndex = newData.indexOf(targetItem);\n\n newData.splice(sourceIndex, 1);\n\n if (dragoverPos.value === 'bottom') {\n targetIndex += 1;\n }\n newData.splice(targetIndex, 0, sourceItem);\n handleDataChange?.(newData, [sourceItem, targetItem]);\n };\n\n return {\n onDragStart,\n onDragEnd,\n onDrop,\n onDragOver,\n onDragLeave,\n };\n}\n","import arrayFilter from './_arrayFilter.js';\nimport baseFilter from './_baseFilter.js';\nimport baseIteratee from './_baseIteratee.js';\nimport isArray from './isArray.js';\n\n/**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\nfunction filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, baseIteratee(predicate, 3));\n}\n\nexport default filter;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTransferProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 用于控制复选框属性 */\n checkboxProps: {\n type: Object as PropType,\n },\n /** 数据列表选中项 */\n checked: {\n type: Array as PropType,\n default: undefined as TdTransferProps['checked'],\n },\n /** 数据列表选中项,非受控属性 */\n defaultChecked: {\n type: Array as PropType,\n default: (): TdTransferProps['defaultChecked'] => [],\n },\n /** 全量数据 */\n data: {\n type: Array as PropType,\n default: (): TdTransferProps['data'] => [],\n },\n /** 穿梭框可操作方向 */\n direction: {\n type: String as PropType,\n default: 'both' as TdTransferProps['direction'],\n validator(val: TdTransferProps['direction']): boolean {\n if (!val) return true;\n return ['left', 'right', 'both'].includes(val);\n },\n },\n /** 禁用全部操作:搜索、选中、移动、分页等。[源列表, 目标列表],示例:[true, false] 或者 true */\n disabled: {\n type: [Boolean, Array] as PropType,\n default: undefined,\n },\n /** 列表为空时呈现的内容。值类型为数组,则表示分别控制源列表和目标列表数据为空的呈现内容 */\n empty: {\n type: [String, Array, Function] as PropType,\n default: '' as TdTransferProps['empty'],\n },\n /** 穿梭框底部内容 */\n footer: {\n type: [Array, Function] as PropType,\n },\n /** 用来定义 value / label / disabled 在 `data` 中对应的字段别名,示例:`{ label: 'text', value: 'id' }`,表示选项文本取 `text` 字段,选项值取 `id` 字段 */\n keys: {\n type: Object as PropType,\n },\n /** 方向操作按钮。默认显示组件内置操作图标。自定义操作图标示例:['向左', '向右'] 或者 `[() => , () => ]` 或者 `(h, direction) => direction === 'left' ? '《' : '》'` */\n operation: {\n type: [Array, Function] as PropType,\n },\n /** 分页配置,值为空则不显示。具体 API 参考分页组件。值类型为数组,表示可分别控制源列表和目标列表分页组件 */\n pagination: {\n type: [Object, Array] as PropType,\n },\n /** 搜索框配置,值为 false 表示不显示搜索框;值为 true 表示显示默认搜索框;值类型为对象,用于透传 Props 到 Input 组件;值类型为数组,则分别表示控制两侧搜索框 */\n search: {\n type: [Boolean, Object, Array] as PropType,\n default: false,\n },\n /** 是否显示全选,值类型为数组则表示分别控制源列表和目标列表 */\n showCheckAll: {\n type: [Boolean, Array] as PropType,\n default: true as TdTransferProps['showCheckAll'],\n },\n /** 是否允许通过拖拽对目标列表进行排序 */\n targetDraggable: Boolean,\n /** 目标数据列表排列顺序 */\n targetSort: {\n type: String as PropType,\n default: 'original' as TdTransferProps['targetSort'],\n validator(val: TdTransferProps['targetSort']): boolean {\n if (!val) return true;\n return ['original', 'push', 'unshift'].includes(val);\n },\n },\n /** 穿梭框标题,示例:['源列表', '目标列表'] 或者 `[() => 'A', () => 'B']` 或者 `({ type }) => type === 'source' ? '源' : '目标'` */\n title: {\n type: [Array, Function] as PropType,\n default: (): TdTransferProps['title'] => [] as TdTransferProps['title'],\n },\n /** 自定义渲染节点 */\n transferItem: {\n type: Function as PropType,\n },\n /** 目标数据列表数据 */\n value: {\n type: Array as PropType,\n default: undefined as TdTransferProps['value'],\n },\n modelValue: {\n type: Array as PropType,\n default: undefined as TdTransferProps['value'],\n },\n /** 目标数据列表数据,非受控属性 */\n defaultValue: {\n type: Array as PropType,\n default: (): TdTransferProps['defaultValue'] => [],\n },\n /** 数据列表发生变化时触发,`type` 值为 `source`,表示源列表移动到目标列表,值为 `target` 表示目标列表移动到源列表,movedValue 则表示被移动的选项 */\n onChange: Function as PropType,\n /** 源数据列表或目标数据列表的选中项发生变化时触发,`context.type` 可以区分触发来源是目标列表,还是源列表 */\n onCheckedChange: Function as PropType,\n /** 分页发生变化时触发 */\n onPageChange: Function as PropType,\n /** 列表滚动时触发,bottomDistance 表示元素滚动到底部的距离 */\n onScroll: Function as PropType,\n /** 搜索时触发,options.query 表示用户输入的内容 */\n onSearch: Function as PropType,\n};\n","import { defineComponent, createElementVNode, PropType, h } from 'vue';\nimport { ChevronRightIcon as TdChevronRightIcon, ChevronLeftIcon as TdChevronLeftIcon } from 'tdesign-icons-vue-next';\n\nimport Button from '../../button';\nimport { TNode } from '../../common';\nimport { useGlobalIcon, usePrefixClass } from '@tdesign/hooks';\n\nimport props from '../props';\nimport { isArray, isString, isFunction } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TTransferOperations',\n props: {\n // 控制左按钮的禁用与否\n leftDisabled: {\n type: Boolean as PropType,\n required: true,\n },\n // 控制右按钮的禁用与否\n rightDisabled: {\n type: Boolean as PropType,\n required: true,\n },\n operation: props.operation,\n },\n emits: ['moveToRight', 'moveToLeft'],\n setup(props, { slots, emit }) {\n const classPrefix = usePrefixClass();\n const { ChevronRightIcon, ChevronLeftIcon } = useGlobalIcon({\n ChevronRightIcon: TdChevronRightIcon,\n ChevronLeftIcon: TdChevronLeftIcon,\n });\n const moveToRight = () => {\n emit('moveToRight');\n };\n const moveToLeft = () => {\n emit('moveToLeft');\n };\n const getIconRight = () => {\n return ;\n };\n const getIconLeft = () => {\n return ;\n };\n const getIcon = (direction: 'left' | 'right') => {\n if (isFunction(props.operation)) {\n return null;\n }\n if (direction === 'right' && props.operation && isFunction(props.operation[0])) {\n return null;\n }\n if (direction === 'left' && props.operation && isFunction(props.operation[1])) {\n return null;\n }\n\n if (slots.operation) {\n return null;\n }\n\n return direction === 'left' ? getIconLeft : getIconRight;\n };\n // right:去右边,left:去左边\n const renderButton = (h: typeof createElementVNode, direction: 'left' | 'right') => {\n if (isFunction(slots.operation)) {\n return slots.operation({\n direction,\n });\n }\n if (isFunction(props.operation)) {\n const renderContent = props.operation;\n return renderContent(h as any, { direction });\n }\n let renderContent: string | TNode;\n if (isArray(props.operation)) {\n const [left, right] = props.operation;\n renderContent = direction === 'right' ? right : left;\n } else {\n renderContent = '';\n }\n return renderContent;\n };\n\n return () => (\n
    \n \n {slots.operation || (isArray(props.operation) && props.operation[1]) ? renderButton(h, 'right') : null}\n \n \n {slots.operation || (isArray(props.operation) && props.operation[0]) ? renderButton(h, 'left') : null}\n \n
    \n );\n },\n});\n","import { defineComponent, computed, toRefs } from 'vue';\nimport { pick, isFunction } from 'lodash-es';\n\nimport TransferList from './components/transfer-list';\nimport TransferOperations from './components/transfer-operations';\nimport { TransferListType, CheckedOptions, TransferValue, EmptyType, TargetParams, SearchEvent } from './types';\n\nimport {\n getTransferListOption,\n getDataValues,\n getTransferData,\n filterTransferData,\n TRANSFER_NAME,\n SOURCE,\n TARGET,\n} from './utils';\nimport { PageInfo, TdPaginationProps } from '../pagination/type';\nimport props from './props';\nimport { TNode } from '../common';\n\n// hooks\nimport { useVModel, useDisabled, usePrefixClass, useDefaultValue } from '@tdesign/hooks';\n\nexport default defineComponent({\n name: TRANSFER_NAME,\n props,\n\n setup(props, { slots }) {\n const disabled = useDisabled();\n const classPrefix = usePrefixClass();\n const { value, modelValue, checked } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n // @ts-ignore TODO\n const [innerChecked] = useDefaultValue(checked, props.defaultChecked, props.onCheckedChange, 'checked');\n const valueList = computed(() => innerValue.value);\n\n const isTreeMode = computed(() => {\n const treeSlot = slots.tree;\n return isFunction(treeSlot);\n });\n\n const leftButtonDisabled = computed(() => props.direction === 'right');\n const rightButtonDisabled = computed(() => props.direction === 'left');\n // props 传入的 data 格式化后的数据\n const transferData = computed(() => {\n return getTransferData(props.data, props.keys, isTreeMode.value);\n });\n const sourceList = computed(() => {\n return filterTransferData(transferData.value, valueList.value as TransferValue[], false, isTreeMode.value);\n });\n const targetList = computed(() => {\n return filterTransferData(transferData.value, valueList.value as TransferValue[], true, isTreeMode.value);\n });\n // 被选中的value\n const checkedValue = computed(() => {\n return {\n [SOURCE]: getDataValues(sourceList.value, innerChecked.value, { isTreeMode: isTreeMode.value }),\n [TARGET]: getDataValues(targetList.value, innerChecked.value, { isTreeMode: isTreeMode.value }),\n };\n });\n const hasFooter = computed(() => {\n return !!slots.footer || !!props.footer;\n });\n const showPagination = computed(() => {\n // 翻页在自定义列表无效\n return !!props.pagination && !slots.content;\n });\n const showSearch = computed(() => {\n // 翻页在自定义列表无效\n return !!props.search;\n });\n const footerOption = computed(() => {\n const footer = props.footer || '';\n return getTransferListOption(footer);\n });\n const emptyOption = computed(() => {\n return getTransferListOption(props.empty);\n });\n const searchOption = computed(() => {\n return getTransferListOption(props.search);\n });\n const checkAllOption = computed(() => {\n return getTransferListOption(props.showCheckAll);\n });\n const disabledOption = computed(() => {\n return getTransferListOption(disabled.value);\n });\n const titleOption = computed(() => {\n return getTransferListOption>(props.title);\n });\n const paginationOption = computed(() => {\n return getTransferListOption(props.pagination);\n });\n\n const handleCheckedChange = (val: Array, listType: TransferListType) => {\n const sourceChecked = listType === SOURCE ? val : checkedValue.value[SOURCE];\n const targetChecked = listType === TARGET ? val : checkedValue.value[TARGET];\n const checked = [...sourceChecked, ...targetChecked];\n const event: CheckedOptions = {\n checked,\n sourceChecked,\n targetChecked,\n type: listType,\n };\n // TODO onCheckedChange 参数有点不合理\n innerChecked.value = checked;\n props.onCheckedChange?.(event);\n };\n\n const transferTo = (toDirection: TransferListType) => {\n const oldTargetValue: Array = JSON.parse(JSON.stringify(valueList.value));\n let newTargetValue: Array;\n const selfCheckedValue = toDirection === TARGET ? checkedValue.value[SOURCE] : checkedValue.value[TARGET];\n // target->source\n if (toDirection === SOURCE) {\n newTargetValue = oldTargetValue.filter((v) => !selfCheckedValue.includes(v));\n } else if (props.targetSort === 'original') {\n // 按照原始顺序\n const remainValue = transferData.value.reduce((acc, data) => {\n if (oldTargetValue.includes(data.value) && data.disabled) {\n return acc.concat(data.value);\n }\n return acc;\n }, []);\n newTargetValue = getDataValues(transferData.value, oldTargetValue.concat(selfCheckedValue), {\n isTreeMode: isTreeMode.value,\n remainValue,\n });\n } else if (props.targetSort === 'unshift') {\n newTargetValue = selfCheckedValue.concat(oldTargetValue);\n } else {\n newTargetValue = oldTargetValue.concat(selfCheckedValue);\n }\n\n // 清空checked。与toDirection相反\n handleCheckedChange([], toDirection === SOURCE ? TARGET : SOURCE);\n\n const params: TargetParams = {\n type: toDirection,\n movedValue: selfCheckedValue,\n };\n setInnerValue(newTargetValue, params);\n };\n\n // 点击移到右边按钮触发的函数\n const transferToRight = () => {\n transferTo(TARGET);\n };\n // 点击移到左边按钮触发的函数\n const transferToLeft = () => {\n transferTo(SOURCE);\n };\n\n const handleScroll = (e: Event, listType: TransferListType) => {\n const target = e.target as HTMLElement;\n const bottomDistance = target.scrollHeight - target.scrollTop - target.clientHeight;\n const event: { e: Event; bottomDistance: number; type: TransferListType } = {\n e,\n bottomDistance,\n type: listType,\n };\n props.onScroll?.(event);\n };\n const handleSearch = (e: SearchEvent) => {\n props.onSearch?.(e);\n };\n const handlePageChange = (pageInfo: PageInfo, listType: TransferListType) => {\n props.onPageChange?.(pageInfo, { type: listType });\n };\n\n const handleDataChange = (data: Array, movedValue: Array) => {\n setInnerValue(data, {\n type: TARGET,\n movedValue,\n });\n };\n const renderTransferList = (listType: TransferListType) => {\n const scopedSlots = pick(slots, ['title', 'empty', 'footer', 'operation', 'transferItem', 'default', 'tree']);\n return (\n handleCheckedChange($event, listType)}\n onScroll={($event: any) => handleScroll($event, listType)}\n onSearch={handleSearch}\n onPageChange={($event: any) => handlePageChange($event, listType)}\n isTreeMode={isTreeMode.value}\n onDataChange={handleDataChange}\n currentValue={valueList.value}\n draggable={props.targetDraggable && listType === TARGET}\n >\n {scopedSlots}\n \n );\n };\n\n return () => (\n \n {renderTransferList(SOURCE)}\n \n {renderTransferList(TARGET)}\n \n );\n },\n});\n","import _Transfer from './transfer';\nimport withInstall from '../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 {\n useVModel,\n useConfig,\n useTNodeJSX,\n useDisabled,\n useReadonly,\n useGlobalIcon,\n usePrefixClass,\n useCommonClassName,\n} from '@tdesign/hooks';\nimport type { InputProps } from '../input';\n\nimport props from './props';\n\n// hooks\n\nimport { TdTimePickerProps } from './type';\n\ndayjs.extend(customParseFormat);\n\nexport default defineComponent({\n name: 'TTimePicker',\n props,\n setup(props) {\n const renderTNodeJSX = useTNodeJSX();\n const { globalConfig } = useConfig('timePicker');\n const COMPONENT_NAME = usePrefixClass('time-picker');\n const { STATUS } = useCommonClassName();\n const { TimeIcon } = useGlobalIcon({ TimeIcon: TdTimeIcon });\n\n const currentValue = ref('');\n const isShowPanel = ref(false);\n const isReadonly = useReadonly();\n\n const { value, modelValue } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n const disabled = useDisabled();\n const { allowInput, format } = toRefs(props);\n\n const inputClasses = computed(() => [\n `${COMPONENT_NAME.value}__group`,\n {\n [STATUS.value.focused]: isShowPanel.value,\n },\n ]);\n\n const handleShowPopup = (visible: boolean, context: { e: MouseEvent }) => {\n isShowPanel.value = visible;\n visible ? props.onOpen?.(context) : props.onClose?.(context); // trigger on-open and on-close\n };\n\n const handleClear = (context: { e: MouseEvent }) => {\n const { e } = context;\n e.stopPropagation();\n currentValue.value = null;\n setInnerValue(null);\n props?.onClear?.(context);\n };\n\n const handleInputChange = (value: string) => {\n currentValue.value = value;\n };\n\n const handleInputBlur = (value: string, context: SelectInputBlurContext) => {\n if (allowInput.value) {\n const isValidTime = validateInputValue(currentValue.value, format.value);\n if (isValidTime) {\n setInnerValue(formatInputValue(currentValue.value, format.value));\n }\n }\n props.onBlur?.({ value, inputValue: context.inputValue, e: context.e });\n };\n\n const handleClickConfirm = (e: MouseEvent) => {\n props?.onConfirm?.({ e });\n const isValidTime = validateInputValue(currentValue.value, format.value);\n if (isValidTime) setInnerValue(currentValue.value);\n isShowPanel.value = false;\n };\n\n const handlePanelChange = (v: string, e: MouseEvent) => {\n currentValue.value = v;\n props.onPick?.(v, { e });\n };\n\n const valueDisplayParams = computed(() => {\n return {\n value: isShowPanel.value ? currentValue.value : innerValue.value ?? undefined,\n };\n });\n\n watch(\n () => isShowPanel.value,\n () => {\n currentValue.value = isShowPanel.value ? innerValue.value ?? '' : '';\n },\n );\n\n return () => (\n
    \n }\n popupVisible={!isReadonly.value && isShowPanel.value}\n onInputChange={handleInputChange}\n onBlur={handleInputBlur}\n onPopupVisibleChange={handleShowPopup}\n placeholder={!innerValue.value ? props.placeholder || globalConfig.value.placeholder : undefined}\n value={isShowPanel.value ? currentValue.value : innerValue.value ?? undefined}\n inputValue={isShowPanel.value ? currentValue.value : innerValue.value ?? undefined}\n inputProps={{ ...(props.inputProps as InputProps), size: props.size }}\n popupProps={{ overlayInnerStyle: { width: 'auto', padding: 0 }, ...(props.popupProps as object) }}\n status={props.status}\n tips={props.tips}\n valueDisplay={() => renderTNodeJSX('valueDisplay', { params: valueDisplayParams.value })}\n {...(props.selectInputProps as TdTimePickerProps['selectInputProps'])}\n panel={() => (\n \n )}\n />\n
    \n );\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTimeRangePickerProps } from '../time-picker/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否允许直接输入时间 */\n allowInput: Boolean,\n /** 是否自动调换左右区间的顺序,默认为 true;若需要支持跨天的场景,可以设置为 false */\n autoSwap: {\n type: Boolean,\n default: true,\n },\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否允许清除选中值 */\n clearable: Boolean,\n /** 禁用时间项 */\n disableTime: {\n type: Function as PropType,\n },\n /** 是否禁用组件,值为数组表示可分别控制开始日期和结束日期是否禁用 */\n disabled: {\n type: [Boolean, Array] as PropType,\n default: undefined as TdTimeRangePickerProps['disabled'],\n },\n /** 用于格式化时间,[详细文档](https://day.js.org/docs/en/display/format) */\n format: {\n type: String,\n default: 'HH:mm:ss',\n },\n /** 是否隐藏禁用状态的时间项 */\n hideDisabledTime: {\n type: Boolean,\n default: true,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 占位符,值为数组表示可分别为开始日期和结束日期设置占位符 */\n placeholder: {\n type: [String, Array] as PropType,\n default: undefined as TdTimeRangePickerProps['placeholder'],\n },\n /** 透传 Popup 组件全部属性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 预设快捷时间范围选择,示例:{ '下午': ['13:00:00', '18:00:00'] } */\n presets: {\n type: Object as PropType,\n },\n /** 透传给范围输入框 RangeInput 组件的参数 */\n rangeInputProps: {\n type: Object as PropType,\n },\n /** 只读状态,优先级大于 `allowInput` */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdTimeRangePickerProps['size'],\n validator(val: TdTimeRangePickerProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdTimeRangePickerProps['status'],\n validator(val: TdTimeRangePickerProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 时间间隔步数,数组排列 [小时, 分钟, 秒],示例:[2, 1, 1] 或者 ['2', '1', '1'] */\n steps: {\n type: Array as PropType,\n default: (): TdTimeRangePickerProps['steps'] => [1, 1, 1],\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 选中值 */\n value: {\n type: Array as PropType,\n default: undefined as TdTimeRangePickerProps['value'],\n },\n modelValue: {\n type: Array as PropType,\n default: undefined as TdTimeRangePickerProps['value'],\n },\n /** 选中值,非受控属性 */\n defaultValue: {\n type: Array as PropType,\n },\n /** 当输入框失去焦点时触发 */\n onBlur: Function as PropType,\n /** 选中值发生变化时触发 */\n onChange: Function as PropType,\n /** 范围输入框获得焦点时触发 */\n onFocus: Function as PropType,\n /** 当输入框内容发生变化时触发,参数 input 表示输入内容,value 表示组件当前有效值 */\n onInput: Function as PropType,\n /** 面板选中值后触发 */\n onPick: Function as PropType,\n};\n","import { defineComponent, ref, toRefs, watch, computed } from 'vue';\nimport dayjs from 'dayjs';\nimport { isArray } from 'lodash-es';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { TimeIcon as TdTimeIcon } from 'tdesign-icons-vue-next';\n\nimport { RangeInputPopup, RangeInputPosition } from '../range-input';\nimport TimePickerPanel from './panel/time-picker-panel';\n\nimport { TIME_PICKER_EMPTY } from '@tdesign/common-js/time-picker/const';\nimport { formatInputValue, validateInputValue } from '@tdesign/common-js/time-picker/utils';\n\n// interfaces\nimport props from './time-range-picker-props';\nimport { TimeRangeValue } from './types';\nimport { TimeRangePickerPartial } from './type';\n// hooks\nimport {\n useVModel,\n useConfig,\n useDisabled,\n useReadonly,\n useGlobalIcon,\n usePrefixClass,\n useCommonClassName,\n} from '@tdesign/hooks';\n\ndayjs.extend(customParseFormat);\n\nexport default defineComponent({\n name: 'TTimeRangePicker',\n props: { ...props, rangeInputProps: Object, popupProps: Object },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('time-range-picker');\n const { globalConfig } = useConfig('timePicker');\n const { STATUS } = useCommonClassName();\n const { TimeIcon } = useGlobalIcon({ TimeIcon: TdTimeIcon });\n\n const disabled = useDisabled();\n const currentPanelIdx = ref(undefined);\n const currentValue = ref>(TIME_PICKER_EMPTY);\n const isShowPanel = ref(false);\n const isReadOnly = useReadonly();\n\n const inputClasses = computed(() => [\n `${COMPONENT_NAME.value}__group`,\n {\n [STATUS.value.focused]: isShowPanel.value,\n },\n ]);\n const { value, modelValue, allowInput, format } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange as any);\n\n const handleShowPopup = (visible: boolean, context: any) => {\n if (isReadOnly.value) return;\n // 输入框点击不关闭面板\n if (context.trigger === 'trigger-element-click') {\n isShowPanel.value = true;\n return;\n }\n isShowPanel.value = visible;\n };\n\n const handleClear = (context: { e: MouseEvent }) => {\n const { e } = context;\n e.stopPropagation();\n currentValue.value = TIME_PICKER_EMPTY;\n setInnerValue(null);\n };\n\n const handleClick = ({ position }: { position: 'first' | 'second' }) => {\n currentPanelIdx.value = position === 'first' ? 0 : 1;\n };\n\n const handleTimeChange = (newValue: string | string[], e: MouseEvent) => {\n if (isArray(newValue)) {\n currentValue.value = newValue;\n } else if (currentPanelIdx.value === 0) {\n currentValue.value = [newValue, currentValue.value[1] ?? newValue];\n } else {\n currentValue.value = [currentValue.value[0] ?? newValue, newValue];\n }\n handleOnPick(newValue, e);\n };\n\n const handleInputBlur = (value: TimeRangeValue, { e }: { e: FocusEvent }) => {\n if (allowInput.value) {\n const isValidTime = validateInputValue(currentValue.value[currentPanelIdx.value], format.value);\n if (isValidTime) {\n const formattedVal = formatInputValue(currentValue.value[currentPanelIdx.value], format.value);\n currentPanelIdx.value === 0\n ? (currentValue.value = [formattedVal, currentValue.value[1] ?? formattedVal])\n : (currentValue.value = [currentValue.value[0] ?? formattedVal, formattedVal]);\n }\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","// 在这个文件,解决 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, useVModel as tdUseVModel, useDefaultValue as tdUseDefaultValue } from '@tdesign/hooks';\nimport tdWithInstall from '../utils/withInstall';\n\nimport { TreeStore } from '@tdesign/common-js/tree/tree-store';\n\nexport { ref, reactive, computed, watch, onMounted, toRefs, defineComponent, TransitionGroup } from 'vue';\nexport { CaretRightSmallIcon as TdCaretRightSmallIcon } from 'tdesign-icons-vue-next';\nexport { Checkbox as TCheckBox } from '../checkbox';\nexport { Loading as TLoading } from '../loading';\nexport { useConfig, usePrefixClass } from '@tdesign/hooks';\nexport { useGlobalIcon } from '@tdesign/hooks';\nexport { useLazyLoad } from '@tdesign/hooks';\nexport { useVirtualScrollNew } from '@tdesign/hooks';\nexport { TreeNode, privateKey } from '@tdesign/common-js/tree/tree-node';\nexport type TypeVModel = ReturnType;\n\nexport type TypeRef = Ref;\nexport type TypeSetupContext = SetupContext;\nexport type TypeCreateElement = typeof Vue.h;\nexport type TypeVNode = VNode;\nexport type TypePropType = PropType;\nexport type TypeCheckboxProps = CheckboxProps;\nexport type TypeClassName = ClassName;\nexport type TypeScroll = TScroll;\nexport type TypeStyles = Styles;\nexport type TypeTNode = TNode;\nexport type TypeTNodeReturnValue = TNodeReturnValue;\nexport type TypeTreeOptionData = TreeOptionData;\nexport type TypeTreeEventState = TreeEventState;\nexport type TypeVirtualScrollConfig = VirtualScrollConfig;\nexport type TypeToRefs = ToRefs;\nexport type TypeUnwrapNestedRefs = UnwrapNestedRefs;\nexport interface TypeTreeInstance extends ComponentPublicInstance, TreeInstanceFunctions {}\n\nexport type TreeProps = TdTreeProps & {\n treeStore?: TreeStore;\n};\n\nexport interface TypeOnDrag {\n default?: unknown;\n}\n\nconst onDrag: TypeOnDrag = {\n default: undefined,\n};\n\nexport const isVueNext = true;\n\nexport const TreeItemDefinition = {\n name: 'TTreeNode',\n inject: {\n onDrag,\n },\n};\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function useRipple(el: unknown) {}\n\nexport function withInstall(construct: T) {\n return tdWithInstall(construct);\n}\n\nexport interface UseVModelParams {\n value: Ref;\n eventName?: string;\n propName?: string;\n}\n\nexport function getCreateElement(h?: TypeCreateElement) {\n if (h) {\n // do nothing, just for adapt\n }\n return Vue.h;\n}\n\nexport function getScopedSlots(instance: ComponentPublicInstance) {\n return instance.$slots;\n}\n\nexport function useVModel(\n props: TreeProps & Record,\n refsProps: ToRefs & Record,\n propName = 'value',\n defaultPropName = 'defaultValue',\n eventPropName = 'onChange',\n eventName = 'change',\n) {\n if (eventName) {\n // do nothing,just for adapt\n }\n const { modelValue } = refsProps;\n let vm;\n if (propName === 'value') {\n vm = tdUseVModel(refsProps[propName], modelValue, props[defaultPropName], props[eventPropName], propName);\n } else {\n vm = tdUseDefaultValue(refsProps[propName], props[defaultPropName], props[eventPropName], propName);\n }\n return vm;\n}\n","import { throttle } from 'lodash-es';\nimport { reactive } from '../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';\n// TODO need refactor\nimport { isServer } from '../../components/utils/dom';\n\nexport type UseLazyLoadParams = UnwrapRef<{\n type: 'lazy' | 'virtual';\n rowHeight?: number;\n bufferSize?: number;\n}>;\n\nexport function useLazyLoad(containerRef: Ref, childRef: Ref, params: UseLazyLoadParams) {\n const tRowHeight = computed(() => Math.max(params.rowHeight || 48, 48));\n const isInit = ref(false);\n const hasLazyLoadHolder = computed(() => params?.type === 'lazy' && !isInit.value);\n\n const requestAnimationFrame = (!isServer && window.requestAnimationFrame) || ((cb) => setTimeout(cb, 16.6));\n\n const init = () => {\n if (!isInit.value) {\n requestAnimationFrame(() => {\n isInit.value = true;\n });\n }\n };\n\n onMounted(() => {\n if (params?.type !== 'lazy') return;\n nextTick(() => {\n const bufferSize = Math.max(10, params.bufferSize || 10);\n const height = tRowHeight.value * bufferSize;\n observe(childRef.value, containerRef.value, init, height);\n });\n });\n\n return {\n hasLazyLoadHolder,\n tRowHeight,\n };\n}\n","import {\n TypePropType,\n defineComponent,\n TypeCreateElement,\n ref,\n TreeItemDefinition,\n useRipple,\n getCreateElement,\n} from './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, useVirtualScrollNew, 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 = useVirtualScrollNew(treeContentRef, virtualScrollParams);\n scope.virtualConfig = virtualConfig;\n treeState.virtualConfig = virtualConfig;\n\n onMounted(() => {\n const isVirtual = virtualConfig?.isVirtualScroll.value;\n if (isVirtual) {\n virtualConfig.handleScroll();\n }\n });\n\n const emitScrollEvent = (e: WheelEvent) => {\n props.onScroll?.({ e });\n // Vue3 ignore next line\n context.emit('scroll', { e });\n };\n\n // 设置滚动结束状态\n let scrollStopTimer: TypeTimer = null;\n const setScrolling = () => {\n isScrolling.value = true;\n if (scrollStopTimer) {\n clearTimeout(scrollStopTimer);\n scrollStopTimer = null;\n }\n scrollStopTimer = setTimeout(() => {\n scrollStopTimer = null;\n isScrolling.value = false;\n }, 100);\n };\n\n let lastScrollY = 0;\n const onInnerVirtualScroll = (e: WheelEvent) => {\n setScrolling();\n const isVirtual = virtualConfig?.isVirtualScroll.value;\n const target = (e.target || e.srcElement) as HTMLElement;\n const top = target.scrollTop;\n\n // 排除横向滚动触发的纵向虚拟滚动计算\n if (lastScrollY !== top) {\n if (isVirtual) {\n virtualConfig.handleScroll();\n nodes.value = virtualConfig.visibleData.value;\n }\n } else {\n lastScrollY = 0;\n }\n lastScrollY = top;\n emitScrollEvent(e);\n };\n\n const handleScrollTo = (params: ComponentScrollToElementParams) => {\n let index = params.index;\n if (!index && index !== 0) {\n if (!params.key) {\n log.error('Tree', 'scrollToElement: one of `index` or `key` must exist.');\n return;\n }\n index = allNodes.value?.findIndex((item) =>\n [get(item.data, 'key'), get(item.data, props.keys?.['value'] || 'value')].includes(params.key),\n );\n if (index < 0) {\n log.error('Tree', `${params.key} does not exist in data, check \\`key\\` or \\`data\\` please.`);\n return;\n }\n }\n virtualConfig.scrollToElement({ ...params, index: index - 1 });\n };\n return {\n // 虚拟滚动相关\n treeContentRef,\n onInnerVirtualScroll,\n virtualConfig,\n scrollToElement: handleScrollTo,\n };\n}\n","import { computed, TypeStyles, usePrefixClass } from '../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, upperFirst } from 'lodash-es';\n\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 { isNil, isArray, isEmpty, isBoolean, isFunction } from 'lodash-es';\n\nimport { findParentValues } from '@tdesign/common-js/tree-select/utils';\n\nimport Tree, { TreeProps, TreeNodeModel, TreeNodeValue } from '../tree';\nimport SelectInput, { TdSelectInputProps } from '../select-input';\nimport FakeArrow from '../common-components/fake-arrow';\nimport { PopupVisibleChangeContext } from '../popup';\n\nimport { INodeOptions } from './interface';\nimport { TreeSelectValue, TdTreeSelectProps, TreeSelectValueChangeTrigger } from './type';\nimport { TreeOptionData } from '../common';\nimport props from './props';\n\n// hooks\nimport {\n useConfig,\n useVModel,\n useDisabled,\n useReadonly,\n useTNodeJSX,\n usePrefixClass,\n useTNodeDefault,\n useDefaultValue,\n} from '@tdesign/hooks';\n\nexport default defineComponent({\n name: 'TTreeSelect',\n props,\n setup(props: TdTreeSelectProps, { slots, expose }) {\n const renderTNodeJSX = useTNodeJSX();\n const renderDefaultTNode = useTNodeDefault();\n const classPrefix = usePrefixClass();\n const { globalConfig } = useConfig('treeSelect');\n const formDisabled = useDisabled();\n const isReadonly = useReadonly();\n\n // ref\n const treeRef = ref(null);\n\n // data\n const actived = ref([]);\n const expanded = ref([]);\n const nodeInfo = ref(null);\n const treeKey = ref(0);\n\n // model\n const { value, modelValue, popupVisible, inputValue } = toRefs(props);\n const [treeSelectValue, setTreeSelectValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const [innerVisible, setInnerVisible] = useDefaultValue(\n popupVisible,\n false,\n props.onPopupVisibleChange,\n 'popupVisible',\n );\n const [innerInputValue, setInnerInputValue] = useDefaultValue(\n inputValue,\n props.defaultInputValue,\n props.onInputChange,\n 'inputValue',\n );\n\n /**\n * 设置树的所有父节点展开\n */\n const setTreeParentsExpanded = () => {\n const getParents = (value: TreeSelectValue) =>\n findParentValues(props.data, value, realValue.value, realChildren.value);\n\n let treeParents: TreeSelectValue[] = [];\n if (treeSelectValue.value) {\n if (Array.isArray(treeSelectValue.value) && props.multiple) {\n treeParents = treeSelectValue.value.flatMap(getParents);\n } else if (!Array.isArray(treeSelectValue.value) && !props.multiple) {\n treeParents = getParents(treeSelectValue.value);\n }\n }\n expanded.value = Array.from(new Set([...expanded.value, ...treeParents]));\n };\n\n // watch\n watch(treeSelectValue, async () => {\n await changeNodeInfo();\n if (!props.multiple) {\n actived.value = nodeInfo.value ? [nodeInfo.value.value] : [];\n }\n setTreeParentsExpanded();\n });\n watch(\n () => props.data,\n async () => {\n await changeNodeInfo();\n treeRerender();\n },\n {\n deep: true,\n },\n );\n\n // computed\n /** filterByText keep pace with innerInputValue */\n const filterByText = computed(() => {\n const value = innerInputValue.value || '';\n if (value === '') {\n return null;\n }\n return (node: TreeNodeModel) => {\n if (isFunction(props.filter)) {\n const filter: boolean | Promise = props.filter(String(value), node);\n if (isBoolean(filter)) {\n return filter;\n }\n }\n return node.data[realLabel.value].indexOf(value) >= 0;\n };\n });\n const tDisabled = computed(() => {\n return formDisabled.value || props.disabled;\n });\n\n const inputPlaceholder = computed(\n () => (innerVisible.value && nodeInfo.value?.label) || props.placeholder || globalConfig.value.placeholder,\n );\n\n const popupClass = computed(() => {\n return [`${classPrefix.value}-select__dropdown`, 'narrow-scrollbar'];\n });\n\n const dropdownInnerSize = computed(() => {\n return {\n small: 's',\n medium: 'm',\n large: 'l',\n }[props.size];\n });\n\n const isObjectValue = computed(() => props.valueType === 'object');\n\n const checked = computed((): Array => {\n if (props.multiple) {\n if (isObjectValue.value) {\n return isArray(treeSelectValue.value)\n ? (treeSelectValue.value as Array).map((item) => (item as INodeOptions).value)\n : [];\n }\n return isArray(treeSelectValue.value)\n ? (treeSelectValue.value as Array).map((item) => item as TreeNodeValue)\n : [];\n }\n return [];\n });\n\n const multiLimitDisabled = computed(() => {\n return (\n props.multiple &&\n !!props.max &&\n isArray(treeSelectValue.value) &&\n props.max <= (treeSelectValue.value as Array).length\n );\n });\n\n const realLabel = computed(() => {\n if (!isEmpty(props.treeProps) && !isEmpty((props.treeProps as TreeProps).keys)) {\n return (props.treeProps as TreeProps).keys.label || 'label';\n }\n return props.keys?.label || 'label';\n });\n\n const realValue = computed(() => {\n if (!isEmpty(props.treeProps) && !isEmpty((props.treeProps as TreeProps).keys)) {\n return (props.treeProps as TreeProps).keys.value || 'value';\n }\n return props.keys?.value || 'value';\n });\n\n const realChildren = computed(() => {\n if (!isEmpty(props.treeProps) && !isEmpty((props.treeProps as TreeProps).keys)) {\n return (props.treeProps as TreeProps).keys.children || 'children';\n }\n return props.keys?.children || 'children';\n });\n\n onMounted(async () => {\n setTreeParentsExpanded();\n if (!treeSelectValue.value && props.defaultValue) {\n change(props.defaultValue, null, 'uncheck');\n }\n if (isObjectValue.value) {\n actived.value = isArray(treeSelectValue.value)\n ? (treeSelectValue.value as Array).map((item) => (item as INodeOptions)?.value)\n : [(treeSelectValue.value as INodeOptions)?.value];\n } else {\n (actived.value as TreeSelectValue) = isArray(treeSelectValue.value)\n ? treeSelectValue.value\n : [treeSelectValue.value];\n }\n changeNodeInfo();\n });\n\n const change = (\n valueParam: TreeSelectValue,\n node: TreeNodeModel,\n trigger: TreeSelectValueChangeTrigger,\n ) => {\n setTreeSelectValue(valueParam, { node, trigger });\n changeNodeInfo();\n };\n\n const clear = (content: { e: MouseEvent }) => {\n const defaultValue: TreeSelectValue = props.multiple ? [] : '';\n actived.value = [];\n change(defaultValue, null, 'clear');\n props.onClear?.({ e: content.e });\n };\n\n const treeNodeChange = (\n valueParam: Array,\n context: { node: TreeNodeModel; e?: MouseEvent },\n ) => {\n let current: TreeSelectValue = valueParam;\n if (isObjectValue.value) {\n current = valueParam.map(getNodeItem);\n }\n change(current, context.node, 'check');\n };\n\n const treeNodeActive = (\n valueParam: Array,\n context: { node: TreeNodeModel; e?: MouseEvent },\n ) => {\n if (!props.multiple) {\n setInnerVisible(false, context);\n }\n // 多选模式屏蔽 Active 事件和取消选中状态改变\n if (props.multiple || !context.node.actived) {\n return;\n }\n // 单选模式重复选择不清空\n if (treeSelectValue.value === context.node.data[realValue.value]) {\n return;\n }\n let current: TreeSelectValue = valueParam;\n if (isObjectValue.value) {\n const nodeValue = isEmpty(valueParam) ? '' : valueParam[0];\n current = getNodeItem(nodeValue);\n } else {\n current = isEmpty(valueParam) ? '' : valueParam[0];\n }\n change(current, context.node, 'check');\n actived.value = valueParam;\n };\n\n const treeNodeExpand = (valueParam: Array) => {\n expanded.value = valueParam;\n };\n\n const treeNodeLoad = () => {\n changeNodeInfo();\n };\n\n const inputChange = (value: string): boolean => {\n // 未打开状态不处理输入框输入\n if (!innerVisible.value) {\n props.onSearch?.(String(value));\n return;\n }\n setInnerInputValue(value);\n props.onSearch?.(String(value));\n };\n\n const tagChange: TdSelectInputProps['onTagChange'] = (value, context) => {\n const { trigger, index } = context;\n if (['tag-remove', 'backspace'].includes(trigger)) {\n isArray(treeSelectValue.value) && (treeSelectValue.value as Array).splice(index, 1);\n }\n props.onRemove?.({ value, data: null, e: context && (context.e as MouseEvent) });\n change(treeSelectValue.value, null, trigger as 'tag-remove' | 'backspace');\n };\n\n const handlePopupVisibleChange = (visible: boolean, context: PopupVisibleChangeContext) => {\n setInnerVisible(visible, context);\n // 在通过点击选择器打开弹窗时 清空此前的输入内容 避免在关闭时就清空引起的闪烁问题\n if (visible && context.trigger === 'trigger-element-click') setInnerInputValue('');\n };\n const changeNodeInfo = async () => {\n if (!props.multiple) {\n if (treeSelectValue.value || treeSelectValue.value === 0) {\n nodeInfo.value = getSingleNodeInfo();\n } else {\n nodeInfo.value = '';\n }\n } else if (props.multiple) {\n if (isArray(treeSelectValue.value)) {\n nodeInfo.value = getMultipleNodeInfo();\n } else {\n nodeInfo.value = [];\n }\n } else {\n nodeInfo.value = null;\n }\n };\n\n const getSingleNodeInfo = () => {\n const nodeValue = isObjectValue.value ? (treeSelectValue.value as INodeOptions).value : treeSelectValue.value;\n return getNodeItem(nodeValue);\n };\n\n const getMultipleNodeInfo = () => {\n return (treeSelectValue.value as Array).map((value) => {\n const nodeValue = isObjectValue.value ? (value as INodeOptions).value : value;\n return getNodeItem(nodeValue);\n });\n };\n\n const getNodeItem = (targetValue: TreeSelectValue) => {\n if (treeRef.value) {\n const node = treeRef.value.getItem(targetValue);\n if (node) {\n return {\n ...node.data,\n label: node.data[realLabel.value],\n value: node.data[realValue.value],\n };\n }\n }\n const node = getTreeNode(props.data, targetValue);\n if (node) {\n return node;\n }\n return {\n label: targetValue,\n value: targetValue,\n };\n };\n\n const getTreeNode = (data: Array, targetValue: TreeSelectValue): TreeSelectValue | null => {\n for (let i = 0, len = data.length; i < len; i++) {\n const item = data[i];\n if (item[realValue.value] === targetValue) {\n return {\n ...item,\n label: item[realLabel.value],\n value: item[realValue.value],\n };\n }\n if (item?.[realChildren.value]) {\n const result = getTreeNode(item?.[realChildren.value], targetValue);\n if (!isNil(result)) {\n return result;\n }\n }\n }\n return null;\n };\n\n const treeRerender = () => {\n treeKey.value += 1;\n };\n\n const renderTree = () => (\n \n renderDefaultTNode('empty', {\n defaultNode:
    {globalConfig.value.empty}
    ,\n }),\n }}\n {...(props.treeProps as TdTreeSelectProps['treeProps'])}\n />\n );\n\n const renderSuffixIcon = () => (\n \n );\n\n expose({\n treeRef,\n });\n\n return () => (\n renderTNodeJSX('prefixIcon')}\n suffix={props.suffix}\n suffixIcon={() => {\n if (props.suffixIcon || slots.suffixIcon) {\n return renderTNodeJSX('suffixIcon');\n }\n\n return renderSuffixIcon();\n }}\n onClear={clear}\n onBlur={(_: any, context) => {\n props.onBlur?.({ value: treeSelectValue.value, e: context.e as FocusEvent });\n }}\n onFocus={(_: any, context: { e: FocusEvent }) => {\n props.onFocus?.({ value: treeSelectValue.value, e: context.e });\n }}\n valueDisplay={() =>\n renderTNodeJSX('valueDisplay', {\n params: props.multiple\n ? {\n value: nodeInfo.value,\n onClose: (index: number) => {\n const value = nodeInfo.value.map((node: TreeOptionData) => node.value);\n tagChange(value, {\n trigger: 'tag-remove',\n index,\n item: value[index],\n });\n },\n }\n : {\n value: nodeInfo.value || { [realLabel.value]: '', [realValue.value]: undefined },\n },\n })\n }\n v-slots={{\n suffix: slots.suffix,\n panel: () => (\n \n {renderTNodeJSX('panelTopContent')}\n \n {renderDefaultTNode('loadingText', {\n defaultNode:
    {globalConfig.value.loadingText}
    ,\n })}\n

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

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

    \n
      \n {props.colors.map((color) => {\n return (\n {\n if (props.disabled) {\n return;\n }\n handleClick(color);\n }}\n >\n
      \n \n
      \n \n );\n })}\n
    \n
    \n );\n };\n },\n});\n","import { defineComponent, ref, toRefs, watch, computed } from 'vue';\nimport { cloneDeep } from 'lodash-es';\nimport {\n Color,\n DEFAULT_COLOR,\n DEFAULT_LINEAR_GRADIENT,\n DEFAULT_SYSTEM_SWATCH_COLORS,\n getColorObject,\n GradientColorPoint,\n initColorFormat,\n TD_COLOR_USED_COLORS_MAX_SIZE,\n} from '@tdesign/common-js/color-picker/index';\nimport { useConfig, useVModel, useDefaultValue, useCommonClassName } from '@tdesign/hooks';\nimport props from '../../color-picker-panel-props';\nimport PanelHeader from './header';\nimport LinearGradient from './linear-gradient';\nimport SaturationPanel from './saturation';\nimport HueSlider from './hue';\nimport AlphaSlider from './alpha';\nimport FormatPanel from '../format';\nimport SwatchesPanel from './swatches';\nimport type { TdColorPickerProps, ColorPickerChangeTrigger } from '../../type';\nimport type { TdColorModes } from '../../types';\nimport { useBaseClassName } from '../../hooks';\n\nexport default defineComponent({\n name: 'ColorPanel',\n props: {\n ...props,\n togglePopup: {\n type: Function,\n },\n },\n setup(props) {\n const baseClassName = useBaseClassName();\n const { STATUS } = useCommonClassName();\n const { t, globalConfig } = useConfig('colorPicker');\n const statusClassNames = STATUS.value;\n const { value: inputValue, modelValue, recentColors } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(inputValue, modelValue, props.defaultValue, props.onChange);\n const [innerRecentColors, setInnerRecentColors] = useDefaultValue(\n recentColors,\n props.defaultRecentColors,\n props.onRecentColorsChange,\n 'recentColors',\n );\n\n const getModeByColor = (input: string) => {\n if (props.colorModes.length === 1) return props.colorModes[0];\n return props.colorModes.includes('linear-gradient') && Color.isGradientColor(input)\n ? 'linear-gradient'\n : 'monochrome';\n };\n const mode = ref(getModeByColor(innerValue.value));\n\n const isGradient = computed(() => mode.value === 'linear-gradient');\n const defaultEmptyColor = computed(() => (isGradient.value ? DEFAULT_LINEAR_GRADIENT : DEFAULT_COLOR));\n\n const color = ref(new Color(innerValue.value || defaultEmptyColor.value));\n\n const formatModel = ref(initColorFormat(props.format, props.enableAlpha));\n\n /**\n * 添加最近使用颜色\n * @returns void\n */\n const addRecentlyUsedColor = () => {\n if (innerRecentColors.value === null || innerRecentColors.value === false) {\n return;\n }\n const colors = cloneDeep(innerRecentColors.value as string[]) || [];\n const currentColor = color.value.isGradient ? color.value.linearGradient : color.value.rgba;\n const index = colors.indexOf(currentColor);\n if (index > -1) {\n colors.splice(index, 1);\n }\n colors.unshift(currentColor);\n if (colors.length > TD_COLOR_USED_COLORS_MAX_SIZE) {\n colors.length = TD_COLOR_USED_COLORS_MAX_SIZE;\n }\n handleRecentlyUsedColorsChange(colors);\n };\n\n /**\n * 最近使用颜色变更时触发\n * @param colors\n */\n const handleRecentlyUsedColorsChange = (colors: string[]) => {\n setInnerRecentColors(colors);\n };\n\n /**\n * onChange\n * @param trigger\n */\n const emitColorChange = (trigger?: ColorPickerChangeTrigger) => {\n const value = color.value.getFormattedColor(props.format, props.enableAlpha);\n setInnerValue(value, {\n color: getColorObject(color.value),\n trigger: trigger || 'palette-saturation-brightness',\n });\n };\n\n watch(\n () => innerValue.value,\n (newColor) => {\n const newMode = getModeByColor(newColor);\n mode.value = newMode;\n color.value.isGradient = newMode === 'linear-gradient';\n color.value.update(newColor);\n },\n );\n\n /**\n * mode change\n * @param newMode\n * @returns\n */\n const handleModeChange = (newMode: TdColorModes) => {\n mode.value = newMode;\n\n const isGradientMode = newMode === 'linear-gradient';\n color.value.isGradient = isGradientMode;\n\n if (isGradientMode) {\n color.value.update(\n color.value.gradientColors.length > 0 ? color.value.linearGradient : DEFAULT_LINEAR_GRADIENT,\n );\n } else {\n color.value.update(color.value.rgba);\n }\n\n emitColorChange();\n };\n\n /**\n * 饱和度亮度变化\n * @param param0\n */\n const handleSatAndValueChange = ({ saturation, value }: { saturation: number; value: number }) => {\n const { saturation: sat, value: val } = color.value;\n let changeTrigger: ColorPickerChangeTrigger = 'palette-saturation-brightness';\n if (value !== val && saturation !== sat) {\n color.value.saturation = saturation;\n color.value.value = value;\n changeTrigger = 'palette-saturation-brightness';\n } else if (saturation !== sat) {\n color.value.saturation = saturation;\n changeTrigger = 'palette-saturation';\n } else if (value !== val) {\n color.value.value = value;\n changeTrigger = 'palette-brightness';\n } else {\n return;\n }\n\n emitColorChange(changeTrigger);\n };\n\n /**\n * 色相变化\n * @param hue\n */\n const handleHueChange = (hue: number) => {\n color.value.hue = hue;\n emitColorChange('palette-hue-bar');\n props.onPaletteBarChange?.({\n color: getColorObject(color.value),\n });\n };\n\n /**\n * 透明度变化\n * @param alpha\n */\n const handleAlphaChange = (alpha: number) => {\n color.value.alpha = alpha;\n emitColorChange('palette-alpha-bar');\n };\n\n /**\n * 输入框触发改变\n * @param input\n * @param alpha\n */\n const handleInputChange = (input: string, alpha?: number) => {\n color.value.update(input);\n color.value.alpha = alpha;\n emitColorChange('input');\n };\n\n /**\n * 渐变改变\n * @param param0\n */\n const handleGradientChange = ({\n key,\n payload,\n }: {\n key: 'degree' | 'selectedId' | 'colors';\n payload: number | string | GradientColorPoint[];\n }) => {\n let trigger: ColorPickerChangeTrigger = 'palette-saturation-brightness';\n switch (key) {\n case 'degree':\n color.value.gradientDegree = payload as number;\n trigger = 'input';\n break;\n case 'selectedId':\n color.value.gradientSelectedId = payload as string;\n break;\n case 'colors':\n color.value.gradientColors = payload as GradientColorPoint[];\n break;\n }\n emitColorChange(trigger);\n };\n\n /**\n * 色块点击\n * @param type\n * @param value\n */\n const handleSetColor = (value: string, trigger: ColorPickerChangeTrigger) => {\n const newMode = getModeByColor(value);\n mode.value = newMode;\n color.value.isGradient = newMode === 'linear-gradient';\n color.value.update(value);\n emitColorChange(trigger);\n };\n\n return () => {\n const baseProps = {\n color: color.value,\n disabled: props.disabled,\n };\n\n // 只支持渐变模式\n const onlySupportGradient = props.colorModes.length === 1 && props.colorModes.includes('linear-gradient');\n\n // 最近使用颜色\n let recentColors = innerRecentColors.value;\n if (onlySupportGradient && Array.isArray(recentColors)) {\n recentColors = recentColors.filter((color) => Color.isGradientColor(color));\n }\n const showUsedColors = !!Array.isArray(recentColors);\n\n // 系统预设颜色\n let systemColors = props.swatchColors;\n if (systemColors === undefined) {\n systemColors = [...DEFAULT_SYSTEM_SWATCH_COLORS];\n }\n if (onlySupportGradient) {\n systemColors = systemColors.filter((color) => Color.isGradientColor(color));\n }\n const showSystemColors = Array.isArray(systemColors);\n\n const renderSwatches = () => {\n if (!showSystemColors && !showUsedColors) return null;\n return (\n <>\n
    \n {showUsedColors ? (\n handleSetColor(color, 'recent')}\n onChange={handleRecentlyUsedColorsChange}\n />\n ) : null}\n {showSystemColors ? (\n handleSetColor(color, 'preset')}\n />\n ) : null}\n
    \n \n );\n };\n\n return (\n
    \n \n
    \n {isGradient.value ? (\n \n ) : null}\n\n \n\n
    \n
    \n \n {props.enableAlpha ? : null}\n
    \n\n {props.showPrimaryColorPreview ? (\n
    \n \n
    \n ) : null}\n
    \n\n \n {renderSwatches()}\n
    \n
    \n );\n };\n },\n});\n","import { computed, defineComponent } from 'vue';\nimport props from './color-picker-panel-props';\nimport ColorPanel from './components/panel';\nimport { usePrefixClass } from '@tdesign/hooks';\nimport { pickBy } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TColorPickerPanel',\n inheritAttrs: false,\n props,\n setup(props, { attrs }) {\n const newProps = computed(() => pickBy({ ...props, ...attrs }, (v) => v !== undefined));\n const prefix = usePrefixClass();\n return () => ;\n },\n});\n","import arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport basePickBy from './_basePickBy.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\n\n/**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\nfunction pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = baseIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n}\n\nexport default pickBy;\n","import { defineComponent, PropType, ref, watch } from 'vue';\nimport TInput from '../../../input';\nimport { Color, getColorObject } from '../../utils';\nimport { TdColorPickerProps } from '../../type';\nimport { useBaseClassName } from '../../hooks';\nimport { useCommonClassName } from '@tdesign/hooks';\n\nexport default defineComponent({\n name: 'DefaultTrigger',\n inheritAttrs: false,\n props: {\n color: {\n type: String,\n default: '',\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n borderless: {\n type: Boolean,\n default: false,\n },\n clearable: {\n type: Boolean,\n default: false,\n },\n inputProps: {\n type: Object as PropType,\n default: () => {\n return {\n autoWidth: true,\n };\n },\n },\n onTriggerChange: {\n type: Function,\n default: () => {\n return () => {};\n },\n },\n onTriggerClear: {\n type: Function,\n default: () => {\n return () => {};\n },\n },\n size: {\n type: String as PropType,\n default: 'medium',\n },\n },\n setup(props) {\n const baseClassName = useBaseClassName();\n const value = ref(props.color);\n const { SIZE: sizeClassNames } = useCommonClassName();\n watch(\n () => [props.color],\n () => (value.value = props.color),\n );\n\n const handleChange = (input: string) => {\n if (input !== props.color) {\n props.onTriggerChange(value.value, {\n color: getColorObject(new Color(input)),\n trigger: 'input',\n });\n }\n };\n\n const handleClear = (context: { e: MouseEvent }) => props.onTriggerClear?.(context);\n\n return () => {\n const inputSlots = {\n label: () => {\n return (\n
    \n \n
    \n );\n },\n };\n return (\n \n );\n };\n },\n});\n","import { defineComponent, ref, toRefs } from 'vue';\nimport { useVModel, useDefaultValue, useTNodeDefault } from '@tdesign/hooks';\n\nimport props from './props';\nimport { Popup as TPopup } from '../popup';\nimport ColorPanel from './components/panel';\nimport DefaultTrigger from './components/trigger';\nimport { useBaseClassName } from './hooks';\n\nexport default defineComponent({\n name: 'TColorPicker',\n props,\n setup(props) {\n const baseClassName = useBaseClassName();\n const renderTNodeJSXDefault = useTNodeDefault();\n const visible = ref(false);\n const setVisible = (value: boolean) => (visible.value = value);\n\n const { value: inputValue, modelValue, recentColors } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(inputValue, modelValue, props.defaultValue, props.onChange);\n const [innerRecentColors, setInnerRecentColors] = useDefaultValue(\n recentColors,\n props.defaultRecentColors,\n props.onRecentColorsChange,\n 'recentColors',\n );\n\n const refTrigger = ref();\n\n const handleClear = (context: { e: MouseEvent }) => props.onClear?.(context);\n\n const renderPopupContent = () => {\n if (props.disabled) {\n return null;\n }\n\n return (\n \n );\n };\n\n return () => {\n const popProps = {\n placement: 'bottom-left',\n ...((props.popupProps as any) || {}),\n trigger: 'click',\n attach: 'body',\n overlayClassName: [baseClassName.value],\n visible: visible.value,\n overlayInnerStyle: {\n padding: 0,\n },\n onVisibleChange: (\n visible: boolean,\n context: {\n trigger: string;\n },\n ) => {\n if (context.trigger === 'document') {\n setVisible(false);\n }\n },\n };\n return (\n \n
    setVisible(!visible.value)} ref={refTrigger}>\n {renderTNodeJSXDefault(\n 'default',\n ,\n )}\n
    \n
    \n );\n };\n },\n});\n","import _ColorPickerPanel from './color-picker-panel';\nimport _ColorPicker from './color-picker';\nimport withInstall from '../utils/withInstall';\nimport { TdColorPickerProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type ColorPickerProps = TdColorPickerProps;\nexport type ColorPickerPanelProps = TdColorPickerProps;\n\nexport const ColorPickerPanel = withInstall(_ColorPickerPanel);\nexport const ColorPicker = withInstall(_ColorPicker);\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdAvatarProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 头像替换文本,仅当图片加载失败时有效 */\n alt: {\n type: String,\n default: '',\n },\n /** 子元素内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 子元素内容,同 content */\n default: {\n type: [String, Function] as PropType,\n },\n /** 加载失败时隐藏图片 */\n hideOnLoadFailed: Boolean,\n /** 图标 */\n icon: {\n type: Function as PropType,\n },\n /** 图片地址 */\n image: {\n type: String,\n default: '',\n },\n /** 透传至 Image 组件 */\n imageProps: {\n type: Object as PropType,\n },\n /** 形状 */\n shape: {\n type: String as PropType,\n default: 'circle' as TdAvatarProps['shape'],\n validator(val: TdAvatarProps['shape']): boolean {\n if (!val) return true;\n return ['circle', 'round'].includes(val);\n },\n },\n /** 尺寸,示例值:small/medium/large/24px/38px 等。优先级高于 AvatarGroup.size 。Avatar 单独存在时,默认值为 medium。如果父组件存在 AvatarGroup,默认值便由 AvatarGroup.size 决定 */\n size: {\n type: String,\n default: '',\n },\n /** 图片加载失败时触发 */\n onError: Function as PropType,\n};\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdImageProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 图片描述 */\n alt: {\n type: String,\n default: '',\n },\n /** 自定义图片加载失败状态下的显示内容 */\n error: {\n type: [String, Function] as PropType,\n },\n /** 图片加载失败时,显示当前链接设置的图片地址。如果要使用组件图标或完全自定义加载失败时显示的内容,请更为使用 `error` */\n fallback: {\n type: String,\n default: '',\n },\n /** 图片填充模式 */\n fit: {\n type: String as PropType,\n default: 'fill' as TdImageProps['fit'],\n validator(val: TdImageProps['fit']): boolean {\n if (!val) return true;\n return ['contain', 'cover', 'fill', 'none', 'scale-down'].includes(val);\n },\n },\n /** 是否展示为图集样式 */\n gallery: Boolean,\n /** 是否开启图片懒加载 */\n lazy: Boolean,\n /** 自定义加载中状态的图片内容,如:“加载中” */\n loading: {\n type: [String, Function] as PropType,\n },\n /** 图片上方的浮层内容 */\n overlayContent: {\n type: [String, Function] as PropType,\n },\n /** 浮层 `overlayContent` 出现的时机 */\n overlayTrigger: {\n type: String as PropType,\n default: 'always' as TdImageProps['overlayTrigger'],\n validator(val: TdImageProps['overlayTrigger']): boolean {\n if (!val) return true;\n return ['always', 'hover'].includes(val);\n },\n },\n /** 占位元素,展示层级低于 `loading` `error` 和图片本身,值类型为字符串时表示占位图片地址 */\n placeholder: {\n type: [String, Function] as PropType,\n },\n /** 等同于原生的 object-position 属性,可选值为 top right bottom left 或 string,可以自定义任何单位,px 或者 百分比 */\n position: {\n type: String,\n default: 'center',\n },\n /** `` 标签的原生属性,[MDN 定义](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy) */\n referrerpolicy: {\n type: String as PropType,\n default: 'strict-origin-when-cross-origin' as TdImageProps['referrerpolicy'],\n validator(val: TdImageProps['referrerpolicy']): boolean {\n if (!val) return true;\n return [\n 'no-referrer',\n 'no-referrer-when-downgrade',\n 'origin',\n 'origin-when-cross-origin',\n 'same-origin',\n 'strict-origin',\n 'strict-origin-when-cross-origin',\n 'unsafe-url',\n ].includes(val);\n },\n },\n /** 图片圆角类型 */\n shape: {\n type: String as PropType,\n default: 'square' as TdImageProps['shape'],\n validator(val: TdImageProps['shape']): boolean {\n if (!val) return true;\n return ['circle', 'round', 'square'].includes(val);\n },\n },\n /** 用于显示图片的链接或原始图片文件对象 */\n src: {\n type: [String, Object] as PropType,\n },\n /** 图片链接集合,用于支持特殊格式的图片,如 `.avif` 和 `.webp`。会优先加载 `srcset` 中的图片格式,浏览器不支持的情况下,加载 `src` 设置的图片地址 */\n srcset: {\n type: Object as PropType,\n },\n /** 图片加载失败时触发 */\n onError: Function as PropType,\n /** 图片加载完成时触发 */\n onLoad: Function as PropType,\n};\n","import { defineComponent, ref, onMounted, computed, onUnmounted, watch, toRefs } from 'vue';\nimport { omit, isString, isFunction } from 'lodash-es';\n\nimport { ImageErrorIcon, ImageIcon } from 'tdesign-icons-vue-next';\nimport observe from '@tdesign/common-js/utils/observe';\nimport { useConfig } from '../config-provider/hooks/useConfig';\nimport { useTNodeJSX, useTNodeDefault, useImagePreviewUrl } from '@tdesign/hooks';\nimport props from './props';\nimport Space from '../space';\n\nexport default defineComponent({\n name: 'TImage',\n props,\n setup(props) {\n const divRef = ref(null);\n const imgRef = ref(null);\n let io: IntersectionObserver = null;\n\n const { src } = toRefs(props);\n\n const renderTNodeJSX = useTNodeJSX();\n\n onMounted(() => {\n //在nuxt3中img的onload事件会失效\n if (imgRef.value?.complete && !props.lazy) {\n triggerHandleLoad();\n }\n\n if (!props.lazy || !divRef.value) return;\n\n const ioObserver = observe(divRef.value, null, handleLoadImage, 0);\n io = ioObserver;\n });\n onUnmounted(() => {\n divRef.value && io && io.unobserve(divRef.value);\n });\n\n const { classPrefix, globalConfig } = useConfig('image');\n\n // replace image url\n const imageStrSrc = ref(src.value);\n\n watch(\n [src, globalConfig],\n ([src, globalConfig]) => {\n const { replaceImageSrc } = globalConfig || {};\n const tmpUrl = isFunction(replaceImageSrc) ? replaceImageSrc(props) : src;\n if (tmpUrl === imageStrSrc.value && imageStrSrc.value) return;\n imageStrSrc.value = tmpUrl;\n },\n { immediate: true },\n );\n\n const { previewUrl } = useImagePreviewUrl(imageStrSrc);\n\n watch([previewUrl], () => {\n hasError.value = false;\n isLoaded.value = false;\n });\n\n const shouldLoad = ref(!props.lazy);\n const handleLoadImage = () => {\n shouldLoad.value = true;\n };\n\n const isLoaded = ref(false);\n const handleLoad = (e: Event) => {\n isLoaded.value = true;\n props.onLoad?.({ e });\n };\n const triggerHandleLoad = () => {\n const loadEvent = new Event('load');\n Object.defineProperty(loadEvent, 'target', {\n value: imgRef.value,\n enumerable: true,\n });\n handleLoad(loadEvent);\n };\n const hasError = ref(false);\n const handleError = (e: Event) => {\n hasError.value = true;\n props.onError?.({ e });\n if (props.fallback) {\n imageStrSrc.value = props.fallback;\n hasError.value = false;\n }\n };\n\n const hasMouseEvent = computed(() => {\n return props.overlayTrigger === 'hover';\n });\n\n const imageClasses = computed(() => [\n `${classPrefix.value}-image`,\n `${classPrefix.value}-image--fit-${props.fit}`,\n `${classPrefix.value}-image--position-${props.position}`,\n ]);\n\n const shouldShowOverlay = ref(!hasMouseEvent.value);\n const handleToggleOverlay = () => {\n if (hasMouseEvent.value) {\n shouldShowOverlay.value = !shouldShowOverlay.value;\n }\n };\n\n const renderPlaceholder = () => {\n const placeholder = renderTNodeJSX('placeholder');\n if (!placeholder) return null;\n return
    {placeholder}
    ;\n };\n\n const renderGalleryShadow = () => {\n if (!props.gallery) return null;\n return \n );\n };\n\n function renderImageSrcset() {\n return (\n \n {Object.entries(props.srcset).map(([type, url]) => (\n \n ))}\n {renderImage()}\n \n );\n }\n\n function renderImage() {\n // string | File\n const url = isString(imageStrSrc.value) ? imageStrSrc.value : previewUrl.value;\n return (\n \n );\n }\n\n const renderTNodDefault = useTNodeDefault();\n\n return () => {\n return (\n \n {renderPlaceholder()}\n {renderGalleryShadow()}\n\n {(hasError.value || !shouldLoad.value) &&
    }\n {!(hasError.value || !shouldLoad.value) &&\n (props.srcset && Object.keys(props.srcset).length ? renderImageSrcset() : renderImage())}\n {!(hasError.value || !shouldLoad.value) && !isLoaded.value && (\n
    \n {renderTNodeJSX('loading') || (\n \n \n {isString(props.loading) ? props.loading : globalConfig.value.loadingText}\n \n )}\n
    \n )}\n\n {hasError.value && (\n
    \n {renderTNodDefault('error', {\n defaultNode: (\n \n \n {isString(props.error) ? props.error : globalConfig.value.errorText}\n \n ),\n })}\n
    \n )}\n\n {renderOverlay()}\n
    \n );\n };\n },\n});\n","import _Image from './image';\nimport withInstall from '../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 { useContent, useTNodeJSX, usePrefixClass, useCommonClassName } from '@tdesign/hooks';\n\nimport Image, { ImageProps } from '../image';\n\nexport default defineComponent({\n name: 'TAvatar',\n props,\n setup(props: TdAvatarProps) {\n const COMPONENT_NAME = usePrefixClass('avatar');\n const renderContent = useContent();\n const renderTNodeJSX = useTNodeJSX();\n const { SIZE } = useCommonClassName();\n const avatarGroup = inject('avatarGroup', undefined);\n const avatar = ref(null);\n const avatarChild = ref(null);\n const isImgExist = ref(true);\n // 内容区在左右两边的间距保持为4\n const gap = ref(4);\n const scale = ref('');\n\n const sizeValue = computed(() => props.size || avatarGroup?.size);\n const isCustomSize = computed(() => sizeValue.value && !SIZE.value[sizeValue.value]);\n\n const customAvatarSize = computed(() => {\n return isCustomSize.value\n ? {\n width: sizeValue.value,\n height: sizeValue.value,\n 'font-size': `${Number.parseInt(sizeValue.value, 10) / 2}px`,\n }\n : {};\n });\n const customImageSize = computed(() => {\n return isCustomSize.value\n ? {\n height: sizeValue.value,\n width: sizeValue.value,\n }\n : {};\n });\n const customCharacterSize = computed(() => {\n return {\n transform: scale.value,\n };\n });\n\n const handleImgLoadError: ImageProps['onError'] = ({ e }) => {\n const { hideOnLoadFailed } = props;\n isImgExist.value = !hideOnLoadFailed;\n props.onError?.({ e });\n };\n // 设置字符头像大小自适应\n const setScaleParams = () => {\n const $avatar = avatar.value as HTMLElement;\n const $avatarChild = avatarChild.value as HTMLElement;\n const avatarWidth = $avatar?.offsetWidth;\n const avatarChildWidth = $avatarChild?.offsetWidth;\n if (gap.value * 2 < avatarWidth) {\n scale.value =\n avatarChildWidth > avatarWidth - gap.value * 2\n ? `scale(${(avatarWidth - gap.value * 2) / avatarChildWidth})`\n : 'scale(1)';\n }\n };\n\n onMounted(() => {\n nextTick(() => {\n setScaleParams();\n });\n });\n\n onUpdated(() => {\n nextTick(() => {\n setScaleParams();\n });\n });\n\n watch(\n () => props.image,\n (val) => {\n if (val) {\n // 重置 flag,避免切换后无法渲染\n isImgExist.value = true;\n }\n },\n );\n\n return () => {\n let content = renderContent('default', 'content');\n const icon = renderTNodeJSX('icon');\n const isIconOnly = icon && !content;\n const { shape, image, alt } = props;\n const avatarClass = [\n `${COMPONENT_NAME.value}`,\n SIZE.value[sizeValue.value],\n {\n [`${COMPONENT_NAME.value}--circle`]: shape === 'circle',\n [`${COMPONENT_NAME.value}--round`]: shape === 'round',\n [`${COMPONENT_NAME.value}__icon`]: !!isIconOnly,\n },\n ];\n content = (\n \n {content}\n \n );\n if (icon) {\n content = [icon, !isIconOnly ? content : ''];\n }\n\n if (image && isImgExist.value) {\n content = (\n \n );\n }\n return (\n
    \n {content}\n
    \n );\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdAvatarGroupProps } from '../avatar/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 图片之间的层叠关系,可选值:左侧图片在上和右侧图片在上 */\n cascading: {\n type: String as PropType,\n default: 'right-up' as TdAvatarGroupProps['cascading'],\n validator(val: TdAvatarGroupProps['cascading']): boolean {\n if (!val) return true;\n return ['left-up', 'right-up'].includes(val);\n },\n },\n /** 头像数量超出时,会出现一个头像折叠元素。该元素内容可自定义。默认为 `+N`。示例:`+5`,`...`, `更多` */\n collapseAvatar: {\n type: [String, Function] as PropType,\n },\n /** 能够同时显示的最多头像数量 */\n max: {\n type: Number,\n },\n /** 头像右上角提示信息 */\n popupProps: {\n type: Object as PropType,\n },\n /** 尺寸,示例值:small/medium/large/24px/38px 等。优先级低于 Avatar.size */\n size: {\n type: String,\n default: '',\n },\n};\n","import { defineComponent, provide, VNode } from 'vue';\nimport props from './avatar-group-props';\nimport Avatar from './avatar';\nimport { useTNodeJSX, usePrefixClass } from '@tdesign/hooks';\n\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, usePrefixClass } from '@tdesign/hooks';\n\nexport default defineComponent({\n name: 'TBadge',\n inheritAttrs: false,\n props,\n setup(props, { attrs }) {\n const renderContent = useContent();\n const renderTNodeJSX = useTNodeJSX();\n\n /** 内容计算相关逻辑 start */\n const displayCount = computed(() => {\n let count = renderTNodeJSX('count');\n\n if (Number.isNaN(Number(count))) {\n return count;\n }\n count = Number(props.count);\n return count > props.maxCount ? `${props.maxCount}+` : count;\n });\n\n const getOffset = () => {\n if (!props.offset) return {};\n let [xOffset, yOffset]: Array = props.offset;\n xOffset = Number.isNaN(Number(xOffset)) ? xOffset : `${xOffset}px`;\n yOffset = Number.isNaN(Number(yOffset)) ? yOffset : `${yOffset}px`;\n return { xOffset, yOffset };\n };\n /** 内容计算相关逻辑 end */\n\n /** 样式计算相关逻辑 start */\n const classPrefix = usePrefixClass();\n const COMPONENT_NAME = usePrefixClass('badge');\n const isHidden = computed(() => {\n return !props.showZero && (displayCount.value === 0 || displayCount.value === '0');\n });\n\n const badgeClassNames = computed(() => {\n return [\n {\n [`${COMPONENT_NAME.value}--dot`]: !!props.dot,\n [`${COMPONENT_NAME.value}--circle`]: !props.dot && props.shape === 'circle',\n [`${COMPONENT_NAME.value}--round`]: !props.dot && props.shape === 'round',\n [`${classPrefix.value}-size-s`]: props.size === 'small',\n },\n ];\n });\n\n const inlineStyle = computed(() => {\n const { xOffset, yOffset } = getOffset();\n return {\n background: props.color,\n right: xOffset,\n top: yOffset,\n };\n });\n /** 样式计算相关逻辑 end */\n\n return () => (\n
    \n {renderContent('default', 'content')}\n {isHidden.value ? null : (\n \n {props.dot ? null : displayCount.value}\n \n )}\n
    \n );\n },\n});\n","import _Badge from './badge';\nimport withInstall from '../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 '@tdesign/hooks';\nimport { COMPONENT_NAME } from '../consts';\nimport { createDefaultCurDate } from '../utils';\nimport { TdCalendarProps } from '../type';\nimport { CalendarState } from '../types';\nimport { isArray } from 'lodash-es';\n\nexport function useState(props: TdCalendarProps) {\n const { globalConfig } = useConfig(COMPONENT_NAME);\n\n const state = reactive({\n realFirstDayOfWeek: 1,\n curDate: null,\n curDateList: [],\n curSelectedYear: null,\n curSelectedMonth: null,\n curSelectedMode: null,\n isShowWeekend: true,\n controlSize: 'medium',\n });\n\n function toToday() {\n const curDate = createDefaultCurDate();\n state.curDate = curDate;\n state.curSelectedYear = curDate.year();\n state.curSelectedMonth = parseInt(curDate.format('M'), 10);\n }\n\n function setCurSelectedYear(year?: TdCalendarProps['year']) {\n const curSelectedYear = year ? parseInt(`${year}`, 10) : createDefaultCurDate().year();\n if (!isNaN(curSelectedYear) && curSelectedYear > 0) {\n state.curSelectedYear = curSelectedYear;\n }\n }\n\n function setCurSelectedMonth(month?: TdCalendarProps['month']) {\n const curSelectedMonth = month ? parseInt(`${month}`, 10) : parseInt(createDefaultCurDate().format('M'), 10);\n if (!isNaN(curSelectedMonth) && curSelectedMonth > 0 && curSelectedMonth <= 12) {\n state.curSelectedMonth = curSelectedMonth;\n }\n }\n\n function setCurrentDate(value?: TdCalendarProps['value']): void {\n if (isArray(value)) {\n state.curDate = value && value.length ? dayjs(value[0]) : createDefaultCurDate();\n } else {\n state.curDate = value ? dayjs(value) : createDefaultCurDate();\n }\n }\n\n function setCurrentDateList(value?: TdCalendarProps['value']): void {\n if (isArray(value)) {\n state.curDateList = value && value.length ? value.map((item) => dayjs(item)) : [createDefaultCurDate()];\n } else {\n state.curDateList = value ? [dayjs(value)] : [createDefaultCurDate()];\n }\n }\n\n function checkDayVisible(day: number) {\n let re = true;\n if (!state.isShowWeekend) {\n re = day !== 6 && day !== 7;\n }\n return re;\n }\n\n watch(\n () => props.firstDayOfWeek,\n () => {\n state.realFirstDayOfWeek = props.firstDayOfWeek ?? globalConfig.value.firstDayOfWeek ?? 1;\n },\n { immediate: true },\n );\n watch(\n () => props.value,\n (v: TdCalendarProps['value']) => {\n if (props.multiple) {\n setCurrentDateList(v);\n } else {\n setCurrentDate(v);\n }\n },\n { immediate: true },\n );\n watch(\n () => props.year,\n (v: TdCalendarProps['year']) => {\n setCurSelectedYear(v);\n },\n { immediate: true },\n );\n watch(\n () => props.month,\n (v: TdCalendarProps['month']) => {\n setCurSelectedMonth(v);\n },\n { immediate: true },\n );\n watch(\n () => props.isShowWeekendDefault,\n (v: TdCalendarProps['isShowWeekendDefault']) => {\n state.isShowWeekend = v;\n },\n { immediate: true },\n );\n watch(\n () => props.mode,\n (v: TdCalendarProps['mode']) => {\n state.curSelectedMode = v;\n },\n { immediate: true },\n );\n watch(\n () => props.theme,\n (v: TdCalendarProps['theme']) => {\n if (v === 'card') state.controlSize = 'small';\n if (v === 'full') state.controlSize = 'medium';\n },\n { immediate: true },\n );\n return {\n state,\n toToday,\n checkDayVisible,\n };\n}\n","import { isBoolean, isFunction } from 'lodash-es';\n\nimport { computed, nextTick } from 'vue';\nimport dayjs from 'dayjs';\nimport { COMPONENT_NAME } from '../consts';\nimport { CalendarState } from '../types';\nimport { TdCalendarProps, ControllerOptions } from '../type';\nimport { useConfig } from '@tdesign/hooks';\n\nconst getDefaultControllerConfigData = (visible = true): Record => ({\n visible, // 是否显示(全部控件)\n disabled: false, // 是否禁用(全部控件)\n // 模式切换单选组件设置\n mode: {\n visible: true, // 是否显示\n radioGroupProps: {}, // 用于透传props给该radioGroup组件\n },\n // 年份选择框组件相关设置\n year: {\n visible: true, // 是否显示\n selectProps: {}, // 用于透传props给该select组件\n },\n // 年份选择框组件相关设置\n month: {\n visible: true, // 是否显示(“year”模式下本身是不显示该组件的)\n selectProps: {}, // 用于透传props给该select组件\n },\n // 隐藏\\显示周末按钮组件相关设置\n weekend: {\n visible: true, // 是否显示\n showWeekendButtonProps: {}, // 用于透传props给显示周末按钮组件\n hideWeekendButtonProps: {}, // 用于透传props给隐藏周末按钮组件\n },\n // “今天\\本月”按钮组件相关设置\n current: {\n visible: true, // 是否显示\n currentDayButtonProps: {}, // 用于透传props给“今天”钮组件(“month”模式下有效)\n currentMonthButtonProps: {}, // 用于透传props给“本月”按钮组件(“year”模式下有效)\n },\n});\n\nexport function userController(props: TdCalendarProps, state: CalendarState) {\n const { globalConfig } = useConfig(COMPONENT_NAME);\n\n const options = computed(() => {\n const dayJsFilterDate = dayjs(`${state.curSelectedYear}-${state.curSelectedMonth}`);\n const re = {\n isShowWeekend: state.isShowWeekend,\n filterDate: dayJsFilterDate.toDate(),\n formattedFilterDate: dayJsFilterDate.format(props.format),\n mode: state.curSelectedMode,\n };\n return re;\n });\n const configData = computed>(() => {\n const controllerConfig = props.controllerConfig ?? globalConfig.value.controllerConfig ?? true;\n if (isBoolean(controllerConfig)) {\n return getDefaultControllerConfigData(controllerConfig);\n }\n return {\n ...getDefaultControllerConfigData(),\n ...controllerConfig,\n };\n });\n const visible = computed(() => {\n return !!configData.value && configData.value.visible;\n });\n /**\n * 判断某个控件是否显示\n * @param name 控件对应的配置节点名(对应controllerConfigData)\n * @returns true表示显示\n */\n function checkControllerVisible(name: string): boolean {\n let re = true;\n const conf = configData.value;\n if (!conf || !conf.visible || conf[name] === false || (conf[name] && !conf[name].visible)) {\n re = false;\n }\n return re;\n }\n /**\n * 判断某个控件是否禁用\n * @param name 控件对应的配置节点名(对应controllerConfigData)\n * @param propsName 表示禁用的控件属性(对应controllerConfigData)\n * @returns true表示禁用\n */\n function checkControllerDisabled(name: string, propsName: string): boolean {\n let re = false;\n const conf = configData.value;\n if (conf && (conf.disabled || (conf[name] && conf[name][propsName] && conf[name][propsName].disabled))) {\n re = true;\n }\n return re;\n }\n function emitControllerChange() {\n nextTick(() => {\n isFunction(props.onControllerChange) && props.onControllerChange({ ...options.value });\n });\n }\n\n return {\n options,\n configData,\n visible,\n checkControllerVisible,\n checkControllerDisabled,\n emitControllerChange,\n };\n}\n","import { computed } from 'vue';\n\nimport { CellColHeader, CalendarState } from '../types';\nimport { TdCalendarProps, WeekDay } from '../type';\nimport { useConfig } from '@tdesign/hooks';\nimport { COMPONENT_NAME } from '../consts';\nimport * as utils from '../utils';\nimport { isObject } from 'lodash-es';\n\nexport function useColHeaders(props: TdCalendarProps, state: CalendarState) {\n const { t, globalConfig } = useConfig(COMPONENT_NAME);\n\n const weekDisplayText = computed(() => {\n return props.week || t(globalConfig.value.week).split(',');\n });\n function getWeekDisplay(weekNum: number): string {\n const weekText = weekDisplayText.value as string[];\n return isObject(weekText) && weekText[weekNum - 1] ? weekText[weekNum - 1] : utils.getDayCn(weekNum);\n }\n const cellColHeaders = computed(() => {\n const re: CellColHeader[] = [];\n const min: WeekDay = 1;\n const max: WeekDay = 7;\n\n for (let i = state.realFirstDayOfWeek; i <= max; i++) {\n re.push({\n num: i as WeekDay,\n display: getWeekDisplay(i),\n });\n }\n if (state.realFirstDayOfWeek > min) {\n for (let i = min; i < state.realFirstDayOfWeek; i++) {\n re.push({\n num: i as WeekDay,\n display: getWeekDisplay(i),\n });\n }\n }\n return re;\n });\n\n return {\n cellColHeaders,\n };\n}\n","import { computed, defineComponent } from 'vue';\nimport dayjs from 'dayjs';\n\nimport { useContent, useCommonClassName } from '@tdesign/hooks';\n\nimport { useCalendarCellClass } from './hooks';\n\n// 组件相关的自定义类型\nimport { CalendarCell } from './type';\n\nconst clickTypeEmitEventMap = {\n click: 'click',\n dblclick: 'dblclick',\n contextmenu: 'rightclick',\n};\n\nexport default defineComponent({\n name: `TCalendarCell`,\n inheritAttrs: false,\n props: {\n item: {\n type: Object,\n default: (): CalendarCell => null,\n },\n fillWithZero: {\n type: Boolean,\n default: undefined,\n },\n theme: {\n type: String,\n default: (): string => null,\n },\n t: Function,\n global: Object,\n cell: [String, Function],\n cellAppend: [String, Function],\n },\n emits: [...Object.values(clickTypeEmitEventMap)],\n setup(props, { emit }) {\n const renderContent = useContent();\n const cls = useCalendarCellClass();\n const { STATUS } = useCommonClassName();\n\n const valueDisplay = computed(() => {\n if (props.item.mode === 'month') {\n const dateNum = props.item.date.getDate();\n const fillZero = dateNum < 10 && (props.fillWithZero ?? props.global.fillWithZero ?? true);\n return fillZero ? `0${dateNum}` : dateNum;\n }\n const map = props.t(props.global.cellMonth).split(',');\n return map[props.item.date.getMonth().toString()];\n });\n const allowSlot = computed(() => {\n return props.theme === 'full';\n });\n const disabled = computed(() => {\n return props.item.mode === 'month' && props.item.belongTo !== 0;\n });\n const cellCls = computed(() => {\n const { mode, date, formattedDate, isCurrent } = props.item;\n const now = new Date();\n const isNow =\n mode === 'year'\n ? now.getMonth() === date.getMonth() && now.getFullYear() === date.getFullYear()\n : formattedDate === dayjs().format('YYYY-MM-DD');\n return [\n cls.tableBodyCell.value,\n {\n [STATUS.value.disabled]: disabled.value,\n [STATUS.value.checked]: isCurrent,\n [cls.tableBodyCell4Now.value]: isNow,\n },\n ];\n });\n const clickCell = (e: MouseEvent): void => {\n if (disabled.value) return;\n const emitName = clickTypeEmitEventMap[e.type as keyof typeof clickTypeEmitEventMap];\n emit(emitName, e);\n };\n\n const renderDefaultNode = () => (\n <>\n
    {valueDisplay.value}
    \n
    \n {allowSlot.value &&\n renderContent('cellAppend', undefined, {\n params: { ...props.item },\n })}\n
    \n \n );\n\n return () => {\n return (\n props.item && (\n \n {renderContent('cell', undefined, {\n defaultNode: renderDefaultNode(),\n params: { ...props.item },\n })}\n \n )\n );\n };\n },\n});\n","import { computed } from 'vue';\n\nimport { usePrefixClass } from '@tdesign/hooks';\nimport { CalendarState } from '../types';\nimport { TdCalendarProps } from '../type';\nimport { COMPONENT_NAME } from '../consts';\n\nexport function useCalendarClass(props: TdCalendarProps, state: CalendarState) {\n const prefixClass = usePrefixClass(COMPONENT_NAME);\n\n const body = computed(() => {\n return [`${prefixClass.value}`, `${prefixClass.value}--${props.theme}`];\n });\n const panel = computed(() => {\n return [`${prefixClass.value}__panel`, `${prefixClass.value}__panel--${state.curSelectedMode}`];\n });\n const control = computed(() => {\n return [`${prefixClass.value}__control`];\n });\n const title = computed(() => {\n return [`${prefixClass.value}__title`];\n });\n const controlSection = computed(() => {\n return [`${prefixClass.value}__control-section`];\n });\n const controlSectionCell = computed(() => {\n return [`${prefixClass.value}__control-section-cell`];\n });\n const controlTag = computed(() => {\n return [`${prefixClass.value}__control-tag`];\n });\n const table = computed(() => {\n return [`${prefixClass.value}__table`];\n });\n const tableHead = computed(() => {\n return [`${prefixClass.value}__table-head`];\n });\n const tableHeadRow = computed(() => {\n return [`${prefixClass.value}__table-head-row`];\n });\n const tableHeadCell = computed(() => {\n return [`${prefixClass.value}__table-head-cell`];\n });\n const tableBody = computed(() => {\n return [`${prefixClass.value}__table-body`];\n });\n const tableBodyRow = computed(() => {\n return [`${prefixClass.value}__table-body-row`];\n });\n\n return {\n body,\n panel,\n control,\n title,\n controlSection,\n controlSectionCell,\n controlTag,\n table,\n tableHead,\n tableHeadRow,\n tableHeadCell,\n tableBody,\n tableBodyRow,\n };\n}\n\nexport function useCalendarCellClass() {\n const prefixClass = usePrefixClass(COMPONENT_NAME);\n\n const tableBodyCell = computed(() => {\n return [`${prefixClass.value}__table-body-cell`];\n });\n const tableBodyCell4Now = computed(() => {\n return `${prefixClass.value}__table-body-cell--now`;\n });\n const tableBodyCellDisplay = computed(() => {\n return [`${prefixClass.value}__table-body-cell-display`];\n });\n const tableBodyCellCsontent = computed(() => {\n return [`${prefixClass.value}__table-body-cell-content`];\n });\n\n return {\n tableBodyCell,\n tableBodyCell4Now,\n tableBodyCellDisplay,\n tableBodyCellCsontent,\n };\n}\n","import { defineComponent, computed, watch } from 'vue';\n// 通用库\nimport dayjs from 'dayjs';\nimport { remove, isArray, isFunction } from 'lodash-es';\n\nimport props from './props';\nimport * as utils from './utils';\nimport { useConfig, useContent } from '@tdesign/hooks';\n\nimport { useState, useCalendarClass, userController, useColHeaders } from './hooks';\n\n// 组件的一些常量\nimport {\n COMPONENT_NAME,\n MIN_YEAR,\n FIRST_MONTH_OF_YEAR,\n LAST_MONTH_OF_YEAR,\n DEFAULT_YEAR_CELL_NUMINROW,\n} from './consts';\n\n// 子组件\nimport { Select as TSelect } from '../select';\nimport { RadioGroup as TRadioGroup, RadioButton as TRadioButton } from '../radio';\nimport { Button as TButton } from '../button';\nimport { CheckTag as TCheckTag } from '../tag';\nimport CalendarCellItem from './calendar-cell';\n\n// 组件相关类型\nimport { CalendarCell } from './type';\nimport { CalendarRange, YearMonthOption, ModeOption, CellEventOption } from './types';\n\n// 组件逻辑\nexport default defineComponent({\n name: 'TCalendar',\n props,\n setup(props, { slots }) {\n const renderContent = useContent();\n const { t, globalConfig } = useConfig(COMPONENT_NAME);\n // 组件内部状态管理\n const { state, toToday, checkDayVisible } = useState(props);\n\n // 样式\n const cls = useCalendarClass(props, state);\n\n // 日历主体头部(日历模式下使用)\n const { cellColHeaders } = useColHeaders(props, state);\n\n // 日历控件栏(右上角)\n const controller = userController(props, state);\n\n // 年\\月份下拉框\n const rangeFromTo = computed(() => {\n if (!props.range || props.range.length < 2) {\n return null;\n }\n const [v1, v2] = props.range;\n if (dayjs(v1).isBefore(dayjs(v2))) {\n return {\n from: v1,\n to: v2,\n };\n }\n return {\n from: v2,\n to: v1,\n };\n });\n function checkMonthAndYearSelectedDisabled(year: number, month: number): boolean {\n let disabled = false;\n if (rangeFromTo.value && rangeFromTo.value.from && rangeFromTo.value.to) {\n const beginYear = dayjs(rangeFromTo.value.from).year();\n const endYear = dayjs(rangeFromTo.value.to).year();\n if (year === beginYear) {\n const beginMon = parseInt(dayjs(rangeFromTo.value.from).format('M'), 10);\n disabled = month < beginMon;\n } else if (year === endYear) {\n const endMon = parseInt(dayjs(rangeFromTo.value.to).format('M'), 10);\n disabled = month > endMon;\n }\n }\n return disabled;\n }\n // 当存在日期范围限制时,改变年份后应将月份调整为合法月份\n function adjustMonth(): void {\n if (rangeFromTo.value?.from && rangeFromTo.value?.to) {\n const beginYear = dayjs(rangeFromTo.value.from).year();\n const endYear = dayjs(rangeFromTo.value.to).year();\n const beginMon = parseInt(dayjs(rangeFromTo.value.from).format('M'), 10);\n if (checkMonthAndYearSelectedDisabled(state.curSelectedYear, state.curSelectedMonth)) {\n state.curSelectedMonth =\n state.curSelectedYear === beginYear\n ? beginMon\n : state.curSelectedYear === endYear\n ? 1\n : state.curSelectedMonth;\n }\n }\n }\n watch(\n () => {\n return {\n year: `${state.curSelectedYear}`,\n month: `${state.curSelectedMonth}`,\n };\n },\n (v: { month: string; year: string }) => {\n isFunction(props.onMonthChange) && props.onMonthChange({ ...v });\n controller.emitControllerChange();\n },\n );\n const dateSelect = {\n yearSelectOptionList: computed(() => {\n const re: YearMonthOption[] = [];\n let begin: number = state.curSelectedYear - 10;\n let end: number = state.curSelectedYear + 10;\n if (rangeFromTo.value && rangeFromTo.value.from && rangeFromTo.value.to) {\n begin = dayjs(rangeFromTo.value.from).year();\n end = dayjs(rangeFromTo.value.to).year();\n }\n\n if (begin < MIN_YEAR) {\n begin = MIN_YEAR;\n }\n if (end < MIN_YEAR) {\n end = MIN_YEAR;\n }\n\n for (let i = begin; i <= end; i++) {\n re.push({\n value: i,\n label: t(globalConfig.value.yearSelection, { year: i }),\n disabled: false,\n });\n }\n return re;\n }),\n isYearSelectVisible: computed(() => {\n return controller.checkControllerVisible('year');\n }),\n isYearSelectDisabled: computed(() => {\n return controller.checkControllerDisabled('year', 'selectProps');\n }),\n monthSelectOptionList: computed(() => {\n adjustMonth();\n const re: YearMonthOption[] = [];\n for (let i = FIRST_MONTH_OF_YEAR; i <= LAST_MONTH_OF_YEAR; i++) {\n const disabled = checkMonthAndYearSelectedDisabled(state.curSelectedYear, i);\n re.push({\n value: i,\n label: t(globalConfig.value.monthSelection, { month: i }),\n disabled,\n });\n }\n return re;\n }),\n isMonthSelectVisible: computed(() => {\n return state.curSelectedMode === 'month' && controller.checkControllerVisible('month');\n }),\n isMonthSelectDisabled: computed(() => {\n return controller.checkControllerDisabled('month', 'selectProps');\n }),\n };\n // 模式选项\n const modeSelect = {\n optionList: computed(() => {\n return [\n { value: 'month', label: t(globalConfig.value.monthRadio) },\n { value: 'year', label: t(globalConfig.value.yearRadio) },\n ];\n }),\n isVisible: computed(() => {\n return controller.checkControllerVisible('mode');\n }),\n isDisabled: computed(() => {\n return controller.checkControllerDisabled('mode', 'radioGroupProps');\n }),\n };\n // 显示\\隐藏周末按钮\n const weekendBtn = {\n text: computed(() => {\n return state.isShowWeekend ? t(globalConfig.value.hideWeekend) : t(globalConfig.value.showWeekend);\n }),\n vBind: computed(() => {\n const c = controller.configData.value.weekend;\n return state.isShowWeekend ? c.hideWeekendButtonProps : c.showWeekendButtonProps;\n }),\n isVisible: computed(() => {\n return (\n props.theme === 'full' &&\n controller.checkControllerVisible('current') &&\n controller.checkControllerVisible('weekend')\n );\n }),\n isDisabled: computed(() => {\n const p = state.isShowWeekend ? 'hideWeekendButtonProps' : 'showWeekendButtonProps';\n return controller.checkControllerDisabled('weekend', p);\n }),\n };\n // 今天\\本月按钮\n const currentBtn = {\n text: computed(() => {\n return state.curSelectedMode === 'month' ? t(globalConfig.value.today) : t(globalConfig.value.thisMonth);\n }),\n vBind: computed(() => {\n const c = controller.configData.value.current;\n return state.curSelectedMode === 'month' ? c.currentDayButtonProps : c.currentMonthButtonProps;\n }),\n isVisible: computed(() => {\n return props.theme === 'full' && controller.checkControllerVisible('current');\n }),\n isDisabled: computed(() => {\n const p = state.curSelectedMode === 'month' ? 'currentDayButtonProps' : 'currentMonthButtonProps';\n return controller.checkControllerDisabled('current', p);\n }),\n };\n const renderControl = () => {\n return (\n
    \n
    \n {renderContent('head', undefined, {\n params: { ...controller.options.value },\n })}\n
    \n
    \n {dateSelect.isYearSelectVisible.value && (\n
    \n \n
    \n )}\n {dateSelect.isMonthSelectVisible.value && (\n
    \n \n
    \n )}\n {modeSelect.isVisible.value && (\n
    \n \n {modeSelect.optionList.value.map((item) => (\n \n {item.label}\n \n ))}\n \n
    \n )}\n\n {weekendBtn.isVisible.value && (\n
    \n {\n state.isShowWeekend = !state.isShowWeekend;\n controller.emitControllerChange();\n }}\n >\n {weekendBtn.text.value}\n \n
    \n )}\n {currentBtn.isVisible.value && (\n
    \n {\n toToday();\n }}\n >\n {currentBtn.text.value}\n \n
    \n )}\n
    \n
    \n );\n };\n\n const cellClickEmit = (eventPropsName: keyof typeof props, e: MouseEvent, cellData: CalendarCell): void => {\n if (isFunction(props[eventPropsName])) {\n const options: CellEventOption = {\n cell: {\n ...cellData,\n ...controller.options.value,\n },\n e,\n };\n (props[eventPropsName] as Function)(options);\n }\n };\n const clickCell = (e: MouseEvent, cellData: CalendarCell): void => {\n const d = dayjs(cellData.date);\n if (props.multiple) {\n if (state.curDateList.find((item) => item.isSame(d))) {\n 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 { useTNodeJSX, usePrefixClass, useCommonClassName } from '@tdesign/hooks';\n\nimport TLoading from '../loading';\nimport props from './props';\nimport { isString } from 'lodash-es';\nimport { TdCardProps } from './type';\n\nexport default defineComponent({\n name: 'TCard',\n props,\n setup(props, { slots }) {\n const renderTNodeJSX = useTNodeJSX();\n const COMPONENT_NAME = usePrefixClass('card');\n const { SIZE } = useCommonClassName();\n\n const baseCls = computed(() => {\n const defaultClass = [COMPONENT_NAME.value];\n\n if (props.size === 'small') defaultClass.push(`${SIZE.value[props.size]}`);\n if (props.bordered) defaultClass.push(`${COMPONENT_NAME.value}--bordered`);\n if (props.shadow) defaultClass.push(`${COMPONENT_NAME.value}--shadow`);\n if (props.hoverShadow) defaultClass.push(`${COMPONENT_NAME.value}--shadow-hover`);\n\n return defaultClass;\n });\n\n const headerCls = computed(() => {\n 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 { useTNodeJSX, usePrefixClass, useFlatChildrenSlots } from '@tdesign/hooks';\n\nimport Button from '../button';\nimport { isString } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TComment',\n props,\n setup() {\n const COMPONENT_NAME = usePrefixClass('comment');\n const renderTNodeJSX = useTNodeJSX();\n const getFlatChildren = useFlatChildrenSlots();\n\n return () => {\n const reply = renderTNodeJSX('reply');\n const author = renderTNodeJSX('author');\n const datetime = renderTNodeJSX('datetime');\n const quote = renderTNodeJSX('quote');\n const actions = renderTNodeJSX('actions');\n const content = renderTNodeJSX('content');\n const avatar = renderTNodeJSX('avatar');\n const showAuthorDatetime = computed(() => author || datetime);\n\n const replyDom = reply ?
    {reply}
    : null;\n\n const quoteDom = quote ?
    {quote}
    : null;\n\n const avatarDom = avatar ? (\n
    \n {isString(avatar) ? \"\" : avatar}\n
    \n ) : null;\n\n const authorDatetimeDom = showAuthorDatetime.value && (\n
    \n {author && {author}}\n {datetime && {datetime}}\n
    \n );\n\n const renderActions = () => {\n if (!actions || !actions.length) return null;\n const flatChildren = getFlatChildren(actions);\n return (\n
    \n {flatChildren.map((action, index) => (\n \n ))}\n
    \n );\n };\n\n const contentDom = (\n
    \n {authorDatetimeDom}\n
    {content}
    \n {quoteDom}\n {renderActions()}\n
    \n );\n\n return (\n
    \n
    \n {avatarDom}\n {contentDom}\n
    \n {replyDom}\n
    \n );\n };\n },\n});\n","import _Comment from './comment';\nimport withInstall from '../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, isPlainObject } from 'lodash-es';\n\nimport { useConfig, useTNodeJSX, usePrefixClass, useCommonClassName } from '@tdesign/hooks';\n\nimport props from './props';\nimport type { TdEmptyProps } from './type';\nimport Image from '../image';\nimport MaintenanceSvg from './components/MaintenanceSvg';\nimport NetworkErrorSvg from './components/NetworkErrorSvg';\nimport EmptySvg from './components/EmptySvg';\nimport FailSvg from './components/FailSvg';\nimport SuccessSvg from './components/SuccessSvg';\n\nexport default defineComponent({\n name: 'TEmpty',\n components: { TImage: Image },\n props,\n setup(props: TdEmptyProps, { slots }) {\n const { size, image: propsImage, description: propsDescription, title: propsTitle, type } = toRefs(props);\n const { globalConfig } = useConfig('empty');\n const classPrefix = usePrefixClass('empty');\n const showAction = computed(() => props.action || slots.action);\n const { SIZE } = useCommonClassName();\n const renderTNodeJSX = useTNodeJSX();\n\n const defaultMaps: {\n [key in TdEmptyProps['type']]?: Pick;\n } = {\n maintenance: {\n image: globalConfig.value.image.maintenance || MaintenanceSvg,\n title: globalConfig.value.titleText.maintenance,\n },\n success: {\n image: globalConfig.value.image.success || SuccessSvg,\n title: globalConfig.value.titleText.success,\n },\n fail: {\n image: globalConfig.value.image.fail || FailSvg,\n title: globalConfig.value.titleText.fail,\n },\n 'network-error': {\n image: globalConfig.value.image.networkError || NetworkErrorSvg,\n title: globalConfig.value.titleText.networkError,\n },\n empty: {\n image: globalConfig.value.image.empty || EmptySvg,\n title: globalConfig.value.titleText.empty,\n },\n };\n\n const emptyClasses = computed(() => [classPrefix.value, SIZE.value[size.value]]);\n const titleClasses = [`${classPrefix.value}__title`];\n const imageClasses = [`${classPrefix.value}__image`];\n const descriptionClasses = [`${classPrefix.value}__description`];\n const actionClass = [`${classPrefix.value}__action`];\n\n const typeImageProps = computed(() => defaultMaps[type.value] ?? null);\n const showImage = computed(() => propsImage.value || slots?.image?.() || typeImageProps.value?.image);\n const showTitle = computed(() => propsTitle.value || slots?.title?.() || typeImageProps.value?.title);\n const showDescription = computed(() => propsDescription.value || slots?.description?.());\n\n const renderTitle = () => {\n if (!showTitle.value) {\n return null;\n }\n return
    {showTitle.value}
    ;\n };\n const renderDescription = () => {\n if (!showDescription.value) {\n return null;\n }\n return
    {showDescription.value}
    ;\n };\n const getImageIns = () => {\n const data = showImage.value;\n let result = null;\n if (isString(data)) {\n result = ;\n } else if (data && Reflect.has(data, 'setup')) {\n result = h(data as unknown);\n } else if (isPlainObject(data)) {\n result = ;\n }\n\n return data ? result : null;\n };\n\n return () => {\n return (\n
    \n {showImage.value ? (\n
    \n {slots?.image ? renderTNodeJSX('image') : getImageIns()}\n
    \n ) : null}\n {renderTitle()}\n {renderDescription()}\n {showAction.value ?
    {renderTNodeJSX('action')}
    : null}\n
    \n );\n };\n },\n});\n","import _Empty from './empty';\nimport withInstall from '../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","import { positiveSubtract, positiveAdd } from '@tdesign/common-js/input-number/number';\nimport { ref, watch } from 'vue';\nimport { ImageScale } from '../type';\nimport { throttle } from 'lodash-es';\n\ninterface InitTransform {\n translateX: number;\n translateY: number;\n}\n\nexport function useDrag(initTransform: InitTransform) {\n const transform = ref(initTransform);\n\n const mouseDownHandler = (e: MouseEvent) => {\n const { pageX: startX, pageY: startY } = e;\n const { translateX, translateY } = transform.value;\n const mouseMoveHandler = (e: MouseEvent) => {\n const { pageX, pageY } = e;\n transform.value = {\n translateX: translateX + pageX - startX,\n translateY: translateY + pageY - startY,\n };\n };\n const mouseUpHandler = () => {\n document.removeEventListener('mousemove', mouseMoveHandler);\n document.removeEventListener('mouseup', mouseUpHandler);\n };\n\n document.addEventListener('mousemove', mouseMoveHandler);\n document.addEventListener('mouseup', mouseUpHandler);\n };\n\n const resetTransform = () => {\n transform.value = { ...initTransform };\n };\n\n return { transform, mouseDownHandler, resetTransform };\n}\n\nexport function useMirror() {\n const mirror = ref(1);\n const onMirror = () => {\n mirror.value *= -1;\n };\n const resetMirror = () => {\n mirror.value = 1;\n };\n\n return { mirror, onMirror, resetMirror };\n}\n\nexport function useScale(imageScale: ImageScale = { max: 2, min: 0.5, step: 0.2 }) {\n const { max, min, step, defaultScale } = imageScale;\n const scale = ref(defaultScale ?? 1);\n\n const onZoomIn = throttle(() => {\n const result = positiveAdd(scale.value, step);\n setScale(result);\n }, 50);\n\n const onZoomOut = throttle(() => {\n const result = positiveSubtract(scale.value, step);\n setScale(result);\n }, 50);\n\n const resetScale = () => {\n scale.value = defaultScale ?? 1;\n };\n\n const setScale = (newScale: number) => {\n let value = newScale;\n if (newScale < min) {\n value = min;\n }\n if (newScale > max) {\n value = max;\n }\n scale.value = value;\n };\n\n watch(\n () => imageScale,\n () => resetScale(),\n );\n\n return { scale, onZoomIn, onZoomOut, resetScale };\n}\n\nexport function useRotate() {\n const rotate = ref(0);\n const ROTATE_DEG = 90;\n\n const onRotate = () => {\n rotate.value += ROTATE_DEG;\n };\n const resetRotate = () => {\n rotate.value = 0;\n };\n\n return { rotate, onRotate, resetRotate };\n}\n","import { ImageErrorIcon } from 'tdesign-icons-vue-next';\nimport { PropType, computed, defineComponent, onMounted, ref, toRefs, watch } from 'vue';\nimport { useConfig, usePrefixClass, useImagePreviewUrl } from '@tdesign/hooks';\n\nimport { useDrag } from '../hooks';\nimport { TdImageViewerProps } from '../type';\n\nexport default defineComponent({\n name: 'TImageItem',\n props: {\n rotate: Number,\n scale: Number,\n mirror: Number,\n src: [String, Object] as PropType,\n placementSrc: [String, Object] as PropType,\n isSvg: Boolean,\n imageReferrerpolicy: String as PropType,\n },\n\n setup(props) {\n const { src, placementSrc, isSvg } = toRefs(props);\n const classPrefix = usePrefixClass();\n const error = ref(false);\n const loaded = ref(false);\n const { transform, mouseDownHandler } = useDrag({ translateX: 0, translateY: 0 });\n const { globalConfig } = useConfig('imageViewer');\n const errorText = globalConfig.value.errorText;\n const svgElRef = ref();\n\n const imgStyle = computed(() => ({\n transform: `rotate(${props.rotate}deg) scale(${props.scale})`,\n display: !props.placementSrc || loaded.value ? 'block' : 'none',\n }));\n const placementImgStyle = computed(() => ({\n transform: `rotate(${props.rotate}deg) scale(${props.scale})`,\n display: !loaded.value ? 'block' : 'none',\n }));\n const boxStyle = computed(() => {\n const { translateX, translateY } = transform.value;\n return {\n transform: `translate(${translateX}px, ${translateY}px) scale(${props.mirror}, 1)`,\n };\n });\n\n const resetStatus = () => {\n error.value = false;\n loaded.value = false;\n if (isSvg.value) {\n createSvgShadow(mainImagePreviewUrl.value);\n }\n };\n\n const createSvgShadow = async (url: string) => {\n const response = await fetch(url);\n if (!response.ok) {\n error.value = true;\n throw new Error(`Failed to fetch SVG: ${response.statusText}`);\n }\n const svgText = await response.text();\n\n const element = svgElRef.value;\n element.innerHTML = '';\n element.classList?.add(`${classPrefix.value}-image-viewer__modal-image-svg`);\n const shadowRoot = element.attachShadow({ mode: 'closed' });\n\n const container = document.createElement('div');\n\n container.style.background = 'var(--td-bg-color-container)';\n container.style.padding = '4px';\n container.style.borderRadius = '4px';\n container.style.maxHeight = '100%';\n container.style.maxWidth = '100%';\n container.style.boxSizing = 'border-box';\n container.style.height = 'auto';\n container.innerHTML = svgText;\n shadowRoot.appendChild(container);\n\n const svgElement = container.querySelector('svg');\n if (svgElement) {\n const svgViewBox = svgElement.getAttribute('viewBox');\n if (svgViewBox) {\n const viewBoxValues = svgViewBox\n .split(/[\\s\\,]/)\n .filter(function (v) {\n return v;\n })\n .map(parseFloat);\n\n // svg viewbox x(0) and y(1) offset, width(2) and height(3),eg\n const svgViewBoxWidth = viewBoxValues[2];\n // const svgViewBoxHeight = viewBoxValues[3];\n container.style.width = `${svgViewBoxWidth}px`;\n } else {\n const bbox = svgElement.getBBox();\n const calculatedViewBox = `${bbox.x} ${bbox.y} ${bbox.width} ${bbox.height}`;\n svgElement.setAttribute('viewBox', calculatedViewBox);\n\n container.style.width = `${bbox.width}px`;\n }\n svgElement.style.maxHeight = '100%';\n svgElement.style.maxWidth = '100%';\n svgElement.style.height = 'auto';\n svgElement.style.display = 'block';\n svgElement.style.lineHeight = 'normal';\n }\n loaded.value = true;\n };\n\n const { previewUrl: mainImagePreviewUrl } = useImagePreviewUrl(src);\n const { previewUrl: placementImagePreviewUrl } = useImagePreviewUrl(placementSrc);\n\n watch([mainImagePreviewUrl, placementImagePreviewUrl], () => {\n resetStatus();\n });\n\n onMounted(async () => {\n if (isSvg.value) {\n await createSvgShadow(mainImagePreviewUrl.value);\n }\n });\n\n return () => (\n
    \n
    \n {error.value && (\n
    \n {/* 脱离文档流 */}\n
    \n \n
    {errorText}
    \n
    \n
    \n )}\n\n {!error.value && !!props.placementSrc && placementImagePreviewUrl.value && (\n {\n event.stopPropagation();\n mouseDownHandler(event);\n }}\n src={placementImagePreviewUrl.value}\n style={placementImgStyle.value}\n referrerpolicy={props.imageReferrerpolicy}\n alt=\"image\"\n draggable=\"false\"\n />\n )}\n\n {!error.value && mainImagePreviewUrl.value && !isSvg.value && (\n {\n event.stopPropagation();\n mouseDownHandler(event);\n }}\n src={mainImagePreviewUrl.value}\n onLoad={() => (loaded.value = true)}\n onError={() => (error.value = true)}\n style={imgStyle.value}\n referrerpolicy={props.imageReferrerpolicy}\n alt=\"image\"\n draggable=\"false\"\n />\n )}\n\n {!error.value && mainImagePreviewUrl.value && isSvg.value && (\n {\n event.stopPropagation();\n mouseDownHandler(event);\n }}\n data-alt=\"svg\"\n style={imgStyle.value}\n draggable=\"false\"\n >
    \n )}\n
    \n \n );\n },\n});\n","import { computed, defineComponent, PropType } from 'vue';\nimport { useTNodeJSX, usePrefixClass } from '@tdesign/hooks';\nimport { TNode } from '../../common';\n\nexport default defineComponent({\n name: 'TImageModalIcon',\n props: {\n disabled: Boolean,\n onClick: Function as PropType<(e: MouseEvent) => void>,\n label: String,\n icon: Function as PropType,\n },\n setup(props) {\n const classPrefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n const wrapClass = computed(() => [\n `${classPrefix.value}-image-viewer__modal-icon`,\n {\n [`${classPrefix.value}-is-disabled`]: props.disabled,\n },\n ]);\n\n return () => (\n
    \n {renderTNodeJSX('icon')}\n {props.label && {props.label}}\n
    \n );\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { PropType } from 'vue';\nimport { TdDialogProps } from './type';\n\nexport default {\n /** 对话框挂载的节点。数据类型为 String 时,会被当作选择器处理,进行节点查询。示例:'body' 或 () => document.body */\n attach: {\n type: [String, Function] as PropType,\n },\n /** 对话框内容 */\n body: {\n type: [String, Function] as PropType,\n },\n /** 取消按钮,可自定义。值为 null 则不显示取消按钮。值类型为字符串,则表示自定义按钮文本,值类型为 Object 则表示透传 Button 组件属性。使用 TNode 自定义按钮时,需自行控制取消事件 */\n cancelBtn: {\n type: [String, Object, Function, null] as PropType,\n },\n /** 关闭按钮,可以自定义。值为 true 显示默认关闭按钮,值为 false 不显示关闭按钮。值类型为 string 则直接显示值,如:“关闭”。值类型为 TNode,则表示呈现自定义按钮示例 */\n closeBtn: {\n type: [String, Boolean, Function] as PropType,\n default: true as TdDialogProps['closeBtn'],\n },\n /** 按下 ESC 时是否触发对话框关闭事件 */\n closeOnEscKeydown: {\n type: Boolean,\n default: undefined,\n },\n /** 点击蒙层时是否触发关闭事件 */\n closeOnOverlayClick: {\n type: Boolean,\n default: undefined,\n },\n /** 确认按钮。值为 null 则不显示确认按钮。值类型为字符串,则表示自定义按钮文本,值类型为 Object 则表示透传 Button 组件属性。使用 TNode 自定义按钮时,需自行控制确认事件 */\n confirmBtn: {\n type: [String, Object, Function, null] as PropType,\n },\n /** 确认按钮加载状态 */\n confirmLoading: {\n type: Boolean,\n default: undefined,\n },\n /** 是否在按下回车键时,触发确认事件 */\n confirmOnEnter: Boolean,\n /** 对话框内容,同 body */\n default: {\n type: [String, Function] as PropType,\n },\n /** 是否在关闭弹框的时候销毁子元素 */\n destroyOnClose: Boolean,\n /** 弹框元素类名,示例:'t-class-dialog-first t-class-dialog-second' */\n dialogClassName: {\n type: String,\n default: '',\n },\n /** 作用于对话框本身的样式 */\n dialogStyle: {\n type: Object as PropType,\n },\n /** 对话框是否可以拖拽(仅在非模态对话框时有效) */\n draggable: Boolean,\n /** 底部操作栏,默认会有“确认”和“取消”两个按钮。值为 true 显示默认操作按钮,值为 false 不显示任何内容,值类型为 Function 表示自定义底部内容 */\n footer: {\n type: [Boolean, Function] as PropType,\n default: true as TdDialogProps['footer'],\n },\n /** 头部内容。值为 true 显示空白头部,值为 false 不显示任何内容,值类型为 string 则直接显示值,值类型为 Function 表示自定义头部内容 */\n header: {\n type: [String, Boolean, Function] as PropType,\n default: true as TdDialogProps['header'],\n },\n /** 是否启用对话框懒加载,启用时对话框内的内容不渲染 */\n lazy: Boolean,\n /** 对话框类型,有 4 种:模态对话框、非模态对话框、普通对话框、全屏对话框。弹出「模态对话框」时,只能操作对话框里面的内容,不能操作其他内容。弹出「非模态对话框」时,则可以操作页面内所有内容。「普通对话框」是指没有脱离文档流的对话框,可以在这个基础上开发更多的插件 */\n mode: {\n type: String as PropType,\n default: 'modal' as TdDialogProps['mode'],\n validator(val: TdDialogProps['mode']): boolean {\n if (!val) return true;\n return ['modal', 'modeless', 'normal', 'full-screen'].includes(val);\n },\n },\n /** 对话框位置,内置两种:垂直水平居中显示 和 靠近顶部(top:20%)显示。默认情况,为避免贴顶或贴底,顶部和底部距离最小为 `48px`,可通过调整 `top` 覆盖默认大小 */\n placement: {\n type: String as PropType,\n default: 'top' as TdDialogProps['placement'],\n validator(val: TdDialogProps['placement']): boolean {\n if (!val) return true;\n return ['top', 'center'].includes(val);\n },\n },\n /** 防止滚动穿透 */\n preventScrollThrough: {\n type: Boolean,\n default: true,\n },\n /** 仅在挂载元素中显示抽屉,默认在浏览器可视区域显示。父元素需要有定位属性,如:position: relative */\n showInAttachedElement: Boolean,\n /** 是否显示遮罩层 */\n showOverlay: {\n type: Boolean,\n default: true,\n },\n /** 对话框风格 */\n theme: {\n type: String as PropType,\n default: 'default' as TdDialogProps['theme'],\n validator(val: TdDialogProps['theme']): boolean {\n if (!val) return true;\n return ['default', 'info', 'warning', 'danger', 'success'].includes(val);\n },\n },\n /** 用于弹框具体窗口顶部的距离,优先级大于 placement */\n top: {\n type: [String, Number] as PropType,\n },\n /** 控制对话框是否显示 */\n visible: Boolean,\n /** 对话框宽度,示例:320, '500px', '80%' */\n width: {\n type: [String, Number] as PropType,\n },\n /** 对话框层级,Web 侧样式默认为 2500,移动端和小程序样式默认为 1500 */\n zIndex: {\n type: Number,\n },\n /** 对话框执行消失动画效果前触发 */\n onBeforeClose: Function as PropType,\n /** 对话框执行弹出动画效果前触发 */\n onBeforeOpen: Function as PropType,\n /** 如果“取消”按钮存在,则点击“取消”按钮时触发,同时触发关闭事件 */\n onCancel: Function as PropType,\n /** 关闭事件,点击取消按钮、点击关闭按钮、点击蒙层、按下 ESC 等场景下触发 */\n onClose: Function as PropType,\n /** 点击右上角关闭按钮时触发 */\n onCloseBtnClick: Function as PropType,\n /** 对话框消失动画效果结束后触发 */\n onClosed: Function as PropType,\n /** 如果“确认”按钮存在,则点击“确认”按钮时触发,或者键盘按下回车键时触发 */\n onConfirm: Function as PropType,\n /** 按下 ESC 时触发事件 */\n onEscKeydown: Function as PropType,\n /** 对话框弹出动画效果结束后触发 */\n onOpened: Function as PropType,\n /** 如果蒙层存在,点击蒙层时触发 */\n onOverlayClick: Function as PropType,\n};\n","import { getCurrentInstance } from 'vue';\nimport { omit, isString, isObject } from 'lodash-es';\n\nimport { useTNodeJSX } from '@tdesign/hooks';\nimport TButton, { ButtonProps } from '../../button';\nimport { PopconfirmConfig, DialogConfig, DrawerConfig } from '../../config-provider';\nimport type { ClassName } from '../../common';\nimport type { TdDialogProps } from '../type';\nimport { getPropertyValFromObj } from '@tdesign/common-js/utils/general';\n\nexport interface MixinsConfirmBtn {\n theme?: MixinsThemeType;\n className?: ClassName;\n confirmBtn: TdDialogProps['confirmBtn'];\n globalConfirm: PopconfirmConfig['confirm'] | DrawerConfig['confirm'] | DialogConfig['confirm'];\n globalConfirmBtnTheme?: PopconfirmConfig['confirmBtnTheme'] | DialogConfig['confirmBtnTheme'];\n size?: ButtonProps['size'];\n confirmLoading?: boolean;\n}\n\nexport interface MixinsCancelBtn {\n className?: ClassName;\n cancelBtn: TdDialogProps['cancelBtn'];\n globalCancel: PopconfirmConfig['cancel'] | DrawerConfig['cancel'] | DialogConfig['cancel'];\n size?: ButtonProps['size'];\n}\n\nexport type MixinsThemeType = keyof (PopconfirmConfig['confirmBtnTheme'] & DialogConfig['confirmBtnTheme']);\n\nexport interface BtnAction {\n confirmBtnAction: (e: MouseEvent) => void;\n cancelBtnAction: (e: MouseEvent) => void;\n}\n\nexport function useAction(action: BtnAction) {\n const instance = getCurrentInstance();\n const renderTNodeJSX = useTNodeJSX();\n // 全局配置属性综合\n const getDefaultConfirmBtnProps = (options: MixinsConfirmBtn): ButtonProps => {\n const { globalConfirm, theme, globalConfirmBtnTheme } = options;\n const defaultTheme = getPropertyValFromObj(omit(globalConfirmBtnTheme, ['info']), theme) || 'primary';\n let props: ButtonProps = {\n // @ts-ignore\n // TODO: fix type of globalConfirmBtnTheme\n theme: defaultTheme,\n size: options.size,\n onClick: (e) => {\n action.confirmBtnAction(e);\n },\n };\n if (isString(globalConfirm)) {\n props.content = globalConfirm;\n } else if (isObject(globalConfirm)) {\n props = { ...props, ...globalConfirm };\n }\n return props;\n };\n // 全局配置属性综合\n const getDefaultCancelBtnProps = (options: MixinsCancelBtn): ButtonProps => {\n const { globalCancel } = options;\n let props: ButtonProps = {\n theme: 'default',\n size: options.size,\n onClick: (e) => {\n action.cancelBtnAction(e);\n },\n };\n if (isString(globalCancel)) {\n props.content = globalCancel;\n } else if (isObject(globalCancel)) {\n props = { ...props, ...globalCancel };\n }\n return props;\n };\n const getButtonByProps = (\n button: string | ButtonProps,\n params: {\n defaultButtonProps: ButtonProps;\n className?: ClassName;\n confirmLoading?: boolean;\n },\n ) => {\n const { defaultButtonProps, className, confirmLoading } = params;\n let newOptions = defaultButtonProps;\n if (isString(button)) {\n newOptions.content = button;\n } else if (isObject(button)) {\n newOptions = { ...newOptions, ...button };\n }\n if (confirmLoading !== undefined) {\n newOptions.loading = confirmLoading;\n }\n return ;\n };\n const getConfirmBtn = (options: MixinsConfirmBtn) => {\n const { confirmBtn, className, confirmLoading } = options;\n if (confirmBtn === null) return null;\n if (confirmBtn && instance.slots.confirmBtn) {\n console.warn('Both $props.confirmBtn and $scopedSlots.confirmBtn exist, $props.confirmBtn is preferred.');\n }\n const defaultButtonProps = getDefaultConfirmBtnProps(options);\n // 属性和插槽都不存在,就返回全局默认配置\n if (!confirmBtn && !instance.slots.confirmBtn) {\n return ;\n }\n // 如果属性存在,优先返回属性配置\n if (confirmBtn && ['string', 'object'].includes(typeof confirmBtn)) {\n return getButtonByProps(confirmBtn as string | ButtonProps, {\n defaultButtonProps,\n className,\n confirmLoading,\n });\n }\n // 渲染插槽 或 function 类型的 confirmBtn,属性优先级更高\n return renderTNodeJSX('confirmBtn');\n };\n const getCancelBtn = (options: MixinsCancelBtn) => {\n const { cancelBtn, className } = options;\n if (cancelBtn === null) return null;\n if (cancelBtn && instance.slots.cancelBtn) {\n console.warn('Both $props.cancelBtn and $scopedSlots.cancelBtn exist, $props.cancelBtn is preferred.');\n }\n const defaultButtonProps: ButtonProps = getDefaultCancelBtnProps(options);\n // 属性和插槽都不存在,就返回全局默认配置\n if (!cancelBtn && !instance.slots.cancelBtn) {\n return ;\n }\n // 如果属性存在,优先返回属性配置\n if (cancelBtn && ['string', 'object'].includes(typeof cancelBtn)) {\n return getButtonByProps(cancelBtn as string | ButtonProps, { defaultButtonProps, className });\n }\n // 渲染插槽 或 function 类型的 confirmBtn,属性优先级更高\n return renderTNodeJSX('cancelBtn');\n };\n return { getConfirmBtn, getCancelBtn };\n}\n","/**\n * 计算滚动条宽度的方法\n * 新建一个带有滚动条的 div 元素,通过该元素的 offsetWidth 和 clientWidth 的差值即可获得\n * CSS 中设置了 -webkit-scrollbar { width: 6px; height: 6px },固定浏览器滚动条宽度,仅限 Chrome/Safari\n * Safari UA\n * \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)\n * AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15\"\n * Chrome UA\n * Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)\n * AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36\n * FireFox UA\n * Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:94.0) Gecko/20100101 Firefox/94.0\n * IE UA\n * \"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2;\n * .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)\"\n */\nimport { getIEVersion } from './helper';\n\nexport function getScrollbarWidthWithCSS() {\n const defaultScrollbarWidth = 6;\n if (typeof navigator === 'undefined' || !navigator) return defaultScrollbarWidth;\n if (/(Chrome|Safari)/i.test(navigator.userAgent)) return defaultScrollbarWidth;\n const scrollDiv = document.createElement('div');\n scrollDiv.style.cssText = 'width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;';\n document.body.appendChild(scrollDiv);\n let scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n // 火狐浏览器需要再减去 4\n if (/Firefox/.test(navigator.userAgent)) {\n scrollbarWidth -= 4;\n }\n if (getIEVersion() <= 11) {\n scrollbarWidth = 12;\n }\n return scrollbarWidth;\n}\n\n/**\n * @description: Calculate scroll bar width\n * @param container Container used to calculate scrollbar width\n * @default container: document.body\n */\nexport function getScrollbarWidth(container: HTMLElement = document.body) {\n if (container === document.body) {\n return window.innerWidth - document.documentElement.clientWidth;\n }\n return container.offsetWidth - container.clientWidth;\n}\n","export function getCSSValue(v: string | number) {\n return Number.isNaN(Number(v)) ? v : `${Number(v)}px`;\n}\n\nexport function initDragEvent(dragBox: HTMLElement) {\n const target = dragBox;\n const windowInnerWidth = window.innerWidth || document.documentElement.clientWidth;\n const windowInnerHeight = window.innerHeight || document.documentElement.clientHeight;\n target.addEventListener('mousedown', (targetEvent: MouseEvent) => {\n // 算出鼠标相对元素的位置\n const disX = targetEvent.clientX - target.offsetLeft;\n const disY = targetEvent.clientY - target.offsetTop;\n const dialogW = target.offsetWidth;\n const dialogH = target.offsetHeight;\n // 如果弹出框超出屏幕范围 不能进行拖拽\n if (dialogW > windowInnerWidth || dialogH > windowInnerHeight) return;\n function mouseMoverHandler(documentEvent: MouseEvent) {\n // 用鼠标的位置减去鼠标相对元素的位置,得到元素的位置\n let left = documentEvent.clientX - disX;\n let top = documentEvent.clientY - disY;\n // 临界判断\n // 拖拽上左边界限制\n if (left < 0) left = 0;\n if (top < 0) top = 0;\n if (windowInnerWidth - target.offsetWidth - left < 0) left = windowInnerWidth - target.offsetWidth;\n if (windowInnerHeight - target.offsetHeight - top < 0) top = windowInnerHeight - target.offsetHeight;\n target.style.position = 'absolute';\n target.style.left = `${left}px`;\n target.style.top = `${top}px`;\n }\n function mouseUpHandler() {\n // 鼠标弹起来的时候不再移动\n document.removeEventListener('mousemove', mouseMoverHandler);\n // 预防鼠标弹起来后还会循环(即预防鼠标放上去的时候还会移动)\n document.removeEventListener('mouseup', mouseUpHandler);\n }\n // 元素按下时注册document鼠标监听事件\n document.addEventListener('mousemove', mouseMoverHandler);\n // 鼠标弹起来移除document鼠标监听事件\n document.addEventListener('mouseup', mouseUpHandler);\n // 拖拽结束移除鼠标监听事件,解决文字拖拽结束事件未解绑问题\n document.addEventListener('dragend', mouseUpHandler);\n });\n}\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdDialogCardProps } from '../dialog/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 对话框内容 */\n body: {\n type: [String, Function] as PropType,\n },\n /** 取消按钮,可自定义。值为 null 则不显示取消按钮。值类型为字符串,则表示自定义按钮文本,值类型为 Object 则表示透传 Button 组件属性。使用 TNode 自定义按钮时,需自行控制取消事件 */\n cancelBtn: {\n type: [String, Object, Function] as PropType,\n },\n /** 关闭按钮,可以自定义。值为 true 显示默认关闭按钮,值为 false 不显示关闭按钮。值类型为 string 则直接显示值,如:“关闭”。值类型为 TNode,则表示呈现自定义按钮示例 */\n closeBtn: {\n type: [String, Boolean, Function] as PropType,\n default: true as TdDialogCardProps['closeBtn'],\n },\n /** 确认按钮。值为 null 则不显示确认按钮。值类型为字符串,则表示自定义按钮文本,值类型为 Object 则表示透传 Button 组件属性。使用 TNode 自定义按钮时,需自行控制确认事件 */\n confirmBtn: {\n type: [String, Object, Function] as PropType,\n },\n /** 确认按钮加载状态 */\n confirmLoading: {\n type: Boolean,\n default: undefined,\n },\n /** 底部操作栏,默认会有“确认”和“取消”两个按钮。值为 true 显示默认操作按钮,值为 false 不显示任何内容,值类型为 Function 表示自定义底部内容 */\n footer: {\n type: [Boolean, Function] as PropType,\n },\n /** 头部内容。值为 true 显示空白头部,值为 false 不显示任何内容,值类型为 string 则直接显示值,值类型为 Function 表示自定义头部内容 */\n header: {\n type: [String, Boolean, Function] as PropType,\n default: true as TdDialogCardProps['header'],\n },\n /** 对话框风格 */\n theme: {\n type: String as PropType,\n default: 'default' as TdDialogCardProps['theme'],\n validator(val: TdDialogCardProps['theme']): boolean {\n if (!val) return true;\n return ['default', 'info', 'warning', 'danger', 'success'].includes(val);\n },\n },\n /** 如果“取消”按钮存在,则点击“取消”按钮时触发,同时触发关闭事件 */\n onCancel: Function as PropType,\n /** 点击右上角关闭按钮时触发 */\n onCloseBtnClick: Function as PropType,\n /** 如果“确认”按钮存在,则点击“确认”按钮时触发,或者键盘按下回车键时触发 */\n onConfirm: Function as PropType,\n};\n","import { computed, defineComponent, ref, toRefs } from 'vue';\nimport {\n CloseIcon as TdCloseIcon,\n InfoCircleFilledIcon as TdInfoCircleFilledIcon,\n CheckCircleFilledIcon as TdCheckCircleFilledIcon,\n ErrorCircleFilledIcon as TdErrorCircleFilledIcon,\n} from 'tdesign-icons-vue-next';\nimport dialogCardProps from './dialog-card-props';\nimport { useConfig, useContent, useTNodeJSX, useGlobalIcon, usePrefixClass } from '@tdesign/hooks';\n\nimport { useAction } from './hooks';\n\nimport type { TdDialogProps } from './type';\nimport dialogProps from './props';\nimport { getCSSValue, initDragEvent } from './utils';\n\nexport default defineComponent({\n name: 'TDialogCard',\n // 注册v-draggable指令,传入true时候初始化拖拽事件\n directives: {\n draggable(el, binding) {\n // el 指令绑定的元素\n if (el && binding && binding.value) {\n initDragEvent(el);\n }\n },\n },\n props: {\n ...dialogProps,\n ...dialogCardProps,\n },\n setup(props, { expose }) {\n const rootRef = ref(null);\n const COMPONENT_NAME = usePrefixClass('dialog');\n const classPrefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n const renderContent = useContent();\n const { globalConfig } = useConfig('dialog');\n const { CloseIcon, InfoCircleFilledIcon, CheckCircleFilledIcon, ErrorCircleFilledIcon } = useGlobalIcon({\n CloseIcon: TdCloseIcon,\n InfoCircleFilledIcon: TdInfoCircleFilledIcon,\n CheckCircleFilledIcon: TdCheckCircleFilledIcon,\n ErrorCircleFilledIcon: TdErrorCircleFilledIcon,\n });\n const { cancelBtn, confirmBtn, confirmLoading } = toRefs(props);\n const confirmBtnAction = (e: MouseEvent) => props.onConfirm?.({ e });\n const cancelBtnAction = (e: MouseEvent) => props.onCancel?.({ e });\n const { getConfirmBtn, getCancelBtn } = useAction({ confirmBtnAction, cancelBtnAction });\n // 是否非模态对话框\n const isModeLess = computed(() => props.mode === 'modeless');\n // 是否全屏对话框\n const isFullScreen = computed(() => props.mode === 'full-screen');\n const closeBtnAction = (e: MouseEvent) => props?.onCloseBtnClick?.({ e });\n const onStopDown = (e: MouseEvent) => {\n if (isModeLess.value && props?.draggable) e.stopPropagation();\n };\n\n const resetPosition = () => {\n if (!rootRef.value && isModeLess.value && props.draggable) return;\n rootRef.value.style.position = 'relative';\n rootRef.value.style.left = 'unset';\n rootRef.value.style.top = 'unset';\n };\n\n // 暴露给父组件的接口\n expose({\n $el: rootRef,\n resetPosition,\n });\n\n const dialogClass = computed(() => {\n const dialogClass = [\n `${COMPONENT_NAME.value}`,\n `${COMPONENT_NAME.value}__modal-${props.theme}`,\n isModeLess.value && props.draggable && `${COMPONENT_NAME.value}--draggable`,\n props.dialogClassName,\n ];\n\n if (isFullScreen.value) {\n dialogClass.push(`${COMPONENT_NAME.value}__fullscreen`);\n } else {\n dialogClass.push(...[`${COMPONENT_NAME.value}--default`, `${COMPONENT_NAME.value}--${props.placement}`]);\n }\n return dialogClass;\n });\n const dialogStyle = computed(() => {\n return !isFullScreen.value ? { width: getCSSValue(props.width), ...props.dialogStyle } : { ...props.dialogStyle }; // width全屏模式不生效\n });\n\n const renderCard = () => {\n const confirmBtnLoading = computed(() => {\n // @ts-ignore\n return confirmBtn.value?.loading || confirmLoading.value;\n });\n const defaultFooter = (\n
    \n {getCancelBtn({\n cancelBtn: cancelBtn.value as TdDialogProps['cancelBtn'],\n globalCancel: globalConfig.value.cancel,\n className: `${COMPONENT_NAME.value}__cancel`,\n })}\n {getConfirmBtn({\n theme: props?.theme,\n confirmBtn: confirmBtn.value as TdDialogProps['confirmBtn'],\n globalConfirm: globalConfig.value.confirm,\n globalConfirmBtnTheme: globalConfig.value.confirmBtnTheme,\n className: `${COMPONENT_NAME.value}__confirm`,\n confirmLoading: confirmBtnLoading.value,\n })}\n
    \n );\n\n const footerContent = renderTNodeJSX('footer', defaultFooter);\n\n const renderHeader = () => {\n // header 值为 true 显示空白头部\n const header = renderTNodeJSX('header',
    ) ?? false;\n const headerClassName = isFullScreen.value\n ? [`${COMPONENT_NAME.value}__header`, `${COMPONENT_NAME.value}__header--fullscreen`]\n : `${COMPONENT_NAME.value}__header`;\n\n const closeClassName = isFullScreen.value\n ? [`${COMPONENT_NAME.value}__close`, `${COMPONENT_NAME.value}__close--fullscreen`]\n : `${COMPONENT_NAME.value}__close`;\n const getIcon = () => {\n const icon = {\n info: ,\n warning: ,\n danger: ,\n success: ,\n };\n return icon[props?.theme as keyof typeof icon];\n };\n return (\n (header || props?.closeBtn) && (\n
    \n
    \n {getIcon()}\n {header}\n
    \n\n {props?.closeBtn ? (\n \n {renderTNodeJSX('closeBtn', )}\n \n ) : null}\n
    \n )\n );\n };\n\n const renderBody = () => {\n const body = renderContent('default', 'body');\n const bodyClassName =\n props?.theme === 'default' ? [`${COMPONENT_NAME.value}__body`] : [`${COMPONENT_NAME.value}__body__icon`];\n if (isFullScreen.value && footerContent) {\n bodyClassName.push(`${COMPONENT_NAME.value}__body--fullscreen`);\n } else if (isFullScreen.value) {\n bodyClassName.push(`${COMPONENT_NAME.value}__body--fullscreen--without-footer`);\n }\n return (\n
    \n {body}\n
    \n );\n };\n\n const renderFooter = () => {\n const footerClassName = isFullScreen.value\n ? [`${COMPONENT_NAME.value}__footer`, `${COMPONENT_NAME.value}__footer--fullscreen`]\n : `${COMPONENT_NAME.value}__footer`;\n\n return (\n footerContent && (\n
    \n {footerContent}\n
    \n )\n );\n };\n\n return (\n <>\n {renderHeader()}\n {renderBody()}\n {!!props.footer && renderFooter()}\n \n );\n };\n\n return () => (\n \n {renderCard()}\n \n );\n },\n});\n","import {\n computed,\n defineComponent,\n nextTick,\n onBeforeUnmount,\n onMounted,\n ref,\n Transition,\n watch,\n Teleport,\n ComponentPublicInstance,\n} from 'vue';\nimport { DialogCloseContext } from './type';\nimport props from './props';\nimport { useConfig, useTeleport, usePrefixClass, usePopupManager, useDestroyOnClose } from '@tdesign/hooks';\nimport { useSameTarget } from './hooks';\n\nimport { getScrollbarWidth } from '@tdesign/common-js/utils/getScrollbarWidth';\n\nimport { getCSSValue } from './utils';\nimport TDialogCard from './dialog-card';\n\nlet mousePosition: { x: number; y: number } | null;\nconst getClickPosition = (e: MouseEvent) => {\n mousePosition = {\n x: e.clientX,\n y: e.clientY,\n };\n setTimeout(() => {\n mousePosition = null;\n }, 100);\n};\n\nif (typeof window !== 'undefined' && window.document && window.document.documentElement) {\n document.documentElement.addEventListener('click', getClickPosition, true);\n}\n\nlet key = 1;\n\nexport default defineComponent({\n name: 'TDialog',\n inheritAttrs: false,\n props,\n emits: ['update:visible'],\n setup(props, context) {\n const COMPONENT_NAME = usePrefixClass('dialog');\n const classPrefix = usePrefixClass();\n const dialogCardRef = ref void }>>(null);\n const { globalConfig } = useConfig('dialog');\n const confirmBtnAction = (context: { e: MouseEvent }) => {\n props.onConfirm?.(context);\n };\n const cancelBtnAction = (context: { e: MouseEvent }) => {\n props.onCancel?.(context);\n emitCloseEvent({ e: context.e, trigger: 'cancel' });\n };\n // teleport容器\n const teleportElement = useTeleport(() => props.attach);\n useDestroyOnClose();\n const timer = ref();\n const styleEl = ref();\n // 是否模态形式的对话框\n const isModal = computed(() => props.mode === 'modal');\n // 是否非模态对话框\n const isModeLess = computed(() => props.mode === 'modeless');\n // 是否全屏对话框\n const isFullScreen = computed(() => props.mode === 'full-screen');\n const computedVisible = computed(() => props.visible);\n const maskClass = computed(() => [\n `${COMPONENT_NAME.value}__mask`,\n !props.showOverlay && `${classPrefix.value}-is-hidden`,\n ]);\n const positionClass = computed(() => {\n if (isFullScreen.value) return [`${COMPONENT_NAME.value}__position_fullscreen`];\n if (isModal.value || isModeLess.value) {\n return [\n `${COMPONENT_NAME.value}__position`,\n !!props.top && `${COMPONENT_NAME.value}--top`,\n `${props.placement && !props.top ? `${COMPONENT_NAME.value}--${props.placement}` : ''}`,\n ];\n }\n return [];\n });\n const wrapClass = computed(() =>\n isFullScreen.value || isModal.value || isModeLess.value ? [`${COMPONENT_NAME.value}__wrap`] : null,\n );\n const positionStyle = computed(() => {\n if (isFullScreen.value) return {}; // 全屏模式,top属性不生效\n\n // 此处获取定位方式 top 优先级较高 存在时 默认使用top定位\n const { top } = props;\n let topStyle = {};\n if (top !== undefined) {\n const topValue = getCSSValue(top);\n topStyle = { paddingTop: topValue };\n }\n return topStyle;\n });\n\n const { isTopInteractivePopup } = usePopupManager('dialog', {\n visible: computedVisible,\n });\n /**是否已经第一次渲染,懒加载判断 */\n const isMounted = ref(false);\n\n watch(\n () => props.visible,\n (value) => {\n if (value) {\n isMounted.value = true;\n if ((isModal.value && !props.showInAttachedElement) || isFullScreen.value) {\n if (props.preventScrollThrough) {\n document.body.appendChild(styleEl.value);\n }\n\n nextTick(() => {\n if (mousePosition && dialogCardRef.value?.$el) {\n const el = dialogCardRef.value.$el as HTMLElement;\n el.style.transformOrigin = `${mousePosition.x - el.offsetLeft}px ${mousePosition.y - el.offsetTop}px`;\n }\n });\n }\n // 清除鼠标焦点 避免entry事件多次触发(按钮弹出弹窗 不移除焦点 立即按Entry按键 会造成弹窗关闭再弹出)\n (document.activeElement as HTMLElement)?.blur();\n } else {\n clearStyleFunc();\n }\n addKeyboardEvent(value);\n },\n );\n\n function destroySelf() {\n styleEl.value.parentNode?.removeChild?.(styleEl.value);\n }\n\n function clearStyleFunc() {\n clearTimeout(timer.value);\n timer.value = setTimeout(() => {\n destroySelf();\n }, 150);\n }\n\n const addKeyboardEvent = (status: boolean) => {\n if (status) {\n document.addEventListener('keydown', keyboardEvent);\n props.confirmOnEnter && document.addEventListener('keydown', keyboardEnterEvent);\n } else {\n document.removeEventListener('keydown', keyboardEvent);\n props.confirmOnEnter && document.removeEventListener('keydown', keyboardEnterEvent);\n }\n };\n // 回车触发确认事件\n const keyboardEnterEvent = (e: KeyboardEvent) => {\n const eventSrc = e.target as HTMLElement;\n if (eventSrc.tagName.toLowerCase() === 'input') return; // 若是input触发 则不执行\n const { code } = e;\n if ((code === 'Enter' || code === 'NumpadEnter') && isTopInteractivePopup()) {\n props.onConfirm?.({ e });\n }\n };\n const keyboardEvent = (e: KeyboardEvent) => {\n if (e.code === 'Escape' && isTopInteractivePopup()) {\n props.onEscKeydown?.({ e });\n // 根据closeOnEscKeydown判断按下ESC时是否触发close事件\n if (props.closeOnEscKeydown ?? globalConfig.value.closeOnEscKeydown) {\n emitCloseEvent({ e, trigger: 'esc' });\n // 阻止事件冒泡\n e.stopImmediatePropagation();\n }\n }\n };\n const overlayAction = (e: MouseEvent) => {\n if (props.showOverlay && (props.closeOnOverlayClick ?? globalConfig.value.closeOnOverlayClick)) {\n props.onOverlayClick?.({ e });\n emitCloseEvent({ e, trigger: 'overlay' });\n }\n };\n const { onClick, onMousedown, onMouseup } = useSameTarget(overlayAction);\n const closeBtnAction = (context: { e: MouseEvent }) => {\n props.onCloseBtnClick?.(context);\n emitCloseEvent({\n trigger: 'close-btn',\n e: context.e,\n });\n };\n\n // 打开弹窗动画开始时事件\n const beforeEnter = () => {\n props.onBeforeOpen?.();\n };\n\n // 打开弹窗动画结束时事件\n const afterEnter = () => {\n props.onOpened?.();\n };\n\n // 关闭弹窗动画开始时事件\n const beforeLeave = () => {\n props.onBeforeClose?.();\n };\n\n // 关闭弹窗动画结束时事件\n const afterLeave = () => {\n dialogCardRef.value?.resetPosition?.();\n props.onClosed?.();\n };\n\n const emitCloseEvent = (ctx: DialogCloseContext) => {\n props.onClose?.(ctx);\n // 默认关闭弹窗\n context.emit('update:visible', false);\n };\n\n // Vue在引入阶段对事件的处理还做了哪些初始化操作。Vue在实例上用一个_events属性存贮管理事件的派发和更新,\n // 暴露出$on, $once, $off, $emit方法给外部管理事件和派发执行事件\n // 所以通过判断_events某个事件下监听函数数组是否超过一个,可以判断出组件是否监听了当前事件\n // const hasEventOn = (name: string) => {\n // // _events 因没有被暴露在vue实例接口中,只能把这个规则注释掉\n // // eslint-disable-next-line dot-notation\n // // @ts-ignore\n // const eventFuncs = this['_events']?.[name];\n // return !!eventFuncs?.length;\n // };\n\n const renderDialog = () => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { theme, onConfirm, onCancel, onCloseBtnClick, ...otherProps } = props;\n return (\n /** 非模态形态下draggable为true才允许拖拽 */\n
    \n \n \n
    \n \n );\n };\n\n onMounted(() => {\n const hasScrollBar = document.documentElement.scrollHeight > document.documentElement.clientHeight;\n const scrollWidth = hasScrollBar ? getScrollbarWidth() : 0;\n styleEl.value = document.createElement('style');\n styleEl.value.dataset.id = `td_dialog_${+new Date()}_${(key += 1)}`;\n styleEl.value.innerHTML = `\n html body {\n overflow-y: hidden;\n width: calc(100% - ${scrollWidth}px);\n }\n `;\n });\n\n onBeforeUnmount(() => {\n addKeyboardEvent(false);\n destroySelf();\n });\n\n const shouldRender = computed(() => {\n const { destroyOnClose, visible, lazy } = props;\n if (!isMounted.value) {\n return !lazy;\n } else {\n return visible || !destroyOnClose;\n }\n });\n\n return () => {\n const maskView = (isModal.value || isFullScreen.value) &&
    ;\n const dialogView = renderDialog();\n const view = [maskView, dialogView];\n const ctxStyle = { zIndex: props.zIndex };\n // dialog__ctx--fixed 绝对定位\n // dialog__ctx--absolute 挂载在attach元素上 相对定位\n // __ctx--modeless modeless 点击穿透\n const ctxClass = [\n `${COMPONENT_NAME.value}__ctx`,\n {\n [`${COMPONENT_NAME.value}__ctx--fixed`]: isModal.value || isFullScreen.value,\n [`${COMPONENT_NAME.value}__ctx--absolute`]: isModal.value && props.showInAttachedElement,\n [`${COMPONENT_NAME.value}__ctx--modeless`]: isModeLess.value,\n },\n ];\n\n return (\n \n \n {shouldRender.value && (\n
    \n {view}\n
    \n )}\n \n
    \n );\n };\n },\n});\n","export function useSameTarget(handleClick?: (e: MouseEvent) => void) {\n // 判断 click 事件的起点和落点所在元素是否一致\n let MOUSEDOWN_TARGET = false;\n let MOUSEUP_TARGET = false;\n\n const onClick = (e: MouseEvent) => {\n if (MOUSEDOWN_TARGET && MOUSEUP_TARGET) {\n handleClick(e);\n }\n MOUSEDOWN_TARGET = false;\n MOUSEUP_TARGET = false;\n };\n\n const onMousedown = (e: MouseEvent) => {\n MOUSEDOWN_TARGET = e.target === e.currentTarget;\n };\n const onMouseup = (e: MouseEvent) => {\n MOUSEUP_TARGET = e.target === e.currentTarget;\n };\n\n return { onClick, onMousedown, onMouseup };\n}\n","import { App, 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 { useConfig, usePrefixClass, useImagePreviewUrl } from '@tdesign/hooks';\n\nimport { ImageInfo } from '../type';\nimport { largeNumberToFixed } from '@tdesign/common-js/input-number/large-number';\n\nexport default defineComponent({\n name: 'TImageViewerUtils',\n props: {\n scale: Number,\n onRotate: Function as PropType<() => void>,\n onZoomIn: Function as PropType<() => void>,\n onZoomOut: Function as PropType<() => void>,\n onMirror: Function as PropType<() => void>,\n onReset: Function as PropType<() => void>,\n onDownload: Function as PropType<(url: string) => void>,\n currentImage: {\n type: Object as PropType,\n default() {\n return {};\n },\n },\n },\n setup(props) {\n const classPrefix = usePrefixClass();\n const imageUrl = computed(() => props.currentImage.mainImage);\n\n const { previewUrl } = useImagePreviewUrl(imageUrl);\n const { globalConfig } = useConfig('imageViewer');\n\n return () => (\n
    \n
    \n \n } />\n \n \n } />\n \n } onClick={props.onZoomOut} />\n \n\n } onClick={props.onZoomIn} />\n \n
    \n } onClick={props.onReset} />\n
    \n \n {props.currentImage.download && (\n }\n onClick={() => {\n props.onDownload(previewUrl.value);\n }}\n />\n )}\n
    \n
    \n );\n },\n});\n","import { computed, defineComponent, PropType } from 'vue';\nimport TDialog from '../../dialog';\nimport { useTNodeJSX, usePrefixClass } from '@tdesign/hooks';\n\nimport props from '../props';\nimport { ImageInfo, TdImageViewerProps } from '../type';\nimport TImageItem from './ImageItem';\nimport TImageViewerUtils from './ImageViewerUtils';\n\nexport default defineComponent({\n name: 'TImageViewerModal',\n props: {\n zIndex: Number,\n visible: Boolean,\n index: Number,\n images: props.images,\n scale: Number,\n rotate: Number,\n mirror: Number,\n title: props.title,\n currentImage: {\n type: Object as PropType,\n default() {\n return {};\n },\n },\n onRotate: Function as PropType<() => void>,\n onZoomIn: Function as PropType<() => void>,\n onZoomOut: Function as PropType<() => void>,\n onMirror: Function as PropType<() => void>,\n onReset: Function as PropType<() => void>,\n onClose: props.onClose,\n onDownload: props.onDownload,\n draggable: {\n type: Boolean,\n default: true,\n },\n viewerScale: {\n type: Object as PropType,\n default() {\n return {};\n },\n },\n showOverlay: Boolean,\n closeBtn: props.closeBtn,\n imageReferrerpolicy: props.imageReferrerpolicy,\n },\n setup(props) {\n const classPrefix = usePrefixClass();\n const renderJSX = useTNodeJSX();\n const style = computed(() => ({\n minWidth: props.viewerScale.minWidth,\n minHeight: props.viewerScale.minHeight,\n }));\n\n return () => (\n (\n
    \n \n
    \n )}\n >\n
    \n \n
    \n \n );\n },\n});\n","export const enum EVENT_CODE {\n left = 'ArrowLeft', // 37\n up = 'ArrowUp', // 38\n right = 'ArrowRight', // 39\n down = 'ArrowDown', // 40\n esc = 'Escape',\n}\n","import { isArray, isString } from 'lodash-es';\n\nimport { TdImageViewerProps, ImageInfo } from '../type';\n\nexport const downloadFile = function (imgSrc: string) {\n const image = new Image();\n // fix #2935\n // 当链接携带了参数时,需处理掉参数再取图片名称,否则扩展名会与参数链接导致原扩展名失效\n // 例如:img.png?sign=xxx 不处理参数会被转成 img.png_sign=xxx\n const name = imgSrc?.split?.('?')?.[0]?.split?.('#')?.[0]?.split?.('/').pop() || Math.random().toString(32).slice(2);\n\n image.setAttribute('crossOrigin', 'anonymous');\n\n image.onload = () => {\n const canvas = document.createElement('canvas');\n canvas.width = image.width;\n canvas.height = image.height;\n\n const context = canvas.getContext('2d');\n context.drawImage(image, 0, 0, image.width, image.height);\n canvas.toBlob((blob) => {\n const url = URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.download = name;\n a.href = url;\n a.click();\n a.remove();\n URL.revokeObjectURL(url);\n });\n };\n image.src = imgSrc;\n};\n\nconst isImageInfo = (image: string | File | ImageInfo): image is ImageInfo => {\n return !!image && !isString(image) && !(image instanceof File);\n};\n\nexport const formatImages = (images: TdImageViewerProps['images']): ImageInfo[] => {\n if (!isArray(images)) return [];\n return images.map((item) => {\n if (isImageInfo(item)) {\n return {\n download: true,\n thumbnail: item.mainImage,\n ...item,\n };\n }\n return {\n mainImage: item,\n thumbnail: item,\n download: true,\n };\n });\n};\n\nexport const getOverlay = (props: TdImageViewerProps) => {\n if (props.showOverlay !== undefined) {\n return props.showOverlay;\n }\n return props.mode === 'modal';\n};\n","import { ChevronDownIcon, ChevronLeftIcon, CloseIcon } from 'tdesign-icons-vue-next';\nimport { Teleport, Transition, computed, defineComponent, nextTick, ref, toRefs, watch } from 'vue';\n\nimport { useVModel, useTNodeJSX, useTeleport, usePrefixClass, useDefaultValue, usePopupManager } from '@tdesign/hooks';\n\nimport Image from '../image';\nimport TImageItem from './base/ImageItem';\nimport TImageViewerIcon from './base/ImageModalIcon';\nimport TImageViewerModal from './base/ImageViewerModal';\nimport TImageViewerUtils from './base/ImageViewerUtils';\nimport { EVENT_CODE } from './consts';\nimport { useMirror, useRotate, useScale } from './hooks';\nimport props from './props';\nimport { TdImageViewerProps } from './type';\nimport { downloadFile, formatImages, getOverlay } from './utils';\n\nexport default defineComponent({\n name: 'TImageViewer',\n props,\n setup(props) {\n const classPrefix = usePrefixClass();\n const COMPONENT_NAME = usePrefixClass('image-viewer');\n const renderTNodeJSX = useTNodeJSX();\n const isExpand = ref(true);\n const showOverlayValue = computed(() => getOverlay(props));\n\n const { index, visible, modelValue, imageReferrerpolicy } = toRefs(props);\n const [indexValue, setIndexValue] = useDefaultValue(index, props.defaultIndex ?? 0, props.onIndexChange, 'index');\n const [visibleValue, setVisibleValue] = useVModel(visible, modelValue, props.defaultVisible, () => {}, 'visible');\n const animationEnd = ref(true);\n const animationTimer = ref();\n // teleport容器\n const teleportElement = useTeleport(() => props.attach);\n\n const wrapClass = computed(() => [\n COMPONENT_NAME.value,\n `${COMPONENT_NAME.value}-preview-image`,\n {\n [`${classPrefix.value}-is-hide`]: !visibleValue.value,\n },\n ]);\n const headerClass = computed(() => [\n `${classPrefix.value}-image-viewer__modal-header`,\n {\n [`${classPrefix.value}-is-show`]: isExpand.value,\n },\n ]);\n const zIndexValue = computed(() => props.zIndex ?? 2600);\n const toggleExpand = () => {\n isExpand.value = !isExpand.value;\n };\n\n const { mirror, onMirror, resetMirror } = useMirror();\n const { scale, onZoomIn, onZoomOut, resetScale } = useScale(props.imageScale);\n const { rotate, onRotate, resetRotate } = useRotate();\n const onRest = () => {\n resetMirror();\n resetScale();\n resetRotate();\n };\n\n const images = computed(() => formatImages(props.images));\n const currentImage = computed(() => images.value[indexValue.value] ?? { mainImage: '' });\n\n const { isTopInteractivePopup } = usePopupManager('dialog', {\n visible: visibleValue,\n });\n\n const prevImage = () => {\n const newIndex = indexValue.value - 1;\n onRest();\n setIndexValue(newIndex < 0 ? 0 : newIndex, { trigger: 'prev' });\n };\n\n const nextImage = () => {\n const newIndex = indexValue.value + 1;\n onRest();\n setIndexValue(newIndex >= images.value.length ? indexValue.value : newIndex, { trigger: 'next' });\n };\n\n const onImgClick = (i: number) => {\n setIndexValue(i, { trigger: 'current' });\n };\n\n const onDownloadClick = (url: string) => {\n props.onDownload ? props.onDownload(url) : downloadFile(url);\n };\n\n const openHandler = () => {\n setVisibleValue(true);\n };\n const onClose: TdImageViewerProps['onClose'] = (ctx) => {\n setVisibleValue(false);\n props.onClose?.(ctx);\n };\n const closeBtnAction = (e: MouseEvent) => {\n onClose({ e, trigger: 'close-btn' });\n };\n const clickOverlayHandler = (e: MouseEvent) => {\n if (props.closeOnOverlay) {\n onClose({ e, trigger: 'overlay' });\n }\n };\n\n const keydownHandler = (e: KeyboardEvent) => {\n e.stopPropagation();\n\n switch (e.code) {\n case EVENT_CODE.left:\n prevImage();\n break;\n case EVENT_CODE.right:\n nextImage();\n break;\n case EVENT_CODE.up:\n onZoomIn();\n break;\n case EVENT_CODE.down:\n onZoomOut();\n break;\n case EVENT_CODE.esc:\n if (props.closeOnEscKeydown && isTopInteractivePopup()) {\n onClose({ e, trigger: 'esc' });\n }\n break;\n default:\n break;\n }\n };\n\n const divRef = ref();\n watch(\n () => visibleValue.value,\n (val) => {\n clearTimeout(animationTimer.value);\n if (val) {\n animationEnd.value = false;\n nextTick().then(() => {\n divRef.value?.focus?.();\n });\n\n onRest();\n } else {\n animationTimer.value = setTimeout(() => {\n animationEnd.value = true;\n }, 200);\n }\n },\n );\n\n const onWheel = (e: WheelEvent) => {\n e.preventDefault();\n const { deltaY } = e;\n deltaY > 0 ? onZoomOut() : onZoomIn();\n };\n\n const transStyle = computed(() => ({\n transform: `translateX(calc(-${indexValue.value} * (40px / 9 * 16 + 4px)))`,\n }));\n\n const renderHeader = () => (\n
    \n }\n class={`${COMPONENT_NAME.value}__header-pre-bt`}\n onClick={toggleExpand}\n />\n
    \n
    \n {images.value.map((image, index) => (\n \n onImgClick(index)}\n />\n
    \n ))}\n
    \n
    \n \n );\n const renderNavigationArrow = (type: 'prev' | 'next') => {\n const rotateDeg = type === 'prev' ? 0 : 180;\n const icon = renderTNodeJSX(\n 'navigationArrow',\n ,\n );\n\n return (\n icon}\n />\n );\n };\n\n const renderCloseBtn = () => {\n if (props.closeBtn === false) {\n return;\n }\n return (\n \n {renderTNodeJSX('closeBtn', )}\n \n );\n };\n\n return () => {\n if (props.mode === 'modeless') {\n return (\n <>\n {renderTNodeJSX('trigger', { params: { open: openHandler } })}\n \n \n );\n }\n\n return (\n <>\n {renderTNodeJSX('trigger', { params: { open: openHandler } })}\n \n \n {(visibleValue.value || !animationEnd.value) && (\n \n {!!showOverlayValue.value && (\n
    \n )}\n {images.value.length > 1 && (\n <>\n {renderHeader()}\n
    \n {props.title && renderTNodeJSX('title')}\n {`${indexValue.value + 1}/${images.value.length}`}\n
    \n {renderNavigationArrow('prev')}\n {renderNavigationArrow('next')}\n \n )}\n {renderCloseBtn()}\n \n \n
    \n )}\n
    \n
    \n \n );\n };\n },\n});\n","import _ImageViewer from './image-viewer';\nimport withInstall from '../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 { useTNodeJSX, usePrefixClass } from '@tdesign/hooks';\n\nexport default defineComponent({\n name: 'TListItem',\n props,\n setup() {\n const COMPONENT_NAME = usePrefixClass('list-item');\n const renderTNodeJSX = useTNodeJSX();\n\n return () => {\n const propsContent = renderTNodeJSX('content');\n const propsDefaultContent = renderTNodeJSX('default');\n const propsActionContent = renderTNodeJSX('action');\n\n return (\n
  • \n
    \n {propsDefaultContent || propsContent}\n {propsActionContent &&
  • {propsActionContent}
  • }\n \n \n );\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdListProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 自定义加载中。值为空不显示加载中,值为 'loading' 显示加载中状态,值为 'load-more' 显示加载更多状态。值类型为函数,则表示自定义加载状态呈现内容 */\n asyncLoading: {\n type: [String, Function] as PropType,\n },\n /** 底部 */\n footer: {\n type: [String, Function] as PropType,\n },\n /** 头部 */\n header: {\n type: [String, Function] as PropType,\n },\n /** 排列方式(待设计稿输出) */\n layout: {\n type: String as PropType,\n default: 'horizontal' as TdListProps['layout'],\n validator(val: TdListProps['layout']): boolean {\n if (!val) return true;\n return ['horizontal', 'vertical'].includes(val);\n },\n },\n /** 懒加载和虚拟滚动。为保证组件收益最大化,当数据量小于阈值 `scroll.threshold` 时,无论虚拟滚动的配置是否存在,组件内部都不会开启虚拟滚动,`scroll.threshold` 默认为 `100` */\n scroll: {\n type: Object as PropType,\n },\n /** 尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdListProps['size'],\n validator(val: TdListProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 是否展示分割线 */\n split: Boolean,\n /** 是否展示斑马纹 */\n stripe: Boolean,\n /** 点击加载更多时触发 */\n onLoadMore: Function as PropType,\n /** 列表滚动时触发,scrollTop 表示顶部滚动距离,scrollBottom 表示底部滚动距离 */\n onScroll: Function as PropType,\n};\n","export const LOAD_MORE = 'load-more';\nexport const LOADING = 'loading';\n","import { Ref, computed } from 'vue';\n\nimport log from '@tdesign/common-js/log/index';\nimport { useVirtualScrollNew } from '@tdesign/hooks';\nimport { TdListProps } from '../type';\nimport { Styles, type ComponentScrollToElementParams } from '../../common';\n\nexport const useListVirtualScroll = (\n scroll: TdListProps['scroll'],\n listRef: Ref,\n listItems: Ref,\n) => {\n const virtualScrollParams = computed(() => ({\n data: listItems.value,\n scroll: scroll,\n }));\n const virtualConfig = useVirtualScrollNew(listRef, virtualScrollParams);\n const isVirtualScroll = computed(() => virtualConfig.isVirtualScroll.value);\n let lastScrollY = -1;\n\n const onInnerVirtualScroll = (e: WheelEvent) => {\n const target = (e.target || e.srcElement) as HTMLElement;\n const top = target.scrollTop;\n if (lastScrollY !== top) {\n virtualConfig.isVirtualScroll.value && virtualConfig.handleScroll();\n } else {\n lastScrollY = -1;\n }\n lastScrollY = top;\n };\n\n const cursorStyle = computed(\n () =>\n ({\n position: 'absolute',\n width: '1px',\n height: '1px',\n transition: 'transform 0.2s',\n transform: `translate(0, ${virtualConfig.scrollHeight.value}px)`,\n '-ms-transform': `translate(0, ${virtualConfig.scrollHeight.value}px)`,\n '-moz-transform': `translate(0, ${virtualConfig.scrollHeight.value}px)`,\n '-webkit-transform': `translate(0, ${virtualConfig.scrollHeight.value}px)`,\n } as Styles),\n );\n\n const listStyle = computed(\n () =>\n ({\n transform: `translate(0, ${virtualConfig.translateY.value}px)`,\n '-ms-transform': `translate(0, ${virtualConfig.translateY.value}px)`,\n '-moz-transform': `translate(0, ${virtualConfig.translateY.value}px)`,\n '-webkit-transform': `translate(0, ${virtualConfig.translateY.value}px)`,\n } as Styles),\n );\n\n const handleScrollTo = (params: ComponentScrollToElementParams) => {\n const { index, key } = params;\n const targetIndex = index === 0 ? index : index ?? Number(key);\n if (!targetIndex && targetIndex !== 0) {\n log.error('List', 'scrollTo: `index` or `key` must exist.');\n return;\n }\n if (targetIndex < 0 || targetIndex >= listItems.value.length) {\n log.error('List', `${targetIndex} does not exist in data, check \\`index\\` or \\`key\\` please.`);\n return;\n }\n virtualConfig.scrollToElement({ ...params, index: targetIndex - 1 });\n };\n\n return {\n virtualConfig,\n cursorStyle,\n listStyle,\n isVirtualScroll,\n onInnerVirtualScroll,\n scrollToElement: handleScrollTo,\n };\n};\n","import { defineComponent, VNodeChild, computed, ref } from 'vue';\nimport { omit, isString } from 'lodash-es';\n\nimport { useConfig, useTNodeJSX, usePrefixClass, useCommonClassName } from '@tdesign/hooks';\nimport TLoading from '../loading';\nimport TListItem from './list-item';\nimport props from './props';\nimport { LOAD_MORE, LOADING } from './consts';\n\nimport { useListItems, useListVirtualScroll } from './hooks';\n\nimport type { TdListProps } from './type';\n\nexport default defineComponent({\n name: 'TList',\n props,\n setup(props: TdListProps, { expose }) {\n const listRef = ref();\n\n const { globalConfig } = useConfig('list');\n const COMPONENT_NAME = usePrefixClass('list');\n const { SIZE } = useCommonClassName();\n const renderTNodeJSX = useTNodeJSX();\n const { listItems } = useListItems();\n\n const { virtualConfig, cursorStyle, listStyle, isVirtualScroll, onInnerVirtualScroll, scrollToElement } =\n useListVirtualScroll(props.scroll, listRef, listItems);\n\n /** 列表基础逻辑 start */\n const listClass = computed(() => {\n return [\n `${COMPONENT_NAME.value}`,\n SIZE.value[props.size],\n {\n [`${COMPONENT_NAME.value}--split`]: props.split,\n [`${COMPONENT_NAME.value}--stripe`]: props.stripe,\n [`${COMPONENT_NAME.value}--vertical-action`]: props.layout === 'vertical',\n },\n ];\n });\n const renderContent = (): VNodeChild => {\n const propsHeaderContent = renderTNodeJSX('header');\n const propsFooterContent = renderTNodeJSX('footer');\n const isVirtualScroll = virtualConfig.isVirtualScroll.value;\n return (\n <>\n {propsHeaderContent ?
    {propsHeaderContent}
    : null}\n {isVirtualScroll ? (\n <>\n
    \n
      \n {virtualConfig.visibleData.value.map((item) => (\n <>\n \n \n ))}\n
    \n \n ) : (\n
      {renderTNodeJSX('default')}
    \n )}\n {propsFooterContent ?
    {propsFooterContent}
    : null}\n \n );\n };\n /** 列表基础逻辑 end */\n\n /** 滚动相关逻辑 start */\n const handleScroll = (e: WheelEvent) => {\n const listElement = e.target as HTMLElement;\n const { scrollTop, scrollHeight, clientHeight } = listElement;\n if (isVirtualScroll.value) onInnerVirtualScroll(e);\n props.onScroll?.({\n e,\n scrollTop,\n scrollBottom: scrollHeight - clientHeight - scrollTop,\n });\n };\n /** 滚动相关逻辑 end */\n\n /** loading加载相关逻辑 start */\n const loadingClass = computed(() => {\n return isString(props.asyncLoading) && ['loading', 'load-more'].includes(props.asyncLoading)\n ? `${COMPONENT_NAME.value}__load ${COMPONENT_NAME.value}__load--${props.asyncLoading}`\n : `${COMPONENT_NAME.value}__load`;\n });\n\n const renderLoading = () => {\n if (props.asyncLoading && isString(props.asyncLoading)) {\n if (props.asyncLoading === LOADING) {\n return (\n
    \n \n {globalConfig.value.loadingText}\n
    \n );\n }\n if (props.asyncLoading === LOAD_MORE) {\n return {globalConfig.value.loadingMoreText};\n }\n }\n return renderTNodeJSX('asyncLoading');\n };\n\n const handleLoadMore = (e: MouseEvent) => {\n if (isString(props.asyncLoading) && props.asyncLoading !== LOAD_MORE) return;\n props.onLoadMore?.({ e });\n };\n expose({ scrollTo: scrollToElement });\n return () => {\n const listContent = [\n renderContent(),\n
    \n {renderLoading()}\n
    ,\n ];\n\n return (\n \n {listContent}\n \n );\n };\n },\n});\n","import { computed } from 'vue';\nimport { isArray } from 'lodash-es';\n\nimport { useChildComponentSlots } from '@tdesign/hooks';\n\nexport const useListItems = () => {\n const getChildComponentSlots = useChildComponentSlots();\n\n const listItems = computed(() => {\n const computedListItems = [];\n // 处理 slots\n const listItemSlots = getChildComponentSlots('ListItem');\n\n if (isArray(listItemSlots)) {\n for (const child of listItemSlots) {\n computedListItems.push({\n ...child.props,\n slots: child.children,\n } as any);\n }\n }\n return computedListItems;\n });\n\n return {\n listItems,\n };\n};\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdListItemMetaProps } from '../list/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 已废弃。列表项图片 */\n avatar: {\n type: [String, Function] as PropType,\n },\n /** 列表项内容 */\n description: {\n type: [String, Function] as PropType,\n },\n /** 列表项图片 */\n image: {\n type: [String, Function] as PropType,\n },\n /** 列表项标题 */\n title: {\n type: [String, Function] as PropType,\n },\n};\n","import { defineComponent } from 'vue';\nimport props from './list-item-meta-props';\nimport { useContent, useTNodeJSX, usePrefixClass } from '@tdesign/hooks';\n\nimport { isString } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TListItemMeta',\n props,\n setup(props, ctx) {\n const COMPONENT_NAME = usePrefixClass('list-item__meta');\n const renderContent = useContent();\n const renderTNodeJSX = useTNodeJSX();\n\n const renderAvatar = () => {\n if (props.avatar || ctx.slots.avatar) {\n console.warn('`avatar` is going to be deprecated, please use `image` instead');\n }\n const thumbnail = renderContent('avatar', 'image');\n if (!thumbnail) return;\n if (isString(thumbnail)) {\n return (\n
    \n \n
    \n );\n }\n return
    {thumbnail}
    ;\n };\n return () => {\n const propsTitleContent = renderTNodeJSX('title');\n const propsDescriptionContent = renderTNodeJSX('description');\n\n const listItemMetaContent = [\n renderAvatar(),\n
    \n {propsTitleContent &&

    {propsTitleContent}

    }\n {propsDescriptionContent &&

    {propsDescriptionContent}

    }\n
    ,\n ];\n\n return
    {listItemMetaContent}
    ;\n };\n },\n});\n","import _List from './list';\nimport _ListItem from './list-item';\nimport _ListItemMeta from './list-item-meta';\nimport withInstall from '../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, ref, nextTick } from 'vue';\nimport {\n CloseCircleFilledIcon as TdCloseCircleFilledIcon,\n CheckCircleFilledIcon as TdCheckCircleFilledIcon,\n ErrorCircleFilledIcon as TdErrorCircleFilledIcon,\n CloseIcon as TdCloseIcon,\n CheckIcon as TdCheckIcon,\n ErrorIcon as TdErrorIcon,\n} from 'tdesign-icons-vue-next';\n\nimport { getBackgroundColor } from '@tdesign/common-js/utils/helper';\nimport { PRO_THEME, CIRCLE_SIZE, CIRCLE_SIZE_PX, STATUS_ICON, CIRCLE_FONT_SIZE_RATIO } from './consts';\nimport props from './props';\n\nimport { useTNodeJSX, useGlobalIcon, usePrefixClass, useResizeObserver } from '@tdesign/hooks';\n\nimport { isObject, isString } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TProgress',\n props,\n setup(props) {\n const renderTNodeJSX = useTNodeJSX();\n const COMPONENT_NAME = usePrefixClass('progress');\n const { CloseCircleFilledIcon, CheckCircleFilledIcon, ErrorCircleFilledIcon, CloseIcon, CheckIcon, ErrorIcon } =\n useGlobalIcon({\n CloseCircleFilledIcon: TdCloseCircleFilledIcon,\n CheckCircleFilledIcon: TdCheckCircleFilledIcon,\n ErrorCircleFilledIcon: TdErrorCircleFilledIcon,\n CloseIcon: TdCloseIcon,\n CheckIcon: TdCheckIcon,\n ErrorIcon: TdErrorIcon,\n });\n\n const CIRCLE_ICONS_MAP = {\n success: CheckIcon,\n warning: ErrorIcon,\n error: CloseIcon,\n };\n const NORMAL_ICONS_MAP = {\n success: CheckCircleFilledIcon,\n warning: ErrorCircleFilledIcon,\n error: CloseCircleFilledIcon,\n };\n\n const statusStyle = computed(() => {\n if (!props.status && props.percentage >= 100) {\n return 'success';\n }\n return props.status || 'default';\n });\n\n const trackBgStyle = computed(() => {\n const style: CSSProperties = {};\n if (props.strokeWidth) {\n const height = isString(props.strokeWidth) ? props.strokeWidth : `${props.strokeWidth}px`;\n style.height = height;\n style.borderRadius = height;\n }\n if (props.trackColor) {\n style.backgroundColor = props.trackColor;\n }\n return style;\n });\n\n const barStyle = computed(() => {\n return {\n width: `${props.percentage}%`,\n background: props.color && getBackgroundColor(props.color),\n };\n });\n\n const circlePathStyle = computed(() => {\n const strokeColor = isObject(props.color) ? '' : props.color;\n return {\n stroke: strokeColor,\n };\n });\n\n const circleOuterStyle = computed(() => {\n const strokeColor = isObject(props.trackColor) ? '' : props.trackColor;\n return {\n stroke: strokeColor,\n };\n });\n\n // theme=circle 获取直径\n const diameter = computed(() => {\n let diameterValue = CIRCLE_SIZE_PX.MEDIUM;\n if (!props.size) {\n return diameterValue;\n }\n const { SMALL, LARGE, MEDIUM } = CIRCLE_SIZE;\n switch (props.size) {\n case SMALL:\n diameterValue = CIRCLE_SIZE_PX.SMALL;\n break;\n case MEDIUM:\n diameterValue = CIRCLE_SIZE_PX.MEDIUM;\n break;\n case LARGE:\n diameterValue = CIRCLE_SIZE_PX.LARGE;\n break;\n default:\n const customSize = Number(props.size);\n diameterValue = !isNaN(customSize) && customSize > 0 ? customSize : CIRCLE_SIZE_PX.MEDIUM;\n break;\n }\n return diameterValue;\n });\n\n const rPoints = computed(() => {\n return diameter.value / 2;\n });\n\n const radius = computed(() => {\n return rPoints.value - circleStrokeWidth.value / 2;\n });\n\n const circleStyle = computed(() => {\n if (props.theme !== PRO_THEME.CIRCLE) {\n return {};\n }\n\n let fontSize = diameter.value * CIRCLE_FONT_SIZE_RATIO.MEDIUM;\n if (diameter.value <= CIRCLE_SIZE_PX.SMALL) {\n fontSize = diameter.value * CIRCLE_FONT_SIZE_RATIO.SMALL;\n } else if (diameter.value >= CIRCLE_SIZE_PX.LARGE) {\n fontSize = diameter.value * CIRCLE_FONT_SIZE_RATIO.LARGE;\n }\n\n return {\n width: `${diameter.value}px`,\n height: `${diameter.value}px`,\n fontSize: `${fontSize}px`,\n };\n });\n\n const circleStrokeWidth = computed(() => {\n const defaultWidth = props.size === CIRCLE_SIZE.SMALL ? 4 : 6;\n return props.strokeWidth ? Number(props.strokeWidth) : defaultWidth;\n });\n\n const strokeDashArr = computed(() => {\n const radius = (diameter.value - circleStrokeWidth.value) / 2;\n const perimeter = Math.PI * 2 * radius;\n const percent = props.percentage / 100;\n return `${perimeter * percent} ${perimeter * (1 - percent)}`;\n });\n\n const getIconMap = computed(() => {\n return props.theme === PRO_THEME.CIRCLE ? CIRCLE_ICONS_MAP : NORMAL_ICONS_MAP;\n });\n\n const getLabelContent = () => {\n let labelContentRender: string | VNode = `${props.percentage}%`;\n const status = props.status || '';\n if (STATUS_ICON.includes(status) && props.theme !== PRO_THEME.PLUMP) {\n const component = getIconMap.value[status as keyof typeof CIRCLE_ICONS_MAP];\n if (component) {\n labelContentRender = ;\n }\n }\n return labelContentRender;\n };\n\n // 当文字小于进度条宽度时,文字在进度条外部,否则在内部\n const infoIsOut = ref(true);\n const infoRef = ref(null);\n\n const separateClasses = computed(() => {\n return infoIsOut.value ? `${COMPONENT_NAME.value}--over-ten` : `${COMPONENT_NAME.value}--under-ten`;\n });\n\n async function updateInfoIsOut() {\n if (props.theme === PRO_THEME.PLUMP) {\n if (!infoRef.value || props.label === false) return;\n await nextTick();\n const infoEl =\n infoRef.value.querySelector(`.${COMPONENT_NAME.value}__info`) || infoRef.value.nextElementSibling;\n infoIsOut.value = infoRef.value.clientWidth > infoEl?.clientWidth + 10;\n }\n }\n\n useResizeObserver(infoRef, updateInfoIsOut);\n\n return () => {\n const labelContent = (\n
    {renderTNodeJSX('label', getLabelContent())}
    \n );\n\n return (\n
    \n {props.theme === PRO_THEME.LINE && (\n
    \n
    \n
    \n
    \n {labelContent}\n
    \n )}\n\n {props.theme === PRO_THEME.PLUMP && (\n \n
    \n {infoIsOut.value && labelContent}\n
    \n {!infoIsOut.value && labelContent}\n
    \n )}\n\n {props.theme === PRO_THEME.CIRCLE && (\n \n {labelContent}\n \n \n {props.percentage > 0 && (\n \n )}\n \n \n )}\n \n );\n };\n },\n});\n","import _Progress from './progress';\nimport withInstall from '../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 { isArray, isNumber, isFunction } from 'lodash-es';\n\nimport props from './props';\nimport { SkeletonRowCol, SkeletonRowColObj, TdSkeletonProps } from './type';\nimport { useContent, usePrefixClass } from '@tdesign/hooks';\n\nconst ThemeMap: Record = {\n text: [1],\n avatar: [{ type: 'circle', size: '56px' }],\n paragraph: [1, 1, { width: '70%' }],\n 'avatar-text': [[{ type: 'circle' }, { type: 'text', height: '32px' }]],\n tab: [{ height: '30px' }, { height: '200px' }],\n article: [\n { type: 'rect', height: '30px', width: '100%' },\n { type: 'rect', height: '200px', width: '100%' },\n [\n { type: 'text', height: '30px' },\n { type: 'text', height: '30px' },\n { type: 'text', height: '30px' },\n ],\n [\n { type: 'text', height: '30px' },\n { type: 'text', height: '30px' },\n ],\n [\n { type: 'text', height: '30px' },\n { type: 'text', height: '30px' },\n ],\n [\n { type: 'text', height: '30px' },\n { type: 'text', height: '30px' },\n ],\n ],\n};\n\nconst getColItemStyle = (obj: SkeletonRowColObj) => {\n const styleName = ['width', 'height', 'marginRight', 'marginLeft', 'margin', 'size', 'background', 'backgroundColor'];\n const style = Object.create(null);\n styleName.forEach((name) => {\n // TODO: function isKeyOfObj(key: string, obj: object): key is keyof typeof obj { return key in obj;}\n if (name in obj) {\n const val = obj[name as keyof typeof obj];\n const px = isNumber(val) ? `${val}px` : val;\n if (name === 'size') {\n [style.width, style.height] = [px, px];\n } else {\n style[name] = px;\n }\n }\n });\n return style;\n};\n\nexport default defineComponent({\n name: 'TSkeleton',\n props,\n setup(props, { slots }) {\n const isShow = ref(false);\n const COMPONENT_NAME = usePrefixClass('skeleton');\n const renderContent = useContent();\n const getColItemClass = (obj: SkeletonRowColObj) => [\n `${COMPONENT_NAME.value}__col`,\n `${COMPONENT_NAME.value}--type-${obj.type || 'text'}`,\n { [`${COMPONENT_NAME.value}--animation-${props.animation}`]: props.animation },\n ];\n\n const renderCols = (_cols: Number | SkeletonRowColObj | Array) => {\n let cols: Array = [];\n if (isArray(_cols)) {\n cols = _cols;\n } else if (isNumber(_cols)) {\n cols = new Array(_cols).fill({ type: 'text' });\n } else {\n cols = [_cols as SkeletonRowColObj];\n }\n return cols.map((obj) => (\n
    \n {isFunction(obj.content) ? obj.content(h) : obj.content}\n
    \n ));\n };\n\n const renderRowCol = (_rowCol?: SkeletonRowCol) => {\n const rowCol: SkeletonRowCol = _rowCol || props.rowCol;\n\n const getBlockClass = () => [`${COMPONENT_NAME.value}__row`];\n\n return rowCol.map((item) =>
    {renderCols(item)}
    );\n };\n\n let timer: NodeJS.Timeout = null;\n\n watch(\n () => props.loading,\n (bool) => {\n if (!bool) {\n clearTimeout(timer);\n isShow.value = false;\n return;\n }\n if (props.delay > 0) {\n timer = setTimeout(() => {\n clearTimeout(timer);\n isShow.value = true;\n }, props.delay);\n } else {\n isShow.value = true;\n }\n },\n { immediate: true },\n );\n\n return () => {\n const content = renderContent('default', 'content');\n\n if (slots.default && !isShow.value) {\n return
    {content}
    ;\n }\n\n if (!isShow.value) {\n return;\n }\n\n const children = [];\n if (props.theme) {\n children.push(renderRowCol(ThemeMap[props.theme]));\n }\n if (props.rowCol) {\n children.push(renderRowCol(props.rowCol));\n }\n if (!props.theme && !props.rowCol) {\n // 什么都不传时,传入默认 rowCol\n children.push(renderRowCol([1, 1, 1, { width: '70%' }]));\n }\n\n return
    {children}
    ;\n };\n },\n});\n","import _Skeleton from './skeleton';\nimport withInstall from '../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, isFunction } from 'lodash-es';\n\nimport props from './props';\nimport { useTNodeJSX, useGlobalIcon, usePrefixClass } from '@tdesign/hooks';\n\nimport Skeleton from '../skeleton';\nimport Tween from '@tdesign/common-js/statistic/tween';\nimport { COLOR_MAP, getFormatValue } from '@tdesign/common-js/statistic/utils';\n\nexport default defineComponent({\n name: 'TStatistic',\n props,\n setup(props, { expose }) {\n const COMPONENT_NAME = usePrefixClass('statistic');\n const renderTNodeJSX = useTNodeJSX();\n const { ArrowTriangleUpFilledIcon, ArrowTriangleDownFilledIcon } = useGlobalIcon({\n ArrowTriangleUpFilledIcon: TDArrowTriangleUpFilledIcon,\n ArrowTriangleDownFilledIcon: TDArrowTriangleDownFilledIcon,\n });\n const trendIcons = {\n increase: ,\n decrease: ,\n };\n const numberValue = computed(() => (isNumber(props.value) ? props.value : 0));\n const innerValue = ref(props.animation?.valueFrom ?? props.value);\n const innerDecimalPlaces = computed(\n () => props.decimalPlaces ?? numberValue.value.toString().split('.')[1]?.length ?? 0,\n );\n\n const tween = ref();\n const { value } = toRefs(props);\n\n const start = (from: number = props.animation?.valueFrom ?? 0, to: number = numberValue.value) => {\n if (from !== to) {\n tween.value = new Tween({\n from: {\n value: from,\n },\n to: {\n value: to,\n },\n duration: props.animation.duration,\n onUpdate: (keys) => {\n innerValue.value = Number(keys.value.toFixed(innerDecimalPlaces.value));\n },\n onFinish: () => {\n innerValue.value = to;\n },\n });\n tween.value?.start();\n }\n };\n\n const formatValue = computed(() => {\n if (isFunction(props.format)) {\n return props.format(innerValue.value);\n }\n\n return getFormatValue(innerValue.value, props.decimalPlaces, props.separator);\n });\n\n const contentStyle = computed(() => {\n const { color } = props;\n return {\n color: COLOR_MAP[color] || color,\n };\n });\n\n watch(\n () => props.animationStart,\n (value) => {\n if (props.animation && value && !tween.value) {\n start();\n }\n },\n );\n watch(value, (value) => {\n if (tween.value) {\n (tween.value as any)?.stop();\n tween.value = null;\n }\n innerValue.value = value;\n if (props.animationStart && props.animation) {\n start();\n }\n });\n\n onMounted(() => props.animation && props.animationStart && start());\n\n expose({ start });\n\n return () => {\n const trendIcon = props.trend ? trendIcons[props.trend] : null;\n const prefix = renderTNodeJSX('prefix') || (trendIcon && props.trendPlacement !== 'right' ? trendIcon : null);\n const suffix = renderTNodeJSX('suffix') || (trendIcon && props.trendPlacement === 'right' ? trendIcon : null);\n const title = renderTNodeJSX('title');\n const unit = renderTNodeJSX('unit');\n const extra = renderTNodeJSX('extra');\n\n return (\n
    \n {title &&
    {title}
    }\n \n
    \n {prefix && {prefix}}\n {formatValue.value}\n {unit && {unit}}\n {suffix && {suffix}}\n
    \n
    \n {extra &&
    {extra}
    }\n
    \n );\n };\n },\n});\n","import _Statistic from './statistic';\nimport withInstall from '../utils/withInstall';\nimport { TdStatisticProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type StatisticProps = TdStatisticProps;\n\nexport const Statistic = withInstall(_Statistic);\n\nexport default Statistic;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * updated at 2021-12-12 19:17:30\n * */\n\nimport { TdSwiperProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 轮播切换动画效果类型:滑动、淡入淡出等 */\n animation: {\n type: String as PropType,\n default: 'slide' as TdSwiperProps['animation'],\n validator(val: TdSwiperProps['animation']): boolean {\n if (!val) return true;\n return ['slide', 'fade'].includes(val);\n },\n },\n /** 是否自动播放 */\n autoplay: {\n type: Boolean,\n default: true,\n },\n /** 当前轮播在哪一项(下标) */\n current: {\n type: Number,\n default: 0,\n },\n /** 当前轮播在哪一项(下标),非受控属性 */\n defaultCurrent: {\n type: Number,\n default: 0,\n },\n /** 轮播滑动方向,包括横向滑动和纵向滑动两个方向 */\n direction: {\n type: String as PropType,\n default: 'horizontal' as TdSwiperProps['direction'],\n validator(val: TdSwiperProps['direction']): boolean {\n if (!val) return true;\n return ['horizontal', 'vertical'].includes(val);\n },\n },\n /** 滑动动画时长 */\n duration: {\n type: Number,\n default: 300,\n },\n /** 当使用垂直方向滚动时的高度 */\n height: {\n type: Number,\n },\n /** 轮播间隔时间 */\n interval: {\n type: Number,\n default: 5000,\n },\n /** 是否循环播放 */\n loop: {\n type: Boolean,\n default: true,\n },\n /** 导航器全部配置 */\n navigation: {\n type: [Object, Function] as PropType,\n },\n /** 是否悬浮时停止轮播 */\n stopOnHover: {\n type: Boolean,\n default: true,\n },\n /** 深色模式和浅色模式 */\n theme: {\n type: String as PropType,\n default: 'light' as TdSwiperProps['theme'],\n validator(val: TdSwiperProps['theme']): boolean {\n if (!val) return true;\n return ['light', 'dark'].includes(val);\n },\n },\n /** 触发切换的方式:悬浮、点击等 */\n trigger: {\n type: String as PropType,\n default: 'hover' as TdSwiperProps['trigger'],\n validator(val: TdSwiperProps['trigger']): boolean {\n if (!val) return true;\n return ['hover', 'click'].includes(val);\n },\n },\n /** 样式类型:默认样式、卡片样式 */\n type: {\n type: String as PropType,\n default: 'default' as TdSwiperProps['type'],\n validator(val: TdSwiperProps['type']): boolean {\n if (!val) return true;\n return ['default', 'card'].includes(val);\n },\n },\n /** 卡片模式下的缩放比例 */\n cardScale: {\n type: Number,\n default: 210 / 332,\n },\n /** 轮播切换时触发 */\n onChange: Function as PropType,\n};\n","import { defineComponent, computed } from 'vue';\nimport props from './props';\nimport { usePrefixClass } from '@tdesign/hooks';\n\nconst swiperItemProps = {\n index: {\n type: Number,\n },\n currentIndex: {\n type: Number,\n },\n isSwitching: {\n type: Boolean,\n default: false,\n },\n getWrapAttribute: {\n type: Function,\n },\n swiperItemLength: {\n type: Number,\n default: 0,\n },\n};\nconst itemWidth = 0.415; // 依据设计稿使用t-swiper__card控制每个swiper的宽度为41.5%\n\nexport default defineComponent({\n name: 'TSwiperItem',\n props: {\n ...props,\n ...swiperItemProps,\n },\n setup(props, { slots }) {\n const prefix = usePrefixClass();\n const active = computed(() => props.index === props.currentIndex);\n const disposeIndex = computed(() => {\n if (props.type !== 'card') return 0;\n if (props.currentIndex === 0 && props.index === props.swiperItemLength - 1) {\n return -1;\n }\n if (props.currentIndex === props.swiperItemLength - 1 && props.index === 0) {\n return props.swiperItemLength;\n }\n if (props.index < props.currentIndex - 1 && props.currentIndex - props.index >= props.swiperItemLength / 2) {\n return props.swiperItemLength + 1;\n }\n if (props.index > props.currentIndex + 1 && props.index - props.currentIndex >= props.swiperItemLength / 2) {\n return -2;\n }\n return props.index;\n });\n const translateX = computed(() => {\n if (props.type !== 'card') return 0;\n const wrapWidth = props.getWrapAttribute('offsetWidth') || 0;\n const translateIndex = !active.value && props.swiperItemLength > 2 ? disposeIndex.value : props.index;\n const inStage = Math.abs(translateIndex - props.currentIndex) <= 1;\n if (inStage) {\n return (\n (wrapWidth * ((translateIndex - props.currentIndex) * (1 - itemWidth * props.cardScale) - itemWidth + 1)) / 2\n );\n }\n if (translateIndex < props.currentIndex) {\n return (-itemWidth * (1 + props.cardScale) * wrapWidth) / 2;\n }\n return ((2 + itemWidth * (props.cardScale - 1)) * wrapWidth) / 2;\n });\n const zIndex = computed(() => {\n if (props.type !== 'card') return 0;\n const translateIndex = !active.value && props.swiperItemLength > 2 ? disposeIndex.value : props.index;\n const isActivity = translateIndex === props.currentIndex;\n const inStage = Math.round(Math.abs(translateIndex - props.currentIndex)) <= 1;\n if (isActivity) {\n return 2;\n }\n if (inStage) {\n return 1;\n }\n return 0;\n });\n const itemStyle = computed(() => {\n if (props.animation === 'fade') {\n return {\n opacity: active.value ? 1 : 0,\n transition: props.isSwitching ? `opacity ${props.duration / 1000}s` : '',\n zIndex: active.value ? 1 : 0,\n };\n }\n if (props.type === 'card') {\n const translateIndex = !active.value && props.swiperItemLength > 2 ? disposeIndex.value : props.index;\n const isActivity = translateIndex === props.currentIndex;\n return {\n transform: `translateX(${translateX.value}px) scale(${isActivity ? 1 : props.cardScale})`,\n transition: `transform ${props.duration / 1000}s ease`,\n zIndex: zIndex.value,\n };\n }\n return {};\n });\n\n return () => (\n \n {slots.default?.({}) || []}\n \n );\n },\n});\n","import { defineComponent, ref, computed, watch, isVNode, onMounted, cloneVNode } from 'vue';\nimport { ChevronLeftIcon as TdChevronLeftIcon, ChevronRightIcon as TdChevronRightIcon } from 'tdesign-icons-vue-next';\n\nimport { useTNodeJSX, useGlobalIcon, usePrefixClass, useChildComponentSlots } from '@tdesign/hooks';\n\nimport props from './props';\nimport { SwiperNavigation, SwiperChangeSource } from './type';\nimport TSwiperItem from './swiper-item';\n\nconst defaultNavigation: SwiperNavigation = {\n placement: 'inside',\n showSlideBtn: 'always',\n size: 'medium',\n type: 'bars',\n};\n\nexport default defineComponent({\n name: 'TSwiper',\n props,\n emits: ['update:current'],\n setup(props, { emit }) {\n const prefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n\n const { ChevronLeftIcon, ChevronRightIcon } = useGlobalIcon({\n ChevronLeftIcon: TdChevronLeftIcon,\n ChevronRightIcon: TdChevronRightIcon,\n });\n let swiperTimer: ReturnType | null = null;\n let swiperSwitchingTimer = 0;\n let isBeginToEnd = false;\n let isEndToBegin = false;\n const currentIndex = ref(props.current || props.defaultCurrent);\n const navActiveIndex = ref(props.current || props.defaultCurrent);\n const isHovering = ref(false);\n const isSwitching = ref(false);\n const showArrow = ref(false);\n const swiperWrap = ref();\n const getChildComponentByName = useChildComponentSlots();\n\n const swiperItemLength = ref(0);\n const navigationConfig = computed(() => {\n return {\n ...defaultNavigation,\n ...(isVNode(props.navigation) ? {} : (props.navigation as object)),\n };\n });\n const isEnd = computed(() => {\n if (props.type === 'card') {\n return !props.loop && currentIndex.value + 1 >= swiperItemLength.value;\n }\n return !props.loop && currentIndex.value + 2 >= swiperItemLength.value;\n });\n const propsToUpdateSetTimer = computed(() => {\n return [props.autoplay, currentIndex.value, props.duration, props.interval];\n });\n const swiperWrapClass = computed(() => {\n return {\n [`${prefix.value}-swiper__wrap`]: true,\n [`${prefix.value}-swiper--inside`]: navigationConfig.value.placement === 'inside',\n [`${prefix.value}-swiper--outside`]: navigationConfig.value.placement === 'outside',\n [`${prefix.value}-swiper--vertical`]: props.direction === 'vertical',\n [`${prefix.value}-swiper--large`]: navigationConfig.value.size === 'large',\n [`${prefix.value}-swiper--small`]: navigationConfig.value.size === 'small',\n };\n });\n const containerStyle = computed(() => {\n const offsetHeight = props.height ? `${props.height}px` : `${getWrapAttribute('offsetHeight')}px`;\n if (props.type === 'card' || props.animation === 'fade') {\n return {\n height: offsetHeight,\n };\n }\n if (props.animation === 'slide') {\n const style: Record = {\n transition: isSwitching.value ? `transform ${props.duration / 1000}s ease` : '',\n };\n let active = currentIndex.value;\n if (swiperItemLength.value > 1) {\n active += 1;\n if (isBeginToEnd || isEndToBegin) {\n style.transition = '';\n }\n }\n if (props.direction === 'vertical') {\n style.height = offsetHeight;\n style.transform = `translate3d(0, -${active * 100}%, 0px)`;\n } else {\n style.transform = `translate3d(-${active * 100}%, 0px, 0px)`;\n }\n ['msTransform', 'WebkitTransform'].forEach((key) => {\n style[key] = style.transform;\n });\n return style;\n }\n return {};\n });\n const swiperItems = () => {\n const swiperItemList = getChildComponentByName('SwiperItem');\n swiperItemLength.value = swiperItemList.length;\n const items = swiperItemList.map((swiperItem: any, index) => {\n const p = { ...props, ...swiperItem.props };\n return (\n \n {swiperItem.children.default()}\n \n );\n });\n if (props.animation === 'slide' && items.length > 1) {\n const first = cloneVNode(items[0], {\n key: `swiper-item-append-${0}`,\n });\n const last = cloneVNode(items[items.length - 1], {\n key: `swiper-item-prepend-${items.length - 1}`,\n });\n items.unshift(last);\n items.push(first);\n }\n return items;\n };\n\n const swiperTo = (index: number, context: { source: SwiperChangeSource }) => {\n let targetIndex = index % swiperItemLength.value;\n navActiveIndex.value = targetIndex;\n emit('update:current', targetIndex);\n props.onChange?.(targetIndex, context);\n isSwitching.value = true;\n if (props.animation === 'slide' && swiperItemLength.value > 1 && props.type !== 'card') {\n targetIndex = index;\n isBeginToEnd = false;\n isEndToBegin = false;\n if (index >= swiperItemLength.value) {\n clearTimer();\n setTimeout(() => {\n isEndToBegin = true;\n currentIndex.value = 0;\n }, props.duration);\n }\n if (currentIndex.value === 0) {\n if (\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 '@tdesign/hooks';\n\nexport default function useClassName() {\n const classPrefix = usePrefixClass();\n const classNames = {\n classPrefix: classPrefix.value,\n tableBaseClass: {\n table: `${classPrefix.value}-table`,\n columnResizableTable: `${classPrefix.value}-table--column-resizable`,\n overflowVisible: `${classPrefix.value}-table--overflow-visible`,\n body: `${classPrefix.value}-table__body`,\n content: `${classPrefix.value}-table__content`,\n topContent: `${classPrefix.value}-table__top-content`,\n bottomContent: `${classPrefix.value}-table__bottom-content`,\n paginationWrap: `${classPrefix.value}-table__pagination-wrap`,\n tdLastRow: `${classPrefix.value}-table__td-last-row`,\n tdFirstCol: `${classPrefix.value}-table__td-first-col`,\n thCellInner: `${classPrefix.value}-table__th-cell-inner`,\n tableRowEdit: `${classPrefix.value}-table--row-edit`,\n cellEditable: `${classPrefix.value}-table__cell--editable`,\n cellEditWrap: `${classPrefix.value}-table__cell-wrap`,\n bordered: `${classPrefix.value}-table--bordered`,\n striped: `${classPrefix.value}-table--striped`,\n hover: `${classPrefix.value}-table--hoverable`,\n loading: `${classPrefix.value}-table--loading`,\n rowspanAndColspan: `${classPrefix.value}-table--rowspan-colspan`,\n empty: `${classPrefix.value}-table__empty`,\n emptyRow: `${classPrefix.value}-table__empty-row`,\n headerFixed: `${classPrefix.value}-table--header-fixed`,\n columnFixed: `${classPrefix.value}-table--column-fixed`,\n widthOverflow: `${classPrefix.value}-table--width-overflow`,\n multipleHeader: `${classPrefix.value}-table--multiple-header`,\n footerAffixed: `${classPrefix.value}-table--footer-affixed`,\n horizontalBarAffixed: `${classPrefix.value}-table--horizontal-bar-affixed`,\n affixedHeader: `${classPrefix.value}-table--affixed-header`,\n affixedHeaderElm: `${classPrefix.value}-table__affixed-header-elm`,\n affixedFooterElm: `${classPrefix.value}-table__affixed-footer-elm`,\n affixedFooterWrap: `${classPrefix.value}-table__affixed-footer-wrap`,\n // 边框模式,固定表头,横向滚动时,右侧添加边线,分隔滚动条\n scrollbarDivider: `${classPrefix.value}-table__scroll-bar-divider`,\n // 当用户设置 height 为固定高度,为保证行元素铺满 table,则需设置 table 元素高度为 100%\n fullHeight: `${classPrefix.value}-table--full-height`,\n // 拖拽列时的标记线\n resizeLine: `${classPrefix.value}-table__resize-line`,\n obviousScrollbar: `${classPrefix.value}-table__scrollbar--obvious`,\n affixedHeaderWrap: `${classPrefix.value}-table__affixed-header-elm-wrap`,\n },\n\n tdAlignClasses: {\n left: `${classPrefix.value}-align-left`,\n right: `${classPrefix.value}-align-right`,\n center: `${classPrefix.value}-align-center`,\n },\n\n tableHeaderClasses: {\n header: `${classPrefix.value}-table__header`,\n thBordered: `${classPrefix.value}-table__header-th--bordered`,\n fixed: `${classPrefix.value}-table__header--fixed`,\n multipleHeader: `${classPrefix.value}-table__header--multiple`,\n },\n\n tableFooterClasses: {\n footer: `${classPrefix.value}-table__footer`,\n fixed: `${classPrefix.value}-table__footer--fixed`,\n },\n\n tableAlignClasses: {\n top: `${classPrefix.value}-vertical-align-top`,\n middle: `${classPrefix.value}-vertical-align-middle`,\n bottom: `${classPrefix.value}-vertical-align-bottom`,\n },\n\n tableRowFixedClasses: {\n top: `${classPrefix.value}-table__row--fixed-top`,\n bottom: `${classPrefix.value}-table__row--fixed-bottom`,\n firstBottom: `${classPrefix.value}-table__row--fixed-bottom-first`,\n withoutBorderBottom: `${classPrefix.value}-table__row--without-border-bottom`,\n },\n\n tableColFixedClasses: {\n left: `${classPrefix.value}-table__cell--fixed-left`,\n right: `${classPrefix.value}-table__cell--fixed-right`,\n lastLeft: `${classPrefix.value}-table__cell--fixed-left-last`,\n firstRight: `${classPrefix.value}-table__cell--fixed-right-first`,\n leftShadow: `${classPrefix.value}-table__content--scrollable-to-left`,\n rightShadow: `${classPrefix.value}-table__content--scrollable-to-right`,\n },\n\n tableLayoutClasses: {\n auto: `${classPrefix.value}-table--layout-auto`,\n fixed: `${classPrefix.value}-table--layout-fixed`,\n },\n\n tdEllipsisClass: `${classPrefix.value}-table-td--ellipsis`,\n\n // 行通栏,一列铺满整行\n tableFullRowClasses: {\n base: `${classPrefix.value}-table__row--full`,\n innerFullRow: `${classPrefix.value}-table__row-full-inner`,\n innerFullElement: `${classPrefix.value}-table__row-full-element`,\n firstFullRow: `${classPrefix.value}-table__first-full-row`,\n lastFullRow: `${classPrefix.value}-table__last-full-row`,\n },\n\n // 展开/收起行,全部类名\n tableExpandClasses: {\n iconBox: `${classPrefix.value}-table__expand-box`,\n iconCell: `${classPrefix.value}-table__expandable-icon-cell`,\n rowExpanded: `${classPrefix.value}-table__row--expanded`,\n rowFolded: `${classPrefix.value}-table__row--folded`,\n row: `${classPrefix.value}-table__expanded-row`,\n rowInner: `${classPrefix.value}-table__expanded-row-inner`,\n expanded: `${classPrefix.value}-table__row--expanded`,\n collapsed: `${classPrefix.value}-table__row--collapsed`,\n },\n\n // 排序功能,全部类名\n tableSortClasses: {\n sortable: `${classPrefix.value}-table__cell--sortable`,\n sortColumn: `${classPrefix.value}-table__sort-column`,\n title: `${classPrefix.value}-table__cell--title`,\n trigger: `${classPrefix.value}-table__cell--sort-trigger`,\n doubleIcon: `${classPrefix.value}-table__double-icons`,\n sortIcon: `${classPrefix.value}-table__sort-icon`,\n iconDirection: {\n asc: `${classPrefix.value}-table-sort-asc`,\n desc: `${classPrefix.value}-table-sort-desc`,\n },\n iconActive: `${classPrefix.value}-table__sort-icon--active`,\n iconDefault: `${classPrefix.value}-icon-sort--default`,\n },\n\n // 行选中功能,全部类名\n tableSelectedClasses: {\n selected: `${classPrefix.value}-table__row--selected`,\n disabled: `${classPrefix.value}-table__row--disabled`,\n checkCell: `${classPrefix.value}-table__cell-check`,\n },\n\n // 过滤功能,全部类名\n tableFilterClasses: {\n filterable: `${classPrefix.value}-table__cell--filterable`,\n popup: `${classPrefix.value}-table__filter-pop`,\n icon: `${classPrefix.value}-table__filter-icon`,\n popupContent: `${classPrefix.value}-table__filter-pop-content`,\n result: `${classPrefix.value}-table__filter-result`,\n inner: `${classPrefix.value}-table__row-filter-inner`,\n bottomButtons: `${classPrefix.value}-table__filter--bottom-buttons`,\n contentInner: `${classPrefix.value}-table__filter-pop-content-inner`,\n iconWrap: `${classPrefix.value}-table__filter-icon-wrap`,\n },\n\n // 通用类名\n asyncLoadingClass: `${classPrefix.value}-table__async-loading`,\n isFocusClass: `${classPrefix.value}-is-focus`,\n isLoadingClass: `${classPrefix.value}-is-loading`,\n isLoadMoreClass: `${classPrefix.value}-is-load-more`,\n\n // 树形结构类名\n tableTreeClasses: {\n col: `${classPrefix.value}-table__tree-col`,\n inlineCol: `${classPrefix.value}-table__tree-col--inline`,\n icon: `${classPrefix.value}-table__tree-op-icon`,\n leafNode: `${classPrefix.value}-table__tree-leaf-node`,\n },\n\n // 拖拽功能类名\n tableDraggableClasses: {\n rowDraggable: `${classPrefix.value}-table--row-draggable`,\n rowHandlerDraggable: `${classPrefix.value}-table--row-handler-draggable`,\n colDraggable: `${classPrefix.value}-table--col-draggable`,\n handle: `${classPrefix.value}-table__handle-draggable`,\n ghost: `${classPrefix.value}-table__ele--draggable-ghost`,\n chosen: `${classPrefix.value}-table__ele--draggable-chosen`,\n dragging: `${classPrefix.value}-table__ele--draggable-dragging`,\n dragSortTh: `${classPrefix.value}-table__th--drag-sort`,\n },\n\n virtualScrollClasses: {\n cursor: `${classPrefix.value}-table__virtual-scroll-cursor`,\n header: `${classPrefix.value}-table__virtual-scroll-header`,\n },\n\n positiveRotate90: `${classPrefix.value}-positive-rotate-90`,\n negativeRotate180: `${classPrefix.value}-negative-rotate-180`,\n };\n\n return classNames;\n}\n\nexport type TableClassName = ReturnType;\n","/** 超出省略显示 */\nimport { defineComponent, PropType, ref, computed, onMounted, onUpdated } from 'vue';\nimport { debounce } from 'lodash-es';\nimport { 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, isFunction } from 'lodash-es';\n\nimport { BaseTableCol, PrimaryTableCol, TableRowData, TdBaseTableProps } from '../type';\nimport { getThRowspanAndColspan, getThList } from './useMultiHeader';\nimport useClassName from './useClassName';\nimport { TNodeReturnValue } from '../../common';\nimport { BaseTableColumns } from '../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, pick, xorWith, debounce } from 'lodash-es';\n\nimport log from '@tdesign/common-js/log/index';\nimport { ClassName, Styles } from '../../common';\nimport { BaseTableCol, BaseTableInstanceFunctions, TableRowData, TdBaseTableProps } from '../type';\nimport { getScrollbarWidthWithCSS } from '@tdesign/common-js/utils/getScrollbarWidth';\nimport { on, off } from '../../utils/dom';\nimport { FixedColumnInfo, TableRowFixedClasses, RowAndColFixedPosition, TableColFixedClasses } from '../interface';\nimport { getIEVersion } from '@tdesign/common-js/utils/helper';\n\n// 固定列相关类名处理\nexport function getColumnFixedStyles(\n col: TdBaseTableProps['columns'][0],\n index: number,\n rowAndColFixedPosition: RowAndColFixedPosition,\n tableColFixedClasses: TableColFixedClasses,\n): { style?: Styles; classes?: ClassName } {\n const fixedPos = rowAndColFixedPosition?.get(col.colKey || index);\n if (!fixedPos) return {};\n const thClasses = {\n [tableColFixedClasses.left]: col.fixed === 'left',\n [tableColFixedClasses.right]: col.fixed === 'right',\n [tableColFixedClasses.lastLeft]: col.fixed === 'left' && fixedPos.lastLeftFixedCol,\n [tableColFixedClasses.firstRight]: col.fixed === 'right' && fixedPos.firstRightFixedCol,\n };\n const thStyles = {\n left: col.fixed === 'left' ? `${fixedPos.left}px` : undefined,\n right: col.fixed === 'right' ? `${fixedPos.right}px` : undefined,\n };\n return {\n style: thStyles,\n classes: thClasses,\n };\n}\n\n// 固定行相关类名处理\nexport function getRowFixedStyles(\n rowId: string | number,\n rowIndex: number,\n rowLength: number,\n fixedRows: TdBaseTableProps['fixedRows'],\n rowAndColFixedPosition: RowAndColFixedPosition,\n tableRowFixedClasses: TableRowFixedClasses,\n // 和虚拟滚动搭配使用时,需要增加 style 的偏移量\n virtualTranslateY = 0,\n): { style: Styles; classes: ClassName } {\n if (!fixedRows || !fixedRows.length) return { style: undefined, classes: undefined };\n const fixedTop = rowIndex < fixedRows[0];\n const fixedBottom = rowIndex > rowLength - 1 - fixedRows[1];\n const firstFixedBottomRow = rowLength - fixedRows[1];\n const fixedPos = rowAndColFixedPosition?.get(rowId) || {};\n const rowClasses = {\n [tableRowFixedClasses.top]: fixedTop,\n [tableRowFixedClasses.bottom]: fixedBottom,\n [tableRowFixedClasses.firstBottom]: rowIndex === firstFixedBottomRow,\n [tableRowFixedClasses.withoutBorderBottom]: rowIndex === firstFixedBottomRow - 1,\n };\n const rowStyles = {\n top: fixedTop ? `${fixedPos.top - virtualTranslateY}px` : undefined,\n bottom: fixedBottom ? `${fixedPos.bottom + virtualTranslateY}px` : undefined,\n };\n return {\n style: rowStyles,\n classes: rowClasses,\n };\n}\n\nexport default function useFixed(\n props: TdBaseTableProps,\n context: SetupContext,\n finalColumns: ComputedRef[]>,\n affixRef: Record,\n) {\n const {\n columns,\n tableLayout,\n tableContentWidth,\n fixedRows,\n firstFullRow,\n lastFullRow,\n maxHeight,\n headerAffixedTop,\n footerAffixedBottom,\n bordered,\n resizable,\n allowResizeColumnWidth,\n } = toRefs(props);\n const data = ref([]);\n const tableRef = ref();\n const tableContentRef = ref();\n const isFixedHeader = ref(false);\n const isWidthOverflow = ref(false);\n const tableElmRef = ref();\n // CSS 样式设置了固定 6px\n const scrollbarWidth = ref(6);\n // 固定列、固定表头、固定表尾等内容的位置信息\n const rowAndColFixedPosition = ref(new Map());\n const showColumnShadow = reactive({\n left: false,\n right: false,\n });\n // 虚拟滚动不能使用 CSS sticky 固定表头\n const virtualScrollHeaderPos = ref<{ left: number; top: number }>({ left: 0, top: 0 });\n const tableWidth = ref(0);\n const tableElmWidth = ref(0);\n const thWidthList = ref<{ [colKey: string]: number }>({});\n\n const isFixedColumn = ref(false);\n const isFixedRightColumn = ref(false);\n const isFixedLeftColumn = ref(false);\n\n const columnResizable = computed(() => allowResizeColumnWidth.value ?? resizable.value ?? false);\n\n // 没有表头吸顶,没有虚拟滚动,则不需要表头宽度计算\n const notNeedThWidthList = computed(\n () =>\n !(\n props.headerAffixedTop ||\n props.footerAffixedBottom ||\n props.horizontalScrollAffixedBottom ||\n props.scroll?.type === 'virtual'\n ),\n );\n\n function setUseFixedTableElmRef(val: HTMLTableElement) {\n tableElmRef.value = val;\n }\n\n function getColumnMap(\n columns: BaseTableCol[],\n map: RowAndColFixedPosition = new Map(),\n levelNodes: FixedColumnInfo[][] = [],\n level = 0,\n parent?: FixedColumnInfo,\n ) {\n for (let i = 0, len = columns.length; i < len; i++) {\n const col = columns[i];\n if (['left', 'right'].includes(col.fixed)) {\n isFixedColumn.value = true;\n }\n if (col.fixed === 'right') {\n isFixedRightColumn.value = true;\n }\n if (col.fixed === 'left') {\n isFixedLeftColumn.value = true;\n }\n const key = col.colKey || i;\n const columnInfo: FixedColumnInfo = { col, parent, index: i };\n map.set(key, columnInfo);\n if (col.children?.length) {\n getColumnMap(col.children, map, levelNodes, level + 1, columnInfo);\n }\n if (levelNodes[level]) {\n levelNodes[level].push(columnInfo);\n } else {\n // eslint-disable-next-line no-param-reassign\n levelNodes[level] = [columnInfo];\n }\n }\n return {\n newColumnsMap: map,\n levelNodes,\n };\n }\n\n const setFixedLeftPos = (\n columns: BaseTableCol[],\n initialColumnMap: RowAndColFixedPosition,\n parent: FixedColumnInfo = {},\n ) => {\n for (let i = 0, len = columns.length; i < len; i++) {\n const col = columns[i];\n if (col.fixed === 'right') return;\n const colInfo = initialColumnMap.get(col.colKey || i);\n let lastColIndex = i - 1;\n while (lastColIndex >= 0 && columns[lastColIndex].fixed !== 'left') {\n lastColIndex -= 1;\n }\n const lastCol = columns[lastColIndex];\n // 多级表头,使用父元素作为初始基本位置\n const defaultWidth = i === 0 ? parent?.left || 0 : 0;\n const lastColInfo = initialColumnMap.get(lastCol?.colKey || i - 1);\n if (colInfo) {\n colInfo.left = (lastColInfo?.left || defaultWidth) + (lastColInfo?.width || 0);\n }\n // 多级表头\n if (col.children?.length) {\n setFixedLeftPos(col.children, initialColumnMap, colInfo);\n }\n }\n };\n\n const setFixedRightPos = (\n columns: BaseTableCol[],\n initialColumnMap: RowAndColFixedPosition,\n parent: FixedColumnInfo = {},\n ) => {\n for (let i = columns.length - 1; i >= 0; i--) {\n const col = columns[i];\n if (col.fixed === 'left') return;\n const colInfo = initialColumnMap.get(col.colKey || i);\n let lastColIndex = i + 1;\n while (lastColIndex < columns.length && columns[lastColIndex].fixed !== 'right') {\n lastColIndex += 1;\n }\n const lastCol = columns[lastColIndex];\n // 多级表头,使用父元素作为初始基本位置\n const defaultWidth = i === columns.length - 1 ? parent?.right || 0 : 0;\n const lastColInfo = initialColumnMap.get(lastCol?.colKey || i + 1);\n if (colInfo) {\n colInfo.right = (lastColInfo?.right || defaultWidth) + (lastColInfo?.width || 0);\n }\n // 多级表头\n if (col.children?.length) {\n setFixedRightPos(col.children, initialColumnMap, colInfo);\n }\n }\n };\n\n // 获取固定列位置信息。先获取节点宽度,再计算\n const setFixedColPosition = (trList: HTMLCollection, initialColumnMap: RowAndColFixedPosition) => {\n if (!trList) return;\n for (let i = 0, len = trList.length; i < len; i++) {\n const thList = trList[i].children;\n for (let j = 0, thLen = thList.length; j < thLen; j++) {\n const th = thList[j] as HTMLElement;\n const colKey = th.dataset.colkey;\n if (!colKey) {\n log.warn('TDesign Table', `${th.innerText} missing colKey. colKey is required for fixed column feature.`);\n }\n const obj = initialColumnMap.get(colKey || j);\n if (obj?.col?.fixed) {\n initialColumnMap.set(colKey, { ...obj, width: th.getBoundingClientRect().width });\n }\n }\n }\n setFixedLeftPos(columns.value, initialColumnMap);\n setFixedRightPos(columns.value, initialColumnMap);\n };\n\n // 设置固定行位置信息 top/bottom\n const setFixedRowPosition = (\n trList: HTMLCollection,\n initialColumnMap: RowAndColFixedPosition,\n thead: HTMLTableSectionElement,\n tfoot: HTMLTableSectionElement,\n ) => {\n const [fixedTopRows, fixedBottomRows] = fixedRows.value || [];\n const { data, rowKey = 'id' } = props;\n for (let i = 0; i < fixedTopRows; i++) {\n const tr = trList[i] as HTMLElement;\n const rowId = get(data[i], rowKey);\n const thisRowInfo = initialColumnMap.get(rowId) || {};\n const lastRowId = get(data[i - 1], rowKey);\n const lastRowInfo = initialColumnMap.get(lastRowId) || {};\n let defaultBottom = 0;\n if (i === 0) {\n defaultBottom = thead?.getBoundingClientRect().height || 0;\n }\n thisRowInfo.top = (lastRowInfo.top || defaultBottom) + (lastRowInfo.height || 0);\n initialColumnMap.set(rowId, { ...thisRowInfo, height: tr?.getBoundingClientRect().height || 0 });\n }\n for (let i = data.length - 1; i >= data.length - fixedBottomRows; i--) {\n // 当虚拟滚动的时候,尾部固定行并非对应数据的 index,需要进行倒推计算\n const tr = trList[trList.length - (data.length - i)] as HTMLElement;\n const rowId = get(data[i], rowKey);\n const thisRowInfo = initialColumnMap.get(rowId) || {};\n const lastRowId = get(data[i + 1], rowKey);\n const lastRowInfo = initialColumnMap.get(lastRowId) || {};\n let defaultBottom = 0;\n if (i === data.length - 1) {\n defaultBottom = tfoot?.getBoundingClientRect().height || 0;\n }\n thisRowInfo.bottom = (lastRowInfo.bottom || defaultBottom) + (lastRowInfo.height || 0);\n initialColumnMap.set(rowId, { ...thisRowInfo, height: tr?.getBoundingClientRect().height || 0 });\n }\n };\n\n const updateRowAndColFixedPosition = (tableContentElm: HTMLElement, initialColumnMap: RowAndColFixedPosition) => {\n rowAndColFixedPosition.value.clear();\n if (!tableContentElm) return;\n const thead = tableContentElm.querySelector('thead');\n // 处理固定列\n thead && setFixedColPosition(thead.children, initialColumnMap);\n // 处理冻结行\n const tbody = tableContentElm.querySelector('tbody');\n const tfoot = tableContentElm.querySelector('tfoot');\n tbody && setFixedRowPosition(tbody.children, initialColumnMap, thead, tfoot);\n // 更新最终 Map\n rowAndColFixedPosition.value = initialColumnMap;\n };\n\n let shadowLastScrollLeft: number;\n const updateColumnFixedShadow = (target: HTMLElement, extra?: { skipScrollLimit?: boolean }) => {\n if (!isFixedColumn.value || !target) return;\n const { scrollLeft } = target;\n // 只有左右滚动,需要更新固定列阴影\n if (shadowLastScrollLeft === scrollLeft && (!extra || !extra.skipScrollLimit)) return;\n shadowLastScrollLeft = scrollLeft;\n const isShowRight = target.clientWidth + scrollLeft < target.scrollWidth;\n const isShowLeft = scrollLeft > 0;\n if (showColumnShadow.left === isShowLeft && showColumnShadow.right === isShowRight) return;\n showColumnShadow.left = isShowLeft && isFixedLeftColumn.value;\n showColumnShadow.right = isShowRight && isFixedRightColumn.value;\n };\n\n // 多级表头场景较为复杂:为了滚动的阴影效果,需要知道哪些列是边界列,左侧固定列的最后一列,右侧固定列的第一列,每一层表头都需要兼顾\n const setIsLastOrFirstFixedCol = (levelNodes: FixedColumnInfo[][]) => {\n for (let t = 0; t < levelNodes.length; t++) {\n const nodes = levelNodes[t];\n for (let i = 0, len = nodes.length; i < len; i++) {\n const colMapInfo = nodes[i];\n const nextColMapInfo = nodes[i + 1];\n const { parent } = colMapInfo;\n const isParentLastLeftFixedCol = !parent || parent?.lastLeftFixedCol;\n if (isParentLastLeftFixedCol && colMapInfo.col.fixed === 'left' && nextColMapInfo?.col.fixed !== 'left') {\n colMapInfo.lastLeftFixedCol = true;\n }\n const lastColMapInfo = nodes[i - 1];\n const isParentFirstRightFixedCol = !parent || parent?.firstRightFixedCol;\n if (isParentFirstRightFixedCol && colMapInfo.col.fixed === 'right' && lastColMapInfo?.col.fixed !== 'right') {\n colMapInfo.firstRightFixedCol = true;\n }\n }\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const updateFixedStatus = () => {\n const { newColumnsMap, levelNodes } = getColumnMap(columns.value);\n setIsLastOrFirstFixedCol(levelNodes);\n const timer = setTimeout(() => {\n if (isFixedColumn.value || fixedRows.value?.length) {\n updateRowAndColFixedPosition(tableContentRef.value, newColumnsMap);\n }\n clearTimeout(timer);\n }, 0);\n return () => {\n clearTimeout(timer);\n };\n };\n\n const updateFixedHeader = () => {\n const timer = setTimeout(() => {\n if (!tableContentRef.value) return;\n isFixedHeader.value = tableContentRef.value.scrollHeight > tableContentRef.value.clientHeight;\n isWidthOverflow.value = tableContentRef.value.scrollWidth > tableContentRef.value.clientWidth;\n const pos = tableContentRef.value.getBoundingClientRect();\n virtualScrollHeaderPos.value = {\n top: pos.top,\n left: pos.left,\n };\n clearTimeout(timer);\n }, 0);\n };\n\n const setTableElmWidth = (width: number) => {\n if (tableElmWidth.value === width) return;\n tableElmWidth.value = width;\n };\n\n const updateTableWidth = () => {\n const rect = tableContentRef.value?.getBoundingClientRect();\n if (!rect) return;\n // 存在纵向滚动条,且固定表头时,需去除滚动条宽度\n const reduceWidth = isFixedHeader.value ? scrollbarWidth.value : 0;\n tableWidth.value = rect.width - reduceWidth - (props.bordered ? 1 : 0);\n const elmRect = tableElmRef?.value?.getBoundingClientRect();\n elmRect?.width && setTableElmWidth(elmRect.width);\n };\n\n const updateAffixPosition = () => {\n // 在表格高度变化的时候 需要手动调整affix的位置 因为affix本身无法监听到这些变化触发重新计算\n affixRef.paginationAffixRef.value?.handleScroll?.();\n affixRef.horizontalScrollAffixRef.value?.handleScroll?.();\n affixRef.headerTopAffixRef.value?.handleScroll?.();\n affixRef.footerBottomAffixRef.value?.handleScroll?.();\n };\n\n const calculateThWidthList = (trList: HTMLCollection) => {\n const widthMap: { [colKey: string]: number } = {};\n for (let i = 0, len = trList.length; i < len; i++) {\n const thList = trList[i].children;\n // second for used for multiple row header\n for (let j = 0, thLen = thList.length; j < thLen; j++) {\n const th = thList[j] as HTMLElement;\n const colKey = th.dataset.colkey;\n widthMap[colKey] = th.getBoundingClientRect().width;\n }\n }\n return widthMap;\n };\n\n const updateThWidthList = (trList: HTMLCollection | { [colKey: string]: number }) => {\n if (trList instanceof HTMLCollection) {\n if (columnResizable.value) return;\n thWidthList.value = calculateThWidthList(trList);\n } else {\n thWidthList.value = thWidthList.value || {};\n Object.entries(trList).forEach(([colKey, width]) => {\n thWidthList.value[colKey] = width;\n });\n }\n return thWidthList.value;\n };\n\n const updateThWidthListHandler = () => {\n const timer = setTimeout(() => {\n updateTableWidth();\n if (notNeedThWidthList.value) return;\n const thead = tableContentRef.value?.querySelector('thead');\n if (!thead) return;\n updateThWidthList(thead.children);\n clearTimeout(timer);\n }, 0);\n };\n\n const resetThWidthList = () => {\n thWidthList.value = {};\n };\n\n const emitScrollEvent = (e: WheelEvent) => {\n props.onScrollX?.({ e });\n props.onScrollY?.({ e });\n props.onScroll?.({ e });\n };\n\n const getThWidthList = (type?: 'default' | 'calculate') => {\n if (type === 'calculate') {\n const trList = tableContentRef.value?.querySelector('thead')?.children;\n if (!trList) {\n return {};\n }\n return calculateThWidthList(trList);\n }\n return thWidthList.value || {};\n };\n\n watch(\n [\n data,\n columns,\n bordered,\n tableLayout,\n tableContentWidth,\n isFixedHeader,\n isWidthOverflow,\n isFixedColumn,\n fixedRows,\n firstFullRow,\n lastFullRow,\n ],\n updateFixedStatus,\n { immediate: true },\n );\n\n watch(\n [isFixedColumn, columns],\n () => {\n const timer = setTimeout(() => {\n if (isFixedColumn.value) {\n updateColumnFixedShadow(tableContentRef.value);\n }\n clearTimeout(timer);\n }, 0);\n },\n { immediate: true },\n );\n\n watch(\n [maxHeight, data, columns, bordered, tableContentRef],\n () => {\n if (tableContentRef.value) {\n // 如果不监听元素的ref,会出现watch在ref还没ready的时候触发,此时没有触发这个判断的更新,导致表头消失\n updateFixedHeader();\n }\n },\n { immediate: true },\n );\n\n watch(finalColumns, () => {\n resetThWidthList();\n });\n\n // 影响表头宽度的元素\n watch(\n [data, bordered, tableLayout, fixedRows, isFixedHeader, headerAffixedTop, footerAffixedBottom, tableContentWidth],\n () => {\n const timer = setTimeout(() => {\n updateThWidthListHandler();\n updateAffixPosition();\n clearTimeout(timer);\n }, 60);\n },\n { immediate: true },\n );\n\n watch([finalColumns], ([finalColumns], [preFinalColumns]) => {\n const finalColKeys = finalColumns.map((t) => t.colKey);\n const preColKeys = preFinalColumns.map((t) => t.colKey);\n if (finalColKeys.length < preColKeys.length) {\n const reduceKeys = xorWith(preColKeys, finalColKeys);\n const thWidthList = getThWidthList('calculate');\n let reduceWidth = 0;\n reduceKeys.forEach((key) => {\n reduceWidth += thWidthList[key];\n });\n const rootThWidthList = pick(thWidthList, preColKeys);\n const oldTotalWidth = Object.values(rootThWidthList).reduce((r = 0, n) => r + n);\n // 保留原有可能编辑过的列宽度,但是当剩余列过小时,表头小于内容宽,需要缩放回内容宽度\n // 使用不包含滚动条的可视化区域宽度,意味着当不再溢出的时候,将宽度设置回完整宽度\n const contentWidth = tableContentRef.value.clientWidth;\n const widthToReserve = oldTotalWidth - reduceWidth;\n setTableElmWidth(Math.max(contentWidth, widthToReserve));\n }\n });\n\n const refreshTable: BaseTableInstanceFunctions['refreshTable'] = () => {\n // updateTableWidth();\n updateThWidthListHandler();\n updateFixedHeader();\n updateAffixPosition();\n\n if (isFixedColumn.value || isFixedHeader.value) {\n updateFixedStatus();\n updateColumnFixedShadow(tableContentRef.value, { skipScrollLimit: true });\n }\n\n // auto 布局下,同步表头列宽,避免 affix 表头列宽不对齐\n if (tableLayout.value === 'auto') {\n updateThWidthList(getThWidthList('calculate'));\n }\n };\n\n const onResize = debounce(() => {\n refreshTable();\n }, 30);\n\n let resizeObserver: ResizeObserver = null;\n function addTableResizeObserver(tableElement: HTMLDivElement) {\n if (typeof window === 'undefined') return;\n // IE 11 以下使用 window resize;IE 11 以上使用 ResizeObserver\n if (getIEVersion() < 11 || typeof window.ResizeObserver === 'undefined') return;\n off(window, 'resize', onResize);\n resizeObserver = new window.ResizeObserver(() => {\n const timer = setTimeout(() => {\n refreshTable();\n clearTimeout(timer);\n }, 200);\n });\n resizeObserver.observe(tableElement);\n tableRef.value = tableElement;\n }\n\n onMounted(() => {\n const scrollWidth = getScrollbarWidthWithCSS();\n scrollbarWidth.value = scrollWidth;\n updateThWidthListHandler();\n const isWatchResize = isFixedColumn.value || isFixedHeader.value || !notNeedThWidthList.value || !data.value.length;\n // IE 11 以下使用 window resize;IE 11 以上使用 ResizeObserver\n const hasWindow = typeof window !== 'undefined';\n const hasResizeObserver = hasWindow && typeof window.ResizeObserver !== 'undefined';\n if ((isWatchResize && getIEVersion() < 11) || !hasResizeObserver) {\n on(window, 'resize', onResize);\n }\n });\n\n onBeforeUnmount(() => {\n if (typeof window !== 'undefined') {\n off(window, 'resize', onResize);\n }\n resizeObserver?.unobserve(tableRef.value);\n resizeObserver?.disconnect();\n });\n\n const setData = (dataSource: TableRowData[]) => {\n data.value = dataSource;\n };\n\n const updateTableAfterColumnResize = () => {\n updateFixedStatus();\n updateFixedHeader();\n };\n\n return {\n tableWidth,\n tableElmWidth,\n thWidthList,\n isFixedHeader,\n isWidthOverflow,\n tableContentRef,\n isFixedColumn,\n showColumnShadow,\n rowAndColFixedPosition,\n virtualScrollHeaderPos,\n scrollbarWidth,\n setData,\n refreshTable,\n setTableElmWidth,\n emitScrollEvent,\n updateThWidthListHandler,\n updateColumnFixedShadow,\n setUseFixedTableElmRef,\n getThWidthList,\n updateThWidthList,\n addTableResizeObserver,\n updateTableAfterColumnResize,\n };\n}\n","import { ref, SetupContext, toRefs, watch } from 'vue';\nimport { useConfig } from '@tdesign/hooks';\nimport Pagination, { PageInfo, PaginationProps } from '../../pagination';\nimport { TdBaseTableProps, TableRowData } from '../type';\n\n// 分页功能包含:远程数据排序受控、远程数据排序非受控、本地数据排序受控、本地数据排序非受控 等 4 类功能\nexport default function usePagination(props: TdBaseTableProps, context: SetupContext) {\n const { pagination, data, disableDataPage } = toRefs(props);\n const { classPrefix } = useConfig();\n const innerPagination = ref(props.pagination);\n\n const dataSource = ref([]);\n const isPaginateData = ref(false);\n\n const updateDataSourceAndPaginate = (current = 1, pageSize = 10) => {\n const { data } = props;\n // data 数据数量超出分页大小时,则自动启动本地数据分页\n const t = Boolean(!disableDataPage.value && data.length > pageSize);\n isPaginateData.value = t;\n if (t) {\n const start = (current - 1) * pageSize;\n const end = current * pageSize;\n dataSource.value = data.slice(start, end);\n } else {\n dataSource.value = data;\n }\n };\n\n // 受控情况,只有 pagination.current 或者 pagination.pageSize 变化,才对数据进行排序\n watch(\n () => [pagination.value?.current, pagination.value?.pageSize, data.value.length, disableDataPage],\n () => {\n if (!pagination.value || !pagination.value.current) return;\n const { current, pageSize } = pagination.value;\n innerPagination.value = { current, pageSize };\n updateDataSourceAndPaginate(pagination.value.current, pagination.value.pageSize);\n },\n { immediate: true },\n );\n\n // 非受控情况,只执行一次 Props 数据更新(pagination.defaultCurrent 和 pagination.defaultPageSize)\n watch(\n [data],\n () => {\n if (!pagination.value || !pagination.value.defaultCurrent) return;\n const isControlled = Boolean(pagination.value.current);\n // 存在受控属性时,立即返回不再执行后续内容\n if (isControlled) return;\n updateDataSourceAndPaginate(\n innerPagination.value.current ?? pagination.value.defaultCurrent,\n innerPagination.value.pageSize ?? pagination.value.defaultPageSize,\n );\n },\n { immediate: true },\n );\n\n const renderPagination = () => {\n if (!props.pagination) return null;\n const paginationProps = { ...props.pagination };\n // Vue3,两个 onChange 事件绑定,会成为数组,因为需提前移除外部 onChange\n delete paginationProps.onChange;\n return (\n
    \n {\n props.pagination?.onChange?.(pageInfo);\n innerPagination.value = pageInfo;\n updateDataSourceAndPaginate(pageInfo.current, pageInfo.pageSize);\n props.onPageChange?.(pageInfo, dataSource.value);\n }}\n v-slots={{ totalContent: context.slots.totalContent }}\n />\n
    \n );\n };\n\n return {\n isPaginateData,\n dataSource,\n innerPagination,\n renderPagination,\n };\n}\n","import { debounce, isBoolean } from 'lodash-es';\nimport { computed, ref, watch, onBeforeUnmount } from 'vue';\nimport { TdBaseTableProps } from '../type';\nimport { on, off } from '../../utils/dom';\nimport { AffixProps } from '../../affix';\n\n/**\n * 1. 表头吸顶(普通表头吸顶 和 虚拟滚动表头吸顶)\n * 2. 表尾吸底\n * 3. 底部滚动条吸底\n * 4. 分页器吸底\n */\nexport default function useAffix(props: TdBaseTableProps) {\n const tableContentRef = ref();\n // 吸顶表头\n const affixHeaderRef = ref();\n // 吸底表尾\n const affixFooterRef = ref();\n // 吸底滚动条\n const horizontalScrollbarRef = ref();\n // 吸底分页器\n const paginationRef = ref();\n // 当表格完全滚动消失在视野时,需要隐藏吸顶表头\n const showAffixHeader = ref(true);\n // 当表格完全滚动消失在视野时,需要隐藏吸底尾部\n const showAffixFooter = ref(true);\n // 当表格完全滚动消失在视野时,需要隐藏吸底分页器\n const showAffixPagination = ref(true);\n // 当鼠标按下拖动内容来滚动时,需要更新表头位置(Windows 按下鼠标横向滚动,滚动结束后,再松开鼠标)\n let isMousedown = false;\n let isMouseInScrollableArea = false;\n\n const isVirtualScroll = computed(\n () => props.scroll && props.scroll.type === 'virtual' && (props.scroll.threshold || 100) < props.data.length,\n );\n\n const isAffixed = computed(\n () => !!(props.headerAffixedTop || props.footerAffixedBottom || props.horizontalScrollAffixedBottom),\n );\n\n let lastScrollLeft = 0;\n const onHorizontalScroll = (scrollElement?: HTMLElement) => {\n if (!isAffixed.value && !isVirtualScroll.value) return;\n let target = scrollElement;\n if (!target && tableContentRef.value) {\n lastScrollLeft = 0;\n target = tableContentRef.value;\n }\n if (!target) return;\n const left = target.scrollLeft;\n // 如果 lastScrollLeft 等于 left,说明不是横向滚动,不需要更新横向滚动距离\n if (lastScrollLeft === left) return;\n lastScrollLeft = left;\n // 表格内容、吸顶表头、吸底表尾、吸底横向滚动更新\n const toUpdateScrollElement = [\n tableContentRef.value,\n affixHeaderRef.value,\n affixFooterRef.value,\n horizontalScrollbarRef.value,\n ];\n for (let i = 0, len = toUpdateScrollElement.length; i < len; i++) {\n if (toUpdateScrollElement[i] && scrollElement !== toUpdateScrollElement[i]) {\n toUpdateScrollElement[i].scrollLeft = left;\n }\n }\n };\n\n // 吸底的元素(footer、横向滚动条、分页器)是否显示\n const isAffixedBottomElementShow = (elementRect: DOMRect, tableRect: DOMRect, headerHeight: number) =>\n tableRect.top + headerHeight < elementRect.top && elementRect.top > elementRect.height;\n\n const getOffsetTop = (props: boolean | AffixProps) => {\n if (isBoolean(props)) return 0;\n return props.offsetTop || 0;\n };\n\n const updateAffixHeaderOrFooter = () => {\n if (!isAffixed.value && !isVirtualScroll.value && !tableContentRef.value) return;\n const pos = tableContentRef.value?.getBoundingClientRect();\n if (!pos) return;\n const headerRect = tableContentRef.value?.querySelector('thead')?.getBoundingClientRect();\n const headerHeight = headerRect?.height || 0;\n const footerRect = affixFooterRef.value?.getBoundingClientRect();\n if ((props.headerAffixedTop || isVirtualScroll.value) && affixHeaderRef.value) {\n const offsetTop = getOffsetTop(props.headerAffixProps || props.headerAffixedTop);\n const footerHeight = footerRect?.height || 0;\n let r = Math.abs(pos.top) < pos.height - headerHeight - offsetTop - footerHeight;\n // 如果是虚拟滚动的表头,只要表头在可视区域内,一律永久显示(虚拟滚动表头 和 吸顶表头可能同时存在)\n if (isVirtualScroll.value) {\n r = pos.top > -1 * headerRect.height;\n }\n showAffixHeader.value = r;\n }\n // 底部内容吸底 和 底部滚动条吸底,不可能同时存在,二选一即可\n if (props.footerAffixedBottom && affixFooterRef?.value) {\n showAffixFooter.value = isAffixedBottomElementShow(footerRect, pos, headerHeight);\n } else if (props.horizontalScrollAffixedBottom && horizontalScrollbarRef?.value) {\n const horizontalScrollbarRect = horizontalScrollbarRef.value.getBoundingClientRect();\n showAffixFooter.value = isAffixedBottomElementShow(horizontalScrollbarRect, pos, headerHeight);\n }\n if (props.paginationAffixedBottom && paginationRef.value) {\n const pageRect = paginationRef.value.getBoundingClientRect();\n showAffixPagination.value = isAffixedBottomElementShow(pageRect, pos, headerHeight);\n }\n };\n\n const onDocumentScroll = () => {\n updateAffixHeaderOrFooter();\n };\n\n const onFootScroll = () => {\n onHorizontalScroll(affixFooterRef.value);\n };\n\n const onHeaderScroll = () => {\n onHorizontalScroll(affixHeaderRef.value);\n };\n\n const horizontalScrollbarScroll = () => {\n onHorizontalScroll(horizontalScrollbarRef.value);\n };\n\n const onTableContentScroll = () => {\n onHorizontalScroll(tableContentRef.value);\n };\n\n const onFootMouseEnter = () => {\n on(affixFooterRef.value, 'scroll', onFootScroll);\n };\n\n const onFootMouseLeave = () => {\n off(affixFooterRef.value, 'scroll', onFootScroll);\n };\n\n const onHeaderMouseEnter = () => {\n on(affixHeaderRef.value, 'scroll', onHeaderScroll);\n onMouseEnterScrollableArea();\n };\n\n const onHeaderMouseLeave = () => {\n if (!isMousedown) off(affixHeaderRef.value, 'scroll', onHeaderScroll);\n onMouseLeaveScrollableArea();\n };\n\n const onScrollbarMouseEnter = () => {\n on(horizontalScrollbarRef.value, 'scroll', horizontalScrollbarScroll);\n };\n\n const onScrollbarMouseLeave = () => {\n off(horizontalScrollbarRef.value, 'scroll', horizontalScrollbarScroll);\n };\n\n const onTableContentMouseEnter = () => {\n on(tableContentRef.value, 'scroll', onTableContentScroll);\n onMouseEnterScrollableArea();\n };\n\n const onTableContentMouseLeave = () => {\n if (!isMousedown) off(tableContentRef.value, 'scroll', onTableContentScroll);\n onMouseLeaveScrollableArea();\n };\n\n const onMousedown = () => {\n isMousedown = true;\n };\n\n const onMouseup = () => {\n isMousedown = false;\n if (!isMouseInScrollableArea) {\n off(affixHeaderRef.value, 'scroll', onHeaderScroll);\n off(tableContentRef.value, 'scroll', onTableContentScroll);\n }\n };\n\n const onMouseEnterScrollableArea = () => {\n isMouseInScrollableArea = true;\n };\n\n const onMouseLeaveScrollableArea = () => {\n isMouseInScrollableArea = false;\n };\n\n // 记录激活中的 scroll,在新元素点击时要进行抢占\n const activatingTouchScrollListenerCleanups: Array<() => void> = [];\n const setupElementTouchScrollListener = (element: HTMLElement) => {\n // 思路来源 https://github.com/vueuse/vueuse/blob/main/packages/core/useScroll/index.ts\n // 兼容不支持 scrollend 但是又存在惯性滑动的场景,例如 safari\n // 200 毫秒这个默认值是 vueuse 的用法,后面有问题可以再重新考虑\n const debounceOffScrollListener = debounce((listener) => {\n off(element, 'scroll', listener);\n }, 200);\n\n function onElementTouchScroll() {\n onHorizontalScroll(element);\n debounceOffScrollListener(onElementTouchScroll);\n }\n function onElementTouchStart(e: UIEvent) {\n if (e.composedPath().includes(element)) {\n // 下一次 touch 清理所有的 scroll,不同于 pc 端的 enter,触碰打断是合理的\n activatingTouchScrollListenerCleanups.forEach((cleanup) => cleanup());\n activatingTouchScrollListenerCleanups.length = 0;\n // 即使是相同元素也重新绑定,因为 touch 必定带来滑动停止\n on(element, 'scroll', onElementTouchScroll);\n // 有可能触碰了一下,没触发 scroll,也销毁\n debounceOffScrollListener(onElementTouchScroll);\n activatingTouchScrollListenerCleanups.push(() => {\n off(element, 'scroll', onElementTouchScroll);\n });\n }\n }\n\n on(element, 'touchstart', onElementTouchStart);\n\n function removeElementTouchScrollListener() {\n off(element, 'touchstart', onElementTouchStart);\n }\n\n return {\n removeElementTouchScrollListener,\n };\n };\n\n // 清理所有 touch 相关的逻辑\n const elementTouchScrollCleanups: Array<() => void> = [];\n const cleanupElementTouchScroll = () => {\n elementTouchScrollCleanups.forEach((cleanup) => cleanup());\n elementTouchScrollCleanups.length = 0;\n };\n\n const removeHorizontalScrollListeners = () => {\n off(window, 'mousedown', onMousedown);\n off(window, 'mouseup', onMouseup);\n\n cleanupElementTouchScroll();\n if (affixHeaderRef.value) {\n off(affixHeaderRef.value, 'mouseenter', onHeaderMouseEnter);\n off(affixHeaderRef.value, 'mouseleave', onHeaderMouseLeave);\n }\n if (affixFooterRef.value) {\n off(affixFooterRef.value, 'mouseenter', onFootMouseEnter);\n off(affixFooterRef.value, 'mouseleave', onFootMouseLeave);\n }\n if (tableContentRef.value) {\n off(tableContentRef.value, 'mouseenter', onTableContentMouseEnter);\n off(tableContentRef.value, 'mouseleave', onTableContentMouseLeave);\n }\n if (horizontalScrollbarRef.value) {\n off(horizontalScrollbarRef.value, 'mouseenter', onScrollbarMouseEnter);\n off(horizontalScrollbarRef.value, 'mouseleave', onScrollbarMouseLeave);\n }\n };\n\n const addHorizontalScrollListeners = () => {\n on(window, 'mousedown', onMousedown);\n on(window, 'mouseup', onMouseup);\n\n removeHorizontalScrollListeners();\n if (affixHeaderRef.value) {\n on(affixHeaderRef.value, 'mouseenter', onHeaderMouseEnter);\n on(affixHeaderRef.value, 'mouseleave', onHeaderMouseLeave);\n const { removeElementTouchScrollListener } = setupElementTouchScrollListener(affixHeaderRef.value);\n elementTouchScrollCleanups.push(removeElementTouchScrollListener);\n }\n\n if (props.footerAffixedBottom && affixFooterRef.value) {\n on(affixFooterRef.value, 'mouseenter', onFootMouseEnter);\n on(affixFooterRef.value, 'mouseleave', onFootMouseLeave);\n const { removeElementTouchScrollListener } = setupElementTouchScrollListener(affixFooterRef.value);\n elementTouchScrollCleanups.push(removeElementTouchScrollListener);\n }\n\n if (props.horizontalScrollAffixedBottom && horizontalScrollbarRef.value) {\n on(horizontalScrollbarRef.value, 'mouseenter', onScrollbarMouseEnter);\n on(horizontalScrollbarRef.value, 'mouseleave', onScrollbarMouseLeave);\n const { removeElementTouchScrollListener } = setupElementTouchScrollListener(horizontalScrollbarRef.value);\n elementTouchScrollCleanups.push(removeElementTouchScrollListener);\n }\n\n if ((isAffixed.value || isVirtualScroll.value) && tableContentRef.value) {\n on(tableContentRef.value, 'mouseenter', onTableContentMouseEnter);\n on(tableContentRef.value, 'mouseleave', onTableContentMouseLeave);\n const { removeElementTouchScrollListener } = setupElementTouchScrollListener(tableContentRef.value);\n elementTouchScrollCleanups.push(removeElementTouchScrollListener);\n }\n };\n\n const addVerticalScrollListener = () => {\n if (!isAffixed.value && !props.paginationAffixedBottom) return;\n const timer = setTimeout(() => {\n if (isAffixed.value || props.paginationAffixedBottom) {\n on(document, 'scroll', onDocumentScroll);\n } else {\n off(document, 'scroll', onDocumentScroll);\n }\n clearTimeout(timer);\n });\n };\n\n watch([affixHeaderRef, affixFooterRef, horizontalScrollbarRef, tableContentRef], () => {\n addHorizontalScrollListeners();\n onHorizontalScroll();\n updateAffixHeaderOrFooter();\n });\n\n watch(isAffixed, addVerticalScrollListener);\n\n watch(\n () => [\n props.data,\n props.columns,\n props.headerAffixedTop,\n props.footerAffixedBottom,\n props.horizontalScrollAffixedBottom,\n ],\n () => {\n onHorizontalScroll();\n },\n );\n\n onBeforeUnmount(() => {\n off(document, 'scroll', onDocumentScroll);\n removeHorizontalScrollListeners();\n affixHeaderRef.value = null;\n affixFooterRef.value = null;\n horizontalScrollbarRef.value = null;\n tableContentRef.value = null;\n });\n\n const setTableContentRef = (tableContent: HTMLDivElement) => {\n tableContentRef.value = tableContent;\n addVerticalScrollListener();\n };\n\n return {\n showAffixHeader,\n showAffixFooter,\n showAffixPagination,\n affixHeaderRef,\n affixFooterRef,\n horizontalScrollbarRef,\n paginationRef,\n onHorizontalScroll,\n setTableContentRef,\n updateAffixHeaderOrFooter,\n };\n}\n","import { get, isObject, isFunction } from 'lodash-es';\n\nimport { CellData, RowClassNameParams, TableColumnClassName, TableRowData, TdBaseTableProps } from './type';\nimport { ClassName, HTMLElementAttributes } from '../common';\nimport { AffixProps } from '../affix';\n\nexport function toString(obj: any): string {\n return Object.prototype.toString.call(obj).slice(8, -1).toLowerCase();\n}\n\nexport function debounce(fn: Function, delay = 200): () => void {\n let timer: ReturnType;\n return function newFn(this: T, ...args: Array): void {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const context = this;\n clearTimeout(timer);\n timer = setTimeout(() => {\n fn.apply(context, args);\n }, delay);\n };\n}\n\nexport interface FormatRowAttributesParams {\n row: TableRowData;\n rowIndex: number;\n type: 'body' | 'foot';\n}\n\n// 行属性\nexport function formatRowAttributes(attributes: TdBaseTableProps['rowAttributes'], params: FormatRowAttributesParams) {\n if (!attributes) return undefined;\n const attrList = attributes instanceof Array ? attributes : [attributes];\n let result: HTMLElementAttributes = {};\n for (let i = 0; i < attrList.length; i++) {\n const attrItem = attrList[i];\n if (!attrItem) continue;\n const attrProperty = isFunction(attrItem) ? attrItem(params) : attrItem;\n result =\n attrProperty instanceof Array ? formatRowAttributes(attrProperty, params) : Object.assign(result, attrProperty);\n }\n return result;\n}\n\n// 行类名,['A', 'B'],[() => 'A', () => 'B']\nexport function formatRowClassNames(\n rowClassNames: TdBaseTableProps['rowClassName'],\n params: RowClassNameParams,\n rowKey: string,\n) {\n const rowClassList = rowClassNames instanceof Array ? rowClassNames : [rowClassNames];\n const { row, rowIndex } = params;\n // 自定义行类名\n let customClasses: ClassName = [];\n for (let i = 0, len = rowClassList.length; i < len; i++) {\n const rName = rowClassList[i];\n let tClass = isFunction(rName) ? rName(params) : rName;\n if (isObject(tClass) && !(tClass instanceof Array)) {\n // TODO: 这里其实是两点原因导致的\n // 1. isObject(tClass) && !(tClass instanceof Array) 直接用 isPlainObject 就可以了吧,或者 tClass && typeof tClass === 'object'\n // 2. lodash-es 类型不全\n // 根据下标设置行类名\n (tClass as Record)[rowIndex] && (tClass = (tClass as Record)[rowIndex]);\n // 根据行唯一标识设置行类名\n const rowId = get(row, rowKey || 'id');\n tClass[rowId] && (tClass = tClass[rowId]);\n } else if (tClass instanceof Array) {\n tClass = formatRowClassNames(tClass, params, rowKey);\n }\n customClasses = customClasses.concat(tClass);\n }\n return customClasses;\n}\n\nexport function formatClassNames(\n classNames: TableColumnClassName | TableColumnClassName[],\n params: CellData,\n) {\n const classes = classNames instanceof Array ? classNames : [classNames];\n const arr: any[] = [];\n for (let i = 0, len = classes.length; i < len; i++) {\n const cls = classes[i];\n if (isFunction(cls)) {\n arr.push(cls(params));\n } else {\n arr.push(cls);\n }\n }\n return arr;\n}\n\nexport const INNER_PRE_NAME = '@@inner-';\n\n// 多级表头,列配置场景,获取 currentRow\nexport function getCurrentRowByKey(columns: T[], key: string): T {\n if (!columns || !key) return;\n const col = columns?.find((t) => t.colKey === key);\n if (col) return col;\n for (let i = 0, len = columns.length; i < len; i++) {\n if (columns[i]?.children?.length) {\n return getCurrentRowByKey(columns[i]?.children, key);\n }\n }\n}\n\n/** 透传 Affix 组件全部特性 */\nexport function getAffixProps(mainAffixProps: boolean | AffixProps, subAffixProps?: AffixProps) {\n if (typeof mainAffixProps === 'object') return mainAffixProps;\n if (typeof subAffixProps === 'object') return subAffixProps;\n return {};\n}\n","import { ref, watch, Ref } from 'vue';\nimport { get } from 'lodash-es';\nimport log from '@tdesign/common-js/log/index';\nimport { BaseTableCellParams, BaseTableCol, TableRowData, TableRowspanAndColspanFunc } from '../type';\n\nexport interface SkipSpansValue {\n colspan?: number;\n rowspan?: number;\n skipped?: boolean;\n}\n\nexport function getCellKey(row: TableRowData, rowKey: string, colKey: string, colIndex: number) {\n const rowValue = get(row, rowKey);\n if (rowValue === undefined) {\n log.error('Table', 'rowKey is wrong, can not get unique identifier of row.');\n }\n return [rowValue, colKey || colIndex].join('_');\n}\n\n// getCellKey的反向操作 用于获取rowKey\nexport function getRowKeyFromCell(cellKey: string) {\n return cellKey.split('_')?.[0];\n}\n\nexport default function useRowspanAndColspan(\n data: Ref,\n columns: Ref[]>,\n rowKey: Ref,\n rowspanAndColspan: Ref>,\n) {\n const skipSpansMap = ref(new Map());\n\n // 计算单元格是否跳过渲染\n const onTrRowspanOrColspan = (params: BaseTableCellParams, skipSpansValue: SkipSpansValue) => {\n const { rowIndex, colIndex } = params;\n if (!skipSpansValue.rowspan && !skipSpansValue.colspan) return;\n const maxRowIndex = rowIndex + (skipSpansValue.rowspan || 1);\n const maxColIndex = colIndex + (skipSpansValue.colspan || 1);\n for (let i = rowIndex; i < maxRowIndex; i++) {\n for (let j = colIndex; j < maxColIndex; j++) {\n if (i !== rowIndex || j !== colIndex) {\n if (!data.value[i] || !columns.value[j]) return;\n const cellKey = getCellKey(data.value[i], rowKey.value, columns.value[j].colKey, j);\n const state = skipSpansMap.value.get(cellKey) || {};\n state.skipped = true;\n skipSpansMap.value.set(cellKey, state);\n }\n }\n }\n };\n\n // 计算单元格是否需要设置 rowspan 和 colspan\n const updateSkipSpansMap = (\n data: TableRowData[],\n columns: BaseTableCol[],\n rowspanAndColspan: TableRowspanAndColspanFunc,\n ) => {\n skipSpansMap.value?.clear();\n if (!data || !rowspanAndColspan) return;\n for (let i = 0, len = data.length; i < len; i++) {\n const row = data[i];\n for (let j = 0, colLen = columns.length; j < colLen; j++) {\n const col = columns[j];\n const params = {\n row,\n col,\n rowIndex: i,\n colIndex: j,\n };\n const cellKey = getCellKey(row, rowKey.value, col.colKey, j);\n const state = skipSpansMap.value.get(cellKey) || {};\n const o = rowspanAndColspan(params) || {};\n if (o.rowspan || o.colspan || state.rowspan || state.colspan) {\n o.rowspan && (state.rowspan = o.rowspan);\n o.colspan && (state.colspan = o.colspan);\n skipSpansMap.value.set(cellKey, state);\n }\n onTrRowspanOrColspan?.(params, state);\n }\n }\n };\n\n watch(\n () => [data.value, columns.value, rowspanAndColspan],\n () => {\n updateSkipSpansMap(data.value, columns.value, rowspanAndColspan?.value);\n },\n { immediate: true },\n );\n\n return { skipSpansMap };\n}\n","import {\n defineComponent,\n PropType,\n SetupContext,\n h,\n computed,\n ref,\n reactive,\n toRefs,\n onUpdated,\n nextTick,\n onMounted,\n} from 'vue';\nimport { get, pick, isString, isFunction, upperFirst } from 'lodash-es';\n\nimport { formatClassNames, formatRowAttributes, formatRowClassNames } from './utils';\nimport { getRowFixedStyles, getColumnFixedStyles } from './hooks/useFixed';\nimport useClassName from './hooks/useClassName';\nimport TEllipsis from './ellipsis';\nimport { BaseTableCellParams, TableRowData, RowspanColspan, TdPrimaryTableProps, TdBaseTableProps } from './type';\nimport baseTableProps from './base-table-props';\nimport useLazyLoad from './hooks/useLazyLoad';\nimport { RowAndColFixedPosition } from './interface';\nimport { getCellKey, SkipSpansValue } from './hooks/useRowspanAndColspan';\nimport { TooltipProps } from '../tooltip';\nimport { PaginationProps } from '..';\nimport { VirtualScrollConfig } from '@tdesign/hooks';\nimport { AttachNode, SlotReturnValue } from '../common';\n\nexport interface RenderTdExtra {\n rowAndColFixedPosition: RowAndColFixedPosition;\n columnLength: number;\n dataLength: number;\n cellSpans: RowspanColspan;\n cellEmptyContent: TdBaseTableProps['cellEmptyContent'];\n}\n\nexport interface RenderEllipsisCellParams {\n cellNode: any;\n}\n\nexport type TrCommonProps = Pick;\n\nexport const TABLE_PROPS = [\n 'rowKey',\n 'rowClassName',\n 'columns',\n 'fixedRows',\n 'footData',\n 'rowAttributes',\n 'rowspanAndColspan',\n 'scroll',\n 'cellEmptyContent',\n 'pagination',\n 'attach',\n 'onCellClick',\n 'onRowClick',\n 'onRowDblclick',\n 'onRowMouseover',\n 'onRowMousedown',\n 'onRowMouseenter',\n 'onRowMouseleave',\n 'onRowMouseup',\n] as const;\n\nexport type TrPropsKeys = typeof TABLE_PROPS[number];\n\nexport interface TrProps extends TrCommonProps {\n rowKey: string;\n row: TableRowData;\n rowIndex: number;\n ellipsisOverlayClassName: string;\n classPrefix: string;\n dataLength: number;\n rowAndColFixedPosition?: RowAndColFixedPosition;\n skipSpansMap?: Map;\n tableElm?: any;\n // HTMLDivElement\n tableContentElm?: any;\n cellEmptyContent: TdBaseTableProps['cellEmptyContent'];\n virtualConfig: VirtualScrollConfig;\n attach?: AttachNode;\n active?: boolean;\n isHover?: boolean;\n}\n\nexport const ROW_LISTENERS = [\n 'click',\n 'dblclick',\n 'mouseover',\n 'mousedown',\n 'mouseenter',\n 'mouseleave',\n 'mouseup',\n] as const;\n\nexport function renderCell(\n params: BaseTableCellParams,\n slots: SetupContext['slots'],\n extra?: {\n cellEmptyContent?: TdBaseTableProps['cellEmptyContent'];\n pagination?: PaginationProps;\n },\n) {\n const { col, row, rowIndex } = params;\n // support serial number column\n if (col.colKey === 'serial-number') {\n const { current, pageSize, defaultCurrent, defaultPageSize } = extra?.pagination || {};\n const tCurrent = current || defaultCurrent;\n const tPageSize = pageSize || defaultPageSize;\n if (tPageSize && tCurrent) {\n return tPageSize * (tCurrent - 1) + rowIndex + 1;\n }\n return rowIndex + 1;\n }\n if (isFunction(col.cell)) {\n return col.cell(h, params);\n }\n if (slots[col.colKey]) {\n return slots[col.colKey](params);\n }\n if (isString(col.cell) && slots[col.cell]) {\n return slots[col.cell](params);\n }\n if (isFunction(col.render)) {\n return col.render(h, { ...params, type: 'cell' });\n }\n const r = get(row, col.colKey);\n // 0 和 false 属于正常可用之,不能使用兜底逻辑 cellEmptyContent\n if (![undefined, '', null].includes(r)) return r;\n // cellEmptyContent 作为空数据兜底显示,用户可自定义\n if (extra?.cellEmptyContent) {\n return isFunction(extra.cellEmptyContent) ? extra.cellEmptyContent(h, params) : extra.cellEmptyContent;\n }\n if (slots.cellEmptyContent) return slots.cellEmptyContent(params);\n if (slots['cell-empty-content']) return slots['cell-empty-content'](params);\n return r;\n}\n\n// 表格行组件\nexport default defineComponent({\n name: 'TR',\n\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 columnVNodeList = columns?.map((col, colIndex) => {\n const cellSpans: RowspanColspan = {};\n const params = {\n row,\n col,\n rowIndex: props.rowIndex,\n colIndex,\n };\n let spanState = null;\n if (props.skipSpansMap.size) {\n const cellKey = getCellKey(row, props.rowKey, col.colKey, colIndex);\n spanState = skipSpansMap.get(cellKey) || {};\n spanState?.rowspan > 1 && (cellSpans.rowspan = spanState.rowspan);\n spanState?.colspan > 1 && (cellSpans.colspan = spanState.colspan);\n if (spanState.skipped) return null;\n }\n return renderTd(params, {\n dataLength,\n rowAndColFixedPosition,\n columnLength: columns.length,\n cellSpans,\n cellEmptyContent: props.cellEmptyContent,\n });\n });\n\n return (\n \n {hasLazyLoadHolder.value\n ? [\n );\n };\n },\n});\n","import { ref, onMounted, computed, nextTick, Ref, UnwrapRef } from 'vue';\nimport observe from '@tdesign/common-js/utils/observe';\nimport { isServer } from '../../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 { get, pick, camelCase } from 'lodash-es';\n\nimport TrElement, { ROW_LISTENERS, TABLE_PROPS } from './tr';\nimport { useConfig, useTNodeJSX, VirtualScrollConfig } from '@tdesign/hooks';\n\nimport useClassName from './hooks/useClassName';\nimport baseTableProps from './base-table-props';\nimport { TNodeReturnValue } from '../common';\nimport useRowspanAndColspan from './hooks/useRowspanAndColspan';\nimport { BaseTableProps, RowAndColFixedPosition } from './interface';\nimport { TdBaseTableProps } from './type';\n\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 { useConfig, useCommonClassName } from '@tdesign/hooks';\n\nexport function formatCSSUnit(unit: string | number) {\n if (!unit) return unit;\n return isNaN(Number(unit)) ? unit : `${unit}px`;\n}\n\nexport default function useStyle(props: TdBaseTableProps) {\n const { size, bordered, stripe, hover, verticalAlign, height, maxHeight, tableContentWidth } = toRefs(props);\n\n const { tableBaseClass, tableAlignClasses } = useClassName();\n const { SIZE } = useCommonClassName();\n const { globalConfig } = useConfig('table', props.locale);\n const tableSize = computed(() => size.value ?? globalConfig.value.size);\n\n const tableClasses = computed(() => [\n tableBaseClass.table,\n {\n [SIZE.value[tableSize.value]]: tableSize.value !== 'medium',\n [tableBaseClass.bordered]: bordered.value,\n [tableBaseClass.striped]: stripe.value,\n [tableBaseClass.hover]: hover.value,\n [tableBaseClass.loading]: props.loading,\n [tableBaseClass.affixedHeader]: props.headerAffixedTop,\n [tableBaseClass.rowspanAndColspan]: props.rowspanAndColspan,\n [tableAlignClasses[verticalAlign.value]]: verticalAlign.value !== 'middle',\n },\n ]);\n\n const tableContentStyles = computed(() => ({\n height: formatCSSUnit(height.value),\n maxHeight: formatCSSUnit(maxHeight.value),\n }));\n\n const tableElementStyles = computed(() => ({\n width: formatCSSUnit(tableContentWidth.value),\n }));\n\n return {\n tableClasses,\n sizeClassNames: SIZE.value,\n tableElementStyles,\n tableContentStyles,\n };\n}\n","import { defineComponent, computed, 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 { get, isString, isFunction } from 'lodash-es';\n\nimport { BaseTableCellParams, RowspanColspan, TableRowData, TdBaseTableProps } from './type';\nimport { formatRowAttributes, formatRowClassNames } from './utils';\nimport { getColumnFixedStyles } from './hooks/useFixed';\nimport { useTNodeJSX } from '@tdesign/hooks';\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 '@tdesign/hooks';\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 { get, pick, throttle, isFunction } from 'lodash-es';\n\nimport props from './base-table-props';\nimport useTableHeader from './hooks/useTableHeader';\nimport useColumnResize from './hooks/useColumnResize';\nimport useFixed from './hooks/useFixed';\nimport usePagination from './hooks/usePagination';\nimport { useConfig, useTNodeJSX, useVirtualScrollNew, useElementLazyRender } from '@tdesign/hooks';\nimport useAffix from './hooks/useAffix';\nimport Loading from '../loading';\nimport TBody, { extendTableProps } from './tbody';\nimport { BaseTableProps } from './interface';\n\nimport useStyle, { formatCSSUnit } from './hooks/useStyle';\nimport useClassName from './hooks/useClassName';\n\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';\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 : columnVNodeList}\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 '@tdesign/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';\nimport { isFunction } from 'lodash-es';\nimport { CheckboxGroupValue, CheckboxOptionObj, CheckboxGroupChangeContext } from '../../checkbox';\nimport { DialogPlugin } from '../../dialog/plugin';\nimport { renderTitle } from './useTableHeader';\nimport { PrimaryTableCol, TdPrimaryTableProps } from '../type';\nimport { useConfig, useTNodeJSX, useGlobalIcon, useDefaultValue } from '@tdesign/hooks';\n\nimport { getCurrentRowByKey } from '../utils';\nimport { DialogInstance } from '../../dialog';\nimport TButton from '../../button';\nimport ColumnCheckboxGroup from '../column-checkbox-group';\n\nexport function getColumnKeys(columns: PrimaryTableCol[], keys = new Set()) {\n for (let i = 0, len = columns.length; i < len; i++) {\n const col = columns[i];\n if (col.children?.length) {\n getColumnKeys(col.children, keys);\n } else {\n col.colKey && keys.add(col.colKey);\n }\n }\n return keys;\n}\n\ninterface CheckboxGroupOptionsType {\n options: CheckboxOptionObj[];\n label: string;\n value?: string | number;\n}\n\nexport default function useColumnController(props: TdPrimaryTableProps, context: SetupContext) {\n const { classPrefix, globalConfig } = useConfig('table', props.locale);\n const { SettingIcon } = useGlobalIcon({ SettingIcon: TdSettingIcon });\n const { columns, columnController, displayColumns, columnControllerVisible } = toRefs(props);\n const dialogInstance = ref(null);\n const renderTNodeJSX = useTNodeJSX();\n\n const enabledColKeys = computed(() => {\n const arr = (columnController.value?.fields || [...getColumnKeys(columns.value)] || []).filter((v) => v);\n return new Set(arr);\n });\n\n const keys = [...getColumnKeys(columns.value)];\n\n // 确认后的列配置\n const [tDisplayColumns, setTDisplayColumns] = useDefaultValue(\n displayColumns,\n props.defaultDisplayColumns || keys,\n props.onDisplayColumnsChange,\n 'displayColumns',\n );\n // 弹框内的多选\n const columnCheckboxKeys = ref(displayColumns.value || props.defaultDisplayColumns || keys);\n\n const checkboxGroupList = computed(() => {\n if (columnController.value?.groupColumns?.length) {\n return getCheckboxGroupOptions(columns.value);\n }\n const oneItem: CheckboxGroupOptionsType = {\n label: globalConfig.value.selectAllText,\n options: getCheckboxOptions(columns.value),\n };\n return [oneItem];\n });\n\n // const intersectionChecked = computed(() => intersection(columnCheckboxKeys.value, [...enabledColKeys.value]));\n\n watch([displayColumns], ([val]) => {\n columnCheckboxKeys.value = val || props.defaultDisplayColumns || keys;\n });\n\n function getOneColumnItem(column: PrimaryTableCol, i: number) {\n return {\n label: () => renderTitle(context.slots, column, i),\n value: column.colKey,\n disabled: !enabledColKeys.value.has(column.colKey),\n };\n }\n\n // 列配置分组\n function getCheckboxGroupOptions(columns: PrimaryTableCol[]) {\n const groupColumns = columnController.value?.groupColumns;\n if (!groupColumns?.length) return [];\n const groupList: CheckboxGroupOptionsType[] = [];\n const loop = (columns: PrimaryTableCol[]) => {\n for (let i = 0, len = columns.length; i < len; i++) {\n const column = columns[i];\n const oneItem = getOneColumnItem(column, i);\n for (let j = 0, len1 = groupColumns.length; j < len1; j++) {\n const groupInfo = groupColumns[j];\n if (!groupInfo.columns.includes(column.colKey)) continue;\n if (groupList[j]?.options?.length) {\n groupList[j].options.push(oneItem);\n } else {\n groupList[j] = { ...groupColumns[j], options: [oneItem] };\n }\n }\n if (column.children?.length) {\n loop(column.children);\n }\n }\n };\n loop(columns);\n return groupList;\n }\n\n function getCheckboxOptions(columns: PrimaryTableCol[], arr: CheckboxOptionObj[] = []) {\n if (columnController.value?.groupColumns?.length) return [];\n for (let i = 0, len = columns.length; i < len; i++) {\n const item = columns[i];\n if (item.children?.length) {\n getCheckboxOptions(item.children, arr);\n } else {\n // 只把叶子列提供出去进行配置\n if (item.colKey) {\n arr.push(getOneColumnItem(item, i));\n }\n }\n }\n return arr;\n }\n\n const handleCheckChange = (val: CheckboxGroupValue, ctx: CheckboxGroupChangeContext) => {\n columnCheckboxKeys.value = val;\n const params = {\n columns: val,\n type: ctx.type,\n currentColumn: getCurrentRowByKey(columns.value, String(ctx.current)),\n e: ctx.e,\n };\n props.onColumnChange?.(params);\n };\n\n // 暂时不删除,万一后面需要整体的全选\n // const handleClickAllShowColumns = (checked: boolean, ctx: { e: Event }) => {\n // if (checked) {\n // const newData = checkboxOptions.value?.map((t) => t.value) || [];\n // columnCheckboxKeys.value = newData;\n // props.onColumnChange?.({ type: 'check', columns: newData, e: ctx.e });\n // } else {\n // const disabledColKeys = checkboxOptions.value.filter((t) => t.disabled).map((t) => t.value);\n // columnCheckboxKeys.value = disabledColKeys;\n // props.onColumnChange?.({ type: 'uncheck', columns: disabledColKeys, e: ctx.e });\n // }\n // };\n\n const handleToggleColumnController = () => {\n if (dialogInstance.value) {\n dialogInstance.value.show();\n return;\n }\n dialogInstance.value = DialogPlugin.confirm({\n header: globalConfig.value.columnConfigTitleText,\n body: () => {\n const widthMode = columnController.value?.displayType === 'fixed-width' ? 'fixed' : 'auto';\n // const checkedLength = intersectionChecked.value.length;\n // const isCheckedAll = checkedLength === enabledColKeys.value.size;\n // const isIndeterminate = checkedLength > 0 && checkedLength < enabledColKeys.value.size;\n const { columnControllerTopContent, columnControllerBottomContent } = columnController.value || {};\n const defaultNode = (\n \n
    \n {isFunction(columnControllerTopContent)\n ? columnControllerTopContent(h)\n : renderTNodeJSX('columnControllerTopContent')}\n {/* 请选择需要在表格中显示的数据列 */}\n {globalConfig.value.columnConfigDescriptionText && (\n

    \n {globalConfig.value.columnConfigDescriptionText}\n

    \n )}\n {checkboxGroupList.value.map((group, index) => {\n const uniqueKey = columnController.value?.groupColumns?.length\n ? String(group.value || index)\n : undefined;\n return (\n \n );\n })}\n\n {isFunction(columnControllerBottomContent)\n ? columnControllerBottomContent(h)\n : renderTNodeJSX('columnControllerBottomContent')}\n
    \n \n );\n return defaultNode;\n },\n confirmBtn: globalConfig.value.confirmText,\n cancelBtn: globalConfig.value.cancelText,\n width: 612,\n onConfirm: () => {\n setTDisplayColumns([...columnCheckboxKeys.value]);\n // 此处逻辑不要随意改动,涉及到 内置列配置按钮 和 不包含列配置按钮等场景\n if (columnControllerVisible.value === undefined) {\n dialogInstance.value.hide();\n } else {\n props.onColumnControllerVisibleChange?.(false, { trigger: 'confirm' });\n context.emit('update:columnControllerVisible', false);\n }\n },\n onClose: () => {\n columnCheckboxKeys.value = tDisplayColumns.value;\n // 此处逻辑不要随意改动,涉及到 内置列配置按钮 和 不包含列配置按钮等场景\n if (columnControllerVisible.value === undefined) {\n dialogInstance.value.hide();\n } else {\n props.onColumnControllerVisibleChange?.(false, { trigger: 'cancel' });\n context.emit('update:columnControllerVisible', false);\n }\n },\n ...(columnController.value?.dialogProps || {}),\n });\n };\n\n // columnControllerVisible 一般应用于不包含列配置按钮的场景,有外部直接控制弹框的显示或隐藏\n watch(\n [columnControllerVisible],\n ([visible]) => {\n if (visible === undefined) return;\n if (dialogInstance.value) {\n visible ? dialogInstance.value.show() : dialogInstance.value.hide();\n } else {\n visible && handleToggleColumnController();\n }\n },\n { immediate: true },\n );\n\n const renderColumnController = () => {\n const isColumnController = !!(columnController.value && Object.keys(columnController.value).length);\n const placement = isColumnController ? columnController.value.placement || 'top-right' : '';\n if (isColumnController && columnController.value.hideTriggerButton) return null;\n const classes = [\n `${classPrefix.value}-table__column-controller-trigger`,\n { [`${classPrefix.value}-align-${placement}`]: !!placement },\n ];\n return (\n
    \n ,\n }}\n {...props.columnController?.buttonProps}\n >\n
    \n );\n };\n\n return {\n tDisplayColumns,\n columnCheckboxKeys,\n renderColumnController,\n };\n}\n","import { isFunction, isNumber, get } from 'lodash-es';\nimport { BaseTableCol } from './types';\n\nexport function filterDataByIds(\n data: Array = [],\n ids: Array = [],\n byId = 'id',\n): Array {\n return data.filter((d: Record = {}) => ids.includes(d[byId]));\n}\n\nexport enum SCROLL_DIRECTION {\n X = 'x',\n Y = 'y',\n UNKNOWN = 'unknown',\n}\n\nlet preScrollLeft: any;\nlet preScrollTop: any;\n\nexport const getScrollDirection = (scrollLeft: number, scrollTop: number): SCROLL_DIRECTION => {\n let direction = SCROLL_DIRECTION.UNKNOWN;\n if (preScrollTop !== scrollTop) {\n direction = SCROLL_DIRECTION.Y;\n } else if (preScrollLeft !== scrollLeft) {\n direction = SCROLL_DIRECTION.X;\n }\n preScrollTop = scrollTop;\n preScrollLeft = scrollLeft;\n return direction;\n};\n\nexport function isRowSelectedDisabled(\n selectColumn: { [key: string]: any },\n row: Record,\n rowIndex: number,\n): boolean {\n if (!selectColumn) return false;\n let disabled = isFunction(selectColumn.disabled) ? selectColumn.disabled({ row, rowIndex }) : selectColumn.disabled;\n if (selectColumn.checkProps) {\n if (isFunction(selectColumn.checkProps)) {\n disabled = disabled || selectColumn.checkProps({ row, rowIndex }).disabled;\n } else if (selectColumn.checkProps === 'object') {\n disabled = disabled || selectColumn.checkProps.disabled;\n }\n }\n return !!disabled;\n}\n\n// 获取列属性\nexport function getColWidthAttr>(col: T, attrKey: 'width' | 'minWidth') {\n const attr = col[attrKey];\n return isNumber(attr) ? attr : parseFloat(attr);\n}\n\nexport function getEditableKeysMap(keys: Array, list: any[], rowKey: string) {\n const map: { [key: string | number]: boolean } = {};\n for (let i = 0, len = list.length; i < len; i++) {\n const rowValue = get(list[i], rowKey);\n if (keys.includes(rowValue)) {\n map[rowValue] = true;\n }\n }\n return map;\n}\n\nexport function getColumnDataByKey(columns: any[], colKey: string): any {\n for (let i = 0, len = columns.length; i < len; i++) {\n if (columns[i].colKey === colKey) return columns[i];\n if (columns[i].children?.length) {\n const t = getColumnDataByKey(columns[i].children, colKey);\n if (t) return t;\n }\n }\n return null;\n}\n\nexport function getColumnIndexByKey(columns: any[], colKey: string): number {\n for (let i = 0, len = columns.length; i < len; i++) {\n if (columns[i].colKey === colKey) {\n return i;\n }\n if (columns[i].children?.length) {\n const t = getColumnDataByKey(columns[i].children, colKey);\n if (t) return i;\n }\n }\n return -1;\n}\n\nexport function getColumnsResetValue(columns: any[], resetValue: { [key: string]: any } = {}) {\n for (let i = 0, len = columns.length; i < len; i++) {\n const col = columns[i];\n if (col.filter && 'resetValue' in col.filter) {\n // eslint-disable-next-line no-param-reassign\n resetValue[col.colKey] = col.filter.resetValue;\n }\n if (col.children?.length) {\n getColumnsResetValue(col.children, resetValue);\n }\n }\n return resetValue;\n}\n","/**\n * 行选中相关功能:单选 + 多选\n */\nimport { computed, toRefs, h, ref, watch } from 'vue';\nimport { get, isFunction, intersection } from 'lodash-es';\n\nimport { useDefaultValue } from '@tdesign/hooks';\nimport {\n ActiveRowActionContext,\n PrimaryTableCellParams,\n PrimaryTableCol,\n RowClassNameParams,\n TableRowData,\n TdPrimaryTableProps,\n} from '../type';\nimport { isRowSelectedDisabled } from '@tdesign/common-js/table/utils';\nimport { TableClassName } from './useClassName';\nimport Checkbox from '../../checkbox';\nimport Radio from '../../radio';\nimport log from '@tdesign/common-js/log/index';\n\nexport default function useRowSelect(\n props: TdPrimaryTableProps,\n tableSelectedClasses: TableClassName['tableSelectedClasses'],\n) {\n const { selectedRowKeys, columns, rowKey, data, reserveSelectedRowOnPaginate, pagination } = toRefs(props);\n const currentPaginateData = ref(\n pagination.value\n ? data.value.slice(\n (pagination.value.current - 1) * pagination.value.pageSize,\n pagination.value.current * pagination.value.pageSize,\n )\n : data.value,\n );\n const selectedRowClassNames = ref();\n const [tSelectedRowKeys, setTSelectedRowKeys] = useDefaultValue(\n selectedRowKeys,\n props.defaultSelectedRowKeys || [],\n props.onSelectChange,\n 'selectedRowKeys',\n );\n const selectedRowDataMap = ref(new Map());\n const selectColumn = computed(() => props.columns.find(({ type }) => ['multiple', 'single'].includes(type)));\n const selectionType = computed(() => props.rowSelectionType || selectColumn.value?.type || 'single');\n const canSelectedRows = computed(() => {\n const currentData = reserveSelectedRowOnPaginate.value ? data.value : currentPaginateData.value;\n return currentData.filter((row, rowIndex): boolean => !isDisabled(row, rowIndex));\n });\n // 选中的行,和所有可以选择的行,交集,用于计算 isSelectedAll 和 isIndeterminate\n const intersectionKeys = computed(() =>\n intersection(\n tSelectedRowKeys.value,\n canSelectedRows.value.map((t) => get(t, props.rowKey || 'id')),\n ),\n );\n\n const allowUncheck = computed(() => {\n if (props.rowSelectionAllowUncheck) return true;\n const singleSelectCol = selectionType.value === 'single';\n if (!singleSelectCol || !selectColumn.value?.checkProps || !('allowUncheck' in selectColumn.value?.checkProps))\n return false;\n return selectColumn.value.checkProps.allowUncheck;\n });\n\n watch(\n [data, columns, tSelectedRowKeys, selectColumn, rowKey],\n () => {\n const disabledRowFunc = (p: RowClassNameParams) =>\n selectColumn.value.disabled(p) ? tableSelectedClasses.disabled : '';\n const disabledRowClass = selectColumn.value?.disabled ? disabledRowFunc : undefined;\n const selected = new Set(tSelectedRowKeys.value);\n const selectedRowClassFunc = ({ row }: RowClassNameParams) => {\n const rowId = get(row, props.rowKey || 'id');\n return selected.has(rowId) ? tableSelectedClasses.selected : '';\n };\n const selectedRowClass = selected.size ? selectedRowClassFunc : undefined;\n selectedRowClassNames.value = [disabledRowClass, selectedRowClass];\n },\n { immediate: true },\n );\n\n // 在远程分页场景下,当前页全选功能的状态判定需基于当前页数据是否存在进行动态重新计算\n watch(data, () => {\n currentPaginateData.value = data.value;\n });\n\n function isDisabled(row: Record, rowIndex: number): boolean {\n return isRowSelectedDisabled(selectColumn.value, row, rowIndex);\n }\n\n function getSelectedHeader() {\n return () => {\n const isIndeterminate =\n intersectionKeys.value.length > 0 && intersectionKeys.value.length < canSelectedRows.value.length;\n const isChecked =\n intersectionKeys.value.length !== 0 &&\n canSelectedRows.value.length !== 0 &&\n intersectionKeys.value.length === canSelectedRows.value.length;\n return (\n \n );\n };\n }\n\n function getRowSelectDisabledData(p: PrimaryTableCellParams) {\n const { col, row, rowIndex } = p;\n const disabled: boolean = isFunction(col.disabled) ? col.disabled({ row, rowIndex }) : col.disabled;\n const checkProps = isFunction(col.checkProps) ? col.checkProps({ row, rowIndex }) : col.checkProps;\n return {\n disabled: disabled || checkProps?.disabled,\n checkProps,\n };\n }\n\n function renderSelectCell(p: PrimaryTableCellParams) {\n const { col: column, row = {} } = p;\n const checked = tSelectedRowKeys.value.includes(get(row, props.rowKey || 'id'));\n const { disabled, checkProps } = getRowSelectDisabledData(p);\n const selectBoxProps: Object = {\n checked,\n disabled,\n ...checkProps,\n // 兼容处理不同的参数\n onClick: (e: MouseEvent | { e: MouseEvent }) => {\n // 选中行功能中,点击 checkbox/radio 需阻止事件冒泡,避免触发不必要的 onRowClick\n if (typeof e === 'object' && 'e' in e) {\n e.e?.stopPropagation();\n } else {\n e?.stopPropagation();\n }\n },\n onChange: () => handleSelectChange(row),\n };\n if (column.type === 'single') return ;\n if (column.type === 'multiple') {\n const isIndeterminate = props.indeterminateSelectedRowKeys?.length\n ? props.indeterminateSelectedRowKeys.includes(get(row, props.rowKey))\n : false;\n return ;\n }\n return null;\n }\n\n function handleSelectChange(row: TableRowData = {}) {\n let selectedRowKeys = [...tSelectedRowKeys.value];\n const reRowKey = props.rowKey || 'id';\n const id = get(row, reRowKey);\n const selectedRowIndex = selectedRowKeys.indexOf(id);\n const isExisted = selectedRowIndex !== -1;\n if (selectionType.value === 'multiple') {\n isExisted ? selectedRowKeys.splice(selectedRowIndex, 1) : selectedRowKeys.push(id);\n } else if (selectionType.value === 'single') {\n selectedRowKeys = isExisted && allowUncheck.value ? [] : [id];\n } else {\n log.warn('Table', '`column.type` must be one of `multiple` and `single`');\n return;\n }\n setTSelectedRowKeys(selectedRowKeys, {\n selectedRowData: selectedRowKeys.map((t) => selectedRowDataMap.value.get(t)),\n currentRowKey: id,\n currentRowData: row,\n type: isExisted ? 'uncheck' : 'check',\n });\n }\n\n function handleSelectAll(checked: boolean) {\n const reRowKey = props.rowKey || 'id';\n const canSelectedRowKeys = canSelectedRows.value.map((record) => get(record, reRowKey));\n const disabledSelectedRowKeys = selectedRowKeys.value?.filter((id) => !canSelectedRowKeys.includes(id)) || [];\n const allIds = checked ? [...disabledSelectedRowKeys, ...canSelectedRowKeys] : [...disabledSelectedRowKeys];\n setTSelectedRowKeys(allIds, {\n selectedRowData: checked ? allIds.map((t) => selectedRowDataMap.value.get(t)) : [],\n type: checked ? 'check' : 'uncheck',\n currentRowKey: 'CHECK_ALL_BOX',\n });\n }\n\n function formatToRowSelectColumn(col: PrimaryTableCol) {\n const isSelection = ['multiple', 'single'].includes(col.type);\n if (!isSelection) return col;\n return {\n ...col,\n width: col.width || 64,\n className: [tableSelectedClasses.checkCell, col.className],\n cell: (_: typeof h, p: PrimaryTableCellParams) => renderSelectCell(p),\n title: col.type === 'multiple' ? getSelectedHeader() : col.title,\n };\n }\n\n const onInnerSelectRowClick: TdPrimaryTableProps['onRowClick'] = ({ row, index }) => {\n const selectedColIndex = props.columns.findIndex((item) => item.colKey === 'row-select');\n let disabled = false;\n if (selectedColIndex !== -1) {\n disabled = getRowSelectDisabledData({\n row,\n rowIndex: index,\n col: props.columns[selectedColIndex],\n colIndex: selectedColIndex,\n })?.disabled;\n }\n if (disabled) return;\n handleSelectChange(row);\n };\n\n watch(\n [data, rowKey],\n () => {\n for (let i = 0, len = data.value.length; i < len; i++) {\n selectedRowDataMap.value.set(get(data.value[i], rowKey.value || 'id'), data.value[i]);\n }\n },\n { immediate: true },\n );\n\n // 是否开启了行选中功能\n const showRowSelect = computed(() => Boolean(selectColumn.value || props.selectOnRowClick || props.selectedRowKeys));\n\n const clearAllSelectedRowKeys = () => {\n setTSelectedRowKeys([], {\n selectedRowData: [],\n currentRowKey: undefined,\n currentRowData: undefined,\n type: 'uncheck',\n });\n };\n\n const handleRowSelectWithAreaSelection = ({ activeRowList, action }: ActiveRowActionContext) => {\n if (!showRowSelect.value) return;\n\n if (action === 'clear') {\n clearAllSelectedRowKeys();\n return;\n }\n\n if (action === 'select-all') {\n handleSelectAll(true);\n return;\n }\n\n if (selectionType.value === 'single') {\n if (action === 'space-one-selection') {\n handleSelectChange(activeRowList[0].row);\n }\n return;\n }\n\n const validAreaSelection = activeRowList.filter(\n ({ row, rowIndex }) =>\n !getRowSelectDisabledData({\n row,\n rowIndex,\n col: selectColumn.value,\n colIndex: undefined,\n }).disabled,\n );\n if (!validAreaSelection.length) return;\n\n const areaSelectionKeys = validAreaSelection.map(({ row }) => get(row, props.rowKey));\n const intersectionKeys = intersection(tSelectedRowKeys.value, areaSelectionKeys);\n const toCheck = intersectionKeys.length !== areaSelectionKeys.length;\n const clearedKeys = tSelectedRowKeys.value.filter((key) => !areaSelectionKeys.includes(key));\n const newSelectedRowKeys = toCheck ? [...new Set(tSelectedRowKeys.value.concat(areaSelectionKeys))] : clearedKeys;\n\n const currentRowData = action === 'space-one-selection' ? activeRowList[0].row : undefined;\n setTSelectedRowKeys(newSelectedRowKeys, {\n selectedRowData: activeRowList,\n currentRowKey: get(currentRowData, props.rowKey),\n currentRowData,\n type: toCheck ? 'check' : 'uncheck',\n });\n };\n\n return {\n selectColumn,\n showRowSelect,\n selectedRowClassNames,\n currentPaginateData,\n setTSelectedRowKeys,\n formatToRowSelectColumn,\n onInnerSelectRowClick,\n handleRowSelectWithAreaSelection,\n };\n}\n","import { computed, defineComponent, PropType } from 'vue';\nimport { ChevronDownIcon as TdChevronDownIcon } from 'tdesign-icons-vue-next';\nimport useClassName from './hooks/useClassName';\nimport { SortType } from './type';\nimport Tooltip, { TooltipProps } from '../tooltip';\nimport { useConfig, useGlobalIcon, useTNodeDefault } from '@tdesign/hooks';\n\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 { isArray, isFunction } from 'lodash-es';\nimport { SortInfo, TdPrimaryTableProps, PrimaryTableCol, TableRowData } from '../type';\nimport SorterButton from '../sorter-button';\nimport { useDefaultValue } from '@tdesign/hooks';\n\nexport type SortMap = Record;\n\nexport default function useSorter(props: TdPrimaryTableProps, { slots }: SetupContext) {\n const { sort, data } = toRefs(props);\n const originalData = ref();\n const [tSortInfo, setTSortInfo] = useDefaultValue(sort, props.defaultSort, props.onSortChange, 'sort');\n const [tData, setTData] = useDefaultValue(data, [], props.onDataChange, 'data');\n // 本地数据排序:用于记录哪些字段是自定义排序函数\n const sorterFuncMap = computed(() => getSorterFuncMap(props.columns));\n const innerSort = ref();\n\n const sortArray = computed>(() => {\n const sort = tSortInfo.value;\n if (!sort) return [];\n return isArray(sort) ? sort : [sort];\n });\n\n const sortMap = computed(() => {\n const sortMap: Record = {};\n sortArray.value.forEach((info, index) => {\n const { sortBy } = info;\n sortMap[sortBy] = { index, ...info };\n });\n return sortMap;\n });\n\n function getSorterFuncMap(columns: PrimaryTableCol[], map: { [key: string]: Function } = {}) {\n for (let i = 0, len = columns.length; i < len; i++) {\n const col = columns[i];\n if (isFunction(col.sorter)) {\n // eslint-disable-next-line no-param-reassign\n map[col.colKey] = col.sorter;\n }\n // 多级表头中的排序功能\n if (col.children?.length) {\n getSorterFuncMap(col.children, map);\n }\n }\n return map;\n }\n\n function handleDataSort(sortInfo: SortInfo | Array) {\n const sort = sortInfo;\n if (!Object.keys(sorterFuncMap.value).length) return;\n if (!originalData.value) {\n originalData.value = tData.value;\n }\n const isEmptyArraySort = !sort || (sort instanceof Array && !sort.length);\n const isEmptyObjectSort = !(sort instanceof Array) && !sort?.sortBy;\n if (isEmptyArraySort || isEmptyObjectSort) {\n setTData(originalData.value, { trigger: 'sort' });\n return originalData.value;\n }\n const formatedSort = sort instanceof Array ? sort : [sort];\n // data 为受控属性,data.slice() 浅拷贝,防止 sort 导致原数据变异\n const newData: TableRowData[] = tData.value.slice().sort((a: TableRowData, b: TableRowData) => {\n let sortResult = 0;\n for (let i = 0, len = formatedSort.length; i < len; i++) {\n const item = formatedSort[i];\n const sortFunc = sorterFuncMap.value[item.sortBy];\n // 上一个排序字段值相同时才会进行下一个字段的大小对比\n if (sortResult === 0 && sortFunc) {\n sortResult = item.descending ? sortFunc(b, a) : sortFunc(a, b);\n } else {\n break;\n }\n }\n return sortResult;\n });\n // Data 变化返回的是数据引用,为避免死循环,特此检测排序数据前后是否相同,如果相同则不再触发事件\n if (JSON.stringify(newData) === JSON.stringify(tData.value)) return;\n setTData(newData, { trigger: 'sort' });\n return newData;\n }\n\n function handleSortHeaderClick(col: PrimaryTableCol, p: { descending: boolean }) {\n let sortInfo: SortInfo | Array;\n if (props.multipleSort) {\n sortInfo = getMultipleNextSort(col, p);\n } else {\n // 如果此次调用之前开启了multipleSort,tSortInfo可能为数组,尝试取数组中第一个排序字段的参数\n const sort = tSortInfo.value instanceof Array ? tSortInfo.value[0] : tSortInfo.value;\n sortInfo = getSingleNextSort(col, sort, p);\n }\n // 本地数据 data 排序,需同时抛出 data-change\n const newData = handleDataSort(sortInfo);\n const currentData = newData || tData.value;\n const currentDataSource = currentData;\n setTSortInfo(sortInfo, { currentDataSource, col });\n props.onChange?.({ sorter: sortInfo }, { currentData, trigger: 'sorter' });\n innerSort.value = sortInfo;\n }\n\n function getSortOrder(descending: boolean) {\n if (descending === undefined) return;\n return descending ? 'desc' : 'asc';\n }\n\n // 点击新排序字段,则默认按照降序排序;点击原字段,则排序字段不变仅切换排序方式\n function getSingleNextSort(col: PrimaryTableCol, sortInfo: SortInfo, p: { descending: boolean }): SortInfo {\n // 排序字段和排序方式均相同,则取消排序\n if (sortInfo && sortInfo.sortBy === col.colKey && sortInfo.descending === p.descending) {\n return undefined;\n }\n return { sortBy: col.colKey, descending: p.descending };\n }\n\n function getMultipleNextSort(col: PrimaryTableCol, p: { descending: boolean }): Array {\n // 如tSortInfo不是数组,判断是否存在,如存在作为第一个排序字段(保留之前未开启multipleSort时的字段),否则初始化为空数组\n if (!Array.isArray(tSortInfo.value)) {\n tSortInfo.value = tSortInfo.value ? [tSortInfo.value] : [];\n }\n const sort = tSortInfo.value;\n const { colKey } = col;\n const result = [...sort];\n for (let i = 0, len = sort.length; i < len; i++) {\n if (sort[i].sortBy === colKey) {\n const next = getSingleNextSort(col, sort[i], p);\n next ? (result[i] = next) : result.splice(i, 1);\n return result;\n }\n }\n result.push({ sortBy: colKey, descending: p.descending });\n return result;\n }\n\n function renderSortIcon({ col }: { col: PrimaryTableCol; colIndex: number }) {\n if (!col.sorter) return null;\n const sorterButtonsProps = {\n sortType: col.sortType,\n sortOrder: getSortOrder(sortMap.value[col.colKey]?.descending),\n sortIcon: props.sortIcon,\n hideSortTips: props.hideSortTips,\n locale: props.locale,\n };\n return (\n handleSortHeaderClick(col, p)}\n />\n );\n }\n\n const isSortInfoSame = (a: SortInfo | SortInfo[], b: SortInfo | SortInfo[]) => {\n const tmpSortInfo = isArray(a) ? a : [a];\n const tmpInnerSortInfo = isArray(b) ? b : [b];\n if (tmpSortInfo.length && !b) return false;\n // eslint-disable-next-line\n for (let i = 0, len = tmpSortInfo.length; i < len; i++) {\n const item = tmpSortInfo[i];\n const result = tmpInnerSortInfo.find((t) => t.sortBy === item.sortBy);\n if (!result) return false;\n return item.descending === result.descending;\n }\n };\n\n /**\n * 如果外部的排序不为空,且和内部排序字段不同,说明传入的 sortInfo 和 data 可能存在不一致,\n * 此时,需要在组件内部进行排序,并输出事件\n */\n watch(\n () => [tSortInfo, props.data],\n () => {\n if (!tSortInfo.value || !Object.keys(tSortInfo.value).length || !tData.value.length) return;\n // isSortInfoSame 的两个参数顺序不可变\n if (!isSortInfoSame(tSortInfo.value, innerSort.value)) {\n handleDataSort(tSortInfo.value);\n }\n },\n { immediate: true },\n );\n\n return {\n renderSortIcon,\n };\n}\n","import { defineComponent, PropType, ref, h } from 'vue';\nimport { FilterIcon as TdFilterIcon } from 'tdesign-icons-vue-next';\nimport { isEmpty, isFunction } from 'lodash-es';\nimport Popup, { PopupProps } from '../popup';\nimport { CheckboxGroup } from '../checkbox';\nimport { RadioGroup } from '../radio';\nimport Input from '../input';\nimport TButton from '../button';\nimport { useConfig, useGlobalIcon, useTNodeDefault } from '@tdesign/hooks';\nimport { PrimaryTableCol, FilterValue, TdPrimaryTableProps } from './type';\n\nimport { AttachNode } from '../common';\n\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 { useConfig, useDefaultValue, useTNodeDefault } from '@tdesign/hooks';\n\nimport TableFilterController from '../filter-controller';\n\nimport { isFunction } from 'lodash-es';\nimport { getColumnsResetValue } from '@tdesign/common-js/table/utils';\nimport { renderTitle } from './useTableHeader';\n\nfunction isFilterValueExist(value: any) {\n const isArrayTrue = value instanceof Array && value.length;\n const isObject = typeof value === 'object' && !(value instanceof Array);\n const isObjectTrue = value !== null && isObject && Object.keys(value).length;\n return isArrayTrue || isObjectTrue || !['null', '', 'undefined'].includes(String(value));\n}\n\n// 筛选条件不为空,才需要显示筛选结果行\nfunction filterEmptyData(data: FilterValue) {\n const newFilterValue: FilterValue = {};\n Object.keys(data).forEach((key) => {\n const item = data[key];\n if (isFilterValueExist(item)) {\n newFilterValue[key] = item;\n }\n });\n return newFilterValue;\n}\n\nexport default function useFilter(props: TdPrimaryTableProps, context: SetupContext) {\n const primaryTableRef = ref(null);\n const { t, globalConfig } = useConfig('table', props.locale);\n const renderTNode = useTNodeDefault();\n const { filterValue, columns } = toRefs(props);\n const { tableFilterClasses, isFocusClass } = useClassName();\n const isTableOverflowHidden = ref();\n\n // unControl and control\n const [tFilterValue, setTFilterValue] = useDefaultValue(\n filterValue,\n props.defaultFilterValue,\n props.onFilterChange,\n 'filterValue',\n );\n\n // 过滤内部值\n const innerFilterValue = ref(tFilterValue.value);\n\n const hasEmptyCondition = computed(() => {\n const filterEmpty = filterEmptyData(tFilterValue.value || {});\n return !tFilterValue.value || !Object.keys(filterEmpty).length;\n });\n\n watch([tFilterValue], ([val]) => {\n innerFilterValue.value = val;\n });\n\n function renderFirstFilterRow() {\n if (hasEmptyCondition.value) return null;\n const defaultNode = (\n
    \n \n {/* 搜索 “{getFilterResultContent()}”, */}\n {/* 找到 {props.pagination?.total || props.data?.length} 条结果 */}\n {t(globalConfig.value.searchResultText, {\n result: getFilterResultContent(),\n count: props.pagination?.total || props.data?.length,\n })}\n \n \n {globalConfig.value.clearFilterResultButtonText}\n \n
    \n );\n const filterContent = renderTNode('filterRow');\n if ((props.filterRow && !filterContent) || props.filterRow === null) return null;\n return
    {filterContent || defaultNode}
    ;\n }\n\n // 获取搜索条件内容,存在 options 需要获取其 label 显示\n function getFilterResultContent(): string {\n const arr: string[] = [];\n const columns: Array = [];\n getAllColumns(props.columns, columns);\n columns\n .filter((col) => col.filter)\n .forEach((col, index) => {\n let value = tFilterValue.value[col.colKey];\n if (col.filter.list && !['null'].includes(String(value))) {\n const formattedValue = value instanceof Array ? value : [value];\n const label: string[] = [];\n col.filter.list.forEach((option) => {\n if (formattedValue.includes(option.value)) {\n label.push(option.label);\n }\n });\n value = label.join();\n }\n if (isFilterValueExist(value)) {\n const label = isFunction(col.filter?.label) ? col.filter.label(h) : col.filter?.label;\n const title = renderTitle(context.slots, col, index);\n arr.push(`${label || title}:${value}`);\n }\n });\n return arr.join(';');\n }\n //递归拿到所有的 column\n function getAllColumns(col: Array, columns: Array) {\n col.forEach((column) => {\n if (column.children) {\n getAllColumns(column.children, columns);\n }\n columns.push(column);\n });\n }\n\n function onInnerFilterChange(val: any, column: PrimaryTableCol) {\n const filterValue = {\n ...innerFilterValue.value,\n [column.colKey]: val,\n };\n innerFilterValue.value = filterValue;\n if (!column.filter.showConfirmAndReset) {\n emitFilterChange(filterValue, 'filter-change', column);\n }\n }\n\n function emitFilterChange(\n filterValue: FilterValue,\n trigger: TableFilterChangeContext['trigger'],\n column?: PrimaryTableCol,\n ) {\n setTFilterValue(filterValue, { col: column, trigger });\n props.onChange?.({ filter: filterValue }, { trigger: 'filter' });\n }\n\n function onReset(column: PrimaryTableCol) {\n const filterValue: FilterValue = {\n ...tFilterValue.value,\n [column.colKey]:\n column.filter.resetValue ??\n {\n single: '',\n multiple: [],\n input: '',\n }[column.filter.type] ??\n '',\n };\n emitFilterChange(filterValue, 'reset', column);\n }\n\n function onResetAll() {\n const resetValue = getColumnsResetValue(columns.value);\n emitFilterChange(resetValue, 'clear', undefined);\n }\n\n function onConfirm(column: PrimaryTableCol) {\n emitFilterChange(innerFilterValue.value, 'confirm', column);\n }\n\n // 图标:内置图标,组件自定义图标,全局配置图标\n function renderFilterIcon({ col, colIndex }: { col: PrimaryTableCol; colIndex: number }) {\n return (\n \n );\n }\n\n function setFilterPrimaryTableRef(primaryTableElement: any) {\n primaryTableRef.value = primaryTableElement;\n }\n\n function onPopupVisibleChange(visible: boolean) {\n if (visible && !isTableOverflowHidden.value) {\n isTableOverflowHidden.value = !visible;\n }\n }\n\n return {\n hasEmptyCondition,\n isTableOverflowHidden,\n renderFilterIcon,\n renderFirstFilterRow,\n setFilterPrimaryTableRef,\n };\n}\n","/**!\n * Sortable 1.15.6\n * @author\tRubaXa \n * @author\towenm \n * @license MIT\n */\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n return _typeof(obj);\n}\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar version = \"1.15.6\";\n\nfunction userAgent(pattern) {\n if (typeof window !== 'undefined' && window.navigator) {\n return !! /*@__PURE__*/navigator.userAgent.match(pattern);\n }\n}\nvar IE11OrLess = userAgent(/(?:Trident.*rv[ :]?11\\.|msie|iemobile|Windows Phone)/i);\nvar Edge = userAgent(/Edge/i);\nvar FireFox = userAgent(/firefox/i);\nvar Safari = userAgent(/safari/i) && !userAgent(/chrome/i) && !userAgent(/android/i);\nvar IOS = userAgent(/iP(ad|od|hone)/i);\nvar ChromeForAndroid = userAgent(/chrome/i) && userAgent(/android/i);\n\nvar captureMode = {\n capture: false,\n passive: false\n};\nfunction on(el, event, fn) {\n el.addEventListener(event, fn, !IE11OrLess && captureMode);\n}\nfunction off(el, event, fn) {\n el.removeEventListener(event, fn, !IE11OrLess && captureMode);\n}\nfunction matches( /**HTMLElement*/el, /**String*/selector) {\n if (!selector) return;\n selector[0] === '>' && (selector = selector.substring(1));\n if (el) {\n try {\n if (el.matches) {\n return el.matches(selector);\n } else if (el.msMatchesSelector) {\n return el.msMatchesSelector(selector);\n } else if (el.webkitMatchesSelector) {\n return el.webkitMatchesSelector(selector);\n }\n } catch (_) {\n return false;\n }\n }\n return false;\n}\nfunction getParentOrHost(el) {\n return el.host && el !== document && el.host.nodeType ? el.host : el.parentNode;\n}\nfunction closest( /**HTMLElement*/el, /**String*/selector, /**HTMLElement*/ctx, includeCTX) {\n if (el) {\n ctx = ctx || document;\n do {\n if (selector != null && (selector[0] === '>' ? el.parentNode === ctx && matches(el, selector) : matches(el, selector)) || includeCTX && el === ctx) {\n return el;\n }\n if (el === ctx) break;\n /* jshint boss:true */\n } while (el = getParentOrHost(el));\n }\n return null;\n}\nvar R_SPACE = /\\s+/g;\nfunction toggleClass(el, name, state) {\n if (el && name) {\n if (el.classList) {\n el.classList[state ? 'add' : 'remove'](name);\n } else {\n var className = (' ' + el.className + ' ').replace(R_SPACE, ' ').replace(' ' + name + ' ', ' ');\n el.className = (className + (state ? ' ' + name : '')).replace(R_SPACE, ' ');\n }\n }\n}\nfunction css(el, prop, val) {\n var style = el && el.style;\n if (style) {\n if (val === void 0) {\n if (document.defaultView && document.defaultView.getComputedStyle) {\n val = document.defaultView.getComputedStyle(el, '');\n } else if (el.currentStyle) {\n val = el.currentStyle;\n }\n return prop === void 0 ? val : val[prop];\n } else {\n if (!(prop in style) && prop.indexOf('webkit') === -1) {\n prop = '-webkit-' + prop;\n }\n style[prop] = val + (typeof val === 'string' ? '' : 'px');\n }\n }\n}\nfunction matrix(el, selfOnly) {\n var appliedTransforms = '';\n if (typeof el === 'string') {\n appliedTransforms = el;\n } else {\n do {\n var transform = css(el, 'transform');\n if (transform && transform !== 'none') {\n appliedTransforms = transform + ' ' + appliedTransforms;\n }\n /* jshint boss:true */\n } while (!selfOnly && (el = el.parentNode));\n }\n var matrixFn = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix;\n /*jshint -W056 */\n return matrixFn && new matrixFn(appliedTransforms);\n}\nfunction find(ctx, tagName, iterator) {\n if (ctx) {\n var list = ctx.getElementsByTagName(tagName),\n i = 0,\n n = list.length;\n if (iterator) {\n for (; i < n; i++) {\n iterator(list[i], i);\n }\n }\n return list;\n }\n return [];\n}\nfunction getWindowScrollingElement() {\n var scrollingElement = document.scrollingElement;\n if (scrollingElement) {\n return scrollingElement;\n } else {\n return document.documentElement;\n }\n}\n\n/**\r\n * Returns the \"bounding client rect\" of given element\r\n * @param {HTMLElement} el The element whose boundingClientRect is wanted\r\n * @param {[Boolean]} relativeToContainingBlock Whether the rect should be relative to the containing block of (including) the container\r\n * @param {[Boolean]} relativeToNonStaticParent Whether the rect should be relative to the relative parent of (including) the contaienr\r\n * @param {[Boolean]} undoScale Whether the container's scale() should be undone\r\n * @param {[HTMLElement]} container The parent the element will be placed in\r\n * @return {Object} The boundingClientRect of el, with specified adjustments\r\n */\nfunction getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoScale, container) {\n if (!el.getBoundingClientRect && el !== window) return;\n var elRect, top, left, bottom, right, height, width;\n if (el !== window && el.parentNode && el !== getWindowScrollingElement()) {\n elRect = el.getBoundingClientRect();\n top = elRect.top;\n left = elRect.left;\n bottom = elRect.bottom;\n right = elRect.right;\n height = elRect.height;\n width = elRect.width;\n } else {\n top = 0;\n left = 0;\n bottom = window.innerHeight;\n right = window.innerWidth;\n height = window.innerHeight;\n width = window.innerWidth;\n }\n if ((relativeToContainingBlock || relativeToNonStaticParent) && el !== window) {\n // Adjust for translate()\n container = container || el.parentNode;\n\n // solves #1123 (see: https://stackoverflow.com/a/37953806/6088312)\n // Not needed on <= IE11\n if (!IE11OrLess) {\n do {\n if (container && container.getBoundingClientRect && (css(container, 'transform') !== 'none' || relativeToNonStaticParent && css(container, 'position') !== 'static')) {\n var containerRect = container.getBoundingClientRect();\n\n // Set relative to edges of padding box of container\n top -= containerRect.top + parseInt(css(container, 'border-top-width'));\n left -= containerRect.left + parseInt(css(container, 'border-left-width'));\n bottom = top + elRect.height;\n right = left + elRect.width;\n break;\n }\n /* jshint boss:true */\n } while (container = container.parentNode);\n }\n }\n if (undoScale && el !== window) {\n // Adjust for scale()\n var elMatrix = matrix(container || el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d;\n if (elMatrix) {\n top /= scaleY;\n left /= scaleX;\n width /= scaleX;\n height /= scaleY;\n bottom = top + height;\n right = left + width;\n }\n }\n return {\n top: top,\n left: left,\n bottom: bottom,\n right: right,\n width: width,\n height: height\n };\n}\n\n/**\r\n * Checks if a side of an element is scrolled past a side of its parents\r\n * @param {HTMLElement} el The element who's side being scrolled out of view is in question\r\n * @param {String} elSide Side of the element in question ('top', 'left', 'right', 'bottom')\r\n * @param {String} parentSide Side of the parent in question ('top', 'left', 'right', 'bottom')\r\n * @return {HTMLElement} The parent scroll element that the el's side is scrolled past, or null if there is no such element\r\n */\nfunction isScrolledPast(el, elSide, parentSide) {\n var parent = getParentAutoScrollElement(el, true),\n elSideVal = getRect(el)[elSide];\n\n /* jshint boss:true */\n while (parent) {\n var parentSideVal = getRect(parent)[parentSide],\n visible = void 0;\n if (parentSide === 'top' || parentSide === 'left') {\n visible = elSideVal >= parentSideVal;\n } else {\n visible = elSideVal <= parentSideVal;\n }\n if (!visible) return parent;\n if (parent === getWindowScrollingElement()) break;\n parent = getParentAutoScrollElement(parent, false);\n }\n return false;\n}\n\n/**\r\n * Gets nth child of el, ignoring hidden children, sortable's elements (does not ignore clone if it's visible)\r\n * and non-draggable elements\r\n * @param {HTMLElement} el The parent element\r\n * @param {Number} childNum The index of the child\r\n * @param {Object} options Parent Sortable's options\r\n * @return {HTMLElement} The child at index childNum, or null if not found\r\n */\nfunction getChild(el, childNum, options, includeDragEl) {\n var currentChild = 0,\n i = 0,\n children = el.children;\n while (i < children.length) {\n if (children[i].style.display !== 'none' && children[i] !== Sortable.ghost && (includeDragEl || children[i] !== Sortable.dragged) && closest(children[i], options.draggable, el, false)) {\n if (currentChild === childNum) {\n return children[i];\n }\n currentChild++;\n }\n i++;\n }\n return null;\n}\n\n/**\r\n * Gets the last child in the el, ignoring ghostEl or invisible elements (clones)\r\n * @param {HTMLElement} el Parent element\r\n * @param {selector} selector Any other elements that should be ignored\r\n * @return {HTMLElement} The last child, ignoring ghostEl\r\n */\nfunction lastChild(el, selector) {\n var last = el.lastElementChild;\n while (last && (last === Sortable.ghost || css(last, 'display') === 'none' || selector && !matches(last, selector))) {\n last = last.previousElementSibling;\n }\n return last || null;\n}\n\n/**\r\n * Returns the index of an element within its parent for a selected set of\r\n * elements\r\n * @param {HTMLElement} el\r\n * @param {selector} selector\r\n * @return {number}\r\n */\nfunction index(el, selector) {\n var index = 0;\n if (!el || !el.parentNode) {\n return -1;\n }\n\n /* jshint boss:true */\n while (el = el.previousElementSibling) {\n if (el.nodeName.toUpperCase() !== 'TEMPLATE' && el !== Sortable.clone && (!selector || matches(el, selector))) {\n index++;\n }\n }\n return index;\n}\n\n/**\r\n * Returns the scroll offset of the given element, added with all the scroll offsets of parent elements.\r\n * The value is returned in real pixels.\r\n * @param {HTMLElement} el\r\n * @return {Array} Offsets in the format of [left, top]\r\n */\nfunction getRelativeScrollOffset(el) {\n var offsetLeft = 0,\n offsetTop = 0,\n winScroller = getWindowScrollingElement();\n if (el) {\n do {\n var elMatrix = matrix(el),\n scaleX = elMatrix.a,\n scaleY = elMatrix.d;\n offsetLeft += el.scrollLeft * scaleX;\n offsetTop += el.scrollTop * scaleY;\n } while (el !== winScroller && (el = el.parentNode));\n }\n return [offsetLeft, offsetTop];\n}\n\n/**\r\n * Returns the index of the object within the given array\r\n * @param {Array} arr Array that may or may not hold the object\r\n * @param {Object} obj An object that has a key-value pair unique to and identical to a key-value pair in the object you want to find\r\n * @return {Number} The index of the object in the array, or -1\r\n */\nfunction indexOfObject(arr, obj) {\n for (var i in arr) {\n if (!arr.hasOwnProperty(i)) continue;\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && obj[key] === arr[i][key]) return Number(i);\n }\n }\n return -1;\n}\nfunction getParentAutoScrollElement(el, includeSelf) {\n // skip to window\n if (!el || !el.getBoundingClientRect) return getWindowScrollingElement();\n var elem = el;\n var gotSelf = false;\n do {\n // we don't need to get elem css if it isn't even overflowing in the first place (performance)\n if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) {\n var elemCSS = css(elem);\n if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == 'auto' || elemCSS.overflowX == 'scroll') || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == 'auto' || elemCSS.overflowY == 'scroll')) {\n if (!elem.getBoundingClientRect || elem === document.body) return getWindowScrollingElement();\n if (gotSelf || includeSelf) return elem;\n gotSelf = true;\n }\n }\n /* jshint boss:true */\n } while (elem = elem.parentNode);\n return getWindowScrollingElement();\n}\nfunction extend(dst, src) {\n if (dst && src) {\n for (var key in src) {\n if (src.hasOwnProperty(key)) {\n dst[key] = src[key];\n }\n }\n }\n return dst;\n}\nfunction isRectEqual(rect1, rect2) {\n return Math.round(rect1.top) === Math.round(rect2.top) && Math.round(rect1.left) === Math.round(rect2.left) && Math.round(rect1.height) === Math.round(rect2.height) && Math.round(rect1.width) === Math.round(rect2.width);\n}\nvar _throttleTimeout;\nfunction throttle(callback, ms) {\n return function () {\n if (!_throttleTimeout) {\n var args = arguments,\n _this = this;\n if (args.length === 1) {\n callback.call(_this, args[0]);\n } else {\n callback.apply(_this, args);\n }\n _throttleTimeout = setTimeout(function () {\n _throttleTimeout = void 0;\n }, ms);\n }\n };\n}\nfunction cancelThrottle() {\n clearTimeout(_throttleTimeout);\n _throttleTimeout = void 0;\n}\nfunction scrollBy(el, x, y) {\n el.scrollLeft += x;\n el.scrollTop += y;\n}\nfunction clone(el) {\n var Polymer = window.Polymer;\n var $ = window.jQuery || window.Zepto;\n if (Polymer && Polymer.dom) {\n return Polymer.dom(el).cloneNode(true);\n } else if ($) {\n return $(el).clone(true)[0];\n } else {\n return el.cloneNode(true);\n }\n}\nfunction setRect(el, rect) {\n css(el, 'position', 'absolute');\n css(el, 'top', rect.top);\n css(el, 'left', rect.left);\n css(el, 'width', rect.width);\n css(el, 'height', rect.height);\n}\nfunction unsetRect(el) {\n css(el, 'position', '');\n css(el, 'top', '');\n css(el, 'left', '');\n css(el, 'width', '');\n css(el, 'height', '');\n}\nfunction getChildContainingRectFromElement(container, options, ghostEl) {\n var rect = {};\n Array.from(container.children).forEach(function (child) {\n var _rect$left, _rect$top, _rect$right, _rect$bottom;\n if (!closest(child, options.draggable, container, false) || child.animated || child === ghostEl) return;\n var childRect = getRect(child);\n rect.left = Math.min((_rect$left = rect.left) !== null && _rect$left !== void 0 ? _rect$left : Infinity, childRect.left);\n rect.top = Math.min((_rect$top = rect.top) !== null && _rect$top !== void 0 ? _rect$top : Infinity, childRect.top);\n rect.right = Math.max((_rect$right = rect.right) !== null && _rect$right !== void 0 ? _rect$right : -Infinity, childRect.right);\n rect.bottom = Math.max((_rect$bottom = rect.bottom) !== null && _rect$bottom !== void 0 ? _rect$bottom : -Infinity, childRect.bottom);\n });\n rect.width = rect.right - rect.left;\n rect.height = rect.bottom - rect.top;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\nvar expando = 'Sortable' + new Date().getTime();\n\nfunction AnimationStateManager() {\n var animationStates = [],\n animationCallbackId;\n return {\n captureAnimationState: function captureAnimationState() {\n animationStates = [];\n if (!this.options.animation) return;\n var children = [].slice.call(this.el.children);\n children.forEach(function (child) {\n if (css(child, 'display') === 'none' || child === Sortable.ghost) return;\n animationStates.push({\n target: child,\n rect: getRect(child)\n });\n var fromRect = _objectSpread2({}, animationStates[animationStates.length - 1].rect);\n\n // If animating: compensate for current animation\n if (child.thisAnimationDuration) {\n var childMatrix = matrix(child, true);\n if (childMatrix) {\n fromRect.top -= childMatrix.f;\n fromRect.left -= childMatrix.e;\n }\n }\n child.fromRect = fromRect;\n });\n },\n addAnimationState: function addAnimationState(state) {\n animationStates.push(state);\n },\n removeAnimationState: function removeAnimationState(target) {\n animationStates.splice(indexOfObject(animationStates, {\n target: target\n }), 1);\n },\n animateAll: function animateAll(callback) {\n var _this = this;\n if (!this.options.animation) {\n clearTimeout(animationCallbackId);\n if (typeof callback === 'function') callback();\n return;\n }\n var animating = false,\n animationTime = 0;\n animationStates.forEach(function (state) {\n var time = 0,\n target = state.target,\n fromRect = target.fromRect,\n toRect = getRect(target),\n prevFromRect = target.prevFromRect,\n prevToRect = target.prevToRect,\n animatingRect = state.rect,\n targetMatrix = matrix(target, true);\n if (targetMatrix) {\n // Compensate for current animation\n toRect.top -= targetMatrix.f;\n toRect.left -= targetMatrix.e;\n }\n target.toRect = toRect;\n if (target.thisAnimationDuration) {\n // Could also check if animatingRect is between fromRect and toRect\n if (isRectEqual(prevFromRect, toRect) && !isRectEqual(fromRect, toRect) &&\n // Make sure animatingRect is on line between toRect & fromRect\n (animatingRect.top - toRect.top) / (animatingRect.left - toRect.left) === (fromRect.top - toRect.top) / (fromRect.left - toRect.left)) {\n // If returning to same place as started from animation and on same axis\n time = calculateRealTime(animatingRect, prevFromRect, prevToRect, _this.options);\n }\n }\n\n // if fromRect != toRect: animate\n if (!isRectEqual(toRect, fromRect)) {\n target.prevFromRect = fromRect;\n target.prevToRect = toRect;\n if (!time) {\n time = _this.options.animation;\n }\n _this.animate(target, animatingRect, toRect, time);\n }\n if (time) {\n animating = true;\n animationTime = Math.max(animationTime, time);\n clearTimeout(target.animationResetTimer);\n target.animationResetTimer = setTimeout(function () {\n target.animationTime = 0;\n target.prevFromRect = null;\n target.fromRect = null;\n target.prevToRect = null;\n target.thisAnimationDuration = null;\n }, time);\n target.thisAnimationDuration = time;\n }\n });\n clearTimeout(animationCallbackId);\n if (!animating) {\n if (typeof callback === 'function') callback();\n } else {\n animationCallbackId = setTimeout(function () {\n if (typeof callback === 'function') callback();\n }, animationTime);\n }\n animationStates = [];\n },\n animate: function animate(target, currentRect, toRect, duration) {\n if (duration) {\n css(target, 'transition', '');\n css(target, 'transform', '');\n var elMatrix = matrix(this.el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d,\n translateX = (currentRect.left - toRect.left) / (scaleX || 1),\n translateY = (currentRect.top - toRect.top) / (scaleY || 1);\n target.animatingX = !!translateX;\n target.animatingY = !!translateY;\n css(target, 'transform', 'translate3d(' + translateX + 'px,' + translateY + 'px,0)');\n this.forRepaintDummy = repaint(target); // repaint\n\n css(target, 'transition', 'transform ' + duration + 'ms' + (this.options.easing ? ' ' + this.options.easing : ''));\n css(target, 'transform', 'translate3d(0,0,0)');\n typeof target.animated === 'number' && clearTimeout(target.animated);\n target.animated = setTimeout(function () {\n css(target, 'transition', '');\n css(target, 'transform', '');\n target.animated = false;\n target.animatingX = false;\n target.animatingY = false;\n }, duration);\n }\n }\n };\n}\nfunction repaint(target) {\n return target.offsetWidth;\n}\nfunction calculateRealTime(animatingRect, fromRect, toRect, options) {\n return Math.sqrt(Math.pow(fromRect.top - animatingRect.top, 2) + Math.pow(fromRect.left - animatingRect.left, 2)) / Math.sqrt(Math.pow(fromRect.top - toRect.top, 2) + Math.pow(fromRect.left - toRect.left, 2)) * options.animation;\n}\n\nvar plugins = [];\nvar defaults = {\n initializeByDefault: true\n};\nvar PluginManager = {\n mount: function mount(plugin) {\n // Set default static properties\n for (var option in defaults) {\n if (defaults.hasOwnProperty(option) && !(option in plugin)) {\n plugin[option] = defaults[option];\n }\n }\n plugins.forEach(function (p) {\n if (p.pluginName === plugin.pluginName) {\n throw \"Sortable: Cannot mount plugin \".concat(plugin.pluginName, \" more than once\");\n }\n });\n plugins.push(plugin);\n },\n pluginEvent: function pluginEvent(eventName, sortable, evt) {\n var _this = this;\n this.eventCanceled = false;\n evt.cancel = function () {\n _this.eventCanceled = true;\n };\n var eventNameGlobal = eventName + 'Global';\n plugins.forEach(function (plugin) {\n if (!sortable[plugin.pluginName]) return;\n // Fire global events if it exists in this sortable\n if (sortable[plugin.pluginName][eventNameGlobal]) {\n sortable[plugin.pluginName][eventNameGlobal](_objectSpread2({\n sortable: sortable\n }, evt));\n }\n\n // Only fire plugin event if plugin is enabled in this sortable,\n // and plugin has event defined\n if (sortable.options[plugin.pluginName] && sortable[plugin.pluginName][eventName]) {\n sortable[plugin.pluginName][eventName](_objectSpread2({\n sortable: sortable\n }, evt));\n }\n });\n },\n initializePlugins: function initializePlugins(sortable, el, defaults, options) {\n plugins.forEach(function (plugin) {\n var pluginName = plugin.pluginName;\n if (!sortable.options[pluginName] && !plugin.initializeByDefault) return;\n var initialized = new plugin(sortable, el, sortable.options);\n initialized.sortable = sortable;\n initialized.options = sortable.options;\n sortable[pluginName] = initialized;\n\n // Add default options from plugin\n _extends(defaults, initialized.defaults);\n });\n for (var option in sortable.options) {\n if (!sortable.options.hasOwnProperty(option)) continue;\n var modified = this.modifyOption(sortable, option, sortable.options[option]);\n if (typeof modified !== 'undefined') {\n sortable.options[option] = modified;\n }\n }\n },\n getEventProperties: function getEventProperties(name, sortable) {\n var eventProperties = {};\n plugins.forEach(function (plugin) {\n if (typeof plugin.eventProperties !== 'function') return;\n _extends(eventProperties, plugin.eventProperties.call(sortable[plugin.pluginName], name));\n });\n return eventProperties;\n },\n modifyOption: function modifyOption(sortable, name, value) {\n var modifiedValue;\n plugins.forEach(function (plugin) {\n // Plugin must exist on the Sortable\n if (!sortable[plugin.pluginName]) return;\n\n // If static option listener exists for this option, call in the context of the Sortable's instance of this plugin\n if (plugin.optionListeners && typeof plugin.optionListeners[name] === 'function') {\n modifiedValue = plugin.optionListeners[name].call(sortable[plugin.pluginName], value);\n }\n });\n return modifiedValue;\n }\n};\n\nfunction dispatchEvent(_ref) {\n var sortable = _ref.sortable,\n rootEl = _ref.rootEl,\n name = _ref.name,\n targetEl = _ref.targetEl,\n cloneEl = _ref.cloneEl,\n toEl = _ref.toEl,\n fromEl = _ref.fromEl,\n oldIndex = _ref.oldIndex,\n newIndex = _ref.newIndex,\n oldDraggableIndex = _ref.oldDraggableIndex,\n newDraggableIndex = _ref.newDraggableIndex,\n originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n extraEventProperties = _ref.extraEventProperties;\n sortable = sortable || rootEl && rootEl[expando];\n if (!sortable) return;\n var evt,\n options = sortable.options,\n onName = 'on' + name.charAt(0).toUpperCase() + name.substr(1);\n // Support for new CustomEvent feature\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent(name, {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent(name, true, true);\n }\n evt.to = toEl || rootEl;\n evt.from = fromEl || rootEl;\n evt.item = targetEl || rootEl;\n evt.clone = cloneEl;\n evt.oldIndex = oldIndex;\n evt.newIndex = newIndex;\n evt.oldDraggableIndex = oldDraggableIndex;\n evt.newDraggableIndex = newDraggableIndex;\n evt.originalEvent = originalEvent;\n evt.pullMode = putSortable ? putSortable.lastPutMode : undefined;\n var allEventProperties = _objectSpread2(_objectSpread2({}, extraEventProperties), PluginManager.getEventProperties(name, sortable));\n for (var option in allEventProperties) {\n evt[option] = allEventProperties[option];\n }\n if (rootEl) {\n rootEl.dispatchEvent(evt);\n }\n if (options[onName]) {\n options[onName].call(sortable, evt);\n }\n}\n\nvar _excluded = [\"evt\"];\nvar pluginEvent = function pluginEvent(eventName, sortable) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n originalEvent = _ref.evt,\n data = _objectWithoutProperties(_ref, _excluded);\n PluginManager.pluginEvent.bind(Sortable)(eventName, sortable, _objectSpread2({\n dragEl: dragEl,\n parentEl: parentEl,\n ghostEl: ghostEl,\n rootEl: rootEl,\n nextEl: nextEl,\n lastDownEl: lastDownEl,\n cloneEl: cloneEl,\n cloneHidden: cloneHidden,\n dragStarted: moved,\n putSortable: putSortable,\n activeSortable: Sortable.active,\n originalEvent: originalEvent,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n hideGhostForTarget: _hideGhostForTarget,\n unhideGhostForTarget: _unhideGhostForTarget,\n cloneNowHidden: function cloneNowHidden() {\n cloneHidden = true;\n },\n cloneNowShown: function cloneNowShown() {\n cloneHidden = false;\n },\n dispatchSortableEvent: function dispatchSortableEvent(name) {\n _dispatchEvent({\n sortable: sortable,\n name: name,\n originalEvent: originalEvent\n });\n }\n }, data));\n};\nfunction _dispatchEvent(info) {\n dispatchEvent(_objectSpread2({\n putSortable: putSortable,\n cloneEl: cloneEl,\n targetEl: dragEl,\n rootEl: rootEl,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex\n }, info));\n}\nvar dragEl,\n parentEl,\n ghostEl,\n rootEl,\n nextEl,\n lastDownEl,\n cloneEl,\n cloneHidden,\n oldIndex,\n newIndex,\n oldDraggableIndex,\n newDraggableIndex,\n activeGroup,\n putSortable,\n awaitingDragStarted = false,\n ignoreNextClick = false,\n sortables = [],\n tapEvt,\n touchEvt,\n lastDx,\n lastDy,\n tapDistanceLeft,\n tapDistanceTop,\n moved,\n lastTarget,\n lastDirection,\n pastFirstInvertThresh = false,\n isCircumstantialInvert = false,\n targetMoveDistance,\n // For positioning ghost absolutely\n ghostRelativeParent,\n ghostRelativeParentInitialScroll = [],\n // (left, top)\n\n _silent = false,\n savedInputChecked = [];\n\n/** @const */\nvar documentExists = typeof document !== 'undefined',\n PositionGhostAbsolutely = IOS,\n CSSFloatProperty = Edge || IE11OrLess ? 'cssFloat' : 'float',\n // This will not pass for IE9, because IE9 DnD only works on anchors\n supportDraggable = documentExists && !ChromeForAndroid && !IOS && 'draggable' in document.createElement('div'),\n supportCssPointerEvents = function () {\n if (!documentExists) return;\n // false when <= IE11\n if (IE11OrLess) {\n return false;\n }\n var el = document.createElement('x');\n el.style.cssText = 'pointer-events:auto';\n return el.style.pointerEvents === 'auto';\n }(),\n _detectDirection = function _detectDirection(el, options) {\n var elCSS = css(el),\n elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth),\n child1 = getChild(el, 0, options),\n child2 = getChild(el, 1, options),\n firstChildCSS = child1 && css(child1),\n secondChildCSS = child2 && css(child2),\n firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width,\n secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width;\n if (elCSS.display === 'flex') {\n return elCSS.flexDirection === 'column' || elCSS.flexDirection === 'column-reverse' ? 'vertical' : 'horizontal';\n }\n if (elCSS.display === 'grid') {\n return elCSS.gridTemplateColumns.split(' ').length <= 1 ? 'vertical' : 'horizontal';\n }\n if (child1 && firstChildCSS[\"float\"] && firstChildCSS[\"float\"] !== 'none') {\n var touchingSideChild2 = firstChildCSS[\"float\"] === 'left' ? 'left' : 'right';\n return child2 && (secondChildCSS.clear === 'both' || secondChildCSS.clear === touchingSideChild2) ? 'vertical' : 'horizontal';\n }\n return child1 && (firstChildCSS.display === 'block' || firstChildCSS.display === 'flex' || firstChildCSS.display === 'table' || firstChildCSS.display === 'grid' || firstChildWidth >= elWidth && elCSS[CSSFloatProperty] === 'none' || child2 && elCSS[CSSFloatProperty] === 'none' && firstChildWidth + secondChildWidth > elWidth) ? 'vertical' : 'horizontal';\n },\n _dragElInRowColumn = function _dragElInRowColumn(dragRect, targetRect, vertical) {\n var dragElS1Opp = vertical ? dragRect.left : dragRect.top,\n dragElS2Opp = vertical ? dragRect.right : dragRect.bottom,\n dragElOppLength = vertical ? dragRect.width : dragRect.height,\n targetS1Opp = vertical ? targetRect.left : targetRect.top,\n targetS2Opp = vertical ? targetRect.right : targetRect.bottom,\n targetOppLength = vertical ? targetRect.width : targetRect.height;\n return dragElS1Opp === targetS1Opp || dragElS2Opp === targetS2Opp || dragElS1Opp + dragElOppLength / 2 === targetS1Opp + targetOppLength / 2;\n },\n /**\r\n * Detects first nearest empty sortable to X and Y position using emptyInsertThreshold.\r\n * @param {Number} x X position\r\n * @param {Number} y Y position\r\n * @return {HTMLElement} Element of the first found nearest Sortable\r\n */\n _detectNearestEmptySortable = function _detectNearestEmptySortable(x, y) {\n var ret;\n sortables.some(function (sortable) {\n var threshold = sortable[expando].options.emptyInsertThreshold;\n if (!threshold || lastChild(sortable)) return;\n var rect = getRect(sortable),\n insideHorizontally = x >= rect.left - threshold && x <= rect.right + threshold,\n insideVertically = y >= rect.top - threshold && y <= rect.bottom + threshold;\n if (insideHorizontally && insideVertically) {\n return ret = sortable;\n }\n });\n return ret;\n },\n _prepareGroup = function _prepareGroup(options) {\n function toFn(value, pull) {\n return function (to, from, dragEl, evt) {\n var sameGroup = to.options.group.name && from.options.group.name && to.options.group.name === from.options.group.name;\n if (value == null && (pull || sameGroup)) {\n // Default pull value\n // Default pull and put value if same group\n return true;\n } else if (value == null || value === false) {\n return false;\n } else if (pull && value === 'clone') {\n return value;\n } else if (typeof value === 'function') {\n return toFn(value(to, from, dragEl, evt), pull)(to, from, dragEl, evt);\n } else {\n var otherGroup = (pull ? to : from).options.group.name;\n return value === true || typeof value === 'string' && value === otherGroup || value.join && value.indexOf(otherGroup) > -1;\n }\n };\n }\n var group = {};\n var originalGroup = options.group;\n if (!originalGroup || _typeof(originalGroup) != 'object') {\n originalGroup = {\n name: originalGroup\n };\n }\n group.name = originalGroup.name;\n group.checkPull = toFn(originalGroup.pull, true);\n group.checkPut = toFn(originalGroup.put);\n group.revertClone = originalGroup.revertClone;\n options.group = group;\n },\n _hideGhostForTarget = function _hideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', 'none');\n }\n },\n _unhideGhostForTarget = function _unhideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', '');\n }\n };\n\n// #1184 fix - Prevent click event on fallback if dragged but item not changed position\nif (documentExists && !ChromeForAndroid) {\n document.addEventListener('click', function (evt) {\n if (ignoreNextClick) {\n evt.preventDefault();\n evt.stopPropagation && evt.stopPropagation();\n evt.stopImmediatePropagation && evt.stopImmediatePropagation();\n ignoreNextClick = false;\n return false;\n }\n }, true);\n}\nvar nearestEmptyInsertDetectEvent = function nearestEmptyInsertDetectEvent(evt) {\n if (dragEl) {\n evt = evt.touches ? evt.touches[0] : evt;\n var nearest = _detectNearestEmptySortable(evt.clientX, evt.clientY);\n if (nearest) {\n // Create imitation event\n var event = {};\n for (var i in evt) {\n if (evt.hasOwnProperty(i)) {\n event[i] = evt[i];\n }\n }\n event.target = event.rootEl = nearest;\n event.preventDefault = void 0;\n event.stopPropagation = void 0;\n nearest[expando]._onDragOver(event);\n }\n }\n};\nvar _checkOutsideTargetEl = function _checkOutsideTargetEl(evt) {\n if (dragEl) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target);\n }\n};\n\n/**\r\n * @class Sortable\r\n * @param {HTMLElement} el\r\n * @param {Object} [options]\r\n */\nfunction Sortable(el, options) {\n if (!(el && el.nodeType && el.nodeType === 1)) {\n throw \"Sortable: `el` must be an HTMLElement, not \".concat({}.toString.call(el));\n }\n this.el = el; // root element\n this.options = options = _extends({}, options);\n\n // Export instance\n el[expando] = this;\n var defaults = {\n group: null,\n sort: true,\n disabled: false,\n store: null,\n handle: null,\n draggable: /^[uo]l$/i.test(el.nodeName) ? '>li' : '>*',\n swapThreshold: 1,\n // percentage; 0 <= x <= 1\n invertSwap: false,\n // invert always\n invertedSwapThreshold: null,\n // will be set to same as swapThreshold if default\n removeCloneOnHide: true,\n direction: function direction() {\n return _detectDirection(el, this.options);\n },\n ghostClass: 'sortable-ghost',\n chosenClass: 'sortable-chosen',\n dragClass: 'sortable-drag',\n ignore: 'a, img',\n filter: null,\n preventOnFilter: true,\n animation: 0,\n easing: null,\n setData: function setData(dataTransfer, dragEl) {\n dataTransfer.setData('Text', dragEl.textContent);\n },\n dropBubble: false,\n dragoverBubble: false,\n dataIdAttr: 'data-id',\n delay: 0,\n delayOnTouchOnly: false,\n touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1,\n forceFallback: false,\n fallbackClass: 'sortable-fallback',\n fallbackOnBody: false,\n fallbackTolerance: 0,\n fallbackOffset: {\n x: 0,\n y: 0\n },\n // Disabled on Safari: #1571; Enabled on Safari IOS: #2244\n supportPointer: Sortable.supportPointer !== false && 'PointerEvent' in window && (!Safari || IOS),\n emptyInsertThreshold: 5\n };\n PluginManager.initializePlugins(this, el, defaults);\n\n // Set default options\n for (var name in defaults) {\n !(name in options) && (options[name] = defaults[name]);\n }\n _prepareGroup(options);\n\n // Bind all private methods\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n\n // Setup drag mode\n this.nativeDraggable = options.forceFallback ? false : supportDraggable;\n if (this.nativeDraggable) {\n // Touch start threshold cannot be greater than the native dragstart threshold\n this.options.touchStartThreshold = 1;\n }\n\n // Bind events\n if (options.supportPointer) {\n on(el, 'pointerdown', this._onTapStart);\n } else {\n on(el, 'mousedown', this._onTapStart);\n on(el, 'touchstart', this._onTapStart);\n }\n if (this.nativeDraggable) {\n on(el, 'dragover', this);\n on(el, 'dragenter', this);\n }\n sortables.push(this.el);\n\n // Restore sorting\n options.store && options.store.get && this.sort(options.store.get(this) || []);\n\n // Add animation state manager\n _extends(this, AnimationStateManager());\n}\nSortable.prototype = /** @lends Sortable.prototype */{\n constructor: Sortable,\n _isOutsideThisEl: function _isOutsideThisEl(target) {\n if (!this.el.contains(target) && target !== this.el) {\n lastTarget = null;\n }\n },\n _getDirection: function _getDirection(evt, target) {\n return typeof this.options.direction === 'function' ? this.options.direction.call(this, evt, target, dragEl) : this.options.direction;\n },\n _onTapStart: function _onTapStart( /** Event|TouchEvent */evt) {\n if (!evt.cancelable) return;\n var _this = this,\n el = this.el,\n options = this.options,\n preventOnFilter = options.preventOnFilter,\n type = evt.type,\n touch = evt.touches && evt.touches[0] || evt.pointerType && evt.pointerType === 'touch' && evt,\n target = (touch || evt).target,\n originalTarget = evt.target.shadowRoot && (evt.path && evt.path[0] || evt.composedPath && evt.composedPath()[0]) || target,\n filter = options.filter;\n _saveInputCheckedState(el);\n\n // Don't trigger start event when an element is been dragged, otherwise the evt.oldindex always wrong when set option.group.\n if (dragEl) {\n return;\n }\n if (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) {\n return; // only left button and enabled\n }\n\n // cancel dnd if original target is content editable\n if (originalTarget.isContentEditable) {\n return;\n }\n\n // Safari ignores further event handling after mousedown\n if (!this.nativeDraggable && Safari && target && target.tagName.toUpperCase() === 'SELECT') {\n return;\n }\n target = closest(target, options.draggable, el, false);\n if (target && target.animated) {\n return;\n }\n if (lastDownEl === target) {\n // Ignoring duplicate `down`\n return;\n }\n\n // Get the index of the dragged element within its parent\n oldIndex = index(target);\n oldDraggableIndex = index(target, options.draggable);\n\n // Check filter\n if (typeof filter === 'function') {\n if (filter.call(this, evt, target, this)) {\n _dispatchEvent({\n sortable: _this,\n rootEl: originalTarget,\n name: 'filter',\n targetEl: target,\n toEl: el,\n fromEl: el\n });\n pluginEvent('filter', _this, {\n evt: evt\n });\n preventOnFilter && evt.preventDefault();\n return; // cancel dnd\n }\n } else if (filter) {\n filter = filter.split(',').some(function (criteria) {\n criteria = closest(originalTarget, criteria.trim(), el, false);\n if (criteria) {\n _dispatchEvent({\n sortable: _this,\n rootEl: criteria,\n name: 'filter',\n targetEl: target,\n fromEl: el,\n toEl: el\n });\n pluginEvent('filter', _this, {\n evt: evt\n });\n return true;\n }\n });\n if (filter) {\n preventOnFilter && evt.preventDefault();\n return; // cancel dnd\n }\n }\n if (options.handle && !closest(originalTarget, options.handle, el, false)) {\n return;\n }\n\n // Prepare `dragstart`\n this._prepareDragStart(evt, touch, target);\n },\n _prepareDragStart: function _prepareDragStart( /** Event */evt, /** Touch */touch, /** HTMLElement */target) {\n var _this = this,\n el = _this.el,\n options = _this.options,\n ownerDocument = el.ownerDocument,\n dragStartFn;\n if (target && !dragEl && target.parentNode === el) {\n var dragRect = getRect(target);\n rootEl = el;\n dragEl = target;\n parentEl = dragEl.parentNode;\n nextEl = dragEl.nextSibling;\n lastDownEl = target;\n activeGroup = options.group;\n Sortable.dragged = dragEl;\n tapEvt = {\n target: dragEl,\n clientX: (touch || evt).clientX,\n clientY: (touch || evt).clientY\n };\n tapDistanceLeft = tapEvt.clientX - dragRect.left;\n tapDistanceTop = tapEvt.clientY - dragRect.top;\n this._lastX = (touch || evt).clientX;\n this._lastY = (touch || evt).clientY;\n dragEl.style['will-change'] = 'all';\n dragStartFn = function dragStartFn() {\n pluginEvent('delayEnded', _this, {\n evt: evt\n });\n if (Sortable.eventCanceled) {\n _this._onDrop();\n return;\n }\n // Delayed drag has been triggered\n // we can re-enable the events: touchmove/mousemove\n _this._disableDelayedDragEvents();\n if (!FireFox && _this.nativeDraggable) {\n dragEl.draggable = true;\n }\n\n // Bind the events: dragstart/dragend\n _this._triggerDragStart(evt, touch);\n\n // Drag start event\n _dispatchEvent({\n sortable: _this,\n name: 'choose',\n originalEvent: evt\n });\n\n // Chosen item\n toggleClass(dragEl, options.chosenClass, true);\n };\n\n // Disable \"draggable\"\n options.ignore.split(',').forEach(function (criteria) {\n find(dragEl, criteria.trim(), _disableDraggable);\n });\n on(ownerDocument, 'dragover', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mousemove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'touchmove', nearestEmptyInsertDetectEvent);\n if (options.supportPointer) {\n on(ownerDocument, 'pointerup', _this._onDrop);\n // Native D&D triggers pointercancel\n !this.nativeDraggable && on(ownerDocument, 'pointercancel', _this._onDrop);\n } else {\n on(ownerDocument, 'mouseup', _this._onDrop);\n on(ownerDocument, 'touchend', _this._onDrop);\n on(ownerDocument, 'touchcancel', _this._onDrop);\n }\n\n // Make dragEl draggable (must be before delay for FireFox)\n if (FireFox && this.nativeDraggable) {\n this.options.touchStartThreshold = 4;\n dragEl.draggable = true;\n }\n pluginEvent('delayStart', this, {\n evt: evt\n });\n\n // Delay is impossible for native DnD in Edge or IE\n if (options.delay && (!options.delayOnTouchOnly || touch) && (!this.nativeDraggable || !(Edge || IE11OrLess))) {\n if (Sortable.eventCanceled) {\n this._onDrop();\n return;\n }\n // If the user moves the pointer or let go the click or touch\n // before the delay has been reached:\n // disable the delayed drag\n if (options.supportPointer) {\n on(ownerDocument, 'pointerup', _this._disableDelayedDrag);\n on(ownerDocument, 'pointercancel', _this._disableDelayedDrag);\n } else {\n on(ownerDocument, 'mouseup', _this._disableDelayedDrag);\n on(ownerDocument, 'touchend', _this._disableDelayedDrag);\n on(ownerDocument, 'touchcancel', _this._disableDelayedDrag);\n }\n on(ownerDocument, 'mousemove', _this._delayedDragTouchMoveHandler);\n on(ownerDocument, 'touchmove', _this._delayedDragTouchMoveHandler);\n options.supportPointer && on(ownerDocument, 'pointermove', _this._delayedDragTouchMoveHandler);\n _this._dragStartTimer = setTimeout(dragStartFn, options.delay);\n } else {\n dragStartFn();\n }\n }\n },\n _delayedDragTouchMoveHandler: function _delayedDragTouchMoveHandler( /** TouchEvent|PointerEvent **/e) {\n var touch = e.touches ? e.touches[0] : e;\n if (Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1))) {\n this._disableDelayedDrag();\n }\n },\n _disableDelayedDrag: function _disableDelayedDrag() {\n dragEl && _disableDraggable(dragEl);\n clearTimeout(this._dragStartTimer);\n this._disableDelayedDragEvents();\n },\n _disableDelayedDragEvents: function _disableDelayedDragEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._disableDelayedDrag);\n off(ownerDocument, 'touchend', this._disableDelayedDrag);\n off(ownerDocument, 'touchcancel', this._disableDelayedDrag);\n off(ownerDocument, 'pointerup', this._disableDelayedDrag);\n off(ownerDocument, 'pointercancel', this._disableDelayedDrag);\n off(ownerDocument, 'mousemove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'touchmove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'pointermove', this._delayedDragTouchMoveHandler);\n },\n _triggerDragStart: function _triggerDragStart( /** Event */evt, /** Touch */touch) {\n touch = touch || evt.pointerType == 'touch' && evt;\n if (!this.nativeDraggable || touch) {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._onTouchMove);\n } else if (touch) {\n on(document, 'touchmove', this._onTouchMove);\n } else {\n on(document, 'mousemove', this._onTouchMove);\n }\n } else {\n on(dragEl, 'dragend', this);\n on(rootEl, 'dragstart', this._onDragStart);\n }\n try {\n if (document.selection) {\n _nextTick(function () {\n document.selection.empty();\n });\n } else {\n window.getSelection().removeAllRanges();\n }\n } catch (err) {}\n },\n _dragStarted: function _dragStarted(fallback, evt) {\n awaitingDragStarted = false;\n if (rootEl && dragEl) {\n pluginEvent('dragStarted', this, {\n evt: evt\n });\n if (this.nativeDraggable) {\n on(document, 'dragover', _checkOutsideTargetEl);\n }\n var options = this.options;\n\n // Apply effect\n !fallback && toggleClass(dragEl, options.dragClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n Sortable.active = this;\n fallback && this._appendGhost();\n\n // Drag start event\n _dispatchEvent({\n sortable: this,\n name: 'start',\n originalEvent: evt\n });\n } else {\n this._nulling();\n }\n },\n _emulateDragOver: function _emulateDragOver() {\n if (touchEvt) {\n this._lastX = touchEvt.clientX;\n this._lastY = touchEvt.clientY;\n _hideGhostForTarget();\n var target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n var parent = target;\n while (target && target.shadowRoot) {\n target = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n if (target === parent) break;\n parent = target;\n }\n dragEl.parentNode[expando]._isOutsideThisEl(target);\n if (parent) {\n do {\n if (parent[expando]) {\n var inserted = void 0;\n inserted = parent[expando]._onDragOver({\n clientX: touchEvt.clientX,\n clientY: touchEvt.clientY,\n target: target,\n rootEl: parent\n });\n if (inserted && !this.options.dragoverBubble) {\n break;\n }\n }\n target = parent; // store last element\n }\n /* jshint boss:true */ while (parent = getParentOrHost(parent));\n }\n _unhideGhostForTarget();\n }\n },\n _onTouchMove: function _onTouchMove( /**TouchEvent*/evt) {\n if (tapEvt) {\n var options = this.options,\n fallbackTolerance = options.fallbackTolerance,\n fallbackOffset = options.fallbackOffset,\n touch = evt.touches ? evt.touches[0] : evt,\n ghostMatrix = ghostEl && matrix(ghostEl, true),\n scaleX = ghostEl && ghostMatrix && ghostMatrix.a,\n scaleY = ghostEl && ghostMatrix && ghostMatrix.d,\n relativeScrollOffset = PositionGhostAbsolutely && ghostRelativeParent && getRelativeScrollOffset(ghostRelativeParent),\n dx = (touch.clientX - tapEvt.clientX + fallbackOffset.x) / (scaleX || 1) + (relativeScrollOffset ? relativeScrollOffset[0] - ghostRelativeParentInitialScroll[0] : 0) / (scaleX || 1),\n dy = (touch.clientY - tapEvt.clientY + fallbackOffset.y) / (scaleY || 1) + (relativeScrollOffset ? relativeScrollOffset[1] - ghostRelativeParentInitialScroll[1] : 0) / (scaleY || 1);\n\n // only set the status to dragging, when we are actually dragging\n if (!Sortable.active && !awaitingDragStarted) {\n if (fallbackTolerance && Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) < fallbackTolerance) {\n return;\n }\n this._onDragStart(evt, true);\n }\n if (ghostEl) {\n if (ghostMatrix) {\n ghostMatrix.e += dx - (lastDx || 0);\n ghostMatrix.f += dy - (lastDy || 0);\n } else {\n ghostMatrix = {\n a: 1,\n b: 0,\n c: 0,\n d: 1,\n e: dx,\n f: dy\n };\n }\n var cssMatrix = \"matrix(\".concat(ghostMatrix.a, \",\").concat(ghostMatrix.b, \",\").concat(ghostMatrix.c, \",\").concat(ghostMatrix.d, \",\").concat(ghostMatrix.e, \",\").concat(ghostMatrix.f, \")\");\n css(ghostEl, 'webkitTransform', cssMatrix);\n css(ghostEl, 'mozTransform', cssMatrix);\n css(ghostEl, 'msTransform', cssMatrix);\n css(ghostEl, 'transform', cssMatrix);\n lastDx = dx;\n lastDy = dy;\n touchEvt = touch;\n }\n evt.cancelable && evt.preventDefault();\n }\n },\n _appendGhost: function _appendGhost() {\n // Bug if using scale(): https://stackoverflow.com/questions/2637058\n // Not being adjusted for\n if (!ghostEl) {\n var container = this.options.fallbackOnBody ? document.body : rootEl,\n rect = getRect(dragEl, true, PositionGhostAbsolutely, true, container),\n options = this.options;\n\n // Position absolutely\n if (PositionGhostAbsolutely) {\n // Get relatively positioned parent\n ghostRelativeParent = container;\n while (css(ghostRelativeParent, 'position') === 'static' && css(ghostRelativeParent, 'transform') === 'none' && ghostRelativeParent !== document) {\n ghostRelativeParent = ghostRelativeParent.parentNode;\n }\n if (ghostRelativeParent !== document.body && ghostRelativeParent !== document.documentElement) {\n if (ghostRelativeParent === document) ghostRelativeParent = getWindowScrollingElement();\n rect.top += ghostRelativeParent.scrollTop;\n rect.left += ghostRelativeParent.scrollLeft;\n } else {\n ghostRelativeParent = getWindowScrollingElement();\n }\n ghostRelativeParentInitialScroll = getRelativeScrollOffset(ghostRelativeParent);\n }\n ghostEl = dragEl.cloneNode(true);\n toggleClass(ghostEl, options.ghostClass, false);\n toggleClass(ghostEl, options.fallbackClass, true);\n toggleClass(ghostEl, options.dragClass, true);\n css(ghostEl, 'transition', '');\n css(ghostEl, 'transform', '');\n css(ghostEl, 'box-sizing', 'border-box');\n css(ghostEl, 'margin', 0);\n css(ghostEl, 'top', rect.top);\n css(ghostEl, 'left', rect.left);\n css(ghostEl, 'width', rect.width);\n css(ghostEl, 'height', rect.height);\n css(ghostEl, 'opacity', '0.8');\n css(ghostEl, 'position', PositionGhostAbsolutely ? 'absolute' : 'fixed');\n css(ghostEl, 'zIndex', '100000');\n css(ghostEl, 'pointerEvents', 'none');\n Sortable.ghost = ghostEl;\n container.appendChild(ghostEl);\n\n // Set transform-origin\n css(ghostEl, 'transform-origin', tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + '% ' + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + '%');\n }\n },\n _onDragStart: function _onDragStart( /**Event*/evt, /**boolean*/fallback) {\n var _this = this;\n var dataTransfer = evt.dataTransfer;\n var options = _this.options;\n pluginEvent('dragStart', this, {\n evt: evt\n });\n if (Sortable.eventCanceled) {\n this._onDrop();\n return;\n }\n pluginEvent('setupClone', this);\n if (!Sortable.eventCanceled) {\n cloneEl = clone(dragEl);\n cloneEl.removeAttribute(\"id\");\n cloneEl.draggable = false;\n cloneEl.style['will-change'] = '';\n this._hideClone();\n toggleClass(cloneEl, this.options.chosenClass, false);\n Sortable.clone = cloneEl;\n }\n\n // #1143: IFrame support workaround\n _this.cloneId = _nextTick(function () {\n pluginEvent('clone', _this);\n if (Sortable.eventCanceled) return;\n if (!_this.options.removeCloneOnHide) {\n rootEl.insertBefore(cloneEl, dragEl);\n }\n _this._hideClone();\n _dispatchEvent({\n sortable: _this,\n name: 'clone'\n });\n });\n !fallback && toggleClass(dragEl, options.dragClass, true);\n\n // Set proper drop events\n if (fallback) {\n ignoreNextClick = true;\n _this._loopId = setInterval(_this._emulateDragOver, 50);\n } else {\n // Undo what was set in _prepareDragStart before drag started\n off(document, 'mouseup', _this._onDrop);\n off(document, 'touchend', _this._onDrop);\n off(document, 'touchcancel', _this._onDrop);\n if (dataTransfer) {\n dataTransfer.effectAllowed = 'move';\n options.setData && options.setData.call(_this, dataTransfer, dragEl);\n }\n on(document, 'drop', _this);\n\n // #1276 fix:\n css(dragEl, 'transform', 'translateZ(0)');\n }\n awaitingDragStarted = true;\n _this._dragStartId = _nextTick(_this._dragStarted.bind(_this, fallback, evt));\n on(document, 'selectstart', _this);\n moved = true;\n window.getSelection().removeAllRanges();\n if (Safari) {\n css(document.body, 'user-select', 'none');\n }\n },\n // Returns true - if no further action is needed (either inserted or another condition)\n _onDragOver: function _onDragOver( /**Event*/evt) {\n var el = this.el,\n target = evt.target,\n dragRect,\n targetRect,\n revert,\n options = this.options,\n group = options.group,\n activeSortable = Sortable.active,\n isOwner = activeGroup === group,\n canSort = options.sort,\n fromSortable = putSortable || activeSortable,\n vertical,\n _this = this,\n completedFired = false;\n if (_silent) return;\n function dragOverEvent(name, extra) {\n pluginEvent(name, _this, _objectSpread2({\n evt: evt,\n isOwner: isOwner,\n axis: vertical ? 'vertical' : 'horizontal',\n revert: revert,\n dragRect: dragRect,\n targetRect: targetRect,\n canSort: canSort,\n fromSortable: fromSortable,\n target: target,\n completed: completed,\n onMove: function onMove(target, after) {\n return _onMove(rootEl, el, dragEl, dragRect, target, getRect(target), evt, after);\n },\n changed: changed\n }, extra));\n }\n\n // Capture animation state\n function capture() {\n dragOverEvent('dragOverAnimationCapture');\n _this.captureAnimationState();\n if (_this !== fromSortable) {\n fromSortable.captureAnimationState();\n }\n }\n\n // Return invocation when dragEl is inserted (or completed)\n function completed(insertion) {\n dragOverEvent('dragOverCompleted', {\n insertion: insertion\n });\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n } else {\n activeSortable._showClone(_this);\n }\n if (_this !== fromSortable) {\n // Set ghost class to new sortable's ghost class\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : activeSortable.options.ghostClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n }\n if (putSortable !== _this && _this !== Sortable.active) {\n putSortable = _this;\n } else if (_this === Sortable.active && putSortable) {\n putSortable = null;\n }\n\n // Animation\n if (fromSortable === _this) {\n _this._ignoreWhileAnimating = target;\n }\n _this.animateAll(function () {\n dragOverEvent('dragOverAnimationComplete');\n _this._ignoreWhileAnimating = null;\n });\n if (_this !== fromSortable) {\n fromSortable.animateAll();\n fromSortable._ignoreWhileAnimating = null;\n }\n }\n\n // Null lastTarget if it is not inside a previously swapped element\n if (target === dragEl && !dragEl.animated || target === el && !target.animated) {\n lastTarget = null;\n }\n\n // no bubbling and not fallback\n if (!options.dragoverBubble && !evt.rootEl && target !== document) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target);\n\n // Do not detect for empty insert if already inserted\n !insertion && nearestEmptyInsertDetectEvent(evt);\n }\n !options.dragoverBubble && evt.stopPropagation && evt.stopPropagation();\n return completedFired = true;\n }\n\n // Call when dragEl has been inserted\n function changed() {\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n _dispatchEvent({\n sortable: _this,\n name: 'change',\n toEl: el,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n originalEvent: evt\n });\n }\n if (evt.preventDefault !== void 0) {\n evt.cancelable && evt.preventDefault();\n }\n target = closest(target, options.draggable, el, true);\n dragOverEvent('dragOver');\n if (Sortable.eventCanceled) return completedFired;\n if (dragEl.contains(evt.target) || target.animated && target.animatingX && target.animatingY || _this._ignoreWhileAnimating === target) {\n return completed(false);\n }\n ignoreNextClick = false;\n if (activeSortable && !options.disabled && (isOwner ? canSort || (revert = parentEl !== rootEl) // Reverting item into the original list\n : putSortable === this || (this.lastPutMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) && group.checkPut(this, activeSortable, dragEl, evt))) {\n vertical = this._getDirection(evt, target) === 'vertical';\n dragRect = getRect(dragEl);\n dragOverEvent('dragOverValid');\n if (Sortable.eventCanceled) return completedFired;\n if (revert) {\n parentEl = rootEl; // actualization\n capture();\n this._hideClone();\n dragOverEvent('revert');\n if (!Sortable.eventCanceled) {\n if (nextEl) {\n rootEl.insertBefore(dragEl, nextEl);\n } else {\n rootEl.appendChild(dragEl);\n }\n }\n return completed(true);\n }\n var elLastChild = lastChild(el, options.draggable);\n if (!elLastChild || _ghostIsLast(evt, vertical, this) && !elLastChild.animated) {\n // Insert to end of list\n\n // If already at end of list: Do not insert\n if (elLastChild === dragEl) {\n return completed(false);\n }\n\n // if there is a last element, it is the target\n if (elLastChild && el === evt.target) {\n target = elLastChild;\n }\n if (target) {\n targetRect = getRect(target);\n }\n if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, !!target) !== false) {\n capture();\n if (elLastChild && elLastChild.nextSibling) {\n // the last draggable element is not the last node\n el.insertBefore(dragEl, elLastChild.nextSibling);\n } else {\n el.appendChild(dragEl);\n }\n parentEl = el; // actualization\n\n changed();\n return completed(true);\n }\n } else if (elLastChild && _ghostIsFirst(evt, vertical, this)) {\n // Insert to start of list\n var firstChild = getChild(el, 0, options, true);\n if (firstChild === dragEl) {\n return completed(false);\n }\n target = firstChild;\n targetRect = getRect(target);\n if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, false) !== false) {\n capture();\n el.insertBefore(dragEl, firstChild);\n parentEl = el; // actualization\n\n changed();\n return completed(true);\n }\n } else if (target.parentNode === el) {\n targetRect = getRect(target);\n var direction = 0,\n targetBeforeFirstSwap,\n differentLevel = dragEl.parentNode !== el,\n differentRowCol = !_dragElInRowColumn(dragEl.animated && dragEl.toRect || dragRect, target.animated && target.toRect || targetRect, vertical),\n side1 = vertical ? 'top' : 'left',\n scrolledPastTop = isScrolledPast(target, 'top', 'top') || isScrolledPast(dragEl, 'top', 'top'),\n scrollBefore = scrolledPastTop ? scrolledPastTop.scrollTop : void 0;\n if (lastTarget !== target) {\n targetBeforeFirstSwap = targetRect[side1];\n pastFirstInvertThresh = false;\n isCircumstantialInvert = !differentRowCol && options.invertSwap || differentLevel;\n }\n direction = _getSwapDirection(evt, target, targetRect, vertical, differentRowCol ? 1 : options.swapThreshold, options.invertedSwapThreshold == null ? options.swapThreshold : options.invertedSwapThreshold, isCircumstantialInvert, lastTarget === target);\n var sibling;\n if (direction !== 0) {\n // Check if target is beside dragEl in respective direction (ignoring hidden elements)\n var dragIndex = index(dragEl);\n do {\n dragIndex -= direction;\n sibling = parentEl.children[dragIndex];\n } while (sibling && (css(sibling, 'display') === 'none' || sibling === ghostEl));\n }\n // If dragEl is already beside target: Do not insert\n if (direction === 0 || sibling === target) {\n return completed(false);\n }\n lastTarget = target;\n lastDirection = direction;\n var nextSibling = target.nextElementSibling,\n after = false;\n after = direction === 1;\n var moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after);\n if (moveVector !== false) {\n if (moveVector === 1 || moveVector === -1) {\n after = moveVector === 1;\n }\n _silent = true;\n setTimeout(_unsilent, 30);\n capture();\n if (after && !nextSibling) {\n el.appendChild(dragEl);\n } else {\n target.parentNode.insertBefore(dragEl, after ? nextSibling : target);\n }\n\n // Undo chrome's scroll adjustment (has no effect on other browsers)\n if (scrolledPastTop) {\n scrollBy(scrolledPastTop, 0, scrollBefore - scrolledPastTop.scrollTop);\n }\n parentEl = dragEl.parentNode; // actualization\n\n // must be done before animation\n if (targetBeforeFirstSwap !== undefined && !isCircumstantialInvert) {\n targetMoveDistance = Math.abs(targetBeforeFirstSwap - getRect(target)[side1]);\n }\n changed();\n return completed(true);\n }\n }\n if (el.contains(dragEl)) {\n return completed(false);\n }\n }\n return false;\n },\n _ignoreWhileAnimating: null,\n _offMoveEvents: function _offMoveEvents() {\n off(document, 'mousemove', this._onTouchMove);\n off(document, 'touchmove', this._onTouchMove);\n off(document, 'pointermove', this._onTouchMove);\n off(document, 'dragover', nearestEmptyInsertDetectEvent);\n off(document, 'mousemove', nearestEmptyInsertDetectEvent);\n off(document, 'touchmove', nearestEmptyInsertDetectEvent);\n },\n _offUpEvents: function _offUpEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._onDrop);\n off(ownerDocument, 'touchend', this._onDrop);\n off(ownerDocument, 'pointerup', this._onDrop);\n off(ownerDocument, 'pointercancel', this._onDrop);\n off(ownerDocument, 'touchcancel', this._onDrop);\n off(document, 'selectstart', this);\n },\n _onDrop: function _onDrop( /**Event*/evt) {\n var el = this.el,\n options = this.options;\n\n // Get the index of the dragged element within its parent\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n pluginEvent('drop', this, {\n evt: evt\n });\n parentEl = dragEl && dragEl.parentNode;\n\n // Get again after plugin event\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n if (Sortable.eventCanceled) {\n this._nulling();\n return;\n }\n awaitingDragStarted = false;\n isCircumstantialInvert = false;\n pastFirstInvertThresh = false;\n clearInterval(this._loopId);\n clearTimeout(this._dragStartTimer);\n _cancelNextTick(this.cloneId);\n _cancelNextTick(this._dragStartId);\n\n // Unbind events\n if (this.nativeDraggable) {\n off(document, 'drop', this);\n off(el, 'dragstart', this._onDragStart);\n }\n this._offMoveEvents();\n this._offUpEvents();\n if (Safari) {\n css(document.body, 'user-select', '');\n }\n css(dragEl, 'transform', '');\n if (evt) {\n if (moved) {\n evt.cancelable && evt.preventDefault();\n !options.dropBubble && evt.stopPropagation();\n }\n ghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl);\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n // Remove clone(s)\n cloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl);\n }\n if (dragEl) {\n if (this.nativeDraggable) {\n off(dragEl, 'dragend', this);\n }\n _disableDraggable(dragEl);\n dragEl.style['will-change'] = '';\n\n // Remove classes\n // ghostClass is added in dragStarted\n if (moved && !awaitingDragStarted) {\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : this.options.ghostClass, false);\n }\n toggleClass(dragEl, this.options.chosenClass, false);\n\n // Drag stop event\n _dispatchEvent({\n sortable: this,\n name: 'unchoose',\n toEl: parentEl,\n newIndex: null,\n newDraggableIndex: null,\n originalEvent: evt\n });\n if (rootEl !== parentEl) {\n if (newIndex >= 0) {\n // Add event\n _dispatchEvent({\n rootEl: parentEl,\n name: 'add',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n });\n\n // Remove event\n _dispatchEvent({\n sortable: this,\n name: 'remove',\n toEl: parentEl,\n originalEvent: evt\n });\n\n // drag from one list and drop into another\n _dispatchEvent({\n rootEl: parentEl,\n name: 'sort',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n });\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n putSortable && putSortable.save();\n } else {\n if (newIndex !== oldIndex) {\n if (newIndex >= 0) {\n // drag & drop within the same list\n _dispatchEvent({\n sortable: this,\n name: 'update',\n toEl: parentEl,\n originalEvent: evt\n });\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n }\n }\n if (Sortable.active) {\n /* jshint eqnull:true */\n if (newIndex == null || newIndex === -1) {\n newIndex = oldIndex;\n newDraggableIndex = oldDraggableIndex;\n }\n _dispatchEvent({\n sortable: this,\n name: 'end',\n toEl: parentEl,\n originalEvent: evt\n });\n\n // Save sorting\n this.save();\n }\n }\n }\n this._nulling();\n },\n _nulling: function _nulling() {\n pluginEvent('nulling', this);\n rootEl = dragEl = parentEl = ghostEl = nextEl = cloneEl = lastDownEl = cloneHidden = tapEvt = touchEvt = moved = newIndex = newDraggableIndex = oldIndex = oldDraggableIndex = lastTarget = lastDirection = putSortable = activeGroup = Sortable.dragged = Sortable.ghost = Sortable.clone = Sortable.active = null;\n savedInputChecked.forEach(function (el) {\n el.checked = true;\n });\n savedInputChecked.length = lastDx = lastDy = 0;\n },\n handleEvent: function handleEvent( /**Event*/evt) {\n switch (evt.type) {\n case 'drop':\n case 'dragend':\n this._onDrop(evt);\n break;\n case 'dragenter':\n case 'dragover':\n if (dragEl) {\n this._onDragOver(evt);\n _globalDragOver(evt);\n }\n break;\n case 'selectstart':\n evt.preventDefault();\n break;\n }\n },\n /**\r\n * Serializes the item into an array of string.\r\n * @returns {String[]}\r\n */\n toArray: function toArray() {\n var order = [],\n el,\n children = this.el.children,\n i = 0,\n n = children.length,\n options = this.options;\n for (; i < n; i++) {\n el = children[i];\n if (closest(el, options.draggable, this.el, false)) {\n order.push(el.getAttribute(options.dataIdAttr) || _generateId(el));\n }\n }\n return order;\n },\n /**\r\n * Sorts the elements according to the array.\r\n * @param {String[]} order order of the items\r\n */\n sort: function sort(order, useAnimation) {\n var items = {},\n rootEl = this.el;\n this.toArray().forEach(function (id, i) {\n var el = rootEl.children[i];\n if (closest(el, this.options.draggable, rootEl, false)) {\n items[id] = el;\n }\n }, this);\n useAnimation && this.captureAnimationState();\n order.forEach(function (id) {\n if (items[id]) {\n rootEl.removeChild(items[id]);\n rootEl.appendChild(items[id]);\n }\n });\n useAnimation && this.animateAll();\n },\n /**\r\n * Save the current sorting\r\n */\n save: function save() {\n var store = this.options.store;\n store && store.set && store.set(this);\n },\n /**\r\n * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.\r\n * @param {HTMLElement} el\r\n * @param {String} [selector] default: `options.draggable`\r\n * @returns {HTMLElement|null}\r\n */\n closest: function closest$1(el, selector) {\n return closest(el, selector || this.options.draggable, this.el, false);\n },\n /**\r\n * Set/get option\r\n * @param {string} name\r\n * @param {*} [value]\r\n * @returns {*}\r\n */\n option: function option(name, value) {\n var options = this.options;\n if (value === void 0) {\n return options[name];\n } else {\n var modifiedValue = PluginManager.modifyOption(this, name, value);\n if (typeof modifiedValue !== 'undefined') {\n options[name] = modifiedValue;\n } else {\n options[name] = value;\n }\n if (name === 'group') {\n _prepareGroup(options);\n }\n }\n },\n /**\r\n * Destroy\r\n */\n destroy: function destroy() {\n pluginEvent('destroy', this);\n var el = this.el;\n el[expando] = null;\n off(el, 'mousedown', this._onTapStart);\n off(el, 'touchstart', this._onTapStart);\n off(el, 'pointerdown', this._onTapStart);\n if (this.nativeDraggable) {\n off(el, 'dragover', this);\n off(el, 'dragenter', this);\n }\n // Remove draggable attributes\n Array.prototype.forEach.call(el.querySelectorAll('[draggable]'), function (el) {\n el.removeAttribute('draggable');\n });\n this._onDrop();\n this._disableDelayedDragEvents();\n sortables.splice(sortables.indexOf(this.el), 1);\n this.el = el = null;\n },\n _hideClone: function _hideClone() {\n if (!cloneHidden) {\n pluginEvent('hideClone', this);\n if (Sortable.eventCanceled) return;\n css(cloneEl, 'display', 'none');\n if (this.options.removeCloneOnHide && cloneEl.parentNode) {\n cloneEl.parentNode.removeChild(cloneEl);\n }\n cloneHidden = true;\n }\n },\n _showClone: function _showClone(putSortable) {\n if (putSortable.lastPutMode !== 'clone') {\n this._hideClone();\n return;\n }\n if (cloneHidden) {\n pluginEvent('showClone', this);\n if (Sortable.eventCanceled) return;\n\n // show clone at dragEl or original position\n if (dragEl.parentNode == rootEl && !this.options.group.revertClone) {\n rootEl.insertBefore(cloneEl, dragEl);\n } else if (nextEl) {\n rootEl.insertBefore(cloneEl, nextEl);\n } else {\n rootEl.appendChild(cloneEl);\n }\n if (this.options.group.revertClone) {\n this.animate(dragEl, cloneEl);\n }\n css(cloneEl, 'display', '');\n cloneHidden = false;\n }\n }\n};\nfunction _globalDragOver( /**Event*/evt) {\n if (evt.dataTransfer) {\n evt.dataTransfer.dropEffect = 'move';\n }\n evt.cancelable && evt.preventDefault();\n}\nfunction _onMove(fromEl, toEl, dragEl, dragRect, targetEl, targetRect, originalEvent, willInsertAfter) {\n var evt,\n sortable = fromEl[expando],\n onMoveFn = sortable.options.onMove,\n retVal;\n // Support for new CustomEvent feature\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent('move', {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent('move', true, true);\n }\n evt.to = toEl;\n evt.from = fromEl;\n evt.dragged = dragEl;\n evt.draggedRect = dragRect;\n evt.related = targetEl || toEl;\n evt.relatedRect = targetRect || getRect(toEl);\n evt.willInsertAfter = willInsertAfter;\n evt.originalEvent = originalEvent;\n fromEl.dispatchEvent(evt);\n if (onMoveFn) {\n retVal = onMoveFn.call(sortable, evt, originalEvent);\n }\n return retVal;\n}\nfunction _disableDraggable(el) {\n el.draggable = false;\n}\nfunction _unsilent() {\n _silent = false;\n}\nfunction _ghostIsFirst(evt, vertical, sortable) {\n var firstElRect = getRect(getChild(sortable.el, 0, sortable.options, true));\n var childContainingRect = getChildContainingRectFromElement(sortable.el, sortable.options, ghostEl);\n var spacer = 10;\n return vertical ? evt.clientX < childContainingRect.left - spacer || evt.clientY < firstElRect.top && evt.clientX < firstElRect.right : evt.clientY < childContainingRect.top - spacer || evt.clientY < firstElRect.bottom && evt.clientX < firstElRect.left;\n}\nfunction _ghostIsLast(evt, vertical, sortable) {\n var lastElRect = getRect(lastChild(sortable.el, sortable.options.draggable));\n var childContainingRect = getChildContainingRectFromElement(sortable.el, sortable.options, ghostEl);\n var spacer = 10;\n return vertical ? evt.clientX > childContainingRect.right + spacer || evt.clientY > lastElRect.bottom && evt.clientX > lastElRect.left : evt.clientY > childContainingRect.bottom + spacer || evt.clientX > lastElRect.right && evt.clientY > lastElRect.top;\n}\nfunction _getSwapDirection(evt, target, targetRect, vertical, swapThreshold, invertedSwapThreshold, invertSwap, isLastTarget) {\n var mouseOnAxis = vertical ? evt.clientY : evt.clientX,\n targetLength = vertical ? targetRect.height : targetRect.width,\n targetS1 = vertical ? targetRect.top : targetRect.left,\n targetS2 = vertical ? targetRect.bottom : targetRect.right,\n invert = false;\n if (!invertSwap) {\n // Never invert or create dragEl shadow when target movemenet causes mouse to move past the end of regular swapThreshold\n if (isLastTarget && targetMoveDistance < targetLength * swapThreshold) {\n // multiplied only by swapThreshold because mouse will already be inside target by (1 - threshold) * targetLength / 2\n // check if past first invert threshold on side opposite of lastDirection\n if (!pastFirstInvertThresh && (lastDirection === 1 ? mouseOnAxis > targetS1 + targetLength * invertedSwapThreshold / 2 : mouseOnAxis < targetS2 - targetLength * invertedSwapThreshold / 2)) {\n // past first invert threshold, do not restrict inverted threshold to dragEl shadow\n pastFirstInvertThresh = true;\n }\n if (!pastFirstInvertThresh) {\n // dragEl shadow (target move distance shadow)\n if (lastDirection === 1 ? mouseOnAxis < targetS1 + targetMoveDistance // over dragEl shadow\n : mouseOnAxis > targetS2 - targetMoveDistance) {\n return -lastDirection;\n }\n } else {\n invert = true;\n }\n } else {\n // Regular\n if (mouseOnAxis > targetS1 + targetLength * (1 - swapThreshold) / 2 && mouseOnAxis < targetS2 - targetLength * (1 - swapThreshold) / 2) {\n return _getInsertDirection(target);\n }\n }\n }\n invert = invert || invertSwap;\n if (invert) {\n // Invert of regular\n if (mouseOnAxis < targetS1 + targetLength * invertedSwapThreshold / 2 || mouseOnAxis > targetS2 - targetLength * invertedSwapThreshold / 2) {\n return mouseOnAxis > targetS1 + targetLength / 2 ? 1 : -1;\n }\n }\n return 0;\n}\n\n/**\r\n * Gets the direction dragEl must be swapped relative to target in order to make it\r\n * seem that dragEl has been \"inserted\" into that element's position\r\n * @param {HTMLElement} target The target whose position dragEl is being inserted at\r\n * @return {Number} Direction dragEl must be swapped\r\n */\nfunction _getInsertDirection(target) {\n if (index(dragEl) < index(target)) {\n return 1;\n } else {\n return -1;\n }\n}\n\n/**\r\n * Generate id\r\n * @param {HTMLElement} el\r\n * @returns {String}\r\n * @private\r\n */\nfunction _generateId(el) {\n var str = el.tagName + el.className + el.src + el.href + el.textContent,\n i = str.length,\n sum = 0;\n while (i--) {\n sum += str.charCodeAt(i);\n }\n return sum.toString(36);\n}\nfunction _saveInputCheckedState(root) {\n savedInputChecked.length = 0;\n var inputs = root.getElementsByTagName('input');\n var idx = inputs.length;\n while (idx--) {\n var el = inputs[idx];\n el.checked && savedInputChecked.push(el);\n }\n}\nfunction _nextTick(fn) {\n return setTimeout(fn, 0);\n}\nfunction _cancelNextTick(id) {\n return clearTimeout(id);\n}\n\n// Fixed #973:\nif (documentExists) {\n on(document, 'touchmove', function (evt) {\n if ((Sortable.active || awaitingDragStarted) && evt.cancelable) {\n evt.preventDefault();\n }\n });\n}\n\n// Export utils\nSortable.utils = {\n on: on,\n off: off,\n css: css,\n find: find,\n is: function is(el, selector) {\n return !!closest(el, selector, el, false);\n },\n extend: extend,\n throttle: throttle,\n closest: closest,\n toggleClass: toggleClass,\n clone: clone,\n index: index,\n nextTick: _nextTick,\n cancelNextTick: _cancelNextTick,\n detectDirection: _detectDirection,\n getChild: getChild,\n expando: expando\n};\n\n/**\r\n * Get the Sortable instance of an element\r\n * @param {HTMLElement} element The element\r\n * @return {Sortable|undefined} The instance of Sortable\r\n */\nSortable.get = function (element) {\n return element[expando];\n};\n\n/**\r\n * Mount a plugin to Sortable\r\n * @param {...SortablePlugin|SortablePlugin[]} plugins Plugins being mounted\r\n */\nSortable.mount = function () {\n for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins[_key] = arguments[_key];\n }\n if (plugins[0].constructor === Array) plugins = plugins[0];\n plugins.forEach(function (plugin) {\n if (!plugin.prototype || !plugin.prototype.constructor) {\n throw \"Sortable: Mounted plugin must be a constructor function, not \".concat({}.toString.call(plugin));\n }\n if (plugin.utils) Sortable.utils = _objectSpread2(_objectSpread2({}, Sortable.utils), plugin.utils);\n PluginManager.mount(plugin);\n });\n};\n\n/**\r\n * Create sortable instance\r\n * @param {HTMLElement} el\r\n * @param {Object} [options]\r\n */\nSortable.create = function (el, options) {\n return new Sortable(el, options);\n};\n\n// Export\nSortable.version = version;\n\nvar autoScrolls = [],\n scrollEl,\n scrollRootEl,\n scrolling = false,\n lastAutoScrollX,\n lastAutoScrollY,\n touchEvt$1,\n pointerElemChangedInterval;\nfunction AutoScrollPlugin() {\n function AutoScroll() {\n this.defaults = {\n scroll: true,\n forceAutoScrollFallback: false,\n scrollSensitivity: 30,\n scrollSpeed: 10,\n bubbleScroll: true\n };\n\n // Bind all private methods\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n }\n AutoScroll.prototype = {\n dragStarted: function dragStarted(_ref) {\n var originalEvent = _ref.originalEvent;\n if (this.sortable.nativeDraggable) {\n on(document, 'dragover', this._handleAutoScroll);\n } else {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._handleFallbackAutoScroll);\n } else if (originalEvent.touches) {\n on(document, 'touchmove', this._handleFallbackAutoScroll);\n } else {\n on(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref2) {\n var originalEvent = _ref2.originalEvent;\n // For when bubbling is canceled and using fallback (fallback 'touchmove' always reached)\n if (!this.options.dragOverBubble && !originalEvent.rootEl) {\n this._handleAutoScroll(originalEvent);\n }\n },\n drop: function drop() {\n if (this.sortable.nativeDraggable) {\n off(document, 'dragover', this._handleAutoScroll);\n } else {\n off(document, 'pointermove', this._handleFallbackAutoScroll);\n off(document, 'touchmove', this._handleFallbackAutoScroll);\n off(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n clearPointerElemChangedInterval();\n clearAutoScrolls();\n cancelThrottle();\n },\n nulling: function nulling() {\n touchEvt$1 = scrollRootEl = scrollEl = scrolling = pointerElemChangedInterval = lastAutoScrollX = lastAutoScrollY = null;\n autoScrolls.length = 0;\n },\n _handleFallbackAutoScroll: function _handleFallbackAutoScroll(evt) {\n this._handleAutoScroll(evt, true);\n },\n _handleAutoScroll: function _handleAutoScroll(evt, fallback) {\n var _this = this;\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n elem = document.elementFromPoint(x, y);\n touchEvt$1 = evt;\n\n // IE does not seem to have native autoscroll,\n // Edge's autoscroll seems too conditional,\n // MACOS Safari does not have autoscroll,\n // Firefox and Chrome are good\n if (fallback || this.options.forceAutoScrollFallback || Edge || IE11OrLess || Safari) {\n autoScroll(evt, this.options, elem, fallback);\n\n // Listener for pointer element change\n var ogElemScroller = getParentAutoScrollElement(elem, true);\n if (scrolling && (!pointerElemChangedInterval || x !== lastAutoScrollX || y !== lastAutoScrollY)) {\n pointerElemChangedInterval && clearPointerElemChangedInterval();\n // Detect for pointer elem change, emulating native DnD behaviour\n pointerElemChangedInterval = setInterval(function () {\n var newElem = getParentAutoScrollElement(document.elementFromPoint(x, y), true);\n if (newElem !== ogElemScroller) {\n ogElemScroller = newElem;\n clearAutoScrolls();\n }\n autoScroll(evt, _this.options, newElem, fallback);\n }, 10);\n lastAutoScrollX = x;\n lastAutoScrollY = y;\n }\n } else {\n // if DnD is enabled (and browser has good autoscrolling), first autoscroll will already scroll, so get parent autoscroll of first autoscroll\n if (!this.options.bubbleScroll || getParentAutoScrollElement(elem, true) === getWindowScrollingElement()) {\n clearAutoScrolls();\n return;\n }\n autoScroll(evt, this.options, getParentAutoScrollElement(elem, false), false);\n }\n }\n };\n return _extends(AutoScroll, {\n pluginName: 'scroll',\n initializeByDefault: true\n });\n}\nfunction clearAutoScrolls() {\n autoScrolls.forEach(function (autoScroll) {\n clearInterval(autoScroll.pid);\n });\n autoScrolls = [];\n}\nfunction clearPointerElemChangedInterval() {\n clearInterval(pointerElemChangedInterval);\n}\nvar autoScroll = throttle(function (evt, options, rootEl, isFallback) {\n // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=505521\n if (!options.scroll) return;\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n sens = options.scrollSensitivity,\n speed = options.scrollSpeed,\n winScroller = getWindowScrollingElement();\n var scrollThisInstance = false,\n scrollCustomFn;\n\n // New scroll root, set scrollEl\n if (scrollRootEl !== rootEl) {\n scrollRootEl = rootEl;\n clearAutoScrolls();\n scrollEl = options.scroll;\n scrollCustomFn = options.scrollFn;\n if (scrollEl === true) {\n scrollEl = getParentAutoScrollElement(rootEl, true);\n }\n }\n var layersOut = 0;\n var currentParent = scrollEl;\n do {\n var el = currentParent,\n rect = getRect(el),\n top = rect.top,\n bottom = rect.bottom,\n left = rect.left,\n right = rect.right,\n width = rect.width,\n height = rect.height,\n canScrollX = void 0,\n canScrollY = void 0,\n scrollWidth = el.scrollWidth,\n scrollHeight = el.scrollHeight,\n elCSS = css(el),\n scrollPosX = el.scrollLeft,\n scrollPosY = el.scrollTop;\n if (el === winScroller) {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll' || elCSS.overflowX === 'visible');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll' || elCSS.overflowY === 'visible');\n } else {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll');\n }\n var vx = canScrollX && (Math.abs(right - x) <= sens && scrollPosX + width < scrollWidth) - (Math.abs(left - x) <= sens && !!scrollPosX);\n var vy = canScrollY && (Math.abs(bottom - y) <= sens && scrollPosY + height < scrollHeight) - (Math.abs(top - y) <= sens && !!scrollPosY);\n if (!autoScrolls[layersOut]) {\n for (var i = 0; i <= layersOut; i++) {\n if (!autoScrolls[i]) {\n autoScrolls[i] = {};\n }\n }\n }\n if (autoScrolls[layersOut].vx != vx || autoScrolls[layersOut].vy != vy || autoScrolls[layersOut].el !== el) {\n autoScrolls[layersOut].el = el;\n autoScrolls[layersOut].vx = vx;\n autoScrolls[layersOut].vy = vy;\n clearInterval(autoScrolls[layersOut].pid);\n if (vx != 0 || vy != 0) {\n scrollThisInstance = true;\n /* jshint loopfunc:true */\n autoScrolls[layersOut].pid = setInterval(function () {\n // emulate drag over during autoscroll (fallback), emulating native DnD behaviour\n if (isFallback && this.layer === 0) {\n Sortable.active._onTouchMove(touchEvt$1); // To move ghost if it is positioned absolutely\n }\n var scrollOffsetY = autoScrolls[this.layer].vy ? autoScrolls[this.layer].vy * speed : 0;\n var scrollOffsetX = autoScrolls[this.layer].vx ? autoScrolls[this.layer].vx * speed : 0;\n if (typeof scrollCustomFn === 'function') {\n if (scrollCustomFn.call(Sortable.dragged.parentNode[expando], scrollOffsetX, scrollOffsetY, evt, touchEvt$1, autoScrolls[this.layer].el) !== 'continue') {\n return;\n }\n }\n scrollBy(autoScrolls[this.layer].el, scrollOffsetX, scrollOffsetY);\n }.bind({\n layer: layersOut\n }), 24);\n }\n }\n layersOut++;\n } while (options.bubbleScroll && currentParent !== winScroller && (currentParent = getParentAutoScrollElement(currentParent, false)));\n scrolling = scrollThisInstance; // in case another function catches scrolling as false in between when it is not\n}, 30);\n\nvar drop = function drop(_ref) {\n var originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n dragEl = _ref.dragEl,\n activeSortable = _ref.activeSortable,\n dispatchSortableEvent = _ref.dispatchSortableEvent,\n hideGhostForTarget = _ref.hideGhostForTarget,\n unhideGhostForTarget = _ref.unhideGhostForTarget;\n if (!originalEvent) return;\n var toSortable = putSortable || activeSortable;\n hideGhostForTarget();\n var touch = originalEvent.changedTouches && originalEvent.changedTouches.length ? originalEvent.changedTouches[0] : originalEvent;\n var target = document.elementFromPoint(touch.clientX, touch.clientY);\n unhideGhostForTarget();\n if (toSortable && !toSortable.el.contains(target)) {\n dispatchSortableEvent('spill');\n this.onSpill({\n dragEl: dragEl,\n putSortable: putSortable\n });\n }\n};\nfunction Revert() {}\nRevert.prototype = {\n startIndex: null,\n dragStart: function dragStart(_ref2) {\n var oldDraggableIndex = _ref2.oldDraggableIndex;\n this.startIndex = oldDraggableIndex;\n },\n onSpill: function onSpill(_ref3) {\n var dragEl = _ref3.dragEl,\n putSortable = _ref3.putSortable;\n this.sortable.captureAnimationState();\n if (putSortable) {\n putSortable.captureAnimationState();\n }\n var nextSibling = getChild(this.sortable.el, this.startIndex, this.options);\n if (nextSibling) {\n this.sortable.el.insertBefore(dragEl, nextSibling);\n } else {\n this.sortable.el.appendChild(dragEl);\n }\n this.sortable.animateAll();\n if (putSortable) {\n putSortable.animateAll();\n }\n },\n drop: drop\n};\n_extends(Revert, {\n pluginName: 'revertOnSpill'\n});\nfunction Remove() {}\nRemove.prototype = {\n onSpill: function onSpill(_ref4) {\n var dragEl = _ref4.dragEl,\n putSortable = _ref4.putSortable;\n var parentSortable = putSortable || this.sortable;\n parentSortable.captureAnimationState();\n dragEl.parentNode && dragEl.parentNode.removeChild(dragEl);\n parentSortable.animateAll();\n },\n drop: drop\n};\n_extends(Remove, {\n pluginName: 'removeOnSpill'\n});\n\nvar lastSwapEl;\nfunction SwapPlugin() {\n function Swap() {\n this.defaults = {\n swapClass: 'sortable-swap-highlight'\n };\n }\n Swap.prototype = {\n dragStart: function dragStart(_ref) {\n var dragEl = _ref.dragEl;\n lastSwapEl = dragEl;\n },\n dragOverValid: function dragOverValid(_ref2) {\n var completed = _ref2.completed,\n target = _ref2.target,\n onMove = _ref2.onMove,\n activeSortable = _ref2.activeSortable,\n changed = _ref2.changed,\n cancel = _ref2.cancel;\n if (!activeSortable.options.swap) return;\n var el = this.sortable.el,\n options = this.options;\n if (target && target !== el) {\n var prevSwapEl = lastSwapEl;\n if (onMove(target) !== false) {\n toggleClass(target, options.swapClass, true);\n lastSwapEl = target;\n } else {\n lastSwapEl = null;\n }\n if (prevSwapEl && prevSwapEl !== lastSwapEl) {\n toggleClass(prevSwapEl, options.swapClass, false);\n }\n }\n changed();\n completed(true);\n cancel();\n },\n drop: function drop(_ref3) {\n var activeSortable = _ref3.activeSortable,\n putSortable = _ref3.putSortable,\n dragEl = _ref3.dragEl;\n var toSortable = putSortable || this.sortable;\n var options = this.options;\n lastSwapEl && toggleClass(lastSwapEl, options.swapClass, false);\n if (lastSwapEl && (options.swap || putSortable && putSortable.options.swap)) {\n if (dragEl !== lastSwapEl) {\n toSortable.captureAnimationState();\n if (toSortable !== activeSortable) activeSortable.captureAnimationState();\n swapNodes(dragEl, lastSwapEl);\n toSortable.animateAll();\n if (toSortable !== activeSortable) activeSortable.animateAll();\n }\n }\n },\n nulling: function nulling() {\n lastSwapEl = null;\n }\n };\n return _extends(Swap, {\n pluginName: 'swap',\n eventProperties: function eventProperties() {\n return {\n swapItem: lastSwapEl\n };\n }\n });\n}\nfunction swapNodes(n1, n2) {\n var p1 = n1.parentNode,\n p2 = n2.parentNode,\n i1,\n i2;\n if (!p1 || !p2 || p1.isEqualNode(n2) || p2.isEqualNode(n1)) return;\n i1 = index(n1);\n i2 = index(n2);\n if (p1.isEqualNode(p2) && i1 < i2) {\n i2++;\n }\n p1.insertBefore(n2, p1.children[i1]);\n p2.insertBefore(n1, p2.children[i2]);\n}\n\nvar multiDragElements = [],\n multiDragClones = [],\n lastMultiDragSelect,\n // for selection with modifier key down (SHIFT)\n multiDragSortable,\n initialFolding = false,\n // Initial multi-drag fold when drag started\n folding = false,\n // Folding any other time\n dragStarted = false,\n dragEl$1,\n clonesFromRect,\n clonesHidden;\nfunction MultiDragPlugin() {\n function MultiDrag(sortable) {\n // Bind all private methods\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n if (!sortable.options.avoidImplicitDeselect) {\n if (sortable.options.supportPointer) {\n on(document, 'pointerup', this._deselectMultiDrag);\n } else {\n on(document, 'mouseup', this._deselectMultiDrag);\n on(document, 'touchend', this._deselectMultiDrag);\n }\n }\n on(document, 'keydown', this._checkKeyDown);\n on(document, 'keyup', this._checkKeyUp);\n this.defaults = {\n selectedClass: 'sortable-selected',\n multiDragKey: null,\n avoidImplicitDeselect: false,\n setData: function setData(dataTransfer, dragEl) {\n var data = '';\n if (multiDragElements.length && multiDragSortable === sortable) {\n multiDragElements.forEach(function (multiDragElement, i) {\n data += (!i ? '' : ', ') + multiDragElement.textContent;\n });\n } else {\n data = dragEl.textContent;\n }\n dataTransfer.setData('Text', data);\n }\n };\n }\n MultiDrag.prototype = {\n multiDragKeyDown: false,\n isMultiDrag: false,\n delayStartGlobal: function delayStartGlobal(_ref) {\n var dragged = _ref.dragEl;\n dragEl$1 = dragged;\n },\n delayEnded: function delayEnded() {\n this.isMultiDrag = ~multiDragElements.indexOf(dragEl$1);\n },\n setupClone: function setupClone(_ref2) {\n var sortable = _ref2.sortable,\n cancel = _ref2.cancel;\n if (!this.isMultiDrag) return;\n for (var i = 0; i < multiDragElements.length; i++) {\n multiDragClones.push(clone(multiDragElements[i]));\n multiDragClones[i].sortableIndex = multiDragElements[i].sortableIndex;\n multiDragClones[i].draggable = false;\n multiDragClones[i].style['will-change'] = '';\n toggleClass(multiDragClones[i], this.options.selectedClass, false);\n multiDragElements[i] === dragEl$1 && toggleClass(multiDragClones[i], this.options.chosenClass, false);\n }\n sortable._hideClone();\n cancel();\n },\n clone: function clone(_ref3) {\n var sortable = _ref3.sortable,\n rootEl = _ref3.rootEl,\n dispatchSortableEvent = _ref3.dispatchSortableEvent,\n cancel = _ref3.cancel;\n if (!this.isMultiDrag) return;\n if (!this.options.removeCloneOnHide) {\n if (multiDragElements.length && multiDragSortable === sortable) {\n insertMultiDragClones(true, rootEl);\n dispatchSortableEvent('clone');\n cancel();\n }\n }\n },\n showClone: function showClone(_ref4) {\n var cloneNowShown = _ref4.cloneNowShown,\n rootEl = _ref4.rootEl,\n cancel = _ref4.cancel;\n if (!this.isMultiDrag) return;\n insertMultiDragClones(false, rootEl);\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', '');\n });\n cloneNowShown();\n clonesHidden = false;\n cancel();\n },\n hideClone: function hideClone(_ref5) {\n var _this = this;\n var sortable = _ref5.sortable,\n cloneNowHidden = _ref5.cloneNowHidden,\n cancel = _ref5.cancel;\n if (!this.isMultiDrag) return;\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', 'none');\n if (_this.options.removeCloneOnHide && clone.parentNode) {\n clone.parentNode.removeChild(clone);\n }\n });\n cloneNowHidden();\n clonesHidden = true;\n cancel();\n },\n dragStartGlobal: function dragStartGlobal(_ref6) {\n var sortable = _ref6.sortable;\n if (!this.isMultiDrag && multiDragSortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n }\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.sortableIndex = index(multiDragElement);\n });\n\n // Sort multi-drag elements\n multiDragElements = multiDragElements.sort(function (a, b) {\n return a.sortableIndex - b.sortableIndex;\n });\n dragStarted = true;\n },\n dragStarted: function dragStarted(_ref7) {\n var _this2 = this;\n var sortable = _ref7.sortable;\n if (!this.isMultiDrag) return;\n if (this.options.sort) {\n // Capture rects,\n // hide multi drag elements (by positioning them absolute),\n // set multi drag elements rects to dragRect,\n // show multi drag elements,\n // animate to rects,\n // unset rects & remove from DOM\n\n sortable.captureAnimationState();\n if (this.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n css(multiDragElement, 'position', 'absolute');\n });\n var dragRect = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRect);\n });\n folding = true;\n initialFolding = true;\n }\n }\n sortable.animateAll(function () {\n folding = false;\n initialFolding = false;\n if (_this2.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n }\n\n // Remove all auxiliary multidrag items from el, if sorting enabled\n if (_this2.options.sort) {\n removeMultiDragElements();\n }\n });\n },\n dragOver: function dragOver(_ref8) {\n var target = _ref8.target,\n completed = _ref8.completed,\n cancel = _ref8.cancel;\n if (folding && ~multiDragElements.indexOf(target)) {\n completed(false);\n cancel();\n }\n },\n revert: function revert(_ref9) {\n var fromSortable = _ref9.fromSortable,\n rootEl = _ref9.rootEl,\n sortable = _ref9.sortable,\n dragRect = _ref9.dragRect;\n if (multiDragElements.length > 1) {\n // Setup unfold animation\n multiDragElements.forEach(function (multiDragElement) {\n sortable.addAnimationState({\n target: multiDragElement,\n rect: folding ? getRect(multiDragElement) : dragRect\n });\n unsetRect(multiDragElement);\n multiDragElement.fromRect = dragRect;\n fromSortable.removeAnimationState(multiDragElement);\n });\n folding = false;\n insertMultiDragElements(!this.options.removeCloneOnHide, rootEl);\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref10) {\n var sortable = _ref10.sortable,\n isOwner = _ref10.isOwner,\n insertion = _ref10.insertion,\n activeSortable = _ref10.activeSortable,\n parentEl = _ref10.parentEl,\n putSortable = _ref10.putSortable;\n var options = this.options;\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n }\n initialFolding = false;\n // If leaving sort:false root, or already folding - Fold to new location\n if (options.animation && multiDragElements.length > 1 && (folding || !isOwner && !activeSortable.options.sort && !putSortable)) {\n // Fold: Set all multi drag elements's rects to dragEl's rect when multi-drag elements are invisible\n var dragRectAbsolute = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRectAbsolute);\n\n // Move element(s) to end of parentEl so that it does not interfere with multi-drag clones insertion if they are inserted\n // while folding, and so that we can capture them again because old sortable will no longer be fromSortable\n parentEl.appendChild(multiDragElement);\n });\n folding = true;\n }\n\n // Clones must be shown (and check to remove multi drags) after folding when interfering multiDragElements are moved out\n if (!isOwner) {\n // Only remove if not folding (folding will remove them anyways)\n if (!folding) {\n removeMultiDragElements();\n }\n if (multiDragElements.length > 1) {\n var clonesHiddenBefore = clonesHidden;\n activeSortable._showClone(sortable);\n\n // Unfold animation for clones if showing from hidden\n if (activeSortable.options.animation && !clonesHidden && clonesHiddenBefore) {\n multiDragClones.forEach(function (clone) {\n activeSortable.addAnimationState({\n target: clone,\n rect: clonesFromRect\n });\n clone.fromRect = clonesFromRect;\n clone.thisAnimationDuration = null;\n });\n }\n } else {\n activeSortable._showClone(sortable);\n }\n }\n }\n },\n dragOverAnimationCapture: function dragOverAnimationCapture(_ref11) {\n var dragRect = _ref11.dragRect,\n isOwner = _ref11.isOwner,\n activeSortable = _ref11.activeSortable;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n });\n if (activeSortable.options.animation && !isOwner && activeSortable.multiDrag.isMultiDrag) {\n clonesFromRect = _extends({}, dragRect);\n var dragMatrix = matrix(dragEl$1, true);\n clonesFromRect.top -= dragMatrix.f;\n clonesFromRect.left -= dragMatrix.e;\n }\n },\n dragOverAnimationComplete: function dragOverAnimationComplete() {\n if (folding) {\n folding = false;\n removeMultiDragElements();\n }\n },\n drop: function drop(_ref12) {\n var evt = _ref12.originalEvent,\n rootEl = _ref12.rootEl,\n parentEl = _ref12.parentEl,\n sortable = _ref12.sortable,\n dispatchSortableEvent = _ref12.dispatchSortableEvent,\n oldIndex = _ref12.oldIndex,\n putSortable = _ref12.putSortable;\n var toSortable = putSortable || this.sortable;\n if (!evt) return;\n var options = this.options,\n children = parentEl.children;\n\n // Multi-drag selection\n if (!dragStarted) {\n if (options.multiDragKey && !this.multiDragKeyDown) {\n this._deselectMultiDrag();\n }\n toggleClass(dragEl$1, options.selectedClass, !~multiDragElements.indexOf(dragEl$1));\n if (!~multiDragElements.indexOf(dragEl$1)) {\n multiDragElements.push(dragEl$1);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: dragEl$1,\n originalEvent: evt\n });\n\n // Modifier activated, select from last to dragEl\n if (evt.shiftKey && lastMultiDragSelect && sortable.el.contains(lastMultiDragSelect)) {\n var lastIndex = index(lastMultiDragSelect),\n currentIndex = index(dragEl$1);\n if (~lastIndex && ~currentIndex && lastIndex !== currentIndex) {\n (function () {\n // Must include lastMultiDragSelect (select it), in case modified selection from no selection\n // (but previous selection existed)\n var n, i;\n if (currentIndex > lastIndex) {\n i = lastIndex;\n n = currentIndex;\n } else {\n i = currentIndex;\n n = lastIndex + 1;\n }\n var filter = options.filter;\n for (; i < n; i++) {\n if (~multiDragElements.indexOf(children[i])) continue;\n // Check if element is draggable\n if (!closest(children[i], options.draggable, parentEl, false)) continue;\n // Check if element is filtered\n var filtered = filter && (typeof filter === 'function' ? filter.call(sortable, evt, children[i], sortable) : filter.split(',').some(function (criteria) {\n return closest(children[i], criteria.trim(), parentEl, false);\n }));\n if (filtered) continue;\n toggleClass(children[i], options.selectedClass, true);\n multiDragElements.push(children[i]);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: children[i],\n originalEvent: evt\n });\n }\n })();\n }\n } else {\n lastMultiDragSelect = dragEl$1;\n }\n multiDragSortable = toSortable;\n } else {\n multiDragElements.splice(multiDragElements.indexOf(dragEl$1), 1);\n lastMultiDragSelect = null;\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'deselect',\n targetEl: dragEl$1,\n originalEvent: evt\n });\n }\n }\n\n // Multi-drag drop\n if (dragStarted && this.isMultiDrag) {\n folding = false;\n // Do not \"unfold\" after around dragEl if reverted\n if ((parentEl[expando].options.sort || parentEl !== rootEl) && multiDragElements.length > 1) {\n var dragRect = getRect(dragEl$1),\n multiDragIndex = index(dragEl$1, ':not(.' + this.options.selectedClass + ')');\n if (!initialFolding && options.animation) dragEl$1.thisAnimationDuration = null;\n toSortable.captureAnimationState();\n if (!initialFolding) {\n if (options.animation) {\n dragEl$1.fromRect = dragRect;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n if (multiDragElement !== dragEl$1) {\n var rect = folding ? getRect(multiDragElement) : dragRect;\n multiDragElement.fromRect = rect;\n\n // Prepare unfold animation\n toSortable.addAnimationState({\n target: multiDragElement,\n rect: rect\n });\n }\n });\n }\n\n // Multi drag elements are not necessarily removed from the DOM on drop, so to reinsert\n // properly they must all be removed\n removeMultiDragElements();\n multiDragElements.forEach(function (multiDragElement) {\n if (children[multiDragIndex]) {\n parentEl.insertBefore(multiDragElement, children[multiDragIndex]);\n } else {\n parentEl.appendChild(multiDragElement);\n }\n multiDragIndex++;\n });\n\n // If initial folding is done, the elements may have changed position because they are now\n // unfolding around dragEl, even though dragEl may not have his index changed, so update event\n // must be fired here as Sortable will not.\n if (oldIndex === index(dragEl$1)) {\n var update = false;\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement.sortableIndex !== index(multiDragElement)) {\n update = true;\n return;\n }\n });\n if (update) {\n dispatchSortableEvent('update');\n dispatchSortableEvent('sort');\n }\n }\n }\n\n // Must be done after capturing individual rects (scroll bar)\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n toSortable.animateAll();\n }\n multiDragSortable = toSortable;\n }\n\n // Remove clones if necessary\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n multiDragClones.forEach(function (clone) {\n clone.parentNode && clone.parentNode.removeChild(clone);\n });\n }\n },\n nullingGlobal: function nullingGlobal() {\n this.isMultiDrag = dragStarted = false;\n multiDragClones.length = 0;\n },\n destroyGlobal: function destroyGlobal() {\n this._deselectMultiDrag();\n off(document, 'pointerup', this._deselectMultiDrag);\n off(document, 'mouseup', this._deselectMultiDrag);\n off(document, 'touchend', this._deselectMultiDrag);\n off(document, 'keydown', this._checkKeyDown);\n off(document, 'keyup', this._checkKeyUp);\n },\n _deselectMultiDrag: function _deselectMultiDrag(evt) {\n if (typeof dragStarted !== \"undefined\" && dragStarted) return;\n\n // Only deselect if selection is in this sortable\n if (multiDragSortable !== this.sortable) return;\n\n // Only deselect if target is not item in this sortable\n if (evt && closest(evt.target, this.options.draggable, this.sortable.el, false)) return;\n\n // Only deselect if left click\n if (evt && evt.button !== 0) return;\n while (multiDragElements.length) {\n var el = multiDragElements[0];\n toggleClass(el, this.options.selectedClass, false);\n multiDragElements.shift();\n dispatchEvent({\n sortable: this.sortable,\n rootEl: this.sortable.el,\n name: 'deselect',\n targetEl: el,\n originalEvent: evt\n });\n }\n },\n _checkKeyDown: function _checkKeyDown(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = true;\n }\n },\n _checkKeyUp: function _checkKeyUp(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = false;\n }\n }\n };\n return _extends(MultiDrag, {\n // Static methods & properties\n pluginName: 'multiDrag',\n utils: {\n /**\r\n * Selects the provided multi-drag item\r\n * @param {HTMLElement} el The element to be selected\r\n */\n select: function select(el) {\n var sortable = el.parentNode[expando];\n if (!sortable || !sortable.options.multiDrag || ~multiDragElements.indexOf(el)) return;\n if (multiDragSortable && multiDragSortable !== sortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n multiDragSortable = sortable;\n }\n toggleClass(el, sortable.options.selectedClass, true);\n multiDragElements.push(el);\n },\n /**\r\n * Deselects the provided multi-drag item\r\n * @param {HTMLElement} el The element to be deselected\r\n */\n deselect: function deselect(el) {\n var sortable = el.parentNode[expando],\n index = multiDragElements.indexOf(el);\n if (!sortable || !sortable.options.multiDrag || !~index) return;\n toggleClass(el, sortable.options.selectedClass, false);\n multiDragElements.splice(index, 1);\n }\n },\n eventProperties: function eventProperties() {\n var _this3 = this;\n var oldIndicies = [],\n newIndicies = [];\n multiDragElements.forEach(function (multiDragElement) {\n oldIndicies.push({\n multiDragElement: multiDragElement,\n index: multiDragElement.sortableIndex\n });\n\n // multiDragElements will already be sorted if folding\n var newIndex;\n if (folding && multiDragElement !== dragEl$1) {\n newIndex = -1;\n } else if (folding) {\n newIndex = index(multiDragElement, ':not(.' + _this3.options.selectedClass + ')');\n } else {\n newIndex = index(multiDragElement);\n }\n newIndicies.push({\n multiDragElement: multiDragElement,\n index: newIndex\n });\n });\n return {\n items: _toConsumableArray(multiDragElements),\n clones: [].concat(multiDragClones),\n oldIndicies: oldIndicies,\n newIndicies: newIndicies\n };\n },\n optionListeners: {\n multiDragKey: function multiDragKey(key) {\n key = key.toLowerCase();\n if (key === 'ctrl') {\n key = 'Control';\n } else if (key.length > 1) {\n key = key.charAt(0).toUpperCase() + key.substr(1);\n }\n return key;\n }\n }\n });\n}\nfunction insertMultiDragElements(clonesInserted, rootEl) {\n multiDragElements.forEach(function (multiDragElement, i) {\n var target = rootEl.children[multiDragElement.sortableIndex + (clonesInserted ? Number(i) : 0)];\n if (target) {\n rootEl.insertBefore(multiDragElement, target);\n } else {\n rootEl.appendChild(multiDragElement);\n }\n });\n}\n\n/**\r\n * Insert multi-drag clones\r\n * @param {[Boolean]} elementsInserted Whether the multi-drag elements are inserted\r\n * @param {HTMLElement} rootEl\r\n */\nfunction insertMultiDragClones(elementsInserted, rootEl) {\n multiDragClones.forEach(function (clone, i) {\n var target = rootEl.children[clone.sortableIndex + (elementsInserted ? Number(i) : 0)];\n if (target) {\n rootEl.insertBefore(clone, target);\n } else {\n rootEl.appendChild(clone);\n }\n });\n}\nfunction removeMultiDragElements() {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n multiDragElement.parentNode && multiDragElement.parentNode.removeChild(multiDragElement);\n });\n}\n\nSortable.mount(new AutoScrollPlugin());\nSortable.mount(Remove, Revert);\n\nexport default Sortable;\nexport { MultiDragPlugin as MultiDrag, Sortable, SwapPlugin as Swap };\n","// 拖拽排序场景中:调整某个元素的顺序\nexport default function swapDragArrayElement(\n data: any[], currentIndex: number, targetIndex: number\n) {\n const newData = [...data];\n if (targetIndex - currentIndex > 0) {\n newData.splice(targetIndex + 1, 0, newData[currentIndex]);\n newData.splice(currentIndex, 1);\n } else {\n newData.splice(targetIndex, 0, newData[currentIndex]);\n newData.splice(currentIndex + 1, 1);\n }\n return newData;\n}\n","// 表格 行拖拽 + 列拖拽功能\nimport { SetupContext, computed, toRefs, ref, watch, h, ComputedRef } from 'vue';\nimport Sortable, { SortableEvent, SortableOptions, MoveEvent } from 'sortablejs';\nimport { isFunction } from 'lodash-es';\nimport { TableRowData, TdPrimaryTableProps, DragSortContext, PrimaryTableCol } from '../type';\nimport useClassName from './useClassName';\nimport log from '@tdesign/common-js/log/index';\nimport { hasClass } from '../../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, set, isObject, cloneDeep, isFunction } from 'lodash-es';\n\nimport { Edit1Icon as TdEdit1Icon } from 'tdesign-icons-vue-next';\nimport {\n TableRowData,\n PrimaryTableCol,\n PrimaryTableRowEditContext,\n PrimaryTableRowValidateContext,\n TdBaseTableProps,\n TableEditableCellPropsParams,\n} from './type';\nimport { TableClassName } from './hooks/useClassName';\nimport { useGlobalIcon, usePrefixClass } from '@tdesign/hooks';\nimport { renderCell } from './tr';\nimport { validate } from '../form/utils/form-model';\nimport log from '@tdesign/common-js/log/index';\nimport { AllValidateResult } from '../form/type';\nimport { on, off } from '../utils/dom';\n\nexport interface OnEditableChangeContext extends PrimaryTableRowEditContext {\n isEdit: boolean;\n validateEdit: (trigger: 'self' | 'parent') => Promise;\n}\n\nexport interface EditableCellProps {\n rowKey: string;\n row: TableRowData;\n rowIndex: number;\n col: PrimaryTableCol;\n colIndex: number;\n oldCell: PrimaryTableCol['cell'];\n tableBaseClass?: TableClassName['tableBaseClass'];\n /** 行编辑需要使用 editable。单元格编辑则无需使用,设置为 undefined */\n editable?: boolean;\n readonly?: boolean;\n errors?: AllValidateResult[];\n cellEmptyContent?: TdBaseTableProps['cellEmptyContent'];\n /** 编辑数据时触发 */\n onChange?: (context: PrimaryTableRowEditContext) => void;\n /** 校验结束后触发 */\n onValidate?: (context: PrimaryTableRowValidateContext) => void;\n /** 校验规则发生变化时触发 */\n onRuleChange?: (context: PrimaryTableRowEditContext) => void;\n /** 进入或退出编辑态时触发 */\n onEditableChange?: (context: OnEditableChangeContext) => void;\n}\n\nexport default defineComponent({\n name: 'TableEditableCell',\n props: {\n row: Object as PropType,\n rowKey: String,\n rowIndex: Number,\n col: Object as PropType,\n colIndex: Number,\n oldCell: [Function, String] as PropType,\n tableBaseClass: Object as PropType,\n cellEmptyContent: [Function, String] as PropType,\n editable: {\n type: Boolean,\n default: undefined,\n },\n readonly: {\n type: Boolean,\n },\n errors: {\n type: Array as PropType,\n default: undefined,\n },\n onChange: Function as PropType,\n onValidate: Function as PropType,\n onRuleChange: Function as PropType,\n onEditableChange: Function as PropType,\n },\n\n emits: ['update-edited-cell'],\n\n setup(props: EditableCellProps, context: SetupContext) {\n const { row, col } = toRefs(props);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const tableEditableCellRef = ref(null);\n const isKeepEditMode = computed(() => col.value.edit?.keepEditMode);\n const isEdit = ref(isKeepEditMode.value || props.col.edit?.defaultEditable || false);\n const editValue = ref();\n const errorList = ref();\n const classPrefix = usePrefixClass();\n\n const { Edit1Icon } = useGlobalIcon({ Edit1Icon: TdEdit1Icon });\n\n const updateEditedCellValue: TableEditableCellPropsParams['updateEditedCellValue'] = (obj) => {\n if (typeof obj === 'object' && ('rowValue' in obj || obj.isUpdateCurrentRow)) {\n const rowValue = obj.isUpdateCurrentRow ? get(row.value, props.rowKey) : obj.rowValue;\n delete obj.rowValue;\n delete obj.isUpdateCurrentRow;\n context.emit('update-edited-cell', rowValue, row.value, obj);\n } else {\n editValue.value = obj;\n }\n };\n\n watch([isKeepEditMode], (val) => {\n if (val) {\n isEdit.value = true;\n }\n });\n\n const editOnListeners = computed(() => {\n return col.value.edit?.on?.({ ...cellParams.value, editedRow: currentRow.value, updateEditedCellValue }) || {};\n });\n\n const cellParams = computed(() => ({\n rowIndex: props.rowIndex,\n colIndex: props.colIndex,\n col: props.col,\n row: props.row,\n }));\n\n const currentRow = computed(() => {\n const { colKey } = col.value;\n // handle colKey like a.b.c\n const [firstKey, ...restKeys] = colKey.split('.') || [];\n const newRow = { ...row.value };\n if (restKeys.length) {\n newRow[firstKey] = cloneDeep(row.value[firstKey]);\n set(newRow[firstKey], restKeys.join('.'), editValue.value);\n } else {\n set(newRow, colKey, editValue.value);\n }\n return newRow;\n });\n\n const cellNode = computed(() => {\n const node = renderCell(\n {\n row: currentRow.value,\n col: { ...col.value, cell: props.oldCell },\n rowIndex: props.rowIndex,\n colIndex: props.colIndex,\n },\n context.slots,\n { cellEmptyContent: props.cellEmptyContent },\n );\n return node;\n });\n\n const editProps = computed(() => {\n const { edit } = col.value;\n return isFunction(edit.props)\n ? edit.props({\n ...cellParams.value,\n editedRow: currentRow.value,\n updateEditedCellValue,\n })\n : { ...edit.props };\n });\n\n const componentProps = computed(() => {\n const { edit } = col.value;\n if (!edit) return {};\n const tmpProps = { ...editProps.value };\n // for removing warn: runtime-core.esm-bundler.js:38 [Vue warn]: Invalid prop: type check failed for prop \"onChange\". Expected Function, got Array\n delete tmpProps.onChange;\n delete tmpProps.value;\n edit.abortEditOnEvent?.forEach((item) => {\n delete tmpProps[item];\n });\n return tmpProps;\n });\n\n const isAbortEditOnChange = computed(() => {\n const { edit } = col.value;\n if (!edit) return false;\n return Boolean(edit.abortEditOnEvent?.includes('onChange'));\n });\n\n const validateEdit = (trigger: 'self' | 'parent'): Promise => {\n return new Promise((resolve) => {\n const params: PrimaryTableRowValidateContext = {\n result: [\n {\n ...cellParams.value,\n errorList: [],\n value: editValue.value,\n },\n ],\n trigger,\n };\n const rules = isFunction(col.value.edit.rules) ? col.value.edit.rules(cellParams.value) : col.value.edit.rules;\n if (!col.value.edit || !rules || !rules.length) {\n props.onValidate?.(params);\n resolve(true);\n return;\n }\n validate(editValue.value, rules).then((result) => {\n const list = result?.filter((t) => !t.result);\n params.result[0].errorList = list;\n props.onValidate?.(params);\n if (!list || !list.length) {\n errorList.value = [];\n resolve(true);\n } else {\n errorList.value = list;\n resolve(list);\n }\n });\n });\n };\n\n const isSame = (a: any, b: any) => {\n if (isObject(a) && isObject(b)) {\n return JSON.stringify(a) === JSON.stringify(b);\n }\n return a === b;\n };\n\n const updateAndSaveAbort = (outsideAbortEvent: Function, eventName: string, ...args: any) => {\n validateEdit('self').then((result) => {\n if (result !== true) return;\n const oldValue = get(row.value, col.value.colKey);\n // 相同的值无需触发变化\n if (!isSame(editValue.value, oldValue)) {\n editValue.value = oldValue;\n outsideAbortEvent?.(...args);\n }\n editOnListeners.value[eventName]?.(args[2]);\n // 此处必须在事件执行完成后异步销毁编辑组件,否则会导致事件清除不及时引起的其他问题\n const timer = setTimeout(() => {\n if (!isKeepEditMode.value) {\n isEdit.value = false;\n }\n errorList.value = [];\n props.onEditableChange?.({\n ...cellParams.value,\n value: editValue.value,\n editedRow: { ...props.row, [props.col.colKey]: editValue.value },\n validateEdit,\n isEdit: false,\n });\n clearTimeout(timer);\n }, 0);\n });\n };\n\n const listeners = computed<{ [key: string]: Function }>(() => {\n const { edit } = col.value;\n const isCellEditable = props.editable === undefined;\n if (!isEdit.value || !isCellEditable) return;\n if (!edit?.abortEditOnEvent?.length) return {};\n // 自定义退出编辑态的事件\n const tListeners: Record = {};\n const outsideAbortEvent = edit?.onEdited;\n edit.abortEditOnEvent.forEach((itemEvent) => {\n if (itemEvent === 'onChange') return;\n tListeners[itemEvent] = (...args: any) => {\n updateAndSaveAbort(\n outsideAbortEvent,\n itemEvent,\n {\n ...cellParams.value,\n trigger: itemEvent,\n newRowData: currentRow.value,\n },\n ...args,\n );\n };\n });\n\n return tListeners;\n });\n\n // 数据输入时触发\n const onEditChange = (val: any, ...args: any) => {\n editValue.value = val;\n const params = {\n ...cellParams.value,\n value: val,\n editedRow: { ...props.row, [props.col.colKey]: val },\n };\n editProps.value?.onChange?.(val, ...args);\n props.onChange?.(params);\n props.onRuleChange?.(params);\n editOnListeners.value?.onChange?.(params);\n const isCellEditable = props.editable === undefined;\n if (isCellEditable && isAbortEditOnChange.value) {\n const outsideAbortEvent = col.value.edit?.onEdited;\n updateAndSaveAbort(\n outsideAbortEvent,\n 'change',\n {\n ...cellParams.value,\n trigger: 'onChange',\n newRowData: currentRow.value,\n },\n ...args,\n );\n }\n if (col.value.edit?.validateTrigger === 'change') {\n validateEdit('self');\n }\n };\n\n const documentClickHandler = (e: MouseEvent) => {\n if (!col.value.edit || !col.value.edit.component) return;\n if (!isEdit.value) return;\n // @ts-ignore some browser is also only support e.path\n const path = e.composedPath?.() || e.path || [];\n const node = path.find((node: HTMLElement) => node.classList?.contains(`${classPrefix.value}-popup__content`));\n if (node) return;\n const outsideAbortEvent = col.value.edit.onEdited;\n updateAndSaveAbort(outsideAbortEvent, '', {\n ...cellParams.value,\n trigger: 'document',\n newRowData: currentRow.value,\n });\n };\n\n const enterEdit = () => {\n props.onEditableChange?.({\n ...cellParams.value,\n value: editValue.value,\n editedRow: props.row,\n isEdit: true,\n validateEdit,\n });\n };\n\n const onCellClick = (e: MouseEvent) => {\n isEdit.value = true;\n enterEdit();\n e.stopPropagation();\n };\n\n onMounted(() => {\n if (props.col.edit?.defaultEditable) {\n enterEdit();\n }\n });\n\n const cellValue = computed(() => get(row.value, col.value.colKey));\n\n watch(\n cellValue,\n (cellValue) => {\n editValue.value = cellValue;\n },\n { immediate: true },\n );\n\n watch(\n isEdit,\n (isEdit) => {\n const isCellEditable = props.editable === undefined;\n if (!col.value.edit || !col.value.edit.component || !isCellEditable) return;\n if (isEdit) {\n on(document, 'click', documentClickHandler);\n } else {\n off(document, 'click', documentClickHandler);\n }\n },\n { immediate: true },\n );\n\n watch(\n () => [props.editable, props.row, props.col, props.rowIndex, props.colIndex],\n ([editable]: [boolean]) => {\n // 退出编辑态时,恢复原始值,等待父组件传入新的 data 值\n if (editable === false) {\n editValue.value = cellValue.value;\n } else if (editable === true) {\n props.onRuleChange?.({\n ...cellParams.value,\n value: cellValue.value,\n editedRow: row.value,\n });\n }\n },\n { immediate: true },\n );\n\n watch(\n () => props.errors,\n (errors) => {\n errorList.value = errors;\n },\n );\n\n return () => {\n if (props.readonly) {\n return cellNode.value;\n }\n // props.editable = undefined 表示由组件内部控制编辑状态\n if ((props.editable === undefined && !isEdit.value) || props.editable === false) {\n return (\n
    \n {cellNode.value}\n {col.value.edit?.showEditIcon !== false && }\n
    \n );\n }\n const Component = col.value.edit?.component;\n if (!Component) {\n log.error('Table', 'edit.component is required.');\n return null;\n }\n const errorMessage = errorList.value?.[0]?.message;\n const tmpEditOnListeners = { ...editOnListeners.value };\n delete tmpEditOnListeners.onChange;\n // remove conflict events\n if (col.value.edit?.abortEditOnEvent?.length) {\n col.value.edit.abortEditOnEvent.forEach((onEventName) => {\n if (tmpEditOnListeners[onEventName]) {\n delete tmpEditOnListeners[onEventName];\n }\n });\n }\n return (\n {\n e.stopPropagation();\n }}\n ref=\"tableEditableCellRef\"\n >\n \n \n );\n };\n },\n});\n","import { ref, computed, watch, toRefs } from 'vue';\nimport { get, set, cloneDeep, isFunction } from 'lodash-es';\n\nimport { PrimaryTableProps } from '../interface';\nimport { getEditableKeysMap } from '@tdesign/common-js/table/utils';\nimport { validate } from '../../form/utils/form-model';\n\nimport {\n PrimaryTableRowEditContext,\n TableRowData,\n TableErrorListMap,\n PrimaryTableInstanceFunctions,\n ErrorListObjectType,\n PrimaryTableCellParams,\n} from '../type';\nimport { getCellKey, getRowKeyFromCell } from './useRowspanAndColspan';\nimport { OnEditableChangeContext } from '../editable-cell';\n\nexport interface TablePromiseErrorData {\n errors: ErrorListObjectType[];\n errorMap: TableErrorListMap;\n}\n\nexport default function useRowEdit(props: PrimaryTableProps) {\n const { editableRowKeys } = toRefs(props);\n const cellRuleMap = new Map[]>();\n // 校验不通过的错误信息,其中 key 值为 [rowValue, col.colKey].join('__')\n const errorListMap = ref({});\n // 处于编辑态的表格行\n const editableKeysMap = computed(() => getEditableKeysMap(props.editableRowKeys, props.data, props.rowKey || 'id'));\n // 当前编辑的单元格\n const editingCells = ref<{ [cellKey: string]: OnEditableChangeContext }>({});\n // 编辑状态的数据\n const editedFormData = ref<{ [rowValue: string]: { [colKey: string]: any } }>({});\n\n const getErrorListMapByErrors = (errors: ErrorListObjectType[]): TableErrorListMap => {\n const errorMap: TableErrorListMap = {};\n errors.forEach(({ row, col, errorList }) => {\n const rowValue = get(row, props.rowKey || 'id');\n const key = [rowValue, col.colKey].join('__');\n if (errorList?.length) {\n errorMap[key] = errorList;\n } else {\n delete errorMap[key];\n }\n });\n return errorMap;\n };\n\n // 校验一行的数据\n const validateOneRowData = (rowValue: any) => {\n const rowRules = cellRuleMap.get(rowValue);\n if (!rowRules) return;\n const list = rowRules.map(\n (item) =>\n new Promise>((resolve) => {\n const { editedRow, col } = item;\n const rules = isFunction(col.edit.rules) ? col.edit.rules(item) : col.edit.rules;\n if (!col.edit || !rules || !rules.length) {\n resolve({ ...item, errorList: [] });\n return;\n }\n validate(get(editedRow, col.colKey), rules).then((r) => {\n resolve({ ...item, errorList: r.filter((t) => !t.result) });\n });\n }),\n );\n return new Promise((resolve, reject) => {\n Promise.all(list).then((errors) => {\n resolve({\n errors: errors.filter((t) => t.errorList?.length),\n errorMap: getErrorListMapByErrors(errors),\n });\n }, reject);\n });\n };\n\n /**\n * 校验表格单行数据(对外开放方法,修改时需慎重)\n * @param rowValue 行唯一标识\n */\n const validateRowData: PrimaryTableInstanceFunctions['validateRowData'] = (rowValue: any) =>\n new Promise((resolve, reject) => {\n validateOneRowData(rowValue).then(({ errors, errorMap }) => {\n errorListMap.value = errorMap;\n // 缺少校验文本显示\n const tTrigger = 'parent';\n props.onRowValidate?.({ trigger: tTrigger, result: errors });\n resolve({ trigger: tTrigger, result: errors });\n }, reject);\n });\n\n // 校验可编辑单元格\n const validateTableCellData = (): Promise<{ result: TableErrorListMap }> => {\n const cellKeys = Object.keys(editingCells.value);\n\n // 过滤不存在的行,如删除操作\n const existKeys = props.data.map((v) => v[props.rowKey]?.toString());\n const promiseList = cellKeys\n .filter((v) => existKeys.includes(getRowKeyFromCell(v)))\n .map((cellKey) => editingCells.value[cellKey].validateEdit('parent'));\n return new Promise((resolve, reject) => {\n Promise.all(promiseList).then((arr) => {\n const allErrorListMap: TableErrorListMap = {};\n arr.forEach((result, index) => {\n if (result === true) return;\n allErrorListMap[cellKeys[index]] = result;\n });\n props.onValidate?.({ result: allErrorListMap });\n resolve({ result: allErrorListMap });\n }, reject);\n });\n };\n\n /**\n * 校验整个表格数据(对外开放方法,修改时需慎重)\n */\n const validateTableData: PrimaryTableInstanceFunctions['validateTableData'] = () => {\n if (Object.keys(editingCells.value).length) {\n return validateTableCellData();\n }\n const promiseList: Promise[] = [];\n\n const data = props.data || [];\n for (let i = 0, len = data.length; i < len; i++) {\n const rowValue = get(data[i], props.rowKey || 'id');\n promiseList.push(validateOneRowData(rowValue));\n }\n return new Promise((resolve, reject) => {\n Promise.all(promiseList).then((rList) => {\n const allErrorListMap: TableErrorListMap = {};\n rList.forEach(({ errorMap } = { errors: [], errorMap: {} }) => {\n errorMap && Object.assign(allErrorListMap, errorMap);\n });\n errorListMap.value = allErrorListMap;\n props.onValidate?.({ result: allErrorListMap });\n resolve({ result: allErrorListMap });\n }, reject);\n });\n };\n\n /** 更新编辑态单元格数据 */\n const onUpdateEditedCell = (rowValue: any, lastRowData: TableRowData, data: { [key: string]: any }) => {\n if (!editedFormData.value[rowValue]) {\n editedFormData.value[rowValue] = cloneDeep(lastRowData);\n }\n Object.entries(data).forEach(([key, val]) => {\n set(editedFormData.value[rowValue], key, val);\n });\n };\n\n const onRuleChange = (context: PrimaryTableRowEditContext) => {\n // 编辑行,预存校验信息,方便最终校验\n if (props.editableRowKeys) {\n const rowValue = get(context.row, props.rowKey || 'id');\n const rules = cellRuleMap.get(rowValue);\n if (rules) {\n const index = rules.findIndex((t) => t.col.colKey === context.col.colKey);\n if (index === -1) {\n rules.push(context);\n } else {\n rules[index] = context;\n }\n cellRuleMap.set(rowValue, rules);\n } else {\n cellRuleMap.set(rowValue, [context]);\n }\n }\n };\n\n const clearValidateData = () => {\n errorListMap.value = {};\n };\n\n const onPrimaryTableCellEditChange = (params: OnEditableChangeContext) => {\n const cellKey = getCellKey(params.row, props.rowKey, params.col.colKey, params.colIndex);\n\n if (params.isEdit) {\n // @ts-ignore\n editingCells.value[cellKey] = params;\n } else {\n delete editingCells.value[cellKey];\n }\n };\n\n const getEditRowData = ({ row, col }: PrimaryTableCellParams) => {\n const rowValue = get(row, props.rowKey || 'id');\n const editedRowData = editedFormData.value[rowValue];\n if (editedRowData && props.editableRowKeys?.includes(rowValue)) {\n const tmpRow = { ...editedRowData };\n set(tmpRow, col.colKey, get(editedRowData, col.colKey));\n return tmpRow;\n }\n return row;\n };\n\n watch(\n () => editableRowKeys.value?.join(','),\n (keyStr) => {\n const editableRowKeys = keyStr.split(',');\n const rowValueList = Object.keys(editedFormData.value);\n rowValueList.forEach((key) => {\n if (!editableRowKeys.includes(key)) {\n // clear exited editable state row data\n delete editedFormData.value[key];\n }\n });\n },\n );\n\n return {\n editedFormData,\n errorListMap,\n editableKeysMap,\n validateTableData,\n validateTableCellData,\n validateRowData,\n onRuleChange,\n clearValidateData,\n onUpdateEditedCell,\n getEditRowData,\n onPrimaryTableCellEditChange,\n };\n}\n","import { computed, defineComponent, toRefs, h, ref, onMounted, getCurrentInstance } from 'vue';\nimport { get, omit } from 'lodash-es';\n\nimport baseTableProps from './base-table-props';\nimport primaryTableProps from './primary-table-props';\nimport BaseTable from './base-table';\nimport { useConfig, useTNodeJSX, ScrollToElementParams } from '@tdesign/hooks';\nimport useColumnController from './hooks/useColumnController';\nimport useRowExpand from './hooks/useRowExpand';\nimport useTableHeader, { renderTitle } from './hooks/useTableHeader';\nimport useRowSelect from './hooks/useRowSelect';\nimport { TdPrimaryTableProps, PrimaryTableCol, TableRowData, PrimaryTableCellParams } from './type';\nimport useSorter from './hooks/useSorter';\nimport useFilter from './hooks/useFilter';\nimport useDragSort from './hooks/useDragSort';\nimport useAsyncLoading from './hooks/useAsyncLoading';\nimport EditableCell, { EditableCellProps } from './editable-cell';\nimport { PageInfo } from '../pagination';\nimport useClassName from './hooks/useClassName';\n\nimport useEditableRow from './hooks/useEditableRow';\nimport useStyle from './hooks/useStyle';\n\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 { useConfig, useTNodeJSX, useGlobalIcon, useDefaultValue } from '@tdesign/hooks';\n\nexport default function useRowExpand(props: TdPrimaryTableProps, context: SetupContext) {\n const { expandedRowKeys } = toRefs(props);\n const renderTNode = useTNodeJSX();\n const { t, globalConfig } = useConfig('table', props.locale);\n const { ChevronRightCircleIcon } = useGlobalIcon({ ChevronRightCircleIcon: TdChevronRightCircleIcon });\n const { tableExpandClasses, positiveRotate90, tableFullRowClasses } = useClassName();\n // controlled and uncontrolled\n const [tExpandedRowKeys, setTExpandedRowKeys] = useDefaultValue(\n expandedRowKeys,\n props.defaultExpandedRowKeys || [],\n props.onExpandChange,\n 'expandedRowKeys',\n );\n\n const showExpandedRow = computed(() =>\n Boolean(props.expandedRow || context.slots.expandedRow || context.slots['expanded-row']),\n );\n\n const showExpandIconColumn = computed(() => props.expandIcon !== false && showExpandedRow.value);\n\n const isFirstColumnFixed = computed(() => props.columns?.[0]?.fixed === 'left');\n\n const getExpandedRowClass = (params: RowClassNameParams) => {\n // 如果没有配置展开行,则不需要增加展开收起相关的类名\n if (!showExpandedRow.value) return null;\n const { row, rowKey } = params;\n const currentRowKey = get(row, rowKey || 'id');\n return tableExpandClasses[tExpandedRowKeys.value?.includes(currentRowKey) ? 'rowExpanded' : 'rowFolded'];\n };\n\n const onToggleExpand = (e: MouseEvent, row: TableRowData) => {\n props.expandOnRowClick && e.stopPropagation();\n const currentId = get(row, props.rowKey || 'id');\n const index = tExpandedRowKeys.value.indexOf(currentId);\n const newKeys = [...tExpandedRowKeys.value];\n index !== -1 ? newKeys.splice(index, 1) : newKeys.push(currentId);\n setTExpandedRowKeys(newKeys, {\n expandedRowData: props.data.filter((t) => newKeys.includes(get(t, props.rowKey || 'id'))),\n currentRowData: row,\n });\n };\n\n const renderExpandIcon = (_: typeof h, p: PrimaryTableCellParams) => {\n const { row, rowIndex } = p;\n const currentId = get(row, props.rowKey || 'id');\n const expanded = tExpandedRowKeys.value.includes(currentId);\n const icon = renderTNode('expandIcon', {\n defaultNode: t(globalConfig.value.expandIcon) || ,\n params: { row, index: rowIndex },\n });\n if (!icon) return null;\n const classes = [\n tableExpandClasses.iconBox,\n tableExpandClasses[expanded ? 'expanded' : 'collapsed'],\n { [positiveRotate90]: expanded },\n ];\n return (\n onToggleExpand(e, row)}>\n {icon}\n \n );\n };\n\n const getExpandColumn = () => {\n const expandCol: PrimaryTableCol = {\n colKey: '__EXPAND_ROW_ICON_COLUMN__',\n width: 46,\n className: tableExpandClasses.iconCell,\n fixed: isFirstColumnFixed.value ? 'left' : undefined,\n cell: renderExpandIcon,\n stopPropagation: true,\n };\n return expandCol;\n };\n\n const renderExpandedRow = (\n p: TableExpandedRowParams & { tableWidth: number; isWidthOverflow: boolean },\n ) => {\n const rowId = get(p.row, props.rowKey || 'id');\n if (!tExpandedRowKeys.value || !tExpandedRowKeys.value.includes(rowId)) return null;\n const isFixedLeft = p.isWidthOverflow && props.columns.find((item) => item.fixed === 'left');\n return (\n \n \n \n
    {renderTNode('expandedRow', { params: p })}
    \n \n \n \n );\n };\n\n const onInnerExpandRowClick = (p: RowEventContext) => {\n onToggleExpand(p.e as MouseEvent, p.row);\n };\n\n return {\n showExpandedRow,\n showExpandIconColumn,\n getExpandColumn,\n renderExpandedRow,\n onInnerExpandRowClick,\n getExpandedRowClass,\n };\n}\n","import { isString } from 'lodash-es';\nimport { computed } from 'vue';\nimport { useConfig, useTNodeJSX } from '@tdesign/hooks';\nimport { TdPrimaryTableProps } from '../type';\nimport Loading from '../../loading';\nimport useClassName from './useClassName';\n\nexport default function useAsyncLoading(props: TdPrimaryTableProps) {\n const renderTNode = useTNodeJSX();\n const { globalConfig } = useConfig('table', props.locale);\n const { isLoadingClass, isLoadMoreClass, asyncLoadingClass } = useClassName();\n\n const classes = computed(() => [\n asyncLoadingClass,\n {\n [isLoadingClass]: props.asyncLoading === 'loading',\n [isLoadMoreClass]: props.asyncLoading === 'load-more',\n },\n ]);\n\n function onLoadClick() {\n if (!isString(props.asyncLoading)) return;\n props.onAsyncLoadingClick?.({ status: props.asyncLoading });\n }\n\n function renderAsyncLoading() {\n const asyncLoadingNode = renderTNode('asyncLoading');\n if (isString(asyncLoadingNode)) {\n const { asyncLoading } = props;\n const loadingText = {\n 'load-more': globalConfig.value.loadingMoreText,\n loading: globalConfig.value.loadingText,\n }[String(asyncLoading)];\n return (\n
    \n {}\n
    \n );\n }\n if (![null, false, undefined].includes(asyncLoadingNode)) {\n return (\n
    \n {asyncLoadingNode}\n
    \n );\n }\n return null;\n }\n return {\n renderAsyncLoading,\n };\n}\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdEnhancedTableProps } from '../table/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 树形结构中,拖拽排序前控制,返回值为 `true` 则继续排序;返回值为 `false` 则中止排序还原数据 */\n beforeDragSort: {\n type: Function as PropType,\n },\n /** 展开的树形节点。非必须。在需要自由控制展开的树形节点时使用。其他场景无需设置,表格组件有内置展开逻辑 */\n expandedTreeNodes: {\n type: Array as PropType,\n default: undefined as TdEnhancedTableProps['expandedTreeNodes'],\n },\n /** 展开的树形节点。非必须。在需要自由控制展开的树形节点时使用。其他场景无需设置,表格组件有内置展开逻辑,非受控属性 */\n defaultExpandedTreeNodes: {\n type: Array as PropType,\n default: (): TdEnhancedTableProps['defaultExpandedTreeNodes'] => [],\n },\n /** 树形结构相关配置。具体属性文档查看 `TableTreeConfig` 相关描述 */\n tree: {\n type: Object as PropType,\n },\n /** 自定义树形结构展开图标,支持全局配置 `GlobalConfigProvider` */\n treeExpandAndFoldIcon: {\n type: Function as PropType,\n },\n /** 异常拖拽排序时触发,如:树形结构中,非同层级之间的交换。`context.code` 指交换异常错误码,固定值;`context.reason` 指交换异常的原因 */\n onAbnormalDragSort: Function as PropType,\n /** 树形结构,展开的树节点发生变化时触发,泛型 T 指表格数据类型 */\n onExpandedTreeNodesChange: Function as PropType,\n /** 已废弃。树形结构,用户操作引起节点展开或收起时触发。请更为使用 `onExpandedTreeNodesChange` */\n onTreeExpandChange: Function as PropType,\n};\n","import { isUndefined, get, set } from 'lodash-es';\n/* eslint-disable class-methods-use-this */\n/* eslint-disable no-param-reassign */\n/* eslint-disable no-use-before-define */\nimport { isRowSelectedDisabled } from './utils';\nimport { PrimaryTableCol, TableRowState, TableRowValue, TableRowData } from './types';\nimport log from '../log';\n\nexport type TableTreeDataMap = Map;\n\nexport interface TableRowModel extends TableRowState {\n setData?: (key: string | number, data: T) => void;\n}\n\nexport interface KeysType {\n rowKey: string;\n childrenKey: string;\n}\n\nexport interface SwapParams {\n current: T;\n target: T;\n currentIndex: number;\n targetIndex: number;\n}\n\nexport const TABLE_TREE_ERROR_CODE_NOT_SAME_LEVEL = {\n code: 1001,\n reason: 'The same level of rows can not be swapped.',\n};\n\n/**\n * 获取行唯一标识\n * @param row 行数据\n * @param colKey 列字段\n * @param rowIndex 行下标\n * @param level 层级\n */\nexport function getUniqueRowValue(row: TableRowData, colKey: string, rowIndex: number = 0, level: number = 0) {\n const rowValue = get(row, colKey);\n return rowIndex || level ? `${rowValue}_${rowIndex || 0}_${level || 0}}` : rowValue;\n}\n\n/**\n * 表格树形结构处理器\n * Vue 和 React 可以通用\n * 关键函数有以下几个\n * @toggleExpandData 处理树形结构展开收起\n * @setData 更新当行数据\n * @getData 获取单行数据\n * @remove 移除行数据,及其子节点\n * @appendTo 追加子节点到末尾\n */\nclass TableTreeStore {\n /** 树形结构 Map 存储 */\n treeDataMap: TableTreeDataMap = new Map();\n\n expandAllRowIndex: 0;\n\n constructor() {\n this.treeDataMap = new Map();\n }\n\n /**\n * 初始化 treeDataMap,不会改变 dataSource\n * @param dataSource 树形数据源\n * @param columns 列配置\n * @param keys 字段别名\n */\n initialTreeStore(dataSource: T[], columns: PrimaryTableCol[], keys: KeysType) {\n this.treeDataMap?.clear();\n this.initialTreeDataMap(this.treeDataMap, dataSource, columns.find((col) => col.colKey === 'row-select'), keys);\n }\n\n /**\n * 获取所有节点的唯一标识\n */\n getAllUniqueKeys(data: T[], keys: KeysType, arr: T[] = []) {\n for (let i = 0, len = data.length; i < len; i++) {\n const item = data[i];\n arr.push(getUniqueRowValue(item, keys.rowKey));\n const children = get(item, keys.childrenKey);\n if (children?.length) {\n this.getAllUniqueKeys(children, keys, arr);\n }\n }\n return arr;\n }\n\n getExpandedChildrenKeys(data: T[], keys: KeysType, arr: (string | number)[] = []) {\n for (let i = 0, len = data.length; i < len; i++) {\n const item = data[i];\n const rowValue = getUniqueRowValue(item, keys.rowKey);\n const rowState = this.treeDataMap.get(rowValue);\n if (rowState.expanded) {\n arr.push(rowValue);\n }\n const children = get(item, keys.childrenKey);\n if (children?.length) {\n this.getExpandedChildrenKeys(children, keys, arr);\n }\n }\n return arr;\n }\n\n expandTreeNode(rowList: (string | number)[], dataSource: T[], keys: KeysType) {\n if (!rowList.length) return dataSource;\n rowList.forEach((rowValue) => {\n const rowState = this.treeDataMap.get(rowValue);\n if (!rowState) return;\n this.toggleExpandData({ row: rowState.row as T, rowIndex: rowState.rowIndex }, dataSource, keys, 'expand');\n });\n return dataSource;\n }\n\n foldTreeNode(rowList: (string | number)[], dataSource: T[], keys: KeysType) {\n if (!rowList.length) return dataSource;\n rowList.forEach((rowValue) => {\n const rowState = this.treeDataMap.get(rowValue);\n if (!rowState) return;\n this.toggleExpandData({ row: rowState.row as T, rowIndex: rowState.rowIndex }, dataSource, keys, 'fold');\n });\n return dataSource;\n }\n\n toggleExpandData(p: { rowIndex: number; row: T }, dataSource: T[], keys: KeysType, type?: 'expand' | 'fold') {\n if (!p) {\n log.error('EnhancedTable', 'the node toggleExpanded doest not exist in `data`');\n return dataSource;\n }\n const rowValue = get(p.row, keys.rowKey);\n if (isUndefined(rowValue)) {\n log.error('EnhancedTable', '`rowKey` could be wrong, can not get rowValue from `data` by `rowKey`.');\n return [];\n }\n const childrenNodes = get(p.row, keys.childrenKey);\n // childrenNodes = true,表示懒加载,直接返回,暂时不做展开处理\n if (childrenNodes === true) return dataSource;\n const r = this.treeDataMap.get(rowValue);\n if (type === 'expand' && r.expanded) return dataSource;\n if (type === 'fold' && !r.expanded) return dataSource;\n r.rowIndex = r.rowIndex ?? p.rowIndex;\n r.expanded = !r.expanded;\n this.treeDataMap.set(rowValue, r);\n return this.updateExpandRow(r, dataSource, keys);\n }\n\n updateExpandRow(changeRow: TableRowState, dataSource: T[], keys: KeysType): T[] {\n const { row, rowIndex, expanded } = changeRow;\n const { treeDataMap } = this;\n const childrenNodes = get(row, keys.childrenKey);\n if (!row || !childrenNodes) return dataSource;\n if (expanded) {\n updateChildrenRowState(treeDataMap, changeRow, expanded, keys);\n updateRowExpandLength(treeDataMap, row, childrenNodes.length, 'expand', keys);\n // eslint-disable-next-line\n dataSource.splice.apply(dataSource, [rowIndex + 1, 0].concat(childrenNodes));\n } else {\n updateChildrenRowState(treeDataMap, changeRow, expanded, keys);\n const len = changeRow.expandChildrenLength || childrenNodes.length;\n updateRowExpandLength(treeDataMap, row, -1 * len, 'fold', keys);\n dataSource.splice(rowIndex + 1, len);\n }\n // 展开或收起后,会影响后续节点的 rowIndex,需同步更新\n updateRowIndex(treeDataMap, dataSource, {\n rowKey: keys.rowKey,\n minRowIndex: rowIndex + 1,\n });\n return dataSource;\n }\n\n /**\n * 获取当前行全部数据\n * @param key 行唯一标识\n * @returns {TableRowState} 当前行数据\n */\n getData(key: TableRowValue): TableRowState {\n return this.treeDataMap.get(key);\n }\n\n /**\n * 更新当前行数据,并返回当前行下标\n * @param rowValue 当前行唯一标识值\n * @param newRowData 新行数据\n * @returns {number} rowIndex 设置的行下标\n */\n updateData(rowValue: TableRowValue, newRowData: T, dataSource: T[], keys: KeysType): number {\n const newRowValue = getUniqueRowValue(newRowData, keys.rowKey);\n const rowState = this.treeDataMap.get(rowValue);\n // Map 没有查询到,或者查询到的 rowIndex 值为 -1,均表示当前数据不在 dataSource 列表中,未显示在页面中\n if (!rowState || rowState.rowIndex === -1) {\n updateRowData(dataSource, rowValue, newRowData, {\n rowKey: keys.rowKey,\n childrenKey: keys.childrenKey,\n });\n return -1;\n }\n\n // 懒加载处理:children 为 true,则需清空子元素在 map 中的值,而后方便重新加载\n if (get(newRowData, keys.childrenKey) === true) {\n const oldChildren = get(rowState.row, keys.childrenKey);\n if (oldChildren?.length) {\n for (let i = 0, len = oldChildren.length; i < len; i++) {\n const rowValue = getUniqueRowValue(oldChildren[i], keys.rowKey);\n const state = this.treeDataMap.get(rowValue);\n if (state) {\n this.treeDataMap.delete(rowValue);\n }\n }\n }\n }\n\n const currentRowIndex = rowState.rowIndex;\n rowState.row = newRowData;\n rowState.id = newRowValue;\n\n // 更新父元素中存储的当前元素值\n if (rowState.parent) {\n // 更新直接子元素数组\n const siblings = get(rowState.parent.row, keys.childrenKey);\n const index = siblings.findIndex((item: T) => getUniqueRowValue(item, keys.rowKey) === rowValue);\n siblings[index] = newRowData;\n }\n\n this.treeDataMap.set(newRowValue, rowState);\n // rowValue 也发生了变化,需移除 旧 rowValue 数据\n if (rowValue !== newRowValue) {\n this.treeDataMap.delete(rowValue);\n }\n return currentRowIndex;\n }\n\n /**\n * 移除指定节点\n * @param key 行唯一标识\n */\n remove(key: TableRowValue, dataSource: T[], keys: KeysType): T[] {\n const r = this.treeDataMap.get(key);\n if (r && r.rowIndex >= 0) {\n // 移除当前节点时,展开的节点的子节点需同步移除\n const removeNumber = (r.expandChildrenLength || 0) + 1;\n dataSource.splice(r.rowIndex, removeNumber);\n\n if (r.parent) {\n const siblings = get(r.parent.row, keys.childrenKey);\n const index = siblings.findIndex((item: TableRowData) => get(item, keys.rowKey) === key);\n siblings.splice(index, 1);\n updateRowExpandLength(this.treeDataMap, r.parent.row, -1 * removeNumber, 'delete', keys);\n }\n\n this.treeDataMap.delete(key);\n\n // 更新 rowIndex 之后的下标\n updateRowIndex(this.treeDataMap, dataSource, {\n minRowIndex: r.rowIndex,\n rowKey: keys.rowKey,\n type: 'remove',\n });\n } else {\n log.warn('EnhancedTable', 'Can not remove this node, which is not appeared.');\n }\n return dataSource;\n }\n\n /**\n * 清除子节点\n * @param key\n * @param dataSource\n * @param keys\n */\n removeChildren(key: TableRowValue, dataSource: T[], keys: KeysType): T[] {\n const r = this.treeDataMap.get(key);\n if (r && r.rowIndex >= 0) {\n const removeNumber = r.expandChildrenLength || 0;\n if (removeNumber) {\n dataSource.splice(r.rowIndex + 1, removeNumber);\n }\n if (r.parent) {\n updateRowExpandLength(this.treeDataMap, r.parent.row, -1 * removeNumber, 'delete', keys);\n }\n r.expandChildrenLength = 0;\n r.expanded = false;\n set(r.row, keys.childrenKey, undefined);\n this.treeDataMap.set(key, r);\n // 更新 rowIndex 之后的下标\n if (removeNumber) {\n updateRowIndex(this.treeDataMap, dataSource, {\n minRowIndex: r.rowIndex + 1,\n rowKey: keys.rowKey,\n type: 'remove',\n });\n }\n } else {\n log.warn('EnhancedTable', 'Can not remove this node\\'s children, which is not appeared.');\n }\n return dataSource;\n }\n\n /**\n * 为当前节点添加子节点,默认添加到最后一个节点。允许添加单个或多个\n * @param rowValue 当前节点唯一标识\n * @param newData 待添加的新节点\n */\n appendTo(rowValue: string | number, newData: T | T[], dataSource: T[], keys: KeysType): T[] {\n const state = this.treeDataMap.get(rowValue);\n if (!this.validateDataExist(state, rowValue)) return dataSource;\n const children: T[] = get(state.row, keys.childrenKey);\n // 子节点不存在,则表示为叶子节点\n const isShowNewNode = state.expanded || !children?.length;\n // 添加多个子节点时,需去除重复子节点\n const tmpData = newData instanceof Array ? newData : [newData];\n const newChildrenData: T[] = [];\n const newChildrenStates: TableRowState[] = [];\n let firstNewChildrenIndex = -1;\n for (let i = 0, len = tmpData.length; i < len; i++) {\n const oneData = tmpData[i];\n const newRowValue = getUniqueRowValue(oneData, keys.rowKey);\n const mapState = this.treeDataMap.get(newRowValue);\n if (!this.validateDataDoubleExist(mapState, newRowValue)) {\n log.warn('Table', `Duplicated Data \\`${newRowValue}\\` has been removed.`);\n } else {\n const rowIndex = isShowNewNode ? state.rowIndex + (state.expandChildrenLength || 0) + (i + 1) : -1;\n if (i === 0) {\n firstNewChildrenIndex = rowIndex;\n }\n const newState = {\n id: newRowValue,\n row: oneData,\n rowIndex,\n level: state.level + 1,\n expanded: false,\n expandChildrenLength: 0,\n disabled: false,\n path: [...state.path],\n parent: state,\n };\n newState.path = newState.path.concat(newState);\n newChildrenData.push(oneData);\n newChildrenStates.push(newState);\n this.treeDataMap.set(newRowValue, newState);\n }\n }\n if (!newChildrenData.length) return dataSource;\n\n if (children?.length) {\n state.row[keys.childrenKey] = state.row[keys.childrenKey].concat(newChildrenData);\n } else {\n state.row[keys.childrenKey] = newChildrenData;\n state.expanded = true;\n }\n\n // 如果当前节点为展开状态,则需要继续处理\n if (isShowNewNode) {\n dataSource.splice(firstNewChildrenIndex, 0, ...newChildrenData);\n // 更新父元素及祖先元素展开子节点的数量\n const newChildrenCount = newChildrenData.length || 1;\n updateRowExpandLength(this.treeDataMap, state.row, newChildrenCount, 'insert', {\n rowKey: keys.rowKey,\n childrenKey: keys.childrenKey,\n });\n // 更新 rowIndex 之后的下标\n updateRowIndex(this.treeDataMap, dataSource, {\n minRowIndex: firstNewChildrenIndex + newChildrenData.length - 1,\n rowKey: keys.rowKey,\n type: 'add',\n count: 1,\n });\n }\n\n return dataSource;\n }\n\n appendToRoot(newData: T | T[], dataSource: T[], keys: KeysType) {\n const newDataSource = dataSource.concat(newData);\n const tmpNewData = newData instanceof Array ? newData : [newData];\n const dataSourceLen = dataSource.length;\n for (let i = 0, len = tmpNewData.length; i < len; i++) {\n const rowValue = get(tmpNewData[i], keys.rowKey);\n if (!rowValue) {\n log.error('Table', '`rowKey` could be wrong, can not get rowValue from `data` by `rowKey`.');\n continue;\n }\n const state: TableRowState = {\n id: rowValue,\n row: tmpNewData[i],\n rowIndex: dataSourceLen + i,\n level: 0,\n expanded: false,\n expandChildrenLength: 0,\n disabled: false,\n };\n state.path = [state];\n this.treeDataMap.set(rowValue, state);\n }\n return newDataSource;\n }\n\n /**\n * 在当前节点后,插入一个兄弟节点\n * @param rowValue 当前节点唯一标识\n * @param newData 待添加的新节点\n */\n insertAfter(rowValue: string | number, newData: T, dataSource: T[], keys: KeysType): T[] {\n return this.insert(rowValue, newData, dataSource, keys, 'after');\n }\n\n /**\n * 在当前节点前,插入一个兄弟节点\n * @param rowValue 当前节点唯一标识\n * @param newData 待添加的新节点\n */\n insertBefore(rowValue: string | number, newData: T, dataSource: T[], keys: KeysType): T[] {\n return this.insert(rowValue, newData, dataSource, keys, 'before');\n }\n\n insert(rowValue: string | number, newData: T, dataSource: T[], keys: KeysType, type: 'before' | 'after') {\n const state = this.treeDataMap.get(rowValue);\n if (!this.validateDataExist(state, rowValue)) return dataSource;\n const newRowValue = get(newData, keys.rowKey);\n const mapState = this.treeDataMap.get(newRowValue);\n if (!this.validateDataDoubleExist(mapState, newRowValue)) return dataSource;\n const rowIndex = type === 'after' ? state.rowIndex + 1 : state.rowIndex;\n const newState = {\n id: newRowValue,\n row: newData,\n rowIndex,\n level: state.level,\n expanded: false,\n expandChildrenLength: 0,\n disabled: false,\n path: state.path.slice(0, -1),\n parent: state.parent,\n };\n newState.path = newState.path.concat(newState);\n const dataIndex = type === 'after' ? state.rowIndex + (state.expandChildrenLength + 1) : state.rowIndex;\n dataSource.splice(dataIndex, 0, newData);\n const distance = type === 'after' ? 1 : 0;\n if (state.parent) {\n const childrenIndex = state.parent.row[keys.childrenKey].findIndex(\n (t: TableRowData) => rowValue === get(t, keys.rowKey),\n );\n state.parent.row[keys.childrenKey].splice(childrenIndex + distance, 0, newData);\n updateRowExpandLength(this.treeDataMap, state.parent.row, 1, 'insert', keys);\n }\n this.treeDataMap.set(newRowValue, newState);\n\n // 更新 rowIndex 之后的下标\n updateRowIndex(this.treeDataMap, dataSource, {\n rowKey: keys.rowKey,\n minRowIndex: state.rowIndex + 1,\n type: 'add',\n });\n\n return dataSource;\n }\n\n /**\n * 交换数据行\n * @returns 交换失败返回 false\n */\n swapData(\n dataSource: T[],\n params: SwapParams,\n keys: KeysType,\n ): { dataSource: T[]; result: boolean; code?: number; reason?: string } {\n const startIndex = params.currentIndex;\n const endIndex = params.targetIndex;\n if (startIndex === endIndex) return { dataSource, result: true };\n const startRowValue = get(params.current, keys.rowKey);\n const endRowValue = get(params.target, keys.rowKey);\n const startState = this.treeDataMap.get(startRowValue);\n const endState = this.treeDataMap.get(endRowValue);\n if (startState.level !== endState.level) {\n return {\n dataSource,\n result: false,\n code: TABLE_TREE_ERROR_CODE_NOT_SAME_LEVEL.code,\n reason: TABLE_TREE_ERROR_CODE_NOT_SAME_LEVEL.reason,\n };\n }\n const startLastIndex = startIndex + startState.expandChildrenLength + 1;\n const endLastIndex = endIndex + endState.expandChildrenLength + 1;\n const startRowList = dataSource.slice(startIndex, startLastIndex);\n const endRowList = dataSource.slice(endIndex, endLastIndex);\n if (startIndex > endIndex) {\n const middleRowList = dataSource.slice(endLastIndex, startIndex);\n const allSwapList = startRowList.concat(endRowList, middleRowList);\n dataSource.splice(endIndex, allSwapList.length);\n dataSource.splice(endIndex, 0, ...allSwapList);\n updateRowIndex(this.treeDataMap, dataSource, {\n rowKey: keys.rowKey,\n minRowIndex: endIndex,\n maxRowIndex: startLastIndex,\n });\n } else {\n const middleRowList = dataSource.slice(startLastIndex, endIndex);\n const allSwapList = middleRowList.concat(endRowList, startRowList);\n dataSource.splice(startIndex, allSwapList.length);\n dataSource.splice(startIndex, 0, ...allSwapList);\n updateRowIndex(this.treeDataMap, dataSource, {\n rowKey: keys.rowKey,\n minRowIndex: startIndex,\n maxRowIndex: endLastIndex,\n });\n }\n\n // 交换父元素中的两个元素位置\n if (startState.parent) {\n const children = startState.parent.row[keys.childrenKey];\n let count = 0;\n let targetIndex = -1;\n let currentIndex = -1;\n for (let i = 0, len = children.length; i < len; i++) {\n if (get(children[i], keys.rowKey) === startRowValue) {\n currentIndex = i;\n count += 1;\n }\n if (get(children[i], keys.rowKey) === endRowValue) {\n targetIndex = i;\n count += 1;\n }\n if (count >= 2) break;\n }\n // 向后拖拽\n if (currentIndex < targetIndex) {\n children.splice(targetIndex + 1, 0, params.current);\n children.splice(currentIndex, 1);\n } else {\n // 向前拖拽\n children.splice(currentIndex, 1);\n children.splice(targetIndex, 0, params.current);\n }\n }\n\n return { dataSource, result: true };\n }\n\n /**\n * 展开所有节点\n */\n expandAll(dataSource: T[], keys: KeysType) {\n this.expandAllRowIndex = 0;\n const newData: T[] = [];\n const expandLoop = (\n dataSource: T[],\n keys: KeysType,\n parent: TableRowState = null,\n ) => {\n for (let i = 0, len = dataSource.length; i < len; i++) {\n const item = dataSource[i];\n const rowValue = get(item, keys.rowKey);\n const state = this.treeDataMap.get(rowValue);\n const children = get(item, keys.childrenKey);\n state.rowIndex = this.expandAllRowIndex;\n // children = true is async load\n if (children !== true && children?.length) {\n state.expanded = true;\n }\n state.expandChildrenLength = children?.length || 0;\n this.expandAllRowIndex += 1;\n newData.push(item);\n this.treeDataMap.set(rowValue, state);\n if (children?.length) {\n // 同步更新父元素的展开数量\n let tmpParent = parent;\n while (tmpParent?.row) {\n tmpParent.expandChildrenLength += children.length;\n this.treeDataMap.set(tmpParent.id, tmpParent);\n tmpParent = tmpParent.parent;\n }\n // 继续子元素\n expandLoop(children, keys, state);\n }\n }\n };\n expandLoop(dataSource, keys);\n return newData;\n }\n\n /**\n * 收起所有节点\n */\n foldAll(dataSource: T[], keys: KeysType) {\n const newData: T[] = [];\n let index = 0;\n for (let i = 0, len = dataSource.length; i < len; i++) {\n const item = dataSource[i];\n const rowValue = get(item, keys.rowKey);\n const state = this.treeDataMap.get(rowValue);\n state.rowIndex = state.level === 0 ? index : -1;\n state.expanded = false;\n state.expandChildrenLength = 0;\n if (state.level === 0) {\n newData.push(item);\n index += 1;\n }\n const children = get(item, keys.childrenKey);\n if (children?.length) {\n this.foldAll(children, keys);\n }\n }\n return newData;\n }\n\n /** 获取整个树形结构 */\n getTreeNode(dataSource: T[], keys: KeysType): T[] {\n // let isStarted = false;\n const treeData: T[] = [];\n for (let i = 0, len = dataSource.length; i < len; i++) {\n const item = dataSource[i];\n const rowValue = get(item, keys.rowKey);\n const state = this.treeDataMap.get(rowValue);\n // 只需要压入第一层数据\n if (state.level === 0) {\n treeData.push(item);\n }\n }\n return treeData;\n }\n\n /**\n * 获取展开的树形节点\n * @param dataSource 平铺的树形结构数据\n * @param keys 行唯一标识和子节点的字段名\n * @param type 'unique' 标识获取展开节点的行唯一标识值,'data' 表示获取展开节点的数据,'all' 表示获取行节点包含展开状态的全部数据\n * @returns 展开的树形节点\n */\n getTreeExpandedRow(dataSource: T[], keys: KeysType, type: 'unique' | 'data' | 'all' = 'data') {\n const arr: (T | any)[] = [];\n dataSource.forEach((item) => {\n const rowValue = get(item, keys.rowKey);\n const rowState = this.treeDataMap.get(rowValue);\n if (!rowState.expanded) return;\n if (type === 'unique') {\n arr.push(rowValue);\n } else if (type === 'data') {\n arr.push(item);\n } else {\n arr.push(rowState);\n }\n });\n return arr;\n }\n\n /**\n * 初始化树形结构 Map\n * @param treeDataMap 树形结构 Map\n * @param dataSource 数据源\n * @param column 树形结构列\n * @param keys 字段映射关系\n * @param level 层级\n * @param parent 父元素\n * @returns void\n */\n initialTreeDataMap(\n treeDataMap: TableTreeDataMap,\n dataSource: T[],\n column: PrimaryTableCol,\n keys: KeysType,\n level = 0,\n parent: TableRowState = null,\n ) {\n for (let i = 0, len = dataSource.length; i < len; i++) {\n const item = dataSource[i];\n const rowValue = getUniqueRowValue(item, keys.rowKey);\n if (isUndefined(rowValue)) {\n log.error('EnhancedTable', '`rowKey` could be wrong, can not get rowValue from `data` by `rowKey`.');\n return;\n }\n const children = get(item, keys.childrenKey);\n const state: TableRowState = {\n id: rowValue,\n row: item,\n rowIndex: level === 0 ? i : -1,\n level,\n expanded: false,\n expandChildrenLength: 0,\n disabled: isRowSelectedDisabled(column, item, i),\n parent,\n };\n state.path = parent ? parent.path.concat(state) : [state];\n treeDataMap.set(rowValue, state);\n if (children?.length) {\n this.initialTreeDataMap(treeDataMap, children, column, keys, level + 1, state);\n }\n }\n }\n\n // column.checkProps 和 column.disabled 会影响行的禁用状态,因此当列发生变化时,需要重置禁用状态\n updateDisabledState(dataSource: T[], column: PrimaryTableCol, keys: KeysType) {\n for (let i = 0, len = dataSource.length; i < len; i++) {\n const item = dataSource[i];\n const rowValue = get(item, keys.rowKey);\n if (isUndefined(rowValue)) {\n log.error('EnhancedTable', '`rowKey` could be wrong, can not get rowValue from `data` by `rowKey`.');\n return;\n }\n const state = this.treeDataMap.get(rowValue);\n state.disabled = isRowSelectedDisabled(column, item, i);\n this.treeDataMap.set(rowValue, state);\n const children = get(item, keys.childrenKey);\n if (children?.length) {\n this.updateDisabledState(children, column, keys);\n }\n }\n }\n\n /**\n * 校验数据合法性\n */\n validateDataExist(state: TableRowState, rowValue: string | number) {\n if (!state) {\n log.warn('EnhancedTable', `${rowValue} does not exist.`);\n return false;\n }\n return true;\n }\n\n /**\n * 校验数据是否已存在\n */\n validateDataDoubleExist(state: TableRowState, rowValue: string | number) {\n if (state) {\n log.warn('EnhancedTable', `Duplicated Key. ${rowValue} already exists.`);\n return false;\n }\n return true;\n }\n}\n\nexport default TableTreeStore;\n\n/**\n * 更新展开的子节点数量\n * @param rowSate 行数据和状态\n * @param distance 需要调整的展开子节点长度数量,展开时增加,收起时减少。值为负数,表示减\n * @param expanded 展开/收起\n */\nexport function updateRowExpandLength(\n treeDataMap: TableTreeDataMap,\n row: TableRowData,\n distance: number,\n type: 'expand' | 'fold' | 'delete' | 'insert',\n keys: KeysType,\n) {\n let tmp = row;\n while (tmp) {\n const state = treeDataMap.get(get(tmp, keys.rowKey));\n const expandLen = (state.expandChildrenLength || 0) + distance;\n state.expandChildrenLength = Math.max(0, expandLen);\n tmp = state?.parent?.row;\n }\n // 如果是收起状态,子节点需全部收起,清空子节点展开行数量,设置 expandChildrenLength 为 0\n if (type === 'fold') {\n clearRowExpandLength(treeDataMap, row, keys);\n }\n}\n\nexport function clearRowExpandLength(treeDataMap: TableTreeDataMap, row: T, keys: KeysType) {\n const children = get(row, keys.childrenKey);\n if (children?.length) {\n children.forEach((item: T[]) => {\n const state = treeDataMap.get(get(item, keys.rowKey));\n if (!state) return;\n state.expandChildrenLength = 0;\n clearRowExpandLength(treeDataMap, state.row, keys);\n });\n }\n}\n\n/**\n * 更新子节点行状态,行数据、父节点、层级、路径等数据\n * @param rowState 行状态数据\n * @param expanded 展开或收起\n * @param keys\n */\nexport function updateChildrenRowState(\n treeDataMap: TableTreeDataMap,\n rowState: TableRowState,\n expanded: boolean,\n keys: KeysType,\n) {\n const { row, rowIndex } = rowState;\n const childrenNodes = get(row, keys.childrenKey);\n childrenNodes.forEach((item: T, kidRowIndex: number) => {\n const rowValue = get(item, keys.rowKey);\n const index = expanded ? rowIndex + 1 + kidRowIndex : -1;\n const curState = treeDataMap.get(rowValue);\n const newState: TableRowState = {\n ...curState,\n row: item,\n rowIndex: index,\n expanded: false,\n parent: rowState,\n };\n treeDataMap.set(rowValue, newState);\n // 父节点展开,子节点不一定展开;父节点收起,则所有子节点收起\n if (!expanded) {\n const children = get(item, keys.childrenKey);\n if (children?.length) {\n updateChildrenRowState(\n treeDataMap,\n {\n ...newState,\n rowIndex: -1,\n expanded: false,\n } as any,\n expanded,\n keys,\n );\n }\n }\n });\n}\n\nexport function updateRowData(\n data: T[],\n key: string | number,\n newData: T,\n keys: KeysType,\n) {\n for (let i = 0, len = data.length; i < len; i++) {\n const item = data[i];\n if (get(item, keys.rowKey) === key) {\n // eslint-disable-next-line no-param-reassign\n data[i] = newData;\n return;\n }\n const children: T[] = get(item, keys.childrenKey) || [];\n if (children?.length) {\n updateRowData(children, key, newData, keys);\n }\n }\n}\n\nexport function updateRowIndex(\n treeDataMap: TableTreeDataMap,\n dataSource: T[],\n extra: {\n rowKey: string;\n minRowIndex?: number;\n maxRowIndex?: number;\n type?: 'add' | 'remove';\n count?: number;\n },\n) {\n const start = extra.minRowIndex || 0;\n const end = extra.maxRowIndex || dataSource.length;\n for (let rowIndex = start; rowIndex < end; rowIndex++) {\n const item = dataSource[rowIndex];\n const state = treeDataMap.get(get(item, extra.rowKey));\n if (!state) {\n log.warn('Table', 'tree map went wrong');\n }\n state.rowIndex = rowIndex + (extra?.count || 1) - 1;\n }\n}\n\nexport function diffExpandedTreeNode(\n newExpandedNode: (number | string)[] = [],\n oldExpandedNode: (number | string)[] = [],\n) {\n const removedList: (number | string)[] = [];\n const addedList: (number | string)[] = [];\n const newExpandedNodeMap: Map = new Map();\n const oldExpandedNodeMap: Map = new Map();\n for (let i = 0, len = newExpandedNode.length; i < len; i++) {\n newExpandedNodeMap.set(newExpandedNode[i], true);\n }\n for (let i = 0, len = oldExpandedNode.length; i < len; i++) {\n oldExpandedNodeMap.set(oldExpandedNode[i], true);\n }\n for (let i = 0, len = newExpandedNode.length; i < len; i++) {\n if (!oldExpandedNodeMap.get(newExpandedNode[i])) {\n addedList.push(newExpandedNode[i]);\n }\n }\n for (let i = 0, len = oldExpandedNode.length; i < len; i++) {\n if (!newExpandedNodeMap.get(oldExpandedNode[i])) {\n removedList.push(oldExpandedNode[i]);\n }\n }\n return {\n removedList,\n addedList,\n };\n}\n\nexport type TreeDataMapType = InstanceType['treeDataMap'];\n","import { ComputedRef, nextTick, ref, Ref, toRefs, watch } from 'vue';\nimport { TdEnhancedTableProps, TableRowData } from '../type';\nimport { useDefaultValue } from '@tdesign/hooks';\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, useGlobalIcon, useTNodeDefault } from '@tdesign/hooks';\n\nimport useTreeDataExpand from './useTreeDataExpand';\n\nexport default function useTreeData(props: TdEnhancedTableProps, context: SetupContext) {\n const { data, columns } = toRefs(props);\n const { t, globalConfig } = useConfig('table', props.locale);\n const { AddRectangleIcon, MinusRectangleIcon } = useGlobalIcon({\n AddRectangleIcon: TdAddRectangleIcon,\n MinusRectangleIcon: TdMinusRectangleIcon,\n });\n\n const store = ref(new TableTreeStore());\n const treeNodeCol = shallowRef();\n const dataSource = ref([]);\n const { tableTreeClasses } = useClassName();\n const renderTNode = useTNodeDefault();\n\n const rowDataKeys = computed(() => ({\n rowKey: props.rowKey || 'id',\n childrenKey: props.tree?.childrenKey || 'children',\n }));\n\n const {\n tExpandedTreeNode,\n isDefaultExpandAllExecute,\n isDefaultExpandedTreeNodesExecute,\n expandAll,\n foldAll,\n updateExpandOnDataChange,\n onExpandFoldIconClick,\n } = useTreeDataExpand(props, { store, dataSource, rowDataKeys });\n\n const checkedColumn = computed(() => columns.value.find((col) => col.colKey === 'row-select'));\n\n watch(checkedColumn, (column) => {\n if (!store.value) return;\n store.value.updateDisabledState(dataSource.value, column, rowDataKeys.value);\n });\n\n const foldIcon = (context: PrimaryTableCellParams) => {\n const params = { ...context, type: 'fold' };\n const defaultFoldIcon = t(globalConfig.value.treeExpandAndFoldIcon, h, params) || ;\n return renderTNode('treeExpandAndFoldIcon', {\n defaultNode: defaultFoldIcon,\n params,\n });\n };\n\n const expandIcon = (context: PrimaryTableCellParams) => {\n const params = { ...context, type: 'expand' };\n const defaultExpandIcon = t(globalConfig.value.treeExpandAndFoldIcon, h, params) || ;\n return renderTNode('treeExpandAndFoldIcon', {\n defaultNode: defaultExpandIcon,\n params,\n });\n };\n\n watch(\n [data],\n () => {\n if (props.tree) {\n resetData(data.value);\n } else {\n dataSource.value = data.value;\n }\n },\n { immediate: true },\n );\n\n // 不能启用这部分代码。如果启用,会导致选中树形结构子节点时数据被重置,全部节点收起\n // watch([columns, rowDataKeys], ([columns, rowDataKeys]) => {\n // store.value.initialTreeStore(data.value, columns, rowDataKeys);\n // });\n\n onUnmounted(() => {\n if (!props.tree) return;\n store.value.treeDataMap?.clear();\n store.value = null;\n });\n\n watch(\n () => [columns, props.tree?.treeNodeColumnIndex],\n () => {\n treeNodeCol.value = getTreeNodeColumnCol();\n },\n { immediate: true },\n );\n\n function resetData(data: TableRowData[]) {\n const { columns, expandedTreeNodes, defaultExpandedTreeNodes, tree } = props;\n store.value.initialTreeStore(data, columns, rowDataKeys.value);\n const defaultNeedExpand = Boolean(!isDefaultExpandedTreeNodesExecute.value && defaultExpandedTreeNodes?.length);\n const needExpandAll = Boolean(tree?.defaultExpandAll && !isDefaultExpandAllExecute.value);\n if ((tExpandedTreeNode.value?.length && !!(expandedTreeNodes || defaultNeedExpand)) || needExpandAll) {\n updateExpandOnDataChange(data);\n isDefaultExpandedTreeNodesExecute.value = true;\n } else {\n dataSource.value = [...data];\n }\n }\n\n function getTreeNodeStyle(level: number) {\n if (level === undefined) return;\n const indent = props.tree?.indent === undefined ? 24 : props.tree?.indent;\n // 默认 1px 是为了临界省略\n return indent ? { paddingLeft: `${level * indent || 1}px` } : {};\n }\n\n /**\n * 组件实例方法,展开或收起某一行\n * @param p 行数据\n */\n function toggleExpandData(p: { row: TableRowData; rowIndex: number }, trigger?: 'expand-fold-icon' | 'row-click') {\n const currentData = { ...p };\n if (p.row.VIRTUAL_SCROLL_INDEX !== undefined) {\n currentData.rowIndex = p.row.VIRTUAL_SCROLL_INDEX;\n }\n dataSource.value = [...store.value.toggleExpandData(currentData, dataSource.value, rowDataKeys.value)];\n const rowValue = get(p.row, rowDataKeys.value.rowKey);\n const rowState = store.value?.treeDataMap?.get(rowValue);\n props.onTreeExpandChange?.({\n row: p.row,\n rowIndex: p.rowIndex,\n rowState,\n trigger,\n });\n }\n\n function getTreeNodeColumnCol() {\n const { columns } = props;\n let treeNodeColumnIndex = props.tree?.treeNodeColumnIndex || 0;\n // type 存在,则表示表格内部渲染的特殊列,比如:展开行按钮、复选框、单选按钮等,不能作为树结点列。因此树结点展开列向后顺移\n while (\n columns[treeNodeColumnIndex]?.type ||\n columns[treeNodeColumnIndex]?.colKey === '__EXPAND_ROW_ICON_COLUMN__'\n ) {\n treeNodeColumnIndex += 1;\n }\n return columns[treeNodeColumnIndex];\n }\n\n function formatTreeColumn(col: PrimaryTableCol): PrimaryTableCol {\n if (!props.tree || col.colKey !== treeNodeCol.value.colKey) return col;\n const newCol = { ...treeNodeCol.value };\n newCol.cell = (h, p) => {\n const cellInfo = renderCell({ ...p, col: { ...treeNodeCol.value } }, context.slots, {\n cellEmptyContent: props.cellEmptyContent,\n });\n const currentState = store.value.treeDataMap.get(get(p.row, rowDataKeys.value.rowKey));\n const colStyle = getTreeNodeStyle(currentState?.level);\n const classes = { [tableTreeClasses.inlineCol]: !!col.ellipsis };\n const childrenNodes = get(p.row, rowDataKeys.value.childrenKey);\n if ((childrenNodes && childrenNodes instanceof Array) || childrenNodes === true) {\n const iconNode = store.value.treeDataMap.get(get(p.row, rowDataKeys.value.rowKey))?.expanded\n ? foldIcon(p)\n : expandIcon(p);\n return (\n
    \n {!!(childrenNodes.length || childrenNodes === true) && (\n {\n onExpandFoldIconClick(p, 'expand-fold-icon');\n e.stopPropagation();\n }}\n >\n {iconNode}\n \n )}\n {cellInfo}\n
    \n );\n }\n return (\n
    \n \n {cellInfo}\n
    \n );\n };\n // 树形节点会显示操作符号 [+] 和 [-],但省略显示的浮层中不需要操作符\n if (newCol.ellipsis === true) {\n newCol.ellipsis = (h, p) => renderCell({ ...p, col: { ...treeNodeCol.value } }, context.slots);\n }\n return newCol;\n }\n\n /**\n * 对外暴露的组件实例方法,设置行数据,自动刷新界面\n * @param key 当前行唯一标识值\n * @param newRowData 新行数据\n */\n function setData(key: TableRowValue, newRowData: T) {\n const rowIndex = store.value.updateData(key, newRowData, dataSource.value, rowDataKeys.value);\n const newData = [...dataSource.value];\n newData[rowIndex] = newRowData;\n dataSource.value = newData;\n }\n\n /**\n * 对外暴露的组件实例方法,获取当前行全部数据\n * @param key 行唯一标识\n * @returns {TableRowState} 当前行数据\n */\n function getData(key: TableRowValue): TableRowState {\n return store.value.getData(key);\n }\n\n /**\n * 对外暴露的组件实例方法,移除指定节点\n * @param key 行唯一标识\n */\n function remove(key: TableRowValue) {\n // 引用传值,可自动更新 dataSource。(dataSource 本是内部变量,可以在任何地方进行任何改变)\n dataSource.value = [...store.value.remove(key, dataSource.value, rowDataKeys.value)];\n }\n\n /**\n * 移除子节点\n * @param key 行唯一标识\n */\n function removeChildren(key: TableRowValue) {\n dataSource.value = [...store.value.removeChildren(key, dataSource.value, rowDataKeys.value)];\n }\n\n /**\n * 对外暴露的组件实例方法,为当前节点添加子节点,默认添加到最后一个节点\n * @param key 当前节点唯一标识,值为空,则表示给根节点添加元素\n * @param newData 待添加的新节点\n */\n function appendTo(key: TableRowValue = '', newData: T | T[]) {\n if (!key) {\n dataSource.value = store.value.appendToRoot(newData, dataSource.value, rowDataKeys.value);\n return;\n }\n // 引用传值,可自动更新 dataSource。(dataSource 本是内部变量,可以在任何地方进行任何改变)\n dataSource.value = [...store.value.appendTo(key, newData, dataSource.value, rowDataKeys.value)];\n }\n\n /**\n * 对外暴露的组件实例方法,当前节点之后,插入节点\n */\n function insertAfter(rowValue: TableRowValue, newData: T) {\n dataSource.value = [...store.value.insertAfter(rowValue, newData, dataSource.value, rowDataKeys.value)];\n }\n\n /**\n * 对外暴露的组件实例方法,当前节点之后,插入节点\n */\n function insertBefore(rowValue: TableRowValue, newData: T) {\n dataSource.value = [...store.value.insertBefore(rowValue, newData, dataSource.value, rowDataKeys.value)];\n }\n\n /**\n * 对外暴露的组件实例方法,交换行数据\n */\n function swapData(params: SwapParams) {\n const r = store.value.swapData(dataSource.value, params, rowDataKeys.value);\n if (r.result) {\n dataSource.value = [...r.dataSource];\n } else {\n const params = {\n code: r.code,\n reason: r.reason,\n };\n props.onAbnormalDragSort?.(params);\n }\n }\n\n /**\n * 对外暴露的组件实例方法,获取全部数据的树形结构\n * @param key 节点唯一标识\n */\n function getTreeNode() {\n return store.value.getTreeNode(dataSource.value, rowDataKeys.value);\n }\n\n /**\n * 对外暴露的组件实例方法,获取树形结构展开的节点\n */\n function getTreeExpandedRow(type: 'unique' | 'data' | 'all' = 'data') {\n return store.value.getTreeExpandedRow(dataSource.value, rowDataKeys.value, type);\n }\n\n return {\n store,\n rowDataKeys,\n dataSource,\n swapData,\n setData,\n getData,\n remove,\n removeChildren,\n appendTo,\n insertAfter,\n insertBefore,\n formatTreeColumn,\n toggleExpandData,\n expandAll,\n foldAll,\n getTreeNode,\n resetData,\n getTreeExpandedRow,\n onExpandFoldIconClick,\n };\n}\n","import { computed, toRefs, ref, Ref, watch } from 'vue';\nimport { get, intersection } from 'lodash-es';\n\nimport { TdEnhancedTableProps, TdPrimaryTableProps, TableRowData, PrimaryTableCol } from '../type';\nimport { KeysType, TableTreeDataMap, TreeDataMapType } from '@tdesign/common-js/table/tree-store';\nimport { useDefaultValue } from '@tdesign/hooks';\n\nexport interface GetChildrenDataReturnValue {\n allChildren: Array;\n allChildrenKeys: Array;\n leafNodeKeys: Array;\n}\n\n// 保存子节点信息,避免重复计算\nexport const childrenMap = new Map();\n\nexport function getChildrenData(\n treeDataMap: TreeDataMapType,\n data: TableRowData,\n keys: { childrenKey: string; rowKey: string },\n r?: GetChildrenDataReturnValue,\n): GetChildrenDataReturnValue {\n if (childrenMap.get(data)) return childrenMap.get(data);\n const result = r || { allChildren: [], allChildrenKeys: [], leafNodeKeys: [] };\n const children = get(data, keys.childrenKey);\n if (!children || !children.length) return result;\n const selectableChildren = children.filter(\n (item: TableRowData) => !treeDataMap.get(get(item, keys.rowKey))?.disabled,\n );\n result.allChildren = [...new Set(result.allChildren.concat(selectableChildren))];\n for (let i = 0, len = children.length; i < len; i++) {\n const tItem = children[i];\n const c = get(tItem, keys.childrenKey);\n if (c?.length) {\n const nextLevelData = getChildrenData(treeDataMap, tItem, keys, result);\n result.allChildren = [...new Set(result.allChildren.concat(nextLevelData.allChildren))];\n }\n }\n // 避免使用 forEach,减少上下文消耗\n for (let i = 0, len = result.allChildren.length; i < len; i++) {\n const item = result.allChildren[i];\n const children = get(item, keys.childrenKey);\n const rowValue = get(item, keys.rowKey);\n result.allChildrenKeys.push(rowValue);\n if (!children || !children.length) {\n result.leafNodeKeys.push(rowValue);\n }\n }\n result.allChildrenKeys = [...new Set(result.allChildrenKeys)];\n result.leafNodeKeys = [...new Set(result.leafNodeKeys)];\n return result;\n}\n\nexport interface RemoveParams {\n // 当前选中的数据\n selectedRowKeys: Array;\n // 需要移除的数据\n removeKeys: Array;\n}\n\nexport interface RemainData {\n data: Array;\n keys: Array;\n}\n\nexport function removeChildrenKeys(p: RemoveParams, r?: RemainData): RemainData {\n const { selectedRowKeys, removeKeys } = p;\n const result = r || { data: [], keys: [] };\n for (let i = 0, len = selectedRowKeys.length; i < len; i++) {\n const key = selectedRowKeys[i];\n if (!removeKeys.includes(key)) {\n result.keys.push(key);\n }\n }\n return result;\n}\n\nexport interface GetKeyDataParams {\n treeDataMap: TreeDataMapType;\n data: Array;\n column: PrimaryTableCol;\n keys: KeysType;\n}\n\nexport interface GetRowDataParams {\n treeDataMap: TreeDataMapType;\n selectedRowKeys: Array;\n}\n\nexport function getRowDataByKeys(p: GetRowDataParams) {\n const { treeDataMap, selectedRowKeys } = p;\n const result = [];\n for (let i = 0, len = selectedRowKeys.length; i < len; i++) {\n const key = selectedRowKeys[i];\n result.push(treeDataMap.get(key));\n }\n return result;\n}\n\ntype SelectChangeParams = Parameters;\n\nexport default function useTreeSelect(props: TdEnhancedTableProps, treeDataMap: Ref) {\n const { selectedRowKeys, tree, data, indeterminateSelectedRowKeys } = toRefs(props);\n // 半选状态的节点:子节点选中至少一个,且没有全部选中\n const tIndeterminateSelectedRowKeys = ref<(string | number)[]>([]);\n\n const [tSelectedRowKeys, setTSelectedRowKeys] = useDefaultValue(\n selectedRowKeys,\n props.defaultSelectedRowKeys || [],\n props.onSelectChange,\n 'selectedRowKeys',\n );\n const rowDataKeys = computed(() => ({\n rowKey: props.rowKey || 'id',\n childrenKey: props.tree?.childrenKey || 'children',\n }));\n\n watch([tree, treeDataMap, data, tSelectedRowKeys], ([tree, treeDataMap]) => {\n if (!tree || !treeDataMap.size || tree.checkStrictly) return;\n updateIndeterminateState();\n });\n\n function updateIndeterminateState() {\n if (!tree.value || tree.value.checkStrictly) return;\n if (!tSelectedRowKeys.value.length) {\n tIndeterminateSelectedRowKeys.value = [];\n return;\n }\n const keys: Array = [];\n const parentMap: { [key: string | number]: any[] } = {};\n for (let i = 0, len = tSelectedRowKeys.value.length; i < len; i++) {\n const rowValue = tSelectedRowKeys.value[i];\n const state = treeDataMap.value.get(rowValue);\n if (!state) continue;\n const children = get(state.row, rowDataKeys.value.childrenKey);\n // 根据选中的叶子结点计算父节点半选状态\n if (!children || !children.length) {\n let parentTmp = state.parent;\n while (parentTmp) {\n if (!parentMap[parentTmp.id]) {\n parentMap[parentTmp.id] = [];\n }\n parentMap[parentTmp.id].push(state.row);\n const checkedLength = parentMap[parentTmp.id].length;\n const { allChildrenKeys } = getChildrenData(treeDataMap.value, parentTmp.row, rowDataKeys.value);\n const parentTmpIndex = keys.indexOf(parentTmp.id);\n const selectedIndex = tSelectedRowKeys.value.indexOf(parentTmp.id);\n if (checkedLength > 0 && checkedLength < allChildrenKeys.length && selectedIndex === -1) {\n parentTmpIndex === -1 && keys.push(parentTmp.id);\n } else {\n parentTmpIndex !== -1 && keys.splice(parentTmpIndex, 1);\n }\n parentTmp = parentTmp.parent;\n }\n }\n }\n tIndeterminateSelectedRowKeys.value = keys;\n }\n\n function updateParentCheckedState(\n selectedKeys: (string | number)[],\n currentRowKey: string | number,\n type: 'check' | 'uncheck',\n ) {\n if (!tree.value || tree.value.checkStrictly) return;\n const keys = [...selectedKeys];\n const state = treeDataMap.value.get(currentRowKey);\n let parentTmp = state.parent;\n while (parentTmp) {\n const { leafNodeKeys } = getChildrenData(treeDataMap.value, parentTmp.row, rowDataKeys.value);\n const checkedChildrenKeys = intersection(leafNodeKeys, selectedKeys);\n const selectedIndex = keys.indexOf(parentTmp.id);\n if (type === 'uncheck') {\n selectedIndex !== -1 && keys.splice(selectedIndex, 1);\n } else if (checkedChildrenKeys.length === leafNodeKeys.length) {\n selectedIndex === -1 && keys.push(parentTmp.id);\n }\n parentTmp = parentTmp.parent;\n }\n return keys;\n }\n\n function onInnerSelectChange(rowKeys: SelectChangeParams[0], extraData: SelectChangeParams[1]) {\n if (!tree.value || tree.value.checkStrictly) {\n setTSelectedRowKeys(rowKeys, extraData);\n return;\n }\n if (extraData.currentRowKey === 'CHECK_ALL_BOX') {\n handleSelectAll(extraData);\n } else {\n handleSelect(rowKeys, extraData);\n }\n }\n\n function handleSelectAll(extraData: SelectChangeParams[1]) {\n const newRowKeys: Array = [];\n const newRowData: TableRowData[] = [];\n if (extraData.type === 'check') {\n const arr = [...treeDataMap.value.values()];\n for (let i = 0, len = arr.length; i < len; i++) {\n const item = arr[i];\n if (!item.disabled) {\n newRowData.push(item.row);\n newRowKeys.push(get(item.row, rowDataKeys.value.rowKey));\n }\n }\n }\n const newExtraData = {\n ...extraData,\n selectedRowData: newRowData || [],\n };\n setTSelectedRowKeys(newRowKeys, newExtraData);\n }\n\n function handleSelect(rowKeys: SelectChangeParams[0], extraData: SelectChangeParams[1]) {\n let newRowKeys = [...rowKeys];\n if (props.tree?.checkStrictly === false) {\n if (extraData?.type === 'check') {\n const result = getChildrenData(treeDataMap.value, extraData.currentRowData, rowDataKeys.value);\n const { allChildrenKeys } = result;\n childrenMap.set(extraData.currentRowData, result);\n newRowKeys = [...new Set(newRowKeys.concat(allChildrenKeys))];\n } else if (extraData?.type === 'uncheck') {\n const children = getChildrenData(treeDataMap.value, extraData.currentRowData, rowDataKeys.value);\n const result = removeChildrenKeys({\n selectedRowKeys: rowKeys,\n removeKeys: children.allChildrenKeys,\n });\n newRowKeys = result.keys;\n }\n }\n newRowKeys = updateParentCheckedState(newRowKeys, extraData.currentRowKey, extraData.type);\n const newRowData = getRowDataByKeys({ treeDataMap: treeDataMap.value, selectedRowKeys: newRowKeys });\n const newExtraData = {\n ...extraData,\n selectedRowData: newRowData,\n };\n setTSelectedRowKeys(newRowKeys, newExtraData);\n }\n\n return {\n // 如果存在受控属性 indeterminateSelectedRowKeys 则优先使用;否则使用内部状态:tIndeterminateSelectedRowKeys\n tIndeterminateSelectedRowKeys: indeterminateSelectedRowKeys.value\n ? indeterminateSelectedRowKeys\n : tIndeterminateSelectedRowKeys,\n onInnerSelectChange,\n };\n}\n","import { defineComponent, SetupContext, computed, ref, getCurrentInstance } from 'vue';\nimport baseTableProps from './base-table-props';\nimport primaryTableProps from './primary-table-props';\nimport enhancedTableProps from './enhanced-table-props';\nimport PrimaryTable from './primary-table';\nimport {\n TdEnhancedTableProps,\n PrimaryTableCol,\n TableRowData,\n DragSortContext,\n TdPrimaryTableProps,\n TableRowState,\n} from './type';\nimport useTreeData from './hooks/useTreeData';\nimport useTreeSelect from './hooks/useTreeSelect';\nimport { get } from 'lodash-es';\nimport { ComponentScrollToElementParams } from '../common';\nimport log from '@tdesign/common-js/log/index';\nimport { usePrefixClass } from '@tdesign/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 { useContent, useTNodeJSX, usePrefixClass } from '@tdesign/hooks';\n\nimport { TimelineInjectKey, DEFAULT_PROVIDER } from './hooks';\nimport Loading from '../loading';\n\nconst DEFAULT_THEME = ['default', 'primary', 'success', 'warning', 'error'];\n\nexport default defineComponent({\n name: 'TTimelineItem',\n props: {\n ...props,\n index: {\n type: Number,\n },\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('timeline-item');\n // unit test need default value\n\n const TimelineProvider = inject(TimelineInjectKey, DEFAULT_PROVIDER);\n const renderContent = useContent();\n const renderTNodeJSX = useTNodeJSX();\n\n // 计算节点模式 CSS 类名\n const getPositionClassName = (index: number) => {\n const { layout, renderAlign } = TimelineProvider.value;\n // TimelineItem.labelAlign > Timeline.labelAlign\n const timelineItemAlign = props.labelAlign ?? renderAlign;\n // 横向布局 以及 纵向布局对应为不同的样式名\n const left = layout === 'horizontal' ? 'top' : 'left';\n const right = layout === 'horizontal' ? 'bottom' : 'right';\n // 单独设置则单独生效\n if (timelineItemAlign === 'alternate') {\n return index % 2 === 0 ? `${COMPONENT_NAME.value}-${left}` : `${COMPONENT_NAME.value}-${right}`;\n }\n if (timelineItemAlign === 'left' || timelineItemAlign === 'top') {\n return `${COMPONENT_NAME.value}-${left}`;\n }\n if (timelineItemAlign === 'right' || timelineItemAlign === 'bottom') {\n return `${COMPONENT_NAME.value}-${right}`;\n }\n return '';\n };\n const handleClick = (e: MouseEvent) => {\n props.onClick?.({ e, item: omit(props, ['index']) });\n };\n\n return () => {\n const { mode, theme, itemsStatus, reverse } = TimelineProvider.value;\n const { loading, dotColor, index } = props;\n\n const labelNode = renderTNodeJSX('label');\n const dotElement = renderTNodeJSX('dot');\n\n const dotContentClass = `${COMPONENT_NAME.value}__dot-content`;\n if (dotElement?.props) {\n const classes = dotElement?.props?.class;\n dotElement.props.class = classes ? [dotContentClass, classes].join(' ') : dotContentClass;\n }\n\n return (\n
  • \n {mode === 'alternate' && labelNode && (\n
    {labelNode}
    \n )}\n
    \n \n {!dotElement && loading && }\n {dotElement}\n
    \n \n \n
    \n {renderContent('default', 'content')}\n {mode === 'same' && labelNode && (\n
    \n {labelNode}\n
    \n )}\n
    \n
  • \n );\n };\n },\n});\n","import { defineComponent, provide, computed } from 'vue';\nimport TimeLineProps from './props';\nimport { TimelineInjectKey, DefaultAlign } from './hooks';\nimport { usePrefixClass, useChildComponentSlots } from '@tdesign/hooks';\n\nimport TimelineItem from './timeline-item';\nimport log from '@tdesign/common-js/log/index';\n\nexport default defineComponent({\n name: 'TTimeline',\n props: TimeLineProps,\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('timeline');\n const renderAlign = computed(() => {\n const { labelAlign, layout } = props;\n let res = layout === 'vertical' ? 'left' : 'top';\n if (layout === 'vertical' && labelAlign) {\n const index = DefaultAlign.horizontal.indexOf(labelAlign);\n const isError = index !== -1;\n isError && log.warn('Timeline', 'If layout is vertical, align should be \"left\",\"alternate\" or \"right\" ');\n res = isError ? DefaultAlign.vertical[index] : labelAlign;\n }\n if (layout === 'horizontal' && labelAlign) {\n const index = DefaultAlign.vertical.indexOf(labelAlign);\n const isError = index !== -1;\n isError && log.warn('Timeline', 'If layout is horizontal, align should be \"top\",\"alternate\" or \"bottom\" ');\n res = isError ? DefaultAlign.horizontal[index] : labelAlign;\n }\n return res;\n });\n\n const TimeLineProvide = computed(() => {\n const { theme, reverse, layout, labelAlign, mode } = props;\n return {\n theme,\n reverse,\n itemsStatus: [''],\n layout,\n globalAlign: labelAlign,\n mode,\n renderAlign: renderAlign.value,\n };\n });\n\n const hasLabelItem = 1;\n provide(TimelineInjectKey, TimeLineProvide);\n\n return () => {\n const getChildComponentSlots = useChildComponentSlots();\n let timelineItems = getChildComponentSlots('TTimelineItem');\n if (props.reverse) timelineItems = timelineItems.reverse();\n return (\n \n {timelineItems.map((item, index) => (\n \n ))}\n \n );\n };\n },\n});\n","import _Timeline from './timeline';\nimport _TimelineItem from './timeline-item';\nimport withInstall from '../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, useTNodeJSX, usePrefixClass } from '@tdesign/hooks';\n\nexport default defineComponent({\n name: 'TCollapse',\n props,\n setup(props: TdCollapseProps) {\n const componentName = usePrefixClass('collapse');\n const borderlessClass = usePrefixClass('-border-less');\n const renderTNodeJSX = useTNodeJSX();\n const { value, expandMutex, borderless, modelValue } = toRefs(props);\n const [collapseValue, setCollapseValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const updateCollapseValue = (value: CollapsePanelValue) => {\n let newValue: CollapseValue = [].concat(collapseValue.value || []);\n const index = newValue.indexOf(value);\n if (index >= 0) {\n newValue.splice(index, 1);\n } else if (expandMutex.value) {\n newValue = [value];\n } else {\n newValue.push(value);\n }\n setCollapseValue(newValue);\n };\n const classes = computed(() => {\n return [\n componentName.value,\n {\n [borderlessClass.value]: !!borderless.value,\n },\n ];\n });\n const getUniqId = (() => {\n let index = 0;\n return () => index++;\n })();\n provide('collapseValue', collapseValue);\n provide('updateCollapseValue', updateCollapseValue);\n provide('collapseProps', toRefs(props));\n provide('getUniqId', getUniqId);\n // TODO 这里是有问题的,这是无法响应式,expandIcon 的值变化了,不会重新渲染\n provide('renderParentTNode', renderTNodeJSX);\n return () => {\n const nodes = renderTNodeJSX('default');\n return
    {nodes}
    ;\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdCollapsePanelProps } from '../collapse/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 折叠面板内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 折叠面板内容,同 content */\n default: {\n type: [String, Function] as PropType,\n },\n /** 当前面板处理折叠状态时,是否销毁面板内容 */\n destroyOnCollapse: Boolean,\n /** 禁止当前面板展开,优先级大于 Collapse 的同名属性 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 当前折叠面板展开图标,优先级大于 Collapse 的同名属性 */\n expandIcon: {\n type: [Boolean, Function] as PropType,\n default: undefined,\n },\n /** 面板头内容 */\n header: {\n type: [String, Function] as PropType,\n },\n /** 面板头的右侧区域,一般用于呈现面板操作 */\n headerRightContent: {\n type: [String, Function] as PropType,\n },\n /** 当前面板唯一标识,如果值为空则取当前面下标兜底作为唯一标识 */\n value: {\n type: [String, Number] as PropType,\n },\n};\n","import { defineComponent, ref, computed, inject, Ref, toRefs, Transition } from 'vue';\nimport props from './collapse-panel-props';\nimport FakeArrow from '../common-components/fake-arrow';\nimport { CollapseValue, TdCollapsePanelProps } from './type';\nimport { useContent, useTNodeJSX, usePrefixClass, useCollapseAnimation } from '@tdesign/hooks';\n\nexport default defineComponent({\n name: 'TCollapsePanel',\n props,\n setup(props: TdCollapsePanelProps, { slots }) {\n const renderTNodeJSX = useTNodeJSX();\n const renderContent = useContent();\n const componentName = usePrefixClass('collapse-panel');\n const disableClass = usePrefixClass('is-disabled');\n const clickableClass = usePrefixClass('is-clickable');\n const transitionClass = usePrefixClass('slide-down');\n const { value, disabled, destroyOnCollapse } = toRefs(props);\n const collapseValue: Ref = inject('collapseValue');\n const updateCollapseValue: Function = inject('updateCollapseValue');\n const getUniqId: Function = inject('getUniqId', (): undefined => undefined, false);\n const {\n defaultExpandAll,\n disabled: disableAll,\n expandIconPlacement,\n expandOnRowClick,\n } = inject('collapseProps');\n const renderParentTNode: Function = inject('renderParentTNode');\n const innerValue = value.value || getUniqId();\n if (defaultExpandAll.value) {\n updateCollapseValue(innerValue);\n }\n const { beforeEnter, enter, afterEnter, beforeLeave, leave, afterLeave } = useCollapseAnimation();\n const iconRef = ref();\n const isDisabled = computed(() => disabled.value || disableAll.value);\n const isActive = computed(() =>\n collapseValue.value instanceof Array\n ? collapseValue.value.includes(innerValue)\n : collapseValue.value === innerValue,\n );\n const classes = computed(() => {\n return [componentName.value, { [disableClass.value]: isDisabled.value }];\n });\n const panelExpandIcon = computed(() => slots.expandIcon || props.expandIcon);\n const handleClick = (e: MouseEvent) => {\n const canExpand = expandOnRowClick.value || e.currentTarget === iconRef.value;\n if (canExpand && !isDisabled.value) {\n updateCollapseValue(innerValue);\n }\n e.stopPropagation();\n };\n const handleHeaderRightContentClick = (e: MouseEvent) => {\n e.stopPropagation();\n };\n const renderDefaultIcon = () => {\n return ;\n };\n const renderIcon = () => {\n const tNodeRender = panelExpandIcon.value === undefined ? renderParentTNode : renderTNodeJSX;\n return (\n \n {tNodeRender('expandIcon', renderDefaultIcon())}\n \n );\n };\n const renderBlank = () => {\n return
    ;\n };\n const renderHeaderRightContent = () => {\n const headerRightContent = renderTNodeJSX('headerRightContent');\n\n return headerRightContent ?
    {headerRightContent}
    : null;\n };\n const renderHeader = () => {\n const cls = [\n `${componentName.value}__header`,\n {\n [clickableClass.value]: expandOnRowClick.value && !isDisabled.value,\n },\n ];\n\n return (\n
    \n {expandIconPlacement.value === 'left' && renderIcon()}\n {renderTNodeJSX('header')}\n {renderBlank()}\n {renderHeaderRightContent()}\n {expandIconPlacement.value === 'right' && renderIcon()}\n
    \n );\n };\n const renderBodyByNormal = () => {\n return (\n
    \n
    {renderContent('default', 'content')}
    \n
    \n );\n };\n const renderBodyDestroyOnCollapse = () => {\n return isActive.value ? (\n
    \n
    {renderContent('default', 'content')}
    \n
    \n ) : null;\n };\n const renderBody = () => {\n return destroyOnCollapse.value ? renderBodyDestroyOnCollapse() : renderBodyByNormal();\n };\n return () => {\n return (\n
    \n
    \n {renderHeader()}\n \n {renderBody()}\n \n
    \n
    \n );\n };\n },\n});\n","import _Collapse from './collapse';\nimport _CollapsePanel from './collapse-panel';\nimport withInstall from '../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 { useContent, usePrefixClass } from '@tdesign/hooks';\nimport { useMutationObserver } from './hooks';\n\nimport setStyle from '@tdesign/common-js/utils/setStyle';\n\nexport default defineComponent({\n name: 'TWatermark',\n props,\n setup(props) {\n const backgroundImage = ref('');\n const watermarkRef = shallowRef();\n const watermarkContentRef = shallowRef();\n\n const offset = reactive(props.offset || []);\n\n const gapX = computed(() => {\n return props.movable ? 0 : props.x;\n });\n\n const gapY = computed(() => {\n return props.movable ? 0 : props.y;\n });\n\n const rotate = computed(() => {\n return props.movable ? 0 : props.rotate;\n });\n\n const backgroundRepeat = computed(() => {\n if (props.movable) {\n return 'no-repeat';\n }\n return props.isRepeat ? 'repeat' : 'no-repeat';\n });\n\n const offsetLeft = computed(() => {\n return offset[0] || gapX.value / 2;\n });\n\n const offsetTop = computed(() => {\n return offset[1] || gapY.value / 2;\n });\n\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, useConfig, useTNodeJSX } from '@tdesign/hooks';\nimport props from './props';\n\nimport Tooltip from '../tooltip/index';\nimport { isArray } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TRate',\n props,\n setup(props, { slots }) {\n const renderTNodeJSX = useTNodeJSX();\n const { globalConfig } = useConfig('rate');\n\n const activeColor = isArray(props.color) ? props.color[0] : props.color;\n const defaultColor = isArray(props.color) ? props.color[1] : 'var(--td-bg-color-component)';\n\n const { value: inputValue, modelValue } = toRefs(props);\n const [starValue, setStarValue] = useVModel(inputValue, modelValue, props.defaultValue, props.onChange);\n\n const hoverValue = ref(undefined);\n const root = ref();\n\n const displayValue = computed(() => Number(hoverValue.value || starValue.value));\n const displayTexts = computed(() => (props.texts.length === 0 ? globalConfig.value.rateText : props.texts));\n const displayText = computed(() => displayTexts.value[Math.ceil(displayValue.value - 1)]);\n\n // 评分图标\n const RateIcon = (iconProps: any) => {\n if (slots.icon !== undefined) {\n return renderTNodeJSX('icon', {\n params: iconProps,\n });\n }\n\n return ;\n };\n\n const getStarValue = (event: MouseEvent, index: number) => {\n if (props.allowHalf) {\n const { left } = root.value.getBoundingClientRect();\n const firstStar = root.value.firstChild.nextSibling as HTMLElement;\n const { width } = firstStar.getBoundingClientRect();\n const { clientX } = event;\n const starMiddle = width * (index - 0.5) + props.gap * (index - 1);\n\n if (clientX - left >= starMiddle) return index;\n if (clientX - left < starMiddle) return index - 0.5;\n }\n\n return index;\n };\n\n const mouseEnterHandler = (event: MouseEvent, index: number) => {\n if (props.disabled) return;\n hoverValue.value = getStarValue(event, index);\n };\n\n const mouseLeaveHandler = () => {\n if (props.disabled) return;\n hoverValue.value = undefined;\n };\n\n const clickHandler = (event: MouseEvent, index: number) => {\n if (props.disabled) return;\n const value = getStarValue(event, index);\n if (props.clearable && value === starValue.value) {\n hoverValue.value = undefined;\n setStarValue(0);\n } else {\n setStarValue(value);\n }\n };\n\n const getStarCls = (index: number) => {\n if (props.allowHalf && index + 0.5 === displayValue.value) return `${classPrefix.value}-rate__item--half`;\n if (index >= displayValue.value) return '';\n if (index < displayValue.value) return `${classPrefix.value}-rate__item--full`;\n };\n\n const { classPrefix } = useConfig('classPrefix');\n\n return () => {\n return (\n
    \n
      \n {[...Array(Number(props.count))].map((_, index) => (\n clickHandler(event, index + 1)}\n onMousemove={(event: MouseEvent) => {\n return mouseEnterHandler(event, index + 1);\n }}\n >\n {props.showText ? (\n \n
      \n \n
      \n
      \n \n
      \n
      \n ) : (\n <>\n
      \n \n
      \n
      \n \n
      \n \n )}\n \n ))}\n
    \n {props.showText &&
    {displayText.value}
    }\n
    \n );\n };\n },\n});\n","import _Rate from './rate';\nimport withInstall from '../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 '@tdesign/hooks';\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 { useContent, usePrefixClass } from '@tdesign/hooks';\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';\n\nimport type { TdTextProps } from './type';\nimport type { TdTooltipProps } from '../tooltip/type';\n\nexport default defineComponent({\n name: 'TTypographyText',\n props,\n setup(props, { slots }) {\n const COMPONENT_NAME = usePrefixClass('typography');\n const { globalConfig } = useConfig('typography');\n const isCopied = ref(false);\n const renderContent = useContent();\n\n const wrapperDecorations = (\n { code, underline, delete: del, strong, keyboard, mark, italic }: TdTextProps,\n content: any,\n ) => {\n let currentContent = content;\n\n function wrap(needed: boolean, Tag: string, styles: object = {}) {\n if (!needed) return;\n currentContent = {currentContent};\n }\n\n wrap(strong, 'strong');\n wrap(underline, 'u');\n wrap(del, 'del');\n wrap(code, 'code');\n wrap(mark !== false, 'mark', mark ? { color: mark } : {});\n wrap(keyboard, 'kbd');\n wrap(italic, 'i');\n return currentContent;\n };\n\n const classList = computed(() => {\n const { theme, disabled } = props;\n const prefix = COMPONENT_NAME.value;\n const list: string[] = [prefix];\n if (disabled) {\n list.push(`${prefix}--disabled`);\n } else if (theme && ['primary', 'secondary', 'success', 'warning', 'error'].includes(theme)) {\n list.push(`${prefix}--${theme}`);\n }\n return list;\n });\n\n const tooltipText = computed(() => {\n const { copyable } = props;\n if (isCopied.value) return globalConfig.value.copiedText;\n else if (typeof copyable === 'object') return copyable.tooltipProps?.content;\n return null;\n });\n\n const content = computed(() => {\n return props.content || slots?.default();\n });\n\n const renderCopy = () => {\n const { copyable } = props;\n if (!copyable) return;\n\n let icon: any = isCopied.value ? () => : () => ;\n let tooltipConf: TdTooltipProps = {\n theme: 'default',\n };\n\n let onCopy = () => {};\n if (typeof copyable === 'object') {\n if (copyable.suffix && !isCopied.value) {\n icon = copyable.suffix;\n }\n if (copyable.tooltipProps) {\n tooltipConf = copyable.tooltipProps;\n }\n if (typeof copyable.onCopy === 'function') {\n onCopy = copyable.onCopy;\n }\n }\n return (\n \n onCopyClick(e, onCopy)} />\n \n );\n };\n\n const getChildrenText = () => {\n if (typeof content.value === 'string') {\n return content.value;\n } else if (Array.isArray(content.value)) {\n return content.value.map((v) => v.children).join('');\n }\n };\n\n const onCopyClick = (e: MouseEvent, cb: Function) => {\n e.preventDefault();\n e.stopPropagation();\n\n isCopied.value = true;\n setTimeout(() => {\n isCopied.value = false;\n }, 1500);\n\n copy(getChildrenText());\n cb?.();\n };\n\n return () => {\n const content = renderContent('default', 'content');\n return props.ellipsis ? (\n \n {wrapperDecorations(props, content)}\n {props.copyable ? renderCopy() : null}\n \n ) : (\n \n {wrapperDecorations(props, content)}\n {props.copyable ? renderCopy() : null}\n \n );\n };\n },\n});\n","import { defineComponent } from 'vue';\nimport { useTNodeJSX } from '@tdesign/hooks';\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 { useContent, usePrefixClass } from '@tdesign/hooks';\nimport props from './title-props';\nimport Ellipsis from './ellipsis';\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 '@tdesign/hooks';\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 { isArray, isString } from 'lodash-es';\n\nimport { on, off, addClass } from '../utils/dom';\nimport props from './props';\nimport { SlotReturnValue } from '../common';\nimport { useIcon, useConfig, useTNodeJSX, useGlobalIcon, usePrefixClass } from '@tdesign/hooks';\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 /** 确认按钮,可自定义。值为 null 则不显示确认按钮。类型为字符串,则表示自定义按钮文本,值类型为 Object 则表示透传 Button 组件属性。使用 TNode 自定义按钮时,需自行控制确认事件 */\n confirmBtn: {\n type: [String, Object, Function] as PropType,\n },\n /** 抽屉内容,同 body */\n default: {\n type: [String, Function] as PropType,\n },\n /** 抽屉关闭时是否销毁节点 */\n destroyOnClose: Boolean,\n /** 抽屉元素类名。 */\n drawerClassName: {\n type: String,\n default: '',\n },\n /** 底部操作栏,默认会有“确认”和“取消”两个按钮。值为 true 显示默认操作按钮,值为 false 或 null 不显示任何内容,值类型为 TNode 表示自定义底部内容 */\n footer: {\n type: [Boolean, Function] as PropType,\n default: true as TdDrawerProps['footer'],\n },\n /** 头部内容。值为 true 显示空白头部,值为 false 不显示头部,值类型为 string 则直接显示值,值类型为 TNode 表示自定义头部内容 */\n header: {\n type: [String, Boolean, Function] as PropType,\n default: true as TdDrawerProps['header'],\n },\n /** 是否启用抽屉懒加载,启用时抽屉的内容不渲染 */\n lazy: Boolean,\n /** 展开方式,有两种:直接展示在内容上方 和 推开内容区域 */\n mode: {\n type: String as PropType,\n default: 'overlay' as TdDrawerProps['mode'],\n validator(val: TdDrawerProps['mode']): boolean {\n if (!val) return true;\n return ['overlay', 'push'].includes(val);\n },\n },\n /** 抽屉方向 */\n placement: {\n type: String as PropType,\n default: 'right' as TdDrawerProps['placement'],\n validator(val: TdDrawerProps['placement']): boolean {\n if (!val) return true;\n return ['left', 'right', 'top', 'bottom'].includes(val);\n },\n },\n /** 防止滚动穿透 */\n preventScrollThrough: {\n type: Boolean,\n default: true,\n },\n /** 仅在挂载元素中显示抽屉,默认在浏览器可视区域显示。父元素需要有定位属性,如:position: relative */\n showInAttachedElement: Boolean,\n /** 是否显示遮罩层 */\n showOverlay: {\n type: Boolean,\n default: true,\n },\n /** 尺寸,支持 'small', 'medium', 'large','35px', '30%', '3em' 等。纵向抽屉调整的是抽屉宽度,横向抽屉调整的是抽屉高度 */\n size: {\n type: String,\n default: undefined,\n },\n /** 抽屉大小可拖拽调整,横向抽屉调整宽度,纵向抽屉调整高度。`sizeDraggable.max` 和 `sizeDraggable.min` 用于控制拖拽尺寸大小限制 */\n sizeDraggable: {\n type: [Boolean, Object] as PropType,\n default: false as TdDrawerProps['sizeDraggable'],\n },\n /** 组件是否可见 */\n visible: Boolean,\n /** 抽屉层级,样式默认为 1500 */\n zIndex: {\n type: Number,\n },\n /** 抽屉执行关闭动画效果前触发 */\n onBeforeClose: Function as PropType,\n /** 抽屉执行打开动画效果前触发 */\n onBeforeOpen: Function as PropType,\n /** 如果“取消”按钮存在,点击“取消”按钮时触发,同时触发关闭事件 */\n onCancel: Function as PropType,\n /** 关闭事件,取消按钮点击时、关闭按钮点击时、ESC 按下时、点击蒙层时均会触发 */\n onClose: Function as PropType,\n /** 如果关闭按钮存在,点击关闭按钮时触发该事件,同时触发关闭事件 */\n onCloseBtnClick: Function as PropType,\n /** 如果“确认”按钮存在,则点击“确认”按钮时触发 */\n onConfirm: Function as PropType,\n /** 按下 ESC 键时触发 */\n onEscKeydown: Function as PropType,\n /** 如果蒙层存在,点击蒙层时触发 */\n onOverlayClick: Function as PropType,\n /** 抽屉大小拖拽结束时触发,事件参数 `size` 在横向抽屉中表示宽度,在纵向抽屉中表示高度 */\n onSizeDragEnd: Function as PropType,\n};\n","type Placement = 'left' | 'right' | 'top' | 'bottom';\n\ninterface SizeDragLimit {\n max: number;\n min: number;\n}\n\nexport function getSizeDraggable(\n sizeDraggable: boolean | SizeDragLimit,\n limit: { max: number; min: number }\n) {\n if (typeof sizeDraggable === 'boolean') {\n return {\n allowSizeDraggable: sizeDraggable,\n max: limit.max,\n min: limit.min,\n };\n }\n\n return {\n allowSizeDraggable: true,\n max: sizeDraggable.max,\n min: sizeDraggable.min,\n };\n}\n\ntype IOptions = {\n x: number;\n y: number;\n maxWidth: number;\n maxHeight: number;\n min: number;\n max: number;\n};\n\n// > min && < max\nfunction calcSizeRange(size: number, min: number, max: number) {\n return Math.min(Math.max(size, min), max);\n}\n\nexport function calcMoveSize(placement: Placement, opts: IOptions) {\n const { x, y, max, min, maxWidth, maxHeight } = opts;\n let moveSize: number | undefined;\n switch (placement) {\n case 'right':\n // |<--- x --->| |\n // | maxWidth |\n // | size | > min && < max\n moveSize = calcSizeRange(maxWidth - x, min, max);\n break;\n case 'left':\n // |<-- x -->| |\n // x > min && < max\n moveSize = calcSizeRange(x, min, max);\n break;\n case 'top':\n // - - - - - - - -\n // | y |\n // | |\n // - - - - - - - -\n // > min && < max\n // moveSize = Math.min(Math.max(y, min), max);\n moveSize = calcSizeRange(y, min, max);\n break;\n case 'bottom':\n // - - - - - - - -\n // | y |\n // | | maxHeight\n // - - - - - - - -\n // | size |\n // > min && < max\n moveSize = calcSizeRange(maxHeight - y, min, max);\n break;\n default:\n // 参数缺失直接返回\n return moveSize;\n }\n return moveSize;\n}\n","import { computed, ref } from 'vue';\nimport { Styles } from '../../common';\nimport { getSizeDraggable, calcMoveSize } from '@tdesign/common-js/drawer/utils';\nimport type { TdDrawerProps } from '../type';\n\nexport const useDrag = (props: TdDrawerProps) => {\n // 以下为拖拽改变抽屉大小相关 可以抽成hooks\n const isSizeDragging = ref(false);\n const draggedSizeValue = ref(null);\n\n const enableDrag = (e: MouseEvent) => {\n e.stopPropagation(); // 阻止事件冒泡\n // mousedown绑定mousemove和mouseup事件\n document.addEventListener('mouseup', handleMouseup, true);\n document.addEventListener('mousemove', handleMousemove, true);\n isSizeDragging.value = true;\n };\n\n const handleMouseup = () => {\n document.removeEventListener('mouseup', handleMouseup, true);\n document.removeEventListener('mousemove', handleMousemove, true);\n isSizeDragging.value = false;\n };\n\n const handleMousemove = (e: MouseEvent) => {\n // 鼠标移动时计算draggedSizeValue的值\n const { x, y } = e;\n const maxHeight = document.documentElement.clientHeight;\n const maxWidth = document.documentElement.clientWidth;\n const offsetHeight = 8;\n const offsetWidth = 8;\n // x 轴方向使用最大宽度,y轴方向使用最大高度\n const max = props.placement === 'left' || props.placement === 'right' ? maxWidth : maxHeight;\n // x 轴方向使用默认最小宽度,y轴方向使用默认最小高度\n const min = props.placement === 'left' || props.placement === 'right' ? offsetWidth : offsetHeight;\n const { allowSizeDraggable, max: limitMax, min: limitMin } = getSizeDraggable(props.sizeDraggable, { max, min });\n\n // 不支持拖拽就直接返回\n if (!allowSizeDraggable || !isSizeDragging.value) return;\n\n const moveSize = calcMoveSize(props.placement, {\n x,\n y,\n maxWidth,\n maxHeight,\n max: limitMax,\n min: limitMin,\n });\n\n if (typeof moveSize === 'undefined') return;\n\n draggedSizeValue.value = `${moveSize}px`;\n props.onSizeDragEnd?.({\n e,\n size: moveSize,\n });\n };\n\n const draggableLineStyles = computed(() => {\n // 设置拖拽control的样式\n const isHorizontal = ['right', 'left'].includes(props.placement);\n const oppositeMap = {\n left: 'right',\n right: 'left',\n top: 'bottom',\n bottom: 'top',\n };\n return {\n zIndex: 1,\n position: 'absolute',\n background: 'transparent',\n [oppositeMap[props.placement]]: 0,\n width: isHorizontal ? '16px' : '100%',\n height: isHorizontal ? '100%' : '16px',\n cursor: isHorizontal ? 'col-resize' : 'row-resize',\n } as Styles;\n });\n\n const draggingStyles = computed(() => (isSizeDragging.value ? { userSelect: 'none' } : {}));\n\n return {\n draggedSizeValue,\n enableDrag,\n draggableLineStyles,\n draggingStyles,\n };\n};\n","import { onBeforeUnmount, onMounted, computed, defineComponent, nextTick, onUpdated, ref, watch, Teleport } from 'vue';\nimport { CloseIcon as TdCloseIcon } from 'tdesign-icons-vue-next';\nimport {\n useConfig,\n useContent,\n useTNodeJSX,\n useTeleport,\n useGlobalIcon,\n usePrefixClass,\n usePopupManager,\n} from '@tdesign/hooks';\n\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';\n\nimport { useDrag } from './hooks';\nimport type { TdDrawerProps } from './type';\n\nlet key = 1;\n\nexport default defineComponent({\n name: 'TDrawer',\n inheritAttrs: false,\n props,\n emits: ['update:visible'],\n setup(props, context) {\n const destroyOnCloseVisible = ref(false);\n const isVisible = ref(false);\n const styleEl = ref();\n const styleTimer = ref();\n const { globalConfig } = useConfig('drawer');\n const { CloseIcon } = useGlobalIcon({ CloseIcon: TdCloseIcon });\n const renderTNodeJSX = useTNodeJSX();\n const renderContent = useContent();\n const COMPONENT_NAME = usePrefixClass('drawer');\n const { draggedSizeValue, enableDrag, draggableLineStyles, draggingStyles } = useDrag(props as TdDrawerProps);\n const computedVisible = computed(() => props.visible);\n const isMounted = ref(false);\n\n // teleport容器\n const teleportElement = useTeleport(() => props.attach);\n\n const confirmBtnAction = (e: MouseEvent) => {\n props.onConfirm?.({ e });\n };\n const cancelBtnAction = (e: MouseEvent) => {\n props.onCancel?.({ e });\n closeDrawer({ trigger: 'cancel', e });\n };\n const { getConfirmBtn, getCancelBtn } = useAction({ confirmBtnAction, cancelBtnAction });\n const drawerEle = ref(null);\n const drawerClasses = computed(() => [\n COMPONENT_NAME.value,\n `${COMPONENT_NAME.value}--${props.placement}`,\n {\n [`${COMPONENT_NAME.value}--open`]: isVisible.value,\n [`${COMPONENT_NAME.value}--attach`]: props.showInAttachedElement,\n [`${COMPONENT_NAME.value}--without-mask`]: !props.showOverlay,\n },\n props.drawerClassName,\n ]);\n\n const sizeValue = computed(() => {\n if (draggedSizeValue.value) return draggedSizeValue.value;\n const size = props.size ?? globalConfig.value.size;\n const defaultSize = isNaN(Number(size)) ? size : `${size}px`;\n return (\n {\n small: '300px',\n medium: '500px',\n large: '760px',\n }[size] || defaultSize\n );\n });\n const wrapperStyles = computed(() => ({\n transform: isVisible.value ? 'translateX(0)' : undefined,\n width: ['left', 'right'].includes(props.placement) ? sizeValue.value : '',\n height: ['top', 'bottom'].includes(props.placement) ? sizeValue.value : '',\n }));\n\n const wrapperClasses = computed(() => [\n `${COMPONENT_NAME.value}__content-wrapper`,\n `${COMPONENT_NAME.value}__content-wrapper--${props.placement}`,\n ]);\n\n const parentNode = computed(() => drawerEle.value?.parentNode as HTMLElement);\n\n const modeAndPlacement = computed(() => [props.mode, props.placement].join());\n const footerStyle = computed(() => ({\n display: 'flex',\n justifyContent: props.placement === 'right' ? 'flex-start' : 'flex-end',\n }));\n\n const handleEscKeydown = (e: KeyboardEvent) => {\n if (\n (props.closeOnEscKeydown ?? globalConfig.value.closeOnEscKeydown) &&\n e.key === 'Escape' &&\n isVisible.value &&\n isTopInteractivePopup()\n ) {\n props.onEscKeydown?.({ e });\n closeDrawer({ trigger: 'esc', e });\n // 阻止事件冒泡\n e.stopImmediatePropagation();\n }\n };\n\n const clearStyleEl = () => {\n clearTimeout(styleTimer.value);\n styleTimer.value = setTimeout(() => {\n styleEl.value?.parentNode?.removeChild?.(styleEl.value);\n styleEl.value = null;\n }, 150);\n nextTick(() => {\n drawerEle.value?.focus?.();\n });\n };\n\n const createStyleEl = () => {\n if (!styleEl.value) return;\n const hasScrollBar = window.innerWidth > document.documentElement.clientWidth;\n const scrollWidth = hasScrollBar ? getScrollbarWidth() : 0;\n styleEl.value = document.createElement('style');\n styleEl.value.dataset.id = `td_drawer_${+new Date()}_${(key += 1)}`;\n styleEl.value.innerHTML = `\n html body {\n overflow-y: hidden;\n transition: margin 300ms cubic-bezier(0.7, 0.3, 0.1, 1) 0s;\n ${props.mode === 'push' ? '' : `width: calc(100% - ${scrollWidth}px);`}\n }\n `;\n };\n\n const handlePushMode = () => {\n if (props.mode !== 'push') return;\n nextTick(() => {\n if (!parentNode.value) return;\n parentNode.value.style.cssText = 'transition: margin 300ms cubic-bezier(0.7, 0.3, 0.1, 1) 0s;';\n });\n };\n\n // push 动画效果处理\n const updatePushMode = () => {\n if (!parentNode.value || props.mode !== 'push') return;\n const marginValueData = {\n left: { name: 'margin-left', value: sizeValue.value },\n right: { name: 'margin-right', value: `-${sizeValue.value}` },\n top: { name: 'margin-top', value: sizeValue.value },\n bottom: { name: 'margin-bottom', value: `-${sizeValue.value}` },\n }[props.placement];\n if (isVisible.value) {\n parentNode.value.style.setProperty(marginValueData.name, marginValueData.value);\n } else {\n parentNode.value.style.removeProperty(marginValueData.name);\n }\n };\n\n // locale 全局配置,插槽,props,默认值,决定了按钮最终呈现\n const getDefaultFooter = () => {\n const confirmBtn = getConfirmBtn({\n confirmBtn: props.confirmBtn as TdDrawerProps['confirmBtn'],\n globalConfirm: globalConfig.value.confirm,\n className: `${COMPONENT_NAME.value}__confirm`,\n });\n const cancelBtn = getCancelBtn({\n cancelBtn: props.cancelBtn as TdDrawerProps['cancelBtn'],\n globalCancel: globalConfig.value.cancel,\n className: `${COMPONENT_NAME.value}__cancel`,\n });\n return (\n
    \n {props.placement === 'right' ? confirmBtn : null}\n {cancelBtn}\n {props.placement !== 'right' ? confirmBtn : null}\n
    \n );\n };\n\n const { isTopInteractivePopup } = usePopupManager('drawer', {\n visible: computedVisible,\n });\n\n watch(modeAndPlacement, handlePushMode, { immediate: true });\n\n const updateVisibleState = (value: boolean) => {\n if (value) {\n isMounted.value = true;\n }\n\n if (props.destroyOnClose) {\n if (value) {\n destroyOnCloseVisible.value = false;\n setTimeout(() => (isVisible.value = true));\n } else {\n isVisible.value = false;\n setTimeout(() => (destroyOnCloseVisible.value = true), 200);\n }\n return;\n }\n\n if (destroyOnCloseVisible.value && value) {\n destroyOnCloseVisible.value = false;\n setTimeout(() => (isVisible.value = true));\n return;\n }\n\n setTimeout(() => (isVisible.value = value));\n };\n\n const addStyleElToHead = () => {\n if (\n !props.showInAttachedElement &&\n props.preventScrollThrough &&\n isVisible.value &&\n (isMounted.value || !props.lazy)\n ) {\n if (!styleEl.value) {\n createStyleEl();\n }\n if (styleEl.value && !document.head.contains(styleEl.value)) {\n document.head.appendChild(styleEl.value);\n }\n }\n };\n\n watch(\n () => props.visible,\n (value) => {\n if (isServer) return;\n if (value) {\n addStyleElToHead();\n props.onBeforeOpen?.();\n } else {\n clearStyleEl();\n props.onBeforeClose?.();\n }\n\n updateVisibleState(value);\n },\n { immediate: true },\n );\n\n const handleCloseBtnClick = (e: MouseEvent) => {\n props.onCloseBtnClick?.({ e });\n closeDrawer({ trigger: 'close-btn', e });\n };\n const handleWrapperClick = (e: MouseEvent) => {\n props.onOverlayClick?.({ e });\n if (props.closeOnOverlayClick ?? globalConfig.value.closeOnOverlayClick) {\n closeDrawer({ trigger: 'overlay', e });\n }\n };\n\n const closeDrawer = (params: DrawerCloseContext) => {\n props.onClose?.(params);\n context.emit('update:visible', false);\n };\n\n onUpdated(updatePushMode);\n\n onMounted(() => {\n addStyleElToHead();\n window.addEventListener('keydown', handleEscKeydown);\n });\n\n onBeforeUnmount(() => {\n clearStyleEl();\n window.removeEventListener('keydown', handleEscKeydown);\n });\n\n const shouldRender = computed(() => {\n if (!isMounted.value) {\n return !props.lazy;\n } else {\n return isVisible.value || !destroyOnCloseVisible.value;\n }\n });\n\n return () => {\n if (!shouldRender.value) return;\n\n const body = renderContent('body', 'default');\n const headerContent = renderTNodeJSX('header');\n const defaultFooter = getDefaultFooter();\n\n return (\n \n \n {props.showOverlay &&
    }\n
    \n {headerContent &&
    {headerContent}
    }\n {props.closeBtn && (\n
    \n {renderTNodeJSX('closeBtn', )}\n
    \n )}\n
    {body}
    \n {props.footer && (\n
    {renderTNodeJSX('footer', defaultFooter)}
    \n )}\n {props.sizeDraggable &&
    }\n
    \n
    \n
    \n );\n };\n },\n});\n","import { App, createApp, ref, Plugin, defineComponent, h, onMounted, nextTick } from 'vue';\nimport DrawerComponent from './drawer';\nimport { getAttach } from '../utils/dom';\nimport { DrawerOptions, DrawerMethod, DrawerInstance } from './type';\nimport { omit } from 'lodash-es';\n\nconst createDrawer: DrawerMethod = (props: DrawerOptions) => {\n const options = { ...props };\n const wrapper = document.createElement('div');\n const visible = ref(false);\n const { style } = options;\n\n const updateStyle = (style: DrawerOptions['style']) => {\n if (style) {\n (wrapper.firstElementChild as HTMLElement).style.cssText += style;\n }\n };\n\n const component = defineComponent({\n setup(props, { expose }) {\n const drawerOptions = ref>(options);\n onMounted(() => {\n visible.value = true;\n (document.activeElement as HTMLElement).blur();\n nextTick(() => {\n updateStyle(style);\n });\n });\n const update = (newOptions: DrawerOptions) => {\n drawerOptions.value = {\n ...options,\n ...newOptions,\n };\n };\n\n expose({\n update,\n });\n\n return () => {\n const onClose =\n options.onClose ||\n function () {\n visible.value = false;\n };\n delete options.style;\n return h(DrawerComponent, {\n onClose,\n visible: visible.value,\n drawerClassName: drawerOptions.value?.className,\n ...drawerOptions.value,\n });\n };\n },\n });\n const drawerComponent = createApp(component);\n const drawer = drawerComponent.mount(wrapper);\n\n const destroyDrawer = () => {\n visible.value = false;\n setTimeout(() => {\n drawerComponent.unmount();\n wrapper.remove();\n }, 300);\n };\n\n const container = getAttach(options.attach);\n if (container) {\n container.appendChild(wrapper);\n } else {\n console.error('attach is not exist');\n }\n\n const drawerNode: DrawerInstance = {\n show: () => {\n visible.value = true;\n },\n hide: () => {\n visible.value = false;\n },\n update: (newOptions: DrawerOptions) => {\n // className & style由updateClassNameStyle来处理\n drawer.update(omit(newOptions, ['style']));\n updateStyle(newOptions.style);\n },\n destroy: () => {\n destroyDrawer();\n },\n };\n return drawerNode;\n};\n\nexport type DrawerPluginType = Plugin & DrawerMethod;\n\nexport const DrawerPlugin = createDrawer as DrawerPluginType;\n\nDrawerPlugin.install = (app: App): void => {\n app.config.globalProperties.$drawer = createDrawer;\n};\n\nexport default DrawerPlugin;\n","import _Drawer from './drawer';\nimport withInstall from '../utils/withInstall';\nimport { TdDrawerProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type DrawerProps = TdDrawerProps;\n\nexport const Drawer = withInstall(_Drawer);\nexport { default as DrawerPlugin } from './plugin';\nexport default Drawer;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdGuideProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 用于自定义渲染计数部分 */\n counter: {\n type: Function as PropType,\n },\n /** 当前步骤,即整个引导的进度。-1 则不展示,用于需要中断展示的场景 */\n current: {\n type: Number,\n default: undefined,\n },\n modelValue: {\n type: Number,\n default: undefined,\n },\n /** 当前步骤,即整个引导的进度。-1 则不展示,用于需要中断展示的场景,非受控属性 */\n defaultCurrent: {\n type: Number,\n },\n /** 透传 完成 的全部属性,示例:`{ content: '完成', theme: 'primary' }` */\n finishButtonProps: {\n type: Object as PropType,\n },\n /** 是否隐藏计数 */\n hideCounter: Boolean,\n /** 是否隐藏上一步按钮 */\n hidePrev: Boolean,\n /** 是否隐藏跳过按钮 */\n hideSkip: Boolean,\n /** 高亮框的内边距 */\n highlightPadding: {\n type: Number,\n default: 8,\n },\n /** 引导框的类型 */\n mode: {\n type: String as PropType,\n default: 'popup' as TdGuideProps['mode'],\n validator(val: TdGuideProps['mode']): boolean {\n if (!val) return true;\n return ['popup', 'dialog'].includes(val);\n },\n },\n /** 透传 下一步按钮 的全部属性,示例:{ content: '下一步', theme: 'primary' } */\n nextButtonProps: {\n type: Object as PropType,\n },\n /** 透传 上一步按钮 的全部属性,示例:{ content: '上一步', theme: 'default' } */\n prevButtonProps: {\n type: Object as PropType,\n },\n /** 是否出现遮罩层 */\n showOverlay: {\n type: Boolean,\n default: true,\n },\n /** 透传 跳过按钮 的全部属性,{ content: '跳过', theme: 'default' } */\n skipButtonProps: {\n type: Object as PropType,\n },\n /** 用于定义每个步骤的内容,包括高亮的节点、相对位置和具体的文案内容等。 */\n steps: {\n type: Array as PropType,\n },\n /** 提示框的层级 */\n zIndex: {\n type: Number,\n default: 999999,\n },\n /** 当前步骤发生变化时触发 */\n onChange: Function as PropType,\n /** 点击完成按钮时触发 */\n onFinish: Function as PropType,\n /** 点击下一步时触发 */\n onNextStepClick: Function as PropType,\n /** 点击上一步时触发 */\n onPrevStepClick: Function as PropType,\n /** 点击跳过按钮时触发 */\n onSkip: Function as PropType,\n};\n","import { elementInViewport } from '../../utils/dom';\n\nexport function getScrollParent(element: HTMLElement) {\n let style = window.getComputedStyle(element);\n const excludeStaticParent = style.position === 'absolute';\n const overflowRegex = /(auto|scroll)/;\n\n if (style.position === 'fixed') return document.body;\n\n for (let parent = element; parent.parentElement; ) {\n parent = parent.parentElement;\n style = window.getComputedStyle(parent);\n if (excludeStaticParent && style.position === 'static') {\n continue;\n }\n if (overflowRegex.test(style.overflow + style.overflowY + style.overflowX)) return parent;\n }\n\n return document.body;\n}\n\nexport function scrollToParentVisibleArea(element: HTMLElement) {\n const parent = getScrollParent(element);\n if (parent === document.body) return;\n // !todo 逻辑待验证\n if (elementInViewport(element, parent)) return;\n parent.scrollTop = element.offsetTop - parent.offsetTop;\n}\n","import { getWindowSize, elementInViewport, scrollTo } from '../../utils/dom';\n\nexport function scrollToElm(elm: HTMLElement) {\n const rect = elm.getBoundingClientRect();\n\n if (!elementInViewport(elm)) {\n const winHeight = getWindowSize().height;\n // const top = rect.bottom - (rect.bottom - rect.top);\n scrollTo(rect.top - (winHeight / 2 - rect.height / 2), {});\n\n // todo 先暂时保留这里的逻辑\n // if (top < 0 || element.clientHeight > winHeight) {\n // window.scrollBy(0, rect.top - (winHeight / 2 - rect.height / 2));\n // } else {\n // window.scrollBy(0, rect.top - (winHeight / 2 - rect.height / 2));\n // }\n }\n}\n","import { defineComponent, computed, nextTick, onMounted, ref, toRefs, watch, h, Teleport } from 'vue';\nimport { isFunction } from 'lodash-es';\nimport props from './props';\nimport { GuideCrossProps } from './types';\nimport { TdGuideProps, GuideStep } from './type';\nimport { scrollToParentVisibleArea, getRelativePosition, getTargetElm, scrollToElm } from './utils';\nimport setStyle from '@tdesign/common-js/utils/setStyle';\nimport { addClass, removeClass, isFixed, getWindowScroll } from '../utils/dom';\nimport { useVModel, useConfig, useTNodeJSX, usePrefixClass } from '@tdesign/hooks';\n\nimport Button from '../button';\nimport Popup, { PopupProps } from '../popup';\n\nexport default defineComponent({\n name: 'TGuide',\n props,\n setup(props: TdGuideProps, context) {\n const renderTNodeJSX = useTNodeJSX();\n const COMPONENT_NAME = usePrefixClass('guide');\n const LOCK_CLASS = usePrefixClass('guide--lock');\n const { globalConfig } = useConfig('guide');\n\n const { current, modelValue, hideCounter, hidePrev, hideSkip, steps, zIndex } = toRefs(props);\n const [innerCurrent, setInnerCurrent] = useVModel(\n current,\n modelValue,\n props.defaultCurrent,\n props.onChange,\n 'current',\n );\n\n // 覆盖层,用于覆盖所有元素\n const overlayLayerRef = ref();\n // 高亮层,用于高亮元素\n const highlightLayerRef = ref();\n // 提示层,用于高亮元素\n const referenceLayerRef = ref();\n // 当前高亮的元素\n const currentHighlightLayerElm = ref();\n // dialog wrapper ref\n const dialogWrapperRef = ref();\n // dialog ref\n const dialogTooltipRef = ref();\n // ! popup ref 不确定这里的类型是否完全正确\n const popupTooltipRef = ref>();\n // 是否开始展示\n const actived = ref(false);\n // 步骤总数\n const stepsTotal = computed(() => steps.value.length);\n // 当前步骤的信息\n const currentStepInfo = computed(() => steps.value[innerCurrent.value]);\n // 当前是否为 popup\n const isPopup = computed(() => getCurrentCrossProps('mode') === 'popup');\n // 当前元素位置状态\n const currentElmIsFixed = computed(() => isFixed(currentHighlightLayerElm.value || document.body));\n // 获取当前步骤的属性值 用户当前步骤设置 > 用户组件设置的\n const getCurrentCrossProps = (propsName: Key) =>\n currentStepInfo.value[propsName] ?? props[propsName];\n // 获取当前步骤的用户设定的高亮内容\n const currentCustomHighlightContent = computed(() => {\n const { highlightContent } = currentStepInfo.value;\n\n let node: any = highlightContent;\n if (isFunction(highlightContent)) {\n // 支持函数\n node = highlightContent(hWithParams());\n } else if (context.slots.highlightContent) {\n // 支持插槽\n node = context.slots.highlightContent(hWithParams());\n } else if (context.slots['highlight-content']) {\n // 支持插槽\n node = context.slots['highlight-content'](hWithParams());\n } else if (!!highlightContent) {\n // 支持组件\n node = ;\n }\n\n // 给自定义元素添加类名\n if (node) {\n if (!node.props) node.props = {};\n node.props.class = node.props.class || '';\n }\n return node;\n });\n\n // 是否展示高亮区域\n const showCustomHighlightContent = computed(() => Boolean(currentCustomHighlightContent.value && isPopup.value));\n //\n const popupVisible = ref(false);\n const hWithParams = (params: Record = { currentStepInfo: currentStepInfo.value }) => {\n const newH = new Function('return ' + h.toString())();\n return Object.assign({}, newH, params);\n };\n\n // 设置高亮层的位置\n const setHighlightLayerPosition = (highlightLayer: HTMLElement, isReference = false) => {\n // 这里预留了一个相对元素的功能,暂未使用,也是这里导致了 fix #2111\n let { top, left } = getRelativePosition(currentHighlightLayerElm.value);\n let { width, height } = currentHighlightLayerElm.value.getBoundingClientRect();\n const highlightPadding = getCurrentCrossProps('highlightPadding');\n\n if (isPopup.value) {\n width += highlightPadding * 2;\n height += highlightPadding * 2;\n top -= highlightPadding;\n left -= highlightPadding;\n } else {\n const { scrollTop, scrollLeft } = getWindowScroll();\n top += scrollTop;\n left += scrollLeft;\n }\n\n const style = {\n top: `${top}px`,\n left: `${left}px`,\n };\n\n // 展示自定义高亮\n if (showCustomHighlightContent.value) {\n // 高亮框本身不设定宽高,引用用框的宽高设定为用户自定义的宽高\n if (isReference) {\n const { width, height } = highlightLayerRef.value.getBoundingClientRect();\n Object.assign(style, {\n width: `${width}px`,\n height: `${height}px`,\n });\n } else {\n Object.assign(style, {\n width: 'auto',\n height: 'auto',\n });\n }\n } else {\n Object.assign(style, {\n width: `${width}px`,\n height: `${height}px`,\n });\n }\n setStyle(highlightLayer, style);\n };\n\n const showPopupGuide = () => {\n nextTick(() => {\n currentHighlightLayerElm.value = getTargetElm(currentStepInfo.value.element);\n if (!currentHighlightLayerElm.value) return;\n scrollToParentVisibleArea(currentHighlightLayerElm.value);\n setHighlightLayerPosition(highlightLayerRef.value);\n setHighlightLayerPosition(referenceLayerRef.value, true);\n scrollToElm(currentHighlightLayerElm.value);\n // fix: https://github.com/Tencent/tdesign-vue-next/issues/2536\n // 这里其实是一个临时解决方案,最合理的是 popup 内部处理\n popupTooltipRef.value?.update();\n });\n };\n\n const destroyTooltipElm = () => {\n referenceLayerRef.value?.parentNode.removeChild(referenceLayerRef.value);\n };\n\n const showDialogGuide = () => {\n nextTick(() => {\n currentHighlightLayerElm.value = dialogTooltipRef.value;\n scrollToParentVisibleArea(currentHighlightLayerElm.value);\n setHighlightLayerPosition(highlightLayerRef.value);\n scrollToElm(currentHighlightLayerElm.value);\n });\n };\n\n const destroyDialogTooltipElm = () => {\n dialogTooltipRef.value?.parentNode.removeChild(dialogTooltipRef.value);\n dialogWrapperRef.value?.parentNode.removeChild(dialogWrapperRef.value);\n };\n\n const showGuide = () => {\n if (isPopup.value) {\n destroyDialogTooltipElm();\n showPopupGuide();\n } else {\n destroyTooltipElm();\n showDialogGuide();\n }\n popupVisible.value = true;\n };\n\n const destroyGuide = () => {\n destroyTooltipElm();\n destroyDialogTooltipElm();\n highlightLayerRef.value?.parentNode.removeChild(highlightLayerRef.value);\n overlayLayerRef.value?.parentNode.removeChild(overlayLayerRef.value);\n removeClass(document.body, LOCK_CLASS.value);\n };\n\n const handleSkip = (e: MouseEvent) => {\n const total = stepsTotal.value;\n actived.value = false;\n setInnerCurrent(-1, { e, total });\n props.onSkip?.({ e, current: innerCurrent.value, total });\n };\n\n const handlePrev = (e: MouseEvent) => {\n const total = stepsTotal.value;\n setInnerCurrent(innerCurrent.value - 1, { e, total });\n props.onPrevStepClick?.({\n e,\n prev: innerCurrent.value - 1,\n current: innerCurrent.value,\n total,\n });\n };\n\n const handleNext = (e: MouseEvent) => {\n const total = stepsTotal.value;\n setInnerCurrent(innerCurrent.value + 1, { e, total });\n props.onNextStepClick?.({\n e,\n next: innerCurrent.value + 1,\n current: innerCurrent.value,\n total,\n });\n };\n\n const handleFinish = (e: MouseEvent) => {\n const total = stepsTotal.value;\n actived.value = false;\n setInnerCurrent(-1, { e, total });\n props.onFinish?.({ e, current: innerCurrent.value, total });\n };\n\n const initGuide = () => {\n if (innerCurrent.value >= 0 && innerCurrent.value < steps.value.length) {\n if (!actived.value) {\n actived.value = true;\n addClass(document.body, LOCK_CLASS.value);\n }\n showGuide();\n }\n };\n\n watch(innerCurrent, (val) => {\n if (val >= 0 && val < steps.value.length) {\n popupVisible.value = false;\n initGuide();\n } else {\n actived.value = false;\n destroyGuide();\n }\n });\n\n onMounted(() => {\n initGuide();\n });\n\n return () => {\n const renderOverlayLayer = () => (\n
    \n );\n\n const renderHighlightLayer = () => {\n const style = { zIndex: zIndex.value - 1 };\n const highlightClass = [\n `${COMPONENT_NAME.value}__highlight`,\n `${COMPONENT_NAME.value}__highlight--${isPopup.value ? 'popup' : 'dialog'}`,\n `${COMPONENT_NAME.value}--${currentElmIsFixed.value && isPopup.value ? 'fixed' : 'absolute'}`,\n ];\n const showOverlay = getCurrentCrossProps('showOverlay');\n const maskClass = [`${COMPONENT_NAME.value}__highlight--${showOverlay ? 'mask' : 'nomask'}`];\n\n return (\n
    \n {showCustomHighlightContent.value && currentCustomHighlightContent.value}\n
    \n );\n };\n\n const renderCounter = () => {\n const popupSlotCounter = renderTNodeJSX('counter', {\n params: { total: stepsTotal.value, current: innerCurrent.value },\n });\n\n const popupDefaultCounter = (\n
    \n {popupSlotCounter || `${innerCurrent.value + 1}/${stepsTotal.value}`}\n
    \n );\n return <>{!hideCounter.value && popupDefaultCounter};\n };\n\n const renderAction = (mode: TdGuideProps['mode']) => {\n const isLast = innerCurrent.value === stepsTotal.value - 1;\n const isFirst = innerCurrent.value === 0;\n const buttonSize = mode === 'popup' ? 'small' : 'medium';\n\n return (\n
    \n {!hideSkip.value && !isLast && (\n \n )}\n {!hidePrev.value && !isFirst && (\n \n )}\n {!isLast && (\n \n )}\n {isLast && (\n \n )}\n
    \n );\n };\n\n const renderTitle = () => {\n const functionTitle = isFunction(currentStepInfo.value.title) ? currentStepInfo.value.title() : undefined;\n const slotTitle = context.slots.title ? context.slots.title(hWithParams()) : undefined;\n return functionTitle || slotTitle || currentStepInfo.value.title;\n };\n\n const renderTooltipBody = () => {\n const title =
    {renderTitle()}
    ;\n const bodyRender = currentStepInfo.value.body;\n\n let descBody: any;\n if (isFunction(bodyRender)) {\n descBody = bodyRender(hWithParams());\n } else if (context.slots.body) {\n descBody = context.slots.body({ currentStepInfo: currentStepInfo.value });\n } else if (typeof bodyRender === 'string') {\n descBody = bodyRender;\n } else {\n descBody = ;\n }\n const desc =
    {descBody}
    ;\n\n return (\n <>\n {title}\n {desc}\n \n );\n };\n\n const renderPopupContent = () => {\n const footerClasses = [`${COMPONENT_NAME.value}__footer`, `${COMPONENT_NAME.value}__footer--popup`];\n const action = (\n
    \n {renderCounter()}\n {renderAction('popup')}\n
    \n );\n\n return (\n
    \n {renderTooltipBody()}\n {action}\n
    \n );\n };\n\n const renderPopupGuide = () => {\n const { content } = currentStepInfo.value;\n const contentProps = {\n handlePrev,\n handleNext,\n handleSkip,\n handleFinish,\n current: innerCurrent.value,\n total: stepsTotal.value,\n };\n let renderBody;\n if (isFunction(content)) {\n renderBody = () => content(hWithParams(contentProps));\n } else if (context.slots.content) {\n renderBody = () => context.slots.content(hWithParams(contentProps));\n } else if (content) {\n renderBody = () => ;\n } else {\n renderBody = renderPopupContent;\n }\n const classes = [\n `${COMPONENT_NAME.value}__reference`,\n `${COMPONENT_NAME.value}--${currentElmIsFixed.value ? 'fixed' : 'absolute'}`,\n ];\n\n const innerClassName: PopupProps['overlayInnerClassName'] = [\n {\n [`${COMPONENT_NAME.value}__popup--content`]: !!content,\n },\n ];\n\n return (\n \n
    \n \n );\n };\n\n const renderDialogGuide = () => {\n const style = { zIndex: zIndex.value };\n const wrapperClasses = [\n `${COMPONENT_NAME.value}__wrapper`,\n { [`${COMPONENT_NAME.value}__wrapper--center`]: currentStepInfo.value.placement === 'center' },\n ];\n const dialogClasses = [\n `${COMPONENT_NAME.value}__reference`,\n `${COMPONENT_NAME.value}--absolute`,\n `${COMPONENT_NAME.value}__dialog`,\n {\n [`${COMPONENT_NAME.value}__dialog--nomask`]: !getCurrentCrossProps('showOverlay'),\n [currentStepInfo.value.stepOverlayClass]: !!currentStepInfo.value.stepOverlayClass,\n },\n ];\n const footerClasses = [`${COMPONENT_NAME.value}__footer`, `${COMPONENT_NAME.value}__footer--popup`];\n return (\n <>\n
    \n
    \n {renderTooltipBody()}\n
    \n {renderCounter()}\n {renderAction('dialog')}\n
    \n
    \n
    \n \n );\n };\n\n const renderGuide = () => {\n return (\n <>\n \n {renderOverlayLayer()}\n {renderHighlightLayer()}\n {isPopup.value ? renderPopupGuide() : renderDialogGuide()}\n \n \n );\n };\n\n return <>{actived.value && renderGuide()};\n };\n },\n});\n","import { getElmCssPropValue, isFixed, getWindowScroll } from '../../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 { isString, isFunction } from 'lodash-es';\n\nimport { AttachNode } from '../../common';\n\nexport function getTargetElm(elm: AttachNode): HTMLElement {\n if (elm) {\n let targetElement: HTMLElement = null;\n if (isString(elm)) {\n targetElement = document.querySelector(elm);\n } else if (isFunction(elm)) {\n targetElement = elm() as HTMLElement;\n } else {\n throw new Error('elm should be string or function');\n }\n if (targetElement) {\n return targetElement as HTMLElement;\n }\n if (process?.env?.NODE_ENV !== 'test') {\n throw new Error('There is no element with given.');\n }\n } else {\n return document.body;\n }\n}\n","import _Guide from './guide';\nimport withInstall from '../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 { useConfig, useContent, useTNodeJSX, useGlobalIcon, usePrefixClass } from '@tdesign/hooks';\nimport props from './props';\n\nimport { fadeIn, fadeOut } from './utils';\n\nexport default defineComponent({\n name: 'TNotification',\n props: {\n ...props,\n placement: String, // just for animation\n },\n setup(props, { slots, expose }) {\n const COMPONENT_NAME = usePrefixClass('notification');\n const { classPrefix } = useConfig('classPrefix');\n const { InfoCircleFilledIcon, CheckCircleFilledIcon, CloseIcon } = useGlobalIcon({\n InfoCircleFilledIcon: TdInfoCircleFilledIcon,\n CheckCircleFilledIcon: TdCheckCircleFilledIcon,\n CloseIcon: TdCloseIcon,\n });\n const renderTNode = useTNodeJSX();\n const renderContent = useContent();\n const timer = ref(null);\n const notificationRef = ref(null);\n\n const close = (e?: MouseEvent) => {\n const dom = notificationRef.value as HTMLElement;\n fadeOut(dom, props.placement, () => {\n props.onCloseBtnClick?.({ e });\n });\n };\n\n const renderIcon = () => {\n let iconContent;\n if (props.icon === false) return null;\n if (isFunction(props.icon)) {\n iconContent = props.icon(h);\n } else if (slots.icon) {\n iconContent = slots.icon(null);\n } else if (props.theme) {\n const iconType =\n props.theme === 'success' ? (\n \n ) : (\n \n );\n iconContent =
    {iconType}
    ;\n }\n return iconContent;\n };\n\n const renderClose = () => {\n const defaultClose = ;\n return (\n \n {renderTNode('closeBtn', defaultClose)}\n \n );\n };\n\n const renderMainContent = () => {\n return
    {renderContent('default', 'content')}
    ;\n };\n\n const clearTimer = () => {\n props.duration && clearTimeout(timer.value);\n };\n\n const setTimer = () => {\n if (!props.duration) {\n return;\n }\n timer.value = Number(\n setTimeout(() => {\n clearTimer();\n const dom = notificationRef.value as HTMLElement;\n fadeOut(dom, props.placement, () => {\n props.onDurationEnd?.();\n });\n }, props.duration),\n );\n };\n\n onBeforeMount(() => {\n props.duration && setTimer();\n });\n\n onMounted(() => {\n const dom = notificationRef.value;\n fadeIn(dom, props.placement);\n });\n\n expose({ close });\n return () => (\n
    \n {renderIcon()}\n
    \n
    \n {renderTNode('title')}\n {renderClose()}\n
    \n {renderMainContent()}\n {renderTNode('footer')}\n
    \n
    \n );\n },\n});\n","import { defineComponent, ref, computed, Ref, CSSProperties } from 'vue';\nimport Notification from './notification';\nimport { TdNotificationProps, NotificationOptions } from './type';\nimport { DEFAULT_Z_INDEX, PLACEMENT_OFFSET, DISTANCE } from './consts';\nimport { usePrefixClass } from '@tdesign/hooks';\n\nexport default defineComponent({\n props: {\n placement: {\n type: String,\n default: 'top-right',\n validator(v: string): boolean {\n return ['top-left', 'top-right', 'bottom-left', 'bottom-right'].indexOf(v) > -1;\n },\n },\n },\n setup(props, { expose }) {\n const COMPONENT_NAME = usePrefixClass('notification-list');\n\n const { placement } = props as NotificationOptions;\n\n const list: Ref = ref([]);\n const notificationList = ref([]);\n\n const styles = computed(() => ({\n zIndex: DEFAULT_Z_INDEX,\n ...PLACEMENT_OFFSET[placement],\n }));\n\n const add = (options: TdNotificationProps): number => {\n list.value.push(options);\n return list.value.length - 1;\n };\n\n const remove = (index: number) => {\n list.value.splice(index, 1);\n };\n\n const removeAll = () => {\n list.value = [];\n };\n\n const getOffset = (val: string | number) => {\n if (!val) return;\n return isNaN(Number(val)) ? val : `${val}px`;\n };\n\n const notificationStyles = (item: { offset: NotificationOptions['offset']; zIndex: number }) => {\n const styles: CSSProperties = {\n marginBottom: DISTANCE,\n };\n if (item.offset) {\n styles.position = 'relative';\n styles.left = getOffset(item.offset[0]);\n styles.top = getOffset(item.offset[1]);\n }\n if (item.zIndex) styles['z-index'] = item.zIndex;\n return styles;\n };\n\n const getProps = (index: number, item: NotificationOptions) => {\n return {\n ...item,\n onCloseBtnClick: (e: any) => {\n if (item.onCloseBtnClick) {\n item.onCloseBtnClick(e);\n }\n return remove(index);\n },\n onDurationEnd: () => {\n if (item.onDurationEnd) {\n item.onDurationEnd();\n }\n return remove(index);\n },\n };\n };\n\n const addChild = (el: Element) => {\n if (el) {\n notificationList.value.push(el);\n }\n };\n expose({ add, remove, removeAll, list, notificationList });\n\n return () => {\n if (!list.value.length) return;\n\n return (\n
    \n {list.value.map((item: { offset: NotificationOptions['offset']; zIndex: number; id: number }, index) => (\n \n ))}\n
    \n );\n };\n },\n});\n","import { App, Plugin, 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 {\n useConfig,\n useVModel,\n useContent,\n useTNodeJSX,\n useGlobalIcon,\n usePrefixClass,\n useTNodeDefault,\n} from '@tdesign/hooks';\n\nimport Popup, { PopupProps, PopupVisibleChangeContext } from '../popup/index';\nimport props from './props';\n\nimport { useAction } from '../dialog/hooks';\n\nimport type { PopconfirmVisibleChangeContext } from './type';\nimport type { TdDialogProps } from '../dialog/type';\nexport default defineComponent({\n name: 'TPopconfirm',\n props,\n setup(props) {\n const { globalConfig } = useConfig('popconfirm');\n const COMPONENT_NAME = usePrefixClass('popconfirm');\n const { InfoCircleFilledIcon, ErrorCircleFilledIcon } = useGlobalIcon({\n InfoCircleFilledIcon: TdInfoCircleFilledIcon,\n ErrorCircleFilledIcon: TdErrorCircleFilledIcon,\n });\n\n const { visible, modelValue } = toRefs(props);\n const [innerVisible, setInnerVisible] = useVModel(\n visible,\n modelValue,\n props.defaultVisible,\n props.onVisibleChange,\n 'visible',\n );\n\n const confirmBtnAction = (e: MouseEvent) => {\n props.onConfirm?.({ e });\n setInnerVisible(false, { e, trigger: 'confirm' });\n };\n\n const cancelBtnAction = (e: MouseEvent) => {\n props.onCancel?.({ e });\n setInnerVisible(false, { e, trigger: 'cancel' });\n };\n\n const { getConfirmBtn, getCancelBtn } = useAction({ confirmBtnAction, cancelBtnAction });\n\n const renderTNodeJSX = useTNodeJSX();\n const innerPopupProps = computed(() => {\n return {\n showArrow: props.showArrow,\n overlayClassName: COMPONENT_NAME.value,\n trigger: 'click' as PopupProps['trigger'],\n destroyOnClose: props.destroyOnClose,\n placement: props.placement,\n ...(props.popupProps as PopupProps),\n };\n });\n\n const renderTNodeDefault = useTNodeDefault();\n const renderContent = () => {\n const cancelBtn = getCancelBtn({\n cancelBtn: props.cancelBtn as TdDialogProps['cancelBtn'],\n globalCancel: globalConfig.value.cancel,\n className: `${COMPONENT_NAME.value}__cancel`,\n size: 'small',\n });\n\n const confirmBtn = getConfirmBtn({\n theme: props.theme,\n confirmBtn: props.confirmBtn as TdDialogProps['confirmBtn'],\n globalConfirm: globalConfig.value.confirm,\n globalConfirmBtnTheme: globalConfig.value.confirmBtnTheme,\n className: `${COMPONENT_NAME.value}__confirm`,\n size: 'small',\n });\n\n const renderIcon = () => {\n const Icon = {\n default: InfoCircleFilledIcon,\n warning: ErrorCircleFilledIcon,\n danger: ErrorCircleFilledIcon,\n }[props.theme];\n const theme = props.theme || 'default';\n return renderTNodeDefault('icon', );\n };\n\n return (\n
    \n
    \n {renderIcon()}\n
    {renderTNodeJSX('content')}
    \n
    \n {Boolean(cancelBtn || confirmBtn) && (\n
    \n {cancelBtn}\n {confirmBtn}\n
    \n )}\n
    \n );\n };\n\n const onPopupVisibleChange = (val: boolean, context: PopupVisibleChangeContext) => {\n setInnerVisible(val, context as PopconfirmVisibleChangeContext);\n };\n\n const renderTNodeContent = useContent();\n\n return () => (\n \n {renderTNodeContent('default', 'triggerElement')}\n \n );\n },\n});\n","import _Popconfirm from './popconfirm';\nimport withInstall from '../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, useGlobalIcon } from '@tdesign/hooks';\nimport { UploadFile } from '../type';\nimport { abridgeName } from '@tdesign/common-js/upload/utils';\n\nimport { CommonDisplayFileProps } from '../types';\nimport { commonProps } from '../consts';\nimport { UploadConfig } from '../../config-provider';\n\nexport interface NormalFileProps extends CommonDisplayFileProps {\n multiple: boolean;\n}\n\nconst NormalFile = defineComponent({\n name: 'UploadNormalFile',\n props: {\n multiple: Boolean,\n ...commonProps,\n },\n setup(props, { slots }) {\n const { theme, disabled, classPrefix } = toRefs(props);\n\n const locale = computed(() => props.locale as UploadConfig);\n\n const { CloseIcon, TimeFilledIcon, CheckCircleFilledIcon, ErrorCircleFilledIcon, CloseCircleFilledIcon } =\n useGlobalIcon({\n CloseIcon: TdCloseIcon,\n TimeFilledIcon: TdTimeFilledIcon,\n CheckCircleFilledIcon: TdCheckCircleFilledIcon,\n ErrorCircleFilledIcon: TdErrorCircleFilledIcon,\n CloseCircleFilledIcon: TdCloseCircleFilledIcon,\n });\n\n const renderTNodeJSX = useTNodeJSX();\n\n const uploadPrefix = `${classPrefix.value}-upload`;\n\n const renderProgress = (percent: number) => (\n
    \n \n {props.showUploadProgress && {percent || 0}%}\n
    \n );\n\n // 文本型预览\n const renderFilePreviewAsText = (files: UploadFile[]) => {\n if (theme.value !== 'file') return null;\n if (!props.multiple && files[0]?.status === 'fail' && props.autoUpload) {\n return null;\n }\n return files.map((file, index) => {\n const fileName = props.abridgeName && file.name ? abridgeName(file.name, ...props.abridgeName) : file.name;\n return (\n \n {file.url ? (\n \n {fileName}\n \n ) : (\n {fileName}\n )}\n {file.status === 'fail' && (\n
    \n \n
    \n )}\n {file.status === 'waiting' && (\n
    \n \n
    \n )}\n {file.status === 'progress' && renderProgress(file.percent)}\n {!disabled.value && file.status !== 'progress' && (\n props.onRemove({ e, file, index })}\n />\n )}\n
    \n );\n });\n };\n\n // 输入框型预览\n const renderFilePreviewAsInput = () => {\n if (theme.value !== 'file-input') return;\n const file: UploadFile = props.displayFiles[0] || [];\n const inputTextClass = [\n `${classPrefix.value}-input__inner`,\n { [`${uploadPrefix}__placeholder`]: !props.displayFiles[0] },\n ];\n const disabledClass = disabled.value ? `${classPrefix.value}-is-disabled` : '';\n const fileName =\n props.abridgeName?.length && file?.name ? abridgeName(file.name, ...props.abridgeName) : file?.name;\n return (\n
    \n
    \n \n {file?.name ? fileName : props.placeholder}\n \n {file?.status === 'progress' && renderProgress(file.percent)}\n {file?.status === 'waiting' && (\n \n )}\n {file.status === 'success' && }\n {file?.name && file.status === 'fail' && (\n \n )}\n {Boolean(!disabled.value && file.name) && (\n props.onRemove({ e, file, index: 0 })}\n />\n )}\n
    \n
    \n );\n };\n\n return () => {\n const classes = [`${uploadPrefix}__single`, `${uploadPrefix}__single-${theme.value}`];\n let fileListDisplay = renderTNodeJSX('fileListDisplay', {\n params: {\n onRemove: props.onRemove,\n toUploadFiles: props.toUploadFiles,\n sizeOverLimitMessage: props.sizeOverLimitMessage,\n locale: props.locale,\n files: props.displayFiles,\n },\n });\n if (props.fileListDisplay === null || fileListDisplay === null) {\n fileListDisplay = null;\n }\n\n const { displayFiles } = props;\n\n return (\n
    \n {theme.value === 'file-input' && renderFilePreviewAsInput()}\n\n {slots.default?.()}\n\n {theme.value === 'file' && props.placeholder && !displayFiles[0] && (\n {props.placeholder}\n )}\n\n {fileListDisplay === null ? null : fileListDisplay || renderFilePreviewAsText(displayFiles)}\n\n {/* 单文件上传失败要显示失败的原因 */}\n {!props.multiple && displayFiles[0]?.status === 'fail' && theme.value === 'file' ? (\n \n {displayFiles[0].response?.error || locale.value.progress.failText}\n \n ) : null}\n
    \n );\n };\n },\n});\n\nexport default NormalFile;\n","import { Ref, ref } from 'vue';\nimport { getFileList } from '@tdesign/common-js/upload/utils';\nimport { TdUploadProps } from '../type';\n\nexport interface UploadDragEvents {\n onDragFileChange?: (files: File[]) => void;\n onDragenter?: TdUploadProps['onDragenter'];\n onDragleave?: TdUploadProps['onDragleave'];\n onDrop?: TdUploadProps['onDrop'];\n}\n\nexport default function useDrag(props: UploadDragEvents, accept: Ref) {\n const target = ref(null);\n const dragActive = ref(false);\n\n const handleDrop = (event: DragEvent) => {\n event.preventDefault();\n dragActive.value = false;\n\n const { files } = event.dataTransfer;\n const dragFiles: File[] = getFileList(files, accept.value);\n props.onDrop?.({ e: event });\n if (dragFiles?.length) {\n props.onDragFileChange?.(dragFiles);\n }\n };\n\n const handleDragenter = (event: DragEvent) => {\n event.preventDefault();\n target.value = event.target;\n props.onDragenter?.({ e: event });\n dragActive.value = true;\n };\n\n const handleDragleave = (event: DragEvent) => {\n if (event.target !== target.value) return;\n event.preventDefault();\n props.onDragleave?.({ e: event });\n dragActive.value = false;\n };\n\n const handleDragover = (event: DragEvent) => {\n event.preventDefault();\n };\n\n return {\n target,\n dragActive,\n handleDrop,\n handleDragenter,\n handleDragleave,\n handleDragover,\n };\n}\n","import { defineComponent, toRefs, PropType, ref, computed, h } from 'vue';\nimport {\n CheckCircleFilledIcon as TdCheckCircleFilledIcon,\n ErrorCircleFilledIcon as TdErrorCircleFilledIcon,\n} from 'tdesign-icons-vue-next';\nimport { abridgeName, getFileSizeText } from '@tdesign/common-js/upload/utils';\nimport { TdUploadProps, UploadFile } from '../type';\nimport Button from '../../button';\nimport { CommonDisplayFileProps } from '../types';\nimport { commonProps } from '../consts';\nimport { useTNodeJSX, useGlobalIcon, useCommonClassName } from '@tdesign/hooks';\nimport TLoading from '../../loading';\nimport useDrag, { UploadDragEvents } from '../hooks/useDrag';\n\nimport ImageViewer, { ImageViewerProps } from '../../image-viewer';\n\nimport { UploadConfig } from '../../config-provider';\nimport Image from '../../image';\n\nexport interface DraggerProps extends CommonDisplayFileProps {\n trigger?: TdUploadProps['trigger'];\n triggerUpload?: (e: MouseEvent) => void;\n uploadFiles?: (toFiles?: UploadFile[]) => void;\n cancelUpload?: (context: { e: MouseEvent; file: UploadFile }) => void;\n dragEvents: UploadDragEvents;\n}\n\nexport default defineComponent({\n name: 'UploadDraggerFile',\n props: {\n ...commonProps,\n trigger: Function as PropType,\n triggerUpload: Function as PropType,\n uploadFiles: Function as PropType,\n cancelUpload: Function as PropType,\n dragEvents: Object as PropType,\n },\n setup(props, { slots }) {\n const { displayFiles, disabled, accept } = toRefs(props);\n const locale = computed(() => props.locale as UploadConfig);\n\n const renderTNodeJSX = useTNodeJSX();\n\n const { SIZE } = useCommonClassName();\n const uploadPrefix = `${props.classPrefix}-upload`;\n\n const drag = useDrag(props.dragEvents, accept);\n const { dragActive } = drag;\n\n const draggerFileRef = ref();\n\n const classes = computed(() => [\n `${uploadPrefix}__dragger`,\n { [`${uploadPrefix}__dragger-center`]: !displayFiles.value[0] },\n { [`${uploadPrefix}__dragger-error`]: displayFiles.value[0]?.status === 'fail' },\n ]);\n\n const { CheckCircleFilledIcon, ErrorCircleFilledIcon } = useGlobalIcon({\n CheckCircleFilledIcon: TdCheckCircleFilledIcon,\n ErrorCircleFilledIcon: TdErrorCircleFilledIcon,\n });\n\n const renderImage = () => {\n if (!props.displayFiles.length) return;\n const file = displayFiles.value[0];\n if (!file) return null;\n const url = file?.url || file?.response?.url;\n return (\n
    \n }\n {...(props.imageViewerProps as ImageViewerProps)}\n >\n
    \n );\n };\n\n const renderUploading = () => {\n if (!props.displayFiles.length) return;\n const file = displayFiles.value[0];\n if (!file) return null;\n if (file?.status === 'progress') {\n return (\n
    \n \n {props.showUploadProgress && {file.percent}%}\n
    \n );\n }\n };\n\n const renderMainPreview = () => {\n const file = displayFiles.value[0];\n const fileName = props.abridgeName ? abridgeName(file.name, ...props.abridgeName) : file.name;\n\n const fileInfo = [\n
    \n {fileName}\n {file.status === 'progress' && renderUploading()}\n {file.status === 'success' && }\n {file.status === 'fail' && }\n
    ,\n \n {locale.value.file.fileSizeText}:{getFileSizeText(file.size)}\n ,\n \n {locale.value.file.fileOperationDateText}:{file.uploadTime || '-'}\n ,\n ];\n return (\n
    \n {props.theme === 'image' && renderImage()}\n
    \n {renderTNodeJSX('fileListDisplay', { params: { files: props.displayFiles } }) || fileInfo}\n\n
    \n {['progress', 'waiting'].includes(file.status) && !disabled.value && (\n \n props.cancelUpload?.({\n e,\n file: props.toUploadFiles[0] || props.files[0],\n })\n }\n >\n {locale.value?.cancelUploadText}\n \n )}\n {!props.autoUpload && file.status === 'waiting' && (\n props.uploadFiles?.()}\n class={`${uploadPrefix}__dragger-upload-btn`}\n >\n {locale.value.triggerUploadText.normal}\n \n )}\n
    \n {['fail', 'success'].includes(file?.status) && !disabled.value && (\n
    \n \n {locale.value.triggerUploadText.reupload}\n \n props.onRemove({ e, index: 0, file })}\n >\n {locale.value.triggerUploadText.delete}\n \n
    \n )}\n
    \n
    \n );\n };\n\n const renderDefaultDragElement = () => {\n const unActiveElement = (\n
    \n {locale.value.triggerUploadText?.normal}\n   /  {locale.value.dragger.draggingText}\n
    \n );\n const activeElement =
    {locale.value.dragger.dragDropText}
    ;\n return dragActive.value ? activeElement : unActiveElement;\n };\n\n const getContent = () => {\n const file = displayFiles.value[0];\n if (file && (['progress', 'success', 'fail', 'waiting'].includes(file.status) || !file.status)) {\n return renderMainPreview();\n }\n return (\n
    \n {slots.default?.() || renderDefaultDragElement()}\n
    \n );\n };\n\n return () => (\n \n {props.trigger?.(h, { files: displayFiles.value, dragActive: dragActive.value }) || getContent()}\n
    \n );\n },\n});\n","import { defineComponent, PropType, toRefs, computed } from 'vue';\nimport {\n BrowseIcon as TdBrowseIcon,\n DeleteIcon as TdDeleteIcon,\n AddIcon as TdAddIcon,\n ErrorCircleFilledIcon as TdErrorCircleFilledIcon,\n} from 'tdesign-icons-vue-next';\nimport Loading from '../../loading';\nimport { useTNodeJSX, useGlobalIcon } from '@tdesign/hooks';\nimport ImageViewer, { ImageViewerProps } from '../../image-viewer';\nimport { CommonDisplayFileProps } from '../types';\nimport { commonProps } from '../consts';\nimport { TdUploadProps, UploadFile } from '../type';\nimport { abridgeName } from '@tdesign/common-js/upload/utils';\nimport { UploadConfig } from '../../config-provider';\n\nimport Link from '../../link';\nimport Image from '../../image';\n\nexport interface ImageCardUploadProps extends CommonDisplayFileProps {\n multiple: TdUploadProps['multiple'];\n max: TdUploadProps['max'];\n disabled?: TdUploadProps['disabled'];\n showUploadProgress: TdUploadProps['showUploadProgress'];\n triggerUpload?: (e: MouseEvent) => void;\n uploadFiles?: (toFiles?: UploadFile[]) => void;\n cancelUpload?: (context: { e: MouseEvent; file: UploadFile }) => void;\n onPreview?: TdUploadProps['onPreview'];\n}\n\nexport default defineComponent({\n name: 'UploadImageCard',\n props: {\n ...commonProps,\n multiple: Boolean,\n max: Number,\n disabled: Boolean,\n showUploadProgress: Boolean,\n triggerUpload: Function as PropType,\n uploadFiles: Function as PropType,\n cancelUpload: Function as PropType,\n onPreview: Function as PropType,\n showImageFileName: Boolean,\n },\n setup(props) {\n const { displayFiles, classPrefix, multiple, max } = toRefs(props);\n const locale = computed(() => props.locale as UploadConfig);\n const { BrowseIcon, DeleteIcon, AddIcon, ErrorCircleFilledIcon } = useGlobalIcon({\n AddIcon: TdAddIcon,\n BrowseIcon: TdBrowseIcon,\n DeleteIcon: TdDeleteIcon,\n ErrorCircleFilledIcon: TdErrorCircleFilledIcon,\n });\n\n const renderTNodeJSX = useTNodeJSX();\n\n const showTrigger = computed(() => {\n if (multiple.value) {\n return !max.value || displayFiles.value.length < max.value;\n }\n return !displayFiles.value?.[0];\n });\n\n const renderMainContent = (file: UploadFile, index: number) => {\n return (\n
    \n \n
    \n e.stopPropagation()}>\n t.url || t.raw)}\n defaultIndex={index}\n trigger={(h, { open }) => {\n return (\n {\n props.onPreview?.({ file, index, e });\n open();\n }}\n />\n );\n }}\n {...(props.imageViewerProps as ImageViewerProps)}\n >\n \n {!props.disabled && (\n <>\n \n e.stopPropagation()}>\n props?.onRemove?.({ e, file, index })} />\n \n \n )}\n
    \n
    \n );\n };\n\n const renderProgressFile = (file: UploadFile, loadCard: string) => {\n return (\n
    \n \n

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

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

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

    \n
    \n e.stopPropagation()}>\n props?.onRemove?.({ e, file, index })} />\n \n
    \n
    \n );\n };\n\n return () => {\n // render custom UI with fileListDisplay\n const customList = renderTNodeJSX('fileListDisplay', {\n params: {\n triggerUpload: props.triggerUpload,\n uploadFiles: props.uploadFiles,\n cancelUpload: props.cancelUpload,\n onPreview: props.onPreview,\n onRemove: props.onRemove,\n toUploadFiles: props.toUploadFiles,\n sizeOverLimitMessage: props.sizeOverLimitMessage,\n locale: props.locale,\n files: displayFiles.value,\n },\n });\n if (customList) return customList;\n\n const cardItemClasses = `${classPrefix.value}-upload__card-item ${classPrefix.value}-is-background`;\n 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 { isObject, isFunction } from 'lodash-es';\n\nimport { useTNodeJSX, useGlobalIcon } from '@tdesign/hooks';\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';\n\nimport Link from '../../link';\nimport { UploadConfig } from '../../config-provider';\nimport Image from '../../image';\n\nexport interface ImageFlowListProps extends CommonDisplayFileProps {\n uploadFiles?: (toFiles?: UploadFile[]) => void;\n cancelUpload?: (context: { e: MouseEvent; file?: UploadFile }) => void;\n dragEvents: UploadDragEvents;\n disabled?: boolean;\n isBatchUpload?: boolean;\n draggable?: boolean;\n onPreview?: TdUploadProps['onPreview'];\n uploadButton?: TdUploadProps['uploadButton'];\n cancelUploadButton?: TdUploadProps['cancelUploadButton'];\n}\n\nexport default defineComponent({\n name: 'UploadMultipleFlowList',\n props: {\n ...commonProps,\n showThumbnail: Boolean,\n uploadFiles: Function as PropType,\n cancelUpload: Function as PropType,\n dragEvents: Object as PropType,\n disabled: Boolean,\n isBatchUpload: Boolean,\n draggable: Boolean,\n showImageFileName: Boolean,\n uploadButton: Object as PropType,\n cancelUploadButton: Object as PropType,\n onPreview: Function as PropType,\n },\n setup(props, { slots }) {\n // locale 已经在 useUpload 中统一处理优先级\n const { uploading, disabled, displayFiles, classPrefix, accept } = toRefs(props);\n const uploadPrefix = computed(() => `${classPrefix.value}-upload`);\n\n const locale = computed(() => props.locale as UploadConfig);\n\n const renderTNodeJSX = useTNodeJSX();\n\n const {\n BrowseIcon,\n DeleteIcon,\n CheckCircleFilledIcon,\n ErrorCircleFilledIcon,\n TimeFilledIcon,\n FileExcelIcon,\n FilePdfIcon,\n FileWordIcon,\n FilePowerpointIcon,\n FileIcon,\n VideoIcon,\n } = useGlobalIcon({\n BrowseIcon: TdBrowseIcon,\n DeleteIcon: TdDeleteIcon,\n CheckCircleFilledIcon: TdCheckCircleFilledIcon,\n ErrorCircleFilledIcon: TdErrorCircleFilledIcon,\n TimeFilledIcon: TdTimeFilledIcon,\n FileExcelIcon: TdFileExcelIcon,\n FilePdfIcon: TdFilePdfIcon,\n FileWordIcon: TdFileWordIcon,\n FilePowerpointIcon: TdFilePowerpointIcon,\n FileIcon: TdFileIcon,\n VideoIcon: TdVideoIcon,\n });\n\n const drag = useDrag(props.dragEvents, accept);\n\n const currentPreviewFile = ref([]);\n const previewIndex = ref(0);\n\n const uploadText = computed(() => {\n if (uploading.value) return `${locale.value.progress.uploadingText}`;\n return locale.value.triggerUploadText.normal;\n });\n\n const innerDragEvents = computed(() => {\n const draggable = props.draggable === undefined ? true : props.draggable;\n return draggable\n ? {\n onDrop: drag.handleDrop,\n onDragenter: drag.handleDragenter,\n onDragover: drag.handleDragover,\n onDragleave: drag.handleDragleave,\n }\n : {};\n });\n\n const getStatusMap = () => {\n const iconMap = {\n success: ,\n fail: ,\n progress: ,\n waiting: ,\n };\n const { progress } = locale.value;\n const textMap = {\n success: progress?.successText,\n fail: progress?.failText,\n progress: progress?.uploadingText,\n waiting: progress?.waitingText,\n };\n return {\n iconMap,\n textMap,\n };\n };\n\n const renderEmpty = () => (\n
    \n {drag.dragActive.value ? locale.value.dragger.dragDropText : locale.value.dragger.clickAndDragText}\n
    \n );\n\n const renderImgItem = (file: UploadFile, index: number) => {\n const { iconMap, textMap } = getStatusMap();\n const fileName = props.abridgeName && file.name ? abridgeName(file.name, ...props.abridgeName) : file.name;\n return (\n
  • \n \n {file.status === 'progress' && (\n
    \n {iconMap[file.status as 'progress']}\n

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

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

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

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

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

    \n )}\n
  • \n );\n };\n\n const renderStatus = (file: UploadFile) => {\n const { iconMap, textMap } = getStatusMap();\n return (\n
    \n {iconMap[file.status]}\n \n {file.response?.error ? file.response?.error || textMap[file.status] : textMap[file.status]}\n {props.showUploadProgress && file.status === 'progress' ? ` ${file.percent || 0}%` : ''}\n \n
    \n );\n };\n\n const renderNormalActionCol = (file: UploadFile, index: number) => (\n \n props.onRemove({ e, index, file })}\n >\n \n );\n\n // batchUpload action col\n const renderBatchActionCol = (index: number) =>\n // 第一行数据才需要合并单元格\n index === 0 ? (\n \n props.onRemove({ e, index: -1, file: undefined })}\n >\n \n ) : null;\n\n const getFileThumbnailIcon = (fileType: string) => {\n if (FILE_PDF_REGEXP.test(fileType)) {\n return ;\n }\n if (FILE_EXCEL_REGEXP.test(fileType)) {\n return ;\n }\n if (FILE_WORD_REGEXP.test(fileType)) {\n return ;\n }\n if (FILE_PPT_REGEXP.test(fileType)) {\n return ;\n }\n if (VIDEO_REGEXP.test(fileType)) {\n return ;\n }\n return ;\n };\n\n const renderFileThumbnail = (file: UploadFile) => {\n if (!file || (!file.raw && file.url)) return null;\n const fileType = file.raw.type;\n const className = `${uploadPrefix.value}__file-thumbnail`;\n if (IMAGE_REGEXP.test(fileType)) {\n return (\n {\n e.preventDefault();\n currentPreviewFile.value = [file];\n previewIndex.value = 0;\n props.onPreview?.({ file, index: 0, e });\n }}\n />\n );\n }\n return
    {getFileThumbnailIcon(fileType)}
    ;\n };\n\n const renderFileList = () => {\n const customList = renderTNodeJSX('fileListDisplay', {\n params: {\n cancelUpload: props.cancelUpload,\n uploadFiles: props.uploadFiles,\n onPreview: props.onPreview,\n onRemove: props.onRemove,\n toUploadFiles: props.toUploadFiles,\n sizeOverLimitMessage: props.sizeOverLimitMessage,\n locale: props.locale,\n files: props.displayFiles,\n dragEvents: innerDragEvents.value,\n },\n });\n if (customList || props.fileListDisplay) return customList;\n return (\n \n \n \n \n \n \n {disabled.value ? null : }\n \n \n \n {!displayFiles.value.length && (\n \n \n \n )}\n {displayFiles.value.map((file, index) => {\n // 合并操作出现条件为:当前为合并上传模式且列表内没有待上传文件\n const showBatchUploadAction = props.isBatchUpload;\n const deleteNode =\n showBatchUploadAction && displayFiles.value.every((item) => item.status === 'success' || !item.status)\n ? renderBatchActionCol(index)\n : renderNormalActionCol(file, index);\n const fileName = props.abridgeName?.length ? abridgeName(file.name, ...props.abridgeName) : file.name;\n const thumbnailNode = props.showThumbnail ? (\n
    \n {renderFileThumbnail(file)}\n {fileName}\n
    \n ) : (\n fileName\n );\n const fileNameNode = file.url ? (\n // 此次需要设置disabled为false 否则链接会跟随表单不可点击\n \n {thumbnailNode}\n \n ) : (\n thumbnailNode\n );\n return (\n \n \n \n \n {disabled.value ? null : deleteNode}\n \n );\n })}\n \n
    {locale.value.file?.fileNameText}{locale.value.file?.fileSizeText}{locale.value.file?.fileStatusText}{locale.value.file?.fileOperationText}
    {renderEmpty()}
    \n {fileNameNode}\n {returnFileSize(file.size)}{renderStatus(file)}
    \n );\n };\n\n const renderImageList = () => {\n const customList = renderTNodeJSX('fileListDisplay', {\n params: {\n cancelUpload: props.cancelUpload,\n uploadFiles: props.uploadFiles,\n onRemove: props.onRemove,\n onPreview: props.onPreview,\n toUploadFiles: props.toUploadFiles,\n sizeOverLimitMessage: props.sizeOverLimitMessage,\n locale: props.locale,\n files: props.displayFiles,\n dragEvents: innerDragEvents.value,\n },\n });\n if (customList || props.fileListDisplay) return customList;\n return (\n
      \n {props.displayFiles.map((file, index) => renderImgItem(file, index))}\n
    \n );\n };\n\n return () => {\n const cardClassName = `${uploadPrefix.value}__flow-card-area`;\n const cancelUploadDisabled = disabled.value || !uploading.value;\n const hasCancelUploadTNode = slots.uploadButton || isFunction(props.uploadButton);\n const uploadButtonDisabled = Boolean(disabled.value || uploading.value || !displayFiles.value.length);\n const hasUploadButtonTNode = slots.cancelUploadButton || isFunction(props.cancelUploadButton);\n return (\n
    \n
    \n {slots.default?.()}\n {props.placeholder && (\n \n {props.placeholder}\n \n )}\n
    \n\n {props.theme === 'image-flow' && (\n
    \n {displayFiles.value.length ? renderImageList() : renderEmpty()}\n
    \n )}\n\n {props.theme === 'file-flow' &&\n (displayFiles.value.length ? (\n renderFileList()\n ) : (\n
    \n {renderEmpty()}\n
    \n ))}\n\n {!props.autoUpload && (props.uploadButton !== null || props.cancelUploadButton !== null) && (\n
    \n {props.cancelUploadButton !== null &&\n (hasCancelUploadTNode ? (\n renderTNodeJSX('cancelUploadButton', {\n params: {\n disabled: cancelUploadDisabled,\n cancelUploadText: locale.value?.cancelUploadText,\n cancelUpload: props.cancelUpload,\n },\n })\n ) : (\n props.cancelUpload?.({ e })}\n {...(isObject(props.cancelUploadButton) ? props.cancelUploadButton : {})}\n >\n ))}\n {props.uploadButton !== null &&\n (hasUploadButtonTNode ? (\n renderTNodeJSX('uploadButton', {\n params: {\n disabled: uploadButtonDisabled,\n uploading: uploading.value,\n uploadText: uploadText.value,\n uploadFiles: props.uploadFiles,\n },\n })\n ) : (\n props.uploadFiles?.()}\n {...(isObject(props.uploadButton) ? props.uploadButton : {})}\n >\n ))}\n
    \n )}\n\n t.url || t.raw)}\n visible={!!currentPreviewFile.value.length}\n onClose={() => {\n currentPreviewFile.value = [];\n }}\n index={previewIndex.value}\n onIndexChange={(val) => (previewIndex.value = val)}\n {...(props.imageViewerProps as ImageViewerProps)}\n >\n
    \n );\n };\n },\n});\n","import { defineComponent, PropType, toRefs } from 'vue';\nimport useDrag, { UploadDragEvents } from '../hooks/useDrag';\nimport { CommonDisplayFileProps } from '../types';\nimport { commonProps } from '../consts';\nimport { useContent } from '@tdesign/hooks';\nimport { TdUploadProps } from '../type';\n\nexport interface CustomFileProps extends CommonDisplayFileProps {\n dragEvents: UploadDragEvents;\n draggable?: boolean;\n // 拖拽区域\n dragContent?: TdUploadProps['dragContent'];\n trigger?: TdUploadProps['trigger'];\n triggerUpload?: (e: MouseEvent) => void;\n childrenNode?: any;\n}\n\nexport default defineComponent({\n name: 'UploadCustomFile',\n props: {\n ...commonProps,\n dragEvents: Object as PropType,\n draggable: Boolean,\n // 拖拽区域\n dragContent: Function as PropType,\n trigger: Function as PropType,\n triggerUpload: Function as PropType,\n childrenNode: [String, Function] as PropType,\n },\n setup(props, { slots }) {\n const { classPrefix, displayFiles, accept } = toRefs(props);\n const drag = useDrag(props.dragEvents, accept);\n const { dragActive } = drag;\n\n const renderContent = useContent();\n\n const renderDragContent = () => {\n const params = { dragActive: dragActive.value || false, files: displayFiles.value };\n return (\n \n
    \n {renderContent('dragContent', 'trigger', { params }) || props.childrenNode?.(params)}\n
    \n \n );\n };\n\n return () => (\n <>\n {props.draggable ? (\n renderDragContent()\n ) : (\n
    \n {props.childrenNode?.({ files: displayFiles.value }) || slots.default?.()}\n
    \n )}\n \n );\n },\n});\n","import { isFunction, isNumber } from 'lodash-es';\n/* eslint-disable no-param-reassign */\nimport { getCurrentDate, isOverSizeLimit } from './utils';\nimport xhr from './xhr';\nimport log from '../log/log';\nimport {\n UploadFile,\n SizeLimitObj,\n FileChangeParams,\n FileChangeReturn,\n RequestMethodResponse,\n HandleUploadParams,\n SuccessContext,\n handleSuccessParams,\n UploadTriggerUploadText,\n ErrorContext,\n ResponseType,\n} from './types';\n\nexport interface BeforeUploadExtra {\n /** 图片文件大小限制 */\n sizeLimit?: number | SizeLimitObj;\n /** 上传文件之前的钩子,参数为上传的文件,返回值决定是否上传 */\n beforeUpload?: (file: UploadFile) => boolean | Promise;\n}\n\nexport type BeforeUploadPromiseList = [Promise, undefined | Promise]\n\nexport function handleBeforeUpload(\n file: UploadFile, params: BeforeUploadExtra,\n): Promise<[SizeLimitObj, boolean]> {\n const { sizeLimit, beforeUpload } = params;\n // 文件大小校验\n const sizePromise = new Promise((resolve) => {\n let result: SizeLimitObj = null;\n if (sizeLimit) {\n const sizeLimitObj: SizeLimitObj = isNumber(sizeLimit)\n ? { size: sizeLimit, unit: 'KB' }\n : sizeLimit;\n const limit = isOverSizeLimit(file.size, sizeLimitObj.size, sizeLimitObj.unit);\n if (limit) {\n result = sizeLimitObj;\n }\n }\n resolve(result);\n });\n\n // 自定义校验\n const promiseList: BeforeUploadPromiseList = [sizePromise, undefined];\n if (isFunction(beforeUpload)) {\n const r = beforeUpload(file);\n const p = r instanceof Promise ? r : (new Promise((resolve) => resolve(r)));\n promiseList[1] = p;\n }\n\n // 同时进行文件大小校验和自定义校验函数\n return new Promise((resolve) => {\n Promise.all(promiseList).then((r) => {\n resolve(r);\n });\n });\n}\n\nexport interface OnErrorParams extends ErrorContext {\n formatResponse?: HandleUploadParams['formatResponse'];\n}\n\nexport function handleError(options: OnErrorParams) {\n const { event, files, response, XMLHttpRequest, formatResponse } = options;\n let res = response;\n if (isFunction(formatResponse)) {\n res = formatResponse(response, { file: files[0], currentFiles: files });\n }\n files.forEach((file) => {\n file.status = 'fail';\n file.response = res;\n });\n return { response: res, event, files, XMLHttpRequest };\n}\n\nexport function handleSuccess(params: handleSuccessParams) {\n const { event, files, response, XMLHttpRequest } = params;\n if (files?.length <= 0) {\n log.error('Upload', 'Empty File in Success Callback');\n }\n files.forEach((file) => {\n file.percent = 100;\n file.status = 'success';\n delete file.response?.error;\n });\n const res = response;\n files[0].url = res.url || files[0].url;\n return { response: res, event, files, XMLHttpRequest };\n}\n\nexport type UploadRequestReturn = {\n status?: 'fail' | 'success';\n /** 上传失败的文件,需等待继续上传 */\n failedFiles?: UploadFile[];\n data?: SuccessContext;\n /** 批量文件上传,一个文件一个请求的场景下,响应结果的列表 */\n list?: UploadRequestReturn[];\n}\n\nexport function handleRequestMethodResponse(res: RequestMethodResponse) {\n if (!res) {\n log.error('Upload', '`requestMethodResponse` is required.');\n return false;\n }\n if (!res.status) {\n log.error('Upload', '`requestMethodResponse.status` is missing, which value only can be `success` or `fail`');\n return false;\n }\n if (!['success', 'fail'].includes(res.status)) {\n log.error('Upload', '`requestMethodResponse.status` must be `success` or `fail`, examples `{ status: \\'success\\', response: { url: \\'\\' } }`');\n return false;\n }\n if (res.status === 'success' && (!res.response || (!res.response.url && !res.response.files))) {\n log.warn('Upload', '`requestMethodResponse.response.url` or `requestMethodResponse.response.files` is required if `status` is `success`');\n }\n return true;\n}\n\n/**\n * 一次上传请求的返回结果\n */\nexport function uploadOneRequest(params: HandleUploadParams): Promise {\n const { action, toUploadFiles, requestMethod } = params;\n return new Promise((resolve) => {\n if (!action && !requestMethod) {\n log.error('Upload', 'one of action and requestMethod must be exist.');\n resolve({});\n return;\n }\n if (!toUploadFiles || !toUploadFiles.length) {\n log.warn('Upload', 'No files need to be uploaded');\n resolve({});\n return;\n }\n toUploadFiles.forEach((file) => {\n file.status = 'progress';\n });\n // 自定义上传方法\n if (requestMethod) {\n requestMethod(params.multiple ? toUploadFiles : toUploadFiles[0]).then((res) => {\n if (!handleRequestMethodResponse(res)) {\n resolve({});\n return;\n }\n let response = (res.response || {}) as ResponseType;\n if (isFunction(params.formatResponse)) {\n response = params.formatResponse(response, { file: toUploadFiles[0], currentFiles: toUploadFiles });\n }\n if (res.status === 'fail') {\n response.error = res.error || response.error;\n }\n let resultFiles: UploadFile[] = [];\n if (res.status === 'success' && response.files) {\n // 一个请求上传并返回多个文件\n resultFiles = response.files.map((file: UploadFile) => {\n const fileInfo = toUploadFiles.find((toFile) => (\n (file.name && toFile.name === file.name) || (file.raw && toFile.raw === file.raw)\n ));\n return {\n ...fileInfo,\n ...file,\n status: res.status,\n response,\n };\n });\n } else {\n // 一个请求上传并返回一个文件\n toUploadFiles.forEach((file) => {\n file.status = res.status;\n file.response = response;\n file.url = response.url;\n file.percent = res.status === 'success' ? 100 : 0;\n // 如果上传请求返回结果没有上传日期,则使用电脑当前日期显示\n file.uploadTime = response?.uploadTime || getCurrentDate();\n });\n resultFiles = toUploadFiles;\n }\n const result = {\n response,\n file: resultFiles[0],\n files: resultFiles,\n };\n if (res.status === 'success') {\n params.onResponseSuccess?.(result);\n } else if (res.status === 'fail') {\n params.onResponseError?.(result);\n }\n resolve({\n status: res.status,\n data: result,\n });\n });\n } else {\n const xhrReq = xhr({\n action: params.action,\n files: params.toUploadFiles,\n useMockProgress: params.useMockProgress,\n mockProgressDuration: params.mockProgressDuration,\n onError: (p: ErrorContext) => {\n const r = handleError({ ...p, formatResponse: params.formatResponse });\n params.onResponseError?.(r);\n resolve({ status: 'fail', data: r });\n },\n onProgress: params.onResponseProgress,\n onSuccess: (p: SuccessContext) => {\n const { formatResponse } = params;\n let res = p.response;\n if (isFunction(formatResponse)) {\n res = formatResponse(p.response, {\n file: p.file,\n currentFiles: p.files,\n });\n }\n if (res.error) {\n const r = handleError({ ...p, response: res });\n params.onResponseError?.(r);\n resolve({ status: 'fail', data: r });\n } else {\n p.file.response = res;\n p.files[0].response = res;\n const r = handleSuccess({ ...p, response: res });\n params.onResponseSuccess?.(r);\n resolve({ status: 'success', data: r });\n }\n },\n formatRequest: params.formatRequest,\n data: params.data,\n name: params.name,\n headers: params.headers,\n withCredentials: params.withCredentials,\n method: params.method,\n });\n params.setXhrObject?.({\n files: params.toUploadFiles,\n xhrReq,\n });\n }\n });\n}\n\nfunction updateUploadedFiles(uploadFiles: UploadFile[], resultFiles: UploadFile[]) {\n const existFiles = uploadFiles.filter((t) => t.url);\n const newFiles = existFiles;\n for (let i = 0, len = resultFiles.length; i < len; i++) {\n const file = resultFiles[i];\n const index = uploadFiles.findIndex((item) => (\n (item.raw && item.raw === file.raw) || (item.name && item.name === file.name)\n ));\n const tmpFile = index >= 0 ? { ...uploadFiles[index], ...file } : file;\n newFiles.push(tmpFile);\n }\n return newFiles;\n}\n\n/**\n * 可能单个文件上传,也可能批量文件一次性上传\n * 返回上传成功或上传失败的文件列表\n */\nexport function upload(params: HandleUploadParams):\nPromise {\n const { uploadAllFilesInOneRequest, toUploadFiles, uploadedFiles, isBatchUpload } = params;\n // 一批文件上传,部分文件失败,重新上传失败的文件\n const thisUploadFiles = toUploadFiles.filter((t) => (\n !t.response || (t.response && !t.response.error)\n ));\n return new Promise((resolve) => {\n // 所有文件一次性上传\n if (uploadAllFilesInOneRequest || !params.multiple) {\n uploadOneRequest(params).then((r) => {\n if (r.status === 'success') {\n r.data.files = isBatchUpload || !params.multiple\n ? r.data.files\n : updateUploadedFiles(uploadedFiles, r.data.files);\n }\n const failedFiles = r.status === 'fail' ? r.data.files : [];\n resolve({ ...r, failedFiles });\n });\n return;\n }\n // 一个文件一个文件上传\n const list = thisUploadFiles.map((file) => (\n uploadOneRequest({ ...params, toUploadFiles: [file] })\n ));\n Promise.all(list).then((arr) => {\n const files: UploadFile[] = [];\n const failedFiles: UploadFile[] = [];\n arr.forEach((one) => {\n if (one.status === 'success') {\n files.push(one.data.files[0]);\n } else if (one.status === 'fail') {\n failedFiles.push(one.data.files[0]);\n }\n });\n const tFiles = params.autoUpload\n ? uploadedFiles.concat(files)\n : uploadedFiles;\n const newFiles = isBatchUpload || !params.multiple ? files : tFiles;\n resolve({\n status: files.length ? 'success' : 'fail',\n data: {\n files: newFiles,\n },\n // 上传失败的文件,需等待继续上传\n failedFiles,\n list: arr,\n });\n });\n });\n}\n\nexport function formatToUploadFile(\n files: File[],\n format: FileChangeParams['format'],\n status: UploadFile['status'] = undefined,\n percent = 0,\n) {\n return files.map((fileRaw: File) => {\n let file: UploadFile = fileRaw;\n if (isFunction(format)) {\n file = format(fileRaw);\n }\n const uploadFile: UploadFile = {\n raw: fileRaw,\n lastModified: fileRaw.lastModified,\n name: fileRaw.name,\n size: fileRaw.size,\n type: fileRaw.type,\n percent,\n status,\n ...file,\n };\n return uploadFile;\n });\n}\n\nexport function validateFile(\n params: FileChangeParams\n): Promise {\n const { files, uploadValue, max, allowUploadDuplicateFile } = params;\n return new Promise((resolve) => {\n // 是否允许相同的文件名存在\n let tmpFiles = files.filter((file) => {\n const sameNameFile = uploadValue.find((t) => t.name === file.name);\n return allowUploadDuplicateFile || !sameNameFile;\n });\n\n let hasSameNameFile = false;\n if (tmpFiles.length < files.length) {\n hasSameNameFile = true;\n }\n if (!tmpFiles.length) {\n const tFiles = formatToUploadFile(files, params.format, params.autoUpload ? 'progress' : 'waiting');\n resolve({ hasSameNameFile, file: tFiles?.[0], files: tFiles, validateResult: { type: 'FILTER_FILE_SAME_NAME' } });\n return;\n }\n // 上传文件数量限制\n let lengthOverLimit = false;\n if (max && tmpFiles.length && !params.isBatchUpload) {\n const tmpFilesLenToBeAdded = tmpFiles.length;\n tmpFiles = tmpFiles.slice(0, max - uploadValue.length);\n if (tmpFilesLenToBeAdded + uploadValue.length > max) {\n lengthOverLimit = true;\n }\n }\n\n // 格式化文件对象\n const formattedFiles = formatToUploadFile(tmpFiles, params.format, params.autoUpload ? 'progress' : 'waiting');\n\n // 全量文件,一波校验,整体上传 或 终止上传\n let allFileValidatePromise;\n if (params.beforeAllFilesUpload) {\n const r = params.beforeAllFilesUpload?.(formattedFiles);\n allFileValidatePromise = r instanceof Promise ? r : new Promise((resolve) => resolve(r));\n }\n\n // 单文件合法性校验,一个文件校验不通过其他文件可继续上传\n const promiseList = formattedFiles.map((file: UploadFile) => new Promise((resolve) => {\n handleBeforeUpload(\n file,\n { beforeUpload: params.beforeUpload, sizeLimit: params.sizeLimit },\n ).then(([sizeResult, customResult]) => {\n if (sizeResult) {\n resolve({ file, validateResult: { type: 'FILE_OVER_SIZE_LIMIT', extra: sizeResult } });\n } else if (customResult === false) {\n resolve({ file, validateResult: { type: 'CUSTOM_BEFORE_UPLOAD' } });\n }\n resolve({ file });\n });\n }));\n Promise.all([allFileValidatePromise].concat(promiseList)).then((results) => {\n const [allFilesResult, ...others] = results;\n // 如果 beforeAllFilesUpload 校验未通过\n if (allFilesResult === false) {\n resolve({\n lengthOverLimit,\n hasSameNameFile,\n validateResult: { type: 'BEFORE_ALL_FILES_UPLOAD' },\n files: formattedFiles,\n });\n } else {\n resolve({\n lengthOverLimit,\n hasSameNameFile,\n fileValidateList: others,\n files: formattedFiles,\n });\n }\n });\n });\n}\n\nexport function getFilesAndErrors(fileValidateList: FileChangeReturn[], getError: (p: {[key: string]: any }) => string) {\n const sizeLimitErrors: FileChangeReturn[] = [];\n const beforeUploadErrorFiles: UploadFile[] = [];\n const toFiles: UploadFile[] = [];\n fileValidateList.forEach((oneFile) => {\n if (oneFile.validateResult?.type === 'CUSTOM_BEFORE_UPLOAD') {\n beforeUploadErrorFiles.push(oneFile.file);\n return;\n }\n if (oneFile.validateResult?.type === 'FILE_OVER_SIZE_LIMIT') {\n if (!oneFile.file.response) {\n oneFile.file.response = {};\n }\n oneFile.file.response.error = oneFile.file.response.error\n || getError(oneFile.validateResult.extra);\n sizeLimitErrors.push(oneFile);\n return;\n }\n toFiles.push(oneFile.file);\n });\n\n return { sizeLimitErrors, beforeUploadErrorFiles, toFiles };\n}\n\n/**\n * 获取文件上传触发元素文本 在全局配置中的字段\n */\nexport function getTriggerTextField(p: {\n status: 'success' | 'fail' | 'progress' | 'waiting',\n multiple: boolean,\n autoUpload: boolean;\n isBatchUpload: boolean;\n}): keyof UploadTriggerUploadText {\n if (p.isBatchUpload && p.status) return 'reupload';\n if (p.status === 'fail') return 'reupload';\n if (p.status === 'progress') return 'uploading';\n if (p.status === 'success' || (!p.autoUpload && p.status === 'waiting')) {\n return p.multiple ? 'continueUpload' : 'reupload';\n }\n return 'fileInput';\n}\n\nexport interface GetDisplayFilesParams {\n multiple: boolean;\n autoUpload: boolean;\n isBatchUpload: boolean;\n uploadValue: UploadFile[];\n toUploadFiles: UploadFile[];\n}\n\n/**\n * 获取文件列表显示\n */\nexport function getDisplayFiles(params: GetDisplayFilesParams) {\n const { multiple, uploadValue, toUploadFiles, autoUpload } = params;\n const waitingUploadFiles = autoUpload\n ? toUploadFiles\n : toUploadFiles.filter((file) => file.status !== 'success');\n if (multiple && !params.isBatchUpload) {\n if (!autoUpload) return uploadValue;\n return (waitingUploadFiles.length ? uploadValue.concat(waitingUploadFiles) : uploadValue) || [];\n }\n return (waitingUploadFiles.length ? waitingUploadFiles : uploadValue) || [];\n}\n","import { isFunction } from 'lodash-es';\n/* eslint-disable no-param-reassign */\nimport log from '../log/log';\nimport { UploadFile, XhrOptions } from './types';\nimport { getCurrentDate } from './utils';\n\nexport default function xhr({\n method = 'POST',\n action,\n withCredentials = false,\n headers = {},\n data = {},\n file,\n files = [],\n name = 'file',\n useMockProgress = true,\n mockProgressDuration = 300,\n formatRequest,\n onError,\n onProgress,\n onSuccess,\n}: XhrOptions) {\n // support files\n const innerFiles: UploadFile[] = files || [];\n let percent = 0;\n\n // eslint-disable-next-line no-shadow\n const xhr = new XMLHttpRequest();\n if (withCredentials) {\n xhr.withCredentials = true;\n }\n\n let timer1: NodeJS.Timeout;\n let timer2: NodeJS.Timeout;\n if (useMockProgress && files[0]?.status === 'progress') {\n // 超过 500 毫秒再开启虚拟进度\n const timer2 = setTimeout(() => {\n // 只有真实进度一直不存在时才需要模拟进度\n timer1 = setInterval(() => {\n if (percent + 10 < 100) {\n percent = Math.max(percent + 10, percent);\n if (files[0] && percent !== files[0].percent) {\n files[0].percent = percent;\n onProgress({\n percent,\n file: file || innerFiles[0],\n files: innerFiles.map((file) => ({ ...file, percent })),\n type: 'mock',\n XMLHttpRequest: xhr,\n });\n }\n } else {\n clearInterval(timer1);\n }\n }, mockProgressDuration);\n clearTimeout(timer2);\n }, mockProgressDuration);\n }\n\n let requestData: { [key: string]: any } = {};\n if (data) {\n const extraData = isFunction(data) ? data(innerFiles) : data;\n Object.assign(requestData, extraData);\n }\n innerFiles.forEach((file, index) => {\n const fileField = innerFiles.length > 1 ? `${name}[${index}]` : name;\n requestData[fileField] = file.raw;\n });\n if (innerFiles.length === 1) {\n requestData[name] = innerFiles[0].raw;\n } else {\n requestData[name] = innerFiles.map((file) => file.raw);\n }\n requestData.length = innerFiles.length;\n\n if (formatRequest) {\n requestData = formatRequest(requestData);\n }\n\n // set send data\n const formData = new FormData();\n Object.keys(requestData).forEach((key) => {\n formData.append(key, requestData[key]);\n });\n\n xhr.open(method, action, true);\n // custom request headers\n Object.keys(headers).forEach((key) => {\n xhr.setRequestHeader(key, headers[key]);\n });\n\n xhr.onerror = (event: ProgressEvent) => {\n onError({ event, file, files: innerFiles, XMLHttpRequest: xhr, });\n clearInterval(timer1);\n clearTimeout(timer2);\n };\n\n xhr.ontimeout = (event) => {\n onError({ event, file, files: innerFiles, XMLHttpRequest: xhr, });\n };\n\n if (xhr.upload) {\n xhr.upload.onprogress = (event: ProgressEvent) => {\n let realPercent = 0;\n if (event.total > 0) {\n realPercent = Math.round((event.loaded / event.total) * 100);\n }\n percent = Math.max(realPercent, percent);\n if (percent !== realPercent && innerFiles[0]?.percent !== percent) {\n const progressFiles = innerFiles.map((item) => ({ ...item, percent }));\n onProgress({\n event,\n percent,\n file: file || progressFiles[0],\n files: progressFiles,\n type: 'real',\n XMLHttpRequest: xhr,\n });\n }\n };\n }\n\n // eslint-disable-next-line consistent-return\n xhr.onload = (event: ProgressEvent) => {\n let response: { [key: string]: any } = {};\n response.XMLHttpRequest = xhr;\n const isFail = xhr.status < 200 || xhr.status >= 300;\n if (isFail) {\n return onError({\n event,\n file,\n files: innerFiles,\n response,\n XMLHttpRequest: xhr,\n });\n }\n const text = xhr.responseText || xhr.response;\n try {\n response = JSON.parse(text);\n } catch (e) {\n response = text;\n log.error('Upload', 'response does not a valid json');\n }\n clearInterval(timer1);\n clearTimeout(timer2);\n innerFiles.forEach((file) => {\n file.percent = 100;\n file.status = 'success';\n // 如果上传请求返回结果没有上传日期,则使用电脑当前日期显示\n file.uploadTime = response?.uploadTime || getCurrentDate();\n });\n if (typeof response === 'object') {\n response.XMLHttpRequest = xhr;\n }\n onSuccess({\n event,\n file: file || innerFiles[0],\n files: [...innerFiles],\n XMLHttpRequest: xhr,\n response,\n });\n };\n\n xhr.send(formData);\n // @ts-ignore\n xhr.upload.requestParams = requestData;\n // @ts-ignore\n xhr.upload.requestHeaders = headers;\n\n return xhr;\n}\n","import { ref, computed, toRefs } from 'vue';\nimport { merge } from 'lodash-es';\nimport { SizeLimitObj, TdUploadProps, UploadChangeContext, UploadFile, UploadRemoveContext } from '../type';\nimport {\n getFilesAndErrors,\n validateFile,\n upload,\n getTriggerTextField,\n getDisplayFiles,\n formatToUploadFile,\n} from '@tdesign/common-js/upload/main';\nimport { getFileList } from '@tdesign/common-js/upload/utils';\nimport { useVModel, useConfig } from '@tdesign/hooks';\nimport { InnerProgressContext, OnResponseErrorContext, SuccessContext } from '@tdesign/common-js/upload/types';\n\nexport type ValidateParams = Parameters[0];\n\n/**\n * 上传组件全部逻辑,方便脱离 UI,自定义 UI 组件\n */\nexport default function useUpload(props: TdUploadProps) {\n const inputRef = ref();\n // TODO: Form 表单控制上传组件是否禁用\n const { disabled, autoUpload, isBatchUpload, multiple, files, modelValue, defaultFiles } = toRefs(props);\n const { globalConfig, t, classPrefix } = useConfig('upload');\n const [uploadValue, setUploadValue] = useVModel(files, modelValue, defaultFiles.value, props.onChange, 'files');\n const xhrReq = ref<{ files: UploadFile[]; xhrReq: XMLHttpRequest }[]>([]);\n const toUploadFiles = ref([]);\n const sizeOverLimitMessage = ref('');\n\n const locale = computed(() => merge({}, globalConfig.value, props.locale));\n\n const tipsClasses = `${classPrefix.value}-upload__tips ${classPrefix.value}-size-s`;\n const errorClasses = [tipsClasses].concat(`${classPrefix.value}-upload__tips-error`);\n const placeholderClass = `${classPrefix.value}-upload__placeholder`;\n\n // 单文件场景:触发元素文本\n const triggerUploadText = computed(() => {\n const field = getTriggerTextField({\n isBatchUpload: isBatchUpload.value,\n multiple: multiple.value,\n status: uploadValue.value?.[0]?.status,\n autoUpload: autoUpload.value,\n }) as keyof typeof locale.value.triggerUploadText;\n return locale.value.triggerUploadText[field];\n });\n\n const uploading = ref(false);\n\n // 文件列表显示的内容(自动上传和非自动上传有所不同)\n const displayFiles = computed(() => {\n return getDisplayFiles({\n multiple: props.multiple,\n toUploadFiles: toUploadFiles.value,\n uploadValue: uploadValue.value,\n autoUpload: autoUpload.value,\n isBatchUpload: isBatchUpload.value,\n });\n });\n\n const uploadFilePercent = (params: { file: UploadFile; percent: number }) => {\n const { file, percent } = params;\n const operationUploadFiles = autoUpload.value ? toUploadFiles : uploadValue;\n const index = operationUploadFiles.value.findIndex((item) => file.raw === item.raw);\n operationUploadFiles.value[index] = { ...operationUploadFiles.value[index], percent };\n };\n\n const updateFilesProgress = () => {\n if (props.autoUpload) {\n toUploadFiles.value = [...toUploadFiles.value];\n }\n };\n\n const onResponseError = (p: OnResponseErrorContext) => {\n if (!p || !p.files || !p.files[0]) return;\n const { response, event, files } = p;\n updateFilesProgress();\n props.onOneFileFail?.({\n e: event,\n file: files?.[0],\n currentFiles: files,\n failedFiles: files,\n response,\n });\n // 单选或多文件替换,需要清空上一次上传成功的文件\n if (!props.multiple || props.isBatchUpload) {\n setUploadValue([], {\n trigger: 'progress-fail',\n e: p.event,\n file: p.files[0],\n });\n }\n };\n\n // 多文件上传场景,单个文件进度\n const onResponseProgress = (p: InnerProgressContext) => {\n updateFilesProgress();\n props.onProgress?.({\n e: p.event,\n file: p.file,\n currentFiles: p.files,\n percent: p.percent,\n type: p.type,\n XMLHttpRequest: p.XMLHttpRequest,\n });\n };\n\n // 多文件上传场景,单个文件上传成功后\n const onResponseSuccess = (p: SuccessContext) => {\n // 只有多个上传请求同时触发时才需 onOneFileSuccess\n if (props.multiple && !props.uploadAllFilesInOneRequest) {\n updateFilesProgress();\n props.onOneFileSuccess?.({\n e: p.event,\n file: p.files[0],\n response: p.response,\n });\n }\n };\n\n function getSizeLimitError(sizeLimitObj: SizeLimitObj) {\n const limit = sizeLimitObj;\n return limit.message\n ? t(limit.message, { sizeLimit: limit.size })\n : `${t(locale.value.sizeLimitMessage, { sizeLimit: limit.size })} ${limit.unit}`;\n }\n\n const handleNotAutoUpload = (toFiles: UploadFile[]) => {\n const tmpFiles = props.multiple && !isBatchUpload.value ? uploadValue.value.concat(toFiles) : toFiles;\n if (!tmpFiles.length) return;\n setUploadValue(tmpFiles, {\n trigger: 'add',\n index: uploadValue.value.length,\n file: toFiles[0],\n files: toFiles,\n });\n toUploadFiles.value = [];\n };\n\n const onFileChange = (files: File[]) => {\n if (disabled.value) return;\n const params = { currentSelectedFiles: formatToUploadFile([...files], props.format) };\n props.onSelectChange?.([...files], params);\n validateFile({\n uploadValue: uploadValue.value,\n // @ts-ignore\n files: [...files],\n allowUploadDuplicateFile: props.allowUploadDuplicateFile,\n max: props.multiple ? props.max : 0,\n sizeLimit: props.sizeLimit,\n isBatchUpload: isBatchUpload.value,\n autoUpload: autoUpload.value,\n format: props.format,\n beforeUpload: props.beforeUpload,\n beforeAllFilesUpload: props.beforeAllFilesUpload,\n }).then((args) => {\n // 自定义全文件校验不通过\n if (args.validateResult?.type === 'BEFORE_ALL_FILES_UPLOAD') {\n const params: ValidateParams = { type: 'BEFORE_ALL_FILES_UPLOAD', files: args.files };\n props.onValidate?.(params);\n return;\n }\n // 文件数量校验不通过\n if (args.lengthOverLimit) {\n const params: ValidateParams = { type: 'FILES_OVER_LENGTH_LIMIT', files: args.files };\n props.onValidate?.(params);\n if (!args.files.length) return;\n }\n // 过滤相同的文件名\n if (args.hasSameNameFile) {\n const params: ValidateParams = { type: 'FILTER_FILE_SAME_NAME', files: args.files };\n props.onValidate?.(params);\n }\n // 文件大小校验结果处理(已过滤超出限制的文件)\n if (args.fileValidateList instanceof Array) {\n const { sizeLimitErrors, beforeUploadErrorFiles, toFiles } = getFilesAndErrors(\n args.fileValidateList,\n getSizeLimitError,\n );\n const tmpWaitingFiles = autoUpload.value ? toFiles : toUploadFiles.value.concat(toFiles);\n toUploadFiles.value = tmpWaitingFiles;\n props.onWaitingUploadFilesChange?.({ files: tmpWaitingFiles, trigger: 'validate' });\n // 文件大小处理\n if (sizeLimitErrors[0]) {\n sizeOverLimitMessage.value = sizeLimitErrors[0].file.response.error;\n props.onValidate?.({ type: 'FILE_OVER_SIZE_LIMIT', files: sizeLimitErrors.map((t) => t.file) });\n } else {\n sizeOverLimitMessage.value = '';\n // 自定义方法 beforeUpload 拦截的文件\n if (beforeUploadErrorFiles.length) {\n const params: ValidateParams = { type: 'CUSTOM_BEFORE_UPLOAD', files: beforeUploadErrorFiles };\n props.onValidate?.(params);\n }\n }\n // 如果是自动上传\n if (autoUpload.value) {\n uploadFiles(tmpWaitingFiles);\n } else {\n handleNotAutoUpload(tmpWaitingFiles);\n }\n }\n });\n\n // 清空 元素的文件,避免出现重复文件无法选择的情况\n inputRef.value.value = null;\n };\n\n const onNormalFileChange = (e: InputEvent) => {\n const fileList = getFileList((e.target as HTMLInputElement).files);\n onFileChange?.(fileList);\n };\n\n function onDragFileChange(files: File[]) {\n onFileChange?.(files);\n }\n\n function onPasteFileChange(e: ClipboardEvent) {\n onFileChange?.([...e.clipboardData.files]);\n }\n\n /**\n * 上传文件。对外暴露方法,修改时需谨慎\n * @param toFiles 本地上传的文件列表\n */\n function uploadFiles(toFiles?: UploadFile[]) {\n const notUploadedFiles = uploadValue.value.filter((t) => t.status !== 'success');\n const files = autoUpload.value ? toFiles || toUploadFiles.value : notUploadedFiles;\n if (!files || !files.length) return;\n uploading.value = true;\n xhrReq.value = [];\n upload({\n action: props.action,\n headers: props.headers,\n method: props.method,\n name: props.name,\n withCredentials: props.withCredentials,\n uploadedFiles: uploadValue.value,\n toUploadFiles: files,\n multiple: props.multiple,\n isBatchUpload: isBatchUpload.value,\n autoUpload: props.autoUpload,\n uploadAllFilesInOneRequest: props.uploadAllFilesInOneRequest,\n useMockProgress: props.useMockProgress,\n data: props.data,\n mockProgressDuration: props.mockProgressDuration,\n requestMethod: props.requestMethod,\n formatRequest: props.formatRequest,\n formatResponse: props.formatResponse,\n onResponseProgress,\n onResponseSuccess,\n onResponseError,\n setXhrObject: (xhr) => {\n if (xhr.files[0]?.raw && xhrReq.value.find((item) => item.files[0]?.raw === xhr.files[0].raw)) return;\n xhrReq.value = xhrReq.value.concat(xhr);\n },\n }).then(\n // 多文件场景时,全量文件完成后\n ({ status, data, list, failedFiles }) => {\n uploading.value = false;\n if (status === 'success') {\n setUploadValue([...data.files], {\n trigger: 'add',\n file: data.files[0],\n });\n xhrReq.value = [];\n props.onSuccess?.({\n fileList: data.files,\n currentFiles: files,\n file: files[0],\n // 只有全部请求完成后,才会存在该字段\n results: list?.map((t) => t.data),\n // 单文件单请求有一个 response,多文件多请求有多个 response\n response: data.response || list.map((t) => t.data.response),\n XMLHttpRequest: data.XMLHttpRequest,\n });\n } else if (failedFiles?.[0]) {\n props.onFail?.({\n e: data.event,\n file: failedFiles[0],\n failedFiles,\n currentFiles: files,\n response: data.response,\n XMLHttpRequest: data.XMLHttpRequest,\n });\n }\n\n // 非自动上传,文件都在 uploadValue,不涉及 toUploadFiles\n if (autoUpload.value) {\n toUploadFiles.value = failedFiles;\n props.onWaitingUploadFilesChange?.({ files: failedFiles, trigger: 'uploaded' });\n }\n },\n );\n }\n\n function onInnerRemove(p: UploadRemoveContext) {\n sizeOverLimitMessage.value = '';\n p.e.stopPropagation?.();\n const changePrams: UploadChangeContext = {\n e: p.e,\n trigger: 'remove',\n index: p.index,\n file: p.file,\n };\n // remove all files for batchUpload\n if (props.isBatchUpload || !props.multiple) {\n toUploadFiles.value = [];\n props.onWaitingUploadFilesChange?.({ files: [], trigger: 'remove' });\n setUploadValue([], changePrams);\n } else if (!props.autoUpload) {\n uploadValue.value.splice(p.index, 1);\n setUploadValue([...uploadValue.value], changePrams);\n } else {\n // autoUpload 场景下, p.index < uploadValue.length 表示移除已经上传成功的文件;反之表示移除待上传列表文件\n // eslint-disable-next-line\n if (p.index < uploadValue.value.length) {\n uploadValue.value.splice(p.index, 1);\n setUploadValue([...uploadValue.value], changePrams);\n } else {\n toUploadFiles.value.splice(p.index - uploadValue.value.length, 1);\n toUploadFiles.value = [...toUploadFiles.value];\n props.onWaitingUploadFilesChange?.({ files: [...toUploadFiles.value], trigger: 'remove' });\n }\n }\n props.onRemove?.(p);\n }\n\n const triggerUpload = (e?: MouseEvent) => {\n if (disabled.value || !inputRef.value) return;\n e?.stopPropagation?.();\n (inputRef.value as HTMLInputElement).click();\n };\n\n const cancelUpload = (context?: { file?: UploadFile; e?: MouseEvent }) => {\n xhrReq.value?.forEach((item) => {\n item.xhrReq?.abort();\n });\n uploading.value = false;\n\n // autoUpload do not need to reset to waiting state\n if (autoUpload.value) {\n toUploadFiles.value = [];\n } else {\n setUploadValue(\n uploadValue.value.map((item) => {\n if (item.status !== 'success') {\n return { ...item, status: 'waiting' };\n }\n return item;\n }),\n { trigger: 'abort' },\n );\n }\n\n if (context?.file && !autoUpload.value) {\n onInnerRemove?.({ file: context.file, e: context.e, index: 0 });\n }\n\n props.onCancelUpload?.();\n };\n\n return {\n t,\n locale,\n classPrefix,\n triggerUploadText,\n toUploadFiles,\n uploadValue,\n displayFiles,\n sizeOverLimitMessage,\n uploading,\n tipsClasses,\n errorClasses,\n placeholderClass,\n inputRef,\n disabled,\n xhrReq,\n uploadFilePercent,\n uploadFiles,\n onFileChange,\n onNormalFileChange,\n onDragFileChange,\n onPasteFileChange,\n onInnerRemove,\n triggerUpload,\n cancelUpload,\n };\n}\n","import { computed, defineComponent } from 'vue';\nimport { UploadIcon as TdUploadIcon } from 'tdesign-icons-vue-next';\nimport props from './props';\nimport NormalFile from './components/normal-file';\nimport DraggerFile from './components/dragger-file';\nimport ImageCard from './components/image-card';\nimport MultipleFlowList from './components/multiple-flow-list';\nimport Button from '../button';\nimport { CommonDisplayFileProps, UploadProps } from './types';\nimport CustomFile from './components/custom-file';\n\nimport { UploadDragEvents } from './hooks/useDrag';\nimport useUpload from './hooks/useUpload';\nimport { useContent, useTNodeJSX, useDisabled, useGlobalIcon } from '@tdesign/hooks';\n\nexport default defineComponent({\n name: 'TUpload',\n props,\n setup(props: UploadProps, { slots, expose }) {\n const renderContent = useContent();\n const renderTNodeJSX = useTNodeJSX();\n const {\n locale,\n classPrefix,\n triggerUploadText,\n toUploadFiles,\n displayFiles,\n uploadValue,\n sizeOverLimitMessage,\n uploading,\n tipsClasses,\n errorClasses,\n placeholderClass,\n inputRef,\n onInnerRemove,\n uploadFiles,\n onNormalFileChange,\n onDragFileChange,\n onPasteFileChange,\n triggerUpload,\n cancelUpload,\n uploadFilePercent,\n } = useUpload(props);\n const disabled = useDisabled();\n\n const { UploadIcon } = useGlobalIcon({\n UploadIcon: TdUploadIcon,\n });\n\n const triggerUploadButtonText = computed(\n () => props.triggerButtonProps?.default || props.triggerButtonProps?.content || triggerUploadText.value,\n );\n\n expose({\n upload: inputRef.value,\n uploading,\n triggerUpload,\n uploadFiles,\n cancelUpload,\n uploadFilePercent,\n });\n\n const renderTrigger = () => {\n const getDefaultTrigger = () => {\n if (props.theme === 'file-input') {\n return (\n \n );\n }\n return (\n \n );\n };\n return (\n renderContent('default', 'trigger', {\n params: { dragActive: false, files: uploadValue.value },\n }) || getDefaultTrigger()\n );\n };\n\n const commonDisplayFileProps = computed(() => ({\n accept: props.accept,\n files: uploadValue.value,\n toUploadFiles: toUploadFiles.value,\n displayFiles: displayFiles.value,\n theme: props.theme,\n placeholder: props.placeholder,\n disabled: disabled.value,\n tips: props.tips,\n status: props.status,\n sizeOverLimitMessage: sizeOverLimitMessage.value,\n uploading: uploading.value,\n classPrefix: classPrefix.value,\n tipsClasses,\n errorClasses,\n placeholderClass,\n locale: locale.value,\n autoUpload: props.autoUpload,\n abridgeName: props.abridgeName,\n showUploadProgress: props.showUploadProgress,\n fileListDisplay: props.fileListDisplay,\n onRemove: onInnerRemove,\n uploadPastedFiles: props.uploadPastedFiles,\n onPasteFileChange: onPasteFileChange,\n imageViewerProps: props.imageViewerProps,\n }));\n\n const dragProps: UploadDragEvents = {\n onDragFileChange,\n onDragenter: props.onDragenter,\n onDragleave: props.onDragleave,\n onDrop: props.onDrop,\n };\n\n const uploadClasses = computed(() => [\n `${classPrefix.value}-upload`,\n {\n [`${classPrefix.value}-upload--theme-${props.theme}`]: props.theme === 'file-input',\n },\n ]);\n\n const getNormalFileNode = () => (\n \n
    \n {renderTrigger()}\n
    \n \n );\n\n const getSingleFileDraggerUploadNode = () => (\n \n );\n\n const getImageCardUploadNode = () => (\n \n );\n\n const getFlowListNode = () => (\n \n
    \n {!props.draggable && renderTrigger()}\n
    \n \n );\n\n const getCustomFile = () => (\n \n {renderTrigger()}\n \n );\n\n return () => (\n
    \n \n {['file', 'file-input'].includes(props.theme) && !props.draggable && getNormalFileNode()}\n {['file', 'image'].includes(props.theme) && props.draggable && getSingleFileDraggerUploadNode()}\n {props.theme === 'image' && !props.draggable && getImageCardUploadNode()}\n {['image-flow', 'file-flow'].includes(props.theme) && getFlowListNode()}\n {props.theme === 'custom' && getCustomFile()}\n\n {Boolean(props.tips || slots.tips) && (\n \n {renderTNodeJSX('tips')}\n \n )}\n {sizeOverLimitMessage.value && {sizeOverLimitMessage.value}}\n
    \n );\n },\n});\n","import _Upload from './upload';\nimport withInstall from '../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 '@tdesign/hooks';\nimport { provideConfig } from './hooks/useConfig';\n\nexport default defineComponent({\n name: 'TConfigProvider',\n props,\n setup(props) {\n provideConfig(props);\n\n const renderTNodeJSX = useTNodeJSX();\n\n return () => <>{renderTNodeJSX('default')};\n },\n});\n","import 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","xorWith","baseXor","xorWith$1","_arrayWithHoles","_nonIterableRest","_slicedToArray","arrayWithHoles","l","u","f","next","done","iterableToArrayLimit","nonIterableRest","getDefaultNode","defaultNode","isVNode","getChildren","content","childList","innerGetChildren","item","children","Fragment","getParams","params","handleSlots","instance","_instance$$slots$came","_instance$$slots","_instance$$slots$keba","_instance$$slots2","node","$slots","renderTNodeJSX","propsNode","h","useChildComponentSlots","getCurrentInstance","childComponentName","slots","_slots","_slots$default","filter","_item$type$name","endsWith","useChildSlots","_slots$default2","Comment","flat","useFlatChildrenSlots","getFlatChildren","child","Teleport","some","vNode","hasOwn","val","getPropertyValFromObj","_instance$slots$camel","_instance$slots","_instance$slots$kebab","_instance$slots2","_t$type$toString","_t$type","_t$type$toString2","_t$type2","isEmptyNode","_node2$type","useTNodeJSX","renderParams","isSlotFirst","slotFirst","getSlotFirst","renderSlot","propName","vProps","vnode","isPropExplicitlySet","_instance$type$props$","Boolean","useTNodeDefault","useContent","name1","name2","toParams","node1","node2","res","s","c","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","loadingMoreText","filterInputPlaceholder","sortAscendingOperationText","sortCancelOperationText","sortDescendingOperationText","clearFilterResultButtonText","columnConfigButtonText","columnConfigTitleText","columnConfigDescriptionText","confirmText","cancelText","resetText","selectAllText","searchResultText","treeSelect","quarter","quarters","rangeSeparator","direction","dayAriaLabel","weekAbbreviation","yearAriaLabel","monthAriaLabel","selectTime","selectDate","nextYear","preYear","nextMonth","preMonth","preDecade","nextDecade","upload","sizeLimitMessage","cancelUploadText","triggerUploadText","fileInput","normal","reupload","continueUpload","delete","uploading","dragger","dragDropText","draggingText","clickAndDragText","file","fileNameText","fileSizeText","fileStatusText","fileOperationText","fileOperationDateText","progress","uploadingText","waitingText","failText","successText","errorMessage","url","required","whitespace","len","enum","idcard","telnumber","validator","boolean","colonText","list","alert","expandText","collapseText","anchor","copySuccessText","copyText","colorPicker","swatchColorTitle","recentColorTitle","clearConfirmText","singleColor","gradientColor","guide","finishButtonProps","theme","nextButtonProps","skipButtonProps","prevButtonProps","errorText","imageViewer","mirrorTipText","rotateTipText","originalSizeTipText","typography","copiedText","rate","rateText","descriptions","chat","stopBtnText","refreshTipText","copyTipText","likeTipText","dislikeTipText","copyCodeBtnText","copyCodeSuccessText","clearHistoryBtnText","copyTextSuccess","copyTextFail","confirmClearHistory","loadingEndText","uploadImageText","uploadAttachmentText","configProviderInjectKey","globalConfigCopy","ref","useConfig","componentName","componentLocale","injectGlobalConfig","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","useDefaultValue","onChange","propsName","_getCurrentInstance","emit","internalValue","_len2","_key2","useDestroyOnClose","refresh","onUpdated","useDisabled","context","currentInstance","componentDisabled","formDisabled","_context$beforeDisabl","_context$afterDisable","_formDisabled$disable","beforeDisabled","afterDisabled","traversalTabNavs","tabNavs","fn","_step","_iterator","_createForOfIteratorHelper","itemNode","getAttribute","err","handleTarget","target","resultTarget","contains","observe","element","marginBottom","window","IntersectionObserver","io","isIntersecting","unobserve","rootMargin","console","useGlobalIcon","tdIcon","resultIcon","_globalConfig$value","logSet","log","warn","msgContent","IMAGE_REGEXP","FILE_PDF_REGEXP","FILE_EXCEL_REGEXP","FILE_WORD_REGEXP","FILE_PPT_REGEXP","VIDEO_REGEXP","INPUT_FILE_MAP","SIZE_MAP","B","KB","MB","GB","getCurrentDate","needTime","abridgeName","inputName","leftCount","rightCount","leftLength","rightLength","isCn","escape","indexOf","validateFileType","accept","fileType","fileName","tmpFileType","acceptList","trim","oneRule","getFileList","files","fileList","useImagePreviewUrl","imgUrl","previewUrl","watch","_ref","_ref2","fileRaw","reader","FileReader","readAsDataURL","onload","event","_event$target","then","immediate","expand","ripple","fade","performance","hrtime","performanceNowModule","getNanoSeconds","nodeLoadTime","hr","upTime","uptime","moduleLoadTime","loadTime","vendors","suffix","raf","caf","id","queue","frameDuration","_now","cp","_loop","cancelled","handle","rafModule","raf$2","raf_1","polyfill","requestAnimationFrame","cancelAnimationFrame","easeInOutCubic","duration","change","isServer","on","document","addEventListener","handler","attachEvent","off","removeEventListener","detachEvent","hasClass","el","cls","Error","classList","className","addClass","curClass","classes","j","clsName","removeClass","getAttach","triggerNode","attachNode","querySelector","HTMLElement","body","getScrollContainer","container","isWindow","obj","getScroll","isLeft","method","Document","documentElement","scrollTo","opt","_opt$container","_opt$duration","_opt$easing","easing","scrollTop","startTime","fnc","nextScrollTop","pageXOffset","isTextEllipsis","ele","_ele$clientWidth","clientWidth","_ele$scrollWidth","scrollWidth","requestSubmit","HTMLFormElement","submitter","createElement","appendChild","click","removeChild","elementInViewport","elm","rect","getBoundingClientRect","parentRect","top","left","bottom","right","innerHeight","innerWidth","getElmCssPropValue","propValue","defaultView","getComputedStyle","getPropertyValue","isFixed","parentNode","nodeName","getWindowScroll","docElm","pageYOffset","scrollLeft","useListener","listener","onMounted","onBeforeUnmount","_defineProperties","_createClass","_classCallCheck","popupStackType","PopupManager","_this","popup","popupStack","zIndex","getNextZIndex","zIndexStack","popupType","_this$popupStack$popu","popupManager","usePopupManager","runOnMounted","open","close","readonly","isTopInteractivePopup","useReadonly","componentReadonly","formReadonly","_context$beforeReadon","_context$afterReadonl","_formReadonly$readonl","beforeReadonly","afterReadonly","useResizeObserver","ResizeObserver","containerObserver","cleanupObserver","disconnect","addObserver","setStyle","styles","style","useRipple","fixedRippleColor","keepAnimation","rippleContainer","keepRipple","keepExpand","_animationConfig$excl","_animationConfig$incl","animationConfig","keepFade","handleAddRipple","dom","rippleColor","_el$dataset","dataset","cssVariable","getRippleColor","button","elStyle","elBorder","borderWidth","border","width","offsetWidth","height","offsetHeight","position","borderRadius","pointerEvents","overflow","marginTop","marginLeft","transition","period","backgroundColor","opacity","elMap","initPosition","insertBefore","firstChild","handleClearRipple","onUnmounted","_el$value","useTeleport","to","innerTriggerNode","getElement","useVModel","modelValue","isVM","isVMP","_len3","_key3","useVirtualScrollNew","_params$value$data","_params$value$scroll","visibleData","translateY","scroll","rowHeight","scrollHeight","trHeightList","containerHeight","containerWidth","startAndEndIndex","tScroll","_scroll$isFixedRowHei","_scroll$fixedRows","bufferSize","isFixedRowHeight","threshold","fixedRows","isVirtualScroll","getVisibleRangeConfig","_container$value$scro","_container$value","fixedStart","prevBufferHeightList","hiddenHeight","visibleStart","visibleEnd","totalHeight","_trHeightList$i","shift","startIndex","endIndex","updateVisibleData","_getVisibleRangeConfi","translateYValue","_fixedRows","fixedEnd","fixedStartData","fixedEndData","bottomStartIndex","updateScrollTop","_ref3$top","behavior","contentRect","preventResizeRefresh","addIndexToData","initHeightList","fill","handleScroll","handleRowMounted","rowData","_rowData$ref$value","trHeight","rowIndex","VIRTUAL_SCROLL_INDEX","scrollToElement","_p$time","timer","_objectWithoutProperties","objectWithoutPropertiesLoose","getValidAttrs","newObj","getBackgroundColor","color","unshift","_color$direction","rest","_excluded","tempArr","sort","parseFloat","substr","getIEVersion","navigator","MAX_SAFE_INTEGER","userAgent","isIE","isIE11","reIE","fIEVersion","getCharacterLength","str","maxCharacter","hasMaxCharacter","characters","currentStringLength","pxCompat","param","DOM_STYLE_PROPS","GradientIcon","defineComponent","setup","circleRef","nextTick","circleElem","_window","_window$getComputedSt2","_window2","basicStyle","_window$getComputedSt","fontSize","ua","isSafari","isIosWechat","transformOrigin","matched","endColor","_objectSpread","background","circleAdapter","_createVNode","class","viewBox","version","xmlns","createVNode","props$1y","delay","fullscreen","indicator","inheritColor","preventScrollThrough","showOverlay","text","_Loading","inheritAttrs","attrs","delayShowLoading","_useComponentClassNam","centerClass","fullscreenClass","lockClass","overlayClass","relativeClass","fullClass","inheritColorClass","renderContent","countDelay","teleportElement","delayCounted","hasContent","lockFullscreen","showText","showWrapLoading","showFullScreenLoading","showAttachedLoading","baseClasses","fullScreenClasses","attachClasses","withContentClasses","normalClasses","toRefs","_ref5","_classes$value","defaultIndicator","_mergeProps","fullScreenLoadingInstance","createLoading","mergedProps","mergeDefaultProps","component","loadingOptions","reactive","render","LoadingComponent","app","createApp","mount","parentRelativeClass","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$1x","ghost","href","loadingProps","shape","variant","onClick","TButton","COMPONENT_NAME","_useCommonClassName","btnRef","isDisabled","mergeTheme","buttonClass","buttonContent","TLoading","iconOnly","buttonAttrs","tabindex","Button","_Button","renderFn","kebabAttrs","reduce","camelString","camel2Kebab","DEFAULT_CLASS_PREFIX","ConfigContext","COMMON_SIZE_CLASS_NAMES","addRectangle","useSizeProps","_useSizeProps","finalCls","finalStyle","finalProps","_props$onClick","arrowTriangleDownFilled","arrowTriangleUpFilled","backtop","browseOff","clipPath","browse","caretRightSmall","checkCircleFilled","check","chevronDown","chevronLeftDouble","chevronLeft","chevronRightCircle","chevronRightDouble","chevronRight","chevronUp","closeCircleFilled","_delete","download","edit1","ellipsis","errorCircleFilled","fileCopy","fileExcel","filePdf","filePowerpoint","fileWord","helpCircleFilled","imageError","infoCircleFilled","minusRectangle","mirror","pageFirst","pageLast","rotation","search","setting","starFilled","timeFilled","video","zoomIn","zoomOut","loadDefaultIcons","Icon","props2","propsSize","sizeClassName","sizeStyle","finalUrl","classNames","querySelectorAll","svg","setAttribute","_props2$onClick","props$1v","hover","prefixIcon","suffixIcon","underline","_Link","emits","linkClass","handleClick","linkContent","prefix","Link","props$1u","align","gutter","justify","calcSize","useRowSize","_Row","rowClasses","getRowClasses","rowStyle","currentSize","getMarginStyle","marginRight","getRowGapStyle","rowGap","strategyMap","calcRowStyle","_slot","TAG","_isVNode","props$1t","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$1s","_Header","props$1r","_Footer","props$1q","_Aside","props$1p","_Content","Aside","Layout","Header","Footer","Content","props$1o","dashed","layout","_Divider","dividerClassNames","Divider","props$1n","breakLine","separator","sizeMap","defaultNeedPolyfill","_chromeMatch$","_safariMatch$","_fireFoxMatch$","chromeMatch","safariMatch","fireFoxMatch","getFlexGapPolyFill","_Space","forceFlexGapPolyfill","getChildSlots","needPolyfill","renderStyle","renderGap","_renderGap$split2","columnGap","gap","separatorContent","spaceClassNames","renderChildren","showSeparator","_Fragment","Space","props$1m","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$1l","_DescriptionsItem","Descriptions","DescriptionsItem","asyncGeneratorStep","_asyncToGenerator","_next","_throw","__esModule","_regeneratorDefine","_invoke","regeneratorDefine","_regenerator","Generator","G","bind","GeneratorFunction","GeneratorFunctionPrototype","setPrototypeOf","__proto__","displayName","OverloadYield","require$$1","AsyncIterator","asyncIterator","regenerator","regeneratorAsyncIterator","regeneratorAsyncGen","isNaN","regeneratorAsync","require$$2","require$$3","require$$4","regeneratorKeys","require$$5","regeneratorValues","require$$6","_regeneratorRuntime","throw","return","break","continue","stop","catch","abrupt","delegateYield","resultName","finish","_t","prev","sent","wrap","reverse","isGeneratorFunction","mark","awrap","async","runtime","regeneratorRuntime","accidentalStrictMode","globalThis","props$1k","offsetBottom","offsetTop","onFixedChange","_Affix","_document","affixWrapRef","affixRef","placeholderEL","ticking","isBind","scrollContainer","affixStyle","rAFId","_affixWrapRef$value$g","_affixWrapRef$value","fixedTop","wrapToTop","wrapWidth","wrapHeight","containerTop","calcTop","calcBottom","Window","affixed","placeholderStatus","removeAttribute","bindScroll","_callee","_context","unbindScroll","onActivated","onDeactivated","expose","Affix","factory","__webpack_modules__","__unused_webpack_module","__webpack_exports__","__webpack_require__","clipboard","tiny_emitter","tiny_emitter_default","listen","listen_default","src_select","select_default","command","execCommand","actions_cut","selectedText","fakeCopyAction","fakeElement","isRTL","padding","margin","yPosition","createFakeElement","actions_copy","HTMLInputElement","actions_default","_options$action","action","hasAttribute","clipboard_typeof","descriptor","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","getAttributeValue","attribute","Clipboard","_Emitter","subClass","superClass","_inherits","Constructor","protoProps","staticProps","_super","trigger","resolveOptions","listenClick","defaultAction","defaultTarget","defaultText","_this2","delegateTarget","currentTarget","clearSelection","focus","getSelection","removeAllRanges","selector","destroy","actions","support","queryCommandSupported","Element","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","__unused_webpack_exports","closest","_delegate","useCapture","listenerFn","elements","nodeList","is","delegate","listenNode","listenNodeList","listenSelector","isReadOnly","setSelectionRange","selection","selectNodeContents","addRange","E","ctx","once","evtArr","evts","liveEvents","TinyEmitter","__webpack_module_cache__","moduleId","getter","definition","ANCHOR_SHARP_REGEXP","getOffsetTop","clientTop","props$1j","affixProps","bounds","cursor","targetOffset","AnchorInjectionKey","_Anchor","anchorRef","links","handleScrollLock","activeLineStyle","ANCHOR_LINE_CLASSNAME","ANCHOR_LINE_CURSOR_CLASSNAME","utilsGetScrollContainer","filters","link","getAnchorTarget","cur","setCurrentActiveLink","matcher","getElementById","_props2$onChange","updateActiveLine","_x","_anchorRef$value","handleScrollTo","_ref3","_callee2","_context2","_x2","_callee3","_context3","watchEffect","registerLink","unregisterLink","each","handleLinkClick","renderCursor","localProps","customScroll","_AnchorItem","tAnchor","CLASSNAME_PREFIX","register","unregister","titleSlot","titleVal","renderTitle","titleAttr","wrapperClass","titleClass","THEME_LIST","DISTANCE","PLACEMENT_OFFSET","center","display","flexDirection","alignItems","PLACEMENT_LIST","props$1h","closeBtn","onClose","onCloseBtnClick","onDurationEnd","ANIMATION_OPTION","fadeIn","placement","fadeInKeyframes","getFadeInKeyframes","setDomStyleAfterAnimation","animate","fadeOut","onFinish","fadeOutKeyframes","marginOffset","getFadeOutKeyframes","styleAfterFadeOut","onfinish","styleAfterAnimation","_Message","_useGlobalIcon","InfoCircleFilledIcon","TdInfoCircleFilledIcon","CheckCircleFilledIcon","TdCheckCircleFilledIcon","ErrorCircleFilledIcon","TdErrorCircleFilledIcon","HelpCircleFilledIcon","TdHelpCircleFilledIcon","CloseIcon","TdCloseIcon","renderTNode","msgRef","status","_props2$onClose","_props2$onCloseBtnCli","clearTimer","setTimer","_props2$onClose2","_props2$onDurationEnd","renderIcon","question","onBeforeMount","onMouseenter","onMouseleave","defaultClose","DEFAULT_Z_INDEX","getUniqueId","MessageList","messageList","getOffset","msgStyles","addChild","msg","mg","removeAll","TMessage","getProps","instanceMap","MessageFunction","handleParams","attachDom","mgKey","$el","wrapper","ins","find","_mg$$","showThemeMessage","extraApi","promise","closeAll","MessagePlugin","$message","funcName","props$1g","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","getDocumentRect","getClippingRect","boundary","rootBoundary","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","computeOffsets","commonX","commonY","mainAxis","detectOverflow","_options","_options$placement","_options$strategy","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","contextElement","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","computeAutoPlacement","flipVariations","_options$allowedAutoP","allowedAutoPlacements","allPlacements","allowedPlacements","overflows","flip$2","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","every","_i","fittingPlacement","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","offset$1","_options$offset","invertDistance","skidding","distance","distanceAndSkiddingToXY","_data$state$placement","preventOverflow$1","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","minLen","maxLen","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","clientOffset","offsetModifierValue","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_offset","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","withinMaxClamp","getCompositeRect","elementOrVirtualElement","isOffsetParentAnElement","offsetParentIsScaled","isElementScaled","getHTMLElementScroll","visited","modifier","dep","depModifier","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","popupProps","destroyOnClose","hideEmptyPopup","overlayClassName","overlayInnerClassName","overlayInnerStyle","overlayStyle","popperOptions","showArrow","triggerElement","defaultVisible","onOverlayClick","onScroll","onScrollToBottom","onVisibleChange","filterEmpty","vnodes","Text","useElement","newEl","Trigger","forwardRef","vm","nextElementSibling","_props2$forwardRef","newContentRect","newRect","oldRect","rect1","rect2","_children$","Container","triggerEl","mountContent","emitResize","unmountContent","onResize","onVnodeMounted","POPUP_ATTR_NAME","POPUP_PARENT_ATTR_NAME","getPopperTree","upwards","selectors","recurse","childId","parentKey","_Popup","expandAnimation","_process$env","showTimeout","hideTimeout","_toRefs","_useVModel2","setVisible","overlayEl","popperEl","containerRef","isOverlayHover","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","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$1f","itemsAfterCollapse","itemsBeforeCollapse","maxItemWidth","maxItems","props$1e","maxWidth","router","props$1d","_Tooltip","popupRef","innerVisible","setInnerVisible","innerTooltipVisible","_useMouse","onMouseMove","clientX","clientY","useMouse","offsetX","onTipVisibleChange","tooltipOverlayClassName","offsetStyle","popupEl","_popupRef$value","_popupRef$value$updat","Tooltip","localTBreadcrumbOrigin","_BreadcrumbItem","isEllipsisItem","breadcrumbText","localTBreadcrumb","themeClassName","isCutOff","separatorClass","disableClass","maxLengthClass","textFlowClass","maxWithStyle","maxWith","proxy","onBeforeUpdate","bindEvent","$router","location","itemClass","textClass","listeners","stopPropagation","textContent","itemContent","textOverflow","valueIsZeroOrUndefined","_Breadcrumb","ChevronRightIcon","TdChevronRightIcon","EllipsisIcon","TdEllipsisIcon","_useBreadcrumbOptions","getChildComponentSlots","breadcrumbOptions","_props$options","breadcrumbItems","currentIndex","option","itemsSlots","getSlotOrProp","slotName","_child$props","_children$slotName","slotContent","useBreadcrumbOptions","ellipsisItems","ellipsisContent","_useEllipsis","getBreadcrumbItems","shouldShowEllipsis","_maxItems$value","currentMaxItems","totalItems","itemsCollapseSum","getDisplayItems","beforeItems","afterItems","getEllipsisItems","sliceItems","isLast","useEllipsis","BreadcrumbItem","Breadcrumb","dropdownItemProps","divider","_DropdownItem","maxColumnWidth","minColumnWidth","isSubmenu","itemRef","dropdownItemClass","handleItemClick","minWidth","props$1c","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","slotPrefixIcon","contentCtx","_v$type","childrenCtx","_v$type2","itemProps","_item$type","_Dropdown","popupElem","isPopupVisible","manualCloseTimeout","_props2$popupProps","_delay$","handleMenuClick","_props2$popupProps2","_props2$popupProps2$o","_props2$popupProps3","_props2$popupProps3$o","handleVisibleChange","_props2$popupProps4","_props2$popupProps4$o","_props2$popupProps5","_props2$popupProps5$o","_renderTNodeJSX","_props2$popupProps6","_getChildComponentSlo","_getChildComponentSlo2","_instance$slots$dropd","menuSlot","dropdown","useDropdownOptions","popupParams","_options$value","DropdownMenu","Dropdown","props$1b","collapsed","defaultExpanded","expandMutex","expandType","logo","operations","onExpand","getTreePaths","ans","getTreeSameParentNodes","DFS","VMenu","isMutex","expandValues","v2","pNode","activeValues","sameParentNodes","sameLevelSubmenuValues","_node$children","_Menu","onCollapsed","mode","menuClass","innerClasses","expandWidth","activeValue","setActiveValue","_useDefaultValue2","setExpand","_props2$onCollapsed","vMenu","isHead","tmp","props$1a","tabPanelProps","destroyOnHide","draggable","lazy","panel","removable","onRemove","_TabPanel","renderTNodeContent","tabs","isActive","isMount","tabPanelClass","props$19","addable","dragSort","scrollPosition","onAdd","onDragSort","getDomWidth","TTabNavItem","tabProps","removeBtnClick","onClickNav","navItemClass","TTabNavBar","navs","barRef","navBarClass","navBarStyle","sizePropName","offsetPropName","_props$navs$i","sizeWithUnit","getStyle","TTabNav","resizeObserver","panels","ChevronLeftIcon","TdChevronLeftIcon","AddIcon","TdAddIcon","navsContainerRef","navsWrapRef","leftOperationsRef","rightOperationsRef","toRightBtnRef","activeTabRef","maxScrollLeft","showAction","_props$placement","getRefs","navsContainer","navsWrap","leftOperations","rightOperations","toRightBtn","activeTab","isVerticalPlacement","canToLeft","canToRight","wrapTransformStyle","navsContainerStyle","iconBaseClass","leftIconClass","rightIconClass","addIconClass","navContainerClass","navScrollContainerClass","navsWrapClass","setOffset","calcValidOffset","navsContainerWidth","activeTabWidth","diffWidth","calcPrevOrNextOffset","handleWheel","deltaX","deltaY","handleActiveTabScroll","depElement","tabWidth","tabOffset","rightOperationsWidth","leftOperationsWidth","calculateOffset","getMaxScrollLeft","observer","_resizeObserver","useResize","handleAddTab","_props$onAdd","setActiveTab","_useDragSort","dragged","enterTargets","dragstart","dragend","dragover","dragenter","outline","dragleave","_enterTargets","enterTarget","drop","tabNav","_props$onDragSort","dragIndex","targetIndex","setNavsWrap","useDragSort","renderNavsContent","_panel$children","nav","tabClick","Transition","appear","navContent","onWheel","_Tabs","tabValue","setTabValue","onTabAdd","_props2$onAdd","onTabChange","onTabRemove","_props2$onRemove","getSlotPanels","flatContent","ct","renderHeader","_props2$list","actionContent","panelsData","selfItem","tabNavProps","_props2$list2","TTabPanel","Tabs","TabPanel","props$18","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$17","routerLink","_MenuItem","_menu$collapsed","_onClick$value","_submenu$closeParentP","methods","_router$value","liContent","props$16","_MenuGroup","Menu","HeadMenu","Submenu","MenuItem","MenuGroup","props$15","allowInputOverMax","autoWidth","autofocus","borderless","clearable","inputClass","maxcharacter","maxlength","showClearIconOnEmpty","showLimitNumber","spellCheck","tips","onBlur","onClear","onCompositionend","onCompositionstart","onFocus","onKeydown","onKeypress","onKeyup","onPaste","onValidate","useCLASSNAMES","labelTop","inline","formItem","formItemWithHelp","formItemWithExtra","controls","controlsContent","extra","help","successBorder","ValidateStatus","FormInjectionKey","FormItemInjectionKey","useLengthLimit","limitNumber","_params$value2","innerStatus","_limitNumber$value$sp2","tStatus","onValidateChange","_params$value$onValid","_params$value3","getValueByLimitNumber","inputValue","oldStr","_params$value","getOutputValue","useInput","isComposition","compositionValue","clearIconRef","innerClickElement","innerValue","setInnerValue","isHover","renderType","inputRef","_useLengthLimit","showClear","_inputRef$value","setInputElValue","inputEl","sV","inputValueChangeHandle","_innerValue$value","_inputRef$value4","oldVal","isNumberType","newVal","blur","_inputRef$value2","emitFocus","_props$onFocus","formatAndEmitBlur","_props$onBlur","_clearIconRef$value","tagName","_clearIconRef$value2","isClearIcon","handleBlur","onHandleCompositionend","_props$onCompositione","onHandleCompositionstart","_props$onCompositions","onRootClick","_inputRef$value3","emitPassword","toggleType","handleInput","checkInputType","inputType","emitClear","_props$onClear","onClearIconMousedown","useInputWidth","inputPreRef","observerTimer","updateInputWidth","_Input","showInput","keepWrapperWidth","BrowseIcon","TdBrowseIcon","BrowseOffIcon","TdBrowseOffIcon","CloseCircleFilledIcon","TdCloseCircleFilledIcon","INPUT_WRAP_CLASS","INPUT_TIPS_CLASS","_useInput","inputHandle","inputEventHandler","mouseEvent","handleKeydown","_props$onEnter","_props$onKeydown","tmpValue","handleKeyUp","_props$onKeyup","handleKeypress","_props$onKeypress","onHandlePaste","_props$onPaste","clipData","clipboardData","pasteValue","getData","onHandleMousewheel","_props$onWheel","onInputMouseenter","_props$onMouseenter","onInputMouseleave","_props$onMouseleave","useInputEventHandler","tPlaceholder","_props2$placeholder","inputAttrs","_props2$autocomplete","unselectable","spellcheck","wrapClasses","inputEvents","_compositionValue$val","_inputValue$value","_compositionValue$val2","passwordIcon","limitNode","labelContent","suffixContent","passwordClass","onMousedown","tipsClasses","inputGroupProps","separate","_InputGroup","CLASS","Input","InputGroup","props$14","allowInputOverLimit","decimalPlaces","inputProps","largeNumber","fillZero","isInputNumber","num","eCount","negativeCount","dotCount","removeInvalidZero","decimal","largeIntNumberAdd","num1","num2","number1","number2","isFirstLarger","maxNumber","minNumber","newNumber","minIndex","largePositiveNumberAdd","_num1$split2","_num1$split2$","intNumber1","_num1$split2$2","decimalNumber1","_num2$split2","_num2$split2$","intNumber2","_num2$split2$2","decimalNumber2","integerSum","newDecimalNumber1","newDecimalNumber2","decimalNumberSum","decimalLength","compareLargeIntegerNumber","compareLargeDecimalNumber","formatENumber","_num$split2","_num$split4","integer","_num$split4$","initDecimal","zeroCount","multipleZero","n1","d2","isInfinity","isSafeNumber","MIN_SAFE_INTEGER","compareNumber","isSafeNumberCompare","isInfinityCompare","_formatENumber$split2","integer1","decimal1","_formatENumber$split4","integer2","decimal2","integer1IsNegative","integer2IsNegative","compareLargeNumber","largeIntegerNumberSubtract","stayZero","finalNumber","largePositiveNumberSubtract","_maxNumber$split2","_maxNumber$split2$","_minNumber$split2","_minNumber$split2$","integerNumber","decimalNumber","addOneNumber","formatDecimal","places","toFixed","_num$toString$split2","largeNumberToFixed","_decimalPlaces$enable2","_decimalPlaces$enable","enableRound","decimalPlacesToFixedNum","_number$split2","_decimalNumber$match","leadZeroNum","leadNineNum","needAdded","positiveAdd","_num1$toString$split$","_num2$toString$split$","r1","r2","newNumber1","newNumber2","digit","pow","cm","positiveSubtract","_num1$toString$split$2","_num2$toString$split$2","getStepValue","op","lastValue","tStep","isFirstNegative","isSecondNegative","largeNumberAdd","largeNumberSubtract","putInRangeNumber","getMaxOrMinValidateResult","specialCode","formatUnCompleteNumber","isToFixed","useInputNumber","tValue","setTValue","userInput","tDisabled","isReadonly","isError","disabledReduce","canReduceNumber","disabledAdd","canAddNumber","reduceClasses","addClasses","getUserInput","inputStr","activeElement","fixedNumber","completeValue","_props$onValidate","handleStepValue","overLimit","handleReduce","handleAdd","_props$onBlur3","_props$onBlur2","keyEvent","ArrowUp","ArrowDown","onInnerInputChange","_number$match","_number$match2","tmpNumber","tmpMatched","canInputNumber","processedVal","parts","decimalLimit","lastNumber","canSetValue","_InputNumber","RemoveIcon","TdRemoveIcon","ChevronDownIcon","TdChevronDownIcon","ChevronUpIcon","TdChevronUpIcon","reduceIcon","addIcon","TInput","InputNumber","props$13","allowInput","collapsedItems","defaultInputValue","minCollapsedNum","multiple","defaultPopupVisible","reserveKeyword","tagInputProps","tagProps","valueDisplay","onInputChange","onPopupVisibleChange","onTagChange","props$12","excessTagsDisplayType","trimLeft","trimRight","tinycolor","opts","rgb","ok","named","names","matchers","rgba","hsl","hsla","hsv","hsva","hex8","parseIntFromHex","convertHexToDecimal","hex6","hex4","hex3","stringInputToObject","isValidCSSUnit","bound01","convertToPercentage","q","mod","hsvToRgb","hue2rgb","hslToRgb","boundAlpha","inputToRGB","_originalInput","_r","_g","_b","_a","_roundA","_format","_gradientType","gradientType","_ok","rgbToHsl","rgbToHsv","rgbToHex","allow3Char","hex","pad2","rgbaToArgbHex","convertDecimalToHex","_desaturate","amount","toHsl","clamp01","_saturate","_greyscale","desaturate","_lighten","_brighten","toRgb","_darken","_spin","hue","_complement","polyad","_splitcomplement","_analogous","results","slices","part","ret","_monochromatic","toHsv","modification","isDark","getBrightness","isLight","getOriginalInput","getFormat","getAlpha","getLuminance","RsRGB","GsRGB","BsRGB","setAlpha","toHsvString","toHslString","toHex","toHexString","toHex8","allow4Char","rgbaToHex","toHex8String","toRgbString","toPercentageRgb","toPercentageRgbString","toName","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","hasAlpha","_applyModification","lighten","brighten","darken","saturate","greyscale","spin","_applyCombination","analogous","complement","monochromatic","splitcomplement","triad","tetrad","fromRatio","newColor","equals","color1","color2","random","mix","rgb1","rgb2","readability","c1","c2","isReadable","wcag2","wcag2Parms","out","parms","level","toUpperCase","validateWCAG2Parms","mostReadable","baseColor","colorList","includeFallbackColors","bestColor","bestScore","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","flipped","isOnePointZero","processPercent","isPercentage","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","props$11","closable","_Tag","tagGlobalConfig","tagClass","tagStyle","getTagColorStyle","textStyle","_tinycolor$toRgb","borderColor","getCloseIcon","tagContent","props$10","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","tInputValue","setTInputValue","_toRefs2","_useHover","addHover","cancelHover","useHover","isFocused","_useDragSorter","sortOnDraggable","onDragOverCheck","draggingIndex","dragStartData","isDropped","startInfo","nodeX","nodeWidth","mouseX","onDragOver","record","targetClassNameRegExp","_target$getBoundingCl","targetNodeMiddleX","draggingNodeLeft","draggingNodeRight","onDragStart","_target$getBoundingCl2","onDrop","onDragEnd","getDragProps","onDragstart","onDragover","onDragend","dragging","useDragSorter","_useTagScroll","tagInputRef","scrollDistance","scrollElement","mouseEnterTimer","isScrollable","updateScrollElement","inputElement","updateScrollDistance","_scrollElement$value","scrollToRight","_tagInputRef$value","scrollToLeft","scrollToRightOnEnter","scrollToLeftOnLeave","useTagScroll","_useTagList","_tagValue","setTagValue","tagValue","oldInputValue","_onRemove$value","clearAll","onInnerEnter","valueStr","isLimitExceeded","onInputBackspaceKeyUp","onInputBackspaceKeyDown","isDelete","_onRemove$value2","renderLabel","displayNode","newList","_getDragProps$value","more","collapsedTags","collapsedSelectedItems","useTagList","tagInputPlaceholder","_tagValue$value","showClearIcon","_tagValue$value2","onInputEnter","_context$e","_context$e$preventDef","onInputCompositionstart","_inputProps$value","_inputProps$value$onC","onInputCompositionend","_inputProps$value2","_inputProps$value2$on","onClearClick","_props2$onClear","onMouseEnter","onInnerFocus","_props2$onFocus","onInnerBlur","_props2$onBlur","onInnerChange","scrollElementClass","_inputProps$value3","_tagValue$value3","suffixIconNode","prefixIconNode","suffixClass","TagInput","DEFAULT_KEYS","useOverlayInnerStyle","innerPopupVisible","disable","matchWidthFunc","popupElement","SCROLLBAR_WIDTH","otherOverlayInnerStyle","getAutoWidthPopupStyleWidth","_popupProps$value","tOverlayInnerStyle","_popupProps$value2","onInnerPopupVisibleChange","_props$onPopupVisible","newVisible","COMMON_PROPERTIES","useSingle","_props$defaultInputVa","propsInputValue","isSingleFocus","setInputValue","commonInputProps","onInnerClear","_context2$e","renderPrefixContent","singleValueDisplay","_props$valueDisplayOp","_props$valueDisplayOp2","valueDisplayOptions","usePlaceholder","useInputDisplay","renderInputDisplay","displayedValue","_props$valueDisplayOp3","_props$valueDisplayOp4","renderPlaceholder","_props$valueDisplayOp5","_props$valueDisplayOp6","singleInputValue","renderSelectSingle","_context$attrs","iKeys","getInputValue","prefixContent","_context$slots","inputClassProps","overlayState","_popupRef$value2","_SelectInput","BASE_CLASS_BORDERLESS","BASE_CLASS_MULTIPLE","BASE_CLASS_POPUP_VISIBLE","BASE_CLASS_EMPTY","selectInputRef","_useOverlayInnerStyle","_useSingle","_useMultiple","isMultipleFocus","tags","onTagInputChange","_props$onTagChange","tagInputValue","multipleInputValue","renderSelectMultiple","useMultiple","isFocus","_popupVisible$value","addKeyboardEventListener","_props2$onPopupVisibl","_selectInputRef$value","_ctx$e","_tagInputRef$value$fo","tabIndex","_popupVisible$value2","visibleProps","mainContent","tipsNode","SelectInput","props$_","checkAll","props$Z","lazyLoad","CheckboxGroupInjectionKey","_Checkbox","needRipple","stopLabelTrigger","labelRef","checkboxGroupData","tName","tChecked","_checkboxGroupData$va","isCheckAll","checkedValues","maxExceeded","tIndeterminate","labelClasses","handleChange","handleCheckboxChange","onCheckedChange","handleLabelClick","_useCheckboxLazyLoad","ioObserver","showCheckbox","handleLazyLoad","useCheckboxLazyLoad","_useKeyboardEvent","useKeyboardEvent","props$Y","_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","trs","scrollType","isVirtual","selectProvider","isReachMax","selectValue","isSelected","selectName","liRef","isIndeterminate","hoverIndex","labelText","handleCheckboxClick","_selectProvider$value","_selectProvider$value2","handleCreate","handleValueChange","selectedOptions","getSelectedOptions","handlePopupVisibleChange","emitBlur","_selectProvider$value3","currentOption","optionChild","props$X","_OptionGroup","_props2$label","props$W","creatable","selectInputProps","valueType","onCreate","onSearch","usePanelVirtualScroll","_props$scroll3","_props$scroll4","_props$scroll5","_props$scroll6","_props$scroll7","_props$scroll","_props$options$value","_props$scroll2","_ref$fixedHeight","fixedHeight","_ref$lineHeight","lineHeight","_ref$bufferSize","_ref$threshold","cachedHeight","cachedScrollY","updateId","visibleCount","beforeScrollTop","$index","maxScrollY","average","firstRow","calculateScrollY","_anchorDom$getBoundin","anchorDom","anchorDomHeight","_state$visibleData","tr","scrollY","_state$visibleData$","refreshContainer","ob","intersectionRatio","_container$value2","useVirtualScroll","popupContentRef","_ref$trs","_ref$visibleData","_ref$handleScroll","handleVirtualScroll","_ref$scrollHeight","_ref$translateY","_ref$handleRowMounted","lastScrollY","onInnerVirtualScroll","_props$popupContentRe","_props$popupContentRe2","cursorStyle","panelStyle","SelectPanel","TdSelectProps","renderDefaultTNode","tSelect","showCreateOption","displayOptions","_usePanelVirtualScrol","renderOptionsContent","OptionGroup","group","Option","dropdownInnerSize","renderPanel","extraStyle","_Select","innerInputValue","orgValue","setOrgValue","selectPanelRef","_props2$keys","_props2$keys2","_props2$keys3","_useSelectOptions","optionsCache","dynamicIndex","innerOptions","getFormatOption","_keys$value","optionsSlots","groupSlots","_group$props","groupOption","_step2","_iterator2","_step3","_iterator3","optionsList","getOptionsList","_step4","_iterator4","filterMethods","_option$label","_option$label$toLower","checkAllOption","exactMatch","fuzzyMatch","useSelectOptions","getOption","_useDefaultValue4","setInnerPopupVisible","placeholderText","displayText","resLabel","getMultipleContent","valueDisplayParams","removeTag","displayValue","isFilterable","isRemoteSearch","_props2$onRemove3","_ref4$trigger","_props2$onRemove2","currentSelected","getCurrentSelectedOptions","_currentSelected$len","currentSelectedOptions","_props2$onCreate","optionalList","lockedValues","formattedOrgValue","_useKeyboardControl","filteredOptions","virtualFilteredOptions","_selectPanelRef$value","handleKeyDown","_optionsList$value$ne","_optionsList$value$ne2","optionsListLength","newIndex","finalOptions","_finalOptions$hoverIn","useKeyboardControl","SelectProvider","handlerInputChange","handleOptionEmitBlur","checkValueInvalid","handleSearch","_props2$onSearch","_selectPanelRef$value2","handlerPopupVisibleChange","handlerPopupScrollToBottom","_ref6","_popupProps$onScroll","_popupProps$onScrollT","newCache","addCache","renderValueDisplay","_innerValue$value$sli","_innerValue$value$sli2","tagIndex","_ref7","_props2$tagProps","_props2$tagProps$onCl","renderTag","_selectPanelRef$value3","firstSelectedNode","elementBottomHeight","updateValue","_ref8","restPopupProps","onkeydown","_ref9","_ref0","_props2$onEnter","_ref1","_props2$onBlur2","_ref10","picker","Select","props$V","append","prepend","_InputAdornment","renderAddon","addon","addonNode","isContentNode","defaultSlot","InputAdornment","props$U","defaultCurrent","foldedMaxPageBtn","maxPageBtn","pageEllipsisMode","pageSize","defaultPageSize","pageSizeOptions","selectProps","showFirstAndLastPageBtn","showJumper","showPageNumber","showPageSize","showPreviousAndNextBtn","totalContent","onCurrentChange","onPageSizeChange","_Pagination","innerCurrent","setInnerCurrent","innerPageSize","setInnerPageSize","PageFirstIcon","TdPageFirstIcon","PageLastIcon","TdPageLastIcon","ChevronLeftDoubleIcon","TdChevronLeftDoubleIcon","ChevronRightDoubleIcon","TdChevronRightDoubleIcon","_usePaginationClasses","pageCount","paginationClass","totalClass","sizerClass","preBtnClass","nextBtnClass","btnWrapClass","btnMoreClass","jumperClass","jumperInputClass","simpleClass","getButtonClass","usePaginationClasses","CLASS_MAP","_useMoreAction","prevMore","nextMore","curPageLeftCount","curPageRightCount","isPrevMoreShow","isNextMoreShow","useMoreAction","jumpIndex","isFolded","sizeOptions","isMidEllipsis","pages","foldedStart","foldedEnd","toPage","pageIndex","pageInfo","handlePageChange","prevPage","nextPage","prevMorePage","nextMorePage","onSelectorChange","isIndexChange","_props2$onChange2","onJumperChange","trunc","Jumper","TInputAdornment","$event","onMouseover","onMouseout","props$T","showCurrent","_PaginationMini","RoundIcon","TdRoundIcon","titleConfig","disabledConfig","_props2$onChange3","Pagination","PaginationMini","props$S","sequence","stepItemProps","_StepItem","stepsState","stepsProps","CheckIcon","TdCheckIcon","canClick","onStepClick","setCurrent","statusClass","baseClass","iconClass","defaultIcon","_Steps","indexMap","handleStatus","matchIndex","getChildComponentByName","getOptions","stepIndex","StepItem","Steps","props$R","onHover","stickyItemProps","_StickyItem","baseProps","TdStickyToolProps","basePopupProps","baseWidth","popupPlacement","selfWidth","handleClickItem","handleHoverItem","_StickyTool","getListBySlots","_props2$offset","handleHover","_props2$onHover","getList","StickyItem","StickyTool","props$Q","visibleHeight","_BackTop","BacktopIcon","TdBackTopIcon","getContainer","scrollDOM","onscroll","_scrollDOM","defaultContent","_createTextVNode","positionStyle","insetInlineEnd","insetBlockEnd","targetNode","getBackTo","BackTop","props$P","highlightKeyword","textareaProps","onSelect","_HighlightOption","keyword","_content$match","regExp","splitKeyword","_words$value","AutoCompleteOptionList","sizeClassNames","optionClasses","tOptions","onOptionClick","liNode","onKeyInnerPress","_tOptions$value$newIn","findIndex","_tOptions$value$_newI","addKeyboardListener","removeKeyboardListener","labelNode","_slots$option","HighlightOption","_AutoComplete","optionListRef","triggerWidth","popupClasses","popupInnerClasses","innerInputProps","_optionListRef$value","onInnerCompositionend","_props2$onComposition","onInnerCompositionstart","_props2$onComposition2","onInnerSelect","_props2$onSelect","listContent","topContent","bottomContent","panelContent","AutoComplete","getFakeArrowIconClass","cascaderContext","getNodeStatusClass","checkStrictly","expandedActive","isLeaf","treeStore","showAllLevels","getNodes","getPath","at","getPanels","treeNodes","getFullPathLabel","getTreeValue","treeValue","isEmptyValues","handleRemoveTagEffect","setValue","setChecked","isChecked","getNode","getModel","Item","getCascaderItemClass","getCascaderItemIconClass","RenderLabelInner","inputVal","texts","doms","RenderLabelContent","RenderCheckBox","checkProps","isOptionChildAndMultiple","props$N","load","valueMode","Panel","CascaderProps","renderTNodeJSXDefault","handleExpand","propsTrigger","setTreeNodes","setExpend","refreshNodes","replaceExpanded","resetChecked","expendClickEffect","renderItem","getExpanded","isSelectAll","valueChangeEffect","renderList","isFilter","segment","_props$cascaderContex","nodeKey","TreeNodeModel","actived","getLevel","getIndex","isFirst","newData","insertAfter","_node$parent","getParents","getRoot","getSiblings","childrenModel","walk","pnode","syncAttrs","cleanData","attr","dataAttrValue","settableStatus","activable","checkable","settableProps","syncableProps","privateKey","TreeNode","propChildren","propLabel","propDisabled","model","vmCheckable","vmIsLeaf","vmIsFirst","vmIsLast","vmIsRest","vmIsLocked","expandAll","uniqueId","nodeMap","privateMap","initActived","initExpanded","loadChildren","initChecked","updateChecked","reflow","checkedMap","expandLevel","expandedMap","isActivable","activedMap","appendTo","updateRelated","_this3","targetPosNode","siblings","prevLength","prevIndex","sibling","insert","updateParents","filterMap","_loadChildren","_this4","setDisabled","parents","_this$tree","hasFilter","nodeModel","_this$tree2","allowFoldNodeOnFilter","expandVisible","disableCheck","isDisabledState","_tree$config","isCheckable","childChecked","lockState","isExpanded","isVisible","updateChildren","directly","shouldExpandNodes","expandParent","_tree$config2","isExpandMutex","snode","afterExpanded","setActived","isActived","isAction","getActived","prevKeys","activeMultiple","hasEnableUnCheckedChild","expectState","getChecked","spreadChildrenChecked","spreadParentChecked","getRelatedNodes","isRest","_this5","spreadChildren","_this6","spreadParents","TreeStore","onLoad","onReflow","onUpdate","updatedMap","prevFilter","updateTick","shouldReflow","emitter","all","hasChanged","refreshState","getParent","conf","para","spec","parseNodeData","pm","lockFilterPathNodes","stateId","updatedNodes","nodePrivateKey","resetActived","added","difference","removed","setExpandedDirectly","updateExpanded","withParents","_this$config","childNode","relatedNodes","relatedNode","allNodes","lock","currentFilter","useCascaderContext","setPopupVisible","_useContext","statusContext","scopeVal","expend","setInputVal","useContext","updatedTreeNodes","_cascaderContext$valu","treeNodesEffect","updateExpend","_cascaderContext$valu2","tn","expandedArr","treeStoreExpendEffect","replaceChecked","_props$keys","reload","store","JSON","stringify","treeProps","setConfig","_cascaderContext$valu3","isValueInvalid","getCascaderValue","getCascaderItems","_statusContext$treeSt","_Cascader","_useCascaderContext","_node2$","inputPlaceholder","arrayValue","cascaderClassNames","renderSuffixIcon","_props2$selectInputPr","_props2$selectInputPr2","_props2$selectInputPr3","_props2$selectInputPr4","_props2$selectInputPr5","_props2$selectInputPr6","_props2$selectInputPr7","_props2$selectInputPr8","_props2$selectInputPr9","_props2$selectInputPr0","_props2$selectInputPr1","_props2$selectInputPr10","closeIconClickEffect","_CascaderPanel","Cascader","CascaderPanel","isoWeeksInYear","isLeapYear","day","dayjs","TIME_FORMAT","extractTimeFormat","parseToDayjs","timeOfDay","dateText","yearStr","weekStr","weekFormatStr","firstWeek","weekCounts","nextWeek","quarterStr","quarterFormatStr","firstQuarter","nextQuarter","isValidDate","formatDate","newDate","targetFormat","_ref3$dayjsLocale","autoSwap","dayjsDateList","da","formatRange","dayJsDate","formatSingle","calcFormatTime","timeFormat","timeArr","timeFormatArr","formatTime","defaultTime","_result","getDefaultFormat","_ref4$mode","enableTimePicker","initYearMonthTime","_ref5$mode","_ref5$timeFormat","defaultYearMonthTime","useSingleValue","_value$value","_value$value2","_value$value3","_value$value4","formatRef","cacheValue","_extends","isBetween","weeks","weekYear","longDateFormat","localeData","isoWeekYear","isoWeek","offsetName","zone","A","afternoon","milliseconds","SS","SSS","ss","H","HH","DD","Do","MMM","MMMM","Y","YY","YYYY","Z","ZZ","regex","parser","hours","customParseFormat","parseTwoDigitYear","minutes","seconds","getDaysInMonth","isSameYear","date1","date2","isSameQuarter","isSameMonth","isSameWeek","isSameDate","compareAsc","d1","outOfRanges","getToday","subtractMonth","addMonth","getWeeks","_ref5$showWeekOfYear","showWeekOfYear","_ref5$disableDate","disableDate","minDate","maxDate","_ref5$dayjsLocale","_ref5$cancelRangeSele","cancelRangeSelectLimit","prependDay","getFirstDayOfMonth","appendDay","getLastDayOfMonth","maxDays","daysArr","currentDay","firstDayOfMonth","lastDayOfMonth","dayjsObj","setDate","additional","dataList","flagActive","_objectDestructuringEmpty","hoverStart","hoverEnd","_args$type","_args$isRange","isRange","_args$multiple","_item","isStart","isHoverStart","isEnd","isHoverEnd","highlight","startOfRange","endOfRange","hoverHighlight","hoverStartOfRange","hoverEndOfRange","_value$some","extractTimeObj","matchedMeridiem","_matchedTimeStr$0$spl2","_matchedTimeStr$0$spl3","_matchedTimeStr$0$spl4","_matchedTimeStr$0$spl5","_matchedTimeStr$0$spl6","weekOfYear","quarterOfYear","advancedFormat","dayJsIsBetween","datePickerProps","needConfirm","presets","presetsPlacement","timePickerProps","onConfirm","onPick","onPresetClick","TDateHeader","onMonthChange","onYearChange","onJumperClick","yearOptions","initOptions","showMonthPicker","nearestYear","_yearOptions$value$fi","monthOptions","extraYear","maxYear","loadMoreYear","labelMap","handlePanelTopClick","handlePanelBottomClick","_e$stopPropagation","_e$stopPropagation2","_props$onMonthChange","TSelect","_props$onYearChange","createTextVNode","TDatePickerCell","Dayjs","cellClass","_extractTimeObj","nextHours","setHours","setMinutes","setSeconds","setMilliseconds","_props$onMouseEnter","_extractTimeObj2","TDateTable","onCellClick","onCellMouseEnter","onCellMouseLeave","weekArr","wi","showThead","activeRowCss","targetValue","_value$map3","targetDayjs","isSomeYearWeek","_startObj$locale","_startObj$locale$week","_endObj$locale","_endObj$locale$week","_value$map2","startObj","endObj","startYear","startWeek","endYear","endWeek","targetObj","targetYear","targetWeek","_props$onCellMouseLea","col","AM","PM","MERIDIEM_LIST","TIME_PICKER_EMPTY","DEFAULT_STEPS","EPickerCols","TWELVE_HOUR_FORMAT","props$M","disableTime","hideDisabledTime","onInput","onOpen","BooleanType","validateInputValue","formatInputValue","hour","minute","second","milliSecond","panelOffset","SinglePanel","panelColProps","cols","Props","localeMeridiems","triggerScroll","resetTriggerScroll","isShowPanel","bodyRef","maskRef","colsRef","dayjsValue","isStepsSet","updateTimeScrollPos","renderCol","getPickerCols","getItemHeight","_maskRef$value","maskDom","timeItemCanUsed","colIdx","_props$disableTime","millisecond","partial","getColList","colStep","colList","_props$disableTime2","getScrollDistance","itemIdx","_getItemHeight","timeItemTotalHeight","_colsRef$idx","_props$onChange","formattedVal","_getItemHeight2","availableArr","calcVal","closestLookup","_dayjsValue$value$col","_dayjsValue$value","currentHour","_scrollCtrl$scrollTo","scrollCtrl","scrollToTime","_scrollCtrl$scrollTo2","isAutoScroll","_dayjsValue$value$col2","_dayjsValue$value2","_getColList","isCurrent","colItem","_dayjsValue$value$col3","_dayjsValue$value3","colVal","_cols$value$map","_cols$value","_cols$value$map2","_cols$value2","_props$onChange2","_props$onChange3","handleTimeItemClick","_TimePickerPanel","panelProps","activeIndex","isFooterDisplay","handleConfirmClick","panelRef","showNowTimeBtn","formattedValue","panelColUpdate","renderFooter","presetValue","presetVal","_props$handleConfirmC","TPanelContent","tableData","onTimePickerChange","defaultTimeValue","_props$onJumperClick","_props$onCellClick","_props$onCellMouseEnt","TTimePickerPanel","_isSlot","TDateFooter","selectedValue","onConfirmClick","presetsClass","footerClass","_props$onPresetClick","preset","_props$onConfirmClick","TExtraContent","showPanelFooter","useDisableDate","availableMode","isEnabled","before","after","compareMin","compareMax","isEnabledDate","useRangeValue","isFirstValueSelected","PARTIAL_MAP","first","useTableData","_props$firstDayOfWeek","monthLocal","quarterLocal","_ref6$disableDate","_ref6$dayjsLocale","_ref6$cancelRangeSele","quarterArr","getQuarters","_params$disableDate","_params$dayjsLocale","_params$cancelRangeSe","MonthArr","getMonths","_ref7$disableDate","_ref7$dayjsLocale","_ref7$cancelRangeSele","yearArr","getYears","TSinglePanel","onPanelClick","_getDefaultFormat","disableDateOptions","panelContentProps","extraProps","_props$onPanelClick","_DatePicker","_useSingleValue","isHoverCell","defaultInputProps","newMonth","newYear","newTime","_props$popupProps$ove","_props$popupProps","_props$popupProps2","_props$popupProps3","_props$popupProps3$on","_props$popupProps4","_props$popupProps4$on","CalendarIcon","TdCalendarIcon","_props2$onPick","processDate","onTagRemoveClick","removeDate","onTagClearClick","monthCount","_props2$onPick2","nextDate","_props2$onConfirm","nextValue","_formatRef$value","dateValue","covertToDate","_inputRef$value$focus","datePickerPanelProps","onTimeChange","_DatePickerPanel","triggerMap","_props$onTimeChange","_props$onConfirm","_props$onYearChange2","_props$onMonthChange2","panelClick","dateRangePickerProps","panelPreselection","rangeInputProps","props$L","calcArrayValue","_RangeInput","_innerValue$value2","isShowClearIcon","inputRefs","firstInputRef","secondInputRef","handleClear","handleEnter","rangeValue","handleFocus","_props2$onMouseenter","_props2$onMouseleave","firstInputElement","secondInputElement","_inputRefs$value","_ref3$position","_inputRefs$value2","_ref4$position","_inputRefs$value3","_ref5$position","_innerValue$value3","_innerValue$value8","prefixIconContent","suffixIconContent","RangeInputContent","_innerValue$value4","_innerValue$value5","_innerValue$value6","_innerValue$value7","_ref12","_props2$onClick2","_ref13","_innerValue$value9","_ref14","_innerValue$value0","_ref15","_innerValue$value1","_ref16","_innerValue$value10","props$K","_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","_assertString","encodeURI","default_fqdn_options","allow_trailing_dot","allow_wildcard","tld","require_tld","allow_numeric_tld","ignore_max_length","allow_underscores","_interopRequireDefault","isIP","ipAddress","IPv4AddressRegExp","IPv6AddressRegExp","IPv4SegmentFormat","IPv4AddressFormat","IPv6SegmentFormat","default_email_options","require_display_name","allow_display_name","display_email","splitNameAddress","display_name","display_name_without_quotes","validateDisplayName","defaultMaxEmailLength","domain","lower_domain","host_blacklist","_checkHost","host_whitelist","user","domain_specific_validation","username","_isByteLength","_user_parts","gmailUserPart","_isFQDN","allow_ip_domain","_isIP","noBracketdomain","blacklisted_chars","allow_utf8_local_part","quotedEmailUserUtf8","quotedEmailUser","emailUserUtf8Part","emailUserPart","user_parts","isValueEmpty","default_url_options","validate_length","max_allowed_length","allow_fragments","_includesString","allow_query_components","protocol","auth","hostname","port","port_str","ipv6","require_valid_protocol","protocols","require_protocol","allow_protocol_relative_urls","require_host","disallow_auth","_auth$split","_auth$split2","password","ipv6_match","wrapped_ipv6","require_port","VALIDATE_MAP","email","isEmail","strs","validate","validateOneRule","_validateOneRule","rule","validateResult","vOptions","vValidateFun","validateRule","_x3","_x4","_validate","rules","props$J","for","labelAlign","labelWidth","showErrorMessage","statusIcon","getFormItemClassName","_FormItem","CLASS_NAMES","formItemClassPrefix","needRequiredMark","_props2$requiredMark","isRequired","innerRules","requiredMarkPosition","_form$requiredMarkPos","hasLabel","hasColon","FROM_LABEL","getDefaultIcon","errorList","verifyStatus","SUCCESS","errorClasses","contentClasses","successList","TO_BE_VALIDATED","resetValidating","needResetField","resetHandler","resetField","resetType","_args","lodashSet","emptyValue","lodashGet","initialValue","errorMessages","_form$errorMessage","_props2$rules","lastIndexOf","pRuleName","analysisValidateResult","_result$rules","resultList","allowSetValue","vars","validateHandler","_yield$analysisValida","innerSuccessList","innerErrorList","freeShowErrorMessage","FAIL","validateOnly","_callee4","_yield$analysisValida2","_context4","setValidateMessage","validateMessage","_callee5","_context5","helpNode","extraNode","_list$","getExtraNode","tmpTips","tmpClasses","_callee6","_context6","props$I","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$H","allowUncheck","RadioGroupInjectionKey","RadioButtonInjectionKey","_Radio","radioChecked","radioGroup","onLabelClick","keydown","keyup","keypresss","onKeypresss","wrapperAttrs","groupDisabled","groupReadonly","radioButton","radioBtnName","props$G","_RadioButton","radioProps","Radio","defaultWindow","useMutationObserver","_options$window","mutationOptions","isSupported","cleanup","stopWatch","elRef","plain","unref","_plain$$el","MutationObserver","getCurrentScope","onScopeDispose","radioGroupRef","updateInnerValue","checkRadioInGroup","inputNode","true","false","useKeyboard","observerReturn","checkedClassName","barStyle","calcBarStyle","disableAnimation","checkedRadio","transitionProperty","cloneNode","defaultCheckedRadio","calcDefaultBarStyle","checkedRadioLabel","mutations","mutation","characterData","subtree","_observerReturn","radioGroupName","renderBlock","groupClass","RadioComponent","TRadioButton","TRadio","RadioGroup","RadioButton","props$F","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$E","beforeChange","customValue","_Switch","setSwitchVal","inactiveValue","handleToggle","toggle","nodeClasses","switchContent","loadingContent","Switch","props$D","autosize","calcTextareaHeight","targetElement","_hiddenTextarea","minRows","maxRows","_calculateNodeSize","paddingSize","borderSize","boxSizing","sizingStyle","calculateNodeSize","isBorderbox","singleRowHeight","calcHeight","rows","rowsHeight","minHeight","_Textarea","TEXTAREA_TIPS_CLASS","TEXTAREA_LIMIT","textareaStyle","refTextareaElem","isComposing","adjustTextareaHeight","_refTextareaElem$valu3","_props2$autosize","stringInfo","textareaElem","eventDeal","_props2$eventName","eventName","emitKeyDown","emitKeyUp","emitKeypress","textareaClasses","characterNumber","characterInfo","_refTextareaElem$valu","_refTextareaElem$valu2","_String","textTips","limitText","Textarea","SOURCE","TARGET","getTransferListOption","getDataValues","filterValues","_ref$isTreeMode","isTreeMode","_ref$include","_ref$remainValue","remainValue","isInclude","childResult","getTransferData","transferDataItem","_transferDataItem$dis","labelKey","valueKey","disabledKey","isTreeNodeValid","needMatch","_data$children","cloneTreeWithFilter","sourceTree","targetTree","newNode","isAllNodeValid","filterTransferData","getLefCount","Search","SearchIcon","TdSearchIcon","changeCtx","checkboxProps","dataSource","listType","checkedValue","transferItem","footer","onPageChange","onDataChange","TransferList","filterValue","currentPage","filteredData","filteredTreeData","pageTotal","curPageData","pageData","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$B","operation","showCheckAll","targetDraggable","targetSort","TransferOperations","leftDisabled","rightDisabled","moveToRight","moveToLeft","getIconRight","getIconLeft","getIcon","renderButton","_props2$operation","_Transfer","valueList","leftButtonDisabled","rightButtonDisabled","transferData","sourceList","targetList","hasFooter","showPagination","showSearch","footerOption","emptyOption","searchOption","disabledOption","titleOption","paginationOption","sourceChecked","targetChecked","transferTo","toDirection","newTargetValue","oldTargetValue","selfCheckedValue","movedValue","transferToRight","transferToLeft","renderTransferList","scopedSlots","bottomDistance","onMoveToRight","onMoveToLeft","Transfer","_TimePicker","TimeIcon","TdTimeIcon","inputClasses","handleShowPopup","_props2$onOpen","handleInputChange","handleInputBlur","handleClickConfirm","handlePanelChange","TSelectInput","TimePickerPanel","props$A","_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","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","scrollStopTimer","srcElement","_props$onScroll","emitScrollEvent","_allNodes$value","formatCSSUnit","unit","props$z","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$y","rComma","rValue","rColor","rColorStop","rColorStopList","rLineCapture","_TreeSelect","treeRef","nodeInfo","treeKey","treeSelectValue","setTreeSelectValue","setInnerInputValue","setTreeParentsExpanded","realValue","realChildren","_currentTargetValue","currentTargetValue","findPath","parentPath","newPath","findParentValues","treeParents","flatMap","changeNodeInfo","treeRerender","filterByText","realLabel","_nodeInfo$value","popupClass","isObjectValue","multiLimitDisabled","_treeSelectValue$valu","valueParam","treeNodeChange","getNodeItem","treeNodeActive","treeNodeExpand","treeNodeLoad","inputChange","_props2$onSearch2","tagChange","getMultipleNodeInfo","getSingleNodeInfo","getTreeNode","TreeSelect","props$x","colorModes","enableAlpha","enableMultipleGradient","recentColors","defaultRecentColors","showPrimaryColorPreview","swatchColors","onPaletteBarChange","onRecentColorsChange","REG_CMYK_STRING","cmykInputToColor","_cmyk2rgb","cmyk2rgb","COLOR_MODES","monochrome","DEFAULT_LINEAR_GRADIENT","DEFAULT_SYSTEM_SWATCH_COLORS","FORMATS","ALPHA_FORMAT_MAP","HEX","RGB","HSL","HSV","COLOR_FORMAT_INPUTS","CMYK","CSS","combineRegExp","regexpList","flags","REGEXP_LIB","gradientSearch","colorStopSearch","REG_GRADIENT","isGradientColor","sideCornerDegreeMap","parseGradientString","gradientColors","points","degree","regExpLib","matchColorStop","stopResult","matchGradient","original","colorStopList","angle","sideCorner","parseGradient","tinyColor","mathRound","hsv2rgba","states","gradientColors2string","colorsStop","pA","pB","genGradientPoint","Color","colors","selectedId","originColor","isGradient","colorHsv","updateCurrentGradientColor","colorInput","_points$","_this$gradientSelecte","_this$gradientStates$","gradientStates","linearGradient","gradientSelectedPoint","updateStates","_hsv2rgba","_hsv2rgba2","_this$getHsva","getHsva","_this$getHsva2","_this$getHsla","getHsla","_this$getHsla2","_this$getCmyk","getCmyk","gradientDegree","_this$gradientSelecte2","gradientSelectedId","cmyk","RGBA","HSLA","HSVA","HEX8","finalFormat","getFormatsColorMap","_hsv2rgba3","_this$getRgba","getRgba","_rgb2cmyk","computedC","computedM","computedY","minCMY","rgb2cmyk","_rgb2cmyk2","_hsv2hsva","_hsv2hsla","_Color","_defineProperty$2","isGradientColor1","isGradientColor2","gradientStr1","gradientStr2","COLOR_OBJECT_OUTPUT_KEYS","getColorObject","colorObject","defaultsOptions","coordinate","_Draggable_brand","WeakSet","Draggable","_classPrivateMethodInitSpec","handles","_assertClassBrand","_dragStart","_drag","_dragEnd","_getCoordinate","getColorFormatMap","getColorFormatInputs","configs","useBaseClassName","baseClassName","PanelHeader","togglePopup","onModeChange","modeValue","handleModeChange","_props2$colorModes","DELETE_KEYS","LinearGradient","statusClassNames","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","props$w","FormatInputs","lastModelValue","updateModelValue","throttleUpdate","_props2$color","object2color","FormatPanel","formatModel","newProps","SwatchesPanel","editable","onSetColor","handleAddColor","DeleteIcon","TdDeleteIcon","visiblePopConfirm","isEqualCurrentColor","compare","selectedColorIndex","handleRemoveColor","selectedIndex","swatchesClass","ColorPanel","innerRecentColors","setInnerRecentColors","getModeByColor","defaultEmptyColor","initColorFormat","addRecentlyUsedColor","currentColor","handleRecentlyUsedColorsChange","emitColorChange","getFormattedColor","newMode","isGradientMode","handleSatAndValueChange","_color$value","sat","changeTrigger","handleHueChange","_props2$onPaletteBarC","handleAlphaChange","handleGradientChange","handleSetColor","onlySupportGradient","showUsedColors","systemColors","showSystemColors","renderSwatches","_ColorPickerPanel","pickBy","DefaultTrigger","onTriggerChange","onTriggerClear","_props$onTriggerClear","inputSlots","_ColorPicker","refTrigger","renderPopupContent","popProps","TPopup","ColorPickerPanel","ColorPicker","props$v","alt","hideOnLoadFailed","imageProps","onError","props$u","fallback","fit","gallery","overlayContent","overlayTrigger","referrerpolicy","src","srcset","_Image","divRef","imgRef","_imgRef$value","complete","triggerHandleLoad","handleLoadImage","imageStrSrc","replaceImageSrc","tmpUrl","hasError","isLoaded","shouldLoad","_props2$onLoad","loadEvent","handleError","_props2$onError","hasMouseEvent","imageClasses","shouldShowOverlay","handleToggleOverlay","renderImage","renderTNodDefault","ImageIcon","Image","_Avatar","avatarGroup","avatar","avatarChild","isImgExist","scale","sizeValue","isCustomSize","customAvatarSize","customImageSize","customCharacterSize","handleImgLoadError","setScaleParams","$avatar","$avatarChild","avatarWidth","avatarChildWidth","isIconOnly","avatarClass","props$t","cascading","collapseAvatar","_AvatarGroup","AVATAR_NAME","renderEllipsisAvatar","getEllipsisContent","outAvatar","Avatar","AvatarGroup","props$s","dot","maxCount","showZero","_Badge","displayCount","isHidden","badgeClassNames","inlineStyle","_getOffset","xOffset","yOffset","Badge","props$r","cell","cellAppend","head","isShowWeekendDefault","preventCellContextmenu","onCellDoubleClick","onCellRightClick","onControllerChange","MIN_YEAR","DAY_CN_MAP","dt","addDate","days","createMonthCellsData","curSelectedYear","curSelectedMonth","realFirstDayOfWeek","curDate","curDateList","begin","beginDateColIndex","getCellColIndex","createCellData","belongTo","weekOrder","formattedDate","filterDate","formattedFilterDate","isShowWeekend","judgeIsCurrent","nextMonthCellNum","createDefaultCurDate","useState","curSelectedMode","controlSize","setCurrentDate","toToday","checkDayVisible","re","getDefaultControllerConfigData","radioGroupProps","weekend","showWeekendButtonProps","hideWeekendButtonProps","currentDayButtonProps","currentMonthButtonProps","useColHeaders","weekDisplayText","getWeekDisplay","weekNum","numStr","weekText","cellColHeaders","clickTypeEmitEventMap","dblclick","contextmenu","CalendarCellItem","prefixClass","tableBodyCell","tableBodyCell4Now","tableBodyCellDisplay","tableBodyCellCsontent","_props$fillWithZero","dateNum","allowSlot","cellCls","_props$item","isNow","clickCell","emitName","onDblclick","onContextmenu","_Calendar","_useState","control","controlSection","controlSectionCell","controlTag","tableHead","tableHeadRow","tableHeadCell","tableBody","tableBodyRow","useCalendarClass","controller","dayJsFilterDate","configData","_props$controllerConf","checkControllerVisible","checkControllerDisabled","emitControllerChange","userController","rangeFromTo","_props2$range","v1","checkMonthAndYearSelectedDisabled","beginYear","dateSelect","yearSelectOptionList","isYearSelectVisible","isYearSelectDisabled","monthSelectOptionList","_rangeFromTo$value","_rangeFromTo$value2","beginMon","adjustMonth","isMonthSelectVisible","isMonthSelectDisabled","modeSelect","weekendBtn","vBind","currentBtn","cellClickEmit","eventPropsName","cellData","doubleClickCell","rightClickCell","monthCellsData","utils","yearCellsData","monthsArr","rowCount","TRadioGroup","TCheckTag","weekIndex","itemIndex","onRightclick","cellIndex","Calendar","props$q","cover","description","header","headerBordered","hoverShadow","shadow","subtitle","_Card","baseCls","defaultClass","headerCls","headerWrapperCls","headerAvatarCls","headerTitleCls","headerSubTitleCls","headerDescriptionCls","actionsCls","bodyCls","coverCls","footerCls","footerWrapperCls","isPoster2","showTitle","showHeader","showSubtitle","showAvatar","showDescription","showStatus","showActions","showFooter","showCover","showLoading","showContent","isHeaderRender","isFooterRender","textCover","Card","props$p","author","datetime","reply","_Comment","showAuthorDatetime","replyDom","quoteDom","avatarDom","authorDatetimeDom","contentDom","flatChildren","renderActions","props$o","imageStyle","MaintenanceSvg","NetworkErrorSvg","EmptySvg","FailSvg","SuccessSvg","_Empty","components","TImage","propsImage","propsDescription","propsTitle","defaultMaps","emptyClasses","titleClasses","descriptionClasses","actionClass","typeImageProps","_defaultMaps$type$val","showImage","_slots$image","_typeImageProps$value","_slots$title","_typeImageProps$value2","_slots$description","Empty","useDrag","initTransform","mouseDownHandler","pageX","_transform$value","translateX","mouseMoveHandler","mouseUpHandler","resetTransform","TImageItem","rotate","placementSrc","isSvg","imageReferrerpolicy","loaded","_useDrag","svgElRef","imgStyle","placementImgStyle","boxStyle","createSvgShadow","_element$classList","response","svgText","shadowRoot","svgElement","svgViewBox","viewBoxValues","svgViewBoxWidth","bbox","calculatedViewBox","fetch","statusText","innerHTML","attachShadow","getBBox","mainImagePreviewUrl","placementImagePreviewUrl","ImageErrorIcon","TImageViewerIcon","wrapClass","props$n","cancelBtn","confirmBtn","confirmLoading","confirmOnEnter","dialogClassName","dialogStyle","showInAttachedElement","onBeforeClose","onBeforeOpen","onCancel","onClosed","onEscKeydown","onOpened","useAction","getButtonByProps","defaultButtonProps","newOptions","getConfirmBtn","globalConfirm","globalConfirmBtnTheme","confirmBtnAction","getDefaultConfirmBtnProps","getCancelBtn","globalCancel","cancelBtnAction","getDefaultCancelBtnProps","getScrollbarWidth","getCSSValue","dialogCardProps","mousePosition","_DialogCard","directives","windowInnerWidth","windowInnerHeight","targetEvent","disX","disY","dialogW","dialogH","mouseMoverHandler","documentEvent","dialogProps","rootRef","_useAction","_props$onCancel","isModeLess","isFullScreen","closeBtnAction","_props$onCloseBtnClic","onStopDown","resetPosition","dialogClass","confirmBtnLoading","_confirmBtn$value","defaultFooter","footerContent","headerClassName","closeClassName","bodyClassName","footerClassName","_Dialog","dialogCardRef","_props2$onCancel","emitCloseEvent","styleEl","isModal","computedVisible","maskClass","positionClass","topStyle","isMounted","destroySelf","_styleEl$value$parent","_styleEl$value$parent2","_document$activeEleme","_dialogCardRef$value","addKeyboardEvent","MOUSEDOWN_TARGET","MOUSEUP_TARGET","keyboardEvent","keyboardEnterEvent","_props2$onConfirm2","_props2$onEscKeydown","_props2$closeOnEscKey","stopImmediatePropagation","_useSameTarget","_props2$closeOnOverla","_props2$onBeforeOpen","_props2$onOpened","_props2$onBeforeClose","_dialogCardRef$value2","_dialogCardRef$value3","_props2$onClosed","shouldRender","view","otherProps","TDialogCard","renderDialog","ctxStyle","ctxClass","onBeforeEnter","onAfterLeave","createDialog","preClassName","updateClassNameStyle","_wrapper$firstElement","firstElementChild","cssText","dialogOptions","DialogComponent","dialogComponent","setConfirmLoading","DialogPlugin","$dialog","Dialog","DialogCard","props$m","closeOnOverlay","imageScale","images","defaultIndex","navigationArrow","viewerScale","onDownload","onIndexChange","TImageViewerUtils","onRotate","onZoomIn","onZoomOut","onMirror","currentImage","mainImage","TToolTip","MirrorIcon","RotationIcon","ZoomOutIcon","ZoomInIcon","DownloadIcon","TImageViewerModal","renderJSX","TDialog","thumbnail","EVENT_CODE","formatImages","File","isImageInfo","_ImageViewer","_props2$defaultIndex","isExpand","showOverlayValue","indexValue","setIndexValue","visibleValue","setVisibleValue","animationEnd","animationTimer","headerClass","zIndexValue","_props2$zIndex","toggleExpand","_useMirror","resetMirror","useMirror","_useScale","defaultScale","setScale","resetScale","newScale","useScale","_useRotate","resetRotate","useRotate","onRest","_images$value$indexVa","prevImage","nextImage","onDownloadClick","imgSrc","_imgSrc$split","_imgSrc$split$split","_imgSrc$split$split$s","canvas","getContext","drawImage","toBlob","blob","URL","createObjectURL","revokeObjectURL","downloadFile","openHandler","clickOverlayHandler","keydownHandler","up","down","esc","_divRef$value","_divRef$value$focus","transStyle","onImgClick","renderNavigationArrow","rotateDeg","renderCloseBtn","ImageViewer","props$l","_ListItem","propsContent","propsDefaultContent","propsActionContent","props$k","asyncLoading","stripe","onLoadMore","LOAD_MORE","_List","listRef","listItems","computedListItems","listItemSlots","_useListVirtualScroll","listStyle","useListVirtualScroll","listClass","listElement","scrollBottom","loadingClass","renderLoading","handleLoadMore","_props2$onLoadMore","propsHeaderContent","propsFooterContent","TListItem","props$j","_ListItemMeta","renderAvatar","propsTitleContent","propsDescriptionContent","listItemMetaContent","List","ListItem","ListItemMeta","PRO_THEME","CIRCLE_SIZE","CIRCLE_SIZE_PX","CIRCLE_FONT_SIZE_RATIO","STATUS_ICON","props$i","percentage","strokeWidth","trackColor","_Progress","ErrorIcon","TdErrorIcon","CIRCLE_ICONS_MAP","NORMAL_ICONS_MAP","statusStyle","trackBgStyle","circlePathStyle","circleOuterStyle","diameter","diameterValue","SMALL","LARGE","MEDIUM","customSize","rPoints","radius","circleStrokeWidth","circleStyle","defaultWidth","strokeDashArr","perimeter","PI","getIconMap","getLabelContent","labelContentRender","infoIsOut","infoRef","separateClasses","_updateInfoIsOut","infoEl","cx","cy","Progress","props$h","rowCol","ThemeMap","paragraph","tab","article","getColItemStyle","px","_Skeleton","isShow","getColItemClass","renderRowCol","_rowCol","renderCols","_cols","bool","Skeleton","props$g","animationStart","trend","trendPlacement","quartOut","Tween","_ref$duration","onStart","_ref$onUpdate","started","finished","_this$onFinish","elapsed","_this$onStart","delta","interval","setInterval","clearInterval","tick","polyfillStart","normalStart","COLOR_MAP","_Statistic","_props2$animation$val","_props2$animation","ArrowTriangleUpFilledIcon","TDArrowTriangleUpFilledIcon","ArrowTriangleDownFilledIcon","TDArrowTriangleDownFilledIcon","trendIcons","increase","decrease","numberValue","valueFrom","innerDecimalPlaces","_props2$decimalPlaces","_numberValue$value$to","tween","_props2$animation$val2","_props2$animation2","_tween$value","formatValue","minimumFractionDigits","maximumFractionDigits","useGrouping","toLocaleString","getFormatValue","_tween$value2","trendIcon","Statistic","props$f","autoplay","loop","navigation","stopOnHover","cardScale","swiperItemProps","isSwitching","getWrapAttribute","swiperItemLength","itemWidth","_SwiperItem","disposeIndex","translateIndex","isActivity","inStage","itemStyle","defaultNavigation","showSlideBtn","_Swiper","swiperTimer","swiperSwitchingTimer","isBeginToEnd","isEndToBegin","navActiveIndex","isHovering","swiperWrap","navigationConfig","propsToUpdateSetTimer","swiperWrapClass","containerStyle","swiperItems","swiperItemList","swiperItem","TSwiperItem","cloneVNode","swiperTo","goNext","goPrevious","_swiperWrap$value","renderNavigation","fractionIndex","navigationSlot","renderPagination","onMouseEnterNavigationItem","onClickNavigationItem","renderSwiperItems","Swiper","SwiperItem","baseTableProps","activeRowKeys","defaultActiveRowKeys","activeRowType","allowResizeColumnWidth","cellEmptyContent","columns","disableDataPage","disableSpaceInactiveRow","firstFullRow","footData","footerAffixProps","footerAffixedBottom","footerSummary","headerAffixProps","headerAffixedTop","horizontalScrollAffixedBottom","keyboardRowHover","lastFullRow","paginationAffixedBottom","resizable","rowAttributes","rowClassName","rowKey","rowspanAndColspan","rowspanAndColspanInFooter","tableContentWidth","verticalAlign","onActiveChange","onActiveRowAction","onColumnResizeChange","onRowClick","onRowDblclick","onRowMousedown","onRowMouseenter","onRowMouseleave","onRowMouseover","onRowMouseup","onScrollX","onScrollY","getNodeDepth","depthMap","maxDepth","_col$children","getChildrenNodeWidth","countNew","childrenList","getThRowspanAndColspan","columnsDepth","rowspanAndColspanMap","leafColumns","_col$children2","rowspan","useClassName","tableBaseClass","columnResizableTable","overflowVisible","paginationWrap","tdLastRow","tdFirstCol","thCellInner","tableRowEdit","cellEditable","cellEditWrap","striped","emptyRow","headerFixed","columnFixed","widthOverflow","multipleHeader","footerAffixed","horizontalBarAffixed","affixedHeader","affixedHeaderElm","affixedFooterElm","affixedFooterWrap","scrollbarDivider","fullHeight","resizeLine","obviousScrollbar","affixedHeaderWrap","tdAlignClasses","tableHeaderClasses","thBordered","fixed","tableFooterClasses","tableAlignClasses","middle","tableRowFixedClasses","firstBottom","withoutBorderBottom","tableColFixedClasses","lastLeft","firstRight","leftShadow","rightShadow","tableLayoutClasses","tdEllipsisClass","tableFullRowClasses","base","innerFullRow","innerFullElement","tableExpandClasses","iconBox","iconCell","rowExpanded","rowFolded","rowInner","tableSortClasses","sortable","sortColumn","doubleIcon","iconDirection","asc","desc","iconActive","iconDefault","tableSelectedClasses","checkCell","tableFilterClasses","popupContent","bottomButtons","contentInner","iconWrap","asyncLoadingClass","isFocusClass","isLoadingClass","isLoadMoreClass","tableTreeClasses","inlineCol","leafNode","tableDraggableClasses","rowDraggable","rowHandlerDraggable","colDraggable","chosen","dragSortTh","virtualScrollClasses","positiveRotate90","negativeRotate180","TEllipsis","tooltipContent","flag","isOverflow","ellipsisClasses","innerEllipsisClassName","onMouseAround","cellNode","rProps","colIndex","useTableHeader","_useClassName","spansAndLeafNodes","thList","thRows","_children","thRowData","isMultipleHeader","renderTitleWidthIcon","ellipsisTitle","isEllipsis","ellipsisOverlayClassName","useColumnResize","originalSelectStart","originalDragStart","isWidthOverflow","tableContentRef","showColumnShadow","getThWidthList","updateThWidthList","setTableElmWidth","updateTableAfterColumnResize","resizeLineRef","effectColMap","hasDocument","onselectstart","ondragstart","getSiblingResizableCol","setEffectColMap","prevNode","nextNode","parentPrevCol","colKey","parentNextCol","prevSibling","nextSibling","resizeLineParams","draggingCol","draggingStart","effectCol","resizeLineStyle","isColRightFixActive","getMinMaxColWidth","targetCol","_targetCol$resize","_targetCol$resize2","propMinWidth","minColWidth","maxColWidth","getOtherResizeInfo","effectPrevCol","targetBoundRect","tableBoundRect","resizeLinePos","colLeft","_getMinMaxColWidth","minResizeLineLeft","maxResizeLineLeft","getNormalResizeInfo","getFixedToLeftResizeInfo","onColumnMouseover","_col$resizable","thRightCursor","thLeftCursor","isFixedToRight","prevEl","previousElementSibling","_effectColMap$value$c","_effectPrevCol$resiza","onColumnMousedown","_tableContentRef$valu","_effectColMap$value$c2","_effectColMap$value$c3","effectNextCol","colkey","_getMinMaxColWidth2","getFixedToRightResizeInfo","_effectColMap$value$c4","moveDistance","thWidthList","currentCol","currentSibling","newThWidthList","tmpCurrentCol","canResizeSiblingColWidth","isWidthAbnormal","_getMinMaxColWidth3","targetNextColWidth","getSiblingColCanResizable","tableWidth","getTotalTableWidth","columnsWidth","getColumnFixedStyles","rowAndColFixedPosition","fixedPos","thClasses","lastLeftFixedCol","firstRightFixedCol","useFixed","finalColumns","tableRef","isFixedHeader","tableElmRef","scrollbarWidth","virtualScrollHeaderPos","tableElmWidth","isFixedColumn","isFixedRightColumn","isFixedLeftColumn","columnResizable","_allowResizeColumnWid","notNeedThWidthList","getColumnMap","levelNodes","columnInfo","newColumnsMap","shadowLastScrollLeft","setFixedLeftPos","initialColumnMap","colInfo","lastColIndex","lastCol","lastColInfo","setFixedRightPos","_col$children3","updateRowAndColFixedPosition","tableContentElm","thead","trList","thLen","_obj$col","th","innerText","setFixedColPosition","tbody","tfoot","fixedTopRows","fixedBottomRows","_props$rowKey","rowId","thisRowInfo","lastRowId","lastRowInfo","defaultBottom","setFixedRowPosition","updateColumnFixedShadow","skipScrollLimit","isShowRight","isShowLeft","updateFixedStatus","_getColumnMap","colMapInfo","nextColMapInfo","lastColMapInfo","setIsLastOrFirstFixedCol","_fixedRows$value","updateFixedHeader","updateAffixPosition","_affixRef$paginationA","_affixRef$paginationA2","_affixRef$horizontalS","_affixRef$horizontalS2","_affixRef$headerTopAf","_affixRef$headerTopAf2","_affixRef$footerBotto","_affixRef$footerBotto2","paginationAffixRef","horizontalScrollAffixRef","headerTopAffixRef","footerBottomAffixRef","calculateThWidthList","widthMap","HTMLCollection","updateThWidthListHandler","_tableContentRef$valu2","_tableElmRef$value","reduceWidth","elmRect","updateTableWidth","_tableContentRef$valu3","preFinalColumns","finalColKeys","preColKeys","reduceKeys","rootThWidthList","oldTotalWidth","contentWidth","widthToReserve","refreshTable","scrollDiv","getScrollbarWidthWithCSS","isWatchResize","hasResizeObserver","_resizeObserver2","_props$onScrollX","_props$onScrollY","setUseFixedTableElmRef","addTableResizeObserver","tableElement","usePagination","innerPagination","isPaginateData","updateDataSourceAndPaginate","_pagination$value","_pagination$value2","_pagination$value3","_innerPagination$valu","_innerPagination$valu2","_props$pagination","_props$pagination$onC","_props$onPageChange","useAffix","affixHeaderRef","affixFooterRef","horizontalScrollbarRef","paginationRef","showAffixHeader","showAffixFooter","showAffixPagination","isMousedown","isMouseInScrollableArea","isAffixed","lastScrollLeft","onHorizontalScroll","toUpdateScrollElement","isAffixedBottomElementShow","elementRect","tableRect","headerHeight","updateAffixHeaderOrFooter","_affixFooterRef$value","headerRect","footerRect","footerHeight","horizontalScrollbarRect","pageRect","onDocumentScroll","onFootScroll","onHeaderScroll","horizontalScrollbarScroll","onTableContentScroll","onFootMouseEnter","onFootMouseLeave","onHeaderMouseEnter","onMouseEnterScrollableArea","onHeaderMouseLeave","onMouseLeaveScrollableArea","onScrollbarMouseEnter","onScrollbarMouseLeave","onTableContentMouseEnter","onTableContentMouseLeave","activatingTouchScrollListenerCleanups","setupElementTouchScrollListener","debounceOffScrollListener","onElementTouchScroll","onElementTouchStart","composedPath","removeElementTouchScrollListener","elementTouchScrollCleanups","removeHorizontalScrollListeners","addVerticalScrollListener","addHorizontalScrollListeners","setTableContentRef","tableContent","formatRowAttributes","attrList","attrItem","attrProperty","formatRowClassNames","rowClassNames","rowClassList","customClasses","rName","tClass","formatClassNames","getCurrentRowByKey","_columns$i","_columns$i2","getAffixProps","mainAffixProps","subAffixProps","getCellKey","rowValue","useRowspanAndColspan","skipSpansMap","onTrRowspanOrColspan","skipSpansValue","maxRowIndex","maxColIndex","cellKey","skipped","_skipSpansMap$value","colLen","updateSkipSpansMap","TABLE_PROPS","ROW_LISTENERS","renderCell","tCurrent","tPageSize","TrElement","dataLength","tableElm","trRef","trStyles","rowLength","virtualTranslateY","fixedBottom","firstFixedBottomRow","getRowFixedStyles","trAttributes","_trStyles$value","notifyVirtualSizeUpdate","_props$virtualConfig","renderEllipsisCell","cellParams","_trStyles$value2","columnVNodeList","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","virtualScrollParams","getTFootHeight","_tableElmRef$value$qu","_tableData$value","_tableBodyRef$value","_el$children","_params$top","_params$behavior","scrollBy","scrollColumnIntoView","thDom","fixedThDom","totalWidth","domRect","onTableFocus","onTableBlur","onInnerRowClick","_props2$onRowClick","_this$spansAndLeafNod","_this$allowResizeColu","_this$affixHeaderRef","_this$tableFootHeight","_this$tableFootHeight2","_affixHeaderHeight$va","_this$tableContentRef","defaultColWidth","renderColGroup","isAffixHeader","headProps","IEHeaderWrap","barWidth","affixHeaderHeight","_this$affixHeaderRef2","affixHeaderWrapHeight","headerOpacity","affixHeaderWrapHeightStyle","affixedLeftBorder","affixHeaderWithWrap","marginScrollbarWidth","affixedFooter","virtualStyle","tableBodyProps","getCustomLoadingText","primaryTableProps","columnController","columnControllerVisible","defaultColumnControllerVisible","displayColumns","defaultDisplayColumns","dragSortOptions","editableCellState","editableRowKeys","expandOnRowClick","expandedRow","expandedRowKeys","defaultExpandedRowKeys","filterRow","defaultFilterValue","indeterminateSelectedRowKeys","multipleSort","reserveSelectedRowOnPaginate","rowSelectionAllowUncheck","rowSelectionType","selectOnRowClick","selectedRowKeys","defaultSelectedRowKeys","showSortColumnBgColor","defaultSort","sortOnRowDraggable","onAsyncLoadingClick","onColumnChange","onColumnControllerVisibleChange","onDisplayColumnsChange","onExpandChange","onFilterChange","onRowEdit","onRowValidate","onSelectChange","onSortChange","ColumnCheckboxGroup","uniqueKey","allCheckedColumnKeys","allCheckedKeys","intersectionKeys","isCheckedAll","onCheckAllColumnsChange","changeParams","newKeys","handleCheckChange","getColumnKeys","useColumnController","SettingIcon","TdSettingIcon","dialogInstance","enabledColKeys","_columnController$val","tDisplayColumns","setTDisplayColumns","columnCheckboxKeys","checkboxGroupList","_columnController$val2","groupColumns","_columnController$val3","groupList","_column$children","oneItem","getOneColumnItem","len1","_groupList$j","getCheckboxGroupOptions","getCheckboxOptions","_columnController$val4","_props$onColumnChange","currentColumn","handleToggleColumnController","_columnController$val8","_columnController$val5","widthMode","displayType","columnControllerTopContent","columnControllerBottomContent","_columnController$val6","_columnController$val7","_props$onColumnContro","_props$onColumnContro2","renderColumnController","_props$columnControll","isColumnController","hideTriggerButton","buttonProps","isRowSelectedDisabled","selectColumn","getColumnDataByKey","_columns$i$children","getColumnIndexByKey","_columns$i$children2","getColumnsResetValue","resetValue","useRowSelect","currentPaginateData","selectedRowClassNames","tSelectedRowKeys","setTSelectedRowKeys","selectedRowDataMap","selectionType","_selectColumn$value","canSelectedRows","_selectColumn$value2","_selectColumn$value3","getRowSelectDisabledData","handleSelectChange","selectedRowIndex","isExisted","selectedRowData","currentRowKey","handleSelectAll","_selectedRowKeys$valu","reRowKey","canSelectedRowKeys","disabledSelectedRowKeys","allIds","_selectColumn$value4","disabledRowClass","selectedRowClass","showRowSelect","formatToRowSelectColumn","_p$row","_getRowSelectDisabled","selectBoxProps","_e$e","_props$indeterminateS","renderSelectCell","onInnerSelectRowClick","_getRowSelectDisabled2","selectedColIndex","handleRowSelectWithAreaSelection","validAreaSelection","areaSelectionKeys","toCheck","clearedKeys","newSelectedRowKeys","SorterButton","sortType","sortOrder","allowSortTypes","getSortIcon","activeClass","sortClassName","descending","onSortIconClick","tooltips","sortButton","_this$hideSortTips","cancelTips","useSorter","originalData","tSortInfo","setTSortInfo","tData","setTData","sorterFuncMap","getSorterFuncMap","innerSort","sortArray","sortMap","sortBy","sorter","handleDataSort","sortInfo","isEmptyArraySort","isEmptyObjectSort","formatedSort","sortResult","sortFunc","handleSortHeaderClick","getSingleNextSort","getMultipleNextSort","currentData","currentDataSource","getSortOrder","tmpSortInfo","tmpInnerSortInfo","_ret","isSortInfoSame","renderSortIcon","_sortMap$value$col$co","sorterButtonsProps","TableFilterController","tFilterValue","innerFilterValue","primaryTableElement","triggerElementRef","FilterIcon","TdFilterIcon","filterPopupVisible","renderComponent","filterComponentProps","isVueComponent","tProps","getFilterContent","_column$filter","_column$filter2","_column$filter3","_props$innerFilterVal","single","_column$filter$props","_column$filter4","_column$filter$props$","_column$filter$props2","confirmEvents","getBottomButtons","showConfirmAndReset","onFilterPopupVisibleChange","_props$onVisibleChang","_this$tFilterValue","defaultFilterIcon","isObjectTrue","isValueExist","isFilterValueExist","isArrayTrue","useFilter","primaryTableRef","isTableOverflowHidden","setTFilterValue","hasEmptyCondition","newFilterValue","getFilterResultContent","getAllColumns","_col$filter","_col$filter2","onInnerFilterChange","emitFilterChange","_column$filter$resetV","onResetAll","renderFilterIcon","_primaryTableRef$valu","renderFirstFilterRow","_props$data","filterContent","setFilterPrimaryTableRef","ownKeys","enumerableOnly","symbols","sym","getOwnPropertyDescriptor","_objectSpread2","getOwnPropertyDescriptors","defineProperties","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","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","drawerClassName","sizeDraggable","onSizeDragEnd","calcSizeRange","isSizeDragging","draggedSizeValue","handleMouseup","handleMousemove","_props$onSizeDragEnd","limit","_getSizeDraggable","allowSizeDraggable","limitMax","limitMin","moveSize","calcMoveSize","draggableLineStyles","isHorizontal","draggingStyles","enableDrag","_Drawer","destroyOnCloseVisible","styleTimer","closeDrawer","drawerEle","drawerClasses","defaultSize","wrapperStyles","wrapperClasses","_drawerEle$value","modeAndPlacement","footerStyle","justifyContent","handleEscKeydown","clearStyleEl","_styleEl$value","_styleEl$value$remove","_drawerEle$value2","_drawerEle$value2$foc","addStyleElToHead","createStyleEl","updateVisibleState","handleCloseBtnClick","handleWrapperClick","marginValueData","setProperty","removeProperty","headerContent","createDrawer","updateStyle","drawerOptions","_drawerOptions$value","DrawerComponent","drawerComponent","DrawerPlugin","$drawer","Drawer","props$4","counter","hideCounter","hidePrev","hideSkip","highlightPadding","onNextStepClick","onPrevStepClick","onSkip","scrollToParentVisibleArea","excludeStaticParent","overflowRegex","scrollToElm","winHeight","doc","getWindowSize","_Guide","LOCK_CLASS","overlayLayerRef","highlightLayerRef","referenceLayerRef","currentHighlightLayerElm","dialogWrapperRef","dialogTooltipRef","popupTooltipRef","stepsTotal","currentStepInfo","isPopup","getCurrentCrossProps","currentElmIsFixed","_currentStepInfo$valu","currentCustomHighlightContent","highlightContent","hWithParams","showCustomHighlightContent","newH","setHighlightLayerPosition","highlightLayer","isReference","_getRelativePosition","relativeElm","_getWindowScroll","_elm$getBoundingClien","elmTop","elmLeft","_relativeElm$getBound","relElmTop","relElmLeft","relativeElmPosition","getRelativePosition","_currentHighlightLaye","_highlightLayerRef$va","showPopupGuide","_popupTooltipRef$valu","_process","NODE_ENV","getTargetElm","destroyTooltipElm","_referenceLayerRef$va","destroyDialogTooltipElm","_dialogTooltipRef$val","_dialogWrapperRef$val","showGuide","handleSkip","_props2$onSkip","handlePrev","_props2$onPrevStepCli","handleNext","_props2$onNextStepCli","handleFinish","_props2$onFinish","initGuide","_highlightLayerRef$va2","_overlayLayerRef$valu","renderCounter","popupSlotCounter","popupDefaultCounter","renderAction","_getCurrentCrossProps","_getCurrentCrossProps2","_getCurrentCrossProps3","_props2$finishButtonP","buttonSize","renderTooltipBody","functionTitle","slotTitle","descBody","bodyRender","footerClasses","renderPopupGuide","_currentStepInfo$valu2","contentProps","innerClassName","stepOverlayClass","renderDialogGuide","dialogClasses","highlightClass","Guide","props$3","keyframes","_Notification","notificationRef","NotificationList","notificationList","notificationStyles","Notification","seed","showThemeNotification","hackOptions","attachEl","tmpInstance","notify","_notify$$","NotificationFunction","NotificationPlugin","$notify","props$2","_Popconfirm","innerPopupProps","renderTNodeDefault","Popconfirm","props$1","allowUploadDuplicateFile","autoUpload","beforeAllFilesUpload","beforeUpload","cancelUploadButton","dragContent","fileListDisplay","defaultFiles","formatRequest","formatResponse","headers","imageViewerProps","inputAttributes","isBatchUpload","mockProgressDuration","requestMethod","showImageFileName","showThumbnail","showUploadProgress","sizeLimit","triggerButtonProps","uploadAllFilesInOneRequest","uploadButton","uploadPastedFiles","useMockProgress","withCredentials","onCancelUpload","onDragenter","onFail","onOneFileFail","onOneFileSuccess","onPreview","onProgress","onSuccess","onWaitingUploadFilesChange","commonProps","toUploadFiles","displayFiles","sizeOverLimitMessage","onPasteFileChange","placeholderClass","NormalFile","TimeFilledIcon","TdTimeFilledIcon","uploadPrefix","renderProgress","renderFilePreviewAsInput","_props$abridgeName","inputTextClass","disabledClass","_displayFiles$","_displayFiles$0$respo","_files$","dragActive","_props$onDrop","_props$onDragFileChan","dragFiles","onDragFileChange","handleDragenter","_props$onDragenter","handleDragleave","_props$onDragleave","handleDragover","DraggerFile","triggerUpload","uploadFiles","cancelUpload","dragEvents","draggerFileRef","_displayFiles$value$","_file$response","raw","renderUploading","_locale$value$trigger","unActiveElement","_locale$value","fileInfo","uploadTime","_props$cancelUpload","_props$uploadFiles","renderMainPreview","_props$trigger","ImageCard","showTrigger","_displayFiles$value","renderMainContent","_props$onPreview","_props$onRemove","renderProgressFile","loadCard","renderFailFile","_locale$value2","_props$onRemove2","_displayFiles$value2","_locale$value3","customList","cardItemClasses","fileNameClassName","MultipleFlowList","FileExcelIcon","TdFileExcelIcon","FilePdfIcon","TdFilePdfIcon","FileWordIcon","TdFileWordIcon","FilePowerpointIcon","TdFilePowerpointIcon","FileIcon","TdFileIcon","VideoIcon","TdVideoIcon","currentPreviewFile","previewIndex","uploadText","innerDragEvents","getStatusMap","iconMap","waiting","textMap","renderStatus","_file$response2","_file$response3","_getStatusMap2","getFileThumbnailIcon","renderFileThumbnail","_props$onPreview2","renderFileList","_locale$value$file","_locale$value$file2","_locale$value$file3","_locale$value$file4","deleteNode","renderBatchActionCol","renderNormalActionCol","thumbnailNode","fileNameNode","returnFileSize","renderImageList","_getStatusMap","renderImgItem","_locale$value4","cardClassName","cancelUploadDisabled","hasCancelUploadTNode","uploadButtonDisabled","hasUploadButtonTNode","CustomFile","childrenNode","_props$childrenNode2","_props$childrenNode","handleBeforeUpload","sizePromise","sizeLimitObj","fileSize","units","isOverSizeLimit","XMLHttpRequest","currentFiles","uploadOneRequest","handleRequestMethodResponse","resultFiles","toFile","_response","_params$onResponseSuc","onResponseSuccess","_params$onResponseErr","onResponseError","_params$setXhrObject","xhrReq","timer1","timer2","_ref$method","_ref$withCredentials","_ref$headers","_ref$data","_ref$files","_ref$name","_ref$useMockProgress","_ref$mockProgressDura","innerFiles","xhr","requestData","fileField","formData","FormData","setRequestHeader","onerror","ontimeout","onprogress","_innerFiles$","realPercent","progressFiles","responseText","send","requestParams","requestHeaders","_params$onResponseErr2","onResponseProgress","_params$onResponseErr3","_params$onResponseSuc2","handleSuccess","setXhrObject","uploadedFiles","thisUploadFiles","failedFiles","one","tFiles","newFiles","tmpFile","updateUploadedFiles","formatToUploadFile","lastModified","useUpload","uploadValue","setUploadValue","_uploadValue$value","field","waitingUploadFiles","getDisplayFiles","updateFilesProgress","_props$onOneFileFail","_props$onProgress","_props$onOneFileSucce","getSizeLimitError","onFileChange","_props$onSelectChange","currentSelectedFiles","tmpFiles","sameNameFile","hasSameNameFile","lengthOverLimit","tmpFilesLenToBeAdded","allFileValidatePromise","formattedFiles","_params$beforeAllFile","sizeResult","customResult","_results","allFilesResult","others","fileValidateList","validateFile","_args$validateResult","_props$onValidate3","_props$onWaitingUploa","_props$onValidate4","_getFilesAndErrors","getError","sizeLimitErrors","beforeUploadErrorFiles","toFiles","oneFile","_oneFile$validateResu","_oneFile$validateResu2","getFilesAndErrors","tmpWaitingFiles","_props$onValidate5","handleNotAutoUpload","notUploadedFiles","_xhr$files$","_item$files$","_props$onSuccess","_props$onWaitingUploa2","_props$onFail","onInnerRemove","_p$e$stopPropagation","_p$e","_props$onWaitingUploa3","changePrams","_props$onWaitingUploa4","uploadFilePercent","operationUploadFiles","onNormalFileChange","_xhrReq$value","_props$onCancelUpload","_item$xhrReq","abort","_Upload","_useUpload","UploadIcon","TdUploadIcon","triggerUploadButtonText","_props2$triggerButton","_props2$triggerButton2","renderTrigger","commonDisplayFileProps","dragProps","uploadClasses","Upload","_ConfigProvider","ConfigProvider","use","tdesign","PKG_VERSION"],"mappings":"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B,EAAM,MAAAoS,OAAAhS,EAAA,IAC5B,CACO,OAAA5T,CACT,EC/Eam9K,GAAc,CACzBC,WAAY,cACZ,kBAAmB,iBAORC,GAA0B,wEAG1BC,GAA+B,CAC1C,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAMWC,GAAU,CACrB,MACA,MACA,MACA,MACA,OACA,OAMWC,GAAmB,CAC9BC,IAAK,OACLC,IAAK,OACLC,IAAK,OACLC,IAAK,QAMMC,GAAkE,CAC7EH,IAAK,CACH,CACE7vL,IAAK,IACLoX,IAAK,EACL3U,IAAK,IACLzE,KAAM,eAER,CACEgC,IAAK,IACLoX,IAAK,EACL3U,IAAK,IACLzE,KAAM,eAER,CACEgC,IAAK,IACLoX,IAAK,EACL3U,IAAK,IACLzE,KAAM,gBAGV+xL,IAAK,CACH,CACE/vL,IAAK,IACLoX,IAAK,EACL3U,IAAK,IACLzE,KAAM,eAER,CACEgC,IAAK,IACLoX,IAAK,EACL3U,IAAK,IACLzE,KAAM,eAER,CACEgC,IAAK,IACLoX,IAAK,EACL3U,IAAK,IACLzE,KAAM,gBAGV8xL,IAAK,CACH,CACE9vL,IAAK,IACLoX,IAAK,EACL3U,IAAK,IACLzE,KAAM,eAER,CACEgC,IAAK,IACLoX,IAAK,EACL3U,IAAK,IACLzE,KAAM,eAER,CACEgC,IAAK,IACLoX,IAAK,EACL3U,IAAK,IACLzE,KAAM,gBAGViyL,KAAM,CACJ,CACEjwL,IAAK,IACLoX,IAAK,EACL3U,IAAK,IACLzE,KAAM,eAER,CACEgC,IAAK,IACLoX,IAAK,EACL3U,IAAK,IACLzE,KAAM,eAER,CACEgC,IAAK,IACLoX,IAAK,EACL3U,IAAK,IACLzE,KAAM,eAER,CACEgC,IAAK,IACLoX,IAAK,EACL3U,IAAK,IACLzE,KAAM,gBAGVkyL,IAAK,CACH,CACElwL,IAAK,MACLhC,KAAM,QACN6iD,KAAM,IAGV+uI,IAAK,CACH,CACE5vL,IAAK,MACLhC,KAAM,QACN6iD,KAAM,KL7KNsvI,GAAgB,SAACC,EAAiCC,GAEtD,IADA,IAAI7vL,EAAS,GACJxF,EAAI,EAAGA,EAAIo1L,EAAWh3L,OAAQ4B,IACjCyf,GAAS21K,EAAWp1L,IACtBwF,GAAU4vL,EAAWp1L,GAErBwF,GAAW4vL,EAAWp1L,GAAcwF,OAGjC,OAAA,IAAIZ,OAAOY,EAAQ6vL,EAC5B,EAiJMC,IAhHE5E,GAAS,UAMbC,GAAS,kCAITC,GAASuE,GACP,CAAC,MAVa,+BAUK,IAAK,cATX,yCASoC,IAAK,gBAP7C,sDAOwE,IAHxE,qBAGuF,KAChG,IAEEtE,GAAasE,GAAc,CAACvE,GAAQ,UAAWD,GAAQ,UAAWA,GAAQ,QAAS,IAEvFG,GAAiBqE,GAAc,CAAC,MAAOtE,GAAYH,GAAQ,KAAMG,IAAa,IAE9EE,GAAeoE,GAAc,CAAC,OArBjB,0CAqBiC,KAnBrB,wEAmB+C,KAAM,IASzE,CACLI,eARkBJ,GAAc,CAAC,OAAQpE,GAAc,IAAKL,GAAQ,MAAOI,GAAgB,KAxBzE,MAiClB0E,gBAPmBL,GACjB,CAAC,QAASvE,GAAQ,IAAK,UAAW,IAAKD,GAAQ,MAAO,MAAOD,GAAQ,UA3BrD,QAqHhB+E,GAAe,8CAORC,GAAkB,SAACv+K,GAEvB,OADPs+K,GAAar/K,UAAY,EAClBq/K,GAAatxL,KAAKgT,EAC3B,EAGMw+K,GAAsB,CAC1B9qJ,IAAK,EACLG,MAAO,GACPD,OAAQ,IACRD,KAAM,IACN,WAAY,IACZ,WAAY,IACZ,YAAa,GACb,YAAa,GACb,cAAe,IACf,cAAe,IACf,eAAgB,IAChB,eAAgB,KAQL8qJ,GAAsB,SAACz+K,GAC5B,IAAAlK,EAAQyoL,GAAgBv+K,GAC9B,IAAKlK,EAAc,OAAA,EAEnB,IAAM4oL,EAAiC,CACrCC,OAAQ,GACRC,OAAQ,GAGJp0L,EA/Gc,SAACq0L,EAAsB7+K,GACvC,IAAAxV,EACAs0L,EACAC,EAGJF,EAAUT,eAAen/K,UAAY,EAErC,IAAM+/K,EAAgBH,EAAUT,eAAepxL,KAAKgT,GAChD,IAACwJ,GAAOw1K,GA2BH,IA1BEx0L,EAAA,CACPy0L,SAAUD,EAAc,GACxBE,cAAe,IAIbF,EAAc,KAEhBx0L,EAAOsnL,KAAOkN,EAAc,IAG1BA,EAAc,KAEhBx0L,EAAO20L,MAAQH,EAAc,IAG3BA,EAAc,KAEhBx0L,EAAO40L,WAAaJ,EAAc,IAIpCH,EAAUR,gBAAgBp/K,UAAY,EAGtC6/K,EAAiBD,EAAUR,gBAAgBrxL,KAAKgyL,EAAc,KACtDx1K,GAAOs1K,IACAC,EAAA,CACXrgJ,MAAOogJ,EAAe,IAIpBA,EAAe,KAEjBC,EAAWhmJ,SAAW+lJ,EAAe,IAEhCt0L,EAAA00L,cAAc9rL,KAAK2rL,GAG1BD,EAAiBD,EAAUR,gBAAgBrxL,KAAKgyL,EAAc,IAK3D,OAAAx0L,CACT,CAwDsC60L,CAAclB,GAAYroL,EAAM,IACpE,GAAItL,EAAOy0L,SAAS9yJ,SAAWr2B,EAAM,GAAGq2B,OAAe,OAAA,EAEjD,IAAAwyJ,EAA+Bn0L,EAAO00L,cAAcjqL,KACxD,SAAA23B,EAAsB5hC,EAAOF,GAAU,IAApC4zC,EAAA9R,EAAA8R,MAAO3F,EAASnM,EAATmM,SACF2gI,EAAexwK,OAAA+E,OAAO,MAC5ByrK,EAAMh7H,MAAQ4gJ,GAAU5gJ,GAAOu/D,cAE3B,IAAAtqE,EAAOsL,WAAWlG,GAMf,OALH/vC,OAAOquD,MAAM1jB,KACPA,EAAA3oC,GAASF,EAAM7D,OAAS,GAAM,KAGxCyyK,EAAM/lI,KAAOA,EACN+lI,CACT,IAEFglB,EAAeC,OAASA,EAExB,IAAIC,EAAS1yL,SAAS1B,EAAO20L,MAAO,IAQ7B,OAPHn2L,OAAOquD,MAAMunI,KAGNA,EAAAJ,GAAoBh0L,EAAO40L,aAAmD,KAEzFV,EAAeE,OAASA,EAEjBF,CACT,qkBMzMA,IAAMa,GAAYlvL,KAAKomB,MACjB+oK,GAAW,SAACC,GAAA,OAAqDH,GAAUG,GAAQ1jF,OAAM,EASlF2jF,GAAwB,SAAC9xL,GAC9B,IAAE+wL,EAAmB/wL,EAAnB+wL,OAAQC,EAAWhxL,EAAXgxL,OACVe,EAAahB,EAChB3/I,MAAK,SAAC4gJ,EAAIC,GAAO,OAAAD,EAAGjsJ,KAAOksJ,EAAGlsJ,IAAI,IAClC1+B,KAAI,SAACke,GAAA,MAAA,GAAAyS,OAASzS,EAAEurB,MAAS,KAAA9Y,OAAAv1B,KAAKomB,MAAe,IAATtD,EAAEwgB,MAAc,IAAM,IAAA,IAE7D,MAAA/N,mBAAAA,OAA0Bg5J,EAAAh5J,QAAAA,OAAa+5J,EAAWrnL,KAAK,KAAG,IAC5D,EAkBawnL,GAAmB,SAACnsJ,EAAc+K,EAAelQ,GAAqC,MAAA,CACjGA,GAAIA,IATsB,EAAoB,WAAhBn+B,KAAK2vG,UAAuBp4G,SAAS,IAUnE+rC,KAAAA,EACA+K,MAAAA,EACF,EAEaqhJ,GAAM,WAqBjB,OAAA9qJ,IAFA,SAAA8qJ,EAAY//K,GAAek1B,QAAA6qJ,GAAA92L,EAlBL4H,KAAA,SAAA,CACpBohB,EAAG,IACHU,EAAG,IACH/D,EAAG,IACH5nB,EAAG,IACLiC,EAAA4H,KAAA,mBAAA,GAAA5H,EAAA4H,KAAA,kBAAA,GAAA5H,EAMiC4H,KAAA,iBAAA,CAC/BmvL,OAAQ,GACRpB,OAAQ,EACRqB,WAAY,KACZzxH,IAAK,KAIL39D,KAAKmsE,OAAOh9D,EACd,GAAA,CAAA,CAAAnS,IAAA,SAAAzE,MAEA,SAAO4W,GAAe,IAAAq1B,EAAAxkC,KACpB,GAAImP,IAAUnP,KAAKqvL,YAAnB,CACM,IAAAxB,EAAiBD,GAAoBz+K,GAEvC,GAAAnP,KAAKsvL,aAAezB,EAAgB,CAOtC,IAAM0B,EAAWd,GAAUt/K,GAAO48F,QAGlC,OAFA/rG,KAAK4uL,OAASW,OACdvvL,KAAKwvL,4BAEP,CACAxvL,KAAKqvL,YAAclgL,EACnBnP,KAAKsvL,YAAa,EAClB,IAAIG,EAAatgL,EACjB,GAAI0+K,EAAgB,CAAA,IAAA6B,EAAAC,EAClB3vL,KAAKsvL,YAAa,EAClB,IAAMvyL,EAAS8wL,EACTC,EAAS/wL,EAAO+wL,OAAO1pL,KAAI,SAACid,EAAGlnB,GAAU,IAAAy1L,EAAA,OAAAX,GAAiB5tK,EAAEyhB,KAAMzhB,EAAEwsB,MAAkC+hJ,QAA3BA,EAAAprJ,EAAKqrJ,eAAeV,OAAOh1L,UAA3By1L,IAA2BA,OAA3BA,EAAAA,EAAmCjyJ,OACpH39B,KAAK6vL,eAAiB,CACpBV,OAAQrB,EACRC,OAAQhxL,EAAOgxL,OACfqB,WAAYpvL,KAAK6vL,eAAeT,qBAAcM,EAAA5B,EAAO,uBAAP4B,EAAW/xJ,KAAM,MAE5D39B,KAAA6vL,eAAelyH,IAAM39D,KAAK8vL,eAC/BL,EAAyC,QAAzCE,EAAa3vL,KAAK+vL,6BAAuB,IAAAJ,OAAA,EAA5BA,EAA4B9hJ,KAC3C,CAEA7tC,KAAKgwL,aAAaP,EA/Bc,CAgClC,GAAA,CAAAzyL,IAAA,aAAA6G,IAEA,WACE,OAAO7D,KAAK4uL,OAAOxtK,CACrB,EAAA5d,IAEA,SAAejL,GACRyH,KAAA4uL,OAAOxtK,EAAI5hB,KAAKC,IAAI,EAAGD,KAAK4U,IAAI,IAAK7b,IAC1CyH,KAAKwvL,4BACP,GAAA,CAAAxyL,IAAA,QAAA6G,IAEA,WACE,OAAO7D,KAAK4uL,OAAO9sK,CACrB,EAAAte,IAEA,SAAUjL,GACHyH,KAAA4uL,OAAO9sK,EAAItiB,KAAKC,IAAI,EAAGD,KAAK4U,IAAI,IAAK7b,IAC1CyH,KAAKwvL,4BACP,GAAA,CAAAxyL,IAAA,MAAA6G,IAEA,WACE,OAAO7D,KAAK4uL,OAAO7wK,CACrB,EAAAva,IAEA,SAAQjL,GACDyH,KAAA4uL,OAAO7wK,EAAIve,KAAKC,IAAI,EAAGD,KAAK4U,IAAI,IAAK7b,IAC1CyH,KAAKwvL,4BACP,GAAA,CAAAxyL,IAAA,QAAA6G,IAEA,WACE,OAAO7D,KAAK4uL,OAAOz4L,CACrB,EAAAqN,IAEA,SAAUjL,GACRyH,KAAK4uL,OAAOz4L,EAAIqJ,KAAKC,IAAI,EAAGD,KAAK4U,IAAI,EAAG5U,KAAKomB,MAAc,IAARrtB,GAAe,MAClEyH,KAAKwvL,4BACP,GAAA,CAAAxyL,IAAA,MAAA6G,IAEA,WACE,IAAAosL,EAAoBtB,GAAS3uL,KAAK4uL,QAA1B14L,EAAG+5L,EAAH/5L,EAAGysB,EAAAstK,EAAAttK,EAAGI,IAAAA,EACP,MAAA,OAAAgS,OAAO25J,GAAUx4L,SAAC6+B,OAAM25J,GAAU/rK,GAACoS,MAAAA,OAAM25J,GAAU3rK,GAAC,IAC7D,GAAA,CAAA/lB,IAAA,OAAA6G,IAEA,WACQ,IAAAqsL,EAEFvB,GAAS3uL,KAAK4uL,QADhB14L,EAAAg6L,EAAAh6L,EAAGysB,EAAAutK,EAAAvtK,EAAGI,EAAAmtK,EAAAntK,EAAG5sB,EAAA+5L,EAAA/5L,EAEJ,MAAA4+B,QAAAA,OAAQ25J,GAAUx4L,GAAC,MAAA6+B,OAAM25J,GAAU/rK,GAAC,MAAAoS,OAAM25J,GAAU3rK,GAAO,MAAAgS,OAAA5+B,EAAA,IACpE,GAAA,CAAA6G,IAAA,MAAA6G,IAEA,WACE,IAAAssL,EAAoBnwL,KAAKowL,UAAjBryK,EAAGoyK,EAAHpyK,EAAGqD,EAAA+uK,EAAA/uK,EAAGU,EAAEquK,EAAFruK,EACP,MAAAiT,OAAAA,OAAOhX,eAAMqD,EAAO,OAAA2T,OAAAjT,EAAA,KAC7B,GAAA,CAAA9kB,IAAA,OAAA6G,IAEA,WACQ,IAAAwsL,EAEFrwL,KAAKowL,UADPryK,EAAAsyK,EAAAtyK,EAAGqD,EAAAivK,EAAAjvK,EAAGU,EAAAuuK,EAAAvuK,EAAG3rB,EAAAk6L,EAAAl6L,EAEJ,MAAA,QAAA4+B,OAAQhX,EAAM,MAAAgX,OAAA3T,EAAA2T,OAAAA,OAAOjT,EAAOiT,OAAAA,OAAA5+B,EAAA,IACrC,GAAA,CAAA6G,IAAA,MAAA6G,IAEA,WACE,IAAAysL,EAAoBtwL,KAAKuwL,UAAjBxyK,EAAGuyK,EAAHvyK,EAAGqD,EAAAkvK,EAAAlvK,EAAGlF,EAAEo0K,EAAFp0K,EACP,MAAA6Y,OAAAA,OAAOhX,eAAMqD,EAAO,OAAA2T,OAAA7Y,EAAA,KAC7B,GAAA,CAAAlf,IAAA,OAAA6G,IAEA,WACQ,IAAA2sL,EAEFxwL,KAAKuwL,UADPxyK,EAAAyyK,EAAAzyK,EAAGqD,EAAAovK,EAAApvK,EAAGlF,EAAAs0K,EAAAt0K,EAAG/lB,EAAAq6L,EAAAr6L,EAEJ,MAAA,QAAA4+B,OAAQhX,EAAM,MAAAgX,OAAA3T,EAAA2T,OAAAA,OAAO7Y,EAAO6Y,OAAAA,OAAA5+B,EAAA,IACrC,GAAA,CAAA6G,IAAA,MAAA6G,IAEA,WACE,OAAO4qL,GAAUzuL,KAAK4uL,QAAQ7hF,aAChC,GAAA,CAAA/vG,IAAA,OAAA6G,IAEA,WACE,OAAO4qL,GAAUzuL,KAAK4uL,QAAQzhF,cAChC,GAAA,CAAAnwG,IAAA,OAAA6G,IAEA,WACQ,IAAA4sL,EAEFzwL,KAAK0wL,UADPrvK,EAAAovK,EAAApvK,EAAGQ,EAAA4uK,EAAA5uK,EAAGL,EAAAivK,EAAAjvK,EAAGiF,EAAAgqK,EAAAhqK,EAEJ,MAAA,QAAAsO,OAAQ1T,EAAM,MAAA0T,OAAAlT,EAAAkT,MAAAA,OAAMvT,EAAMuT,MAAAA,OAAAtO,EAAA,IACnC,GAAA,CAAAzpB,IAAA,MAAA6G,IAEA,WACE,OAAI7D,KAAKsvL,WACAtvL,KAAK8vL,eAEP9vL,KAAKioG,IACd,GAAA,CAAAjrG,IAAA,iBAAA6G,IAEA,WACQ,IAAEgqL,EAAmC7tL,KAAnC6tL,eAAgB8C,EAAmB3wL,KAAnB2wL,eACxB,OAAO9B,GAAsB,CAC3Bf,OAAQD,EACRE,OAAQ4C,GAEZ,GAAA,CAAA3zL,IAAA,iBAAA6G,IAEA,WACE,OAAO7D,KAAK6vL,eAAeV,MAC7B,EAAA3rL,IAEA,SAAmB2rL,GACjBnvL,KAAK6vL,eAAeV,OAASA,EACxBnvL,KAAA6vL,eAAelyH,IAAM39D,KAAK8vL,cACjC,GAAA,CAAA9yL,IAAA,qBAAA6G,IAEA,WACE,OAAO7D,KAAK6vL,eAAeT,UAC7B,EAAA5rL,IAEA,SAAuBm6B,GAAY,IAAAizJ,EAC7BjzJ,IAAO39B,KAAK6wL,qBAGhB7wL,KAAK6vL,eAAeT,WAAazxJ,EAC5B39B,KAAAgwL,aAAkB,QAAlBY,EAAa5wL,KAAK+vL,6BAAA,IAAAa,OAAA,EAALA,EAA4B/iJ,OAChD,GAAA,CAAA7wC,IAAA,iBAAA6G,IAEA,WACE,OAAO7D,KAAK6vL,eAAe9B,MAC7B,EAAAvqL,IAEA,SAAmBuqL,GACZ/tL,KAAA6vL,eAAe9B,OAASvuL,KAAKC,IAAI,EAAGD,KAAK4U,IAAI,IAAK25K,IAClD/tL,KAAA6vL,eAAelyH,IAAM39D,KAAK8vL,cACjC,GAAA,CAAA9yL,IAAA,wBAAA6G,IAEA,WACQ,IAAEgqL,EAAuC7tL,KAAvC6tL,eAAgBgD,EAAuB7wL,KAAvB6wL,mBACxB,OAAOhD,EAAel0H,MAAK,SAAC9rB,GAAU,OAAAA,EAAMlQ,KAAOkzJ,IACrD,GAAA,CAAA7zL,IAAA,qBAAAzE,MAEA,WACS,MAAA,CACLq0L,IAAK5sL,KAAKqqG,IACV4iF,KAAMjtL,KAAK8wL,KACXjE,IAAK7sL,KAAK4nG,IACVmpF,KAAM/wL,KAAKioG,KACX6kF,IAAK9sL,KAAKkoG,IACV8oF,KAAMhxL,KAAKmoG,KACX4kF,IAAK/sL,KAAKooG,IACV6oF,KAAMjxL,KAAKqoG,KACX6kF,IAAKltL,KAAK29D,IACVuzH,KAAMlxL,KAAKsoG,KAEf,GAAA,CAAAtrG,IAAA,oBAAAzE,MAEA,SAAkButB,EAAqB4lK,GACrC,GAAI1rL,KAAKsvL,WAAY,OAAOtvL,KAAK8vL,eACjC,IAAMqB,EACJzF,GAAe5lK,KAAU6mK,GACrBA,GAAiB7mK,GACjBA,EAEC,OAAA9lB,KAAKoxL,qBAAqBD,EACnC,GAAA,CAAAn0L,IAAA,6BAAAzE,MAEA,WACE,IAAQ+2L,EAAmDtvL,KAAnDsvL,WAAYzB,EAAuC7tL,KAAvC6tL,eAAgBgD,EAAuB7wL,KAAvB6wL,mBAC5Bz6L,EAAWy3L,EAAXz3L,OACF6iB,EAAUjZ,KAAK+vL,sBACrB,IAAKT,GAAyB,IAAXl5L,IAAiB6iB,EAC3B,OAAA,EAET,IAAM9e,EAAQ0zL,EAAerqD,WAAU,SAAC31F,GAAU,OAAAA,EAAMlQ,KAAOkzJ,KACzD9hF,EAAWt+D,GAAAA,MACZx3B,GAAA,GAAA,CACH40B,MAAO7tC,KAAKioG,OAIP,OAFQ4lF,EAAA9pL,OAAO5J,EAAO,EAAG40G,GAC3B/uG,KAAA6tL,eAAiBA,EAAe52L,QAC9B+I,IACT,GAAA,CAAAhD,IAAA,eAAAzE,MAEA,SAAa4W,GACX,IACMk5F,EADQomF,GAAUtC,GAAiBh9K,IACtB48F,QACnB/rG,KAAK4uL,OAASvmF,CAChB,GAAA,CAAArrG,IAAA,UAAAzE,MAEA,WACQ,IAAA84L,EAEF1C,GAAS3uL,KAAK4uL,QADhB14L,EAAAm7L,EAAAn7L,EAAGysB,EAAA0uK,EAAA1uK,EAAGI,EAAAsuK,EAAAtuK,EAAG5sB,EAAAk7L,EAAAl7L,EAEJ,MAAA,CACLD,EAAGw4L,GAAUx4L,GACbysB,EAAG+rK,GAAU/rK,GACbI,EAAG2rK,GAAU3rK,GACb5sB,EAAAA,EAEJ,GAAA,CAAA6G,IAAA,UAAAzE,MAEA,WACE,IAAA+4L,EAAoBtxL,KAAKuxL,UACnBC,EF1Uc,SAACv5E,EAAalE,EAAe9C,GACnD,IAAIwgF,EAAY,EACZC,EAAY,EACZC,EAAY,EAGVz7L,EAAImF,SAAS,GAAA05B,OAAGkjF,GAAMn9G,QAAQ,MAAO,IAAK,IAC1C6nB,EAAItnB,SAAS,GAAA05B,OAAGg/E,GAAQj5G,QAAQ,MAAO,IAAK,IAC5CioB,EAAI1nB,SAAS,GAAA05B,OAAGk8E,GAAOn2G,QAAQ,MAAO,IAAK,IAEjD,GAAU,IAAN5E,GAAiB,IAANysB,GAAiB,IAANI,EAExB,MAAO,CAAC,EAAG,EAAG,EAAG,GAGnB0uK,EAAY,EAAIv7L,EAAI,IACpBw7L,EAAY,EAAI/uK,EAAI,IACpBgvK,EAAY,EAAI5uK,EAAI,IAEd,IAAA6uK,EAASpyL,KAAK4U,IAAIq9K,EAAWjyL,KAAK4U,IAAIs9K,EAAWC,IAMvD,MAAO,CALMF,GAAAA,EAAYG,IAAW,EAAIA,GAC3BF,GAAAA,EAAYE,IAAW,EAAIA,GAC3BD,GAAAA,EAAYC,IAAW,EAAIA,GAC5BA,EAGd,CEgTyBC,CADVP,EAAHp7L,EAAGo7L,EAAA3uK,EAAK2uK,EAAFvuK,GACuB+uK,EAAA91K,GAAAw1K,EAAA,GAA9BnwK,OAAGQ,EAAGiwK,EAAA,GAAAtwK,EAAAswK,EAAA,GAAGrrK,EAACqrK,EAAA,GACV,MAAA,CACLzwK,EAAGqtK,GAAc,IAAJrtK,GACbQ,EAAG6sK,GAAc,IAAJ7sK,GACbL,EAAGktK,GAAc,IAAJltK,GACbiF,EAAGioK,GAAc,IAAJjoK,GAEjB,GAAA,CAAAzpB,IAAA,UAAAzE,MAEA,WACM,IAAAw5L,EAlT+DtD,GAoTtDzuL,KAAK4uL,QApTmE7iF,QAmTnFhuF,EAAAg0K,EAAAh0K,EAAGqD,EAAA2wK,EAAA3wK,EAAGU,EAAAiwK,EAAAjwK,EAAG3rB,EAAA47L,EAAA57L,EAMJ,MAAA,CACL4nB,EALFA,EAAI2wK,GAAU3wK,GAMZqD,EALEA,EAAAstK,GAAc,IAAJttK,GAMZU,EALEA,EAAA4sK,GAAc,IAAJ5sK,GAMZ3rB,EALGA,GAAA,EAOP,GAAA,CAAA6G,IAAA,UAAAzE,MAEA,WACM,IAAAy5L,EAjU+DvD,GAmUtDzuL,KAAK4uL,QAnUmEjkF,QAkUnF5sF,EAAAi0K,EAAAj0K,EAAGqD,EAAA4wK,EAAA5wK,EAAGlF,EAAA81K,EAAA91K,EAAG/lB,EAAA67L,EAAA77L,EAMJ,MAAA,CACL4nB,EALFA,EAAI2wK,GAAU3wK,GAMZqD,EALEA,EAAAstK,GAAc,IAAJttK,GAMZlF,EALEA,EAAAwyK,GAAc,IAAJxyK,GAMZ/lB,EALGA,GAAA,EAOP,GAAA,CAAA6G,IAAA,SAAAzE,MAOA,SAAOs1C,GACL,OAAO4gJ,GAAUz/E,OAAOhvG,KAAKioG,KAAMp6D,EACrC,IAAA,CAAA,CAAA7wC,IAAA,UAAAzE,MAOA,SAAes1C,GACT,QAAA+/I,GAAoB//I,IAGjB4gJ,GAAU5gJ,GAAO/oB,SAC1B,GAAA,CAAA9nB,IAAA,aAAAzE,MAEA,SAAkBwlB,EAAWqD,EAAWU,EAAW3rB,GACjD,OAAOs4L,GAAU,CACf1wK,EAAAA,EAAGqD,EAAAA,EAAGU,EAAAA,EAAG3rB,EAAAA,IACRy2G,aACL,GAAA,CAAA5vG,IAAA,aAAAzE,MAEA,SAAkBwlB,EAAWqD,EAAWlF,EAAW/lB,GACjD,OAAOs4L,GAAU,CACf1wK,EAAAA,EAAGqD,EAAAA,EAAGlF,EAAAA,EAAG/lB,EAAAA,IACR02G,aACL,GAAA,CAAA7vG,IAAA,aAAAzE,MAEA,SAAkBrC,EAAWysB,EAAWI,EAAW5sB,GACjD,OAAOs4L,GAAU,CACfv4L,EAAAA,EAAGysB,EAAAA,EAAGI,EAAAA,EAAG5sB,EAAAA,IACRy2G,aACL,GAAA,CAAA5vG,IAAA,YAAAzE,MAEA,SAAiB8xG,EAAal0G,GACtB,IAAA03C,EAAQ4gJ,GAAUpkF,GAExB,OADAx8D,EAAM8+D,SAASx2G,GACR03C,EAAMk/D,aACf,GAAA,CAAA/vG,IAAA,eAAAzE,MAQA,SAAoBwE,EAAa+oB,GAC/B,GAAe,SAAXA,EAAmB,CACf,IACJzE,EACEtkB,EADFskB,EAAGQ,EACD9kB,EADC8kB,EAAGL,EACJzkB,EADIykB,EAAGiF,EACP1pB,EADO0pB,EAEJ,MAAA,QAAAsO,OAAQ1T,EAAM,MAAA0T,OAAAlT,EAAAkT,MAAAA,OAAMvT,EAAMuT,MAAAA,OAAAtO,EAAA,IACnC,CAIA,OAHcgoK,GAAU1xL,EAAQ,CAC9B+oB,OAAAA,IAEWsnF,aACf,IAAA,CAxWiB,GAwYnB6kF,GAxYa/C,GAAM92L,EAAN82L,GA+Wc,mBAAA,SAAC//K,WAAoBu+K,GAAgBv+K,EAAK,IAAA+iL,EA/WxDhD,GAAM,WAuXA,SAACjgF,EAAgBC,GAC1B,IAAAijF,EAAmBjD,GAAMxB,gBAAgBz+E,GACzCmjF,EAAmBlD,GAAMxB,gBAAgBx+E,GAC/C,GAAIijF,GAAoBC,EAAkB,CAClC,IAAAC,EAAezE,GAAoB3+E,GACnCqjF,EAAe1E,GAAoB1+E,GACrC,SAACmjF,IAAiBC,IAECzD,GAAsBwD,KACtBxD,GAAsByD,EAE/C,CACI,OAACH,IAAqBC,GACjB3D,GAAUz/E,OAAOC,EAAQC,EAGpC,IAGF,IAAMqjF,GAA2B,CAC/B,QACA,MACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,aACA,QACA,cAQWC,GAAiB,SAAC3kJ,GAC7B,IAAKA,EACI,OAAA,KAEH,IAAA4kJ,EAAqBp6L,OAAA+E,OAAO,MAO3B,OANkBm1L,GAAA5iL,SAAQ,SAAC3S,GAChCy1L,EAAYz1L,GAAQ6wC,EAAiC7wC,EACvD,IACI6wC,EAAMyhJ,aACRmD,EAAY3C,eAAiBjiJ,EAAMiiJ,gBAE9B2C,CACT,o3BCleA,IAAMC,GAAkC,CACtC/yL,MAAO,SAACgzL,EAAwBr2J,GAA2B,EAC3D8/I,KAAM,SAACuW,EAAwBr2J,GAA2B,EAC1D31B,IAAK,SAACgsL,EAAwBr2J,GAA2B,GAC3Ds2J,OAAAC,QAEaC,GAAU,WAkBrB,OAAA1uJ,IATA,SAAA0uJ,EAAYxzJ,EAAiB/qB,GAA0B8vB,QAAAyuJ,GAAAC,QAAAH,IAAAx6L,mBARpC,GAAAA,EAAA4H,KAAA,WAAA,GAAA5H,EAAA4H,KAAA,aAAA,GAAA5H,EAAA4H,KAAA,eAAA,GASjBA,KAAKw5D,IAAMl6B,EACXt/B,KAAKb,MAAQsxC,GAAAA,GAAKiiJ,CAAAA,EAAAA,IAAoBn+K,GACtCvU,KAAKgzL,QAAU,CACbrzL,MAAOszL,GAAAL,GAAA5yL,KAAKkzL,IAAWvtI,KAAK3lD,MAC5Bo8K,KAAM6W,GAAAL,GAAA5yL,KAAKmzL,IAAMxtI,KAAK3lD,MACtB2G,IAAKssL,GAAAL,GAAA5yL,KAAKozL,IAASztI,KAAK3lD,OAE1BA,KAAKw5D,IAAIz6B,iBAAiB,YAAa/+B,KAAKgzL,QAAQrzL,OAAO,EAC7D,GAAA,CAAA,CAAA3C,IAAA,UAAAzE,MA0CA,WACEyH,KAAKw5D,IAAIr6B,oBAAoB,YAAan/B,KAAKgzL,QAAQrzL,OAAO,GAC9D+4B,OAAOyG,oBAAoB,YAAan/B,KAAKgzL,QAAQ5W,MAAM,GAC3D1jJ,OAAOyG,oBAAoB,UAAWn/B,KAAKgzL,QAAQrsL,KAAK,GACxD+xB,OAAOyG,oBAAoB,cAAen/B,KAAKgzL,QAAQrsL,KAAK,EAC9D,IAAA,CAjEqB,GAkEvB,SAAAusL,GA9Ca52J,GACLt8B,KAAKo/G,WAIT1mF,OAAOqG,iBAAiB,YAAa/+B,KAAKgzL,QAAQ5W,MAAM,GACxD1jJ,OAAOqG,iBAAiB,UAAW/+B,KAAKgzL,QAAQrsL,KAAK,GACrD+xB,OAAOqG,iBAAiB,cAAe/+B,KAAKgzL,QAAQrsL,KAAK,GACzD3G,KAAKo/G,UAAW,EAChBp/G,KAAKb,MAAMQ,MAAMszL,GAAAL,GAAA5yL,KAAKqzL,IAAer8L,KAApBgJ,KAAoBs8B,GAAQA,GAC/C,CAAA,SAAA62J,GAEM72J,GACCt8B,KAAKo/G,UAGVp/G,KAAKb,MAAMi9K,KAAK6W,GAAAL,GAAA5yL,KAAKqzL,IAAer8L,KAApBgJ,KAAoBs8B,GAAQA,EAC9C,CAAA,SAAA82J,GAES92J,GAAuB,IAAAkI,EAAAxkC,KAC9BsV,YAAW,WACTkvB,EAAK46E,UAAW,EAChB56E,EAAKrlC,MAAMwH,IAAIssL,GAAAL,GAAApuJ,EAAK6uJ,IAAer8L,KAApBwtC,EAAoBlI,GAAQA,KAC1C,GACH5D,OAAOyG,oBAAoB,YAAan/B,KAAKgzL,QAAQ5W,MAAM,GAC3D1jJ,OAAOyG,oBAAoB,UAAWn/B,KAAKgzL,QAAQrsL,KAAK,GACxD+xB,OAAOyG,oBAAoB,cAAen/B,KAAKgzL,QAAQrsL,KAAK,EAC9D,CAAA,SAAA0sL,GAEe/2J,GACP,IAAAoG,EAAO1iC,KAAKw5D,IAAI72B,wBAChBw2D,EAAa78D,EACbwG,EAAOq2D,EAAWrjB,QAAUpzC,EAAKI,KACjCD,EAAMs2D,EAAWpjB,QAAUrzC,EAAKG,IAC/B,MAAA,CACLrhB,EAAGhiB,KAAK4U,IAAI5U,KAAKC,IAAI,EAAGojC,GAAMH,EAAKsF,QACnC5kB,EAAG5jB,KAAK4U,IAAI5U,KAAKC,IAAI,EAAGqjC,GAAOJ,EAAKoF,OAExC,CCjFW,IAYAwrJ,GAAoB,SAACzlJ,EAAc7yC,GAC9C,MAAa,WAATA,EACK,CACL+xL,IAAKl/I,EAAMuiJ,UACXa,KAAMpjJ,EAAMuiJ,UACZtD,IAAKj/I,EAAM0iJ,UACXS,KAAMnjJ,EAAM0iJ,UACZ1D,IAAKh/I,EAAM0jJ,UACXR,KAAMljJ,EAAM0jJ,UACZtE,KAAMp/I,EAAM6iJ,UACZxD,IAAK,CACHvvH,IAAK9vB,EAAM8vB,KAEbivH,IAAK,CACHviF,IAAKx8D,EAAMw8D,KAEb6mF,KAAM,CACJ7mF,IAAKx8D,EAAMy6D,OAMVz6D,EAAMujJ,oBACf,EAcamC,GAAuB,WAG/B,IACCpC,EAHJrrK,EAAsB5nB,UAAA9H,OAAA,QAAAkD,IAAA4E,UAAA,GAAAA,UAAA,GAAA,MACtBwtL,EACGxtL,UAAA9H,OAAA8H,EAAAA,kBAAA5E,EAcH,GAPgB63L,EADZzF,GACYrzL,OAAO+D,KAAKuwL,IAAkBhzH,MAC1C,SAAC38D,GAAA,OAAQA,KAAO2vL,IAAoBA,GAAiB3vL,KAAmC8oB,CAC1F,KAEcA,GAGXknK,GAAoBmE,GAAkC,MAAO,GAElE,IAAMqC,EAAUn8L,EACV21L,GAAoBmE,IAenB,OAXHzF,GAA0B,SAAX5lK,GACjB0tK,EAAQjxL,KAAK,CACXvH,KAAM,cACNgC,IAAK,IACLoX,IAAK,EACL3U,IAAK,IACLqmB,OAAQ,SAACvtB,GAAA,MAAAw8B,GAAAA,OAAqBx8B,EAAA,IAAA,EAC9BslD,KAAM,OAIH21I,CACT,ECpFaC,GAAmB,SAAC/zJ,GACzB,IAAAg0J,EAAgB5+J,GARI,gBASnB,OAAA9d,EAAAA,UAAS,WAAA,OAAO0oB,EAAY,GAAA3K,OAAG2+J,EAAcn7L,MAASw8B,KAAAA,OAAA2K,GAAcg0J,EAAcn7L,QAC3F,qkBCN0B,SAAAwwJ,GAAA3nI,GAAA,MAAA,mBAAAA,GAAAu8B,oBAAAtlD,OAAAP,UAAAf,SAAAC,KAAAoqB,KAAAu8B,EAAAhhC,QAAAyE,EAAA,CAE1B,IAAAuyK,GAAenkJ,kBAAgB,CAC7Br4C,KAAM,cACNgI,MAAOsxC,GAAAA,MACFtxC,IAAA,CAAA,EAAA,CACHoiF,KAAM,CACJvmF,KAAM9C,OACN6uB,QAAS,SAEX6sK,YAAa,CACX54L,KAAMhC,UAER66L,aAAc,CACZ74L,KAAMhC,SACN+tB,QAAS,WACP,OAAO,WAAM,CACf,KAGJ0oB,MAAAA,SAAMtwC,GACJ,IAAQk1B,EAAiBN,GAAU,eAA3BM,aACFq/J,EAAgBD,KAChBK,EAAYhgK,EAAAA,IAAI30B,EAAMoiF,MACtBwyG,EAAmB,SAACjyK,GAAc3iB,OAAAA,EAAM00L,aAAa/xK,EAAC,EAK5D,OAJAga,EAAAA,OACE,WAAA,OAAM38B,EAAMoiF,IAAA,IACZ,SAACz/D,GAAO,OAAAgyK,EAAUv7L,MAAQupB,CAAA,IAErB,WAAM,IAAAwzJ,EAAA0e,EACP70L,OAA6B,KAAX,QAAlBA,EAAAA,EAAMssL,kBAAY,IAAAuI,OAAA,EAAlB70L,EAAkB/I,QACb,KAGPw6C,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OAAe2+J,EAAcn7L,MAC3B,WAAA,CAAAq4C,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OAAe2+J,EAAcn7L,qFACiCu7L,EAAUv7L,MAAA,sBAAA,SAAAqlI,GAAA,OAAVk2D,EAAUv7L,MAAAqlI,CAAA,EAAAtnG,SAAiBy9J,GAAAhrC,GAAAusB,EACpFj9K,OAAO+D,KAAKkwL,IAAaloL,KAAI,SAACpH,GAC7B,IAAAygD,EAAA,OAAA7M,EAAAA,YAAAu0H,GAAA,CAAAnoK,IAAmBA,EAAAzE,MAAYyE,GAAA+rJ,GAAAtrG,EAC5BsP,QAAQlpD,IAAIwwB,EAAa97B,MAAO+zL,GAAYtvL,KAAgCygD,EAAA,CAAA12B,QAAA,WAAA,MAAA,CAAA02B,EAAA,+CAQ7F,ICnDa4iF,GAAA,CAEb1qG,SAAUhV,QAEVktB,MAAO,CACL7yC,KAAM3C,QAERi+B,SAAU,CACRt7B,KAAMhC,SACN+tB,QAAS,WAAT,OAAe,WAAM,CAAC,ukBCH1B,IAAMktK,GAAwB,CAAC,SAAU,aAEzCC,GAAe1kJ,kBAAgB,CAC7Br4C,KAAM,iBACNw6C,cAAc,EACdxyC,MAAOsxC,GAAAA,MACF4vF,IAAA,CAAA,EAAA,CACHsrD,uBAAwB,CACtB3wL,KAAM2lB,QACNoG,SAAS,KAGb0oB,MAAAA,SAAMtwC,GACJ,IAAMu0L,EAAgBD,KAEhBU,EADan/J,KAAXQ,OACwBj9B,MAC1B67L,EAAYtgK,MAAiB,MAC7BugK,EAAargJ,EAAAA,SAAS,CAC1BlR,KAAM,EACNgF,MPwKuC,MOtKnC6zI,EAAa7nJ,OAAa,GAC1BwgK,EAAUxgK,OAAa,GACvBi6J,EAASj6J,EAAAA,IAAI30B,EAAM0uC,MAAM8iJ,gBACzBvB,EAAat7J,EAAAA,IAAI30B,EAAM0uC,MAAMgjJ,oBAC7B1B,EAASr7J,EAAAA,IAA0B/jB,GAAU5Q,EAAM0uC,MAAMggJ,iBAE/D/xJ,EAAAA,OACE,WAAA,OAAM38B,EAAM0uC,MAAM8iJ,cAAA,IAClB,SAACp4L,GAAW,OAAAw1L,EAAOx1L,MAAQA,CAAA,IAE7BujC,EAAAA,OACE,WAAA,OAAM38B,EAAM0uC,MAAMgjJ,kBAAA,IAClB,SAACt4L,GAAW,OAAA62L,EAAW72L,MAAQA,CAAA,IAEjCujC,EAAAA,OACE,WAAA,OAAM38B,EAAM0uC,MAAMggJ,cAClB,IAAA,SAACt1L,GACQ42L,EAAA52L,MAAQwX,GAAUxX,EAC3B,GACA,CACEujF,MAAM,IAIV,IAAM0tC,EAAe,SAACxsH,EAAyCu3L,EAAcC,GACvEr1L,EAAMw2B,UAGVx2B,EAAMm3B,SAAS,CACbt5B,IAAAA,EACAu3L,QAAAA,EACAC,aAAAA,KAIEC,EAAqB,SAACl8L,GACtB4G,EAAMw2B,UAAYp9B,IAAU4G,EAAM0uC,MAAM8iJ,iBAG5C5C,EAAOx1L,MAAQA,EACFixH,EAAA,SAAUjxH,GAAO,KAG1Bm8L,EAAyB,SAACn8L,GAC1B4G,EAAMw2B,WAGVy5J,EAAW72L,MAAQA,EACnBixH,EAAa,aAAcjxH,KAGvBo8L,EAAqB,SAACp8L,EAA6Bq8L,GACnDz1L,EAAMw2B,WAGVw5J,EAAO52L,MAAQA,EACFixH,EAAA,SAAUjxH,EAAOq8L,KA2C1BC,EAAa,SAACx+L,GAClB,GAAKslL,EAAWpjL,QAAS4G,EAAMw2B,SAA/B,CAGM,IAAAmN,EAAOzsC,EAAEy/E,QAAUu+G,EAAWvxJ,KACpCwxJ,EAAQ/7L,OAAQ,EAxCY,SAACuqC,GACvB,IAAA3oC,EAAQg1L,EAAO52L,MAAMirI,WAAU,SAACniH,GAAM,OAAAA,EAAEsc,KAAOyxJ,EAAW72L,SAChE,IAAkB,IAAd4B,EAAJ,CAGM,IAAA0uK,EAAQsmB,EAAO52L,MAAM4B,GAErB26L,GADChyJ,EAAAtjC,KAAKC,IAAI,EAAGD,KAAK4U,IAAIigL,EAAWvsJ,MAAOhF,KAClBuxJ,EAAWvsJ,MAAS,IACzCqnJ,EAAA52L,MAAMwL,OAAO5J,EAAO,EAAG,CAC5B0zC,MAAOg7H,EAAMh7H,MACb/K,KAAMgyJ,EACNn3J,GAAIkrI,EAAMlrI,KAEZg3J,EAAmBxF,EAAO52L,MAT1B,EAqCAw8L,CAAsBjyJ,EAHtB,GAOIkyJ,EAAY,WACXrZ,EAAWpjL,QAGhB+c,YAAW,WACTqmK,EAAWpjL,OAAQ,IAClB,GACC+7L,EAAQ/7L,QACSo8L,EAAAxF,EAAO52L,OAAO,GACjC+7L,EAAQ/7L,OAAQ,GAEXmgC,OAAAyG,oBAAoB,YAAa01J,GAAY,GAC7Cn8J,OAAAyG,oBAAoB,UAAW61J,GAAW,GAC1Ct8J,OAAAyG,oBAAoB,cAAe61J,GAAW,KAGjDC,EAAc,SAAC5+L,GACnB,IAAI8I,EAAMw2B,SAAV,CAGA,IAAMm4J,EAASqB,EAAO52L,MAClBovK,EAAMmmB,EAAOtqD,WAAU,SAACniH,UAAMA,EAAEsc,KAAOyxJ,EAAW72L,SAC9CnC,EAAW03L,EAAX13L,OAER,GAAI69L,GAAYp9K,SAASxgB,EAAE2G,IAAIk4L,sBAAwB9+L,EAAS,GAAKuxK,GAAO,GAAKA,GAAOvxK,EAAS,EAAG,CAC3F03L,EAAA/pL,OAAO4jK,EAAK,GACdmmB,EAAOnmB,KAEJA,EAAAmmB,EAAOnmB,EAAM,GAAKA,EAAM,EAAImmB,EAAOnmB,EAAM,GAAKA,EAAM,EAAI,GAEhE,IAAM1uJ,EAAU60K,EAAOnmB,GACvBgtB,EAAmB7G,GAAQ,GAC3B4G,EAAuBz7K,eAAAA,EAAS0kB,GAClC,CAdA,GAiBIw3J,EAAsB,SAAC9+L,GAC3B,IAAI8I,EAAMw2B,UAAax2B,EAAMwsL,uBAA7B,CAGI,IAAA7oJ,EAAOzsC,EAAEy/E,QAAUu+G,EAAWvxJ,KAE5BgyJ,GADChyJ,EAAAtjC,KAAKC,IAAI,EAAGD,KAAK4U,IAAIigL,EAAWvsJ,MAAOhF,KAClBuxJ,EAAWvsJ,MAAS,IAC1CstJ,EAAWnG,GAAiB6F,EAAa31L,EAAM0uC,MAAMo6D,MACpDknF,EAAA52L,MAAMgK,KAAK6yL,GACCT,EAAAxF,EAAO52L,OAAO,GACjCm8L,EAAuBU,EAASz3J,GAPhC,GAsBF,OAZAsG,EAAAA,WAAU,WACF,IAAAvB,EAAO0xJ,EAAU77L,MAAMoqC,wBAC7B0xJ,EAAWvxJ,KAAOJ,EAAKI,KACZuxJ,EAAAvsJ,MAAQpF,EAAKoF,OPKe,GOJzC,IAEA5D,EAAAA,iBAAgB,WACPxL,OAAAyG,oBAAoB,YAAa01J,GAAY,GAC7Cn8J,OAAAyG,oBAAoB,UAAW61J,GAAW,GAC1Ct8J,OAAAyG,oBAAoB,cAAe61J,GAAW,EACvD,IAEO,WACL,IAAAK,EAA2Cl2L,EAAM0uC,MAAzCiiJ,EAAAuF,EAAAvF,eAAgBjC,EAAewH,EAAfxH,eAClByH,EAAkBzG,GAAsB,CAC5Cf,OAAQD,EACRE,OAAQ,KAEV,OAAAn9I,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OACiB2+J,EAAcn7L,MAAA,eAAA,CAAAq4C,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OACZ2+J,EAAcn7L,MAAA,sBAAA,CAAAq4C,EAAAK,YAAA,MAAA,CAAAJ,MAElB,CAAA9b,GAAAA,OAAI2+J,EAAcn7L,MAAiBw8B,YAAAA,GAAAA,OAAG2+J,EAAcn7L,MAC3D,eAAA46F,QAAS8hG,EACT79I,SAAU,EACVtjB,IAAKsgK,GAEL,CAAAxjJ,EAAAK,YAAA,KAAA,CAAAJ,MAAA,kBAAA2F,QAEW2+I,QACF,CACLzkJ,WAAY4kJ,IAGbnG,CAAAA,EAAO52L,MAAM6L,KAAI,SAACtN,GACjB,IAAMgsC,YAAUtjC,KAAKomB,MAAe,IAAT9uB,EAAEgsC,MAAc,IAAA,KAEzC,OAAA8N,EAAAA,YAAA,KAAA,CAAAC,MACS,CAAA,GAAA9b,OACF2+J,EAAcn7L,MAAA,WACjB,wBACA62L,EAAW72L,QAAUzB,EAAE6mC,GAAKw2J,EAAiBp+J,OAAS,IACxD/4B,IACKlG,EAAE6mC,GAAApR,MAAAwI,GAAAA,OACGj+B,EAAE+2C,MAAS9Y,KAAAA,OAAA+N,GAAAyD,MACd,CACLsH,MAAO/2C,EAAE+2C,MACT/K,KAAAA,GACF0T,QACS,SAACngD,GAAA,OAAkBA,EAAEyhF,iBAAgB,EAAA2jB,YACjC,WAAA,OA/HX,SAAC99D,GACb,IAAA+E,EAAO0xJ,EAAU77L,MAAMoqC,wBAC7B0xJ,EAAWvxJ,KAAOJ,EAAKI,KACZuxJ,EAAAvsJ,MAAQpF,EAAKoF,OPkFe,IOjFnC6zI,EAAWpjL,OAAS4G,EAAMw2B,WAG9B2+J,EAAQ/7L,OAAQ,EAChBojL,EAAWpjL,OAAQ,EACnBm8L,EAAuB/2J,GAEvBy2J,EAAU77L,MAAMw2D,QACTr2B,OAAAqG,iBAAiB,YAAa81J,GAAY,GAC1Cn8J,OAAAqG,iBAAiB,UAAWi2J,GAAW,GACvCt8J,OAAAqG,iBAAiB,cAAei2J,GAAW,IAiHfO,CAAYz+L,EAAE6mC,GAEjC,GAAA,CAAAiT,EAAAK,YAAA,OAAA,CAAAJ,MAAa,CAAC,8BAAA,GAAA9b,OAAkC2+J,EAAcn7L,MAAA,gBAAoB,OAGvF,UACHq4C,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OAGW2+J,EAAcn7L,2CAAoCw1L,EAAOx1L,MAAA,QAAAq4C,CAAAA,EAAAK,YAAAukJ,GAAA,CAAA7xL,KAAA,QAAAouB,MAAA,SAAA3d,IAI/D,EACL3U,IAAK,IACLmb,KAAM,SACE,SAACriB,GAAkB,MAAAw8B,GAAAA,OAAGx8B,sBACrBw1L,EAAOx1L,MAChB,sBAAA,SAAAqlI,GAAA,OADSmwD,EAAOx1L,MAChBqlI,CAAA,EAAAhrC,OAAQ6hG,UACCA,EAAA9+J,SACCx2B,EAAMw2B,UAAA,QAAAib,EAAAA,YAAA,MAAA,CAAAC,MAGR,CAAA,GAAA9b,OAAI2+J,EAAcn7L,MAAA,sBAAA,GAAAw8B,OAA8B2+J,EAAcn7L,sBACxE,CAAAq4C,EAAAK,YAAA,OAAA,CAAAJ,MAAA,gBAAAtK,MAES,CACLmK,WAAYo/I,IACd,UAMZ,ICvQF2F,GAAejmJ,kBAAgB,CAC7Br4C,KAAM,kBACNgI,MAAOkhI,GACP5wF,MAAAA,SAAMtwC,GACJ,IAAMu0L,EAAgBD,KAChBiC,EAAW5hK,MAAiB,MAC5B6hK,EAAW7hK,MAAiB,MAC5B8hK,EAAe9hK,MAAe,MAC9B+hK,EAAY7hJ,EAAAA,SAAS,CACzBlM,MR+KwC,IQ9KxCE,OR+KyC,MQ5KrC1B,EAAStvB,EAAAA,UAAS,WACtB,IAAAq+K,EAA8Bl2L,EAAM0uC,MAA5BioJ,EAAAT,EAAAS,WAAYv9L,EAAM88L,EAAN98L,MACZuvC,EAAkB+tJ,EAAlB/tJ,MAAOE,EAAW6tJ,EAAX7tJ,OACTnF,EAAMrjC,KAAKomB,OAAO,EAAIrtB,GAASyvC,GAC/BlF,EAAOtjC,KAAKomB,MAAMkwK,EAAahuJ,GAC9B,MAAA,CACL+F,MAAO1uC,EAAM0uC,MAAM+5D,IACnB9kE,eAASA,EAAA,MACTD,cAAQA,EAAA,MAEZ,IAaMkzJ,EAAa,SAACpD,EAAwBiC,GAC1C,IAAIz1L,EAAMw2B,SAAV,CAGA,IAAAqgK,EAfwC,SAACrD,GACnC,IAAE7qJ,EAAkB+tJ,EAAlB/tJ,MAAOE,EAAW6tJ,EAAX7tJ,OACP5kB,EAASuvK,EAATvvK,EAAG5B,EAAMmxK,EAANnxK,EAGJ,MAAA,CACLs0K,WAHiBt2L,KAAKomB,MAAOxC,EAAI0kB,EAAS,KAI1CvvC,MAHYiH,KAAKomB,MAAyB,KAAlB,EAAIpE,EAAIwmB,KAWJiuJ,CAAkCtD,GAAxDmD,EAAAE,EAAAF,WAAYv9L,EAAMy9L,EAANz9L,MACpB4G,EAAMm3B,SAAS,CACbw/J,WAAYA,EAAa,IACzBv9L,MAAOA,EAAQ,IACfi8L,aAAcI,GALhB,GASIpY,EAAgB,SAACmW,GACjBxzL,EAAMw2B,UAGVga,EAAAA,UAAS,WACPomJ,EAAWpD,GAAY,EACzB,KAGIuD,EAAkBl/K,EAAAA,UAAS,WACxB,MAAA,OAAA+d,OAAO51B,EAAM0uC,MAAMw9D,IAAA,eAC5B,IAqBA,OAnBApnE,EAAAA,WAAU,WACE4xJ,EAAA/tJ,MAAQ4tJ,EAASn9L,MAAMwvC,aR0HO,IQzH9B8tJ,EAAA7tJ,OAAS0tJ,EAASn9L,MAAM0vC,cR0HO,IQzHzC2tJ,EAAar9L,MAAQ,IAAIu6L,GAAU4C,EAASn9L,MAAO,CACjDoH,MAAQ,WACIk2L,EAAA/tJ,MAAQ4tJ,EAASn9L,MAAMwvC,YACvB8tJ,EAAA7tJ,OAAS0tJ,EAASn9L,MAAM0vC,YACpC,EACAm0I,KAAM,SAACuW,GACLoD,EAAWpD,EACb,EACAhsL,IAAK61K,GAET,IAEAt4I,EAAAA,iBAAgB,WACd0xJ,EAAar9L,MAAM42D,SACrB,IAEO,WAEH,OAAAve,EAAAA,YAAA,MAAA,CAAAC,MACS,IAAA9b,OAAI2+J,EAAcn7L,MAAmB,iBAAAu7B,IACvC4hK,EAAAnvJ,MACE,CACLmK,WAAYwlJ,EAAgB39L,qCAIrB,IAAAw8B,OAAI2+J,EAAcn7L,MAAc,YAAAyyH,KAAA,SAAA5zE,SAE7B,MACLu+I,EAAApvJ,MACED,EAAO/tC,OAAA,QAKxB,ukBCtGF,IAAA49L,GAAe3mJ,kBAAgB,CAC7Br4C,KAAM,cACNgI,MAAOsxC,GAAAA,MACF4vF,IAAA,CAAA,EAAA,CACH3gG,UAAW,CACT1kC,KAAM9C,OACN6uB,QAAS,IAEXxuB,MAAO,CACLyC,KAAM7C,OACN4uB,QAAS,GAEXmjJ,SAAU,CACRlvK,KAAM7C,OACN4uB,QAAS,KAEXqvK,UAAW,CACTp7L,KAAM3C,QAER2C,KAAM,CACJA,KAAM9C,OACN6uB,QAAS,SAGb0oB,MAAAA,SAAMtwC,GACJ,IAAMu0L,EAAgBD,KAChBiC,EAAW5hK,MAAiB,MAC5B6hK,EAAW7hK,MAAiB,MAC5B8hK,EAAe9hK,MAAe,MAC9B+hK,EAAY7hJ,EAAAA,SAAS,CACzBlM,MT+J8B,MS7J1BxB,EAAStvB,EAAAA,UAAS,WAEtB,GADkB6+K,EAAV/tJ,MACR,CAGA,IAAMhF,EAAOtjC,KAAKomB,MAAOzmB,EAAM5G,MAAQ4G,EAAM+qK,SAAY,KAClD,MAAA,CACLpnI,eAASA,EAAA,KACT+K,MAAO1uC,EAAM0uC,MAAM+5D,IAJrB,CAMF,IAEMmuF,EAAa,SAACpD,EAAwBiC,GAC1C,IAAIz1L,EAAMw2B,SAAV,CAGM,IAAEmS,EAAU+tJ,EAAV/tJ,MACA1kB,EAAMuvK,EAANvvK,EACF7qB,EAAQiH,KAAKomB,MAAOxC,EAAI0kB,EAAS3oC,EAAM+qK,SAAW,KAAO,IACzD/qK,EAAAm3B,SAAS/9B,EAAOq8L,EAJtB,GAOIpY,EAAgB,SAACmW,GACjBxzL,EAAMw2B,UAGVogK,EAAWpD,GAAY,IAqBzB,OAlBA1uJ,EAAAA,WAAU,WACE4xJ,EAAA/tJ,MAAQ4tJ,EAASn9L,MAAMwvC,aT+HH,IS9H9B6tJ,EAAar9L,MAAQ,IAAIu6L,GAAU4C,EAASn9L,MAAO,CACjDoH,MAAO,WAEKk2L,EAAA/tJ,MAAQ4tJ,EAASn9L,MAAMwvC,WACnC,EACAq0I,KAAM,SAACuW,GACLoD,EAAWpD,EACb,EACAhsL,IAAK61K,GAET,IAEAt4I,EAAAA,iBAAgB,WACd0xJ,EAAar9L,MAAM42D,SACrB,IAEO,WACL,IAAMknI,EAAe,CACnB3lJ,mFAA6EvxC,EAAM0uC,MAAM+5D,IAAA,UAAA7yE,OAAY51B,EAAM0uC,MAAM+5D,IAAA,WAGjH,OAAAh3D,EAAAA,YAAA,MAAA,CAAAC,MACS,IAAA9b,OACF2+J,EAAcn7L,MAAAw8B,oBAAAA,GAAAA,OACd2+J,EAAcn7L,MAAA,sBAAAw8B,OAA0B51B,EAAMnE,KAAA,WACnD,CAEgB,UAAfmE,EAAMnE,MAAS41C,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OAA0B2+J,EAAcn7L,MAAyB,oBAAAguC,MAAO8vJ,GAAc,MAAAzlJ,EAAAK,YAAA,MAAA,CAAAJ,MAC1F,CAAA,GAAA9b,OAAI2+J,EAAcn7L,MAAiB4G,YAAAA,EAAMugC,WAAS5L,IAAQ4hK,GAAA,CAAA9kJ,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OACrD2+J,EAAcn7L,MAAe,UAAAguC,MAAOpnC,EAAMi3L,WAAW,MAAAxlJ,EAAAK,YAAA,OAAA,CAAAJ,MAE3D,IAAA9b,OAAI2+J,EAAcn7L,MAAc,YAAAyyH,KAAA,SAAA5zE,SAE7B,EACVtjB,IAAK6hK,EACLpvJ,MAAOD,EAAO/tC,OACf,UAKX,ICzGF+9L,GAAe9mJ,kBAAgB,CAC7Br4C,KAAM,YAENw6C,cAAc,EACdxyC,MAAOkhI,GACP5wF,MAAAA,SAAMtwC,GACJ,IAAMu0L,EAAgBD,KAEtB,OAAO,WAEH,OAAA7iJ,EAAAA,YAAAulJ,GAAA,CAAAtlJ,MAAA,GAAA9b,OACY2+J,EAAcn7L,MACxB,SAAAs1C,MAAO1uC,EAAM0uC,MACbt1C,MAAO4G,EAAM0uC,MAAMw9D,IAAA/0E,SACTn3B,EAAMm3B,SAAAX,SACNx2B,EAAMw2B,SAAA36B,KAAA,OAAA,MAKxB,ICpBFu7L,GAAe/mJ,kBAAgB,CAC7Br4C,KAAM,cACNw6C,cAAc,EACdxyC,MAAO,CACL0uC,MAAO,CACL7yC,KAAM3C,QAERs9B,SAAU,CACR36B,KAAM2lB,QACNoG,SAAS,GAEXuP,SAAU,CACRt7B,KAAMhC,SACN+tB,QAAS,WACP,OAAO,WAAM,CACf,IAGJ0oB,MAAAA,SAAMtwC,GACJ,IAAMu0L,EAAgBD,KAChBjqE,EAAe,SAAC1nG,EAAW00K,GACzBr3L,EAAAm3B,SAASxU,EAAI,IAAK00K,IAEpBJ,EAAYp/K,EAAAA,UAAS,WAClB,MAAA,CACL05B,0DAAA3b,OAA2D51B,EAAM0uC,MAAM+5D,IAAA,KAE3E,IAEA,OAAO,WACL,OAAAh3D,EAAAA,YAAAulJ,GAAA,CAAAtlJ,MAEW,CAAA9b,GAAAA,OAAI2+J,EAAcn7L,MAAgBw8B,WAAAA,GAAAA,OAAG2+J,EAAcn7L,MAC1D,eAAAs1C,MAAO1uC,EAAM0uC,MACbt1C,MAA2B,IAApB4G,EAAM0uC,MAAM4oJ,MAAQngK,SACjBkzF,EAAA,aACE4sE,EAAU79L,MACtB,YAAW,IACXo9B,SAAUx2B,EAAMw2B,SAAA36B,KAAA,SAAA,MAKxB,ICvCa07L,GAAA,CAEbvkG,WAAYxxE,QAEZyxE,UAAWzxE,QAEX8qK,WAAY,CACVzwL,KAAMzE,MACNwwB,QAAS,WAAA,MAAwC,CAAC,aAAc,kBAAiB,GAGnF4O,SAAU,CACR36B,KAAM2lB,QACNoG,aAAS,GAGX2kK,YAAa/qK,QAEbgrK,uBAAwB,CACtB3wL,KAAM2lB,QACNoG,SAAS,GAGXjB,OAAQ,CACN9qB,KAAM9C,OACN6uB,QAAS,MACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,MAAO,OAAQ,MAAO,OAAQ,MAAO,OAAQ,MAAO,OAAQ,OAAQ,OAAOvI,SAASuI,EAC9F,GAGFg9E,WAAY,CACVphG,KAAM3C,QAGRo1E,WAAY,CACVzyE,KAAM3C,QAGRuzL,aAAc,CACZ5wL,KAAMzE,MACNwwB,aAAS,GAGX8kK,oBAAqB,CACnB7wL,KAAMzE,MACNwwB,QAAS,WAAT,MAA0D,EAAC,GAG7D0mG,iBAAkB,CAChBzyH,KAAM3C,QAGRyzL,wBAAyB,CACvB9wL,KAAM2lB,QACNoG,SAAS,GAGXpjB,KAAM,CACJ3I,KAAM9C,OACN6uB,QAAS,SACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,QAAS,SAAU,SAASvI,SAASuI,EAC/C,GAGF2sK,aAAc,CACZ/wL,KAAMzE,MACNwwB,aAAS,GAGXxuB,MAAO,CACLyC,KAAM9C,OACN6uB,aAAS,GAEXyiB,WAAY,CACVxuC,KAAM9C,OACN6uB,aAAS,GAGXrhB,aAAc,CACZ1K,KAAM9C,OACN6uB,QAAS,IAGXuP,SAAUt9B,SAEV65F,QAAS75F,SAETgzL,mBAAoBhzL,SAEpBizL,qBAAsBjzL,6kBC/FxB,IAAA29L,GAAennJ,kBAAgB,CAC7Br4C,KAAM,eACNw6C,cAAc,EACdxyC,MAAOsxC,GAAAA,MACFtxC,IAAA,CAAA,EAAA,CACH0uC,MAAO,CACL7yC,KAAM3C,QAER8uG,cAAe,CACbnsG,KAAMhC,SACN+tB,QAAS,WACP,OAAO,WAAM,CACf,KAGJ0oB,MAAAA,SAAMtwC,GACE,IAAAqqC,EAAawK,WAAc,CAAA,GAC3B4iJ,EAAiB5iJ,WAAc,CAAA,GAG/B6iJ,EAAmB,WACjB,IAAE/wK,EAAkB3mB,EAAlB2mB,OAAQ+nB,EAAU1uC,EAAV0uC,MAChB,GAAKA,EAAL,CACA,IAAMjoC,EAAS0tL,GAAkBzlJ,EAAO,UAAU/nB,GAElDlgB,EAAOzP,EAAIqJ,KAAKomB,MAAoB,IAAdioB,EAAM4oJ,OAC5Bp+L,OAAO+D,KAAKwJ,GAAQ+J,SAAQ,SAAC3S,GAE3BwsC,EAAWxsC,GAAO4I,EAAO5I,GAEzB45L,EAAe55L,GAAO4I,EAAO5I,EAC/B,GATY,GAYG65L,IACX,IAAAC,EAAiBx7K,GAASu7K,EAAkB,KAElD/6J,EAAAA,OAAM,WACJ,IAAAi7J,EAA0C53L,EAAM0uC,MAChD,MAAO,CADakpJ,EAAZjB,WAAYiB,EAAA1rF,IAAY0rF,EAAPx+L,MAAOw+L,EAAAN,MACOt3L,EAAM2mB,UAC5CgxK,GAEG,IAAAttE,EAAe,SAACxsH,EAAa8kB,GACjC,GAAIA,IAAM80K,EAAe55L,GAAzB,CAEY,MAARA,EAGFmC,EAAM0uC,MAAM4oJ,MAAS30K,EAAe,IACnB,QAAR9kB,GAAyB,QAARA,EAE1BmC,EAAM0uC,MAAMs+B,OAAOrqD,GAGnB3iB,EAAM0uC,MAAMs+B,OAAO+iH,GAAM8H,aAAaxtJ,EAAYrqC,EAAM2mB,SAG1D,IAAMvtB,EAAQ+6L,GAAkBn0L,EAAM0uC,MAAO,UAAU1uC,EAAM2mB,QAC7D3mB,EAAMgoG,cAAc5uG,EAAO4G,EAAM0uC,MAAM4oJ,MAAOz5L,EAAK8kB,EAfpB,GAkBjC,OAAO,WACL,IAAMs6E,EAAa3rD,GACZtxC,CAAAA,EAAAA,EAAMi9F,YAAsB,CAAA,GAEnC,OAAAxrD,EAAAA,YAAA,MAAA,CAAAC,MAAA,eAAA,CAEK0iJ,GAAqBp0L,EAAM2mB,OAAQ3mB,EAAMusL,aAAatnL,KAAI,SAACywC,GAC1D,OAAAjE,EAAAA,YAAA,MAAA,CAAAC,MAAA,oBAAA7zC,IAGS63C,EAAO73C,UACL,CACL6gD,KAAMhJ,EAAOgJ,MAAQ,IACvB,CAEiB,UAAhBhJ,EAAO75C,KAAS41C,EAAAA,YAAA01D,GAAA7yD,EAAAqgC,WAETsoB,EAAA,CAAA3/C,MAAA,SAAA94C,KAAA,QAAAgyB,SAGMx2B,EAAMw2B,oBACP6T,EAAWqL,EAAO73C,KAC3B,sBAAA,SAAA4gI,GAAA,OADSp0F,EAAWqL,EAAO73C,KAC3B4gI,CAAA,EAAArrC,UAA4B,QAAjBpzF,EAAM2mB,OAAmB,OAAI,EACxCyG,MAAOid,EAAWqL,EAAO73C,KAAA41F,OACjB,SAAC9wE,GAAA,OAAc0nG,EAAa30E,EAAO73C,IAAK8kB,EAChD,EAAA0sE,QAAS,SAAC1sE,GAAc,OAAA0nG,EAAa30E,EAAO73C,IAAK8kB,0CAI7Cs6E,EACJ,CAAA3/C,MAAA,SAAA94C,KAAA,QAAAgyB,SAEUx2B,EAAMw2B,SAAA6T,WACPA,EAAWqL,EAAO73C,8CAAlBwsC,EAAWqL,EAAO73C,cACpBwsC,EAAWqL,EAAO73C,KACzBoX,IAAKygC,EAAOzgC,IACZ3U,IAAKo1C,EAAOp1C,IACZmb,KAAM,SACEi6B,EAAO/uB,6BAEP,SAAChE,GAAA,OAAc0nG,EAAa30E,EAAO73C,IAAK8kB,EAChD,EAAA0sE,QAAS,SAAC1sE,GAAc,OAAA0nG,EAAa30E,EAAO73C,IAAK8kB,EACnD,IAAA,OAIP,MAIT,ukBC7GF,IAAAm1K,GAAeznJ,kBAAgB,CAC7Br4C,KAAM,cACNw6C,cAAc,EACdxyC,MAAOsxC,GAAAA,MACFtxC,IAAA,CAAA,EAAA,CACH0uC,MAAO,CACL7yC,KAAM3C,QAER8uG,cAAe,CACbnsG,KAAMhC,SACN+tB,QAAS,WACP,OAAO,WAAM,CACf,KAGJ0oB,MAAAA,SAAMtwC,GACJ,IAAMu0L,EAAgBD,KAChByD,EAAcpjK,EAAAA,IAAkC30B,EAAM2mB,QAE5DgW,EAAAA,OACE,WAAA,MAAM,CAAC38B,EAAM2mB,WACb,WAAA,OAAOoxK,EAAY3+L,MAAQ4G,EAAM2mB,MAAA,IAO7B,IAAAiuK,EAAmB,SAACjyK,GACxBo1K,EAAY3+L,MAAQupB,GAGtB,OAAO,WAAM,IAAA27B,EAnCgBr8B,EX2CKsqK,EWP1ByL,EAAW1mJ,GAAAA,MACZtxC,GAAAA,GAAAA,CACH2mB,OAAQoxK,EAAY3+L,QAEhBk1H,EAAmBh9E,GAClBtxC,CAAAA,EAAAA,EAAMsuH,kBAA+B,CAAA,GAE5C,OAAA78E,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OACiB2+J,EAAcn7L,MAAA,aAAA,CAAAq4C,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OACZ2+J,EAAcn7L,MAAA,mBAAAq4C,CAAAA,EAAAK,YAAA6uG,GAAA,CAAAn8I,KAAA,QAAAktC,MAAA,GAAA9b,OAGf2+J,EAAcn7L,MACxB,wBAAAk1H,iBAAAh9E,MAAuBg9E,GAAAhgD,WAAAh9B,GAAA,CAErBm9B,iBAAA74C,GAAAA,OAAqB2+J,EAAcn7L,MAAA,qBAC/Bk1H,EAAwChgD,YAAAjkC,WAErC0tJ,EAAY3+L,MAAA,sBAAA,SAAAqlI,GAAA,OAAZs5D,EAAY3+L,MAAAqlI,CAAA,EAAAtnG,SACXy9J,IAvDS3yK,EAuDTq8B,GXZciuI,EWcDvsL,EAAMusL,YXbzCA,EACIgB,GAAQtoL,KAAI,SAAC4Y,GAAA,OAAUA,KAAQ2vK,GAAmBA,GAAiB3vK,GAAkCA,CAAK,IAC1G0vK,IWWkDtoL,KAAI,SAAC4Y,gCAC/BA,EAAAzkB,MAAaykB,EAAA+mC,MAAa/mC,EAAAupB,MAAa,CAAE2J,SAAU,SAAU,SA1D1D,mBAAA9uB,GAAAu8B,oBAAAtlD,OAAAP,UAAAf,SAAAC,KAAAoqB,KAAAu8B,EAAAhhC,QAAAyE,GA4DrBq8B,EAAA,CAAA12B,QAAA,WAAA,MAAA,CAAA02B,EAAA,OAAA7M,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OAEa2+J,EAAcn7L,2CACT4+L,EAAU,UAKtC,ukBCjEF,IAAAC,GAAe5nJ,kBAAgB,CAC7Br4C,KAAM,gBACNgI,MAAOsxC,GAAAA,MACF4vF,IAAA,CAAA,EAAA,CACH8uD,OAAQ,CACNn0L,KAAMzE,MACNwwB,QAAS,WAAT,MAAe,EAAC,GAElBwF,MAAO,CACLvxB,KAAM9C,OACN6uB,QAAS,4BAEXswK,SAAU,CACRr8L,KAAM2lB,QACNoG,SAAS,GAEXuwK,WAAY,CACVt8L,KAAMhC,SACN+tB,QAAS,WACP,OAAO,WAAM,CACf,GAEFwwK,eAAgB,CACdv8L,KAAMhC,SACN+tB,QAAS,WACP,OAAO,WAAM,CACf,KAGJ0oB,MAAAA,SAAMtwC,GACJ,IAAMu0L,EAAgBD,KAChB58H,EAA0B59B,GAAc,CAAEu+J,WAAYC,GAAc7yG,QAASC,KAA3E2yG,EAAY3gI,EAAZ2gI,WAAY5yG,EAAA/tB,EAAA+tB,QAEduvG,EADan/J,KAAXQ,OACwBj9B,MAC1Bm/L,EAAoB5jK,OAAa,GAOjC6jK,EAAsB,SAAC9pJ,GAC3B,OAAOqhJ,GAAM0I,QAAQ/pJ,EAAO1uC,EAAM0uC,MAAM8vB,MAGpCk6H,EAAqB7gL,EAAAA,UAAS,WAClC,OAAO7X,EAAMgwL,OAAO3rD,WAAU,SAAC31F,GAAU,OAAA8pJ,EAAoB9pJ,KAC/D,IAKMiqJ,EAAoB,WAClB,IAlBsB5hK,EAkBpBi5J,EAAWhwL,EAAXgwL,OACF4I,EAAgBF,EAAmBt/L,OACnB,IAAlBw/L,IACG5I,EAAAprL,OAAOg0L,EAAe,GAC7B54L,EAAMm3B,SAAS64J,GAtBaj5J,GAuBP,EAtBrBwhK,EAAkBn/L,MAAQ29B,IAyB5B,OAAO,WACC,IAAA8hK,EAAAjjK,GAAAA,OAAmB2+J,EAAcn7L,MAAA,cAsBrC,OAAAq4C,EAAAA,YAAA,MAAA,CAAAC,MAAYmnJ,GAAA,CAAApnJ,EAAAK,YAAA,KAAA,CAAAJ,MAAA9b,GAAAA,OACIijK,EAAA,YAAApnJ,CAAAA,EAAAK,YACL9xC,OAAAA,KAAAA,CAAAA,EAAMotB,QArBZptB,EAAMk4L,SAKTzmJ,EAAAA,YAAA,MAAA,CAAAC,MAAA9b,GAAAA,OAAeijK,EAAA,cAAA,CAAApnJ,EAAAK,YAAA,OAAA,CAAA+5E,KAAA,SAAAn6E,MAAA,GAAA9b,OACiB2+J,EAAcn7L,MAAA,UAAAi+C,QAAwB,WAAA,OAAMr3C,EAAMo4L,gBAAe,GAAA,CAAA3mJ,EAAAA,YAAAg0C,EAAA,KAAA,QAG9FzlF,EAAMgwL,OAAO/4L,OAAS,EAAAw6C,EAAAA,YAAA,OAAA,CAAAo6E,KAAA,SAAAn6E,MAAA,GAAA9b,OACS2+J,EAAcn7L,MAAe,UAAAi+C,QAAS,WAAA,OAAMshJ,GAAkB,GAAA,CAAAlnJ,EAAAA,YAAA4mJ,EAAA,KAAA,QAG1F,OAZC,OAqBU5mJ,EAAAA,YAAA,KAAA,CAAAC,MAEN,CAAA9b,GAAAA,OAAIijK,aAAwB,qBACpC74L,CAAAA,EAAMgwL,OAAO/qL,KAAI,SAACypC,GAEf,OAAA+C,EAAAA,YAAA,KAAA,CAAAC,MACS,IAAA9b,OACFijK,EACHL,UAAAA,EAAoB9pJ,IAAU1uC,EAAMk4L,SAAWlD,EAAiBp+J,OAAS,UAEpE8X,EAAA7wC,IACF6wC,EAAA2I,QACI,WACHr3C,EAAMw2B,UA7DN,SAACkY,GAAkB1uC,EAAMm4L,WAAWzpJ,EAAK,CAgE7CuO,CAAYvO,EACd,+BAEY,CAAA,GAAA9Y,OAAIijK,gBAAwBjjK,OAAG2+J,EAAcn7L,MAAA,uDAE3Cy/L,mBACH,CACLtnJ,WAAY7C,IAEf,SAIT,QAKV,ukBCzGF,IAAAoqJ,GAAezoJ,kBAAgB,CAC7Br4C,KAAM,aACNgI,MAAOsxC,GAAAA,MACFtxC,IAAA,CAAA,EAAA,CACHy0L,YAAa,CACX54L,KAAMhC,YAGVy2C,MAAAA,SAAMtwC,GACJ,IAAMu0L,EAAgBD,KACdj+J,EAAWR,KAAXQ,OACR2+C,EAA4BpgD,GAAU,eAA9Bj9B,EAAAq9E,EAAAr9E,EAAGu9B,EAAa8/C,EAAb9/C,aACL8/J,EAAmB3+J,EAAOj9B,MAChCq4E,EAAwDv9B,SAAOl0C,GAAhD21F,EAAAlkB,EAAPr4E,MAAmBixC,IAAAA,WAAYoiJ,EAAah7G,EAAbg7G,aACiE/6G,EAAA70D,GAApEutB,GAAUurD,EAAYtrD,EAAYrqC,EAAMuG,aAAcvG,EAAMm3B,UAAQ,GAAjGi/D,EAAY1kB,EAAA,GAAA2kB,EAAa3kB,EAAA,GAMhCgR,EAAA7lE,GALkDqa,GAChDu1J,EACAzsL,EAAM0sL,oBACN1sL,EAAM8sL,qBACN,gBACF,GALOiM,EAAmBr2G,EAAA,GAAAs2G,EAAoBt2G,EAAA,GAOxCu2G,EAAiB,SAACjpL,GAClBhQ,OAA4B,IAA5BA,EAAMssL,WAAWr1L,OAAqB+I,EAAMssL,WAAW,GACpDtsL,EAAMssL,WAAW50K,SAAS,oBAAsBq4K,GAAMxB,gBAAgBv+K,GACzE,kBACA,cAEAoyE,EAAOztD,EAAAA,IAAkBskK,EAAe7iG,EAAWh9F,QAEnD+2L,EAAat4K,EAAAA,UAAS,WAAA,MAAqB,oBAAfuqE,EAAKhpF,SACjC8/L,EAAoBrhL,EAAAA,UAAS,WAAA,OAAOs4K,EAAW/2L,MAAQi0L,GhBzCpC,agB2CnB3+I,EAAQ/Z,MAAI,IAAIo7J,GAAM35F,EAAWh9F,OAAS8/L,EAAkB9/L,QAE5D2+L,EAAcpjK,EAAkCA,IbpD3B,SAAChO,EAAqB4lK,GAC/C,OAAAA,GAAe5lK,KAAU6mK,IACpB7mK,KAAU6mK,GAAmBA,GAAiB7mK,GAEhDA,CACT,Ca+C0DwyK,CAAgBn5L,EAAM2mB,OAAQ3mB,EAAMusL,cAMpF6M,EAAuB,WAC3B,GAAgC,OAA5BL,EAAkB3/L,QAA8C,IAA5B2/L,EAAkB3/L,MAA1D,CAGA,IAAM42L,EAASp/K,GAAUmoL,EAAkB3/L,QAAsB,GAC3DigM,EAAe3qJ,EAAMt1C,MAAM+2L,WAAazhJ,EAAMt1C,MAAMu3L,eAAiBjiJ,EAAMt1C,MAAM0vG,KACjF9tG,EAAQg1L,EAAOp0J,QAAQy9J,GACzBr+L,GAAY,GACPg1L,EAAAprL,OAAO5J,EAAO,GAEvBg1L,EAAOrhJ,QAAQ0qJ,GACXrJ,EAAO/4L,OhBvE4B,MgBwErC+4L,EAAO/4L,OhBxE8B,KgB0EvCqiM,EAA+BtJ,EAX/B,GAkBIsJ,EAAiC,SAACtJ,GACtCgJ,EAAqBhJ,IAOjBuJ,EAAkB,SAACrqI,GACvB,IAAM91D,EAAQs1C,EAAMt1C,MAAMogM,kBAAkBx5L,EAAM2mB,OAAQ3mB,EAAMusL,aAChEl2F,EAAcj9F,EAAO,CACnBs1C,MAAO2kJ,GAAe3kJ,EAAMt1C,OAC5B81D,QAASA,GAAW,mCAIxBvyB,EAAAA,OACE,WAAA,OAAMy5D,EAAWh9F,KACjB,IAAA,SAACw2G,GACO,IAAA6pF,EAAUR,EAAerpF,GAC/BxtB,EAAKhpF,MAAQqgM,EACP/qJ,EAAAt1C,MAAM+2L,WAAyB,oBAAZsJ,EACnB/qJ,EAAAt1C,MAAM4zE,OAAO4iC,EACrB,IAQI,IAAAglF,EAAmB,SAAC6E,GACxBr3G,EAAKhpF,MAAQqgM,EAEb,IAAMC,EAA6B,oBAAZD,EACvB/qJ,EAAMt1C,MAAM+2L,WAAauJ,EAErBA,EACFhrJ,EAAMt1C,MAAM4zE,OACVt+B,EAAMt1C,MAAMs1L,eAAez3L,OAAS,EAAIy3C,EAAMt1C,MAAMu3L,eAAiBtD,IAGvE3+I,EAAMt1C,MAAM4zE,OAAOt+B,EAAMt1C,MAAM0vG,MAGjBywF,KAOZI,EAA0B,SAAA/8J,GAAkE,IAA/D+5J,EAAA/5J,EAAA+5J,WAAYv9L,IAAAA,MAC7CwgM,EAAwClrJ,EAAMt1C,MAA1BygM,EAAAD,EAAZjD,WAAwB12K,EAAA25K,EAAPxgM,MACrB0gM,EAA0C,gCAC1C,GAAA1gM,IAAU6mB,GAAO02K,IAAekD,EAClCnrJ,EAAMt1C,MAAMu9L,WAAaA,EACzBjoJ,EAAMt1C,MAAMA,MAAQA,EACJ0gM,EAAA,qCAClB,GAAWnD,IAAekD,EACxBnrJ,EAAMt1C,MAAMu9L,WAAaA,EACTmD,EAAA,yBAClB,IAAW1gM,IAAU6mB,EAInB,OAHAyuB,EAAMt1C,MAAMA,MAAQA,EACJ0gM,EAAA,oBAGlB,CAEAP,EAAgBO,IAOZC,EAAkB,SAAC7tF,GAAgB,IAAA8tF,EACvCtrJ,EAAMt1C,MAAM8yG,IAAMA,EAClBqtF,EAAgB,mBACW,QAA3Bv5L,EAAAA,EAAM6sL,0BAAqB,IAAAmN,GAA3Bh6L,EAAAA,KAAAA,EAA2B,CACzB0uC,MAAO2kJ,GAAe3kJ,EAAMt1C,UAQ1B6gM,EAAoB,SAAC3C,GACzB5oJ,EAAMt1C,MAAMk+L,MAAQA,EACpBiC,EAAgB,sBAQZxf,EAAoB,SAAC/pK,EAAesnL,GAClC5oJ,EAAAt1C,MAAM4zE,OAAOh9D,GACnB0+B,EAAMt1C,MAAMk+L,MAAQA,EACpBiC,EAAgB,UAOZW,EAAuB,YAMvB,IALJr8L,EAAAg/B,EAAAh/B,IACAu3L,EAAAv4J,EAAAu4J,QAKIlmI,EAAoC,gCAChC,OAAArxD,GACD,IAAA,SACH6wC,EAAMt1C,MAAMo4L,eAAiB4D,EACnBlmI,EAAA,QACV,MACG,IAAA,aACHxgB,EAAMt1C,MAAMs4L,mBAAqB0D,EACjC,MACG,IAAA,SACH1mJ,EAAMt1C,MAAMs1L,eAAiB0G,EAGjCmE,EAAgBrqI,IAQZirI,EAAiB,SAAC/gM,EAAe81D,GAC/B,IAAAuqI,EAAUR,EAAe7/L,GAC/BgpF,EAAKhpF,MAAQqgM,EACP/qJ,EAAAt1C,MAAM+2L,WAAyB,oBAAZsJ,EACnB/qJ,EAAAt1C,MAAM4zE,OAAO5zE,GACnBmgM,EAAgBrqI,IAGlB,OAAO,WACL,IAAMgyE,EAAY,CAChBxyF,MAAOA,EAAMt1C,MACbo9B,SAAUx2B,EAAMw2B,UAIZ4jK,EAAkD,IAA5Bp6L,EAAMssL,WAAWr1L,QAAgB+I,EAAMssL,WAAW50K,SAAS,mBAGnF+0K,EAAesM,EAAkB3/L,MACjCghM,GAAuBhjM,MAAMe,QAAQs0L,KACvCA,EAAeA,EAAattK,QAAO,SAACuvB,UAAUqhJ,GAAMxB,gBAAgB7/I,OAEtE,IAAM2rJ,IAAmBjjM,MAAMe,QAAQs0L,GAGnC6N,EAAet6L,EAAM4sL,kBACJ,IAAjB0N,IACaA,EAAApiM,EAAIo1L,KAEjB8M,IACFE,EAAeA,EAAan7K,QAAO,SAACuvB,UAAUqhJ,GAAMxB,gBAAgB7/I,OAEhE,IAAA6rJ,EAAmBnjM,MAAMe,QAAQmiM,GAgCrC,OAAA7oJ,EAAAA,YAAA,MAAA,CAAAC,MAAY,CAAA9b,GAAAA,OAAI2+J,EAAcn7L,MAAA,aAAgB4G,EAAMw2B,UAAWw+J,EAAiBx+J,WAAgB,CAAAib,EAAAK,YAAA0iJ,GAAAlgJ,EAAAA,WAC7Et0C,EAAAA,CAAAA,KAAaoiF,EAAKhpF,MAAAs7L,aAAqBE,IAAkB,MAAAnjJ,EAAAK,YAAA,MAAA,CAAAJ,MAC9D,CAAA9b,GAAAA,OAAI2+J,EAAcn7L,MAAa,YACxC+2L,CAAAA,EAAW/2L,MACVq4C,EAAAK,YAAAijJ,GAAAzgJ,EAAAqgC,WACMusD,EAAA,CAAA/pG,SACM+iK,EACV1N,uBAAwBxsL,EAAMwsL,yBAE9B,MAAA,KAAA/6I,EAAAK,YAAAwkJ,GAAAhiJ,EAAAqgC,WAEiBusD,EAAW,CAAA/pG,SAAUwiK,IAAyB,MAAAloJ,EAAAK,YAAA,MAAA,CAAAJ,MAEvD,CAAA9b,GAAAA,OAAI2+J,EAAcn7L,MAAwB,uBAAA,CAAAq4C,EAAAK,YAAA,MAAA,CAAAJ,MACxC,CAAA9b,GAAAA,OAAI2+J,EAAcn7L,MAAgB,eAAA,CAAAq4C,EAAAK,YAAAqlJ,GAAA7iJ,EAAAA,WAC7B4sF,EAAW,CAAA/pG,SAAU4iK,IACnC/5L,MAAAA,EAAMusL,YAAc96I,EAAAA,YAAA2lJ,GAAA9iJ,EAAAqgC,WAAiBusD,EAAW,CAAA/pG,SAAU8iK,UAAwB,OAGpFj6L,EAAM2sL,wBACLl7I,EAAAK,YAAA,MAAA,CAAAJ,MAAY,CAAA,GAAA9b,OAAI2+J,EAAcn7L,MAAA,qBAAA,GAAAw8B,OAA6B2+J,EAAcn7L,MAAA,uDAE3Dm7L,EAAcn7L,uCACjB,CACLm4C,WAAY4+I,EAAW/2L,MAAQs1C,EAAMt1C,MAAMu3L,eAAiBjiJ,EAAMt1C,MAAM0vG,OAI5E,QAAA,OAAAr3D,cAAAqmJ,GAAAxjJ,EAAAqgC,WAGW30E,EAAAA,CAAAA,MAAc0uC,EAAMt1C,aAAe2+L,EAAY3+L,MAAO4uG,cAAe+xE,IACrFygB,MA7DAD,GAAqBF,EAC1B5oJ,EAAAK,YAAAoR,EAAAnlC,SAAA,KAAA,CAAA0zB,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OAEmB2+J,EAAcn7L,MAAA,oBAC1BihM,CAAAA,EAAA5oJ,EAAAA,YAAAwmJ,GAAA3jJ,EAAAA,WAEO4sF,EACJ,CAAA9zG,MAAOz1B,EAAEu9B,EAAa97B,MAAMk5B,kBAAgB4lK,UAAA,EAAAlI,OAEpCvD,iBACQ2M,EAAAjB,WACJ,SAACzpJ,GAAkB,OAAAyrJ,EAAezrJ,EAAO,SAAQ,EAAAvX,SACnDmiK,IAEV,MAAA,KACHiB,gCAEOr5D,SACGvpI,EAAEu9B,EAAa97B,MAAMi5B,yBACpBioK,EAAAnC,WACI,SAACzpJ,GAAAA,OAAkByrJ,EAAezrJ,EAAO,mBAErD,SAtBuC,SAkEvD,ukBC9TF,IAAA+rJ,GAAepqJ,kBAAgB,CAC7Br4C,KAAM,oBACNw6C,cAAc,EACdxyC,MAAAA,GACAswC,eAAMtwC,EAAAA,GAAkB,IAATyyC,EAAA7V,EAAA6V,MACPulJ,EAAWngL,EAAAA,UAAS,WAAA,OCY9B,SAAgBja,EAAQyB,GACtB,GAAc,MAAVzB,EACF,MAAO,GAET,IAAIoC,EAAQnF,EAASoS,GAAarP,IAAS,SAASsmD,GAClD,MAAO,CAACA,EACV,IAEA,OADA7kD,EAAYkV,GAAalV,GAClBob,GAAW7c,EAAQoC,GAAO,SAAS5G,EAAOkN,GAC/C,OAAOjH,EAAUjG,EAAOkN,EAAK,GAC/B,GACF,CDvBoCo0L,CAAAppJ,GAAAA,GAAYtxC,CAAAA,EAAAA,GAAUyyC,IAAS,SAAC9vB,GAAM,YAAM,IAANA,QAChEw6B,EAASxnB,KACR,OAAA,WAAA,OAAA8b,EAAAK,YAAAgnJ,GAAAxkJ,aAAsB0jJ,EAAS5+L,MAAA,CAAAk1E,WAAmB,KAAM58B,MAAA,GAAA9b,OAAUunB,EAAO/jD,MAAmB,gBAAA,MACrG,IEPFuhM,GAAetqJ,kBAAgB,CAC7Br4C,KAAM,iBACNw6C,cAAc,EACdxyC,MAAO,CACL0uC,MAAO,CACL7yC,KAAM9C,OACN6uB,QAAS,IAEX4O,SAAU,CACR36B,KAAM2lB,QACNoG,SAAS,GAEXorE,WAAY,CACVn3F,KAAM2lB,QACNoG,SAAS,GAEXqrE,UAAW,CACTp3F,KAAM2lB,QACNoG,SAAS,GAEXq1E,WAAY,CACVphG,KAAM3C,OACN0uB,QAAS,WACA,MAAA,CACLkrE,WAAW,EAEf,GAEF8nG,gBAAiB,CACf/+L,KAAMhC,SACN+tB,QAAS,WACP,OAAO,WAAM,CACf,GAEFizK,eAAgB,CACdh/L,KAAMhC,SACN+tB,QAAS,WACP,OAAO,WAAM,CACf,GAEFpjB,KAAM,CACJ3I,KAAM9C,OACN6uB,QAAS,WAGb0oB,MAAAA,SAAMtwC,GACJ,IAAMu0L,EAAgBD,KAChBl7L,EAAQu7B,EAAAA,IAAI30B,EAAM0uC,OACVo1F,EAAmBjuG,KAAzBC,KACR6G,EAAAA,OACE,WAAA,MAAM,CAAC38B,EAAM0uC,UACb,WAAA,OAAOt1C,EAAMA,MAAQ4G,EAAM0uC,KAAA,IAGvB,IAAA27E,EAAe,SAACr6G,GAChBA,IAAUhQ,EAAM0uC,OACZ1uC,EAAA46L,gBAAgBxhM,EAAMA,MAAO,CACjCs1C,MAAO2kJ,GAAe,IAAItD,GAAM//K,IAChCk/C,QAAS,WAKT6gG,EAAc,SAACj4H,GAA+B,IAAAgjK,EAAA,eAAAA,EAAA96L,EAAM66L,sBAANC,WAAAA,EAAAA,EAAAjjM,KAAAmI,EAAuB83B,EAAO,EAElF,OAAO,WACL,IAAMijK,EAAa,CACjBn2I,MAAO,WACL,OAAAnT,EAAAA,YAAA,MAAA,CAAAC,MACc,CAAA,GAAA9b,OAAI2+J,EAAcn7L,MAAkC,6BAAA,GAAAw8B,OAAG2+J,EAAcn7L,MAAA,gBAC/E,CAAAq4C,EAAAK,YAAA,OAAA,CAAAJ,MACS,CACL,cAAAz4C,EAEG6qI,CAAAA,EAAAA,EAAe1qI,MAAM4G,EAAMwE,MAAuB,WAAfxE,EAAMwE,aAGvC,CACL+sC,WAAYn4C,EAAMA,QACpB,OAIR,GAGA,OAAAq4C,EAAAK,YAAAq1D,GAAA7yD,aAAA,CAAA0+C,WACchzF,EAAMgzF,WAAAC,UACPjzF,EAAMizF,UACjBzuF,KAAMxE,EAAMwE,KAAA6lC,WAEHjxC,EAAMA,MAAA,sBAAA,SAAAqlI,GAAA,OAANrlI,EAAMA,MAAAqlI,CAAA,EAAAjoG,SACLx2B,EAAMw2B,SAChBi9D,OAAQ42B,EACRlzF,SAAUkzF,EACV32B,QAASq8D,GACL/vJ,EAAMi9F,YAND89F,GAUjB,ukBClGF,IAAAC,GAAe3qJ,kBAAgB,CAC7Br4C,KAAM,eACNgI,MAAAA,GACAswC,MAAAA,SAAMtwC,GACJ,IAAMu0L,EAAgBD,KAChBjsD,EAAwB5mH,KACxBsV,EAAUpC,OAAI,GACdg9C,EAAa,SAACv4E,GAAoB,OAAA29B,EAAQ39B,MAAQA,CAAA,EAExDq4E,EAAwDv9B,SAAOl0C,GAAhD21F,EAAAlkB,EAAPr4E,MAAmBixC,IAAAA,WAAYoiJ,EAAah7G,EAAbg7G,aACiE/6G,EAAA70D,GAApEutB,GAAUurD,EAAYtrD,EAAYrqC,EAAMuG,aAAcvG,EAAMm3B,UAAQ,GAAjGi/D,EAAY1kB,EAAA,GAAA2kB,EAAa3kB,EAAA,GAMhCgR,EAAA7lE,GALkDqa,GAChDu1J,EACAzsL,EAAM0sL,oBACN1sL,EAAM8sL,qBACN,gBACF,GALOiM,EAAmBr2G,EAAA,GAAAs2G,EAAoBt2G,EAAA,GAOxCu4G,EAAatmK,EAAAA,MAEbo7H,EAAc,SAACj4H,GAA+B93B,IAAAA,EAAAA,eAAAA,EAAAA,EAAM0zF,eAAN1zF,WAAAA,EAAAA,EAAAA,KAAAA,EAAgB83B,EAAO,EAErEojK,EAAqB,WACzB,OAAIl7L,EAAMw2B,SACD,KAGTib,EAAAK,YAAAgnJ,GAAAxkJ,aAAAhD,GAAAA,GAAA,CAAA,EAGStxC,GAAAA,GAAAA,CACHm3B,SAAUk/D,EACVy2F,qBAAsBkM,IAAA,CAAA5/L,MAEjBg9F,EAAWh9F,MAClBqzL,aAAcsM,EAAkB3/L,QAClC,OAIJ,OAAO,WACL,IAAM+hM,EAAW7pJ,GAAAA,GAAA,CACfslB,UAAW,eACN52D,EAAMsuE,YAAsB,CAAC,GAAA,CAAA,EAAA,CAClCpf,QAAS,QACT3lC,OAAQ,OACRklD,iBAAkB,CAAC8lH,EAAcn7L,OACjC29B,QAASA,EAAQ39B,MACjBu1E,kBAAmB,CACjB/hB,QAAS,GAEXwiB,gBAAiB,SACfr4C,EACAe,GAIwB,aAApBA,EAAQo3B,SACVyiB,GAAW,EAEf,IAEF,OAAAlgC,cAAA2pJ,GAAA9mJ,EAAAqgC,WACcwmH,EAAA,CAAAz9K,QAAmBw9K,IAC7B,CAAAtzK,QAAA,WAAA,MAAA,CAAA6pB,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OAAe2+J,EAAcn7L,MAAkB,aAAAi+C,QAAS,WAAA,OAAMs6B,GAAY56C,EAAQ39B,MAAK,EAAAu7B,IAAQsmK,GAC5F,CAAA5yD,EACC,UAAA52F,EAAAA,YAAAkpJ,GAAA,CAAA3nG,WAEchzF,EAAMgzF,iBACXoD,EAAWh9F,MAClBo9B,SAAUx2B,EAAMw2B,SAAAy8D,UACLjzF,EAAMizF,UAAA,cACJjzF,EAAMi9F,WACnB29F,gBAAiBvkG,iBACD05D,EAAAvrJ,KACVxE,EAAMwE,MACd,SACF,IAKV,IChFW62L,GAAmB5kJ,GAAYgkJ,IAC/Ba,GAAc7kJ,GAAYukJ,ICHxBO,GAAA,CAEbC,IAAK,CACH3/L,KAAM9C,OACN6uB,QAAS,IAGXlK,QAAS,CACP7hB,KAAM,CAAC9C,OAAQc,WAGjB+tB,QAAS,CACP/rB,KAAM,CAAC9C,OAAQc,WAGjB4hM,iBAAkBj6K,QAElBoI,KAAM,CACJ/tB,KAAMhC,UAGRkyB,MAAO,CACLlwB,KAAM9C,OACN6uB,QAAS,IAGX8zK,WAAY,CACV7/L,KAAM3C,QAGRi+C,MAAO,CACLt7C,KAAM9C,OACN6uB,QAAS,SACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,SAAU,SAASvI,SAASuI,EACtC,GAGFzb,KAAM,CACJ3I,KAAM9C,OACN6uB,QAAS,IAGX+zK,QAAS9hM,UC5CI+hM,GAAA,CAEbJ,IAAK,CACH3/L,KAAM9C,OACN6uB,QAAS,IAGX8O,MAAO,CACL76B,KAAM,CAAC9C,OAAQc,WAGjBgiM,SAAU,CACRhgM,KAAM9C,OACN6uB,QAAS,IAGXk0K,IAAK,CACHjgM,KAAM9C,OACN6uB,QAAS,OACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,UAAW,QAAS,OAAQ,OAAQ,cAAcvI,SAASuI,EACrE,GAGF87K,QAASv6K,QAET4hE,KAAM5hE,QAEN8U,QAAS,CACPz6B,KAAM,CAAC9C,OAAQc,WAGjBmiM,eAAgB,CACdngM,KAAM,CAAC9C,OAAQc,WAGjBoiM,eAAgB,CACdpgM,KAAM9C,OACN6uB,QAAS,SACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,SAAU,SAASvI,SAASuI,EACtC,GAGFuM,YAAa,CACX3wB,KAAM,CAAC9C,OAAQc,WAGjBkvC,SAAU,CACRltC,KAAM9C,OACN6uB,QAAS,UAGXs0K,eAAgB,CACdrgM,KAAM9C,OACN6uB,QAAS,kCACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CACL,cACA,6BACA,SACA,2BACA,cACA,gBACA,kCACA,cACAvI,SAASuI,EACb,GAGFk3B,MAAO,CACLt7C,KAAM9C,OACN6uB,QAAS,SACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,SAAU,QAAS,UAAUvI,SAASuI,EAChD,GAGFk8K,IAAK,CACHtgM,KAAM,CAAC9C,OAAQG,SAGjBkjM,OAAQ,CACNvgM,KAAM3C,QAGRyiM,QAAS9hM,SAETm2I,OAAQn2I,UC3FVwiM,GAAehsJ,kBAAgB,CAC7Br4C,KAAM,SACNgI,MAAAA,GACAswC,MAAAA,SAAMtwC,GACE,IAAAs8L,EAAS3nK,MAAiB,MAC1B4nK,EAAS5nK,MAAsB,MACjC8E,EAA2B,KAEvB0iK,EAAQjoJ,EAAAA,OAAOl0C,GAAfm8L,IAEFz9K,EAAiBmC,KAEvBikB,EAAAA,WAAU,WAAM,IAAA03J,EAMd,GAJWA,QAAPA,EAAAD,EAAOnjM,aAAPojM,IAAOA,GAAPA,EAAcC,WAAaz8L,EAAMojF,MACjBs5G,IAGf18L,EAAMojF,MAASk5G,EAAOljM,MAA3B,CAEA,IAAMsxH,EAAatxF,GAAQkjK,EAAOljM,MAAO,KAAMujM,EAAiB,GAC3DljK,EAAAixF,CAH6B,CAIpC,IACA5gF,EAAAA,aAAY,WACVwyJ,EAAOljM,OAASqgC,GAAMA,EAAGE,UAAU2iK,EAAOljM,MAC5C,IAEA,IAAA47E,EAAsCpgD,GAAU,SAAxCzL,EAAA6rD,EAAA7rD,YAAa+L,EAAa8/C,EAAb9/C,aAGf0nK,EAAcjoK,EAAAA,IAAIwnK,EAAI/iM,OAE5BujC,EAAAA,MACE,CAACw/J,EAAKjnK,IACN,SAAA0H,GAAyB,IAAAC,EAAAhgB,GAAA+f,EAAA,GAAvBu/J,EAAKjnK,EAAAA,GACG2nK,GADShgK,EAAA,IAC2B,CAAC,GAArCggK,gBACFC,EAASlgM,EAAWigM,GAAmBA,EAAgB78L,GAASm8L,EAClEW,IAAWF,EAAYxjM,OAASwjM,EAAYxjM,QAChDwjM,EAAYxjM,MAAQ0jM,EACtB,GACA,CAAEx/J,WAAW,IAGf,IAAQZ,EAAeF,GAAmBogK,GAAlClgK,WAEFC,QAAA,CAACD,IAAa,WAClBqgK,EAAS3jM,OAAQ,EACjB4jM,EAAS5jM,OAAQ,CACnB,IAEA,IAAM6jM,EAAatoK,EAAAA,KAAK30B,EAAMojF,MACxBu5G,EAAkB,WACtBM,EAAW7jM,OAAQ,GAGf4jM,EAAWroK,OAAI,GACf+xJ,EAAa,SAACxvL,GAAa,IAAAgmM,EAC/BF,EAAS5jM,OAAQ,EACX,QAAN4G,EAAAA,EAAMgwI,cAAA,IAAAktD,GAANl9L,EAAAA,KAAAA,EAAe,CAAE9I,EAAAA,KAEbwlM,EAAoB,WAClB,IAAAS,EAAY,IAAInd,MAAM,QACrB9mL,OAAAC,eAAegkM,EAAW,SAAU,CACzC/jM,MAAOmjM,EAAOnjM,MACdC,YAAY,IAEdqtL,EAAWyW,IAEPJ,EAAWpoK,OAAI,GACfyoK,EAAc,SAAClmM,GAAa,IAAAmmM,EAChCN,EAAS3jM,OAAQ,EACX,QAAN4G,EAAAA,EAAM27L,eAAA,IAAA0B,GAANr9L,EAAAA,KAAAA,EAAgB,CAAE9I,EAAAA,IACd8I,EAAM67L,WACRe,EAAYxjM,MAAQ4G,EAAM67L,SAC1BkB,EAAS3jM,OAAQ,IAIfkkM,EAAgBzlL,EAAAA,UAAS,WAC7B,MAAgC,UAAzB7X,EAAMi8L,cACf,IAEMsB,EAAe1lL,EAAAA,UAAS,WAAA,MAAM,CAAA+d,GAAAA,OAC/BzM,EAAY/vB,MAAAw8B,UAAAA,GAAAA,OACZzM,EAAY/vB,sBAAAw8B,OAAoB51B,EAAM87L,KAAA,GAAAlmK,OACtCzM,EAAY/vB,MAAA,qBAAAw8B,OAAyB51B,EAAM+oC,cAG1Cy0J,EAAoB7oK,EAAAA,KAAK2oK,EAAclkM,OACvCqkM,EAAsB,WACtBH,EAAclkM,QACEokM,EAAApkM,OAASokM,EAAkBpkM,QAyCjD,SAASskM,IAEP,IAAMvsK,EAAM7Y,GAASskL,EAAYxjM,OAASwjM,EAAYxjM,MAAQsjC,EAAWtjC,MACzE,OAAAq4C,EAAAA,YAAA,MAAA,CAAA9c,IAES4nK,MACAprK,EAAAwqK,QACIyB,EACTptD,OAAQ02C,EACRh1I,MAAO6rJ,EAAankM,MACpBoiM,IAAKx7L,EAAMw7L,IACXU,eAAgBl8L,EAAMk8L,gBACxB,KAEJ,CAEA,IAAMyB,EAAoBl8K,KAE1B,OAAO,WACL,OAAAgwB,EAAAK,kBAAAwC,aAAA,CAAA3f,IAES2nK,EAAA5qJ,MACE,IAAA9b,OACFzM,EAAY/vB,4BAAAw8B,OACZzM,EAAY/vB,MAAAw8B,2BAAAA,OAA+B51B,EAAMm3C,OACpDn3C,EAAM+7L,YAAWnmK,OAAGzM,EAAY/vB,kCAChCkkM,EAAclkM,UAASw8B,OAAGzM,EAAY/vB,mDAE1BqkM,EAAAvkI,aACAukI,GACVrjL,GAAKpa,EAAO,CACd,MACA,MACA,MACA,WACA,QACA,cACA,UACA,QACA,iBACA,iBACA,OACA,UACA,SACA,aAGDwmH,EAnFCh6F,EAAc9N,EAAe,eAC9B8N,EACLilB,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OAAsBzM,EAAY/vB,MAAA,wBAAA,CAA6BozB,IADtC,MAKpBxsB,EAAM+7L,QACXtqJ,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OAAsBzM,EAAY/vB,MAA+B,2BAAA,MADtC,MAgFrB2jM,EAAS3jM,QAAU6jM,EAAW7jM,QAAAq4C,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OAAyBzM,EAAY/vB,MAAe,WAAA,QACjF2jM,EAAS3jM,QAAU6jM,EAAW7jM,SAC9B4G,EAAMo8L,QAAUljM,OAAO+D,KAAK+C,EAAMo8L,QAAQnlM,OA9DjDw6C,cAAA,UAAA,KAAA,CAEKv4C,OAAOgL,QAAQlE,EAAMo8L,QAAQn3L,KAAI,SAAA+8D,GAAA,IAAA7tB,EAAAt3B,GAAAmlD,EAAA,GAAEnmE,EAAMs4C,EAAA,GAAAhjB,EAAGgjB,EAAA,GAAA,OAAA1C,EAAAA,YAAA,SAAA,CAAA51C,KAC7BA,EAAMugM,OAAQjrK,YAE7BusK,MAyD2EA,OACzEX,EAAS3jM,QAAU6jM,EAAW7jM,SAAW4jM,EAAS5jM,OACnDq4C,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OAAezM,EAAY/vB,MAAA,oBAAA,CACxBslB,EAAe,YACd+yB,EAAAA,YAAA0R,GAAA,CAAAv0B,UAAA,WAAApqB,KAAkC,EAAA84C,MAAA,UAAA,CAAA11B,QAAA,WAAA,MAAA6pB,CAAAA,EAAAK,YAAA8rJ,GAAA,CAAAp5L,KAAA,QAAA,MAE/B8T,GAAStY,EAAMs2B,SAAWt2B,EAAMs2B,QAAUpB,EAAa97B,MAAMmzB,YAAA,MAMrEwwK,EAAS3jM,4CACO+vB,EAAY/vB,MACxB,kBAAAukM,CAAAA,EAAkB,QAAS,CAC1BpgL,wDACoC,kFAE/BjF,GAAStY,EAAM02B,OAAS12B,EAAM02B,MAAQxB,EAAa97B,MAAM45B,UAAA,SA/FlEgpK,EAAiB2B,EAAkB,kBACpC3B,EAEHvqJ,EAAAA,YAAA,MAAA,CAAAC,MACS,IAAA9b,OACFzM,EAAY/vB,MACf,4BAACokM,EAAkBpkM,OAASw8B,GAAAA,OAAGzM,EAAY/vB,MAAA,qCAC7C,CAEC4iM,IARuB,QAFR,IACdA,EAXAxvK,EAqHV,ICtNWqxK,GAAQpnJ,GAAY4lJ,ukBCFjC,IAAAyB,GAAeztJ,kBAAgB,CAC7Br4C,KAAM,UACNgI,MAAAA,GACAswC,MAAAA,SAAMtwC,GACE,IAAAu3C,EAAiB5hB,GAAe,UAChCwd,EAAgBzxB,KAChBhD,EAAiBmC,KACfiV,EAASD,KAATC,KACFioK,EAAc/oK,EAAOA,OAAA,mBAAe,GACpCgpK,EAASrpK,MAAwB,MACjCspK,EAActpK,MAAwB,MACtCupK,EAAavpK,OAAI,GAEjBkuB,EAAMluB,MAAI,GACVwpK,EAAQxpK,MAAI,IAEZypK,EAAYvmL,EAAAA,UAAkC,WAAA,OAAM7X,EAAMwE,OAAQu5L,eAAAA,EAAav5L,SAC/E65L,EAAexmL,EAAAA,UAAS,WAAA,OAAMumL,EAAUhlM,QAAU08B,EAAK18B,MAAMglM,EAAUhlM,UAEvEklM,EAAmBzmL,EAAAA,UAAS,WAChC,OAAOwmL,EAAajlM,MAChB,CACEuvC,MAAOy1J,EAAUhlM,MACjByvC,OAAQu1J,EAAUhlM,MAClB,sBAAgBJ,OAAOkD,SAASkiM,EAAUhlM,MAAO,IAAM,EAAA,OAEzD,EACN,IACMmlM,EAAkB1mL,EAAAA,UAAS,WAC/B,OAAOwmL,EAAajlM,MAChB,CACEyvC,OAAQu1J,EAAUhlM,MAClBuvC,MAAOy1J,EAAUhlM,OAEnB,EACN,IACMolM,EAAsB3mL,EAAAA,UAAS,WAC5B,MAAA,CACLpX,UAAW09L,EAAM/kM,MAErB,IAEMqlM,EAA4C,SAAA7hK,GAAW,IAAAygK,EAARnmM,EAAA0lC,EAAA1lC,EAC3CukM,EAAqBz7L,EAArBy7L,iBACRyC,EAAW9kM,OAASqiM,EACd,QAANz7L,EAAAA,EAAM27L,eAAA,IAAA0B,GAANr9L,EAAAA,KAAAA,EAAgB,CAAE9I,EAAAA,KAGdwnM,EAAiB,WACrB,IAAMC,EAAUX,EAAO5kM,MACjBwlM,EAAeX,EAAY7kM,MAC3BylM,EAAcF,aAAAA,EAAAA,EAAS/1J,YACvBk2J,EAAmBF,aAAAA,EAAAA,EAAch2J,YACvB,EAAZia,EAAIzpD,MAAYylM,IACZV,EAAA/kM,MACJ0lM,EAAmBD,EAA0B,EAAZh8I,EAAIzpD,MACjC,SAAAw8B,QAAUipK,EAA0B,EAAZh8I,EAAIzpD,OAAa0lM,EACzC,KAAA,aA0BV,OAtBAh6J,EAAAA,WAAU,WACR0L,EAAAA,UAAS,WACQkuJ,GACjB,GACF,IAEA9mK,EAAAA,WAAU,WACR4Y,EAAAA,UAAS,WACQkuJ,GACjB,GACF,IAEA/hK,EAAAA,OACE,WAAA,OAAM38B,EAAM+rB,KACZ,IAAA,SAAC9L,GACKA,IAEFi+K,EAAW9kM,OAAQ,EAEvB,IAGK,WACD,IAAAskB,EAAUy1B,EAAc,UAAW,WACjCvpB,EAAOlL,EAAe,QACtBqgL,EAAan1K,IAASlM,EACpBy5B,EAAsBn3C,EAAtBm3C,MAAOprB,EAAe/rB,EAAf+rB,MAAOyvK,EAAQx7L,EAARw7L,IAChBwD,EAAc,CAAA,GAAAppK,OACf2hB,EAAen+C,OAClB08B,EAAK18B,MAAMglM,EAAUhlM,OAAAH,EAAAA,EAAAA,EAAA,CAAA,EAAA,GAAA28B,OAEf2hB,EAAen+C,MAAkB+9C,YAAU,WAAVA,MAAUvhB,OAC3C2hB,EAAen+C,MAAA,WAA2B,UAAV+9C,GAAUvhB,GAAAA,OAC1C2hB,EAAen+C,MAAgB,YAAE2lM,IAuBzC,OAnBErhL,EAAA+zB,EAAAK,YAAA,OAAA,CAAAnd,IAAWspK,EAAa72J,MAAAkK,GAAA,GAAYktJ,EAAoBplM,QAAA,CACrDskB,IAGDkM,IACFlM,EAAU,CAACkM,EAAOm1K,EAAuB,GAAVrhL,IAG7BqO,GAASmyK,EAAW9kM,QACtBskB,EAAA+zB,EAAAA,YAAAosJ,GAAAvpJ,aAAA,CAAAlN,MAAAkK,GAAA,GAEgBitJ,EAAgBnlM,OAAA+iM,IACvBpwK,MACAyvK,EAAAG,QACI8C,GACLz+L,EAAM07L,YACX,OAGLjqJ,EAAAA,YAAA,MAAA,CAAA9c,IACYqpK,EAAAtsJ,MAAestJ,EAAA53J,MAAAkK,GAAA,GAAyBgtJ,EAAiBllM,QAAM,CACtEskB,IAIT,ICzHauhL,GAAA,CAEbC,UAAW,CACTrjM,KAAM9C,OACN6uB,QAAS,WACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,UAAW,YAAYvI,SAASuI,EAC1C,GAGFk/K,eAAgB,CACdtjM,KAAM,CAAC9C,OAAQc,WAGjByG,IAAK,CACHzE,KAAM7C,QAGRs1E,WAAY,CACVzyE,KAAM3C,QAGRsL,KAAM,CACJ3I,KAAM9C,OACN6uB,QAAS,KC3Bb,IAAAw3K,GAAe/uJ,kBAAgB,CAC7Br4C,KAAM,eACNgI,MAAAA,GACAswC,MAAAA,SAAMtwC,GACJ01B,UAAQ,cAAe11B,GACvB,IAAM0e,EAAiBmC,KAEjBw+K,EAAc1pK,GAAe,UAC7B4hB,EAAiB5hB,GAAe,gBAEhC2pK,EAAuB,SAACxhL,GACxB,IAAAA,aAAAA,EAAAA,EAAU7mB,QAAS+I,EAAMM,IAAK,CAC1B,IAAAod,EAAU6hL,EAAmBzhL,GAC7B0hL,EAAY1hL,EAAShmB,MAAM,EAAGkI,EAAMM,KAMnC,OALGk/L,EAAAp8L,KAAAquC,EAAAK,YAAA2tJ,GAAA,CAAA/tJ,MAAA,GAAA9b,OACUypK,EAAYjmM,yBAAyB4G,EAAMwE,MAjB3C,mBAAAyd,EAkBfvE,IAlBe8gC,oBAAAtlD,OAAAP,UAAAf,SAAAC,KAAAoqB,KAAAu8B,EAAAhhC,QAAAyE,GAkBfvE,EAAA,CAAAkK,QAAA,WAAA,MAAA,CAAAlK,EAAA,KAGE8hL,CACT,CAtBsB,IAAAv9K,EAuBf,OAAAnE,GAIHyhL,EAAqB,SAACzhL,GAC1B,OAAOY,EAAe,uBAAgBkX,OAAS9X,EAAS7mB,OAAS+I,EAAMM,MAGzE,OAAO,WACC,IAAAwd,EAAWY,EAAe,WACxBwgL,EAAmBl/L,EAAnBk/L,UAAW5+L,EAAQN,EAARM,IACbwlK,EAAa,CAAAlwI,GAAAA,OACd2hB,EAAen+C,OAAAH,EAAAA,EAAA,CAAA,EAAA,GAAA28B,OAEZypK,EAAYjmM,MAAwB8lM,kBAAc,aAAdA,MAActpK,OAClDypK,EAAYjmM,MAAA,iBAAqC,YAAd8lM,IAGrCxhL,EAAUpd,GAAOA,GAAO,EAAI,CAACg/L,EAAqB7hL,GAAYK,KAAc,CAACA,GAEnF,OAAA2zB,EAAAA,YAAA,MAAA,CAAAC,MAAmBo0H,GAAA,CAAapoJ,IAEpC,ICtCW+hL,GAAShpJ,GAAYqnJ,IACrB4B,GAAcjpJ,GAAY2oJ,ICHxBO,GAAA,CAEbjxJ,MAAO,CACL7yC,KAAM9C,OACN6uB,QAAS,IAGXlK,QAAS,CACP7hB,KAAM,CAAC9C,OAAQc,WAGjB4E,MAAO,CACL5C,KAAM,CAAC9C,OAAQC,OAAQa,UACvB+tB,QAAS,GAGXA,QAAS,CACP/rB,KAAM,CAAC9C,OAAQc,WAGjB+lM,IAAKp+K,QAELq+K,SAAU,CACRhkM,KAAM7C,OACN4uB,QAAS,IAGXlhB,OAAQ,CACN7K,KAAMzE,OAGR+/C,MAAO,CACLt7C,KAAM9C,OACN6uB,QAAS,SACT8J,UAAAA,SAAUzR,GACR,MAAO,CAAC,SAAU,SAASvI,SAASuI,EACtC,GAGF6/K,SAAUt+K,QAEVhd,KAAM,CACJ3I,KAAM9C,OACN6uB,QAAS,SACT8J,UAAAA,SAAUzR,GACR,MAAO,CAAC,QAAS,UAAUvI,SAASuI,EACtC,ICpDJ8/K,GAAe1vJ,kBAAgB,CAC7Br4C,KAAM,SACNw6C,cAAc,EACdxyC,MAAAA,GACAswC,eAAMtwC,EAAAA,GAAkB,IAATyyC,EAAA7V,EAAA6V,MACPU,EAAgBzxB,KAChBhD,EAAiBmC,KAGjBm/K,EAAenoL,EAAAA,UAAS,WACxB,IAAApZ,EAAQigB,EAAe,SAE3B,OAAI1lB,OAAOquD,MAAMruD,OAAOyF,IACfA,GAEDA,EAAAzF,OAAOgH,EAAMvB,QACNuB,EAAM6/L,SAAW,GAAAjqK,OAAG51B,EAAM6/L,SAAc,KAAAphM,CACzD,IAYM0qB,EAAcwM,KACd4hB,EAAiB5hB,GAAe,SAChCsqK,EAAWpoL,EAAAA,UAAS,WACxB,OAAQ7X,EAAM8/L,WAAoC,IAAvBE,EAAa5mM,OAAsC,MAAvB4mM,EAAa5mM,MACtE,IAEM8mM,EAAkBroL,EAAAA,UAAS,WACxB,MAAA,CAAA5e,EAAAA,EAAAA,EAAAA,EAAA28B,GAAAA,GAAAA,OAEC2hB,EAAen+C,MAAe,WAAE4G,EAAM4/L,KAAA,GAAAhqK,OACtC2hB,EAAen+C,MAAkB,aAAC4G,EAAM4/L,KAAuB,WAAhB5/L,EAAMm3C,OAAUvhB,GAAAA,OAC/D2hB,EAAen+C,MAAiB,YAAC4G,EAAM4/L,KAAuB,UAAhB5/L,EAAMm3C,OAAUvhB,GAAAA,OAC9DzM,EAAY/vB,MAAA,WAAgC,UAAf4G,EAAMwE,MAG7C,IAEM27L,EAActoL,EAAAA,UAAS,WAC3B,IAAAuoL,EA5BgB,WAChB,IAAKpgM,EAAM0G,OAAQ,MAAO,GAC1B,IAAAk7H,EAAA/kH,GAAiD7c,EAAM0G,OAAA,GAAlD25L,EAAAz+D,EAAA,GAAS0+D,EAAO1+D,EAAA,GAGd,MAAA,CAAEy+D,QAFTA,EAAUrnM,OAAOquD,MAAMruD,OAAOqnM,IAAYA,YAAaA,EAAA,MAErCC,QADlBA,EAAUtnM,OAAOquD,MAAMruD,OAAOsnM,IAAYA,YAAaA,EAAA,OAwB1B9mI,GAArB6mI,EAAAD,EAAAC,QAASC,EAAQF,EAARE,QACV,MAAA,CACL/uJ,WAAYvxC,EAAM0uC,MAClB7K,MAAOw8J,EACP38J,IAAK48J,EAET,IAGA,OAAO,WAAA,OAAA7uJ,EAAAK,kBAAAwC,aAAA,CAAA5C,MACO6F,EAAen+C,OAAWq5C,GAAA,CACnCU,EAAc,UAAW,WACzB8sJ,EAAS7mM,MAAQ,KAAAq4C,EAAAA,YAAA,MAAA,CAAAC,MACJwuJ,EAAgB9mM,MAAAguC,MAAc+4J,EAAY/mM,OACnD4G,CAAAA,EAAM4/L,IAAM,KAAOI,EAAa5mM,UAK3C,IC7DWmnM,GAAQ9pJ,GAAYspJ,ICAlBS,GAAA,CAEbC,KAAM,CACJ5kM,KAAM,CAAC9C,OAAQc,WAGjB6mM,WAAY,CACV7kM,KAAM,CAAC9C,OAAQc,WAGjB8vB,iBAAkB,CAChB9tB,KAAM,CAAC2lB,QAAStoB,QAChB0uB,aAAS,GAGX8B,aAAc,CACZ7tB,KAAM2lB,QACNoG,aAAS,GAGX6B,eAAgB,CACd5tB,KAAM7C,OACN04B,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAGvI,SAASuI,EACxC,GAGF0G,OAAQ,CACN9qB,KAAM9C,OACN6uB,QAAS,cAGX+4K,KAAM,CACJ9kM,KAAM,CAAC9C,OAAQc,WAGjB+mM,qBAAsB,CACpB/kM,KAAM2lB,QACNoG,SAAS,GAGXw6D,KAAM,CACJvmF,KAAM9C,OACN6uB,QAAS,QACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,QAAS,QAAQvI,SAASuI,EACpC,GAGFgD,MAAO,CACLpnB,KAAM,CAAC9C,OAAQC,SAGjB0uG,SAAUlmF,QAEVq/K,uBAAwBr/K,QAExBhG,MAAO,CACL3f,KAAMzE,OAGRw7B,MAAO,CACL/2B,KAAM9C,OACN6uB,QAAS,OACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,OAAQ,QAAQvI,SAASuI,EACnC,GAGF7mB,MAAO,CACLyC,KAAM,CAAC9C,OAAQ3B,MAAOmH,OAGxB0uB,KAAM,CACJpxB,KAAM,CAACzE,MAAOyC,WAGhBmpB,KAAM,CACJnnB,KAAM,CAAC9C,OAAQC,SAGjB0oJ,YAAa7nJ,SAEbinM,kBAAmBjnM,SAEnBknM,iBAAkBlnM,SAElBmnM,mBAAoBnnM,SAEpB4lJ,cAAe5lJ,UC5FJ09C,GAAiB,WAIjB0pJ,GAAW,KAwCXC,GAAqC,CAChD,EAAG,SACH,EAAG,SACH,EAAG,SACH,EAAG,SACH,EAAG,SACH,EAAG,SACH,EAAG,UCjDQj8K,GAAS,SAACk8K,GACrB,IAAI1rD,EAAMC,GAAMyrD,GAAI1rD,MAIb,OAHK,IAARA,IACIA,EAAA,GAEDA,CACT,EAiCa2rD,GAAU,SAACD,EAAUE,GAC1B,IAAAl/K,EAAI,IAAI5jB,KAAK4iM,GAEZ,OADPh/K,EAAE26H,QAAQ36H,EAAE4C,UAAYs8K,GACjBl/K,CACT,EAgCam/K,GAAuB,SAACthM,EAAwBm8D,GA2C3D,IA1CM,IACan5C,EAKfm5C,EALFolI,gBACkBt+K,EAIhBk5C,EAJFqlI,iBACoB/3K,EAGlB0yC,EAHFslI,mBACAC,EAEEvlI,EAFFulI,QACAC,EACExlI,EADFwlI,YAEMh7K,EAAqB3mB,EAArB2mB,OAAQ+gF,EAAa1nG,EAAb0nG,SAEV+0C,EAA4B,GAE5BmlD,EAAclsD,aAAS1yH,OAAA4S,OAAQ3S,IAAS4C,QAAQ,SAASO,SAEzD5e,EAAYkuI,GAAMA,GAAM,GAAA9/G,OAAG5S,cAAQC,IAAS6C,MAAM,SAASa,OAAO,eAAeP,SACjFi7K,EAAO75L,EAAIud,UAEX88K,EAlEuB,SAACp4K,EAAwB03K,GACtD,IACM1rD,EAAMxwH,GAAOk8K,GAMZ,OALH1rD,GAAOhsH,EACJgsH,EAAMhsH,EAEN,EAAIA,EAAiBgsH,CAG9B,CAyD4BqsD,CAAgBr4K,EAAgBm4K,GACtD7kH,EAAM,GACNsgB,EAAM,EAEJ0kG,EAAiB,SAACC,EAAkBr6C,EAAoB5kI,EAAYk/K,GAEjE,MAAA,CACL7/G,KAAM,QACN4/G,SAAAA,EACAr6C,UAAAA,EACAlS,IALUxwH,GAAOlC,GAMjBk/K,UAAAA,EACAl/K,KAAAA,EACAm/K,cAAexsD,GAAM3yH,GAAM4D,OAAOA,GAClCw7K,WAAY,KACZC,oBAAqB,KACrBC,eAAe,IAIbC,EAAiB,SAACv/K,GAEf,OADW2kF,IAAai6F,EAAYnnI,MAAK,SAAC38C,GAAS,OAAAA,EAAK+H,OAAO8vH,GAAM3yH,GAAM,IAAI2+K,EAAQ97K,OAAO8vH,GAAM3yH,KAKpGlqB,EAAI,EAAGA,EAAIgpM,EAAmBhpM,IAAK,CAC1C,IAAMkqB,EAAOq+K,GAAQQ,EAAO/oM,EAAIgpM,GAChC9kH,EAAI35E,KAAK2+L,GAAe,GAAI,EAAOh/K,EAAMs6E,IACtB,IAAftgB,EAAI9lF,SACNwlJ,EAAQr5I,KAAK25E,GACbA,EAAM,GACCsgB,GAAA,EAEX,CACA,IAAA,IAASxkG,EAAI,EAAGA,EAAIwoM,EAAMxoM,IAAK,CACvB,IAAAkqB,EAAOq+K,GAAQQ,EAAO/oM,GACtB8uJ,EAAY26C,EAAev/K,GACjCg6D,EAAI35E,KAAK2+L,EAAe,EAAGp6C,EAAW5kI,EAAMs6E,IACzB,IAAftgB,EAAI9lF,SACNwlJ,EAAQr5I,KAAK25E,GACbA,EAAM,GACCsgB,GAAA,EAEX,CAEA,GAAItgB,EAAI9lF,OAAQ,CAEd,IADM,IAAAsrM,EAAmB,EAAIxlH,EAAI9lF,OACxB4B,EAAI,EAAGA,EAAI0pM,EAAkB1pM,IAAK,CACzC,IAAMkqB,EAAOq+K,GAAQ55L,EAAK3O,EAAI,GAC9BkkF,EAAI35E,KAAK2+L,EAAe,GAAG,EAAOh/K,EAAMs6E,GAC1C,CACAo/C,EAAQr5I,KAAK25E,EACf,CAEO,OAAA0/D,CACT,EAMa+lD,GAAuB,kBAAmB9sD,GAAMA,KAAQ/uH,OAAO,cAAa,EC3JlF,SAAS87K,GAASziM,GACvB,IAAQk1B,EAAiBN,GAAU2iB,IAA3BriB,aAEFinC,EAAQtnB,EAAAA,SAAwB,CACpC4sJ,mBAAoB,EACpBC,QAAS,KACTC,YAAa,GACbJ,gBAAiB,KACjBC,iBAAkB,KAClBkB,gBAAiB,KACjBL,eAAe,EACfM,YAAa,WAsGR,OAtDPhmK,EAAAA,OACE,WAAA,OAAM38B,EAAMypB,cAAA,IACZ,WAAM,IAAAmT,EAAAwuH,EACJjvF,EAAMslI,mBAAkF,QAA7D7kK,EAAwBwuH,QAAxBA,EAAAprJ,EAAMypB,0BAAkB2hI,EAAAA,EAAAl2H,EAAa97B,MAAMqwB,sBAAkB,IAAAmT,EAAAA,EAAA,CAC1F,GACA,CAAEU,WAAW,IAEfX,EAAAA,OACE,WAAA,OAAM38B,EAAM5G,KACZ,IAAA,SAACupB,GAzBH,IAA4BvpB,EA0BpB4G,EAAM0nG,SAzBRvvG,EADsBiB,EA2BHupB,GAzBrBw5C,EAAMwlI,YAAcvoM,GAASA,EAAMnC,OAASmC,EAAM6L,KAAI,SAAC4Y,GAAS,OAAA63H,GAAM73H,EAAK,IAAI,CAAC2kL,MAE1ErmI,EAAAwlI,YAAcvoM,EAAQ,CAACs8I,GAAMt8I,IAAU,CAACopM,MAZlD,SAAwBppM,GAClBjB,EAAQiB,GACJ+iE,EAAAulI,QAAUtoM,GAASA,EAAMnC,OAASy+I,GAAMt8I,EAAM,IAAMopM,KAE1DrmI,EAAMulI,QAAUtoM,EAAQs8I,GAAMt8I,GAASopM,IAE3C,CA+BMI,CAAejgL,EAEnB,GACA,CAAE2a,WAAW,IAEfX,EAAAA,OACE,WAAA,OAAM38B,EAAMgjB,IACZ,IAAA,SAACL,GA1DH,IAA4BK,EACpBu+K,KADoBv+K,EA2DLL,GA1DUzmB,SAAS,GAAA05B,OAAG5S,GAAQ,IAAMw/K,KAAuBx/K,QAC3EqkC,MAAMk6I,IAAoBA,EAAkB,IAC/CplI,EAAMolI,gBAAkBA,EAyD1B,GACA,CAAEjkK,WAAW,IAEfX,EAAAA,OACE,WAAA,OAAM38B,EAAMijB,KACZ,IAAA,SAACN,GA1DH,IAA6BM,EACrBu+K,KADqBv+K,EA2DLN,GA1DWzmB,YAAS05B,OAAG3S,GAAS,IAAM/mB,SAASsmM,KAAuB77K,OAAO,KAAM,KACpG0gC,MAAMm6I,IAAqBA,EAAmB,GAAKA,GAAoB,KAC1ErlI,EAAMqlI,iBAAmBA,EAyD3B,GACA,CAAElkK,WAAW,IAEfX,EAAAA,OACE,WAAA,OAAM38B,EAAM4gM,oBACZ,IAAA,SAACj+K,GACCw5C,EAAMkmI,cAAgB1/K,CACxB,GACA,CAAE2a,WAAW,IAEfX,EAAAA,OACE,WAAA,OAAM38B,EAAMoiF,IACZ,IAAA,SAACz/D,GACCw5C,EAAMumI,gBAAkB//K,CAC1B,GACA,CAAE2a,WAAW,IAEfX,EAAAA,OACE,WAAA,OAAM38B,EAAM4yB,KACZ,IAAA,SAACjQ,GACW,SAANA,IAAcw5C,EAAMwmI,YAAc,SAC5B,SAANhgL,IAAcw5C,EAAMwmI,YAAc,SACxC,GACA,CAAErlK,WAAW,IAER,CACL6+B,MAAAA,EACA0mI,QArGF,WACE,IAAMnB,EAAUc,KAChBrmI,EAAMulI,QAAUA,EACVvlI,EAAAolI,gBAAkBG,EAAQ1+K,OAChCm5C,EAAMqlI,iBAAmBtlM,SAASwlM,EAAQ/6K,OAAO,KAAM,GACzD,EAiGEm8K,gBAjEF,SAAyBrtD,GACvB,IAAIstD,GAAK,EAIF,OAHF5mI,EAAMkmI,gBACJU,EAAQ,IAARttD,GAAqB,IAARA,GAEbstD,CACT,EA6DF,okBCvHA,IAAMC,GAAiC,WAA0C,MAAA,CAC/EjsK,UADsCh4B,UAAA9H,OAAA,QAAAkD,IAAA4E,UAAA,KAAAA,UAAA,GAEtCy3B,UAAU,EAEV4rD,KAAM,CACJrrD,SAAS,EACTksK,gBAAiB,CAAC,GAGpBjgL,KAAM,CACJ+T,SAAS,EACTujG,YAAa,CAAC,GAGhBr3G,MAAO,CACL8T,SAAS,EACTujG,YAAa,CAAC,GAGhB4oE,QAAS,CACPnsK,SAAS,EACTosK,uBAAwB,CAAC,EACzBC,uBAAwB,CAAC,GAG3BtpL,QAAS,CACPid,SAAS,EACTssK,sBAAuB,CAAC,EACxBC,wBAAyB,CAAC,GAE9B,EC9BgB,SAAAC,GAAcvjM,EAAwBm8D,GACpD,IAAA6Y,EAA4BpgD,GAAU2iB,IAA9B5/C,EAAAq9E,EAAAr9E,EAAGu9B,EAAa8/C,EAAb9/C,aAELsuK,EAAkB3rL,EAAAA,UAAkC,WACjD,OAAA7X,EAAMitB,MAAQt1B,EAAEu9B,EAAa97B,MAAM6zB,MAAMtkB,MAAM,IACxD,IACA,SAAS86L,EAAeC,GACtB,IHQEX,EACEY,EGTEC,EAAWJ,EAAgBpqM,MAC1B,OAAAwC,EAASgoM,IAAaA,EAASF,EAAU,GAAKE,EAASF,EAAU,IHOtEX,EAAK,IACHY,EGRwFD,EHQ3E9rM,cACLspM,KACZ6B,EAAK7B,GAAWyC,IAEXZ,EGXP,CACM,IAAAc,EAAiBhsL,EAAAA,UAA0B,WAK/C,IAJA,IAAMkrL,EAAsB,GAInBlqM,EAAIsjE,EAAMslI,mBAAoB5oM,GAFlB,EAE4BA,IAC/CkqM,EAAG3/L,KAAK,CACNi6F,IAAKxkG,EACLo9D,QAASwtI,EAAe5qM,KAGxB,GAAAsjE,EAAMslI,mBATW,EAUnB,IAAA,IAAS5oM,EAVU,EAUDA,EAAIsjE,EAAMslI,mBAAoB5oM,IAC9CkqM,EAAG3/L,KAAK,CACNi6F,IAAKxkG,EACLo9D,QAASwtI,EAAe5qM,KAIvB,OAAAkqM,CACT,IAEO,MAAA,CACLc,eAAAA,EAEJ,okBClCA,IAAMC,GAAwB,CAC5B3gK,MAAO,QACP4gK,SAAU,WACVC,YAAa,cAGfC,GAAe5zJ,kBAAgB,CAC7Br4C,KAAM,gBACNw6C,cAAc,EACdxyC,MAAO,CACL6d,KAAM,CACJhiB,KAAM3C,OACN0uB,QAAS,kBAAoB,IAAA,GAE/B8B,aAAc,CACZ7tB,KAAM2lB,QACNoG,aAAS,GAEXgL,MAAO,CACL/2B,KAAM9C,OACN6uB,QAAS,kBAAc,IAAA,GAEzBjwB,EAAGkC,SACHJ,OAAQP,OACRunM,KAAM,CAAC1nM,OAAQc,UACf6mM,WAAY,CAAC3nM,OAAQc,WAEvBkjD,QAAW7jD,OAAOuN,OAAOq9L,KACzBxzJ,eAAMtwC,EAAA48B,GAAiB,IC8BjBsnK,ED9BS5sK,EAAAsF,EAAAtF,KACP6b,EAAgBzxB,KAChB0e,GC4BF8jK,EAAcvuK,GAAe4hB,IAe5B,CACL4sJ,cAdoBtsL,EAAAA,UAAmB,WAChC,MAAA,IAAA+d,OAAIsuK,EAAY9qM,MAAwB,qBACjD,IAaEgrM,kBAZwBvsL,EAAAA,UAAiB,WACzC,MAAA,GAAA+d,OAAUsuK,EAAY9qM,MAAA,yBACxB,IAWEirM,qBAV2BxsL,EAAAA,UAAmB,WACvC,MAAA,IAAA+d,OAAIsuK,EAAY9qM,MAAgC,6BACzD,IASEkrM,sBAR4BzsL,EAAAA,UAAmB,WACxC,MAAA,IAAA+d,OAAIsuK,EAAY9qM,MAAgC,6BACzD,MDxCUi9B,EAAWR,KAAXQ,OAEF0xE,EAAelwF,EAAAA,UAAiB,WAChC,GAAoB,UAApB7X,EAAM6d,KAAKukE,KAAkB,CAAA,IAAAvlD,EAAA0nK,EACzBC,EAAUxkM,EAAM6d,KAAKkF,KAAKgC,UAEzB,OADUy/K,EAAU,KAA0D,QAA1D3nK,EAA6B,QAA7B0nK,EAAOvkM,EAAM0pB,oBAAgB,IAAA66K,EAAAA,EAAAvkM,EAAMvG,OAAOiwB,oBAAgB,IAAAmT,GAAAA,GAC9EjH,IAAAA,OAAe4uK,GAAYA,CACpC,CAEA,OADYxkM,EAAMrI,EAAEqI,EAAMvG,OAAOyzB,WAAWvkB,MAAM,KACvC3I,EAAM6d,KAAKkF,KAAK8B,WAAWjtB,WACxC,IACM6sM,EAAY5sL,EAAAA,UAAkB,WAClC,MAAuB,SAAhB7X,EAAM4yB,KACf,IACM4D,EAAW3e,EAAAA,UAAkB,WACjC,MAA2B,UAApB7X,EAAM6d,KAAKukE,MAA4C,IAAxBpiF,EAAM6d,KAAKmkL,QACnD,IACM0C,EAAU7sL,EAAAA,UAAS,WACvB,IAAA8sL,EAAiD3kM,EAAM6d,KAA/CukE,EAAMuiH,EAANviH,KAAMr/D,EAAA4hL,EAAA5hL,KAAMm/K,EAAeyC,EAAfzC,cAAev6C,EAAAg9C,EAAAh9C,UAC7BnpJ,EAAM,IAAID,KACVqmM,EACK,SAATxiH,EACI5jF,EAAIqmB,aAAe9B,EAAK8B,YAAcrmB,EAAImmB,gBAAkB5B,EAAK4B,cACjEu9K,IAAkBxsD,KAAQ/uH,OAAO,cAChC,MAAA,CACLyZ,EAAI+jK,cAAc/qM,MAAAH,EAAAA,EAAAA,EAAA,CAAA,EAEfo9B,EAAOj9B,MAAMo9B,SAAWA,EAASp9B,OACjCi9B,EAAOj9B,MAAMy9B,QAAU8wH,GACvBvnH,EAAIgkK,kBAAkBhrM,MAAQwrM,GAGrC,IACMC,EAAY,SAAC3tM,GACjB,IAAIs/B,EAASp9B,MAAb,CACM,IAAA0rM,EAAWhB,GAAsB5sM,EAAE2E,MACzCy7B,EAAKwtK,EAAU5tM,EAFK,GAiBtB,OAAO,WACL,OACE8I,EAAM6d,MAAA4zB,EAAAK,YAAA,KAAA,CAAAJ,MACOgzJ,EAAQtrM,MAAAi+C,QAAgBwtJ,EAAAE,WAAuBF,EAAWG,cAAeH,GACjF,CAAA1xJ,EAAc,YAAQ,EAAW,CAChC51B,sEAfM6iB,EAAIikK,qBAAqBjrM,OAAQ,CAAA2uG,EAAa3uG,mCAC9CgnC,EAAIkkK,sBAAsBlrM,OACnCqrM,CAAAA,EAAUrrM,OACT+5C,EAAc,kBAAc,EAAW,CACrCl1B,OAAQqzB,GAAKtxC,GAAAA,EAAM6d,YAYnBI,OAAQqzB,GAAKtxC,GAAAA,EAAM6d,UAM/B,ukBExEF,IAAAonL,GAAe50J,kBAAgB,CAC7Br4C,KAAM,YACNgI,MAAAA,GACAswC,eAAMtwC,EAAAA,GAAkB,IAATgf,EAAA4d,EAAA5d,MACPm0B,EAAgBzxB,KACtBszD,EAA4BpgD,GAAU2iB,IAA9B5/C,EAAAq9E,EAAAr9E,EAAGu9B,EAAa8/C,EAAb9/C,aAEXgwK,EAA4CzC,GAASziM,GAA7Cm8D,EAAO+oI,EAAP/oI,MAAO0mI,EAAAqC,EAAArC,QAASC,EAAgBoC,EAAhBpC,gBAGlB1iK,EDnCM,SAAiBpgC,EAAwBm8D,GACjD,IAAA+nI,EAAcvuK,GAAe4hB,IA0C5B,MAAA,CACLpW,KAzCWtpB,EAAAA,UAAmB,WACvB,MAAA,IAAA+d,OAAIsuK,EAAY9qM,UAAAw8B,OAAYsuK,EAAY9qM,MAAAw8B,MAAAA,OAAU51B,EAAM4yB,OACjE,IAwCEywD,MAvCYxrE,EAAAA,UAAmB,WACxB,MAAA,IAAA+d,OAAIsuK,EAAY9qM,oBAAAw8B,OAAmBsuK,EAAY9qM,MAAAw8B,aAAAA,OAAiBumC,EAAMumI,iBAC/E,IAsCEyC,QArCcttL,EAAAA,UAAmB,WAC1B,MAAA,IAAA+d,OAAIsuK,EAAY9qM,MAAgB,aACzC,IAoCEg0B,MAnCYvV,EAAAA,UAAmB,WACxB,MAAA,IAAA+d,OAAIsuK,EAAY9qM,MAAc,WACvC,IAkCEgsM,eAjCqBvtL,EAAAA,UAAmB,WACjC,MAAA,IAAA+d,OAAIsuK,EAAY9qM,MAAwB,qBACjD,IAgCEisM,mBA/ByBxtL,EAAAA,UAAmB,WACrC,MAAA,IAAA+d,OAAIsuK,EAAY9qM,MAA6B,0BACtD,IA8BEksM,WA7BiBztL,EAAAA,UAAmB,WAC7B,MAAA,IAAA+d,OAAIsuK,EAAY9qM,MAAoB,iBAC7C,IA4BEmxB,MA3BY1S,EAAAA,UAAmB,WACxB,MAAA,IAAA+d,OAAIsuK,EAAY9qM,MAAc,WACvC,IA0BEmsM,UAzBgB1tL,EAAAA,UAAmB,WAC5B,MAAA,IAAA+d,OAAIsuK,EAAY9qM,MAAmB,gBAC5C,IAwBEosM,aAvBmB3tL,EAAAA,UAAmB,WAC/B,MAAA,IAAA+d,OAAIsuK,EAAY9qM,MAAuB,oBAChD,IAsBEqsM,cArBoB5tL,EAAAA,UAAmB,WAChC,MAAA,IAAA+d,OAAIsuK,EAAY9qM,MAAwB,qBACjD,IAoBEssM,UAnBgB7tL,EAAAA,UAAmB,WAC5B,MAAA,IAAA+d,OAAIsuK,EAAY9qM,MAAmB,gBAC5C,IAkBEusM,aAjBmB9tL,EAAAA,UAAmB,WAC/B,MAAA,IAAA+d,OAAIsuK,EAAY9qM,MAAuB,oBAChD,IAiBF,CCvBgBwsM,CAAiB5lM,EAAOm8D,GAG5B0nI,EAAmBN,GAAcvjM,EAAOm8D,GAAxC0nI,eAGFgC,EJPM,SAAe7lM,EAAwBm8D,GACrD,IAAQjnC,EAAiBN,GAAU2iB,IAA3BriB,aAEF9f,EAAUyC,EAAAA,UAA4B,WAC1C,IAAMiuL,EAAkBpwD,GAAM9/G,GAAAA,OAAGumC,EAAMolI,gBAAA,KAAA3rK,OAAmBumC,EAAMqlI,mBAOzD,MANI,CACTa,cAAelmI,EAAMkmI,cACrBF,WAAY2D,EAAgB1/K,SAC5Bg8K,oBAAqB0D,EAAgBn/K,OAAO3mB,EAAM2mB,QAClDy7D,KAAMjmB,EAAMumI,gBAGhB,IACMqD,EAAaluL,EAAAA,UAA8B,WAAM,IAAA+kB,EAAAopK,EAC/Cr8K,UAAmBiT,EAA0B,QAA1BopK,EAAAhmM,EAAM2pB,wBAAoB,IAAAq8K,EAAAA,EAAA9wK,EAAa97B,MAAMuwB,wBAAoB,IAAAiT,GAAAA,EACtF,OAAA5jB,GAAU2Q,GACLq5K,GAA+Br5K,GAEjC2nB,GAAAA,GAAA,CAAA,EACF0xJ,MACAr5K,EAEP,IACMoN,EAAUlf,EAAAA,UAAkB,WAChC,QAASkuL,EAAW3sM,OAAS2sM,EAAW3sM,MAAM29B,OAChD,IAkCO,MAAA,CACL3hB,QAAAA,EACA2wL,WAAAA,EACAhvK,QAAAA,EACAkvK,uBAhCF,SAAgCjuM,GAC9B,IAAI+qM,GAAK,EACHnyD,EAAOm1D,EAAW3sM,MAIjB,OAHFw3I,GAASA,EAAK75G,UAA0B,IAAf65G,EAAK54I,MAAoB44I,EAAK54I,IAAU44I,EAAK54I,GAAM++B,WAC1EgsK,GAAA,GAEAA,CACT,EA0BEmD,wBAnBO,SAAwBluM,EAAco/B,GAC7C,IAAI2rK,GAAK,EACHnyD,EAAOm1D,EAAW3sM,MAIjB,OAHHw3I,IAASA,EAAKp6G,UAAao6G,EAAK54I,IAAS44I,EAAK54I,GAAMo/B,IAAcw5G,EAAK54I,GAAMo/B,GAAWZ,YACrFusK,GAAA,GAEAA,CACT,EAaEoD,qBAZF,WACE31J,EAAAA,UAAS,WACI5zC,EAAAoD,EAAMghM,qBAAuBhhM,EAAMghM,sBAAwB5rL,GAAAA,EAAQhc,OAChF,GACF,EAUF,CI5DuBgtM,CAAepmM,EAAOm8D,GAGnCkqI,EAAcxuL,EAAAA,UAAwB,WAC1C,IAAK7X,EAAMwb,OAASxb,EAAMwb,MAAMvkB,OAAS,EAChC,OAAA,KAET,IAAAqvM,EAAAzpL,GAAiB7c,EAAMwb,MAAA,GAAhB+qL,EAAAD,EAAA,GAAI1kH,EAAE0kH,EAAA,GACb,OAAI5wD,GAAM6wD,GAAIvgL,SAAS0vH,GAAM9zD,IACpB,CACLpqF,KAAM+uM,EACNt8J,GAAI23C,GAGD,CACLpqF,KAAMoqF,EACN33C,GAAIs8J,EAER,IACS,SAAAC,EAAkCxjL,EAAcC,GACvD,IAAIuT,GAAW,EACf,GAAI6vK,EAAYjtM,OAASitM,EAAYjtM,MAAM5B,MAAQ6uM,EAAYjtM,MAAM6wC,GAAI,CACvE,IAAMw8J,EAAY/wD,GAAM2wD,EAAYjtM,MAAM5B,MAAMwrB,OAC1C8/H,EAAUpN,GAAM2wD,EAAYjtM,MAAM6wC,IAAIjnB,OAC5C,GAAIA,IAASyjL,EAEXjwK,EAAWvT,EADM/mB,SAASw5I,GAAM2wD,EAAYjtM,MAAM5B,MAAMmvB,OAAO,KAAM,SAEvE,GAAW3D,IAAS8/H,EAAS,CAE3BtsH,EAAWvT,EADI/mB,SAASw5I,GAAM2wD,EAAYjtM,MAAM6wC,IAAItjB,OAAO,KAAM,GAEnE,CACF,CACO,OAAA6P,CACT,CAiBAmG,EAAAA,OACE,WACS,MAAA,CACL3Z,QAAA4S,OAASumC,EAAMolI,iBACft+K,MAAA2S,GAAAA,OAAUumC,EAAMqlI,kBAEpB,IACA,SAAC7+K,GACY3iB,EAAAA,EAAMy/I,gBAAkBz/I,EAAMy/I,iBAAmB98H,CAAAA,EAAAA,IAC5DkjL,EAAWM,sBACb,IAEF,IAAMO,EAAa,CACjBC,qBAAsB9uL,YAA4B,WAChD,IAAMkrL,EAAwB,GAC1BnB,EAAgBzlI,EAAMolI,gBAAkB,GACxC/5L,EAAc20D,EAAMolI,gBAAkB,GACtC8E,EAAYjtM,OAASitM,EAAYjtM,MAAM5B,MAAQ6uM,EAAYjtM,MAAM6wC,KACnE23J,EAAQlsD,GAAM2wD,EAAYjtM,MAAM5B,MAAMwrB,OACtCxb,EAAMkuI,GAAM2wD,EAAYjtM,MAAM6wC,IAAIjnB,QAGhC4+K,EAAQX,KACFW,EAAAX,IAENz5L,EAAMy5L,KACFz5L,EAAAy5L,IAGR,IAAA,IAASpoM,EAAI+oM,EAAO/oM,GAAK2O,EAAK3O,IAC5BkqM,EAAG3/L,KAAK,CACNhK,MAAOP,EACP+rD,MAAOjtD,EAAEu9B,EAAa97B,MAAMqzB,cAAe,CAAEzJ,KAAMnqB,IACnD29B,UAAU,IAGP,OAAAusK,CACT,IACA6D,oBAAqB/uL,YAAkB,WAC9B,OAAAguL,EAAWI,uBAAuB,OAC3C,IACAY,qBAAsBhvL,YAAkB,WAC/B,OAAAguL,EAAWK,wBAAwB,OAAQ,cACpD,IACAY,sBAAuBjvL,YAA4B,YA3DrD,WAA6B,IAAAkvL,EAAAC,EAC3B,GAAgBD,QAAZA,EAAAV,EAAYjtM,aAAZ2tM,IAAYA,GAAZA,EAAmBvvM,cAAQwvM,EAAAX,EAAYjtM,aAAZ4tM,OAAAA,EAAmB/8J,GAAI,CACpD,IAAMw8J,EAAY/wD,GAAM2wD,EAAYjtM,MAAM5B,MAAMwrB,OAC1C8/H,EAAUpN,GAAM2wD,EAAYjtM,MAAM6wC,IAAIjnB,OACtCikL,EAAW/qM,SAASw5I,GAAM2wD,EAAYjtM,MAAM5B,MAAMmvB,OAAO,KAAM,IACjE6/K,EAAkCrqI,EAAMolI,gBAAiBplI,EAAMqlI,oBAC3DrlI,EAAAqlI,iBACJrlI,EAAMolI,kBAAoBkF,EACtBQ,EACA9qI,EAAMolI,kBAAoBz+C,EAC1B,EACA3mF,EAAMqlI,iBAEhB,CACF,CA8CgB0F,GAEZ,IADA,IAAMnE,EAAwB,GACrBlqM,EPlIkB,EOkIOA,GPhIR,GOgIiCA,IAAK,CAC9D,IAAM29B,EAAWgwK,EAAkCrqI,EAAMolI,gBAAiB1oM,GAC1EkqM,EAAG3/L,KAAK,CACNhK,MAAOP,EACP+rD,MAAOjtD,EAAEu9B,EAAa97B,MAAMszB,eAAgB,CAAEzJ,MAAOpqB,IACrD29B,SAAAA,GAEJ,CACO,OAAAusK,CACT,IACAoE,qBAAsBtvL,YAAkB,WACtC,MAAiC,UAA1BskD,EAAMumI,iBAA+BmD,EAAWI,uBAAuB,QAChF,IACAmB,sBAAuBvvL,YAAkB,WAChC,OAAAguL,EAAWK,wBAAwB,QAAS,mBAIjDmB,EAAa,CACjBn8E,WAAYrzG,YAAuB,WAC1B,MAAA,CACL,CAAEze,MAAO,QAASwrD,MAAOjtD,EAAEu9B,EAAa97B,MAAMwzB,aAC9C,CAAExzB,MAAO,OAAQwrD,MAAOjtD,EAAEu9B,EAAa97B,MAAMuzB,YAEjD,IACA0hH,UAAWx2H,YAAkB,WACpB,OAAAguL,EAAWI,uBAAuB,OAC3C,IACAvuJ,WAAY7/B,YAAkB,WACrB,OAAAguL,EAAWK,wBAAwB,OAAQ,uBAIhDoB,EAAa,CACjBh1J,KAAMz6B,YAAiB,WACd,OAAAskD,EAAMkmI,cAAgB1qM,EAAEu9B,EAAa97B,MAAMyzB,aAAel1B,EAAEu9B,EAAa97B,MAAM0zB,YACxF,IACAy6K,MAAO1vL,YAAiB,WAChB,IAAAqK,EAAI2jL,EAAWE,WAAW3sM,MAAM8pM,QACtC,OAAO/mI,EAAMkmI,cAAgBngL,EAAEkhL,uBAAyBlhL,EAAEihL,sBAC5D,IACA90D,UAAWx2H,YAAkB,WAEzB7X,MAAgB,SAAhBA,EAAM4yB,OACNizK,EAAWI,uBAAuB,YAClCJ,EAAWI,uBAAuB,UAEtC,IACAvuJ,WAAY7/B,YAAkB,WACtB,IAAAsL,EAAIg5C,EAAMkmI,cAAgB,yBAA2B,yBACpD,OAAAwD,EAAWK,wBAAwB,UAAW/iL,OAInDqkL,EAAa,CACjBl1J,KAAMz6B,YAAiB,WACd,MAA0B,UAA1BskD,EAAMumI,gBAA8B/qM,EAAEu9B,EAAa97B,MAAM2zB,OAASp1B,EAAEu9B,EAAa97B,MAAM4zB,UAChG,IACAu6K,MAAO1vL,YAAiB,WAChB,IAAAqK,EAAI2jL,EAAWE,WAAW3sM,MAAM0gB,QACtC,MAAiC,UAA1BqiD,EAAMumI,gBAA8BxgL,EAAEmhL,sBAAwBnhL,EAAEohL,uBACzE,IACAj1D,UAAWx2H,YAAkB,WAC3B,MAAuB,SAAhB7X,EAAM4yB,OAAoBizK,EAAWI,uBAAuB,UACrE,IACAvuJ,WAAY7/B,YAAS,WACnB,IAAMsL,EAA8B,UAA1Bg5C,EAAMumI,gBAA8B,wBAA0B,0BACjE,OAAAmD,EAAWK,wBAAwB,UAAW/iL,OA2FnDskL,EAAgB,SAACC,EAAoCxwM,EAAeywM,GACpE,GAAA/qM,EAAWoD,EAAM0nM,IAAkB,CACrC,IAAMtyL,EAA2B,CAC/BqrL,KAAMnvJ,GAAAA,GACDq2J,CAAAA,EAAAA,GACA9B,EAAWzwL,QAAQhc,OAExBlC,EAAAA,GAED8I,EAAM0nM,GAA6BtyL,EACtC,GAEIyvL,EAAY,SAAC3tM,EAAeywM,GAC1B,IAAAxlL,EAAIuzH,GAAMiyD,EAAS5kL,MACrB/iB,EAAM0nG,SACJvrC,EAAMwlI,YAAYnnI,MAAK,SAAC38C,UAASA,EAAK+H,OAAOzD,EAAE,IAC3Cg6C,EAAAwlI,YAAc9lL,GAAOsgD,EAAMwlI,aAAa,SAAC9jL,UAAUA,EAAK+H,OAAOzD,MAE/Dg6C,EAAAwlI,YAAYv+L,KAAK+e,GAGzBg6C,EAAMulI,QAAUv/K,EAEJslL,EAAA,cAAevwM,EAAGywM,IAE5BC,EAAkB,SAAC1wM,EAAeywM,GACxBF,EAAA,oBAAqBvwM,EAAGywM,IAElCE,EAAiB,SAAC3wM,EAAeywM,GACjC3nM,EAAM6gM,wBACR3pM,EAAEw8E,iBAEU+zH,EAAA,mBAAoBvwM,EAAGywM,IAGjCG,EAAiBjwL,EAAAA,UAA2B,WAEzC,OAD2BkwL,GAA2B/nM,EAAOm8D,EAEtE,IAmDM6rI,EAAgBnwL,EAAAA,UAA2B,WAK/C,IAJA,IAAMkrL,EAAuB,GACvBkF,EN/UuB,SAACjoM,EAAwBm8D,GAK1D,IAJA,IAAyBn5C,EAA+Bm5C,EAAhDolI,gBAAuBG,EAAyBvlI,EAAzBulI,QAASC,EAAgBxlI,EAAhBwlI,YAChCh7K,EAAqB3mB,EAArB2mB,OAAQ+gF,EAAa1nG,EAAb0nG,SAEVugG,EAA4B,GAACppK,EAAA,SAAAw+D,GAEjC,IAAMt6E,EAAO,IAAIxkB,KAAKykB,EAAMq6E,EAAM,GAC5BsqD,EAAYjgD,IACZi6F,EAAYnnI,MAAK,SAAC38C,GAAA,OAASA,EAAKmF,SAAWA,GAAQ9mB,SAAS2hB,EAAK8I,OAAO,KAAM,MAAQ02E,CAAG,IAC3FqkG,EAAQ1+K,SAAWA,GAAQ9mB,SAASwlM,EAAQ/6K,OAAO,KAAM,MAAQ02E,EACrE4qG,EAAU7kM,KAAK,CACbg/E,KAAM,OACNulE,UAAAA,EACA5kI,KAAAA,EACAm/K,cAAexsD,GAAM3yH,GAAM4D,OAAOA,GAClCw7K,WAAY,KACZC,oBAAqB,KACrBC,eAAe,KAZVhlG,EDjDwB,ECiDGA,GD/CJ,GC+C+BA,IAAOx+D,EAAAw+D,GAgB/D,OAAA4qG,CACT,CMyTwCF,CAA0B/nM,EAAOm8D,GAC7D+rI,EAAW7nM,KAAKsL,KAAKs8L,EAAUhxM,OP9WD,GO+WhC+D,EAAQ,EACHnC,EAAI,EAAGA,GAAKqvM,EAAUrvM,IAAK,CAElC,IADA,IAAM0rD,EAAsB,GACnB5jB,EAAI,EAAGA,GPlXkB,EOkXeA,IAC3C4jB,EAAAnhD,KAAK6kM,EAAUjtM,IACVA,GAAA,EAEX+nM,EAAG3/L,KAAKmhD,EACV,CACO,OAAAw+I,CACT,IA8BA,OAAO,WACL,OAAAtxJ,EAAAA,YAAA,MAAA,CAAAC,MACctR,EAAIe,KAAK/nC,OAClBysM,CAAAA,EAAW9uK,QAAQ39B,OA/NxBq4C,EAAAA,YAAA,MAAA,CAAAC,MACctR,EAAI+kK,QAAQ/rM,OAAA,CAAAq4C,EAAAK,YAAA,MAAA,CAAAJ,MACVtR,EAAIhT,MAAMh0B,OACnB,CAAA+5C,EAAc,YAAQ,EAAW,CAChCl1B,OAAQqzB,GAAA,CAAA,EAAKu0J,EAAWzwL,QAAQhc,sCAGxBgnC,EAAIglK,eAAehsM,OAAA,CAC5BstM,EAAWE,oBAAoBxtM,OAC9Bq4C,EAAAA,YAAA,MAAA,CAAAC,MAAYtR,EAAIilK,mBAAmBjsM,OAAA,CAAAq4C,EAAAA,YAAAkvG,GAAArsG,aAAA,CAAAjK,WAEtB8xB,EAAMolI,yDAANplI,EAAMolI,wBACTplI,EAAMwmI,YACZ7vG,WAAW,GACP+yG,EAAWE,WAAW3sM,MAAM4pB,KAAKs3G,YACrC,CAAA9jG,SAAUkwK,EAAWG,qBAAqBztM,cACjCstM,EAAWC,qBAAqBvtM,QAAA,QAI9CstM,EAAWS,qBAAqB/tM,OAC/Bq4C,EAAAK,YAAA,MAAA,CAAAJ,MAAYtR,EAAIilK,mBAAmBjsM,OAAA,CAAAq4C,EAAAA,YAAAkvG,GAAArsG,aAAA,CAAAw+C,WAEpB,EAAAzoD,WACF8xB,EAAMqlI,iBAAA,sBAAA,SAAA/iE,GAAA,OAANtiE,EAAMqlI,iBAAA/iE,CAAA,EAAAj6H,KACT23D,EAAMwmI,aACRkD,EAAWE,WAAW3sM,MAAM6pB,MAAMq3G,YACtC,CAAA9jG,SAAUkwK,EAAWU,sBAAsBhuM,cAClCstM,EAAWI,sBAAsB1tM,QAAA,QAI/CiuM,EAAWh5D,UAAUj1I,OAAAq4C,EAAAK,YAAA,MAAA,CAAAJ,MACRtR,EAAIilK,mBAAmBjsM,MAAOguC,MAAA,gBAAA,CAAAqK,EAAAA,YAAA02J,GAAA7zJ,aAAA,CAAAjK,WAE7B8xB,EAAMumI,gBACf,sBAAA,SAAAjkE,GAAA,OADStiE,EAAMumI,gBACfjkE,CAAA,EAAArnF,QAAA,iBAAA5yC,KACM23D,EAAMwmI,aACRkD,EAAWE,WAAW3sM,MAAMgpF,KAAK6gH,gBACrC,CAAAzsK,SAAU6wK,EAAW3vJ,WAAWt+C,MAAA+9B,SACtB0uK,EAAWM,wBAvOVlkL,EAyOVq8B,EAAA+oJ,EAAWn8E,WAAW9xH,MAAM6L,KAAI,SAAC4Y,GAAA,OAAA4zB,EAAAA,YAAAu0H,GAAA,CAAAnoK,IACbggB,EAAKzkB,MAAAA,MAAcykB,EAAKzkB,OACxC,CAAAwuB,QAAA,WAAA,MAAA/J,CAAAA,EAAK+mC,MACR,OA5OS,mBAAA3iC,GAAAu8B,oBAAAtlD,OAAAP,UAAAf,SAAAC,KAAAoqB,KAAAu8B,EAAAhhC,QAAAyE,GA6OVq8B,EAAA,CAAA12B,QAAA,WAAA,MAAA,CAAA02B,EAAA,OAKNgpJ,EAAWj5D,UAAUj1I,OACpBq4C,EAAAK,YAAA,MAAA,CAAAJ,MAAYtR,EAAIilK,mBAAmBjsM,OACjC,CAAAq4C,EAAAA,YAAA22J,GAAA9zJ,aAAA,CAAA5C,MACStR,EAAIklK,WAAWlsM,MAAAw5B,MACfupC,EAAMkmI,cAAgB,UAAY,UACzC79L,KAAA,SACI8iM,EAAWC,MAAMnuM,MAAA,CAAAo9B,SACX8wK,EAAW5vJ,WAAWt+C,MAAAi+C,QACvB,WACD8kB,EAAAkmI,eAAiBlmI,EAAMkmI,cAC7BwD,EAAWM,sBACb,+BAECmB,EAAWh1J,KAAKl5C,MACnB,MAGHouM,EAAWn5D,UAAUj1I,OACpBq4C,EAAAK,YAAA,MAAA,CAAAJ,MAAYtR,EAAIilK,mBAAmBjsM,OAAA,CAAAq4C,EAAAA,YAAA6F,GAAAhD,aAAA,CAAA9vC,KAEzB23D,EAAMwmI,aACR6E,EAAWD,MAAMnuM,MAAA,CAAAo9B,SACXgxK,EAAW9vJ,WAAWt+C,MAChCi+C,QAAS,WACCwrJ,GACV,+BAEC2E,EAAWl1J,KAAKl5C,MACnB,UAgJqCq4C,EAAAK,YAAA,MAAA,CAAAJ,MAC/BtR,EAAIijD,MAAMjqF,OAAA,CAAkC,UAA1B+iE,EAAMumI,gBAjGxCjxJ,EAAAA,YAAA,QAAA,CAAAC,MACgBtR,EAAI7V,MAAMnxB,OAAA,CAAAq4C,EAAAK,YAAA,QAAA,CAAAJ,MACRtR,EAAImlK,UAAUnsM,OAAA,CAAAq4C,EAAAK,YAAA,KAAA,CAAAJ,MACftR,EAAIolK,aAAapsM,OACzByqM,CAAAA,EAAezqM,MAAM6L,KACpB,SAAC4Y,EAAM7iB,GACL,OAAA8nM,EAAgBjlL,EAAKw/E,MAAG5rD,EAAAA,YAAA,KAAA,CAAAC,MACXtR,EAAIqlK,cAAcrsM,OAC1BjB,CAAAA,EAAQ6H,EAAMitB,MACXjtB,EAAMitB,KAAKjyB,GACXm4C,EAAc,YAAQ,EAAW,CAC/B51B,YAAak0B,EAAAK,YAAA,OAAA,KAAA,CAAOj0B,EAAKo4C,UACzBh4C,OAAQ,CAAEw3H,IAAK53H,EAAKw/E,QAIlC,QAAA5rD,EAAAA,YAAA,QAAA,CAAAC,MAIUtR,EAAIslK,UAAUtsM,OACzB0uM,CAAAA,EAAe1uM,MAAM6L,KAAI,SAACgoB,EAAMo7K,oCACpBjoK,EAAIulK,aAAavsM,QACzB6zB,EAAKhoB,KACJ,SAAC4Y,EAAMyqL,GAAA,OACJnsI,EAAMkmI,eAAiBxkL,EAAK43H,IAAM,IACjChkG,EAAAK,YAAAmyJ,GAAA,CAAApmM,IAAA,KAAA+3B,OACYyyK,EAAAzyK,KAAAA,OAAa0yK,GACvBzqL,KAAMA,EACN+U,MAAO5yB,EAAM4yB,MAAAj7B,EACVA,EAAA8B,OACKy7B,EAAa97B,MACrBqnM,KAAMzgM,EAAMygM,KAAAC,WACA1gM,EAAM0gM,wBACJ1gM,EAAM0pB,aACpB2tB,QAAS,SAACngD,GAAA,OAAkB2tM,EAAU3tM,EAAG2mB,EAAI,EAAAknL,WACjC,SAAC7tM,GAAkB,OAAA0wM,EAAgB1wM,EAAG2mB,EAClD,EAAA0qL,aAAc,SAACrxM,GAAA,OAAkB2wM,EAAe3wM,EAAG2mB,EAAI,GAAAyzB,GACzCtyB,CAAAA,EAAAA,GAGtB,KACF,QAuBRyyB,EAAAA,YAAA,QAAA,CAAAC,MACgBtR,EAAI7V,MAAMnxB,OAAA,CAAAq4C,EAAAK,YAAA,QAAA,CAAAJ,MACRtR,EAAIslK,UAAUtsM,OACzB4uM,CAAAA,EAAc5uM,MAAM6L,KAAI,SAACw7L,EAAM+H,oCACnBpoK,EAAIulK,aAAavsM,OACzB,CAAAqnM,EAAKx7L,KAAI,SAAC4Y,EAAMyqL,4CAEHE,EAAA5yK,KAAAA,OAAa0yK,QACjBzqL,EAAA+U,MACC5yB,EAAM4yB,MAAAj7B,EACVA,EACH8B,OAAQy7B,EAAa97B,MAAAqnM,KACfzgM,EAAMygM,KAAAC,WACA1gM,EAAM0gM,WAAAh3K,aACJ1pB,EAAM0pB,aAAA2tB,QACX,SAACngD,GAAA,OAAkB2tM,EAAU3tM,EAAG2mB,eAC7B,SAAC3mB,UAAkB0wM,EAAgB1wM,EAAG2mB,EAAI,EAAA0qL,aACxC,SAACrxM,GAAA,OAAkB2wM,EAAe3wM,EAAG2mB,WACrCmB,GAEjB,KACH,YAtNY,IAAMs/B,EA9LHr8B,EAma3B,ICnbWwmL,GAAWhyJ,GAAYwuJ,ICArByD,GAAA,CAEbz4I,QAAS,CACPp0D,KAAM,CAAC9C,OAAQc,WAGjBmkM,OAAQ,CACNniM,KAAM,CAAC9C,OAAQc,WAGjBwpD,SAAU,CACRxnD,KAAM2lB,QACNoG,SAAS,GAGXlK,QAAS,CACP7hB,KAAM,CAAC9C,OAAQc,WAGjB8uM,MAAO,CACL9sM,KAAM,CAAC9C,OAAQc,WAGjB+tB,QAAS,CACP/rB,KAAM,CAAC9C,OAAQc,WAGjB+uM,YAAa,CACX/sM,KAAM,CAAC9C,OAAQc,WAGjBk6K,OAAQ,CACNl4K,KAAM,CAAC9C,OAAQc,WAGjBgvM,OAAQ,CACNhtM,KAAM,CAAC9C,OAAQc,WAGjBivM,eAAgBtnL,QAEhBunL,YAAavnL,QAEb8U,QAAS,CACPz6B,KAAM,CAAC2lB,QAAS3nB,UAChB+tB,SAAS,GAGXsvB,aAAc,CACZr7C,KAAM3C,QAGR8vM,OAAQxnL,QAERhd,KAAM,CACJ3I,KAAM9C,OACN6uB,QAAS,SACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,SAAU,SAASvI,SAASuI,EACtC,GAGFs4C,OAAQ,CACN18D,KAAM9C,OACN6uB,QAAS,IAGXqhL,SAAU,CACRptM,KAAM,CAAC9C,OAAQc,WAGjB+4B,MAAO,CACL/2B,KAAM9C,OACN6uB,QAAS,SACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,SAAU,UAAW,WAAWvI,SAASuI,EACnD,GAGFmN,MAAO,CACLvxB,KAAM,CAAC9C,OAAQc,YClFnB,IAAAqvM,GAAe74J,kBAAgB,CAC7Br4C,KAAM,QACNgI,MAAAA,GACAswC,eAAMtwC,EAAAA,GAAkB,IAATgf,EAAA4d,EAAA5d,MACPN,EAAiBmC,KACjB02B,EAAiB5hB,GAAe,QAC9BG,EAASD,KAATC,KAEFqzK,EAAUtxL,EAAAA,UAAS,WACjB,IAAAuxL,EAAe,CAAC7xJ,EAAen+C,OAO9B,MALY,UAAf4G,EAAMwE,MAAkB4kM,EAAahmM,KAAK,GAAAwyB,OAAGE,EAAK18B,MAAM4G,EAAMwE,QAC9DxE,EAAMqjD,UAAuB+lJ,EAAAhmM,KAAAwyB,GAAAA,OAAQ2hB,EAAen+C,qBACpD4G,EAAMgpM,QAAqBI,EAAAhmM,KAAAwyB,GAAAA,OAAQ2hB,EAAen+C,mBAClD4G,EAAM+oM,aAA0BK,EAAAhmM,KAAAwyB,GAAAA,OAAQ2hB,EAAen+C,yBAEpDgwM,CACT,IAEMC,EAAYxxL,EAAAA,UAAS,WACzB,IAAMuxL,EAAe,CAAAxzK,GAAAA,OAAI2hB,EAAen+C,MAAe,aAChD4G,OAAAA,EAAM8oM,eACTM,EAAaxzK,OAAOA,GAAAA,OAAG2hB,EAAen+C,MAAA,sBACtC,CAAA,GAAAw8B,OAAI2hB,EAAen+C,MAAe,YACxC,IAEMkwM,EAAmB3zK,GAAe,wBAClC4zK,EAAkB5zK,GAAe,gBACjC6zK,EAAiB7zK,GAAe,eAChC8zK,EAAoB9zK,GAAe,kBACnC+zK,EAAuB/zK,GAAe,qBACtCg0K,EAAah0K,GAAe,iBAE5Bi0K,EAAUj0K,GAAe,cACzBk0K,EAAWl0K,GAAe,eAC1Bm0K,EAAYn0K,GAAe,gBAC3Bo0K,EAAmBp0K,GAAe,wBAIlCq0K,EAAYnyL,EAAAA,UAAS,WAAA,MAAsB,YAAhB7X,EAAM4yB,SAEjCq3K,EAAYpyL,EAAAA,UAAS,WAAA,OAAM7X,EAAMotB,OAASpO,EAAMoO,SAChD88K,EAAaryL,EAAAA,UAAS,WAAA,OAAM7X,EAAM6oM,QAAU7pL,EAAM6pL,UAClDsB,EAAetyL,EAAAA,UAAS,WAAA,OAAM7X,EAAMipM,UAAYjqL,EAAMiqL,YACtDmB,EAAavyL,EAAAA,UAAS,WAAA,OAAM7X,EAAMg+L,QAAUh/K,EAAMg/K,UAClDqM,EAAkBxyL,EAAAA,UAAS,WAAA,OAAM7X,EAAM4oM,aAAe5pL,EAAM4pL,eAC5D0B,EAAazyL,EAAAA,UAAS,WAAA,OAAM7X,EAAMu4D,QAAUv5C,EAAMu5C,UAClDgyI,EAAc1yL,EAAAA,UAAS,WAAA,OAAM7X,EAAMiwD,SAAWjxC,EAAMixC,WACpDu6I,EAAa3yL,EAAAA,UAAS,WAAA,OAAM7X,EAAM+zK,QAAU/0J,EAAM+0J,UAClD02B,EAAY5yL,EAAAA,UAAS,WAAA,OAAM7X,EAAM2oM,OAAS3pL,EAAM2pL,SAChD+B,EAAc7yL,EAAAA,UAAS,WAAA,OAAM7X,EAAMs2B,SAAWtX,EAAMsX,WACpDq0K,EAAc9yL,EAAAA,UAAS,WAAA,OAAM7X,EAAM0d,SAAWsB,EAAMtB,SAAW1d,EAAAA,SAAiBgf,EAAa,WAG7F4rL,EAAiB/yL,EAAAA,UACrB,WAAA,OACEqyL,EAAW9wM,OACX6wM,EAAU7wM,OACV+wM,EAAa/wM,OACbixM,EAAgBjxM,OAChBgxM,EAAWhxM,OACVkxM,EAAWlxM,OAAS4wM,EAAU5wM,OAC9BmxM,EAAYnxM,QAAU4wM,EAAU5wM,KAAA,IAI/ByxM,EAAiBhzL,EAAAA,UAAS,WAAA,OAAM2yL,EAAWpxM,OAAUmxM,EAAYnxM,OAAS4wM,EAAU5wM,SA2B1F,OAAO,WACL,IALM0xM,EA7Fa7oL,EAkGbvE,EACJ+zB,EAAAK,YAAA,MAAA,CAAAJ,MAAYy3J,EAAQ/vM,OACjBwxM,CAAAA,EAAexxM,MA1BhB8wM,EAAW9wM,MAAcq4C,EAAAA,YAAA,MAAA,CAAAC,MAAY23J,EAAUjwM,OAAQslB,CAAAA,EAAe,YAExE+yB,EAAAA,YAAA,MAAA,CAAAC,MAAY23J,EAAUjwM,OAAA,CAAAq4C,EAAAK,YAAA,MAAA,CAAAJ,MACR43J,EAAiBlwM,OAAA,CAC1BgxM,EAAWhxM,OAASq4C,EAAAA,YAAA,MAAA,CAAAC,MAAY63J,EAAgBnwM,OAAQ,CAAAslB,EAAe,YAAlD+yB,EAAAK,YAAA,MAAA,KAAA,CAEnBm4J,EAAU7wM,OAASq4C,EAAAA,YAAA,MAAA,CAAAC,MAAY83J,EAAepwM,OAAQslB,CAAAA,EAAe,WACrEyrL,EAAa/wM,OAASq4C,EAAAK,YAAA,MAAA,CAAAJ,MAAY+3J,EAAkBrwM,OAAQslB,CAAAA,EAAe,cAC3E2rL,EAAgBjxM,OAASq4C,EAAAK,YAAA,IAAA,CAAAJ,MAAUg4J,EAAqBtwM,OAAQ,CAAAslB,EAAe,qBAGnF6rL,EAAYnxM,QAAU4wM,EAAU5wM,OAASq4C,EAAAA,YAAA,MAAA,CAAAC,MAAYi4J,EAAWvwM,OAAQslB,CAAAA,EAAe,aACvF4rL,EAAWlxM,OAASq4C,EAAAK,YAAA,MAAA,CAAAJ,MAAYi4J,EAAWvwM,OAAQ,CAAAslB,EAAe,cAc1B,KACxC+rL,EAAUrxM,OART0xM,EAAYxyL,GAAStY,EAAM2oM,OACjCl3J,EAAAA,YAAA,MAAA,CAAAC,MAAmBm4J,EAASzwM,OAAQ0xM,CAAAA,EAAYr5J,EAAAK,YAAA,MAAA,CAAAqqJ,IAAUn8L,EAAM2oM,OAAgBjqL,MAAAA,EAAe,YAOxD,KAClCisL,EAAYvxM,OAAAq4C,EAAAA,YAAA,MAAA,CAAAC,MACCk4J,EAAQxwM,OAAQ,CAAAslB,EAAe,YAAcA,EAAe,aAEzEmsL,EAAezxM,OAAAq4C,EAAAA,YAAA,MAAA,CAAAC,MACFo4J,EAAU1wM,OAAA,CAAAq4C,EAAAK,YAAA,MAAA,CAAAJ,MACRq4J,EAAiB3wM,QAAQslB,EAAe,YACnD6rL,EAAYnxM,OAAS4wM,EAAU5wM,OAAAq4C,EAAAK,YAAA,MAAA,CAAAJ,MAAqBi4J,EAAWvwM,OAAQ,CAAAslB,EAAe,iBAM/F,OAAIgsL,EAAYtxM,MAEZslB,EAAe,YACb+yB,EAAAA,YAAAqG,GAAe93C,EAAMk3C,aArHR,mBAAAj1B,EAqHuDvE,IArHvD8gC,oBAAAtlD,OAAAP,UAAAf,SAAAC,KAAAoqB,KAAAu8B,EAAAhhC,QAAAyE,GAqHuDvE,6BAAAA,MAInEA,EAEX,ICxHWqtL,GAAOt0J,GAAYyyJ,ICCjB8B,GAAA,CAEb/6I,QAAS,CACPp0D,KAAMzE,OAGR6zM,OAAQ,CACNpvM,KAAM,CAAC9C,OAAQc,WAGjBmkM,OAAQ,CACNniM,KAAM,CAAC9C,OAAQG,OAAQW,WAGzB6jB,QAAS,CACP7hB,KAAM,CAAC9C,OAAQc,WAGjBqxM,SAAU,CACRrvM,KAAM,CAAC9C,OAAQc,WAGjBmM,MAAO,CACLnK,KAAM,CAAC9C,OAAQc,WAGjBsxM,MAAO,CACLtvM,KAAM,CAAC9C,OAAQc,YC7BnB,IAAAuxM,GAAe/6J,kBAAgB,CAC7Br4C,KAAM,WACNgI,MAAAA,GACAswC,MAAQ,WACA,IAAAiH,EAAiB5hB,GAAe,WAChCjX,EAAiBmC,KACjBlB,EAAkBD,KAExB,OAAO,WACC,IAAAyrL,EAAQzsL,EAAe,SACvBusL,EAASvsL,EAAe,UACxBwsL,EAAWxsL,EAAe,YAC1B1Y,EAAQ0Y,EAAe,SACvBuxC,EAAUvxC,EAAe,WACzBhB,EAAUgB,EAAe,WACzBs/K,EAASt/K,EAAe,UACxB2sL,EAAqBxzL,EAAAA,UAAS,WAAA,OAAMozL,GAAUC,KAE9CI,EAAWH,EAAQ15J,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OAAe2hB,EAAen+C,MAAA,YAAiB+xM,CAAAA,IAAe,KAEjFI,EAAWvlM,EAAQyrC,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OAAe2hB,EAAen+C,MAAA,YAAiB4M,CAAAA,IAAe,KAEjFwlM,EAAYxN,EAChBvsJ,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OAAe2hB,EAAen+C,MAAA,aAAA,CAC3Bkf,GAAS0lL,GAAUvsJ,EAAAA,YAAA,MAAA,CAAA0qJ,IAAU6B,EAAAxC,IAAA,GAAA9pJ,MAAA,GAAA9b,OAAyB2hB,EAAen+C,MAAuB,mBAAK4kM,MAAAA,IAElG,KAEEyN,EAAoBJ,EAAmBjyM,OAAAq4C,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OAC5B2hB,EAAen+C,MAAA,aAC3B6xM,CAAAA,GAAAx5J,EAAAK,YAAA,OAAA,CAAAJ,MAAA,GAAA9b,OAA0B2hB,EAAen+C,MAAA,WAAA,CAAgB6xM,IACzDC,GAAAz5J,EAAAA,YAAA,OAAA,CAAAC,MAAA,GAAA9b,OAA4B2hB,EAAen+C,MAAA,WAAgB8xM,CAAAA,MAkB1DQ,EACJj6J,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OAAe2hB,EAAen+C,MAAA,cAC3BqyM,CAAAA,EAAAh6J,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OACc2hB,EAAen+C,MAAA,aAAA,CAAkBskB,IAC/C6tL,EAlBiB,WAChB,IAACt7I,IAAYA,EAAQh5D,OAAe,OAAA,KAClC,IAAA00M,EAAehsL,EAAgBswC,GAEnC,OAAAxe,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OAAe2hB,EAAen+C,qBAC3BuyM,EAAa1mM,KAAI,SAACmoD,EAAQpyD,GACzB,OAAAy2C,EAAAA,YAAAyG,GAAA,CAAAr6C,IAAA+3B,UAAAA,OAAuB56B,GAASwJ,KAAA,QAAA4yC,QAAA,QA3CrB,mBAAAn1B,EA4CRmrC,IA5CQ5O,oBAAAtlD,OAAAP,UAAAf,SAAAC,KAAAoqB,KAAAu8B,EAAAhhC,QAAAyE,GA4CRmrC,EACH,CAAAxlC,QAAA,WAAA,MAAA,CADGwlC,EACH,IA7CW,IAAAnrC,CA8CZ,MAUF2pL,KAKH,OAAAn6J,EAAAA,YAAA,MAAA,CAAAC,MAAY6F,EAAen+C,OAAA,CAAAq4C,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OACV2hB,EAAen+C,MAAA,YAAA,CAC3BoyM,EACAE,IAEFJ,IAIT,ICnEW9rL,GAAUi3B,GAAY20J,ICApBS,GAAA,CAEbz+I,OAAQ,CACNvxD,KAAMhC,UAGR+uM,YAAa,CACX/sM,KAAM,CAAC9C,OAAQc,WAGjBkyB,MAAO,CACLlwB,KAAM,CAAC9C,OAAQc,WAGjBiyM,WAAY,CACVjwM,KAAM3C,QAGRsL,KAAM,CACJ3I,KAAM9C,OACN6uB,QAAS,SACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,QAAS,SAAU,SAASvI,SAASuI,EAC/C,GAGFmN,MAAO,CACLvxB,KAAM,CAAC9C,OAAQc,WAGjBgC,KAAM,CACJA,KAAM9C,OACN6uB,QAAS,QACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,QAAS,UAAW,OAAQ,gBAAiB,eAAevI,SAASuI,EAC/E,IC5CJ8rL,GAAe17J,kBAAgB,CAC7Br4C,KAAM,iBACNs4C,MAAQ,WACN,OAAO,WAAA,OAAAmB,EAAAA,YAAA,MAAA,CAAA9I,MAAA,MAAAE,OAAA,MAAA8I,QAAA,YAAAjE,KAAA,OAAAmE,MAAA,8BAAA,CAAAJ,EAAAK,YAAA,IAAA,CAAAtT,GAEG,mEACJ,CAAAiT,EAAAK,YAAA,IAAA,CAAAtT,GAAA,YAAA,CAAAiT,EAAAK,YAAA,OAAA,CAAA3vB,EAAA,6CAAAurB,KAAA,oCAAA,MAAA+D,EAAAK,YAAA,OAAA,CAAA3vB,EAAA,0DAAAurB,KAAA,oCAAA,MAAA+D,EAAAK,YAAA,OAAA,CAAA3vB,EAAA,uFAAAurB,KAAA,oCAAA,YAWR,ICjBFs+J,GAAe37J,kBAAgB,CAC7Br4C,KAAM,kBACNs4C,MAAQ,WACN,OAAO,WAAA,OAAAmB,EAAAA,YAAA,MAAA,CAAA9I,MAAA,MAAAE,OAAA,MAAA8I,QAAA,YAAAjE,KAAA,OAAAmE,MAAA,8BAAA,CAAAJ,EAAAK,YAAA,IAAA,CAAAtT,GAEG,mDACJ,CAAAiT,EAAAK,YAAA,IAAA,CAAAtT,GAAA,SAAA,CAAAiT,EAAAK,YAAA,OAAA,CAAA3vB,EAAA,qBAAAurB,KAAA,oCAAA,MAAA+D,EAAAK,YAAA,OAAA,CAAA3vB,EAAA,qCAAAurB,KAAA,oCAAA,MAAA+D,EAAAK,YAAA,OAAA,CAAA3vB,EAAA,wLAAAurB,KAAA,oCAAA,YAWR,ICjBFu+J,GAAe57J,kBAAgB,CAC7Br4C,KAAM,WACNs4C,MAAQ,WACN,OAAO,WAAA,OAAAmB,EAAAA,YAAA,MAAA,CAAA9I,MAAA,MAAAE,OAAA,MAAA8I,QAAA,YAAAjE,KAAA,OAAAmE,MAAA,8BAAA,CAAAJ,EAAAK,YAAA,IAAA,CAAAtT,GAEG,kDACJ,CAAAiT,EAAAK,YAAA,IAAA,CAAAtT,GAAA,SAAA,CAAAiT,EAAAK,YAAA,OAAA,CAAA3vB,EAAA,mBAAAurB,KAAA,oCAAA,MAAA+D,EAAAK,YAAA,OAAA,CAAA3vB,EAAA,qEAAAurB,KAAA,oCAAA,MAAA+D,EAAAK,YAAA,OAAA,CAAA,YAAA,UAAA,YAAA,UAAA3vB,EAAA,wNAAAurB,KAAA,oCAAA,MAAA+D,EAAAK,YAAA,OAAA,CAAA3vB,EAAA,qEAAAurB,KAAA,oCAAA,YAoBR,IC1BFw+J,GAAe77J,kBAAgB,CAC7Br4C,KAAM,UACNs4C,MAAQ,WACC,OAAA,WAAA,OAAAmB,EAAAA,YAAA,MAAA,CAAA9I,MAAA,MAAAE,OAAA,MAAA8I,QAAA,YAAAjE,KAAA,OAAAmE,MAAA,8BAAA,CAAAJ,EAAAK,YAAA,OAAA,CAAA,YAAA,UAAA,YAAA,UAAA3vB,EAAA,mRAAAurB,KAAA,WAAA,QAUT,ICbFy+J,GAAe97J,kBAAgB,CAC7Br4C,KAAM,aACNs4C,MAAQ,WACC,OAAA,WAAA,OAAAmB,EAAAA,YAAA,MAAA,CAAA9I,MAAA,MAAAE,OAAA,MAAA8I,QAAA,YAAAjE,KAAA,OAAAmE,MAAA,8BAAA,CAAAJ,EAAAK,YAAA,OAAA,CAAA,YAAA,UAAA,YAAA,UAAA3vB,EAAA,mTAAAurB,KAAA,WAAA,QAUT,ICDF0+J,GAAe/7J,kBAAgB,CAC7Br4C,KAAM,SACNq0M,WAAY,CAAEC,OAAQzO,IACtB79L,MAAAA,GACAswC,eAAMtwC,EAAAA,GAAgC,IAATgf,EAAA4d,EAAA5d,MACrByyD,EAAsFv9B,EAAAA,OAAOl0C,GAA3FwE,EAAMitE,EAANjtE,KAAa+nM,EAAY96H,EAAnB1lD,MAAgCygL,EAAkB/6H,EAA/Bm3H,YAAsC6D,EAAYh7H,EAAnBrkD,MAAmBvxB,EAAA41E,EAAA51E,KAC3Eq5B,EAAiBN,GAAU,SAA3BM,aACF/L,EAAcwM,GAAe,SAC7BuwD,EAAaruE,EAAAA,UAAS,WAAA,OAAM7X,EAAMotD,QAAUpuC,EAAMouC,UAChDt3B,EAASD,KAATC,KACFpX,EAAiBmC,KAEjB6rL,EAEF,CACF9gL,YAAa,CACXG,MAAOmJ,EAAa97B,MAAM2yB,MAAMH,aAAemgL,GAC/C3+K,MAAO8H,EAAa97B,MAAMuyB,UAAUC,aAEtCvB,QAAS,CACP0B,MAAOmJ,EAAa97B,MAAM2yB,MAAM1B,SAAW8hL,GAC3C/+K,MAAO8H,EAAa97B,MAAMuyB,UAAUtB,SAEtCwB,KAAM,CACJE,MAAOmJ,EAAa97B,MAAM2yB,MAAMF,MAAQqgL,GACxC9+K,MAAO8H,EAAa97B,MAAMuyB,UAAUE,MAEtC,gBAAiB,CACfE,MAAOmJ,EAAa97B,MAAM2yB,MAAMD,cAAgBkgL,GAChD5+K,MAAO8H,EAAa97B,MAAMuyB,UAAUG,cAEtCJ,MAAO,CACLK,MAAOmJ,EAAa97B,MAAM2yB,MAAML,OAASugL,GACzC7+K,MAAO8H,EAAa97B,MAAMuyB,UAAUD,QAIlCihL,EAAe90L,EAAAA,UAAS,WAAA,MAAM,CAACsR,EAAY/vB,MAAO08B,EAAK18B,MAAMoL,EAAKpL,WAClEwzM,EAAe,CAAAh3K,GAAAA,OAAIzM,EAAY/vB,MAAc,YAC7CmkM,EAAe,CAAA3nK,GAAAA,OAAIzM,EAAY/vB,MAAc,YAC7CyzM,EAAqB,CAAAj3K,GAAAA,OAAIzM,EAAY/vB,MAAoB,kBACzD0zM,EAAc,CAAAl3K,GAAAA,OAAIzM,EAAY/vB,MAAe,aAE7C2zM,EAAiBl1L,EAAAA,UAAS,WAAA,IAAAm1L,EAAA,eAAAA,EAAMN,EAAY7wM,EAAKzC,sBAAU,QAC3D6zM,EAAYp1L,EAAAA,UAAS,WAAA,IAAAq1L,EAAAC,EAAA,OAAMZ,EAAWnzM,QAAS4lB,mBAAAA,EAAO+M,aAAQ,IAAAmhL,OAAA,EAAfA,EAAAr1M,KAAAmnB,MAAmCmuL,QAApBA,EAAKJ,EAAe3zM,aAAf+zM,IAAeA,OAAfA,EAAAA,EAAsBphL,UACzFk+K,EAAYpyL,EAAAA,UAAS,WAAA,IAAAu1L,EAAAC,EAAA,OAAMZ,EAAWrzM,QAAS4lB,mBAAAA,EAAOoO,aAAQ,IAAAggL,OAAA,EAAfA,EAAAv1M,KAAAmnB,MAAmCquL,QAApBA,EAAKN,EAAe3zM,aAAfi0M,IAAeA,OAAfA,EAAAA,EAAsBjgL,UACzFi9K,EAAkBxyL,EAAAA,UAAS,WAAA,IAAAy1L,EAAA,OAAMd,EAAiBpzM,QAAS4lB,iBAAAsuL,EAAAtuL,EAAO4pL,gCAAP0E,EAAAz1M,KAAAmnB,OA4BjE,OAAO,WAEH,OAAAyyB,EAAAA,YAAA,MAAA,CAAAC,MAAYi7J,EAAavzM,OAAA,CACtB6zM,EAAU7zM,MACTq4C,EAAAA,YAAA,MAAA,CAAAC,MAAY6rJ,QAAqBv9L,EAAM8rM,YACpC,CAAA9sL,SAAAA,EAAO+M,MAAQrN,EAAe,UAlBjC/Z,EAAOsoM,EAAU7zM,MACnBoB,EAAS,KACT8d,GAAS3T,GACFnK,EAAAi3C,EAAAK,YAAA+rJ,GAAA,CAAA1B,IAAYx3L,GAAM,MAClBA,GAAQipD,QAAQnpD,IAAIE,EAAM,SACnCnK,EAASokB,EAAAA,EAAEja,GACF2C,GAAc3C,KACdnK,EAAAi3C,EAAAA,YAAAosJ,GAAWl5L,EAAM,OAGrBA,EAAOnK,EAAS,QAUf,KAhCHyvM,EAAU7wM,MAGfq4C,EAAAA,YAAA,MAAA,CAAAC,MAAmBk7J,GAAe3C,CAAAA,EAAU7wM,QAFnC,KAKJixM,EAAgBjxM,MAGrBq4C,EAAAA,YAAA,MAAA,CAAAC,MAAmBm7J,GAAqBxC,CAAAA,EAAgBjxM,QAF/C,KA4BJ8sF,EAAW9sF,MAAQq4C,EAAAK,YAAA,MAAA,CAAAJ,MAAYo7J,IAAcpuL,EAAe,YAAmB,OAxBlE,IACZ/Z,EACFnK,EA0BR,IC7FW+yM,GAAQ92J,GAAY21J,mOCC1B,SAASoB,GAAQC,GAChB,IAAAhtM,EAAYk0B,MAAI84K,GAyBf,MAAA,CAAEhtM,UAAAA,EAAWitM,iBAvBK,SAACx2M,GACxB,IAAe6wK,EAA0B7wK,EAAjCy2M,MAAsB3lC,EAAW9wK,EAAlBymL,MACvBiwB,EAAmCntM,EAAUrH,MAArCy0M,EAAAD,EAAAC,WAAY/iK,EAAW8iK,EAAX9iK,WACdgjK,EAAmB,SAAC52M,GAClB,IAAEy2M,EAAiBz2M,EAAjBy2M,MAAOhwB,EAAUzmL,EAAVymL,MACfl9K,EAAUrH,MAAQ,CAChBy0M,WAAYA,EAAaF,EAAQ5lC,EACjCj9H,WAAYA,EAAa6yI,EAAQ3V,IAG/B+lC,EAAiB,WACZpuK,SAAAK,oBAAoB,YAAa8tK,GACjCnuK,SAAAK,oBAAoB,UAAW+tK,IAGjCpuK,SAAAC,iBAAiB,YAAakuK,GAC9BnuK,SAAAC,iBAAiB,UAAWmuK,IAODC,eAJf,WACXvtM,EAAArH,uWAAAk4C,CAAA,CAAA,EAAam8J,IAI3B,CC9BA,IAAAQ,GAAe59J,kBAAgB,CAC7Br4C,KAAM,aACNgI,MAAO,CACLkuM,OAAQl1M,OACRmlM,MAAOnlM,OACPkiD,OAAQliD,OACRmjM,IAAK,CAACpjM,OAAQG,QACdi1M,aAAc,CAACp1M,OAAQG,QACvBk1M,MAAO5sL,QACP6sL,oBAAqBt1M,QAGvBu3C,MAAAA,SAAMtwC,GACJ,IAAAyxE,EAAqCv9B,SAAOl0C,GAApCm8L,EAAK1qH,EAAL0qH,IAAKgS,EAAA18H,EAAA08H,aAAcC,EAAM38H,EAAN28H,MACrBjlL,EAAcwM,KACde,EAAQ/B,OAAI,GACZ25K,EAAS35K,OAAI,GACb45K,EAAkCf,GAAQ,CAAEK,WAAY,EAAG/iK,WAAY,IAArErqC,EAAW8tM,EAAX9tM,UAAWitM,EAAAa,EAAAb,iBAEb16K,EADmB4B,GAAU,eAA3BM,aACuB97B,MAAM45B,UAC/Bw7K,EAAW75K,EAAAA,MAEX85K,EAAW52L,EAAAA,UAAS,WAAA,MAAO,CAC/BpX,UAAWm1B,UAAAA,OAAU51B,EAAMkuM,OAAAt4K,eAAAA,OAAoB51B,EAAMm+L,MAAA,KACrDloI,SAAUj2D,EAAMmuM,cAAgBG,EAAOl1M,MAAQ,QAAU,OACzD,IACIs1M,EAAoB72L,EAAAA,UAAS,WAAA,MAAO,CACxCpX,UAAWm1B,UAAAA,OAAU51B,EAAMkuM,OAAAt4K,eAAAA,OAAoB51B,EAAMm+L,MAAA,KACrDloI,QAAUq4I,EAAOl1M,MAAkB,OAAV,QACzB,IACIu1M,EAAW92L,EAAAA,UAAS,WACxB,IAAA+1L,EAAmCntM,EAAUrH,MAArCy0M,EAAAD,EAAAC,WAAY/iK,EAAW8iK,EAAX9iK,WACb,MAAA,CACLrqC,UAAWm1B,aAAAA,OAAai4K,EAAiBj4K,QAAAA,OAAAkV,EAAAlV,cAAAA,OAAuB51B,EAAMk7C,OAAA,QAE1E,IAUM0zJ,EAAA,WAAA,IAAAhyK,EAAAkpB,GAAAgC,GAAAiB,MAAkB,SAAAmC,EAAO/5B,GAAgB,IAAA09K,EAAAC,EAAAC,EAAA11K,EAAA21K,EAAA3tK,EAAA4tK,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAAxnJ,GAAAc,MAAA,SAAAuC,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAjuC,MAAA,KAAA,EAAA,OAAAiuC,EAAAjuC,KAAA,EACtBqyL,MAAMp+K,GAAG,KAAA,EAA1B,IAAA29K,EAAA3jJ,EAAAxC,MACQ+/C,GAAI,CAAAv9C,EAAAjuC,KAAA,EAAA,KAAA,CACF,MAAdwZ,EAAMt9B,OAAQ,EACR,IAAIinC,MAAAzK,wBAAAA,OAA8Bk5K,EAASU,aAAY,KAAA,EAAA,OAAArkJ,EAAAjuC,KAAA,EAEzC4xL,EAASx8J,OAAK,KAAA,EAA9By8J,EAAA5jJ,EAAAxC,MAEAtvB,EAAUm1K,EAASp1M,OACjBq2M,UAAY,GACD,QAAnBZ,EAAAx1K,EAAQiH,iBAARuuK,IAAmBA,GAAnBA,EAAmBn+L,OAAAklB,OAAOzM,EAAY/vB,yCAChC41M,EAAa31K,EAAQq2K,aAAa,CAAEttH,KAAM,YAE1C/gD,EAAY1B,SAASsD,cAAc,QAE/BmE,MAAMmK,WAAa,+BAC7BlQ,EAAU+F,MAAMwlB,QAAU,MAC1BvrB,EAAU+F,MAAM4B,aAAe,MAC/B3H,EAAU+F,MAAM60C,UAAY,OAC5B56C,EAAU+F,MAAM6uC,SAAW,OAC3B50C,EAAU+F,MAAMmoI,UAAY,aAC5BluI,EAAU+F,MAAMyB,OAAS,OACzBxH,EAAUouK,UAAYV,EACtBC,EAAW9rK,YAAY7B,IAEjB4tK,EAAa5tK,EAAUJ,cAAc,WAEnCiuK,EAAaD,EAAWn2K,aAAa,aAEnCq2K,EAAgBD,EACnBvmM,MAAM,UACNwW,QAAO,SAAUwD,GACT,OAAAA,CACT,IACC1d,IAAIgqC,YAGDmgK,EAAkBD,EAAc,GAE5B9tK,EAAA+F,MAAMuB,gBAAWymK,EAAA,QAErBC,EAAOJ,EAAWU,UAClBL,EAAA,GAAA15K,OAAuBy5K,EAAKprL,EAAA,KAAA2R,OAAKy5K,EAAKhtL,EAAKuT,KAAAA,OAAAy5K,EAAK1mK,kBAAS0mK,EAAKxmK,QACzDomK,EAAA1yJ,aAAa,UAAW+yJ,GAEzBjuK,EAAA+F,MAAMuB,MAAQ,GAAA/S,OAAGy5K,EAAK1mK,MAAA,OAElCsmK,EAAW7nK,MAAM60C,UAAY,OAC7BgzH,EAAW7nK,MAAM6uC,SAAW,OAC5Bg5H,EAAW7nK,MAAMyB,OAAS,OAC1BomK,EAAW7nK,MAAM6uB,QAAU,QAC3Bg5I,EAAW7nK,MAAMkoF,WAAa,UAEhCg/E,EAAOl1M,OAAQ,EAAA,KAAA,EAAA,IAAA,MAAA,OAAA+xD,EAAAhD,OAAA,GAAA+C,EACjB,KAAA,OAtDM0jJ,SAAA36I,GAAA,OAAAr3B,EAAA59B,MAAA6B,KAAA9B,UAAA,EAAA,GAwDc6wM,EAAwBpzK,GAAmB2/J,GAAvDz/J,WACYmzK,EAA6BrzK,GAAmB2xK,GAA5DzxK,WAYR,OAVAC,EAAAA,MAAM,CAACizK,EAAqBC,IAA2B,WAlErDn5K,EAAMt9B,OAAQ,EACdk1M,EAAOl1M,OAAQ,EACXg1M,EAAMh1M,OACRw1M,EAAgBgB,EAAoBx2M,MAiExC,IAEA0rC,EAAAA,UAAAghB,GAAAgC,GAAAiB,MAAU,SAAAsL,IAAA,OAAAvM,GAAAc,MAAA,SAAA0L,GAAA,cAAAA,EAAA5L,KAAA4L,EAAAp3C,MAAA,KAAA,EAAA,IACJkxL,EAAMh1M,MAAO,CAAAk7D,EAAAp3C,KAAA,EAAA,KAAA,CAAA,OAAAo3C,EAAAp3C,KAAA,EACT0xL,EAAgBgB,EAAoBx2M,OAAK,KAAA,EAAA,IAAA,MAAA,OAAAk7D,EAAAnM,OAAA,GAAAkM,EAElD,MAEM,WAAA,OAAA5iB,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OACUzM,EAAY/vB,MAAA,6BAAA,CAAAq4C,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OACVzM,EAAY/vB,MAAA,4BAAAguC,MAAwCunK,EAASv1M,OAAA,CACzEs9B,EAAMt9B,OAAAq4C,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OACUzM,EAAY/vB,MAAA,6BAAA,CAAAq4C,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OAEVzM,EAAY/vB,MAAA,qCAAAq4C,CAAAA,EAAAK,YAAAg+J,GAAA,CAAAtrM,KAAA,OAAA,MAAAitC,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OAEVzM,EAAY/vB,MAAA,kCAAA,CAAuC45B,SAKtE0D,EAAMt9B,SAAW4G,EAAMmuM,cAAgB0B,EAAyBz2M,OAChEq4C,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OACYzM,EAAY/vB,MACtB,8BAAAkjG,YAAa,SAACn/D,GACZA,EAAMw7C,kBACN+0H,EAAiBvwK,EAEnB,EAAAg/J,IAAK0T,EAAyBz2M,MAAAguC,MACvBsnK,EAAkBt1M,MACzB8iM,eAAgBl8L,EAAMquM,oBAAA7S,IAAA,QAAAr4G,UAAA,SAAA,OAMxBzsD,EAAMt9B,OAASw2M,EAAoBx2M,QAAUg1M,EAAMh1M,OAAAq4C,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OAEvCzM,EAAY/vB,MACtB,8BAAAkjG,YAAa,SAACn/D,GACZA,EAAMw7C,kBACN+0H,EAAiBvwK,EACnB,EAAAg/J,IACKyT,EAAoBx2M,MAAA42I,OACjB,WAAA,OAAOs+D,EAAOl1M,OAAQ,CAAA,EAAAuiM,QACrB,WAAA,OAAOjlK,EAAMt9B,OAAQ,CAAA,EAAAguC,MACvBqnK,EAASr1M,MAChB8iM,eAAgBl8L,EAAMquM,oBACtB7S,IAAA,QAAAr4G,UAAA,SAAA,OAKFzsD,EAAMt9B,OAASw2M,EAAoBx2M,OAASg1M,EAAMh1M,OAClDq4C,EAAAK,YAAA,MAAA,CAAAnd,IACO65K,kBACKrlL,EAAY/vB,MACtB,8BAAAkjG,YAAa,SAACn/D,GACZA,EAAMw7C,kBACN+0H,EAAiBvwK,2BAGZsxK,EAASr1M,MAAA+pF,UAAA,SAEjB,UAKX,IClLF4sH,GAAe1/J,kBAAgB,CAC7Br4C,KAAM,kBACNgI,MAAO,CACLw2B,SAAUhV,QACV61B,QAASx9C,SACT+qD,MAAO7rD,OACP6wB,KAAM/vB,UAERy2C,MAAAA,SAAMtwC,GACJ,IAAMmpB,EAAcwM,KACdjX,EAAiBmC,KACjBmvL,EAAYn4L,EAAAA,UAAS,WAAA,MAAM,IAAA+d,OAC5BzM,EAAY/vB,mCAAAH,EAAA,CAAA,EAAA,GAAA28B,OAETzM,EAAY/vB,sBAAsB4G,EAAMw2B,cAIhD,OAAO,WAAA,OAAAib,EAAAA,YAAA,MAAA,CAAAC,MACOs+J,EAAU52M,MAAAi+C,QAAgBr3C,EAAMq3C,SACzC34B,CAAAA,EAAe,QACf1e,EAAM4kD,OAASnT,EAAAK,YAAA,OAAA,CAAAJ,MAAA,GAAA9b,OAAgBzM,EAAY/vB,MAAA,oCAAyC4G,CAAAA,EAAM4kD,UAGjG,ICnBaqrJ,GAAA,CAEb1mL,OAAQ,CACN1tB,KAAM,CAAC9C,OAAQc,WAGjBsnC,KAAM,CACJtlC,KAAM,CAAC9C,OAAQc,WAGjBq2M,UAAW,CACTr0M,KAAM,CAAC9C,OAAQG,OAAQW,SAAU,OAGnCy8D,SAAU,CACRz6D,KAAM,CAAC9C,OAAQyoB,QAAS3nB,UACxB+tB,SAAS,GAGXmC,kBAAmB,CACjBluB,KAAM2lB,QACNoG,aAAS,GAGXoC,oBAAqB,CACnBnuB,KAAM2lB,QACNoG,aAAS,GAGXuoL,WAAY,CACVt0M,KAAM,CAAC9C,OAAQG,OAAQW,SAAU,OAGnCu2M,eAAgB,CACdv0M,KAAM2lB,QACNoG,aAAS,GAGXyoL,eAAgB7uL,QAEhBoG,QAAS,CACP/rB,KAAM,CAAC9C,OAAQc,WAGjB00E,eAAgB/sD,QAEhB8uL,gBAAiB,CACfz0M,KAAM9C,OACN6uB,QAAS,IAGX2oL,YAAa,CACX10M,KAAM3C,QAGRiqF,UAAW3hE,QAEXuyJ,OAAQ,CACNl4K,KAAM,CAAC2lB,QAAS3nB,UAChB+tB,SAAS,GAGXihL,OAAQ,CACNhtM,KAAM,CAAC9C,OAAQyoB,QAAS3nB,UACxB+tB,SAAS,GAGXw7D,KAAM5hE,QAEN4gE,KAAM,CACJvmF,KAAM9C,OACN6uB,QAAS,QACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,QAAS,WAAY,SAAU,eAAevI,SAASuI,EACjE,GAGF22C,UAAW,CACT/6D,KAAM9C,OACN6uB,QAAS,MACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,MAAO,UAAUvI,SAASuI,EACpC,GAGFmyB,qBAAsB,CACpBv2C,KAAM2lB,QACNoG,SAAS,GAGX4oL,sBAAuBhvL,QAEvB6wB,YAAa,CACXx2C,KAAM2lB,QACNoG,SAAS,GAGXgL,MAAO,CACL/2B,KAAM9C,OACN6uB,QAAS,UACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,UAAW,OAAQ,UAAW,SAAU,WAAWvI,SAASuI,EACtE,GAGFyjB,IAAK,CACH7nC,KAAM,CAAC9C,OAAQC,SAGjB+9B,QAASvV,QAETmnB,MAAO,CACL9sC,KAAM,CAAC9C,OAAQC,SAGjBwsC,OAAQ,CACN3pC,KAAM7C,QAGRy3M,cAAe52M,SAEf62M,aAAc72M,SAEd82M,SAAU92M,SAEV08D,QAAS18D,SAET28D,gBAAiB38D,SAEjB+2M,SAAU/2M,SAEVwlJ,UAAWxlJ,SAEXg3M,aAAch3M,SAEdi3M,SAAUj3M,SAEVo1E,eAAgBp1E,6kBCnHX,SAASk3M,GAAU3jJ,GACxB,IAAMjvC,EAAWW,EAAAA,qBACXJ,EAAiBmC,KAsCjBmwL,EAAmB,SACvB1oK,EACArqB,GAMA,IAAQgzL,EAAkDhzL,EAAlDgzL,mBAAoB1wK,EAA8BtiB,EAA9BsiB,UAAW6vK,EAAmBnyL,EAAnBmyL,eACnCc,EAAaD,EASjB,OARI34L,GAASgwB,GACX4oK,EAAWxzL,QAAU4qB,EACZ1sC,EAAS0sC,KAClB4oK,EAAA5/J,GAAAA,MAAkB4/J,GAAe5oK,SAEZ,IAAnB8nK,IACFc,EAAW56K,QAAU85K,GAEvB3+J,EAAAK,YAAAwF,GAAAhD,aAAA,CAAA5C,MAAuBnR,GAAe2wK,GAAY,OA0C7C,MAAA,CAAEC,cAxCa,SAAC/7L,GACrB,IAAQ+6L,EAA0C/6L,EAA1C+6L,WAAY5vK,EAA8BnrB,EAA9BmrB,UAAW6vK,EAAmBh7L,EAAnBg7L,eAC/B,GAAmB,OAAfD,EAA4B,OAAA,KAC5BA,GAAchyL,EAASa,MAAMmxL,YAC/Bt2K,QAAQO,KAAK,6FAET,IAAA62K,EA9D0B,SAAC77L,GACjC,IAAQg8L,EAAgDh8L,EAAhDg8L,cAAex+K,EAAiCxd,EAAjCwd,MAAOy+K,EAA0Bj8L,EAA1Bi8L,sBAE1BrxM,EAAqB,CAGvB4yB,MAJmB1S,GAAsB9F,GAAKi3L,EAAuB,CAAC,SAAUz+K,IAAU,UAK1FpuB,KAAM4Q,EAAQ5Q,KACd6yC,QAAS,SAACngD,GACRk2D,EAAOkkJ,iBAAiBp6M,EAC1B,GAOK,OALHohB,GAAS84L,GACXpxM,EAAM0d,QAAU0zL,EACPx1M,EAASw1M,KAClBpxM,EAAAsxC,GAAAA,MAAatxC,GAAUoxM,IAElBpxM,EA6CoBuxM,CAA0Bn8L,GAErD,OAAK+6L,GAAehyL,EAASa,MAAMmxL,WAI/BA,GAAc,CAAC,SAAU,UAAUz4L,SAASjf,EAAO03M,IAC9Ca,EAAiBb,EAAoC,CAC1Dc,mBAAAA,EACA1wK,UAAAA,EACA6vK,eAAAA,IAIG1xL,EAAe,cAXpB+yB,EAAAK,YAAAwF,GAAAhD,aAAA,CAAA5C,MAAuBnR,EAAWjK,QAAS85K,GAAoBa,GAAoB,OA+B/DO,aAlBH,SAACp8L,GACd,IAAE86L,EAAyB96L,EAAzB86L,UAAW3vK,EAAcnrB,EAAdmrB,UACnB,GAAkB,OAAd2vK,EAA2B,OAAA,KAC3BA,GAAa/xL,EAASa,MAAMkxL,WAC9Br2K,QAAQO,KAAK,0FAET,IAAA62K,EAhEyB,SAAC77L,GAC1B,IAAEq8L,EAAiBr8L,EAAjBq8L,aACJzxM,EAAqB,CACvB4yB,MAAO,UACPpuB,KAAM4Q,EAAQ5Q,KACd6yC,QAAS,SAACngD,GACRk2D,EAAOskJ,gBAAgBx6M,EACzB,GAOK,OALHohB,GAASm5L,GACXzxM,EAAM0d,QAAU+zL,EACP71M,EAAS61M,KAClBzxM,EAAAsxC,GAAAA,MAAatxC,GAAUyxM,IAElBzxM,EAkDiC2xM,CAAyBv8L,GAEjE,OAAK86L,GAAc/xL,EAASa,MAAMkxL,UAI9BA,GAAa,CAAC,SAAU,UAAUx4L,SAASjf,EAAOy3M,IAC7Cc,EAAiBd,EAAmC,CAAEe,mBAAAA,EAAoB1wK,UAAAA,IAG5E7hB,EAAe,aAPpB+yB,EAAAK,YAAAwF,GAAAhD,aAAA,CAAA5C,MAAuBnR,GAAe0wK,GAAoB,OAUhE,CC7FgB,SAAAW,KAA0D,IAAxCvwK,EAAyBtiC,UAAA9H,OAAA8H,QAAA5E,IAAA4E,UAAA5E,GAAA4E,UAAA4gC,GAAAA,SAASwB,KAC9D,OAAAE,IAAc1B,SAASwB,KAClB5H,OAAOwK,WAAapE,SAASiC,gBAAgBe,YAE/CtB,EAAUuH,YAAcvH,EAAUsB,WAC3C,CC/CO,SAASkvK,GAAYlvL,GACnB,OAAA3pB,OAAOquD,MAAMruD,OAAO2pB,IAAMA,KAAAiT,OAAO58B,OAAO2pB,GAAC,KAClD,CCOe,IAAAmvL,GAAA,CAEb3wK,KAAM,CACJtlC,KAAM,CAAC9C,OAAQc,WAGjBq2M,UAAW,CACTr0M,KAAM,CAAC9C,OAAQG,OAAQW,WAGzBy8D,SAAU,CACRz6D,KAAM,CAAC9C,OAAQyoB,QAAS3nB,UACxB+tB,SAAS,GAGXuoL,WAAY,CACVt0M,KAAM,CAAC9C,OAAQG,OAAQW,WAGzBu2M,eAAgB,CACdv0M,KAAM2lB,QACNoG,aAAS,GAGXmsJ,OAAQ,CACNl4K,KAAM,CAAC2lB,QAAS3nB,WAGlBgvM,OAAQ,CACNhtM,KAAM,CAAC9C,OAAQyoB,QAAS3nB,UACxB+tB,SAAS,GAGXgL,MAAO,CACL/2B,KAAM9C,OACN6uB,QAAS,UACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,UAAW,OAAQ,UAAW,SAAU,WAAWvI,SAASuI,EACtE,GAGF0wL,SAAU92M,SAEV28D,gBAAiB38D,SAEjBwlJ,UAAWxlJ,6kBCvCb,ICMIk4M,GDNJC,GAAe3hK,kBAAgB,CAC7Br4C,KAAM,cAENi6M,WAAY,CACV9uH,mBAAUhjD,EAAI19B,GFhBX,IACCw2B,EACAi5K,EACAC,EEeEhyK,GAAM19B,GAAWA,EAAQrJ,QFjB3B6/B,EEkBckH,EFjBd+xK,EAAmB34K,OAAOwK,YAAcpE,SAASiC,gBAAgBe,YACjEwvK,EAAoB54K,OAAOuK,aAAenE,SAASiC,gBAAgBy+B,aAClEpnC,EAAA2G,iBAAiB,aAAa,SAACwyK,GAE9B,IAAAC,EAAOD,EAAYz7H,QAAU19C,EAAOwkC,WACpC60I,EAAOF,EAAYx7H,QAAU39C,EAAOuwB,UACpC+oJ,EAAUt5K,EAAO2P,YACjB4pK,EAAUv5K,EAAO6P,aAGvB,SAAS2pK,EAAkBC,GAErB,IAAA/uK,EAAO+uK,EAAc/7H,QAAU07H,EAC/B3uK,EAAMgvK,EAAc97H,QAAU07H,EAG9B3uK,EAAO,IAAUA,EAAA,GACjBD,EAAM,IAASA,EAAA,GACfwuK,EAAmBj5K,EAAO2P,YAAcjF,EAAO,IAAGA,EAAOuuK,EAAmBj5K,EAAO2P,aACnFupK,EAAoBl5K,EAAO6P,aAAepF,EAAM,IAAGA,EAAMyuK,EAAoBl5K,EAAO6P,cACxF7P,EAAOmO,MAAM2B,SAAW,WACjB9P,EAAAmO,MAAMzD,eAAUA,EAAA,MAChB1K,EAAAmO,MAAM1D,cAASA,EAAA,KACxB,CACA,SAASqqK,IAEEpuK,SAAAK,oBAAoB,YAAayyK,GAEjC9yK,SAAAK,oBAAoB,UAAW+tK,EAC1C,CApBIwE,EAAUL,GAAoBM,EAAUL,IAsBnCxyK,SAAAC,iBAAiB,YAAa6yK,GAE9B9yK,SAAAC,iBAAiB,UAAWmuK,GAE5BpuK,SAAAC,iBAAiB,UAAWmuK,GACvC,IEjBE,GAEF/tM,MAAOsxC,GAAAA,MACFqhK,IACAb,IAELxhK,eAAMtwC,EAAA48B,GAAmB,IAAV2uB,EAAA3uB,EAAA2uB,OACPqnJ,EAAUj+K,MAAwB,MAClC4iB,EAAiB5hB,GAAe,UAChCxM,EAAcwM,KACdjX,EAAiBmC,KACjBsyB,EAAgBzxB,KACdwT,EAAiBN,GAAU,UAA3BM,aACRwiC,EAA0F59B,GAAc,CACtGq+B,UAAWC,GACXT,qBAAsBC,GACtBC,sBAAuBC,GACvBC,sBAAuBC,KAJjBG,EAAWT,EAAXS,UAAWR,EAAAD,EAAAC,qBAAsBE,EAAuBH,EAAvBG,sBAAuBE,EAAAL,EAAAK,sBAMhE0Z,EAAkDv9B,SAAOl0C,GAAjDkwM,EAAWz+H,EAAXy+H,UAAWC,EAAA1+H,EAAA0+H,WAAYC,EAAe3+H,EAAf2+H,eAGzByC,EAAkC9B,GAAU,CAAEO,iBAF3B,SAACp6M,GAAA,IAAA83J,EAAA,OAAoC,QAApCA,EAAkBhvJ,EAAMq/I,iBAAY,IAAA2P,OAAA,EAAlBA,EAAAn3J,KAAAmI,EAAkB,CAAE9I,EAAAA,GAAG,EAEGw6M,gBAD9C,SAACx6M,GAAA,IAAA47M,EAAA,OAAmC,QAAnCA,EAAkB9yM,EAAM2wM,gBAAW,IAAAmC,OAAA,EAAjBA,EAAAj7M,KAAAmI,EAAiB,CAAE9I,EAAAA,GAAG,IACzDi6M,IAAAA,cAAeK,EAAaqB,EAAbrB,aAEjBuB,EAAal7L,EAAAA,UAAS,WAAA,MAAqB,aAAf7X,EAAMoiF,QAElC4wH,EAAen7L,EAAAA,UAAS,WAAA,MAAqB,gBAAf7X,EAAMoiF,QACpC6wH,EAAiB,SAAC/7M,GAAA,IAAAg8M,EAAA,OAAkBlzM,SAAyB,UAAzBA,EAAOw2D,uBAAP08I,IAAyBA,OAAzBA,EAAAA,EAAAr7M,KAAAmI,EAAyB,CAAE9I,EAAAA,GAAG,EAClEi8M,EAAa,SAACj8M,GACd67M,EAAW35M,OAAX25M,MAAoB/yM,GAAAA,EAAOmjF,WAAWjsF,EAAEyhF,mBAWvCptB,EAAA,CACL8O,IAAKu4I,EACLQ,cAVoB,YACfR,EAAQx5M,OAAS25M,EAAW35M,OAAS4G,EAAMmjF,YACxCyvH,EAAAx5M,MAAMguC,MAAM2B,SAAW,WACvB6pK,EAAAx5M,MAAMguC,MAAMzD,KAAO,QACnBivK,EAAAx5M,MAAMguC,MAAM1D,IAAM,YAStB,IAAA2vK,EAAcx7L,EAAAA,UAAS,WAC3B,IAAMw7L,EAAc,CAAA,GAAAz9K,OACf2hB,EAAen+C,OAAAw8B,GAAAA,OACf2hB,EAAen+C,MAAAw8B,YAAAA,OAAgB51B,EAAM4yB,OACxCmgL,EAAW35M,OAAS4G,EAAMmjF,WAAAvtD,GAAAA,OAAgB2hB,EAAen+C,MAAA,eACzD4G,EAAMswM,iBAQD+C,OALHL,EAAa55M,MACfi6M,EAAYjwM,KAAAwyB,GAAAA,OAAQ2hB,EAAen+C,MAAmB,iBAEtDi6M,EAAYjwM,KAAApE,MAAZq0M,EAAoB,CAAAz9K,GAAAA,OAAI2hB,EAAen+C,sBAAkBw8B,OAAG2hB,EAAen+C,MAAA,MAAAw8B,OAAU51B,EAAM42D,aAEtFy8I,CACT,IACM9C,EAAc14L,EAAAA,UAAS,WAC3B,OAAQm7L,EAAa55M,MAAgEk4C,GAAStxC,CAAAA,EAAAA,EAAMuwM,aAA/Ej/J,GAAA,CAAU3I,MAAOkpK,GAAY7xM,EAAM2oC,QAAW3oC,EAAMuwM,YAC3E,IAuGO,OAAA,WAAA,OAAA97H,EAAAC,eAAAjjC,EAAAK,YAAA,MAAA,CAAAj0C,IAAA,SAAA82B,IAGEi+K,EAAAlhK,MACE2hK,EAAYj6M,MAAAguC,MACZmpK,EAAYn3M,OAAA,EAzGfk6M,EAAoBz7L,EAAAA,UAAS,WAAM,IAAA07L,EAEhC,OAAkB,QAAlBA,EAAApD,EAAW/2M,aAAO,IAAAm6M,OAAA,EAAlBA,EAAkBj9K,UAAW85K,EAAeh3M,KACrD,IACMo6M,4BAEDhC,EAAa,CACZtB,UAAWA,EAAU92M,MACrBq4M,aAAcv8K,EAAa97B,MAAMsd,OACjC6pB,UAAA3K,GAAAA,OAAc2hB,EAAen+C,MAAA,cAE9B+3M,EAAc,CACbv+K,MAAO5yB,aAAAA,EAAAA,EAAO4yB,MACdu9K,WAAYA,EAAW/2M,MACvBg4M,cAAel8K,EAAa97B,MAAMm0B,QAClC8jL,sBAAuBn8K,EAAa97B,MAAM6wB,gBAC1CsW,aAAA3K,OAAc2hB,EAAen+C,MAAA,aAC7Bg3M,eAAgBkD,EAAkBl6M,UAKlCq6M,EAAgB/0L,EAAe,SAAU80L,GAsE7C/hK,EAAAK,YAAAoR,EAAAnlC,SAAA,KAAA,EAlEM8qL,EAA8D5oH,QAA9DA,EAASvhE,EAAe,SAAU+yB,EAAAK,YAAA,KAAA,CAAAJ,MAAA,SAAA,cAA4BuuC,IAAAA,GAAAA,EAC9DyzH,EAAkBV,EAAa55M,MACjC,CAAAw8B,GAAAA,OAAI2hB,EAAen+C,qBAAiBw8B,OAAG2hB,EAAen+C,MAAA,yBACtDw8B,GAAAA,OAAG2hB,EAAen+C,MAAA,YAEhBu6M,EAAiBX,EAAa55M,MAChC,CAAAw8B,GAAAA,OAAI2hB,EAAen+C,oBAAgBw8B,OAAG2hB,EAAen+C,MAAA,wBACrDw8B,GAAAA,OAAG2hB,EAAen+C,MAAA,YAWnByvM,IAAU7oM,aAAO,EAAPA,EAAOs2D,YAAA7kB,EAAAA,YAAA,MAAA,CAAAC,MACJgiK,cAA8BP,GAAA,CAAA1hK,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OACzB2hB,EAAen+C,MAAA,qBAAA,CAXrB,CACX8wB,sCAAsCf,EAAY/vB,MAAiB,aAAA,MACnE+wB,yCAA0ChB,EAAY/vB,MAAoB,gBAAA,MAC1EgxB,wCAAyCjB,EAAY/vB,MAAkB,cAAA,MACvEixB,yCAA0ClB,EAAY/vB,MAAoB,gBAAA,OAEhE4G,aAAAA,EAAAA,EAAO4yB,OAOZi2K,IAGF7oM,SAAAA,EAAOs2D,SAAA7kB,EAAAA,YAAA,OAAA,CAAAC,MACOiiK,EAAgBt8J,QAAS47J,GACnCv0L,CAAAA,EAAe,2BAAyB,KAAA,SAEzC,SAOJyiB,EAAOgS,EAAc,UAAW,QAChCygK,EACa,aAAjB5zM,aAAA,EAAAA,EAAO4yB,OAAsB,CAAAgD,GAAAA,OAAI2hB,EAAen+C,MAAiB,WAAA,CAAAw8B,GAAAA,OAAI2hB,EAAen+C,MAAmB,iBACrG45M,EAAa55M,OAASq6M,EACVG,EAAAxwM,KAAAwyB,GAAAA,OAAQ2hB,EAAen+C,MAAyB,uBACrD45M,EAAa55M,OACRw6M,EAAAxwM,KAAAwyB,GAAAA,OAAQ2hB,EAAen+C,MAAyC,uCAEhFq4C,EAAAA,YAAA,MAAA,CAAAC,MACckiK,cAA4BT,GAAA,CACrChyK,OAuBAnhC,EAAM+zK,SAjBL8/B,EAAkBb,EAAa55M,MACjC,CAAAw8B,GAAAA,OAAI2hB,EAAen+C,qBAAiBw8B,OAAG2hB,EAAen+C,MAAA,yBACtDw8B,GAAAA,OAAG2hB,EAAen+C,MAAA,YAGpBq6M,GAAAhiK,EAAAK,YAAA,MAAA,CAAAJ,MACcmiK,cAA8BV,GAAA,CACvCM,4CAqBMV,EAAW35M,OAAS4G,EAAMmjF,aA3GxB,IA+ET0wH,EAhBA1yK,EACAyyK,EAvCmB3zH,EAEnB4oH,EACA6K,EAIAC,EA/BFL,EAIAE,EAkBAC,EAyFV,0DCxKoB,oBAAXl6K,QAA0BA,OAAOoG,UAAYpG,OAAOoG,SAASiC,iBACtEjC,SAASiC,gBAAgBhC,iBAAiB,SAXnB,SAAC1oC,GACR66M,GAAA,CACd9tL,EAAG/sB,EAAEy/E,QACLt0D,EAAGnrB,EAAE0/E,SAEPzgE,YAAW,WACO47L,GAAA,OACf,IACL,IAGuE,GAGvE,IAAIl0M,GAAM,EAEVi2M,GAAezjK,kBAAgB,CAC7Br4C,KAAM,UACNw6C,cAAc,EACdxyC,MAAAA,GACA+8C,MAAO,CAAC,kBACRzM,eAAMtwC,EAAO83B,GACL,IAAAyf,EAAiB5hB,GAAe,UAChCxM,EAAcwM,KACdo+K,EAAgBp/K,MAA4D,MAC1EO,EAAiBN,GAAU,UAA3BM,aACFo8K,EAAmB,SAACx5K,GAA+B,IAAAu2H,UACvDruJ,EAAAA,EAAMq/I,iBAANr/I,OAAAA,EAAAA,KAAAA,EAAkB83B,IAEd45K,EAAkB,SAAC55K,GAA+B,IAAAk8K,UACtDh0M,EAAAA,EAAM2wM,gBAAN3wM,OAAAA,EAAAA,KAAAA,EAAiB83B,GACjBm8K,EAAe,CAAE/8M,EAAG4gC,EAAQ5gC,EAAGg4D,QAAS,YAGpC7b,EAAkBrJ,IAAY,WAAA,OAAMhqC,EAAMupB,UAC9BmO,KAClB,IAAM0W,EAAQzZ,EAAAA,MACRu/K,EAAUv/K,EAAAA,MAEVw/K,EAAUt8L,EAAAA,UAAS,WAAA,MAAqB,UAAf7X,EAAMoiF,QAE/B2wH,EAAal7L,EAAAA,UAAS,WAAA,MAAqB,aAAf7X,EAAMoiF,QAElC4wH,EAAen7L,EAAAA,UAAS,WAAA,MAAqB,gBAAf7X,EAAMoiF,QACpCgyH,EAAkBv8L,EAAAA,UAAS,WAAA,OAAM7X,EAAM+2B,WACvCs9K,EAAYx8L,EAAAA,UAAS,WAAA,MAAM,IAAA+d,OAC5B2hB,EAAen+C,iBACjB4G,EAAMqyC,gBAAezc,OAAGzM,EAAY/vB,wBAEjCk7M,EAAgBz8L,EAAAA,UAAS,WAC7B,OAAIm7L,EAAa55M,MAAc,CAAAw8B,GAAAA,OAAI2hB,EAAen+C,MAA4B,0BAC1E+6M,EAAQ/6M,OAAS25M,EAAW35M,MACvB,CAAA,GAAAw8B,OACF2hB,EAAen+C,MAAA,gBAChB4G,EAAM0jC,KAAA,GAAA9N,OAAU2hB,EAAen+C,MAAA,YAAAw8B,OAC9B51B,EAAM42D,YAAc52D,EAAM0jC,cAAS6T,EAAen+C,MAAU4G,MAAAA,OAAAA,EAAM42D,WAAc,KAGhF,EACT,IACMo5I,EAAYn4L,EAAAA,UAAS,WAAA,OACzBm7L,EAAa55M,OAAS+6M,EAAQ/6M,OAAS25M,EAAW35M,MAAQ,CAAA,GAAAw8B,OAAI2hB,EAAen+C,MAAA,WAAiB,IAAA,IAE1FypI,EAAgBhrH,EAAAA,UAAS,WAC7B,GAAIm7L,EAAa55M,MAAO,MAAO,GAGzB,IAAEsqC,EAAQ1jC,EAAR0jC,IACJ6wK,EAAW,CAAA,OACH,IAAR7wK,IAES6wK,EAAA,CAAE3lH,WADIijH,GAAYnuK,KAGxB,OAAA6wK,CACT,IAEQpuK,EAA0BL,GAAgB,SAAU,CAC1D/O,QAASq9K,IADHjuK,sBAIFquK,EAAY7/K,OAAI,GA4BtB,SAAS8/K,IAAc,IAAAC,EAAAC,EACPD,QAAdA,EAAAR,EAAQ96M,MAAMkrC,kBAAAqwK,IAAAD,GAA0BC,QAA1BA,EAAdD,EAA0BtxK,mBAA1BuxK,IAAwCA,GAAxCA,EAAA98M,KAAA68M,EAAwCR,EAAQ96M,MAClD,CA5BAujC,EAAAA,OACE,WAAA,OAAM38B,EAAM+2B,OACZ,IAAA,SAAC39B,GACY,IAAAw7M,EAAPx7M,GACFo7M,EAAUp7M,OAAQ,GACb+6M,EAAQ/6M,QAAU4G,EAAMwwM,uBAA0BwC,EAAa55M,SAC9D4G,EAAMoyC,sBACCzS,SAAAwB,KAAK+B,YAAYgxK,EAAQ96M,OAGpCo3C,EAAAA,UAAS,WAAM,IAAAqkK,EACT,GAAA9C,IAA+B,QAA/B8C,EAAiBd,EAAc36M,aAAA,IAAAy7M,GAAdA,EAAqBx6I,IAAK,CACvC,IAAAl6B,EAAK4zK,EAAc36M,MAAMihE,IAC5Bl6B,EAAAiH,MAAM+J,0BAAqB4gK,GAAc9tL,EAAIkc,EAAGs9B,WAAA,OAAA7nC,OAAgBm8K,GAAc1vL,EAAI8d,EAAGqpB,UAAA,KAC1F,CACF,aAGDorJ,EAAAj1K,SAASulE,4BAAT0vG,EAAwCv9G,SAa7C5gF,aAAa23B,EAAMh1C,OACbg1C,EAAAh1C,MAAQ+c,YAAW,WACXs+L,MACX,MAZDK,EAAiB17M,EACnB,IAcI,IC9IoB6jD,EAExB83J,EACAC,ED2IIF,EAAmB,SAACv8I,GACpBA,GACO54B,SAAAC,iBAAiB,UAAWq1K,GACrCj1M,EAAMqwM,gBAAkB1wK,SAASC,iBAAiB,UAAWs1K,KAEpDv1K,SAAAK,oBAAoB,UAAWi1K,GACxCj1M,EAAMqwM,gBAAkB1wK,SAASK,oBAAoB,UAAWk1K,KAI9DA,EAAqB,SAACh+M,GAEtB,GAAmC,UADtBA,EAAE+hC,OACN2+D,QAAQrsF,cAAjB,CACE,IACuE4pM,EADrEphI,EAAS78E,EAAT68E,KACR,IAAc,UAATA,GAA6B,gBAATA,IAA2B5tC,IAC5C,QAANnmC,EAAAA,EAAMq/I,iBAAA,IAAA81D,GAANn1M,EAAAA,KAAAA,EAAkB,CAAE9I,EAAAA,GAH0B,GAM5C+9M,EAAgB,SAAC/9M,GAC+B,IAAAk+M,EAAAC,EAArC,WAAXn+M,EAAE68E,MAAqB5tC,MACnB,QAANnmC,EAAAA,EAAM6wM,oBAAA,IAAAuE,GAANp1M,EAAAA,KAAAA,EAAqB,CAAE9I,EAAAA,KAEbm+M,QAAVA,EAAIr1M,EAAM+pB,yBAAAsrL,IAAAA,EAAAA,EAAqBngL,EAAa97B,MAAM2wB,qBAChDkqL,EAAe,CAAE/8M,EAAAA,EAAGg4D,QAAS,QAE7Bh4D,EAAEo+M,8BAURC,GCjL0Bt4J,ED2KJ,SAAC/lD,GAAkB,IAAAs+M,EACyD/hI,EAA5FzzE,EAAMqyC,cAA6C,QAA7BryC,EAAAA,EAAMgqB,2BAAuBwrL,IAAAA,EAAAA,EAAAtgL,EAAa97B,MAAM4wB,uBAClE,QAANhqB,EAAAA,EAAMivE,sBAAA,IAAAwE,GAANzzE,EAAAA,KAAAA,EAAuB,CAAE9I,EAAAA,IACzB+8M,EAAe,CAAE/8M,EAAAA,EAAGg4D,QAAS,cC5K/B6lJ,GAAmB,EACnBC,GAAiB,EAiBd,CAAE39J,QAfO,SAACngD,GACX69M,GAAoBC,GACtB/3J,EAAY/lD,GAEK69M,GAAA,EACFC,GAAA,GAUD14G,YAPE,SAACplG,GACA69M,EAAA79M,EAAE+hC,SAAW/hC,EAAEw4D,eAMLg+G,UAJb,SAACx2K,GACA89M,EAAA99M,EAAE+hC,SAAW/hC,EAAEw4D,iBDgKxBrY,EAASk+J,EAATl+J,QAASilD,EAAAi5G,EAAAj5G,YAAaoxE,EAAU6nC,EAAV7nC,UACxBulC,EAAiB,SAACn7K,GAA+B,IAAA2gC,UACrDz4D,EAAAA,EAAMw2D,uBAANx2D,OAAAA,EAAAA,KAAAA,EAAwB83B,GACTm8K,EAAA,CACb/kJ,QAAS,YACTh4D,EAAG4gC,EAAQ5gC,KAKTw3F,EAAc,WAAM,IAAA+mH,EACH,QAArBz1M,EAAAA,EAAM0wM,oBAAe,IAAA+E,GAArBz1M,EAAAA,KAAAA,IAIIivF,EAAa,WAAM,IAAAymH,EACN,QAAjB11M,EAAAA,EAAM8wM,gBAAW,IAAA4E,GAAjB11M,EAAAA,KAAAA,IAIIkvF,EAAc,WAAM,IAAAymH,EACF,QAAtB31M,EAAAA,EAAMywM,qBAAgB,IAAAkF,GAAtB31M,EAAAA,KAAAA,IAIIovF,EAAa,WAAM,IAAAwmH,EAAAC,EAAAC,UACvBF,EAAA7B,EAAc36M,8BAAdw8M,EAAqBxC,qBAAgB,IAAAyC,GAArCA,EAAAh+M,KAAA+9M,GACiB,QAAjB51M,EAAAA,EAAM4wM,gBAAW,IAAAkF,GAAjB91M,EAAAA,KAAAA,IAGIi0M,EAAiB,SAACpiJ,GAA4B,IAAA2G,UAClDx4D,EAAAA,EAAMu2D,eAANv2D,OAAAA,EAAAA,KAAAA,EAAgB6xD,GAER/5B,EAAAR,KAAK,kBAAkB,IAyCjCwN,EAAAA,WAAU,WACR,IACMjC,EADelD,SAASiC,gBAAgBqJ,aAAetL,SAASiC,gBAAgBy+B,aACnDuxI,KAAsB,EACjDsC,EAAA96M,MAAQumC,SAASsD,cAAc,SAC/BixK,EAAA96M,MAAM+uC,QAAQ3J,GAAK,aAAA5I,QAAc,IAAIr3B,iBAAWV,IAAO,GAC/Dq2M,EAAQ96M,MAAMq2M,gGAAY75K,OAGDiN,EAAA,0BAG3B,IAEAkC,EAAAA,iBAAgB,WACd+vK,GAAiB,GACLL,GACd,IAEM,IAAAsB,EAAel+L,EAAAA,UAAS,WAC5B,IAAQ02D,EAAkCvuE,EAAlCuuE,eAAgBx3C,EAAkB/2B,EAAlB+2B,QAASqsD,EAASpjF,EAATojF,KAC7B,OAACoxH,EAAUp7M,MAGN29B,IAAYw3C,GAFX6U,CAIZ,IAEA,OAAO,WACC,IAEA4yH,EAAO,EAFK7B,EAAQ/6M,OAAS45M,EAAa55M,QAAAq4C,EAAAK,YAAA,MAAA,CAAAj0C,IAAA,OAAA6zC,MAAiC2iK,EAAUj7M,OAAO,MAvD/E,WAEnB,IAAQw5B,EAA+D5yB,EAA/D4yB,MAA+D5yB,EAAxDq/I,UAAwDr/I,EAA7C2wM,SAA6C3wM,EAAnCw2D,gBAAoBy/I,IAAAA,KAAej2M,EAAAA,IACvE,OAAAyxC,EAAAA,YAAA,MAAA,CAAAC,MAEcs+J,EAAU52M,OAAA,CAAAq4C,EAAAK,YAAA,MAAA,CAAAJ,MAEX4iK,EAAcl7M,MAAAguC,MACdy7F,EAAczpI,MAAAi+C,QACZA,EACTilD,YAAaA,YACFoxE,GAAA,CAAAj8H,EAAAA,YAAAykK,GAAA5hK,aAAA,CAAA3f,IAGJo/K,EACLnhL,MAAOA,GACHqjL,EAAA,CAAA52D,UAEOiyD,EAAAX,SACDe,EACVl7I,gBAAiBy8I,IAHRn7K,EAAQ9Y,WAuCNm3L,IAEbC,EAAW,CAAE5wK,OAAQxlC,EAAMwlC,QAI3B6wK,EAAW,CAAA,GAAAzgL,OACZ2hB,EAAen+C,MAAAH,SAAAA,EAAAA,EAAAA,EAAA,CAAA,EAAA,GAAA28B,OAEZ2hB,EAAen+C,MAAsB+6M,gBAAAA,EAAQ/6M,OAAS45M,EAAa55M,OAAA,GAAAw8B,OACnE2hB,EAAen+C,MAAyB+6M,mBAAAA,EAAQ/6M,OAAS4G,EAAMwwM,uBAAA,GAAA56K,OAC/D2hB,EAAen+C,MAAyB25M,mBAAAA,EAAW35M,QAKzD,OAAAq4C,EAAAA,YAAA5xB,EAAAA,SAAA,CAAA2W,UAAqBx2B,EAAMupB,SAAW8pB,EAAgBj6C,MAAO6wC,GAAIoJ,EAAgBj6C,OAC/E,CAAAwuB,QAAA,WAAA,MAAA6pB,CAAAA,EAAAK,YAAAs4C,aAAA,CAAA7qD,SACY,IAAAvnC,KAAA,GAAA49B,OACD2hB,EAAen+C,MACxB,cAAAk9M,cAAe5nH,EACfY,aAAcL,gBACCC,EAAAqnH,aACDnnH,GAEb,CAAAxnE,QAAA,WAAA,MAAAmuL,CAAAA,EAAa38M,gEACuBi9M,EAAUjvK,MAAOgvK,GAAct+K,EAAQ2a,OACvEujK,CAAAA,cADUh2M,EAAM+2B,WAAlB,IAAA,IAQb,ukBEpTF,IAAMy/K,GAA6B,SAACx2M,GAC5B,IAAAoV,EAAAk8B,GAAA,CAAA,EAAetxC,GACfs6D,EAAU36B,SAASsD,cAAc,OACjClM,EAAUpC,OAAI,GACZ4L,EAAqBnrB,EAArBmrB,UAAW6G,EAAUhyB,EAAVgyB,MAEfqvK,EAAel2K,EAEbm2K,EAAuB,SAACn2K,EAAmB6G,GAC/C,GAAI7G,EAAW,CACmC,IAAAo2K,EAA5C,GAAAF,GAAgBA,IAAiBl2K,GACnCo2K,EAAAr8I,EAAQs8I,kBAAkBt2K,WAAUzkB,OAAO7c,MAAA23M,EAAAz+M,EAAGu+M,EAAa9tM,MAAM,KAAK1D,KAAI,SAACjN,GAAA,OAASA,EAAKmkC,MAAM,MAEjGoE,EAAU53B,MAAM,KAAK6H,SAAQ,SAACxY,GAC5BsiE,EAAQs8I,kBAAkBt2K,UAAU5vB,IAAI1Y,EAAKmkC,OAC/C,GACF,CAEIiL,IACDkzB,EAAQs8I,kBAAkCxvK,MAAMyvK,SAAWzvK,GAG/C7G,EAAAA,GAGXoU,EAAYtE,EAAAA,gBAAgB,CAChCC,eAAMtwC,EAAAA,GAAmB,IAAVurD,EAAA3uB,EAAA2uB,OACPurJ,EAAgBniL,MAAyBvf,GAC/C0vB,EAAAA,WAAU,WACR/N,EAAQ39B,OAAQ,EAEfumC,SAASulE,cAA8B7N,OAExC7mD,EAAAA,UAAS,WACPkmK,EAAqBn2K,EAAW6G,EAClC,GACF,IAYA,OAJOmkB,EAAA,CACLyhB,OARa,SAACkkI,GACd4F,EAAc19M,MAAQk4C,GAAAA,GACjBl8B,CAAAA,EAAAA,GACA87L,MAQA,WACC,IAAA36I,EACJnhD,EAAQmhD,SACR,WACEx/B,EAAQ39B,OAAQ,GAIpB,cAFOgc,EAAQmrB,iBACRnrB,EAAQgyB,MACRxoB,IAAEm4L,GAAiBzlK,GAAA,CACxBilB,QAAAA,EACAx/B,QAASA,EAAQ39B,OACd09M,EAAc19M,QAGvB,IAEI49M,EAAkB/hK,YAAUN,GAC5B7qB,EAASktL,EAAgB9hK,MAAMolB,GAE/Bj5B,EAAYP,GAAU1rB,EAAQmU,QA8B7B,OA7BH8X,EACFA,EAAU6B,YAAYo3B,GAEtBzgC,QAAQnD,MAAM,uBAGmB,CACjC+7C,KAAM,WACJ17C,EAAQ39B,OAAQ,CAClB,EACAg8C,KAAM,WACJre,EAAQ39B,OAAQ,CAClB,EACA4zE,OAAQ,SAACkkI,GAEPpnL,EAAOkjD,OAAO5yD,GAAK82L,EAAY,CAAC,YAAa,WACxBwF,EAAAxF,EAAW3wK,UAAW2wK,EAAW9pK,MACxD,EACA4oB,QAAS,WACPj5B,EAAQ39B,OAAQ,EAChB+c,YAAW,WACT6gM,EAAgB3hK,UAChBilB,EAAQz+C,WACP,IACL,EACAo7L,kBAAmB,SAACh3L,GAClB6J,EAAOkjD,OAAO,CAAEojI,eAAgBnwL,GAClC,EAGJ,EAgBM06C,GAAqB,CACzBptC,QATmC,SAACvtB,GAAyB,OAAAw2M,GAAax2M,EAAK,EAU/E8xB,MAR+B,SAAC9xB,GAC1B,IAAAoV,EAAAk8B,GAAA,CAAA,EAAetxC,GAErB,OADAoV,EAAQ86L,UAAY,KACbsG,GAAaphM,EACtB,GASa8hM,GAAeV,GAE5BU,GAAazhK,QAAU,SAACT,GAClBA,EAAAU,OAAOC,iBAAiBwhK,QAAUX,GACtCt9M,OAAO+D,KAAK09D,IAAUnqD,SAAQ,SAACwqD,GAC7BhmB,EAAIU,OAAOC,iBAAiBwhK,QAAQn8I,GAAYL,GAASK,EAC3D,GACF,EAEA9hE,OAAO+D,KAAK09D,IAAUnqD,SAAQ,SAACwqD,GAC7Bk8I,GAAal8I,GAAYL,GAASK,EACpC,QChIao8I,GAAS3gK,GAAYq9J,IACrBuD,GAAa5gK,GAAYu7J,ICFvBsF,GAAA,CAEb/tL,OAAQ,CACN1tB,KAAM,CAAC9C,OAAQc,UACf+tB,QAAS,QAGX0uC,SAAU,CACRz6D,KAAM,CAAC2lB,QAAS3nB,UAChB+tB,SAAS,GAGXmC,kBAAmB,CACjBluB,KAAM2lB,QACNoG,SAAS,GAGX2vL,eAAgB/1L,QAEhB2hE,UAAW,CACTtnF,KAAM2lB,QACNoG,aAAS,GAGXymL,oBAAqB,CACnBxyM,KAAM9C,OACN24B,UAAAA,SAAUzR,GACR,OAAKA,GACE,CACL,cACA,6BACA,SACA,2BACA,cACA,gBACA,kCACA,cACAvI,SAASuI,EACb,GAGFu3L,WAAY,CACV37M,KAAM3C,QAGRu+M,OAAQ,CACN57M,KAAMzE,MACNwwB,QAAS,WAAT,MAA6C,EAAC,GAGhD5sB,MAAO,CACLa,KAAM7C,OACN4uB,aAAS,GAGX8vL,aAAc,CACZ77M,KAAM7C,OACN4uB,QAAS,GAGXw6D,KAAM,CACJvmF,KAAM9C,OACN6uB,QAAS,QACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,QAAS,YAAYvI,SAASuI,EACxC,GAGF03L,gBAAiB,CACf97M,KAAM,CAAC2lB,QAAS3nB,UAChB+tB,SAAS,GAGXyqB,YAAa,CACXx2C,KAAM2lB,QACNoG,aAAS,GAGXwF,MAAO,CACLvxB,KAAM,CAAC9C,OAAQc,WAGjBq1D,QAAS,CACPrzD,KAAM,CAAC9C,OAAQc,WAGjB+9M,YAAa,CACX/7M,KAAM3C,QAGR69B,QAAS,CACPl7B,KAAM2lB,QACNoG,aAAS,GAEXyiB,WAAY,CACVxuC,KAAM2lB,QACNoG,aAAS,GAGXonD,eAAgBxtD,QAEhBgkB,OAAQ,CACN3pC,KAAM7C,QAGRu9D,QAAS18D,SAETg+M,WAAYh+M,SAEZi+M,cAAej+M,UC9GjBk+M,GAAe1nK,kBAAgB,CAC7Br4C,KAAM,oBACNgI,MAAO,CACLm+L,MAAOnlM,OACPg/M,SAAUn+M,SACVo+M,SAAUp+M,SACVq+M,UAAWr+M,SACXs+M,SAAUt+M,SACVumK,QAASvmK,SACTg+M,WAAYh+M,SACZu+M,aAAc,CACZv8M,KAAM3C,OAAA0uB,QACNA,WACE,MAAO,EACT,IAGJ0oB,MAAAA,SAAMtwC,GACJ,IAAMmpB,EAAcwM,KAGZ+G,EAAeF,GAFN3kB,EAAAA,UAAS,WAAA,OAAM7X,EAAMo4M,aAAaC,cAE3C37K,WACAxH,EAAiBN,GAAU,eAA3BM,aAED,OAAA,WAAA,OAAAuc,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OACUzM,EAAY/vB,MAAA,yBAAA,CAAAq4C,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OACVzM,EAAY/vB,MAAA,iCAAAq4C,CAAAA,EAAAK,YAAAwmK,GAAA,CAAA7pI,iBAAA,GAAA74C,OAEFzM,EAAY/vB,MAAA,6BAAAskB,QACxBwX,EAAa97B,MAAM85B,cAAAq7C,gBAAA,EAAA3X,UAAA,MAAAkY,WAAA,EAAAl8C,MAAA,WAAA,CAAAhL,QAAA,WAAA,MAAA6pB,CAAAA,EAAAK,YAAAi+J,GAAA,CAAA14J,QAMDr3C,EAAMm4M,SAAUvuL,KAAM,WAAA,OAAA6nB,EAAAA,YAAA8mK,GAAA,CAAA/zM,KAAA,UAAA,KAAA,GAAgC,MAAA,IAAAitC,EAAAK,YAAAwmK,GAAA,CAAA7pI,iBAAA,GAAA74C,OAG5DzM,EAAY/vB,MAAA,6BAAAskB,QACxBwX,EAAa97B,MAAM+5B,cAAAo7C,gBAAA,EAAA3X,UAAA,MAAAkY,WAAA,EAAAl8C,MAAA,WAAA,CAAAhL,QAAA,WAAA,MAAA6pB,CAAAA,EAAAK,YAAAi+J,GAAA,CAAA14J,QAMDr3C,EAAMg4M,SAAUpuL,KAAM,WAAA,OAAA6nB,EAAAA,YAAA+mK,GAAA,CAAAh0M,KAAA,UAAA,KAAA,GAAkC,MAAA,IAAAitC,EAAAK,YAAAi+J,GAAA,CAAAnmL,KAE7D,WAAA,OAAA6nB,EAAAA,YAAAgnK,GAAA,CAAAj0M,KAAA,UAAA,KAAiC,EAAA6yC,QAAar3C,EAAMk4M,WAAWzmK,MAAAA,EAAAK,YAAAi+J,GAAA,CAAAr+J,MAAA,GAAA9b,OAE3EzM,EAAY/vB,kEAEZ2oG,GAAmBhpG,OAAqB,IAAdiH,EAAMm+L,QAC5C,MAAA1sJ,MAAAA,EAAAK,YAAAi+J,GAAA,CAAAnmL,KAEwB,WAAA,OAAA6nB,EAAAA,YAAAinK,GAAA,CAAAl0M,KAAA,UAAA,KAAgC,EAAA6yC,QAAar3C,EAAMi4M,UAAUxmK,MAAAA,EAAAK,YAAAwmK,GAAA,CAAA7pI,iBAAA,GAAA74C,OAE9DzM,EAAY/vB,2CACxB87B,EAAa97B,MAAMg6B,oBAAAm7C,gBAAA,EAAA3X,UAAA,MAAAkY,WAAA,EAAAl8C,MAAA,WAAA,CAAAhL,QAAA,WAAA,MAAA,CAAA6pB,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OAMbzM,EAAY/vB,MACzB,8BAAAq4C,CAAAA,EAAAK,YAAAi+J,GAAA,CAAAnmL,KAAwB,WAAA,OAAA6nB,EAAAA,YAAAmsJ,GAAA,CAAAp5L,KAAA,UAAA,eAA4CxE,EAAMogK,qBAG7EpgK,EAAMo4M,aAAa/9J,UAClB5I,EAAAA,YAAAs+J,GAAA,CAAAnmL,KACQ,WAAA,OAAA6nB,EAAAA,YAAAknK,GAAA,CAAAn0M,KAAA,UAAA,KAAkC,EAAA6yC,QAC/B,WACDr3C,EAAA63M,WAAWn7K,EAAWtjC,MAC9B,GACF,UAKV,IC9EFw/M,GAAevoK,kBAAgB,CAC7Br4C,KAAM,oBACNgI,MAAO,CACLwlC,OAAQxsC,OACR+9B,QAASvV,QACTxmB,MAAOhC,OACPy+M,OAAQz3M,GAAMy3M,OACdtZ,MAAOnlM,OACPk1M,OAAQl1M,OACRkiD,OAAQliD,OACRo0B,MAAOptB,GAAMotB,MACbgrL,aAAc,CACZv8M,KAAM3C,OAAA0uB,QACNA,WACE,MAAO,EACT,GAEFowL,SAAUn+M,SACVo+M,SAAUp+M,SACVq+M,UAAWr+M,SACXs+M,SAAUt+M,SACVumK,QAASvmK,SACT08D,QAASv2D,GAAMu2D,QACfshJ,WAAY73M,GAAM63M,WAClB10H,UAAW,CACTtnF,KAAM2lB,QACNoG,SAAS,GAEXgwL,YAAa,CACX/7M,KAAM3C,OAAA0uB,QACNA,WACE,MAAO,EACT,GAEFyqB,YAAa7wB,QACb80C,SAAUt2D,GAAMs2D,SAChB+3I,oBAAqBruM,GAAMquM,qBAE7B/9J,MAAAA,SAAMtwC,GACJ,IAAMmpB,EAAcwM,KACdkjL,EAAYh4L,KACZumB,EAAQvvB,EAAAA,UAAS,WAAA,MAAO,CAC5BikE,SAAU97E,EAAM43M,YAAY97H,SAC5Bi0F,UAAW/vK,EAAM43M,YAAY7nC,UAC7B,IAEK,OAAA,WAAA,OAAAt+H,EAAAA,YAAAqnK,GAAA,CAAAvqI,gBAAA,EAAAhlD,OAAA,OAAAgtC,QAIMv2D,EAAMu2D,QACfx/B,QAAS/2B,EAAM+2B,QAAA6/B,UAAA,SAAAwrB,KAAA,WAAAz5C,MAGR,IACPunK,UAAW,KACXC,WAAY,KACZhtH,UAAWnjF,EAAMmjF,UAAA39C,OACTxlC,EAAMwlC,mBACDxlC,EAAMqyC,YACnBX,MAAA,GAAA9b,OAAUzM,EAAY/vB,MACtB,yBAAAyvM,OAAQgQ,EAAU,QAAS,IAAE9kC,OACrB,WAAA,OAAAtiI,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OACSzM,EAAY/vB,MACzB,+BAAAq4C,CAAAA,EAAAK,YAAAimK,GAAA,CAAAE,SACYj4M,EAAMi4M,SAAAC,UACLl4M,EAAMk4M,UACjB/Z,MAAOn+L,EAAMm+L,MACbia,aAAcp4M,EAAMo4M,aAAAJ,SACVh4M,EAAMg4M,SAChBG,SAAUn4M,EAAMm4M,SAAA/3C,QACPpgK,EAAMogK,QACfy3C,WAAY73M,EAAM63M,YACpB,OAAA,GAVD,CAAAjwL,QAAA,WAAA,MAAA,CAAA6pB,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OAcYzM,EAAY/vB,MAAA,+BAAAguC,MAA2CA,EAAMhuC,OAC1Eq4C,CAAAA,EAAAK,YAAAm8J,GAAA,CAAAC,OACUluM,EAAMkuM,OACd/P,MAAOn+L,EAAMm+L,MAAAjjJ,OACLl7C,EAAMk7C,OACdihJ,IAAKn8L,EAAMo4M,aAAaC,UACxBlK,aAAcnuM,EAAMo4M,aAAaW,UAAA3K,MAC1BpuM,EAAMo4M,aAAahK,MAAAC,oBACLruM,EAAMquM,qBAC7B,QAAA,IAIR,ICnGgB2K,YAAAA,GAAAA,OAChBA,EAAO,KAAA,YACPA,EAAK,GAAA,UACLA,EAAQ,MAAA,aACRA,EAAO,KAAA,YACPA,EAAM,IAAA,SALUA,CAAA,EAAAA,IAAA,CAAA,kOCIL,IAiCAC,GAAe,SAACxB,GACvB,OAACt/M,EAAQs/M,GACNA,EAAOxyM,KAAI,SAAC4Y,GACb,OAPY,SAACkO,GACZ,SAAEA,GAAUzT,GAASyT,IAAYA,aAAiBmtL,KAC3D,CAKQC,CAAYt7L,oWACPyzB,CAAA,CACL+I,UAAU,EACV0+J,UAAWl7L,EAAKw6L,WACbx6L,GAGA,CACLw6L,UAAWx6L,EACXk7L,UAAWl7L,EACXw8B,UAAU,EAEd,IAd6B,EAe/B,ECrCA++J,GAAe/oK,kBAAgB,CAC7Br4C,KAAM,eACNgI,MAAAA,GACAswC,MAAAA,SAAMtwC,GAAO,IAAAq5M,EACLlwL,EAAcwM,KACd4hB,EAAiB5hB,GAAe,gBAChCjX,EAAiBmC,KACjBy4L,EAAW3kL,OAAI,GACf4kL,EAAmB1hM,EAAAA,UAAS,WAAA,OD+BZ,SAAC7X,GACrB,YAAsB,IAAtBA,EAAMqyC,YACDryC,EAAMqyC,YAEO,UAAfryC,EAAMoiF,IACf,CCpC4CpO,CAAWh0E,MAEnDyxE,EAA4Dv9B,SAAOl0C,GAA3DhF,EAAOy2E,EAAPz2E,MAAO+7B,EAAA06C,EAAA16C,QAASsT,IAAAA,WAAYgkK,EAAoB58H,EAApB48H,oBAC4E3rH,EAAA7lE,GAA5Eqa,GAAgBl8B,UAAOgF,EAAAA,EAAM03M,oBAAgB,IAAA2B,EAAAA,EAAA,EAAGr5M,EAAM83M,cAAe,SAAO,GAAzG0B,EAAY92H,EAAA,GAAA+2H,EAAa/2H,EAAA,GACgFhR,EAAA70D,GAAxEutB,GAAUrT,EAASsT,EAAYrqC,EAAMgvE,gBAAgB,cAAU,WAAS,GAAzG0qI,OAAcC,EAAejoI,EAAA,GAC9BkoI,EAAejlL,OAAI,GACnBklL,EAAiBllL,EAAAA,MAEjB0e,EAAkBrJ,IAAY,WAAA,OAAMhqC,EAAMupB,UAE1CymL,EAAYn4L,EAAAA,UAAS,WAAA,MAAM,CAC/B0/B,EAAen+C,SAAAw8B,OACZ2hB,EAAen+C,MAAA,kBAAAH,EAAA28B,CAAAA,EAAAA,GAAAA,OAEZzM,EAAY/vB,mBAAmBsgN,EAAatgN,WAG9C0gN,EAAcjiM,EAAAA,UAAS,WAAA,MAAM,IAAA+d,OAC9BzM,EAAY/vB,qCAAAH,EAAA,CAAA,EAAA,GAAA28B,OAETzM,EAAY/vB,kBAAkBkgN,EAASlgN,WAGzC2gN,EAAcliM,EAAAA,UAAS,WAAA,IAAAmiM,EAAA,eAAAA,EAAMh6M,EAAMwlC,sBAAU,QAC7Cy0K,EAAe,WACVX,EAAAlgN,OAASkgN,EAASlgN,OAG7B8gN,ElBbG,WACC,IAAAh/J,EAASvmB,MAAI,GAQZ,MAAA,CAAEumB,OAAAA,EAAQi9J,SAPA,WACfj9J,EAAO9hD,QAAS,GAMS+gN,YAJP,WAClBj/J,EAAO9hD,MAAQ,GAInB,CkBG8CghN,GAAlCl/J,EAAAg/J,EAAAh/J,OAAQi9J,EAAU+B,EAAV/B,SAAUgC,EAAAD,EAAAC,YACpBE,ElBFM,WAAmE,IAA1D7C,sDAAyB,GAAA,CAAEl3M,IAAK,EAAG2U,IAAK,GAAKwG,KAAM,IAClEnb,EAAiCk3M,EAAjCl3M,IAAK2U,EAA4BuiM,EAA5BviM,IAAKwG,EAAuB+7L,EAAvB/7L,KAAM6+L,EAAiB9C,EAAjB8C,aAClBnc,EAAQxpK,MAAI2lL,QAAAA,EAAgB,GAE5BrC,EAAW97L,IAAS,WACxB,IAAM3hB,EAASioG,GAAY07F,EAAM/kM,MAAOqiB,GACxC8+L,EAAS//M,KACR,IAEG09M,EAAY/7L,IAAS,WACzB,IAAM3hB,EAAS2oG,GAAiBg7F,EAAM/kM,MAAOqiB,GAC7C8+L,EAAS//M,KACR,IAEGggN,EAAa,WACjBrc,EAAM/kM,MAAQkhN,QAAAA,EAAgB,GAG1BC,EAAW,SAACE,GAChB,IAAIrhN,EAAQqhN,EACRA,EAAWxlM,IACL7b,EAAA6b,GAENwlM,EAAWn6M,IACLlH,EAAAkH,GAEV69L,EAAM/kM,MAAQA,GAQhB,OALAujC,EAAAA,OACE,WAAA,OAAM66K,KACN,WAAA,OAAMgD,GAAW,IAGZ,CAAErc,MAAAA,EAAO8Z,SAAAA,EAAUC,UAAAA,EAAWsC,WAAAA,EACvC,CkBjCuDE,CAAS16M,EAAMw3M,YAA1DrZ,IAAAA,MAAO8Z,EAAUoC,EAAVpC,SAAUC,EAAAmC,EAAAnC,UAAWsC,IAAAA,WACpCG,ElBkCG,WACC,IAAAzM,EAASv5K,MAAI,GAUZ,MAAA,CAAEu5K,OAAAA,EAAQ8J,SAPA,WACf9J,EAAO90M,OAHU,IASQwhN,YAJP,WAClB1M,EAAO90M,MAAQ,GAInB,CkB9C8CyhN,GAAlC3M,EAAAyM,EAAAzM,OAAQ8J,EAAU2C,EAAV3C,SAAU4C,EAAAD,EAAAC,YACpBE,EAAS,WACDX,IACDK,IACCI,KAGRnD,EAAS5/L,EAAAA,UAAS,WAAA,OAAMohM,GAAaj5M,EAAMy3M,WAC3CW,EAAevgM,EAAAA,UAAS,WAAA,IAAAkjM,EAAA,OAAwC,QAAxCA,EAAMtD,EAAOr+M,MAAMogN,EAAWpgN,cAAU,IAAA2hN,EAAAA,EAAA,CAAE1C,UAAW,OAE3ElyK,EAA0BL,GAAgB,SAAU,CAC1D/O,QAAS2iL,IADHvzK,sBAIF60K,EAAY,WACV,IAAArkF,EAAW6iF,EAAWpgN,MAAQ,EAC7B0hN,IACPrB,EAAc9iF,EAAW,EAAI,EAAIA,EAAU,CAAEznE,QAAS,UAGlD+rJ,EAAY,WACV,IAAAtkF,EAAW6iF,EAAWpgN,MAAQ,EAC7B0hN,IACOrB,EAAA9iF,GAAY8gF,EAAOr+M,MAAMnC,OAASuiN,EAAWpgN,MAAQu9H,EAAU,CAAEznE,QAAS,UAOpFgsJ,EAAkB,SAAC/pL,GACvBnxB,EAAM63M,WAAa73M,EAAM63M,WAAW1mL,GDjFd,SAAUgqL,GAAgB,IAAAC,EAAAC,EAAAC,EAC9CvvL,EAAQ,IAAI8xK,MAIZ7lM,GAAOmjN,SAAgBC,UAAhBD,EAAQxyM,iBAAQyyM,WAAAA,EAAhBA,EAAAvjN,KAAAsjN,EAAgB,mBAAW,UAA3BC,EAAuB,UAAI,IAAAA,GAAAC,QAAAA,EAA3BD,EAA2BzyM,iBAAA0yM,GAAWA,QAAXA,EAA3BA,EAAAxjN,KAAAujN,EAAmC,gBAAGC,WAAAA,EAAtCA,EAA0C,UAAI,IAAAA,GAAA,QAAAC,EAA9CD,EAA8C1yM,aAAA,IAAA2yM,OAAA,EAA9CA,EAAAzjN,KAAAwjN,EAAsD,KAAKv2M,QAASzE,KAAK2vG,SAASp4G,SAAS,IAAIE,MAAM,GAE5Gi0B,EAAAwwB,aAAa,cAAe,aAElCxwB,EAAMmR,OAAS,WACP,IAAAq+K,EAAS57K,SAASsD,cAAc,UACtCs4K,EAAO5yK,MAAQ5c,EAAM4c,MACrB4yK,EAAO1yK,OAAS9c,EAAM8c,OAEN0yK,EAAOC,WAAW,MAC1BC,UAAU1vL,EAAO,EAAG,EAAGA,EAAM4c,MAAO5c,EAAM8c,QAC3C0yK,EAAAG,QAAO,SAACC,GACP,IAAAxqL,EAAMyqL,IAAIC,gBAAgBF,GAC1B3kN,EAAI2oC,SAASsD,cAAc,KACjCjsC,EAAEqjD,SAAWriD,EACbhB,EAAEigD,KAAO9lB,EACTn6B,EAAEmsC,QACFnsC,EAAE6kB,SACF+/L,IAAIE,gBAAgB3qL,EACtB,KAEFpF,EAAMowK,IAAMgf,CACd,CCsDiDY,CAAa5qL,IAGpD6qL,EAAc,WAClBrC,GAAgB,IAEZpjJ,EAAyC,SAAC1E,GAAQ,IAAA2G,EACtDmhJ,GAAgB,WAChB35M,EAAAA,EAAMu2D,eAANv2D,OAAAA,EAAAA,KAAAA,EAAgB6xD,IAEZohJ,EAAiB,SAAC/7M,GACtBq/D,EAAQ,CAAEr/D,EAAAA,EAAGg4D,QAAS,eAElB+sJ,EAAsB,SAAC/kN,GACvB8I,EAAMu3M,gBACRhhJ,EAAQ,CAAEr/D,EAAAA,EAAGg4D,QAAS,aAIpBgtJ,EAAiB,SAAChlN,GAGtB,OAFAA,EAAEyhF,kBAEMzhF,EAAE68E,MAAA,KACHilI,GAAWr1K,KACJq3K,IACV,MAAA,KACGhC,GAAWn1K,MACJo3K,IACV,MAAA,KACGjC,GAAWmD,GACLlE,IACT,MAAA,KACGe,GAAWoD,KACJlE,IACV,MAAA,KACGc,GAAWqD,IACVr8M,EAAM+pB,mBAAqBoc,KAC7BowB,EAAQ,CAAEr/D,EAAAA,EAAGg4D,QAAS,UAQxBotI,EAAS3nK,EAAAA,MACfgI,EAAAA,OACE,WAAA,OAAM+8K,EAAatgN,KACnB,IAAA,SAAC6mB,GACCxJ,aAAaojM,EAAezgN,OACxB6mB,GACF25L,EAAaxgN,OAAQ,EACZo3C,EAAAA,WAAEnT,MAAK,WAAM,IAAAi/K,EAAAC,UACpBD,EAAAhgB,EAAOljM,8BAAPkjN,EAAc1sJ,aAAQ,IAAA2sJ,GAAtBA,EAAA1kN,KAAAykN,EACF,IAEOxB,KAEQjB,EAAAzgN,MAAQ+c,YAAW,WAChCyjM,EAAaxgN,OAAQ,IACpB,IAEP,IAGI,IAAAmxF,EAAU,SAACrzF,GACfA,EAAEw8E,iBACiBx8E,EAAX6wF,OACC,EAAImwH,IAAcD,KAGvBuE,GAAa3kM,EAAAA,UAAS,WAAA,MAAO,CACjCpX,UAAAm1B,oBAAAA,OAA+B4jL,EAAWpgN,MAAA,8BAC1C,IAEI+xF,GAAe,WAAA,OAAA15C,EAAAA,YAAA,MAAA,CAAAC,MACPooK,EAAY1gN,OAAAq4C,CAAAA,EAAAK,YAAAi+J,GAAA,CAAAnmL,KAEd,WAAA,OAAA6nB,cAAAo1D,GAAA,KAAA,KACN,EAAAn1D,MAAA,GAAA9b,OAAU2hB,EAAen+C,MACzB,mBAAAi+C,QAAS4iK,GACX,MAAAxoK,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OACe2hB,EAAen+C,8DACbm+C,EAAen+C,MAAA,kBAAAguC,MAA8Bo1K,GAAWpjN,OACpEq+M,CAAAA,EAAOr+M,MAAM6L,KAAI,SAAC8mB,EAAO/wB,GAAAA,OAAAA,EAAAA,YAAAA,MAAAA,CAAAA,IAEjBA,EAAAA,MACE,IAAA46B,OACF2hB,EAAen+C,sBAAAH,EAAA,CAAA,EAAA,GAAA28B,OAEZzM,EAAY/vB,MAAA,cAAoB4B,IAAUw+M,EAAWpgN,SAE7Dq4C,CAAAA,EAAAK,YAAA+rJ,GAAA,CAAA1B,IAGOpwK,EAAMgtL,WAAahtL,EAAMssL,UAAA3hL,MAAA,GAAAgb,MAAA,GAAA9b,OAEpB2hB,EAAen+C,MACzB,gBAAAi+C,QAAS,WAAA,OAvGJ,SAACx+C,GAClB4gN,EAAc5gN,EAAG,CAAEq2D,QAAS,YAsGDutJ,CAAWzhN,EAAK,GAAA,OAAA,WAQvC0hN,GAAwB,SAAC7gN,GACvB,IAAA8gN,EAAqB,SAAT9gN,EAAkB,EAAI,IAClC+tB,EAAOlL,EACX,kBAAA+yB,EAAAA,YAAA8zC,GAAA,CAAAn+C,MACwB,CAAE3mC,2BAAqBk8M,EAAA,SAAmBn4M,KAAA,QAAA,OAGpE,OAAAitC,EAAAA,YAAAs+J,GAAA,CAAAr+J,MAAA9b,GAAAA,OAEc2hB,EAAen+C,MAAgBw8B,YAAAA,OAAA/5B,EAAA,OAAAw7C,QACvB,SAATx7C,EAAkBm/M,EAAYC,EACvCrxL,KAAM,WAAA,OAAMA,CACd,GAAA,OAIEgzL,GAAiB,WACjB58M,IAAmB,IAAnBA,EAAMs2D,SAIR,OAAA7kB,EAAAA,YAAA,MAAA,CAAAC,MACS,CAAA9b,GAAAA,OAAI2hB,EAAen+C,MAAAw8B,gBAAAA,GAAAA,OAAwB2hB,EAAen+C,mCACxD65M,GAAA,CAERv0L,EAAe,WAAY+yB,EAAAA,YAAA0mB,GAAA,CAAA3zD,KAAA,QAAA,UAKlC,OAAO,WACDxE,MAAe,aAAfA,EAAMoiF,KAEN3wC,EAAAK,YAAAoR,EAAAnlC,eACGW,EAAe,UAAW,CAAET,OAAQ,CAAE+nB,KAAMg2K,KAAevqK,EAAAK,YAAA8mK,GAAA,CAAApzK,OAElDu0K,EAAY3gN,cACXsgN,EAAatgN,MACtB4B,MAAOw+M,EAAWpgN,MAAAq+M,OACVA,EAAOr+M,MAAA+kM,MACRA,EAAM/kM,MACb80M,OAAQA,EAAO90M,MACf8hD,OAAQA,EAAO9hD,MAAAg/M,aACDA,EAAah/M,eACjB4+M,EAAAC,SACAA,EAAAC,UACCA,EAAAC,SACDA,EACV/3C,QAAS06C,EACTvkJ,QAASA,EACTshJ,WAAYqD,YACDl7M,EAAMmjF,UACjB9wC,YAAaknK,EAAiBngN,MAAAg0B,MACvBptB,EAAMotB,MAAAihL,oBACQA,EAAoBj1M,OAC3C,QAMJq4C,EAAAK,YAAAoR,EAAAnlC,eACGW,EAAe,UAAW,CAAET,OAAQ,CAAE+nB,KAAMg2K,KAAevqK,EAAAK,YAAAjyB,WAAA,CAAA2W,UACvCx2B,EAAMupB,SAAW8pB,EAAgBj6C,MAAO6wC,GAAIoJ,EAAgBj6C,OAC/E,CAAAwuB,QAAA,WAAA,MAAA6pB,CAAAA,EAAAA,YAAA24C,EAAAA,WAAA,KAAA,CAAAxiE,QAAA,WAAA,MAAA,EACI8xL,EAAatgN,QAAUwgN,EAAaxgN,QAAAq7E,EAAAA,eAAAhjC,EAAAK,YAAA,MAAA,CAAAnd,IAE7B2nK,EACL5qJ,MACOs+J,EAAU52M,MACjBguC,MAAO,CAAE5B,OAAQu0K,EAAY3gN,OAAMmxF,QAC1BA,EACTtyC,sBACWikK,GAAA,GAER3C,EAAiBngN,OAClBq4C,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OAAe2hB,EAAen+C,MAAqB,gBAAAi+C,QAAS4kK,GAAqB,MAElFxE,EAAOr+M,MAAMnC,OAAS,GACrBw6C,cAAAyR,EAAAA,SAAA,KAAA,CACGioC,KAAa15C,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OACC2hB,EAAen+C,MAAA,kBAAA,CAC3B4G,EAAMotB,OAAS1O,EAAe,SAAO,GAAAkX,OAClC4jL,EAAWpgN,MAAQ,EAAAw8B,KAAAA,OAAK6hL,EAAOr+M,MAAMnC,UAE1CylN,GAAsB,QACtBA,GAAsB,UAG1BE,KAAenrK,EAAAA,YAAAsmK,GAAA,CAAAE,SAEJA,YACCC,EAAAC,SACDA,EACV/3C,QAAS06C,WACC9C,EAAAH,WACEqD,EACZ/c,MAAOA,EAAM/kM,MACbg/M,aAAcA,EAAah/M,OAC7Bq4C,MAAAA,EAAAK,YAAAm8J,GAAA,CAAA9P,MAESA,EAAM/kM,MAAA80M,OACLA,EAAO90M,MAAA8hD,OACPA,EAAO9hD,MACf+iM,IAAKic,EAAah/M,MAAMi/M,UAAAlK,aACViK,EAAah/M,MAAM2/M,UAAA3K,MAC1BgK,EAAah/M,MAAMg1M,MAAAC,oBACLA,EAAoBj1M,OAC3C,QAAA,CAAA,CAAAy7E,EAAA4a,MAxCQiqH,EAAatgN,SAFtB,IAAA,MAkDf,IC3SWyjN,GAAcpmK,GAAY2iK,ICCxB0D,GAAA,CAEb1vJ,OAAQ,CACNvxD,KAAM,CAAC9C,OAAQc,WAGjB6jB,QAAS,CACP7hB,KAAM,CAAC9C,OAAQc,WAGjB+tB,QAAS,CACP/rB,KAAM,CAAC9C,OAAQc,YChBnBkjN,GAAe1sK,kBAAgB,CAC7Br4C,KAAM,YACNgI,MAAAA,GACAswC,MAAQ,WACA,IAAAiH,EAAiB5hB,GAAe,aAChCjX,EAAiBmC,KAEvB,OAAO,WACC,IAAAm8L,EAAet+L,EAAe,WAC9Bu+L,EAAsBv+L,EAAe,WACrCw+L,EAAqBx+L,EAAe,UAGxC,OAAA+yB,EAAAA,YAAA,KAAA,CAAAC,MAAW6F,EAAen+C,6CACTm+C,EAAen+C,MAAA,UAAA,CAC3B6jN,GAAuBD,EACvBE,GAAAzrK,EAAAA,YAAA,KAAA,CAAAC,MAAA,GAAA9b,OAAoC2hB,EAAen+C,MAAA,aAAA,CAAkB8jN,QAKhF,IChBaC,GAAA,CAEbC,aAAc,CACZvhN,KAAM,CAAC9C,OAAQc,WAGjBk6K,OAAQ,CACNl4K,KAAM,CAAC9C,OAAQc,WAGjBgvM,OAAQ,CACNhtM,KAAM,CAAC9C,OAAQc,WAGjBwnD,OAAQ,CACNxlD,KAAM9C,OACN6uB,QAAS,aACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,aAAc,YAAYvI,SAASuI,EAC7C,GAGF8qB,OAAQ,CACNlvC,KAAM3C,QAGRsL,KAAM,CACJ3I,KAAM9C,OACN6uB,QAAS,SACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,QAAS,SAAU,SAASvI,SAASuI,EAC/C,GAGFtX,MAAO6Y,QAEP67L,OAAQ77L,QAER87L,WAAYzjN,SAEZq1E,SAAUr1E,UCnDC0jN,GAAY,2oECOlB,ICMPC,GAAentK,kBAAgB,CAC7Br4C,KAAM,QACNgI,MAAAA,GACAswC,eAAMtwC,EAAAA,GAAgC,ICVhCs5E,EDUsB/tB,EAAA3uB,EAAA2uB,OACpBkyJ,EAAU9oL,EAAAA,MAERO,EAAiBN,GAAU,QAA3BM,aACFqiB,EAAiB5hB,GAAe,QAC9BG,EAASD,KAATC,KACFpX,EAAiBmC,KACf68L,GCjBJpkI,EAAyBz6D,KAkBxB,CACL6+L,UAjBgB7lM,EAAAA,UAAS,WACzB,IAAM8lM,EAAoB,GAEpBC,EAAgBtkI,EAAuB,YAEzC,GAAAnhF,EAAQylN,GAAgB,CAAA,IACSllL,EADTC,EAAAC,GACNglL,GAAe,IAAnC,IAAAjlL,EAAA1W,MAAAyW,EAAAC,EAAAxhC,KAAAgmB,MAAmC,CAAA,IAAxByC,UACT+9L,EAAkBv6M,KAAKkuC,GAAAA,GAAA,CAAA,EAClB1xB,EAAM5f,OAAA,GAAA,CACTgf,MAAOY,EAAM9B,WAEjB,CAAA,CAAA,MAAAib,GAAAJ,EAAAzhC,EAAA6hC,EAAA,CAAA,QAAAJ,EAAA1b,GAAA,CACF,CACO,OAAA0gM,CACT,MDCUD,UAERG,EDlBgC,SAClC9yK,EACA0yK,EACAC,GAEM,IAIAj8B,EAAgB/2I,GAAoB+yK,EAJd5lM,EAAAA,UAAS,WAAA,MAAO,CAC1ClT,KAAM+4M,EAAUtkN,MAChB2xC,OAAAA,EACA,KAEIc,EAAkBh0B,EAAAA,UAAS,WAAA,OAAM4pK,EAAc51I,gBAAgBzyC,SACjEm4H,GAAc,EAaZI,EAAc95G,EAAAA,UAClB,WAAA,MACG,CACCkxB,SAAU,WACVJ,MAAO,MACPE,OAAQ,MACRQ,WAAY,iBACZ5oC,UAAA,gBAAAm1B,OAA2B6rJ,EAAcx2I,aAAa7xC,MAAA,OACtD,gBAAA,gBAAAw8B,OAAiC6rJ,EAAcx2I,aAAa7xC,MAAA,OAC5D,iBAAA,gBAAAw8B,OAAkC6rJ,EAAcx2I,aAAa7xC,MAAA,OAC7D,oCAAAw8B,OAAqC6rJ,EAAcx2I,aAAa7xC,MAAA,OAClE,IAGE0kN,EAAYjmM,EAAAA,UAChB,WAAA,MACG,CACCpX,UAAA,gBAAAm1B,OAA2B6rJ,EAAc32I,WAAW1xC,MAAA,OACpD,gBAAA,gBAAAw8B,OAAiC6rJ,EAAc32I,WAAW1xC,MAAA,OAC1D,iBAAA,gBAAAw8B,OAAkC6rJ,EAAc32I,WAAW1xC,MAAA,OAC3D,oCAAAw8B,OAAqC6rJ,EAAc32I,WAAW1xC,MAAA,OAChE,IAiBG,MAAA,CACLqoL,cAAAA,EACA9vD,YAAAA,EACAmsF,UAAAA,EACAjyK,gBAAAA,EACA2lF,qBAtD2B,SAACt6H,GACtB,IACAwsC,GADUxsC,EAAE+hC,QAAU/hC,EAAEguL,YACX/iJ,UACfovF,IAAgB7tF,EACJ+9I,EAAA51I,gBAAgBzyC,OAASqoL,EAAc9zI,eAEvC4jF,GAAA,EAEFA,EAAA7tF,GA+CdwK,gBApBqB,SAACjwB,GAChB,IAAEjjB,EAAeijB,EAAfjjB,MAAO6C,EAAQogB,EAARpgB,IACTgsF,EAAwB,IAAV7uF,GAAsBA,QAARA,EAAiBhC,OAAO6E,GACrDgsF,GAA+B,IAAhBA,EAIhBA,EAAc,GAAKA,GAAe6zH,EAAUtkN,MAAMnC,OAChDkjC,GAAM,UAAQvE,OAAGi0D,EAAwE,4DAG/F43F,EAAcvzI,yBAAqBjwB,OAAQjjB,MAAO6uF,EAAc,KAP1D1vD,GAAM,OAAQ,2CAkBxB,CCnDM4jL,CAAqB/9M,EAAM+qC,OAAQ0yK,EAASC,GADtCj8B,EAAAo8B,EAAAp8B,cAAe9vD,EAAaksF,EAAblsF,YAAamsF,EAAAD,EAAAC,UAAWjyK,EAAiBgyK,EAAjBhyK,gBAAiB2lF,EAAAqsF,EAAArsF,qBAAsBtjF,EAAgB2vK,EAAhB3vK,gBAIhF8vK,EAAYnmM,EAAAA,UAAS,WAClB,MAAA,CAAA,GAAA+d,OACF2hB,EAAen+C,OAClB08B,EAAK18B,MAAM4G,EAAMwE,MAAAvL,EAAAA,EAAAA,EAAA,CAAA,EAAA,GAAA28B,OAEX2hB,EAAen+C,MAAiB4G,WAAAA,EAAM2I,OAAAitB,GAAAA,OACtC2hB,EAAen+C,MAAA,YAAkB4G,EAAMq9M,QAAAznL,GAAAA,OACvC2hB,EAAen+C,MAA2B4G,qBAAiB,aAAjBA,EAAMqhD,QAG1D,IA6BM1T,EAAe,SAACz2C,GAAkB,IAAAi9E,EAChC8pI,EAAc/mN,EAAE+hC,OACdkJ,EAA0C87K,EAA1C97K,UAAW8I,EAA+BgzK,EAA/BhzK,aAAco1B,EAAiB49I,EAAjB59I,aAC7Bx0B,EAAgBzyC,OAAOo4H,EAAqBt6H,GAC/B,QAAjB8I,EAAAA,EAAMkvE,gBAAW,IAAAiF,GAAjBn0E,EAAAA,KAAAA,EAAiB,CACf9I,EAAAA,EACAirC,UAAAA,EACA+7K,aAAcjzK,EAAeo1B,EAAel+B,KAM1Cg8K,EAAetmM,EAAAA,UAAS,WACrB,OAAAS,GAAStY,EAAMo9M,eAAiB,CAAC,UAAW,aAAa1lM,SAAS1X,EAAMo9M,cAC3ExnL,GAAAA,OAAG2hB,EAAen+C,MAAew8B,WAAAA,OAAA2hB,EAAen+C,yBAAgB4G,EAAMo9M,cAAAxnL,GAAAA,OACnE2hB,EAAen+C,MAAA,SACxB,IAEMglN,EAAgB,WACpB,GAAIp+M,EAAMo9M,cAAgB9kM,GAAStY,EAAMo9M,cAAe,CAClDp9M,GFxFW,YEwFXA,EAAMo9M,aACR,OAAA3rK,EAAAA,YAAA,MAAA,KAAA,CAAAA,EAAAA,YAAAqG,GAAA,KAAA,MAAArG,EAAAA,YAAA,OAAA,KAAA,CAGWvc,EAAa97B,MAAMmzB,gBAI5BvsB,GAAAA,EAAMo9M,eAAiBG,GACzB,OAAA9rK,EAAAA,YAAcvc,OAAAA,KAAAA,CAAAA,EAAa97B,MAAMs0B,iBAErC,CACA,OAAOhP,EAAe,iBAGlB2/L,EAAiB,SAACnnN,GAAkB,IAAAonN,EACpChmM,GAAStY,EAAMo9M,eAAiBp9M,EAAMo9M,eAAiBG,IACrD,QAANv9M,EAAAA,EAAMs9M,kBAAA,IAAAgB,GAANt+M,EAAAA,KAAAA,EAAmB,CAAE9I,EAAAA,KAGvB,OADOq0D,EAAA,CAAE1pB,SAAUqM,IACZ,WACL,IArEMqwK,EACAC,EACA3yK,EAmEA45F,EAAc,EArEd84E,EAAqB7/L,EAAe,UACpC8/L,EAAqB9/L,EAAe,UACpCmtB,EAAkB41I,EAAc51I,gBAAgBzyC,MAEpDq4C,EAAAA,YAAAyR,EAAAA,SACGq7J,KAAAA,CAAAA,EAAA9sK,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OAAoC2hB,EAAen+C,MAAA,aAAkBmlN,CAAAA,IAA4B,KACjG1yK,EACC4F,cAAAyR,EAAAA,SAAA,KAAA,CAAAzR,EAAAK,YAAA,MAAA,CAAA1K,MACcuqF,EAAYv4H,OAAO,MAAAq4C,EAAAK,YAAA,KAAA,CAAAJ,MAAA,GAAA9b,OACjB2hB,EAAen+C,MAAA,WAAAguC,MAAuB02K,EAAU1kN,OAC3DqoL,CAAAA,EAAc52I,YAAYzxC,MAAM6L,KAAI,SAAC4Y,GACpC,OAAA4zB,EAAAK,YAAAoR,EAAAnlC,SAAA0zB,KAAAA,CAAAA,EAAAK,YAAA2sK,GACsCrkM,GAAKyD,EAAM,SAA3BA,EAAKmB,QAE5B,QAAAyyB,EAAAA,YAAA,KAAA,CAAAC,MAAA,GAAA9b,OAIS2hB,EAAen+C,MAAiB,YAAAslB,CAAAA,EAAe,aAE9D8/L,EAAA/sK,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OAAoC2hB,EAAen+C,MAAA,aAAkBolN,CAAAA,IAA4B,QAkDtF/sK,EAAAA,YAAA,MAAA,CAAAC,MACFysK,EAAa/kN,cAAgBilN,GACtCD,CAAAA,OAIL,OAAA3sK,EAAAA,YAAA,MAAA,CAAAC,MAEWssK,EAAU5kN,eACPu0C,EAAAhZ,IACL8oL,EAAAr2K,MACEyE,EAAgBzyC,MAAQ,yBAAsB,GAAA,CAEpDqsI,IAIT,IEvHai5E,GAAA,CAEb1gB,OAAQ,CACNniM,KAAM,CAAC9C,OAAQc,WAGjB+uM,YAAa,CACX/sM,KAAM,CAAC9C,OAAQc,WAGjBkyB,MAAO,CACLlwB,KAAM,CAAC9C,OAAQc,WAGjBuzB,MAAO,CACLvxB,KAAM,CAAC9C,OAAQc,YClBnB8kN,GAAetuK,kBAAgB,CAC7Br4C,KAAM,gBACNgI,MAAAA,GACAswC,eAAMtwC,EAAO6xD,GACL,IAAAta,EAAiB5hB,GAAe,mBAChCwd,EAAgBzxB,KAChBhD,EAAiBmC,KAEjB+9L,EAAe,YACf5+M,EAAMg+L,QAAUnsI,EAAI7yC,MAAMg/K,SAC5BnkK,QAAQO,KAAK,kEAET,IAAA2+K,EAAY5lK,EAAc,SAAU,SAC1C,GAAK4lK,EACD,OAAAzgM,GAASygM,GAETtnK,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OAAe2hB,EAAen+C,MAC5B,YAAA,CAAAq4C,EAAAK,YAAA,MAAA,CAAAqqJ,IAAU4c,GAAW,QAI3BtnK,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OAAsB2hB,EAAen+C,MAAA,YAAA,CAAiB2/M,KAExD,OAAO,WACC,IAAA8F,EAAoBngM,EAAe,SACnCogM,EAA0BpgM,EAAe,eAEzCqgM,EAAsB,CAC1BH,IAAantK,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OACE2hB,EAAen+C,MAAA,aAC3BylN,CAAAA,GAAAptK,EAAAK,YAAA,KAAA,CAAAJ,MAAA,GAAA9b,OAAmC2hB,EAAen+C,MAAA,WAAA,CAAgBylN,IAClEC,GAAArtK,EAAAA,YAAA,IAAA,CAAAC,MAAA,GAAA9b,OAAwC2hB,EAAen+C,MAAA,iBAAsB0lN,CAAAA,OAIlF,OAAArtK,EAAAA,YAAA,MAAA,CAAAC,MAAmB6F,EAAen+C,OAAA,CAAQ2lN,IAE9C,IC9BWC,GAAOvoK,GAAY+mK,IACnByB,GAAWxoK,GAAYsmK,IACvBmC,GAAezoK,GAAYkoK,ICf3BQ,GACL,OADKA,GAEJ,QAFIA,GAGH,SAEGC,GACJ,QADIA,GAEH,SAFGA,GAGJ,QAEIC,GACJ,GADIA,GAEH,IAFGA,GAGJ,IAEIC,GACJ,GAAKD,GADDC,GAEH,GAAKD,GAFFC,GAGJ,GAAKD,GAGDE,GAAc,CAAC,UAAW,QAAS,WCZjCC,GAAA,CAEb9wK,MAAO,CACL7yC,KAAM,CAAC9C,OAAQG,OAAQ9B,OACvBwwB,QAAS,IAGXg9B,MAAO,CACL/oD,KAAM,CAAC9C,OAAQyoB,QAAS3nB,UACxB+tB,SAAS,GAGX63L,WAAY,CACV5jN,KAAM7C,OACN4uB,QAAS,GAGXpjB,KAAM,CACJ3I,KAAM,CAAC9C,OAAQC,QACf4uB,QAAS,UAGX2wC,OAAQ,CACN18D,KAAM9C,OACN24B,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,UAAW,QAAS,UAAW,UAAUvI,SAASuI,EAC5D,GAGFy/L,YAAa,CACX7jN,KAAM,CAAC9C,OAAQC,SAGjB45B,MAAO,CACL/2B,KAAM9C,OACN6uB,QAAS,OACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,OAAQ,QAAS,UAAUvI,SAASuI,EAC9C,GAGF0/L,WAAY,CACV9jN,KAAM9C,OACN6uB,QAAS,KCpCbg4L,GAAevvK,kBAAgB,CAC7Br4C,KAAM,YACNgI,MAAAA,GACAswC,MAAAA,SAAMtwC,GACJ,IAAM0e,EAAiBmC,KACjB02B,EAAiB5hB,GAAe,YAChC+hC,EACJ59B,GAAc,CACZ2/D,sBAAuBC,GACvB7hC,sBAAuBC,GACvBC,sBAAuBC,GACvBG,UAAWC,GACXwnE,UAAWC,GACXggF,UAAWC,KAPPrmH,IAAAA,sBAAuB5hC,EAAuBH,EAAvBG,sBAAuBE,EAAAL,EAAAK,sBAAuBI,IAAAA,UAUvE4nJ,EAAmB,CACvB11L,QAXiGqtC,EAAXkoE,UAYtFz1G,QAZiGutC,EAAAmoJ,UAajGnpL,MAAOyhC,GAEH6nJ,EAAmB,CACvB31L,QAASwtC,EACT1tC,QAAS4tC,EACTrhC,MAAO+iE,GAGHwmH,EAAcpoM,EAAAA,UAAS,WAC3B,OAAK7X,EAAMu4D,QAAUv4D,EAAMy/M,YAAc,IAChC,UAEFz/M,EAAMu4D,QAAU,SACzB,IAEM2nJ,EAAeroM,EAAAA,UAAS,WAC5B,IAAMuvB,EAAuB,CAAA,EAC7B,GAAIpnC,EAAM0/M,YAAa,CACf,IAAA72K,EAASvwB,GAAStY,EAAM0/M,aAAe1/M,EAAM0/M,YAAA9pL,GAAAA,OAAiB51B,EAAM0/M,YAAA,MAC1Et4K,EAAMyB,OAASA,EACfzB,EAAM4B,aAAeH,CACvB,CAIO,OAHH7oC,EAAM2/M,aACRv4K,EAAMmC,gBAAkBvpC,EAAM2/M,YAEzBv4K,CACT,IAEM09H,EAAWjtJ,EAAAA,UAAS,WACjB,MAAA,CACL8wB,SAAA/S,OAAU51B,EAAMy/M,WAAA,KAChBluK,WAAYvxC,EAAM0uC,OAASD,GAAmBzuC,EAAM0uC,OAExD,IAEMyxK,EAAkBtoM,EAAAA,UAAS,WAExB,MAAA,CACLk0E,OAFkBnwF,EAASoE,EAAM0uC,OAAS,GAAK1uC,EAAM0uC,MAIzD,IAEM0xK,EAAmBvoM,EAAAA,UAAS,WAEzB,MAAA,CACLk0E,OAFkBnwF,EAASoE,EAAM2/M,YAAc,GAAK3/M,EAAM2/M,WAI9D,IAGMU,EAAWxoM,EAAAA,UAAS,WACxB,IAAIyoM,EAAgBjB,GAChB,IAACr/M,EAAMwE,KACF,OAAA87M,EAET,IAAQC,EAAyBnB,GAAlBoB,EAAkBpB,GAAXqB,EAAWrB,GACjC,OAAQp/M,EAAMwE,MACP,KAAA+7M,EACHD,EAAgBjB,GAChB,MACG,KAAAoB,EACHH,EAAgBjB,GAChB,MACG,KAAAmB,EACHF,EAAgBjB,GAChB,MAAA,QAEM,IAAAqB,EAAa1nN,OAAOgH,EAAMwE,MAChC87M,GAAiBj5J,MAAMq5J,IAAeA,EAAa,EAAIA,EAAarB,GAGjE,OAAAiB,CACT,IAEMK,EAAU9oM,EAAAA,UAAS,WACvB,OAAOwoM,EAASjnN,MAAQ,CAC1B,IAEMwnN,EAAS/oM,EAAAA,UAAS,WACf,OAAA8oM,EAAQvnN,MAAQynN,EAAkBznN,MAAQ,CACnD,IAEM0nN,EAAcjpM,EAAAA,UAAS,WACvB7X,GAAAA,EAAM4yB,QAAUusL,GAClB,MAAO,GAGL,IAAApuK,EAAWsvK,EAASjnN,MAAQkmN,GAOzB,OANHe,EAASjnN,OAASimN,GACTtuK,EAAAsvK,EAASjnN,MAAQkmN,GACnBe,EAASjnN,OAASimN,KAChBtuK,EAAAsvK,EAASjnN,MAAQkmN,IAGvB,CACL32K,SAAA/S,OAAUyqL,EAASjnN,MAAA,MACnByvC,UAAAjT,OAAWyqL,EAASjnN,MAAA,MACpB23C,mBAAaA,EAAA,MAEjB,IAEM8vK,EAAoBhpM,EAAAA,UAAS,WACjC,IAAMkpM,EAAe/gN,EAAMwE,OAAS46M,GAAoB,EAAI,EAC5D,OAAOp/M,EAAM0/M,YAAc1mN,OAAOgH,EAAM0/M,aAAeqB,CACzD,IAEMC,EAAgBnpM,EAAAA,UAAS,WAC7B,IAAM+oM,GAAUP,EAASjnN,MAAQynN,EAAkBznN,OAAS,EACtD6nN,EAAsB,EAAV5gN,KAAK6gN,GAASN,EAC1B/0C,EAAU7rK,EAAMy/M,WAAa,IACnC,MAAA,GAAA7pL,OAAUqrL,EAAYp1C,EAAY,MAAAj2I,OAAAqrL,GAAa,EAAIp1C,GACrD,IAEMs1C,EAAatpM,EAAAA,UAAS,WAC1B,OAAO7X,EAAM4yB,QAAUusL,GAAmBY,EAAmBC,CAC/D,IAEMoB,EAAkB,WAClB,IAAAC,EAAAzrL,GAAAA,OAAwC51B,EAAMy/M,WAAA,KAC5ClnJ,EAASv4D,EAAMu4D,QAAU,GAC/B,GAAIgnJ,GAAY7nM,SAAS6gD,IAAWv4D,EAAM4yB,QAAUusL,GAAiB,CAC7D,IAAAxqK,EAAYwsK,EAAW/nN,MAAMm/D,GAC/B5jB,IACF0sK,EAAA5vK,EAAAK,YAAA6C,EAAA,CAAAjD,MAAuC,CAAA9b,GAAAA,OAAI2hB,EAAen+C,kBAAgB,MAE9E,CACO,OAAAioN,GAIHC,EAAY3sL,OAAI,GAChB4sL,EAAU5sL,MAAoB,MAE9B6sL,EAAkB3pM,EAAAA,UAAS,WAC/B,OAAOypM,EAAUloN,MAAQ,GAAAw8B,OAAG2hB,EAAen+C,uBAAAw8B,OAAuB2hB,EAAen+C,MAAA,cACnF,IAEiC,SAAAqoN,IAQjC,OARiCA,EAAA37J,GAAAgC,GAAAiB,MAAjC,SAAAmC,IAAA,IAAAw2J,EAAA,OAAA55J,GAAAc,MAAA,SAAAuC,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAjuC,MAAA,KAAA,EAAA,GACMld,EAAM4yB,QAAUusL,GAAiB,CAAAh0J,EAAAjuC,KAAA,EAAA,KAAA,CAAA,GAC9BqkM,EAAQnoN,QAAyB,IAAhB4G,EAAM4kD,MAAU,CAAAuG,EAAAjuC,KAAA,EAAA,KAAA,CAAA,OAAAiuC,EAAA9C,OAAA,UAAA,KAAA,EAAA,OAAA8C,EAAAjuC,KAAA,EAChCszB,EAASA,WAAA,KAAA,EACTkxK,EACJH,EAAQnoN,MAAM6nC,kBAAArL,OAAkB2hB,EAAen+C,kBAAkBmoN,EAAQnoN,MAAMy2E,mBACjFyxI,EAAUloN,MAAQmoN,EAAQnoN,MAAMupC,aAAc++K,eAAAA,EAAQ/+K,aAAc,GAAA,KAAA,EAAA,IAAA,MAAA,OAAAwoB,EAAAhD,OAAA,GAAA+C,EAExE,MAAAlsD,MAAA6B,KAAA9B,UAAA,CAIA,OAFA6nC,GAAkB26K,GAZjB,WAEgC,OAAAE,EAAAziN,MAAA6B,KAAA9B,UAAA,IAY1B,WACL,IAAMo9F,EACJ1qD,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OAAe2hB,EAAen+C,MAAgB,WAAAslB,CAAAA,EAAe,QAAS0iM,OAItE,OAAA3vK,EAAAA,YAAA,MAAA,CAAAC,MAAY6F,EAAen+C,OACxB4G,CAAAA,EAAM4yB,QAAUusL,IAAU1tK,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OACV2hB,EAAen+C,iBAAAw8B,OAAe2hB,EAAen+C,MAAAw8B,cAAAA,OAAkBqqL,EAAY7mN,QAAA,CAAAq4C,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OACzE2hB,EAAen+C,MAAA,SAAAguC,MAAqB84K,EAAa9mN,OAAA,CAAAq4C,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OAC/C2hB,EAAen+C,MAAA,WAAAguC,MAAuB09H,EAAS1rK,OAE/D+iG,QAAAA,IAIJn8F,EAAM4yB,QAAUusL,IACf1tK,EAAAA,YAAA,MAAA,CAAAC,MACS,IAAA9b,OACF2hB,EAAen+C,MAAcw8B,UAAAA,OAAA2hB,EAAen+C,yBAAgBooN,EAAgBpoN,OAAAH,QAAA28B,OACzE2hB,EAAen+C,2BAAkB6mN,EAAY7mN,OAAU6mN,EAAY7mN,QAC3EguC,MACO84K,EAAa9mN,OAAA,CAAAq4C,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OAEL2hB,EAAen+C,MAAgB,WAAAu7B,IAAK4sL,EAASn6K,MAAO09H,EAAS1rK,OACzEkoN,CAAAA,EAAUloN,OAAS+iG,KAEpBmlH,EAAUloN,OAAS+iG,IAIxBn8F,EAAM4yB,QAAUusL,IAAU1tK,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OAEb2hB,EAAen+C,0BAAiBm+C,EAAen+C,MAAAw8B,cAAAA,OAAkBqqL,EAAY7mN,OAAAguC,MAChF05K,EAAY1nN,OAElB+iG,CAAAA,EAAA1qD,EAAAK,YAAA,MAAA,CAAAnJ,MACW03K,EAASjnN,MAAOyvC,OAAQw3K,EAASjnN,MAAAu4C,QAAA/b,OAAAA,OAAuByqL,EAASjnN,WAAAw8B,OAASyqL,EAASjnN,QAAA,CAAAq4C,EAAAK,YAAA,SAAA,CAAA6vK,GAEvFhB,EAAQvnN,MAAAwoN,GACRjB,EAAQvnN,MAAArC,EACT6pN,EAAOxnN,MACV,eAAcynN,EAAkBznN,MAChCs0C,KAAA,OAAAgE,MACO,IAAA9b,OAAI2hB,EAAen+C,MAAqB,mBAAAguC,MACxCg5K,EAAiBhnN,OAC1B,MACC4G,EAAMy/M,WAAa,GAAAhuK,EAAAK,YAAA,SAAA,CAAA6vK,GAEZhB,EAAQvnN,MAAAwoN,GACRjB,EAAQvnN,QACTwnN,EAAOxnN,MACV,eAAcynN,EAAkBznN,MAChCs0C,KAAA,OAAA,iBAAA,QAAAgE,MAEO,IAAA9b,OAAI2hB,EAAen+C,MAC1B,mBAAAqH,UAAA,qBAAAm1B,OAAgCyqL,EAASjnN,8BACvB4nN,EAAc5nN,MAChCguC,MAAO+4K,EAAgB/mN,OACzB,YAQhB,ICpPWyoN,GAAWprK,GAAYmpK,ICArBkC,GAAA,CAEb14L,UAAW,CACTvtB,KAAM9C,OACN6uB,QAAS,OACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,WAAY,UAAW,QAAQvI,SAASuI,EAClD,GAGF+xB,MAAO,CACLn2C,KAAM7C,OACN4uB,QAAS,GAGX0O,QAAS,CACPz6B,KAAM2lB,QACNoG,SAAS,GAGXm6L,OAAQ,CACNlmN,KAAMzE,OAGRw7B,MAAO,CACL/2B,KAAM9C,OACN24B,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,OAAQ,SAAU,YAAa,cAAe,MAAO,WAAWvI,SAASuI,EACnF,IChCE+hM,GAA6D,CACjE1vK,KAAM,CAAC,GACP0rJ,OAAQ,CAAC,CAAEniM,KAAM,SAAU2I,KAAM,SACjCy9M,UAAW,CAAC,EAAG,EAAG,CAAEt5K,MAAO,QAC3B,cAAe,CAAC,CAAC,CAAE9sC,KAAM,UAAY,CAAEA,KAAM,OAAQgtC,OAAQ,UAC7Dq5K,IAAK,CAAC,CAAEr5K,OAAQ,QAAU,CAAEA,OAAQ,UACpCs5K,QAAS,CACP,CAAEtmN,KAAM,OAAQgtC,OAAQ,OAAQF,MAAO,QACvC,CAAE9sC,KAAM,OAAQgtC,OAAQ,QAASF,MAAO,QACxC,CACE,CAAE9sC,KAAM,OAAQgtC,OAAQ,QACxB,CAAEhtC,KAAM,OAAQgtC,OAAQ,QACxB,CAAEhtC,KAAM,OAAQgtC,OAAQ,SAE1B,CACE,CAAEhtC,KAAM,OAAQgtC,OAAQ,QACxB,CAAEhtC,KAAM,OAAQgtC,OAAQ,SAE1B,CACE,CAAEhtC,KAAM,OAAQgtC,OAAQ,QACxB,CAAEhtC,KAAM,OAAQgtC,OAAQ,SAE1B,CACE,CAAEhtC,KAAM,OAAQgtC,OAAQ,QACxB,CAAEhtC,KAAM,OAAQgtC,OAAQ,WAKxBu5K,GAAkB,SAAC7gL,GACjB,IACA6F,EAAeluC,OAAA+E,OAAO,MAarB,MAdW,CAAC,QAAS,SAAU,cAAe,aAAc,SAAU,OAAQ,aAAc,mBAEzFuS,SAAQ,SAACxY,GAEjB,GAAIA,KAAQupC,EAAK,CACf,IAAMthB,EAAMshB,EAAIvpC,GACVqqN,EAAK/oM,GAAS2G,GAAG,GAAA2V,OAAO3V,EAAU,MAAAA,EACxC,GAAa,SAATjoB,EAAiB,CAAA,IAAA4kC,EACW,CAACylL,EAAIA,GAAlCj7K,EAAMuB,MAAO/L,EAAA,GAAAwK,EAAMyB,OAAMjM,EAAA,EAC5B,MACEwK,EAAMpvC,GAAQqqN,CAElB,CACF,IACOj7K,CACT,EAEAk7K,GAAejyK,kBAAgB,CAC7Br4C,KAAM,YACNgI,MAAAA,GACAswC,eAAMtwC,EAAAA,GAAkB,IAATgf,EAAA6d,EAAA7d,MACPujM,EAAS5tL,OAAI,GACb4iB,EAAiB5hB,GAAe,YAChCwd,EAAgBzxB,KAChB8gM,EAAkB,SAACjhL,GAA2B,MAAA,IAAA3L,OAC/C2hB,EAAen+C,MAAAw8B,SAAAA,GAAAA,OACf2hB,EAAen+C,MAAe,WAAAw8B,OAAA2L,EAAI1lC,MAAQ,QAAA5C,EAAA28B,CAAAA,EAAAA,GAAAA,OACvC2hB,EAAen+C,6BAAoB4G,EAAMopB,WAAcppB,EAAMopB,WACrE,EAkBMq5L,EAAe,SAACC,GACd,IAAAX,EAAyBW,GAAW1iN,EAAM+hN,OAIhD,OAAOA,EAAO98M,KAAI,SAAC4Y,GAAA,OAAA4zB,EAAAA,YAAA,MAAA,CAAAC,MAFS,IAAA9b,OAAI2hB,EAAen+C,MAAY,WAEDupN,EArBxCC,EAqBmD/kM,GAnBjE1lB,EAAQyqN,GACHA,EACEtpM,GAASspM,GACX,IAAIxrN,MAAMwrN,GAAOl1K,KAAK,CAAE7xC,KAAM,SAE9B,CAAC+mN,IAEE39M,KAAI,SAACs8B,GACf,OAAAkQ,EAAAA,YAAA,MAAA,CAAAC,MAAY8wK,EAAgBjhL,GAAG6F,MAAUg7K,GAAgB7gL,IACtD,CAAA3kC,EAAW2kC,EAAI7jB,SAAW6jB,EAAI7jB,QAAQkB,KAAK2iB,EAAI7jB,SAClD,OAZe,IAACklM,CAqBuD,KAGvEx0K,EAAwB,KAsB5B,OApBAzR,EAAAA,OACE,WAAA,OAAM38B,EAAMs2B,OACZ,IAAA,SAACusL,GACC,IAAKA,EAGH,OAFApsM,aAAa23B,QACbm0K,EAAOnpN,OAAQ,GAGb4G,EAAMgyC,MAAQ,EAChB5D,EAAQj4B,YAAW,WACjBM,aAAa23B,GACbm0K,EAAOnpN,OAAQ,CACjB,GAAG4G,EAAMgyC,OAETuwK,EAAOnpN,OAAQ,CAEnB,GACA,CAAEkkC,WAAW,IAGR,WACC,IAAA5f,EAAUy1B,EAAc,UAAW,WAEzC,GAAIn0B,EAAM,UAAYujM,EAAOnpN,MACpB,OAAAq4C,EAAAK,wBAAMp0B,IAGX,GAAC6kM,EAAOnpN,MAAR,CAIJ,IAAM0kB,EAAW,GAYjB,OAXI9d,EAAM4yB,OACR9U,EAAS1a,KAAKq/M,EAAaT,GAAShiN,EAAM4yB,SAExC5yB,EAAM+hN,QACRjkM,EAAS1a,KAAKq/M,EAAaziN,EAAM+hN,SAE9B/hN,EAAM4yB,OAAU5yB,EAAM+hN,QAEhBjkM,EAAA1a,KAAKq/M,EAAa,CAAC,EAAG,EAAG,EAAG,CAAE95K,MAAO,UAGhD8I,EAAAA,YAAA,MAAA,CAAAC,MAAmB6F,EAAen+C,OAAA,CAAQ0kB,GAd1C,EAgBJ,ICjIWglM,GAAWrsK,GAA8B6rK,ICAvCS,GAAA,CAEb35L,UAAW,CACTvtB,KAAM3C,QAGR8pN,eAAgBxhM,QAEhBktB,MAAO,CACL7yC,KAAM9C,OACN24B,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,QAAS,OAAQ,MAAO,SAAU,SAASvI,SAASuI,EAC9D,GAGF+8E,cAAe,CACbnhG,KAAM7C,QAGR27F,MAAO,CACL94F,KAAM,CAAC9C,OAAQc,WAGjB8sB,OAAQ,CACN9qB,KAAMhC,UAGRy8B,QAAS9U,QAET27B,OAAQ,CACNthD,KAAM,CAAC9C,OAAQc,WAGjB8nD,UAAW,CACT9lD,KAAM9C,OACN6uB,QAAS,KAGXyW,OAAQ,CACNxiC,KAAM,CAAC9C,OAAQc,WAGjBuzB,MAAO,CACLvxB,KAAM,CAAC9C,OAAQc,WAGjBopN,MAAO,CACLpnN,KAAM9C,OACN24B,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,WAAY,YAAYvI,SAASuI,EAC3C,GAGFijM,eAAgB,CACdrnN,KAAM9C,OACN6uB,QAAS,OACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,OAAQ,SAASvI,SAASuI,EACpC,GAGFslK,KAAM,CACJ1pL,KAAM,CAAC9C,OAAQc,WAGjBT,MAAO,CACLyC,KAAM7C,SC5DJmqN,GAAW,SAACxrN,GAAc,OAAA,EAAI0I,KAAKyiB,IAAKziB,KAAA4iG,IAAAtrG,EAAI,EAAM,GAAC,EAEpCyrN,GAAM,WAqDzB,OAAAn+K,IA9BA,SAAAm+K,EAAAxmL,GAOkB,IAAAyI,EAAAxkC,KANhBrJ,EAAAolC,EAAAplC,KACAyyC,EAAArN,EAAAqN,GAAAo5K,EAAAzmL,EACA2C,SAAAA,OAAW,IAAA8jL,EAAA,IAAAA,EACXC,EAAA1mL,EAAA0mL,QAAAC,EAAA3mL,EACAszG,SAAAA,aAAW,WAAO,EAAAqzE,EAClBrsJ,EAAAt6B,EAAAs6B,SAAAhyB,QAAAk+K,GAAAnqN,EAAA4H,KAAA,YAAA,GAAA5H,EAAA4H,KAAA,UAAA,GAAA5H,EAAA4H,KAAA,gBAAA,GAAA5H,EAAA4H,KAAA,eAAA,GAAA5H,EAAA4H,KAAA,gBAAA,GAAA5H,EAAA4H,KAAA,gBAAA,GAAA5H,EAAA4H,KAAA,iBAAA,GAAA5H,EAAA4H,KAAA,eAAA,GAAA5H,EAAA4H,KAAA,gBAAA,GAAA5H,EAAA4H,KAAA,aAAA,GAAA5H,EAAA4H,KAAA,YAAA,GAAA5H,cA0Ba,GAAAA,iBAEG,GA1BhB4H,KAAKrJ,KAAOA,EACZqJ,KAAKopC,GAAKA,EACVppC,KAAK0+B,SAAWA,EAChB1+B,KAAKyiN,QAAUA,EACfziN,KAAKqvI,SAAWA,EAChBrvI,KAAKq2D,SAAWA,EACXr2D,KAAAuhC,UAAY7jC,KAAKC,MACtBqC,KAAK2iN,SAAU,EACf3iN,KAAK4iN,UAAW,EAChB5iN,KAAKutC,MAAQ,KACbvtC,KAAK5D,KAAO,GACL/D,OAAAgL,QAAQ1M,GAAMgZ,SAAQ,SAAAqsB,GAAkB,IAAAu3B,EAAAv3C,GAAAggB,EAAA,GAAhBh/B,EAAAu2D,EAAA,GAAKh7D,EAAKg7D,EAAA,QAClB,IAAjB/uB,EAAK4E,GAAGpsC,KACVwnC,EAAK4E,GAAGpsC,GAAOzE,EAEnB,IAEOF,OAAAgL,QAAQ+lC,GAAIz5B,SAAQ,SAAAwxD,GAAkB,IAAA7tB,EAAAt3B,GAAAmlD,EAAA,GAAhBnkE,EAAAs2C,EAAA,GAAK/6C,EAAK+6C,EAAA,QACd,IAAnB9O,EAAK7tC,KAAKqG,KACZwnC,EAAK7tC,KAAKqG,GAAOzE,EAErB,GACF,GAAA,CAAA,CAAAyE,IAAA,SAAAzE,MAMQ,WAAS,IAAAo2D,EAAA3uD,KAEf,GADKA,KAAAiV,KAAOvX,KAAKC,QACbqC,KAAKiV,KAAOjV,KAAKuhC,WAAavhC,KAAK4iN,UAAvC,CAEmC,IAAAC,EAA/B,GAAA7iN,KAAK8iN,SAAW9iN,KAAK0+B,SAGvB,OAFA1+B,KAAK4iN,UAAW,eACXC,EAAA7iN,KAAAq2D,gBAAA,IAAAwsJ,GAAAA,EAAA7rN,KAAAgJ,KAAWA,KAAK5D,OAGjB,IAAA0mN,EAAUtjN,KAAK4U,IAAIpU,KAAKiV,KAAOjV,KAAKuhC,UAAWvhC,KAAK0+B,UAC1D1+B,KAAK8iN,QAAUA,EACf,IAOmBC,EAPb/yL,EAAWsyL,GAASQ,EAAU9iN,KAAK0+B,UAOrC,GALJrmC,OAAO+D,KAAK4D,KAAKopC,IAAIz5B,SAAQ,SAAC3S,GAC5B,IAAMgmN,EAAQr0J,EAAKvlB,GAAGpsC,GAAO2xD,EAAKh4D,KAAKqG,GACvC2xD,EAAKvyD,KAAKY,GAAO2xD,EAAKh4D,KAAKqG,GAAOgmN,EAAQhzL,CAC5C,KAEKhwB,KAAK2iN,gBACHI,EAAA/iN,KAAAyiN,eAAA,IAAAM,GAAAA,EAAA/rN,KAAAgJ,KAAUA,KAAK5D,MACpB4D,KAAK2iN,SAAU,EAGZ3iN,KAAAqvI,SAASrvI,KAAK5D,KArB8B,CAsBnD,GAAA,CAAAY,IAAA,gBAAAzE,MAEQ,WAAgB,IAAAuzI,EAAA9rI,KAChB8iN,EAAUplN,KAAKC,MAAQqC,KAAKuhC,UAC5B0hL,EAAWX,GAASQ,EAAU9iN,KAAK0+B,UAEpC1+B,KAAAutC,MAAQ21K,aAAY,WACvBp3E,EAAK3/D,SACD2/D,EAAK82E,UACPO,cAAcr3E,EAAKv+F,SAEpB01K,EACL,GAAA,CAAAjmN,IAAA,cAAAzE,MAEQ,WAAc,IAAAi0I,EAAAxsI,KACdojN,EAAO,WACX52E,EAAKrgE,SACAqgE,EAAAj/F,MAAQhP,sBAAsB6kL,GAE/B52E,EAAKo2E,WACPpkL,qBAAqBguG,EAAKj/F,OAC1Bi/F,EAAKj/F,MAAQ,OAGZ61K,GACP,GAAA,CAAApmN,IAAA,QAAAzE,MAEO,WACAyH,KAAAuhC,UAAY7jC,KAAKC,MAElB2wC,KAAiB,GAAItuC,KAAKqjN,gBACzBrjN,KAAKsjN,aACZ,GAAA,CAAAtmN,IAAA,OAAAzE,MAEO,WAED+1C,KAAiB,GAAI60K,cAAcnjN,KAAKutC,OACvC/O,qBAAqBx+B,KAAKutC,OAC/BvtC,KAAKutC,MAAQ,IACf,IAAA,CA1HyB,GCjBdg2K,GAAY,CACvBxyG,MAAO,+BACPE,KAAM,wBACNgH,IAAK,wBACLf,OAAQ,0BACRnD,MAAO,2BCMT,IAAAyvG,GAAeh0K,kBAAgB,CAC7Br4C,KAAM,aACNgI,MAAAA,GACAswC,eAAMtwC,EAAAA,GAAmB,IAAAskN,EAAAC,EAAVh5J,EAAA3uB,EAAA2uB,OACPhU,EAAiB5hB,GAAe,aAChCjX,EAAiBmC,KACvB62C,EAAmE59B,GAAc,CAC/E0qL,0BAA2BC,GAC3BC,4BAA6BC,KAFvBH,EAAA9sJ,EAAA8sJ,0BAA2BE,EAA4BhtJ,EAA5BgtJ,4BAI7BE,EAAa,CACjBC,SAAApzK,EAAAK,YAAA0yK,EAAqC,KAAA,MACrCM,SAAArzK,EAAAK,YAAA4yK,EAAA,KAAA,OAEIK,EAAcltM,EAAAA,UAAS,WAAA,OAAOyB,GAAStZ,EAAM5G,OAAS4G,EAAM5G,MAAQ,KACpEg9F,EAAazhE,MAAqB2vL,QAAjBtkN,EAAiB,QAAjBA,EAAAA,EAAMopB,iBAANppB,IAAiBukN,OAAjBvkN,EAAAA,EAAiBglN,iBAAAV,IAAAA,EAAAA,EAAatkN,EAAM5G,OACrD6rN,EAAqBptM,EAAAA,UACzB,WAAA,IAAAglB,EAAAqoL,EAAAC,EAAA,OAAmF,QAAnFtoL,EAAYqoL,QAAZA,EAAMllN,EAAMg9F,qBAAAkoH,IAAAA,EAAAA,EAAyDC,QAAzDA,EAAiBJ,EAAY3rN,MAAMxB,WAAW+Q,MAAM,KAAK,UAAxCw8M,IAAwCA,OAAxCA,EAAAA,EAA4CluN,cAAU4lC,IAAAA,EAAAA,EAAA,CAAA,IAG/EuoL,EAAQzwL,EAAAA,MACNv7B,EAAU86C,EAAAA,OAAOl0C,GAAjB5G,MAEFoH,EAAQ,WAAoF,IAAA6kN,EAAAC,EAC/EC,EADJ/tN,EAAewI,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAA8BqlN,QAA9BrlN,UAAAA,EAAAA,EAAMopB,iBAANppB,WAAAA,EAAAA,EAAiBglN,iBAAaK,IAAAA,EAAAA,EAAA,EAAGp7K,EAAalrC,UAAA9H,OAAA8H,QAAA5E,IAAA4E,UAAA5E,GAAA4E,UAAAgmN,GAAAA,EAAY3rN,MAClF5B,IAASyyC,IACLm7K,EAAAhsN,MAAQ,IAAIgqN,GAAM,CACtB5rN,KAAM,CACJ4B,MAAO5B,GAETyyC,GAAI,CACF7wC,MAAO6wC,GAET1K,SAAUv/B,EAAMopB,UAAUmW,SAC1B2wG,SAAU,SAACjzI,GACTm5F,EAAWh9F,MAAQJ,OAAOiE,EAAK7D,MAAMyoG,QAAQojH,EAAmB7rN,OAClE,EACA89D,SAAU,WACRk/B,EAAWh9F,MAAQ6wC,CACrB,YAEFs7K,EAAAH,EAAMhsN,oBAANmsN,EAAa/kN,UAIXglN,EAAc3tM,EAAAA,UAAS,WACvB,OAAAjb,EAAWoD,EAAM2mB,QACZ3mB,EAAM2mB,OAAOyvE,EAAWh9F,ODjDvB,SAAeA,EAAmC4jG,EAAsBr7C,GACtF,IAAMvsC,EAAU,CACdqwM,sBAAuBzoH,QAAAA,EAAiB,EACxC0oH,sBAAuB1oH,QAAAA,EAAiB,GACxC2oH,cAAehkK,GAGjB,OAAOvoD,EAAMwsN,oBAAe,EAAWxwM,GAASzZ,QAAQ,YAAQgmD,EAClE,CC4CakkK,CAAezvH,EAAWh9F,MAAO4G,EAAMg9F,cAAeh9F,EAAM2hD,UACrE,IAEM6B,EAAe3rC,EAAAA,UAAS,WACtB,IAAE62B,EAAU1uC,EAAV0uC,MACD,MAAA,CACLA,MAAO01K,GAAU11K,IAAUA,EAE/B,IAyBA,OAvBA/R,EAAAA,OACE,WAAA,OAAM38B,EAAMgjN,cACZ,IAAA,SAAC5pN,GACK4G,EAAMopB,WAAahwB,IAAUgsN,EAAMhsN,OAC/BoH,GAEV,IAEIm8B,QAAAvjC,GAAO,SAACA,GACK,IAAA0sN,EAAbV,EAAMhsN,gBACP0sN,EAAAV,EAAMhsN,oBAAN0sN,EAAqB39J,OACtBi9J,EAAMhsN,MAAQ,MAEhBg9F,EAAWh9F,MAAQA,EACf4G,EAAMgjN,gBAAkBhjN,EAAMopB,WAC1B5oB,GAEV,IAEAskC,EAAAA,WAAU,WAAA,OAAM9kC,EAAMopB,WAAappB,EAAMgjN,gBAAkBxiN,OAEpD+qD,EAAA,CAAE/qD,MAAAA,IAEF,WACL,IAAMulN,EAAY/lN,EAAMijN,MAAQ2B,EAAW5kN,EAAMijN,OAAS,KACpD9lK,EAASz+B,EAAe,YAAcqnM,GAAsC,UAAzB/lN,EAAMkjN,eAA6B6C,EAAY,MAClG1nL,EAAS3f,EAAe,YAAcqnM,GAAsC,UAAzB/lN,EAAMkjN,eAA6B6C,EAAY,MAClG34L,EAAQ1O,EAAe,SACvB6mK,EAAO7mK,EAAe,QACtBi2E,EAAQj2E,EAAe,SAG3B,OAAA+yB,EAAAA,YAAA,MAAA,CAAAC,MAAY6F,EAAen+C,OACxBg0B,CAAAA,GAAAqkB,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OAAwB2hB,EAAen+C,MAAA,WAAA,CAAgBg0B,IAA7CqkB,EAAAA,YAAAqxK,GAAA,CAAA15L,UAAA,WAAAwJ,MAAA,OAAA0D,UAC4Ct2B,EAAMs2B,SAAA,CAAA1O,QAAA,WAAA,MAAA,CAAA6pB,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OAC5C2hB,EAAen+C,MAAA,YAAAguC,MAAwBoc,EAAapqD,OAChE+jD,CAAAA,GAAA1L,EAAAK,YAAA,OAAA,CAAAJ,MAAA,GAAA9b,OAA0B2hB,EAAen+C,MAAA,oBAAyB+jD,CAAAA,IAAvD1L,EAAAA,YAAA,OAAA,CAAAC,MAAA,GAAA9b,OACI2hB,EAAen+C,MAAwB,mBAAA,CAAAosN,EAAYpsN,QAClEmsL,GAAA9zI,EAAAK,YAAA,OAAA,CAAAJ,MAAA,GAAA9b,OAAwB2hB,EAAen+C,MAAA,kBAAA,CAAuBmsL,IAC9DlnJ,GAAAoT,EAAAA,YAAA,OAAA,CAAAC,MAAA,GAAA9b,OAA0B2hB,EAAen+C,MAAA,oBAAA,CAAyBilC,MAAvD,IAGfs2D,GAAAljD,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OAAwB2hB,EAAen+C,MAAA,WAAA,CAAgBu7F,MAIhE,IC9GWqxH,GAAYvvK,GAAY4tK,ICCtB4B,GAAA,CAEb78L,UAAW,CACTvtB,KAAM9C,OACN6uB,QAAS,QACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,QAAS,QAAQvI,SAASuI,EACpC,GAGFimM,SAAU,CACRrqN,KAAM2lB,QACNoG,SAAS,GAGX9N,QAAS,CACPje,KAAM7C,OACN4uB,QAAS,GAGXmyG,eAAgB,CACdl+H,KAAM7C,OACN4uB,QAAS,GAGXgH,UAAW,CACT/yB,KAAM9C,OACN6uB,QAAS,aACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,aAAc,YAAYvI,SAASuI,EAC7C,GAGFsf,SAAU,CACR1jC,KAAM7C,OACN4uB,QAAS,KAGXihB,OAAQ,CACNhtC,KAAM7C,QAGR8qN,SAAU,CACRjoN,KAAM7C,OACN4uB,QAAS,KAGXu+L,KAAM,CACJtqN,KAAM2lB,QACNoG,SAAS,GAGXw+L,WAAY,CACVvqN,KAAM,CAAC3C,OAAQW,WAGjBwsN,YAAa,CACXxqN,KAAM2lB,QACNoG,SAAS,GAGXgL,MAAO,CACL/2B,KAAM9C,OACN6uB,QAAS,QACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,QAAS,QAAQvI,SAASuI,EACpC,GAGFivC,QAAS,CACPrzD,KAAM9C,OACN6uB,QAAS,QACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,QAAS,SAASvI,SAASuI,EACrC,GAGFpkB,KAAM,CACJA,KAAM9C,OACN6uB,QAAS,UACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,UAAW,QAAQvI,SAASuI,EACtC,GAGFqmM,UAAW,CACTzqN,KAAM7C,OACN4uB,QAAS,IAAM,KAGjBuP,SAAUt9B,6kBCrGZ,IAAM0sN,GAAkB,CACtBvrN,MAAO,CACLa,KAAM7C,QAER0gF,aAAc,CACZ79E,KAAM7C,QAERwtN,YAAa,CACX3qN,KAAM2lB,QACNoG,SAAS,GAEX6+L,iBAAkB,CAChB5qN,KAAMhC,UAER6sN,iBAAkB,CAChB7qN,KAAM7C,OACN4uB,QAAS,IAGP++L,GAAY,KAElBC,GAAev2K,kBAAgB,CAC7Br4C,KAAM,cACNgI,MAAOsxC,GAAAA,MACFtxC,IACAumN,IAELj2K,eAAMtwC,EAAAA,GAAkB,IAATgf,EAAA4d,EAAA5d,MACPm+B,EAASxnB,KACTiB,EAAS/e,EAAAA,UAAS,WAAA,OAAM7X,EAAMhF,QAAUgF,EAAM05E,gBAC9CmtI,EAAehvM,EAAAA,UAAS,WAC5B,MAAmB,SAAf7X,EAAMnE,KAAwB,EACP,IAAvBmE,EAAM05E,cAAsB15E,EAAMhF,QAAUgF,EAAM0mN,iBAAmB,GAChE,EAEL1mN,EAAM05E,eAAiB15E,EAAM0mN,iBAAmB,GAAqB,IAAhB1mN,EAAMhF,MACtDgF,EAAM0mN,iBAEX1mN,EAAMhF,MAAQgF,EAAM05E,aAAe,GAAK15E,EAAM05E,aAAe15E,EAAMhF,OAASgF,EAAM0mN,iBAAmB,EAChG1mN,EAAM0mN,iBAAmB,EAE9B1mN,EAAMhF,MAAQgF,EAAM05E,aAAe,GAAK15E,EAAMhF,MAAQgF,EAAM05E,cAAgB15E,EAAM0mN,iBAAmB,GAChG,EAEF1mN,EAAMhF,KACf,IACM6yM,EAAah2L,EAAAA,UAAS,WAC1B,GAAmB,SAAf7X,EAAMnE,KAAwB,OAAA,EAClC,IAAM2uD,EAAYxqD,EAAMymN,iBAAiB,gBAAkB,EACrDK,GAAkBlwL,EAAOx9B,OAAS4G,EAAM0mN,iBAAmB,EAAIG,EAAaztN,MAAQ4G,EAAMhF,MAEhG,OADgBqF,KAAKyiB,IAAIgkM,EAAiB9mN,EAAM05E,eAAiB,EAG5DlvB,IAAcs8J,EAAiB9mN,EAAM05E,eAAiB,EAAIitI,GAAY3mN,EAAMsmN,WAAaK,GAAY,GAAM,EAG5GG,EAAiB9mN,EAAM05E,cACjB,MAAc,EAAI15E,EAAMsmN,WAAa97J,EAAa,GAEnD,EAAIm8J,IAAa3mN,EAAMsmN,UAAY,IAAM97J,EAAa,CACjE,IACMhlB,EAAS3tB,EAAAA,UAAS,WACtB,GAAmB,SAAf7X,EAAMnE,KAAwB,OAAA,EAC5B,IAAAirN,GAAkBlwL,EAAOx9B,OAAS4G,EAAM0mN,iBAAmB,EAAIG,EAAaztN,MAAQ4G,EAAMhF,MAC1F+rN,EAAaD,IAAmB9mN,EAAM05E,aACtCstI,EAAU3mN,KAAKomB,MAAMpmB,KAAKyiB,IAAIgkM,EAAiB9mN,EAAM05E,gBAAkB,EAC7E,OAAIqtI,EACK,EAELC,EACK,EAEF,CACT,IACMC,EAAYpvM,EAAAA,UAAS,WACrB7X,GAAoB,SAApBA,EAAMopB,UACD,MAAA,CACLogB,QAAS5S,EAAOx9B,MAAQ,EAAI,EAC5BiwC,WAAYrpC,EAAMwmN,YAAA5wL,WAAAA,OAAyB51B,EAAMu/B,SAAW,SAAU,GACtEiG,OAAQ5O,EAAOx9B,MAAQ,EAAI,GAG3B4G,GAAe,SAAfA,EAAMnE,KAAiB,CACnB,IACAkrN,IADkBnwL,EAAOx9B,OAAS4G,EAAM0mN,iBAAmB,EAAIG,EAAaztN,MAAQ4G,EAAMhF,SAC1DgF,EAAM05E,aACrC,MAAA,CACLj5E,+BAAyBotM,EAAWz0M,MAAkBw8B,cAAAA,OAAAmxL,EAAa,EAAI/mN,EAAMsmN,UAAA,KAC7Ej9K,WAAA,aAAAzT,OAAyB51B,EAAMu/B,SAAW,IAAA,UAC1CiG,OAAQA,EAAOpsC,MAEnB,CACA,MAAO,EACT,IAEO,OAAA,WAAA,IAAA8lB,EAAA,OAAAuyB,EAAAA,YAAA,MAAA,CAAAC,MAEI,CAAA,GAAA9b,OACFunB,EAAO/jD,MAAAH,4BAAAA,EAAAA,EAAAA,QAAA28B,OAEJunB,EAAO/jD,MAAA,iBAAsC,SAAf4G,EAAMnE,MAAS+5B,GAAAA,OAC7CunB,EAAO/jD,oBAAmC,SAAf4G,EAAMnE,MAAmB+6B,EAAOx9B,UAAAw8B,OAC3DunB,EAAO/jD,MAAA,iBAA2C,SAApB4G,EAAMopB,YAE5Cge,MACO6/K,EAAU7tN,OAEhB,EAAgB,QAAhB8lB,EAAAF,EAAgB,eAAhBE,IAAgBA,OAAhBA,EAAAA,EAAArnB,KAAAmnB,EAAgB,MAAO,KAG9B,ukBCxGF,IAAMkoM,GAAsC,CAC1CtwJ,UAAW,SACXuwJ,aAAc,SACd3iN,KAAM,SACN3I,KAAM,QAGRurN,GAAe/2K,kBAAgB,CAC7Br4C,KAAM,UACNgI,MAAAA,GACA+8C,MAAO,CAAC,kBACRzM,eAAMtwC,EAAAA,GAAiB,IAARs3B,EAAAsF,EAAAtF,KACP6lB,EAASxnB,KACTjX,EAAiBmC,KAEvB62C,EAA8C59B,GAAc,CAC1DyrD,gBAAiBC,GACjBvM,iBAAkBC,KAFZqM,EAAA7tB,EAAA6tB,gBAAiBtM,EAAiBvhB,EAAjBuhB,iBAIrBouI,EAAoD,KACpDC,EAAuB,EACvBC,GAAe,EACfC,GAAe,EACb9tI,EAAe/kD,EAAAA,IAAI30B,EAAM8Z,SAAW9Z,EAAM+5H,gBAC1C0tF,EAAiB9yL,EAAAA,IAAI30B,EAAM8Z,SAAW9Z,EAAM+5H,gBAC5C2tF,EAAa/yL,OAAI,GACjB6xL,EAAc7xL,OAAI,GAClBm6C,EAAYn6C,OAAI,GAChBgzL,EAAahzL,EAAAA,MACb8rG,EAA0B5hH,KAE1B6nM,EAAmB/xL,MAAI,GACvBizL,EAAmB/vM,EAAAA,UAAS,WACzB,OAAAy5B,GAAAA,MACF41K,IACC1pM,EAAAA,QAAQxd,EAAMomN,YAAc,CAAA,EAAMpmN,EAAMomN,WAEhD,IACMxoE,EAAQ/lI,EAAAA,UAAS,WACjB7X,MAAe,SAAfA,EAAMnE,MACAmE,EAAMmmN,MAAQzsI,EAAatgF,MAAQ,GAAKstN,EAAiBttN,OAE3D4G,EAAMmmN,MAAQzsI,EAAatgF,MAAQ,GAAKstN,EAAiBttN,KACnE,IACMyuN,EAAwBhwM,EAAAA,UAAS,WAC9B,MAAA,CAAC7X,EAAMkmN,SAAUxsI,EAAatgF,MAAO4G,EAAMu/B,SAAUv/B,EAAM8jN,SACpE,IACMgE,EAAkBjwM,EAAAA,UAAS,WACxB,OAAA5e,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,QAAA28B,OACDunB,EAAO/jD,wBAAuB,GAAA,GAAAw8B,OAC9BunB,EAAO/jD,yBAA8D,WAArCwuN,EAAiBxuN,MAAMw9D,WAAc,GAAAhhC,OACrEunB,EAAO/jD,MAA0B,oBAAqC,YAArCwuN,EAAiBxuN,MAAMw9D,WAAc,GAAAhhC,OACtEunB,EAAO/jD,MAAA,qBAA+C,aAApB4G,EAAM4uB,cAAcgH,OACtDunB,EAAO/jD,MAAwBwuN,kBAAgC,UAAhCA,EAAiBxuN,MAAMoL,SAASoxB,OAC/DunB,EAAO/jD,wBAAwD,UAAhCwuN,EAAiBxuN,MAAMoL,KAE9D,IACMujN,EAAiBlwM,EAAAA,UAAS,WACxB,IAAAixB,EAAe9oC,EAAM6oC,OAAS,GAAAjT,OAAG51B,EAAM6oC,gBAAajT,OAAG6wL,EAAiB,gBAAc,MAC5F,GAAmB,SAAfzmN,EAAMnE,MAAuC,SAApBmE,EAAMopB,UAC1B,MAAA,CACLyf,OAAQC,GAGR9oC,GAAoB,UAApBA,EAAMopB,UAAuB,CAC/B,IAAMge,EAAyC,CAC7CiC,WAAYm9K,EAAYptN,MAAAw8B,aAAAA,OAAqB51B,EAAMu/B,SAAW,IAAe,UAAA,IAE3E3I,EAAS8iD,EAAatgF,MAgBnB,OAfHstN,EAAiBttN,MAAQ,IACjBw9B,GAAA,GACN2wL,GAAgBC,KAClBpgL,EAAMiC,WAAa,KAGC,aAApBrpC,EAAM4uB,WACRwY,EAAMyB,OAASC,EACT1B,EAAA3mC,UAAAm1B,mBAAAA,OAAwC,IAATgB,EAAS,YAExCwQ,EAAA3mC,UAAAm1B,gBAAAA,OAAqC,IAATgB,EAAS,gBAE7C,CAAC,cAAe,mBAAmBpmB,SAAQ,SAAC3S,GAC1CupC,EAAMvpC,GAAOupC,EAAM3mC,SACrB,IACO2mC,CACT,CACA,MAAO,EACT,IACM4gL,EAAc,WACZ,IAAAC,EAAiBxnF,EAAwB,cAC/CimF,EAAiBttN,MAAQ6uN,EAAehxN,OACxC,IAAMysD,EAAQukK,EAAehjN,KAAI,SAACijN,EAAiBltN,GAAU,IAAAsjD,EA7F3Cr8B,EA8FVkB,QAASnjB,CAAAA,EAAAA,GAAUkoN,EAAWloN,OAElC,OAAAyxC,EAAAK,YAAAq2K,GAAA7zK,aAAA,CAAAt5C,MACSA,EAAA0+E,aACOA,EAAatgF,MAAAotN,YACdA,EAAYptN,MAAAqtN,iBACPA,EAClBC,iBAAkBA,EAAiBttN,OAC/B+pB,GAtGQ,mBAAAlB,EAsGRq8B,EAEH4pK,EAAWpqM,SAAS,YAxGT0gC,oBAAAtlD,OAAAP,UAAAf,SAAAC,KAAAoqB,KAAAu8B,EAAAhhC,QAAAyE,qCA2GlB,IACA,GAAwB,UAApBjiB,EAAMopB,WAAyBs6B,EAAMzsD,OAAS,EAAG,CAC7C,IAAAi0J,EAAQk9D,EAAAA,WAAW1kK,EAAM,GAAI,CACjC7lD,iCAA2B,KAEvBma,EAAOowM,EAAAA,WAAW1kK,EAAMA,EAAMzsD,OAAS,GAAI,CAC/C4G,2BAAA+3B,OAA4B8tB,EAAMzsD,OAAS,KAE7CysD,EAAM/U,QAAQ32B,GACd0rC,EAAMtgD,KAAK8nJ,EACb,CACO,OAAAxnG,GAGH2kK,EAAW,SAACrtN,EAAe88B,GAA4C,IAAAi8B,EACvE81B,EAAc7uF,EAAQ0rN,EAAiBttN,MAC3CquN,EAAeruN,MAAQywF,EACvBvyD,EAAK,iBAAkBuyD,WACvB7pF,EAAAA,EAAMm3B,gBAAW,IAAA48B,GAAjB/zD,EAAAA,KAAAA,EAAiB6pF,EAAa/xD,GAC9B0uL,EAAYptN,OAAQ,EACI,UAApB4G,EAAMopB,WAAyBs9L,EAAiBttN,MAAQ,GAAoB,SAAf4G,EAAMnE,OACvDguF,EAAA7uF,EACCusN,GAAA,EACAC,GAAA,EACXxsN,GAAS0rN,EAAiBttN,QACjBs/D,IACXviD,YAAW,WACMqxM,GAAA,EACf9tI,EAAatgF,MAAQ,CACvB,GAAG4G,EAAMu/B,WAEgB,IAAvBm6C,EAAatgF,QAEZstN,EAAiBttN,MAAQ,GAAK4B,IAAU0rN,EAAiBttN,MAAQ,GACtC,IAA3BstN,EAAiBttN,OAAyB,IAAV4B,KAEnB6uF,GAAA,EACC49H,EAAAruN,MAAQstN,EAAiBttN,MAAQ,EACrCs/D,IACXviD,YAAW,WACMoxM,GAAA,EACF7tI,EAAAtgF,MAAQstN,EAAiBttN,MAAQ,CAChD,GAAG4G,EAAMu/B,YAIfm6C,EAAatgF,MAAQywF,GAEjBnxB,EAAa,WACb2uJ,IACF5wM,aAAa4wM,GACCA,EAAA,OAGZ1uJ,EAAW,WACX34D,EAAMkmN,UAAYlmN,EAAM8jN,SAAW,IAC1BprJ,IACG2uJ,EAAAlxM,YACZ,WACEkyM,EAAS3uI,EAAatgF,MAAQ,EAAG,CAAEiF,OAAQ,YAC7C,GACuB,IAAvBq7E,EAAatgF,MAAc4G,EAAM8jN,UAAY9jN,EAAMu/B,SAAW,IAAMv/B,EAAM8jN,YAK1EtgG,EAAe,WACnBkkG,EAAWtuN,OAAQ,EACf4G,EAAMqmN,aACG3tJ,IAE+B,UAAxCkvJ,EAAiBxuN,MAAM+tN,eACzBr4I,EAAU11E,OAAQ,IAGhB+4E,EAAe,WACnBu1I,EAAWtuN,OAAQ,EACdwkJ,EAAMxkJ,OACAu/D,IAEiC,UAAxCivJ,EAAiBxuN,MAAM+tN,eACzBr4I,EAAU11E,OAAQ,IAahBkvN,EAAS,SAACxwL,GACd,IAAI0uL,EAAYptN,MACZ4G,MAAe,SAAfA,EAAMnE,KACDwsN,EAAS3uI,EAAatgF,MAAQ,GAAKstN,EAAiBttN,MAAQ,EAAIsgF,EAAatgF,MAAQ,EAAG0+B,GAE1FuwL,EAAS3uI,EAAatgF,MAAQ,EAAG0+B,IAEpCywL,EAAa,SAACzwL,GAClB,IAAI0uL,EAAYptN,MACZ,OAAAsgF,EAAatgF,MAAQ,EAAI,EACH,UAApB4G,EAAMopB,WAAoD,IAA3Bs9L,EAAiBttN,MAC3CivN,EAAS,EAAGvwL,GAEduwL,EAAS3B,EAAiBttN,MAAQ,EAAG0+B,GAEvCuwL,EAAS3uI,EAAatgF,MAAQ,EAAG0+B,IAEpC2uL,EAAmB,SAACl8E,GAAiB,IAAAi+E,EAClC,eAAAA,EAAAb,EAAWvuN,oBAAoBovN,UAA/BA,EAAkBlkL,sBAAakkL,SAA/BA,EAA+Bj+E,IA+BlCk+E,EAAmB,WACnB,GAAAjrM,EAAAA,QAAQxd,EAAMomN,YAAa,OAAOpmN,EAAMomN,WACtC,IA9BAsC,EA8BAC,EAAiBjqM,EAAe,cAClC,GAAAiqM,GAAkBnrM,EAAQA,QAAAmrM,aAAAA,EAAAA,EAAiB,IAAY,OAAAA,EAEvD,GAAgC,aAAhCf,EAAiBxuN,MAAMyC,KACzB,OAAA41C,EAAAA,YAAA,MAAA,CAAAC,MACc,CAAA,GAAA9b,OAAIunB,EAAO/jD,MAA4B,uBAAA,GAAAw8B,OAAGunB,EAAO/jD,MAAA,mCAC1DwvN,EApCDF,EAAgBhvI,EAAatgF,MAAQ,EAAIstN,EAAiBttN,MAAQ,EAAIsgF,EAAatgF,MAAQ,EACjGq4C,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OACiBunB,EAAO/jD,MAAA,mBAAA,CAAAq4C,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OACLunB,EAAO/jD,qCAAqC,WAAA,OAAMmvN,EAAW,CAAElqN,OAAQ,+EAGvE8+C,EAAO/jD,MAAA,sCACnBsvN,CAAAA,EAAc,IAAEhC,EAAiBttN,QAAAq4C,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OAErBunB,EAAO/jD,sCAAsC,WAAA,OAAMkvN,EAAO,CAAEjqN,OAAQ,+CA+BjF,IAAA4pN,EAAiBxnF,EAAwB,cAE7C,OAAAhvF,EAAAA,YAAA,KAAA,CAAAC,MACS,CAAA,GAAA9b,OACFunB,EAAO/jD,MAAAH,uBAAAA,EAAAA,EAAAA,QAAA28B,OAEJunB,EAAO/jD,MAAkC,4BAAgC,SAAhCwuN,EAAiBxuN,MAAMyC,SAAS+5B,OACzEunB,EAAO/jD,MAAkC,4BAAgC,SAAhCwuN,EAAiBxuN,MAAMyC,SAAS+5B,OACzEunB,EAAO/jD,MAAsC,gCAAgC,aAAhCwuN,EAAiBxuN,MAAMyC,QAE5E,CAECosN,EAAehjN,KAAI,SAACye,EAAG7qB,kCAEfA,EAAA64C,MACE,CAAA,GAAA9b,OACFunB,EAAO/jD,MAAA,4BAAAH,EAAA28B,CAAAA,EAAAA,GAAAA,OAEJunB,EAAO/jD,MAAoBP,cAAAA,IAAM4uN,EAAeruN,qBAG1C,WAAA,OA5FW,SAACP,GACZ,UAAlBmH,EAAMkvD,SACRm5J,EAASxvN,EAAG,CAAEwF,OAAQ,UA0FIwqN,CAA2BhwN,YACtC,WAAA,OAxFW,SAACA,GACP,UAAlBmH,EAAMkvD,SACRm5J,EAASxvN,EAAG,CAAEwF,OAAQ,UAsFDyqN,CAAsBjwN,uCAIxC,OAyCP,OAjCA8jC,EAAAA,OACE,WAAA,OAAMkrL,EAAsBzuN,KAAA,IAC5B,WACWu/D,GACX,IAEFh8B,EAAAA,OACE,WAAA,OAAM6pL,EAAYptN,KAAA,IAClB,WACMotN,EAAYptN,QACVkuN,GAAsB7wM,aAAa6wM,GACvCA,EAAuBnxM,YAAW,WAChCqwM,EAAYptN,OAAQ,EACGkuN,EAAA,EACnB1pE,EAAMxkJ,OACGs/D,GAEf,GAAG14D,EAAMu/B,SAAW,IAExB,IAEF5C,EAAAA,OACE,WAAA,OAAM38B,EAAM8Z,OAAA,IACZ,WACEuuM,EAASroN,EAAM8Z,QAAS,CAAEzb,OAAQ,YACpC,IAGFymC,EAAAA,WAAU,WACC6zB,IACCmW,EAAA11E,MAAgD,WAAxCwuN,EAAiBxuN,MAAM+tN,YAC3C,IAEO,WAAA,OAAA11K,EAAAA,YAAA,MAAA,CAAAC,MACO,IAAA9b,OAAIunB,EAAO/jD,MAAc,YAAA6/D,aAAiBuqD,EAAAtqD,aAA4BiZ,EAAcx9C,IAAKgzL,+BACvFG,EAAgB1uN,OAAA,CAAAq4C,EAAAK,YAAA,MAAA,CAAAJ,MAEjB,CAAA9b,GAAAA,OACFunB,EAAO/jD,MAAA,oBAAAH,EAAAA,EAAA,CAAA,EAAA,GAAA28B,OAEJunB,EAAO/jD,MAAsB4G,gBAAoB,SAApBA,EAAMopB,cAAcwM,OACjDunB,EAAO/jD,MAAsB4G,gBAAe,SAAfA,EAAMnE,QAI3C,CAAA41C,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OAAeunB,EAAO/jD,MAAA,sBAAAguC,MAAkC2gL,EAAe3uN,OACpE2vN,CAjDFf,QAoDFS,IA3GA35I,EAAU11E,MAEbq4C,EAAAA,YAAA,MAAA,CAAAC,MAAY,CAAA,GAAA9b,OAAIunB,EAAO/jD,MAAA,kBAAA,GAAAw8B,OAA0BunB,EAAO/jD,MAA8B,6BAAA,CAAAq4C,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OACrEunB,EAAO/jD,qCAAqC,WAAA,OAAMmvN,EAAW,CAAElqN,OAAQ,+EAGvE8+C,EAAO/jD,sCAAsC,WAAA,OAAMkvN,EAAO,CAAEjqN,OAAQ,4CAN1D,SAgHjC,IC3VW2qN,GAASvyK,GAAY2wK,IACrB6B,GAAaxyK,GAAYmwK,ICFvBsC,GAAA,CAEbC,cAAe,CACbttN,KAAMzE,MACNwwB,aAAS,GAGXwhM,qBAAsB,CACpBvtN,KAAMzE,MACNwwB,QAAS,WAAT,MAAyD,EAAC,GAG5DyhM,cAAe,CACbxtN,KAAM9C,OACN6uB,QAAS,IAGX0hM,uBAAwB,CACtBztN,KAAM2lB,QACNoG,aAAS,GAGX2B,OAAQ,CACN1tB,KAAM,CAAC9C,OAAQc,WAGjBwpD,SAAU7hC,QAEVmkH,cAAe,CACb9pI,KAAM,CAAC9C,OAAQc,WAGjB0vN,iBAAkB,CAChB1tN,KAAM,CAAC9C,OAAQc,WAGjB2vN,QAAS,CACP3tN,KAAMzE,MACNwwB,QAAS,WAAT,MAA4C,EAAC,GAG/CjjB,KAAM,CACJ9I,KAAMzE,MACNwwB,QAAS,WAAT,MAAyC,EAAC,GAG5C6hM,gBAAiBjoM,QAEjBkoM,wBAAyB,CACvB7tN,KAAM2lB,QACNoG,aAAS,GAGX8D,MAAO,CACL7vB,KAAM,CAAC9C,OAAQc,UACf+tB,QAAS,IAGX+hM,aAAc,CACZ9tN,KAAM,CAAC9C,OAAQc,WAGjB+xC,UAAW,CACT/vC,KAAMzE,OAGRwyN,SAAU,CACR/tN,KAAMzE,MACNwwB,QAAS,WAAT,MAA6C,EAAC,GAGhDiiM,iBAAkB,CAChBhuN,KAAM3C,QAGR4wN,oBAAqB,CACnBjuN,KAAM,CAAC2lB,QAAStoB,QAChB0uB,SAAS,GAGXmiM,cAAe,CACbluN,KAAM,CAAC9C,OAAQc,WAGjBmwN,iBAAkB,CAChBnuN,KAAM3C,QAGR+wN,iBAAkB,CAChBpuN,KAAM,CAAC2lB,QAAStoB,QAChB0uB,SAAS,GAGXihB,OAAQ,CACNhtC,KAAM,CAAC9C,OAAQC,SAGjBkxN,8BAA+B,CAC7BruN,KAAM,CAAC2lB,QAAStoB,SAGlBwjD,MAAOl7B,QAEP2oM,iBAAkB,CAChBtuN,KAAM2lB,QACNoG,SAAS,GAGXwiM,YAAa,CACXvuN,KAAM,CAAC9C,OAAQc,WAGjByvH,SAAU9nG,QAEV8U,QAAS,CACPz6B,KAAM,CAAC2lB,QAAS3nB,UAChB+tB,aAAS,GAGXsvB,aAAc,CACZr7C,KAAM3C,QAGR2qB,OAAQ,CACNhoB,KAAM3C,QAGR+iF,UAAW,CACTpgF,KAAM,CAAC9C,OAAQC,SAGjBizB,WAAY,CACVpwB,KAAM3C,QAGRmxN,wBAAyB,CACvBxuN,KAAM,CAAC2lB,QAAStoB,SAGlBoxN,UAAW9oM,QAEX+oM,cAAe,CACb1uN,KAAM,CAAC3C,OAAQ9B,MAAOyC,WAGxB2wN,aAAc,CACZ3uN,KAAM,CAAC9C,OAAQG,OAAQ9B,MAAOyC,WAGhC4wN,OAAQ,CACN5uN,KAAM9C,OACN6uB,QAAS,KACTwJ,UAAU,GAGZs5L,kBAAmB,CACjB7uN,KAAMhC,UAGR8wN,0BAA2B,CACzB9uN,KAAMhC,UAGRkxC,OAAQ,CACNlvC,KAAM3C,QAGRgxM,WAAY,CACVruM,KAAM2lB,QACNoG,SAAS,GAGXpjB,KAAM,CACJ3I,KAAM9C,OACN24B,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,QAAS,SAAU,SAASvI,SAASuI,EAC/C,GAGFo9L,OAAQ77L,QAERopM,kBAAmB,CACjB/uN,KAAM9C,OACN6uB,QAAS,IAGXg8B,YAAa,CACX/nD,KAAM9C,OACN6uB,QAAS,QACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,OAAQ,SAASvI,SAASuI,EACpC,GAGFylH,WAAY,CACV7pI,KAAM,CAAC9C,OAAQc,WAGjBgxN,cAAe,CACbhvN,KAAM9C,OACN6uB,QAAS,SACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,MAAO,SAAU,UAAUvI,SAASuI,EAC9C,GAGF6qM,eAAgBjxN,SAEhBkxN,kBAAmBlxN,SAEnB6nJ,YAAa7nJ,SAEbmxN,qBAAsBnxN,SAEtBm6K,aAAcn6K,SAEdoxN,WAAYpxN,SAEZqxN,cAAerxN,SAEfsxN,eAAgBtxN,SAEhBuxN,gBAAiBvxN,SAEjBwxN,gBAAiBxxN,SAEjByxN,eAAgBzxN,SAEhB0xN,aAAc1xN,SAEdq1E,SAAUr1E,SAEV2xN,UAAW3xN,SAEX4xN,UAAW5xN,UC9ON,SAAS6xN,GAAalC,EAA2BmC,GAGtD,IAHqG,IAAnB5kN,EAAAhI,UAAA9H,OAAA,QAAAkD,IAAA4E,UAAA,GAAAA,UAAA,GAAQ,EACtF6sN,EAAW7kN,EAENlO,EAAI,EAAGy4B,EAAMk4L,EAAQvyN,OAAQ4B,EAAIy4B,EAAKz4B,IAAK,CAAA,IAAAgzN,EAC5CzoE,EAAMomE,EAAQ3wN,GAEhB,GADK8yN,EAAAtnN,IAAI++I,EAAKr8I,GACdq8I,iBAAAyoE,EAAAzoE,EAAKtlI,uBAAL+tM,EAAe50N,OAAQ,CACzB,IAAM0lF,EAAO+uI,GAAatoE,EAAItlI,SAAU6tM,EAAU5kN,EAAQ,GACtD41E,EAAOivI,IACEA,EAAAjvI,EAEf,CACF,CACO,OAAAivI,CACT,CAGgB,SAAAE,GAAqBttM,GAGnC,IAHyE,IACrEutM,EAD0DhtN,UAAA9H,OAAA,QAAAkD,IAAA4E,UAAA,GAAAA,UAAA,GAAQ,EAEhEitN,GAAextM,aAAM,EAANA,EAAMV,WAAY,GAC9BjlB,EAAI,EAAGy4B,EAAM06L,EAAa/0N,OAAQ4B,EAAIy4B,EAAKz4B,IAAK,CACvD,IAAMglB,EAAOmuM,EAAanzN,GACtBglB,EAAKC,SACIiuM,EAAAD,GAAqBjuM,EAAMkuM,GAE1BA,GAAA,CAEhB,CACO,OAAAA,CACT,CAGO,SAASE,GAAuBzC,GAC/B,IAAAmC,MAAe5mN,IACfmnN,EAAeR,GAAalC,EAASmC,GACrCQ,MAAgDpnN,IAChDohN,EAAO,SAACx6F,EAAyBygG,GACrC,IAAA,IAASvzN,EAAI,EAAGy4B,EAAMq6F,EAAM10H,OAAQ4B,EAAIy4B,EAAKz4B,IAAK,CAAA,IAAAwzN,EAC1CjpE,EAAMz3B,EAAM9yH,GACZyzN,EAAUlpE,EAAItlI,SAAW,EAAIouM,EAAeP,EAASjnN,IAAI0+I,GAAO,EAChEr+F,EAAUq+F,EAAItlI,SAAWguM,GAAqB1oE,GAAO,EAErDpkG,EAAuB,CAAA,EACnBstK,EAAA,IAAMttK,EAAKstK,QAAUA,GACrBvnK,EAAA,IAAM/F,EAAK+F,QAAUA,GACVonK,EAAA9nN,IAAI++I,EAAKpkG,GAC1BokG,iBAAAipE,EAAAjpE,EAAKtlI,uBAALuuM,EAAep1N,OACZkvN,EAAA/iE,EAAItlI,SAAUsuM,GAEnBA,EAAYhpN,KAAKggJ,EAErB,GAEIgpE,EAAgC,GAE/B,OADPjG,EAAKqD,EAAS4C,GACP,CAAED,qBAAAA,EAAsBC,YAAAA,EACjC,CC9DA,SAAwBG,KACtB,IAAMpjM,EAAcwM,KAwLb,MAvLY,CACjBxM,YAAaA,EAAY/vB,MACzBozN,eAAgB,CACdjiM,SAAAqL,OAAUzM,EAAY/vB,MAAA,UACtBqzN,wBAAA72L,OAAyBzM,EAAY/vB,MAAA,4BACrCszN,mBAAA92L,OAAoBzM,EAAY/vB,MAAA,4BAChC+nC,QAAAvL,OAASzM,EAAY/vB,MAAA,gBACrBskB,WAAAkY,OAAYzM,EAAY/vB,MAAA,mBACxBssI,cAAA9vG,OAAezM,EAAY/vB,MAAA,uBAC3BusI,iBAAA/vG,OAAkBzM,EAAY/vB,MAAA,0BAC9BuzN,kBAAA/2L,OAAmBzM,EAAY/vB,MAAA,2BAC/BwzN,aAAAh3L,OAAczM,EAAY/vB,MAAA,uBAC1ByzN,cAAAj3L,OAAezM,EAAY/vB,MAAA,wBAC3B0zN,eAAAl3L,OAAgBzM,EAAY/vB,MAAA,yBAC5B2zN,gBAAAn3L,OAAiBzM,EAAY/vB,MAAA,oBAC7B4zN,gBAAAp3L,OAAiBzM,EAAY/vB,MAAA,0BAC7B6zN,gBAAAr3L,OAAiBzM,EAAY/vB,MAAA,qBAC7BiqD,YAAAztB,OAAazM,EAAY/vB,MAAA,oBACzB8zN,WAAAt3L,OAAYzM,EAAY/vB,MAAA,mBACxBsjD,SAAA9mB,OAAUzM,EAAY/vB,MAAA,qBACtBk9B,WAAAV,OAAYzM,EAAY/vB,MAAA,mBACxBsxN,qBAAA90L,OAAsBzM,EAAY/vB,MAAA,2BAClCsyB,SAAAkK,OAAUzM,EAAY/vB,MAAA,iBACtB+zN,YAAAv3L,OAAazM,EAAY/vB,MAAA,qBACzBg0N,eAAAx3L,OAAgBzM,EAAY/vB,MAAA,wBAC5Bi0N,eAAAz3L,OAAgBzM,EAAY/vB,MAAA,wBAC5Bk0N,iBAAA13L,OAAkBzM,EAAY/vB,MAAA,0BAC9Bm0N,kBAAA33L,OAAmBzM,EAAY/vB,MAAA,2BAC/Bo0N,iBAAA53L,OAAkBzM,EAAY/vB,MAAA,0BAC9Bq0N,wBAAA73L,OAAyBzM,EAAY/vB,MAAA,kCACrCs0N,iBAAA93L,OAAkBzM,EAAY/vB,MAAA,0BAC9Bu0N,oBAAA/3L,OAAqBzM,EAAY/vB,MAAA,8BACjCw0N,oBAAAh4L,OAAqBzM,EAAY/vB,MAAA,8BACjCy0N,qBAAAj4L,OAAsBzM,EAAY/vB,MAAA,+BAElC00N,oBAAAl4L,OAAqBzM,EAAY/vB,MAAA,8BAEjC20N,cAAAn4L,OAAezM,EAAY/vB,MAAA,uBAE3B40N,cAAAp4L,OAAezM,EAAY/vB,MAAA,uBAC3B60N,oBAAAr4L,OAAqBzM,EAAY/vB,MAAA,8BACjC80N,kBAAAt4L,GAAAA,OAAsBzM,EAAY/vB,MAAA,oCAGpC+0N,eAAgB,CACdxqL,QAAA/N,OAASzM,EAAY/vB,MAAA,eACrByqC,SAAAjO,OAAUzM,EAAY/vB,MAAA,gBACtB48D,OAAApgC,GAAAA,OAAWzM,EAAY/vB,MAAA,kBAGzBg1N,mBAAoB,CAClBvlB,UAAAjzK,OAAWzM,EAAY/vB,MAAA,kBACvBi1N,cAAAz4L,OAAezM,EAAY/vB,MAAA,+BAC3Bk1N,SAAA14L,OAAUzM,EAAY/vB,MAAA,yBACtBm0N,eAAA33L,GAAAA,OAAmBzM,EAAY/vB,MAAA,6BAGjCm1N,mBAAoB,CAClBx6C,UAAAn+I,OAAWzM,EAAY/vB,MAAA,kBACvBk1N,MAAA14L,GAAAA,OAAUzM,EAAY/vB,MAAA,0BAGxBo1N,kBAAmB,CACjB9qL,OAAA9N,OAAQzM,EAAY/vB,MAAA,uBACpBq1N,UAAA74L,OAAWzM,EAAY/vB,MAAA,0BACvBwqC,OAAAhO,GAAAA,OAAWzM,EAAY/vB,MAAA,2BAGzBs1N,qBAAsB,CACpBhrL,OAAA9N,OAAQzM,EAAY/vB,MAAA,0BACpBwqC,UAAAhO,OAAWzM,EAAY/vB,MAAA,6BACvBu1N,eAAA/4L,OAAgBzM,EAAY/vB,MAAA,mCAC5Bw1N,oBAAAh5L,GAAAA,OAAwBzM,EAAY/vB,MAAA,uCAGtCy1N,qBAAsB,CACpBlrL,QAAA/N,OAASzM,EAAY/vB,MAAA,4BACrByqC,SAAAjO,OAAUzM,EAAY/vB,MAAA,6BACtB01N,YAAAl5L,OAAazM,EAAY/vB,MAAA,iCACzB21N,cAAAn5L,OAAezM,EAAY/vB,MAAA,mCAC3B41N,cAAAp5L,OAAezM,EAAY/vB,MAAA,uCAC3B61N,YAAAr5L,GAAAA,OAAgBzM,EAAY/vB,MAAA,yCAG9B81N,mBAAoB,CAClBh0J,QAAAtlC,OAASzM,EAAY/vB,MAAA,uBACrBk1N,MAAA14L,GAAAA,OAAUzM,EAAY/vB,MAAA,yBAGxB+1N,mBAAAv5L,OAAoBzM,EAAY/vB,MAAA,uBAGhCg2N,oBAAqB,CACnBC,QAAAz5L,OAASzM,EAAY/vB,MAAA,qBACrBk2N,gBAAA15L,OAAiBzM,EAAY/vB,MAAA,0BAC7Bm2N,oBAAA35L,OAAqBzM,EAAY/vB,MAAA,4BACjCuwN,gBAAA/zL,OAAiBzM,EAAY/vB,MAAA,0BAC7BgxN,YAAAx0L,GAAAA,OAAgBzM,EAAY/vB,MAAA,0BAI9Bo2N,mBAAoB,CAClBC,WAAA75L,OAAYzM,EAAY/vB,MAAA,sBACxBs2N,YAAA95L,OAAazM,EAAY/vB,MAAA,gCACzBu2N,eAAA/5L,OAAgBzM,EAAY/vB,MAAA,yBAC5Bw2N,aAAAh6L,OAAczM,EAAY/vB,MAAA,uBAC1BmrD,OAAA3uB,OAAQzM,EAAY/vB,MAAA,wBACpBy2N,YAAAj6L,OAAazM,EAAY/vB,MAAA,8BACzB49B,YAAApB,OAAazM,EAAY/vB,MAAA,yBACzB0nF,UAAAlrD,GAAAA,OAAczM,EAAY/vB,MAAA,2BAI5B02N,iBAAkB,CAChBC,YAAAn6L,OAAazM,EAAY/vB,MAAA,0BACzB42N,cAAAp6L,OAAezM,EAAY/vB,MAAA,uBAC3Bg0B,SAAAwI,OAAUzM,EAAY/vB,MAAA,uBACtB81D,WAAAt5B,OAAYzM,EAAY/vB,MAAA,8BACxB62N,cAAAr6L,OAAezM,EAAY/vB,MAAA,wBAC3BqxB,YAAAmL,OAAazM,EAAY/vB,MAAA,qBACzB82N,cAAe,CACbC,OAAAv6L,OAAQzM,EAAY/vB,MAAA,mBACpBg3N,KAAAx6L,GAAAA,OAASzM,EAAY/vB,MAAA,qBAEvBi3N,cAAAz6L,OAAezM,EAAY/vB,MAAA,6BAC3Bk3N,YAAA16L,GAAAA,OAAgBzM,EAAY/vB,MAAA,wBAI9Bm3N,qBAAsB,CACpB55L,YAAAf,OAAazM,EAAY/vB,MAAA,yBACzBo9B,YAAAZ,OAAazM,EAAY/vB,MAAA,yBACzBo3N,UAAA56L,GAAAA,OAAczM,EAAY/vB,MAAA,uBAI5Bq3N,mBAAoB,CAClB1lM,cAAA6K,OAAezM,EAAY/vB,MAAA,4BAC3BksC,SAAA1P,OAAUzM,EAAY/vB,MAAA,sBACtBwwB,QAAAgM,OAASzM,EAAY/vB,MAAA,uBACrBs3N,gBAAA96L,OAAiBzM,EAAY/vB,MAAA,8BAC7BoB,UAAAo7B,OAAWzM,EAAY/vB,MAAA,yBACvBmoL,SAAA3rJ,OAAUzM,EAAY/vB,MAAA,4BACtBu3N,iBAAA/6L,OAAkBzM,EAAY/vB,MAAA,kCAC9Bw3N,gBAAAh7L,OAAiBzM,EAAY/vB,MAAA,oCAC7By3N,SAAAj7L,GAAAA,OAAazM,EAAY/vB,MAAA,6BAI3B03N,qBAAAl7L,OAAsBzM,EAAY/vB,MAAA,yBAClC23N,gBAAAn7L,OAAiBzM,EAAY/vB,MAAA,aAC7B43N,kBAAAp7L,OAAmBzM,EAAY/vB,MAAA,eAC/B63N,mBAAAr7L,OAAoBzM,EAAY/vB,MAAA,iBAGhC83N,iBAAkB,CAChB9tE,OAAAxtH,OAAQzM,EAAY/vB,MAAA,oBACpB+3N,aAAAv7L,OAAczM,EAAY/vB,MAAA,4BAC1BwwB,QAAAgM,OAASzM,EAAY/vB,MAAA,wBACrBg4N,SAAAx7L,GAAAA,OAAazM,EAAY/vB,MAAA,2BAI3Bi4N,sBAAuB,CACrBC,gBAAA17L,OAAiBzM,EAAY/vB,MAAA,yBAC7Bm4N,uBAAA37L,OAAwBzM,EAAY/vB,MAAA,iCACpCo4N,gBAAA57L,OAAiBzM,EAAY/vB,MAAA,yBAC7B2lC,UAAAnJ,OAAWzM,EAAY/vB,MAAA,4BACvB49C,SAAAphB,OAAUzM,EAAY/vB,MAAA,gCACtBq4N,UAAA77L,OAAWzM,EAAY/vB,MAAA,iCACvB6mH,YAAArqF,OAAazM,EAAY/vB,MAAA,mCACzBs4N,WAAA97L,GAAAA,OAAezM,EAAY/vB,MAAA,0BAG7Bu4N,qBAAsB,CACpB9+J,UAAAj9B,OAAWzM,EAAY/vB,MAAA,iCACvByvM,OAAAjzK,GAAAA,OAAWzM,EAAY/vB,MAAA,kCAGzBw4N,oBAAAh8L,OAAqBzM,EAAY/vB,MAAA,uBACjCy4N,kBAAAj8L,GAAAA,OAAsBzM,EAAY/vB,MAAA,wBAItC,gOC1KA,IAAA04N,GAAezhL,kBAAgB,CAC7Br4C,KAAM,YAENgI,MAAO,CAEL0d,QAAS,CACP7hB,KAAM,CAAC9C,OAAQc,WAGjB+tB,QAAS,CACP/rB,KAAM,CAAC9C,OAAQc,WAGjBk4N,eAAgB,CACdl2N,KAAM,CAAC9C,OAAQC,OAAQa,WAGzB+8D,UAAW79D,OAEXwwB,OAAQ,CAACxwB,OAAQc,UAEjB2sK,aAActtK,OACdssC,OAAQxsC,OACRy1E,iBAAkB11E,OAClBowB,YAAa,CACXttB,KAAM9C,OACN6uB,QAAS,MAIb0oB,MAAAA,SAAMtwC,GACJ,IAAMpG,EAAO+6B,EAAAA,MAGPq9L,EAAOr9L,OAAI,GACXs9L,EAAat9L,OAAI,GAEjBu9L,EAAkBr6M,EAAAA,UAAS,WAAA,MAAM,CAAA+d,GAAAA,OAClC51B,EAAMmpB,YAAAyM,oBAAAA,GAAAA,OACN51B,EAAMmpB,YACV,sBAEKgpM,EAAyBt6M,EAAAA,UAA2C,WAAA,MAAM,CAAA,GAAA+d,OAC3E51B,EAAMmpB,YACTnpB,4BAAAA,EAAMyuE,qBAGR3pC,EAAAA,WAAU,WACGmtL,EAAA74N,MAAQopC,GAAe5oC,EAAKR,MACzC,IAEAw+B,EAAAA,WAAU,WACGq6L,EAAA74N,MAAQopC,GAAe5oC,EAAKR,MACzC,IAGA,IAYMg5N,EAAgBl9M,IAAS,SAAChe,GACnB,eAAXA,EAAE2E,KAPGjC,EAAKR,MALLQ,EAAKR,QACV44N,EAAK54N,OAAQ,KAYZ,IAEI,MAAA,CACL44N,KAAAA,EACAp4N,KAAAA,EACAq4N,WAAAA,EACAC,gBAAAA,EACAC,uBAAAA,EACAC,cAAAA,EACAxyI,oBAf0B,SAACj9D,GACtBA,IAAGqvM,EAAK54N,OAAQ,IAgBzB,EAEA07C,OAAS,WACP,IlnByB0B86B,EAA6BjuD,EAAeC,EAAexM,EACjF6I,EACAV,EAEAsE,EAEAC,EACAC,EAEAC,EknBlI+BC,EAgG7BowM,GlnByBoBziJ,EknBzBK/uE,KlnByBwB8gB,EknBzBlB,UlnByBiCC,EknBzBtB,UlnB0B5C3D,EAASD,GAAU5I,GACnBmI,EAAcD,GAAelI,GAI7B0M,EAAQpD,GAAekxD,EAAIjuD,EAF3BE,EAAW5D,EAAS,CAAEA,OAAAA,QAAW,GAGjC8D,EAAQrD,GAAekxD,EAAIhuD,EAAOC,GAElCG,EAAM5I,GAAQ0I,GAASC,EAAQD,EAC9B1I,GAAQ4I,GAAOzE,EAAcyE,GknBjC5Bo4D,EACJ3oC,EAAAK,YAAA,MAAA,CAAAnd,IAAA,OAAA+c,MAES7wC,KAAKqxN,gBACZj5J,aAAcp4D,KAAKuxN,cAAAl5J,aACLr4D,KAAKuxN,oBACZ,CACLt5I,aAAcj4E,KAAKoxN,WAAa,WAAa,SAC/C,CAECI,IAGD30M,EAAU,KACR8oJ,EAAe3lK,KAAK2lK,aACtB,GAAA3lK,KAAKoxN,YAAcpxN,KAAKmxN,KAAM,CAChC,IAAMM,mWAAShhL,CAAA,CACb5zB,QAAU7c,KAAKkxN,gBAA8B,WAAA,OAAMM,CAAA,EACnD9jJ,gBAAgB,EAChB/oC,OAAQ3kC,KAAK2kC,OACbjc,OAAQ1oB,KAAK0oB,OACbqtC,UAAW/1D,KAAK+1D,UAChB6X,iBAAkB+3F,SAAAA,EAAc/3F,iBAC5B5tE,KAAKsxN,uBAAuBv8L,OAAO4wI,EAAa/3F,kBAChD5tE,KAAKsxN,uBACT/iJ,gBAAiBvuE,KAAK++E,qBACnB4mF,GAEL9oJ,EAAA+zB,EAAAK,YAAA03H,GAAwB8oD,EA9HS,mBAAArwM,EA8HAm4D,IA9HA57B,oBAAAtlD,OAAAP,UAAAf,SAAAC,KAAAoqB,KAAAu8B,EAAAhhC,QAAAyE,GA8HAm4D,EAAA,CAAAxyD,QAAA,WAAA,MAAA,CAAAwyD,EAAA,GACnC,MACY18D,EAAA08D,EAEL,OAAA18D,CACT,ukBC9Hc,SAAA+3C,GAAYz2C,EAA8BokI,EAA0BpoJ,GAClF,IAAMijB,EAAS,CAAEmlI,IAAAA,EAAKmvE,SAAUv3N,GAC5B,OAAA4B,EAAWwmJ,EAAIh2H,OACVg2H,EAAIh2H,MAAMxO,EAAAA,EAAGX,GAElB3F,GAAS8qI,EAAIh2H,QAAUpO,EAAMokI,EAAIh2H,OAC5BpO,EAAMokI,EAAIh2H,OAAOnP,GAEtBrhB,EAAWwmJ,EAAItuG,SAEfsuG,EAAItuG,OAAOl2B,IAAG0yB,GAAAA,GAAA,CAAA,EACTrzB,GAAA,GAAA,CACHpiB,KAAM,QACN0oD,IAAK,CAAC,EACNvW,UAAU,MAITo1G,EAAIh2H,KACb,CAEA,SAAwBolM,GAAexyN,GACrC,IAAAyyN,EAAiDlG,KAAzCuD,EAAA2C,EAAA3C,iBAAkBW,EAAmBgC,EAAnBhC,mBAEpBiC,EAAoB76M,EAAAA,UAAS,WAAA,OAAMo0M,GAAuBjsN,EAAMwpN,YAEhEmJ,EAAS96M,EAAAA,UAAS,WAAA,OH8BA2xM,EG9BgBxpN,EAAMwpN,QH+BxCrD,EAAO,SAACx6F,EAAyBinG,GAGrC,IAHyE,IAAAC,EACrEC,EAA8B,GAC9Bh1M,EAA6B,GACxBjlB,EAAI,EAAGy4B,EAAMq6F,EAAM10H,OAAQ4B,EAAIy4B,EAAKz4B,IAAK,CAAA,IAAAopF,EAC1CzjE,EAAOmtG,EAAM9yH,GACb85N,EAAS,CAACn0M,GACJs0M,EAAAA,EAAUl9L,OAAO+8L,GACzBn0M,iBAAAyjE,EAAAzjE,EAAMV,uBAANmkE,EAAgBhrF,SACP6mB,EAAAA,EAAS8X,OAAOpX,EAAKV,UAEpC,CAKO,eAJP+0M,EAAI/0M,SAAA+0M,OAAAA,EAAU57N,QACZkvN,EAAKroM,EAAU80M,GAEjBA,EAAOxvN,KAAK0vN,GACLA,GAGT3M,EAAKqD,EADD33L,EAAgC,IAE7BA,EAAKg3B,UApBP,IAAmB2gK,EAClBrD,EAiBFt0L,KG/CEkhM,EAAmBl7M,EAAAA,UAAS,WAAA,OAAM86M,EAAOv5N,MAAMnC,OAAS,KA+CvD,MAAA,CACL07N,OAAAA,EACAI,iBAAAA,EACAL,kBAAAA,EACAM,qBAjD2B,SAAvBp2L,EAEJwmH,EACAmvE,EACAU,EACA1pM,EACAorE,GAIG,IA1Ce1yE,EA0Cf4a,EAAAhgB,GAAA+f,EAAA,GATFxP,EAAOyP,EAAA,GAAApS,EAAAoS,EAAA,GAAUnS,EAAUmS,EAAA,GAUtB6D,EAAUznC,EAAAA,KACb62N,EAAiBC,SAAWtlM,GAC5BgmM,EAAmB1lM,WAAaL,GAE7BhN,EAAU9gB,EAAWq2N,GAAiBA,EAAcr0M,EAAAA,EAAG,CAAEwkI,IAAAA,EAAKmvE,SAAAA,SAAc,EAC5EW,OAA+B,IAAlBD,EAA8BzxM,QAAQyxM,GAAiBzxM,QAAQ4hI,EAAI7oG,UACtF,OAAA9I,EAAAA,YAAA,MAAA,CAAAC,MACchR,+BACEovL,EAAiB1iM,OAAA,CAC1B8lM,EACCzhL,EAAAK,YAAAggL,GAAA,CAAAl7J,UAAA,SAAArtC,OAEUvpB,EAAMupB,SAAWA,EAAS,WAAA,OAAMA,CAAS,OAAA,GAAAwoM,eACjCr0M,GAAY,WAAA,OAAMA,CAClC,EAAA8oJ,aAAuC,WAAzB/tK,EAAOw6N,GAA6BA,OAAgB,EAClE9pM,YAAawrE,aAAAA,EAAAA,EAAOxrE,YACpBslD,iBAAkBkmB,aAAO,EAAPA,EAAOw+H,2BA3DjBlxM,EA6DPmL,EA7DO,mBAAAnL,GAAAu8B,oBAAAtlD,OAAAP,UAAAf,SAAAC,KAAAoqB,KAAAu8B,EAAAhhC,QAAAyE,GA6DPmL,6BAAAA,iCAGGA,IAEP5L,QAAQiJ,GAAYC,+BACP+lM,EAAmBI,UAC5BpmM,CAAAA,EACAC,SAcf,gOC1EA,SAAwB0oM,GAAgBn1M,GAahC,IAaFo1M,EACAC,EAbFC,EAQEt1M,EARFs1M,gBACAC,EAOEv1M,EAPFu1M,gBACAC,EAMEx1M,EANFw1M,iBACAC,EAKEz1M,EALFy1M,eACAC,EAIE11M,EAJF01M,kBACAC,EAGE31M,EAHF21M,iBACAC,EAEE51M,EAFF41M,6BACA7I,EACE/sM,EADF+sM,qBAEI8I,EAAgBn/L,EAAAA,MAChBo/L,EAAep/L,MAA+B,CAAA,GAC9Cy3L,EAAcz3L,MAAI,IAIxBmQ,EAAAA,WAAU,WACF,IAAAkvL,EAAkC,oBAAbr0L,SACL0zL,EAAAW,EAAcr0L,SAASs0L,cAAgB,KACzCX,EAAAU,EAAcr0L,SAASu0L,YAAc,IAC3D,IAEA,IAAMC,EAAyB,SAACxoG,EAAqC3wH,EAAea,GAElF,IADA,IAAIhD,EAAImC,EACD2wH,EAAM9yH,KAA6B,IAAvB8yH,EAAM9yH,GAAGyxN,WACb,SAATzuN,EACGhD,GAAA,EAEAA,GAAA,EAGT,OAAO8yH,EAAM9yH,IAITu7N,EAAkB,SAACzoG,EAAqCzxG,GACvDyxG,IACLygG,EAAYhzN,MAAQuyH,EACdA,EAAAn7G,SAAQ,SAACrZ,EAAG6D,GAChB,IAAMq5N,EAAWF,EAAuBxoG,EAAO3wH,EAAQ,EAAG,QACpDs5N,EAAWH,EAAuBxoG,EAAO3wH,EAAQ,EAAG,QACpDu5N,EAAgBr6M,EAAS65M,EAAa36N,MAAM8gB,EAAOs6M,QAAQ9rK,KAAO4rK,EAClEG,EAAgBv6M,EAAS65M,EAAa36N,MAAM8gB,EAAOs6M,QAAQt3M,KAAOm3M,EAClE3rK,EAAiB,IAAV1tD,EAAcu5N,EAAgBF,EACrCn3M,EAAOliB,IAAU2wH,EAAM10H,OAAS,EAAIw9N,EAAgBH,EAC7CP,EAAA36N,MAAMjC,EAAEq9N,QAAU,CAC7B9rK,KAAAA,EACAxrC,KAAAA,EACApD,QAAS,CACP46M,YAAaP,EAAuBxoG,EAAO3wH,EAAQ,EAAG,QACtD25N,YAAaR,EAAuBxoG,EAAO3wH,EAAQ,EAAG,UAG1Co5N,EAAAj9N,EAAE2mB,SAAU3mB,EAC9B,MAGIy9N,EAAmB,CACvBp4C,YAAY,EACZq4C,YAAa,KACbC,cAAe,EAEfC,UAAW,QAGPC,EAAkBngL,EAAAA,SAAS,CAC/BohB,QAAS,OACTptB,OAAQ,OACRlF,KAAM,OACNC,OAAQ,MAIJqxL,EAAsB,SAAC7xE,GAAA,MAAkD,UAAdA,EAAIkrE,OAAqBmF,EAAiB5vL,KAAA,EA0CrGqxL,EAAoB,SAACC,GAA0C,IAAAC,EAAAC,EAC7DC,EAAeh8M,GAAS67M,EAAUr5I,UAAYq5I,EAAUr5I,SAAW5/E,SAASi5N,EAAUr5I,UAAY,IAAK,IACtG,MAAA,CACLy5I,YAAal1N,KAAKC,KAAsB80N,QAAlBA,EAAAD,EAAU1nJ,kBAAQ2nJ,SAAlBA,EAAkBt5I,WAxIpB,GAwImDw5I,GACvEE,aAAuB,QAAVH,EAAAF,EAAU1nJ,cAAA,IAAA4nJ,OAAA,EAAVA,EAAkBp/I,WAxIX,MA8MlBw/I,EAAqB,SACzBryE,EACAsyE,EACAC,EACAC,GAEA,OAAAF,EAxE0B,SAC1BtyE,EACAsyE,EACAC,EACAC,GAEM,IAAAC,EAAgBF,EAAgB9xL,MAAQ+xL,EAAejyL,KACvDmyL,EAAUH,EAAgBhyL,KAAOiyL,EAAejyL,KAChDwxL,EAA2C,SAA/BP,EAAiBG,UAAuB3xE,EAAMsyE,EAChEK,EAAqCb,EAAkBC,GAChD,MAAA,CACLU,cAAAA,EACAG,kBAAmBF,EAHbC,EAAAR,YAINU,kBAAmBH,EAJYC,EAAZP,aAgEjBU,CAAoB9yE,EAAKsyE,EAAeC,EAAiBC,GAtC9B,SAACD,EAA0BC,GACpD,IAAAC,EAAgBF,EAAgBhyL,KAAOiyL,EAAejyL,KACtDmyL,EAAUH,EAAgBhyL,KAAOiyL,EAAejyL,KAC/C,MAAA,CACLkyL,cAAAA,EACAG,kBAAmBF,EACnBG,kBAAmBH,GAiCjBK,CAAyBR,EAAiBC,EAAc,EA0GvD,MAAA,CACL9B,cAAAA,EACAkB,gBAAAA,EACAoB,kBAtOwB,SAACl/N,EAAeksJ,GAExC,GAAK0wE,EAAc16N,QAASw7N,EAAiBp4C,YAAetlL,EAAE+hC,OAA9D,CACA,IAAMA,EAAU/hC,EAAE+hC,OAAuB23B,QAAQ,MAE3C4jK,EAASv7L,EAAOH,aAAa,eAC/B,GAACszL,EAAYhzN,MAAMohE,MAAK,SAAC7iE,GAAM,OAAAA,EAAE68N,SAAWA,CAAM,IAAlD,CACE,IAI+B6B,EAJ/BV,EAAkB18L,EAAOuK,wBACzB8yL,EAAgBX,EAAgB9xL,MAAQ3sC,EAAEy2M,OAnGnC,EAoGP4oB,EAAer/N,EAAEy2M,MAAQgoB,EAAgBhyL,MApGlC,EAqGP6yL,EAAiBvB,EAAoB7xE,GAC3C,GAAIkzE,GAAiBE,GAEnB,GADsC,QAAhCH,EAAejzE,EAAIknE,iBAAa,IAAA+L,GAAAA,EACpB,CAChBp9L,EAAOmO,MAAMyrB,OAASyjK,GAAkBE,GAAkBD,EAAgB,aAAe,GACzF,IAAM5uE,EAAa2uE,IAAkBE,GAAoBA,GAAkBD,EAG3E,OAFiB3B,EAAAC,YAAcltE,EAAY1uH,EAAUA,EAAO42C,wBAC5D+kJ,EAAiBG,UAAY,OAE/B,UACSwB,EAAc,CACvB,IAAME,EAASx9L,EAAOy9L,uBACtB,GAAID,EAAQ,CAAA,IAAAE,EAAAC,EACJlB,EAAgD,QAAhCiB,EAAA5C,EAAa36N,MAAMgqJ,EAAIoxE,eAAvBmC,IAAgCA,OAAhCA,EAAAA,EAAgCjuK,KAEtD,GADiDkuK,QAA3CA,EAAelB,eAAAA,EAAepL,iBAAasM,IAAAA,GAAAA,EAK/C,OAHA39L,EAAOmO,MAAMyrB,OAAS,aACtB+hK,EAAiBC,YAAc4B,OAC/B7B,EAAiBG,UAAY,OAGjC,CACF,CAEA97L,EAAOmO,MAAMyrB,OAAS,GACtB+hK,EAAiBC,YAAc,KAC/BD,EAAiBG,UAAY,IA9B4B,CAJa,GAqOtE8B,kBA3GwB,SAAC3/N,EAAeksJ,EAAiCpoJ,GAAkB,IAAA87N,EAAAC,EAAAC,EAC3F,GAAKpC,EAAiBC,YAAtB,CACA,IAAM57L,EAAS27L,EAAiBC,YAC1Bc,EAAkB18L,EAAOuK,wBACzBoyL,EAAiCkB,QAAjCA,EAAiBtD,EAAgBp6N,aAAhB09N,IAAgBA,OAAhBA,EAAAA,EAAuBtzL,wBACxCyzL,EAAgD,QAAhCF,EAAAhD,EAAa36N,MAAMgqJ,EAAIoxE,eAAvBuC,IAAgCA,OAAhCA,EAAAA,EAAgC75M,KAChDw4M,EAAgD,QAAhCsB,EAAAjD,EAAa36N,MAAMgqJ,EAAIoxE,eAAvBwC,IAAgCA,OAAhCA,EAAAA,EAAgCtuK,KACtD9rB,EAAgEq4L,EAAoB7xE,GAnEpD,SAChCnqH,EACAmqH,EACAsyE,EACAC,EACAC,GAEM,IAAAC,EAAgBF,EAAgBhyL,KAAOiyL,EAAejyL,KACtDwxL,EAAYl8L,EAAOkP,QAAQ+uL,SAAW9zE,EAAIoxE,OAASpxE,EAAMsyE,EACzDI,EAAUH,EAAgBhyL,KAAOiyL,EAAejyL,KACtDwzL,EAAqCjC,EAAkBC,GAA/CI,EAAA4B,EAAA5B,YAAaC,EAAY2B,EAAZ3B,YACd,MAAA,CACLK,cAAAA,EACAG,kBAAmBF,GAAWH,EAAgBhtL,MAAQ6sL,GACtDS,kBAAmBH,GAAWH,EAAgBhtL,MAAQ4sL,IAsDpD6B,CAA0Bn+L,EAAQmqH,EAAK6zE,EAAetB,EAAiBC,GACvEH,EAAmBryE,EAAK6zE,EAAetB,EAAiBC,GAFpDC,EAAej5L,EAAfi5L,cAAeG,EAAAp5L,EAAAo5L,kBAAmBC,IAAAA,kBAS1C,GAJArB,EAAiBp4C,YAAa,EAC9Bo4C,EAAiBE,cAAgB59N,EAAE+sB,EAG/B6vM,SAAAA,EAAe16N,MAAO,CACxB47N,EAAgB/+J,QAAU,QAC1B++J,EAAgBnsL,OAASjT,GAAAA,OAAGggM,EAAehyL,OAAS+xL,EAAgBjyL,IAAA,MACpEsxL,EAAgBrxL,eAAUkyL,EAAA,MAC1B,IAAM37M,EAASs5M,EAAgBp6N,MAAM05E,cAActvC,wBACnDwxL,EAAgBpxL,OAAShO,GAAAA,OAAG1b,EAAO0pB,OAASgyL,EAAehyL,OAAA,KAC7D,CAGA,IAAMg8E,EAAY,WAAM,IAAAy3G,EACtB,GAAKzC,EAAiBp4C,WAAtB,CACA,IAAM86C,EAAezB,EAAgB5mL,WAAW+lL,EAAgBrxL,OAAS,EAOnE4zL,EAAc7D,EAAe,aAC7B8D,EAA6C,QAAhCH,EAAAtD,EAAa36N,MAAMgqJ,EAAIoxE,eAAvB6C,IAAgCA,OAAhCA,EAAAA,EAAgCv9M,QACnD,GAAK09M,EAAL,CACA,IAAMC,EAAgD,SAA/B7C,EAAiBG,UAAuByC,EAAW7C,YAAc6C,EAAW9C,YAE7FgD,mWAAApmL,CAAA,CAAA,EAAsBimL,GAEtBI,GAAkC,IAAlBv0E,EAAIknE,UAAsBlnE,EAAMq0E,EAGhDG,EArEwB,SAChCF,EACAT,EACA1uJ,EACAvtE,GAEA,IAAI68N,GAAkB,EACtB,GAAIZ,EAAe,CACjB,IAAAa,EAAqC5C,EAAkB+B,GAA/C1B,EAAAuC,EAAAvC,YAAaC,EAAYsC,EAAZtC,YACfuC,EAAqBL,EAAeT,EAAczC,QAAUjsJ,EAChDsvJ,EAAAE,EAAqBxC,GAAewC,EAAqBvC,CAC7E,CACA,QAASqC,GAAmBtE,EAAgBn6N,OAAS4B,IAAUoxN,EAAYhzN,MAAMnC,OAAS,GAyDvD+gO,CAA0BN,EADX,SAA/B9C,EAAiBG,UAAuByC,EAAW7C,YAAcvxE,EACGk0E,EAAct8N,GAEhE,SAA/B45N,EAAiBG,UAEfE,EAAoB7xE,GAElBnqH,EAAOkP,QAAQ+uL,SAAW9zE,EAAIoxE,OAChCkD,EAAeT,EAAczC,SAAW8C,EAExCI,EAAeC,EAAcnD,SAAW8C,GAI1CI,EAAeC,EAAcnD,SAAW8C,EACpCM,IACFF,EAAeT,EAAczC,SAAW8C,IAGJ,SAA/B1C,EAAiBG,YACtB6C,IACFF,EAAeC,EAAcnD,SAAW8C,GAExB5B,IAAAgC,EAAehC,EAAclB,SAAW8C,IAE5D3D,EAAkB+D,GACZ,IAAAO,EArGiB,SAACV,GAC1B,IAAIU,EAAa,EAIV,OAHK7L,EAAAhzN,MAAMoX,SAAQ,SAAC4yI,GACzB60E,GAAcV,EAAYn0E,EAAIoxE,OAChC,IACOyD,EAgGcC,CAAmBR,GACrB9D,EAAAvzN,KAAKomB,MAAMwxM,IACCpE,IAG7Be,EAAiBp4C,YAAa,EAC9Bo4C,EAAiBC,YAAc,KAC/BD,EAAiBG,UAAY,KAC7B97L,EAAOmO,MAAMyrB,OAAS,GACtBmiK,EAAgB/+J,QAAU,OAC1B++J,EAAgBrxL,KAAO,IACnB5D,GAAAJ,SAAU,UAAWigF,GACrB7/E,GAAAJ,SAAU,YAAau/E,GAC3Bv/E,SAASs0L,cAAgBZ,EACzB1zL,SAASu0L,YAAcZ,EACAtI,SAAAA,EAAA,CAAEmN,aAAcT,GAhDtB,CAViB,GA8D9Bx4G,EAAa,SAAChoH,GAClB,GAAI09N,EAAiBp4C,WAAY,CAC/B,IAAM74I,EAAOkyL,EAAgB3+N,EAAE+sB,EAAI2wM,EAAiBE,cACpCE,EAAArxL,KAAA/N,GAAAA,OAAUv1B,KAAK4U,IAAI5U,KAAKC,IAAIqjC,EAAMqyL,GAAoBC,GAAiB,KACzF,GAGCv2L,GAAAC,SAAU,UAAWigF,GACrBlgF,GAAAC,SAAU,YAAau/E,GAG1Bv/E,SAASs0L,cAAgB,WAAA,OAAM,CAAA,EAC/Bt0L,SAASu0L,YAAc,WAAA,OAAM,CAAA,CAnGM,GA2GnCE,gBAAAA,EAEJ,okBC7TO,SAASgE,GACdh1E,EACApoJ,EACAq9N,EACAxJ,GAEA,IAAMyJ,EAAWD,aAAAA,EAAAA,EAAwB3zN,IAAI0+I,EAAIoxE,QAAUx5N,GAC3D,IAAKs9N,EAAU,MAAO,GACtB,IAAMC,EAAYt/N,EAAAA,EAAAA,EAAAA,EACf41N,CAAAA,EAAAA,EAAqBlrL,KAAqB,SAAdy/G,EAAIkrE,OAChCO,EAAqBhrL,MAAsB,UAAdu/G,EAAIkrE,OACjCO,EAAqBC,SAAyB,SAAd1rE,EAAIkrE,OAAoBgK,EAASE,kBACjE3J,EAAqBE,WAA2B,UAAd3rE,EAAIkrE,OAAqBgK,EAASG,oBAMhE,MAAA,CACLrxL,MALe,CACfzD,KAAoB,SAAdy/G,EAAIkrE,MAAmB,GAAA14L,OAAG0iM,EAAS30L,KAAW,WAAA,EACpDE,MAAqB,UAAdu/G,EAAIkrE,MAAoB14L,GAAAA,OAAG0iM,EAASz0L,iBAAY,GAIvDnD,QAAS63L,EAEb,CAkCA,SAAwBG,GACtB14N,EACA83B,EACA6gM,EACA9uK,GAEM,IAAA4nB,EAaFv9B,SAAOl0C,GAZTwpN,EAAA/3I,EAAA+3I,QACA5lK,EAAA6tB,EAAA7tB,YACAgnK,EAAAn5I,EAAAm5I,kBACAh/K,EAAA6lC,EAAA7lC,UACA+9K,EAAAl4I,EAAAk4I,aACAS,EAAA34I,EAAA24I,YACAnuI,EAAAxK,EAAAwK,UACAguI,EAAAx4I,EAAAw4I,iBACAH,EAAAr4I,EAAAq4I,oBACAzmK,EAAAouB,EAAApuB,SACAinK,EAAA74I,EAAA64I,UACAhB,EAAA73I,EAAA63I,uBAEI3kN,EAAOgwB,MAAoB,IAC3BikM,EAAWjkM,EAAAA,MACX6+L,EAAkB7+L,EAAAA,MAClBkkM,EAAgBlkM,OAAI,GACpB4+L,EAAkB5+L,OAAI,GACtBmkM,EAAcnkM,EAAAA,MAEdokM,EAAiBpkM,MAAI,GAErB0jM,EAAyB1jM,EAAAA,IAAgC,IAAA5vB,KACzD0uN,EAAmB5+K,EAAAA,SAAS,CAChClR,MAAM,EACNE,OAAO,IAGHm1L,EAAyBrkM,EAAAA,IAAmC,CAAEgP,KAAM,EAAGD,IAAK,IAC5Eu0L,EAAatjM,MAAI,GACjBskM,EAAgBtkM,MAAI,GACpB4iM,EAAc5iM,MAAkC,CAAA,GAEhDukM,EAAgBvkM,OAAI,GACpBwkM,EAAqBxkM,OAAI,GACzBykM,EAAoBzkM,OAAI,GAExB0kM,EAAkBxhN,EAAAA,UAAS,WAAA,IAAA+kB,EAAA08L,EAAA,eAAA18L,UAAA08L,EAAMhQ,EAAuBlwN,aAAS,IAAAkgO,EAAAA,EAAAhP,EAAUlxN,yBAG3EmgO,EAAqB1hN,EAAAA,UACzB,WAAA,IAAAm3G,EAAA,QAEIhvH,EAAMiqN,kBACNjqN,EAAM8pN,qBACN9pN,EAAMkqN,+BACiB,aAAjBl7F,QAANA,EAAAhvH,EAAM+qC,cAANikF,IAAMA,OAANA,EAAAA,EAAcnzH,MAAS,IAQpB,SAAA29N,EACPhQ,GAMA,IADA,IAJAvkN,EAAAlG,UAAA9H,eAAAkD,IAAA4E,UAAA,GAAAA,UAA8B,GAAI,IAAAgG,IAClC00N,EAAA16N,UAAA9H,OAAA,QAAAkD,IAAA4E,UAAA,GAAAA,UAAA,GAAkC,GAClC6xG,EAAQ7xG,UAAA9H,OAAA,QAAAkD,IAAA4E,UAAA,GAAAA,UAAA,GAAA,EACRmb,EACAnb,UAAA9H,OAAA8H,EAAAA,kBAAA5E,EACStB,EAAI,EAAGy4B,EAAMk4L,EAAQvyN,OAAQ4B,EAAIy4B,EAAKz4B,IAAK,CAAA,IAAAgzN,EAC5CzoE,EAAMomE,EAAQ3wN,GAChB,CAAC,OAAQ,SAAS6e,SAAS0rI,EAAIkrE,SACjC4K,EAAc9/N,OAAQ,GAEN,UAAdgqJ,EAAIkrE,QACN6K,EAAmB//N,OAAQ,GAEX,SAAdgqJ,EAAIkrE,QACN8K,EAAkBhgO,OAAQ,GAEtB,IAAAyE,EAAMulJ,EAAIoxE,QAAU37N,EACpB6gO,EAA8B,CAAEt2E,IAAAA,EAAKlpI,OAAAA,EAAQlf,MAAOnC,GACtDoM,EAAAZ,IAAIxG,EAAK67N,WACT7N,EAAAzoE,EAAItlI,gBAAJ+tM,OAAAA,EAAc50N,QAChBuiO,EAAap2E,EAAItlI,SAAU7Y,EAAKw0N,EAAY7oH,EAAQ,EAAG8oH,GAErDD,EAAW7oH,GACF6oH,EAAA7oH,GAAOxtG,KAAKs2N,GAGZD,EAAA7oH,GAAS,CAAC8oH,EAEzB,CACO,MAAA,CACLC,cAAe10N,EACfw0N,WAAAA,EAEJ,CAEA,IA+HIG,EA/HEC,EAAkB,SACtBrQ,EACAsQ,GAGA,IADG,IADH5/M,EAAAnb,UAAA9H,OAAA,QAAAkD,IAAA4E,UAAA,GAAAA,UAAA,GAA0B,CAAA,EAEjBlG,EAAI,EAAGy4B,EAAMk4L,EAAQvyN,OAAQ4B,EAAIy4B,EAAKz4B,IAAK,CAAA,IAAAwzN,EAC5CjpE,EAAMomE,EAAQ3wN,GACpB,GAAkB,UAAduqJ,EAAIkrE,MAAmB,OAG3B,IAFA,IAAMyL,EAAUD,EAAiBp1N,IAAI0+I,EAAIoxE,QAAU37N,GAC/CmhO,EAAenhO,EAAI,EAChBmhO,GAAgB,GAAqC,SAAhCxQ,EAAQwQ,GAAc1L,OAChC0L,GAAA,EAElB,IAAMC,EAAUzQ,EAAQwQ,GAElBjZ,EAAqB,IAANloN,IAAUqhB,eAAAA,EAAQypB,OAAY,EAC7Cu2L,EAAcJ,EAAiBp1N,KAAIu1N,aAAS,EAATA,EAASzF,SAAU37N,EAAI,GAC5DkhO,IACFA,EAAQp2L,OAAQu2L,aAAAA,EAAAA,EAAav2L,OAAQo9K,KAAiBmZ,aAAAA,EAAAA,EAAavxL,QAAS,YAG1E0jL,EAAAjpE,EAAItlI,gBAAJuuM,OAAAA,EAAcp1N,QACA4iO,EAAAz2E,EAAItlI,SAAUg8M,EAAkBC,EAEpD,GAGII,EAAmB,SACvB3Q,EACAsQ,GAGA,IADG,IADH5/M,EAAAnb,UAAA9H,OAAA,QAAAkD,IAAA4E,UAAA,GAAAA,UAAA,GAA0B,CAAA,EAEjBlG,EAAI2wN,EAAQvyN,OAAS,EAAG4B,GAAK,EAAGA,IAAK,CAAA,IAAAuhO,EACtCh3E,EAAMomE,EAAQ3wN,GACpB,GAAkB,SAAduqJ,EAAIkrE,MAAkB,OAG1B,IAFA,IAAMyL,EAAUD,EAAiBp1N,IAAI0+I,EAAIoxE,QAAU37N,GAC/CmhO,EAAenhO,EAAI,EAChBmhO,EAAexQ,EAAQvyN,QAA0C,UAAhCuyN,EAAQwQ,GAAc1L,OAC5C0L,GAAA,EAElB,IAAMC,EAAUzQ,EAAQwQ,GAElBjZ,EAAeloN,IAAM2wN,EAAQvyN,OAAS,IAAIijB,aAAAA,EAAAA,EAAQ2pB,QAAa,EAC/Dq2L,EAAcJ,EAAiBp1N,KAAIu1N,aAAS,EAATA,EAASzF,SAAU37N,EAAI,GAC5DkhO,IACFA,EAAQl2L,QAASq2L,aAAAA,EAAAA,EAAar2L,QAASk9K,KAAiBmZ,aAAAA,EAAAA,EAAavxL,QAAS,YAG5EyxL,EAAAh3E,EAAItlI,gBAAJs8M,OAAAA,EAAcnjO,QACCkjO,EAAA/2E,EAAItlI,SAAUg8M,EAAkBC,EAErD,GA8DIM,EAA+B,SAACC,EAA8BR,GAElE,GADAzB,EAAuBj/N,MAAM+K,QACxBm2N,EAAL,CACM,IAAAC,EAAQD,EAAgBr5L,cAAc,SAEnCs5L,GA/DiB,SAACC,EAAwBV,GACnD,GAAKU,EAAL,CACA,IAAA,IAAS3hO,EAAI,EAAGy4B,EAAMkpM,EAAOvjO,OAAQ4B,EAAIy4B,EAAKz4B,IAE5C,IADM,IAAA85N,EAAS6H,EAAO3hO,GAAGilB,SAChB6iB,EAAI,EAAG85L,EAAQ9H,EAAO17N,OAAQ0pC,EAAI85L,EAAO95L,IAAK,CAAA,IAAA+5L,EAC/CC,EAAKhI,EAAOhyL,GACZ6zL,EAASmG,EAAGxyL,QAAQ+uL,OACrB1C,GACHr6L,GAAS,gBAAA,GAAAvE,OAAoB+kM,EAAGC,UAAwE,kEAE1G,IAAMr5L,EAAMu4L,EAAiBp1N,IAAI8vN,GAAU7zL,GACvCY,iBAAAm5L,EAAAn5L,EAAK6hH,kBAALs3E,EAAUpM,OACKwL,EAAAz1N,IAAImwN,EAAQljL,GAAAA,GAAA,GAAK/P,GAAA,GAAA,CAAKoH,MAAOgyL,EAAGn3L,wBAAwBmF,QAE7E,CAEckxL,EAAArQ,EAAQpwN,MAAO0gO,GACdK,EAAA3Q,EAAQpwN,MAAO0gO,EAhBnB,EA8DJe,CAAoBN,EAAMz8M,SAAUg8M,GAEvC,IAAAgB,EAAQR,EAAgBr5L,cAAc,SACtC85L,EAAQT,EAAgBr5L,cAAc,SAC5C65L,GA9C0B,SAC1BN,EACAV,EACAS,EACAQ,GAIA,IAFA,IAA4D3mK,EAAAv3C,GAApB+uB,EAAUxyC,OAAS,GAAC,GAArD4hO,EAAc5mK,EAAA,GAAA6mK,EAAe7mK,EAAA,GAC5BzvD,EAAwB3E,EAAxB2E,KAAAu2N,EAAwBl7N,EAAlByqN,OAAAA,OAAS,IAATyQ,EAAS,OACdriO,EAAI,EAAGA,EAAImiO,EAAcniO,IAAK,CACrC,IAAM03H,EAAKiqG,EAAO3hO,GACZsiO,EAAQz2N,GAAIC,EAAK9L,GAAI4xN,GACrB2Q,EAActB,EAAiBp1N,IAAIy2N,IAAU,CAAA,EAC7CE,EAAY32N,GAAIC,EAAK9L,EAAI,GAAI4xN,GAC7B6Q,EAAcxB,EAAiBp1N,IAAI22N,IAAc,CAAA,EACnDE,EAAgB,EACV,IAAN1iO,IACc0iO,GAAAhB,aAAAA,EAAAA,EAAO/2L,wBAAwBqF,SAAU,GAE3DuyL,EAAY13L,KAAO43L,EAAY53L,KAAO63L,IAAkBD,EAAYzyL,QAAU,GAC7DixL,EAAAz1N,IAAI82N,EAAO7pL,GAAAA,GAAA,GAAK8pL,GAAA,GAAA,CAAavyL,QAAQ0nF,aAAA,EAAAA,EAAI/sF,wBAAwBqF,SAAU,IAC9F,CACS,IAAA,IAAAhwC,EAAI8L,EAAK1N,OAAS,EAAG4B,GAAK8L,EAAK1N,OAASgkO,EAAiBpiO,IAAK,CAErE,IAAM03H,EAAKiqG,EAAOA,EAAOvjO,QAAU0N,EAAK1N,OAAS4B,IAC3CsiO,EAAQz2N,GAAIC,EAAK9L,GAAI4xN,GACrB2Q,EAActB,EAAiBp1N,IAAIy2N,IAAU,CAAA,EAC7CE,EAAY32N,GAAIC,EAAK9L,EAAI,GAAI4xN,GAC7B6Q,EAAcxB,EAAiBp1N,IAAI22N,IAAc,CAAA,EACnDE,EAAgB,EAChB1iO,IAAM8L,EAAK1N,OAAS,IACNskO,GAAAR,aAAAA,EAAAA,EAAOv3L,wBAAwBqF,SAAU,GAE3DuyL,EAAYx3L,QAAU03L,EAAY13L,QAAU23L,IAAkBD,EAAYzyL,QAAU,GACnEixL,EAAAz1N,IAAI82N,EAAO7pL,GAAAA,GAAA,GAAK8pL,GAAA,GAAA,CAAavyL,QAAQ0nF,aAAA,EAAAA,EAAI/sF,wBAAwBqF,SAAU,IAC9F,EAYS2yL,CAAoBV,EAAMh9M,SAAUg8M,EAAkBS,EAAOQ,GAEtE1C,EAAuBj/N,MAAQ0gO,CATT,GAalB2B,EAA0B,SAACxiM,EAAqB07D,GAChD,GAACukI,EAAc9/N,OAAU6/B,EAAzB,CACE,IAAE0L,EAAe1L,EAAf0L,WAER,GAAIi1L,IAAyBj1L,GAAgBgwD,GAAUA,EAAM+mI,gBAA7D,CACuB9B,EAAAj1L,EACvB,IAAMg3L,EAAc1iM,EAAO0J,YAAcgC,EAAa1L,EAAO4J,YACvD+4L,EAAaj3L,EAAa,EAC5B8uL,EAAiB9vL,OAASi4L,GAAcnI,EAAiB5vL,QAAU83L,IACtDlI,EAAA9vL,KAAOi4L,GAAcxC,EAAkBhgO,MACvCq6N,EAAA5vL,MAAQ83L,GAAexC,EAAmB//N,MANoB,CAH1C,GAkCjCyiO,EAAoB,WACxB,IAAAC,EAAsCtC,EAAahQ,EAAQpwN,OAAnDugO,EAAemC,EAAfnC,eAtBuB,SAACF,GAChC,IAAA,IAAS9hO,EAAI,EAAGA,EAAI8hO,EAAWxiO,OAAQU,IAErC,IADA,IAAMg0H,EAAQ8tG,EAAW9hO,GAChBkB,EAAI,EAAGy4B,EAAMq6F,EAAM10H,OAAQ4B,EAAIy4B,EAAKz4B,IAAK,CAChD,IAAMkjO,EAAapwG,EAAM9yH,GACnBmjO,EAAiBrwG,EAAM9yH,EAAI,GACzBqhB,EAAW6hN,EAAX7hN,SAC0BA,IAAUA,aAAQ,EAARA,EAAQs+M,oBACK,SAAzBuD,EAAW34E,IAAIkrE,OAAkD,UAA9B0N,eAAAA,EAAgB54E,IAAIkrE,SACrFyN,EAAWvD,kBAAmB,GAE1B,IAAAyD,EAAiBtwG,EAAM9yH,EAAI,KACGqhB,IAAUA,aAAQ,EAARA,EAAQu+M,sBACK,UAAzBsD,EAAW34E,IAAIkrE,OAAmD,WAA9B2N,eAAAA,EAAgB74E,IAAIkrE,SACxFyN,EAAWtD,oBAAqB,EAEpC,EAOFyD,CADuBJ,EAAArC,YAEjB,IAAArrL,EAAQj4B,YAAW,WAAM,IAAAgmN,GACzBjD,EAAc9/N,eAAA+iO,EAASvwL,EAAUxyC,aAAA,IAAA+iO,GAAVA,EAAiBllO,SACbojO,EAAA7G,EAAgBp6N,MAAOugO,GAEtDljN,aAAa23B,KACZ,GACH,OAAO,WACL33B,aAAa23B,KAIXguL,EAAoB,WAClB,IAAAhuL,EAAQj4B,YAAW,WACvB,GAAKq9M,EAAgBp6N,MAArB,CACAy/N,EAAcz/N,MAAQo6N,EAAgBp6N,MAAM6xC,aAAeuoL,EAAgBp6N,MAAMinE,aACjFkzJ,EAAgBn6N,MAAQo6N,EAAgBp6N,MAAMypC,YAAc2wL,EAAgBp6N,MAAMupC,YAC5E,IAAA6lI,EAAMgrD,EAAgBp6N,MAAMoqC,wBAClCw1L,EAAuB5/N,MAAQ,CAC7BsqC,IAAK8kI,EAAI9kI,IACTC,KAAM6kI,EAAI7kI,MAEZltB,aAAa23B,EARe,IAS3B,IAGCwlL,EAAmB,SAACjrL,GACpBswL,EAAc7/N,QAAUuvC,IAC5BswL,EAAc7/N,MAAQuvC,IAalB0zL,EAAsB,WAAM,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,UAEvBP,EAAAzyK,EAAAizK,mBAAmB1jO,oBAAsB,UAAzCkjO,EAA0B3uL,oBAAe,IAAA4uL,GAAzCA,EAAA1kO,KAAAykO,WACAE,EAAA3yK,EAAAkzK,yBAAyB3jO,oBAAsB,UAA/CojO,EAAgC7uL,oBAAe,IAAA8uL,GAA/CA,EAAA5kO,KAAA2kO,WACAE,EAAA7yK,EAAAmzK,kBAAkB5jO,oBAAsB,UAAxCsjO,EAAyB/uL,oBAAe,IAAAgvL,GAAxCA,EAAA9kO,KAAA6kO,WACAE,EAAA/yK,EAAAozK,qBAAqB7jO,oBAAsB,UAA3CwjO,EAA4BjvL,oBAAe,IAAAkvL,GAA3CA,EAAAhlO,KAAA+kO,IAGLM,EAAuB,SAAC1C,GAE5B,IADA,IAAM2C,EAAyC,CAAA,EACtCtkO,EAAI,EAAGy4B,EAAMkpM,EAAOvjO,OAAQ4B,EAAIy4B,EAAKz4B,IAG5C,IAFM,IAAA85N,EAAS6H,EAAO3hO,GAAGilB,SAEhB6iB,EAAI,EAAG85L,EAAQ9H,EAAO17N,OAAQ0pC,EAAI85L,EAAO95L,IAAK,CACrD,IAAMg6L,EAAKhI,EAAOhyL,GAETw8L,EADMxC,EAAGxyL,QAAQ+uL,QACPyD,EAAGn3L,wBAAwBmF,KAChD,CAEK,OAAAw0L,GAGHxJ,EAAoB,SAAC6G,GACzB,GAAIA,aAAkB4C,eAAgB,CACpC,GAAI/D,EAAgBjgO,MAAO,OACfm+N,EAAAn+N,MAAQ8jO,EAAqB1C,EAC3C,MACcjD,EAAAn+N,MAAQm+N,EAAYn+N,OAAS,CAAA,EAClCF,OAAAgL,QAAQs2N,GAAQhqN,SAAQ,SAAAwxD,GAAqB,IAAA7tB,EAAAt3B,GAAAmlD,EAAA,GAAnBwyJ,EAAArgL,EAAA,GAAQxL,EAAKwL,EAAA,GAC5CojL,EAAYn+N,MAAMo7N,GAAU7rL,CAC9B,IAEF,OAAO4uL,EAAYn+N,OAGfikO,EAA2B,WACzB,IAAAjvL,EAAQj4B,YAAW,WAAM,IAAAmnN,EAE7B,GAhDqB,WAAM,IAAAxG,EAAAyG,EACvBh6L,EAAuBuzL,QAAvBA,EAAOtD,EAAgBp6N,aAAhB09N,IAAgBA,OAAhBA,EAAAA,EAAuBtzL,wBACpC,GAAKD,EAAL,CAEA,IAAMi6L,EAAc3E,EAAcz/N,MAAQ2/N,EAAe3/N,MAAQ,EACjE6+N,EAAW7+N,MAAQmqC,EAAKoF,MAAQ60L,GAAex9N,EAAMqjD,SAAW,EAAI,GAC9D,IAAAo6K,EAAU3E,iBAAayE,EAAbzE,EAAa1/N,aAAA,IAAAmkO,OAAA,EAAbA,EAAoB/5L,yBAC3Bi6L,aAAA,EAAAA,EAAA90L,QAASirL,EAAiB6J,EAAQ90L,MALhC,EA6CQ+0L,IACbnE,EAAmBngO,MAAvB,CACA,IAAMmhO,EAA+B+C,QAAvBA,EAAA9J,EAAgBp6N,iBAAOkkO,SAAvBA,EAAuBr8L,cAAc,SAC9Cs5L,IACL5G,EAAkB4G,EAAMz8M,UACxBrH,aAAa23B,GAJiB,IAK7B,IAaCslL,EAAiB,SAAC73N,GACtB,GAAa,cAATA,EAAsB,CAAA,IAAA8hO,EAClBnD,EAAgCmD,QAAvBA,EAAAnK,EAAgBp6N,aAAOukO,IAAAA,WAAAA,EAAvBA,EAAuB18L,cAAc,gBAAU,IAAA08L,OAAA,EAA/CA,EAA+C7/M,SAC9D,OAAK08M,EAGE0C,EAAqB1C,GAFnB,EAGX,CACO,OAAAjD,EAAYn+N,OAAS,IAG9BujC,EAAAA,MACE,CACEh4B,EACA6kN,EACAnmK,EACAO,EACAgnK,EACAiO,EACAtF,EACA2F,EACAttL,EACA+9K,EACAS,GAEFyR,EACA,CAAEv+L,WAAW,IAGfX,EAAAA,MACE,CAACu8L,EAAe1P,IAChB,WACQ,IAAAp7K,EAAQj4B,YAAW,WACnB+iN,EAAc9/N,OAChBqiO,EAAwBjI,EAAgBp6N,OAE1Cqd,aAAa23B,KACZ,EACL,GACA,CAAE9Q,WAAW,IAGfX,EAAAA,MACE,CAACs/C,EAAWt3E,EAAM6kN,EAASnmK,EAAUmwK,IACrC,WACMA,EAAgBp6N,OAEAgjO,GAEtB,GACA,CAAE9+L,WAAW,IAGfX,EAAAA,MAAMg8L,GAAc,WA9DlBpB,EAAYn+N,MAAQ,EAgEtB,IAGAujC,EAAAA,MACE,CAACh4B,EAAM0+C,EAAUO,EAAahY,EAAWitL,EAAe5O,EAAkBH,EAAqBc,IAC/F,WACQ,IAAAx8K,EAAQj4B,YAAW,WACEknN,IACLhB,IACpB5lN,aAAa23B,KACZ,GACL,GACA,CAAE9Q,WAAW,IAGTX,EAAAA,MAAA,CAACg8L,IAAe,SAAAnhG,EAAAS,GAAuC,IAArC0gG,EAAqC97M,GAAA26G,EAAA,GAAzB,GAAIomG,EAAJ/gN,GAAAo7G,EAAA,GAAmB,GAC/C4lG,EAAelF,EAAa1zN,KAAI,SAACtN,GAAA,OAAMA,EAAE68N,UACzCsJ,EAAaF,EAAgB34N,KAAI,SAACtN,GAAA,OAAMA,EAAE68N,UAC5C,GAAAqJ,EAAa5mO,OAAS6mO,EAAW7mO,OAAQ,CACrC,IAAA8mO,EAAavhN,GAAQshN,EAAYD,GACjCtG,EAAc7D,EAAe,aAC/B8J,EAAc,EACPO,EAAAvtN,SAAQ,SAAC3S,GAClB2/N,GAAejG,EAAY15N,EAC7B,IACM,IAAAmgO,EAAkB3iN,GAAKk8M,EAAauG,GACpCG,EAAgB/kO,OAAOuN,OAAOu3N,GAAiB1lL,QAAO,WAAc,OAATv5C,UAAA9H,OAAA,QAAAkD,IAAA4E,UAAA,GAAAA,UAAA,GAAA,IAASA,UAAA9H,OAAA8H,EAAAA,kBAAA5E,MAGpE+jO,EAAe1K,EAAgBp6N,MAAMupC,YACrCw7L,EAAiBF,EAAgBT,EACvC5J,EAAiBvzN,KAAKC,IAAI49N,EAAcC,GAC1C,CACF,IAEA,IAAMC,EAA2D,WAEtCf,IACPjB,IACEC,KAEhBnD,EAAc9/N,OAASy/N,EAAcz/N,SACrByiO,IAClBJ,EAAwBjI,EAAgBp6N,MAAO,CAAEsiO,iBAAiB,KAI1C,SAAtB93K,EAAYxqD,OACIu6N,EAAAD,EAAe,eAI/BhjJ,EAAWx7D,IAAS,WACXkpN,MACZ,IAEC/4I,EAAiC,KAgBrCvgD,EAAAA,WAAU,WACR,IAAMjC,E/CriBH,WAED,GAAqB,oBAAduM,YAA8BA,UAAkB,OAD7B,EAE1B,GAAA,mBAAmBn3C,KAAKm3C,UAAUE,WAAmB,OAF3B,EAGxB,IAAA+uL,EAAY1+L,SAASsD,cAAc,OACzCo7L,EAAUj3L,MAAMyvK,QAAU,iFACjBl3K,SAAAwB,KAAK+B,YAAYm7L,GACtB,IAAAtF,EAAiBsF,EAAUz1L,YAAcy1L,EAAU17L,YAShD,OAREhD,SAAAwB,KAAKiC,YAAYi7L,GAEtB,UAAUpmO,KAAKm3C,UAAUE,aACTypL,GAAA,GAEhB5pL,MAAkB,KACH4pL,EAAA,IAEZA,CACT,C+CohBwBuF,GACpBvF,EAAe3/N,MAAQypC,EACEw6L,IACnB,IAAAkB,EAAgBrF,EAAc9/N,OAASy/N,EAAcz/N,QAAUmgO,EAAmBngO,QAAUuL,EAAKvL,MAAMnC,OAGvGunO,EAD8B,oBAAXjlM,aAC+C,IAA1BA,OAAOsN,gBAChD03L,GAAiBpvL,KAAiB,KAAQqvL,IAC1C9+L,GAAAnG,OAAQ,SAAUm3C,EAEzB,IAEA3rC,EAAAA,iBAAgB,WAAM,IAAA0jD,EAAAg2I,EACE,oBAAXllM,QACLwG,GAAAxG,OAAQ,SAAUm3C,GAER,QAAA+X,EAAApD,SAAA,IAAAoD,GAAAA,EAAA9uD,UAAUi/L,EAASx/N,OACnCqlO,QAAAA,EAAAp5I,aAAAo5I,GAAAA,EAAgBz3L,YAClB,IAWO,MAAA,CACLixL,WAAAA,EACAgB,cAAAA,EACA1B,YAAAA,EACAsB,cAAAA,EACAtF,gBAAAA,EACAC,gBAAAA,EACA0F,cAAAA,EACAzF,iBAAAA,EACA4E,uBAAAA,EACAW,uBAAAA,EACAD,eAAAA,EACA/6C,QArBc,SAACrK,GACfhvK,EAAKvL,MAAQu6K,GAqBbyqD,aAAAA,EACAxK,iBAAAA,EACAxuC,gBAlLsB,SAACluL,GAAkB,IAAAwnO,EAAAC,EAAAx5C,EACnC,QAAAu5C,EAAA1+N,EAAAwrN,iBAAA,IAAAkT,GAAAA,EAAA7mO,KAAAmI,EAAY,CAAE9I,EAAAA,IACd,QAAAynO,EAAA3+N,EAAAyrN,iBAAA,IAAAkT,GAAAA,EAAA9mO,KAAAmI,EAAY,CAAE9I,EAAAA,IACd,QAAAiuL,EAAAnlL,EAAAkvE,gBAAA,IAAAi2G,GAAAA,EAAAttL,KAAAmI,EAAW,CAAE9I,EAAAA,KAgLnBmmO,yBAAAA,EACA5B,wBAAAA,EACAmD,uBA9dF,SAAgC3+M,GAC9B64M,EAAY1/N,MAAQ6mB,CACtB,EA6dEyzM,eAAAA,EACAC,kBAAAA,EACAkL,uBAlEF,SAAgCC,GACR,oBAAXvlM,SAEP4V,KAAiB,SAAuC,IAA1B5V,OAAOsN,iBACrC9G,GAAAxG,OAAQ,SAAUm3C,IACL2U,EAAA,IAAI9rD,OAAOsN,gBAAe,WACnC,IAAAuH,EAAQj4B,YAAW,WACVioN,IACb3nN,aAAa23B,KACZ,IACL,KACehV,QAAQ0lM,GACvBlG,EAASx/N,MAAQ0lO,GACnB,EAsDEjL,6BA3BmC,WACjBgI,IACAO,KA2BtB,gOCtmBwB,SAAA2C,GAAc/+N,EAAyB83B,GAC7D,IAAA25C,EAA8Cv9B,SAAOl0C,GAA7CisB,EAAYwlD,EAAZxlD,WAAYtnB,EAAA8sE,EAAA9sE,KAAM8kN,EAAgBh4I,EAAhBg4I,gBAClBtgM,EAAgByL,KAAhBzL,YACF61M,EAAkBrqM,EAAAA,IAAqB30B,EAAMisB,YAE7C0nJ,EAAah/I,MAAoB,IACjCsqM,EAAiBtqM,OAAI,GAErBuqM,EAA8B,WAAgC,IAA/BplN,EAAU/a,UAAA9H,OAAA,QAAAkD,IAAA4E,UAAA,GAAAA,UAAA,GAAA,EAAGo7H,yDAAW,GACnDx1H,EAAS3E,EAAT2E,KAEFhN,EAAI6pB,SAASioM,EAAgBrwN,OAASuL,EAAK1N,OAASkjI,GAE1D,GADA8kG,EAAe7lO,MAAQzB,EACnBA,EAAG,CACC,IAAA6I,GAASsZ,EAAU,GAAKqgH,EACxB3yH,EAAMsS,EAAUqgH,EACtBw5C,EAAWv6K,MAAQuL,EAAK7M,MAAM0I,EAAOgH,EACvC,MACEmsK,EAAWv6K,MAAQuL,GAKvBg4B,EAAAA,OACE,WAAA,IAAAwiM,EAAAC,EAAA,MAAM,CAAmB,QAAnBD,EAAClzM,EAAW7yB,aAAO,IAAA+lO,OAAA,EAAlBA,EAAkBrlN,QAAoBslN,QAApBA,EAASnzM,EAAW7yB,aAAXgmO,IAAWA,OAAXA,EAAAA,EAAkBjlG,SAAUx1H,EAAKvL,MAAMnC,OAAQwyN,EAAe,IAChG,WACE,GAAKx9L,EAAW7yB,OAAU6yB,EAAW7yB,MAAM0gB,QAA3C,CACA,IAAAulN,EAA8BpzM,EAAW7yB,MAAjC0gB,EAAAulN,EAAAvlN,QAASqgH,EAASklG,EAATllG,SACD6kG,EAAA5lO,MAAQ,CAAE0gB,QAAAA,EAASqgH,SAAAA,GACnC+kG,EAA4BjzM,EAAW7yB,MAAM0gB,QAASmS,EAAW7yB,MAAM+gI,SAHnB,CAItD,GACA,CAAE78F,WAAW,IAIfX,QACE,CAACh4B,IACD,WAAM,IAAA26N,EAAAC,EACCtzM,EAAW7yB,OAAU6yB,EAAW7yB,MAAM2gI,iBACtBv4G,QAAQyK,EAAW7yB,MAAM0gB,UAG9ColN,EACmCI,QADnCA,EACEN,EAAgB5lO,MAAM0gB,mBAAWwlN,EAAAA,EAAArzM,EAAW7yB,MAAM2gI,eAChBwlG,QADgBA,EAClDP,EAAgB5lO,MAAM+gI,gBAAYolG,IAAAA,EAAAA,EAAAtzM,EAAW7yB,MAAMghI,iBAEvD,GACA,CAAE98F,WAAW,IAyBR,MAAA,CACL2hM,eAAAA,EACAtrD,WAAAA,EACAqrD,gBAAAA,EACApW,iBA1BuB,WACvB,IAAK5oN,EAAMisB,WAAmB,OAAA,KAC9B,IAAMyoJ,mWAAkBpjI,IAAKtxC,EAAMisB,YAGnC,cADOyoJ,EAAgBv9I,SACvBsa,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OACiBzM,EAAY/vB,MAAA,uBAAA,CAAAq4C,EAAAA,YAAA2tF,GAAA9qF,aAAA,CAAA9vC,KAEF,UAAfxE,EAAMwE,KAAmB,KAAOxE,EAAMwE,MACxCkwK,EACJ,CAAAv9I,SAAU,SAACymG,GAAuB,IAAA4hG,EAAAC,EAAAC,EAC1BF,QAAAA,EAAAx/N,EAAAisB,kBAAAwzM,IAAAD,WAAAC,EAAAD,EAAYroM,uBAAZsoM,EAAA5nO,KAAA2nO,EAAuB5hG,GAC7BohG,EAAgB5lO,MAAQwkI,EACIshG,EAAAthG,EAAS9jH,QAAS8jH,EAASzD,UACjD,QAAAulG,EAAA1/N,EAAAg0K,oBAAA0rD,IAAAA,GAAAA,EAAA7nO,KAAAmI,EAAe49H,EAAU+1C,EAAWv6K,MAC5C,IACS,CAAEwhI,aAAc9iG,EAAQ9Y,MAAM47G,kBAYjD,CCxEA,SAAwB+kG,GAAS3/N,GAC/B,IAAMwzN,EAAkB7+L,EAAAA,MAElBirM,EAAiBjrM,EAAAA,MAEjBkrM,EAAiBlrM,EAAAA,MAEjBmrM,EAAyBnrM,EAAAA,MAEzBorM,EAAgBprM,EAAAA,MAEhBqrM,EAAkBrrM,OAAI,GAEtBsrM,EAAkBtrM,OAAI,GAEtBurM,EAAsBvrM,OAAI,GAE5BwrM,GAAc,EACdC,GAA0B,EAExBv0L,EAAkBh0B,EAAAA,UACtB,WAAA,OAAM7X,EAAM+qC,QAAgC,YAAtB/qC,EAAM+qC,OAAOlvC,OAAuBmE,EAAM+qC,OAAOY,WAAa,KAAO3rC,EAAM2E,KAAK1N,MAAA,IAGlGopO,EAAYxoN,EAAAA,UAChB,WAAA,SAAS7X,EAAMiqN,kBAAoBjqN,EAAM8pN,qBAAuB9pN,EAAMkqN,8BAAA,IAGpEoW,EAAiB,EACfC,EAAqB,SAACjgH,GAC1B,GAAK+/G,EAAUjnO,OAAUyyC,EAAgBzyC,MAAzC,CACA,IAAI6/B,EAASqnF,EAKb,IAJKrnF,GAAUu6L,EAAgBp6N,QACZknO,EAAA,EACjBrnM,EAASu6L,EAAgBp6N,OAEtB6/B,EAAL,CACA,IAAM0K,EAAO1K,EAAO0L,WAEpB,GAAI27L,IAAmB38L,EAAvB,CACiB28L,EAAA38L,EAQjB,IANA,IAAM68L,EAAwB,CAC5BhN,EAAgBp6N,MAChBwmO,EAAexmO,MACfymO,EAAezmO,MACf0mO,EAAuB1mO,OAEhBP,EAAI,EAAGy4B,EAAMkvM,EAAsBvpO,OAAQ4B,EAAIy4B,EAAKz4B,IACvD2nO,EAAsB3nO,IAAMynH,IAAkBkgH,EAAsB3nO,KACtE2nO,EAAsB3nO,GAAG8rC,WAAahB,EAXb,CAHhB,CANmC,GA0B5C88L,EAA6B,SAACC,EAAsBC,EAAoBC,GAC5E,OAAAD,EAAUj9L,IAAMk9L,EAAeF,EAAYh9L,KAAOg9L,EAAYh9L,IAAMg9L,EAAY73L,MAAA,EAO5Eg4L,EAA4B,WAAM,IAAA/J,EAAAwG,EAAAwD,EACtC,GAAKT,EAAUjnO,OAAUyyC,EAAgBzyC,OAAUo6N,EAAgBp6N,MAAnE,CACM,IAAAovK,EAAsBsuD,QAAtBA,EAAMtD,EAAgBp6N,aAAhB09N,IAAgBA,OAAhBA,EAAAA,EAAuBtzL,wBACnC,GAAKglI,EAAL,CACA,IAToBxoK,EASd+gO,EAA6B,UAAhBvN,EAAgBp6N,aAAA,IAAAkkO,WAAAA,EAAhBA,EAAuBr8L,cAAc,6BAArCq8L,EAA+C95L,wBAC5Do9L,GAAeG,eAAAA,EAAYl4L,SAAU,EACrCm4L,EAA4BF,QAA5BA,EAAajB,EAAezmO,aAAf0nO,IAAeA,OAAfA,EAAAA,EAAsBt9L,wBACzC,IAAKxjC,EAAMiqN,kBAAoBp+K,EAAgBzyC,QAAUwmO,EAAexmO,MAAO,CAC7E,IAAMowD,EAZJxwC,GADgBhZ,EAaaA,EAAMgqN,kBAAoBhqN,EAAMiqN,kBAZpC,EACtBjqN,EAAMwpD,WAAa,EAYlBy3K,GAAeD,eAAAA,EAAYn4L,SAAU,EACvC9xC,EAAIsJ,KAAKyiB,IAAI0lJ,EAAI9kI,KAAO8kI,EAAI3/H,OAAS+3L,EAAep3K,EAAYy3K,EAEhEp1L,EAAgBzyC,QACdrC,EAAAyxK,EAAI9kI,KAAM,EAAKq9L,EAAWl4L,QAEhCm3L,EAAgB5mO,MAAQrC,CAC1B,CAEI,GAAAiJ,EAAM8pN,qBAAN9pN,MAA6B6/N,GAAAA,EAAgBzmO,MAC/C6mO,EAAgB7mO,MAAQqnO,EAA2BO,EAAYx4D,EAAKo4D,QAC3D,GAAA5gO,EAAMkqN,+BAANlqN,MAAuC8/N,GAAAA,EAAwB1mO,MAAO,CACzE,IAAA8nO,EAA0BpB,EAAuB1mO,MAAMoqC,wBAC7Dy8L,EAAgB7mO,MAAQqnO,EAA2BS,EAAyB14D,EAAKo4D,EACnF,CACI,GAAA5gO,EAAMqqN,yBAA2B0V,EAAc3mO,MAAO,CAClD,IAAA+nO,EAAWpB,EAAc3mO,MAAMoqC,wBACrC08L,EAAoB9mO,MAAQqnO,EAA2BU,EAAU34D,EAAKo4D,EACxE,CAxBU,CAFgE,GA6BtEQ,EAAmB,WACGP,KAGtBQ,EAAe,WACnBd,EAAmBV,EAAezmO,QAG9BkoO,EAAiB,WACrBf,EAAmBX,EAAexmO,QAG9BmoO,EAA4B,WAChChB,EAAmBT,EAAuB1mO,QAGtCooO,EAAuB,WAC3BjB,EAAmB/M,EAAgBp6N,QAG/BqoO,EAAmB,WACpB/hM,GAAAmgM,EAAezmO,MAAO,SAAUioO,IAG/BK,EAAmB,WACnB3hM,GAAA8/L,EAAezmO,MAAO,SAAUioO,IAGhCM,EAAqB,WACtBjiM,GAAAkgM,EAAexmO,MAAO,SAAUkoO,GACRM,KAGvBC,EAAqB,WACpB1B,GAAiBpgM,GAAA6/L,EAAexmO,MAAO,SAAUkoO,GAC3BQ,KAGvBC,EAAwB,WACzBriM,GAAAogM,EAAuB1mO,MAAO,SAAUmoO,IAGvCS,EAAwB,WACxBjiM,GAAA+/L,EAAuB1mO,MAAO,SAAUmoO,IAGxCU,EAA2B,WAC5BviM,GAAA8zL,EAAgBp6N,MAAO,SAAUooO,GACTI,KAGvBM,EAA2B,WAC1B/B,GAAiBpgM,GAAAyzL,EAAgBp6N,MAAO,SAAUooO,GAC5BM,KAGvBxlI,EAAc,WACJ6jI,GAAA,GAGVzyD,EAAY,WACFyyD,GAAA,EACTC,IACCrgM,GAAA6/L,EAAexmO,MAAO,SAAUkoO,GAChCvhM,GAAAyzL,EAAgBp6N,MAAO,SAAUooO,KAInCI,EAA6B,WACPxB,GAAA,GAGtB0B,EAA6B,WACP1B,GAAA,GAItB+B,EAA2D,GAC3DC,EAAkC,SAAC/oM,GAIjC,IAAAgpM,EAA4BntN,IAAS,SAAC2vB,GACtC9E,GAAA1G,EAAS,SAAUwL,KACtB,KAEH,SAASy9L,IACP/B,EAAmBlnM,GACnBgpM,EAA0BC,EAC5B,CACA,SAASC,EAAoBrrO,GACvBA,EAAEsrO,eAAe9qN,SAAS2hB,KAE5B8oM,EAAsC3xN,SAAQ,SAACozJ,GAAY,OAAAA,OAC3Du+D,EAAsClrO,OAAS,EAE5CyoC,GAAArG,EAAS,SAAUipM,GAEtBD,EAA0BC,GAC1BH,EAAsC/+N,MAAK,WACrC28B,GAAA1G,EAAS,SAAUipM,EACzB,IAEJ,CAQO,OANJ5iM,GAAArG,EAAS,aAAckpM,GAMnB,CACLE,iCALF,WACM1iM,GAAA1G,EAAS,aAAckpM,EAC7B,IAQIG,EAAgD,GAMhDC,EAAkC,WAClC5iM,GAAAxG,OAAQ,YAAa+iE,GACrBv8D,GAAAxG,OAAQ,UAAWm0I,GANvBg1D,EAA2BlyN,SAAQ,SAACozJ,GAAY,OAAAA,OAChD8+D,EAA2BzrO,OAAS,EAQhC2oO,EAAexmO,QACb2mC,GAAA6/L,EAAexmO,MAAO,aAAcuoO,GACpC5hM,GAAA6/L,EAAexmO,MAAO,aAAcyoO,IAEtChC,EAAezmO,QACb2mC,GAAA8/L,EAAezmO,MAAO,aAAcqoO,GACpC1hM,GAAA8/L,EAAezmO,MAAO,aAAcsoO,IAEtClO,EAAgBp6N,QACd2mC,GAAAyzL,EAAgBp6N,MAAO,aAAc6oO,GACrCliM,GAAAyzL,EAAgBp6N,MAAO,aAAc8oO,IAEvCpC,EAAuB1mO,QACrB2mC,GAAA+/L,EAAuB1mO,MAAO,aAAc2oO,GAC5ChiM,GAAA+/L,EAAuB1mO,MAAO,aAAc4oO,KAsC9CY,EAA4B,WAChC,GAAKvC,EAAUjnO,OAAU4G,EAAMqqN,wBACzB,IAAAj8K,EAAQj4B,YAAW,WACnBkqN,EAAUjnO,OAAS4G,EAAMqqN,wBACxB3qL,GAAAC,SAAU,SAAUyhM,GAEnBrhM,GAAAJ,SAAU,SAAUyhM,GAE1B3qN,aAAa23B,EACf,KAGFzR,EAAAA,MAAM,CAACijM,EAAgBC,EAAgBC,EAAwBtM,IAAkB,YA9C5C,WAKnC,GAJG9zL,GAAAnG,OAAQ,YAAa+iE,GACrB58D,GAAAnG,OAAQ,UAAWm0I,GAEUi1D,IAC5B/C,EAAexmO,MAAO,CACrBsmC,GAAAkgM,EAAexmO,MAAO,aAAcuoO,GACpCjiM,GAAAkgM,EAAexmO,MAAO,aAAcyoO,GACvC,IAAQY,EAAqCL,EAAgCxC,EAAexmO,OAApFqpO,iCACRC,EAA2Bt/N,KAAKq/N,EAClC,CAEI,GAAAziO,EAAM8pN,qBAAuB+V,EAAezmO,MAAO,CAClDsmC,GAAAmgM,EAAezmO,MAAO,aAAcqoO,GACpC/hM,GAAAmgM,EAAezmO,MAAO,aAAcsoO,GACvC,IAAQe,EAAqCL,EAAgCvC,EAAezmO,OAApFqpO,iCACRC,EAA2Bt/N,KAAKq/N,EAClC,CAEI,GAAAziO,EAAMkqN,+BAAiC4V,EAAuB1mO,MAAO,CACpEsmC,GAAAogM,EAAuB1mO,MAAO,aAAc2oO,GAC5CriM,GAAAogM,EAAuB1mO,MAAO,aAAc4oO,GAC/C,IAAQS,EAAqCL,EAAgCtC,EAAuB1mO,OAA5FqpO,iCACRC,EAA2Bt/N,KAAKq/N,EAClC,CAEA,IAAKpC,EAAUjnO,OAASyyC,EAAgBzyC,QAAUo6N,EAAgBp6N,MAAO,CACpEsmC,GAAA8zL,EAAgBp6N,MAAO,aAAc6oO,GACrCviM,GAAA8zL,EAAgBp6N,MAAO,aAAc8oO,GACxC,IAAQO,EAAqCL,EAAgC5O,EAAgBp6N,OAArFqpO,iCACRC,EAA2Bt/N,KAAKq/N,EAClC,EAgB6BI,GACVtC,IACOM,GAC5B,IAEAlkM,QAAM0jM,EAAWuC,GAEjBjmM,EAAAA,OACE,WAAA,MAAM,CACJ38B,EAAM2E,KACN3E,EAAMwpN,QACNxpN,EAAMiqN,iBACNjqN,EAAM8pN,oBACN9pN,EAAMkqN,8BACR,IACA,WACqBqW,GACrB,IAGFx7L,EAAAA,iBAAgB,WACVhF,GAAAJ,SAAU,SAAUyhM,GACQuB,IAChC/C,EAAexmO,MAAQ,KACvBymO,EAAezmO,MAAQ,KACvB0mO,EAAuB1mO,MAAQ,KAC/Bo6N,EAAgBp6N,MAAQ,IAC1B,IAOO,MAAA,CACL4mO,gBAAAA,EACAC,gBAAAA,EACAC,oBAAAA,EACAN,eAAAA,EACAC,eAAAA,EACAC,uBAAAA,EACAC,cAAAA,EACAQ,mBAAAA,EACAuC,mBAdyB,SAACC,GAC1BvP,EAAgBp6N,MAAQ2pO,EACEH,KAa1B/B,0BAAAA,EAEJ,CC5TgB,SAAAmC,GAAoB5mK,EAA+Cn+C,GACjF,GAAKm+C,EAAL,CAGA,IAFA,IAAM6mK,EAAW7mK,aAAsBhlE,MAAQglE,EAAa,CAACA,GACzD5hE,EAAgC,CAAA,EAC3B3B,EAAI,EAAGA,EAAIoqO,EAAShsO,OAAQ4B,IAAK,CACxC,IAAMqqO,EAAWD,EAASpqO,GAC1B,GAAKqqO,EAAL,CACA,IAAMC,EAAevmO,EAAWsmO,GAAYA,EAASjlN,GAAUilN,EAE7D1oO,EAAA2oO,aAAwB/rO,MAAQ4rO,GAAoBG,EAAcllN,GAAU/kB,OAAOi8B,OAAO36B,EAAQ2oO,EAHrF,CAIjB,CACO,OAAA3oO,CAViB,CAW1B,CAGgB,SAAA4oO,GACdC,EACAplN,EACAwsM,GAMA,IAJA,IAAM6Y,EAAeD,aAAyBjsO,MAAQisO,EAAgB,CAACA,GAC/D9+K,EAAkBtmC,EAAlBsmC,IAAKvW,EAAa/vB,EAAb+vB,SAETu1L,EAA2B,GACtB1qO,EAAI,EAAGy4B,EAAMgyM,EAAarsO,OAAQ4B,EAAIy4B,EAAKz4B,IAAK,CACvD,IAAM2qO,EAAQF,EAAazqO,GACvB4qO,EAAS7mO,EAAW4mO,GAASA,EAAMvlN,GAAUulN,EACjD,IAAI5nO,EAAS6nO,IAAaA,aAAkBrsO,MASjCqsO,aAAkBrsO,QAClBqsO,EAAAL,GAAoBK,EAAQxlN,EAAQwsM,QAVK,CAKjDgZ,EAA+Bz1L,KAAcy1L,EAAUA,EAA+Bz1L,IAEvF,IAAMmtL,EAAQz2N,GAAI6/C,EAAKkmK,GAAU,MAC1BgZ,EAAAtI,KAAWsI,EAASA,EAAOtI,GACpC,CAGgBoI,EAAAA,EAAc3tM,OAAO6tM,EACvC,CACO,OAAAF,CACT,CAEgB,SAAAG,GACdtnL,EACAn+B,GAIA,IAFA,IAAMyiB,EAAU0b,aAAsBhlD,MAAQglD,EAAa,CAACA,GACtD2gC,EAAa,GACVlkF,EAAI,EAAGy4B,EAAMoP,EAAQzpC,OAAQ4B,EAAIy4B,EAAKz4B,IAAK,CAClD,IAAMunC,EAAMM,EAAQ7nC,GAChB+D,EAAWwjC,GACT28C,EAAA35E,KAAKg9B,EAAIniB,IAEb8+D,EAAI35E,KAAKg9B,EAEb,CACO,OAAA28C,CACT,CAKgB,SAAA4mJ,GAAoEna,EAAc3rN,GAC5F,GAAC2rN,GAAY3rN,EAAb,CACJ,IAAMulJ,EAAMomE,aAAAA,EAAAA,EAAShvJ,MAAK,SAAC7iE,GAAM,OAAAA,EAAE68N,SAAW32N,KAC1C,GAAAulJ,EAAY,OAAAA,EAChB,IAAA,IAASvqJ,EAAI,EAAGy4B,EAAMk4L,EAAQvyN,OAAQ4B,EAAIy4B,EAAKz4B,IAAK,CAAA,IAAA+qO,EAChBC,EAA9B,GAAY,QAAZD,EAAApa,EAAQ3wN,UAAI+qO,IAAAA,GAAAA,QAAAA,EAAZA,EAAY9lN,oBAAA8lN,GAAZA,EAAsB3sO,OACxB,OAAO0sO,GAA+BE,QAAZA,EAAAra,EAAQ3wN,cAAIgrO,SAAZA,EAAY/lN,SAAUjgB,EAEpD,CAPsB,CAQxB,CAGgB,SAAAimO,GAAcC,EAAsCC,GAClE,MAA8B,WAA1BvrO,EAAOsrO,GAAoCA,EAClB,WAAzBtrO,EAAOurO,GAAmCA,EACvC,EACT,CClGO,SAASC,GAAW1/K,EAAmBkmK,EAAgB+J,EAAgBjC,GACtE,IAAA2R,EAAWx/N,GAAI6/C,EAAKkmK,GAI1B,YAHiB,IAAbyZ,GACE/pM,GAAM,QAAS,0DAEd,CAAC+pM,EAAU1P,GAAUjC,GAAUjqN,KAAK,IAC7C,CAOA,SAAwB67N,GACtBx/N,EACA6kN,EACAiB,EACAC,GAEA,IAAM0Z,EAAezvM,EAAAA,IAAQ,IAAA5vB,KAGvBs/N,EAAuB,SAACpmN,EAA2CqmN,GACjE,IAAEt2L,EAAuB/vB,EAAvB+vB,SAAUukL,EAAat0M,EAAbs0M,SAClB,GAAK+R,EAAehY,SAAYgY,EAAev/K,QAG/C,IAFM,IAAAw/K,EAAcv2L,GAAYs2L,EAAehY,SAAW,GACpDkY,EAAcjS,GAAY+R,EAAev/K,SAAW,GACjDlsD,EAAIm1C,EAAUn1C,EAAI0rO,EAAa1rO,IACtC,IAAA,IAAS8nC,EAAI4xL,EAAU5xL,EAAI6jM,EAAa7jM,IAClC,GAAA9nC,IAAMm1C,GAAYrN,IAAM4xL,EAAU,CACpC,IAAK5tN,EAAKvL,MAAMP,KAAO2wN,EAAQpwN,MAAMunC,GAAI,OACnC,IAAA8jM,EAAUR,GAAWt/N,EAAKvL,MAAMP,GAAI4xN,EAAOrxN,MAAOowN,EAAQpwN,MAAMunC,GAAG6zL,OAAQ7zL,GAC3Ew7B,EAAQioK,EAAahrO,MAAMsL,IAAI+/N,IAAY,GACjDtoK,EAAMuoK,SAAU,EACHN,EAAAhrO,MAAMiL,IAAIogO,EAAStoK,EAClC,GA4CN,OARAx/B,EAAAA,OACE,WAAA,MAAM,CAACh4B,EAAKvL,MAAOowN,EAAQpwN,MAAOsxN,EAAiB,IACnD,YAhCyB,SACzB/lN,EACA6kN,EACAkB,GACG,IAAAia,EAEC,WADJA,EAAAP,EAAahrO,oBAAburO,EAAoBxgO,QACfQ,GAAS+lN,EACd,IAAA,IAAS7xN,EAAI,EAAGy4B,EAAM3sB,EAAK1N,OAAQ4B,EAAIy4B,EAAKz4B,IAE1C,IADA,IAAM0rD,EAAM5/C,EAAK9L,GACR8nC,EAAI,EAAGikM,EAASpb,EAAQvyN,OAAQ0pC,EAAIikM,EAAQjkM,IAAK,CACxD,IAAMyiH,EAAMomE,EAAQ7oL,GACd1iB,EAAS,CACbsmC,IAAAA,EACA6+F,IAAAA,EACAp1G,SAAUn1C,EACV05N,SAAU5xL,GAEN8jM,EAAUR,GAAW1/K,EAAKkmK,EAAOrxN,MAAOgqJ,EAAIoxE,OAAQ7zL,GACpDw7B,EAAQioK,EAAahrO,MAAMsL,IAAI+/N,IAAY,GAC3C/rO,EAAIgyN,EAAkBzsM,IAAW,CAAA,GACnCvlB,EAAE4zN,SAAW5zN,EAAEqsD,SAAWoX,EAAMmwJ,SAAWnwJ,EAAMpX,WACjDrsD,EAAA4zN,UAAYnwJ,EAAMmwJ,QAAU5zN,EAAE4zN,SAC9B5zN,EAAAqsD,UAAYoX,EAAMpX,QAAUrsD,EAAEqsD,SACnBq/K,EAAAhrO,MAAMiL,IAAIogO,EAAStoK,IAElCkoK,SAAAA,EAAuBpmN,EAAQk+C,EACjC,EAOA0oK,CAAmBlgO,EAAKvL,MAAOowN,EAAQpwN,MAAOsxN,eAAAA,EAAmBtxN,MACnE,GACA,CAAEkkC,WAAW,IAGR,CAAE8mM,aAAAA,EACX,okBChDO,IAAMU,GAAc,CACzB,SACA,eACA,UACA,YACA,WACA,gBACA,oBACA,SACA,mBACA,aACA,SACA,cACA,aACA,gBACA,iBACA,iBACA,kBACA,kBACA,gBAwBWC,GAAgB,CAC3B,QACA,WACA,YACA,YACA,aACA,aACA,WAGc,SAAAC,GACd/mN,EACAe,EACA21E,GAKA,IAAQyuD,EAAuBnlI,EAAvBmlI,IAAK7+F,EAAkBtmC,EAAlBsmC,IAAKvW,EAAa/vB,EAAb+vB,SAEd,GAAe,kBAAfo1G,EAAIoxE,OAA4B,CAC5B,IAAA53L,GAAyD+3D,aAAAA,EAAAA,EAAO1oE,aAAc,CAAC,EAA7EnS,IAAAA,QAASqgH,EAAUv9F,EAAVu9F,SAAUJ,EAAAn9F,EAAAm9F,eAAgBK,IAAAA,gBACrC6qG,EAAWnrN,GAAWigH,EACtBmrG,EAAY/qG,GAAYC,EAC9B,OAAI8qG,GAAaD,EACRC,GAAaD,EAAW,GAAKj3L,EAAW,EAE1CA,EAAW,CACpB,CACI,GAAApxC,EAAWwmJ,EAAIq9C,MACV,OAAAr9C,EAAIq9C,KAAK7hL,EAAAA,EAAGX,GAEjB,GAAAe,EAAMokI,EAAIoxE,QACL,OAAAx1M,EAAMokI,EAAIoxE,QAAQv2M,GAE3B,GAAI3F,GAAS8qI,EAAIq9C,OAASzhL,EAAMokI,EAAIq9C,MAC3B,OAAAzhL,EAAMokI,EAAIq9C,MAAMxiL,GAErB,GAAArhB,EAAWwmJ,EAAItuG,QACV,OAAAsuG,EAAItuG,OAAOl2B,IAAG0yB,GAAAA,GAAA,CAAA,EAAKrzB,GAAQ,GAAA,CAAApiB,KAAM,UAE1C,IAAM9E,EAAI2N,GAAI6/C,EAAK6+F,EAAIoxE,QAEvB,MAAK,MAAC,EAAW,GAAI,MAAM98M,SAAS3gB,GAEhC49F,SAAAA,EAAO40H,iBACF3sN,EAAW+3F,EAAM40H,kBAAoB50H,EAAM40H,iBAAiB3qM,EAAAA,EAAGX,GAAU02E,EAAM40H,iBAEpFvqM,EAAMuqM,iBAAyBvqM,EAAMuqM,iBAAiBtrM,GACtDe,EAAM,sBAA8BA,EAAM,sBAAsBf,GAC7DlnB,EAPwCA,CAQjD,CAGA,IAAAouO,GAAe90L,kBAAgB,CAC7Br4C,KAAM,KAENgI,MAAOsxC,GAAAA,GAAA,CACLiT,IAAKrrD,OACL80C,SAAUh1C,OACVosO,WAAYpsO,OACZm6N,yBAA0Bp6N,OAC1BowB,YAAapwB,OACbs/N,uBAAwBtzN,IAExBq/N,aAAcr/N,IACd08K,cAAevoL,OACf09B,OAAQpV,QACR80E,QAAS90E,SACNnG,GAAK6tM,GAAgB4b,KAAW,CAAA,EAAA,CAEnCO,SAAU,CAAC,EAEX/K,gBAAiB,CAAC,IAGpBv9K,MAAO,CAAC,eAERzM,eAAMtwC,EAAgB83B,GACpB,IAAA25C,EAA6Cv9B,SAAOl0C,GAA5Cs6N,EAAiB7oJ,EAAjB6oJ,gBAAiB1jM,EAAA66C,EAAA76C,OAAQ0/D,EAAQ7kB,EAAR6kB,QAC3BgvI,EAAQ3wM,MAAI,MACZ89L,EAOFlG,KANF4C,EAAAsD,EAAAtD,gBACA3C,EAAAiG,EAAAjG,eACAqC,EAAA4D,EAAA5D,qBACAH,EAAA+D,EAAA/D,qBACAP,EAAAsE,EAAAtE,eACAkD,EAAAoB,EAAApB,sBAEIkU,EAAW1tN,EAAAA,UAAS,WAAA,OL/Hd,SACdsjN,EACAntL,EACAw3L,EACA55L,EACAysL,EACA3J,GAGuC,IADvC+W,yDAAoB,EAEhB,IAAC75L,IAAcA,EAAU30C,OAAQ,MAAO,CAAEmwC,WAAO,EAAW1G,aAAS,GACnE,IAAA4pB,EAAWtc,EAAWpC,EAAU,GAChC85L,EAAc13L,EAAWw3L,EAAY,EAAI55L,EAAU,GACnD+5L,EAAsBH,EAAY55L,EAAU,GAC5C0sL,GAAWD,aAAA,EAAAA,EAAwB3zN,IAAIy2N,KAAU,CAAA,EACjDv9K,EAAa3kD,EAAAA,EAAAA,EAAAA,EAAA,CAAA,EAChBy1N,EAAqBhrL,IAAM4mB,GAC3BokK,EAAqB9qL,OAAS8hM,GAC9BhX,EAAqBC,YAAc3gL,IAAa23L,GAChDjX,EAAqBE,oBAAsB5gL,IAAa23L,EAAsB,GAM1E,MAAA,CACLv+L,MALgB,CAChB1D,IAAK4mB,EAAA10B,GAAAA,OAAc0iM,EAAS50L,IAAM+hM,EAAwB,WAAA,EAC1D7hM,OAAQ8hM,EAAA,GAAA9vM,OAAiB0iM,EAAS10L,OAAS6hM,EAAwB,WAAA,GAInE/kM,QAASkd,EAEb,CKmGMgoL,CACElhO,GAAI1E,EAAMukD,IAAKvkD,EAAMyqN,QAAU,MAC/BzqN,EAAMguC,SACNhuC,EAAMolO,WACNplO,EAAM4rC,UACN5rC,EAAMq4N,uBACN3J,EACA1uN,EAAMyhL,cAAc51I,gBAAgBzyC,MAAQ4G,EAAMyhL,cAAc32I,WAAW1xC,MAAQ,EACrF,IAGIysO,EAAehuN,EAAAA,UACnB,WAAA,OAAMmrN,GAAoBhjO,EAAMuqN,cAAe,CAAEhmK,IAAKvkD,EAAMukD,IAAKvW,SAAUhuC,EAAMguC,SAAUnyC,KAAM,UAAa,CAAA,CAAC,IAG3G6kC,EAAU7oB,EAAAA,UAAS,WAAM,IAAAiuN,EACvBvC,EAAgBH,GACpBpjO,EAAMwqN,aACN,CAAEjmK,IAAKvkD,EAAMukD,IAAKkmK,OAAQzqN,EAAMyqN,OAAQz8K,SAAUhuC,EAAMguC,SAAUnyC,KAAM,QACxEmE,EAAMyqN,QAAU,MAEX,MAAA,SAAAqb,EACLP,EAASnsO,aAAO,IAAA0sO,OAAA,EAAhBA,EAAgBplM,QAChB6iM,EAAAtqO,EAAAA,QAAA28B,OAEM51B,EAAMmpB,mCAAmCyN,EAAOx9B,OAAAw8B,GAAAA,OAChD51B,EAAMmpB,YAAkCmtE,sBAAAA,EAAQl9F,QAEtD+lB,QAAO,SAACwD,GAAA,OAAMA,IAClB,IAEM8/J,ECrMc,SACtB3wG,EACA4wG,EACAzkK,GAEM,IAAA0kK,EAAa9qK,EAAAA,UAAS,WAAA,OAAMxX,KAAKC,IAAI2d,EAAO+sB,WAAa,GAAI,OAC7D43I,EAASjuJ,OAAI,GACbkuJ,EAAoBhrK,EAAAA,UAAS,WAAA,MAAuB,UAAjBoG,eAAAA,EAAQpiB,QAAoB+mL,EAAOxpL,SAEtEgmC,GAA0BK,IAAYlG,OAAO6F,uBAA2B,SAAC0jJ,GAAA,OAAO3sK,WAAW2sK,EAAI,OAE/Fr+J,EAAO,WACNm+J,EAAOxpL,OACVgmC,GAAsB,WACpBwjJ,EAAOxpL,OAAQ,CACjB,KAcG,OAVP0rC,EAAAA,WAAU,WACa,UAAjB7mB,eAAAA,EAAQpiB,OACZ20C,EAAAA,UAAS,WACP,IAAM/E,EAAaprC,KAAKC,IAAI,GAAI2d,EAAOwtB,YAAc,IAC/C5C,EAAS85I,EAAWvpL,MAAQqyC,EAC7Bi3I,SAAAA,EAAUtpL,OAAU04E,SAAAA,EAAc14E,OACvCggC,GAAQspJ,EAAStpL,MAAO04E,EAAa14E,MAAOqrB,EAAMokB,EACpD,GACF,IAEO,CACLg6I,kBAAAA,EACAF,WAAAA,EAEJ,CDoK8CI,CACxCu3C,EACAgL,EACAzwL,EAAAA,SAAAvD,GAAAA,GAActxC,CAAAA,EAAAA,EAAM+qC,YAAQiD,SAAUhuC,EAAMguC,aAHtC60I,EAAmBJ,EAAnBI,kBAAmBF,EAAAF,EAAAE,WAmBrBojD,EAA0B,WAAM,IAAAC,EACX,QAArBA,EAAAhmO,EAAMyhL,qBAAe,IAAAukD,GAArBA,EAAqBn6L,gBAAgBzyC,OACvC0+B,EAAQR,KAAK,cAAe,CAC1B3C,IAAK2wM,EACL3gO,KAAM3E,EAAMukD,OAkBT,SAAA0hL,EAAmBC,EAA+CjoN,GACnE,IAGFP,EAHI20M,EAAap0M,EAAbo0M,SACAjvE,EAAkB8iF,EAAlB9iF,IAAKmvE,EAAa2T,EAAb3T,SAGT31N,EAAWwmJ,EAAI7oG,UACP78B,EAAA0lI,EAAI7oG,SAAS37B,EAAAA,EAAGsnN,GACO,WAAxBztO,EAAO2qJ,EAAI7oG,WAAyB39C,EAAWwmJ,EAAI7oG,SAAS78B,SACrEA,EAAU0lI,EAAI7oG,SAAS78B,QAAQkB,EAAAA,EAAGsnN,GACzBpuM,EAAQ9Y,MAAM,YAAA4W,OAAYwtH,EAAIoxE,SAEvC92M,EAAUoa,EAAQ9Y,MAAA4W,YAAAA,OAAkBwtH,EAAIoxE,SAAU0R,GACzCpuM,EAAQ9Y,MAAMu7B,WAEb78B,EAAAoa,EAAQ9Y,MAAMu7B,SAAS2rL,IAGnC,IAAI1/D,EAAe,CAAA,EACS,WAAxB/tK,EAAO2qJ,EAAI7oG,YACbisH,EAAe,UAAWpjB,EAAI7oG,SAAW6oG,EAAI7oG,SAASv6C,MAAQojJ,EAAI7oG,eAAY,GAEhF,IAtPqCt4B,EAsP/B68M,EAAe9+N,EAAMqlO,SACvBzuK,EAAoD,IAAb27J,EAAiB,WAAa,MAGvE,OAFF37J,EAAY27J,IAAavyN,EAAMwpN,QAAQvyN,OAAS,EAAI,YAAc2/D,EAEhEnlB,EAAAA,YAAAqgL,GAAA,CAAAl7J,UACaA,EAAArtC,OACHu1M,EAAe,WAAA,OAAMA,CAAe,OAAA,EAAA/M,eAC5Br0M,GAAY,WAAA,OAAMA,CAClC,EAAA8oJ,aAAcA,mBACIxmK,EAAMmzN,qCACXnzN,EAAMmpB,aAhQc,mBAAAlH,EAkQhCowM,IAlQgC7zK,oBAAAtlD,OAAAP,UAAAf,SAAAC,KAAAoqB,KAAAu8B,EAAAhhC,QAAAyE,GAkQhCowM,EAAA,CAAAzqM,QAAA,WAAA,MAAA,CAAAyqM,EAAA,GAGP,CAuCA,OAxFAvtL,EAAAA,WAAU,WACR0L,EAAAA,UAAS,WACiBu1L,GAC1B,GACF,IAGAnuM,EAAAA,WAAU,WACR4Y,EAAAA,UAAS,WACiBu1L,GAC1B,GACF,IA6EO,WAAM,IAAAI,EACH3c,EAAmExpN,EAAnEwpN,QAAS4a,EAA0DpkO,EAA1DokO,aAAc7/K,EAA4CvkD,EAA5CukD,IAAK6gL,EAAuCplO,EAAvColO,WAAY/M,EAA2Br4N,EAA3Bq4N,uBAC1C+N,EAAkB5c,aAAAA,EAAAA,EAASvkN,KAAI,SAACm+I,EAAKmvE,GACzC,IAAM8T,EAA4B,CAAA,EAC5BpoN,EAAS,CACbsmC,IAAAA,EACA6+F,IAAAA,EACAp1G,SAAUhuC,EAAMguC,SAChBukL,SAAAA,GAEE+T,EAAY,KACZ,GAAAtmO,EAAMokO,aAAa5/N,KAAM,CAAA,IAAA+hO,EAAAC,EACrB/B,EAAUR,GAAW1/K,EAAKvkD,EAAMyqN,OAAQrnE,EAAIoxE,OAAQjC,GAI1D,YAFAgU,EADAD,EAAYlC,EAAa1/N,IAAI+/N,IAAY,CAAA,SACzC,IAAA8B,OAAA,EAAAA,EAAWja,SAAU,IAAM+Z,EAAU/Z,QAAUga,EAAUha,kBACzDka,EAAAF,SAAA,IAAAE,OAAA,EAAAA,EAAWzhL,SAAU,IAAMshL,EAAUthL,QAAUuhL,EAAUvhL,SACrDuhL,EAAU5B,QAAgB,OAAA,IAChC,CACA,OAvDK,SAASzmN,EAA2C02E,GAC3D,IAAQyuD,EAA4BnlI,EAA5BmlI,IAAKmvE,EAAuBt0M,EAAvBs0M,SAAUvkL,EAAa/vB,EAAb+vB,SACfq4L,EAAkD1xI,EAAlD0xI,UAAWjB,EAAuCzwI,EAAvCywI,WAAY/M,EAA2B1jI,EAA3B0jI,uBACzBhG,EAAW2S,GAAW/mN,EAAQ6Z,EAAQ9Y,MAAO,CACjDuqM,iBAAkB50H,EAAM40H,iBACxBt9L,WAAYjsB,EAAMisB,aAEdw6M,EAAWrO,GAAqBh1E,EAAKmvE,EAAU8F,EAAwBxJ,GACvE0U,EAAgBG,GAAiBtgF,EAAI7iH,UAAA+Q,GAAAA,GAAA,CAAA,EAAgBrzB,GAAA,GAAA,CAAQpiB,KAAM,QACnE6kC,EAAU,CACd+lM,EAAS/lM,QACT6iM,EAAAtqO,EAAAA,EAAAA,EAAAA,EAAAA,EAAA,CAAA,EAEGk2N,EAAkB/rE,EAAI7oG,UACtBiyK,EAAeI,UAAY5+K,EAAWq4L,EAAU/Z,UAAY8Y,GAC5D5Y,EAAeK,WAA0B,IAAb0F,GAAkBvyN,EAAM0qN,mBACpDyD,EAAe/qE,EAAI9lG,OAAS8lG,EAAI9lG,OAAuB,SAAd8lG,EAAI9lG,OAE7C+zK,EAAsBtyL,OAAwB,SAAfqkH,EAAIoxE,SAUlCkS,EAAc9pO,EAAWwmJ,EAAI3wG,OAAS2wG,EAAI3wG,MAAAnB,GAAAA,MAAWrzB,GAAQ,CAAA,EAAA,CAAApiB,KAAM,QAAUunJ,EAAI3wG,MACjFA,EAAQnB,GAAAA,GAAKo1L,CAAAA,EAAAA,GAAgBL,GAEjC,OAAA50L,EAAAK,iBAAAwC,aAAA,CAAAz2C,IAASulJ,EAAIoxE,QAAUjC,EAAU7gL,MAAOhR,EAAS0G,MAAOq/L,EAASr/L,OAAWqL,WAV9D,SAACv7C,GAAkB,IAAAuyJ,EAC3BtmI,EAAImuB,GAAAA,MAAKrzB,GAAA,GAAA,CAAQ/mB,EAAAA,IACnBksJ,EAAIzqE,iBACNzhF,EAAEyhF,0BAEJ8wE,EAAAzpJ,EAAM0hJ,mBAAN+H,OAAAA,EAAA5xJ,KAAAmI,EAAoBmjB,MAKwE,CACzFigI,EAAI7oG,SAAW0rL,EAAmBhoN,EAAQ,CAAEo0M,SAAAA,IAAcA,GAGjE,CAoBWsU,CAAS1oN,EAAQ,CACtBmnN,WAAAA,EACA/M,uBAAAA,EACAuO,aAAcpd,EAAQvyN,OACtBovO,UAAAA,EACA9c,iBAAkBvpN,EAAMupN,kBAE5B,IAEA,OAAA93K,EAAAK,iBAAAwC,aAAA,CAAA3f,IAES2wM,GACDO,EAAazsO,MACjB,CAAAguC,cAAA++L,EAAOZ,EAASnsO,aAAA,IAAA+sO,OAAA,EAATA,EAAgB/+L,YAChB1G,EAAQtnC,OA9IE,SAACmrD,EAAmBvW,GACzC,IAAM64L,EAAgE,CAAA,EAQ/D,OANO9B,GAAAv0N,SAAQ,SAACqgK,GACrBg2D,EAAA,KAAAjxM,OAAiBpqB,GAAWqlK,KAAgB,SAAC35K,GAAkB,IAAA4vO,EACvD3jN,EAAI,CAAEjsB,EAAAA,EAAGqtD,IAAAA,EAAKvpD,MAAOgzC,GACO84L,QAAlCA,EAAA9mO,EAAA,QAAA41B,OAAcpqB,GAAWqlK,gBAASi2D,GAAlCA,EAAAjvO,KAAAmI,EAA+FmjB,GAEnG,IACO0jN,EAsICE,CAAexiL,EAAKvkD,EAAMguC,WAE7B,CAAA60I,EAAkBzpL,MACf,CAAAq4C,EAAAK,YAAA,KAAA,CAAA1K,MAAY,CAAEyB,UAAQjT,OAAG+sJ,EAAWvpL,MAAA,MAAWsvC,OAAQ,SAAO,OAC9D09L,IAIZ,ukBE7VkC,GAAAxwM,OAAA19B,EAAI6sO,IAAe,CAAA,eAkBhD,IAAMiC,GAAmB,CAC9B,WACA,SACA,eACA,gBACA,UACA,QACA,YACA,eACA,cACA,oBACA,SACA,mBACA,aACA,SACA,cACA,eACA,aACA,gBACA,iBACA,iBACA,kBACA,kBACA,eACA,WACA,YACA,aAGFC,GAAe52L,kBAAgB,CAC7Br4C,KAAM,QAENgI,MAAOsxC,GAAA,CACLnoB,YAAapwB,OACb4L,KAAMvN,MACNoyN,QAASpyN,MACT+7N,yBAA0Bp6N,OAC1Bs/N,uBAAwBtzN,IACxB0uN,iBAAkBv6N,OAElBmsO,SAAU,CAAC,EACXpN,WAAYj/N,OACZu6N,gBAAiB/xM,QACjBigK,cAAevoL,OAEfohO,gBAAiB,CAAC,EAClB1sL,iBAAkB/zC,SAClBqtO,kBAAmBrtO,SACnB8vN,aAAc,CAAC5wN,OAAQc,UACvBuwN,YAAa,CAACrxN,OAAQc,UACtBstO,UAAW,CAAC/vO,OACZgwO,SAAU,CAACruO,OAAQC,SAChBqiB,GAAK6tM,GAAgB8d,KAI1B12L,MAAAA,SAAMtwC,GACJ,IAAMq4D,EAAcx3C,KACpB4wD,EAAqDv9B,SAAOl0C,GAApD2E,EAAM8sE,EAAN9sE,KAAM6kN,EAAA/3I,EAAA+3I,QAASiB,IAAAA,OAAQC,EAAkBj5I,EAAlBi5I,kBAC/B11I,EAA4BpgD,GAAU,QAAS50B,EAAM6jB,QAA7ClsB,EAAGq9E,EAAHr9E,EAAGu9B,EAAA8/C,EAAA9/C,aACXu9L,EAAgDlG,KAAxC6C,EAAAqD,EAAArD,oBAAqB5C,EAAeiG,EAAfjG,eACrB4X,EAAiBD,GAAqBx/N,EAAM6kN,EAASiB,EAAQC,GAA7D0Z,aAID,MAAA,CACLzsO,EAAAA,EACAu9B,aAAAA,EACAmjC,YAAAA,EACA+2J,oBAAAA,EACAiY,aAPmBxvN,EAAAA,UAAS,WAAA,MAAM,CAAC20M,EAAerrL,SAQlDqrL,eAAAA,EACA4X,aAAAA,EAEJ,EAEAtvL,OAAS,WAAA,IAAAwyL,EAAAC,EAAAC,EAAAC,EAAApiM,EAAAxkC,KAiBD6mO,EAAa,SAACd,EAAsB/qO,GAClC,IAAA8rO,EAAQt8N,GAAUxP,GAClB+rO,EAAcviM,EAAKgzB,YAAYsvK,GACrC,GAAI,CAAC,GAAI,UAAM,GAAW,GAAOjwN,SAASkwN,GAAqB,OAAA,KACzD,IAAAC,EAAgBxiM,EAAKkuL,iBAAmBluL,EAAKmkL,QAAQhvJ,MAAK,SAAC4oF,GAAA,MAAsB,SAAdA,EAAIkrE,SACvE5tL,EAAU,CAAC2E,EAAK+pL,oBAAoBC,KAAMhqL,EAAK+pL,oBAAoBuY,IACnE1P,EAAa5yL,EAAKge,SAAWhe,EAAK4yL,WAAa,EAAI5yL,EAAK4yL,WAE9D,OAAAxmL,EAAAA,YAAA,KAAA,CAAAC,MACahR,6BAA8B7kC,iCAC1B+qO,GACX,CAAAn1L,EAAAK,YAAA,MAAA,CAAAJ,MAAAz4C,KACYosC,EAAK+pL,oBAAoBE,aAAeuY,GAAczgM,MACzDygM,EAAgB,CAAEl/L,gBAAUsvL,EAAA,OAAmB,CAAC,GAAA,CAAAxmL,EAAAK,YAAA,MAAA,CAAAJ,MAE3CrM,EAAK+pL,oBAAoBG,kBAAA,CAAmBqY,WAO5DhB,EAAe/lO,KAAK2oN,QAAQvyN,OAC5BmuO,EAAwB,QAAxBkC,EAAazmO,KAAK8D,YAAM,IAAA2iO,OAAA,EAAXA,EAAWrwO,OACxB6wO,EAAiC,GAEjCC,EAAa,CACjB,cACA,2BACA,yBACA,SACA,WACA,kBACA,aACA,UAGIC,EAAannO,KAAK4gL,cAAc51I,gBAAgBzyC,MAAQyH,KAAK4gL,cAAc52I,YAAYzxC,MAAQyH,KAAK8D,KAE9FqjO,SAAAA,EAAAx3N,SAAQ,SAAC+zC,EAAKvW,GAAa,IAAAi6L,EAC/Bxd,EAASplL,EAAKolL,QAAU,KACxByZ,EAAWx/N,GAAI6/C,EAAKkmK,GACpByd,EAAU52L,GAAAA,GAAA,GACXj2B,GAAKgqB,EAAK0jJ,OAAQ+7C,KAAW,GAAA,CAChCra,OAAAA,EACAlmK,IAAAA,EACAilK,QAASnkL,EAAKmkL,QACdx7K,SAAUuW,EAAItW,sBAAwBD,EACtCo3L,WAAAA,EACAhB,aAAc/+L,EAAK++L,aACnB3iD,cAAep8I,EAAKo8I,cACpB7qJ,OAAwB,QAAhBqxM,EAAA5iM,EAAK8hM,iBAAW,IAAAc,OAAA,EAAhBA,EAAgBvwN,SAASwsN,GACjC5tI,QAASjxD,EAAK+hM,WAAalD,GACxB7oN,GAAKgqB,EAAK0jJ,OAAQg/C,IAGnB1iM,EAAKq8G,cACPwmF,EAAQxmF,YAAcr8G,EAAKq8G,aAG7B,IAAMymF,qCAGGzjO,GAAI6/C,EAAKlf,EAAKolL,QAAU,OAASz8K,GAClCk6L,EACJ,CAAAE,aAAc/iM,EAAKuI,mBAHVvI,EAAK5mB,QASlB,GAHAqpN,EAAW1kO,KAAK+kO,GAGZ9iM,EAAK6hM,kBAAmB,CAC1B,IAAM/jN,EAAI,CACRohC,IAAAA,EACAvpD,MAAOgzC,EACPw7K,QAASnkL,EAAKmkL,QACdyO,WAAY5yL,EAAK4yL,WACjB1E,gBAAiBluL,EAAKkuL,iBAElB8U,EAAkBhjM,EAAK6hM,kBAAkB/jN,GAC5BklN,GAAAP,EAAW1kO,KAAKilO,EACrC,CACF,IAEM,IApGe7e,EACbyO,EAmGFpmM,EAAQ61M,CAAAA,EAAWd,EAAc,mBAAmBhxM,OAAGkyM,GAAYJ,EAAWd,EAAc,mBAE5FxtN,IAAgBmuN,QAANA,EAAC1mO,KAAK8D,YAAL4iO,IAAKA,GAALA,EAAWtwO,QAAW4J,KAAKy1B,SAAYz1B,KAAK8oN,cAAiB9oN,KAAKupN,aAG7ExiC,EAAYhyJ,cAAAA,OAAmB,QAAnB4xM,EAAc3mO,KAAK4gL,qBAAL+lD,IAAKA,OAALA,EAAAA,EAAoB18L,WAAW1xC,MAAA,OACzDkvO,EAA+Bb,QAApBA,OAAKhmD,yBAAegmD,GAApBA,EAAoB57L,gBAAgBzyC,MACjD,CACEqH,UAAWmnL,EACX,gBAAiBA,EACjB,iBAAkBA,EAClB,oBAAqBA,QAEvB,EAEJ,OAAAn2I,EAAAA,YAAA,QAAA,CAAAC,MACgB7wC,KAAKwmO,aAAAjgM,MAAAkK,MAA0Bg3L,IAC1ClvN,CAAAA,GArHgBowM,EAqHM3oN,KAAK2oN,QApHxByO,EAAa5yL,EAAKge,SAAWhe,EAAK4yL,WAAa,EAAI5yL,EAAK4yL,WAC9DxmL,EAAAA,YAAA,KAAA,CAAAC,MACa,CAACrM,EAAKmnL,eAAeW,SAAUl0N,EAAGosC,GAAAA,EAAK+pL,oBAAoBC,KAAOhqL,EAAKkuL,mBAAiB,CAAA9hL,EAAAK,YAAA,KAAA,CAAAiT,QACpFykK,EAAQvyN,QACnB,CAAAw6C,EAAAK,YAAA,MAAA,CAAAJ,MACS,CAACrM,EAAKmnL,eAAe9gM,MAAAzyB,EAAA,GAAUosC,EAAK+pL,oBAAoBE,aAAejqL,EAAKkuL,kBACnFnsL,MAAO/B,EAAKkuL,gBAAkB,CAAE5qL,MAAA,GAAA/S,OAAUqiM,EAAA,OAAmB,CAAC,GAE7D,CAAA5yL,EAAKgzB,YAAY,UAAYhzB,EAAK1tC,EAAE0tC,EAAKnQ,aAAaxJ,cA4GtBmG,GAG7C,ICjOK,SAASyzJ,GAAcC,GAC5B,OAAKA,EACEl+H,MAAMruD,OAAOusL,IAASA,YAAUA,EAAA,MADrBA,CAEpB,CAEA,SAAwBgjD,GAASvoO,GACzB,IAAAyxE,EAAyFv9B,EAAAA,OAAOl0C,GAA9FwE,EAAMitE,EAANjtE,KAAM6+C,EAAAouB,EAAApuB,SAAUg6J,EAAQ5rI,EAAR4rI,OAAQ3gK,EAAA+0B,EAAA/0B,MAAOmuK,EAAep5I,EAAfo5I,cAAehiL,EAAA4oC,EAAA5oC,OAAQozC,EAAWxK,EAAXwK,UAAW2uI,EAAAn5I,EAAAm5I,kBAEzE6H,EAA8ClG,KAAtCC,EAAAiG,EAAAjG,eAAgBgC,EAAkBiE,EAAlBjE,kBAChB14L,EAASD,KAATC,KACAZ,EAAiBN,GAAU,QAAS50B,EAAM6jB,QAA1CqR,aACFszM,EAAY3wN,EAAAA,UAAS,WAAA,IAAA4wN,EAAA,OAAoBA,QAApBA,EAAMjkO,EAAKpL,aAASqvO,IAAAA,EAAAA,EAAAvzM,EAAa97B,MAAMoL,QAE5DkkO,EAAe7wN,EAAAA,UAAS,WAAA,MAAM,CAClC20M,EAAejiM,MAAAtxB,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAA,CAAA,EAEZ68B,EAAK18B,MAAMovO,EAAUpvO,OAA6B,WAApBovO,EAAUpvO,OACxCozN,EAAenpK,SAAWA,EAASjqD,OACnCozN,EAAeU,QAAU7P,EAAOjkN,OAChCozN,EAAe9vK,MAAQA,EAAMtjD,OAC7BozN,EAAel2L,QAAUt2B,EAAMs2B,SAC/Bk2L,EAAekB,cAAgB1tN,EAAMiqN,kBACrCuC,EAAe9B,kBAAoB1qN,EAAM0qN,mBACzC8D,EAAkB3D,EAAczxN,OAAiC,WAAxByxN,EAAczxN,WAItDuvO,EAAqB9wN,EAAAA,UAAS,WAAA,MAAO,CACzCgxB,OAAQy8I,GAAcz8I,EAAOzvC,OAC7B6iF,UAAWqpG,GAAcrpG,EAAU7iF,OACnC,IAEIwvO,EAAqB/wN,EAAAA,UAAS,WAAA,MAAO,CACzC8wB,MAAO28I,GAAcslC,EAAkBxxN,OACvC,IAEK,MAAA,CACLsvO,aAAAA,EACA5kG,eAAgBhuG,EAAK18B,MACrBwvO,mBAAAA,EACAD,mBAAAA,EAEJ,okBCNA,IAAAE,GAAex4L,kBAAgB,CAC7Br4C,KAAM,QAENgI,MAAO,CACLmpB,YAAapwB,OACbo6N,yBAA0Bp6N,OAC1B8/N,cAAer3M,QACfsnN,YAAatnN,QACby6D,UAAW,CAACljF,OAAQC,QACpB6vC,OAAQ,CAAC9vC,OAAQC,QACjBq/N,uBAAwBtzN,IACxBwyN,YAAar+N,OACbmqD,SAAU7hC,QACVuxM,iBAAkBvxM,QAClB8oM,UAAW9oM,QACX+H,OAAQ,CAACxwB,OAAQc,UACjB64N,kBAAmBx5N,OACnBy5N,OAAQv7N,MACR2xO,mBAAoB7vO,OACpBu6N,iBAAkBv6N,QAGpBo3C,eAAMtwC,EAAA48B,GAA4C,IAAvB5d,EAAA4d,EAAA5d,MACnBgqN,EAAWr0M,EAAAA,MACXs0M,EAAa1c,KACX6B,EAAuC6a,EAAvC7a,mBAAoB5B,EAAmByc,EAAnBzc,eACtB0c,EAAerxN,EAAAA,UAAS,WAAA,MAAM,CAClCu2M,EAAmBvlB,OAAA5vM,EAAAA,EAAAA,KAEhBm1N,EAAmBE,MAAQ9sM,QAAQxhB,EAAMi8E,WAAaj8E,EAAM6oC,SAC5D2jL,EAAenpK,SAAWrjD,EAAMqjD,UAAYrjD,EAAM+yN,kBAClD3E,EAAmBb,eAAiBvtN,EAAM+yN,sBAKzCoW,EAAiBtxN,EAAAA,UAAS,WAC9B,IAAM5S,EAAkC,CAAA,EAElCmkO,EAAiB,SAAC5f,GACtB,IAAA,IAAS3wN,EAAI,EAAGy4B,EAAMk4L,EAAQvyN,OAAQ4B,EAAIy4B,EAAKz4B,IAAK,CAClD,IAAMglB,EAAO2rM,EAAQ3wN,GACjB,GAAAglB,EAAKknC,QAAU,EACjB,IAAA,IAASpkB,EAAI9nC,EAAI,EAAG8nC,EAAI9nC,EAAIglB,EAAKknC,QAASpkB,IACpC6oL,EAAQ7oL,KACN17B,EAAAukN,EAAQ7oL,GAAG6zL,SAAU,GAK3B32M,EAAKC,UACPsrN,EAAevrN,EAAKC,SAExB,GAGI+T,EAAO7xB,EAAM2yN,OAAO,GAGnB,OAFPyW,EAAev3M,GAER5sB,CACT,IAaO,OAAAqsC,GAAAA,GAAA,CAAA,EACF23L,GAAA,CAAA,EAAA,CACHE,eAAAA,EACAD,aAAAA,EACAF,SAAAA,EACAhqN,MAAAA,EACAqqN,aAjBmB,SAAC9O,GAEpB,IADA,IAAIrgN,EAASqgN,EACNrgN,GAAQ,CAAA,IAAAovN,EAEb,WAAAA,EADApvN,EAASA,EAAOoqB,yBACO,UAAnBglM,EAAQhpM,iBAARgpM,IAAmBA,GAAnBA,EAAmBnwM,SAAAvD,GAAAA,OAAY51B,EAAMmpB,YAAmB,WAC1D,KAEJ,CACO,OAAAjP,IAWX,EAEA46B,OAAS,WAAA,IAELujL,EACAd,EAGMgS,EACAC,EAPDnkM,EAAAxkC,KA0GP,OAAA4wC,EAAAA,YAAA,QAAA,CAAA9c,IAAA,WAAA+c,MAC+B7wC,KAAKqoO,cAC/BO,EA1GHpR,EA0GoBx3N,KAAKw3N,uBAzGzBd,EAyGiD12N,KAAK02N,YAtGhDgS,MAAkBxkO,IAClBykO,EAAsBnkM,EAAKqtL,kBAAkBvG,qBAC5C9mL,EAAKstL,OAAO1tN,KAAI,SAACs/C,EAAKvW,GAC3B,IAAM07L,EAAQnlL,EAAIt/C,KAAI,SAACm+I,EAA0BpoJ,GAAkB,IAAA6wN,EAE7D,GAAAxmL,EAAK8jM,eAAe/lF,EAAIoxE,QAAgB,OAAA,KACtC,IAAA9J,EAAoB8e,EAAoB9kO,IAAI0+I,GAClD,GAAc,IAAVpoJ,GAAe0vN,EAAkB4B,QAAU,EAC7C,IAAA,IAAS3rL,EAAIqN,EAAW,EAAGrN,EAAIqN,EAAW08K,EAAkB4B,QAAS3rL,IACnE4oM,EAAYllO,IAAIghC,EAAKstL,OAAOhyL,GAAG,IAAI,GAGvC,IAvIuB1e,EAuIjB0nN,EAAWvR,GAAqBh1E,EAAKpoJ,EAAOq9N,EAAwBhzL,EAAKwpL,sBACzE+a,EAAY,CAChBxmF,IAAAA,EACAmvE,SAAUv3N,EACVupD,IAAK,CAAC,EACNvW,UAAU,GAENu1L,EAAgBG,GAAiBtgF,EAAI7iH,UAAA+Q,GAAAA,GAAA,CAAA,EAAgBs4L,GAAA,GAAA,CAAW/tO,KAAM,QACtEguO,EAAkBnG,GAAiBtgF,EAAI0mF,YAAAx4L,GAAAA,GAAA,CAAA,EAAkBs4L,GAAA,GAAA,CAAW/tO,KAAM,QAC1EkuO,EAAoB1kM,EAAKouL,iBAAiB9vL,MAAsB,SAAdy/G,EAAIkrE,MACtD0b,EAAqB3kM,EAAKouL,iBAAiB5vL,OAAuB,UAAdu/G,EAAIkrE,MACxD2b,EAAc5kM,EAAKyjM,eAAiBiB,GAAqBC,GACzDzR,EAAY,CAChBoR,EAASjpM,QACT6iM,EACAsG,EAAA5wO,EAAAA,EAAAA,EAAAA,EAAA,CAAA,EAGGosC,EAAK+oL,mBAAmBC,WAAakb,EAAY7kO,IAAI0+I,IAAG,GAAAxtH,OACrDyP,EAAKlc,YAAyByM,eAAAA,OAAAwtH,EAAIoxE,QAAWpxE,EAAIoxE,QACpDnvL,EAAK8oL,eAAe/qE,EAAI9lG,OAAS8lG,EAAI9lG,OAAuB,SAAd8lG,EAAI9lG,OAElDjY,EAAKgsL,sBAAsBK,WAAauY,IAIvCthM,EADiCkjL,QAAfA,EAACzoE,EAAItlI,gBAAJ+tM,IAAcA,GAAdA,EAAc50N,QACzBizO,MAAmB3S,IAAAA,EAAcn0E,EAAIoxE,aAA6C,YAAhC+C,aAAAA,EAAAA,EAAcn0E,EAAIoxE,QAAc,MAC1FrtL,QAAewiM,CAAAA,EAAAA,EAASviM,OAAS,QAAKuB,MAAAA,IACtCwhM,EAAU10K,GAAYpwB,EAAKrmB,MAAOokI,EAAKpoJ,GACvCovO,EACJ/kM,EAAKilL,YAAc2f,EACf,CACE3tI,YAAa,SAACplG,GACQ,IAAAmzO,EAAAC,EAGpB,GAHIjlM,EAAKilL,YACkB+f,QAAzBA,EAAAhlM,EAAK0jM,0BAAoBuB,IAAAD,GAAAC,QAAAA,EAAzBD,EAAyBxT,yBAAzByT,IAAyBA,GAAzBA,EAAAzyO,KAAAwyO,EAA6CnzO,EAAGksJ,EAAKpoJ,KAElDivO,EACG,IAAA77L,EAAQj4B,YAAW,WAAM,IAAAo0N,EAEtB,QAAAA,EADQllM,EAAK2jM,SAAS3sL,iBAAiB,MACvCrhD,UAAA,IAAAuvO,GAAAA,EAAQv/K,gBAAgB,aAC/Bv0C,aAAa23B,KACZ,GAEP,EACAo8L,YAAa,SAACtzO,GAAkB,IAAAuzO,EAAAC,EAC9BrlM,EAAKilL,YAAsCmgB,QAAzBA,EAAAplM,EAAK0jM,0BAAoB2B,IAAAD,GAAAC,QAAAA,EAAzBD,EAAyBrU,yBAAzBsU,IAAyBA,GAAzBA,EAAA7yO,KAAA4yO,EAA6CvzO,EAAGksJ,GACpE,GAEF,GACA1lI,EAAU9gB,EAAWwmJ,EAAI6vE,eAAiB7vE,EAAI6vE,cAAcr0M,IAAG,CAAEwkI,IAAAA,EAAKmvE,SAAUv3N,SAAW,EAC3Fk4N,OAAmC,IAAtB9vE,EAAI6vE,cAA8BzxM,QAAQ4hI,EAAI6vE,eAAiBzxM,QAAQ4hI,EAAI7oG,UACxF9H,GAAS71C,EAAWwmJ,EAAI3wG,OAAS2wG,EAAI3wG,MAAMnB,GAAAA,MAAKs4L,GAAA,CAAA,EAAA,CAAW/tO,KAAM,QAAUunJ,EAAI3wG,QAAU,GAI/F,OAHI2wG,EAAIr+F,QAAU,IAChBtS,EAAMsS,QAAUq+F,EAAIr+F,SAEtBtT,EAAAK,iBAAAwC,aAAA,CAAAz2C,IAESulJ,EAAIoxE,OACT,cAAapxE,EAAIoxE,OAAA9iL,MACV6mL,EAAAnxL,MACAD,GACHsL,EACAi4K,EACA0f,IAEJ34L,EAAAA,YAAA,MAAA,CAAAC,MAAYrM,EAAKmnL,eAAeM,aAC7B,CAAAoG,EAAAzhL,EAAAK,YAAAggL,GAAA,CAAAl7J,UAAA,SAAArtC,OAGW8b,EAAK9b,SAAW8b,EAAK2jM,SAAW,WAAA,OAAM3jM,EAAKgkM,aAAahkM,EAAK2jM,SAAY,OAAA,GACjFjX,eAAgBr0M,GAAY,WAAA,OAAMA,CAClC,EAAA8oJ,aAA2C,WAA7B/tK,EAAO2qJ,EAAI6vE,eAA6B7vE,EAAI6vE,mBAAgB,EAC1ExkJ,iBAAkBppC,EAAK8tL,yBAAAhqM,YACVkc,EAAKlc,cAhNLlH,EAkNZkoN,EAlNY,mBAAAloN,GAAAu8B,oBAAAtlD,OAAAP,UAAAf,SAAAC,KAAAoqB,KAAAu8B,EAAAhhC,QAAAyE,GAkNZkoN,EAAA,CAAAviN,QAAA,WAAA,MAAA,CAAAuiN,EAAA,KAGHA,KAKV,IACA,OAAA14L,EAAAA,YAAA,KAAA,CAAA5zC,IAAgBmwC,GAAA,CAAW07L,GAC7B,MAQJ,ukBC5MF,IAAAiB,GAAet6L,kBAAgB,CAC7Br4C,KAAM,QAENgI,MAAO,CACLyqN,OAAQ1xN,OACR8/N,cAAer3M,QACf62M,uBAAwBtzN,IACxB6kN,SAAUxyN,MACVoyN,QAASpyN,MACTmzN,cAAe,CAACnzN,MAAO8B,OAAQW,UAC/B2wN,aAAc,CAACpzN,MAAO2B,OAAQG,OAAQW,UACtC09N,YAAa,CAACr+N,QACd6wN,cAAe,CAAChxN,OAAQc,UACxB8wN,0BAA2B9wN,SAC3B+wO,cAAeppN,SAIjB8uB,eAAMtwC,EAAmB83B,GACvB,IAAMugC,EAAcx3C,KACdooN,EAAa1c,KACnB96I,EAAiEv9B,SAAOl0C,GAajE,OAAAsxC,GAAAA,GAAA,CACL8yL,aAbuBD,GADP1yJ,EAAVm4I,SAAUn4I,EAAA+3I,UAASiB,OAAkCh5I,EAA1Bk5I,2BAC3ByZ,cAcH6E,GAAA,GAAA,CACH4B,gBAdsB,SAAC1nN,GACjB,IAAEigI,EAAajgI,EAAbigI,IAAK7+F,EAAQphC,EAARohC,IACT,OAAA3nD,EAAWwmJ,EAAI0nF,MACV1nF,EAAI0nF,KAAKlsN,EAAAA,EAAGuE,GAEjB7K,GAAS8qI,EAAI0nF,OAAShzM,EAAQ9Y,MAAMokI,EAAI0nF,MACnChzM,EAAQ9Y,MAAMokI,EAAI0nF,MAAM3nN,IAAMigI,EAAI0nF,KAEpC1nF,EAAI0nF,MAAQpmO,GAAI6/C,EAAK6+F,EAAIoxE,SAOhCn8J,YAAAA,GAEJ,EAEAvjB,OAAS,WAAA,IAAAi2L,EAAA1lM,EAAAxkC,KACP,IAAKA,KAAK2oN,QAAgB,OAAA,KAE1B,IAAM0f,EAAe,CAACroO,KAAK0tN,mBAAmBx6C,OAAQ96K,KAAG4H,KAAK0tN,mBAAmBD,MAAQztN,KAAKg4N,gBACxFmS,EAAqBD,UAALlqO,KAAK+oN,gBAALmhB,IAAKA,OAALA,EAAAA,EAAe9lO,KAAI,SAACs/C,EAAKvW,GACvC,IAAA63L,EAAe7C,GAAoB39L,EAAKklL,cAAe,CAAEhmK,IAAAA,EAAKvW,SAAAA,EAAUnyC,KAAM,SAE9E0nO,EAAgBH,GACpB/9L,EAAKmlL,aACL,CAAEjmK,IAAAA,EAAKvW,SAAAA,EAAUnyC,KAAM,QACvBwpC,EAAKolL,QAAU,MAEjB,OAAAh5K,cAAA,KAAA6C,EAAAqgC,WACUkxJ,EAAc,CAAAhoO,IAAKmwC,EAAU0D,MAAO6xL,IACzCl+L,CAAAA,EAAKmkL,QAAQvkN,KAAI,SAACm+I,EAAKmvE,GAAa,IAAA0Y,EAE7B5E,EAA4B,CAAA,EAC9BC,EAAY,KACZ,GAAAjhM,EAAK++L,aAAa5/N,KAAM,CAAA,IAAA+hO,EAAAC,EACpB/B,EAAUR,GAAW1/K,EAAKlf,EAAKolL,OAAQrnE,EAAIoxE,OAAQjC,GAIzD,YAFAgU,EADAD,EAAYjhM,EAAK++L,aAAa1/N,IAAI+/N,IAAY,CAAA,SAC9C,IAAA8B,OAAA,EAAAA,EAAWja,SAAU,IAAM+Z,EAAU/Z,QAAUga,EAAUha,kBACzDka,EAAAF,SAAA,IAAAE,OAAA,EAAAA,EAAWzhL,SAAU,IAAMshL,EAAUthL,QAAUuhL,EAAUvhL,SACrDuhL,EAAU5B,QAAgB,OAAA,IAChC,CACA,IAAM+B,EAAWrO,GACfh1E,EACAmvE,EACAltL,EAAKgzL,uBACLhzL,EAAKwpL,sBAEDznL,EAAgBkK,MAAKm1L,EAASr/L,OAIpC,OAHuB6jM,QAAnBA,EAAA5lM,EAAKkyL,mBAAL0T,IAAmBA,GAAnBA,EAAmB7nF,EAAIoxE,UACzBptL,EAAMuB,MAAQ/S,GAAAA,OAAGyP,EAAKkyL,YAAYn0E,EAAIoxE,QAAA,OAExC/iL,cAAA,KAAA6C,EAAAqgC,WAAArjC,GAAA,CACYzzC,IAAKulJ,EAAIoxE,QAAW6R,GAAU,CAAA30L,MAAU+0L,EAAS/lM,QAAA0G,MAAgBA,IACxE/B,CAAAA,EAAKwlM,gBAAgB,CACpBtmL,IAAAA,EACAvW,SAAAA,EACAo1G,IAAAA,EACAmvE,SAAAA,KAIP,KAGP,IACMxI,EAAgBlpN,KAAKw3D,YAAY,iBAEvC,OAAK0xJ,GAAmBlpN,KAAK+oN,UAAa/oN,KAAK+oN,SAAS3yN,OACxDw6C,EAAAA,YAAA,QAAA,CAAA9c,IAAA,aAAA+c,MAEiCw3L,EAAA9hM,MAAqB,CAAEwtC,WAAY/zE,KAAK+pO,cAAgB,SAAW,YAC/F7gB,CAAAA,GAAAt4K,EAAAK,YAAA,KAAA,CAAAJ,MACY7wC,KAAKuuN,oBAAoBC,MAClC,CAAA59K,EAAAK,YAAA,KAAA,CAAAiT,QAAalkD,KAAK2oN,QAAQvyN,oCACZ4J,KAAKuuN,oBAAoBG,kBAAmBxF,CAAAA,QAI7DihB,IAXmE,IAc1E,ICvHc,SAAAE,GAAgBlrO,EAAuB44N,GAC/C,IAAAnnJ,EAAwFv9B,SAAOl0C,GAA7F2E,IAAAA,KAAM0kN,EAAe53I,EAAf43I,cAAeF,EAAA13I,EAAA03I,cAAeC,IAAAA,qBAAsBM,EAAwBj4I,EAAxBi4I,wBAC5DyhB,EAA2Bx2M,EAAAA,KAAM,GACjCy2M,EAAiBz2M,OAAI,GACrB02M,EAAsB12M,OAAI,GAC1B22M,EAA0B32M,EAAAA,KAAM,GAOtC+tD,EAAA7lE,GALoCqa,GAClCiyL,EACAC,EAAqBhwN,MACrB4G,EAAM8qN,eACN,iBACF,GALOygB,EAAY7oJ,EAAA,GAAA8oJ,EAAa9oJ,EAAA,GA8E1B+oJ,EAAmB,WAEd,IADT,IAAM55M,EAAkD,GAC/Ch5B,EAAI,EAAGy4B,EAAM3sB,EAAKvL,MAAMnC,OAAQ4B,EAAIy4B,EAAKz4B,IAAK,CAC/C,IAAA0rD,EAAM5/C,EAAKvL,MAAMP,GACjBqrO,EAAWx/N,GAAI6/C,EAAKvkD,EAAMyqN,QAC5B8gB,EAAWnyO,MAAMse,SAASwsN,IAC5BryM,EAAKzuB,KAAK,CAAEmhD,IAAAA,EAAKvW,SAAUn1C,GAE/B,CACO,OAAAg5B,GAGH65M,EAAiB,SAAC75K,EAAoC8iC,GAC1D,GAAK00H,EAAcjwN,MAAnB,CACM,IAAEmrD,EAAesN,EAAftN,IAAKvpD,EAAU62D,EAAV72D,MACPkpO,EAAWx/N,GAAI6/C,EAAKvkD,EAAMyqN,QAE5B2gB,EAAehyO,OACjB+xO,EAAyB/xO,MAAQ4B,EApCX,SAAC62D,GAChBlyB,SAAAkwB,eAAeC,kBAMxB,IALM,IAAEvL,EAAQsN,EAARtN,IACFm1B,EAAeyxJ,EAAyB/xO,MACxCqzC,EAAapsC,KAAK4U,IAAIq2N,EAAwBlyO,MAAOsgF,GACrDhtC,EAAWrsC,KAAKC,IAAIgrO,EAAwBlyO,MAAOsgF,GACnDiyJ,EAA8D,GAC3D9yO,EAAI4zC,EAAY5zC,GAAK6zC,EAAU7zC,IACrB8yO,EAAAvoO,KAAK,CAAEmhD,IAAK5/C,EAAKvL,MAAMP,GAAIm1C,SAAUn1C,IAElD,IAAA+yO,EAAmBD,EAAiB1mO,KAAI,SAAC4Y,GAAA,OAASnZ,GAAImZ,EAAK0mC,IAAKvkD,EAAMyqN,WAC5E+gB,EAAcI,EAAkB,CAC9BC,cAAeF,EACf9vO,KAAM,SACNiwO,eAAgBvnL,IAuBhBwnL,CAAkBl6K,GAClBw5K,EAAoBjyO,OAAQ,GACnBmyO,EAAWnyO,MAAMse,SAASwsN,IAA+B,YAAlBvvI,aAAA,EAAAA,EAAOvnC,QAClDs8J,EAAwBtwN,SA7FV,SAACy4D,GAChB,IAAEtN,EAAesN,EAAftN,IAAKvpD,EAAU62D,EAAV72D,MACPkpO,EAAWx/N,GAAI6/C,EAAKvkD,EAAMyqN,QAC5B,GAAwB,WAAxBpB,EAAcjwN,MAAoB,CAC9B,IAAAwyO,EAAmBL,EAAWnyO,MAAMnC,OAAS,EAAI,CAACitO,GAAY,GACpEsH,EAAcI,EAAkB,CAC9B/vO,KAAM,WACNgwO,cAAe,CAAC,CAAEtnL,IAAAA,EAAKvW,SAAUhzC,IACjC8wO,eAAgBvnL,GAEpB,MAAA,GAAmC,aAAxB8kK,EAAcjwN,MAAsB,CAGpC,IAFT,IAAMwyO,EAAmBL,EAAWnyO,MAAM+lB,QAAO,SAACxnB,GAAA,OAAMA,IAAMusO,KACxD2H,EAA2D,GACxDhzO,EAAI,EAAGy4B,EAAM3sB,EAAKvL,MAAMnC,OAAQ4B,EAAIy4B,EAAKz4B,IAAK,CAC/C0rD,IAAAA,EAAM5/C,EAAKvL,MAAMP,GACnB+yO,EAAiBl0N,SAAShT,GAAI6/C,EAAKvkD,EAAMyqN,UAC3CohB,EAAczoO,KAAK,CAAEmhD,IAAAA,EAAKvW,SAAUn1C,GAExC,CACA2yO,EAAcI,EAAkB,CAC9B/vO,KAAM,WACNgwO,cAAAA,EACAC,eAAgBvnL,GAEpB,EAuEIynL,CAAen6K,GACfs5K,EAAyB/xO,MAAQ4B,KArElB,SAAC62D,GACd,IAAEtN,EAAQsN,EAARtN,IACF2/K,EAAWx/N,GAAI6/C,EAAKvkD,EAAMyqN,QAC5B,GAAwB,WAAxBpB,EAAcjwN,MACFoyO,EAAA,CAACtH,GAAW,CACxB2H,cAAe,CAAC,CAAEtnL,IAAAA,EAAKvW,SAAU6jB,EAAI72D,QACrC8wO,eAAgBvnL,EAChB1oD,KAAM,eAEH,CAGI,IAFT,IAAM+vO,EAAmBL,EAAWnyO,MAAMw8B,OAAOsuM,GAC3C2H,EAA2D,GACxDhzO,EAAI,EAAGy4B,EAAM3sB,EAAKvL,MAAMnC,OAAQ4B,EAAIy4B,EAAKz4B,IAAK,CAC/C0rD,IAAAA,EAAM5/C,EAAKvL,MAAMP,GACnB+yO,EAAiBl0N,SAAShT,GAAI6/C,EAAKvkD,EAAMyqN,UAC3CohB,EAAczoO,KAAK,CAAEmhD,IAAAA,EAAKvW,SAAUn1C,GAExC,CACA2yO,EAAcI,EAAkB,CAC9BC,cAAAA,EACAC,eAAgBvnL,EAChB1oD,KAAM,UAEV,EAkDEowO,CAAap6K,GACbs5K,EAAyB/xO,MAAQ4B,EAjBT,GA2CtBkxO,EAA0B,WAC9Bb,EAAoBjyO,OAAQ,GAGxB+yO,EAAuB,SAACj1O,GAAqB,IAAA+lH,EAhBxBmvH,EACnBC,EACAR,EAZkBS,EA2BlBv4J,EAAO78E,EAAE68E,eAAQkpC,EAAA/lH,EAAE2G,wBAAFo/G,EAAO9gF,QAE1B,GAAA8/E,GAAehkH,KAAK87E,GAAO,CAC7B78E,EAAEw8E,iBACI,IAAA14E,EAAQqF,KAAK4U,IAAItQ,EAAKvL,MAAMnC,OAAS,EAAGk0O,EAAyB/xO,MAAQ,GACnD,WAAxBiwN,EAAcjwN,MACDsyO,EAAA,CAAEnnL,IAAK5/C,EAAKvL,MAAM4B,GAAQA,MAAAA,EAAO9D,EAAAA,GAAK,CAAEk2D,OAAQ,WAE/D+9K,EAAyB/xO,MAAQ4B,CAE1B,MAAA,GAAAkhH,GAAajkH,KAAK87E,GAAO,CAClC78E,EAAEw8E,iBACF,IAAM14E,EAAQqF,KAAKC,IAAI,EAAG6qO,EAAyB/xO,MAAQ,GAC/B,WAAxBiwN,EAAcjwN,MACDsyO,EAAA,CAAEnnL,IAAK5/C,EAAKvL,MAAM4B,GAAQA,MAAAA,EAAO9D,EAAAA,GAAK,CAAEk2D,OAAQ,WAE/D+9K,EAAyB/xO,MAAQ4B,CAE1B,MAAA,GAAAshH,GAAUrkH,KAAK87E,GAAO,CAC/B78E,EAAEw8E,iBAEF,IAE+B64J,EAFzBvxO,EAAQmwO,EAAyB/xO,MAEvC,GAAIiyO,EAAoBjyO,MACI,QAA1BmzO,EAAAvsO,EAAM+qN,yBAAoB,IAAAwhB,GAA1BA,EAAA10O,KAAAmI,EAA0B,CACxBotD,OAAQ,uBACRy+K,cAAeJ,WAEnB,GAAY/hB,EAAwBtwN,MAE7B,CAAA,IAAAozO,EACqB,QAA1BA,EAAAxsO,EAAM+qN,yBAAoB,IAAAyhB,GAA1BA,EAAA30O,KAAAmI,EAA0B,CACxBotD,OAAQ,sBACRy+K,cAAeJ,KAEnB,MANEC,EAAe,CAAEnnL,IAAK5/C,EAAKvL,MAAM4B,GAAQA,MAAAA,EAAO9D,EAAAA,GAOzC,MAAAslH,GAAUvkH,KAAK87E,IAExBq3J,EAAehyO,OAAQ,EACvBkyO,EAAwBlyO,MAAQ+xO,EAAyB/xO,OAChDijH,GAAWpkH,KAAK87E,IAAS0oC,GAAUxkH,KAAK87E,IAlEnDy3J,EAAc,GAAI,CAChBK,cAAe,GACfC,oBAAgB,EAChBjwO,KAAM,qBAERywO,EAAAtsO,EAAM+qN,gCAANuhB,EAAAz0O,KAAAmI,EAA0B,CAAEotD,OAAQ,QAASy+K,cAAe,KAC5DV,EAAyB/xO,OAAQ,EA+DP8yO,KACfxvH,GAAQzkH,KAAK87E,KA5DlBs4J,EAAa1nO,EAAKvL,MAAM6L,KAAI,SAAC4Y,UAASnZ,GAAImZ,EAAM7d,EAAMyqN,WACtDohB,EAAgBlnO,EAAKvL,MAAM6L,KAAI,SAACs/C,EAAKvW,GAAc,MAAA,CAAEuW,IAAAA,EAAKvW,SAAAA,EAAW,IAC3Ew9L,EAAca,EAAY,CACxBR,cAAAA,EACAC,oBAAgB,EAChBjwO,KAAM,WAEkB,QAA1BuwO,EAAApsO,EAAM+qN,yBAAoB,IAAAqhB,GAA1BA,EAAAv0O,KAAAmI,EAA0B,CAAEotD,OAAQ,aAAcy+K,cAAAA,IAClDV,EAAyB/xO,OAAQ,GAyD5BkjH,GAAUrkH,KAAK87E,IACMm4J,KAItBO,EAAqB,SAACv1O,GAAqB,IAAAw1O,EACzC34J,EAAO78E,EAAE68E,eAAQ24J,EAAAx1O,EAAE2G,wBAAF6uO,EAAOvwM,QAC1BqgF,GAAUvkH,KAAK87E,KACjBq3J,EAAehyO,OAAQ,IAcpB,MAAA,CACLmyO,WAAAA,EACAG,eAAAA,EACAiB,6BAbmC,WAChCjtM,GAAAk5L,EAASx/N,MAAO,UAAW+yO,GAC3BzsM,GAAAk5L,EAASx/N,MAAO,QAASqzO,IAY5BG,gCATsC,WAClC7sM,GAAA64L,EAASx/N,MAAO,UAAW+yO,GAC3BpsM,GAAA64L,EAASx/N,MAAO,QAASqzO,IASjC,okBCvNkC,SAAA7iF,GAAA3nI,GAAA,MAAA,mBAAAA,GAAAu8B,oBAAAtlD,OAAAP,UAAAf,SAAAC,KAAAoqB,KAAAu8B,EAAAhhC,QAAAyE,EAAA,CAGG8iN,GAAc9/N,KAAI,SAACtN,uBAAaA,EAAA,IAAKi+B,OADzC,CAAC,cAAe,aAAc,SAAU,UAAW,YAOpF,IAAAi3M,GAAex8L,kBAAgB,CAC7Br4C,KAAM,aAENgI,MAAOsxC,GAAAA,MACFtxC,IAAA,CAAA,EAAA,CAIHknO,kBAAmBrtO,SACnBizO,oBAAqBjzO,SACrBivO,YAAatnN,UAGfu7B,MAAO,CAAC,uBAERzM,eAAMtwC,EAAuB83B,GAC3B,IAAQwxF,EAAap1E,EAAAA,OAAOl0C,GAApBspH,SACFjxD,EAAcx3C,KACd+3M,EAAWjkM,EAAAA,MACXmkM,EAAcnkM,EAAAA,MACdo4M,EAAep4M,EAAAA,MACfq4M,EAAmBr4M,EAAAA,MACnBs4M,EAAkBt4M,MAAI,GAC5B89L,EACElG,KADMpjM,EAAaspM,EAAbtpM,YAAawoM,EAAAc,EAAAd,qBAAsBzC,IAAAA,mBAAoB1C,EAAgBiG,EAAhBjG,eAAgBqC,EAAA4D,EAAA5D,qBAG/Eqe,EAAiF3E,GAASvoO,GAAlF0oO,EAAcwE,EAAdxE,aAAc5kG,EAAAopG,EAAAppG,eAAgB6kG,IAAAA,mBAAoBC,EAAmBsE,EAAnBtE,mBAClD1zM,EAAiBN,GAAU,QAAS50B,EAAM6jB,QAA1CqR,aACRi4M,EAAwD3a,GAAexyN,GAA/D+yN,EAAkBoa,EAAlBpa,iBAAkBL,EAAAya,EAAAza,kBAAmBC,EAAOwa,EAAPxa,OACvCgG,EAAe9gN,EAAAA,UAAS,WAAA,IAAAu1N,EAAA,OAA+B,QAAzBA,EAAA1a,EAAkBt5N,aAAO,IAAAg0O,OAAA,EAAzBA,EAAyBhhB,cAAepsN,EAAMwpN,WAC5Egf,EAAY3wN,EAAAA,UAAS,WAAA,IAAAw1N,EAAA,OAAoBA,QAApBA,EAAMrtO,EAAMwE,YAAQ6oO,IAAAA,EAAAA,EAAAn4M,EAAa97B,MAAMoL,QAElE8oO,ECjEY,SAAqB3jH,EAA4BL,GAC/D,IAAMoB,EAAa/1F,EAAAA,MACb44M,EAAc54M,OAAI,GAElBi2F,EAAiB,WACrB,GAAKtB,EAASlwH,OAAUuwH,EAASvwH,QAASsxH,EAAWtxH,MAArD,CACAm0O,EAAYn0O,OAAQ,EACpB,IAAMqgC,EAAKL,GACTuwF,EAASvwH,MACT,MACA,WACEm0O,EAAYn0O,OAAQ,CACtB,GACA,IAEFsxH,EAAWtxH,MAAQqgC,CAVyC,GAsBvD,OATPqL,EAAAA,UAAU8lF,GAEVtB,EAASlwH,OAASujC,QAAM,CAAC2sF,EAAUK,GAAWiB,GAE9C7lF,EAAAA,iBAAgB,WAAM,IAAAyoM,EAAAC,EACfnkH,EAASlwH,gBACHo0O,EAAA9iH,EAAAtxH,aAAA,IAAAo0O,GAAmBC,QAAnBA,EAAAD,EAAO7zM,iBAAP8zM,IAAmBA,GAAnBA,EAAA51O,KAAA21O,EAAmB7jH,EAASvwH,OACzC,IAEO,CACLm0O,YAAAA,EAEJ,CDmC4BG,CAAqB9U,EAAUtvG,GAA/CikH,EAAAD,EAAAC,YAGFzQ,EAAqBnoM,EAAAA,MACrBooM,EAA2BpoM,EAAAA,MAC3BqoM,EAAoBroM,EAAAA,MACpBsoM,EAAuBtoM,EAAAA,MAGvBg5M,EAsBFjV,GAAS14N,EAAO83B,EAAS6gM,EAAc,CACzCmE,mBAAAA,EACAC,yBAAAA,EACAC,kBAAAA,EACAC,qBAAAA,IAzBAlE,EAAA4U,EAAA5U,eACAC,EAAA2U,EAAA3U,uBACAf,EAAA0V,EAAA1V,WACAgB,EAAA0U,EAAA1U,cACAzF,EAAAma,EAAAna,gBACAqF,EAAA8U,EAAA9U,cACAtF,EAAAoa,EAAApa,gBACA2F,EAAAyU,EAAAzU,cACA3B,EAAAoW,EAAApW,YACA9D,EAAAka,EAAAla,iBACA4E,EAAAsV,EAAAtV,uBACAr6C,EAAA2vD,EAAA3vD,QACAogD,EAAAuP,EAAAvP,aACAxK,EAAA+Z,EAAA/Z,iBACAxuC,EAAAuoD,EAAAvoD,gBACAw5C,EAAA+O,EAAA/O,uBACAnD,EAAAkS,EAAAlS,wBACA/H,EAAAia,EAAAja,eACAC,GAAAga,EAAAha,kBACAkL,GAAA8O,EAAA9O,uBACAhL,GAAA8Z,EAAA9Z,6BASI+Z,GAWFjO,GAAS3/N,GAVX4/N,GAAAgO,GAAAhO,eACAC,GAAA+N,GAAA/N,eACAC,GAAA8N,GAAA9N,uBACAC,GAAA6N,GAAA7N,cACAC,GAAA4N,GAAA5N,gBACAC,GAAA2N,GAAA3N,gBACAC,GAAA0N,GAAA1N,oBACAK,GAAAqN,GAAArN,mBACAuC,GAAA8K,GAAA9K,mBACAjC,GAAA+M,GAAA/M,0BAGIgN,GAAoE9O,GAAc/+N,EAAO83B,GAAvF67I,MAAAA,WAAYqrD,GAAiB6O,GAAjB7O,gBAAiBC,GAAA4O,GAAA5O,eAAgBrW,MAAAA,iBAG/CmgB,GAAqB3V,GAAgB,CACzCG,gBAAAA,EACAC,gBAAAA,EACAC,iBAAAA,EACAC,eAAAA,EACAC,kBAAAA,GACAC,iBAAAA,EACAC,6BAAAA,GACA7I,qBAAsBhrN,EAAMgrN,uBAEtB8I,GAAoDiV,GAApDjV,cAAekB,GAAqC+T,GAArC/T,gBAAiBZ,GAAoB2U,GAApB3U,gBAElC0Z,GAA0Bj2N,EAAAA,UAAS,WAAA,MAAM,CAC7C6wN,EAAatvO,MAAAH,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAA,CAAA,EAEVuzN,EAAeY,YAAcyL,EAAcz/N,OAC3CozN,EAAea,YAAc6L,EAAc9/N,OAC3CozN,EAAec,cAAgBiG,EAAgBn6N,OAC/CozN,EAAee,eAAiBwF,EAAiB35N,OACjDy1N,EAAqBG,WAAayE,EAAiB9vL,MACnDkrL,EAAqBI,YAAcwE,EAAiB5vL,OACpD2oL,EAAeC,qBAAuBzsN,EAAMsqN,WAAA,GAAA10L,OACzCzM,0BAAkCnpB,OAAAA,EAAMqpN,eAAkBrpN,EAAMqpN,mBAIlE0kB,GAAkBl2N,EAAAA,UAAS,WAAA,MAAM,CAAC,CAACq3M,EAAmBlvN,EAAM4jD,kBAE5DoqL,GAAmBn2N,EAAAA,UACvB,WAAA,OACE7X,EAAMqjD,UACNw1K,EAAcz/N,QACZ25N,EAAiB35N,OAASm6N,EAAgBn6N,QAAW25N,EAAiB35N,MAAA,IAGtE60O,GAAgBp2N,EAAAA,UAAS,WAAM,IAAAq2N,EAAAC,EACnC,IAAKnuO,EAAMqjD,SAAiB,OAAA,EACtB,IAAA+qL,EAA8BF,QAA9BA,EAAalB,EAAiB5zO,aAAjB80O,IAAiBA,OAAjBA,EAAAA,EAAwB1qM,wBACrC6qM,EAA+BF,QAA/BA,EAAiBpO,GAAc3mO,aAAd+0O,IAAcA,OAAdA,EAAAA,EAAqB3qM,wBAC5C,QAAQ4qM,aAAAA,EAAAA,EAAYvlM,SAAU,KAAMwlM,aAAA,EAAAA,EAAgBxlM,SAAU,EAChE,IAGMylM,GACJpD,GAAgBlrO,EAAO44N,GADjB2S,MAAAA,WAAYG,GAAgB4C,GAAhB5C,eAAgBiB,GAAA2B,GAAA3B,6BAA8BC,MAAAA,gCAG5D2B,GErJM,SAAsBvuO,EAAuB44N,GACrD,IAAAnnJ,EAA4Ev9B,SAAOl0C,GAAjF08C,IAAAA,MAAO/3C,EAAM8sE,EAAN9sE,KAAM0kN,EAAA53I,EAAA43I,cAAec,IAAAA,iBAAkBT,EAAwBj4I,EAAxBi4I,wBAChD0d,EAAWzyM,EAAAA,MACX65M,EAAuB75M,EAAAA,KAAM,GAC7B85M,EAAmB95M,MAAI,GAGvB+5M,EAAuB72N,EAAAA,UAAS,WACpC,MAA4B,WAAxBwxM,EAAcjwN,QACU,aAAxBiwN,EAAcjwN,OACXsjD,EAAMtjD,OAAS+wN,EAAiB/wN,MACzC,IAEMu1O,EAAa,SAAC98K,EAAoC8iC,GACtD,IAAMuvI,EAAWx/N,GAAImtD,EAAItN,IAAKvkD,EAAMyqN,QAChC2c,EAAShuO,QAAU8qO,GAA8B,WAAlBvvI,eAAAA,EAAOvnC,QACnCs8J,EAAwBtwN,QAC3BguO,EAAShuO,WAAQ,GAGnBguO,EAAShuO,MAAQ8qO,EAEnBsK,EAAqBp1O,MAAQy4D,EAAI72D,OAQ7BmxO,EAAuB,SAACj1O,GAAqB,IAAA+lH,EACjD,GAAKyxH,EAAqBt1O,MAA1B,CACA,IAAM26E,EAAO78E,EAAE68E,eAAQkpC,EAAA/lH,EAAE2G,wBAAFo/G,EAAO9gF,QAC1B,GAAA8/E,GAAehkH,KAAK87E,GAAO,CAC7B78E,EAAEw8E,iBACI,IAAA14E,EAAQqF,KAAK4U,IAAItQ,EAAKvL,MAAMnC,OAAS,EAAGu3O,EAAqBp1O,MAAQ,GAChEu1O,EAAA,CAAEpqL,IAAK5/C,EAAKvL,MAAM4B,GAAQA,MAAAA,EAAO9D,EAAAA,GAAK,CAAEk2D,OAAQ,SAClD,MAAA,GAAA8uD,GAAajkH,KAAK87E,GAAO,CAClC78E,EAAEw8E,iBACF,IAAM14E,EAAQqF,KAAKC,IAAI,EAAGkuO,EAAqBp1O,MAAQ,GAC5Cu1O,EAAA,CAAEpqL,IAAK5/C,EAAKvL,MAAM4B,GAAQA,MAAAA,EAAO9D,EAAAA,GAAK,CAAEk2D,OAAQ,SAC7D,SAAWkvD,GAAUrkH,KAAK87E,IAAiC,aAAxB/zE,EAAMqpN,cAA8B,CACrE,IAG0BijB,EAHpBtxO,EAAQwzO,EAAqBp1O,MACnCu1O,EAAW,CAAEpqL,IAAK5/C,EAAKvL,MAAM4B,GAAQA,MAAAA,EAAO9D,EAAAA,IAEvC8I,EAAMqpN,eACiB,QAA1BijB,EAAAtsO,EAAM+qN,yBAAoB,IAAAuhB,GAA1BA,EAAAz0O,KAAAmI,EAA0B,CACxBotD,OAAQ,sBACRy+K,cAAe,CAAC,CAAEtnL,IAAK5/C,EAAKvL,MAAM4B,GAAQgzC,SAAUhzC,KAG1D,SAAWqhH,GAAWpkH,KAAK87E,KAAU/zE,EAAMqpN,cAAe,CAAA,IAAA+iB,EACxDhF,EAAShuO,WAAQ,UACjBgzO,EAAApsO,EAAM+qN,gCAANqhB,EAAAv0O,KAAAmI,EAA0B,CAAEotD,OAAQ,QAASy+K,cAAe,IAC9D,SAAWnvH,GAAQzkH,KAAK87E,KAAU/zE,EAAMqpN,cAAe,CAAA,IAAAkjB,UACrDA,EAAAvsO,EAAM+qN,gCAANwhB,EAAA10O,KAAAmI,EAA0B,CAAEotD,OAAQ,aAAcy+K,cAAe,IAExD,MAAA,GAAApvH,GAAUxkH,KAAK87E,KAAU/zE,EAAMqpN,gBAAkBnyN,EAAE03O,UAAY13O,EAAE23O,QAAS,CAAA,IAAArC,UACnFA,EAAAxsO,EAAM+qN,gCAANyhB,EAAA30O,KAAAmI,EAA0B,CAAEotD,OAAQ,QAASy+K,cAAe,IAC9D,CAGI1vH,GAAelkH,KAAK87E,IAASqoC,GAAgBnkH,KAAK87E,GACpD06J,EAAiBr1O,WAAQ,EAEzBq1O,EAAiBr1O,MAAQ,CAlCM,GA8C5B,MAAA,CACLguO,SAAAA,EACAsH,qBAAAA,EACAI,cAvDoB,WACpB1H,EAAShuO,WAAQ,EACjBo1O,EAAqBp1O,OAAQ,GAsD7B21O,4BAZkC,WAC/BrvM,GAAAk5L,EAASx/N,MAAO,UAAW+yO,IAY9B6C,+BATqC,WACjCjvM,GAAA64L,EAASx/N,MAAO,UAAW+yO,IAS/BsC,iBAAAA,EAEJ,CFuEQQ,CAAsBjvO,EAAO44N,GAN/BwO,GAAAmH,GAAAnH,SACAsH,GAAAH,GAAAG,qBACAI,GAAAP,GAAAO,cACAC,GAAAR,GAAAQ,4BACAC,GAAAT,GAAAS,+BACAP,GAAAF,GAAAE,iBAGF9xM,EAAAA,MAAMm8L,GAAa,WACjB8F,EAAuB9F,EAAY1/N,MACrC,IAEAujC,EAAAA,OACE,WAAA,MAAM,CAAC38B,EAAM2E,KAAMgvK,GAAU,IAC7B,WACEqK,EAAQihD,GAAe7lO,MAAQu6K,GAAWv6K,MAAQ4G,EAAM2E,KAC1D,IAGFg4B,EAAAA,MACE+1L,GACA,WAAM,IAAAwc,EACE,QAANlvO,EAAAA,EAAM8sO,2BAAN9sO,IAAMkvO,GAANlvO,EAAAA,KAAAA,EAA4B0yN,EAAkBt5N,MAAMgzN,aACpCgI,GAAA1B,EAAkBt5N,MAAMgzN,YAAa,KACvD,GACA,CAAE9uL,WAAW,IAGf,IAOM6xM,GAAkBhzN,IAAS,WACbw3M,GAAAD,EAAe,aACnC,IAGM0b,GAAsBv3N,EAAAA,UAAS,WAAA,MAAO,CAC1ClT,KAAM3E,EAAM2E,KAEZomC,aAAa/qC,CAAAA,EAAAA,EAAM+qC,QAAQ,GAAA,CAAAa,UAAW5rC,EAAM4rC,YAC5C,IACI61I,GAAgB/2I,GAAoB8oL,EAAiB4b,IAEvD79G,IAAc,EAmBZ89G,GAAiB,WAAM,IAAAC,EACtBxW,EAAY1/N,QACjB6zO,EAAgB7zO,MAA+C,UAAvC0/N,EAAY1/N,MAAM6nC,cAAc,gBAAhCquM,IAAuCA,OAAvCA,EAAAA,EAA0C9rM,wBAAwBqF,SAkB5FlM,EAAAA,MAAM62L,GAAiB,WACrBsP,GAAmBtP,EAAgBp6N,OAET,SAAtB4G,EAAM4jD,aACQurL,IAEpB,IAKAxyM,EAAAA,OACE,WAAA,MAAM,CAACm8L,EAAY1/N,MAAO4G,EAAM4pN,SAAU5pN,EAAM+pN,cAAe/pN,EAAMwpN,QAAO,IAC5E,WACQ,IAAAp7K,EAAQj4B,YAAW,WACRk5N,KACf54N,aAAa23B,KACZ,EACL,IAGIzR,QAAAi8L,GAAU,SAACA,GACfiG,GAAuBjG,EACzB,IAEA9zL,EAAAA,WAAU,WACOuqM,KACfvM,GAAmBtP,EAAgBp6N,OACnCylO,GAAuBjG,EAASx/N,MAClC,IAkBAujC,EAAAA,MACE,CAAC4wM,IACD,SAAA1wM,GAAmB,IAAjB0wM,EAAiB1wN,GAAAggB,EAAA,GAAN,GACH/E,EAAAR,KAAK,sBAAuBi2M,EACtC,GACA,CAAEjwM,WAAW,IAGT,IAAA+rH,GAAYxxI,EAAAA,UAAS,WAAA,OAAOonN,GAAe7lO,MAAQu6K,GAAWv6K,MAAQ4G,EAAM2E,QA+B3E,MAAA,CACLguN,OAAAA,EACAxpM,YAAAA,EACA61M,gBAAAA,GACA9pM,aAAAA,EACA+3M,gBAAAA,EACAjU,uBAAAA,EACAwP,UAAAA,EACAvQ,WAAAA,EACAgB,cAAAA,EACAL,SAAAA,EACAE,YAAAA,EACAh1F,eAAAA,EACA0oF,eAAAA,EACAkG,kBAAAA,EACAob,wBAAAA,GACAnF,mBAAAA,EACAC,mBAAAA,EACAqF,cAAAA,GACAtc,qBAAAA,EACAzC,mBAAAA,EACA6e,gBAAAA,GACAva,gBAAAA,EACAqF,cAAAA,EACAtF,gBAAAA,EACA2F,cAAAA,EACAb,uBAAAA,EACA5E,iBAAAA,EACA8D,YAAAA,EACA0H,eAAAA,GACAtrD,WAAAA,GACAisD,eAAAA,GACAC,eAAAA,GACAmN,iBAAAA,EACAjN,cAAAA,GACAC,gBAAAA,GACAC,gBAAAA,GACAlH,eAAAA,EACAhG,iBAAAA,EACAib,iBAAAA,GACAla,cAAAA,GACAkB,gBAAAA,GACA+T,mBAAAA,GACAjJ,uBAAAA,GACAiN,aAAAA,EACAtrD,cAAAA,GACAy+C,oBAAAA,GACAqL,WAAAA,GACAnE,SAAAA,GACAmG,YAAAA,EACAr/L,gBA/EsB,SAACjwB,GACnB,IAAEjjB,EAAUijB,EAAVjjB,MACF,IAACA,GAAmB,IAAVA,EAAa,CAAA,IAAAu0O,EACrB,IAACtxN,EAAOpgB,IAEV,YADIs8B,GAAM,QAAS,yDAGbn/B,EAAiB,QAAjBu0O,EAAAlmF,GAAUjwJ,aAAO,IAAAm2O,OAAA,EAAjBA,EAAiBlrG,WAAU,SAACxmH,GAAA,OAASnZ,GAAImZ,EAAM7d,EAAMyqN,UAAYxsM,EAAOpgB,QACpE,GACVs8B,GAAU,QAAA,GAAAvE,OAAY3X,EAAOpgB,IAAkE,6DAEnG,CACI,GAAA4jL,GAAc51I,gBAAgBzyC,MAChCqoL,GAAcvzI,yBAAqBjwB,OAAQjjB,MAAOA,EAAQ,SACrD,CAAA,IAAAw0O,EAAAC,EAGCtvM,EAAyB,QAAzBqvM,EAAKzC,EAAa3zO,aAAO,IAAAo2O,OAAA,EAApBA,EAAoBn1K,IACzB9V,EAAMpkB,SAAesvM,UAAftvM,EAAIriB,oBAAW2xN,SAAfA,EAAez0O,GAC3B,GAAIupD,EAAK,CAAA,IAAAmrL,EAAAC,EAGD1kM,EAFgBsZ,EAAdiF,UACUgqK,EAAgBp6N,MAAM+oC,WACoButM,QAAdA,EAAAzxN,EAAOylB,eAAOgsM,EAAAA,EAAA,GAE5Clc,EAAAp6N,MAAMw2O,SAAS,CAAElsM,IAAKuH,EAAcoC,SAA6BsiM,QAAnBA,EAAA1xN,EAAOovB,gBAAYsiM,IAAAA,EAAAA,EAAA,QACnF,CACF,GAsDA/mB,iBAAAA,GACAvwJ,YAAAA,EACA5O,cArMoB,WACpBjZ,EAAAA,UAAS,WACY+vL,KACOM,IAC5B,KAkMAN,mBAAAA,GACAM,0BAAAA,GACArvG,qBApL2B,SAACt6H,GACtB,IAAA+hC,EAAU/hC,EAAE+hC,QAAU/hC,EAAEguL,WACxBxhJ,EAAMzK,EAAOkJ,UAEfovF,KAAgB7tF,EACJ+9I,GAAA51I,gBAAgBzyC,OAASqoL,GAAc9zI,gBAEvC4jF,IAAA,EACdkqG,EAAwBxiM,IAEZs4F,GAAA7tF,EACd0hJ,EAAgBluL,GACU,SAAtB8I,EAAM4jD,aACQurL,MAwKlB/Q,aAAAA,EACAyR,qBA9J+E,SAACrb,GAChF,GAAKhB,EAAgBp6N,MAArB,CAIA,IAHA,IAAM02O,EAAQtc,EAAgBp6N,MAAM6nC,cAAA,mBAAArL,OAAiC4+L,EAAU,OACzEub,EAAavc,EAAgBp6N,MAAMijD,iBAAiB,gCACtD2zL,EAAa,EACRn3O,EAAI,EAAGy4B,EAAMy+M,EAAW94O,OAAQ4B,EAAIy4B,EAAKz4B,IAClCm3O,GAAAD,EAAWl3O,GAAG2qC,wBAAwBmF,MAEhD,IAAAsnM,EAAUH,EAAMtsM,wBAChB8J,EAAckmL,EAAgBp6N,MAAMoqC,wBACpC+kC,EAAW0nK,EAAQtsM,KAAO2J,EAAY3J,KAAOqsM,EACnDxc,EAAgBp6N,MAAMyoC,SAAS,CAAE8B,KAAM4kC,EAAUl7B,SAAU,UAV/B,GA8J5B6iM,aAlHmB,WACnBlwO,EAAMqpN,eAAiBsjB,KACvB+B,GAAqBt1O,OAAS21O,MAiH9BoB,YA9GkB,WAClBnwO,EAAMqpN,eAAiBujB,KACvB8B,GAAqBt1O,OAAS41O,MA6G9BoB,gBA1GoD,SAACv+K,GAAQ,IAAAw+K,UAC7DrwO,EAAAA,EAAMirN,kBAANjrN,OAAAA,EAAAA,KAAAA,EAAmB6xD,GACnB7xD,EAAMqpN,eAAiBqiB,GAAe75K,GACtC68K,GAAqBt1O,OAAS01O,MAwG9BhS,mBAAAA,EACAC,yBAAAA,EACAC,kBAAAA,EACAC,qBAAAA,EACAwR,iBAAAA,GAEJ,EAEA35L,OAAS,WAAA,IAAAw7L,EAAAC,EAAAC,EAAAzF,EAAA0F,EAAAC,EAAAC,EAAAC,EAAAvrM,EAAAxkC,KACH,IAACA,KAAK0sO,YACD,OAAA97L,EAAAA,YAAA,MAAA,CAAA9c,IAAA,YAAA,MAGH,IAAE0jM,EAAwCx3N,KAAxCw3N,uBAAwBz0K,EAAgB/iD,KAAhB+iD,YAC1Bj/C,EAAO9D,KAAKo+N,eAAiBp+N,KAAK8yK,WAAa9yK,KAAK8D,KACpD6kN,GAAkC,QAAxB8mB,EAAAzvO,KAAK6xN,yBAAmB,IAAA4d,OAAA,EAAxBA,EAAwBlkB,cAAevrN,KAAK2oN,QAEtD6P,EAAuBkX,QAAvBA,EAAkB1vO,KAAKyoN,8BAAAinB,IAAAA,EAAAA,EAA0B1vO,KAAKypN,UACxD+O,GAAmC,SAAhBz1K,GACjBzpB,GACF,QACA,2GAIJ,IAAM02M,EAAkC,UAAhBjtL,GAA2B/iD,KAAK0yN,gBAAkB,aAAU,EAE9Eud,EAAiB,WAAjB,IAAkBC,IAAgBhyO,UAAA9H,OAAA,QAAAkD,IAAA4E,UAAA,KAAAA,UAAA,GAAA,OAAA0yC,EAAAA,6BAEnC+3K,EAAQvkN,KAAI,SAACm+I,GACZ,IAAMh8G,EAAgB,CACpBuB,MACE28I,IACGyrD,GAAiB1X,EAAkBh0L,EAAKkyL,YAAYn0E,EAAIoxE,aAAU,IAAcpxE,EAAIz6G,QAClFkoM,GAST,OAPIztF,EAAItnE,WACA10C,EAAA00C,SAAWwpG,GAAcliC,EAAItnE,WAGhC10C,EAAMuB,OAAUy6G,EAAItnE,UAAiC,UAArBz2C,EAAKue,cACxCxc,EAAM00C,SAAW,QAEnBrqC,EAAAA,YAAA,MAAA,CAAA5zC,IAAiBulJ,EAAIoxE,OAAAptL,MAAeA,GAAO,KAC5C,OA6CC4pM,EAAY,CAChBnY,cAAeh4N,KAAKg4N,cACpBR,uBAAwBx3N,KAAKw3N,uBAC7BtF,iBAAkBlyN,KAAKkyN,iBACvB1vK,SAAUxiD,KAAKwiD,SACf44B,UAAWp7E,KAAKo7E,UAChBpzC,OAAQhoC,KAAKgoC,OACb6pL,kBAAmB7xN,KAAK6xN,kBACxBC,OAAQ9xN,KAAK8xN,OACb4E,YAAa12N,KAAK02N,YAClBjN,UAAWzpN,KAAKypN,UAChBye,mBAAoBloO,KAAKkoO,mBACzB5/M,YAAatoB,KAAKsoB,YAClBgqM,yBAA6C,WAAnBtyN,KAAK2nO,UAAyB3nO,KAAKijI,eAAejjI,KAAK2nO,WAAa,GAC9Fj/M,OAAQ1oB,KAAK0oB,OACbkqM,iBAAkB5yN,KAAK4yN,iBACvBqV,YAAajoO,KAAKioO,aAOdmI,EAAe9hM,MAAkB,GAAK,EAAI,EAC1C+hM,EAAWrwO,KAAK0yN,gBAAkB1yN,KAAKk4N,eAAiB,EACxDoY,EAAoBx8M,EAAAA,MAAU67M,QAALA,EAAA3vO,KAAK++N,0BAAA4Q,SAALA,EAAqBhtM,wBAAwBqF,SAAU,GAAKooM,GAErF7iM,EAAQj4B,YAAW,WAAM,IAAAi7N,EAC7BD,EAAkB/3O,QAAc,QAALg4O,EAAA/rM,EAAKu6L,sBAALwR,IAAKA,OAALA,EAAAA,EAAqB5tM,wBAAwBqF,SAAU,GAAKooM,EACvFx6N,aAAa23B,KACZ,GACGijM,EAAwBx5N,EAAAA,UAAS,WAAA,OAAMs5N,EAAkB/3O,MAAQ83O,KAEjEI,EAAgBtxO,GAAMiqN,iBAAmBjxN,OAAO6H,KAAKm/N,iBAAmB,EACxEuR,EAA6B15N,EAAAA,UAAS,WACnC,MAAA,CACL8wB,SAAA/S,OAAUyP,EAAK4yL,WAAA,MACfpvL,UAAAjT,OAAWy7M,EAAsBj4O,MAAA,MACjCowC,QAAS8nM,EAEb,IAEME,EAAoB3wO,KAAKwiD,SAAW,EAAI,EACxCqqK,EAAgBlsM,SACnB3gB,KAAKopN,kBAAoBppN,KAAK4gL,cAAc51I,gBAAgBzyC,QAAUyH,KAAKo3N,aAE5ExmL,EAAAA,YAAA,MAAA,CAAA9c,IAAA,iBAAAyS,MAES,CACLuB,MAAA,GAAA/S,OAAU/0B,KAAKo3N,WAAauZ,EAAA,MAC5BhoM,QAASxwC,OAAO6H,KAAKm/N,wBAEhB,CACL,YAAA/mO,KAEG4H,KAAK2rN,eAAemB,iBAAmB9sN,KAAKopN,kBAAoBppN,KAAK4gL,cAAc51I,gBAAgBzyC,SAIxG,CAAAq4C,EAAAK,YAAA,QAAA,CAAAJ,MAAc7wC,KAAKktO,gBAAiB3mM,MAAAkK,GAAAA,GAAY,CAAA,EAAAzwC,KAAK+nO,oBAAA,GAAA,CAAoBjgM,MAAO/S,GAAAA,OAAG/0B,KAAKo4N,cAAkB,SAAA,CACvG6X,GAAe,GAAIr/L,cAAAo3L,GACamI,EAAjBnwO,KAAK4d,YAOrBgzN,EAAAhgM,EAAAK,YAAA,MAAA,CAAAJ,MACQ7wC,KAAK2rN,eAAe0B,kBAAA9mL,MAA0BmqM,EAA2Bn4O,OAClF,CAAAs0N,IAODgkB,EAAuB7wO,KAAK0yN,gBAAkB1yN,KAAKk4N,eAAiB,EACpEl4N,KAAKwiD,WACiBquL,GAAA,GAG1B,IAAMlnC,EAAahpL,QAAQ3gB,KAAK4gL,cAAc51I,gBAAgBzyC,OAASyH,KAAKipN,qBACtE9xC,GAAiB+yD,QAALA,OAAKnhB,gBAALmhB,IAAKA,OAALA,EAAAA,EAAe9zO,SAAU4J,KAAKkpN,eAAiBlpN,KAAK4d,OAAO,cACvEkzN,EAAgBnwN,QAAQgpL,GAAcxyB,GAAan3K,KAAKo3N,aAC5DxmL,EAAAA,YAAA+Z,GAAAlX,aAAA,CAAA5C,MACS7wC,KAAK2rN,eAAeqB,gCACZhtN,KAAK4oD,cACpBF,aAAcmoL,GAAwB,GAClC5N,GAAcjjO,KAAKipN,qBACvB,CAAA1iL,MAAO,CAAE+B,UAAA,GAAAvT,QAAqB,IAAwB,QAAxB66M,EAAA5vO,KAAKosO,uBAAmBwD,IAAAA,EAAAA,EAAA,GAAKiB,GAA0B,OAAA/8M,IAAA,yBAAA,CAAA/M,QAAA,WAAA,MAAA,CAAA6pB,EAAAK,YAAA,MAAA,CAAAnd,IAAA,iBAAAyS,MAK5E,CAAEuB,MAAO,GAAA/S,OAAGyP,EAAK4yL,WAAauZ,EAAuB,MAAAhoM,QAASxwC,OAAOqsC,EAAK46L,kBAAiBvuL,MAC3F,CACL,YAAAz4C,KAEGosC,EAAKmnL,eAAeoB,iBACnBvoL,EAAKykL,qBAAuBzkL,EAAKo8I,cAAc51I,gBAAgBzyC,SAIrE,CAAAq4C,EAAAK,YAAA,QAAA,CAAAJ,MAAcrM,EAAK0oM,gBAAiB3mM,MAAAkK,GAAAA,GAAYjM,CAAAA,EAAAA,EAAKujM,oBAAA,GAAA,CAAoBjgM,MAAO/S,GAAAA,OAAGyP,EAAK4zL,cAAkB,SAAA,CAEvG6X,GAAe,GAAIr/L,EAAAA,YAAAk5L,GAAA,CAAAlgB,OAEVplL,EAAKolL,qBAEEplL,EAAKwzL,cAAAR,uBACIA,EAAAzO,SACdvkL,EAAKukL,SAAAJ,QACNA,EAAAe,cACMllL,EAAKklL,cACpBC,aAAcnlL,EAAKmlL,aACnB+M,YAAalyL,EAAKkyL,YAAAxN,cACH1kL,EAAK0kL,cACpBY,0BAA2BtlL,EAAKslL,2BATvBtlL,EAAK5mB,YACd,IAgBJmpK,EAAAhyJ,gBAAAA,OACJ/0B,KAAK4gL,cAAcx2I,aAAa7xC,OAAc,UAALyH,KAAKosO,uBAAA,IAAAyD,EAAAA,EAAmB,YAAMC,EAAAQ,EAAkB/3O,aAAS,IAAAu3O,EAAAA,EAAA,GAAA,OAE9FiB,EAAe,CACnBnxO,UAAWmnL,EACX,gBAAiBA,EACjB,iBAAkBA,EAClB,oBAAqBA,GAEjBiqD,EAAiBvgM,GAAAA,GAAA,CACrBnoB,YAAatoB,KAAKsoB,YAClBgqM,yBAA6C,WAAnBtyN,KAAK2nO,UAAyB3nO,KAAKijI,eAAejjI,KAAK2nO,WAAa,GAC9FnQ,uBAAAA,EACA5E,iBAAkB5yN,KAAK4yN,iBACvB9uN,KAAAA,EACA88K,cAAe5gL,KAAK4gL,cACpB+nC,QAAS3oN,KAAK6xN,kBAAkBtG,YAChCiZ,SAAUxkO,KAAK+3N,SACfX,WAAYp3N,KAAKo3N,WACjB1E,gBAAiB1yN,KAAK0yN,gBACtBxoL,OAAQlqC,KAAKkqC,OACbw+K,iBAAkB1oN,KAAK0oN,iBACvB+Q,gBAAiBz5N,KAAK2yN,gBACtB5lL,iBAAkB/sC,KAAK4gL,cAAc7zI,iBACrCs5L,kBAAmBrmO,KAAKqmO,mBACrB7rN,GAAKxa,KAAKkoL,OAAQi+C,KAAgB,CAAA,EAAA,CAErC/6M,WAAYprB,KAAKm+N,gBACjBz1M,OAAQ1oB,KAAK0oB,OACb69M,SAAUvmO,KAAKumO,SACfD,UAAWtmO,KAAK0qO,WAChBtgB,WAAYpqN,KAAKuvO,kBAEbrN,EACJtxL,EAAAK,YAAA,MAAA,CAAAnd,IAAA,kBAAA+c,MAES7wC,KAAK2rN,eAAe9uM,QAC3B0pB,MAAOvmC,KAAK8nO,mBAAAz5J,SACFruE,KAAK2wH,sBAEd,CAAA3wH,KAAK4gL,cAAc51I,gBAAgBzyC,OAClCq4C,EAAAK,YAAA,MAAA,CAAAJ,MAAY7wC,KAAK8wN,qBAAqB9+J,OAAQzrB,MAAOwqM,GAAc,MAAAngM,EAAAK,YAAA,QAAA,CAAAnd,IAAA,cAAA+c,MAK5D7wC,KAAKktO,4BAEP,CAAA,EAAAltO,KAAK+nO,oBAAA,GAAA,CACRjgM,MACE9nC,KAAKypN,WAAazpN,KAAK0yN,iBAAmB1yN,KAAKo4N,cAAArjM,GAAAA,OACxC/0B,KAAKo4N,cACR,MAAAp4N,KAAK+nO,mBAAmBjgM,SAAA,CAG/BmoM,GAAe,GACfjwO,KAAKqpM,YACJz4J,EAAAA,YAAAo3L,GAAAv3L,GAAAA,MAAsC0/L,GAAA,CAAA,EAAA,CAAWzZ,YAAa8B,EAAkBx4N,KAAK02N,YAAc,CAAC,IAApF12N,KAAK4d,QAAoFgzB,EAAAA,YAAAw1L,GAAA3yL,EAAAA,WAAA,CAAA3f,IAAA,gBAEvDk9M,GAApChxO,KAAK4d,QAAQgzB,EAAAA,YAAAk5L,GAAA,CAAAlgB,OAGnB5pN,KAAK4pN,OACboO,cAAeh4N,KAAKg4N,cACpBR,uBAAwBA,EACxBzO,SAAU/oN,KAAK+oN,SACfJ,QAASA,EACTe,cAAe1pN,KAAK0pN,cAAAC,aACN3pN,KAAK2pN,2BACJ3pN,KAAKkpN,cACpBY,0BAA2B9pN,KAAK8pN,0BAChCigB,cAAe/pO,KAAK4gL,cAAc51I,gBAAgBzyC,OAVzCyH,KAAK4d,YAgBhBqzN,EAAuBl1O,EAAWiE,KAAKy1B,SAAWz1B,KAAKy1B,QAAUz1B,KAAK4d,OAAO6X,QAC7Eq4I,OAAkC,IAAjB9tK,KAAKy1B,SAC1Bmb,EAAAK,YAAAgF,GAAAxC,aAAA,CAAAhe,UACaz1B,KAAKy1B,QAChBgc,KAAMw/L,SACEjxO,KAAK+3N,SAAW,WAAA,OAAMvzL,EAAKuzL,QAAA,OAAW,+BAGzC/3N,KAAKq2C,cACX,MAGGwuF,EAAa7kI,KAAKw3D,YAAY,cAC9BstE,EAAgB9kI,KAAKw3D,YAAY,iBACjCpsC,EAAAwlB,EAAAK,YAAA,MAAA,CAAAnd,IAAA,gBAAA+c,MAGK7wC,KAAK2rN,eAAeG,eAC3BvlL,MAAO,CAAEoC,QAASxwC,OAAO6H,KAAKq/N,wBAE7Br/N,KAAK+nN,qBAIJhlL,IAAW+hG,GAAAl0F,EAAAA,YAAA,MAAA,CAAA9c,IAAA,mBAAA+c,MACoB7wC,KAAK2rN,eAAe7mF,eAAA,CACpDA,IAIL,OAAAl0F,EAAAA,YAAA,MAAA,CAAA9c,IAAA,WAAAsjB,SAGcp3C,KAAK4tO,iBAAA/8L,MACR7wC,KAAKitO,wBACZj6I,QAAShzF,KAAKqvO,aAAAz8I,OACN5yF,KAAKsvO,aAAA,GAEVzqG,GAAAj0F,EAAAA,YAAA,MAAA,CAAAC,MAA0B7wC,KAAK2rN,eAAe9mF,YAAa,CAAAA,KAzRxC,IAApBrgG,EAAK6kK,WAA6B,QAEjC7kK,EAAKo8I,cAAc51I,gBAAgBzyC,QAASisC,EAAK4kL,oBACnD5kL,EAAK4kL,iBACJx4K,EAAAA,YAAA+Z,GAAAlX,EAAAA,WAAA,CAAAkV,UACa,GACPs6K,GAAcz+L,EAAK4kL,kBACvB,CAAAxgK,cAAepkB,EAAKokB,cAAA90B,IAAA,sBAAAi1H,GAGnB6nF,GAAAA,EACH,CAAA7pN,QAAA,WAAA,MAAA,CADG6pN,EACH,IAEApsM,EAAKwzL,eAAiB4Y,GAgRvB1O,EAEA4O,EAEAhjE,EAEA/qI,EAGA/iC,KAAKmtO,6CAEKntO,KAAK2rN,eAAesB,uBACpB,CACLjqL,SAAAjO,OAAU/0B,KAAKk4N,eAAA,MACfn1L,OAAQ/iC,KAAKotO,cAAgBr4M,GAAAA,OAAG/0B,KAAKotO,cAAoB,WAAA,EACzDplM,UAAQjT,OAAQg7M,QAARA,EAAG/vO,KAAK2yN,2BAAAod,SAALA,EAAsBptM,wBAAwBqF,OAAA,QAE5D,MAIFhoC,KAAKqpN,+BAhS+Bz4K,EAAAK,YAAA0Z,GAAAlX,aAAA,CAAAiV,aAEvB,GACVu6K,GAAcz+L,EAAK6kL,+BACvB,CAAA9iL,MAAO,CAAE+B,cAAAvT,OAAqC,EAAtByP,EAAK0zL,eAAuB,OAAA7O,+BAAA,EAAAv1L,IAAA,6BAAA,CAAA/M,QAAA,WAAA,MAAA,CAAA6pB,EAAAK,YAAA,MAAA,CAAAnd,IAAA,yBAAA+c,MAM3C,CAAC,YAAarM,EAAKmnL,eAAeyB,wBAClC,CACLtlL,SAAA/S,OAAUyP,EAAK4yL,WAAA,MACf/uL,SAAU,OACVM,QAASxwC,OAAOqsC,EAAK46L,mBAGvB,CAAAxuL,EAAAK,YAAA,MAAA,CAAA1K,MAAY,CAAEuB,SAAO/S,OAAGyP,EAAK4zL,cAAA,MAAmBpwL,OAAQ,QAAM,QAAA,IAkR/DhoC,KAAKwpN,wBAAA54K,EAAAA,YAAA+Z,GAAAlX,aAAA,CAAAiV,aACiB,GAAOu6K,GAAcjjO,KAAKwpN,yBAA0B,CAAA11L,IAAA,uBAAAi1H,GACtE39H,GAAAA,EAAA,CAAArE,QAAA,WAAA,MAAA,CAAAqE,EAAA,IAGHA,EAAAwlB,EAAAK,YAAA,MAAA,CAAAnd,IAAA,gBAAA+c,MAI8B7wC,KAAK2rN,eAAewB,WAAA5mL,MAAmBvmC,KAAKm0N,iBAAiB,OAGnG,IG7vBa+c,GAAA,CAEb30B,aAAc,CACZvhN,KAAM,CAAC9C,OAAQc,WAGjBm4O,iBAAkB,CAChBn2O,KAAM3C,QAGR+4O,wBAAyB,CACvBp2O,KAAM2lB,QACNoG,aAAS,GAGXsqN,+BAAgC,CAC9Br2O,KAAM2lB,QACNoG,aAAS,GAGX4hM,QAAS,CACP3tN,KAAMzE,MACNwwB,QAAS,WAAT,MAA+C,EAAC,GAGlDuqN,eAAgB,CACdt2O,KAAMzE,MACNwwB,aAAS,GAGXwqN,sBAAuB,CACrBv2O,KAAMzE,OAGR4sF,SAAU,CACRnoF,KAAM9C,OACN24B,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,MAAO,cAAe,MAAO,kBAAmB,YAAYvI,SAASuI,EAC/E,GAGFoyN,gBAAiB,CACfx2O,KAAM3C,QAGRo5O,kBAAmB,CACjBz2O,KAAMhC,UAGR04O,gBAAiB,CACf12O,KAAMzE,OAGRozB,WAAY,CACV3uB,KAAM,CAAC2lB,QAAS3nB,UAChB+tB,SAAS,GAGX4qN,iBAAkBhxN,QAElBixN,YAAa,CACX52O,KAAM,CAAC9C,OAAQc,WAGjB64O,gBAAiB,CACf72O,KAAMzE,MACNwwB,aAAS,GAGX+qN,uBAAwB,CACtB92O,KAAMzE,MACNwwB,QAAS,WAAT,MAA8D,EAAC,GAGjE8C,WAAY,CACV7uB,KAAMhC,UAGR+4O,UAAW,CACT/2O,KAAM,CAAC9C,OAAQc,WAGjBs6K,YAAa,CACXt4K,KAAM3C,OACN0uB,aAAS,GAGXirN,mBAAoB,CAClBh3O,KAAM3C,QAGR0xB,aAAcpJ,QAEdsxN,6BAA8B,CAC5Bj3O,KAAMzE,OAGR27O,aAAcvxN,QAEdwxN,6BAA8B,CAC5Bn3O,KAAM2lB,QACNoG,SAAS,GAGXqrN,yBAA0BzxN,QAE1B0xN,iBAAkB,CAChBr3O,KAAM9C,OACN24B,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,SAAU,YAAYvI,SAASuI,EACzC,GAGFkzN,iBAAkB3xN,QAElB4xN,gBAAiB,CACfv3O,KAAMzE,MACNwwB,aAAS,GAGXyrN,uBAAwB,CACtBx3O,KAAMzE,MACNwwB,QAAS,WAAT,MAA8D,EAAC,GAGjE0rN,sBAAuB9xN,QAEvBwtB,KAAM,CACJnzC,KAAM,CAAC3C,OAAQ9B,OACfwwB,aAAS,GAGX2rN,YAAa,CACX13O,KAAM,CAAC3C,OAAQ9B,QAGjBqzB,SAAU,CACR5uB,KAAMhC,UAGR25O,mBAAoBhyN,QAEpBiyN,oBAAqB55O,SAErB6nJ,YAAa7nJ,SAEbs9B,SAAUt9B,SAEV65O,eAAgB75O,SAEhB85O,gCAAiC95O,SAEjCo6K,aAAcp6K,SAEd+5O,uBAAwB/5O,SAExBsqF,WAAYtqF,SAEZg6O,eAAgBh6O,SAEhBi6O,eAAgBj6O,SAEhBk6O,UAAWl6O,SAEXm6O,cAAen6O,SAEfo6O,eAAgBp6O,SAEhBq6O,aAAcr6O,SAEdq6F,WAAYr6F,6kBC1Kd,IAAAs6O,GAAe9jM,kBAAgB,CAC7Br4C,KAAM,sBAENgI,MAAO,CACL0zK,cAAex6K,OACfkc,QAAS,CACPvZ,KAAMzE,MACNwwB,QAAS,WAAT,MAAe,EAAC,GAElBg9B,MAAO7rD,OACPq7O,UAAWr7O,OACXK,MAAOhC,MACP+/B,SAAUt9B,UAGZy2C,MAAAA,SAAMtwC,GACJ,IAAAyxE,EAA0Cv9B,SAAOl0C,GAAzC0zK,EAAejiG,EAAfiiG,cAAet6K,EAAAq4E,EAAAr4E,MAAOgc,EAAQq8D,EAARr8D,QACxB+T,EAAcwM,KAEd0+M,EAAuBx8N,EAAAA,UAAS,WACpC,IAAMy8N,EAA8C,GAa7C,OAZCl/N,EAAAhc,MAAMoX,SAAQ,SAACmpE,GACjB,GAAkB,WAAlBlhF,EAAOkhF,GAAqB,CAC9B,GAAIA,EAAOnjD,SAAU,OACjBmjD,EAAOvgF,MACMk7O,EAAAlxO,KAAKu2E,EAAOvgF,OACM,iBAAjBugF,EAAO/0B,OACR0vL,EAAAlxO,KAAKu2E,EAAO/0B,MAE/B,MACE0vL,EAAelxO,KAAKu2E,EAExB,IACO26J,CACT,IAEMC,EAAmB18N,EAAAA,UAAS,WAAA,OAAMW,GAAa67N,EAAqBj7O,MAAOA,EAAMA,UAEjFo7O,EAAe38N,EAAAA,UAAS,WACtB,IAAAyZ,EAAMijN,EAAiBn7O,MAAMnC,OACnC,OAAOuqB,QAAQ8P,GAAO+iN,EAAqBj7O,MAAMnC,SAAWq6B,EAC9D,IAEM47F,EAAkBr1G,EAAAA,UAAS,WACzB,IAAAyZ,EAAMijN,EAAiBn7O,MAAMnC,OACnC,OAAOuqB,QAAQ8P,EAAM+iN,EAAqBj7O,MAAMnC,QAAUq6B,EAC5D,IAEMmjN,EAAqD,SAACrrH,EAAUv3D,GACpE,IAAM6iL,EAA2C,CAC/Cx9O,EAAG26D,EAAI36D,EACP2E,KAAM,QACNie,aAAS,EACT6/D,YAAQ,GAEV,GAAIyvC,EAAU,CAAA,IAAAs9B,EACNiuF,EAAAz8O,EAAc,IAAIkV,IAAIhU,EAAMA,MAAMw8B,OAAOy+M,EAAqBj7O,iBAC9DstJ,EAAA1mJ,EAAAm3B,gBAAA,IAAAuvH,GAAAA,EAAA7uJ,KAAAmI,EAAW20O,EAASD,EAC5B,KAAO,CAAA,IAAAtsF,EACCusF,EAAUv7O,EAAMA,MAAM+lB,QAAO,SAACc,GAAQ,OAACo0N,EAAqBj7O,MAAMse,SAASuI,cACjFmoI,EAAApoJ,EAAMm3B,uBAANixH,EAAAvwJ,KAAAmI,EAAiB20O,EAASrjM,GAAAA,MAAKojM,GAAc,GAAA,CAAA74O,KAAM,YACrD,GAGI+4O,EAAoD,SAAC30N,EAAK4xC,GAAQ,IAAAw2F,UAChEA,EAAAroJ,EAAAm3B,gBAAA,IAAAkxH,GAAAA,EAAAxwJ,KAAAmI,EAAWigB,EAAK4xC,IAGlBnxB,EAAU7oB,EAAAA,UAAS,WAAA,MAAM,CAAA,GAAA+d,OAC1BzM,EAAY/vB,MAAAH,kCAAAA,EAAA28B,CAAAA,EAAAA,GAAAA,OAETzM,EAAY/vB,MAAgB,YAAAw8B,OAAA51B,EAAMo0O,WAAcp0O,EAAMo0O,eAI9D,OAAO,WAEH,OAAA3iM,EAAAA,YAAA,MAAA,CAAAC,MAAYhR,EAAQtnC,OAAA,CAAAq4C,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OACHzM,EAAY/vB,2EAER8zH,EAAgB9zH,MAC/By9B,QAAS29M,EAAap7O,MACtB+9B,SAAUs9M,EACVj+M,UAAW69M,EAAqBj7O,MAAMnC,QAAA,CAAA2wB,QAAA,WAAA,MAErC5nB,CAAAA,EAAM4kD,MAAA,MAAAnT,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OAGIzM,EAAY/vB,MAAA,oCAAA,CAAAq4C,EAAAA,YAAAq6E,GAAAx3E,aAAA,CAAAl/B,QAEdA,EAAQhc,OACbs6K,EAAct6K,kBACNA,EAAMA,eACRw7O,IAAA,UAMtB,ukBC7FK,SAASC,GAAcrrB,GAC5B,IADkF,IAA1BvsN,EAAO8B,UAAA9H,eAAAkD,IAAA4E,UAAA,GAAAA,UAAA,GAAA,IAAIqO,IAC1DvU,EAAI,EAAGy4B,EAAMk4L,EAAQvyN,OAAQ4B,EAAIy4B,EAAKz4B,IAAK,CAAA,IAAAgzN,EAC5CzoE,EAAMomE,EAAQ3wN,WAChBgzN,EAAAzoE,EAAItlI,gBAAJ+tM,OAAAA,EAAc50N,OACF49O,GAAAzxF,EAAItlI,SAAU7gB,GAE5BmmJ,EAAIoxE,QAAUv3N,EAAKyT,IAAI0yI,EAAIoxE,OAE/B,CACO,OAAAv3N,CACT,CAQwB,SAAA63O,GAAoB90O,EAA4B83B,GACtE,IAAAk9C,EAAsCpgD,GAAU,QAAS50B,EAAM6jB,QAAvDsF,EAAa6rD,EAAb7rD,YAAa+L,EAAA8/C,EAAA9/C,aACb6/M,EAAgBj7M,GAAc,CAAEi7M,YAAaC,KAA7CD,YACRtjK,EAA+Ev9B,SAAOl0C,GAA9EwpN,EAAS/3I,EAAT+3I,QAASwoB,EAAAvgK,EAAAugK,iBAAkBG,IAAAA,eAAgBF,EAAwBxgK,EAAxBwgK,wBAC7CgD,EAAiBtgN,MAAoB,MACrCjW,EAAiBmC,KAEjBq0N,EAAiBr9N,EAAAA,UAAS,WAAM,IAAAs9N,EAC9Bp4J,IAA+B,QAAxBo4J,EAAAnD,EAAiB54O,aAAO,IAAA+7O,OAAA,EAAxBA,EAAwBl0E,SAAA/oK,EAAc28O,GAAcrrB,EAAQpwN,SAAe+lB,QAAO,SAACwD,UAAMA,KAC/F,OAAA,IAAIvV,IAAI2vE,EACjB,IAEM9/E,IAAW43O,GAAcrrB,EAAQpwN,QAQvCspF,EAAA7lE,GAL8Cqa,GAC5Ci7M,EACAnyO,EAAMoyO,uBAAyBn1O,EAC/B+C,EAAM4zO,uBACN,kBACF,GALOwB,EAAiB1yJ,EAAA,GAAA2yJ,EAAkB3yJ,EAAA,GAOpC4yJ,EAAqB3gN,EAAAA,IAAwBw9M,EAAe/4O,OAAS4G,EAAMoyO,uBAAyBn1O,GAEpGs4O,EAAoB19N,EAAAA,UAAqC,WAAM,IAAA29N,EAC/D,OAAwB,QAAxBA,EAAAxD,EAAiB54O,aAAOo8O,IAAAA,GAAAA,QAAAA,EAAxBA,EAAwBC,wBAAAD,GAAxBA,EAAsCv+O,OAyB5C,SAAiCuyN,GAA4B,IAAAksB,EACrDD,EAAuC,QAAvCC,EAAe1D,EAAiB54O,aAAO,IAAAs8O,OAAA,EAAxBA,EAAwBD,aAC7C,GAAKA,UAAAA,EAAcx+O,OAAQ,MAAO,GAClC,IAAM0+O,EAAwC,GACxCxvB,EAAO,SAACqD,GACZ,IAAA,IAAS3wN,EAAI,EAAGy4B,EAAMk4L,EAAQvyN,OAAQ4B,EAAIy4B,EAAKz4B,IAAK,CAGlD,IAHkD,IAAA+8O,EAC5CryL,EAASimK,EAAQ3wN,GACjBg9O,EAAUC,EAAiBvyL,EAAQ1qD,GAChC8nC,EAAI,EAAGo1M,EAAON,EAAax+O,OAAQ0pC,EAAIo1M,EAAMp1M,IAAK,CAAA,IAAAq1M,EACvCP,EAAa90M,GAChB6oL,QAAQ9xM,SAAS6rC,EAAOixK,UACrB,QAAdwhB,EAAAL,EAAUh1M,UAAIq1M,IAAAA,GAAAA,QAAAA,EAAdA,EAAc5gO,mBAAA4gO,GAAdA,EAAuB/+O,OACf0+O,EAAAh1M,GAAGvrB,QAAQhS,KAAKyyO,GAEhBF,EAAAh1M,GAAA2Q,GAAAA,GAAUmkM,CAAAA,EAAAA,EAAa90M,QAAIvrB,QAAS,CAACygO,KAEnD,SACID,EAAAryL,EAAOzlC,gBAAP83N,OAAAA,EAAiB3+O,QACnBkvN,EAAK5iK,EAAOzlC,SAEhB,GAGK,OADPqoM,EAAKqD,GACEmsB,CACT,CAhDWM,CAAwBzsB,EAAQpwN,OAMlC,CAJmC,CACxCwrD,MAAO1vB,EAAa97B,MAAMk1B,cAC1BlZ,QAAS8gO,EAAmB1sB,EAAQpwN,QAGxC,IAQS,SAAA08O,EAAiBvyL,EAAyB1qD,GAC1C,MAAA,CACL+rD,MAAO,kBAAM6Q,GAAY39B,EAAQ9Y,MAAOukC,EAAQ1qD,EAAC,EACjDO,MAAOmqD,EAAOixK,OACdh+L,UAAW0+M,EAAe97O,MAAMqL,IAAI8+C,EAAOixK,QAE/C,CA6BA,SAAS0hB,EAAmB1sB,GAA2D,IAAA2sB,EAA/Bp5J,EAA2Bh+E,UAAA9H,OAAA,QAAAkD,IAAA4E,UAAA,GAAAA,UAAA,GAAA,GAC7E,WAAAo3O,EAAAnE,EAAiB54O,8BAAjB+8O,EAAwBV,oBAAc,IAAAU,GAAtCA,EAAsCl/O,OAAQ,MAAO,GACzD,IAAA,IAAS4B,EAAI,EAAGy4B,EAAMk4L,EAAQvyN,OAAQ4B,EAAIy4B,EAAKz4B,IAAK,CAAA,IAAAmlF,EAC5CngE,EAAO2rM,EAAQ3wN,WACjBmlF,EAAAngE,EAAKC,gBAALkgE,OAAAA,EAAe/mF,OACEi/O,EAAAr4N,EAAKC,SAAUi/D,GAG9Bl/D,EAAK22M,QACPz3I,EAAI35E,KAAK0yO,EAAiBj4N,EAAMhlB,GAGtC,CACO,OAAAkkF,CACT,CArDApgD,EAAAA,MAAM,CAACw1M,IAAiB,SAAAv1M,GAAW,IAAT3c,EAASpD,GAAA+f,EAAA,GAAN,GACR04M,EAAAl8O,MAAQ6mB,GAAOjgB,EAAMoyO,uBAAyBn1O,CACnE,IAqDM,IAAA23O,EAAoB,SAAC30N,EAAyB4xC,GAAoC,IAAAukL,EACtFd,EAAmBl8O,MAAQ6mB,EAC3B,IAAMhC,EAAS,CACburM,QAASvpM,EACTpkB,KAAMg2D,EAAIh2D,KACVw6O,cAAe1S,GAAmBna,EAAQpwN,MAAOL,OAAO84D,EAAI/3C,UAC5D5iB,EAAG26D,EAAI36D,WAETk/O,EAAAp2O,EAAM0zO,sBAAN0C,OAAAA,EAAAv+O,KAAAmI,EAAuBie,IAgBnBq4N,EAA+B,WAAM,IAAAC,EACrCtB,EAAe77O,MACjB67O,EAAe77O,MAAMq5E,OAGRwiK,EAAA77O,MAAQ89M,GAAa3pL,QAAQ+jB,GAAA,CAC1Cu3J,OAAQ3zK,EAAa97B,MAAM60B,sBAC3BkT,KAAM,WAAM,IAAAq1M,EACJC,EAAoD,iBAAhB,QAAxBD,EAAAxE,EAAiB54O,aAAjBo9O,IAAwBA,OAAxBA,EAAAA,EAAwBE,aAAgC,QAAU,OAIpFtiL,EAAsE49K,EAAiB54O,OAAS,CAAC,EAAzFu9O,EAA4BviL,EAA5BuiL,2BAA4BC,EAAAxiL,EAAAwiL,8BAC9Br5N,EAAAk0B,EAAAK,YAAA,MAAA,CAAAJ,MAEK,CAAA9b,GAAAA,OACFzM,EAAY/vB,MAAA,6BAAA,GAAAw8B,OACZzM,EAAY/vB,MAAmCw8B,+BAAAA,OAAA6gN,KAGpD,CAAAhlM,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OAAezM,EAAY/vB,MAAA,mCACxBwD,CAAAA,EAAW+5O,GACRA,EAA2B/3N,EAACA,GAC5BF,EAAe,8BAElBwW,EAAa97B,MAAM80B,6BAClBujB,EAAAA,YAAA,IAAA,CAAAC,MAAA,GAAA9b,OAAazM,EAAY/vB,MACtB,mCAAA,CAAA87B,EAAa97B,MAAM80B,8BAGvBqnN,EAAkBn8O,MAAM6L,KAAI,SAACqtH,EAAOt3H,GAAU,IAAA67O,EAAAC,EACvC1C,EAAoC,QAAxByC,EAAA7E,EAAiB54O,aAAO,IAAAy9O,GAAAA,QAAAA,EAAxBA,EAAwBpB,oBAAxBoB,IAAwBA,GAAxBA,EAAsC5/O,OACpD8B,OAAOu5H,EAAMl5H,OAAS4B,QACtB,EAEF,OAAAy2C,EAAAA,YAAA0iM,GAAA,CAAAt2O,IACOy0H,EAAMl5H,OAAS4B,EACpBo5O,UAAWA,EACXh7O,MAAOk8O,EAAmBl8O,MAAAwrD,MACnB0tE,EAAM1tE,MAAAxvC,QACJk9G,EAAMl9G,QAAA+hB,SACLy9M,EACVlhE,cAAgCojE,QAAhCA,EAAe9E,EAAiB54O,aAAjB09O,IAAiBA,OAAjBA,EAAAA,EAAwBpjE,eACzC,KAEH,IAEA92K,EAAWg6O,GACRA,EAA8Bh4N,EAAAA,GAC9BF,EAAe,qCAIlB,OAAAnB,CACT,EACA4yL,WAAYj7K,EAAa97B,MAAM+0B,YAC/B+hL,UAAWh7K,EAAa97B,MAAMg1B,WAC9Bua,MAAO,IACP02G,UAAW,WAKF,IAAA03F,GAJP1B,EAAAn9O,EAAuBo9O,EAAmBl8O,aAEJ,IAAlC64O,EAAwB74O,OAC1B67O,EAAe77O,MAAMg8C,QAEmB2hM,QAAxCA,EAAA/2O,EAAM2zO,uCAANoD,IAAwCA,GAAxCA,EAAAl/O,KAAAmI,GAAwC,EAAO,CAAEkvD,QAAS,YAClDp3B,EAAAR,KAAK,kCAAkC,GAEnD,EACAi/B,QAAS,WAKA,IAAAygL,GAJP1B,EAAmBl8O,MAAQg8O,EAAgBh8O,WAEL,IAAlC64O,EAAwB74O,OAC1B67O,EAAe77O,MAAMg8C,QAEmB4hM,QAAxCA,EAAAh3O,EAAM2zO,uCAANqD,IAAwCA,GAAxCA,EAAAn/O,KAAAmI,GAAwC,EAAO,CAAEkvD,QAAS,WAClDp3B,EAAAR,KAAK,kCAAkC,GAEnD,IAC4Bi/M,QAAxBA,EAAAvE,EAAiB54O,aAAjBm9O,IAAwBA,OAAxBA,EAAAA,EAAwB5jC,cAAe,CAAA,KAK/Ch2K,EAAAA,MACE,CAACs1M,IACD,SAAAjwK,GAAe,IAAbjrC,EAAala,GAAAmlD,EAAA,GAAN,QACS,IAAZjrC,IACAk+M,EAAe77O,MACjB29B,EAAUk+M,EAAe77O,MAAMq5E,OAASwiK,EAAe77O,MAAMg8C,OAE7Dre,GAAWu/M,IAEf,GACA,CAAEh5M,WAAW,IA2BR,MAAA,CACL83M,gBAAAA,EACAE,mBAAAA,EACA2B,uBA3B6B,WAAM,IAAAC,EAC7BC,KAAwBnF,EAAiB54O,QAASF,OAAO+D,KAAK+0O,EAAiB54O,OAAOnC,QACtF2/D,EAAYugL,EAAqBnF,EAAiB54O,MAAMw9D,WAAa,YAAc,GACrF,GAAAugL,GAAsBnF,EAAiB54O,MAAMg+O,kBAA0B,OAAA,KAC3E,IAAM12M,EAAU,CAAA,GAAA9K,OACXzM,EAAY/vB,MAAAH,qCAAAA,EAAA28B,GAAAA,GAAAA,OACTzM,EAAY/vB,wBAAew9D,KAAgBA,IAEnD,OAAAnlB,EAAAA,YAAA,MAAA,CAAAC,MACchR,GACV,CAAA+Q,EAAAA,YAAA6F,GAAAhD,aAAA,CAAA1hB,MAAA,UAAAwkB,QAAA,UAAAC,QAGWi/L,EACT54N,QAASwX,EAAa97B,MAAM40B,wBAIAkpN,UAAxBl3O,EAAMgyO,wBAANkF,IAAwBA,OAAxBA,EAAAA,EAAwBG,aAHnB,CACPztN,KAAM,WAAN,OAAA6nB,cAAAsjM,EAAA,KAAA,KAAA,OAaZ,CCpPgB,SAAAuC,GACdC,EACAhzL,EACAvW,GAEA,IAAKupM,EAAqB,OAAA,EAC1B,IAAI/gN,EAAW55B,EAAW26O,EAAa/gN,UAAY+gN,EAAa/gN,SAAS,CAAE+tB,IAAAA,EAAKvW,SAAAA,IAAcupM,EAAa/gN,SAQ3G,OAPI+gN,EAAazvG,aACXlrI,EAAW26O,EAAazvG,YAC1BtxG,EAAWA,GAAY+gN,EAAazvG,WAAW,CAAEvjF,IAAAA,EAAKvW,SAAAA,IAAYxX,SAC7B,WAA5B+gN,EAAazvG,aACXtxG,EAAAA,GAAY+gN,EAAazvG,WAAWtxG,aAG1CA,CACX,CAmBgB,SAAAghN,GAAmBhuB,EAAgBgL,GACjD,IAAA,IAAS37N,EAAI,EAAGy4B,EAAMk4L,EAAQvyN,OAAQ4B,EAAIy4B,EAAKz4B,IAAK,CAAA,IAAA4+O,EAC9C,GAAAjuB,EAAQ3wN,GAAG27N,SAAWA,EAAQ,OAAOhL,EAAQ3wN,GAC7C,GAAW,QAAX4+O,EAAAjuB,EAAQ3wN,GAAGilB,gBAAA,IAAA25N,GAAXA,EAAqBxgP,OAAQ,CAC/B,IAAMU,EAAI6/O,GAAmBhuB,EAAQ3wN,GAAGilB,SAAU02M,GAC9C,GAAA78N,EAAU,OAAAA,CAChB,CACF,CACO,OAAA,IACT,CAEgB,SAAA+/O,GAAoBluB,EAAgBgL,GAClD,IAAA,IAAS37N,EAAI,EAAGy4B,EAAMk4L,EAAQvyN,OAAQ4B,EAAIy4B,EAAKz4B,IAAK,CAAA,IAAA8+O,EAC9C,GAAAnuB,EAAQ3wN,GAAG27N,SAAWA,EACjB,OAAA37N,EAEL,GAAW,QAAX8+O,EAAAnuB,EAAQ3wN,GAAGilB,gBAAA,IAAA65N,GAAXA,EAAqB1gP,OAEnB,GADMugP,GAAmBhuB,EAAQ3wN,GAAGilB,SAAU02M,GACpC,OAAA37N,CAElB,CACO,OAAA,CACT,CAEO,SAAS++O,GAAqBpuB,GACnC,IAD4F,IAAzCquB,EAAqC94O,UAAA9H,OAAA,QAAAkD,IAAA4E,UAAA,GAAAA,UAAA,GAAA,CAAA,EAC/ElG,EAAI,EAAGy4B,EAAMk4L,EAAQvyN,OAAQ4B,EAAIy4B,EAAKz4B,IAAK,CAAA,IAAAgzN,EAC5CzoE,EAAMomE,EAAQ3wN,GAChBuqJ,EAAIjkI,QAAU,eAAgBikI,EAAIjkI,SAEzB04N,EAAAz0F,EAAIoxE,QAAUpxE,EAAIjkI,OAAO04N,oBAElChsB,EAAAzoE,EAAItlI,gBAAJ+tM,OAAAA,EAAc50N,QACK2gP,GAAAx0F,EAAItlI,SAAU+5N,EAEvC,CACO,OAAAA,CACT,okBCjFwB,SAAAC,GACtB93O,EACAuwN,GAEM,IAAA9+I,EAAuFv9B,EAAAA,OAAOl0C,GAA5FozO,IAAAA,gBAAiB5pB,EAAS/3I,EAAT+3I,QAASiB,EAAAh5I,EAAAg5I,OAAQ9lN,IAAAA,KAAMquO,EAA8BvhK,EAA9BuhK,6BAA8B/mN,EAAAwlD,EAAAxlD,WACxE8rN,EAAsBpjN,EAAAA,IAC1B1I,EAAW7yB,MACPuL,EAAKvL,MAAMtB,OACRm0B,EAAW7yB,MAAM0gB,QAAU,GAAKmS,EAAW7yB,MAAM+gI,SAClDluG,EAAW7yB,MAAM0gB,QAAUmS,EAAW7yB,MAAM+gI,UAE9Cx1H,EAAKvL,OAEL4+O,EAAwBrjN,EAAAA,MAM9B+tD,EAAA7lE,GALgDqa,GAC9Ck8M,EACApzO,EAAMqzO,wBAA0B,GAChCrzO,EAAMi0O,eACN,mBACF,GALOgE,EAAkBv1J,EAAA,GAAAw1J,EAAmBx1J,EAAA,GAMtCy1J,EAAqBxjN,EAAAA,IAAQ,IAAA5vB,KAC7BwyO,EAAe1/N,EAAAA,UAAS,WAAA,OAAM7X,EAAMwpN,QAAQhvJ,MAAK,SAAA59B,GAAA,IAAG/gC,EAAK+gC,EAAL/gC,KAAK,MAAM,CAAC,WAAY,UAAU6b,SAAS7b,SAC/Fu8O,EAAgBvgO,EAAAA,UAAS,WAAA,IAAAwgO,EAAA,OAAMr4O,EAAMkzO,mBAAiC,UAAbqE,EAAan+O,aAAbi/O,IAAaA,OAAbA,EAAAA,EAAoBx8O,OAAQ,YACrFy8O,EAAkBzgO,EAAAA,UAAS,WAExB,OADam7N,EAA6B55O,MAAQuL,EAAKvL,MAAQ2+O,EAAoB3+O,OACvE+lB,QAAO,SAAColC,EAAKvW,UAwCzB,SAAWuW,EAA0BvW,GAC5C,OAAOspM,GAAsBC,EAAan+O,MAAOmrD,EAAKvW,EACxD,CA1CyD0J,CAAW6M,EAAKvW,KACzE,IAEMumM,EAAmB18N,EAAAA,UAAS,WAAA,OAChCW,GACEy/N,EAAiB7+O,MACjBk/O,EAAgBl/O,MAAM6L,KAAI,SAACtN,GAAA,OAAM+M,GAAI/M,EAAGqI,EAAMyqN,QAAU,KAAK,IAC/D,IAGItoD,EAAetqJ,EAAAA,UAAS,WAAM,IAAA0gO,EAAAC,EAClC,QAAIx4O,EAAMizO,4BACsC,WAAxBmF,EAAch/O,eACdm/O,EAAChB,EAAan+O,aAAbm/O,QAAAA,EAAoBzwG,cAAgB,iBAAsC,QAApB0wG,EAAAjB,EAAan+O,aAAO,IAAAo/O,OAAA,EAApBA,EAAoB1wG,eAE5FyvG,EAAan+O,MAAM0uI,WAAWq6B,YACvC,IA+CA,SAASs2E,EAAyBt1N,GAChC,IAAQigI,EAAuBjgI,EAAvBigI,IAAK7+F,EAAkBphC,EAAlBohC,IAAKvW,EAAa7qB,EAAb6qB,SACZxX,EAAoB55B,EAAWwmJ,EAAI5sH,UAAY4sH,EAAI5sH,SAAS,CAAE+tB,IAAAA,EAAKvW,SAAAA,IAAco1G,EAAI5sH,SACrFsxG,EAAalrI,EAAWwmJ,EAAItb,YAAcsb,EAAItb,WAAW,CAAEvjF,IAAAA,EAAKvW,SAAAA,IAAco1G,EAAItb,WACjF,MAAA,CACLtxG,SAAUA,IAAYsxG,aAAY,EAAZA,EAAYtxG,UAClCsxG,WAAAA,EAEJ,CA+BS,SAAA4wG,IAA2C,IAAxBn0L,EAAoBxlD,UAAA9H,OAAA,QAAAkD,IAAA4E,UAAA,GAAAA,UAAA,GAAA,CAAA,EAC1Cq0O,EAAkBl7O,EAAI+/O,EAAiB7+O,OAErColC,EAAK95B,GAAI6/C,EADEvkD,EAAMyqN,QAAU,MAE3BkuB,EAAmBvF,EAAgBx3M,QAAQ4C,GAC3Co6M,GAAiC,IAArBD,EACd,GAAwB,aAAxBP,EAAch/O,MAChBw/O,EAAYxF,EAAgBxuO,OAAO+zO,EAAkB,GAAKvF,EAAgBhwO,KAAKo7B,OACjF,IAAmC,WAAxB45M,EAAch/O,MAIvB,YADI+gC,GAAK,QAAS,wDAFlBi5M,EAAkBwF,GAAaz2E,EAAa/oK,MAAQ,GAAK,CAAColC,EAI5D,CACA05M,EAAoB9E,EAAiB,CACnCyF,gBAAiBzF,EAAgBnuO,KAAI,SAACtN,UAAMwgP,EAAmB/+O,MAAMsL,IAAI/M,MACzEmhP,cAAet6M,EACfstM,eAAgBvnL,EAChB1oD,KAAM+8O,EAAY,UAAY,SAElC,CAEA,SAASG,EAAgBliN,GAAkB,IAAAmiN,EACnCC,EAAWj5O,EAAMyqN,QAAU,KAC3ByuB,EAAqBZ,EAAgBl/O,MAAM6L,KAAI,SAACk6G,GAAW,OAAAz6G,GAAIy6G,EAAQ85H,MACvEE,GAAiDH,QAAvBA,EAAA5F,EAAgBh6O,iBAAO4/O,SAAvBA,EAAuB75N,QAAO,SAACqf,GAAA,OAAQ06M,EAAmBxhO,SAAS8mB,EAAG,MAAK,GACrG46M,EAASviN,EAAUjB,GAAAA,OAAA19B,EAAIihP,GAAAjhP,EAA4BghP,IAAkBhhP,EAAQihP,GACnFjB,EAAoBkB,EAAQ,CAC1BP,gBAAiBhiN,EAAUuiN,EAAOn0O,KAAI,SAACtN,GAAA,OAAMwgP,EAAmB/+O,MAAMsL,IAAI/M,EAAE,IAAI,GAChFkE,KAAMg7B,EAAU,QAAU,UAC1BiiN,cAAe,iBAEnB,CApHAn8M,EAAAA,MACE,CAACh4B,EAAM6kN,EAASyuB,EAAkBV,EAAc9sB,IAChD,WAAM,IAAA4uB,EAGEC,EAAuC,QAApBD,EAAA9B,EAAan+O,aAAO,IAAAigP,GAApBA,EAAoB7iN,SAFrB,SAACrT,GACvB,OAAAo0N,EAAan+O,MAAMo9B,SAASrT,GAAKotM,EAAqB/5L,SAAW,EAAA,OACO,EACpEG,EAAW,IAAIvpB,IAAI6qO,EAAiB7+O,OAKpCmgP,EAAmB5iN,EAASnyB,KAJL,SAAAq4B,GAA+C,IACpEs+L,EAAQz2N,GADgBm4B,EAAA0nB,IACPvkD,EAAMyqN,QAAU,MACvC,OAAO9zL,EAASlyB,IAAI02N,GAAS5K,EAAqB55L,SAAW,SAEC,EAC1CqhN,EAAA5+O,MAAQ,CAACkgP,EAAkBC,EACnD,GACA,CAAEj8M,WAAW,IAIfX,EAAAA,MAAMh4B,GAAM,WACVozO,EAAoB3+O,MAAQuL,EAAKvL,KACnC,IA6HAujC,EAAAA,MACE,CAACh4B,EAAM8lN,IACP,WACW,IAAA,IAAA5xN,EAAI,EAAGy4B,EAAM3sB,EAAKvL,MAAMnC,OAAQ4B,EAAIy4B,EAAKz4B,IAChDs/O,EAAmB/+O,MAAMiL,IAAIK,GAAIC,EAAKvL,MAAMP,GAAI4xN,EAAOrxN,OAAS,MAAOuL,EAAKvL,MAAMP,GAEtF,GACA,CAAEykC,WAAW,IAIT,IAAAk8M,EAAgB3hO,EAAAA,UAAS,WAAA,OAAM2J,QAAQ+1N,EAAan+O,OAAS4G,EAAMmzO,kBAAoBnzO,EAAMozO,oBAyD5F,MAAA,CACLmE,aAAAA,EACAiC,cAAAA,EACAxB,sBAAAA,EACAD,oBAAAA,EACAG,oBAAAA,EACAuB,wBArGF,SAAiCr2F,GAE/B,MADoB,CAAC,WAAY,UAAU1rI,SAAS0rI,EAAIvnJ,MAEjDy1C,GAAAA,GAAA,CAAA,EACF8xG,GAAA,CAAA,EAAA,CACHz6G,MAAOy6G,EAAIz6G,OAAS,GACpBpI,UAAW,CAACgwL,EAAqBC,UAAWptE,EAAI7iH,WAChDkgK,KAAM,SAAC/8K,EAAaP,GAAA,OAtExB,SAA0BA,GACxB,IAAaogC,EAAqBpgC,EAA1BigI,IAAKs2F,EAAqBv2N,EAAbohC,IAAAA,OAAM,IAAAm1L,EAAA,CAAA,IACrB7iN,EAAUohN,EAAiB7+O,MAAMse,SAAShT,GAAI6/C,EAAKvkD,EAAMyqN,QAAU,OACzEkvB,EAAiClB,EAAyBt1N,GACpDy2N,EAAyBtoM,GAAAA,GAAA,CAC7Bza,QAAAA,EACAL,SAHMmjN,EAAAnjN,UAAqBmjN,EAAX7xG,YAIb,GAAA,CAEHzwF,QAAS,SAACngD,GAE+B,IAAA2iP,EAAtB,WAAbphP,EAAOvB,IAAkB,MAAOA,UAClC2iP,EAAA3iP,EAAEA,gBAAF2iP,EAAKlhK,kBAELzhF,SAAAA,EAAGyhF,iBAEP,EACAxhD,SAAU,WAAV,OAAgBuhN,EAAmBn0L,EAAG,IAExC,GAAoB,WAAhBhB,EAAO1nD,KAA0B,OAAA41C,EAAAK,YAAAwxH,GAAWs2E,EAAgB,MAC5D,GAAgB,aAAhBr2L,EAAO1nD,KAAqB,CAAA,IAAAi+O,EACxB5sH,IAAsD4sH,QAApCA,EAAA95O,EAAM8yO,oCAANgH,IAAoCA,IAApCA,EAAoC7iP,SACxD+I,EAAM8yO,6BAA6Bp7N,SAAShT,GAAI6/C,EAAKvkD,EAAMyqN,SAE/D,OAAAh5K,EAAAK,YAAA45E,GAAAp3E,aAAA,CAAArd,cAAgCi2F,GAAqB0sH,GAAgB,KACvE,CACO,OAAA,IACT,CA2CoEG,CAAiB52N,EAAC,EAClFiK,MAAoB,aAAbg2H,EAAIvnJ,KAnGN,WACC,IAAAqxH,EACJqnH,EAAiBn7O,MAAMnC,OAAS,GAAKs9O,EAAiBn7O,MAAMnC,OAASqhP,EAAgBl/O,MAAMnC,OACvFiwI,EAC8B,IAAlCqtG,EAAiBn7O,MAAMnC,QACU,IAAjCqhP,EAAgBl/O,MAAMnC,QACtBs9O,EAAiBn7O,MAAMnC,SAAWqhP,EAAgBl/O,MAAMnC,OAC1D,OAAAw6C,EAAAA,YAAAi6E,GAAA,CAAA70F,QAEaqwG,EAAAjwG,cACMi2F,EAAA12F,UACJ8hN,EAAgBl/O,MAAMnC,OACjCkgC,SAAU4hN,GACZ,OAsFqD31F,EAAIh2H,QANpCg2H,CAQ3B,EA4FE42F,sBA1F+D,SAAA5lL,GAAoB,IAGtD6lL,EAHqC11L,EAAA6P,EAAA7P,IAAKvpD,IAAAA,MACjEk/O,EAAmBl6O,EAAMwpN,QAAQnlF,WAAU,SAACxmH,GAAS,MAAgB,eAAhBA,EAAK22M,UAC5Dh+L,GAAW,GACc,IAAzB0jN,IACF1jN,EAKIyjN,QALJA,EAAWxB,EAAyB,CAClCl0L,IAAAA,EACAvW,SAAUhzC,EACVooJ,IAAKpjJ,EAAMwpN,QAAQ0wB,GACnB3nB,SAAU2nB,WAJDD,IAKPA,OALOA,EAAAA,EAKPzjN,UAEFA,GACJkiN,EAAmBn0L,IA+EnB41L,iCAtDuC,SAAAn4K,GAAqE,IAAlE6pK,EAAA7pK,EAAA6pK,cAAez+K,IAAAA,OACzD,GAAKosL,EAAcpgP,MAEnB,GAAe,UAAXg0D,EAKJ,GAAe,eAAXA,EAKA,GAAwB,WAAxBgrL,EAAch/O,MAAd,CAOJ,IAAMghP,EAAqBvO,EAAc1sN,QACvC,SAAAg1B,GAAiB,OACdskM,EAAyB,CACxBl0L,IAFDpQ,EAAAoQ,IAGCvW,SAHamG,EAATnG,SAIJo1G,IAAKm0F,EAAan+O,MAClBm5N,cAAU,IACT/7L,QAAA,IAEP,GAAK4jN,EAAmBnjP,OAAxB,CAEM,IAAAojP,EAAoBD,EAAmBn1O,KAAI,SAAAuyH,GAAO,OAAM9yH,GAAN8yH,EAAJjzE,IAAmBvkD,EAAMyqN,WAEvE6vB,EADmB9hO,GAAay/N,EAAiB7+O,MAAOihP,GAC7BpjP,SAAWojP,EAAkBpjP,OACxDsjP,EAActC,EAAiB7+O,MAAM+lB,QAAO,SAACthB,UAASw8O,EAAkB3iO,SAAS7Z,MACjF28O,EAAqBF,EAAApiP,EAAc,IAAIkV,IAAI6qO,EAAiB7+O,MAAMw8B,OAAOykN,KAAuBE,EAEhGzO,EAA4B,wBAAX1+K,EAAmCy+K,EAAc,GAAGtnL,SAAM,EACjF2zL,EAAoBsC,EAAoB,CACtC3B,gBAAiBhN,EACjBiN,cAAep0O,GAAIonO,EAAgB9rO,EAAMyqN,QACzCqhB,eAAAA,EACAjwO,KAAMy+O,EAAU,QAAU,WAbI,CAXhC,KAJiB,wBAAXltL,GACiBsrL,EAAA7M,EAAc,GAAGtnL,UANtCw0L,GAAgB,QAjBlBb,EAAoB,GAAI,CACtBW,gBAAiB,GACjBC,mBAAe,EACfhN,oBAAgB,EAChBjwO,KAAM,aA4DZ,CClRA,IAAA4+O,GAAepqM,kBAAgB,CAC7Br4C,KAAM,gBAENgI,MAAO,CACL06O,SAAU,CACR7+O,KAAM9C,OACN6uB,QAAS,OAEX+yN,UAAW,CACT9+O,KAAM9C,OACN6uB,QAAS,iBAAc,EAAA,GAEzB/D,OAAQ3qB,OACRuxB,SAAU5wB,SACV2sK,aAActtK,OACd0xB,aAAcpJ,SAGhBu7B,MAAO,CAAC,mBAERzM,eAAMtwC,EAAO83B,GACX,IAAA26L,EAAgDlG,KAAxCuD,EAAA2C,EAAA3C,iBAAkB+B,EAAkBY,EAAlBZ,kBACpBx5J,EAAc52C,KACpBuzD,EAA4BpgD,GAAU,QAAS50B,EAAM6jB,QAA7ClsB,EAAGq9E,EAAHr9E,EAAGu9B,EAAA8/C,EAAA9/C,aACH2xE,EAAoB/sE,GAAc,CAAE+sE,gBAAiBC,KAArDD,gBAEF+zI,EAAiB/iO,EAAAA,UAAwB,WAAA,MAC1B,QAAnB7X,EAAM06O,SAAqB,CAAC,MAAO,QAAU,CAAC16O,EAAM06O,SAAQ,IAuBvD,MAAA,CACL/iP,EAAAA,EACAu9B,aAAAA,EACA46L,iBAAAA,EACA+B,kBAAAA,EACA+oB,eAAAA,EACAC,YAtBkB,SAACjsN,EAAyBksN,GAC5C,IAAM16G,EAAczoI,EAAEu9B,EAAa97B,MAAMqxB,WAAQgnB,EAAAA,YAAAo1D,EAAsB,KAAA,MACjEj9E,EAAOyuC,EAAY,WAAY+nE,GAC/B26G,EAAgB,CACpBD,EACAhrB,EAAiBrlM,SACjBqlM,EAAiBI,cAActhM,GAAA31B,EAAA,CAAA,EAC5B44N,EAAkC,QAAdjjM,IAEzB,OAAA6iB,EAAAA,YAAA,OAAA,CAAAC,MACeqpM,EAAA1jM,QAAwB,SAACngD,GAAM,OAdxB,SAACA,EAAe03B,GACtCkJ,EAAQR,KAAK,kBAAmBpgC,EAAG,CAAE8jP,WAA0B,SAAdpsN,IAaHqsN,CAAgB/jP,EAAG03B,EAC5D,GAAA,CAAAhF,KAaT,EAEAkrB,OAAS,WAAA,IAAAzP,EAAAxkC,KACCivN,EAAqBjvN,KAArBivN,iBACFpvL,EAAU,CAACovL,EAAiB5gK,QAAAj2D,EAAY62N,CAAAA,EAAAA,EAAiBG,WAAapvN,KAAK+5O,eAAe3jP,OAAS,IACnGikP,EAAW,CACf/qB,IAAKtvN,KAAKq0B,aAAatH,2BACvBwiM,KAAMvvN,KAAKq0B,aAAapH,6BAEpBqtN,EAAat6O,KAAK+5O,eAAe31O,KAAI,SAAC2pB,GAA4B,IAAA0vB,EAAA88L,EA3ElBn5N,EA4E9C64N,EAAclsN,IAAcyW,EAAKs1M,UAAY7qB,EAAiBO,WAAaP,EAAiBQ,YAC5F+qB,EAAah2M,EAAKnQ,aAAarH,wBAC/B2lE,EAAO5kE,IAAcyW,EAAKs1M,UAAYU,EAAaH,EAAStsN,GAC9D,eAAAwsN,EAAA/1M,EAAKza,oBAAgB,IAAAwwN,EAAAA,EAAA/1M,EAAKnQ,aAAatK,cAAqBya,EAAKw1M,YAAYjsN,EAAWksN,GAE1FrpM,EAAAK,YAAAulC,GAAA/iC,aAAA,CAAA52B,QACW81E,EAAA58B,UAAA,QAAAkY,WAEE,QACJzpC,EAAKyqL,iBAAiBI,cAActhM,IACtCyW,EAAKmhI,cAtFsC,mBAAAvkJ,EAwF/Cq8B,EAAAjZ,EAAKw1M,YAAYjsN,EAAWksN,KAxFmBt8L,oBAAAtlD,OAAAP,UAAAf,SAAAC,KAAAoqB,KAAAu8B,EAAAhhC,QAAAyE,qCA2FtD,IACA,OAAAwvB,EAAAA,YAAA,MAAA,CAAAC,MAAmBhR,GAAA,CAAUy6M,GAC/B,mOC1FF,SAAwBG,GAAUt7O,EAAA48B,GAAqD,IAAvB5d,EAAA4d,EAAA5d,MAC9DyyD,EAAuBv9B,SAAOl0C,GAAtBgvC,EAAAyiC,EAAAziC,KAAMrqC,EAAK8sE,EAAL9sE,KACR42O,EAAe5mN,EAAAA,MACgF+tD,EAAA7lE,GAAnEqa,GAAgB8X,EAAMhvC,EAAMuzO,YAAavzO,EAAMk0O,aAAc,QAAM,GAA9FsH,EAAW94J,EAAA,GAAA+4J,EAAY/4J,EAAA,GACgDmyC,EAAAh4G,GAApDqa,GAAgBvyB,EAAM,GAAI3E,EAAMi0K,aAAc,QAAM,GAAvEynE,EAAO7mH,EAAA,GAAA8mH,EAAQ9mH,EAAA,GAEhB+mH,EAAgB/jO,EAAAA,UAAS,WAAA,OAAMgkO,EAAiB77O,EAAMwpN,YACtDsyB,EAAYnnN,EAAAA,MAEZonN,EAAYlkO,EAAAA,UAA0B,WAC1C,IAAMm3B,EAAOwsM,EAAUpiP,MACvB,OAAK41C,EACE72C,EAAQ62C,GAAQA,EAAO,CAACA,GADb,EAEpB,IAEMgtM,EAAUnkO,EAAAA,UAAkB,WAChC,IAAMmkO,EAA+B,CAAA,EAK9BA,OAJPD,EAAU3iP,MAAMoX,SAAQ,SAAC0Z,EAAMlvB,GACvB,IAAEihP,EAAW/xN,EAAX+xN,OACRD,EAAQC,oWAAA3qM,CAAA,CAAYt2C,MAAAA,GAAUkvB,EAChC,IACO8xN,CACT,IAEA,SAASH,EAAiBryB,GACxB,IAD2F,IAAvCvkN,EAAmClG,UAAA9H,OAAA,QAAAkD,IAAA4E,UAAA,GAAAA,UAAA,GAAA,CAAA,EAC9ElG,EAAI,EAAGy4B,EAAMk4L,EAAQvyN,OAAQ4B,EAAIy4B,EAAKz4B,IAAK,CAAA,IAAAgzN,EAC5CzoE,EAAMomE,EAAQ3wN,GAChB+D,EAAWwmJ,EAAI84F,UAEbj3O,EAAAm+I,EAAIoxE,QAAUpxE,EAAI84F,gBAGpBrwB,EAAAzoE,EAAItlI,gBAAJ+tM,OAAAA,EAAc50N,QACC4kP,EAAAz4F,EAAItlI,SAAU7Y,EAEnC,CACO,OAAAA,CACT,CAEA,SAASk3O,EAAeC,GACtB,IAAMptM,EAAOotM,EACb,GAAKljP,OAAO+D,KAAK2+O,EAAcxiP,OAAOnC,OAAtC,CACKskP,EAAaniP,QAChBmiP,EAAaniP,MAAQsiP,EAAMtiP,OAE7B,IAAMijP,GAAoBrtM,GAASA,aAAgB53C,QAAU43C,EAAK/3C,OAC5DqlP,IAAsBttM,aAAgB53C,OAAW43C,SAAAA,EAAMitM,QAC7D,GAAII,GAAoBC,EAEtB,OADAX,EAASJ,EAAaniP,MAAO,CAAE81D,QAAS,SACjCqsL,EAAaniP,MAEtB,IAAMmjP,EAAevtM,aAAgB53C,MAAQ43C,EAAO,CAACA,GAE/C46F,EAA0B8xG,EAAMtiP,MAAMtB,QAAQk3C,MAAK,SAACh4C,EAAiB4sB,GAEzE,IADA,IAAI44N,EAAa,EACR3jP,EAAI,EAAGy4B,EAAMirN,EAAatlP,OAAQ4B,EAAIy4B,EAAKz4B,IAAK,CACvD,IAAMglB,EAAO0+N,EAAa1jP,GACpB4jP,EAAWb,EAAcxiP,MAAMykB,EAAKo+N,QAEtC,GAAe,IAAfO,IAAoBC,EAGtB,MAFaD,EAAA3+N,EAAKm9N,WAAayB,EAAS74N,EAAG5sB,GAAKylP,EAASzlP,EAAG4sB,EAIhE,CACO,OAAA44N,CACT,IAEA,GAAIjpG,KAAKC,UAAU5J,KAAa2J,KAAKC,UAAUkoG,EAAMtiP,OAE9C,OADPuiP,EAAS/xG,EAAS,CAAE16E,QAAS,SACtB06E,CA7BuC,CA8BhD,CAES,SAAA8yG,EAAsBt5F,EAAoCjgI,GAA4B,IAAAujI,EACzF01F,EACAp8O,EAAM+yO,aACGqJ,EA6BN,SAAoBh5F,EAAoCjgI,GAE1D/rB,MAAMe,QAAQqjP,EAAUpiP,SAC3BoiP,EAAUpiP,MAAQoiP,EAAUpiP,MAAQ,CAACoiP,EAAUpiP,OAAS,IAK1D,IAHA,IAAM41C,EAAOwsM,EAAUpiP,MACfo7N,EAAWpxE,EAAXoxE,OACFh6N,EAAAtC,EAAa82C,GACVn2C,EAAI,EAAGy4B,EAAM0d,EAAK/3C,OAAQ4B,EAAIy4B,EAAKz4B,IACtCm2C,GAAAA,EAAKn2C,GAAGojP,SAAWznB,EAAQ,CAC7B,IAAMt3M,EAAOy/N,EAAkBv5F,EAAKp0G,EAAKn2C,GAAIsqB,GAEtC,OADPjG,EAAQ1iB,EAAO3B,GAAKqkB,EAAQ1iB,EAAOoK,OAAO/L,EAAG,GACtC2B,CACT,CAGK,OADPA,EAAO4I,KAAK,CAAE64O,OAAQznB,EAAQwmB,WAAY73N,EAAE63N,aACrCxgP,CACT,CA9CeoiP,CAAoBx5F,EAAKjgI,GAIzBi5N,EAAAO,EAAkBv5F,EADhBo4F,EAAUpiP,iBAAiBhC,MAAQokP,EAAUpiP,MAAM,GAAKoiP,EAAUpiP,MACvC+pB,GAGpC,IACA05N,EADUV,EAAeC,IACAV,EAAMtiP,MAErCqiP,EAAaW,EAAU,CAAEU,kBADCD,EACkBz5F,IAAAA,IACtC,QAAAsD,EAAA1mJ,EAAAm3B,gBAAA,IAAAuvH,GAAAA,EAAA7uJ,KAAAmI,EAAW,CAAEk8O,OAAQE,GAAY,CAAES,YAAAA,EAAa3tL,QAAS,WAC/D4sL,EAAU1iP,MAAQgjP,CACpB,CAEA,SAASW,EAAa/B,GACpB,QAAmB,IAAfA,EACJ,OAAOA,EAAa,OAAS,KAC/B,CAGS,SAAA2B,EAAkBv5F,EAAsBg5F,EAAoBj5N,GAE/D,IAAAi5N,GAAYA,EAASH,SAAW74F,EAAIoxE,QAAU4nB,EAASpB,aAAe73N,EAAE63N,WAG5E,MAAO,CAAEiB,OAAQ74F,EAAIoxE,OAAQwmB,WAAY73N,EAAE63N,WAC7C,CAoEO,OAZPr+M,EAAAA,OACE,WAAA,MAAM,CAAC6+M,EAAWx7O,EAAM2E,KAAI,IAC5B,WACO62O,EAAUpiP,OAAUF,OAAO+D,KAAKu+O,EAAUpiP,OAAOnC,QAAWykP,EAAMtiP,MAAMnC,SApB1D,SAACD,EAA0B4sB,GAChD,IAAMo5N,EAAc7kP,EAAQnB,GAAKA,EAAI,CAACA,GAChCimP,EAAmB9kP,EAAQyrB,GAAKA,EAAI,CAACA,GACvC,GAAAo5N,EAAY/lP,SAAW2sB,EAAU,OAAA,EAErC,IAFqC,IAOrCs5N,EAPqCr+M,EAAAA,WAGnC,IAAMhhB,EAAOm/N,EAAYnkP,GACnB2B,EAASyiP,EAAiBziL,MAAK,SAAC7iE,UAAMA,EAAEskP,SAAWp+N,EAAKo+N,UAC9D,OAAKzhP,EAAe,CAAAmoB,EACb9E,EAAKm9N,aAAexgP,EAAOwgP,YAD7B,CAAAr4N,GAAe,EAEtB,EALS9pB,EAAI,EAAGy4B,EAAM0rN,EAAY/lP,OAAQ4B,EAAIy4B,EAAKz4B,IAAK,GAAAqkP,EAAAr+M,IAAA,OAAAq+M,EAAAv6N,EAiBjDw6N,CAAe3B,EAAUpiP,MAAO0iP,EAAU1iP,QAC7C+iP,EAAeX,EAAUpiP,OAE7B,GACA,CAAEkkC,WAAW,IAGR,CACL8/M,eAhDO,SAAAvgN,GAAkF,IAAAwgN,EAAjEj6F,EAAAvmH,EAAAumH,IACxB,IAAKA,EAAI84F,OAAe,OAAA,KACxB,IAAMoB,EAAqB,CACzB5C,SAAUt3F,EAAIs3F,SACdC,UAAWoC,UAAaM,EAAArB,EAAQ5iP,MAAMgqJ,EAAIoxE,4BAAlB6oB,EAA2BrC,YACnDvwN,SAAUzqB,EAAMyqB,SAChBG,aAAc5qB,EAAM4qB,aACpB/G,OAAQ7jB,EAAM6jB,QAEhB,OAAA4tB,cAAAgpM,GAAAnmM,EAAAqgC,WAGQ2oK,EACJ,CAAArC,gBAAiB,SAACv3N,EAAeP,GAAA,OAA+Bu5N,EAAsBt5F,EAAKjgI,EAC7F,IAHW,CAAEsH,SAAUzL,EAAMyL,UAKjC,EAkCF,okBC7IA,IAAA8yN,GAAeltM,kBAAgB,CAC7Br4C,KAAM,wBAENgI,MAAO,CACL6jB,OAAQ3qB,OACRqqD,OAAQrqD,OACRq5N,SAAUv5N,OACVwkP,aAActkP,OACdukP,iBAAkBvkP,OAClBu3N,mBAAoBv3N,OACpB63N,aAAch4N,OAEd2kP,oBAAqB,CAAC,EACtBpvK,WAAYp1E,OACZqwB,OAAQ,CAACxwB,OAAQc,UACjBu1E,gBAAiBv1E,SACjB6wB,WAAY,CAAC7wB,WAGfkjD,MAAO,CAAC,sBAAuB,QAAS,WAExCzM,eAAMtwC,EAAmC83B,GACjC,IAAA6lN,EAAoBhpN,MAAoB,MACxC0jC,EAAc52C,KACpBuzD,EAA4BpgD,GAAU,QAAS50B,EAAM6jB,QAA7ClsB,EAAGq9E,EAAHr9E,EAAGu9B,EAAA8/C,EAAA9/C,aACH0oN,EAAe9jN,GAAc,CAAE8jN,WAAYC,KAA3CD,WACFE,EAAqBnpN,OAAI,GAOzBopN,EAAkB,SAACx6L,EAAyBy6L,EAA2BrpM,GAC3E,IAAKA,EAAkB,OAAA,KACjB,IAAAspM,IAAmBtpM,EAAUrE,MACnC,GAAI1zC,EAAW2mD,EAAOpkC,OAAOw1B,aAAespM,EAC1C,OAAO16L,EAAOpkC,OAAOw1B,WAAU,SAAChyB,EAAQiB,GAChC,IAAAs6N,EAAsB,WAAbzlP,EAAOmrB,IAAkB,UAAWA,EAAIA,EAAE6uB,MAAQ,GACjE,OAAO7zB,EAAAA,EAAE+D,EAAG,CACV3iB,MAAOsxC,GAAAA,GAAK0sM,CAAAA,EAAAA,GAAyBE,IAEzC,IAEI,IAAA/+N,EAASokC,EAAOpkC,QAAU,GAE9B,OAAAsyB,EAAAK,YAAA6C,EAAAL,aAAA,CAAA5C,MACSvyB,EAAOi9B,WAAAhV,MACPjoB,EAAOioB,OACVjoB,EAAOszB,MACPurM,GACL,OAICG,EAAmB,SAAC56L,GAA4B,IAAA66L,EAAAC,EAAAC,EAC9C/7O,EAAQ,CAAC,SAAU,WAAY,SACjC,WAAA67O,EAAA76L,EAAOpkC,cAAPi/N,QAAAA,EAAeviP,MAAS0G,EAAMmV,SAAS6rC,EAAOpkC,OAAOtjB,MAArD,CAIJ,IAAA0iP,EAAkCv+O,EAA1By9O,iBAAAA,OAAA,IAAAc,EAAmB,CAAA,EAACA,EACtB5pM,EACJ,CACE6pM,OAAQt4E,GACRx+D,SAAUokB,GACV97G,MAAO4sF,IACPr5C,EAAOpkC,OAAOtjB,OAAS0nD,EAAOpkC,OAAOw1B,UACzC,GAAKA,GAAc4O,EAAOpkC,OAAOw1B,UAAjC,CACA,IAAMqpM,EAA+C1sM,GAAAA,GAAA,CACnDl8B,QAAS,CAAC,SAAU,YAAYsC,SAAS6rC,EAAOpkC,OAAOtjB,MAAe,QAAXwiP,EAAI96L,EAAOpkC,cAAA,IAAAk/N,OAAA,EAAPA,EAAexsN,UAAO,IAClE,QAAfysN,EAAA/6L,EAAOpkC,cAAQ,IAAAm/N,OAAA,EAAfA,EAAet+O,QAAS,CAAC,GAAA,CAAA,EAAA,CAC7Bm3B,SAAU,SAAClX,EAAU4xC,GAAa,IAAA4sL,EAAAC,EAEGC,EAAAC,GAD3B9mN,EAAAR,KAAK,sBAAuBrX,EAAKsjC,GACvB,QAAdk7L,EAAAl7L,EAAOpkC,OAAOnf,aAAA,IAAAy+O,GAAdA,EAAqBtnN,oBACvBwnN,GAAAC,EAAAr7L,EAAOpkC,OAAOnf,OAAMm3B,gBAAW,IAAAwnN,GAA/BA,EAAA9mP,KAAA+mP,EAA+B3+N,EAAK4xC,IAE3B6sL,QAAXA,EAAIn7L,EAAOpkC,cAAAu/N,IAAAA,GAAuB,QAAvBA,EAAPA,EAAeG,qBAAfH,IAA8BA,GAA9BA,EAA8BhnO,SAAS,cACzComO,EAAmB1kP,OAAQ,EAE/B,IAgBA,OAdEmqD,EAAOixK,QAAUipB,GAAoBl6L,EAAOixK,UAAUipB,IACnCO,EAAA5kP,MAAQqkP,aAAAA,EAAAA,EAAmBl6L,EAAOixK,SAGrDjxK,EAAOpkC,OAAO0/N,eAChBt7L,EAAOpkC,OAAO0/N,cAAcruO,SAAQ,SAAC2sB,GACrB,aAAVA,IACJ6gN,EAAqB7gN,GAAS,WACpBrF,EAAAR,KAAK,UAAWisB,GACxBu6L,EAAmB1kP,OAAQ,GAE/B,IAGAq4C,EAAAA,YAAA,MAAA,CAAAC,MAAY1xC,EAAMywN,mBAAmBG,cAClC,CAAAmtB,EAAgBx6L,EAAQy6L,EAAsBrpM,IA7BP,CAR5C,MAFE9a,QAAQnD,MAAMd,kEAAAA,OAAkE29G,KAAKC,UAAUjxI,MA4C7Fu8O,EAAmB,SAACv7L,GACpB,GAACA,EAAOpkC,OAAO4/N,oBACnB,OAAAttM,EAAAA,YAAA,MAAA,CAAAC,MACc1xC,EAAMywN,mBAAmBE,eAAAl/K,CAAAA,EAAAK,YAAAwF,GAAA,CAAA1kB,MAAA,UAAApuB,KAAA,QAAA6yC,QAIxB,WACCvf,EAAAR,KAAK,QAASisB,GACtBu6L,EAAmB1kP,OAAQ,CAC7B,GAEC,CAAAwuB,QAAA,WAAA,MAAA,CAAAsN,EAAa97B,MAAMi1B,UAAA,IAAAojB,EAAAK,YAAAwF,GAAA,CAAA1kB,MAAA,UAAApuB,KAAA,QAAA6yC,QAKX,WACCvf,EAAAR,KAAK,UAAWisB,GACxBu6L,EAAmB1kP,OAAQ,CAC7B,GAEC,CAAAwuB,QAAA,WAAA,MAAA,CAAAsN,EAAa97B,MAAM+0B,YAAA,OAarB,MAAA,CACLx2B,EAAAA,EACAu9B,aAAAA,EACA0oN,WAAAA,EACAE,mBAAAA,EACAH,kBAAAA,EACAtlL,YAAAA,EACAukB,WAdiB,6CACL58E,EAAMywN,mBAAmBC,cAAA,CAClCytB,EAAiBn+O,EAAMujD,QACvBu7L,EAAiB9+O,EAAMujD,WAY1By7L,2BArHiC,SAACjoN,GAAqB,IAAAkoN,EACvDnB,EAAmB1kP,MAAQ29B,UAC3BkoN,EAAAj/O,EAAMovE,uBAAN6vK,OAAAA,EAAApnP,KAAAmI,EAAwB+2B,IAqH5B,EAEA+d,OAAS,WAAA,IAAAoqM,EAAA75M,EAAAxkC,KACC0iD,EAAmC1iD,KAAnC0iD,OAAQ+qB,EAA2BztE,KAA3BytE,WAAYsvK,EAAe/8O,KAAf+8O,WAExB,IAACr6L,EAAOpkC,QAAWokC,EAAOpkC,SAAWjmB,OAAO+D,KAAKsmD,EAAOpkC,QAAQloB,OAAgB,OAAA,KAC9E,IAAAkoP,EAAoBt+O,KAAKlJ,EAAEkJ,KAAKq0B,aAAaxK,aAAU+mB,cAAAmsM,EAAiB,KAAA,MACxEzpE,EAAoB+qE,QAApBA,EAAer+O,KAAK28O,wBAAA0B,SAALA,EAAmE37L,EAAOixK,QACzF4qB,EAAsC,WAAvB3mP,EAAO07K,KAA6B/6J,GAAQ+6J,GAE3DkrE,GAAgB,CAAC,UAAM,EAAW,IAAI3nO,SAASy8J,IAAuC,WAAvB17K,EAAO07K,GAC5E,OAAA1iI,EAAAK,YAAAgjC,GAAAxgC,aAAA,CAAA/qB,OAEY1oB,KAAK0oB,SAAW1oB,KAAK68O,oBAAsB,WAAA,OAAMr4M,EAAKq4M,mBAAqC,OAAA,GACnG3mN,QAASl2B,KAAKi9O,mBACdvvK,gBAAA,EAAArf,QAAA,QAAA0H,UAAA,eAAAkY,WAAA,EAAAL,iBAIkB5tE,KAAK4vN,mBAAmBnrL,MAAA8pC,gBACzB,SAACnvD,GAAiB,OAAAolB,EAAK25M,2BAA2B/+N,UAC5D,CACLpf,KAAK4vN,mBAAmB7mM,KAAA3wB,EAErB,CAAA,EAAA4H,KAAKkwN,aAAequB,GAAgBC,IAEzC3hO,QACS7c,KAAK+7E,YACVtO,GAAA,CAAA1mD,QAAA,WAAA,MAAA,CAAA6pB,EAAAK,YAAA,MAAA,CAAAnd,IAAA,qBAAA,CAGD0Q,EAAKgzB,YAAY,aAAc,CAC9B96C,YAAa4hO,EACblhO,OAAQ,CAAEmlI,IAAK7/F,EAAQgvK,SAAUltL,EAAKktL,cACvC,GAIT,ukBCtNF,SAAS+sB,GAAmBlmP,GACpB,IAAAmmP,EAAcnmP,aAAiBhC,OAASgC,EAAMnC,OAC9C2E,EAA4B,WAAjBnD,EAAOW,MAAwBA,aAAiBhC,OAC3DgoP,EAAyB,OAAVhmP,GAAkBwC,GAAY1C,OAAO+D,KAAK7D,GAAOnC,OAC/D,OAAAsoP,GAAeH,IAAiB,CAAC,OAAQ,GAAI,aAAa1nO,SAAS3e,OAAOK,GACnF,CAcwB,SAAAomP,GAAUx/O,EAA4B83B,GACtD,IAAA2nN,EAAkB9qN,MAAI,MAC5BqgD,EAA4BpgD,GAAU,QAAS50B,EAAM6jB,QAA7ClsB,EAAGq9E,EAAHr9E,EAAGu9B,EAAA8/C,EAAA9/C,aACLmjC,EAAc52C,KACpBgwD,EAAiCv9B,SAAOl0C,GAAhCm0K,EAAA1iG,EAAA0iG,YAAaq1C,EAAQ/3I,EAAR+3I,QACrBiJ,EAA6ClG,KAArCkE,EAAAgC,EAAAhC,mBAAoBM,EAAa0B,EAAb1B,aACtB2uB,EAAwB/qN,EAAAA,MAQ9B+tD,EAAA7lE,GALwCqa,GACtCi9I,EACAn0K,EAAM6yO,mBACN7yO,EAAM8zO,eACN,eACF,GALO0J,EAAc96J,EAAA,GAAAi9J,EAAej9J,EAAA,GAQ9B+6J,EAAmB9oN,EAAAA,IAAiB6oN,EAAapkP,OAEjDwmP,EAAoB/nO,EAAAA,UAAS,WACjC,IA/BqBlT,EACjBk7O,EA8BExwK,GA/Be1qE,EA+Be64O,EAAapkP,OAAS,CAAE,EA9BxDymP,EAA8B,CAAA,EACpC3mP,OAAO+D,KAAK0H,GAAM6L,SAAQ,SAAC3S,GACzB,IAAMggB,EAAOlZ,EAAK9G,GACdyhP,GAAmBzhO,KACrBgiO,EAAehiP,GAAOggB,EAE1B,IACOgiO,GAwBL,OAAQrC,EAAapkP,QAAUF,OAAO+D,KAAKoyE,GAAap4E,MAC1D,IA6BA,SAAS6oP,IACP,IAAM/iK,EAAgB,GAChBysI,EAAkC,GAsBjC,OArBOu2B,EAAA//O,EAAMwpN,QAASA,GAC7BA,EACGrqM,QAAO,SAACikI,GAAQ,OAAAA,EAAIjkI,MAAM,IAC1B3O,SAAQ,SAAC4yI,EAAKpoJ,GACT,IAAA5B,EAAQokP,EAAapkP,MAAMgqJ,EAAIoxE,QAC/B,GAAApxE,EAAIjkI,OAAO0S,OAAS,CAAC,QAAQna,SAAS3e,OAAOK,IAAS,CACxD,IAAM0vJ,EAAiB1vJ,aAAiBhC,MAAQgC,EAAQ,CAACA,GACnDwrD,EAAkB,GACxBw+F,EAAIjkI,OAAO0S,KAAKrhB,SAAQ,SAACmpE,GACnBmvE,EAAepxI,SAASiiE,EAAOvgF,QAC3BwrD,EAAAxhD,KAAKu2E,EAAO/0B,MAEtB,IACAxrD,EAAQwrD,EAAMt8C,MAChB,CACI,GAAAg3O,GAAmBlmP,GAAQ,CAAA,IAAA4mP,EAAAC,EACvBr7L,EAAQhoD,EAAe,QAAfojP,EAAW58F,EAAIjkI,cAAJ6gO,IAAIA,OAAJA,EAAAA,EAAYp7L,OAASw+F,EAAIjkI,OAAOylC,MAAMhmC,EAACA,GAAgBqhO,QAAZA,EAAA78F,EAAIjkI,cAAJ8gO,IAAYA,OAAZA,EAAAA,EAAYr7L,MAC1Ex3B,EAAQqoC,GAAY39B,EAAQ9Y,MAAOokI,EAAKpoJ,GAC9C+hF,EAAI35E,KAAKwyB,GAAAA,OAAGgvB,GAASx3B,EAAAwI,UAAAA,OAASx8B,GAChC,CACF,IACK2jF,EAAIz0E,KAAK,SAClB,CAES,SAAAy3O,EAAc38F,EAA6BomE,GAC9CpmE,EAAA5yI,SAAQ,SAAC+yC,GACPA,EAAOzlC,UACKiiO,EAAAx8L,EAAOzlC,SAAU0rM,GAEjCA,EAAQpmN,KAAKmgD,EACf,GACF,CAES,SAAA28L,EAAoBjgO,EAAUsjC,GACrC,IAAM4wH,EAAc7iI,GAAAA,MACfmsM,EAAiBrkP,OAAA,CAAA,EAAAH,EACnBsqD,CAAAA,EAAAA,EAAOixK,OAASv0M,IAEnBw9N,EAAiBrkP,MAAQ+6K,EACpB5wH,EAAOpkC,OAAO4/N,qBACA5qE,EAAAA,EAAa,gBAAiB5wH,EAEnD,CAES,SAAA48L,EACPhsE,EACAjlH,EACA3L,GACA,IAAAmjG,EACAi5F,EAAgBxrE,EAAa,CAAE/wB,IAAK7/F,EAAQ2L,QAAAA,IACtC,QAAAw3F,EAAA1mJ,EAAAm3B,gBAAA,IAAAuvH,GAAAA,EAAA7uJ,KAAAmI,EAAW,CAAEmf,OAAQg1J,GAAe,CAAEjlH,QAAS,UACvD,CAEA,SAASkxG,EAAQ78G,GAAyB,IAAA6Q,EAAAgsL,EAYvBjsE,EAXgB7iI,GAAAA,GAAA,GAC5BksM,EAAapkP,OAAA,CAAA,EAAAH,EAAA,CAAA,EACfsqD,EAAOixK,OAON,QANApgK,EACA,QADAgsL,EAAA78L,EAAOpkC,OAAO04N,kBACd,IAAAuI,EAAAA,EAAA,CACE5B,OAAQ,GACR92I,SAAU,GACV13F,MAAO,IACPuzC,EAAOpkC,OAAOtjB,aAChB,IAAAu4D,EAAAA,EAAA,KAE0B,QAAS7Q,EACzC,CAEA,SAAS88L,IAEUF,EADEvI,GAAqBpuB,EAAQpwN,OACnB,aAAS,EACxC,CAEA,SAASimJ,EAAU97F,GACA48L,EAAA1C,EAAiBrkP,MAAO,UAAWmqD,EACtD,CA8BA,SAAS0kD,EAAqBlxE,GACxBA,IAAY2oN,EAAsBtmP,QACpCsmP,EAAsBtmP,OAAS29B,EAEnC,CAEO,OA7IP4F,EAAAA,MAAM,CAAC6gN,IAAe,SAAA5gN,GAAW,IAAT3c,EAASpD,GAAA+f,EAAA,GAAN,GACzB6gN,EAAiBrkP,MAAQ6mB,CAC3B,IA2IO,CACL2/N,kBAAAA,EACAF,sBAAAA,EACAY,iBApCF,SAA0Bt+K,GAA6E,IAAAu+K,EAA3En9F,EAAKphF,EAALohF,IAAKmvE,EAAAvwJ,EAAAuwJ,SAE7B,OAAA9gL,EAAAA,YAAA8rM,GAAA,CAAAh6L,OAEU6/F,WACEmvE,EAAA7nM,WACE1qB,EAAM0qB,WAAA8yN,aACJA,EAAapkP,MAAAqkP,iBACTA,EAAiBrkP,MACnCq3N,mBAAoBA,eACNM,EAAAziJ,WACF80E,EAAIjkI,OAAOmvD,kBACftuE,EAAMupB,OACd1F,OAAQ7jB,EAAM6jB,OAAAu8I,QACLA,EACT/gB,UAAWA,sBACU6gG,EAAAxC,4BAAA6C,EACAd,EAAgBrmP,aAAA,IAAAmnP,OAAA,EAAhBA,EAAuBlmL,IAC5C+U,gBAAiB64B,GAfR,CAAEv9E,WAAYoN,EAAQ9Y,MAAM0L,YAkB3C,EAgBE81N,qBA7IF,WAAgC,IAAAhhB,EAAAihB,EAC9B,GAAIb,EAAkBxmP,MAAc,OAAA,KACpC,IAAMmkB,EACJk0B,EAAAK,YAAA,MAAA,CAAAJ,MAAY++K,EAAmBj2N,QAAAi3C,CAAAA,EAAAA,yBAI1B95C,EAAEu9B,EAAa97B,MAAMm1B,iBAAkB,CACtC/zB,OAAQslP,IACRrhP,OAAyB,QAAlB+gO,EAAAx/N,EAAMisB,kBAAY,IAAAuzM,OAAA,EAAlBA,EAAkBnzM,iBAAAo0N,EAASzgP,EAAM2E,YAAM,IAAA87O,OAAA,EAAZA,EAAYxpP,qEAGDopP,GAC9C,CAAAz4N,QAAA,WAAA,MAAA,CAAAsN,EAAa97B,MAAM20B,4BAAA,MAIpB2yN,EAAgBroL,EAAY,aAClC,OAAKr4D,EAAM4yO,YAAc8N,GAAsC,OAApB1gP,EAAM4yO,UAA2B,KAC5EnhM,EAAAA,YAAA,MAAA,CAAAC,MAAmB++K,EAAmBlvC,OAAQm/D,CAAAA,GAAiBnjO,GACjE,EA0HEojO,yBAfF,SAAkCjD,GAChC+B,EAAgBrmP,MAAQskP,CAC1B,EAeF;;;;;;KCrMA,SAASkD,GAAQhjP,EAAQijP,GACvB,IAAI5jP,EAAO/D,OAAO+D,KAAKW,GACvB,GAAI1E,OAAOuT,sBAAuB,CAChC,IAAIq0O,EAAU5nP,OAAOuT,sBAAsB7O,GACvCijP,IACFC,EAAUA,EAAQ3hO,QAAO,SAAU4hO,GACjC,OAAO7nP,OAAO8nP,yBAAyBpjP,EAAQmjP,GAAK1nP,UACtD,KAEF4D,EAAKmG,KAAKpE,MAAM/B,EAAM6jP,EACxB,CACA,OAAO7jP,CACT,CACA,SAASgkP,GAAehoN,GACtB,IAAK,IAAIpgC,EAAI,EAAGA,EAAIkG,UAAU9H,OAAQ4B,IAAK,CACzC,IAAIwF,EAAyB,MAAhBU,UAAUlG,GAAakG,UAAUlG,GAAK,GAC/CA,EAAI,EACN+nP,GAAQ1nP,OAAOmF,IAAS,GAAMmS,SAAQ,SAAU3S,GAC9C5E,GAAgBggC,EAAQp7B,EAAKQ,EAAOR,GACtC,IACS3E,OAAOgoP,0BAChBhoP,OAAOioP,iBAAiBloN,EAAQ//B,OAAOgoP,0BAA0B7iP,IAEjEuiP,GAAQ1nP,OAAOmF,IAASmS,SAAQ,SAAU3S,GACxC3E,OAAOC,eAAe8/B,EAAQp7B,EAAK3E,OAAO8nP,yBAAyB3iP,EAAQR,GAC7E,GAEJ,CACA,OAAOo7B,CACT,CACA,SAASxgC,GAAQ8oC,GAYf,OARE9oC,GADoB,mBAAXnB,QAAoD,iBAApBA,OAAOC,SACtC,SAAUgqC,GAClB,cAAcA,GAGN,SAAUA,GAClB,OAAOA,GAAyB,mBAAXjqC,QAAyBiqC,EAAIxpC,cAAgBT,QAAUiqC,IAAQjqC,OAAOqB,UAAY,gBAAkB4oC,GAGtH9oC,GAAQ8oC,EACjB,CACA,SAAStoC,GAAgBsoC,EAAK1jC,EAAKzE,GAWjC,OAVIyE,KAAO0jC,EACTroC,OAAOC,eAAeooC,EAAK1jC,EAAK,CAC9BzE,MAAOA,EACPC,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZgoC,EAAI1jC,GAAOzE,EAENmoC,CACT,CACA,SAASm3G,KAYP,OAXAA,GAAWx/I,OAAOi8B,QAAU,SAAU8D,GACpC,IAAK,IAAIpgC,EAAI,EAAGA,EAAIkG,UAAU9H,OAAQ4B,IAAK,CACzC,IAAIwF,EAASU,UAAUlG,GACvB,IAAK,IAAIgF,KAAOQ,EACVnF,OAAOP,UAAUoB,eAAelC,KAAKwG,EAAQR,KAC/Co7B,EAAOp7B,GAAOQ,EAAOR,GAG3B,CACA,OAAOo7B,GAEFy/G,GAAS15I,MAAM6B,KAAM9B,UAC9B,CAaA,SAASsvC,GAAyBhwC,EAAQ+iP,GACxC,GAAc,MAAV/iP,EAAgB,MAAO,GAC3B,IACIR,EAAKhF,EADLogC,EAdN,SAAuC56B,EAAQ+iP,GAC7C,GAAc,MAAV/iP,EAAgB,MAAO,GAC3B,IAEIR,EAAKhF,EAFLogC,EAAS,CAAA,EACTooN,EAAanoP,OAAO+D,KAAKoB,GAE7B,IAAKxF,EAAI,EAAGA,EAAIwoP,EAAWpqP,OAAQ4B,IACjCgF,EAAMwjP,EAAWxoP,GACbuoP,EAASxlN,QAAQ/9B,IAAQ,IAC7Bo7B,EAAOp7B,GAAOQ,EAAOR,IAEvB,OAAOo7B,CACT,CAGeqoN,CAA8BjjP,EAAQ+iP,GAEnD,GAAIloP,OAAOuT,sBAAuB,CAChC,IAAI80O,EAAmBroP,OAAOuT,sBAAsBpO,GACpD,IAAKxF,EAAI,EAAGA,EAAI0oP,EAAiBtqP,OAAQ4B,IACvCgF,EAAM0jP,EAAiB1oP,GACnBuoP,EAASxlN,QAAQ/9B,IAAQ,GACxB3E,OAAOP,UAAU8I,qBAAqB5J,KAAKwG,EAAQR,KACxDo7B,EAAOp7B,GAAOQ,EAAOR,GAEzB,CACA,OAAOo7B,CACT,CA6BA,SAASqW,GAAU5kC,GACjB,GAAsB,oBAAX6uB,QAA0BA,OAAO6V,UAC1C,QAAuBA,UAAUE,UAAUxpC,MAAM4E,EAErD,CACA,IAAI82O,GAAalyM,GAAU,yDACvBmyM,GAAOnyM,GAAU,SACjBoyM,GAAUpyM,GAAU,YACpBqyM,GAASryM,GAAU,aAAeA,GAAU,aAAeA,GAAU,YACrEsyM,GAAMtyM,GAAU,mBAChBuyM,GAAmBvyM,GAAU,YAAcA,GAAU,YAErDwyM,GAAc,CAChBC,SAAS,EACT3/K,SAAS,GAEX,SAAS1iC,GAAGS,EAAIhD,EAAO1E,GACrB0H,EAAGP,iBAAiBzC,EAAO1E,GAAK+oN,IAAcM,GAChD,CACA,SAAS/hN,GAAII,EAAIhD,EAAO1E,GACtB0H,EAAGH,oBAAoB7C,EAAO1E,GAAK+oN,IAAcM,GACnD,CACA,SAASzxL,GAAyBlwB,EAAe4vB,GAC/C,GAAKA,EAAL,CAEA,GADgB,MAAhBA,EAAS,KAAeA,EAAWA,EAASxrC,UAAU,IAClD4b,EACF,IACE,GAAIA,EAAGkwB,QACL,OAAOlwB,EAAGkwB,QAAQN,GACb,GAAI5vB,EAAGqwB,kBACZ,OAAOrwB,EAAGqwB,kBAAkBT,GACvB,GAAI5vB,EAAGuwB,sBACZ,OAAOvwB,EAAGuwB,sBAAsBX,EAEnC,CAAC,MAAOrsC,GACP,OAAO,CACT,CAEF,OAAO,CAfQ,CAgBjB,CACA,SAASs+N,GAAgB7hN,GACvB,OAAOA,EAAG29B,MAAQ39B,IAAOR,UAAYQ,EAAG29B,KAAKj8D,SAAWs+B,EAAG29B,KAAO39B,EAAGmE,UACvE,CACA,SAASssB,GAAyBzwB,EAAe4vB,EAA0B8B,EAAKowL,GAC9E,GAAI9hN,EAAI,CACN0xB,EAAMA,GAAOlyB,SACb,EAAG,CACD,GAAgB,MAAZowB,IAAqC,MAAhBA,EAAS,GAAa5vB,EAAGmE,aAAeutB,GAAOxB,GAAQlwB,EAAI4vB,GAAYM,GAAQlwB,EAAI4vB,KAAckyL,GAAc9hN,IAAO0xB,EAC7I,OAAO1xB,EAET,GAAIA,IAAO0xB,EAAK,KAElB,OAAS1xB,EAAK6hN,GAAgB7hN,GAChC,CACA,OAAO,IACT,CACA,IA2SI+hN,GA3SAC,GAAU,OACd,SAASC,GAAYjiN,EAAInoC,EAAMmkE,GAC7B,GAAIh8B,GAAMnoC,EACR,GAAImoC,EAAGG,UACLH,EAAGG,UAAU67B,EAAQ,MAAQ,UAAUnkE,OAClC,CACL,IAAIuoC,GAAa,IAAMJ,EAAGI,UAAY,KAAK5kC,QAAQwmP,GAAS,KAAKxmP,QAAQ,IAAM3D,EAAO,IAAK,KAC3FmoC,EAAGI,WAAaA,GAAa47B,EAAQ,IAAMnkE,EAAO,KAAK2D,QAAQwmP,GAAS,IAC1E,CAEJ,CACA,SAAS3jL,GAAIr+B,EAAI+jB,EAAMjkC,GACrB,IAAImnB,EAAQjH,GAAMA,EAAGiH,MACrB,GAAIA,EAAO,CACT,QAAY,IAARnnB,EAMF,OALI0f,SAASuE,aAAevE,SAASuE,YAAYC,iBAC/ClkB,EAAM0f,SAASuE,YAAYC,iBAAiBhE,EAAI,IACvCA,EAAGkiN,eACZpiO,EAAMkgB,EAAGkiN,mBAEK,IAATn+L,EAAkBjkC,EAAMA,EAAIikC,GAE7BA,KAAQ9c,IAAsC,IAA5B8c,EAAKtoB,QAAQ,YACnCsoB,EAAO,WAAaA,GAEtB9c,EAAM8c,GAAQjkC,GAAsB,iBAARA,EAAmB,GAAK,KAExD,CACF,CACA,SAASqiO,GAAOniN,EAAIoiN,GAClB,IAAIC,EAAoB,GACxB,GAAkB,iBAAPriN,EACTqiN,EAAoBriN,OAEpB,EAAG,CACD,IAAI1/B,EAAY+9D,GAAIr+B,EAAI,aACpB1/B,GAA2B,SAAdA,IACf+hP,EAAoB/hP,EAAY,IAAM+hP,EAGzC,QAASD,IAAapiN,EAAKA,EAAGmE,aAEjC,IAAIm+M,EAAWlpN,OAAOmpN,WAAanpN,OAAOopN,iBAAmBppN,OAAOqpN,WAAarpN,OAAOspN,YAExF,OAAOJ,GAAY,IAAIA,EAASD,EAClC,CACA,SAAShoL,GAAK3I,EAAK+lC,EAASrgG,GAC1B,GAAIs6D,EAAK,CACP,IAAIhgC,EAAOggC,EAAIixL,qBAAqBlrJ,GAClC/+F,EAAI,EACJ1B,EAAI06B,EAAK56B,OACX,GAAIM,EACF,KAAOsB,EAAI1B,EAAG0B,IACZtB,EAASs6B,EAAKh5B,GAAIA,GAGtB,OAAOg5B,CACT,CACA,MAAO,EACT,CACA,SAASkxN,KACP,IAAIC,EAAmBrjN,SAASqjN,iBAChC,OAAIA,GAGKrjN,SAASiC,eAEpB,CAWA,SAASqhN,GAAQ9iN,EAAI+iN,EAA2BC,EAA2BC,EAAW/hN,GACpF,GAAKlB,EAAGqD,uBAAyBrD,IAAO5G,OAAxC,CACA,IAAI8pN,EAAQ3/M,EAAKC,EAAMC,EAAQC,EAAOgF,EAAQF,EAiB9C,GAhBIxI,IAAO5G,QAAU4G,EAAGmE,YAAcnE,IAAO4iN,MAE3Cr/M,GADA2/M,EAASljN,EAAGqD,yBACCE,IACbC,EAAO0/M,EAAO1/M,KACdC,EAASy/M,EAAOz/M,OAChBC,EAAQw/M,EAAOx/M,MACfgF,EAASw6M,EAAOx6M,OAChBF,EAAQ06M,EAAO16M,QAEfjF,EAAM,EACNC,EAAO,EACPC,EAASrK,OAAOuK,YAChBD,EAAQtK,OAAOwK,WACf8E,EAAStP,OAAOuK,YAChB6E,EAAQpP,OAAOwK,aAEZm/M,GAA6BC,IAA8BhjN,IAAO5G,SAErE8H,EAAYA,GAAalB,EAAGmE,YAIvBk9M,IACH,GACE,GAAIngN,GAAaA,EAAUmC,wBAA0D,SAAhCg7B,GAAIn9B,EAAW,cAA2B8hN,GAA4D,WAA/B3kL,GAAIn9B,EAAW,aAA2B,CACpK,IAAIiiN,EAAgBjiN,EAAUmC,wBAG9BE,GAAO4/M,EAAc5/M,IAAMxnC,SAASsiE,GAAIn9B,EAAW,qBACnDsC,GAAQ2/M,EAAc3/M,KAAOznC,SAASsiE,GAAIn9B,EAAW,sBACrDuC,EAASF,EAAM2/M,EAAOx6M,OACtBhF,EAAQF,EAAO0/M,EAAO16M,MACtB,KACF,QAEOtH,EAAYA,EAAUiD,YAGnC,GAAI8+M,GAAajjN,IAAO5G,OAAQ,CAE9B,IAAIgqN,EAAWjB,GAAOjhN,GAAalB,GACjCk9B,EAASkmL,GAAYA,EAASvsP,EAC9BsmE,EAASimL,GAAYA,EAASphO,EAC5BohO,IAKF3/M,GAJAF,GAAO45B,IAGPz0B,GAAUy0B,GAEVz5B,GAJAF,GAAQ05B,IACR10B,GAAS00B,GAKb,CACA,MAAO,CACL35B,IAAKA,EACLC,KAAMA,EACNC,OAAQA,EACRC,MAAOA,EACP8E,MAAOA,EACPE,OAAQA,EA5DsC,CA8DlD,CASA,SAAS26M,GAAerjN,EAAIsjN,EAAQC,GAKlC,IAJA,IAAIxpO,EAASypO,GAA2BxjN,GAAI,GAC1CyjN,EAAYX,GAAQ9iN,GAAIsjN,GAGnBvpO,GAAQ,CACb,IAAI2pO,EAAgBZ,GAAQ/oO,GAAQwpO,GAOpC,KALmB,QAAfA,GAAuC,SAAfA,EAChBE,GAAaC,EAEbD,GAAaC,GAEX,OAAO3pO,EACrB,GAAIA,IAAW6oO,KAA6B,MAC5C7oO,EAASypO,GAA2BzpO,GAAQ,EAC9C,CACA,OAAO,CACT,CAUA,SAASk2E,GAASjwD,EAAI2jN,EAAU1uO,EAAS2uO,GAIvC,IAHA,IAAIC,EAAe,EACjBnrP,EAAI,EACJilB,EAAWqiB,EAAGriB,SACTjlB,EAAIilB,EAAS7mB,QAAQ,CAC1B,GAAkC,SAA9B6mB,EAASjlB,GAAGuuC,MAAM6uB,SAAsBn4C,EAASjlB,KAAOorP,GAASjtM,QAAU+sM,GAAiBjmO,EAASjlB,KAAOorP,GAASl7J,UAAYn4B,GAAQ9yC,EAASjlB,GAAIuc,EAAQ+tE,UAAWhjD,GAAI,GAAQ,CACvL,GAAI6jN,IAAiBF,EACnB,OAAOhmO,EAASjlB,GAElBmrP,GACF,CACAnrP,GACF,CACA,OAAO,IACT,CAQA,SAASqrP,GAAU/jN,EAAI4vB,GAErB,IADA,IAAI/3C,EAAOmoB,EAAGgkN,iBACPnsO,IAASA,IAASisO,GAASjtM,OAAkC,SAAzBwnB,GAAIxmD,EAAM,YAAyB+3C,IAAaM,GAAQr4C,EAAM+3C,KACvG/3C,EAAOA,EAAK0+M,uBAEd,OAAO1+M,GAAQ,IACjB,CASA,SAAShd,GAAMmlC,EAAI4vB,GACjB,IAAI/0D,EAAQ,EACZ,IAAKmlC,IAAOA,EAAGmE,WACb,OAAQ,EAIV,KAAOnE,EAAKA,EAAGu2L,wBACqB,aAA9Bv2L,EAAGoE,SAASssE,eAAgC1wE,IAAO8jN,GAAS/gO,OAAW6sC,IAAYM,GAAQlwB,EAAI4vB,IACjG/0D,IAGJ,OAAOA,CACT,CAQA,SAASopP,GAAwBjkN,GAC/B,IAAIs9B,EAAa,EACfjU,EAAY,EACZ66L,EAActB,KAChB,GAAI5iN,EACF,EAAG,CACD,IAAIojN,EAAWjB,GAAOniN,GACpBk9B,EAASkmL,EAASvsP,EAClBsmE,EAASimL,EAASphO,EACpBs7C,GAAct9B,EAAGwE,WAAa04B,EAC9B7T,GAAarpB,EAAGgC,UAAYm7B,CAC7B,OAAQn9B,IAAOkkN,IAAgBlkN,EAAKA,EAAGmE,aAE1C,MAAO,CAACm5B,EAAYjU,EACtB,CAiBA,SAASm6L,GAA2BxjN,EAAImkN,GAEtC,IAAKnkN,IAAOA,EAAGqD,sBAAuB,OAAOu/M,KAC7C,IAAIwB,EAAOpkN,EACPqkN,GAAU,EACd,GAEE,GAAID,EAAK5hN,YAAc4hN,EAAK1hN,aAAe0hN,EAAKlkL,aAAekkL,EAAKt5M,aAAc,CAChF,IAAIw5M,EAAUjmL,GAAI+lL,GAClB,GAAIA,EAAK5hN,YAAc4hN,EAAK1hN,cAAqC,QAArB4hN,EAAQ/hL,WAA4C,UAArB+hL,EAAQ/hL,YAA0B6hL,EAAKlkL,aAAekkL,EAAKt5M,eAAsC,QAArBw5M,EAAQ9hL,WAA4C,UAArB8hL,EAAQ9hL,WAAwB,CACpN,IAAK4hL,EAAK/gN,uBAAyB+gN,IAAS5kN,SAASwB,KAAM,OAAO4hN,KAClE,GAAIyB,GAAWF,EAAa,OAAOC,EACnCC,GAAU,CACZ,CACF,QAEOD,EAAOA,EAAKjgN,YACrB,OAAOy+M,IACT,CAWA,SAAS2B,GAAYx0K,EAAOC,GAC1B,OAAO9vE,KAAKomB,MAAMypD,EAAMxsC,OAASrjC,KAAKomB,MAAM0pD,EAAMzsC,MAAQrjC,KAAKomB,MAAMypD,EAAMvsC,QAAUtjC,KAAKomB,MAAM0pD,EAAMxsC,OAAStjC,KAAKomB,MAAMypD,EAAMrnC,UAAYxoC,KAAKomB,MAAM0pD,EAAMtnC,SAAWxoC,KAAKomB,MAAMypD,EAAMvnC,SAAWtoC,KAAKomB,MAAM0pD,EAAMxnC,MACvN,CAEA,SAASxsB,GAASnR,EAAUsY,GAC1B,OAAO,WACL,IAAK4+N,GAAkB,CACrB,IAAIxhP,EAAO3B,UAES,IAAhB2B,EAAKzJ,OACP+T,EAASnT,KAFDgJ,KAEaH,EAAK,IAE1BsK,EAAShM,MAJD6B,KAIcH,GAExBwhP,GAAmB/rO,YAAW,WAC5B+rO,QAAmB,CACpB,GAAE5+N,EACL,EAEJ,CAKA,SAASssN,GAASzvM,EAAIlc,EAAG5B,GACvB8d,EAAGwE,YAAc1gB,EACjBkc,EAAGgC,WAAa9f,CAClB,CACA,SAASa,GAAMid,GACb,IAAIwkN,EAAUprN,OAAOorN,QACjBviO,EAAImX,OAAOqrN,QAAUrrN,OAAOsrN,MAChC,OAAIF,GAAWA,EAAQ38M,IACd28M,EAAQ38M,IAAI7H,GAAIglI,WAAU,GACxB/iJ,EACFA,EAAE+d,GAAIjd,OAAM,GAAM,GAElBid,EAAGglI,WAAU,EAExB,CAeA,SAAS2/E,GAAkCzjN,EAAWjsB,EAAS2vO,GAC7D,IAAIxhN,EAAO,CAAA,EAcX,OAbAnsC,MAAMI,KAAK6pC,EAAUvjB,UAAUtN,SAAQ,SAAUoP,GAC/C,IAAIolO,EAAYC,EAAWC,EAAaC,EACxC,GAAKv0L,GAAQhxC,EAAOxK,EAAQ+tE,UAAW9hD,GAAW,KAAUzhB,EAAMwlO,UAAYxlO,IAAUmlO,EAAxF,CACA,IAAIM,EAAYpC,GAAQrjO,GACxB2jB,EAAKI,KAAOtjC,KAAK4U,IAAiC,QAA5B+vO,EAAazhN,EAAKI,YAAiC,IAAfqhN,EAAwBA,EAAansO,IAAUwsO,EAAU1hN,MACnHJ,EAAKG,IAAMrjC,KAAK4U,IAA+B,QAA1BgwO,EAAY1hN,EAAKG,WAA+B,IAAduhN,EAAuBA,EAAYpsO,IAAUwsO,EAAU3hN,KAC9GH,EAAKM,MAAQxjC,KAAKC,IAAmC,QAA9B4kP,EAAc3hN,EAAKM,aAAmC,IAAhBqhN,EAAyBA,GAAersO,IAAUwsO,EAAUxhN,OACzHN,EAAKK,OAASvjC,KAAKC,IAAqC,QAAhC6kP,EAAe5hN,EAAKK,cAAqC,IAAjBuhN,EAA0BA,GAAgBtsO,IAAUwsO,EAAUzhN,OAL7B,CAMnG,IACAL,EAAKoF,MAAQpF,EAAKM,MAAQN,EAAKI,KAC/BJ,EAAKsF,OAAStF,EAAKK,OAASL,EAAKG,IACjCH,EAAKtf,EAAIsf,EAAKI,KACdJ,EAAKlhB,EAAIkhB,EAAKG,IACPH,CACT,CACA,IAAI+hN,GAAU,YAAa,IAAI/mP,MAAO4nB,UAEtC,SAASo/N,KACP,IACEC,EADEC,EAAkB,GAEtB,MAAO,CACLC,sBAAuB,YACrBD,EAAkB,GACb5kP,KAAKuU,QAAQgU,YACH,GAAGtxB,MAAMD,KAAKgJ,KAAKs/B,GAAGriB,UAC5BtN,SAAQ,SAAUoP,GACzB,GAA8B,SAA1B4+C,GAAI5+C,EAAO,YAAyBA,IAAUqkO,GAASjtM,MAA3D,CACAyuM,EAAgBriP,KAAK,CACnB61B,OAAQrZ,EACR2jB,KAAM0/M,GAAQrjO,KAEhB,IAAI+lO,EAAW1E,GAAe,CAAA,EAAIwE,EAAgBA,EAAgBxuP,OAAS,GAAGssC,MAG9E,GAAI3jB,EAAMgmO,sBAAuB,CAC/B,IAAIC,EAAcvD,GAAO1iO,GAAO,GAC5BimO,IACFF,EAASjiN,KAAOmiN,EAAY5oO,EAC5B0oO,EAAShiN,MAAQkiN,EAAY3uP,EAEjC,CACA0oB,EAAM+lO,SAAWA,CAfiD,CAgBpE,GACD,EACDG,kBAAmB,SAA2B3pL,GAC5CspL,EAAgBriP,KAAK+4D,EACtB,EACD4pL,qBAAsB,SAA8B9sN,GAClDwsN,EAAgB7gP,OA7ItB,SAAuBm4E,EAAKx7C,GAC1B,IAAK,IAAI1oC,KAAKkkF,EACZ,GAAKA,EAAIhjF,eAAelB,GACxB,IAAK,IAAIgF,KAAO0jC,EACd,GAAIA,EAAIxnC,eAAe8D,IAAQ0jC,EAAI1jC,KAASk/E,EAAIlkF,GAAGgF,GAAM,OAAO7E,OAAOH,GAG3E,OAAQ,CACV,CAqI6BmtP,CAAcP,EAAiB,CACpDxsN,OAAQA,IACN,EACL,EACDgtN,WAAY,SAAoBj7O,GAC9B,IAAIq6B,EAAQxkC,KACZ,IAAKA,KAAKuU,QAAQgU,UAGhB,OAFA3S,aAAa+uO,QACW,mBAAbx6O,GAAyBA,KAGtC,IAAIk7O,GAAY,EACdC,EAAgB,EAClBV,EAAgBj1O,SAAQ,SAAU2rD,GAChC,IAAIrmD,EAAO,EACTmjB,EAASkjC,EAAMljC,OACf0sN,EAAW1sN,EAAO0sN,SAClBS,EAASnD,GAAQhqN,GACjBotN,EAAeptN,EAAOotN,aACtBC,EAAartN,EAAOqtN,WACpBC,EAAgBpqL,EAAM54B,KACtBijN,EAAelE,GAAOrpN,GAAQ,GAC5ButN,IAEFJ,EAAO1iN,KAAO8iN,EAAavpO,EAC3BmpO,EAAOziN,MAAQ6iN,EAAatvP,GAE9B+hC,EAAOmtN,OAASA,EACZntN,EAAO2sN,uBAELlB,GAAY2B,EAAcD,KAAY1B,GAAYiB,EAAUS,KAE/DG,EAAc7iN,IAAM0iN,EAAO1iN,MAAQ6iN,EAAc5iN,KAAOyiN,EAAOziN,SAAWgiN,EAASjiN,IAAM0iN,EAAO1iN,MAAQiiN,EAAShiN,KAAOyiN,EAAOziN,QAE9H7tB,EAoEZ,SAA2BywO,EAAeZ,EAAUS,EAAQhxO,GAC1D,OAAO/U,KAAKomP,KAAKpmP,KAAK4iG,IAAI0iJ,EAASjiN,IAAM6iN,EAAc7iN,IAAK,GAAKrjC,KAAK4iG,IAAI0iJ,EAAShiN,KAAO4iN,EAAc5iN,KAAM,IAAMtjC,KAAKomP,KAAKpmP,KAAK4iG,IAAI0iJ,EAASjiN,IAAM0iN,EAAO1iN,IAAK,GAAKrjC,KAAK4iG,IAAI0iJ,EAAShiN,KAAOyiN,EAAOziN,KAAM,IAAMvuB,EAAQgU,SAC7N,CAtEmBs9N,CAAkBH,EAAeF,EAAcC,EAAYjhN,EAAMjwB,UAKvEsvO,GAAY0B,EAAQT,KACvB1sN,EAAOotN,aAAeV,EACtB1sN,EAAOqtN,WAAaF,EACftwO,IACHA,EAAOuvB,EAAMjwB,QAAQgU,WAEvBic,EAAM2xB,QAAQ/9B,EAAQstN,EAAeH,EAAQtwO,IAE3CA,IACFowO,GAAY,EACZC,EAAgB9lP,KAAKC,IAAI6lP,EAAerwO,GACxCW,aAAawiB,EAAO0tN,qBACpB1tN,EAAO0tN,oBAAsBxwO,YAAW,WACtC8iB,EAAOktN,cAAgB,EACvBltN,EAAOotN,aAAe,KACtBptN,EAAO0sN,SAAW,KAClB1sN,EAAOqtN,WAAa,KACpBrtN,EAAO2sN,sBAAwB,IAChC,GAAE9vO,GACHmjB,EAAO2sN,sBAAwB9vO,EAEnC,IACAW,aAAa+uO,GACRU,EAGHV,EAAsBrvO,YAAW,WACP,mBAAbnL,GAAyBA,GACrC,GAAEm7O,GAJqB,mBAAbn7O,GAAyBA,IAMtCy6O,EAAkB,EACnB,EACDzuL,QAAS,SAAiB/9B,EAAQ2tN,EAAaR,EAAQ7mN,GACrD,GAAIA,EAAU,CACZi/B,GAAIvlC,EAAQ,aAAc,IAC1BulC,GAAIvlC,EAAQ,YAAa,IACzB,IAAIsqN,EAAWjB,GAAOzhP,KAAKs/B,IACzBk9B,EAASkmL,GAAYA,EAASvsP,EAC9BsmE,EAASimL,GAAYA,EAASphO,EAC9B0rL,GAAc+4C,EAAYjjN,KAAOyiN,EAAOziN,OAAS05B,GAAU,GAC3DvyB,GAAc87M,EAAYljN,IAAM0iN,EAAO1iN,MAAQ45B,GAAU,GAC3DrkC,EAAO4tN,aAAeh5C,EACtB50K,EAAO6tN,aAAeh8M,EACtB0zB,GAAIvlC,EAAQ,YAAa,eAAiB40K,EAAa,MAAQ/iK,EAAa,SAC5EjqC,KAAKkmP,gBAgBb,SAAiB9tN,GACf,OAAOA,EAAO2P,WAChB,CAlB+Bo+M,CAAQ/tN,GAE/BulC,GAAIvlC,EAAQ,aAAc,aAAesG,EAAW,MAAQ1+B,KAAKuU,QAAQ8sB,OAAS,IAAMrhC,KAAKuU,QAAQ8sB,OAAS,KAC9Gs8B,GAAIvlC,EAAQ,YAAa,sBACE,iBAApBA,EAAOmsN,UAAyB3uO,aAAawiB,EAAOmsN,UAC3DnsN,EAAOmsN,SAAWjvO,YAAW,WAC3BqoD,GAAIvlC,EAAQ,aAAc,IAC1BulC,GAAIvlC,EAAQ,YAAa,IACzBA,EAAOmsN,UAAW,EAClBnsN,EAAO4tN,YAAa,EACpB5tN,EAAO6tN,YAAa,CACrB,GAAEvnN,EACL,CACF,EAEJ,CAQA,IAAI0nN,GAAU,GACVzyF,GAAW,CACb0yF,qBAAqB,GAEnBC,GAAgB,CAClBjyM,MAAO,SAAekyM,GAEpB,IAAK,IAAIztK,KAAU66E,GACbA,GAASz6J,eAAe4/E,MAAaA,KAAUytK,KACjDA,EAAOztK,GAAU66E,GAAS76E,IAG9BstK,GAAQz2O,SAAQ,SAAU2S,GACxB,GAAIA,EAAEkkO,aAAeD,EAAOC,WAC1B,KAAM,iCAAiCzxN,OAAOwxN,EAAOC,WAAY,kBAErE,IACAJ,GAAQ7jP,KAAKgkP,EACd,EACDE,YAAa,SAAqBz2E,EAAWk/C,EAAUl8I,GACrD,IAAIxuC,EAAQxkC,KACZA,KAAK0mP,eAAgB,EACrB1zK,EAAIn9D,OAAS,WACX2uB,EAAMkiN,eAAgB,GAExB,IAAIC,EAAkB32E,EAAY,SAClCo2E,GAAQz2O,SAAQ,SAAU42O,GACnBr3B,EAASq3B,EAAOC,cAEjBt3B,EAASq3B,EAAOC,YAAYG,IAC9Bz3B,EAASq3B,EAAOC,YAAYG,GAAiBvG,GAAe,CAC1DlxB,SAAUA,GACTl8I,IAKDk8I,EAAS36M,QAAQgyO,EAAOC,aAAet3B,EAASq3B,EAAOC,YAAYx2E,IACrEk/C,EAASq3B,EAAOC,YAAYx2E,GAAWowE,GAAe,CACpDlxB,SAAUA,GACTl8I,IAEP,GACD,EACD4zK,kBAAmB,SAA2B13B,EAAU5vL,EAAIq0H,EAAUp/I,GAYpE,IAAK,IAAIukE,KAXTstK,GAAQz2O,SAAQ,SAAU42O,GACxB,IAAIC,EAAaD,EAAOC,WACxB,GAAKt3B,EAAS36M,QAAQiyO,IAAgBD,EAAOF,oBAA7C,CACA,IAAIQ,EAAc,IAAIN,EAAOr3B,EAAU5vL,EAAI4vL,EAAS36M,SACpDsyO,EAAY33B,SAAWA,EACvB23B,EAAYtyO,QAAU26M,EAAS36M,QAC/B26M,EAASs3B,GAAcK,EAGvBhvG,GAAS8b,EAAUkzF,EAAYlzF,SAPmC,CAQpE,IACmBu7D,EAAS36M,QAC1B,GAAK26M,EAAS36M,QAAQrb,eAAe4/E,GAArC,CACA,IAAIguK,EAAW9mP,KAAK+mP,aAAa73B,EAAUp2I,EAAQo2I,EAAS36M,QAAQukE,SAC5C,IAAbguK,IACT53B,EAAS36M,QAAQukE,GAAUguK,EAHiB,CAMjD,EACDE,mBAAoB,SAA4B7vP,EAAM+3N,GACpD,IAAI+3B,EAAkB,CAAA,EAKtB,OAJAb,GAAQz2O,SAAQ,SAAU42O,GACc,mBAA3BA,EAAOU,iBAClBpvG,GAASovG,EAAiBV,EAAOU,gBAAgBjwP,KAAKk4N,EAASq3B,EAAOC,YAAarvP,GACrF,IACO8vP,CACR,EACDF,aAAc,SAAsB73B,EAAU/3N,EAAMoB,GAClD,IAAI2uP,EAUJ,OATAd,GAAQz2O,SAAQ,SAAU42O,GAEnBr3B,EAASq3B,EAAOC,aAGjBD,EAAOY,iBAA2D,mBAAjCZ,EAAOY,gBAAgBhwP,KAC1D+vP,EAAgBX,EAAOY,gBAAgBhwP,GAAMH,KAAKk4N,EAASq3B,EAAOC,YAAajuP,GAEnF,IACO2uP,CACT,GAuDF,IAAIj5M,GAAY,CAAC,OACbw4M,GAAc,SAAqBz2E,EAAWk/C,GAChD,IAAInzL,EAAO79B,UAAU9H,OAAS,QAAsBkD,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,CAAE,EAC/EkpP,EAAgBrrN,EAAKi3C,IACrBlvE,EAAO0pC,GAAyBzR,EAAMkS,IACxCq4M,GAAcG,YAAY9gM,KAAKy9L,GAA/BkD,CAAyCt2E,EAAWk/C,EAAUkxB,GAAe,CAC3EiH,OAAQA,GACRC,SAAUA,GACVpD,QAASA,GACTqD,OAAQA,GACRC,OAAQA,GACRC,WAAYA,GACZC,QAASA,GACTC,YAAaA,GACbC,YAAaC,GACbC,YAAaA,GACbC,eAAgB3E,GAASrtN,OACzBqxN,cAAeA,EACfY,SAAUA,GACVC,kBAAmBA,GACnBnyH,SAAUA,GACVoyH,kBAAmBA,GACnBC,mBAAoBC,GACpBC,qBAAsBC,GACtBC,eAAgB,WACdZ,IAAc,CACf,EACDa,cAAe,WACbb,IAAc,CACf,EACDc,sBAAuB,SAA+BtxP,GACpDuxP,GAAe,CACbx5B,SAAUA,EACV/3N,KAAMA,EACNiwP,cAAeA,GAEnB,GACCtjP,GACL,EACA,SAAS4kP,GAAer/N,IA3FxB,SAAuB0S,GACrB,IAAImzL,EAAWnzL,EAAKmzL,SAClBq4B,EAASxrN,EAAKwrN,OACdpwP,EAAO4kC,EAAK5kC,KACZwxP,EAAW5sN,EAAK4sN,SAChBjB,EAAU3rN,EAAK2rN,QACfkB,EAAO7sN,EAAK6sN,KACZC,EAAS9sN,EAAK8sN,OACdb,EAAWjsN,EAAKisN,SAChBlyH,EAAW/5F,EAAK+5F,SAChBmyH,EAAoBlsN,EAAKksN,kBACzBC,EAAoBnsN,EAAKmsN,kBACzBd,EAAgBrrN,EAAKqrN,cACrBU,EAAc/rN,EAAK+rN,YACnBgB,EAAuB/sN,EAAK+sN,qBAE9B,GADA55B,EAAWA,GAAYq4B,GAAUA,EAAO9C,IACxC,CACA,IAAIzxK,EACFz+D,EAAU26M,EAAS36M,QACnBw0O,EAAS,KAAO5xP,EAAKyD,OAAO,GAAGo1G,cAAgB74G,EAAKk3C,OAAO,IAEzD3V,OAAOswN,aAAgBrI,IAAeC,IAMxC5tK,EAAMl0C,SAASmqN,YAAY,UACvBC,UAAU/xP,GAAM,GAAM,GAN1B67E,EAAM,IAAIg2K,YAAY7xP,EAAM,CAC1BgyP,SAAS,EACTC,YAAY,IAMhBp2K,EAAI5pC,GAAKw/M,GAAQrB,EACjBv0K,EAAIr8E,KAAOkyP,GAAUtB,EACrBv0K,EAAIh2D,KAAO2rO,GAAYpB,EACvBv0K,EAAI3wD,MAAQqlO,EACZ10K,EAAIg1K,SAAWA,EACfh1K,EAAI8iD,SAAWA,EACf9iD,EAAIi1K,kBAAoBA,EACxBj1K,EAAIk1K,kBAAoBA,EACxBl1K,EAAIo0K,cAAgBA,EACpBp0K,EAAIq2K,SAAWvB,EAAcA,EAAYwB,iBAAchwP,EACvD,IAAIiwP,EAAqBnJ,GAAeA,GAAe,GAAI0I,GAAuBxC,GAAcU,mBAAmB7vP,EAAM+3N,IACzH,IAAK,IAAIp2I,KAAUywK,EACjBv2K,EAAI8F,GAAUywK,EAAmBzwK,GAE/ByuK,GACFA,EAAOiC,cAAcx2K,GAEnBz+D,EAAQw0O,IACVx0O,EAAQw0O,GAAQ/xP,KAAKk4N,EAAUl8I,EAhClB,CAkCjB,CA0CEw2K,CAAcpJ,GAAe,CAC3B0H,YAAaA,GACbJ,QAASA,GACTiB,SAAUtB,GACVE,OAAQA,GACRS,SAAUA,GACVC,kBAAmBA,GACnBnyH,SAAUA,GACVoyH,kBAAmBA,IAClB7+N,GACL,CACA,IAAIg+N,GACFC,GACApD,GACAqD,GACAC,GACAC,GACAC,GACAC,GACAK,GACAlyH,GACAmyH,GACAC,GACAuB,GACA3B,GAIA4B,GACAC,GACAC,GACAC,GACAC,GACAC,GACAlC,GACAmC,GACAC,GAGAC,GAEAC,GAhBAC,IAAsB,EACtBC,IAAkB,EAClBC,GAAY,GAUZC,IAAwB,EACxBC,IAAyB,EAIzBC,GAAmC,GAGnCC,IAAU,EACVC,GAAoB,GAGlBC,GAAqC,oBAAb9rN,SAC1B+rN,GAA0B9J,GAC1B+J,GAAmBlK,IAAQD,GAAa,WAAa,QAErDoK,GAAmBH,KAAmB5J,KAAqBD,IAAO,cAAejiN,SAASsD,cAAc,OACxG4oN,GAA0B,WACxB,GAAKJ,GAAL,CAEA,GAAIjK,GACF,OAAO,EAET,IAAIrhN,EAAKR,SAASsD,cAAc,KAEhC,OADA9C,EAAGiH,MAAMyvK,QAAU,sBACe,SAA3B12K,EAAGiH,MAAM6B,aAPK,CAQvB,CAT0B,GAU1B6iN,GAAmB,SAA0B3rN,EAAI/qB,GAC/C,IAAI22O,EAAQvtL,GAAIr+B,GACd6rN,EAAU9vP,SAAS6vP,EAAMpjN,OAASzsC,SAAS6vP,EAAM/rM,aAAe9jD,SAAS6vP,EAAM9rM,cAAgB/jD,SAAS6vP,EAAME,iBAAmB/vP,SAAS6vP,EAAMG,kBAChJC,EAAS/7J,GAASjwD,EAAI,EAAG/qB,GACzBg3O,EAASh8J,GAASjwD,EAAI,EAAG/qB,GACzBi3O,EAAgBF,GAAU3tL,GAAI2tL,GAC9BG,EAAiBF,GAAU5tL,GAAI4tL,GAC/BG,EAAkBF,GAAiBnwP,SAASmwP,EAAcjjN,YAAcltC,SAASmwP,EAAcpuM,aAAeglM,GAAQkJ,GAAQxjN,MAC9H6jN,EAAmBF,GAAkBpwP,SAASowP,EAAeljN,YAAcltC,SAASowP,EAAeruM,aAAeglM,GAAQmJ,GAAQzjN,MACpI,GAAsB,SAAlBojN,EAAM91L,QACR,MAA+B,WAAxB81L,EAAM71L,eAAsD,mBAAxB61L,EAAM71L,cAAqC,WAAa,aAErG,GAAsB,SAAlB61L,EAAM91L,QACR,OAAO81L,EAAMU,oBAAoB9jP,MAAM,KAAK1R,QAAU,EAAI,WAAa,aAEzE,GAAIk1P,GAAUE,EAAqB,OAAgC,SAA3BA,EAAqB,MAAc,CACzE,IAAIK,EAAgD,SAA3BL,EAAqB,MAAe,OAAS,QACtE,OAAOD,GAAoC,SAAzBE,EAAenoP,OAAoBmoP,EAAenoP,QAAUuoP,EAAmC,aAAb,UACtG,CACA,OAAOP,IAAqC,UAA1BE,EAAcp2L,SAAiD,SAA1Bo2L,EAAcp2L,SAAgD,UAA1Bo2L,EAAcp2L,SAAiD,SAA1Bo2L,EAAcp2L,SAAsBs2L,GAAmBP,GAAuC,SAA5BD,EAAMJ,KAAgCS,GAAsC,SAA5BL,EAAMJ,KAAgCY,EAAkBC,EAAmBR,GAAW,WAAa,YACtV,EA8BDW,GAAgB,SAAuBv3O,GACrC,SAASw3O,EAAKxzP,EAAO0lD,GACnB,OAAO,SAAU7U,EAAIzyC,EAAM0wP,EAAQr0K,GACjC,IAAIg5K,EAAY5iN,EAAG70B,QAAQk9G,MAAMt6H,MAAQR,EAAK4d,QAAQk9G,MAAMt6H,MAAQiyC,EAAG70B,QAAQk9G,MAAMt6H,OAASR,EAAK4d,QAAQk9G,MAAMt6H,KACjH,GAAa,MAAToB,IAAkB0lD,GAAQ+tM,GAG5B,OAAO,EACF,GAAa,MAATzzP,IAA2B,IAAVA,EAC1B,OAAO,EACF,GAAI0lD,GAAkB,UAAV1lD,EACjB,OAAOA,EACF,GAAqB,mBAAVA,EAChB,OAAOwzP,EAAKxzP,EAAM6wC,EAAIzyC,EAAM0wP,EAAQr0K,GAAM/0B,EAAnC8tM,CAAyC3iN,EAAIzyC,EAAM0wP,EAAQr0K,GAElE,IAAIi5K,GAAchuM,EAAO7U,EAAKzyC,GAAM4d,QAAQk9G,MAAMt6H,KAClD,OAAiB,IAAVoB,GAAmC,iBAAVA,GAAsBA,IAAU0zP,GAAc1zP,EAAMkP,MAAQlP,EAAMwiC,QAAQkxN,IAAe,EAG/H,CACA,IAAIx6H,EAAQ,CAAA,EACRy6H,EAAgB33O,EAAQk9G,MACvBy6H,GAA2C,UAA1Bt0P,GAAQs0P,KAC5BA,EAAgB,CACd/0P,KAAM+0P,IAGVz6H,EAAMt6H,KAAO+0P,EAAc/0P,KAC3Bs6H,EAAM06H,UAAYJ,EAAKG,EAAcjuM,MAAM,GAC3CwzE,EAAM26H,SAAWL,EAAKG,EAAcG,KACpC56H,EAAM66H,YAAcJ,EAAcI,YAClC/3O,EAAQk9G,MAAQA,CACjB,EACD22H,GAAsB,YACf4C,IAA2B9G,IAC9BvmL,GAAIumL,GAAS,UAAW,OAE3B,EACDoE,GAAwB,YACjB0C,IAA2B9G,IAC9BvmL,GAAIumL,GAAS,UAAW,KAK1B0G,KAAmB5J,IACrBliN,SAASC,iBAAiB,SAAS,SAAUi0C,GAC3C,GAAIq3K,GAKF,OAJAr3K,EAAIH,iBACJG,EAAI8E,iBAAmB9E,EAAI8E,kBAC3B9E,EAAIyhI,0BAA4BzhI,EAAIyhI,2BACpC41C,IAAkB,GACX,CAEV,IAAE,GAEL,IAAIkC,GAAgC,SAAuCv5K,GACzE,GAAIq0K,GAAQ,CACVr0K,EAAMA,EAAIq1F,QAAUr1F,EAAIq1F,QAAQ,GAAKr1F,EACrC,IAAIw5K,GAzE6DppO,EAyEvB4vD,EAAI8C,QAzEsBt0D,EAyEbwxD,EAAI+C,QAvE3Du0K,GAAUrrO,MAAK,SAAUiwM,GACvB,IAAIpkL,EAAYokL,EAASu1B,IAASlwO,QAAQk4O,qBAC1C,GAAK3hN,IAAau4M,GAAUn0B,GAA5B,CACA,IAAIxsL,EAAO0/M,GAAQlzB,GACjBw9B,EAAqBtpO,GAAKsf,EAAKI,KAAOgI,GAAa1nB,GAAKsf,EAAKM,MAAQ8H,EACrE6hN,EAAmBnrO,GAAKkhB,EAAKG,IAAMiI,GAAatpB,GAAKkhB,EAAKK,OAAS+H,EACrE,OAAI4hN,GAAsBC,EACjB9gJ,EAAMqjH,OADf,CAJuC,CAOzC,IACOrjH,GA8DP,GAAI2gJ,EAAS,CAEX,IAAIlwN,EAAQ,CAAA,EACZ,IAAK,IAAItkC,KAAKg7E,EACRA,EAAI95E,eAAelB,KACrBskC,EAAMtkC,GAAKg7E,EAAIh7E,IAGnBskC,EAAMlE,OAASkE,EAAMirN,OAASiF,EAC9BlwN,EAAMu2C,oBAAiB,EACvBv2C,EAAMw7C,qBAAkB,EACxB00K,EAAQ/H,IAASmI,YAAYtwN,EAC/B,CACF,CAvF8B,IAAqClZ,EAAG5B,EAChEqqF,CAuFR,EACIghJ,GAAwB,SAA+B75K,GACrDq0K,IACFA,GAAO5jN,WAAWghN,IAASqI,iBAAiB95K,EAAI56C,OAEpD,EAOA,SAASgrN,GAAS9jN,EAAI/qB,GACpB,IAAM+qB,IAAMA,EAAGt+B,UAA4B,IAAhBs+B,EAAGt+B,SAC5B,KAAM,8CAA8C+zB,OAAO,CAAE,EAACh+B,SAASC,KAAKsoC,IAE9Et/B,KAAKs/B,GAAKA,EACVt/B,KAAKuU,QAAUA,EAAUsjI,GAAS,CAAE,EAAEtjI,GAGtC+qB,EAAGmlN,IAAWzkP,KACd,IAAI2zJ,EAAW,CACbliC,MAAO,KACPtjF,MAAM,EACNxY,UAAU,EACV88G,MAAO,KACPv0G,OAAQ,KACRokD,UAAW,WAAWlrF,KAAKkoC,EAAGoE,UAAY,MAAQ,KAClDqpN,cAAe,EAEfC,YAAY,EAEZC,sBAAuB,KAEvBC,mBAAmB,EACnBn/N,UAAW,WACT,OAAOk9N,GAAiB3rN,EAAIt/B,KAAKuU,QAClC,EACD44O,WAAY,iBACZC,YAAa,kBACbC,UAAW,gBACXrtE,OAAQ,SACR1hK,OAAQ,KACRgvO,iBAAiB,EACjB/kO,UAAW,EACX8Y,OAAQ,KACR87I,QAAS,SAAiBD,EAAcmqE,GACtCnqE,EAAaC,QAAQ,OAAQkqE,EAAOtvK,YACrC,EACDw1K,YAAY,EACZC,gBAAgB,EAChBC,WAAY,UACZt8M,MAAO,EACPu8M,kBAAkB,EAClBC,qBAAsBx1P,OAAOkD,SAAWlD,OAASugC,QAAQr9B,SAASq9B,OAAO2oC,iBAAkB,KAAO,EAClGusL,eAAe,EACfC,cAAe,oBACfC,gBAAgB,EAChBC,kBAAmB,EACnBC,eAAgB,CACd5qO,EAAG,EACH5B,EAAG,GAGLysO,gBAA4C,IAA5B7K,GAAS6K,gBAA4B,iBAAkBv1N,UAAYooN,IAAUC,IAC7F0L,qBAAsB,GAKxB,IAAK,IAAIt1P,KAHTmvP,GAAcM,kBAAkB5mP,KAAMs/B,EAAIq0H,GAGzBA,IACbx8J,KAAQod,KAAaA,EAAQpd,GAAQw8J,EAASx8J,IAKlD,IAAK,IAAIygC,KAHTk0N,GAAcv3O,GAGCvU,KACQ,MAAjB43B,EAAGh9B,OAAO,IAAkC,mBAAboF,KAAK43B,KACtC53B,KAAK43B,GAAM53B,KAAK43B,GAAI+tB,KAAK3lD,OAK7BA,KAAKkuP,iBAAkB35O,EAAQq5O,eAAwB7C,GACnD/qP,KAAKkuP,kBAEPluP,KAAKuU,QAAQo5O,oBAAsB,GAIjCp5O,EAAQ05O,eACVpvN,GAAGS,EAAI,cAAet/B,KAAKmuP,cAE3BtvN,GAAGS,EAAI,YAAat/B,KAAKmuP,aACzBtvN,GAAGS,EAAI,aAAct/B,KAAKmuP,cAExBnuP,KAAKkuP,kBACPrvN,GAAGS,EAAI,WAAYt/B,MACnB6+B,GAAGS,EAAI,YAAat/B,OAEtBsqP,GAAU/nP,KAAKvC,KAAKs/B,IAGpB/qB,EAAQk+H,OAASl+H,EAAQk+H,MAAM5uI,KAAO7D,KAAKmuC,KAAK55B,EAAQk+H,MAAM5uI,IAAI7D,OAAS,IAG3E63I,GAAS73I,KAAM0kP,KACjB,CAiiCA,SAAS0J,GAAQvF,EAAQD,EAAMvB,EAAQgH,EAAU1F,EAAU2F,EAAYlH,EAAemH,GACpF,IAAIv7K,EAGFw7K,EAFAt/B,EAAW25B,EAAOpE,IAClBgK,EAAWv/B,EAAS36M,QAAQm6O,OAwB9B,OArBIh2N,OAAOswN,aAAgBrI,IAAeC,IAMxC5tK,EAAMl0C,SAASmqN,YAAY,UACvBC,UAAU,QAAQ,GAAM,GAN5Bl2K,EAAM,IAAIg2K,YAAY,OAAQ,CAC5BG,SAAS,EACTC,YAAY,IAMhBp2K,EAAI5pC,GAAKw/M,EACT51K,EAAIr8E,KAAOkyP,EACX71K,EAAIkV,QAAUm/J,EACdr0K,EAAI27K,YAAcN,EAClBr7K,EAAIoZ,QAAUu8J,GAAYC,EAC1B51K,EAAI47K,YAAcN,GAAclM,GAAQwG,GACxC51K,EAAIu7K,gBAAkBA,EACtBv7K,EAAIo0K,cAAgBA,EACpByB,EAAOW,cAAcx2K,GACjBy7K,IACFD,EAASC,EAASz3P,KAAKk4N,EAAUl8I,EAAKo0K,IAEjCoH,CACT,CACA,SAASK,GAAkBvvN,GACzBA,EAAGgjD,WAAY,CACjB,CACA,SAASwsK,KACPpE,IAAU,CACZ,CA0EA,SAASqE,GAAYzvN,GAInB,IAHA,IAAIyP,EAAMzP,EAAGy3D,QAAUz3D,EAAGI,UAAYJ,EAAGg8J,IAAMh8J,EAAG8W,KAAO9W,EAAGy4C,YAC1D//E,EAAI+2C,EAAI34C,OACRglB,EAAM,EACDpjB,KACLojB,GAAO2zB,EAAI/pC,WAAWhN,GAExB,OAAOojB,EAAIrkB,SAAS,GACtB,CAUA,SAASi4P,GAAUp3N,GACjB,OAAOtiB,WAAWsiB,EAAI,EACxB,CACA,SAASq3N,GAAgBtxN,GACvB,OAAO/nB,aAAa+nB,EACtB,CAnqCAylN,GAAStrP,UAA4C,CACnDZ,YAAaksP,GACb0J,iBAAkB,SAA0B10N,GACrCp4B,KAAKs/B,GAAGhH,SAASF,IAAWA,IAAWp4B,KAAKs/B,KAC/C0qN,GAAa,KAEhB,EACDkF,cAAe,SAAuBl8K,EAAK56C,GACzC,MAAyC,mBAA3Bp4B,KAAKuU,QAAQwZ,UAA2B/tB,KAAKuU,QAAQwZ,UAAU/2B,KAAKgJ,KAAMgzE,EAAK56C,EAAQivN,IAAUrnP,KAAKuU,QAAQwZ,SAC7H,EACDogO,YAAa,SAA6Cn7K,GACxD,GAAKA,EAAIo2K,WAAT,CACA,IAAI5kN,EAAQxkC,KACVs/B,EAAKt/B,KAAKs/B,GACV/qB,EAAUvU,KAAKuU,QACf+4O,EAAkB/4O,EAAQ+4O,gBAC1BtyP,EAAOg4E,EAAIh4E,KACXotK,EAAQp1F,EAAIq1F,SAAWr1F,EAAIq1F,QAAQ,IAAMr1F,EAAIm8K,aAAmC,UAApBn8K,EAAIm8K,aAA2Bn8K,EAC3F56C,GAAUgwI,GAASp1F,GAAK56C,OACxBg3N,EAAiBp8K,EAAI56C,OAAO+1K,aAAen7H,EAAIvtE,MAAQutE,EAAIvtE,KAAK,IAAMutE,EAAI2uJ,cAAgB3uJ,EAAI2uJ,eAAe,KAAOvpM,EACpH9Z,EAAS/J,EAAQ+J,OAInB,GA6nCJ,SAAgCvlB,GAC9B4xP,GAAkBv0P,OAAS,EAC3B,IAAIi5P,EAASt2P,EAAKkpP,qBAAqB,SACnC7lK,EAAMizK,EAAOj5P,OACjB,KAAOgmF,KAAO,CACZ,IAAI98C,EAAK+vN,EAAOjzK,GAChB98C,EAAGtJ,SAAW20N,GAAkBpoP,KAAK+8B,EACvC,CACF,CAxoCIgwN,CAAuBhwN,IAGnB+nN,MAGA,wBAAwBjwP,KAAK4D,IAAwB,IAAfg4E,EAAIvrC,QAAgBlzB,EAAQohB,YAKlEy5N,EAAeG,oBAKdvvP,KAAKkuP,kBAAmBpN,KAAU1oN,GAA2C,WAAjCA,EAAO2+D,QAAQiZ,mBAGhE53E,EAAS23B,GAAQ33B,EAAQ7jB,EAAQ+tE,UAAWhjD,GAAI,KAClClH,EAAOmsN,UAGjBkD,KAAervN,GAAnB,CAUA,GAJA4vN,GAAW7tP,GAAMi+B,GACjB6vN,GAAoB9tP,GAAMi+B,EAAQ7jB,EAAQ+tE,WAGpB,mBAAXhkE,GACT,GAAIA,EAAOtnB,KAAKgJ,KAAMgzE,EAAK56C,EAAQp4B,MAajC,OAZA0oP,GAAe,CACbx5B,SAAU1qL,EACV+iN,OAAQ6H,EACRj4P,KAAM,SACNwxP,SAAUvwN,EACVwwN,KAAMtpN,EACNupN,OAAQvpN,IAEVmnN,GAAY,SAAUjiN,EAAO,CAC3BwuC,IAAKA,SAEPs6K,GAAmBt6K,EAAIH,uBAGpB,GAAIv0D,IACTA,EAASA,EAAOxW,MAAM,KAAKmX,MAAK,SAAUuwO,GAExC,GADAA,EAAWz/L,GAAQq/L,EAAgBI,EAASl0N,OAAQgE,GAAI,GAatD,OAXAopN,GAAe,CACbx5B,SAAU1qL,EACV+iN,OAAQiI,EACRr4P,KAAM,SACNwxP,SAAUvwN,EACVywN,OAAQvpN,EACRspN,KAAMtpN,IAERmnN,GAAY,SAAUjiN,EAAO,CAC3BwuC,IAAKA,KAEA,CAEX,KAGE,YADAs6K,GAAmBt6K,EAAIH,kBAIvBt+D,EAAQ2pB,SAAW6xB,GAAQq/L,EAAgB76O,EAAQ2pB,OAAQoB,GAAI,IAKnEt/B,KAAKyvP,kBAAkBz8K,EAAKo1F,EAAOhwI,EAnDnC,CApCqB,CAwFtB,EACDq3N,kBAAmB,SAAwCz8K,EAAiBo1F,EAAyBhwI,GACnG,IAIEs3N,EAJElrN,EAAQxkC,KACVs/B,EAAKkF,EAAMlF,GACX/qB,EAAUiwB,EAAMjwB,QAChBumD,EAAgBx7B,EAAGw7B,cAErB,GAAI1iC,IAAWivN,IAAUjvN,EAAOqL,aAAenE,EAAI,CACjD,IAAI+uN,EAAWjM,GAAQhqN,GA0EvB,GAzEAmvN,GAASjoN,EAETgoN,IADAD,GAASjvN,GACSqL,WAClB+jN,GAASH,GAAOvzB,YAChB2zB,GAAarvN,EACbqxN,GAAcl1O,EAAQk9G,MACtB2xH,GAASl7J,QAAUm/J,GACnBqC,GAAS,CACPtxN,OAAQivN,GACRvxK,SAAUsyF,GAASp1F,GAAK8C,QACxBC,SAAUqyF,GAASp1F,GAAK+C,SAE1B+zK,GAAkBJ,GAAO5zK,QAAUu4K,EAASvrN,KAC5CinN,GAAiBL,GAAO3zK,QAAUs4K,EAASxrN,IAC3C7iC,KAAK2vP,QAAUvnF,GAASp1F,GAAK8C,QAC7B91E,KAAK4vP,QAAUxnF,GAASp1F,GAAK+C,QAC7BsxK,GAAO9gN,MAAM,eAAiB,MAC9BmpN,EAAc,WACZjJ,GAAY,aAAcjiN,EAAO,CAC/BwuC,IAAKA,IAEHowK,GAASsD,cACXliN,EAAMqrN,WAKRrrN,EAAMsrN,6BACDjP,IAAWr8M,EAAM0pN,kBACpB7G,GAAO/kK,WAAY,GAIrB99C,EAAMurN,kBAAkB/8K,EAAKo1F,GAG7BsgF,GAAe,CACbx5B,SAAU1qL,EACVrtC,KAAM,SACNiwP,cAAep0K,IAIjBuuK,GAAY8F,GAAQ9yO,EAAQ64O,aAAa,KAI3C74O,EAAQyrK,OAAOl4K,MAAM,KAAK6H,SAAQ,SAAU6/O,GAC1C71L,GAAK0tL,GAAQmI,EAASl0N,OAAQuzN,GAChC,IACAhwN,GAAGi8B,EAAe,WAAYyxL,IAC9B1tN,GAAGi8B,EAAe,YAAayxL,IAC/B1tN,GAAGi8B,EAAe,YAAayxL,IAC3Bh4O,EAAQ05O,gBACVpvN,GAAGi8B,EAAe,YAAat2B,EAAMqrN,UAEpC7vP,KAAKkuP,iBAAmBrvN,GAAGi8B,EAAe,gBAAiBt2B,EAAMqrN,WAElEhxN,GAAGi8B,EAAe,UAAWt2B,EAAMqrN,SACnChxN,GAAGi8B,EAAe,WAAYt2B,EAAMqrN,SACpChxN,GAAGi8B,EAAe,cAAet2B,EAAMqrN,UAIrChP,IAAW7gP,KAAKkuP,kBAClBluP,KAAKuU,QAAQo5O,oBAAsB,EACnCtG,GAAO/kK,WAAY,GAErBmkK,GAAY,aAAczmP,KAAM,CAC9BgzE,IAAKA,KAIHz+D,EAAQ48B,OAAW58B,EAAQm5O,mBAAoBtlF,GAAYpoK,KAAKkuP,kBAAqBtN,IAAQD,IAqB/F+O,QArB6G,CAC7G,GAAItM,GAASsD,cAEX,YADA1mP,KAAK6vP,UAMHt7O,EAAQ05O,gBACVpvN,GAAGi8B,EAAe,YAAat2B,EAAMwrN,qBACrCnxN,GAAGi8B,EAAe,gBAAiBt2B,EAAMwrN,uBAEzCnxN,GAAGi8B,EAAe,UAAWt2B,EAAMwrN,qBACnCnxN,GAAGi8B,EAAe,WAAYt2B,EAAMwrN,qBACpCnxN,GAAGi8B,EAAe,cAAet2B,EAAMwrN,sBAEzCnxN,GAAGi8B,EAAe,YAAat2B,EAAMyrN,8BACrCpxN,GAAGi8B,EAAe,YAAat2B,EAAMyrN,8BACrC17O,EAAQ05O,gBAAkBpvN,GAAGi8B,EAAe,cAAet2B,EAAMyrN,8BACjEzrN,EAAM0rN,gBAAkB56O,WAAWo6O,EAAan7O,EAAQ48B,MAC1D,CAGF,CACD,EACD8+M,6BAA8B,SAAsE55P,GAClG,IAAI+xK,EAAQ/xK,EAAEgyK,QAAUhyK,EAAEgyK,QAAQ,GAAKhyK,EACnCmJ,KAAKC,IAAID,KAAKyiB,IAAImmJ,EAAMtyF,QAAU91E,KAAK2vP,QAASnwP,KAAKyiB,IAAImmJ,EAAMryF,QAAU/1E,KAAK4vP,UAAYpwP,KAAKsa,MAAM9Z,KAAKuU,QAAQo5O,qBAAuB3tP,KAAKkuP,iBAAmBx1N,OAAO2oC,kBAAoB,KAC9LrhE,KAAKgwP,qBAER,EACDA,oBAAqB,WACnB3I,IAAUwH,GAAkBxH,IAC5BzxO,aAAa5V,KAAKkwP,iBAClBlwP,KAAK8vP,2BACN,EACDA,0BAA2B,WACzB,IAAIh1L,EAAgB96D,KAAKs/B,GAAGw7B,cAC5B57B,GAAI47B,EAAe,UAAW96D,KAAKgwP,qBACnC9wN,GAAI47B,EAAe,WAAY96D,KAAKgwP,qBACpC9wN,GAAI47B,EAAe,cAAe96D,KAAKgwP,qBACvC9wN,GAAI47B,EAAe,YAAa96D,KAAKgwP,qBACrC9wN,GAAI47B,EAAe,gBAAiB96D,KAAKgwP,qBACzC9wN,GAAI47B,EAAe,YAAa96D,KAAKiwP,8BACrC/wN,GAAI47B,EAAe,YAAa96D,KAAKiwP,8BACrC/wN,GAAI47B,EAAe,cAAe96D,KAAKiwP,6BACxC,EACDF,kBAAmB,SAAwC/8K,EAAiBo1F,GAC1EA,EAAQA,GAA4B,SAAnBp1F,EAAIm8K,aAA0Bn8K,GAC1ChzE,KAAKkuP,iBAAmB9lF,EACvBpoK,KAAKuU,QAAQ05O,eACfpvN,GAAGC,SAAU,cAAe9+B,KAAKmwP,cAEjCtxN,GAAGC,SADMspI,EACI,YAEA,YAFapoK,KAAKmwP,eAKjCtxN,GAAGwoN,GAAQ,UAAWrnP,MACtB6+B,GAAG0oN,GAAQ,YAAavnP,KAAKowP,eAE/B,IACMtxN,SAAS8xB,UACXo+L,IAAU,WACRlwN,SAAS8xB,UAAU/lC,OACrB,IAEA6N,OAAOs2B,eAAeC,iBAE1B,CAAE,MAAO/2B,GAAM,CAChB,EACDm4N,aAAc,SAAsBr1D,EAAUhoH,GAE5C,GADAo3K,IAAsB,EAClB7C,IAAUF,GAAQ,CACpBZ,GAAY,cAAezmP,KAAM,CAC/BgzE,IAAKA,IAEHhzE,KAAKkuP,iBACPrvN,GAAGC,SAAU,WAAY+tN,IAE3B,IAAIt4O,EAAUvU,KAAKuU,SAGlBymL,GAAYumD,GAAY8F,GAAQ9yO,EAAQ84O,WAAW,GACpD9L,GAAY8F,GAAQ9yO,EAAQ44O,YAAY,GACxC/J,GAASrtN,OAAS/1B,KAClBg7L,GAAYh7L,KAAKswP,eAGjB5H,GAAe,CACbx5B,SAAUlvN,KACV7I,KAAM,QACNiwP,cAAep0K,GAEnB,MACEhzE,KAAKuwP,UAER,EACDC,iBAAkB,WAChB,GAAI7G,GAAU,CACZ3pP,KAAK2vP,OAAShG,GAAS7zK,QACvB91E,KAAK4vP,OAASjG,GAAS5zK,QACvBqyK,KAGA,IAFA,IAAIhwN,EAAS0G,SAAS2xN,iBAAiB9G,GAAS7zK,QAAS6zK,GAAS5zK,SAC9D18D,EAAS+e,EACNA,GAAUA,EAAO+1K,aACtB/1K,EAASA,EAAO+1K,WAAWsiD,iBAAiB9G,GAAS7zK,QAAS6zK,GAAS5zK,YACxD18D,GACfA,EAAS+e,EAGX,GADAivN,GAAO5jN,WAAWghN,IAASqI,iBAAiB10N,GACxC/e,EACF,EAAG,CACD,GAAIA,EAAOorO,IAAU,CAQnB,GANWprO,EAAOorO,IAASmI,YAAY,CACrC92K,QAAS6zK,GAAS7zK,QAClBC,QAAS4zK,GAAS5zK,QAClB39C,OAAQA,EACRmvN,OAAQluO,MAEOrZ,KAAKuU,QAAQi5O,eAC5B,KAEJ,CACAp1N,EAAS/e,CACX,OAC8BA,EAAS8nO,GAAgB9nO,IAEzDivO,IACF,CACD,EACD6H,aAAc,SAAsCn9K,GAClD,GAAI02K,GAAQ,CACV,IAAIn1O,EAAUvU,KAAKuU,QACjBw5O,EAAoBx5O,EAAQw5O,kBAC5BC,EAAiBz5O,EAAQy5O,eACzB5lF,EAAQp1F,EAAIq1F,QAAUr1F,EAAIq1F,QAAQ,GAAKr1F,EACvC09K,EAAcxM,IAAWzC,GAAOyC,IAAS,GACzC1nL,EAAS0nL,IAAWwM,GAAeA,EAAYv6P,EAC/CsmE,EAASynL,IAAWwM,GAAeA,EAAYpvO,EAC/CqvO,EAAuB9F,IAA2BV,IAAuB5G,GAAwB4G,IACjGyG,GAAMxoF,EAAMtyF,QAAU4zK,GAAO5zK,QAAUk4K,EAAe5qO,IAAMo5C,GAAU,IAAMm0L,EAAuBA,EAAqB,GAAKlG,GAAiC,GAAK,IAAMjuL,GAAU,GACnLq0L,GAAMzoF,EAAMryF,QAAU2zK,GAAO3zK,QAAUi4K,EAAexsO,IAAMi7C,GAAU,IAAMk0L,EAAuBA,EAAqB,GAAKlG,GAAiC,GAAK,IAAMhuL,GAAU,GAGrL,IAAK2mL,GAASrtN,SAAWq0N,GAAqB,CAC5C,GAAI2D,GAAqBvuP,KAAKC,IAAID,KAAKyiB,IAAImmJ,EAAMtyF,QAAU91E,KAAK2vP,QAASnwP,KAAKyiB,IAAImmJ,EAAMryF,QAAU/1E,KAAK4vP,SAAW7B,EAChH,OAEF/tP,KAAKowP,aAAap9K,GAAK,EACzB,CACA,GAAIkxK,GAAS,CACPwM,GACFA,EAAYr6P,GAAKu6P,GAAMhH,IAAU,GACjC8G,EAAYt0O,GAAKy0O,GAAMhH,IAAU,IAEjC6G,EAAc,CACZv6P,EAAG,EACH4sB,EAAG,EACH1B,EAAG,EACHC,EAAG,EACHjrB,EAAGu6P,EACHx0O,EAAGy0O,GAGP,IAAIC,EAAY,UAAU/7N,OAAO27N,EAAYv6P,EAAG,KAAK4+B,OAAO27N,EAAY3tO,EAAG,KAAKgS,OAAO27N,EAAYrvO,EAAG,KAAK0T,OAAO27N,EAAYpvO,EAAG,KAAKyT,OAAO27N,EAAYr6P,EAAG,KAAK0+B,OAAO27N,EAAYt0O,EAAG,KACvLuhD,GAAIumL,GAAS,kBAAmB4M,GAChCnzL,GAAIumL,GAAS,eAAgB4M,GAC7BnzL,GAAIumL,GAAS,cAAe4M,GAC5BnzL,GAAIumL,GAAS,YAAa4M,GAC1BlH,GAASgH,EACT/G,GAASgH,EACTlH,GAAWvhF,CACb,CACAp1F,EAAIo2K,YAAcp2K,EAAIH,gBACxB,CACD,EACDy9K,aAAc,WAGZ,IAAKpM,GAAS,CACZ,IAAI1jN,EAAYxgC,KAAKuU,QAAQu5O,eAAiBhvN,SAASwB,KAAOinN,GAC5D7kN,EAAO0/M,GAAQiF,IAAQ,EAAMwD,IAAyB,EAAMrqN,GAC5DjsB,EAAUvU,KAAKuU,QAGjB,GAAIs2O,GAAyB,CAG3B,IADAV,GAAsB3pN,EAC0B,WAAzCm9B,GAAIwsL,GAAqB,aAAsE,SAA1CxsL,GAAIwsL,GAAqB,cAA2BA,KAAwBrrN,UACtIqrN,GAAsBA,GAAoB1mN,WAExC0mN,KAAwBrrN,SAASwB,MAAQ6pN,KAAwBrrN,SAASiC,iBACxEopN,KAAwBrrN,WAAUqrN,GAAsBjI,MAC5Dx/M,EAAKG,KAAOsnN,GAAoB7oN,UAChCoB,EAAKI,MAAQqnN,GAAoBrmN,YAEjCqmN,GAAsBjI,KAExBuI,GAAmClH,GAAwB4G,GAC7D,CAEA5I,GADA2C,GAAUmD,GAAO/iF,WAAU,GACN/vJ,EAAQ44O,YAAY,GACzC5L,GAAY2C,GAAS3vO,EAAQs5O,eAAe,GAC5CtM,GAAY2C,GAAS3vO,EAAQ84O,WAAW,GACxC1vL,GAAIumL,GAAS,aAAc,IAC3BvmL,GAAIumL,GAAS,YAAa,IAC1BvmL,GAAIumL,GAAS,aAAc,cAC3BvmL,GAAIumL,GAAS,SAAU,GACvBvmL,GAAIumL,GAAS,MAAOxhN,EAAKG,KACzB86B,GAAIumL,GAAS,OAAQxhN,EAAKI,MAC1B66B,GAAIumL,GAAS,QAASxhN,EAAKoF,OAC3B61B,GAAIumL,GAAS,SAAUxhN,EAAKsF,QAC5B21B,GAAIumL,GAAS,UAAW,OACxBvmL,GAAIumL,GAAS,WAAY2G,GAA0B,WAAa,SAChEltL,GAAIumL,GAAS,SAAU,UACvBvmL,GAAIumL,GAAS,gBAAiB,QAC9Bd,GAASjtM,MAAQ+tM,GACjB1jN,EAAU6B,YAAY6hN,IAGtBvmL,GAAIumL,GAAS,mBAAoB4F,GAAkBzuP,SAAS6oP,GAAQ39M,MAAMuB,OAAS,IAAM,KAAOiiN,GAAiB1uP,SAAS6oP,GAAQ39M,MAAMyB,QAAU,IAAM,IAC1J,CACD,EACDooN,aAAc,SAAiCp9K,EAAiBgoH,GAC9D,IAAIx2J,EAAQxkC,KACRk9K,EAAelqG,EAAIkqG,aACnB3oK,EAAUiwB,EAAMjwB,QACpBkyO,GAAY,YAAazmP,KAAM,CAC7BgzE,IAAKA,IAEHowK,GAASsD,cACX1mP,KAAK6vP,WAGPpJ,GAAY,aAAczmP,MACrBojP,GAASsD,iBACZgB,GAAUrlO,GAAMglO,KACRl9L,gBAAgB,MACxBu9L,GAAQplK,WAAY,EACpBolK,GAAQnhN,MAAM,eAAiB,GAC/BvmC,KAAK+wP,aACLxP,GAAYmG,GAAS1nP,KAAKuU,QAAQ64O,aAAa,GAC/ChK,GAAS/gO,MAAQqlO,IAInBljN,EAAMwsN,QAAUhC,IAAU,WACxBvI,GAAY,QAASjiN,GACjB4+M,GAASsD,gBACRliN,EAAMjwB,QAAQ24O,mBACjB3F,GAAOz+M,aAAa4+M,GAASL,IAE/B7iN,EAAMusN,aACNrI,GAAe,CACbx5B,SAAU1qL,EACVrtC,KAAM,UAEV,KACC6jM,GAAYumD,GAAY8F,GAAQ9yO,EAAQ84O,WAAW,GAGhDryD,GACFqvD,IAAkB,EAClB7lN,EAAMysN,QAAU/tC,YAAY1+K,EAAMgsN,iBAAkB,MAGpDtxN,GAAIJ,SAAU,UAAW0F,EAAMqrN,SAC/B3wN,GAAIJ,SAAU,WAAY0F,EAAMqrN,SAChC3wN,GAAIJ,SAAU,cAAe0F,EAAMqrN,SAC/B3yE,IACFA,EAAag0E,cAAgB,OAC7B38O,EAAQ4oK,SAAW5oK,EAAQ4oK,QAAQnmL,KAAKwtC,EAAO04I,EAAcmqE,KAE/DxoN,GAAGC,SAAU,OAAQ0F,GAGrBm5B,GAAI0pL,GAAQ,YAAa,kBAE3B+C,IAAsB,EACtB5lN,EAAM2sN,aAAenC,GAAUxqN,EAAM6rN,aAAa1qM,KAAKnhB,EAAOw2J,EAAUhoH,IACxEn0C,GAAGC,SAAU,cAAe0F,GAC5BqjN,IAAQ,EACRnvN,OAAOs2B,eAAeC,kBAClB6xL,IACFnjL,GAAI7+B,SAASwB,KAAM,cAAe,QAErC,EAEDssN,YAAa,SAAgC55K,GAC3C,IAEEq7K,EACAC,EACA8C,EAOA7qF,EAXEjnI,EAAKt/B,KAAKs/B,GACZlH,EAAS46C,EAAI56C,OAIb7jB,EAAUvU,KAAKuU,QACfk9G,EAAQl9G,EAAQk9G,MAChBs2H,EAAiB3E,GAASrtN,OAC1Bs7N,EAAU5H,KAAgBh4H,EAC1B6/H,EAAU/8O,EAAQ45B,KAClBojN,EAAezJ,IAAeC,EAE9BvjN,EAAQxkC,KACRwxP,GAAiB,EACnB,IAAI9G,GAAJ,CAoGA,QAL2B,IAAvB13K,EAAIH,gBACNG,EAAIo2K,YAAcp2K,EAAIH,iBAExBz6C,EAAS23B,GAAQ33B,EAAQ7jB,EAAQ+tE,UAAWhjD,GAAI,GAChDmyN,EAAc,YACVrO,GAASsD,cAAe,OAAO8K,EACnC,GAAInK,GAAO/uN,SAAS06C,EAAI56C,SAAWA,EAAOmsN,UAAYnsN,EAAO4tN,YAAc5tN,EAAO6tN,YAAczhN,EAAMktN,wBAA0Bt5N,EAC9H,OAAOu5N,GAAU,GAGnB,GADAtH,IAAkB,EACdtC,IAAmBxzO,EAAQohB,WAAa07N,EAAUC,IAAYF,EAAS9J,KAAaC,IACtFO,KAAgB9nP,OAASA,KAAKspP,YAAcG,GAAY0C,UAAUnsP,KAAM+nP,EAAgBV,GAAQr0K,KAASy+C,EAAM26H,SAASpsP,KAAM+nP,EAAgBV,GAAQr0K,IAAO,CAI7J,GAHAuzF,EAA+C,aAApCvmK,KAAKkvP,cAAcl8K,EAAK56C,GACnCi2N,EAAWjM,GAAQiF,IACnBoK,EAAc,iBACVrO,GAASsD,cAAe,OAAO8K,EACnC,GAAIJ,EAYF,OAXA9J,GAAWC,GACXrG,IACAlhP,KAAK+wP,aACLU,EAAc,UACTrO,GAASsD,gBACRc,GACFD,GAAOz+M,aAAau+M,GAAQG,IAE5BD,GAAOllN,YAAYglN,KAGhBsK,GAAU,GAEnB,IAAIC,EAAcvO,GAAU/jN,EAAI/qB,EAAQ+tE,WACxC,IAAKsvK,GAqeX,SAAsB5+K,EAAKuzF,EAAU2oD,GACnC,IAAI2iC,EAAazP,GAAQiB,GAAUn0B,EAAS5vL,GAAI4vL,EAAS36M,QAAQ+tE,YAC7DwvK,EAAsB7N,GAAkC/0B,EAAS5vL,GAAI4vL,EAAS36M,QAAS2vO,IACvF6N,EAAS,GACb,OAAOxrF,EAAWvzF,EAAI8C,QAAUg8K,EAAoB9uN,MAAQ+uN,GAAU/+K,EAAI+C,QAAU87K,EAAW9uN,QAAUiwC,EAAI8C,QAAU+7K,EAAW/uN,KAAOkwC,EAAI+C,QAAU+7K,EAAoB/uN,OAASgvN,GAAU/+K,EAAI8C,QAAU+7K,EAAW7uN,OAASgwC,EAAI+C,QAAU87K,EAAWhvN,GAC3P,CA1e0BmvN,CAAah/K,EAAKuzF,EAAUvmK,QAAU4xP,EAAYrN,SAAU,CAI9E,GAAIqN,IAAgBvK,GAClB,OAAOsK,GAAU,GAUnB,GANIC,GAAetyN,IAAO0zC,EAAI56C,SAC5BA,EAASw5N,GAEPx5N,IACFk2N,EAAalM,GAAQhqN,KAE0D,IAA7Eg2N,GAAQ7G,GAAQjoN,EAAI+nN,GAAQgH,EAAUj2N,EAAQk2N,EAAYt7K,IAAO56C,GAWnE,OAVA8oN,IACI0Q,GAAeA,EAAY99B,YAE7Bx0L,EAAGwJ,aAAau+M,GAAQuK,EAAY99B,aAEpCx0L,EAAG+C,YAAYglN,IAEjBC,GAAWhoN,EAEX2yN,IACON,GAAU,EAErB,MAAO,GAAIC,GAmcjB,SAAuB5+K,EAAKuzF,EAAU2oD,GACpC,IAAIgjC,EAAc9P,GAAQ7yJ,GAAS2/H,EAAS5vL,GAAI,EAAG4vL,EAAS36M,SAAS,IACjEu9O,EAAsB7N,GAAkC/0B,EAAS5vL,GAAI4vL,EAAS36M,QAAS2vO,IACvF6N,EAAS,GACb,OAAOxrF,EAAWvzF,EAAI8C,QAAUg8K,EAAoBhvN,KAAOivN,GAAU/+K,EAAI+C,QAAUm8K,EAAYrvN,KAAOmwC,EAAI8C,QAAUo8K,EAAYlvN,MAAQgwC,EAAI+C,QAAU+7K,EAAoBjvN,IAAMkvN,GAAU/+K,EAAI+C,QAAUm8K,EAAYnvN,QAAUiwC,EAAI8C,QAAUo8K,EAAYpvN,IAC1P,CAxcgCqvN,CAAcn/K,EAAKuzF,EAAUvmK,MAAO,CAE5D,IAAI+oC,EAAawmD,GAASjwD,EAAI,EAAG/qB,GAAS,GAC1C,GAAIw0B,IAAes+M,GACjB,OAAOsK,GAAU,GAInB,GADArD,EAAalM,GADbhqN,EAAS2Q,IAEqE,IAA1EqlN,GAAQ7G,GAAQjoN,EAAI+nN,GAAQgH,EAAUj2N,EAAQk2N,EAAYt7K,GAAK,GAMjE,OALAkuK,IACA5hN,EAAGwJ,aAAau+M,GAAQt+M,GACxBu+M,GAAWhoN,EAEX2yN,IACON,GAAU,EAErB,MAAO,GAAIv5N,EAAOqL,aAAenE,EAAI,CACnCgvN,EAAalM,GAAQhqN,GACrB,IAAIrK,EACFqkO,EAYEjmH,EAXFkmH,EAAiBhL,GAAO5jN,aAAenE,EACvCgzN,GAx2Ba,SAA4BjE,EAAUC,EAAY/nF,GACrE,IAAIgsF,EAAchsF,EAAW8nF,EAASvrN,KAAOurN,EAASxrN,IACpD2vN,EAAcjsF,EAAW8nF,EAASrrN,MAAQqrN,EAAStrN,OACnD0vN,EAAkBlsF,EAAW8nF,EAASvmN,MAAQumN,EAASrmN,OACvD0qN,EAAcnsF,EAAW+nF,EAAWxrN,KAAOwrN,EAAWzrN,IACtD8vN,EAAcpsF,EAAW+nF,EAAWtrN,MAAQsrN,EAAWvrN,OACvD6vN,EAAkBrsF,EAAW+nF,EAAWxmN,MAAQwmN,EAAWtmN,OAC7D,OAAOuqN,IAAgBG,GAAeF,IAAgBG,GAAeJ,EAAcE,EAAkB,IAAMC,EAAcE,EAAkB,CAC5I,CAg2B0BC,CAAmBxL,GAAO9C,UAAY8C,GAAO9B,QAAU8I,EAAUj2N,EAAOmsN,UAAYnsN,EAAOmtN,QAAU+I,EAAY/nF,GACpIusF,EAAQvsF,EAAW,MAAQ,OAC3BwsF,EAAkBpQ,GAAevqN,EAAQ,MAAO,QAAUuqN,GAAe0E,GAAQ,MAAO,OACxF2L,EAAeD,EAAkBA,EAAgBzxN,eAAY,EAQ/D,GAPI0oN,KAAe5xN,IACjBg6N,EAAwB9D,EAAWwE,GACnCvI,IAAwB,EACxBC,IAA0B8H,GAAmB/9O,EAAQy4O,YAAcqF,GAErEtkO,EAibR,SAA2BilD,EAAK56C,EAAQk2N,EAAY/nF,EAAUwmF,EAAeE,EAAuBD,EAAYiG,GAC9G,IAAIC,EAAc3sF,EAAWvzF,EAAI+C,QAAU/C,EAAI8C,QAC7Cq9K,EAAe5sF,EAAW+nF,EAAWtmN,OAASsmN,EAAWxmN,MACzDsrN,EAAW7sF,EAAW+nF,EAAWzrN,IAAMyrN,EAAWxrN,KAClDuwN,EAAW9sF,EAAW+nF,EAAWvrN,OAASurN,EAAWtrN,MACrDswN,GAAS,EACX,IAAKtG,EAEH,GAAIiG,GAAgB/I,GAAqBiJ,EAAepG,GAOtD,IAJKxC,KAA4C,IAAlBN,GAAsBiJ,EAAcE,EAAWD,EAAelG,EAAwB,EAAIiG,EAAcG,EAAWF,EAAelG,EAAwB,KAEvL1C,IAAwB,GAErBA,GAOH+I,GAAS,OALT,GAAsB,IAAlBrJ,GAAsBiJ,EAAcE,EAAWlJ,GACjDgJ,EAAcG,EAAWnJ,GACzB,OAAQD,QAOZ,GAAIiJ,EAAcE,EAAWD,GAAgB,EAAIpG,GAAiB,GAAKmG,EAAcG,EAAWF,GAAgB,EAAIpG,GAAiB,EACnI,OAoBR,SAA6B30N,GAC3B,OAAIj+B,GAAMktP,IAAUltP,GAAMi+B,GACjB,GAEC,CAEZ,CA1Bem7N,CAAoBn7N,GAKjC,IADAk7N,EAASA,GAAUtG,KAGbkG,EAAcE,EAAWD,EAAelG,EAAwB,GAAKiG,EAAcG,EAAWF,EAAelG,EAAwB,GACvI,OAAOiG,EAAcE,EAAWD,EAAe,EAAI,GAAK,EAG5D,OAAO,CACT,CAxdoBK,CAAkBxgL,EAAK56C,EAAQk2N,EAAY/nF,EAAU+rF,EAAkB,EAAI/9O,EAAQw4O,cAAgD,MAAjCx4O,EAAQ04O,sBAAgC14O,EAAQw4O,cAAgBx4O,EAAQ04O,sBAAuBzC,GAAwBR,KAAe5xN,GAElO,IAAdrK,EAAiB,CAEnB,IAAIg7D,EAAY5uF,GAAMktP,IACtB,GACEt+J,GAAah7D,EACbo+G,EAAUm7G,GAASrqO,SAAS8rE,SACrBojD,IAAwC,SAA5BxuE,GAAIwuE,EAAS,YAAyBA,IAAY+3G,IACzE,CAEA,GAAkB,IAAdn2N,GAAmBo+G,IAAY/zG,EACjC,OAAOu5N,GAAU,GAEnB3H,GAAa5xN,EACb6xN,GAAgBl8N,EAChB,IAAI+lM,EAAc17L,EAAO42C,mBACvB86E,GAAQ,EAEN2pG,EAAarF,GAAQ7G,GAAQjoN,EAAI+nN,GAAQgH,EAAUj2N,EAAQk2N,EAAYt7K,EAD3E82E,EAAsB,IAAd/7H,GAER,IAAmB,IAAf0lO,EAwBF,OAvBmB,IAAfA,IAAoC,IAAhBA,IACtB3pG,EAAuB,IAAf2pG,GAEV/I,IAAU,EACVp1O,WAAWw5O,GAAW,IACtB5N,IACIp3F,IAAUgqE,EACZx0L,EAAG+C,YAAYglN,IAEfjvN,EAAOqL,WAAWqF,aAAau+M,GAAQv9F,EAAQgqE,EAAc17L,GAI3D26N,GACFhkB,GAASgkB,EAAiB,EAAGC,EAAeD,EAAgBzxN,WAE9DgmN,GAAWD,GAAO5jN,gBAGYnqC,IAA1B84P,GAAwC5H,KAC1CN,GAAqB1qP,KAAKyiB,IAAImwO,EAAwBhQ,GAAQhqN,GAAQ06N,KAExEb,IACON,GAAU,EAErB,CACA,GAAIryN,EAAGhH,SAAS+uN,IACd,OAAOsK,GAAU,EAErB,CACA,OAAO,CA3OM,CACb,SAASF,EAAct6P,EAAM28F,GAC3B2yJ,GAAYtvP,EAAMqtC,EAAO47M,GAAe,CACtCptK,IAAKA,EACLq+K,QAASA,EACTvyL,KAAMynG,EAAW,WAAa,aAC9B6qF,OAAQA,EACR/C,SAAUA,EACVC,WAAYA,EACZgD,QAASA,EACTC,aAAcA,EACdn5N,OAAQA,EACRu5N,UAAWA,EACXjD,OAAQ,SAAgBt2N,EAAQ0xH,GAC9B,OAAOskG,GAAQ7G,GAAQjoN,EAAI+nN,GAAQgH,EAAUj2N,EAAQgqN,GAAQhqN,GAAS46C,EAAK82E,EAC5E,EACDmoG,QAASA,GACRn+J,GACL,CAGA,SAASotJ,IACPuQ,EAAc,4BACdjtN,EAAMqgN,wBACFrgN,IAAU+sN,GACZA,EAAa1M,uBAEjB,CAGA,SAAS8M,EAAU+B,GAiDjB,OAhDAjC,EAAc,oBAAqB,CACjCiC,UAAWA,IAETA,IAEErC,EACFtJ,EAAegJ,aAEfhJ,EAAe4L,WAAWnvN,GAExBA,IAAU+sN,IAEZhQ,GAAY8F,GAAQS,GAAcA,GAAYvzO,QAAQ44O,WAAapF,EAAexzO,QAAQ44O,YAAY,GACtG5L,GAAY8F,GAAQ9yO,EAAQ44O,YAAY,IAEtCrF,KAAgBtjN,GAASA,IAAU4+M,GAASrtN,OAC9C+xN,GAActjN,EACLA,IAAU4+M,GAASrtN,QAAU+xN,KACtCA,GAAc,MAIZyJ,IAAiB/sN,IACnBA,EAAMktN,sBAAwBt5N,GAEhCoM,EAAM4gN,YAAW,WACfqM,EAAc,6BACdjtN,EAAMktN,sBAAwB,IAChC,IACIltN,IAAU+sN,IACZA,EAAanM,aACbmM,EAAaG,sBAAwB,QAKrCt5N,IAAWivN,KAAWA,GAAO9C,UAAYnsN,IAAWkH,IAAOlH,EAAOmsN,YACpEyF,GAAa,MAIVz1O,EAAQi5O,gBAAmBx6K,EAAIu0K,QAAUnvN,IAAW0G,WACvDuoN,GAAO5jN,WAAWghN,IAASqI,iBAAiB95K,EAAI56C,SAG/Cs7N,GAAanH,GAA8Bv5K,KAE7Cz+D,EAAQi5O,gBAAkBx6K,EAAI8E,iBAAmB9E,EAAI8E,kBAC/C05K,GAAiB,CAC1B,CAGA,SAASS,IACPn8H,GAAW37H,GAAMktP,IACjBa,GAAoB/tP,GAAMktP,GAAQ9yO,EAAQ+tE,WAC1ComK,GAAe,CACbx5B,SAAU1qL,EACVrtC,KAAM,SACNyxP,KAAMtpN,EACNw2F,SAAUA,GACVoyH,kBAAmBA,GACnBd,cAAep0K,GAEnB,CA8ID,EACD0+K,sBAAuB,KACvBkC,eAAgB,WACd10N,GAAIJ,SAAU,YAAa9+B,KAAKmwP,cAChCjxN,GAAIJ,SAAU,YAAa9+B,KAAKmwP,cAChCjxN,GAAIJ,SAAU,cAAe9+B,KAAKmwP,cAClCjxN,GAAIJ,SAAU,WAAYytN,IAC1BrtN,GAAIJ,SAAU,YAAaytN,IAC3BrtN,GAAIJ,SAAU,YAAaytN,GAC5B,EACDsH,aAAc,WACZ,IAAI/4L,EAAgB96D,KAAKs/B,GAAGw7B,cAC5B57B,GAAI47B,EAAe,UAAW96D,KAAK6vP,SACnC3wN,GAAI47B,EAAe,WAAY96D,KAAK6vP,SACpC3wN,GAAI47B,EAAe,YAAa96D,KAAK6vP,SACrC3wN,GAAI47B,EAAe,gBAAiB96D,KAAK6vP,SACzC3wN,GAAI47B,EAAe,cAAe96D,KAAK6vP,SACvC3wN,GAAIJ,SAAU,cAAe9+B,KAC9B,EACD6vP,QAAS,SAA4B78K,GACnC,IAAI1zC,EAAKt/B,KAAKs/B,GACZ/qB,EAAUvU,KAAKuU,QAGjBuhH,GAAW37H,GAAMktP,IACjBa,GAAoB/tP,GAAMktP,GAAQ9yO,EAAQ+tE,WAC1CmkK,GAAY,OAAQzmP,KAAM,CACxBgzE,IAAKA,IAEPs0K,GAAWD,IAAUA,GAAO5jN,WAG5BqyF,GAAW37H,GAAMktP,IACjBa,GAAoB/tP,GAAMktP,GAAQ9yO,EAAQ+tE,WACtC8gK,GAASsD,gBAIb0D,IAAsB,EACtBI,IAAyB,EACzBD,IAAwB,EACxBpnC,cAAcnjN,KAAKixP,SACnBr7O,aAAa5V,KAAKkwP,iBAClBjB,GAAgBjvP,KAAKgxP,SACrB/B,GAAgBjvP,KAAKmxP,cAGjBnxP,KAAKkuP,kBACPhvN,GAAIJ,SAAU,OAAQ9+B,MACtBk/B,GAAII,EAAI,YAAat/B,KAAKowP,eAE5BpwP,KAAK4zP,iBACL5zP,KAAK6zP,eACD/S,IACFnjL,GAAI7+B,SAASwB,KAAM,cAAe,IAEpCq9B,GAAI0pL,GAAQ,YAAa,IACrBr0K,IACE60K,KACF70K,EAAIo2K,YAAcp2K,EAAIH,kBACrBt+D,EAAQg5O,YAAcv6K,EAAI8E,mBAE7BosK,IAAWA,GAAQzgN,YAAcygN,GAAQzgN,WAAWlB,YAAY2hN,KAC5DqD,KAAWD,IAAYQ,IAA2C,UAA5BA,GAAYwB,cAEpD5B,IAAWA,GAAQjkN,YAAcikN,GAAQjkN,WAAWlB,YAAYmlN,IAE9DL,KACErnP,KAAKkuP,iBACPhvN,GAAImoN,GAAQ,UAAWrnP,MAEzB6uP,GAAkBxH,IAClBA,GAAO9gN,MAAM,eAAiB,GAI1BshN,KAAUuC,IACZ7I,GAAY8F,GAAQS,GAAcA,GAAYvzO,QAAQ44O,WAAantP,KAAKuU,QAAQ44O,YAAY,GAE9F5L,GAAY8F,GAAQrnP,KAAKuU,QAAQ64O,aAAa,GAG9C1E,GAAe,CACbx5B,SAAUlvN,KACV7I,KAAM,WACNyxP,KAAMtB,GACNxxH,SAAU,KACVoyH,kBAAmB,KACnBd,cAAep0K,IAEbu0K,KAAWD,IACTxxH,IAAY,IAEd4yH,GAAe,CACbnB,OAAQD,GACRnwP,KAAM,MACNyxP,KAAMtB,GACNuB,OAAQtB,GACRH,cAAep0K,IAIjB01K,GAAe,CACbx5B,SAAUlvN,KACV7I,KAAM,SACNyxP,KAAMtB,GACNF,cAAep0K,IAIjB01K,GAAe,CACbnB,OAAQD,GACRnwP,KAAM,OACNyxP,KAAMtB,GACNuB,OAAQtB,GACRH,cAAep0K,IAEjB01K,GAAe,CACbx5B,SAAUlvN,KACV7I,KAAM,OACNyxP,KAAMtB,GACNF,cAAep0K,KAGnB80K,IAAeA,GAAYgM,QAEvBh+H,KAAakyH,IACXlyH,IAAY,IAEd4yH,GAAe,CACbx5B,SAAUlvN,KACV7I,KAAM,SACNyxP,KAAMtB,GACNF,cAAep0K,IAEjB01K,GAAe,CACbx5B,SAAUlvN,KACV7I,KAAM,OACNyxP,KAAMtB,GACNF,cAAep0K,KAKnBowK,GAASrtN,SAEK,MAAZ+/F,KAAkC,IAAdA,KACtBA,GAAWkyH,GACXE,GAAoBD,IAEtBS,GAAe,CACbx5B,SAAUlvN,KACV7I,KAAM,MACNyxP,KAAMtB,GACNF,cAAep0K,IAIjBhzE,KAAK8zP,WA3HT9zP,KAAKuwP,UAgIR,EACDA,SAAU,WACR9J,GAAY,UAAWzmP,MACvBunP,GAASF,GAASC,GAAWpD,GAAUsD,GAASE,GAAUD,GAAaE,GAAc+B,GAASC,GAAW9B,GAAQ/xH,GAAWoyH,GAAoBF,GAAWC,GAAoB+B,GAAaC,GAAgBnC,GAAc2B,GAAcrG,GAASl7J,QAAUk7J,GAASjtM,MAAQitM,GAAS/gO,MAAQ+gO,GAASrtN,OAAS,KAC/S40N,GAAkBh7O,SAAQ,SAAU2vB,GAClCA,EAAGtJ,SAAU,CACf,IACA20N,GAAkBv0P,OAASwzP,GAASC,GAAS,CAC9C,EACD92K,YAAa,SAAgCC,GAC3C,OAAQA,EAAIh4E,MACV,IAAK,OACL,IAAK,UACHgF,KAAK6vP,QAAQ78K,GACb,MACF,IAAK,YACL,IAAK,WACCq0K,KACFrnP,KAAK4sP,YAAY55K,GAmJ3B,SAAoCA,GAC9BA,EAAIkqG,eACNlqG,EAAIkqG,aAAa62E,WAAa,QAEhC/gL,EAAIo2K,YAAcp2K,EAAIH,gBACxB,CAvJUmhL,CAAgBhhL,IAElB,MACF,IAAK,cACHA,EAAIH,iBAGT,EAKDohL,QAAS,WAOP,IANA,IACE30N,EADE0e,EAAQ,GAEV/gC,EAAWjd,KAAKs/B,GAAGriB,SACnBjlB,EAAI,EACJ1B,EAAI2mB,EAAS7mB,OACbme,EAAUvU,KAAKuU,QACVvc,EAAI1B,EAAG0B,IAER+3D,GADJzwB,EAAKriB,EAASjlB,GACEuc,EAAQ+tE,UAAWtiF,KAAKs/B,IAAI,IAC1C0e,EAAMz7C,KAAK+8B,EAAGrH,aAAa1jB,EAAQk5O,aAAesB,GAAYzvN,IAGlE,OAAO0e,CACR,EAKD7P,KAAM,SAAc6P,EAAOk2M,GACzB,IAAIrxM,EAAQ,CAAE,EACZ0kM,EAASvnP,KAAKs/B,GAChBt/B,KAAKi0P,UAAUtkP,SAAQ,SAAUguB,EAAI3lC,GACnC,IAAIsnC,EAAKioN,EAAOtqO,SAASjlB,GACrB+3D,GAAQzwB,EAAIt/B,KAAKuU,QAAQ+tE,UAAWilK,GAAQ,KAC9C1kM,EAAMllB,GAAM2B,EAEf,GAAEt/B,MACHk0P,GAAgBl0P,KAAK6kP,wBACrB7mM,EAAMruC,SAAQ,SAAUguB,GAClBklB,EAAMllB,KACR4pN,EAAOhlN,YAAYsgB,EAAMllB,IACzB4pN,EAAOllN,YAAYwgB,EAAMllB,IAE7B,IACAu2N,GAAgBl0P,KAAKolP,YACtB,EAID0O,KAAM,WACJ,IAAIrhH,EAAQzyI,KAAKuU,QAAQk+H,MACzBA,GAASA,EAAMjvI,KAAOivI,EAAMjvI,IAAIxD,KACjC,EAOD+vD,QAAS,SAAmBzwB,EAAI4vB,GAC9B,OAAOa,GAAQzwB,EAAI4vB,GAAYlvD,KAAKuU,QAAQ+tE,UAAWtiF,KAAKs/B,IAAI,EACjE,EAODw5C,OAAQ,SAAgB3hF,EAAMoB,GAC5B,IAAIgc,EAAUvU,KAAKuU,QACnB,QAAc,IAAVhc,EACF,OAAOgc,EAAQpd,GAEf,IAAI+vP,EAAgBZ,GAAcS,aAAa/mP,KAAM7I,EAAMoB,GAEzDgc,EAAQpd,QADmB,IAAlB+vP,EACOA,EAEA3uP,EAEL,UAATpB,GACF20P,GAAcv3O,EAGnB,EAID46C,QAAS,WACPs3L,GAAY,UAAWzmP,MACvB,IAAIs/B,EAAKt/B,KAAKs/B,GACdA,EAAGmlN,IAAW,KACdvlN,GAAII,EAAI,YAAat/B,KAAKmuP,aAC1BjvN,GAAII,EAAI,aAAct/B,KAAKmuP,aAC3BjvN,GAAII,EAAI,cAAet/B,KAAKmuP,aACxBnuP,KAAKkuP,kBACPhvN,GAAII,EAAI,WAAYt/B,MACpBk/B,GAAII,EAAI,YAAat/B,OAGvBzJ,MAAMuB,UAAU6X,QAAQ3Y,KAAKsoC,EAAGkc,iBAAiB,gBAAgB,SAAUlc,GACzEA,EAAG6qB,gBAAgB,YACrB,IACAnqD,KAAK6vP,UACL7vP,KAAK8vP,4BACLxF,GAAUvmP,OAAOumP,GAAUvvN,QAAQ/6B,KAAKs/B,IAAK,GAC7Ct/B,KAAKs/B,GAAKA,EAAK,IAChB,EACDyxN,WAAY,WACV,IAAKpJ,GAAa,CAEhB,GADAlB,GAAY,YAAazmP,MACrBojP,GAASsD,cAAe,OAC5B/oL,GAAI+pL,GAAS,UAAW,QACpB1nP,KAAKuU,QAAQ24O,mBAAqBxF,GAAQjkN,YAC5CikN,GAAQjkN,WAAWlB,YAAYmlN,IAEjCC,IAAc,CAChB,CACD,EACDgM,WAAY,SAAoB7L,GAC9B,GAAgC,UAA5BA,EAAYwB,aAIhB,GAAI3B,GAAa,CAEf,GADAlB,GAAY,YAAazmP,MACrBojP,GAASsD,cAAe,OAGxBW,GAAO5jN,YAAc8jN,IAAWvnP,KAAKuU,QAAQk9G,MAAM66H,YAE5C9E,GACTD,GAAOz+M,aAAa4+M,GAASF,IAE7BD,GAAOllN,YAAYqlN,IAJnBH,GAAOz+M,aAAa4+M,GAASL,IAM3BrnP,KAAKuU,QAAQk9G,MAAM66H,aACrBtsP,KAAKm2D,QAAQkxL,GAAQK,IAEvB/pL,GAAI+pL,GAAS,UAAW,IACxBC,IAAc,CAChB,OApBE3nP,KAAK+wP,YAqBT,GA8IEnG,IACF/rN,GAAGC,SAAU,aAAa,SAAUk0C,IAC7BowK,GAASrtN,QAAUq0N,KAAwBp3K,EAAIo2K,YAClDp2K,EAAIH,gBAER,IAIFuwK,GAASl8C,MAAQ,CACfroK,GAAIA,GACJK,IAAKA,GACLy+B,IAAKA,GACLhE,KAAMA,GACNtJ,GAAI,SAAY/wB,EAAI4vB,GAClB,QAASa,GAAQzwB,EAAI4vB,EAAU5vB,GAAI,EACpC,EACD5Y,OA72DF,SAAgBytO,EAAK74D,GACnB,GAAI64D,GAAO74D,EACT,IAAK,IAAIt+L,KAAOs+L,EACVA,EAAIpiM,eAAe8D,KACrBm3P,EAAIn3P,GAAOs+L,EAAIt+L,IAIrB,OAAOm3P,CACT,EAq2DE74O,SAAUA,GACVy0C,QAASA,GACTwxL,YAAaA,GACbl/N,MAAOA,GACPloB,MAAOA,GACPw1C,SAAUq/M,GACVoF,eAAgBnF,GAChBoF,gBAAiBpJ,GACjB17J,SAAUA,GACVk1J,QAASA,IAQXrB,GAASv/O,IAAM,SAAU20B,GACvB,OAAOA,EAAQisN,GACjB,EAMArB,GAAS/uM,MAAQ,WACf,IAAK,IAAI9f,EAAOr2B,UAAU9H,OAAQgwP,EAAU,IAAI7vP,MAAMg+B,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAClF4xN,EAAQ5xN,GAAQt2B,UAAUs2B,GAExB4xN,EAAQ,GAAGlvP,cAAgBX,QAAO6vP,EAAUA,EAAQ,IACxDA,EAAQz2O,SAAQ,SAAU42O,GACxB,IAAKA,EAAOzuP,YAAcyuP,EAAOzuP,UAAUZ,YACzC,KAAM,gEAAgE69B,OAAO,CAAE,EAACh+B,SAASC,KAAKuvP,IAE5FA,EAAOr/C,QAAOk8C,GAASl8C,MAAQk5C,GAAeA,GAAe,CAAE,EAAEgD,GAASl8C,OAAQq/C,EAAOr/C,QAC7Fo/C,GAAcjyM,MAAMkyM,EACtB,GACF,EAOAnD,GAAShmP,OAAS,SAAUkiC,EAAI/qB,GAC9B,OAAO,IAAI6uO,GAAS9jN,EAAI/qB,EAC1B,EAGA6uO,GAASryM,QAvvEK,SAyvEd,IACEujN,GACAC,GAEAC,GACAC,GACAC,GACAC,GAPEC,GAAc,GAGhBC,IAAY,EA4Gd,SAASC,KACPF,GAAYjlP,SAAQ,SAAUolP,GAC5B5xC,cAAc4xC,EAAWC,IAC3B,IACAJ,GAAc,EAChB,CACA,SAASK,KACP9xC,cAAcwxC,GAChB,CACA,IAAII,GAAaz5O,IAAS,SAAU03D,EAAKz+D,EAASgzO,EAAQ2N,GAExD,GAAK3gP,EAAQ21B,OAAb,CACA,IAMEirN,EANE/xO,GAAK4vD,EAAIq1F,QAAUr1F,EAAIq1F,QAAQ,GAAKr1F,GAAK8C,QAC3Ct0D,GAAKwxD,EAAIq1F,QAAUr1F,EAAIq1F,QAAQ,GAAKr1F,GAAK+C,QACzCq/K,EAAO7gP,EAAQ8gP,kBACfC,EAAQ/gP,EAAQghP,YAChB/R,EAActB,KACZsT,GAAqB,EAIrBjB,KAAiBhN,IACnBgN,GAAehN,EACfuN,KACAR,GAAW//O,EAAQ21B,OACnBirN,EAAiB5gP,EAAQkhP,UACR,IAAbnB,KACFA,GAAWxR,GAA2ByE,GAAQ,KAGlD,IAAImO,EAAY,EACZC,EAAgBrB,GACpB,EAAG,CACD,IAAIh1N,EAAKq2N,EACPjzN,EAAO0/M,GAAQ9iN,GACfuD,EAAMH,EAAKG,IACXE,EAASL,EAAKK,OACdD,EAAOJ,EAAKI,KACZE,EAAQN,EAAKM,MACb8E,EAAQpF,EAAKoF,MACbE,EAAStF,EAAKsF,OACd4tN,OAAa,EACbC,OAAa,EACb7zN,EAAc1C,EAAG0C,YACjBoI,EAAe9K,EAAG8K,aAClB8gN,EAAQvtL,GAAIr+B,GACZw2N,EAAax2N,EAAGwE,WAChBiyN,EAAaz2N,EAAGgC,UACdhC,IAAOkkN,GACToS,EAAa9tN,EAAQ9F,IAAoC,SAApBkpN,EAAMrpL,WAA4C,WAApBqpL,EAAMrpL,WAA8C,YAApBqpL,EAAMrpL,WACzGg0L,EAAa7tN,EAASoC,IAAqC,SAApB8gN,EAAMppL,WAA4C,WAApBopL,EAAMppL,WAA8C,YAApBopL,EAAMppL,aAE3G8zL,EAAa9tN,EAAQ9F,IAAoC,SAApBkpN,EAAMrpL,WAA4C,WAApBqpL,EAAMrpL,WACzEg0L,EAAa7tN,EAASoC,IAAqC,SAApB8gN,EAAMppL,WAA4C,WAApBopL,EAAMppL,YAE7E,IAAIk0L,EAAKJ,IAAep2P,KAAKyiB,IAAI+gB,EAAQ5f,IAAMgyO,GAAQU,EAAahuN,EAAQ9F,IAAgBxiC,KAAKyiB,IAAI6gB,EAAO1f,IAAMgyO,KAAUU,GACxHG,EAAKJ,IAAer2P,KAAKyiB,IAAI8gB,EAASvhB,IAAM4zO,GAAQW,EAAa/tN,EAASoC,IAAiB5qC,KAAKyiB,IAAI4gB,EAAMrhB,IAAM4zO,KAAUW,GAC9H,IAAKnB,GAAYc,GACf,IAAK,IAAI19P,EAAI,EAAGA,GAAK09P,EAAW19P,IACzB48P,GAAY58P,KACf48P,GAAY58P,GAAK,IAInB48P,GAAYc,GAAWM,IAAMA,GAAMpB,GAAYc,GAAWO,IAAMA,GAAMrB,GAAYc,GAAWp2N,KAAOA,IACtGs1N,GAAYc,GAAWp2N,GAAKA,EAC5Bs1N,GAAYc,GAAWM,GAAKA,EAC5BpB,GAAYc,GAAWO,GAAKA,EAC5B9yC,cAAcyxC,GAAYc,GAAWV,KAC3B,GAANgB,GAAiB,GAANC,IACbT,GAAqB,EAErBZ,GAAYc,GAAWV,IAAM9xC,YAAY,WAEnCgyC,GAA6B,IAAfl1P,KAAKk2P,OACrB9S,GAASrtN,OAAOo6N,aAAauE,IAE/B,IAAIyB,EAAgBvB,GAAY50P,KAAKk2P,OAAOD,GAAKrB,GAAY50P,KAAKk2P,OAAOD,GAAKX,EAAQ,EAClFc,EAAgBxB,GAAY50P,KAAKk2P,OAAOF,GAAKpB,GAAY50P,KAAKk2P,OAAOF,GAAKV,EAAQ,EACxD,mBAAnBH,GACoI,aAAzIA,EAAen+P,KAAKosP,GAASl7J,QAAQzkD,WAAWghN,IAAU2R,EAAeD,EAAenjL,EAAK0hL,GAAYE,GAAY50P,KAAKk2P,OAAO52N,KAIvIyvM,GAAS6lB,GAAY50P,KAAKk2P,OAAO52N,GAAI82N,EAAeD,EACrD,EAACxwM,KAAK,CACLuwM,MAAOR,IACL,MAGRA,GACF,OAASnhP,EAAQ8hP,cAAgBV,IAAkBnS,IAAgBmS,EAAgB7S,GAA2B6S,GAAe,KAC7Hd,GAAYW,CAjFS,CAkFvB,GAAG,IAEC5sK,GAAO,SAAc7sD,GACvB,IAAIqrN,EAAgBrrN,EAAKqrN,cACvBU,EAAc/rN,EAAK+rN,YACnBT,EAAStrN,EAAKsrN,OACdU,EAAiBhsN,EAAKgsN,eACtBU,EAAwB1sN,EAAK0sN,sBAC7BN,EAAqBpsN,EAAKosN,mBAC1BE,EAAuBtsN,EAAKssN,qBAC9B,GAAKjB,EAAL,CACA,IAAIkP,EAAaxO,GAAeC,EAChCI,IACA,IAAI//E,EAAQg/E,EAAcmP,gBAAkBnP,EAAcmP,eAAengQ,OAASgxP,EAAcmP,eAAe,GAAKnP,EAChHhvN,EAAS0G,SAAS2xN,iBAAiBroF,EAAMtyF,QAASsyF,EAAMryF,SAC5DsyK,IACIiO,IAAeA,EAAWh3N,GAAGhH,SAASF,KACxCqwN,EAAsB,SACtBzoP,KAAKw2P,QAAQ,CACXnP,OAAQA,EACRS,YAAaA,IAVG,CAatB,EACA,SAAS2O,KAAU,CA8BnB,SAASC,KAAU,CC5nFK,SAAAC,GACtB7yP,EAAa+0E,EAAsBmQ,GAE7B,IAAA+/C,EAAA1xI,EAAcyM,GAQb,OAPHklF,EAAcnQ,EAAe,GAC/BkwD,EAAQhlI,OAAOilF,EAAc,EAAG,EAAG+/C,EAAQlwD,IACnCkwD,EAAAhlI,OAAO80E,EAAc,KAE7BkwD,EAAQhlI,OAAOilF,EAAa,EAAG+/C,EAAQlwD,IAC/BkwD,EAAAhlI,OAAO80E,EAAe,EAAG,IAE5BkwD,CACT,okBCAA,SAAS6tH,GAAWj5O,GACS,OAAvBA,EAAKs0D,eACFt0D,EAAAs0D,cAAc1vC,YAAY5kB,EAEnC,CAEA,SAASk5O,GAAaC,EAAyBn5O,EAAmBuqB,GAC1D,IAAA6uN,EAAuB,IAAb7uN,EAAiB4uN,EAAW75O,SAAS,GAAK65O,EAAW75O,SAASirB,EAAW,GAAG4rL,YACjFgjC,EAAAhuN,aAAanrB,EAAMo5O,EAChC,CAEwB,SAAA7tK,GACtB/pF,EACA83B,EACA7Z,GAIA,IAAAwzD,EAA+Cv9B,SAAOl0C,GAA9CwzO,EAAoB/hK,EAApB+hK,mBAAoBxvJ,EAAAvS,EAAAuS,SAAUr/E,EAAK8sE,EAAL9sE,KAChCq6N,EAAkBrqM,EAAAA,IAAI30B,EAAMisB,YAClCwmM,EAA2FlG,KAAnF8E,EAAuBoB,EAAvBpB,sBAAuB7E,EAAAiG,EAAAjG,eAAgB4C,EAAqBqD,EAArBrD,oBAAqBI,EAAAiD,EAAAjD,mBAC9DhG,EAAU70L,EAAAA,IAAuB30B,EAAMwpN,SAAW,IAClDi2B,EAAkB9qN,MAAI,MAEtBkjO,EAAUhgP,EAAAA,UAAS,WAAA,OAAM2xM,EAAQpwN,MAAMohE,MAAK,SAAC38C,GAAS,MAAgB,SAAhBA,EAAK22M,aAE3DsjC,EAAiBjgP,EAAAA,UACrB,WAAA,OAAM27N,EAAmBp6O,OAAS,CAAC,MAAO,mBAAmBse,SAASssE,EAAS5qF,MAAK,IAGhF2+P,EAAwBlgP,EAAAA,UAC5B,WAAA,MAAM,CAAC,cAAe,mBAAmBH,SAASssE,EAAS5qF,UAAYy+P,EAAQz+P,KAAA,IAG3E4+P,EAAiBngP,EAAAA,UAAS,WAAA,MAAM,CAAC,MAAO,mBAAmBH,SAASssE,EAAS5qF,UAO1E,SAAA6+P,EAAiBj9P,EAAeixB,GAA4B,IAAAisO,EAAAC,EAC7Dr+O,EAAqBo+O,QAArBA,EAAUjsO,EAAWnS,eAAAo+O,IAAAA,EAAAA,EAAWjsO,EAAW8tG,eAC3CI,EAAsBg+H,QAAtBA,EAAWlsO,EAAWkuG,gBAAAg+H,IAAAA,EAAAA,EAAYlsO,EAAWmuG,gBAEnD,OAAKp6H,EAAMypN,iBAAmBx9L,GAActnB,EAAKvL,MAAMnC,OAASkjI,EACvDA,GAAYrgH,EAAU,GAAK9e,EAE7BA,CACT,CAbIgF,EAAMwzO,oBACJr5M,GAAM,QAAS,+EAef,IAiEAi+N,EAA+B,SAAC/2N,EAAwBg3N,GAC5D,IAAMjjP,EAA2Bk8B,GAAA,CAC/BloB,UAAW,IACXklO,WAAY,cACZ1/N,UAAW,WACXo/N,WAAY38B,EAAsBr6K,MAClCi3M,YAAa58B,EAAsBI,OACnCy8B,UAAW78B,EAAsBpxG,SACjClhF,WAAAnJ,OAAY42L,EAAeM,aAG3BwrC,MAAO,SAACzkL,GAAuB,IAAA0kL,EACzB,GAAA1kL,EAAI8iD,WAAa9iD,EAAIg1K,SAArB,CACAwP,IAEFZ,GAAW5jL,EAAIh2D,MACf65O,GAAa7jL,EAAIr8E,KAAMq8E,EAAIh2D,KAAMg2D,EAAIg1K,WAEvC,IAAQA,EAA8Ch1K,EAA9Cg1K,SAAUlyH,EAAoC9iD,EAApC8iD,SAAkBq4C,EAAkBn7F,EAA1B56C,OACxBygD,EAAe2+K,EAAUxP,EAAWlyH,EACpC9sC,EAAcwuK,EAAU1hI,EAAWkyH,EACjC2P,EAAaxpF,EAAclxJ,SAAS47D,GACpC++K,EAAazpF,EAAclxJ,SAAS+rE,GACpC/vE,EAAU09N,GAAmBhuB,EAAQpwN,MAAOo/P,EAAWrwN,QAAQ+uL,QAC/Dj+L,EAASu+M,GAAmBhuB,EAAQpwN,MAAOq/P,EAAWtwN,QAAQ+uL,QAC/Dp9M,GAAYA,EAAQ06M,QACvBr6L,GAAU,gCAASvE,OAAwB29G,KAAKC,UAAU15H,KAEvDmf,GAAWA,EAAOu7L,QACrBr6L,GAAU,gCAASvE,OAAwB29G,KAAKC,UAAUv6G,KAG5DygD,EAAeg+J,GAAoB13O,EAAMwpN,QAAS1vM,EAAQ06M,QAC1D3qI,EAAc6tJ,GAAoB13O,EAAMwpN,QAASvwL,EAAOu7L,QACxD,IAAMv2M,EAAwC,CAC5CtZ,KAAM6kN,EAAQpwN,MACdsgF,aAAAA,EACA5/D,QAAAA,EACA+vE,YAAAA,EACA5wD,OAAAA,EACA2wG,QAAS4tH,KAAyBx3P,EAAMwpN,SAAU9vI,EAAcmQ,GAChE3yF,EAAG28E,EACH7kC,KAAM,OAGR/wB,EAAO4+N,YAAc5+N,EAAO2rH,gBAC5B2uH,EAAAv4P,EAAMmkF,kBAANo0K,OAAAA,EAAA1gQ,KAAAmI,EAAmBie,EAlCgB,CAmCrC,GACGje,EAAMqyO,iBAENhxM,GACD,IAAA4iN,GAAS5iN,EAAWjsB,IAIpBsjP,EAAuB,SAAC55B,GACxB,GAACk5B,EAAe5+P,OAAU0lO,EAA1B,CACE,IAAAtE,EAASsE,EAAaziL,iBAAiB,cACzC,GAAAm+K,EAAOvjO,QAAU,EAAG,CAChB,IAACoqC,EAADxkB,GAAc29M,EAAA,GAAJ,GAChB49B,EAA6B/2N,GAA0B,EACzD,MAEUm5L,SAAAA,EAAAhqN,SAAQ,SAAC6wB,GACf+2N,EAA6B/2N,GAA0B,EACzD,GAT0C,GA8CvC,OAvBP1E,EAAAA,MAAM,CAAC8iN,EAAiBj2B,EAASxlI,EAAU/lE,IAAS,SAAA2e,GAAsC,IAAAC,EAAAhgB,GAAA+f,EAAA,GAApC3c,EAAKupM,EAAAA,GAAAA,EAAAA,GAAmBvrM,EAAAA,GAIrE,SAASgC,EAAUhC,GAC1B,IAAM06O,EAAkB14O,EACxB,IAAKA,IAAQ04O,EAAgBt+L,MAAQp8C,EAAOsvN,YAAa,OAEnD,IAAAqrB,EAASziP,YAAW,YAxJC,SAACkjB,GAAkC,IAAAw/N,EAK1D,GAA8B,KAA9Bx/N,iBAAAw/N,EAAAx/N,EAASvb,gBAAT+6O,WAAAA,EAAAA,EAAmB5hQ,UAAkB8gQ,EAAsB3+P,OAAU0+P,EAAe1+P,OAApF,CACE,IAAA0/P,EAAgBz/N,aAAAA,EAAAA,EAAS4H,cAAc,SAC7C,IAAK63N,EAEI,OADPj/N,QAAQnD,MAAM,yBACP,KAET,IAAMqiO,EAA+BznN,GAAA,CACnCloB,UAAW,IACX4kO,WAAY38B,EAAsBr6K,MAClCi3M,YAAa58B,EAAsBI,OACnCy8B,UAAW78B,EAAsBpxG,SAEjC9gG,OAAQyW,IAAAA,OAAIw5L,EAAoBC,KAAAz5L,MAAAA,OAAS45L,EAAmBjrK,KAC5DgrM,OAAQ,SAAC17K,GAAmB,OAAC3zC,GAAS2zC,EAAIoZ,QAASmiI,EAAoBC,KAAI,EAC3EipC,MAAAA,SAAMzkL,GAAoB,IAAA8V,EACpB,GAAA9V,EAAI8iD,WAAa9iD,EAAIg1K,SAArB,CAEJ4O,GAAW5jL,EAAIh2D,MACf65O,GAAa7jL,EAAIr8E,KAAMq8E,EAAIh2D,KAAMg2D,EAAIg1K,UACrC,IAAgBnvK,EAAwC7F,EAAlDg1K,SAAkCh/J,EAAgBhW,EAA1B8iD,UAE3B/5H,EAAWoD,EAAM2pN,eAAiB3pN,EAAM2pN,aAAa/qM,EAAAA,IACtDkZ,EAAQ9Y,MAAM2qM,cACd7xL,EAAQ9Y,MAAM,qBAEE06D,GAAA,EACDmQ,GAAA,GAEbm1I,EAAgB5lO,QACHsgF,EAAAu+K,EAAiBv+K,EAAcslJ,EAAgB5lO,OAChDywF,EAAAouK,EAAiBpuK,EAAam1I,EAAgB5lO,QAE9D,IAAM6kB,EAAwC,CAC5CtZ,KAAMA,EAAKvL,MACXsgF,aAAAA,EACA5/D,QAASnV,EAAKvL,MAAMsgF,GACpBmQ,YAAAA,EACA5wD,OAAQt0B,EAAKvL,MAAMywF,GACnB+/C,QAAS4tH,KAAyBx3P,EAAM2E,MAAO+0E,EAAcmQ,GAC7D3yF,EAAG28E,EACH7kC,KAAM,OAGR/wB,EAAO4+N,YAAc5+N,EAAO2rH,gBAC5BjgD,EAAA3pF,EAAMmkF,kBAANwF,OAAAA,EAAA9xF,KAAAmI,EAAmBie,EA7BgB,CA8BrC,GACGje,EAAMqyO,iBAGNymB,IACDhB,EAAe1+P,MACjB,IAAI6qP,GAAS6U,EAAAxnN,GAAoBynN,CAAAA,EAAAA,IAEjC,IAAI9U,GAAS6U,EAAexnN,GAAAA,MACvBynN,GAAA,GAAA,CACHh6N,OAAAnJ,IAAAA,OAAYy7L,EAAsBtyL,WAvD0D,EAoJ9Fi6N,CAAqBL,EAAgBt+L,KACrCq+L,EAAqBC,EAAgBt+L,KAE/B,IAAAjsB,EAAQj4B,YAAW,WACnBwiP,EAAgBM,MAAMr5B,gBACH84B,EAAAC,EAAgBM,MAAMr5B,gBAE7CnpN,aAAa23B,EACf,IAEA33B,aAAamiP,KACZ,GACL,CApBEvjM,CAASp1C,EADyE4c,EAAA,GAEpF,IAqBO,CACLmiM,gBAAAA,EACA84B,eAAAA,EACAC,sBAAAA,EACAC,eAAAA,EACAkB,2BAtCF,SAAoCxb,GAClC+B,EAAgBrmP,MAAQskP,CAC1B,EAqCEyb,mBAnCF,SAA4Bl5O,GAE1BupM,EAAQpwN,MAAQ6mB,CAClB,EAkCF,CC5OA,SAASm5O,GAASriQ,GAChB,OAAO+lB,GAAe/lB,IAAMsB,EAAgBtB,IAAMuB,EAA2BvB,IAAMsmB,IACrF,okBH0lFAi6O,GAAO3+P,UAAY,CACjB8zC,WAAY,KACZ4sN,UAAW,SAAmBx8N,GAC5B,IAAIisN,EAAoBjsN,EAAMisN,kBAC9BjoP,KAAK4rC,WAAaq8M,CACnB,EACDuO,QAAS,SAAiBjjM,GACxB,IAAI8zL,EAAS9zL,EAAM8zL,OACjBS,EAAcv0L,EAAMu0L,YACtB9nP,KAAKkvN,SAAS21B,wBACViD,GACFA,EAAYjD,wBAEd,IAAI/wB,EAAcvkI,GAASvvF,KAAKkvN,SAAS5vL,GAAIt/B,KAAK4rC,WAAY5rC,KAAKuU,SAC/Du/M,EACF9zN,KAAKkvN,SAAS5vL,GAAGwJ,aAAau+M,EAAQvzB,GAEtC9zN,KAAKkvN,SAAS5vL,GAAG+C,YAAYglN,GAE/BrnP,KAAKkvN,SAASk2B,aACV0C,GACFA,EAAY1C,YAEf,EACDx8J,KAAMA,IAERivD,GAAS4+G,GAAQ,CACfjQ,WAAY,kBAGdkQ,GAAO5+P,UAAY,CACjB0+P,QAAS,SAAiBr1L,GACxB,IAAIkmL,EAASlmL,EAAMkmL,OAEfoR,EADYt3L,EAAM2mL,aACc9nP,KAAKkvN,SACzCupC,EAAe5T,wBACfwC,EAAO5jN,YAAc4jN,EAAO5jN,WAAWlB,YAAY8kN,GACnDoR,EAAerT,YAChB,EACDx8J,KAAMA,IAERivD,GAAS6+G,GAAQ,CACflQ,WAAY,kBAmqBdpD,GAAS/uM,MAAM,IA16Bf,WACE,SAASqkN,IAUP,IAAK,IAAI9gO,KATT53B,KAAK2zJ,SAAW,CACdzpH,QAAQ,EACRyuN,yBAAyB,EACzBtD,kBAAmB,GACnBE,YAAa,GACbc,cAAc,GAIDr2P,KACQ,MAAjB43B,EAAGh9B,OAAO,IAAkC,mBAAboF,KAAK43B,KACtC53B,KAAK43B,GAAM53B,KAAK43B,GAAI+tB,KAAK3lD,MAG/B,CAkFA,OAjFA04P,EAAW5gQ,UAAY,CACrB8vP,YAAa,SAAqB7rN,GAChC,IAAIqrN,EAAgBrrN,EAAKqrN,cACrBpnP,KAAKkvN,SAASg/B,gBAChBrvN,GAAGC,SAAU,WAAY9+B,KAAK44P,mBAE1B54P,KAAKuU,QAAQ05O,eACfpvN,GAAGC,SAAU,cAAe9+B,KAAK64P,2BACxBzR,EAAc/+E,QACvBxpI,GAAGC,SAAU,YAAa9+B,KAAK64P,2BAE/Bh6N,GAAGC,SAAU,YAAa9+B,KAAK64P,0BAGpC,EACDC,kBAAmB,SAA2B98N,GAC5C,IAAIorN,EAAgBprN,EAAMorN,cAErBpnP,KAAKuU,QAAQwkP,gBAAmB3R,EAAcG,QACjDvnP,KAAK44P,kBAAkBxR,EAE1B,EACDx+J,KAAM,WACA5oF,KAAKkvN,SAASg/B,gBAChBhvN,GAAIJ,SAAU,WAAY9+B,KAAK44P,oBAE/B15N,GAAIJ,SAAU,cAAe9+B,KAAK64P,2BAClC35N,GAAIJ,SAAU,YAAa9+B,KAAK64P,2BAChC35N,GAAIJ,SAAU,YAAa9+B,KAAK64P,4BAElC5D,KACAH,KA17DJl/O,aAAayrO,IACbA,QAAmB,CA27DhB,EACD2X,QAAS,WACPtE,GAAaH,GAAeD,GAAWO,GAAYF,GAA6BH,GAAkBC,GAAkB,KACpHG,GAAYx+P,OAAS,CACtB,EACDyiQ,0BAA2B,SAAmC7lL,GAC5DhzE,KAAK44P,kBAAkB5lL,GAAK,EAC7B,EACD4lL,kBAAmB,SAA2B5lL,EAAKgoH,GACjD,IAAIx2J,EAAQxkC,KACRojB,GAAK4vD,EAAIq1F,QAAUr1F,EAAIq1F,QAAQ,GAAKr1F,GAAK8C,QAC3Ct0D,GAAKwxD,EAAIq1F,QAAUr1F,EAAIq1F,QAAQ,GAAKr1F,GAAK+C,QACzC2tK,EAAO5kN,SAAS2xN,iBAAiBrtO,EAAG5B,GAOtC,GANAkzO,GAAa1hL,EAMTgoH,GAAYh7L,KAAKuU,QAAQokP,yBAA2B/X,IAAQD,IAAcG,GAAQ,CACpFiU,GAAW/hL,EAAKhzE,KAAKuU,QAASmvO,EAAM1oD,GAGpC,IAAIi+D,EAAiBnW,GAA2BY,GAAM,IAClDmR,IAAeF,IAA8BvxO,IAAMoxO,IAAmBhzO,IAAMizO,KAC9EE,IAA8BM,KAE9BN,GAA6BzxC,aAAY,WACvC,IAAIg2C,EAAUpW,GAA2BhkN,SAAS2xN,iBAAiBrtO,EAAG5B,IAAI,GACtE03O,IAAYD,IACdA,EAAiBC,EACjBpE,MAEFC,GAAW/hL,EAAKxuC,EAAMjwB,QAAS2kP,EAASl+D,EACzC,GAAE,IACHw5D,GAAkBpxO,EAClBqxO,GAAkBjzO,EAEtB,KAAO,CAEL,IAAKxhB,KAAKuU,QAAQ8hP,cAAgBvT,GAA2BY,GAAM,KAAUxB,KAE3E,YADA4S,KAGFC,GAAW/hL,EAAKhzE,KAAKuU,QAASuuO,GAA2BY,GAAM,IAAQ,EACzE,CACF,GAEK7rG,GAAS6gH,EAAY,CAC1BlS,WAAY,SACZH,qBAAqB,GAEzB,GAq0BAjD,GAAS/uM,MAAMqiN,GAAQD,II9vGvB,IAAA0C,GAAe3pN,kBAAgB,CAC7Br4C,KAAM,oBACNgI,MAAO,CACLukD,IAAKrrD,OACLuxN,OAAQ1xN,OACRi1C,SAAUh1C,OACVoqJ,IAAKlqJ,OACLq5N,SAAUv5N,OACVihQ,QAAS,CAACpgQ,SAAUd,QACpByzN,eAAgBtzN,OAChBqwN,iBAAkB,CAAC1vN,SAAUd,QAC7Bm/L,SAAU,CACRr8L,KAAM2lB,QACNoG,aAAS,GAEXse,SAAU,CACRrqC,KAAM2lB,SAER04O,OAAQ,CACNr+P,KAAMzE,MACNwwB,aAAS,GAEXuP,SAAUt9B,SACVq6F,WAAYr6F,SACZsgQ,aAActgQ,SACdugQ,iBAAkBvgQ,UAGpBkjD,MAAO,CAAC,sBAERzM,eAAMtwC,EAA0B83B,GAAuB,IAAAuiO,EACrD5oL,EAAqBv9B,SAAOl0C,GAApBukD,EAAAktB,EAAAltB,IAAK6+F,EAAI3xE,EAAJ2xE,IAEgBzuH,EAAAA,IAAI,MACjC,IAAM2lO,EAAiBziP,EAAAA,UAAS,WAAA,IAAA0iP,EAAA,eAAAA,EAAMn3G,EAAIhqJ,MAAMohQ,yBAAVD,EAAgBE,gBAChDC,EAAS/lO,EAAAA,IAAI2lO,EAAelhQ,QAAmB,QAAnBihQ,EAASr6P,EAAMojJ,IAAIo3G,YAAA,IAAAH,OAAA,EAAVA,EAAgBM,mBAAmB,GACxEC,EAAYjmO,EAAAA,MACZmoI,EAAYnoI,EAAAA,MACZxL,EAAcwM,KAEZklO,EAAc/gO,GAAc,CAAE+gO,UAAWC,KAAzCD,UAEFE,EAA6F,SAACx5N,GAClG,GAAmB,WAAf9oC,EAAO8oC,KAAqB,aAAcA,GAAOA,EAAIy5N,oBAAqB,CACtE,IAAA92B,EAAW3iM,EAAIy5N,mBAAqBt2P,GAAI6/C,EAAInrD,MAAO4G,EAAMyqN,QAAUlpL,EAAI2iM,gBACtE3iM,EAAI2iM,gBACJ3iM,EAAIy5N,mBACXljO,EAAQR,KAAK,qBAAsB4sM,EAAU3/K,EAAInrD,MAAOmoC,EAC1D,MACEq5N,EAAUxhQ,MAAQmoC,GAItB5E,EAAAA,MAAM,CAAC29N,IAAiB,SAACr6O,GACnBA,IACFy6O,EAAOthQ,OAAQ,EAEnB,IAEM,IAAA6hQ,EAAkBpjP,EAAAA,UAAS,WAAM,IAAAqjP,EAAAC,EACrC,OAAuBD,QAAhBA,EAAA93G,EAAIhqJ,MAAMohQ,YAAMW,IAAAD,GAAA,QAAAC,EAAhBD,EAAgBx7N,UAAA,IAAAy7N,OAAA,EAAhBA,EAAAtjQ,KAAAqjQ,EAAA5pN,GAAAA,GAA0B40L,CAAAA,EAAAA,EAAW9sO,OAAO,CAAA,EAAA,CAAAgiQ,UAAWC,EAAWjiQ,MAAO2hQ,sBAAAA,OAA4B,CAAA,CAC9G,IAEM70B,EAAaruN,EAAAA,UAAS,WAAA,MAAO,CACjCm2B,SAAUhuC,EAAMguC,SAChBukL,SAAUvyN,EAAMuyN,SAChBnvE,IAAKpjJ,EAAMojJ,IACX7+F,IAAKvkD,EAAMukD,IACX,IAEI82M,EAAaxjP,EAAAA,UAAS,WACpB,IAAE28M,EAAWpxE,EAAIhqJ,MAAfo7N,OAE8C33L,EAAAu8N,GAAtB5kC,EAAO7rN,MAAM,MAAQ,IAA9Cg4J,OAAa26F,EAAQz+N,EAAA/kC,MAAA,GACtByjQ,EAASjqN,MAAKiT,EAAInrD,OAOjB,OANHkiQ,EAASrkQ,QACXskQ,EAAO56F,GAAY/vJ,GAAU2zC,EAAInrD,MAAMunK,IACvCt8J,GAAIk3P,EAAO56F,GAAW26F,EAAShzP,KAAK,KAAMsyP,EAAUxhQ,QAEhDiL,GAAAk3P,EAAQ/mC,EAAQomC,EAAUxhQ,OAEzBmiQ,CACT,IAEMlpC,EAAWx6M,EAAAA,UAAS,WAWjB,OAVMmtN,GACX,CACEzgL,IAAK82M,EAAWjiQ,MAChBgqJ,UAAUA,CAAAA,EAAAA,EAAIhqJ,OAAO,GAAA,CAAAqnM,KAAMzgM,EAAMi6P,UACjCjsN,SAAUhuC,EAAMguC,SAChBukL,SAAUvyN,EAAMuyN,UAElBz6L,EAAQ9Y,MACR,CAAEuqM,iBAAkBvpN,EAAMupN,kBAG9B,IAEMiyC,EAAY3jP,EAAAA,UAAS,WACnB,IAAE2iP,EAASp3G,EAAIhqJ,MAAbohQ,KACR,OAAO59P,EAAW49P,EAAKx6P,OACnBw6P,EAAKx6P,MAAMsxC,GAAAA,GACN40L,CAAAA,EAAAA,EAAW9sO,OAAA,CAAA,EAAA,CACdgiQ,UAAWC,EAAWjiQ,MACtB2hQ,sBAAAA,KACDzpN,MACIkpN,EAAKx6P,MAChB,IAEMy7P,EAAiB5jP,EAAAA,UAAS,WAAM,IAAA6jP,EAC5BlB,EAASp3G,EAAIhqJ,MAAbohQ,KACR,IAAKA,EAAM,MAAO,GAClB,IAAMmB,EAAWrqN,MAAKkqN,EAAUpiQ,OAOzB,cALAuiQ,EAASxkO,gBACTwkO,EAASviQ,MACXsiQ,QAAAA,EAAAlB,EAAAoB,wBAAAF,IAAAA,GAAAA,EAAkBlrP,SAAQ,SAACqN,UACvB89O,EAAS99O,EAClB,IACO89O,CACT,IAEME,EAAsBhkP,EAAAA,UAAS,WAAM,IAAAikP,EACjCtB,EAASp3G,EAAIhqJ,MAAbohQ,KACR,QAAKA,GACEh5O,QAA+B,QAAvBs6O,EAAAtB,EAAKoB,wBAAkB,IAAAE,OAAA,EAAvBA,EAAuBpkP,SAAS,YACjD,IAEMqkP,EAAe,SAAC7sM,GACb,OAAA,IAAI/hD,SAAQ,SAACc,GAClB,IAWgDo3F,EAX1CpnF,EAAuD,CAC3DzjB,OAAQ,CAAA82C,GAAAA,GAED40L,CAAAA,EAAAA,EAAW9sO,OAAA,GAAA,CACd0jK,UAAW,GACX1jK,MAAOwhQ,EAAUxhQ,SAGrB81D,QAAAA,GAEIusG,EAAQ7+J,EAAWwmJ,EAAIhqJ,MAAMohQ,KAAK/+F,OAASrY,EAAIhqJ,MAAMohQ,KAAK/+F,MAAMyqE,EAAW9sO,OAASgqJ,EAAIhqJ,MAAMohQ,KAAK/+F,MACrG,IAACrY,EAAIhqJ,MAAMohQ,OAAS/+F,IAAUA,EAAMxkK,OAGtC,eAFAouG,EAAArlG,EAAMk0F,kBAANmR,OAAAA,EAAAxtG,KAAAmI,EAAmBie,QACnBhQ,GAAQ,GAGV6sJ,GAAS8/F,EAAUxhQ,MAAOqiK,GAAOp+H,MAAK,SAAC7iC,GAAW,IAAAwhQ,EAC1CnqO,EAAOr3B,aAAAA,EAAAA,EAAQ2kB,QAAO,SAACxnB,GAAM,OAACA,EAAE6C,UAC/ByjB,EAAAzjB,OAAO,GAAGsiK,UAAYjrI,UAC7BmqO,EAAAh8P,EAAMk0F,kBAAN8nK,OAAAA,EAAAnkQ,KAAAmI,EAAmBie,GACd4T,GAASA,EAAK56B,QAIjB6lK,EAAU1jK,MAAQy4B,EAClB5jB,EAAQ4jB,KAJRirI,EAAU1jK,MAAQ,GAClB6U,GAAQ,GAKZ,GACF,KAUIguP,EAAqB,SAACC,EAA6BrrF,GAAoC,IAAAz7I,IAAAA,EAAAr2B,UAAA9H,OAAdyJ,MAActJ,MAAAg+B,EAAAA,EAAAA,OAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAd30B,EAAc20B,EAAAt2B,GAAAA,UAAAs2B,GAC3F0mO,EAAa,QAAQ1+N,MAAK,SAAC7iC,GAAW,IAAA2hQ,EAAAC,EACpC,IAAe,IAAX5hQ,EAAJ,CACA,IAVYxD,EAAQ4sB,EAUd0yB,EAAW5xC,GAAI6/C,EAAInrD,MAAOgqJ,EAAIhqJ,MAAMo7N,QAV9Bx9N,EAYA4jQ,EAAUxhQ,MAZFwqB,EAYS0yB,GAX3B16C,EAAS5E,IAAM4E,EAASgoB,GACnB2vH,KAAKC,UAAUx8I,KAAOu8I,KAAKC,UAAU5vH,GAEvC5sB,IAAM4sB,KASTg3O,EAAUxhQ,MAAQk9C,EAClB4lN,SAAAA,EAAAl9P,WAAA,EAAuB0B,IAEU,QAAnBy7P,GAAAC,EAAAnB,EAAA7hQ,OAAMy3K,UAANsrF,IAAmBA,GAAnBA,EAAAtkQ,KAAAukQ,EAAmB17P,EAAK,IAElC,IAAA0tC,EAAQj4B,YAAW,WAAM,IAAAkmP,EACxB/B,EAAelhQ,QAClBshQ,EAAOthQ,OAAQ,GAEjB0jK,EAAU1jK,MAAQ,GACOijQ,QAAzBA,EAAAr8P,EAAMo6P,4BAAmBiC,GAAzBA,EAAAxkQ,KAAAmI,EAAAsxC,GAAAA,GACK40L,CAAAA,EAAAA,EAAW9sO,OAAA,GAAA,CACdA,MAAOwhQ,EAAUxhQ,MACjBgiQ,UAAA9pN,GAAAA,MAAgBtxC,EAAMukD,KAAAtrD,CAAAA,EAAAA,KAAM+G,EAAMojJ,IAAIoxE,OAASomC,EAAUxhQ,QACzD2iQ,aAAAA,EACArB,QAAQ,KAEVjkP,aAAa23B,KACZ,EAtBkB,CAuBvB,KAGIsqC,EAAY7gE,EAAAA,UAAsC,WAAM,IAAAykP,EACpD9B,EAASp3G,EAAIhqJ,MAAbohQ,KACF+B,OAAoC,IAAnBv8P,EAAMk4L,SACzB,GAACwiE,EAAOthQ,OAAUmjQ,EAAlB,CACA,GAAC/B,SAAwB8B,UAAxB9B,EAAMoB,4BAAkBU,IAAxBA,EAAwBrlQ,OAAQ,MAAO,GAE5C,IAAMulQ,EAAuC,CAAA,EACvCN,EAAoB1B,aAAAA,EAAAA,EAAMiC,SAiBzB,OAhBFjC,EAAAoB,iBAAiBprP,SAAQ,SAACksP,GACX,aAAdA,IACOF,EAAAE,GAAa,WAAkB,IAAA,IAAAllO,EAAAz4B,UAAA9H,OAAdyJ,EAActJ,IAAAA,MAAAogC,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAd/2B,EAAc+2B,GAAA14B,UAAA04B,GACxCwkO,EAAAj9P,WACEk9P,EAAAA,CAAAA,EACAQ,EAAAprN,GAAAA,GAEK40L,CAAAA,EAAAA,EAAW9sO,OAAA,CAAA,EAAA,CACd81D,QAASwtM,EACTC,WAAYtB,EAAWjiQ,SAAAw8B,OAEtBl1B,KAGT,IAEO87P,CArB+B,CAsBxC,IAGMI,EAAe,SAAC38O,GAA2B,IAAA48O,EAAAC,EAAAp2G,EAAAq2G,EAAAC,EAAAC,EAAAC,EAC/CtC,EAAUxhQ,MAAQ6mB,EAKlB,IAJA,IAAMhC,EAASqzB,GAAAA,GACV40L,CAAAA,EAAAA,EAAW9sO,OAAA,GAAA,CACdA,MAAO6mB,EACPm7O,UAAA9pN,GAAAA,GAAA,CAAA,EAAgBtxC,EAAMukD,aAAMvkD,EAAMojJ,IAAIoxE,OAASv0M,MACjDuqB,EAAAzrC,UAAA9H,OANiCyJ,MAActJ,MAAAozC,EAAAA,EAAAA,OAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAd/pC,EAAc+pC,EAAA1rC,GAAAA,UAAA0rC,GAY3C,GALa,QAAjBoyN,EAAArB,EAAUpiQ,aAAO,IAAAyjQ,GAAAC,QAAAA,EAAjBD,EAAiB1lO,gBAAjB2lO,IAAiBA,GAAjBA,EAAAjlQ,KAAAmH,MAAA89P,EAAA,CAAAD,EAA4B58O,GAAK2V,OAAGl1B,YACpCgmJ,EAAA1mJ,EAAMm3B,gBAANuvH,OAAAA,EAAA7uJ,KAAAmI,EAAiBie,WACjB8+O,EAAA/8P,EAAMm6P,oBAAN4C,OAAAA,EAAAllQ,KAAAmI,EAAqBie,GACL++O,QAAAA,EAAA/B,EAAA7hQ,aAAA6jQ,IAAAD,WAAAC,EAAAD,EAAO7lO,uBAAP8lO,EAAAplQ,KAAAmlQ,EAAkB/+O,QACQ,IAAnBje,EAAMk4L,UACP2jE,EAAoBziQ,MAAO,CAAA,IAAA+jQ,EACzCjB,EAAoCiB,QAApCA,EAAoB/5G,EAAIhqJ,MAAMohQ,YAAV2C,IAAgBA,OAAhBA,EAAAA,EAAgBV,SAC1CR,EAAAj9P,WACEk9P,EAAAA,CAAAA,EACA,SAAA5qN,GAAAA,GAEK40L,CAAAA,EAAAA,EAAW9sO,OAAA,CAAA,EAAA,CACd81D,QAAS,WACTytM,WAAYtB,EAAWjiQ,SAAAw8B,OAEtBl1B,GAEP,CACwC,YAApBw8P,QAAhBA,EAAA95G,EAAIhqJ,MAAMohQ,gBAAM0C,SAAhBA,EAAgBE,kBAClBrB,EAAa,SAIXsB,EAAuB,SAACnmQ,GAAkB,IAAAomQ,EAC9C,GAAKl6G,EAAIhqJ,MAAMohQ,MAASp3G,EAAIhqJ,MAAMohQ,KAAK7lN,YAClC+lN,EAAOthQ,UAEG,QAAFkkQ,EAAApmQ,EAAEsrO,oBAAA,IAAA86B,OAAA,EAAFA,EAAAzlQ,KAAAX,KAAsBA,EAAEoP,MAAQ,IAC3Bk0D,MAAK,SAACh8C,GAAAA,IAAAA,EAAAA,OAA2B,QAA3BA,EAAsBA,EAAK8hB,iBAAL9hB,IAAK++O,OAAL/+O,EAAAA,EAAgB2a,YAASvD,OAAGzM,EAAY/vB,8BAClF,CACE,IAAA8iQ,EAAoB94G,EAAIhqJ,MAAMohQ,KAAKiC,SACzCR,EAAmBC,EAAmB,GAAI5qN,GAAAA,GAAA,CAAA,EACrC40L,EAAW9sO,OAAA,GAAA,CACd81D,QAAS,WACTytM,WAAYtB,EAAWjiQ,QALf,GASNokQ,EAAY,WAAM,IAAAC,EACGA,QAAzBA,EAAAz9P,EAAMo6P,4BAAmBqD,GAAzBA,EAAA5lQ,KAAAmI,EAAAsxC,GAAAA,GACK40L,CAAAA,EAAAA,EAAW9sO,OAAA,GAAA,CACdA,MAAOwhQ,EAAUxhQ,MACjBgiQ,UAAWp7P,EAAMukD,IACjBm2M,QAAQ,EACRqB,aAAAA,MAIEr6G,EAAc,SAACxqJ,GACnBwjQ,EAAOthQ,OAAQ,EACLokQ,IACVtmQ,EAAEyhF,mBAGJ7zC,EAAAA,WAAU,WAAM,IAAA44N,EACA,QAAVA,EAAA19P,EAAMojJ,IAAIo3G,YAAA,IAAAkD,GAAVA,EAAgB/C,iBACR6C,GAEd,IAEM,IAAAG,EAAY9lP,EAAAA,UAAS,WAAA,OAAMnT,GAAI6/C,EAAInrD,MAAOgqJ,EAAIhqJ,MAAMo7N,WAgD1D,OA9CA73L,QACEghO,GACA,SAACA,GACC/C,EAAUxhQ,MAAQukQ,CACpB,GACA,CAAErgO,WAAW,IAGfX,QACE+9N,GACA,SAACA,GACO,IAAA6B,OAAoC,IAAnBv8P,EAAMk4L,SACxB90C,EAAIhqJ,MAAMohQ,MAASp3G,EAAIhqJ,MAAMohQ,KAAK7lN,WAAc4nN,IACjD7B,EACCh7N,GAAAC,SAAU,QAAS09N,GAElBt9N,GAAAJ,SAAU,QAAS09N,GAE3B,GACA,CAAE//N,WAAW,IAGfX,EAAAA,OACE,WAAA,MAAM,CAAC38B,EAAMk4L,SAAUl4L,EAAMukD,IAAKvkD,EAAMojJ,IAAKpjJ,EAAMguC,SAAUhuC,EAAMuyN,SACnE,IAAA,SAAAn+J,GAA2B,IAAzB8jI,EAAyBr7K,GAAAu3C,EAAA,GAAjB,GAER,IAAiB,IAAb8jI,EACF0iE,EAAUxhQ,MAAQukQ,EAAUvkQ,WAC9B,IAAwB,IAAb8+L,EAAmB,CAAA,IAAA0lE,EACPA,QAArBA,EAAA59P,EAAMm6P,wBAAeyD,GAArBA,EAAA/lQ,KAAAmI,EAAAsxC,GAAAA,GACK40L,CAAAA,EAAAA,EAAW9sO,OAAA,GAAA,CACdA,MAAOukQ,EAAUvkQ,MACjBgiQ,UAAW72M,EAAInrD,QAEnB,CACF,GACA,CAAEkkC,WAAW,IAGfX,EAAAA,OACE,WAAA,OAAM38B,EAAMk6P,MACZ,IAAA,SAACA,GACCp9F,EAAU1jK,MAAQ8gQ,CACpB,IAGK,WAAM,IAAA2D,EAAAC,EAAAC,EAAAC,EAKsEC,EAJjF,GAAIj+P,EAAMkmC,SACR,OAAOmsL,EAASj5N,MAGb,QAAmB,IAAnB4G,EAAMk4L,WAA2BwiE,EAAOthQ,QAA6B,IAAnB4G,EAAMk4L,SAC3D,OAAAzmJ,EAAAA,YAAA,MAAA,CAAAC,MACc1xC,EAAMwsN,eAAeQ,qBAAuBtrE,GACrD2wE,CAAAA,EAASj5N,OACwB,aAAjC6kQ,EAAA76G,EAAIhqJ,MAAMohQ,YAAA,IAAAyD,OAAA,EAAVA,EAAgBC,eAAiBzsN,cAAAopN,EAAoB,KAAA,QAItD,IAAAsD,EAA4BN,QAA5BA,EAAYz6G,EAAIhqJ,MAAMohQ,YAAVqD,IAAgBA,OAAhBA,EAAAA,EAAgBlpN,UAClC,IAAKwpN,EAEI,OADHhkO,GAAM,QAAS,+BACZ,KAEH,IAAAjJ,UAAA4sO,EAAehhG,EAAU1jK,aAAA,IAAA0kQ,WAAAA,EAAVA,EAAkB,UAAI,IAAAA,OAAA,EAAtBA,EAAsBtrP,QACrC4rP,EAAqB9sN,MAAK2pN,EAAgB7hQ,OAW9C,cAVKglQ,EAAmBjnO,iBAE1B4mO,EAAI36G,EAAIhqJ,MAAMohQ,YAAM,IAAAuD,GAAA,QAAAA,EAAhBA,EAAgBnC,wBAAhBmC,IAAgBA,GAAhBA,EAAkC9mQ,QACpCmsJ,EAAIhqJ,MAAMohQ,KAAKoB,iBAAiBprP,SAAQ,SAAC6tP,GACnCD,EAAmBC,WACdD,EAAmBC,EAE9B,IAGA5sN,EAAAA,YAAA,MAAA,CAAAC,MACS1xC,EAAMwsN,eAAeS,aAC5B51K,QAAS,SAACngD,GACRA,EAAEyhF,iBACJ,EAAAhkD,IAAA,wBAAA,CAAA8c,EAAAA,YAAA0sN,EAAA7pN,aAAA,CAAAikB,OAIUrnC,GAAyB,QAAV8sO,EAAAlhG,EAAU1jK,aAAA,IAAA4kQ,GAAYA,QAAZA,EAAVA,EAAkB,UAAlBA,IAAsBA,OAAtBA,EAAAA,EAAsBniQ,OAAQ,aAAU,EAAA23F,KACzDtiE,GACFuqO,EAAeriQ,MACfs/E,EAAUt/E,MACVglQ,EAAA,CAAAhlQ,MACGwhQ,EAAUxhQ,MACjB+9B,SAAUylO,IACZ,QAIR,ukBC7ZF,SAAwB0B,GAAWt+P,GACjC,IAAQuyO,EAAoBr+L,EAAAA,OAAOl0C,GAA3BuyO,gBACFgsB,MAAkBx5P,IAElBy5P,EAAe7pO,MAAuB,CAAA,GAEtC8pO,EAAkB5mP,EAAAA,UAAS,WAAA,OX0BnB,SAAmB5a,EAA8B40B,EAAa44L,GAE5E,IADA,IAAMxlN,EAA2C,CAAA,EACxCpM,EAAI,EAAGy4B,EAAMO,EAAK56B,OAAQ4B,EAAIy4B,EAAKz4B,IAAK,CAC/C,IAAMqrO,EAAWx/N,GAAImtB,EAAKh5B,GAAI4xN,GAC1BxtN,EAAKya,SAASwsN,KAChBj/N,EAAIi/N,IAAY,EAEpB,CACO,OAAAj/N,CACT,CWnCyCy5P,CAAmB1+P,EAAMuyO,gBAAiBvyO,EAAM2E,KAAM3E,EAAMyqN,QAAU,SAEvGk0C,EAAehqO,MAAkE,CAAA,GAEjFiqO,EAAiBjqO,MAAuD,CAAA,GAExEkqO,EAA0B,SAAC3E,GAC/B,IAAM4E,EAA8B,CAAA,EAU7B,OATP5E,EAAO1pP,SAAQ,SAAAosB,GAA6B,IAA1B2nB,EAAK3nB,EAAL2nB,IAAK6+F,EAAAxmH,EAAAwmH,IAAK0Z,IAAAA,UAEpBj/J,EAAM,CADK6G,GAAI6/C,EAAKvkD,EAAMyqN,QAAU,MACnBrnE,EAAIoxE,QAAQlsN,KAAK,MACpCw0J,SAAAA,EAAW7lK,OACb6nQ,EAASjhQ,GAAOi/J,SAETgiG,EAASjhQ,EAEpB,IACOihQ,GAIHC,EAAqB,SAAC76B,GACpB,IAAA86B,EAAWT,EAAY75P,IAAIw/N,GACjC,GAAK86B,EAAL,CACA,IAAMntO,EAAOmtO,EAAS/5P,KACpB,SAAC4Y,GAAA,OACC,IAAI1Q,SAA2C,SAACc,GACxC,IAAEmtP,EAAmBv9O,EAAnBu9O,UAAWh4G,EAAQvlI,EAARulI,IACbqY,EAAQ7+J,EAAWwmJ,EAAIo3G,KAAK/+F,OAASrY,EAAIo3G,KAAK/+F,MAAM59I,GAAQulI,EAAIo3G,KAAK/+F,MACtErY,EAAIo3G,MAAS/+F,GAAUA,EAAMxkK,OAIzB6jK,GAAAp2J,GAAI02P,EAAWh4G,EAAIoxE,QAAS/4D,GAAOp+H,MAAK,SAACtmC,GAChDkX,EAAAqjC,GAAAA,MAAazzB,GAAM,CAAA,EAAA,CAAAi/I,UAAW/lK,EAAEooB,QAAO,SAACxnB,GAAA,OAAOA,EAAE6C,MAAM,MACzD,IALEyT,EAAAqjC,GAAAA,MAAazzB,GAAA,CAAA,EAAA,CAAMi/I,UAAW,KAMlC,GAAC,IAEL,OAAO,IAAI3vJ,SAA+B,SAACc,EAASgxP,GAClD9xP,QAAQqjI,IAAI3+G,GAAMwL,MAAK,SAAC68N,GACdjsP,EAAA,CACNisP,OAAQA,EAAO/6O,QAAO,SAACxnB,GAAM,IAAAunQ,EAAA,eAAAA,EAAAvnQ,EAAEmlK,8BAAFoiG,EAAajoQ,UAC1C6nQ,SAAUD,EAAwB3E,OAEnC+E,EACL,GAtBe,GAyCXE,EAAwB,WAC5B,IAAMC,EAAWlmQ,OAAO+D,KAAK0hQ,EAAavlQ,OAGpCimQ,EAAYr/P,EAAM2E,KAAKM,KAAI,SAAC0d,gBAAuB,UAAjBA,EAAE3iB,EAAMyqN,eAAR60C,IAAiBA,OAAjBA,EAAAA,EAAiB1nQ,cACnD2nQ,EAAcH,EACjBjgP,QAAO,SAACwD,UAAM08O,EAAU3nP,SzB9ED,QAArB8nP,EyB8EiD78O,EzB9EzCha,MAAM,YAAO,IAAA62P,OAAA,EAArBA,EAAqB,IADvB,IAA4CA,CyB+EU,IACtDv6P,KAAI,SAACw/N,GAAY,OAAAk6B,EAAavlQ,MAAMqrO,GAASs3B,aAAa,aAC7D,OAAO,IAAI5uP,SAAQ,SAACc,EAASgxP,GAC3B9xP,QAAQqjI,IAAI+uH,GAAaliO,MAAK,SAAC0/C,GAAQ,IAAAsoB,EAC/Bo6J,EAAqC,CAAA,EACvC1iL,EAAAvsE,SAAQ,SAAChW,EAAQQ,IACJ,IAAXR,IACJilQ,EAAgBL,EAASpkQ,IAAUR,EACrC,IACmB,QAAnB6qG,EAAArlG,EAAMk0F,kBAAa,IAAAmR,GAAnBA,EAAAxtG,KAAAmI,EAAmB,CAAExF,OAAQilQ,IACrBxxP,EAAA,CAAEzT,OAAQilQ,MACjBR,EACL,KAmGK,OAdPtiO,EAAAA,OACE,WAAA,IAAA+iO,EAAA,OAA6B,QAA7BA,EAAMntB,EAAgBn5O,aAAO,IAAAsmQ,OAAA,EAAvBA,EAAuBp3P,KAAK,IAClC,IAAA,SAACq3P,GACOptB,IAAAA,EAAkBotB,EAAOh3P,MAAM,KAChBzP,OAAO+D,KAAK2hQ,EAAexlQ,OACnCoX,SAAQ,SAAC3S,GACf00O,EAAgB76N,SAAS7Z,WAErB+gQ,EAAexlQ,MAAMyE,EAEhC,GACF,IAGK,CACL+gQ,eAAAA,EACAJ,aAAAA,EACAC,gBAAAA,EACAmB,kBAjG4E,WAC5E,GAAI1mQ,OAAO+D,KAAK0hQ,EAAavlQ,OAAOnC,OAClC,OAAOkoQ,IAKT,IAHA,IAAMI,EAAgD,GAEhD56P,EAAO3E,EAAM2E,MAAQ,GAClB9L,EAAI,EAAGy4B,EAAM3sB,EAAK1N,OAAQ4B,EAAIy4B,EAAKz4B,IAAK,CAC/C,IAAMqrO,EAAWx/N,GAAIC,EAAK9L,GAAImH,EAAMyqN,QAAU,MAClC80C,EAAAn8P,KAAK27P,EAAmB76B,GACtC,CACA,OAAO,IAAI/2N,SAAQ,SAACc,EAASgxP,GAC3B9xP,QAAQqjI,IAAI+uH,GAAaliO,MAAK,SAACwiO,GAAU,IAAA7D,EACjCyD,EAAqC,CAAA,EAC3CI,EAAMrvP,SAAQ,WAAiD,IAA9CsuP,GAA8C//P,UAAA9H,OAAA8H,QAAA5E,IAAA4E,UAAA5E,GAAA4E,UAAjC,GAAA,CAAEm7P,OAAQ,GAAI4E,SAAU,CAAC,IAAtCA,SACHA,GAAA5lQ,OAAOi8B,OAAOsqO,EAAiBX,EAC7C,IACAN,EAAaplQ,MAAQqmQ,EACF,QAAnBzD,EAAAh8P,EAAMk0F,kBAAa,IAAA8nK,GAAnBA,EAAAnkQ,KAAAmI,EAAmB,CAAExF,OAAQilQ,IACrBxxP,EAAA,CAAEzT,OAAQilQ,MACjBR,EACL,KA6EAE,sBAAAA,EACAW,gBAvIwE,SAAC57B,GAAA,OACzE,IAAI/2N,SAAQ,SAACc,EAASgxP,GACpBF,EAAmB76B,GAAU7mM,MAAK,SAAAR,GAA0B,IAAAkjO,EAAvB7F,EAAAr9N,EAAAq9N,OAAQ4E,IAAAA,SAC3CN,EAAaplQ,MAAQ0lQ,EAErB,IAAMkB,EAAW,iBACjBD,EAAA//P,EAAMg0O,4BAAN+rB,EAAAloQ,KAAAmI,EAAsB,CAAEkvD,QAAS8wM,EAAUxlQ,OAAQ0/P,IACnDjsP,EAAQ,CAAEihD,QAAS8wM,EAAUxlQ,OAAQ0/P,MACpC+E,EACL,GAAC,EA+HD9E,aAlEmB,SAACriO,GAEpB,GAAI93B,EAAMuyO,gBAAiB,CACzB,IAAMrO,EAAWx/N,GAAIozB,EAAQysB,IAAKvkD,EAAMyqN,QAAU,MAC5ChvD,EAAQ8iG,EAAY75P,IAAIw/N,GAC9B,GAAIzoE,EAAO,CACH,IAAAzgK,EAAQygK,EAAMp3B,WAAU,SAAC1sI,GAAA,OAAMA,EAAEyrJ,IAAIoxE,SAAW18L,EAAQsrH,IAAIoxE,WAChD,IAAdx5N,EACFygK,EAAMr4J,KAAK00B,GAEX2jI,EAAMzgK,GAAS88B,EAELymO,EAAAl6P,IAAI6/N,EAAUzoE,EAC5B,MACE8iG,EAAYl6P,IAAI6/N,EAAU,CAACpsM,GAE/B,GAmDAmoO,kBAhDwB,WACxBzB,EAAaplQ,MAAQ,IAgDrB8mQ,mBA7EyB,SAACh8B,EAAei8B,EAA2Bx7P,GAC/Di6P,EAAexlQ,MAAM8qO,KACT06B,EAAAxlQ,MAAM8qO,GAAYtzN,GAAUuvP,IAEtCjnQ,OAAAgL,QAAQS,GAAM6L,SAAQ,SAAAwxD,GAAgB,IAAA7tB,EAAAt3B,GAAAmlD,EAAA,GAAdnkE,EAAAs2C,EAAA,GAAKl0B,EAAGk0B,EAAA,GACrC9vC,GAAIu6P,EAAexlQ,MAAM8qO,GAAWrmO,EAAKoiB,EAC3C,KAwEAmgP,eAnCqB,SAAA5oI,GAAwD,IAAA6oI,EAArD97M,EAAAizE,EAAAjzE,IAAK6+F,IAAAA,IACvB8gF,EAAWx/N,GAAI6/C,EAAKvkD,EAAMyqN,QAAU,MACpC61C,EAAgB1B,EAAexlQ,MAAM8qO,GAC3C,GAAIo8B,GAAwC,QAAvBD,EAAArgQ,EAAMuyO,uBAAiB,IAAA8tB,GAAvBA,EAAuB3oP,SAASwsN,GAAW,CACxD,IAAAq8B,EAAAjvN,GAAA,CAAA,EAAcgvN,GAEb,OADPj8P,GAAIk8P,EAAQn9G,EAAIoxE,OAAQ9vN,GAAI47P,EAAel9G,EAAIoxE,SACxC+rC,CACT,CACO,OAAAh8M,GA4BPi8M,6BA/CmC,SAACviP,GAC9B,IAAAwmN,EAAUR,GAAWhmN,EAAOsmC,IAAKvkD,EAAMyqN,OAAQxsM,EAAOmlI,IAAIoxE,OAAQv2M,EAAOs0M,UAE3Et0M,EAAOy8O,OAETiE,EAAavlQ,MAAMqrO,GAAWxmN,SAEvB0gP,EAAavlQ,MAAMqrO,IA0ChC,okBCpMA,IAAMg8B,GAAa,CACjB,eACA,WACA,yBACA,yBACA,mBACA,YACA,qBACA,mBACA,sBACA,eACA,oBACA,sBACA,eACA,eACA,aACA,cACA,+BACA,kBACA,cACA,mCACA,+BACA,oBACA,kBACA,mBACA,oBACA,mBACA,WACA,YACA,eACA,wBACA,aACA,YACA,gBACA,eACA,gBACA,WACA,sBACA,iBACA,kCACA,eACA,yBACA,aACA,iBACA,iBACA,iBACA,gBAGFC,GAAerwN,kBAAgB,CAC7Br4C,KAAM,gBAENgI,MAAOsxC,GAAAA,MACF43K,IACA6oB,IAGLzhM,eAAMtwC,EAAO83B,GACX,IAAMugC,EAAcx3C,KACpB4wD,EAAsCv9B,SAAOl0C,GAArCwpN,EAAA/3I,EAAA+3I,QAASwoB,EAAiBvgK,EAAjBugK,iBACXyN,EAAkB9qN,MAAI,MACtB44M,EAAc54M,OAAI,GAExB89L,EACElG,KADMpjM,EAAaspM,EAAbtpM,YAAakoM,EAAAoB,EAAApB,sBAAuB7E,IAAAA,eAAgB+D,EAAsBkC,EAAtBlC,qBAAsBT,EAAA2C,EAAA3C,iBAE1E56L,EAAiBN,GAAU,QAAS50B,EAAM6jB,QAA1CqR,aACA4uG,EAAmBykG,GAASvoO,GAA5B8jI,eACF0kG,EAAY3wN,EAAAA,UAAS,WAAA,IAAA8oP,EAAA,OAAoBA,QAApBA,EAAM3gQ,EAAMwE,YAAQm8P,IAAAA,EAAAA,EAAAzrO,EAAa97B,MAAMoL,QAElEo8P,EAAoD9rB,GAAoB90O,EAAO83B,GAAvEs9M,EAAiBwrB,EAAjBxrB,gBAAiB6B,EAAA2pB,EAAA3pB,uBAGnB4pB,ECnFc,SAAa7gQ,EAA4B83B,GAC/D,IAAQ46M,EAAoBx+L,EAAAA,OAAOl0C,GAA3B0yO,gBACFr6K,EAAcx3C,KACpBm0D,EAA4BpgD,GAAU,QAAS50B,EAAM6jB,QAA7ClsB,EAAGq9E,EAAHr9E,EAAGu9B,EAAA8/C,EAAA9/C,aACH4rO,EAA2BhnO,GAAc,CAAEgnO,uBAAwBC,KAAnED,uBACRruC,EAAsElG,KAA9DiD,EAAAiD,EAAAjD,mBAAoBoC,EAAkBa,EAAlBb,iBAAkBxC,EAAAqD,EAAArD,oBAO9C1sI,EAAA7lE,GALgDqa,GAC9Cw7M,EACA1yO,EAAM2yO,wBAA0B,GAChC3yO,EAAM6zO,eACN,mBACF,GALOmtB,EAAkBt+K,EAAA,GAAAu+K,EAAmBv+K,EAAA,GAOtCw+K,EAAkBrpP,EAAAA,UAAS,WAAA,OAC/B2J,QAAQxhB,EAAMyyO,aAAe36M,EAAQ9Y,MAAMyzN,aAAe36M,EAAQ9Y,MAAM,gBAAe,IAGnFmiP,EAAuBtpP,EAAAA,UAAS,WAAA,OAA2B,IAArB7X,EAAMwqB,YAAwB02O,EAAgB9nQ,SAEpFgoQ,EAAqBvpP,EAAAA,UAAS,WAAA,IAAAwpP,EAAA,MAAoC,UAAd,QAAhBA,EAAArhQ,EAAMwpN,eAAU,IAAA63C,GAAAA,QAAAA,EAAhBA,EAAgB,cAAAA,SAAhBA,EAAoB/yC,UAUxDgzC,EAAiB,SAACpqQ,EAAeqtD,GAC/BvkD,EAAAwyO,kBAAoBt7O,EAAEyhF,kBAC5B,IAAM4oL,EAAY78P,GAAI6/C,EAAKvkD,EAAMyqN,QAAU,MACrCzvN,EAAQgmQ,EAAiB5nQ,MAAMwiC,QAAQ2lO,GACvC5sB,EAAUz8O,EAAI8oQ,EAAiB5nQ,QAC3B,IAAA4B,EAAK25O,EAAQ/vO,OAAO5J,EAAO,GAAK25O,EAAQvxO,KAAKm+P,GACvDN,EAAoBtsB,EAAS,CAC3B6sB,gBAAiBxhQ,EAAM2E,KAAKwa,QAAO,SAACxnB,GAAM,OAAAg9O,EAAQj9N,SAAShT,GAAI/M,EAAGqI,EAAMyqN,QAAU,UAClFqhB,eAAgBvnL,KAIdk9M,EAAmB,SAAC/9O,EAAaP,GAC/B,IAAEohC,EAAkBphC,EAAlBohC,IAAKvW,EAAa7qB,EAAb6qB,SACPuzN,EAAY78P,GAAI6/C,EAAKvkD,EAAMyqN,QAAU,MACrCzzL,EAAWgqO,EAAiB5nQ,MAAMse,SAAS6pP,GAC3C33O,EAAOyuC,EAAY,aAAc,CACrC96C,YAAa5lB,EAAEu9B,EAAa97B,MAAMoxB,aAAUinB,cAAAqvN,EAA6B,KAAA,MACzE7iP,OAAQ,CAAEsmC,IAAAA,EAAKvpD,MAAOgzC,KAExB,IAAKpkB,EAAa,OAAA,KAClB,IAAM8W,EAAU,CACd8uL,EAAmBC,QACnBD,EAAmBx4L,EAAW,WAAa,aAAA/9B,EACxC24N,CAAAA,EAAAA,EAAmB56L,IAExB,OAAAya,EAAAA,YAAA,OAAA,CAAAC,MACehR,EAAA2W,QAAkB,SAACngD,GAAkB,OAAAoqQ,EAAepqQ,EAAGqtD,EACjE,GAAA,CAAA36B,KAyCA,MAAA,CACLs3O,gBAAAA,EACAC,qBAAAA,EACAO,gBAvCsB,WASf,MAR0C,CAC/CltC,OAAQ,6BACR7rL,MAAO,GACPpI,UAAWivL,EAAmBE,SAC9BpB,MAAO8yC,EAAmBhoQ,MAAQ,YAAS,EAC3CqnM,KAAMghE,EACN9oL,iBAAiB,IAiCnBuuJ,kBA5BwB,SACxB/jN,GAEA,IAAMg4M,EAAQz2N,GAAIye,EAAEohC,IAAKvkD,EAAMyqN,QAAU,MACzC,IAAKu2C,EAAiB5nQ,QAAU4nQ,EAAiB5nQ,MAAMse,SAASyjN,GAAe,OAAA,KACzE,IAAAwmC,EAAcx+O,EAAEowM,iBAAmBvzN,EAAMwpN,QAAQhvJ,MAAK,SAAC38C,GAAA,MAAwB,SAAfA,EAAKywM,SAC3E,OAAA78K,EAAAA,YAAA,KAAA,CAAA5zC,IAAA+3B,UAAAA,OACqBulM,GAASzpL,MAAO,CAAC89K,EAAmBjrK,IAAKtrD,EAAA,CAAA,EAAGm2N,EAAoBC,KAAOsyC,KAAa,CAAAlwN,EAAAK,YAAA,KAAA,CAAAiT,QACxF5hC,EAAEqmM,QAAQvyN,QAAA,CAAAw6C,EAAAK,YAAA,MAAA,CAAAJ,MAEZ,CAAC89K,EAAmBK,SAAA52N,EAAam2N,CAAAA,EAAAA,EAAoBE,aAAeqyC,IAAav6N,MACjFu6N,EAAc,CAAEh5N,MAAA/S,GAAAA,OAAUzS,EAAE80M,WAAe,OAAI,CAAC,GAAA,CAAAxmL,EAAAK,YAAA,MAAA,CAAAJ,MAE3C09K,EAAoBG,kBAAmBl3J,CAAAA,EAAY,cAAe,CAAEp6C,OAAQkF,aAgBhGy+O,sBAT4B,SAACz+O,GACdm+O,EAAAn+O,EAAEjsB,EAAiBisB,EAAEohC,MASpCs9M,oBAnF0B,SAAC5jP,GAA6C,IAAA6jP,EAExE,IAAKZ,EAAgB9nQ,MAAc,OAAA,KAC7B,IACA0/O,EAAgBp0O,GADEuZ,EAAhBsmC,IAAgBtmC,EAAXwsM,QAC4B,MACzC,OAAO+E,EAAoCsyC,QAAjBA,EAAAd,EAAiB5nQ,iBAAA0oQ,GAAjBA,EAAwBpqP,SAASohO,GAAiB,cAAgB,cAgFhG,CDjBQipB,CAAa/hQ,EAAO83B,GANtBopO,EAAAL,EAAAK,gBACAC,EAAAN,EAAAM,qBACAO,EAAAb,EAAAa,gBACAx6B,EAAA25B,EAAA35B,kBACA06B,EAAAf,EAAAe,sBACAC,EAAAhB,EAAAgB,oBAIMzkB,EAAmB9B,GAAUt7O,EAAO83B,GAApCslN,eAGF4kB,EASFlqB,GAAa93O,EAAOuwN,GARtBgnB,EAAAyqB,EAAAzqB,aACAiC,EAAAwoB,EAAAxoB,cACAxB,EAAAgqB,EAAAhqB,sBACAD,EAAAiqB,EAAAjqB,oBACA0B,EAAAuoB,EAAAvoB,wBACAvB,EAAA8pB,EAAA9pB,oBACA8B,EAAAgoB,EAAAhoB,sBACAG,EAAA6nB,EAAA7nB,iCAII8nB,EAMFziB,GAAUx/O,EAAO83B,GALnB8nN,EAAAqiB,EAAAriB,kBACAF,EAAAuiB,EAAAviB,sBACAY,EAAA2hB,EAAA3hB,iBACAE,EAAAyhB,EAAAzhB,qBACAG,EAAAshB,EAAAthB,yBAIIuhB,EAAiBrqP,EAAAA,UAAS,WAAA,MAAO,CACrC01N,YAAaA,EAAYn0O,MACzB,IACI0vF,EAOFiB,GAAY/pF,EAAO83B,EAASoqO,GAN9BnK,EAAAjvK,EAAAivK,sBACAD,EAAAhvK,EAAAgvK,eACAE,EAAAlvK,EAAAkvK,eACAh5B,EAAAl2I,EAAAk2I,gBACAk6B,EAAApwK,EAAAowK,2BACAC,EAAArwK,EAAAqwK,mBAGMnmC,GAAyBR,GAAexyN,GAAxCgzN,qBACRmvC,GE3IJ,SAAwCniQ,GACtC,IAAMq4D,EAAcx3C,KACZqU,EAAiBN,GAAU,QAAS50B,EAAM6jB,QAA1CqR,aACRu9L,EAA+DlG,KAAvDyE,EAAAyB,EAAAzB,eAAgBC,EAAiBwB,EAAjBxB,gBAAiBH,EAAA2B,EAAA3B,kBAEnCpwL,EAAU7oB,EAAAA,UAAS,WAAA,MAAM,CAC7Bi5M,EAAA73N,EAAAA,EAAA,CAAA,EAEG+3N,EAAwC,YAAvBhxN,EAAMo9M,cACvB6T,EAAyC,cAAvBjxN,EAAMo9M,kBAI7B,SAASglD,IAAc,IAAAC,EAChB/pP,GAAStY,EAAMo9M,gBACQ,QAA5BilD,EAAAriQ,EAAMyzO,2BAAsB,IAAA4uB,GAA5BA,EAAAxqQ,KAAAmI,EAA4B,CAAEu4D,OAAQv4D,EAAMo9M,eAC9C,CAyBO,MAAA,CACLklD,mBAxBF,WACQ,IAAAC,EAAmBlqM,EAAY,gBACjC,GAAA//C,GAASiqP,GAAmB,CACxB,IAAEnlD,EAAiBp9M,EAAjBo9M,aACF7wL,EAAc,CAClB,YAAa2I,EAAa97B,MAAMs0B,gBAChC4I,QAASpB,EAAa97B,MAAMmzB,aAC5BxzB,OAAOqkN,IAEP,OAAA3rK,EAAAA,YAAA,MAAA,CAAAC,MAAYhR,EAAQtnC,cAAgBgpQ,GAAA3wN,CAAAA,EAAAK,YAAAgF,GAAA,CAAA5E,UACI,YAAjBkrK,EAA4B9mL,UAAW8mL,EAAA54M,KAAA,QAAA8tC,KAAiC/lB,GAAa,OAGhH,CACI,MAAC,CAAC,MAAM,OAAO,GAAW7U,SAAS6qP,GAOhC,KALH9wN,EAAAA,YAAA,MAAA,CAAAC,MAAYhR,EAAQtnC,cAAgBgpQ,GAAA,CACjCG,GAKT,EAIF,CF+FmCC,CAAgBxiQ,GAAvCsiQ,GAAAH,GAAAG,mBAGFG,GAWFC,GAAe1iQ,GAVjBw+P,GAAAiE,GAAAjE,aACAC,GAAAgE,GAAAhE,gBACAqB,GAAA2C,GAAA3C,gBACAF,GAAA6C,GAAA7C,kBACAT,GAAAsD,GAAAtD,sBACAhF,GAAAsI,GAAAtI,aACA8F,GAAAwC,GAAAxC,kBACAC,GAAAuC,GAAAvC,mBACAE,GAAAqC,GAAArC,eACAI,GAAAiC,GAAAjC,6BAGImC,GAAwB9qP,EAAAA,UAAS,WAAA,OAAM2J,QAAQ0/O,EAAgB9nQ,OAASogP,EAAcpgP,UAEtFwpQ,GAA+B/qP,EAAAA,UAAS,WAAA,OAAM2J,QAAQ0/O,EAAgB9nQ,OAASogP,EAAcpgP,UAE7FypQ,GAAsBhrP,EAAAA,UAAS,WAAM,IAAAwgO,EAClC,OAAAp/O,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAA,CAAA,EACJo4N,EAAsBG,aAAewmC,EAAe5+P,OACpDi4N,EAAsBE,oBAAsBwmC,EAAsB3+P,OAClEi4N,EAAsBC,aAAewmC,EAAe1+P,OACpDozN,EAAeE,iBAAkD,IAAhCgzB,EAAsBtmP,OACvDozN,EAAeO,aAAe/sN,EAAMuyO,iBAAA38M,GAAAA,OACjCzM,EAAA,mBAAAyM,OAA0CyiN,QAA1CA,EAA6Bd,EAAan+O,iBAAAi/O,SAAbA,EAAoBx8O,MAAS07O,EAAan+O,OAAA,GAAAw8B,OACvEzM,wBAAkCqwN,EAAcpgP,OAAAw8B,GAAAA,OAChDzM,EAAA,0BAAsC+3O,EAAgB9nQ,MAE9D,IAGM0pQ,GAAiBjrP,EAAAA,UAAS,WAE9B,MADoB,CAAC7X,EAAMwqN,aAAcwtB,EAAsB5+O,MAAOyoQ,GACnD1iP,QAAO,SAACwD,GAAA,OAAMA,IACnC,IAGMogP,GAAiBlrP,EAAAA,UAAS,WACxB,IAAAmrP,EAAc,CAAChjQ,EAAMuqN,eAI3B,OAHIwtC,EAAsB3+P,OAAS0+P,EAAe1+P,QAChD4pQ,EAAY5/P,MAAK,SAAAy5B,GAAG,MAAW,CAAE,UAAWn4B,GAAxBm4B,EAAA0nB,IAAiCvkD,EAAMyqN,QAAU,MAAQ,IAExEu4C,EAAY7jP,QAAO,SAACwD,GAAA,OAAMA,IACnC,IAGAmiB,EAAAA,WAAU,WACR67M,EAAyBlB,EAAgBrmP,OACzC8/P,EAA2BzZ,EAAgBrmP,MAC7C,IAGA0+B,EAAQyzB,OAAO,CACbu0M,gBAAAA,GACAF,kBAAAA,GACAT,sBAAAA,GACAc,kBAAAA,GACA7hC,aAAc,WACZqhB,EAAgBrmP,MAAMglO,cACxB,EACAlwL,gBAAiB,SAACvpC,GACA86O,EAAArmP,MAAM80C,gBAAgBvpC,EACxC,EACAkrO,qBAAsB,SAACrb,GACLirB,EAAArmP,MAAMy2O,qBAAqBrb,EAC7C,EAEAyuC,aAAcxjB,IAIV,IA4IFrxM,GA5IE80N,GAAsD,SAACjlP,GAAW,IAAAklP,UACtEA,EAAAnjQ,EAAM+zO,iBAANovB,OAAAA,EAAAtrQ,KAAAmI,EAAkBie,GAClB,IAAMimN,EAAWx/N,GAAIuZ,EAAOm9O,UAAWp7P,EAAMyqN,QAAU,MACpCy1C,GAAAh8B,EAAUjmN,EAAOsmC,IAAKtrD,EAAA,CAAA,EACtCglB,EAAOmlI,IAAIoxE,OAASv2M,EAAO7kB,SAK1BgqQ,GAAa,SAAC55C,GAElB,IAFsF,IAA1B65C,EAAAtkQ,UAAA9H,OAAA,QAAAkD,IAAA4E,UAAA,IAAAA,UAAA,GACtDg+E,EAAuC,GAACl+C,EAAAA,WACM,IAAAm/C,EAAAslL,EAAAC,EAAArlL,EAAAE,EAC9CvgE,EAAOyzB,GAAA,CAAA,EAAKk4K,EAAQ3wN,IAItB,MAFqCmlF,QAAfA,EAAAngE,EAAKC,gBAALkgE,IAAeA,OAAfA,EAAAA,EAAe/mF,UAAiC,QAAjCqsQ,EAAUluB,EAAgBh8O,aAAO,IAAAkqQ,OAAA,EAAvBA,EAAuB5rP,SAASmG,EAAK22M,YAGnFx0N,EAAMgyO,kBAAoBhyO,EAAMmyO,gBAAkBnyO,EAAMoyO,yBACxDixB,EAAA,OAAA,EAGHxlP,EAAO47N,EAAwB57N,GACzB,IAiEqB2lP,EAjEnBx0N,EAAShvC,EAATgvC,KACJnxB,EAAKq+N,QAAUl8O,EAAMszO,yBACTtkM,aAAgB53C,MAAQ43C,EAAO,CAACA,IACnBwrB,MACzB,SAACxrB,UAASA,GAAQA,EAAKitM,SAAWp+N,EAAK22M,aAA8B,IAApBxlL,EAAKgsM,UAAe,MAGrEn9N,EAAK0iB,UACH1iB,EAAK0iB,qBAAqBnpC,MACtBymB,EAAK0iB,UAAU3K,OAAOk6L,EAAiBE,YACvC,CAACnyM,EAAK0iB,UAAWuvL,EAAiBE,cAIxC,GAAAnyM,EAAKq+N,QAAUr+N,EAAKsB,OAAQ,CAC9B,IAAMskP,EAAehuM,GAAY39B,EAAQ9Y,MAAOnB,EAAMhlB,GAC9Co6N,EAAkBp1M,EAAlBo1M,cACHp1M,EAAAuP,MAAQ,SAACxO,EAAGuE,GAAM,IAAAo9N,EACf91N,EAAW5M,EAAKq+N,OAASkB,EAAej6N,GAAK,KAC7CuH,EAAa7M,EAAKsB,OAASmhO,EAAiBn9N,GAAK,KAEjDoG,EAAgC,QAAhCg3N,EAASd,EAAgBrmP,aAAO,IAAAmnP,OAAA,EAAvBA,EAAuB/sB,gBAC/B,OAAAR,GACL,CAACywC,EAAch5O,EAAUC,GACzBvH,EAAEigI,IACFjgI,EAAEovM,SACFU,EACA1pM,EACA,CACEJ,YAAAA,EACAgqM,yBAA8C,WAApBqV,EAAUpvO,MAAqB0qI,EAAe0kG,EAAUpvO,OAAS,MAIjGykB,EAAKo1M,eAAgB,CACvB,CAEI,WAAAswC,EAAA1lP,EAAK28O,YAAL+I,OAAAA,EAAW5uN,UAAW,CACxB,IAAMslN,EAAUp8O,EAAK4iL,KAChB5iL,EAAA4iL,KAAO,SAAC7hL,EAAGuE,GACd,IAAMugP,EAA+BpyN,GAAAA,MAChCnuB,GAAA,GAAA,CACHohC,IAAK67M,GAAej9O,GACpB82O,QAAAA,EACAxvC,OAAQzqN,EAAMyqN,QAAU,KACxB+B,eAAAA,EACAjD,iBAAkBvpN,EAAMupN,iBACxBpyL,SAAU+rO,GACVhvK,WAAYl0F,EAAMg0O,cAClBmmB,aAAAA,GACAC,iBAAkBoG,KAEpB,GAAIxgQ,EAAMuyO,gBAAiB,CAAA,IAAAoxB,EACnBz/B,EAAWx/N,GAAIye,EAAEohC,IAAKvkD,EAAMyqN,QAAU,MAClCi5C,EAAAxrE,SAAWumE,GAAgBrlQ,MAAM8qO,KAAa,EAClD,IAAArmO,EAAM,CAACqmO,EAAU/gN,EAAEigI,IAAIoxE,QAAQlsN,KAAK,MACpCw0J,EAAiC,QAAjC6mG,EAAYnF,GAAaplQ,aAAQ,IAAAuqQ,OAAA,EAArBA,EAAqB9lQ,GACvCi/J,IAAc4mG,EAAUxJ,OAASp9F,EACnC,CAIA,OAHI98J,EAAMsyO,oBACRoxB,EAAUx9N,UAAYlmC,EAAMsyO,kBAAkBnvN,IAEhDsuB,cAAAuoN,GAAA1lN,EAAAqgC,WAAyB+uL,EAAA,CAAAxD,mBAAuDA,KAAnCpoO,EAAQ9Y,OAEzD,SACIk/D,EAAArgE,EAAKC,gBAALogE,OAAAA,EAAejnF,SACZ4mB,EAAAC,SAAWslP,GAAWvlP,EAAKC,SAAUulP,IAAwC,QAAxCG,EAAiBpuB,EAAgBh8O,aAAO,IAAAoqQ,OAAA,EAAvBA,EAAuB9rP,SAASmG,EAAK22M,aAG7F32M,EAAKC,kBAAYsgE,EAAAvgE,EAAKC,uBAALsgE,EAAennF,SACnC8lF,EAAI35E,KAAKya,IAjFJhlB,EAAI,EAAGy4B,EAAMk4L,EAAQvyN,OAAQ4B,EAAIy4B,EAAKz4B,IAAKgmC,IAoF7C,OAAAk+C,GAGH6mL,GAAW/rP,EAAAA,UAAS,WAClB,IAAA8sI,EAAOy+G,GAAW55C,EAAQpwN,OAIzB,OAHH+nQ,EAAqB/nQ,OAClBurJ,EAAAh2G,QAAQ+yN,KAER/8G,CACT,IAEMk/G,GAAoB,SAACjmI,EAAoBgM,GAAiC,IAAA81F,EAAAh5E,EAC9Es4E,EAAgB5lO,YAAa4lO,CAAAA,EAAAA,EAAgB5lO,OAAUwkI,GACvDm6G,EAAoB3+O,MAAQwwI,UACtB81F,EAAA1/N,EAAAg0K,oBAAA,IAAA0rD,GAAAA,EAAA7nO,KAAAmI,EAAe49H,EAAUgM,GAC/B,IAAM8qG,EAA4D,CAChE,CAAEzoN,WAAY2xG,GACd,CAAE1uE,QAAS,aAAc2tL,YAAajzG,IAElC8c,QAAAA,EAAA1mJ,EAAAm3B,oBAAAuvH,GAAAA,EAAA7uJ,KAAAmH,MAAA0nJ,EAAA,CAAA1mJ,GAAA41B,OAAc8+M,IAEf10O,EAAMgzO,8BACTkF,EAAoB,GAAI,CACtBW,gBAAiB,GACjBh9O,KAAM,UACNi9O,cAAe,uBAKfgrB,GAA8D,SAAC7lP,GAAW,IAAAquN,UAC9EA,EAAAtsO,EAAM+qN,yBAANuhB,OAAAA,EAAAz0O,KAAAmI,EAA0Bie,GAC1Bk8N,EAAiCl8N,IAG7B8lP,GAAsD,SAAC9lP,GACvDje,EAAMwyO,kBACRovB,EAAsB3jP,GAEpBje,EAAMmzO,kBACR6G,EAAsB/7N,IAOpBmyN,GAAqD,SAACnyN,GAErDje,EAAMkrN,cAIP98K,IAEF33B,aAAa23B,IACLA,QAAA,GAERA,GAAQj4B,YAAW,WACjB4tP,GAAiB9lP,GACTmwB,QAAA,IAdG,KAIb21N,GAAiB9lP,IAef+lP,GAAsB,SAAC/jP,GAC3BstN,EAAYn0O,MAAQ6mB,GAGhBgkP,GAAa,SACjBC,EACAC,EACAC,EACAzvK,GAEA,IAAKyvK,EAAW,OAAOpkQ,EAAMkkQ,GACvB,IAAAG,EAAYF,EAAgBvlP,EAAAA,GAC5BD,EAAY05C,EAAY6rM,GAC9B,OAAIG,IAAc1lP,EAAkB,WAAA,OAAM0lP,CAAA,EACtC1lP,IAAc0lP,EAAkB,WAAA,OAAM1lP,CAAA,EACtC0lP,GAAa1lP,EACR,WAAA,OACLg2E,SAAAA,EAAO9rC,QAAApX,EAAAK,wBAEFuyN,EACA1lP,IAAA8yB,0BAIA9yB,EACA0lP,GAFF,EAMA,MAGT,OAAO,WAAM,IAAAC,EAAAC,EACLptB,KAAwBnF,EAAiB54O,QAASF,OAAO+D,KAAK+0O,EAAiB54O,OAAOnC,QAEtF2/D,EAAYugL,EAAqBnF,EAAiB54O,MAAMw9D,WAAa,YAAc,GACnF4tM,EAAqBrtB,IAAuD,KAAjCvgL,aAAAA,EAAAA,EAAWh7B,QAAQ,WAC9D8pG,EAAau+H,GAAW,aAAchtB,EAAwBE,IAAuBqtB,GACrF7+H,EAAgBs+H,GAAW,gBAAiBhtB,EAAwButB,EAAoB,CAC5F37M,SAAS,IAEL8gK,EAAes6C,GAAW,eAAgBzjB,GAAuBZ,EAAkBxmP,OACnFgxN,EAAc65C,GAAW,cAAe3B,KAAsBtiQ,EAAMo9M,cAGlE/7L,EAAUvC,EAAAA,qBAAVuC,MAEF6nM,EAAiC53K,GAAAA,GAAA,GAClCl3B,GAAKiH,EAAMrhB,MAAOygQ,KAAU,GAAA,CAC/Bh2C,OAAQzqN,EAAMyqN,OACdD,aAAcs4C,GAAe1pQ,MAC7BmxN,cAAew4C,GAAe3pQ,MAC9BowN,QAASo6C,GAASxqQ,MAClB+wN,iBAAwBm6C,QAAxBA,EAAkBtkQ,EAAMmqN,wBAAAm6C,IAAAA,EAAAA,EAAoB3B,GAAsBvpQ,MAClEswN,wBAA+B66C,QAA/BA,EAAyBvkQ,EAAM0pN,+BAAA66C,IAAAA,EAAAA,EAA2B3B,GAA6BxpQ,MACvFssI,WAAAA,EACAC,cAAAA,EACAgkF,aAAAA,EACAS,YAAAA,EACA0e,YAAa,CAAC,MAAO,mBAAmBpxN,SAAS1X,EAAMgkF,UACvDggL,oBAAAA,GACAhwF,aAAc6vF,GACd38B,kBAAmBg6B,EAAgB9nQ,MAAQ8tO,OAAoB,EAC/Dnc,kBAAmB+4C,KAOrB,OAJI9jQ,EAAMwyO,kBAAoBxyO,EAAMmzO,oBAClCjqB,EAAe+B,WAAamlB,IAG9B3+L,cAAAgzN,GAAAnwN,EAAAqgC,WAGQu0I,EAAAA,CAAAA,IACCu2B,EAAA/tM,MACEmxN,GAAoBzpQ,MAC3B0zO,oBAAqBqsB,IAJZrhO,EAAQ9Y,OAQzB,IGnca0lP,GAAA,CAEbC,eAAgB,CACd9oQ,KAAMhC,UAGR+qQ,kBAAmB,CACjB/oQ,KAAMzE,MACNwwB,aAAS,GAGXi9O,yBAA0B,CACxBhpQ,KAAMzE,MACNwwB,QAAS,WAAT,MAAiE,EAAC,GAGpEqD,KAAM,CACJpvB,KAAM3C,QAGRyxB,sBAAuB,CACrB9uB,KAAMhC,UAGRirQ,mBAAoBjrQ,SAEpBkrQ,0BAA2BlrQ,SAE3BmrQ,mBAAoBnrQ,6kBCXf,IAAMorQ,GACL,KADKA,GAEH,6CAUH,SAASC,GAAkB3gN,EAAmBiwK,GAAyD,IAAzCxmL,EAAmBjvC,UAAA9H,OAAA,QAAAkD,IAAA4E,UAAA,GAAAA,UAAA,GAAA,EAAG6xG,yDAAgB,EACnGszH,EAAWx/N,GAAI6/C,EAAKiwK,GAC1B,OAAOxmL,GAAY4iE,EAAQ,GAAAh7E,OAAGsuM,cAAYl2L,GAAY,OAAApY,OAAKg7E,GAAS,OAAOszH,CAC7E,CAAA,IAYMihC,GAAsD,WAQ1D,OAAAlgO,IAFA,SAAAkgO,IAAcjgO,QAAAigO,GAAAlsQ,EAJkB4H,KAAA,kBAAIkE,KAAI9L,EAAA4H,KAAA,yBAAA,GAKjCA,KAAAukQ,gBAAkBrgQ,GACzB,GAAA,CAAA,CAAAlH,IAAA,mBAAAzE,MAQA,SAAiBu6K,EAAiB61C,EAA4BvsN,GAAgB,IAAAooQ,UAC5EA,EAAAxkQ,KAAKukQ,0BAALC,EAAkBlhQ,QAClBtD,KAAKykQ,mBAAmBzkQ,KAAKukQ,YAAazxF,EAAY61C,EAAQhvJ,MAAK,SAAC4oF,GAAA,MAAuB,eAAfA,EAAIoxE,UAA0Bv3N,EAC5G,GAAA,CAAAY,IAAA,mBAAAzE,MAKA,SAAiBuL,EAAW1H,GAC1B,IADyD,IAAf8/E,EAAAh+E,UAAA9H,OAAA,QAAAkD,IAAA4E,UAAA,GAAAA,UAAA,GAAW,GAC5ClG,EAAI,EAAGy4B,EAAM3sB,EAAK1N,OAAQ4B,EAAIy4B,EAAKz4B,IAAK,CAC/C,IAAMglB,EAAOlZ,EAAK9L,GAClBkkF,EAAI35E,KAAK8hQ,GAAkBrnP,EAAM5gB,EAAKwtN,SACtC,IAAM3sM,EAAWpZ,GAAImZ,EAAM5gB,EAAKsoQ,aAC5BznP,SAAAA,EAAU7mB,QACP4J,KAAA2kQ,iBAAiB1nP,EAAU7gB,EAAM8/E,EAE1C,CACO,OAAAA,CACT,GAAA,CAAAl/E,IAAA,0BAAAzE,MAEA,SAAwBuL,EAAW1H,GACjC,IADgF,IAA/B8/E,EAAAh+E,UAAA9H,OAAA,QAAAkD,IAAA4E,UAAA,GAAAA,UAAA,GAA2B,GACnElG,EAAI,EAAGy4B,EAAM3sB,EAAK1N,OAAQ4B,EAAIy4B,EAAKz4B,IAAK,CAC/C,IAAMglB,EAAOlZ,EAAK9L,GACZqrO,EAAWghC,GAAkBrnP,EAAM5gB,EAAKwtN,QAC7B5pN,KAAKukQ,YAAY1gQ,IAAIw/N,GACzBltM,UACX+lD,EAAI35E,KAAK8gO,GAEX,IAAMpmN,EAAWpZ,GAAImZ,EAAM5gB,EAAKsoQ,aAC5BznP,SAAAA,EAAU7mB,QACP4J,KAAA4kQ,wBAAwB3nP,EAAU7gB,EAAM8/E,EAEjD,CACO,OAAAA,CACT,GAAA,CAAAl/E,IAAA,iBAAAzE,MAEA,SAAessQ,EAA8B/xF,EAAiB12K,GAAgB,IAAAooC,EAAAxkC,KAC5E,OAAK6kQ,EAAQzuQ,QACLyuQ,EAAAl1P,SAAQ,SAAC0zN,GACf,IAAMyhC,EAAWtgO,EAAK+/N,YAAY1gQ,IAAIw/N,GACjCyhC,GACAtgO,EAAAugO,iBAAiB,CAAErhN,IAAKohN,EAASphN,IAAUvW,SAAU23N,EAAS33N,UAAY2lI,EAAY12K,EAAM,SACnG,IACO02K,GANqBA,CAO9B,GAAA,CAAA91K,IAAA,eAAAzE,MAEA,SAAassQ,EAA8B/xF,EAAiB12K,GAAgB,IAAAuyD,EAAA3uD,KAC1E,OAAK6kQ,EAAQzuQ,QACLyuQ,EAAAl1P,SAAQ,SAAC0zN,GACf,IAAMyhC,EAAWn2M,EAAK41M,YAAY1gQ,IAAIw/N,GACjCyhC,GACAn2M,EAAAo2M,iBAAiB,CAAErhN,IAAKohN,EAASphN,IAAUvW,SAAU23N,EAAS33N,UAAY2lI,EAAY12K,EAAM,OACnG,IACO02K,GANqBA,CAO9B,GAAA,CAAA91K,IAAA,mBAAAzE,MAEA,SAAiB+pB,EAAiCwwJ,EAAiB12K,EAAgBpB,GAA0B,IAAAgqQ,EAC3G,IAAK1iP,EAEI,OADHgX,GAAM,gBAAiB,qDACpBw5I,EAET,IAAMuwD,EAAWx/N,GAAIye,EAAEohC,IAAKtnD,EAAKwtN,QAC7B,GAAAhxM,GAAYyqN,GAEd,OADI/pM,GAAM,gBAAiB,0EACpB,GAIT,IAAsB,IAFAz1B,GAAIye,EAAEohC,IAAKtnD,EAAKsoQ,aAEH,OAAA5xF,EACnC,IAAM58K,EAAI8J,KAAKukQ,YAAY1gQ,IAAIw/N,GAC3B,MAAS,WAATroO,GAAqB9E,EAAEigC,SAAiB28I,EAC/B,SAAT93K,GAAoB9E,EAAEigC,UACxBjgC,EAAAi3C,SAAa,QAAb63N,EAAW9uQ,EAAEi3C,gBAAA63N,IAAAA,EAAAA,EAAY1iP,EAAE6qB,SAC3Bj3C,EAAAigC,UAAYjgC,EAAEigC,SACXn2B,KAAAukQ,YAAY/gQ,IAAI6/N,EAAUntO,GACxB8J,KAAKilQ,gBAAgB/uQ,EAAG48K,EAAY12K,IAJA02K,CAK7C,GAAA,CAAA91K,IAAA,kBAAAzE,MAEA,SAAgB2sQ,EAA0BpyF,EAAiB12K,GACzD,IAAQsnD,EAA4BwhN,EAA5BxhN,IAAKvW,EAAuB+3N,EAAvB/3N,SAAUhX,EAAa+uO,EAAb/uO,SACfouO,EAAgBvkQ,KAAhBukQ,YACFY,EAAgBthQ,GAAI6/C,EAAKtnD,EAAKsoQ,aAChC,IAAChhN,IAAQyhN,EAAsB,OAAAryF,EACnC,GAAI38I,EACqBivO,GAAAb,EAAaW,EAAW/uO,EAAU/5B,GACzDipQ,GAAsBd,EAAa7gN,EAAKyhN,EAAc/uQ,OAAQ,SAAUgG,GAE7D02K,EAAA/uK,OAAO5F,MAAM20K,EAAY,CAAC3lI,EAAW,EAAG,GAAGpY,OAAOowO,QACxD,CACqBC,GAAAb,EAAaW,EAAW/uO,EAAU/5B,GACtD,IAAAq0B,EAAMy0O,EAAUI,sBAAwBH,EAAc/uQ,OAC5DivQ,GAAsBd,EAAa7gN,GAAU,EAAAjzB,EAAK,OAAQr0B,GAC/C02K,EAAA/uK,OAAOopC,EAAW,EAAG1c,EAClC,CAMO,OAJP80O,GAAehB,EAAazxF,EAAY,CACtC82C,OAAQxtN,EAAKwtN,OACb47C,YAAar4N,EAAW,IAEnB2lI,CACT,GAAA,CAAA91K,IAAA,UAAAzE,MAOA,SAAQyE,GACC,OAAAgD,KAAKukQ,YAAY1gQ,IAAI7G,EAC9B,GAAA,CAAAA,IAAA,aAAAzE,MAQA,SAAW8qO,EAAyBy4B,EAAehpF,EAAiB12K,GAClE,IAAMqpQ,EAAcpB,GAAkBvI,EAAY1/P,EAAKwtN,QACjDk7C,EAAW9kQ,KAAKukQ,YAAY1gQ,IAAIw/N,GAEtC,IAAKyhC,IAAsC,IAA1BA,EAAS33N,SAKjB,OAJOu4N,GAAA5yF,EAAYuwD,EAAUy4B,EAAY,CAC9ClyC,OAAQxtN,EAAKwtN,OACb86C,YAAatoQ,EAAKsoQ,eAEb,EAIT,IAA0C,IAAtC7gQ,GAAIi4P,EAAY1/P,EAAKsoQ,aAAuB,CAC9C,IAAMiB,EAAc9hQ,GAAIihQ,EAASphN,IAAKtnD,EAAKsoQ,aAC3C,GAAIiB,SAAAA,EAAavvQ,OACf,IAAA,IAAS4B,EAAI,EAAGy4B,EAAMk1O,EAAYvvQ,OAAQ4B,EAAIy4B,EAAKz4B,IAAK,CACtD,IAAMqrO,EAAWghC,GAAkBsB,EAAY3tQ,GAAIoE,EAAKwtN,QAC1C5pN,KAAKukQ,YAAY1gQ,IAAIw/N,IAE5BrjO,KAAAukQ,mBAAmBlhC,EAE5B,CAEJ,CAEA,IAAMuiC,EAAkBd,EAAS33N,SAKjC,GAJA23N,EAASphN,IAAMo4M,EACfgJ,EAASnnO,GAAK8nO,EAGVX,EAASzrP,OAAQ,CAEnB,IAAM2yH,EAAWnoI,GAAIihQ,EAASzrP,OAAOqqC,IAAKtnD,EAAKsoQ,aACzCvqQ,EAAQ6xI,EAASxI,WAAU,SAACxmH,GAAA,OAAYqnP,GAAkBrnP,EAAM5gB,EAAKwtN,UAAYyZ,KACvFr3F,EAAS7xI,GAAS2hQ,CACpB,CAOO,OALF97P,KAAAukQ,YAAY/gQ,IAAIiiQ,EAAaX,GAE9BzhC,IAAaoiC,GACVzlQ,KAAAukQ,mBAAmBlhC,GAEnBuiC,CACT,GAAA,CAAA5oQ,IAAA,SAAAzE,MAMA,SAAOyE,EAAoB81K,EAAiB12K,GAC1C,IAAMlG,EAAI8J,KAAKukQ,YAAY1gQ,IAAI7G,GAC3B,GAAA9G,GAAKA,EAAEi3C,UAAY,EAAG,CAElB,IAAA04N,GAAgB3vQ,EAAEovQ,sBAAwB,GAAK,EAGrD,GAFWxyF,EAAA/uK,OAAO7N,EAAEi3C,SAAU04N,GAE1B3vQ,EAAEmjB,OAAQ,CACZ,IAAM2yH,EAAWnoI,GAAI3N,EAAEmjB,OAAOqqC,IAAKtnD,EAAKsoQ,aAClCvqQ,EAAQ6xI,EAASxI,WAAU,SAACxmH,GAAA,OAAuBnZ,GAAImZ,EAAM5gB,EAAKwtN,UAAY5sN,KAC3EgvI,EAAAjoI,OAAO5J,EAAO,GACDkrQ,GAAArlQ,KAAKukQ,YAAaruQ,EAAEmjB,OAAOqqC,KAAU,EAAAmiN,EAAc,SAAUzpQ,EACrF,CAEK4D,KAAAukQ,mBAAmBvnQ,GAGTuoQ,GAAAvlQ,KAAKukQ,YAAazxF,EAAY,CAC3C0yF,YAAatvQ,EAAEi3C,SACfy8K,OAAQxtN,EAAKwtN,OACb5uN,KAAM,UAEV,MACMs+B,GAAK,gBAAiB,oDAErB,OAAAw5I,CACT,GAAA,CAAA91K,IAAA,iBAAAzE,MAQA,SAAeyE,EAAoB81K,EAAiB12K,GAClD,IAAMlG,EAAI8J,KAAKukQ,YAAY1gQ,IAAI7G,GAC3B,GAAA9G,GAAKA,EAAEi3C,UAAY,EAAG,CAClB,IAAA04N,EAAe3vQ,EAAEovQ,sBAAwB,EAC3CO,GACF/yF,EAAW/uK,OAAO7N,EAAEi3C,SAAW,EAAG04N,GAEhC3vQ,EAAEmjB,QACkBgsP,GAAArlQ,KAAKukQ,YAAaruQ,EAAEmjB,OAAOqqC,KAAU,EAAAmiN,EAAc,SAAUzpQ,GAErFlG,EAAEovQ,qBAAuB,EACzBpvQ,EAAEigC,UAAW,EACb3yB,GAAItN,EAAEwtD,IAAKtnD,EAAKsoQ,iBAAa,GACxB1kQ,KAAAukQ,YAAY/gQ,IAAIxG,EAAK9G,GAEtB2vQ,GACaN,GAAAvlQ,KAAKukQ,YAAazxF,EAAY,CAC3C0yF,YAAatvQ,EAAEi3C,SAAW,EAC1By8K,OAAQxtN,EAAKwtN,OACb5uN,KAAM,UAGZ,MACMs+B,GAAK,gBAAiB,+DAErB,OAAAw5I,CACT,GAAA,CAAA91K,IAAA,WAAAzE,MAOA,SAAS8qO,EAA2Bt6F,EAAkB+pC,EAAiB12K,GACrE,IAAMk/D,EAAQt7D,KAAKukQ,YAAY1gQ,IAAIw/N,GACnC,IAAKrjO,KAAK8lQ,kBAAkBxqM,EAAO+nK,GAAkB,OAAAvwD,EASrD,IARA,IAAM71J,EAAgBpZ,GAAIy3D,EAAM5X,IAAKtnD,EAAKsoQ,aAEpCqB,EAAgBzqM,EAAMnlC,YAAalZ,SAAAA,EAAU7mB,QAE7C4vQ,EAAUj9H,aAAmBxyI,MAAQwyI,EAAU,CAACA,GAChDk9H,EAAuB,GAEzBC,GAAwB,EACnBluQ,EAAI,EAAGy4B,EAAMu1O,EAAQ5vQ,OAAQ4B,EAAIy4B,EAAKz4B,IAAK,CAClD,IAAMmuQ,EAAUH,EAAQhuQ,GAClBytQ,EAAcpB,GAAkB8B,EAAS/pQ,EAAKwtN,QAC9Cw8C,EAAWpmQ,KAAKukQ,YAAY1gQ,IAAI4hQ,GACtC,GAAKzlQ,KAAKqmQ,wBAAwBD,EAAUX,GAErC,CACC,IAAAt4N,EAAW44N,EAAgBzqM,EAAMnuB,UAAYmuB,EAAMgqM,sBAAwB,IAAMttQ,EAAI,IAAK,EACtF,IAANA,IACsBkuQ,EAAA/4N,GAE1B,IAAMm5N,EAAW,CACf3oO,GAAI8nO,EACJ/hN,IAAKyiN,EACLh5N,SAAAA,EACA4iE,MAAOz0C,EAAMy0C,MAAQ,EACrB55E,UAAU,EACVmvO,qBAAsB,EACtB3vO,UAAU,EACVlwB,KAAMpO,EAAIikE,EAAM71D,MAChB4T,OAAQiiD,GAEVgrM,EAAS7gQ,KAAO6gQ,EAAS7gQ,KAAKsvB,OAAOuxO,GACrCL,EAAgB1jQ,KAAK4jQ,GAEhBnmQ,KAAAukQ,YAAY/gQ,IAAIiiQ,EAAaa,EACpC,MArBMhtO,GAAK,4BAASvE,OAAqB0wO,EAAiC,uBAsB5E,CACA,IAAKQ,EAAgB7vQ,OAAe,OAAA08K,EAUpC,GARI71J,SAAAA,EAAU7mB,OACNklE,EAAA5X,IAAItnD,EAAKsoQ,aAAeppM,EAAM5X,IAAItnD,EAAKsoQ,aAAa3vO,OAAOkxO,IAE3D3qM,EAAA5X,IAAItnD,EAAKsoQ,aAAeuB,EAC9B3qM,EAAMnlC,UAAW,GAIf4vO,EAAe,CACjBjzF,EAAW/uK,OAAO5F,MAAlB20K,EAAA,CAAkBozF,EAAuB,GAAGnxO,OAAGkxO,IAEzC,IAAAM,EAAmBN,EAAgB7vQ,QAAU,EACnDivQ,GAAsBrlQ,KAAKukQ,YAAajpM,EAAM5X,IAAK6iN,EAAkB,SAAU,CAC7E38C,OAAQxtN,EAAKwtN,OACb86C,YAAatoQ,EAAKsoQ,cAGLa,GAAAvlQ,KAAKukQ,YAAazxF,EAAY,CAC3C0yF,YAAaU,EAAwBD,EAAgB7vQ,OAAS,EAC9DwzN,OAAQxtN,EAAKwtN,OACb5uN,KAAM,MACN4C,MAAO,GAEX,CAEO,OAAAk1K,CACT,GAAA,CAAA91K,IAAA,eAAAzE,MAEA,SAAawwI,EAAkB+pC,EAAiB12K,GAI9C,IAHM,IAAAoqQ,EAAgB1zF,EAAW/9I,OAAOg0G,GAClC09H,EAAa19H,aAAmBxyI,MAAQwyI,EAAU,CAACA,GACnD29H,EAAgB5zF,EAAW18K,OACxB4B,EAAI,EAAGy4B,EAAMg2O,EAAWrwQ,OAAQ4B,EAAIy4B,EAAKz4B,IAAK,CACrD,IAAMqrO,EAAWx/N,GAAI4iQ,EAAWzuQ,GAAIoE,EAAKwtN,QACzC,GAAKyZ,EAAL,CAIA,IAAM/nK,EAAuB,CAC3B39B,GAAI0lM,EACJ3/K,IAAK+iN,EAAWzuQ,GAChBm1C,SAAUu5N,EAAgB1uQ,EAC1B+3G,MAAO,EACP55E,UAAU,EACVmvO,qBAAsB,EACtB3vO,UAAU,GAEN2lC,EAAA71D,KAAO,CAAC61D,GACTt7D,KAAAukQ,YAAY/gQ,IAAI6/N,EAAU/nK,EAX/B,MAFMhiC,GAAM,QAAS,yEAcvB,CACO,OAAAktO,CACT,GAAA,CAAAxpQ,IAAA,cAAAzE,MAOA,SAAY8qO,EAA2Bt6F,EAAY+pC,EAAiB12K,GAClE,OAAO4D,KAAKosI,OAAOi3F,EAAUt6F,EAAS+pC,EAAY12K,EAAM,QAC1D,GAAA,CAAAY,IAAA,eAAAzE,MAOA,SAAa8qO,EAA2Bt6F,EAAY+pC,EAAiB12K,GACnE,OAAO4D,KAAKosI,OAAOi3F,EAAUt6F,EAAS+pC,EAAY12K,EAAM,SAC1D,GAAA,CAAAY,IAAA,SAAAzE,MAEA,SAAO8qO,EAA2Bt6F,EAAY+pC,EAAiB12K,EAAgBpB,GAC7E,IAAMsgE,EAAQt7D,KAAKukQ,YAAY1gQ,IAAIw/N,GACnC,IAAKrjO,KAAK8lQ,kBAAkBxqM,EAAO+nK,GAAkB,OAAAvwD,EACrD,IAAM2yF,EAAc5hQ,GAAIklI,EAAS3sI,EAAKwtN,QAChCw8C,EAAWpmQ,KAAKukQ,YAAY1gQ,IAAI4hQ,GACtC,IAAKzlQ,KAAKqmQ,wBAAwBD,EAAUX,GAAqB,OAAA3yF,EACjE,IACMwzF,EAAW,CACf3oO,GAAI8nO,EACJ/hN,IAAKqlF,EACL57F,SAJwB,UAATnyC,EAAmBsgE,EAAMnuB,SAAW,EAAImuB,EAAMnuB,SAK7D4iE,MAAOz0C,EAAMy0C,MACb55E,UAAU,EACVmvO,qBAAsB,EACtB3vO,UAAU,EACVlwB,KAAM61D,EAAM71D,KAAKxO,MAAM,GAAK,GAC5BoiB,OAAQiiD,EAAMjiD,QAEhBitP,EAAS7gQ,KAAO6gQ,EAAS7gQ,KAAKsvB,OAAOuxO,GAC/B,IAAAK,EAAqB,UAAT3rQ,EAAmBsgE,EAAMnuB,UAAYmuB,EAAMgqM,qBAAuB,GAAKhqM,EAAMnuB,SACpF2lI,EAAA/uK,OAAO4iQ,EAAW,EAAG59H,GAC1B,IAAArhE,EAAoB,UAAT1sE,EAAmB,EAAI,EACxC,GAAIsgE,EAAMjiD,OAAQ,CAChB,IAAMutP,EAAgBtrM,EAAMjiD,OAAOqqC,IAAItnD,EAAKsoQ,aAAalhI,WACvD,SAAC1sI,GAAoB,OAAAusO,IAAax/N,GAAI/M,EAAGsF,EAAKwtN,OAAM,IAEhDtuJ,EAAAjiD,OAAOqqC,IAAItnD,EAAKsoQ,aAAa3gQ,OAAO6iQ,EAAgBl/L,EAAU,EAAGqhE,GACvEs8H,GAAsBrlQ,KAAKukQ,YAAajpM,EAAMjiD,OAAOqqC,IAAK,EAAG,SAAUtnD,EACzE,CAUO,OATF4D,KAAAukQ,YAAY/gQ,IAAIiiQ,EAAaa,GAGnBf,GAAAvlQ,KAAKukQ,YAAazxF,EAAY,CAC3C82C,OAAQxtN,EAAKwtN,OACb47C,YAAalqM,EAAMnuB,SAAW,EAC9BnyC,KAAM,QAGD83K,CACT,GAAA,CAAA91K,IAAA,WAAAzE,MAMA,SACEu6K,EACA11J,EACAhhB,GAEA,IAAMwvC,EAAaxuB,EAAOy7D,aACpBhtC,EAAWzuB,EAAO4rE,YACxB,GAAIp9C,IAAeC,EAAiB,MAAA,CAAEinI,WAAAA,EAAYn5K,QAAQ,GAC1D,IAAMktQ,EAAgBhjQ,GAAIuZ,EAAOnE,QAAS7c,EAAKwtN,QACzCk9C,EAAcjjQ,GAAIuZ,EAAOgb,OAAQh8B,EAAKwtN,QACtCm9C,EAAa/mQ,KAAKukQ,YAAY1gQ,IAAIgjQ,GAClCG,EAAWhnQ,KAAKukQ,YAAY1gQ,IAAIijQ,GAClC,GAAAC,EAAWh3J,QAAUi3J,EAASj3J,MACzB,MAAA,CACL+iE,WAAAA,EACAn5K,QAAQ,EACRu5E,KAAMkxL,GACN6C,OAAQ7C,IAGN,IAAA8C,EAAiBt7N,EAAam7N,EAAWzB,qBAAuB,EAChE6B,EAAet7N,EAAWm7N,EAAS1B,qBAAuB,EAC1D8B,EAAet0F,EAAW77K,MAAM20C,EAAYs7N,GAC5CG,EAAav0F,EAAW77K,MAAM40C,EAAUs7N,GAC9C,GAAIv7N,EAAaC,EAAU,CACzB,IAAMy7N,EAAgBx0F,EAAW77K,MAAMkwQ,EAAcv7N,GAC/C27N,EAAcH,EAAaryO,OAAOsyO,EAAYC,GACzCx0F,EAAA/uK,OAAO8nC,EAAU07N,EAAYnxQ,QACxC08K,EAAW/uK,OAAO5F,MAAlB20K,EAAkBjnI,CAAAA,EAAU,GAAG9W,OAAA19B,EAAGkwQ,KACnBhC,GAAAvlQ,KAAKukQ,YAAazxF,EAAY,CAC3C82C,OAAQxtN,EAAKwtN,OACb47C,YAAa35N,EACb63L,YAAawjC,GAEjB,KAAO,CACL,IACMK,EADgBz0F,EAAW77K,MAAMiwQ,EAAgBr7N,GACrB9W,OAAOsyO,EAAYD,GAC1Ct0F,EAAA/uK,OAAO6nC,EAAY27N,EAAYnxQ,QAC1C08K,EAAW/uK,OAAO5F,MAAlB20K,EAAkBlnI,CAAAA,EAAY,GAAG7W,OAAA19B,EAAGkwQ,KACrBhC,GAAAvlQ,KAAKukQ,YAAazxF,EAAY,CAC3C82C,OAAQxtN,EAAKwtN,OACb47C,YAAa55N,EACb83L,YAAayjC,GAEjB,CAGA,GAAIJ,EAAW1tP,OAAQ,CAKrB,IAJA,IAAM4D,EAAW8pP,EAAW1tP,OAAOqqC,IAAItnD,EAAKsoQ,aACxC9mQ,EAAQ,EACRorF,GAAc,EACdnQ,GAAe,EACV7gF,EAAI,EAAGy4B,EAAMxT,EAAS7mB,OAAQ4B,EAAIy4B,IACrC5sB,GAAIoZ,EAASjlB,GAAIoE,EAAKwtN,UAAYi9C,IACrBhuL,EAAA7gF,EACN4F,GAAA,GAEPiG,GAAIoZ,EAASjlB,GAAIoE,EAAKwtN,UAAYk9C,IACtB99K,EAAAhxF,EACL4F,GAAA,KAEPA,GAAS,IATiC5F,KAY5C6gF,EAAemQ,GACjB/rE,EAASlZ,OAAOilF,EAAc,EAAG,EAAG5rE,EAAOnE,SAClCgE,EAAAlZ,OAAO80E,EAAc,KAGrB57D,EAAAlZ,OAAO80E,EAAc,GAC9B57D,EAASlZ,OAAOilF,EAAa,EAAG5rE,EAAOnE,SAE3C,CAEO,MAAA,CAAE65J,WAAAA,EAAYn5K,QAAQ,EAC/B,GAAA,CAAAqD,IAAA,YAAAzE,MAKA,SAAUu6K,EAAiB12K,GAAgB,IAAA0vI,EAAA9rI,KACzCA,KAAKwnQ,kBAAoB,EACzB,IAAMz+H,EAAe,GACf0+H,EAAa,SACjB30F,EACA12K,GAGA,IADG,IADHid,yDAAwB,KAEfrhB,EAAI,EAAGy4B,EAAMqiJ,EAAW18K,OAAQ4B,EAAIy4B,EAAKz4B,IAAK,CACrD,IAAMglB,EAAO81J,EAAW96K,GAClBqrO,EAAWx/N,GAAImZ,EAAM5gB,EAAKwtN,QAC1BtuJ,EAAQwwE,EAAKy4H,YAAY1gQ,IAAIw/N,GAC7BpmN,EAAWpZ,GAAImZ,EAAM5gB,EAAKsoQ,aAUhC,GATAppM,EAAMnuB,SAAW2+F,EAAK07H,mBAEL,IAAbvqP,SAAqBA,GAAAA,EAAU7mB,SACjCklE,EAAMnlC,UAAW,GAEbmlC,EAAAgqM,sBAAuBroP,eAAAA,EAAU7mB,SAAU,EACjD01I,EAAK07H,mBAAqB,EAC1Bz+H,EAAQxmI,KAAKya,GACR8uH,EAAAy4H,YAAY/gQ,IAAI6/N,EAAU/nK,GAC3Br+C,SAAAA,EAAU7mB,OAAQ,CAGpB,IADA,IAAIsxQ,EAAYruP,UAChBsuP,EAAOD,SAAAC,OAAAA,EAAWjkN,KAAK,CAAA,IAAAikN,EACrBD,EAAUpC,sBAAwBroP,EAAS7mB,OAC3C01I,EAAKy4H,YAAY/gQ,IAAIkkQ,EAAU/pO,GAAI+pO,GACnCA,EAAYA,EAAUruP,MACxB,CAEWouP,EAAAxqP,EAAU7gB,EAAMk/D,EAC7B,CACF,GAGK,OADPmsM,EAAW30F,EAAY12K,GAChB2sI,CACT,GAAA,CAAA/rI,IAAA,UAAAzE,MAKA,SAAQu6K,EAAiB12K,GAGvB,IAFA,IAAM2sI,EAAe,GACjB5uI,EAAQ,EACHnC,EAAI,EAAGy4B,EAAMqiJ,EAAW18K,OAAQ4B,EAAIy4B,EAAKz4B,IAAK,CACrD,IAAMglB,EAAO81J,EAAW96K,GAClBqrO,EAAWx/N,GAAImZ,EAAM5gB,EAAKwtN,QAC1BtuJ,EAAQt7D,KAAKukQ,YAAY1gQ,IAAIw/N,GACnC/nK,EAAMnuB,SAA2B,IAAhBmuB,EAAMy0C,MAAc51G,GAAQ,EAC7CmhE,EAAMnlC,UAAW,EACjBmlC,EAAMgqM,qBAAuB,EACT,IAAhBhqM,EAAMy0C,QACRg5B,EAAQxmI,KAAKya,GACJ7iB,GAAA,GAEX,IAAM8iB,EAAWpZ,GAAImZ,EAAM5gB,EAAKsoQ,aAC5BznP,SAAAA,EAAU7mB,QACP4J,KAAA4nQ,QAAQ3qP,EAAU7gB,EAE3B,CACO,OAAA2sI,CACT,GAAA,CAAA/rI,IAAA,cAAAzE,MAGA,SAAYu6K,EAAiB12K,GAG3B,IADA,IAAMyrQ,EAAgB,GACb7vQ,EAAI,EAAGy4B,EAAMqiJ,EAAW18K,OAAQ4B,EAAIy4B,EAAKz4B,IAAK,CACrD,IAAMglB,EAAO81J,EAAW96K,GAClBqrO,EAAWx/N,GAAImZ,EAAM5gB,EAAKwtN,QAGZ,IAFN5pN,KAAKukQ,YAAY1gQ,IAAIw/N,GAEzBtzH,OACR83J,EAAStlQ,KAAKya,EAElB,CACO,OAAA6qP,CACT,GAAA,CAAA7qQ,IAAA,qBAAAzE,MASA,SAAmBu6K,EAAiB12K,GAA0D,IAAAowI,EAAAxsI,KAA1ChF,EAAAkD,UAAA9H,OAAA,QAAAkD,IAAA4E,UAAA,GAAAA,UAAA,GAAkC,OAC9Eg+E,EAAmB,GAalB,OAZI42F,EAAAnjK,SAAQ,SAACqN,GAClB,IAAMqmN,EAAWx/N,GAAImZ,EAAM5gB,EAAKwtN,QAC1Bk7C,EAAWt4H,EAAK+3H,YAAY1gQ,IAAIw/N,GACjCyhC,EAAS3uO,WACD,WAATn7B,EACFkhF,EAAI35E,KAAK8gO,GACS,SAATroO,EACTkhF,EAAI35E,KAAKya,GAETk/D,EAAI35E,KAAKuiQ,GAEb,IACO5oL,CACT,GAAA,CAAAl/E,IAAA,qBAAAzE,MAYA,SACEgsQ,EACAzxF,EACApwH,EACAtmD,GAIA,IADA,IAFA2zG,EAAQ7xG,UAAA9H,OAAA,QAAAkD,IAAA4E,UAAA,GAAAA,UAAA,GAAA,EACRmb,yDAAwB,KAEfrhB,EAAI,EAAGy4B,EAAMqiJ,EAAW18K,OAAQ4B,EAAIy4B,EAAKz4B,IAAK,CACrD,IAAMglB,EAAO81J,EAAW96K,GAClBqrO,EAAWghC,GAAkBrnP,EAAM5gB,EAAKwtN,QAC1C,GAAAhxM,GAAYyqN,GAEd,YADI/pM,GAAM,gBAAiB,0EAG7B,IAAMrc,EAAWpZ,GAAImZ,EAAM5gB,EAAKsoQ,aAC1BppM,EAAuB,CAC3B39B,GAAI0lM,EACJ3/K,IAAK1mC,EACLmwB,SAAoB,IAAV4iE,EAAc/3G,GAAI,EAC5B+3G,MAAAA,EACA55E,UAAU,EACVmvO,qBAAsB,EACtB3vO,SAAU8gN,GAAsB/zL,EAAQ1lC,EAAMhlB,GAC9CqhB,OAAAA,GAEIiiD,EAAA71D,KAAO4T,EAASA,EAAO5T,KAAKsvB,OAAOumC,GAAS,CAACA,GACvCipM,EAAA/gQ,IAAI6/N,EAAU/nK,GACtBr+C,SAAAA,EAAU7mB,QACZ4J,KAAKykQ,mBAAmBF,EAAatnP,EAAUylC,EAAQtmD,EAAM2zG,EAAQ,EAAGz0C,EAE5E,CACF,GAAA,CAAAt+D,IAAA,sBAAAzE,MAGA,SAAoBu6K,EAAiBpwH,EAAyBtmD,GAC5D,IAAA,IAASpE,EAAI,EAAGy4B,EAAMqiJ,EAAW18K,OAAQ4B,EAAIy4B,EAAKz4B,IAAK,CACrD,IAAMglB,EAAO81J,EAAW96K,GAClBqrO,EAAWx/N,GAAImZ,EAAM5gB,EAAKwtN,QAC5B,GAAAhxM,GAAYyqN,GAEd,YADI/pM,GAAM,gBAAiB,0EAG7B,IAAMgiC,EAAQt7D,KAAKukQ,YAAY1gQ,IAAIw/N,GACnC/nK,EAAM3lC,SAAW8gN,GAAsB/zL,EAAQ1lC,EAAMhlB,GAChDgI,KAAAukQ,YAAY/gQ,IAAI6/N,EAAU/nK,GAC/B,IAAMr+C,EAAWpZ,GAAImZ,EAAM5gB,EAAKsoQ,aAC5BznP,SAAAA,EAAU7mB,QACP4J,KAAA8nQ,oBAAoB7qP,EAAUylC,EAAQtmD,EAE/C,CACF,GAAA,CAAAY,IAAA,oBAAAzE,MAKA,SAAkB+iE,EAAsB+nK,GACtC,QAAK/nK,IACChiC,GAAK,mBAAiBvE,OAAGsuM,EAA0B,sBAChD,EAGX,GAAA,CAAArmO,IAAA,0BAAAzE,MAKA,SAAwB+iE,EAAsB+nK,GAC5C,OAAI/nK,IACEhiC,GAAK,mCAAiBvE,OAAmBsuM,EAA0B,sBAChE,EAGX,IAAA,CAlqB0D,GA6qBrD,SAASgiC,GACdd,EACA7gN,EACAgkB,EACA1sE,EACAoB,GAGA,IADA,IAAI8lF,EAAMx+B,EACHw+B,GAAK,CAAA,IAAA6lL,EACJzsM,EAAQipM,EAAY1gQ,IAAIA,GAAIq+E,EAAK9lF,EAAKwtN,SACtCo+C,GAAa1sM,EAAMgqM,sBAAwB,GAAK59L,EACtDpM,EAAMgqM,qBAAuB9lQ,KAAKC,IAAI,EAAGuoQ,GACzC9lL,EAAM5mB,SAAeysM,UAAfzsM,EAAOjiD,cAAP0uP,IAAeA,OAAfA,EAAAA,EAAerkN,GACvB,CAEa,SAAT1oD,GACmBitQ,GAAA1D,EAAa7gN,EAAKtnD,EAE3C,CAEgB,SAAA6rQ,GAAwB1D,EAA+B7gN,EAAQtnD,GAC7E,IAAM6gB,EAAWpZ,GAAI6/C,EAAKtnD,EAAKsoQ,aAC3BznP,SAAAA,EAAU7mB,QACH6mB,EAAAtN,SAAQ,SAACqN,GAChB,IAAMs+C,EAAQipM,EAAY1gQ,IAAIA,GAAImZ,EAAM5gB,EAAKwtN,SACxCtuJ,IACLA,EAAMgqM,qBAAuB,EACR2C,GAAA1D,EAAajpM,EAAM5X,IAAKtnD,GAC/C,GAEJ,CAQO,SAASgpQ,GACdb,EACAO,EACA3uO,EACA/5B,GAEM,IAAEsnD,EAAkBohN,EAAlBphN,IAAKvW,EAAa23N,EAAb33N,SACStpC,GAAI6/C,EAAKtnD,EAAKsoQ,aACtB/0P,SAAQ,SAACqN,EAASkrP,GAC9B,IAAM7kC,EAAWx/N,GAAImZ,EAAM5gB,EAAKwtN,QAC1BzvN,EAAQg8B,EAAWgX,EAAW,EAAI+6N,GAAc,EAEhD5B,EAA0B71N,GAAAA,MADf8zN,EAAY1gQ,IAAIw/N,IAE5B,GAAA,CACH3/K,IAAK1mC,EACLmwB,SAAUhzC,EACVg8B,UAAU,EACV9c,OAAQyrP,IAIV,GAFYP,EAAA/gQ,IAAI6/N,EAAUijC,IAErBnwO,EAAU,CACb,IAAMlZ,EAAWpZ,GAAImZ,EAAM5gB,EAAKsoQ,aAC5BznP,SAAAA,EAAU7mB,QACZgvQ,GACEb,EAAA9zN,GAAAA,MAEK61N,GAAA,GAAA,CACHn5N,UAAU,EACVhX,UAAU,IAEZA,EACA/5B,EAGN,CACF,GACF,CAEO,SAASspQ,GACd5hQ,EACA9G,EACA+rI,EACA3sI,GAEA,IAAA,IAASpE,EAAI,EAAGy4B,EAAM3sB,EAAK1N,OAAQ4B,EAAIy4B,EAAKz4B,IAAK,CAC/C,IAAMglB,EAAOlZ,EAAK9L,GAClB,GAAI6L,GAAImZ,EAAM5gB,EAAKwtN,UAAY5sN,EAG7B,YADA8G,EAAK9L,GAAK+wI,GAGZ,IAAM9rH,EAAgBpZ,GAAImZ,EAAM5gB,EAAKsoQ,cAAgB,GACjDznP,SAAAA,EAAU7mB,QACEsvQ,GAAAzoP,EAAUjgB,EAAK+rI,EAAS3sI,EAE1C,CACF,CAEgB,SAAAmpQ,GACdhB,EACAzxF,EACAh/E,GAUA,IAFM,IAAAn0F,EAAQm0F,EAAM0xK,aAAe,EAC7B7+P,EAAMmtF,EAAM4vI,aAAe5wD,EAAW18K,OACnC+2C,EAAWxtC,EAAOwtC,EAAWxmC,EAAKwmC,IAAY,CACrD,IAAMnwB,EAAO81J,EAAW3lI,GAClBmuB,EAAQipM,EAAY1gQ,IAAIA,GAAImZ,EAAM82E,EAAM81H,SACzCtuJ,GACChiC,GAAK,QAAS,uBAEpBgiC,EAAMnuB,SAAWA,IAAY2mD,aAAO,EAAPA,EAAOl2F,QAAS,GAAK,CACpD,CACF,okBCl1BgB,SAAAuqQ,GACdhpQ,EACAie,GAMA,IAAQq1H,EAAmCr1H,EAAnCq1H,MAAOqgC,EAA4B11J,EAA5B01J,WAAYs1F,EAAgBhrP,EAAhBgrP,YAC3Bx3L,EAA0Cv9B,SAAOl0C,GAAzC2E,EAAM8sE,EAAN9sE,KAAMigQ,EAAAnzL,EAAAmzL,kBAAmB35O,EAAKwmD,EAALxmD,KAE3Bi+O,EAA4Bv0O,OAAI,GAChCw0O,EAAoCx0O,OAAI,GAM9C+tD,EAAA7lE,GALkDqa,GAChD0tO,EACA5kQ,EAAM6kQ,yBACN7kQ,EAAM+kQ,0BACN,qBACF,GALOqE,EAAmB1mL,EAAA,GAAA2mL,EAAoB3mL,EAAA,GAOxC4mL,EAAwB30O,EAAAA,IAI3B,CAAE94B,KAAM,iBAKF,SAAA6vI,IAA2F,IAAjF7vI,EAA4CkD,UAAA9H,OAAA,QAAAkD,IAAA4E,UAAA,GAAAA,UAAA,GAAA,aACvD6qI,GAD4F7qI,UAAA9H,OAAA8H,EAAAA,kBAAA5E,IAC1EwK,EAAKvL,MAC7Bu6K,EAAWv6K,MAAQk6I,EAAMl6I,MAAMsyI,UAAU9B,EAASq/H,EAAY7vQ,OACxD,IAAAmwQ,EAAe51F,EAAWv6K,MAAM6L,KAAI,SAACtN,GAAM,OAAAutQ,GAAkBvtQ,EAAGsxQ,EAAY7vQ,MAAMqxN,WACxF4+C,EAAqBE,EAAc,CACjChlN,SAAK,EACLohN,cAAU,EACV33N,cAAU,EACVnyC,KAAM,SACNqzD,QAASrzD,IAEXytQ,EAAsBlwQ,MAAMyC,KAAO,YACrC,CAqDA,SAAS2tQ,EACP7kQ,EACAykQ,GAEA,IACAK,EDivBG,WAQL,IALA,IAFAC,EAAuC3qQ,UAAA9H,OAAA,QAAAkD,IAAA4E,UAAA,GAAAA,UAAA,GAAA,GACvC4qQ,EAAA5qQ,UAAA9H,OAAA,QAAAkD,IAAA4E,UAAA,GAAAA,UAAA,GAAuC,GAEjC6qQ,EAAmC,GACnCC,EAAiC,GACjCC,MAA4C/kQ,IAC5CglQ,MAA4ChlQ,IACzClM,EAAI,EAAGy4B,EAAMo4O,EAAgBzyQ,OAAQ4B,EAAIy4B,EAAKz4B,IAClCixQ,EAAAzlQ,IAAIqlQ,EAAgB7wQ,IAAI,GAE7C,IAAA,IAASA,EAAI,EAAGy4B,EAAMq4O,EAAgB1yQ,OAAQ4B,EAAIy4B,EAAKz4B,IAClCkxQ,EAAA1lQ,IAAIslQ,EAAgB9wQ,IAAI,GAE7C,IAAA,IAASA,EAAI,EAAGy4B,EAAMo4O,EAAgBzyQ,OAAQ4B,EAAIy4B,EAAKz4B,IAChDkxQ,EAAmBrlQ,IAAIglQ,EAAgB7wQ,KAChCgxQ,EAAAzmQ,KAAKsmQ,EAAgB7wQ,IAGnC,IAAA,IAASA,EAAI,EAAGy4B,EAAMq4O,EAAgB1yQ,OAAQ4B,EAAIy4B,EAAKz4B,IAChDixQ,EAAmBplQ,IAAIilQ,EAAgB9wQ,KAC9B+wQ,EAAAxmQ,KAAKumQ,EAAgB9wQ,IAG9B,MAAA,CACL+wQ,YAAAA,EACAC,UAAAA,EAEJ,CC7wBuCG,CAAqBZ,EAFxDrqQ,UAAA9H,OAAA,QAAAkD,IAAA4E,UAAA,GAAAA,UAAA,GAA2C,IAEnC8qQ,EAAWJ,EAAXI,UAAWD,EAAAH,EAAAG,YAGZ,OAFPt2H,EAAMl6I,MAAM6wQ,eAAeJ,EAAWllQ,EAAMskQ,EAAY7vQ,OACxDk6I,EAAMl6I,MAAM8wQ,aAAaN,EAAajlQ,EAAMskQ,EAAY7vQ,OACjDlB,EAAIyM,EACb,CAEMg4B,EAAAA,MAAA,CAACysO,EAAmBzkQ,IAAO,SAAAi4B,EAAAC,GAAgD,IAA9CusO,EAA8CvsP,GAAA+f,EAAA,GAA7B,GAAIutO,EAAJttP,GAAAggB,EAAA,GAAuB,GACzE,GAAKy2G,EAAMl6I,MAAMgsQ,YAAY5gQ,MAASG,EAAKvL,MAAMnC,OAAjD,CACI,GAAqC,yBAArCqyQ,EAAsBlwQ,MAAMyC,KAAiC,CAC/D,IAAAs4C,EAA0Bm1N,EAAsBlwQ,OAAS,CAAC,EAAlDmrD,EAAKpQ,EAALoQ,IAAKvW,EAAAmG,EAAAnG,SACb2lI,EAAWv6K,QAAYk6I,EAAMl6I,MAAMwsQ,iBAAiB,CAAErhN,IAAAA,EAAKvW,SAAAA,GAAS91C,EAAOy7K,EAAWv6K,OAAQ6vQ,EAAY7vQ,OACjG,KAAqC,iBAArCkwQ,EAAsBlwQ,MAAMyC,MACnB2tQ,EAAA71F,EAAWv6K,MAAOgwQ,EAAmBe,GAEzDb,EAAsBlwQ,MAAMyC,KAAO,cAPsB,CAQ3D,IAaO,MAAA,CACLutQ,kBAAAA,EACAF,0BAAAA,EACAC,kCAAAA,EACAz9H,UAAAA,EACA+8H,QAtFF,WACa90F,EAAAv6K,MAAAlB,EAAYo7I,EAAMl6I,MAAMqvQ,QAAQ90F,EAAWv6K,MAAO6vQ,EAAY7vQ,QACzEiwQ,EAAqB,GAAI,CACvB9kN,SAAK,EACLohN,cAAU,EACV33N,cAAU,EACVnyC,KAAM,OACNqzD,QAAS,YAEb,EA8EEk7M,sBA5EO,SACPjnP,EACA+rC,GACA,IAAAm7M,EACQ9lN,EAAkBphC,EAAlBohC,IAAKvW,EAAa7qB,EAAb6qB,SACbs7N,EAAsBlwQ,MAAQk4C,GAAA,CAC5Bz1C,KAAM,wBACHsnB,GAEL,IAAM+gN,EAAWghC,GAAkB3gN,EAAK0kN,EAAY7vQ,MAAMqxN,QACpDk7C,EAAWryH,EAAMl6I,MAAMgsQ,YAAY1gQ,IAAIw/N,GACzComC,EAAgBpyQ,EAAIkxQ,EAAkBhwQ,OAC1C,GAAIusQ,EAAS3uO,SAAU,CAErB,IADM,IAAAuzO,EAAuBj3H,EAAMl6I,MAAMqsQ,wBAAwB,CAAClhN,GAAM0kN,EAAY7vQ,OAC3EP,EAAI,EAAGy4B,EAAMg5O,EAAcrzQ,OAAQ4B,EAAIy4B,EAAKz4B,IAAK,CACxD,IAAMi4F,EAAYw5K,EAAczxQ,GAC5B0xQ,EAAqB7yP,SAASo5E,KAChCw5K,EAAczxQ,QAAK,EAEvB,CACgByxQ,EAAAA,EAAcnrP,OAAOqC,QACvC,MACE8oP,EAAclnQ,KAAK8gO,GAErB,IAAMjmN,EAAS,CACbsmC,IAAAA,EACAvW,SAAAA,EACA23N,SAAAA,EACAz2M,QAAAA,GAEFm6M,EAAqBiB,EAAeh5N,GAAAA,MAC/BrzB,GAAAA,GAAAA,CACHpiB,KAAM8pQ,EAAS3uO,SAAW,OAAS,oBAErCqzO,EAAArqQ,EAAMglQ,0BAANqF,OAAAA,EAAAxyQ,KAAAmI,EAA2Bie,EAC7B,EA0CEusP,yBAlB+B,SAAC7lQ,GAAyB,IAAA8lQ,EAAAC,EAChDD,QAALA,EAAAx/O,EAAK7xB,aAALqxQ,IAAKA,GAALA,EAAYE,mBAAqBzB,EAA0B9vQ,OAC7DsyI,EAAU,qBAAsBxzI,EAAIyM,IACpCukQ,EAA0B9vQ,OAAQ,GACP,QAA7BsxQ,EAAWtB,EAAkBhwQ,aAAA,IAAAsxQ,GAAlBA,EAAyBzzQ,QAClCu5C,EAAAA,UAAS,WACImjI,EAAAv6K,MAAQowQ,IAAsB7kQ,GAAOykQ,EAAkBhwQ,MAAO,GAC3E,KAaN,okBCzHwB,SAAAwxQ,GAAY5qQ,EAA6B83B,GAC/D,IAAA25C,EAA0Bv9B,SAAOl0C,GAAzB2E,EAAA8sE,EAAA9sE,KAAM6kN,EAAQ/3I,EAAR+3I,QACdx0I,EAA4BpgD,GAAU,QAAS50B,EAAM6jB,QAA7ClsB,EAAGq9E,EAAHr9E,EAAGu9B,EAAA8/C,EAAA9/C,aACXwiC,EAAiD59B,GAAc,CAC7D+wO,iBAAkBC,GAClBC,mBAAoBC,KAFdH,EAAAnzM,EAAAmzM,iBAAkBE,EAAmBrzM,EAAnBqzM,mBAKpBz3H,EAAQ3+G,EAAAA,IAAI,IAAIwwO,IAChB8F,EAAcC,EAAAA,aACdv3F,EAAah/I,MAAkC,IAC7Cu8L,EAAqB3E,KAArB2E,iBACF74J,EAAc52C,KAEdwnP,EAAcpxP,EAAAA,UAAS,WAAA,IAAAszP,EAAA,MAAO,CAClC1gD,OAAQzqN,EAAMyqN,QAAU,KACxB86C,aAAmB,QAAN4F,EAAAnrQ,EAAMirB,YAAA,IAAAkgP,OAAA,EAANA,EAAY5F,cAAe,WACxC,IAEI6F,EAQFpC,GAAkBhpQ,EAAO,CAAEszI,MAAAA,EAAOqgC,WAAAA,EAAYs1F,YAAAA,IAPhDG,EAAAgC,EAAAhC,kBACAF,EAAAkC,EAAAlC,0BACAC,EAAAiC,EAAAjC,kCACAz9H,EAAA0/H,EAAA1/H,UACA+8H,EAAA2C,EAAA3C,QACA+B,EAAAY,EAAAZ,yBACAJ,EAAAgB,EAAAhB,sBAGIiB,EAAgBxzP,EAAAA,UAAS,WAAA,OAAM2xM,EAAQpwN,MAAMohE,MAAK,SAAC4oF,GAAQ,MAAe,eAAfA,EAAIoxE,aAE/D73L,QAAA0uO,GAAe,SAAC9nN,GACf+vF,EAAMl6I,OACXk6I,EAAMl6I,MAAMuvQ,oBAAoBh1F,EAAWv6K,MAAOmqD,EAAQ0lN,EAAY7vQ,MACxE,IAmDA,SAASkyQ,EAAU3mQ,GAAsB,IAAA+lQ,EAC/BlhD,EAA+DxpN,EAA/DwpN,QAASo7C,EAAsD5kQ,EAAtD4kQ,kBAAmBC,EAAmC7kQ,EAAnC6kQ,yBAA0B55O,EAASjrB,EAATirB,KAC9DqoH,EAAMl6I,MAAMmyQ,iBAAiB5mQ,EAAM6kN,EAASy/C,EAAY7vQ,OACxD,IAAMoyQ,EAAoBhqP,SAAS2nP,EAAkC/vQ,QAASyrQ,eAAAA,EAA0B5tQ,SAClGw0Q,EAAgBjqP,SAAQyJ,aAAAA,EAAAA,EAAM0/O,oBAAqBzB,EAA0B9vQ,OACrD,QAAzBsxQ,EAAAtB,EAAkBhwQ,aAAlBsxQ,IAAyBA,GAAzBA,EAAyBzzQ,SAAa2tQ,GAAqB4G,IAAuBC,GACrFjB,EAAyB7lQ,GACzBwkQ,EAAkC/vQ,OAAQ,GAE/Bu6K,EAAAv6K,MAAAlB,EAAYyM,EAE3B,CAyLO,OAnOPg4B,QACE,CAACh4B,IACD,WACM3E,EAAMirB,KACRqgP,EAAU3mQ,EAAKvL,OAEfu6K,EAAWv6K,MAAQuL,EAAKvL,KAE5B,GACA,CAAEkkC,WAAW,IAQfwM,EAAAA,aAAY,WAAM,IAAA4hO,EACX1rQ,EAAMirB,eACLygP,EAAAp4H,EAAAl6I,MAAMgsQ,mBAANsG,OAAAA,EAAmBvnQ,QACzBmvI,EAAMl6I,MAAQ,KAChB,IAEAujC,EAAAA,OACE,WAAA,IAAAgvO,EAAA,MAAM,CAACniD,UAASmiD,EAAA3rQ,EAAMirB,yBAAN0gP,EAAYC,oBAAmB,IAC/C,WACEX,EAAY7xQ,MA6ChB,WAAgC,IAAAyyQ,EACtBriD,EAAYxpN,EAAZwpN,QACJoiD,GAA4B,QAANC,EAAA7rQ,EAAMirB,YAAN4gP,IAAMA,OAANA,EAAAA,EAAYD,sBAAuB,EAE7D,KACgC,QAA9BpiD,EAAAA,EAAQoiD,UAAsB,IAAAE,GAA9BtiD,EAA8B3tN,MACW,gCAAjC,QAAR2tN,EAAAA,EAAQoiD,UAAA,IAAAG,OAAA,EAARviD,EAA8BgL,SAC9B,CAAA,IAAAs3C,EAAAC,EACuBH,GAAA,CACzB,CACA,OAAOpiD,EAAQoiD,EACjB,CAxDwBI,EACtB,GACA,CAAE1uO,WAAW,IAuMR,CACLg2G,MAAAA,EACA21H,YAAAA,EACAt1F,WAAAA,EACAs4F,SAhCF,SAAkBhuP,GACV,IAAAlnB,EAAIu8I,EAAMl6I,MAAM6yQ,SAASt4F,EAAWv6K,MAAO6kB,EAAQgrP,EAAY7vQ,OACrE,GAAIrC,EAAEyD,OACJm5K,EAAWv6K,MAAQlB,EAAInB,EAAE48K,gBACpB,CAAA,IAAAu4F,EACCjuP,EAAS,CACb81D,KAAMh9E,EAAEg9E,KACR+zL,OAAQ/wQ,EAAE+wQ,gBAEZoE,EAAAlsQ,EAAM8kQ,0BAANoH,OAAAA,EAAAr0Q,KAAAmI,EAA2Bie,EAC7B,CACF,EAsBE+/J,QAjGO,SAAWngL,EAAoB8+P,GAChC,IAAA3uN,EAAWslG,EAAMl6I,MAAM+yQ,WAAWtuQ,EAAK8+P,EAAYhpF,EAAWv6K,MAAO6vQ,EAAY7vQ,OACjFwwI,EAAU1xI,EAAIy7K,EAAWv6K,OAC/BwwI,EAAQ57F,GAAY2uN,EACpBhpF,EAAWv6K,MAAQwwI,CACrB,EA6FE9uC,QAtFF,SAAiBj9F,GACR,OAAAy1I,EAAMl6I,MAAM0hG,QAAQj9F,EAC7B,EAqFEge,OA/EF,SAAgBhe,GAEH81K,EAAAv6K,MAAAlB,EAAYo7I,EAAMl6I,MAAMyiB,OAAOhe,EAAK81K,EAAWv6K,MAAO6vQ,EAAY7vQ,OAC/E,EA6EEgzQ,eAvEF,SAAwBvuQ,GACX81K,EAAAv6K,MAAAlB,EAAYo7I,EAAMl6I,MAAMgzQ,eAAevuQ,EAAK81K,EAAWv6K,MAAO6vQ,EAAY7vQ,OACvF,EAsEEqzI,SA/DO,WAAuD,IAA3C5uI,EAAqBkB,UAAA9H,OAAA,QAAAkD,IAAA4E,UAAA,GAAAA,UAAA,GAAA,GAAI6qI,EAAkB7qI,UAAA9H,OAAA8H,EAAAA,kBAAA5E,EAM9Dw5K,EAAWv6K,MALNyE,EAKc3F,EAAIo7I,EAAMl6I,MAAMqzI,SAAS5uI,EAAK+rI,EAAS+pC,EAAWv6K,MAAO6vQ,EAAY7vQ,QAJnEk6I,EAAMl6I,MAAMizQ,aAAaziI,EAAS+pC,EAAWv6K,MAAO6vQ,EAAY7vQ,MAKvF,EAyDEywI,YApDO,SAAeq6F,EAAyBt6F,GAC/C+pC,EAAWv6K,MAAQlB,EAAIo7I,EAAMl6I,MAAMywI,YAAYq6F,EAAUt6F,EAAS+pC,EAAWv6K,MAAO6vQ,EAAY7vQ,OAClG,EAmDEuwC,aA9CO,SAAgBu6L,EAAyBt6F,GAChD+pC,EAAWv6K,MAAQlB,EAAIo7I,EAAMl6I,MAAMuwC,aAAau6L,EAAUt6F,EAAS+pC,EAAWv6K,MAAO6vQ,EAAY7vQ,OACnG,EA6CEkzQ,iBA3JF,SAA0BlpH,GACxB,IAAKpjJ,EAAMirB,MAAQm4H,EAAIoxE,SAAWy2C,EAAY7xQ,MAAMo7N,OAAe,OAAApxE,EACnE,IAAMmpH,EAASj7N,MAAK25N,EAAY7xQ,OAyCzB,OAxCAmzQ,EAAA9rE,KAAO,SAAC7hL,EAAGuE,GAChB,IAzGIlF,EACAuuP,EAwGEC,EAAWznC,GAAA1zL,GAAAA,MAAgBnuB,GAAG,GAAA,CAAAigI,IAAA9xG,GAAU25N,GAAAA,EAAY7xQ,SAAW0+B,EAAQ9Y,MAAO,CAClFuqM,iBAAkBvpN,EAAMupN,mBAEpBmjD,EAAep5H,EAAMl6I,MAAMgsQ,YAAY1gQ,IAAIA,GAAIye,EAAEohC,IAAK0kN,EAAY7vQ,MAAMqxN,SACxE9qK,EAhDV,SAA0BixD,GAAe,IAAA+7J,EAAAC,EACvC,QAAc,IAAVh8J,EAAJ,CACA,IAAMi8J,OAAgC,KAAjBF,QAANA,EAAA3sQ,EAAMirB,YAAN0hP,IAAMA,OAANA,EAAAA,EAAYE,QAAuB,GAAiBD,QAAjBA,EAAK5sQ,EAAMirB,YAAN2hP,IAAYA,OAAZA,EAAAA,EAAYC,OAE5D,OAAAA,EAAS,CAAE7sN,eAAapqB,OAAGg7E,EAAQi8J,GAAU,EAAA,OAAU,EAHrC,CAI3B,CA2CqBC,CAAiBJ,aAAAA,EAAAA,EAAc97J,OAC1ClwE,EAAAznC,EAAA,GAAai4N,EAAiBC,YAAc/tE,EAAI7oG,UAChDyrN,EAAgBthQ,GAAIye,EAAEohC,IAAK0kN,EAAY7vQ,MAAMmsQ,aACnD,GAAKS,GAAiBA,aAAyB5uQ,QAA4B,IAAlB4uQ,EAAwB,CAAA,IAAA+G,EACzEpsF,EAA8EosF,QAAnEA,EAAAz5H,EAAMl6I,MAAMgsQ,YAAY1gQ,IAAIA,GAAIye,EAAEohC,IAAK0kN,EAAY7vQ,MAAMqxN,oBAAUsiD,GAAnEA,EAAmE/1O,UAjHlF/Y,EAASqzB,GAAAA,MAkHEnuB,GAlHG2U,GAAAA,CAASj8B,KAAM,SAC7B2wQ,EAAkB70Q,EAAEu9B,EAAa97B,MAAMuxB,sBAAuB/L,EAAAA,EAAGX,IAAWwzB,EAAAA,YAAAs5N,EAAoB,KAAA,MAC/F1yM,EAAY,wBAAyB,CAC1C96C,YAAaivP,EACbvuP,OAAAA,KAIe,SAAC6Z,GAClB,IAAM7Z,EAASqzB,GAAAA,MAAKxZ,GAAAA,GAAAA,CAASj8B,KAAM,WAC7BmxQ,EAAoBr1Q,EAAEu9B,EAAa97B,MAAMuxB,sBAAuB/L,EAAAA,EAAGX,IAAWwzB,EAAAA,YAAAo5N,EAAkB,KAAA,MACtG,OAAOxyM,EAAY,wBAAyB,CAC1C96C,YAAayvP,EACb/uP,OAAAA,IAsGMuM,CAAWrH,GAEb,OAAAsuB,EAAAA,YAAA,MAAA,CAAAC,MAAY,CAACw/K,EAAiB9tE,IAAK1iH,SAAiBif,GACjD,IAAGqmN,EAAc/uQ,SAA4B,IAAlB+uQ,IAAkBv0N,EAAAK,YAAA,OAAA,CAAAJ,MAEnCw/K,EAAiBtnM,KACxBytB,QAAS,SAACngD,GACRkzQ,EAAsBjnP,EAAG,oBACzBjsB,EAAEyhF,iBACJ,GAECgoG,CAAAA,IAGJ8rF,GAGP,CAEE,OAAAh7N,EAAAA,YAAA,MAAA,CAAArK,MAAYuY,EAAAjO,MAAiB,CAAChR,EAASwwL,EAAiBE,WAAQ,CAAA3/K,EAAAK,YAAA,OAAA,CAAAJ,MACjDw/K,EAAiBtnM,MAAM,MACnC6iP,MAKiB,IAApBF,EAAOhyN,WACTgyN,EAAOhyN,SAAW,SAAC37B,EAAGuE,GAAM,OAAA6hN,GAAA1zL,GAAAA,MAAgBnuB,GAAA,GAAA,CAAGigI,IAAK9xG,GAAK25N,GAAAA,EAAY7xQ,SAAW0+B,EAAQ9Y,MAAK,GAExFutP,CACT,EAgHE3G,iBAzLO,SAAiBziP,EAA4C+rC,GAA4C,IAAA+9M,EAAA5C,EAC1GxtB,EAAAvrM,GAAA,CAAA,EAAmBnuB,QACU,IAA/BA,EAAEohC,IAAItW,uBACI4uM,EAAA7uM,SAAW7qB,EAAEohC,IAAItW,sBAEpB0lI,EAAAv6K,MAAAlB,EAAYo7I,EAAMl6I,MAAMwsQ,iBAAiB/oB,EAAalpE,EAAWv6K,MAAO6vQ,EAAY7vQ,QAC/F,IAAM8qO,EAAWx/N,GAAIye,EAAEohC,IAAK0kN,EAAY7vQ,MAAMqxN,QACxCk7C,EAAwBsH,QAAbA,EAAA35H,EAAMl6I,aAAO6zQ,IAAAA,GAAA,QAAAA,EAAbA,EAAa7H,mBAAA,IAAA6H,OAAA,EAAbA,EAA0BvoQ,IAAIw/N,GACpB,QAA3BmmC,EAAArqQ,EAAMglQ,0BAAqB,IAAAqF,GAA3BA,EAAAxyQ,KAAAmI,EAA2B,CACzBukD,IAAKphC,EAAEohC,IACPvW,SAAU7qB,EAAE6qB,SACZ23N,SAAAA,EACAz2M,QAAAA,GAEJ,EA4KEw8E,UAAAA,EACA+8H,QAAAA,EACAt8E,YA3BF,WACE,OAAO74C,EAAMl6I,MAAM+yL,YAAYxY,EAAWv6K,MAAO6vQ,EAAY7vQ,MAC/D,EA0BEkyQ,UAAAA,EACA4B,mBAtBO,WAA6D,IAA1CrxQ,yDAAkC,OAC5D,OAAOy3I,EAAMl6I,MAAM8zQ,mBAAmBv5F,EAAWv6K,MAAO6vQ,EAAY7vQ,MAAOyC,EAC7E,EAqBEuuQ,sBAAAA,EAEJ,okBCrTa,IAAA+C,OAAkBpoQ,IAExB,SAASqoQ,GACdhI,EACAzgQ,EACA1H,EACAlG,GAEI,GAAAo2Q,GAAYzoQ,IAAIC,GAAc,OAAAwoQ,GAAYzoQ,IAAIC,GAC5C,IAAAnK,EAASzD,GAAK,CAAEs2Q,YAAa,GAAIC,gBAAiB,GAAIC,aAAc,IACpEzvP,EAAWpZ,GAAIC,EAAM1H,EAAKsoQ,aAC5B,IAACznP,IAAaA,EAAS7mB,OAAe,OAAAuD,EAC1C,IAAMgzQ,EAAqB1vP,EAASqB,QAClC,SAACtB,GAAuB,IAAA4vP,EAAA,gBAAAA,EAACrI,EAAY1gQ,IAAIA,GAAImZ,EAAM5gB,EAAKwtN,gBAAU,IAAAgjD,GAAzCA,EAAyCj3O,SAAA,IAE7Dh8B,EAAA6yQ,YAAAn1Q,EAAkB,IAAIkV,IAAI5S,EAAO6yQ,YAAYz3O,OAAO43O,KAC3D,IAAA,IAAS30Q,EAAI,EAAGy4B,EAAMxT,EAAS7mB,OAAQ4B,EAAIy4B,EAAKz4B,IAAK,CACnD,IAAM60Q,EAAQ5vP,EAASjlB,GACjBqpB,EAAIxd,GAAIgpQ,EAAOzwQ,EAAKsoQ,aAC1B,GAAIrjP,SAAAA,EAAGjrB,OAAQ,CACb,IAAM02Q,EAAgBP,GAAgBhI,EAAasI,EAAOzwQ,EAAMzC,GACzDA,EAAA6yQ,YAAAn1Q,EAAkB,IAAIkV,IAAI5S,EAAO6yQ,YAAYz3O,OAAO+3O,EAAcN,cAC3E,CACF,CAES,IAAA,IAAAx0Q,EAAI,EAAGy4B,EAAM92B,EAAO6yQ,YAAYp2Q,OAAQ4B,EAAIy4B,EAAKz4B,IAAK,CACvD,IAAAglB,EAAOrjB,EAAO6yQ,YAAYx0Q,GAC1BilB,EAAWpZ,GAAImZ,EAAM5gB,EAAKsoQ,aAC1BrhC,EAAWx/N,GAAImZ,EAAM5gB,EAAKwtN,QACzBjwN,EAAA8yQ,gBAAgBlqQ,KAAK8gO,GACvBpmN,GAAaA,EAAS7mB,QAClBuD,EAAA+yQ,aAAanqQ,KAAK8gO,EAE7B,CAGO,OAFP1pO,EAAO8yQ,kBAAsB,IAAIlgQ,IAAI5S,EAAO8yQ,kBAC5C9yQ,EAAO+yQ,eAAmB,IAAIngQ,IAAI5S,EAAO+yQ,eAClC/yQ,CACT,CAkDwB,SAAAozQ,GAAc5tQ,EAA6BolQ,GACjE,IAAA3zL,EAAsEv9B,SAAOl0C,GAArEozO,EAAiB3hK,EAAjB2hK,gBAAiBnoN,EAAAwmD,EAAAxmD,KAAMtmB,IAAAA,KAAMmuO,EAA6BrhK,EAA7BqhK,6BAE/B+6B,EAAgCl5O,MAAyB,IAO/D+tD,EAAA7lE,GALgDqa,GAC9Ck8M,EACApzO,EAAMqzO,wBAA0B,GAChCrzO,EAAMi0O,eACN,mBACF,GALOgE,EAAkBv1J,EAAA,GAAAw1J,EAAmBx1J,EAAA,GAMtCumL,EAAcpxP,EAAAA,UAAS,WAAA,IAAAszP,EAAA,MAAO,CAClC1gD,OAAQzqN,EAAMyqN,QAAU,KACxB86C,aAAmB,QAAN4F,EAAAnrQ,EAAMirB,YAAA,IAAAkgP,OAAA,EAANA,EAAY5F,cAAe,WACxC,IA6HK,OA3HD5oO,EAAAA,MAAA,CAAC1R,EAAMm6O,EAAazgQ,EAAMszO,IAAmB,SAAAr7M,GAAyB,IAAAC,EAAAhgB,GAAA+f,EAAA,GAAvB3R,EAAMm6O,EAAAA,GAAAA,EAAWvoO,EAAA,GAC/D5R,GAASm6O,EAAY5gQ,OAAQymB,EAAKg7G,eAIzC,WACE,IAAKh7G,EAAK7xB,OAAS6xB,EAAK7xB,MAAM6sI,cAAe,OACzC,IAACgyG,EAAiB7+O,MAAMnC,OAE1B,YADA42Q,EAA8Bz0Q,MAAQ,IAK/B,IAFT,IAAM6D,EAA+B,GAC/B6wQ,EAA+C,CAAA,EAC5Cj1Q,EAAI,EAAGy4B,EAAM2mN,EAAiB7+O,MAAMnC,OAAQ4B,EAAIy4B,EAAKz4B,IAAK,CAC3D,IAAAqrO,EAAW+T,EAAiB7+O,MAAMP,GAClCsjE,EAAQipM,EAAYhsQ,MAAMsL,IAAIw/N,GACpC,GAAK/nK,EAAL,CACA,IAAMr+C,EAAWpZ,GAAIy3D,EAAM5X,IAAK0kN,EAAY7vQ,MAAMmsQ,aAElD,IAAKznP,IAAaA,EAAS7mB,OAEzB,IADA,IAAI82Q,EAAY5xM,EAAMjiD,OACf6zP,GAAW,CACXD,EAAUC,EAAUvvO,MACbsvO,EAAAC,EAAUvvO,IAAM,IAE5BsvO,EAAUC,EAAUvvO,IAAIp7B,KAAK+4D,EAAM5X,KAC7B,IAAAypN,EAAgBF,EAAUC,EAAUvvO,IAAIvnC,OACtCq2Q,EAAoBF,GAAgBhI,EAAYhsQ,MAAO20Q,EAAUxpN,IAAK0kN,EAAY7vQ,OAAlFk0Q,gBACFW,EAAiBhxQ,EAAK2+B,QAAQmyO,EAAUvvO,IACxCo6J,EAAgBq/C,EAAiB7+O,MAAMwiC,QAAQmyO,EAAUvvO,IAC3DwvO,EAAgB,GAAKA,EAAgBV,EAAgBr2Q,SAAgC,IAAtB2hM,GACxC,IAAzBq1E,GAAyBhxQ,EAAKmG,KAAK2qQ,EAAUvvO,KAEpB,IAAzByvO,GAAyBhxQ,EAAK2H,OAAOqpQ,EAAgB,GAEvDF,EAAYA,EAAU7zP,MACxB,CApBU,CAsBd,CACA2zP,EAA8Bz0Q,MAAQ6D,CACxC,CAtC2BixQ,EAC3B,IAwHO,CAELL,8BAA+B/6B,EAA6B15O,MACxD05O,EACA+6B,EACJM,oBA/DO,SAAoBC,EAAgCC,GACtDpjP,EAAK7xB,QAAS6xB,EAAK7xB,MAAM6sI,cAIE,kBAA5BooI,EAAUv1B,cAOhB,SAAyBu1B,GACvB,IAAMC,EAAqC,GACrC3R,EAA6B,GAC/B,GAAmB,UAAnB0R,EAAUxyQ,KAEZ,IADA,IAAMkhF,IAAUqoL,EAAYhsQ,MAAMqN,UACzB5N,EAAI,EAAGy4B,EAAMyrD,EAAI9lF,OAAQ4B,EAAIy4B,EAAKz4B,IAAK,CAC9C,IAAMglB,EAAOk/D,EAAIlkF,GACZglB,EAAK2Y,WACGmmO,EAAAv5P,KAAKya,EAAK0mC,KACrB+pN,EAAWlrQ,KAAKsB,GAAImZ,EAAK0mC,IAAK0kN,EAAY7vQ,MAAMqxN,SAEpD,CAEF,IAAM8jD,EAAej9N,GAAAA,MAChB+8N,GAAA,GAAA,CACHx1B,gBAAiB8jB,GAAc,KAEjCzkB,EAAoBo2B,EAAYC,EAClC,CAxBIx1B,CAAgBs1B,GA0BX,SAAaD,EAAgCC,GAAkC,IAAA1C,EAClF2C,EAAAp2Q,EAAiBk2Q,GACjB,IAA8B,KAAlB,QAAZzC,EAAA3rQ,EAAMirB,YAAM,IAAA0gP,OAAA,EAAZA,EAAY1lI,eACV,GAAoB,WAApBooI,aAAA,EAAAA,EAAWxyQ,MAAkB,CAC/B,IAAMrB,EAAS4yQ,GAAgBhI,EAAYhsQ,MAAOi1Q,EAAUviC,eAAgBm9B,EAAY7vQ,OAChFk0Q,EAAoB9yQ,EAApB8yQ,gBACIH,GAAA9oQ,IAAIgqQ,EAAUviC,eAAgBtxO,GAC7B8zQ,EAAAp2Q,EAAI,IAAIkV,IAAIkhQ,EAAW14O,OAAO03O,IAC7C,MAAA,GAA+B,aAApBe,aAAAA,EAAAA,EAAWxyQ,MAAoB,CACxC,IACMrB,EA/JE,SAAmB2oB,EAAiBpsB,GAGlD,IAFM,IAAEq8O,EAAgCjwN,EAAhCiwN,gBAAiBo7B,EAAerrP,EAAfqrP,WACnBh0Q,EAASzD,GAAK,CAAE4N,KAAM,GAAI1H,KAAM,IAC7BpE,EAAI,EAAGy4B,EAAM8hN,EAAgBn8O,OAAQ4B,EAAIy4B,EAAKz4B,IAAK,CAC1D,IAAMgF,EAAMu1O,EAAgBv6O,GACvB21Q,EAAW92P,SAAS7Z,IAChBrD,EAAAyC,KAAKmG,KAAKvF,EAErB,CACO,OAAArD,CACT,CAqJuBi0Q,CAAmB,CAChCr7B,gBAAiBg7B,EACjBI,WAHepB,GAAgBhI,EAAYhsQ,MAAOi1Q,EAAUviC,eAAgBm9B,EAAY7vQ,OAGnEk0Q,kBAEvBgB,EAAa9zQ,EAAOyC,IACtB,CAEFqxQ,EAxEO,SACPI,EACA51B,EACAj9O,GAEA,GAAKovB,EAAK7xB,QAAS6xB,EAAK7xB,MAAM6sI,cAA9B,CAIA,IAHM,IAAAhpI,EAAA/E,EAAWw2Q,GAEbX,EADU3I,EAAYhsQ,MAAMsL,IAAIo0O,GACd5+N,OACf6zP,GAAW,CACV,IAAER,EAAiBH,GAAgBhI,EAAYhsQ,MAAO20Q,EAAUxpN,IAAK0kN,EAAY7vQ,OAA/Em0Q,aACFoB,EAAsBn2P,GAAa+0P,EAAcmB,GACjD91E,EAAgB37L,EAAK2+B,QAAQmyO,EAAUvvO,IAChC,YAAT3iC,GACsB,IAAxB+8L,GAAwB37L,EAAK2H,OAAOg0L,EAAe,GAC1C+1E,EAAoB13Q,SAAWs2Q,EAAat2Q,SAC7B,IAAxB2hM,GAAwB37L,EAAKmG,KAAK2qQ,EAAUvvO,IAE9CuvO,EAAYA,EAAU7zP,MACxB,CACO,OAAAjd,CAfsC,CAgB/C,CAmDe2xQ,CAAyBN,EAAYD,EAAUv1B,cAAeu1B,EAAUxyQ,MAC/E,IAAA8gQ,EA/IH,SAA0Bx5O,GAG/B,IAFM,IAAEiiP,EAAiCjiP,EAAjCiiP,YAAahyB,EAAoBjwN,EAApBiwN,gBACf54O,EAAS,GACN3B,EAAI,EAAGy4B,EAAM8hN,EAAgBn8O,OAAQ4B,EAAIy4B,EAAKz4B,IAAK,CAC1D,IAAMgF,EAAMu1O,EAAgBv6O,GAC5B2B,EAAO4I,KAAKgiQ,EAAY1gQ,IAAI7G,GAC9B,CACO,OAAArD,CACT,CAuIuBq0Q,CAAiB,CAAEzJ,YAAaA,EAAYhsQ,MAAOg6O,gBAAiBk7B,IACjFC,EAAej9N,GAAAA,MAChB+8N,GAAA,GAAA,CACHx1B,gBAAiB8jB,IAEnBzkB,EAAoBo2B,EAAYC,EAClC,CAhDIO,CAAaV,EAASC,GANtBn2B,EAAoBk2B,EAASC,EAQjC,EAuDF,wpBCnOA,IAAAU,GAAe1+N,kBAAgB,CAC7Br4C,KAAM,iBAENgI,MAAOsxC,GAAAA,GAAAA,GACF43K,CAAAA,EAAAA,IACA6oB,IACA2yB,IAGLp0N,eAAMtwC,EAA6B83B,GAC3B,IAAA2nN,EAAkB9qN,MAAI,MACtBq6O,EACJpE,GAAY5qQ,EAAO83B,GADbw7G,EAAO07H,EAAP17H,MAAOqgC,EAAAq7F,EAAAr7F,WAAY24F,EAAkB0C,EAAlB1C,iBAAkBL,EAAA+C,EAAA/C,SAAU7B,IAAAA,sBAA0B6E,EAAsB5gO,GAAA2gO,EAAAlgO,IAEjG3lB,EAAcwM,KAEdyvO,EAAczwO,EAAAA,IAAI2+G,EAAMl6I,MAAMgsQ,aAEpC8J,EAA+DtB,GAAc5tQ,EAAOolQ,GAA5EyI,EAA+BqB,EAA/BrB,8BAA+BM,EAAAe,EAAAf,oBAGjC/K,EAAa,SAAC55C,GAElB,IADA,IAAMzsI,EAAuC,GACpClkF,EAAI,EAAGy4B,EAAMk4L,EAAQvyN,OAAQ4B,EAAIy4B,EAAKz4B,IAAK,CAAA,IAAAmlF,EAAAE,EAC9CrgE,EAAOyzB,GAAA,CAAA,EAAKk4K,EAAQ3wN,YAEpBmlF,GADJngE,EAAOyuP,EAAiBzuP,IACfC,gBAALkgE,OAAAA,EAAe/mF,SACZ4mB,EAAAC,SAAWslP,EAAWvlP,EAAKC,aAG7BD,EAAKC,kBAAYogE,EAAArgE,EAAKC,uBAALogE,EAAejnF,SACnC8lF,EAAI35E,KAAKya,EAEb,CACO,OAAAk/D,GAGH6mL,EAAW/rP,EAAAA,UAAS,WAGxB,OADoB7X,EAAMirB,OAAS/xB,OAAO+D,KAAK+C,EAAMirB,MAAMh0B,OACvC+I,EAAMwpN,QAAU45C,EAAWpjQ,EAAMwpN,QACvD,IAEM2lD,EAAmB,SAAClxP,GAA0C,IAAA0rE,EAC9D3pF,EAAM2kQ,iBAAmB3kQ,EAAM2kQ,eAAe1mP,KACzCguP,EAAA,CACPnyP,QAASmE,EAAOnE,QAChBmf,OAAQhb,EAAOgb,OACfygD,aAAcz7D,EAAOy7D,aACrBmQ,YAAa5rE,EAAO4rE,sBAEtBF,EAAA3pF,EAAMmkF,kBAANwF,OAAAA,EAAA9xF,KAAAmI,EAAmBie,KAGfmxP,EAA6D,SAACjsP,GAAM,IAAAgoP,EAAAkE,UACpElE,EAAAnrQ,EAAMirB,YAANkgP,OAAAA,EAAYmE,uBACdlF,EACE,CACE7lN,IAAKphC,EAAEohC,IACPvW,SAAU7qB,EAAEnoB,OAEd,qBAGJq0Q,EAAArvQ,EAAMirN,kBAANokD,OAAAA,EAAAx3Q,KAAAmI,EAAmBmjB,IAGfosP,EAAoB,SAACC,EAA6B3xQ,GACtD,OAAK2xQ,EACDA,EAAaxhO,UAAY,EAAUwhO,EAAaxhO,SAChDwhO,EAAaxhO,SAAW,EACnBuhO,EAAkBC,EAAat1P,aADpC,GAFsB,GA2C5B,OApBA4d,EAAQyzB,OAAOja,GAAAA,GAAA,CACbgiG,MAAOA,EAAMl6I,MACbu6K,WAAYA,EAAWv6K,OACpB61Q,GAAA,GAAA,CACHxvB,gBAAAA,EACAqgB,gBAAiB,SAAC57B,GACT,OAAAub,EAAgBrmP,MAAM0mQ,gBAAgB57B,EAC/C,EACA07B,kBAAmB,WACV,OAAAngB,EAAgBrmP,MAAMwmQ,mBAC/B,EACAK,kBAAmB,WACjBxgB,EAAgBrmP,MAAM6mQ,mBACxB,EACA7hC,aAAc,WACZqhB,EAAgBrmP,MAAMglO,cACxB,EACAlwL,gBAjCsB,SAACjwB,GACnB,IAAEjjB,EAAUijB,EAAVjjB,MACF,IAACA,GAAmB,IAAVA,EAAa,CACrB,IAACijB,EAAOpgB,IAEV,YADIs8B,GAAM,QAAS,wDAGrB,IAAMq1O,EAAepK,EAAYhsQ,MAAMsL,IAAIuZ,EAAOpgB,OAC1C7C,EAAAu0Q,EAAkBC,EAAcvxP,EAAOpgB,MACnC,QAAe,IAAV7C,IACfm/B,GAAU,QAAA,GAAAvE,OAAY3X,EAAOpgB,IAAkE,6DAEnG,CACA4hP,EAAgBrmP,MAAM80C,gBAAgBoD,GAAAA,GAAA,GAAKrzB,GAAA,GAAA,CAAQjjB,MAAAA,SAuB9C,WAAM,IAAA2wQ,EAEL8D,EAAqCn+N,GAAAA,GACtCjwB,CAAAA,EAFavC,EAAAA,qBAAVuC,MAEGrhB,OAAA,GAAA,CACTyqN,OAAQzqN,EAAMyqN,QAAU,KACxB9lN,KAAMgvK,EAAWv6K,MACjBowN,QAASo6C,EAASxqQ,MAElB05O,6BAA8B+6B,EAA8Bz0Q,MAE5DqwN,gBAAiBjoM,QAAQxhB,EAAMirB,MAAQ/xB,OAAO+D,KAAK+C,EAAMirB,MAAMh0B,SAAW+I,EAAMypN,gBAChFwqB,eAAgBk6B,EAChBhqL,WAAYgrL,EACZ3kD,aAAc,SAAA5tL,GAAa,IACnBsnM,EAAWx/N,GADFk4B,EAAA2nB,IACWvkD,EAAMyqN,QAAU,MACpCk7C,EAAWP,EAAYhsQ,MAAMsL,IAAIw/N,GACvC,OAAKyhC,EACE,IAAA/vO,OAAIzM,EAAY/vB,kCAAyBusQ,EAAS/0J,OAAS5wG,EAAMwqN,cADlD,CAACxqN,EAAMwqN,aAE/B,IAMF,eAJImhD,EAAA3rQ,EAAMirB,YAAN0gP,OAAAA,EAAY2D,wBACdG,EAAcxkD,WAAamkD,GAG7B39N,cAAAi+N,GAAAp7N,EAAAqgC,WAAiD86L,EAAA,CAAA96O,IAAoB8qN,IAAvC3nN,EAAQ9Y,OAE1C,IC1IWylP,GAAYhuN,GAAYo2L,IACxB6iC,GAAej5N,GAAYiqN,IAC3BiP,GAAgBl5N,GAAYs4N,IAG5Ba,GAAQn5N,GADP7lC,GAAU8vP,IACgB,UCdzBmP,GAAA,CAEbj0G,WAAY,CACV//J,KAAM9C,OACN6uB,QAAS,OACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,OAAQ,QAAS,YAAa,MAAO,UAAUvI,SAASuI,EAClE,GAGFohC,OAAQ,CACNxlD,KAAM9C,OACN6uB,QAAS,WACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,aAAc,YAAYvI,SAASuI,EAC7C,GAGFmiE,KAAM,CACJvmF,KAAM9C,OACN6uB,QAAS,YACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,YAAa,QAAQvI,SAASuI,EACxC,GAGF4oC,QAASrnC,QAEToR,MAAO,CACL/2B,KAAM9C,OACN6uB,QAAS,UACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,UAAW,OAAOvI,SAASuI,EACrC,IC3CS6vP,GAAe,CAC1B1oG,SAAU,CAAC,OAAQ,SACnB2oG,WAAY,CAAC,MAAO,WAaTC,GAAiE14Q,OAAO,mBAExE24Q,GAAmBp4P,YAA2B,WAAA,MAAO,CAChE+a,MAAO,UACPi2B,SAAS,EACTqnN,YAAa,GACb7uN,OAAQ,aACR8uN,YAAa,OACb/tL,KAAM,YACN,IClBaguL,GAAA,CAEb1yP,QAAS,CACP7hB,KAAM,CAAC9C,OAAQc,WAGjB+lM,IAAK,CACH/jM,KAAMhC,UAGRw2Q,SAAU,CACRx0Q,KAAM9C,OACN6uB,QAAS,WAGXg9B,MAAO,CACL/oD,KAAM,CAAC9C,OAAQc,WAGjB+hK,WAAY,CACV//J,KAAM9C,OACN24B,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,OAAQ,QAAS,MAAO,UAAUvI,SAASuI,EACrD,GAGFqW,QAAS9U,QAET61B,QAASx9C,6kBC9BX,IAAMy2Q,GAAgB,CAAC,UAAW,UAAW,UAAW,UAAW,SAEnEC,GAAelgO,kBAAgB,CAC7Br4C,KAAM,gBACNgI,MAAOsxC,GAAAA,MACFtxC,IAAA,CAAA,EAAA,CACHhF,MAAO,CACLa,KAAM7C,UAGVs3C,MAAAA,SAAMtwC,GACE,IAAAu3C,EAAiB5hB,GAAe,iBAGhC66O,EAAmBx7O,EAAAA,OAAOg7O,GAAmBC,IAC7C98N,EAAgBzxB,KAChBhD,EAAiBmC,KAGjB4vP,EAAuB,SAACz1Q,GAAkB,IAAA01Q,EAC9CC,EAAgCH,EAAiBp3Q,MAAzCioD,EAAAsvN,EAAAtvN,OAAQ8uN,EAAYQ,EAAZR,YAEVS,EAAwC,QAAxCF,EAAoB1wQ,EAAM47J,kBAAc,IAAA80G,EAAAA,EAAAP,EAExCxsO,EAAkB,eAAX0d,EAA0B,MAAQ,OACzCxd,EAAmB,eAAXwd,EAA0B,SAAW,QAEnD,MAA0B,cAAtBuvN,EACK51Q,EAAQ,GAAM,KAAI46B,OAAG2hB,EAAen+C,MAAS,KAAAw8B,OAAA+N,GAAA/N,GAAAA,OAAY2hB,EAAen+C,MAASw8B,KAAAA,OAAAiO,GAEhE,SAAtB+sO,GAAsD,QAAtBA,EAC3Bh7O,GAAAA,OAAG2hB,EAAen+C,MAASw8B,KAAAA,OAAA+N,GAEV,UAAtBitO,GAAuD,WAAtBA,EAC5Bh7O,GAAAA,OAAG2hB,EAAen+C,MAASw8B,KAAAA,OAAAiO,GAE7B,IAEHoZ,EAAc,SAAC/lD,GAAkB,IAAAslD,EACrB,QAAhBx8C,EAAAA,EAAMq3C,eAAU,IAAAmF,GAAhBx8C,EAAAA,KAAAA,EAAgB,CAAE9I,EAAAA,EAAG2mB,KAAMzD,GAAKpa,EAAO,CAAC,aAG1C,OAAO,WACL,IAAA6wQ,EAA8CL,EAAiBp3Q,MAAvDgpF,EAAMyuL,EAANzuL,KAAMxvD,EAAAi+O,EAAAj+O,MAAOs9O,EAAaW,EAAbX,YAAarnN,EAAAgoN,EAAAhoN,QAC1BvyB,EAA6Bt2B,EAA7Bs2B,QAAS+5O,EAAoBrwQ,EAApBqwQ,SAAUr1Q,EAAUgF,EAAVhF,MAErBypI,EAAY/lH,EAAe,SAC3BoyP,EAAapyP,EAAe,OAE5BqyP,EAAAn7O,GAAAA,OAAqB2hB,EAAen+C,MAAA,iBAC1C,GAAI03Q,SAAAA,EAAY9wQ,MAAO,CAAA,IAAAgxQ,EACftwO,EAAUowO,SAAmB,UAAnBA,EAAY9wQ,aAAO,IAAAgxQ,OAAA,EAAnBA,EAAmB,MACxBF,EAAA9wQ,MAAA,MAAc0gC,EAAU,CAACqwO,EAAiBrwO,GAASp4B,KAAK,KAAOyoQ,CAC5E,CAEA,OAAAt/N,EAAAA,YAAA,KAAA,CAAAC,MACa,CAAA9b,GAAAA,OAAI2hB,EAAen+C,OAAS,GAAAw8B,OAAG66O,EAAqBzwQ,EAAMhF,iBAAoBiiD,GAAA,CAC7E,cAATmlC,GAAwBqiD,GAAAhzF,EAAAA,YAAA,MAAA,CAAAC,MACX,CAAA9b,GAAAA,OAAI2hB,EAAen+C,MAAA,WAAA,GAAAw8B,OAAmB2hB,EAAen+C,MAAAw8B,aAAAA,OAAiBwsD,KAAUqiD,CAAAA,IAA3FhzF,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OAEY2hB,EAAen+C,MAAA,cAAA,CAAAq4C,EAAAK,YAAA,MAAA,CAAAJ,MAAAz4C,EAAAA,EAAAA,EAAA28B,CAAAA,EAAAA,GAAAA,OAGpB2hB,EAAen+C,MAAe,UAAA,MAAAw8B,OAC9B2hB,EAAen+C,yBAAyB03Q,IAAgBA,GAAcx6O,MAAAV,OACtE2hB,EAAen+C,wBAAei3Q,GAAaC,GAAc54P,SAAS24P,IAAQjpO,MAEzE,CAAEs0E,aAAc40J,GAAc54P,SAAS24P,IAAaA,IAAS,EAElES,GAAcx6O,GAAWmb,EAAAA,YAAAqF,GAAA,CAAAtyC,KAAA,OAAAktC,MAA4Bq/N,GAAiB,MACvED,IAAAr/N,EAAAA,YAAA,MAAA,CAAAC,MAAAz4C,EAAAA,EAAAA,QAAA28B,OAIK2hB,EAAen+C,MAAgB,WAAA,MAAAw8B,OAC/B2hB,EAAen+C,MAAAw8B,kBAAAA,OAAsBhD,IAAU,GAAAgD,GAAAA,OAC/C2hB,EAAen+C,MAAA,mBAAAw8B,OAAuBs6O,EAAYl1Q,IAAW6tD,IAAA,QAAApX,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OAIxD2hB,EAAen+C,MAAA,cAAA,CAC3B+5C,EAAc,UAAW,WAChB,SAATivC,GAAmBqiD,GAAAhzF,EAAAK,YAAA,MAAA,CAAAJ,MACN,CAAA9b,GAAAA,OAAI2hB,EAAen+C,MAAA,WAAA,GAAAw8B,OAAmB2hB,EAAen+C,MAAAw8B,aAAAA,OAAiBwsD,KAAM,CACrFqiD,QAOf,IC3FFwsI,GAAe5gO,kBAAgB,CAC7Br4C,KAAM,YACNgI,MAAO6vQ,GACPv/N,MAAAA,SAAMtwC,GACE,IAAAu3C,EAAiB5hB,GAAe,YAChCw6O,EAAct4P,EAAAA,UAAS,WACrB,IAAE+jJ,EAAuB57J,EAAvB47J,WAAYv6G,EAAWrhD,EAAXqhD,OAChBr/B,EAAiB,aAAXq/B,EAAwB,OAAS,MACvC,GAAW,aAAXA,GAAyBu6G,EAAY,CACvC,IAAM5gK,EAAQ80Q,GAAaC,WAAWn0O,QAAQggI,GACxCn3D,GAAoB,IAAVzpG,EACLypG,GAAAtqE,GAAS,WAAY,yEAC1BnY,EAAAyiF,EAAUqrK,GAAa1oG,SAASpsK,GAAS4gK,CACjD,CACI,GAAW,eAAXv6G,GAA2Bu6G,EAAY,CACzC,IAAM5gK,EAAQ80Q,GAAa1oG,SAASxrI,QAAQggI,GACtCn3D,GAAoB,IAAVzpG,EACLypG,GAAAtqE,GAAS,WAAY,2EAC1BnY,EAAAyiF,EAAUqrK,GAAaC,WAAW/0Q,GAAS4gK,CACnD,CACO,OAAA55I,CACT,IAEMkvP,EAAkBr5P,EAAAA,UAAS,WAExB,MAAA,CACL+a,MAFmD5yB,EAA7C4yB,MAGNi2B,QAHmD7oD,EAAtC6oD,QAIbqnN,YAAa,CAAC,IACd7uN,OALmDrhD,EAA7BqhD,OAMtB8vN,YANmDnxQ,EAArB47J,WAO9Bx5E,KAPmDpiF,EAAToiF,KAQ1C+tL,YAAaA,EAAY/2Q,MAE7B,IAKA,OAFAs8B,UAAQs6O,GAAmBkB,GAEpB,WACL,IACIE,EAD2BvyP,IACXy6D,CAAuB,iBAGzC,OAFEt5E,EAAM6oD,UAASuoN,EAAgBA,EAAcvoN,WAE/CpX,EAAAA,YAAA,KAAA,CAAAC,MACS,CAAA9b,GAAAA,OACF2hB,EAAen+C,OAAAH,EAAAA,EAAAA,EAAAA,EAAAA,EAAA,CAAA,EAAA,GAAA28B,OAEZ2hB,EAAen+C,MAAAw8B,KAAAA,OAASu6O,EAAY/2Q,QAAU,GAAAw8B,GAAAA,OAC9C2hB,EAAen+C,MAAA,YAAkB4G,EAAM6oD,SAAAjzB,GAAAA,OACvC2hB,EAAen+C,MAAA,KAAAw8B,OAAS51B,EAAMqhD,SAAW,MAAAzrB,OACzC2hB,EAAen+C,MAAgBi4Q,UAfxB,GAewBz7O,GAAAA,OAC/B2hB,EAAen+C,MAAA,YAAAw8B,OAAgB51B,EAAMoiF,OAAS,KAIrD,CAAAgvL,EAAcnsQ,KAAI,SAAC4Y,EAAM7iB,GAAA,OAAAy2C,EAAAK,YAAAw/N,GAAAh9N,aAElBz2B,EAAK7d,MAAA,CAAAhF,MACFA,EAAA02C,MAAAz4C,EAAA,CAAA,EAAA,GAAA28B,OACM2hB,EAAen+C,MAAqB4B,eAAAA,IAAUo2Q,EAAcn6Q,OAAS,KACzE4mB,EAAKC,SAEjB,MAIT,IChEWyzP,GAAW96N,GAAYw6N,IACvBK,GAAe76N,GAAY85N,ICHzBiB,GAAA,CAEbx+K,WAAYxxE,QAEZmpP,iBAAkBnpP,QAElBgV,SAAUhV,QAEVgJ,WAAY,CACV3uB,KAAM,CAAC2lB,QAAS3nB,UAChB+tB,SAAS,GAGX6pP,oBAAqB,CACnB51Q,KAAM9C,OACN6uB,QAAS,OACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,OAAQ,SAASvI,SAASuI,EACpC,GAGF+gE,YAAax/D,QAEbgxN,iBAAkB,CAChB32O,KAAM2lB,QACNoG,SAAS,GAGXxuB,MAAO,CACLyC,KAAMzE,MACNwwB,aAAS,GAEXyiB,WAAY,CACVxuC,KAAMzE,MACNwwB,aAAS,GAGXrhB,aAAc,CACZ1K,KAAMzE,OAGR+/B,SAAUt9B,UC9CZ63Q,GAAerhO,kBAAgB,CAC7Br4C,KAAM,YACNgI,MAAAA,GACAswC,MAAAA,SAAMtwC,GACE,IAAA60B,EAAgBc,GAAe,YAC/Bg8O,EAAkBh8O,GAAe,gBACjCjX,EAAiBmC,KACvB4wD,EAAuDv9B,SAAOl0C,GAAtD5G,EAAOq4E,EAAPr4E,MAAO4nF,EAAAvP,EAAAuP,YAAagS,IAAAA,WAC6EthB,EAAA70D,GAA/DutB,GAAUhxC,EADDq4E,EAAXpnC,WAC+BrqC,EAAMuG,aAAcvG,EAAMm3B,UAAQ,GAAlGy6O,EAAelgM,EAAA,GAAAmgM,EAAgBngM,EAAA,GAahChxC,EAAU7oB,EAAAA,UAAS,WAChB,MAAA,CACLgd,EAAcz7B,MAAAH,EAEX04Q,CAAAA,EAAAA,EAAgBv4Q,QAAU45F,EAAW55F,OAG5C,IACM04Q,EAAa,WACjB,IAAI92Q,EAAQ,EACZ,OAAO,WAAA,OAAMA,GAAA,CACf,CAHmB,GAUnB,OANA06B,UAAQ,gBAAiBk8O,GACzBl8O,UAAQ,uBAzBoB,SAACt8B,GAC3B,IAAI+G,EAA0B,GAAGy1B,OAAOg8O,EAAcx4Q,OAAS,IACzD4B,EAAQmF,EAASy7B,QAAQxiC,GAC3B4B,GAAS,EACFmF,EAAAyE,OAAO5J,EAAO,GACdgmF,EAAY5nF,MACrB+G,EAAW,CAAC/G,GAEZ+G,EAASiD,KAAKhK,GAEhBy4Q,EAAiB1xQ,MAgBXu1B,EAAAA,QAAA,gBAAiBwe,SAAOl0C,IAChC01B,UAAQ,YAAao8O,GAErBp8O,UAAQ,oBAAqBhX,GACtB,WACC,IAAAitG,EAAQjtG,EAAe,WAC7B,OAAA+yB,EAAAA,YAAA,MAAA,CAAAC,MAAmBhR,EAAQtnC,OAAA,CAAQuyH,IAEvC,ICvCaomJ,GAAA,CAEbr0P,QAAS,CACP7hB,KAAM,CAAC9C,OAAQc,WAGjB+tB,QAAS,CACP/rB,KAAM,CAAC9C,OAAQc,WAGjBm4Q,kBAAmBxwP,QAEnBgV,SAAU,CACR36B,KAAM2lB,QACNoG,aAAS,GAGX4C,WAAY,CACV3uB,KAAM,CAAC2lB,QAAS3nB,UAChB+tB,aAAS,GAGXihL,OAAQ,CACNhtM,KAAM,CAAC9C,OAAQc,WAGjBo4Q,mBAAoB,CAClBp2Q,KAAM,CAAC9C,OAAQc,WAGjBT,MAAO,CACLyC,KAAM,CAAC9C,OAAQC,UClCnB,IAAAk5Q,GAAe7hO,kBAAgB,CAC7Br4C,KAAM,iBACNgI,MAAAA,GACAswC,eAAMtwC,EAAAA,GAAwC,IAATgf,EAAA4d,EAAA5d,MAC7BN,EAAiBmC,KACjBsyB,EAAgBzxB,KAChBmT,EAAgBc,GAAe,kBAC/BmiD,EAAeniD,GAAe,eAC9Bw8O,EAAiBx8O,GAAe,gBAChCk3D,EAAkBl3D,GAAe,cACvC87C,EAA+Cv9B,SAAOl0C,GAA9C5G,EAAOq4E,EAAPr4E,MAAOo9B,EAAAi7C,EAAAj7C,SAAUw7O,EAAkBvgM,EAAlBugM,kBACnBJ,EAAoC58O,SAAO,iBAC3Co9O,EAAgCp9O,SAAO,uBACvC88O,EAAsB98O,SAAO,aAAa,eAA4B,GACtEq9O,EAKFr9O,SAAY,iBAJd21O,EAAA0H,EAAA1H,iBACU2H,EAAAD,EAAV77O,SACAi7O,EAAAY,EAAAZ,oBACAj/B,EAAA6/B,EAAA7/B,iBAEI+/B,EAA8Bv9O,SAAO,qBACrCohE,EAAah9F,EAAMA,OAAS04Q,IAC9BnH,EAAiBvxQ,OACnBg5Q,EAAoBh8K,GAEhB,IAAA3H,ElZWD,CACLC,YA1CkB,SAACvuD,GAChBA,EAAAgI,QAAQwmD,cAAgBxuD,EAAGiH,MAAMwnD,WACjCzuD,EAAAgI,QAAQ0mD,iBAAmB1uD,EAAGiH,MAAM0nD,cAEvC3uD,EAAGiH,MAAMyB,OAAS,IAClB1I,EAAGiH,MAAMwnD,WAAa,IACtBzuD,EAAGiH,MAAM0nD,cAAgB,KAqCzBC,MAnCY,SAAC5uD,GACVA,EAAAgI,QAAQ6mD,YAAc7uD,EAAGiH,MAAM8B,SAC/B/I,EAAAiH,MAAMyB,OAAS,GAAAjT,OAAGuK,EAAG8K,aAAA,MACrB9K,EAAAiH,MAAMwnD,WAAazuD,EAAGgI,QAAQwmD,cAC9BxuD,EAAAiH,MAAM0nD,cAAgB3uD,EAAGgI,QAAQ0mD,iBACpC1uD,EAAGiH,MAAM8B,SAAW,UA+BpB+lD,WA7BiB,SAAC9uD,GAClBA,EAAGiH,MAAMyB,OAAS,GACf1I,EAAAiH,MAAM8B,SAAW/I,EAAGgI,QAAQ6mD,aA4B/BE,YA1BkB,SAAC/uD,GAChBA,EAAAgI,QAAQwmD,cAAgBxuD,EAAGiH,MAAMwnD,WACjCzuD,EAAAgI,QAAQ0mD,iBAAmB1uD,EAAGiH,MAAM0nD,cACpC3uD,EAAAgI,QAAQ6mD,YAAc7uD,EAAGiH,MAAM8B,SAE/B/I,EAAAiH,MAAMyB,OAAS,GAAAjT,OAAGuK,EAAG8K,aAAA,MACxB9K,EAAGiH,MAAM8B,SAAW,UAqBpBimD,MAnBY,SAAChvD,GACW,IAApBA,EAAG8K,eACL9K,EAAGiH,MAAMyB,OAAS,IAClB1I,EAAGiH,MAAMwnD,WAAa,IACtBzuD,EAAGiH,MAAM0nD,cAAgB,MAgB3BM,WAbiB,SAACjvD,GAClBA,EAAGiH,MAAMyB,OAAS,GACf1I,EAAAiH,MAAM8B,SAAW/I,EAAGgI,QAAQ6mD,YAC5B7uD,EAAAiH,MAAMwnD,WAAazuD,EAAGgI,QAAQwmD,cAC9BxuD,EAAAiH,MAAM0nD,cAAgB3uD,EAAGgI,QAAQ0mD,mBkZR5BH,IAAAA,YAAaK,EAAON,EAAPM,MAAOE,EAAAR,EAAAQ,WAAYC,IAAAA,YAAaC,EAAOV,EAAPU,MAAOC,EAAAX,EAAAW,WACtDojL,EAAU79O,EAAAA,MACV+iB,EAAa7/B,EAAAA,UAAS,WAAA,OAAM2e,EAASp9B,OAASk5Q,EAAWl5Q,SACzDuqF,EAAW9rE,EAAAA,UAAS,WAAA,OACxB+5P,EAAcx4Q,iBAAiBhC,MAC3Bw6Q,EAAcx4Q,MAAMse,SAAS0+E,GAC7Bw7K,EAAcx4Q,QAAUg9F,CAAA,IAExB11D,EAAU7oB,EAAAA,UAAS,WAChB,MAAA,CAACgd,EAAcz7B,MAAOH,EAAA,CAAA,EAAG6+E,EAAa1+E,MAAQs+C,EAAWt+C,OAClE,IACMq5Q,EAAkB56P,EAAAA,UAAS,WAAA,OAAMmH,EAAMwL,YAAcxqB,EAAMwqB,cAC3DyyB,EAAc,SAAC/lD,IACDs7O,EAAiBp5O,OAASlC,EAAEw4D,gBAAkB8iN,EAAQp5Q,SACtDs+C,EAAWt+C,OAC3Bg5Q,EAAoBh8K,GAEtBl/F,EAAEyhF,mBAEE+5L,EAAgC,SAACx7Q,GACrCA,EAAEyhF,mBAKE7f,EAAa,WACjB,IAAM65M,OAAwC,IAA1BF,EAAgBr5Q,MAAsBm5Q,EAAoB7zP,EAE5E,OAAA+yB,EAAAA,YAAA,MAAA,CAAA9c,IACO69O,EACL9gO,MAAA,GAAA9b,OAAUf,EAAcz7B,MAAA,WAAAw8B,OAAef,EAAcz7B,MAAA,YAAAw8B,OAAgB67O,EAAoBr4Q,MAAAw8B,KAAAA,OACvF+tD,EAASvqF,MAAQw8B,GAAAA,OAAGf,EAAcz7B,wBAAwB,IAE5Di+C,QAAS4F,GAER,CAAA01N,EAAY,aAZjBlhO,EAAAA,YAAAq6C,GAAA,CAAArd,iBAAA,GAAA74C,OAAuCf,EAAcz7B,MAAwB,oBAAA,UAwDzEw5Q,EAAa,WACjB,OAAOZ,EAAkB54Q,MAPlBuqF,EAASvqF,2CACCy7B,EAAcz7B,uDACZy7B,EAAcz7B,qBAAmB+5C,EAAc,UAAW,eAEzE,KAVFshC,EAAAC,eAAAjjC,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OAAuCf,EAAcz7B,MACnD,WAAA,CAAAq4C,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OAAef,EAAcz7B,MAAmB,cAAA+5C,CAAAA,EAAc,UAAW,eAAS,CAAA,CAAA0hC,EAAAA,MADvE8O,EAASvqF,UAe1B,OAAO,WAAM,IAAAklD,EA7G6Dr8B,EAsElEgwP,EAKA7xO,EAoCJ,OAAAqR,EAAAA,YAAA,MAAA,CAAAC,MAAYhR,EAAQtnC,6CACHy7B,EAAcz7B,MAAA,cAAA,EArC3BgnC,EAAM,CAAAxK,GAAAA,OACPf,EAAcz7B,MAAA,YAAAH,EAAA,CAAA,EAEdk5Q,EAAe/4Q,MAAQo5O,EAAiBp5O,QAAUs+C,EAAWt+C,QAIlEq4C,EAAAA,YAAA,MAAA,CAAAC,MACctR,EAAAiX,QAAc4F,GAAA,CACO,SAA9Bw0N,EAAoBr4Q,OAAoB0/D,IACxCp6C,EAAe,UAlBpB+yB,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OAAsBf,EAAcz7B,MAAwB,oBAAA,OAGtD64Q,EAAqBvzP,EAAe,sBAEnCuzP,+BAAmCS,GAAgCT,CAAAA,IAA4B,MAgBnE,UAA9BR,EAAoBr4Q,OAAqB0/D,OAyB1BrnB,EAAAK,YAAAs4C,aAAA,CAAApyF,KAEN60F,EAAgBzzF,MACtBk9M,cAAe5nH,UACNK,EAAAO,aACKL,EACdM,cAAeL,UACNC,EAAAonH,aACKnnH,IAzHkDntE,EA2H/Dq8B,EAAAs0N,IA3H+D,mBAAA3wP,GAAAu8B,oBAAAtlD,OAAAP,UAAAf,SAAAC,KAAAoqB,KAAAu8B,EAAAhhC,QAAAyE,2CAiI5E,ICzHW4wP,GAAWp8N,GAAYi7N,IAEvBoB,GAAgBr8N,GAAYy7N,ICL1Ba,GAAA,CAEbz7E,MAAO,CACLz7L,KAAM7C,OACN4uB,QAAS,GAGXlK,QAAS,CACP7hB,KAAM,CAAC9C,OAAQc,WAGjB+tB,QAAS,CACP/rB,KAAM,CAAC9C,OAAQc,WAGjBgvC,OAAQ,CACNhtC,KAAM7C,QAGRg6Q,SAAU,CACRn3Q,KAAM2lB,QACNoG,SAAS,GAGXqrP,UAAW,CACTp3Q,KAAM7C,OACN4uB,QAAS,IAGXsrP,QAAS1xP,QAET2xP,aAAc,CACZt3Q,KAAM7C,OACN4uB,QAAS,KAGXlhB,OAAQ,CACN7K,KAAMzE,OAGRksF,UAAW,CACTznF,KAAM2lB,QACNoG,SAAS,GAGXsmL,OAAQ,CACNryM,KAAM7C,OACN4uB,SAAS,IAGXwrP,iBAAkB,CAChBv3Q,KAAM,CAAC3C,OAAQ9B,QAGjBuxC,MAAO,CACL9sC,KAAM7C,QAGRirB,EAAG,CACDpoB,KAAM7C,QAGRqpB,EAAG,CACDxmB,KAAM7C,QAGRwsC,OAAQ,CACN3pC,KAAM7C,qkDClEV,IAAAq6Q,GAAehjO,kBAAgB,CAC7Br4C,KAAM,aACNgI,MAAAA,GACAswC,MAAAA,SAAMtwC,GACE,IAAAszQ,EAAkB3+O,MAAI,IACtB4+O,EAAerI,EAAAA,aACfsI,EAAsBtI,EAAAA,aAEtBxkQ,EAASmuC,EAAAA,SAAS70C,EAAM0G,QAAU,IAElC+sQ,EAAO57P,EAAAA,UAAS,WACb7X,OAAAA,EAAMkzQ,QAAU,EAAIlzQ,EAAMikB,CACnC,IAEMyvP,EAAO77P,EAAAA,UAAS,WACb7X,OAAAA,EAAMkzQ,QAAU,EAAIlzQ,EAAMqiB,CACnC,IAEM6rL,EAASr2L,EAAAA,UAAS,WACf7X,OAAAA,EAAMkzQ,QAAU,EAAIlzQ,EAAMkuM,MACnC,IAEMylE,EAAmB97P,EAAAA,UAAS,WAChC,OAAI7X,EAAMkzQ,QACD,YAEFlzQ,EAAMgzQ,SAAW,SAAW,WACrC,IAEMv1M,EAAa5lD,EAAAA,UAAS,WACnB,OAAAnR,EAAO,IAAM+sQ,EAAKr6Q,MAAQ,CACnC,IAEMowD,EAAY3xC,EAAAA,UAAS,WAClB,OAAAnR,EAAO,IAAMgtQ,EAAKt6Q,MAAQ,CACnC,IAEMw6Q,EAAiB/7P,EAAAA,UAAS,WAAA,MAAO,CACrC8wB,MAAO3oC,EAAM2oC,MACbE,OAAQ7oC,EAAM6oC,OACdqlK,OAAQA,EAAO90M,MACf65Q,UAAWjzQ,EAAMizQ,UACjB37E,MAAOt3L,EAAMs3L,MACbm8E,KAAMA,EAAKr6Q,MACXs6Q,KAAMA,EAAKt6Q,MACXg6Q,iBAAkBpzQ,EAAMozQ,iBACxB31M,WAAYA,EAAWrkE,MACvBowD,UAAWA,EAAUpwD,MACrB,IAQIy6Q,EAAkB,WAwBtB,GCxFN,SAA0Cj3O,EAsBvCs6B,GAAyC,IArB1CvuB,EAAA/L,EAAA+L,MACAE,EAAAjM,EAAAiM,OACA4qO,EAAA72O,EAAA62O,KACAC,EAAA92O,EAAA82O,KACAj2M,EAAA7gC,EAAA6gC,WACAjU,EAAA5sB,EAAA4sB,UACA0kJ,EAAAtxK,EAAAsxK,OACA5W,EAAA16J,EAAA06J,MACA87E,EAAAx2O,EAAAw2O,iBACAH,EAAAr2O,EAAAq2O,UAaM13D,EAAS57K,SAASsD,cAAc,UAChC4uB,EAAM0pJ,EAAOC,WAAW,MAC9B,IAAK3pJ,EAIH,OAFAh4B,QAAQO,KAAK,+FACb88B,EAAS,IAGL,IAAA48M,EAAQv6O,OAAO2oC,kBAAoB,EACnC6xM,GAAeN,EAAO9qO,GAASmrO,EAC/BE,GAAgBN,EAAO7qO,GAAUirO,EAEvCv4D,EAAO5yK,MAAQorO,EACfx4D,EAAO1yK,OAASmrO,EACTz4D,EAAAn0K,MAAMuB,MAAQ,GAAA/S,OAAG69O,EAAO9qO,EAAA,MACxB4yK,EAAAn0K,MAAMyB,OAAS,GAAAjT,OAAG89O,EAAO7qO,EAAA,MAEhCgpB,EAAI+1H,UAAUnqH,EAAaq2M,EAAOtqN,EAAYsqN,GAC9CjiN,EAAIq8I,OAAQ7tM,KAAK6gN,GAAK,IAAOloN,OAAOk1M,IACpCr8I,EAAIoiN,YAAc38E,EAElB,IAAM48E,EAAYvrO,EAAQmrO,EACpBK,EAAatrO,EAASirO,EAE5BjiN,EAAIuiN,UAAY,cAChBviN,EAAIwiN,SAAS,EAAG,EAAGH,EAAWC,GAExB,IAAAG,EAAWl9Q,MAAMe,QAAQi7Q,GAAoBA,EAAmB,CAAA9hO,GAAA,CAAA,EAAM8hO,IACxE1vO,EAAM,EACD4wO,EAAA9jQ,SAAQ,SAACqN,GAChB,GAAIA,EAAKsT,IAAK,CACZ,IAAQA,EAA6BtT,EAA7BsT,IAAAojP,EAA6B12P,EAAxB22P,YAAAA,OAAc,IAAAD,GAAAA,EAE3B12P,EAAK6lB,IAAMA,EACJA,GAAAmF,EACD,IAAA4rO,EAAM,IAAI52E,MAChB42E,EAAIC,YAAc,YAClBD,EAAIE,eAAiB,cACrBF,EAAIt4E,IAAMhrK,EACVsjP,EAAIv3O,OAAS,WAGX,GADI20B,EAAA4pJ,UAAUg5D,EAAK,EAAG52P,EAAK6lB,IAAMowO,EAAOnrO,EAAQmrO,EAAOjrO,EAASirO,GAC5DU,EAAa,CAGf,IAFM,IAAAI,EAAU/iN,EAAIgjN,aAAa,EAAG,EAAGhjN,EAAI0pJ,OAAO5yK,MAAOkpB,EAAI0pJ,OAAO1yK,QAC9DisO,EAASF,EAAQjwQ,KACd9L,EAAI,EAAGA,EAAIi8Q,EAAO79Q,OAAQ4B,GAAK,EAAG,CACnC,IAAAk8Q,GAAaD,EAAOj8Q,GAAKi8Q,EAAOj8Q,EAAI,GAAKi8Q,EAAOj8Q,EAAI,IAAM,EAChEi8Q,EAAOj8Q,GAAKk8Q,EACZD,EAAOj8Q,EAAI,GAAKk8Q,EAChBD,EAAOj8Q,EAAI,GAAKk8Q,CAClB,CACIljN,EAAAmjN,aAAaJ,EAAS,EAAG,EAC/B,CACS19M,EAAAqkJ,EAAO05D,aAEpB,MAAA,GAAWp3P,EAAKy0B,KAAM,CACd,IACJA,EAKEz0B,EALFy0B,KAAA4iO,EAKEr3P,EAJFs3P,UAAAA,OAAY,IAAAD,EAAA,qBAAAA,EAAAE,EAIVv3P,EAHFkzB,SAAAA,OAAW,IAAAqkO,EAAA,GAAAA,EAAAC,EAGTx3P,EAFFy3P,WAAAA,OAAa,IAAAD,OAAA,EAAAA,EAAAE,EAEX13P,EADF23P,WAAAA,OAAa,IAAAD,EAAA,SAAAA,EAGf13P,EAAK6lB,IAAMA,EACJA,GAAAuvO,EACD,IAAAwC,EAAWz8Q,OAAO+3C,GAAY+iO,EAEpCjiN,EAAI6jN,KAAO,iBAAA9/O,OAAiB4/O,OAAc5/O,OAAA6/O,EAAA,OAAA7/O,OAAcu+O,SAAgBv+O,OAAA0/O,GACxEzjN,EAAI8jN,UAAY,QAChB9jN,EAAI+jN,aAAe,MACnB/jN,EAAIuiN,UAAYe,EAChBtjN,EAAIgkN,SAASvjO,EAAM,EAAGz0B,EAAK6lB,IAAMowO,EACnC,CACF,IACS58M,EAAAqkJ,EAAO05D,YAClB,CDlCwBa,CAAAlC,EAAex6Q,OAAO,SAAC28Q,GAAc,IAAAC,EANlDxC,EAAoBp6Q,QACzBo6Q,EAAoBp6Q,MAAMyiB,SAC1B23P,EAAoBp6Q,MAAQ,MAO1Bk6Q,EAAgBl6Q,MAAQ28Q,EACJvC,EAAAp6Q,MAAQumC,SAASsD,cAAc,OACnDiE,GAASssO,EAAoBp6Q,MAAO,CAClCosC,OAAQxlC,EAAMwlC,OACduD,SAAU,WACVpF,KAAM,EACNE,MAAO,EACPH,IAAK,EACLE,OAAQ,EACR+E,MAAO,OACPE,OAAQ,OACRotO,eAAgB,GAAArgP,OAAG69O,EAAKr6Q,MAAQ4G,EAAM2oC,MAAA,MACtCM,cAAe,OACf0qO,iBAAkBA,EAAiBv6Q,MACnCk6Q,wBAAA19O,OAAyB09O,EAAgBl6Q,MAAA,MACzCgwB,UAAWppB,EAAMkzQ,8BAAAt9O,OAAsD,EAArB51B,EAAMmzQ,aAAoB,GAAQ,KAAA,SAEzE6C,QAAAA,EAAAzC,EAAAn6Q,aAAA48Q,IAAAA,GAAAA,EAAO38I,OAAOm6I,EAAoBp6Q,MACjD,IAEI4G,EAAMkzQ,QAAS,CACjB,IAAMgD,GEzFN54N,EAAQj9C,KAAKsa,MAAsB,EAAhBta,KAAK2vG,UACxBmmK,EAAK91Q,KAAKsa,MAAsB,GAAhBta,KAAK2vG,UAAiB,GAIrBp6E,+CAAAA,OAEG,IAAV0nB,EAHG,GAGkC,IAAVA,EALtB,EAKmD64N,EACxEvgP,YAAAA,OAAU,IAAV0nB,EANqB,EAMkB,IAAVA,EALT,GAKqC64N,EAAAvgP,wBAAAA,OAEhC,IAAV0nB,EANI,GAMiC,IAAVA,EARrB,EAQkD,IAAM64N,EAAAvgP,YAAAA,OACnE,IAAV0nB,EARoB,GAQkB,IAAVA,EATP,EASoC64N,0BAAAvgP,OAEhC,IAAV0nB,EAXM,EAWiC,IAAVA,EATzB,GASoD,IAAM64N,EAC7E,YAAAvgP,OAAU,IAAV0nB,EAXoB,GAWkB,IAAVA,EAZP,EAYoC,IAAM64N,EAAAvgP,sDAAAA,OAEtC,IAAV0nB,EAdM,EAciC,IAAVA,EAZzB,GAYoD64N,EACvEvgP,YAAAA,OAAU,IAAV0nB,EAfqB,EAekB,IAAVA,EAdT,GAcqC,IAAM64N,EAAA,yBAAAvgP,OAErC,IAAV0nB,EAfG,GAekC,IAAVA,EAjBtB,EAiBmD64N,EACxE,YAAAvgP,OAAU,IAAV0nB,EAlBqB,EAkBkB,IAAVA,EAjBT,GAiBqC64N,EAAA,iBCtBtC/uO,EH4FD8uO,EG3FZE,EAAez2O,SAASsD,cAAc,SACxCozO,EAAa,KACR12O,SAAAghK,KAAKz9J,YAAYkzO,IAC1BC,EAAaD,EAAaE,OACfC,WAAWnvO,EAAOivO,EAAWG,SAASv/Q,OHwF7C,CG7Fc,IAACmwC,EACbgvO,EACFC,EDAE/4N,EACA64N,GFuHJ,OA1BArxO,EAAAA,WAAU,WACQ+uO,IAChBrwG,GACE+vG,EAAan6Q,OACb,SAACmsK,GACKvlK,IAAAA,EAAMsjF,WAAckwL,EAAoBp6Q,MAAxC4G,CAA+C,IACjB04B,EADiBC,EAAAC,GAC5B2sI,GAAW,IAAlC,IAAA5sI,EAAA1W,MAAAyW,EAAAC,EAAAxhC,KAAAgmB,MAAkC,CAAA,IAAvBqoJ,UACHixG,EAAYr/Q,MAAMI,KAAKguK,EAASkxG,cAAch/P,SAAS87P,EAAoBp6Q,OAC3Eu9Q,EAA+B,eAAlBnxG,EAAS3pK,MAAyB23Q,EAAoBp6Q,QAAUosK,EAASvsI,OAC5F,GAAIw9O,GAAaE,EAAY,CACX9C,IAChB,KACF,CACF,CAAA,CAAA,MAAA96O,GAAAJ,EAAAzhC,EAAA6hC,EAAA,CAAA,QAAAJ,EAAA1b,GAAA,CARmD,CASrD,GACA,CACEm/C,YAAY,EACZz+C,WAAW,EACX8nJ,eAAe,EACfC,SAAS,GAGf,IAEM/oI,EAAAA,OAAA,WAAA,OAAM38B,IAAO6zQ,EAAiB,CAAEl3L,MAAM,EAAMhmE,MAAO,SAElD,WACC,IAAA4gC,EAAiB5hB,GAAe,aAChCwd,EAAgBzxB,KAGpB,OAAA+vB,EAAAA,YAAA,MAAA,CAAArK,MACS,CAAE2B,SAAU,WAAYG,SAAU,SAAUP,MAAO,cACnD4O,EAAen+C,UACjBm6Q,GAAA,CAEJpgO,EAAc,UAAW,aAIlC,IInIWyjO,GAAYngO,GAAY48N,ICItBwD,GAAA,CAEbC,UAAWt1P,QAEXyxE,UAAWzxE,QAEXktB,MAAO,CACL7yC,KAAM,CAAC9C,OAAQ3B,OACfwwB,QAAS,WAGXnpB,MAAO,CACL5C,KAAM7C,OACN4uB,QAAS,GAGX4O,SAAU,CACR36B,KAAM2lB,QACNoG,aAAS,GAGXi7B,IAAK,CACHhnD,KAAM7C,OACN4uB,QAAS,GAGXgC,KAAM,CACJ/tB,KAAMhC,UAGR45C,SAAUjyB,QAEVhd,KAAM,CACJ3I,KAAM9C,OACN6uB,QAAS,QAGX8/G,MAAO,CACL7rI,KAAMzE,MACNwwB,QAAS,WAAT,MAAqC,EAAC,GAGxCxuB,MAAO,CACLyC,KAAM7C,OACN4uB,aAAS,GAEXyiB,WAAY,CACVxuC,KAAM7C,OACN4uB,aAAS,GAGXrhB,aAAc,CACZ1K,KAAM7C,OACN4uB,QAAS,GAGXuP,SAAUt9B,UCzDZk9Q,GAAe1mO,kBAAgB,CAC7Br4C,KAAM,QACNgI,MAAAA,GACAswC,eAAMtwC,EAAAA,GAAkB,IAATgf,EAAA4d,EAAA5d,MACPN,EAAiBmC,KACfqU,EAAiBN,GAAU,QAA3BM,aAEF8hP,EAAc7+Q,EAAQ6H,EAAM0uC,OAAS1uC,EAAM0uC,MAAM,GAAK1uC,EAAM0uC,MAC5DuoO,EAAe9+Q,EAAQ6H,EAAM0uC,OAAS1uC,EAAM0uC,MAAM,GAAK,+BAE7D+iC,EAA0Cv9B,SAAOl0C,GACqD0xE,EAAA70D,GAApEutB,GADnBqnC,EAAPr4E,MAA8Bq4E,EAAXpnC,WACyCrqC,EAAMuG,aAAcvG,EAAMm3B,UAAQ,GAA/F+/O,EAAWxlM,EAAA,GAAAylM,EAAYzlM,EAAA,GAExB2gF,EAAa19H,EAAAA,SAAI,GACjB/6B,EAAO+6B,EAAAA,MAEP0gG,EAAex9G,EAAAA,UAAS,WAAA,OAAM7e,OAAOq5J,EAAWj5J,OAAS89Q,EAAU99Q,UACnEg+Q,EAAev/P,EAAAA,UAAS,WAAA,OAA8B,IAAvB7X,EAAM0nI,MAAMzwI,OAAei+B,EAAa97B,MAAMo6B,SAAWxzB,EAAM0nI,SAC9F1S,EAAcn9G,EAAAA,UAAS,WAAA,OAAMu/P,EAAah+Q,MAAMiH,KAAKsL,KAAK0pH,EAAaj8H,MAAQ,OAG/Ei+Q,EAAW,SAACC,GACZ,YAAe,IAAft4P,EAAM4K,KACDlL,EAAe,OAAQ,CAC5BT,OAAQq5P,IAIL7lO,cAAA8lO,GAAoBD,EAAW,OAGlCE,EAAe,SAACr6O,EAAmBniC,GACvC,GAAIgF,EAAM82Q,UAAW,CACnB,IAAQnzO,EAAS/pC,EAAKR,MAAMoqC,wBAApBG,KAEAgF,EADU/uC,EAAKR,MAAMwwC,WAAW+qL,YACZnxL,wBAApBmF,MACAguC,EAAYx5C,EAAZw5C,QACF8gM,EAAa9uO,GAAS3tC,EAAQ,IAAOgF,EAAM6iD,KAAO7nD,EAAQ,GAEhE,GAAI27E,EAAUhzC,GAAQ8zO,EAAmB,OAAAz8Q,EACzC,GAAI27E,EAAUhzC,EAAO8zO,EAAY,OAAOz8Q,EAAQ,EAClD,CAEO,OAAAA,GAQH08Q,EAAoB,WACpB13Q,EAAMw2B,WACV67H,EAAWj5J,WAAQ,IAcfu+Q,EAAa,SAAC38Q,GAClB,OAAIgF,EAAM82Q,WAAa97Q,EAAQ,KAAQq6H,EAAaj8H,MAAO,GAAAw8B,OAAUzM,EAAY/vB,MAAA,qBAC7E4B,GAASq6H,EAAaj8H,MAAc,GACpC4B,EAAQq6H,EAAaj8H,MAAO,GAAAw8B,OAAUzM,EAAY/vB,MAAA,0BAAtD,GAGM+vB,EAAgByL,GAAU,eAA1BzL,YAER,OAAO,WACL,OAAAsoB,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OACiBzM,EAAY/vB,4BAA4Bs+Q,GAAA,CAAAjmO,EAAAK,YAAA,KAAA,CAAAJ,MAAA,GAAA9b,OACvCzM,EAAY/vB,MAAoB,eAAAguC,MAAO,CAAEyb,IAAAjtB,GAAAA,OAAQ51B,EAAM6iD,WAAWluB,IAAK/6B,GAClF,CAAA1B,EAAId,MAAM4B,OAAOgH,EAAMvB,SAASwG,KAAI,SAACye,EAAG1oB,GAAA,OAAAy2C,EAAAA,YAAA,KAAA,CAAA5zC,IAEhC7C,EAAA02C,MACE,CAAA,GAAA9b,OAAIzM,EAAY/vB,MAAA,eAAoBu+Q,EAAW38Q,IACtDq8C,QAAS,SAACla,GAAA,OA3BD,SAACA,EAAmBniC,GACvC,IAAIgF,EAAMw2B,SAAV,CACM,IAAAp9B,EAAQo+Q,EAAar6O,EAAOniC,GAC9BgF,EAAMizF,WAAa75F,IAAU89Q,EAAU99Q,OACzCi5J,EAAWj5J,WAAQ,EACnB+9Q,EAAa,IAEbA,EAAa/9Q,EANK,EA0BUw+Q,CAAaz6O,EAAOniC,EAAQ,EAAC,EAAAwvO,YACpC,SAACrtM,GACL,OAvCK,SAACA,EAAmBniC,GACxCgF,EAAMw2B,WACC67H,EAAAj5J,MAAQo+Q,EAAar6O,EAAOniC,IAqCpB68Q,CAAkB16O,EAAOniC,EAAQ,EAC1C,GAAA,CAECgF,EAAMyzC,SACLhC,EAAAA,YAAA4lC,GAAA,CAAAx5E,IAAc7C,EAAA0iB,QAAgBs3G,EAAY57H,OAAA,CAAAwuB,QAAA,WAAA,MAAA,CAAA6pB,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OACzBzM,EAAY/vB,MACzB,oBAAAq4C,CAAAA,EAAAK,YAAAulO,EAAA,CAAA7yQ,KAAgBxE,EAAMwE,KAAAkqC,MAAasoO,GAAA,QAAAvlO,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OAEtBzM,EAAY/vB,MACzB,uBAAAq4C,CAAAA,EAAAK,YAAAulO,EAAA,CAAA7yQ,KAAgBxE,EAAMwE,KAAAkqC,MAAauoO,GAAA,QAAA,IAAAxlO,EAAAK,YAAAoR,EAAAnlC,SAAA,KAAA,CAAA0zB,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OAKtBzM,EAAY/vB,MACzB,oBAAAq4C,CAAAA,EAAAK,YAAAulO,EAAA,CAAA7yQ,KAAgBxE,EAAMwE,KAAAkqC,MAAasoO,GAAA,QAAAvlO,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OAEtBzM,EAAY/vB,MACzB,uBAAAq4C,CAAAA,EAAAK,YAAAulO,EAAA,CAAA7yQ,KAAgBxE,EAAMwE,KAAAkqC,MAAauoO,GAI3C,WACD,MAEFj3Q,EAAMyzC,UAAYhC,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OAAezM,EAAY/vB,MAAA,gBAAqB47H,CAAAA,EAAY57H,UAIvF,ICnHW0+Q,GAAOrhO,GAAYsgO,ICEjBgB,GAAA,CAEbhkM,KAAMvyD,QAEN9D,QAAS,CACP7hB,KAAM,CAAC9C,OAAQc,WAGjBm+Q,SAAU,CACRn8Q,KAAM,CAAC2lB,QAAStoB,QAChB0uB,SAAS,GAGXA,QAAS,CACP/rB,KAAM,CAAC9C,OAAQc,WAGjBo2B,OAAQzO,QAERgV,SAAUhV,QAEV+4B,SAAU,CACR1+C,KAAM,CAAC2lB,QAAStoB,QAChB0uB,SAAS,GAGXqwP,OAAQz2P,QAER02P,SAAU12P,QAEVunC,KAAM,CACJltD,KAAM,CAAC9C,OAAQyoB,SACfoG,SAAS,GAGXuwP,OAAQ32P,QAERoR,MAAO,CACL/2B,KAAM9C,OACN24B,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,UAAW,YAAa,UAAW,UAAW,SAASvI,SAASuI,EAC1E,GAGF48B,UAAWr7B,SCFPnV,GAAO,SAACimC,EAAcl9B,GAC1B,IAAI5C,EACF4lQ,EACA58P,EACAi2C,EACA1I,EACA1+B,GAAU,EACPjV,IACHA,EAAU,CAAA,GAER,IAsCF,GArCAgjQ,EAjDoB,WAChB,IAAA3mN,EAAY9xB,SAASkwB,eACvB,IAAC4B,EAAU4mN,WACb,OAAO,WAAY,EAKrB,IAHA,IAAIzhP,EAAS+I,SAASulE,cAEhBozK,EAAkB,GACfz/Q,EAAI,EAAGA,EAAI44D,EAAU4mN,WAAYx/Q,IACxCy/Q,EAAOl1Q,KAAKquD,EAAU8mN,WAAW1/Q,IAI3B,OADQ+9B,EAAOghE,QAAQiZ,eAExB,IAAA,QACA,IAAA,WACHj6E,EAAOygE,OACP,MAAA,QAGSzgE,EAAA,KAKb,OADA66B,EAAU3B,kBACH,WACc,UAAT2B,EAAA51D,MAAoB41D,EAAU3B,kBAEnC2B,EAAU4mN,YACNC,EAAA9nQ,SAAQ,SAAUgL,GACvBi2C,EAAUE,SAASn2C,EACrB,IAGFob,GAAUA,EAAOg5B,QAErB,CAauB4oN,GAEnBh9P,EAAQmkB,SAAShkB,cACjB81C,EAAY9xB,SAASkwB,gBAEd9G,EAAAppB,SAASsD,cAAc,SACzB21C,YAActmC,EAEnByW,EAAK3hB,MAAMopG,IAAM,QAEjBznF,EAAK3hB,MAAM2B,SAAW,QACtBggB,EAAK3hB,MAAM1D,IAAM,IACjBqlB,EAAK3hB,MAAMiuC,KAAO,mBAElBtsB,EAAK3hB,MAAMqxO,WAAa,MAExB1vN,EAAK3hB,MAAMsxO,iBAAmB,OAC9B3vN,EAAK3hB,MAAMuxO,WAAa,OACnB5vN,EAAAnpB,iBAAiB,QAAQ,SAAU1oC,GACtCA,EAAEyhF,kBACEvjE,EAAQuR,SACVzvB,EAAEw8E,iBACFx8E,EAAE0jG,cAAcg+K,YAChB1hR,EAAE0jG,cAAcojF,QAAQ5oK,EAAQuR,OAAQ2rB,IAEtCl9B,EAAQyjQ,SACV3hR,EAAEw8E,iBACMt+D,EAAAyjQ,OAAO3hR,EAAE0jG,eAErB,IAESj7D,SAAAwB,KAAK+B,YAAY6lB,GAE1BvtC,EAAMk2C,mBAAmB3I,GACzB0I,EAAUE,SAASn2C,IAEAmkB,SAAS2sB,YAAY,QAEhC,MAAA,IAAIjsB,MAAM,iCAERhW,GAAA,QACH0O,GACH,IACDQ,OAAeqhE,cAAcojF,QAAQ5oK,EAAQuR,QAAU,OAAQ2rB,GAChEl9B,EAAQyjQ,QAAUzjQ,EAAQyjQ,OAAQt/O,OAAeqhE,eACvCvwE,GAAA,QACH0O,GACPvmB,EAtGS,SAACA,GACd,IAAMsmQ,GAAW,YAAY7gR,KAAKm3C,UAAUE,WAAa,SAAM,QAAU,KAClE,OAAA98B,EAAQ7W,QAAQ,gBAAiBm9Q,EAC1C,CAmGgBnyP,CAAO,YAAavR,EAAUA,EAAQ5C,QAxG/B,oCAyGV+mB,OAAAw/O,OAAOvmQ,EAAS8/B,EACzB,CACF,CAAE,QACImf,IACkC,mBAAzBA,EAAUunN,YACnBvnN,EAAUunN,YAAYx9P,GAEtBi2C,EAAU3B,mBAIV/G,GACOppB,SAAAwB,KAAKiC,YAAY2lB,GAEXqvN,GACnB,CAEO,OAAA/tP,CACT,ECxHe4uP,GAAA,CAEbv7P,QAAS,CACP7hB,KAAM,CAAC9C,OAAQc,WAGjB+tB,QAAS,CACP/rB,KAAM,CAAC9C,OAAQc,WAGjB0gD,SAAU,CACR1+C,KAAM,CAAC2lB,QAAStoB,QAChB0uB,SAAS,ukBCbb,IAAAsxP,GAAe7oO,kBAAgB,CAC7Br4C,KAAM,YACNq0M,WAAY,CAAE7iC,SAAAA,IACdxpK,MAAOsxC,GACFtxC,CAAAA,EAAAA,IAELswC,eAAMtwC,EAAAA,GAAkB,IAATgf,EAAA4d,EAAA5d,MACPu4B,EAAiB5hB,GAAe,cAC9BT,EAAiBN,GAAU,cAA3BM,aAEFxX,EAAU7F,EAAAA,UAAS,WAChB7X,OAAAA,EAAM0d,UAAWsB,aAAAA,EAAAA,EAAe,UACzC,IAEMm6P,EAAgBthQ,EAAAA,UAAS,WAC7B,IAAM0iC,EAAWv6C,EAAMu6C,SAChB,OAAAjJ,GAAA,CACLiT,IAAK,EACL60N,YAAY,GACY,WAApB3gR,EAAO8hD,GAAwBA,EAAW,KAElD,IAEM8+N,EAAiBxhQ,EAAAA,UAAS,WAC9B,IAAM0iC,EAAW4+N,EAAc//Q,MACzBkgR,EAAM,CACVpwO,SAAUlpC,EAAMu6C,SAAW,SAAW,UACtCu+B,aAAc94E,EAAMu6C,SAAW,WAAa,UAC5Ck+N,WAAYz4Q,EAAMu6C,SAAW,SAAW,SACxC0b,QAAS,cACTsjN,gBAAiBh/N,EAASgK,IAC1Bi1N,gBAAiB,YAQZ,OALHlgE,EAASlgN,QACXkgR,EAAIpwO,SAAW,UACfowO,EAAIb,WAAa,SACjBa,EAAIrjN,QAAU,WAETqjN,CACT,IACMhgE,EAAW3kL,OAAI,GAEfysD,EAAW,WAAM,IAAAq4L,EAAAC,EACrBpgE,EAASlgN,OAAQ,EACa,WAA1BX,EAAOuH,EAAMu6C,YAAsCk/N,QAAfz5Q,GAAAA,EAAAA,EAAMu6C,UAAS6mC,gBAAfphF,IAAey5Q,GAAfz5Q,EAAAA,KAAAA,GAA0B,KAG9D25Q,EAAa,WAAM,IAAAC,EAAAC,EACvBvgE,EAASlgN,OAAQ,EACa,WAA1BX,EAAOuH,EAAMu6C,YAAsCq/N,QAAf55Q,GAAAA,EAAAA,EAAMu6C,UAAS6mC,gBAAfphF,IAAe45Q,GAAf55Q,EAAAA,KAAAA,GAA0B,KAG9D85Q,EAAuB,WACrB,IA1Dc73P,EA0DZoc,EAAW86O,EAAc//Q,MAAzBilC,OAEF07O,EACJtoO,EAAAK,YAAA,OAAA,CAAAJ,MAAA,GAAA9b,OACY2hB,EAAen+C,MAAA,oBAAAi+C,QAChB+pC,EAAAh6C,MAAA,oDAAA,CAGR/I,GAAUnJ,EAAa97B,MAAM24B,aAIlCioP,EAAkDb,EAAc//Q,MAAxDotK,EAAAwzG,EAAAxzG,aAAc4yG,EAAYY,EAAZZ,WAAYa,EAAAD,EAAAC,YAC9B,OAAC3gE,EAASlgN,OAASggR,EACd5yG,GAAgBA,EAAa9oJ,QAAA+zB,EAAAK,YAAA03H,GAAAl1H,EAAAqgC,WACpB6xF,EAAc,CAAA9oJ,QAAS8oJ,EAAa9oJ,UAzElC,mBAAAuE,EA0Eb83P,IA1Eav7N,oBAAAtlD,OAAAP,UAAAf,SAAAC,KAAAoqB,KAAAu8B,EAAAhhC,QAAAyE,GA0Eb83P,EACH,CAAAnyP,QAAA,WAAA,MAAA,CADGmyP,EACH,IAEAA,EAGAX,GAAc9/D,EAASlgN,OAAS6gR,EAClCxoO,EAAAA,YAAA,OAAA,CAAAC,MAAA,GAAA9b,OAEc2hB,EAAen+C,MAAA,oBAAAi+C,QAChBsiO,EAAAvyO,MAAA,oDAAA,CAGRlS,EAAa97B,MAAM44B,oBAPtB,GAaN,OAAO,WACC,IAAEw0I,EAAiB2yG,EAAc//Q,MAA/BotK,aAEN,OAAA/0H,EAAAA,YAAA,MAAA,CAAArK,MACS,CACL6uB,QAAS,OACTE,WAAY,aACd,CAECqwG,6BAAmCA,EAAa9oJ,QAAAk5C,UAAA,aAAA,MAA+BnlB,EAAAK,YAAA,IAAA,CAAA1K,MACtEpnC,EAAMu6C,SAAW8+N,EAAejgR,MAAQ,CAAC,GAAA,CAAIskB,EAAQtkB,QAC9D0gR,MAIT,ICnGF,IAAAI,GAAe7pO,kBAAgB,CAC7Br4C,KAAM,kBACNgI,MAAAA,GACAswC,eAAMtwC,EAAAA,GAAkB,IAATgf,EAAA4d,EAAA5d,MACPu4B,EAAiB5hB,GAAe,cAC9BT,EAAiBN,GAAU,cAA3BM,aACFilP,EAAWxlP,OAAI,GACfwe,EAAgBzxB,KAEhB04P,EAAqB,SAAAv9O,EAEzBnf,GACG,IAFDq2D,EAAAl3C,EAAAk3C,KAAMl3B,EAAWhgB,EAAXggB,UAAmBw9N,EAAKx9O,EAAA,OAAAs7O,EAAAt7O,EAAAs7O,OAAQD,EAAUr7O,EAAVq7O,SAAUnvN,EAAAlsB,EAAAksB,KAAMkvN,EAAOp7O,EAAPo7O,OAGpDqC,EAAiB58P,EAErB,SAASkrC,EAAK2xN,EAAiBn9J,GAAkC,IAArBj2E,EAAApoC,UAAA9H,OAAA,QAAAkD,IAAA4E,UAAA,GAAAA,UAAA,GAAiB,CAAA,EAC3D,GAAKw7Q,EAAL,CAAa,IArBKt4P,EAqBLu4P,EACyBF,EAAtCA,EAAA7oO,EAAAK,YAAAsrE,EAAA,CAAAh2E,MAA6BD,GAtBX,mBAAAllB,EAsBoBq4P,IAtBpB97N,oBAAAtlD,OAAAP,UAAAf,SAAAC,KAAAoqB,KAAAu8B,EAAAhhC,QAAAyE,GAsBoBq4P,kCADzB,CAEf,CASO,OAPP1xN,EAAKuvN,EAAQ,UACbvvN,EAAK/L,EAAW,KAChB+L,EAAKyxN,EAAK,OACVzxN,EAAKmrB,EAAM,QACNnrB,GAAS,IAATG,EAAgB,OAAQA,EAAO,CAAEra,MAAOqa,GAAS,CAAE,GACxDH,EAAKsvN,EAAU,OACftvN,EAAKqvN,EAAQ,KACNqC,GAGHh6O,EAAYzoB,EAAAA,UAAS,WACnB,IAAE+a,EAAoB5yB,EAApB4yB,MAAO4D,EAAax2B,EAAbw2B,SACT2mB,EAAS5F,EAAen+C,MACxBy4B,EAAiB,CAACsrB,GAMjB,OALH3mB,EACG3E,EAAAzuB,KAAA,GAAAwyB,OAAQunB,iBACJvqB,GAAS,CAAC,UAAW,YAAa,UAAW,UAAW,SAASlb,SAASkb,IAC9Ef,EAAAzuB,KAAA,GAAAwyB,OAAQunB,EAAA,MAAAvnB,OAAWhD,IAEnBf,CACT,IAEM4oP,EAAc5iQ,EAAAA,UAAS,WAAM,IAAA6iQ,EACzB1C,EAAah4Q,EAAbg4Q,SACR,OAAImC,EAAS/gR,MAAc87B,EAAa97B,MAAMk6B,WACjB,WAApB76B,EAAOu/Q,GAAqD0C,QAA9BA,EAAO1C,EAASxxG,oBAATk0G,IAAuBA,OAAvBA,EAAAA,EAAuBh9P,QAC9D,IACT,IAEMA,EAAU7F,EAAAA,UAAS,WAChB7X,OAAAA,EAAM0d,UAAWsB,aAAAA,EAAAA,EAAe,UACzC,IAEM27P,EAAa,WACX,IAAE3C,EAAah4Q,EAAbg4Q,SACR,GAAKA,EAAL,CAEI,IAAApuP,EAAYuwP,EAAS/gR,MAAQ,WAAA,OAAAq4C,cAAAmuF,GAAA,KAAA,KAAA,EAAsB,WAAA,OAAAnuF,cAAAmpO,GAAA,KAAA,OACnDC,EAA8B,CAChCjoP,MAAO,WAGLimP,EAAS,aAaX,MAZsB,WAApBpgR,EAAOu/Q,KACLA,EAAS35O,SAAW87O,EAAS/gR,QAC/BwwB,EAAOouP,EAAS35O,QAEd25O,EAASxxG,eACXq0G,EAAc7C,EAASxxG,cAEM,mBAApBwxG,EAASa,SAClBA,EAASb,EAASa,SAIpBpnO,cAAA+3H,GAAAl1H,EAAAqgC,WAAckmM,EAAA,CAAAn9P,QAAsB+8P,EAAYrhR,0DAC/BwwB,EAAAutB,MAAA,SAAAvkB,MAAA,UAAAwkB,QAAA,OAAAC,QAA6D,SAACngD,GAAA,OAAM4jR,EAAY5jR,EAAG2hR,EAAS,GAAA,MAAA,GArBhG,GAkCXiC,EAAc,SAAC5jR,EAAe4rL,GAClC5rL,EAAEw8E,iBACFx8E,EAAEyhF,kBAEFwhM,EAAS/gR,OAAQ,EACjB+c,YAAW,WACTgkQ,EAAS/gR,OAAQ,IAChB,MAEHiT,GAhB6B,iBAAlBqR,EAAQtkB,MACVskB,EAAQtkB,MACNhC,MAAMe,QAAQulB,EAAQtkB,OACxBskB,EAAQtkB,MAAM6L,KAAI,SAAC0d,UAAMA,EAAE7E,QAAQ,IAAExV,KAAK,SADxC,GAeNw6K,SAAAA,KAGP,OAAO,WACCplK,IAAAA,EAAUy1B,EAAc,UAAW,WACzC,OAAOnzC,EAAMu6C,SACX9I,EAAAA,YAAAynO,GAAA5kO,EAAAA,WAAct0C,EAAAA,CAAAA,MAAcsgC,EAAUlnC,QAAA,CAAAwuB,QAAA,WAAA,MAAA,CACnCwyP,EAAmBp6Q,EAAO0d,GAC1B1d,EAAMg4Q,SAAW2C,IAAe,KAAA,IAAAlpO,EAAAK,YAAA,OAAA,CAAAJ,MAGtBpR,EAAUlnC,OAAA,CACpBghR,EAAmBp6Q,EAAO0d,GAC1B1d,EAAMg4Q,SAAW2C,IAAe,OAIzC,IC5HF,IAAAI,GAAe1qO,kBAAgB,CAC7Br4C,KAAM,cAENs4C,MAAQ,WACN,IAAM5xB,EAAiBmC,KACvB,OAAO,WAAM,IAAAy9B,EAPAr8B,EAQX,OAAAwvB,EAAAK,YAAAy9B,GAAA,KARW,mBAAAttD,EAQXq8B,EAAc5/B,EAAe,aARlB8/B,oBAAAtlD,OAAAP,UAAAf,SAAAC,KAAAoqB,KAAAu8B,EAAAhhC,QAAAyE,sCAUf,ICJa+4P,GAAA,CAEbt9P,QAAS,CACP7hB,KAAM,CAAC9C,OAAQc,WAGjB+tB,QAAS,CACP/rB,KAAM,CAAC9C,OAAQc,WAGjB0gD,SAAU,CACR1+C,KAAM,CAAC2lB,QAAStoB,QAChB0uB,SAAS,GAGXgpF,MAAO,CACL/0G,KAAM9C,OACN6uB,QAAS,KACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,MAAMvI,SAASuI,EACvD,ICzBJ,IAAAg7P,GAAe5qO,kBAAgB,CAC7Br4C,KAAM,mBACNgI,MAAAA,GACAswC,MAAAA,SAAMtwC,GACE,IAAAu3C,EAAiB5hB,GAAe,cAChCwd,EAAgBzxB,KAEtB,OAAO,WAAM,IAAA48B,EATIr8B,EAUAm7F,EAAQp9G,EAAf4wG,MACFlzF,EAAUy1B,EAAc,UAAW,WAClCnzC,OAAAA,EAAMu6C,SACX9I,EAAAA,YAAAynO,GAAA5kO,EAAAA,WAAct0C,EAAAA,CAAAA,MAAcu3C,EAAen+C,QAb9B,mBAAA6oB,EAa8Bq8B,EACxC1/B,EAAEA,EAAA5f,WAAA,EAAA,CAAAo+G,GAAAxnF,OAAA19B,EAAQwlB,OAdA8gC,oBAAAtlD,OAAAP,UAAAf,SAAAC,KAAAoqB,KAAAu8B,EAAAhhC,QAAAyE,qEAiBVrD,EAAAA,EAAA5f,WAAEo+G,EAAAA,CAAAA,EAAK,CAAE1rE,MAAO6F,EAAen+C,QAAMw8B,OAAA19B,EAAMwlB,OAGpD,mOCjBF,IAAAw9P,GAAe7qO,kBAAgB,CAC7Br4C,KAAM,uBACNq0M,WAAY,CAAE7iC,SAAAA,IACdxpK,uWAAOsxC,CAAA,CACLlK,MAAO,CACLvrC,KAAM3C,OACN0uB,QAAS,WAAT,MAAgB,EAAC,IAEhB5nB,IAELswC,eAAMtwC,EAAAA,GAAkB,IAATgf,EAAA4d,EAAA5d,MACPu4B,EAAiB5hB,GAAe,cAChCjY,EAAU7F,EAAAA,UAAS,WAChB7X,OAAAA,EAAM0d,UAAWsB,aAAAA,EAAAA,EAAe,UACzC,IAEA,OAAO,WACL,OAAOhf,EAAMu6C,SACX9I,EAAAA,YAAAynO,GAAA5kO,EAAAA,WAAct0C,EAAO,CAAA0xC,MAAO6F,EAAen+C,QACxC,CAAAwuB,QAAA,WAAA,MAAAlK,CAAAA,EAAQtkB,mCAGDm+C,EAAen+C,OAAQskB,CAAAA,EAAQtkB,QAG/C,ICtBW+hR,GAAa1kO,GAAYskO,IACzBxrM,GAAO94B,GAAYyjO,IACnBkB,GAAQ3kO,GAAYwkO,IACpBI,GAAY5kO,GAAYykO,ICFtBI,GAAA,CAEbr1O,MAAO,CACLpqC,KAAM,CAAC9C,OAAQyoB,QAAS3nB,UACxB+tB,SAAS,GAGXA,QAAS,CACP/rB,KAAM,CAAC9C,OAAQc,WAGjB+vB,KAAM,CACJ/tB,KAAMhC,UAGR0hR,QAAS,CACP1/Q,KAAM7C,OACN4uB,QAAS,GAGXpV,QAAS,CACP3W,KAAM,CAAC9C,OAAQc,WAGjB88K,UAAW,CACT96K,KAAMhC,UAGR+4B,MAAO,CACL/2B,KAAM9C,OACN6uB,QAAS,OACT8J,UAAAA,SAAUzR,GACR,MAAO,CAAC,UAAW,OAAQ,UAAW,SAASvI,SAASuI,EAC1D,GAGFmN,MAAO,CACLvxB,KAAM,CAAC9C,OAAQc,WAGjB08D,QAAS18D,SAET+2M,SAAU/2M,UCrCZ2hR,GAAenrO,kBAAgB,CAC7Br4C,KAAM,SACNgI,MAAAA,GACAswC,MAAAA,SAAMtwC,GACJ,ICRIme,EDQJ62D,EAAsCpgD,GAAU,SAAxCM,EAAA8/C,EAAA9/C,aAAc/L,EAAY6rD,EAAZ7rD,YACtBuuC,EACE59B,GAAc,CACZ+9B,sBAAuBC,GACvBK,UAAWC,GACXL,sBAAuBC,GACvBC,qBAAsBC,GACtBP,qBAAsBC,KANlBC,EAAuBH,EAAvBG,sBAAuBM,EAAAT,EAAAS,UAAWJ,IAAAA,sBAAuBE,EAAsBP,EAAtBO,qBAAsBN,EAAAD,EAAAC,qBAQjFpgB,EAAiB5hB,GAAe,SAChCjX,EAAiBmC,KAEjB46P,GCpBFt9P,EAAWW,EAAAA,qBACV,SAAyB48P,EAAkBC,GAC5C,IAAAC,EAEJ,GAAIh/Q,EAAWuhB,EAASne,MAAM07Q,IACdE,EAAAz9P,EAASne,MAAM07Q,GAAU98P,EAACA,QAC1C,GAAWT,EAASa,MAAM08P,GAExBE,EAAcz9P,EAASa,MAAM08P,IAAav9P,EAASa,MAAM08P,GAAU,MAAM,WAChEC,EAAc,CACjB,IAAAxd,EAAYwd,EAAax9P,EAASne,MAAM4yB,OAC9CgpP,EAAAnqO,EAAAA,YAAA0sN,EAAyB,KAAA,KAC3B,CACO,OAAAyd,IDSDC,EAAWlnP,MAAwB,MAEnCmnP,EAAiBnnP,MAAwB,MAEzConP,EAAapnP,MAAI,GAEjBoC,EAAUpC,OAAI,GAEdmsD,EAAYnsD,OAAI,GAchBqnP,EAAc,WACZ,IAAE/1O,EAAUjmC,EAAVimC,MACJg2O,EAAe,KAQZ,OANLA,GADY,IAAVh2O,GAA4B,KAAVA,EACpBwL,EAAAA,YAAA0mB,EAA0B,KAAA,MACjB7/C,GAAS2tB,GACHA,EAEAw1O,EAAgB,UAE1BhqO,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OACU2hB,EAAen+C,MAAA,WAAAi+C,QAAyB6kO,GACpDD,CAAAA,IAED,MAkBAE,EAAoB,WAAM,IAAAC,EAC1BC,GAEJA,EAAiB39P,EAAe,cAE9B29P,EAAiB39P,EAAe,YAElC,IAAM49P,EAAgBnkR,EAAQkkR,GAAmBA,EAA0CplR,OAAS,EAC9FslR,EAAcv8Q,EAAMu7Q,QAAU,GAAKv7Q,EAAMu7Q,QAAUe,EACnDzzO,EAAgCuzO,QAAtBA,EAAAN,EAAe1iR,aAAOgjR,IAAAA,WAAAA,EAAtBA,EAAsBt+P,SAAS,UAAoB,IAAAs+P,OAAA,EAAnDA,EAAmDtzO,aAYnE,OAXIyzO,GAAez7L,EAAU1nF,OAE3BijR,EAAkBA,EAA0CvkR,MAAM,EAAGkI,EAAMu7Q,SAC3E1yO,IAAWizO,EAAe1iR,MAAMguC,MAAMyB,OAAA,GAAAjT,OAAYmmP,EAAW3iR,cACpDmjR,GAGN1zO,IAAAizO,EAAe1iR,MAAMguC,MAAMyB,OAAAjT,GAAAA,OAAYiT,GAAUyzO,EAAgBt8Q,EAAMu7Q,SAAWQ,EAAW3iR,MAAA,OAIlGq4C,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OACiB2hB,EAAen+C,2BAA2B0iR,GAAA,CACtDS,EACIF,EAAyCp3Q,KAAI,SAACyY,GAAA,OAAA+zB,EAAAK,wBAAkBp0B,GAAc,IAC/E2+P,EACHE,EAAA9qO,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OAEa2hB,EAAen+C,MAAA,cAAAi+C,QAChB,WACGypC,EAAA1nF,OAAS0nF,EAAU1nF,KAC/B,GAAA,CAEC0nF,EAAU1nF,MAAQ87B,EAAa97B,MAAM24B,WAAamD,EAAa97B,MAAM44B,eAEtE,QAYJkqP,EAAc,SAAChlR,GAAkB,IAAAshE,EAC/B,QAANx4D,EAAAA,EAAMu2D,eAAA,IAAAiC,GAANx4D,EAAAA,KAAAA,EAAgB,CAAE9I,EAAAA,IAClBspC,GAASq7O,EAASziR,MAAA,GAAAw8B,OAAU2hB,EAAen+C,MAAgB,eAGvDojR,EAAiB,SAACtlR,GAChB,IAEkD4+M,EAFlD2mE,EAAqBvlR,EAAE+hC,SAAW4iP,EAASziR,MAE1B,YAAnBlC,EAAEwlR,cAA8BD,IAClC1lP,EAAQ39B,OAAQ,EACV,QAAN4G,EAAAA,EAAM4wM,gBAAA,IAAAkF,GAAN91M,EAAAA,KAAAA,EAAiB,CAAE9I,EAAAA,MAYvB,OARA4tC,EAAAA,WAAU,WACLpF,GAAAm8O,EAASziR,MAAO,gBAAiBojR,GACzBT,EAAA3iR,MAAQ0iR,EAAe1iR,MAAM0vC,YAC1C,IACA/D,EAAAA,iBAAgB,WACVhF,GAAA87O,EAASziR,MAAO,gBAAiBojR,EACvC,IAEO,WAAA,OAAA/qO,EAAAA,YAAA,MAAA,CAAA9c,IAEEknP,QACE,CAAAjmP,GAAAA,OACF2hB,EAAen+C,OAAAw8B,GAAAA,OACf2hB,EAAen+C,YAAAw8B,OAAU51B,EAAM4yB,OAAA35B,EAAA,CAAA,EAAA,GAAA28B,OAE5BzM,EAAY/vB,MAAA,eAAqB29B,EAAQ39B,SAIhD0/D,EApHG8iN,EAAcH,EAAgB,OAPlB,CAChBvxP,KAAMytC,EACNttC,QAASwtC,EACT1tC,QAAS4tC,EACTrhC,MAAOqhC,EACPgB,SAAUd,IAGL2jN,EAAAnqO,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OAA6B2hB,EAAen+C,MAAA,WAAgBwiR,CAAAA,IAAqB,MA2ExFnqO,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OACiB2hB,EAAen+C,MAAA,cAAA,EAvD1BqqQ,EAAe/kP,EAAe,SAC7B+kP,EAAehyN,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OAAe2hB,EAAen+C,MAAA,YAAA,CAAgB,IAAEqqQ,IAAsB,OAItFkZ,EAAmBj+P,EAAe,aACxC+yB,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OACiB2hB,EAAen+C,MAAA,cAAA,CAC3B+iR,IACAQ,EAAAlrO,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OAAkC2hB,EAAen+C,MAAA,gBAAqBujR,CAAAA,IAA0B,UAuFlGX,MA3CiB,IAhDdW,EALAlZ,EAtBAmY,EAyHV,IEnKWgB,GAAQnmO,GAAY+kO,ICAlBqB,GAAA,CAEbtzP,OAAQ,CACN1tB,KAAM,CAAC9C,OAAQc,WAGjBsnC,KAAM,CACJtlC,KAAM,CAAC9C,OAAQc,WAGjBq2M,UAAW,CACTr0M,KAAM,CAAC9C,OAAQG,OAAQW,WAGzBy8D,SAAU,CACRz6D,KAAM,CAAC9C,OAAQyoB,QAAS3nB,WAG1BkwB,kBAAmB,CACjBluB,KAAM2lB,QACNoG,aAAS,GAGXoC,oBAAqB,CACnBnuB,KAAM2lB,QACNoG,aAAS,GAGXuoL,WAAY,CACVt0M,KAAM,CAAC9C,OAAQG,OAAQW,WAGzB+tB,QAAS,CACP/rB,KAAM,CAAC9C,OAAQc,WAGjB00E,eAAgB/sD,QAEhBs7P,gBAAiB,CACfjhR,KAAM9C,OACN6uB,QAAS,IAGXmsJ,OAAQ,CACNl4K,KAAM,CAAC2lB,QAAS3nB,UAChB+tB,SAAS,GAGXihL,OAAQ,CACNhtM,KAAM,CAAC9C,OAAQyoB,QAAS3nB,UACxB+tB,SAAS,GAGXw7D,KAAM5hE,QAEN4gE,KAAM,CACJvmF,KAAM9C,OACN6uB,QAAS,UACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,UAAW,QAAQvI,SAASuI,EACtC,GAGF22C,UAAW,CACT/6D,KAAM9C,OACN6uB,QAAS,QACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,OAAQ,QAAS,MAAO,UAAUvI,SAASuI,EACrD,GAGFmyB,qBAAsB,CACpBv2C,KAAM2lB,QACNoG,SAAS,GAGX4oL,sBAAuBhvL,QAEvB6wB,YAAa,CACXx2C,KAAM2lB,QACNoG,SAAS,GAGXpjB,KAAM,CACJ3I,KAAM9C,OACN6uB,aAAS,GAGXm1P,cAAe,CACblhR,KAAM,CAAC2lB,QAAStoB,QAChB0uB,SAAS,GAGXmP,QAASvV,QAETgkB,OAAQ,CACN3pC,KAAM7C,QAGRy3M,cAAe52M,SAEf62M,aAAc72M,SAEd82M,SAAU92M,SAEV08D,QAAS18D,SAET28D,gBAAiB38D,SAEjBwlJ,UAAWxlJ,SAEXg3M,aAAch3M,SAEdo1E,eAAgBp1E,SAEhBmjR,cAAenjR,UC1FjB,SAASojR,GAAcz4Q,EAAcyQ,EAAa3U,GAChD,OAAOD,KAAK4U,IAAI5U,KAAKC,IAAIkE,EAAMyQ,GAAM3U,EACvC,CCjCa,IAAAktM,GAAU,SAACxtM,GAEhB,IAAAk9Q,EAAiBvoP,OAAI,GACrBwoP,EAAmBxoP,MAAY,MAU/ByoP,EAAgB,WACXz9O,SAAAK,oBAAoB,UAAWo9O,GAAe,GAC9Cz9O,SAAAK,oBAAoB,YAAaq9O,GAAiB,GAC3DH,EAAe9jR,OAAQ,GAGnBikR,EAAkB,SAACnmR,GAAkB,IAAAomR,EDhB3CP,EACAQ,ECiBUt5P,EAAS/sB,EAAT+sB,EAAG5B,EAAMnrB,EAANmrB,EACL45D,EAAYt8C,SAASiC,gBAAgBy+B,aACrC4V,EAAWt2C,SAASiC,gBAAgBe,YAIpCriC,EAA0B,SAApBN,EAAM42D,WAA4C,UAApB52D,EAAM42D,UAAwBqf,EAAWgG,EAE7EhnE,GAA0B,SAApBjV,EAAM42D,WAAwB52D,EAAM42D,UAJ5B,GAKpB4mN,GD3BFT,EC2BgF/8Q,EAAM+8Q,cD1BtFQ,EC0BqG,CAAEj9Q,IAAAA,EAAK2U,IAAAA,GDxB/E,kBAAlB8nQ,EACF,CACLU,mBAAoBV,EACpBz8Q,IAAKi9Q,EAAMj9Q,IACX2U,IAAKsoQ,EAAMtoQ,KAIR,CACLwoQ,oBAAoB,EACpBn9Q,IAAKy8Q,EAAcz8Q,IACnB2U,IAAK8nQ,EAAc9nQ,MCacyoQ,EAAAF,EAALl9Q,IAAoBq9Q,EAAAH,EAALvoQ,IAGvC,GAHIuoQ,EAAAC,oBAGoBP,EAAe9jR,MAAvC,CAEE,IAAAwkR,EDAM,SAAahnN,EAAsB4xC,GACjD,IACIo1K,EADI35P,EAAwCukF,EAAxCvkF,EAAG5B,EAAqCmmF,EAArCnmF,EAAG/hB,EAAkCkoG,EAAlCloG,IAAK2U,EAA6BuzF,EAA7BvzF,IAAKghE,EAAwBuyB,EAAxBvyB,SAAUgG,EAAcusB,EAAdvsB,UAE1B,OAAArlB,GACD,IAAA,QAIHgnN,EAAWX,GAAchnM,EAAWhyD,EAAGhP,EAAK3U,GAC5C,MACG,IAAA,OAGQs9Q,EAAAX,GAAch5P,EAAGhP,EAAK3U,GACjC,MACG,IAAA,MAOQs9Q,EAAAX,GAAc56P,EAAGpN,EAAK3U,GACjC,MACG,IAAA,SAOHs9Q,EAAWX,GAAchhM,EAAY55D,EAAGpN,EAAK3U,GAC7C,MAAA,QAGO,OAAAs9Q,EAEJ,OAAAA,CACT,CCtCqBC,CAAa79Q,EAAM42D,UAAW,CAC7C3yC,EAAAA,EACA5B,EAAAA,EACA4zD,SAAAA,EACAgG,UAAAA,EACA37E,IAAKo9Q,EACLzoQ,IAAK0oQ,SAGiB,IAAbC,IAEXT,EAAiB/jR,gBAAWwkR,EAAA,MACN,QAAtBN,EAAAt9Q,EAAMg9Q,qBAAgB,IAAAM,GAAtBA,EAAAzlR,KAAAmI,EAAsB,CACpB9I,EAAAA,EACAsN,KAAMo5Q,IAhB0C,GAoB9CE,EAAsBjmQ,EAAAA,UAAS,WAEnC,IAAMkmQ,EAAe,CAAC,QAAS,QAAQrmQ,SAAS1X,EAAM42D,WAO/C,OAAA39D,EAAAA,EAAAA,EAAAA,EAAA,CACLusC,OAAQ,EACRuD,SAAU,WACVwI,WAAY,eATM,CAClB5N,KAAM,QACNE,MAAO,OACPH,IAAK,SACLE,OAAQ,OAMK5jC,EAAM42D,WAAa,GACzBmnN,QAAAA,EAAe,OAAS,QAAA,SACvBA,EAAe,OAAS,QAAA,SACxBA,EAAe,aAAe,aAE1C,IAEMC,EAAiBnmQ,EAAAA,UAAiB,WAAA,OAAOqlQ,EAAe9jR,MAAQ,CAAEu/Q,WAAY,QAAW,MAExF,MAAA,CACLwE,iBAAAA,EACAc,WAxEiB,SAAC/mR,GAClBA,EAAEyhF,kBAEOh5C,SAAAC,iBAAiB,UAAWw9O,GAAe,GAC3Cz9O,SAAAC,iBAAiB,YAAay9O,GAAiB,GACxDH,EAAe9jR,OAAQ,GAoEvB0kR,oBAAAA,EACAE,eAAAA,EAEJ,qkBCjEA,IAAIngR,GAAM,EAEVqgR,GAAe7tO,kBAAgB,CAC7Br4C,KAAM,UACNw6C,cAAc,EACdxyC,MAAAA,GACA+8C,MAAO,CAAC,kBACRzM,eAAMtwC,EAAO83B,GACL,IAAAqmP,EAAwBxpP,OAAI,GAC5B05G,EAAY15G,OAAI,GAChBu/K,EAAUv/K,EAAAA,MACVypP,EAAazpP,EAAAA,MACXO,EAAiBN,GAAU,UAA3BM,aACAijC,EAAcr+B,GAAc,CAAEq+B,UAAWC,KAAzCD,UACFz5C,EAAiBmC,KACjBsyB,EAAgBzxB,KAChB61B,EAAiB5hB,GAAe,UACtC44K,EAA8Ef,GAAQxtM,GAA9Em9Q,EAAkB5uE,EAAlB4uE,iBAAkBc,EAAA1vE,EAAA0vE,WAAYH,IAAAA,oBAAqBE,EAAezvE,EAAfyvE,eACrD5pE,EAAkBv8L,EAAAA,UAAS,WAAA,OAAM7X,EAAM+2B,WACvCy9K,EAAY7/K,OAAI,GAGhB0e,EAAkBrJ,IAAY,WAAA,OAAMhqC,EAAMupB,UAS1CspL,EAAkC9B,GAAU,CAAEO,iBAP3B,SAACp6M,GAAkB,IAAAm3J,EACpC,QAANruJ,EAAAA,EAAMq/I,iBAAA,IAAAgP,GAANruJ,EAAAA,KAAAA,EAAkB,CAAE9I,EAAAA,KAMgDw6M,gBAJ9C,SAACx6M,GAAkB,IAAA88M,EACnC,QAANh0M,EAAAA,EAAM2wM,gBAAA,IAAAqD,GAANh0M,EAAAA,KAAAA,EAAiB,CAAE9I,EAAAA,IACnBmnR,EAAY,CAAEnvN,QAAS,SAAUh4D,EAAAA,OAE3Bi6M,IAAAA,cAAeK,EAAaqB,EAAbrB,aACjB8sE,EAAY3pP,MAAwB,MACpC4pP,EAAgB1mQ,EAAAA,UAAS,WAAA,MAAM,CACnC0/B,EAAen+C,MAAA,GAAAw8B,OACZ2hB,EAAen+C,MAAA,MAAAw8B,OAAU51B,EAAM42D,WAAA39D,EAAAA,EAAAA,EAAA28B,CAAAA,EAAAA,GAAAA,OAE5B2hB,EAAen+C,gBAAgBi1I,EAAUj1I,OAAA,GAAAw8B,OACzC2hB,EAAen+C,MAAA,YAAkB4G,EAAMwwM,uBAAA,GAAA56K,OACvC2hB,EAAen+C,MAAA,mBAAyB4G,EAAMqyC,aAEpDryC,EAAM88Q,oBAGF1+E,EAAYvmL,EAAAA,UAAS,WAAM,IAAAw1N,EAC/B,GAAI8vC,EAAiB/jR,MAAO,OAAO+jR,EAAiB/jR,MACpD,IAAMoL,EAAqB,QAAdxE,EAAAA,EAAMwE,YAAQ,IAAA6oO,EAAAA,EAAAn4M,EAAa97B,MAAMoL,KACxCg6Q,EAAcn3N,MAAMruD,OAAOwL,IAASA,YAAUA,EAAA,MAElD,MAAA,CACEuxB,MAAO,QACPC,OAAQ,QACRC,MAAO,SACPzxB,IAASg6Q,CAEf,IACMC,EAAgB5mQ,EAAAA,UAAS,WAAA,MAAO,CACpCpX,UAAW4tI,EAAUj1I,MAAQ,qBAAkB,EAC/CuvC,MAAO,CAAC,OAAQ,SAASjxB,SAAS1X,EAAM42D,WAAawnI,EAAUhlM,MAAQ,GACvEyvC,OAAQ,CAAC,MAAO,UAAUnxB,SAAS1X,EAAM42D,WAAawnI,EAAUhlM,MAAQ,GACxE,IAEIslR,EAAiB7mQ,EAAAA,UAAS,WAAA,MAAM,IAAA+d,OACjC2hB,EAAen+C,8BAAAw8B,OACf2hB,EAAen+C,MAAAw8B,uBAAAA,OAA2B51B,EAAM42D,eAG/CtyB,EAAazsB,EAAAA,UAAsB,WAAA,IAAA8mQ,EAAA,eAAAA,EAAML,EAAUllR,0BAAVulR,EAAiBr6O,cAE1Ds6O,EAAmB/mQ,EAAAA,UAAiB,WAAA,MAAM,CAAC7X,EAAMoiF,KAAMpiF,EAAM42D,WAAWtuD,UACxEu2Q,EAAchnQ,EAAAA,UAAS,WAAA,MAAO,CAClCo+C,QAAS,OACT6oN,eAAoC,UAApB9+Q,EAAM42D,UAAwB,aAAe,WAC7D,IAEImoN,EAAmB,SAAC7nR,GAAqB,IAAAm+M,EAM3CD,GAJ4BC,QAA3Br1M,EAAAA,EAAM+pB,yBAAqBsrL,IAAAA,EAAAA,EAAAngL,EAAa97B,MAAM2wB,oBACrC,WAAV7yB,EAAE2G,KACFwwI,EAAUj1I,OACV+sC,MAEM,QAANnmC,EAAAA,EAAM6wM,oBAAA,IAAAuE,GAANp1M,EAAAA,KAAAA,EAAqB,CAAE9I,EAAAA,IACvBmnR,EAAY,CAAEnvN,QAAS,MAAOh4D,EAAAA,IAE9BA,EAAEo+M,6BAIA0pE,EAAe,WACnBvoQ,aAAa2nQ,EAAWhlR,OACbglR,EAAAhlR,MAAQ+c,YAAW,WAAM,IAAA8oQ,EAAAC,EACnBD,QAAfA,EAAA/qE,EAAQ96M,aAAO6lR,IAAAA,WAAAA,EAAfA,EAAe36O,kBAAA,IAAA26O,GAA0B,QAA1BC,EAAfD,EAA2B77O,mBAA3B87O,IAAyCA,GAAzCA,EAAArnR,KAAAonR,EAAyC/qE,EAAQ96M,OACjD86M,EAAQ96M,MAAQ,OACf,KACHo3C,EAAAA,UAAS,WAAM,IAAA2uO,EAAAC,UACbD,EAAAb,EAAUllR,8BAAV+lR,EAAiBvvN,aAAQ,IAAAwvN,GAAzBA,EAAAvnR,KAAAsnR,EACF,KA+DMh5O,EAA0BL,GAAgB,SAAU,CAC1D/O,QAASq9K,IADHjuK,sBAIRxJ,EAAAA,MAAMiiP,GAjDiB,WACF,SAAf5+Q,EAAMoiF,MACV5xC,EAAAA,UAAS,WACFlM,EAAWlrC,QACLkrC,EAAAlrC,MAAMguC,MAAMyvK,QAAU,8DACnC,MA4CsC,CAAEv5K,WAAW,IAE/C,IAyBA+hP,EAAmB,WAEpBr/Q,EAAMwwM,wBACPxwM,EAAMoyC,uBACNi8F,EAAUj1I,QACTo7M,EAAUp7M,OAAU4G,EAAMojF,OAEtB8wH,EAAQ96M,OAlGK,WACpB,GAAK86M,EAAQ96M,MAAb,CACA,IACMypC,EADetJ,OAAOwK,WAAapE,SAASiC,gBAAgBe,YAC/BivK,KAAsB,EACjDsC,EAAA96M,MAAQumC,SAASsD,cAAc,SAC/BixK,EAAA96M,MAAM+uC,QAAQ3J,GAAK,aAAA5I,QAAc,IAAIr3B,iBAAWV,IAAO,GAC/Dq2M,EAAQ96M,MAAMq2M,UAAY75K,0IAAAA,OAIL,SAAf51B,EAAMoiF,KAAkB,GAAA,sBAAAxsD,OAA2BiN,UAAA,sBATrC,EAkGFy8O,GAEZprE,EAAQ96M,QAAUumC,SAASghK,KAAKxnK,SAAS+6K,EAAQ96M,QAC1CumC,SAAAghK,KAAKz9J,YAAYgxK,EAAQ96M,SAKxCujC,EAAAA,OACE,WAAA,OAAM38B,EAAM+2B,OACZ,IAAA,SAAC39B,GACK,IAAAqmC,GAAA,CACO,IAAAg2K,EAGJE,EAHP,GAAIv8M,EACeimR,IACI,QAArBr/Q,EAAAA,EAAM0wM,oBAAe,IAAA+E,GAArBz1M,EAAAA,KAAAA,QAEag/Q,IACS,QAAtBh/Q,EAAAA,EAAMywM,qBAAgB,IAAAkF,GAAtB31M,EAAAA,KAAAA,IAlDqB,SAAC5G,GAK1B,GAJIA,IACFo7M,EAAUp7M,OAAQ,IAGhB4G,EAAMuuE,eAWN,OAAA4vM,EAAsB/kR,OAASA,GACjC+kR,EAAsB/kR,OAAQ,OACnB+c,YAAA,WAAA,OAAOk4H,EAAUj1I,OAAQ,WAI3B+c,YAAA,WAAA,OAAOk4H,EAAUj1I,MAAQA,KAhB9BA,GACF+kR,EAAsB/kR,OAAQ,EACnB+c,YAAA,WAAA,OAAOk4H,EAAUj1I,OAAQ,OAEpCi1I,EAAUj1I,OAAQ,EAClB+c,YAAW,WAAA,OAAOgoQ,EAAsB/kR,OAAQ,CAAA,GAAO,MA0CzDmmR,CAAmBnmR,EATL,CAUhB,GACA,CAAEkkC,WAAW,IAGT,IAAAkiP,EAAsB,SAACtoR,GAAkB,IAAAuhE,EACvC,QAANz4D,EAAAA,EAAMw2D,uBAAA,IAAAiC,GAANz4D,EAAAA,KAAAA,EAAwB,CAAE9I,EAAAA,IAC1BmnR,EAAY,CAAEnvN,QAAS,YAAah4D,EAAAA,KAEhCuoR,EAAqB,SAACvoR,GAAkB,IAAAu8E,EAAA+hI,EACtC,QAANx1M,EAAAA,EAAMivE,sBAAA,IAAAwE,GAANzzE,EAAAA,KAAAA,EAAuB,CAAE9I,EAAAA,KACfs+M,QAAVA,EAAIx1M,EAAMgqB,2BAAAwrL,IAAAA,EAAAA,EAAuBtgL,EAAa97B,MAAM4wB,sBAClDq0P,EAAY,CAAEnvN,QAAS,UAAWh4D,EAAAA,KAIhCmnR,EAAc,SAACpgQ,GAA+B,IAAAu6C,UAClDx4D,EAAAA,EAAMu2D,eAANv2D,OAAAA,EAAAA,KAAAA,EAAgBie,GACR6Z,EAAAR,KAAK,kBAAkB,IAGjCM,EAAAA,WApHuB,WACrB,GAAK0M,EAAWlrC,OAAwB,SAAf4G,EAAMoiF,KAA/B,CACA,IAAMs9L,EAAkB,CACtB/7O,KAAM,CAAE3rC,KAAM,cAAeoB,MAAOglM,EAAUhlM,OAC9CyqC,MAAO,CAAE7rC,KAAM,eAAgBoB,MAAOw8B,IAAAA,OAAIwoK,EAAUhlM,QACpDsqC,IAAK,CAAE1rC,KAAM,aAAcoB,MAAOglM,EAAUhlM,OAC5CwqC,OAAQ,CAAE5rC,KAAM,gBAAiBoB,MAAOw8B,IAAAA,OAAIwoK,EAAUhlM,SACtD4G,EAAM42D,WACJy3E,EAAUj1I,MACZkrC,EAAWlrC,MAAMguC,MAAMu4O,YAAYD,EAAgB1nR,KAAM0nR,EAAgBtmR,OAEzEkrC,EAAWlrC,MAAMguC,MAAMw4O,eAAeF,EAAgB1nR,KAVR,KAqHlD8sC,EAAAA,WAAU,WACSu6O,IACV9lP,OAAAqG,iBAAiB,UAAWm/O,EACrC,IAEAh6O,EAAAA,iBAAgB,WACDi6O,IACNzlP,OAAAyG,oBAAoB,UAAW++O,EACxC,IAEM,IAAAhpE,EAAel+L,EAAAA,UAAS,WACxB,OAAC28L,EAAUp7M,MAGNi1I,EAAUj1I,QAAU+kR,EAAsB/kR,OAFzC4G,EAAMojF,IAIlB,IAEA,OAAO,WACL,GAAK2yH,EAAa38M,MAAlB,CAEM,IA1HA+2M,EAKAD,EAqHA/uK,EAAOgS,EAAc,OAAQ,WAC7B0sO,EAAgBnhQ,EAAe,UAC/B80L,GA5HArD,EAAagB,EAAc,CAC/BhB,WAAYnwM,EAAMmwM,WAClBiB,cAAel8K,EAAa97B,MAAMm0B,QAClCgT,UAAA3K,GAAAA,OAAc2hB,EAAen+C,MAAA,eAEzB82M,EAAYsB,EAAa,CAC7BtB,UAAWlwM,EAAMkwM,UACjBuB,aAAcv8K,EAAa97B,MAAMsd,OACjC6pB,UAAA3K,GAAAA,OAAc2hB,EAAen+C,MAAA,cAG7Bq4C,EAAAA,YAAA,MAAA,CAAArK,MAAYy3O,EAAYzlR,OACrB4G,CAAoB,UAApBA,EAAM42D,UAAwBu5I,EAAa,KAC3CD,EACoB,UAApBlwM,EAAM42D,UAAwBu5I,EAAa,QAgHhD,OAAA1+J,EAAAA,YAAA5xB,EAAAA,SAAA,CAAA2W,UACuBx2B,EAAMupB,SAAW8pB,EAAgBj6C,MAAO6wC,GAAIoJ,EAAgBj6C,OAAA,CAAAwuB,QAAA,WAAA,MAAA6pB,CAAAA,EAAAA,kBAAA6C,aAAA,CAAA3f,IAExE2pP,EAAA5sO,MACE6sO,EAAcnlR,MACrBguC,MAAO,CAAE5B,OAAQxlC,EAAMwlC,QACvBsuD,UAAWirL,EACX9mO,SAAU,GACNngB,EAAQ2a,OAAA,CAEXzyC,EAAMqyC,kDAA8BkF,EAAen+C,MAAe,UAAAi+C,QAASooO,GAAoB,MAAAhuO,EAAAK,YAAA,MAAA,CAAAJ,MACpFgtO,EAAetlR,MAAOguC,MAAAkK,GAAAA,GAAYmtO,CAAAA,EAAAA,EAAcrlR,OAAU4kR,EAAe5kR,QAClFymR,CAAAA,GAAApuO,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OAAgC2hB,EAAen+C,MAAA,aAAA,CAAkBymR,IACjE7/Q,EAAMs2D,UACL7kB,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OAAe2hB,EAAen+C,MAAA,eAAAi+C,QAA6BmoO,GACxD9gQ,CAAAA,EAAe,WAAY+yB,EAAAA,YAAA0mB,EAAa,KAAA,SAD1C1mB,EAAAA,YAAA,MAAA,CAAAC,MAIS,IAAA9b,OAAI2hB,EAAen+C,gBAAe,qBAAsB,CAAA+nC,IACnEnhC,EAAM+zK,QAAAtiI,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OACU2hB,EAAen+C,MAAA,aAAA,CAAkBslB,EAAe,SAAU80L,KAE1ExzM,EAAM+8Q,0CAA6Be,EAAoB1kR,MAAAkjG,YAAoB2hL,GAAY,UAAA,GA5BvE,EAkC7B,ukBCtTF,IAAM6B,GAA6B,SAAC9/Q,GAC5B,IAAAoV,EAAAk8B,GAAA,CAAA,EAAetxC,GACfs6D,EAAU36B,SAASsD,cAAc,OACjClM,EAAUpC,OAAI,GACZyS,EAAUhyB,EAAVgyB,MAEF24O,EAAc,SAAC34O,GACfA,IACDkzB,EAAQs8I,kBAAkCxvK,MAAMyvK,SAAWzvK,IAI1DuN,EAAYtE,EAAAA,gBAAgB,CAChCC,eAAMtwC,EAAAA,GAAmB,IAAVurD,EAAA3uB,EAAA2uB,OACPy0N,EAAgBrrP,MAAyBvf,GAC/C0vB,EAAAA,WAAU,WACR/N,EAAQ39B,OAAQ,EACfumC,SAASulE,cAA8B7N,OACxC7mD,EAAAA,UAAS,WACPuvO,EAAY34O,EACd,GACF,IAYA,OAJOmkB,EAAA,CACLyhB,OARa,SAACkkI,GACd8uE,EAAc5mR,MAAQk4C,GAAAA,GACjBl8B,CAAAA,EAAAA,GACA87L,MAQA,WAAM,IAAA+uE,EACL1pN,EACJnhD,EAAQmhD,SACR,WACEx/B,EAAQ39B,OAAQ,GAGpB,cADOgc,EAAQgyB,MACRxoB,IAAEshQ,GAAiB5uO,GAAA,CACxBilB,QAAAA,EACAx/B,QAASA,EAAQ39B,MACjB0jR,gBAAsCmD,QAAtCA,EAAiBD,EAAc5mR,aAAd6mR,IAAqBA,OAArBA,EAAAA,EAAqB1/O,WACnCy/O,EAAc5mR,QAGvB,IAEI+mR,EAAkBlrO,YAAUN,GAC5B3pB,EAASm1P,EAAgBjrO,MAAMolB,GAU/Bj5B,EAAYP,GAAU1rB,EAAQmU,QAuB7B,OAtBH8X,EACFA,EAAU6B,YAAYo3B,GAEtBzgC,QAAQnD,MAAM,uBAGmB,CACjC+7C,KAAM,WACJ17C,EAAQ39B,OAAQ,CAClB,EACAg8C,KAAM,WACJre,EAAQ39B,OAAQ,CAClB,EACA4zE,OAAQ,SAACkkI,GAEPlmL,EAAOgiD,OAAO5yD,GAAK82L,EAAY,CAAC,WAChC6uE,EAAY7uE,EAAW9pK,MACzB,EACA4oB,QAAS,WA1BTj5B,EAAQ39B,OAAQ,EAChB+c,YAAW,WACTgqQ,EAAgB9qO,UAChBilB,EAAQz+C,WACP,IAwBH,EAGJ,EAIaukQ,GAAeN,GAE5BM,GAAa3qO,QAAU,SAACT,GAClBA,EAAAU,OAAOC,iBAAiB0qO,QAAUP,EACxC,MCzFaQ,GAAS7pO,GAAYynO,ICAnBqC,GAAA,CAEbC,QAAS,CACP3kR,KAAMhC,UAGRigB,QAAS,CACPje,KAAM7C,OACN4uB,aAAS,GAEXyiB,WAAY,CACVxuC,KAAM7C,OACN4uB,aAAS,GAGXmyG,eAAgB,CACdl+H,KAAM7C,QAGR25B,kBAAmB,CACjB92B,KAAM3C,QAGRunR,YAAaj/P,QAEbk/P,SAAUl/P,QAEVm/P,SAAUn/P,QAEVo/P,iBAAkB,CAChB/kR,KAAM7C,OACN4uB,QAAS,GAGXw6D,KAAM,CACJvmF,KAAM9C,OACN6uB,QAAS,QACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,QAAS,UAAUvI,SAASuI,EACtC,GAGF4S,gBAAiB,CACfh3B,KAAM3C,QAGR65B,gBAAiB,CACfl3B,KAAM3C,QAGRm5C,YAAa,CACXx2C,KAAM2lB,QACNoG,SAAS,GAGXkL,gBAAiB,CACfj3B,KAAM3C,QAGRkyB,MAAO,CACLvvB,KAAMzE,OAGRouC,OAAQ,CACN3pC,KAAM7C,OACN4uB,QAAS,QAGXuP,SAAUt9B,SAEVq9D,SAAUr9D,SAEVgnR,gBAAiBhnR,SAEjBinR,gBAAiBjnR,SAEjBknR,OAAQlnR,UCjEH,SAASmnR,GAA0B3nP,GAClC,IAAAnf,EApBD,SAAyBmf,GAC1B,IAAA+N,EAAQ7N,OAAO4K,iBAAiB9K,GAC9B4nP,EAAyC,aAAnB75O,EAAM2B,SAC5Bm4O,EAAgB,gBAEtB,GAAuB,UAAnB95O,EAAM2B,SAAsB,OAAOpJ,SAASwB,KAEvC,IAAA,IAAAjnB,EAASmf,EAASnf,EAAO44D,eAG5B,GAFJ54D,EAASA,EAAO44D,cACR1rC,EAAA7N,OAAO4K,iBAAiBjqB,KAC5B+mQ,GAA0C,WAAnB75O,EAAM2B,WAG7Bm4O,EAAcjpR,KAAKmvC,EAAM8B,SAAW9B,EAAMu7B,UAAYv7B,EAAMs7B,WAAmB,OAAAxoD,EAGrF,OAAOylB,SAASwB,IAClB,CAGiByhC,CAAgBvpC,GAC3Bnf,IAAWylB,SAASwB,OAEpBkC,GAAkBhK,EAASnf,KACxBA,EAAAioB,UAAY9I,EAAQmwB,UAAYtvC,EAAOsvC,WAChD,CCzBO,SAAS23N,GAAY79O,GACpB,IAAAC,EAAOD,EAAIE,wBAEb,IAACH,GAAkBC,GAAM,CACrB,IAAA89O,E9qB0WH,WACD,QAAsB,IAAtB7nP,OAAOwK,WACT,MAAO,CAAE4E,MAAOpP,OAAOwK,WAAY8E,OAAQtP,OAAOuK,aAEpD,IAAMu9O,EAAM1hP,SAASiC,gBACrB,MAAO,CAAE+G,MAAO04O,EAAI1+O,YAAakG,OAAQw4O,EAAIhhN,aAC/C,C8qBhXsBihN,GAAgBz4O,OAEzBhH,GAAA0B,EAAKG,KAAO09O,EAAY,EAAI79O,EAAKsF,OAAS,GAAI,CAAA,EAQzD,CACF,CCJA,IAAA04O,GAAelxO,kBAAgB,CAC7Br4C,KAAM,SACNgI,MAAAA,GACAswC,eAAMtwC,EAAqB83B,GACzB,IAAMpZ,EAAiBmC,KACjB02B,EAAiB5hB,GAAe,SAChC6rP,EAAa7rP,GAAe,eAC1BT,EAAiBN,GAAU,SAA3BM,aAEFu8C,EAA0Ev9B,EAAAA,OAAOl0C,GAA/E8Z,EAAS23D,EAAT33D,QAASuwB,EAAAonC,EAAApnC,WAAYo2O,EAAahvM,EAAbgvM,YAAaC,EAAAjvM,EAAAivM,SAAUC,IAAAA,SAAUv1P,EAAOqmD,EAAPrmD,MAAOoa,EAAAisC,EAAAjsC,OAOrEksC,EAAA70D,GANwCutB,GACtCtwB,EACAuwB,EACArqC,EAAM+5H,eACN/5H,EAAMm3B,SACN,WACF,GANO6jG,EAActpD,EAAA,GAAAupD,EAAevpD,EAAA,GAS9B+vM,EAAkB9sP,EAAAA,MAElB+sP,EAAoB/sP,EAAAA,MAEpBgtP,EAAoBhtP,EAAAA,MAEpBitP,EAA2BjtP,EAAAA,MAE3BktP,EAAmBltP,EAAAA,MAEnBmtP,EAAmBntP,EAAAA,MAEnBotP,EAAkBptP,EAAAA,MAElB60G,EAAU70G,OAAa,GAEvBqtP,EAAanqQ,EAAAA,UAAS,WAAA,OAAMuT,EAAMhyB,MAAMnC,UAExCgrR,EAAkBpqQ,EAAAA,UAAoB,WAAA,OAAMuT,EAAMhyB,MAAM4hI,EAAa5hI,UAErE8oR,EAAUrqQ,EAAAA,UAAS,WAAA,MAAuC,UAAjCsqQ,EAAqB,WAE9CC,EAAoBvqQ,EAAAA,UAAS,WAAA,OAAMwsB,GAAQu9O,EAAyBxoR,OAASumC,SAASwB,SAEtFghP,EAAuB,SAAoC/qP,GAAA,IAAAirP,EAAA,eAAAA,EAC/DJ,EAAgB7oR,MAAMg+B,kBAAcp3B,EAAMo3B,EAAA,EAEtCkrP,EAAgCzqQ,EAAAA,UAAS,WACvC,IAAE0qQ,EAAqBN,EAAgB7oR,MAArCmpR,iBAEJ/jQ,EAAY+jQ,EAoBT,OAnBH3lR,EAAW2lR,GAEN/jQ,EAAA+jQ,EAAiBC,KACf1qP,EAAQ9Y,MAAMujQ,iBAEvB/jQ,EAAOsZ,EAAQ9Y,MAAMujQ,iBAAiBC,KAC7B1qP,EAAQ9Y,MAAM,qBAEvBR,EAAOsZ,EAAQ9Y,MAAM,qBAAqBwjQ,KAC/BD,IAEX/jQ,EAAAizB,EAAAA,YAAAjzB,EAAa,KAAA,OAIXA,IACGA,EAAKxe,QAAOwe,EAAKxe,MAAQ,CAAA,GAC9Bwe,EAAKxe,MAAM,MAAQwe,EAAKxe,MAAe,OAAA,IAElCwe,CACT,IAGMikQ,EAA6B5qQ,EAAAA,UAAS,WAAA,OAAM2J,QAAQ8gQ,EAA8BlpR,OAAS8oR,EAAQ9oR,UAEnGizF,EAAe13D,OAAI,GACnB6tP,EAAc,WAA8E,IAA7EvkQ,EAAAlf,UAAA9H,OAAA8H,QAAA5E,IAAA4E,UAAA5E,GAAA4E,UAA8B,GAAA,CAAEkjR,gBAAiBA,EAAgB7oR,OAC9EspR,EAAO,IAAI7oR,SAAS,UAAY+kB,EAAAA,EAAEhnB,WAA3B,GACb,OAAOsB,OAAOi8B,OAAO,CAAC,EAAGutP,EAAMzkQ,IAI3B0kQ,EAA4B,SAACC,GAAqD,IAAxBC,EAAA9jR,UAAA9H,OAAA,QAAAkD,IAAA4E,UAAA,IAAAA,UAAA,GAE9D+jR,EC3FC,SAA6Bx/O,GAA4D,IAA1Cy/O,EAA2BhkR,UAAA9H,OAAA8H,QAAA5E,IAAA4E,UAAA5E,GAAA4E,UAAA4gC,GAAAA,SAASwB,KACxF6hP,EAAkCx+O,KAA1BrC,EAAA6gP,EAAA7gP,UAAWwC,EAAWq+O,EAAXr+O,WACnBs+O,EAAuC3/O,EAAIE,wBAA9B0/O,EAAAD,EAALv/O,IAAmBy/O,EAAQF,EAAdt/O,KACrBy/O,EAA6CL,EAAYv/O,wBAA5C6/O,EAAAD,EAAL1/O,IAAsB4/O,EAAWF,EAAjBz/O,KAClB4/O,EAAsBv/O,GAAmB++O,EAAa,YAGzD,MAAsC,SAAtCA,EAAYnrL,QAAQrsF,eAAoD,aAAxBg4Q,GACzB,WAAxBA,EAEO,CACL7/O,IAAKw/O,EAASG,EACd1/O,KAAMw/O,EAAUG,GAIhBj/O,GAAQf,GACH,CACLI,IAAKw/O,EACLv/O,KAAMw/O,GAIH,CACLz/O,IAAKw/O,EAAS/gP,EACdwB,KAAMw/O,EAAUx+O,EAEpB,CDgE0B6+O,CAAoB5B,EAAyBxoR,OAA3DsqC,EAAKo/O,EAALp/O,IAAKC,EAAAm/O,EAAAn/O,KACX8/O,EAAwB7B,EAAyBxoR,MAAMoqC,wBAAjDmF,EAAO86O,EAAP96O,MAAOE,EAAA46O,EAAA56O,OACP+3O,EAAmBuB,EAAqB,oBAE9C,GAAID,EAAQ9oR,MACVuvC,GAA4B,EAAnBi4O,EACT/3O,GAA6B,EAAnB+3O,EACHl9O,GAAAk9O,EACCj9O,GAAAi9O,MACH,CACL,IAAAoC,EAAkCx+O,KAC3Bd,GADCs/O,EAAA7gP,UAEAwB,GAFsBq/O,EAAXr+O,UAGrB,CAEA,IAAMyC,EAAQ,CACZ1D,cAAQA,EAAA,MACRC,eAASA,EAAA,OAIX,GAAI8+O,EAA2BrpR,MAE7B,GAAIypR,EAAa,CACT,IAAAa,EAAoBhC,EAAkBtoR,MAAMoqC,wBAA1CmF,EAAO+6O,EAAP/6O,MAAOE,IAAAA,OACf3vC,OAAOi8B,OAAOiS,EAAO,CACnBuB,gBAAUA,EAAAA,MACVE,iBAAWA,EAAAA,OAEf,MACE3vC,OAAOi8B,OAAOiS,EAAO,CACnBuB,MAAO,OACPE,OAAQ,cAIZ3vC,OAAOi8B,OAAOiS,EAAO,CACnBuB,gBAAUA,EAAA,MACVE,iBAAWA,EAAA,QAGf3B,GAAS07O,EAAgBx7O,IAGrBu8O,EAAiB,WACrBnzO,EAAAA,UAAS,WAAM,IAAAozO,EACbhC,EAAyBxoR,ME3I1B,SAAsBkqC,GAC3B,IAAIA,EAgBF,OAAO3D,SAASwB,KAhBT,IAAA0iP,EACH70G,EAA6B,KAC7B,GAAA12J,GAASgrB,GACK0rI,EAAArvI,SAASsB,cAAcqC,OACzC,KAAW1mC,EAAW0mC,GAGd,MAAA,IAAIjD,MAAM,oCAFhB2uI,EAAgB1rI,GAGlB,CACA,GAAI0rI,EACK,OAAAA,EAEL,GAA2B,kBAA3B60G,EAAAxhR,eAAA,IAAAwhR,GAAc,QAAdA,EAAAA,EAAS7xM,WAAT6xM,IAAcA,OAAdA,EAAAA,EAAcC,UACV,MAAA,IAAIzjP,MAAM,kCAKtB,CFwHyC0jP,CAAa9B,EAAgB7oR,MAAMigC,SAC/DuoP,EAAyBxoR,QAC9B4nR,GAA0BY,EAAyBxoR,OACnDupR,EAA0BjB,EAAkBtoR,OAClBupR,EAAAhB,EAAkBvoR,OAAO,GACnD+nR,GAAYS,EAAyBxoR,eAGrCwqR,EAAA7B,EAAgB3oR,oBAAhBwqR,EAAuB52M,SACzB,KAGIg3M,EAAoB,WAAM,IAAAC,UAC9BA,EAAAtC,EAAkBvoR,aAAO,IAAA6qR,GAAzBA,EAAyB3/O,WAAWlB,YAAYu+O,EAAkBvoR,QAY9D8qR,EAA0B,WAAM,IAAAC,EAAAC,UACpCD,EAAArC,EAAiB1oR,aAAO,IAAA+qR,GAAxBA,EAAwB7/O,WAAWlB,YAAY0+O,EAAiB1oR,eAChEgrR,EAAAvC,EAAiBzoR,aAAO,IAAAgrR,GAAxBA,EAAwB9/O,WAAWlB,YAAYy+O,EAAiBzoR,QAG5DirR,EAAY,WACZnC,EAAQ9oR,OACc8qR,IACTP,MAEGK,IAlBpBxzO,EAAAA,UAAS,WACPoxO,EAAyBxoR,MAAQ0oR,EAAiB1oR,MAClD4nR,GAA0BY,EAAyBxoR,OACnDupR,EAA0BjB,EAAkBtoR,OAC5C+nR,GAAYS,EAAyBxoR,MACvC,KAgBAizF,EAAajzF,OAAQ,GAWjBkrR,EAAa,SAACptR,GAAkB,IAAAqtR,EAC9Bl4P,EAAQ21P,EAAW5oR,MACzBowI,EAAQpwI,OAAQ,EAChB6hI,GAAoB,EAAA,CAAE/jI,EAAAA,EAAGm1B,MAAAA,YACzBrsB,EAAAA,EAAM+gR,qBAAN/gR,EAAAA,KAAAA,EAAe,CAAE9I,EAAAA,EAAG4iB,QAASkhH,EAAa5hI,MAAOizB,MAAAA,KAG7Cm4P,EAAa,SAACttR,GAAkB,IAAAutR,EAC9Bp4P,EAAQ21P,EAAW5oR,MACzB6hI,EAAgBD,EAAa5hI,MAAQ,EAAG,CAAElC,EAAAA,EAAGm1B,MAAAA,IACrB,QAAxBrsB,EAAAA,EAAM8gR,uBAAkB,IAAA2D,GAAxBzkR,EAAAA,KAAAA,EAAwB,CACtB9I,EAAAA,EACAwxD,KAAMsyE,EAAa5hI,MAAQ,EAC3B0gB,QAASkhH,EAAa5hI,MACtBizB,MAAAA,KAIEq4P,EAAa,SAACxtR,GAAkB,IAAAytR,EAC9Bt4P,EAAQ21P,EAAW5oR,MACzB6hI,EAAgBD,EAAa5hI,MAAQ,EAAG,CAAElC,EAAAA,EAAGm1B,MAAAA,IACrB,QAAxBrsB,EAAAA,EAAM6gR,uBAAkB,IAAA8D,GAAxB3kR,EAAAA,KAAAA,EAAwB,CACtB9I,EAAAA,EACAgmB,KAAM89G,EAAa5hI,MAAQ,EAC3B0gB,QAASkhH,EAAa5hI,MACtBizB,MAAAA,KAIEu4P,EAAe,SAAC1tR,GAAkB,IAAA2tR,EAChCx4P,EAAQ21P,EAAW5oR,MACzBowI,EAAQpwI,OAAQ,EAChB6hI,GAAoB,EAAA,CAAE/jI,EAAAA,EAAGm1B,MAAAA,YACzBrsB,EAAAA,EAAMk3D,uBAANl3D,EAAAA,KAAAA,EAAiB,CAAE9I,EAAAA,EAAG4iB,QAASkhH,EAAa5hI,MAAOizB,MAAAA,KAG/Cy4P,EAAY,WACZ9pJ,EAAa5hI,OAAS,GAAK4hI,EAAa5hI,MAAQgyB,EAAMhyB,MAAMnC,SACzDuyI,EAAQpwI,QACXowI,EAAQpwI,OAAQ,EACPonC,GAAAb,SAASwB,KAAMqgP,EAAWpoR,QAE3BirR,MAkBd,OAdM1nP,QAAAq+F,GAAc,SAAC/6G,GAtDA,IAAM8kQ,EAAAC,EAuDrB/kQ,GAAO,GAAKA,EAAMmL,EAAMhyB,MAAMnC,QAChCo1F,EAAajzF,OAAQ,EACX0rR,MAEVt7I,EAAQpwI,OAAQ,EA1DA4qR,IACME,YACxBa,EAAArD,EAAkBtoR,aAAO,IAAA2rR,GAAzBA,EAAyBzgP,WAAWlB,YAAYs+O,EAAkBtoR,eAClE4rR,EAAAvD,EAAgBroR,aAAO,IAAA4rR,GAAvBA,EAAuB1gP,WAAWlB,YAAYq+O,EAAgBroR,OAClDynC,GAAAlB,SAASwB,KAAMqgP,EAAWpoR,OAyDxC,IAEA0rC,EAAAA,WAAU,WACEggP,GACZ,IAEO,WACL,IAqBMG,EAAgB,WACd,IAAAC,EAAmBxmQ,EAAe,UAAW,CACjDT,OAAQ,CAAEoO,MAAO21P,EAAW5oR,MAAO0gB,QAASkhH,EAAa5hI,SAGrD+rR,EACJ1zO,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OAAe2hB,EAAen+C,MAAA,cAAA,CAC3B8rR,GAAoBtvP,GAAAA,OAAGolG,EAAa5hI,MAAQ,EAAK,KAAAw8B,OAAAosP,EAAW5oR,SAGjE,OAAAq4C,EAAAK,YAAAoR,EAAAnlC,SAAA,KAAA,EAAW0iQ,EAAYrnR,OAAS+rR,KAG5BC,EAAe,SAAChjM,GAA+B,IAAAijM,EAAAC,EAAAC,EAAAC,EAC7CvqM,EAAS+/C,EAAa5hI,QAAU4oR,EAAW5oR,MAAQ,EACnDuwI,EAAiC,IAAvB3O,EAAa5hI,MACvBqsR,EAAsB,UAATrjM,EAAmB,QAAU,SAEhD,OAAA3wC,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OACiB2hB,EAAen+C,MAAA,aAAA,EAC1BunR,EAASvnR,QAAU6hF,GAAAxpC,EAAAK,YAAAoG,GAAA5D,aAAA,CAAAz2C,IAAA,OAAA6zC,MAAA,GAAA9b,OAGP2hB,EAAen+C,MAAA,UAAAw5B,MAAA,UAAApuB,KAEnBihR,EACNruO,QAAA,OAAAC,QACSitO,GACkCe,QAAtCA,EAAAlD,EAAqB,0BAAiBkD,IAAAA,EAAAA,EAAKnwP,EAAa97B,MAAM05B,iBACrE,OAEA4tP,EAAStnR,QAAUuwI,GAAAl4F,EAAAA,YAAAyG,GAAA5D,aAAA,CAAAz2C,IAAA,OAAA6zC,MAAA,GAAA9b,OAGP2hB,EAAen+C,MAAA,UAAAw5B,MAAA,UAAApuB,KAEnBihR,EACNruO,QAAA,OAAAC,QACSmtO,GACkCc,QAAtCA,EAAAnD,EAAqB,0BAAiBmD,IAAAA,EAAAA,EAAKpwP,EAAa97B,MAAM25B,iBACrE,OAEAkoD,6DAGY1jC,EAAen+C,MACzB,UAAAw5B,MAAA,UAAApuB,KACMihR,EAAAruO,QAAA,OAAAC,QAEGqtO,GACkCa,QADlCA,EACJpD,EAAqB,0BAAiBoD,IAAAA,EAAAA,EAAKrwP,EAAa97B,MAAMy5B,iBACrE,MAEDooD,GAAAxpC,EAAAK,YAAAoG,GAAA5D,aAAA,CAAAz2C,IAAA,SAAA6zC,MAAA,GAAA9b,OAGa2hB,EAAen+C,MACzB,YAAAw5B,MAAA,UAAApuB,KACMihR,EAAAruO,QAAA,OAAAC,QAEGutO,GACEY,UAANxlR,EAAM2yB,yBAAA6yP,IAAAA,EAAAA,EAAqBtwP,EAAa97B,MAAMu5B,mBACrD,SAYF+yP,EAAoB,WAClB,IANAC,EACAC,EAQFC,EAHEz4P,EAAAqkB,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OAAuB2hB,EAAen+C,MAAA,YAAiBq8D,EANvDkwN,EAAgB/oR,EAAWqlR,EAAgB7oR,MAAMg0B,OAAS60P,EAAgB7oR,MAAMg0B,aAAU,EAC1Fw4P,EAAY9tP,EAAQ9Y,MAAMoO,MAAQ0K,EAAQ9Y,MAAMoO,MAAMo1P,UAAiB,EACtEmD,GAAiBC,GAAa3D,EAAgB7oR,MAAMg0B,SAKrD04P,EAAa7D,EAAgB7oR,MAAM+nC,KAI5B0kP,EADTjpR,EAAWkpR,GACFA,EAAWtD,KACb1qP,EAAQ9Y,MAAMmiB,KACZrJ,EAAQ9Y,MAAMmiB,KAAK,CAAE8gP,gBAAiBA,EAAgB7oR,QAClC,iBAAf0sR,EACLA,EAEXr0O,EAAAA,YAAAq0O,EAAuB,KAAA,MAEnB,IAAA11D,EAAA3+K,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OAAsB2hB,EAAen+C,MAAA,WAAA,CAAgBysR,IAGzD,OAAAp0O,EAAAA,YAAAyR,EAAAA,SACG91B,KAAAA,CAAAA,EACAgjM,KAKDl1B,EAAqB,WACzB,IAAM6qF,EAAgB,CAAAnwP,GAAAA,OAAI2hB,EAAen+C,MAAiB,YAAA,GAAAw8B,OAAG2hB,EAAen+C,MAAsB,oBAC5Fg0D,EAAA3b,EAAAK,YAAA,MAAA,CAAAJ,MACQq0O,GACTd,CAAAA,IACAG,EAAa,WAIlB,OAAA3zO,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OACiB2hB,EAAen+C,MAAA,cAAA,CAC3BssR,IACAt4N,KAKD44N,EAAmB,WAAM,IAAAC,EAUzBrT,EATIl1P,EAAYukQ,EAAgB7oR,MAA5BskB,QACFwoQ,EAAe,CACnB1B,WAAAA,EACAE,WAAAA,EACAJ,WAAAA,EACAM,aAAAA,EACA9qQ,QAASkhH,EAAa5hI,MACtBizB,MAAO21P,EAAW5oR,OAIlBw5Q,EADEh2Q,EAAW8gB,GACA,WAAb,OAAmBA,EAAQ8kQ,EAAY0D,GAAa,EAC3CpuP,EAAQ9Y,MAAMtB,QACV,WAAb,OAAmBoa,EAAQ9Y,MAAMtB,QAAQ8kQ,EAAY0D,GAAa,EACzDxoQ,EACI,WAAA,OAAA+zB,cAAA/zB,EAAmBwoQ,EAAc,OAEjChrF,EAEf,IAAMx6J,EAAU,CAAA,GAAA9K,OACX2hB,EAAen+C,MAAAw8B,eAAAA,GAAAA,OACf2hB,EAAen+C,MAAU,MAAAw8B,OAAAwsP,EAAkBhpR,MAAQ,QAAU,aAG5D+sR,EAAsD,CAAAltR,QAAA28B,OAEpD2hB,EAAen+C,MAAA,sBAA4BskB,IAKjD,OAAA+zB,EAAAK,YAAAgjC,GAAAxgC,aAAA,CAAA3f,IACOotP,EAAAhrP,QACIs1D,EAAajzF,MAAA,cACTskB,EAAA8nB,OACLA,EAAOpsC,MAAAw9D,UACJqrN,EAAgB7oR,MAAMw9D,WAC7BqrN,EAAgB7oR,MAAMk1E,WAC1B,CAAA5wD,QAASk1P,EACTnkM,iBAAkB,CAAA74C,GAAAA,OAAI2hB,EAAen+C,MAAgB6oR,WAAAA,EAAgB7oR,MAAMgtR,kBAC3E13M,sBAAuBy3M,EAAevwP,OAAyCqwP,QAAlCA,EAAAhE,EAAgB7oR,MAAMk1E,kBAAtB23M,IAAkCA,OAAlCA,EAAAA,EAAkCv3M,6EAErEizM,EAAmBjwO,MAAOhR,GAAS,MAAA,KAK7C2lP,EAAoB,WACxB,IAAMj/O,EAAQ,CAAE5B,OAAQA,EAAOpsC,OACzBslR,EAAiB,CAAA,GAAA9oP,OAClB2hB,EAAen+C,MAAAH,aAAAA,EAAA28B,CAAAA,EAAAA,GAAAA,OACZ2hB,EAAen+C,2BAA+D,WAApC6oR,EAAgB7oR,MAAMw9D,YAElE0vN,EAAgB,CAAA1wP,GAAAA,OACjB2hB,EAAen+C,MAAA,eAAA,GAAAw8B,OACf2hB,EAAen+C,MAAAw8B,cAAAA,GAAAA,OACf2hB,EAAen+C,MAAA,YAAAH,EAAAA,EAAA,CAAA,EAAA,GAAA28B,OAEZ2hB,EAAen+C,MAA0B,qBAAC+oR,EAAqB,gBAClEF,EAAgB7oR,MAAMgtR,mBAAqBnE,EAAgB7oR,MAAMgtR,mBAGhEL,EAAgB,CAAAnwP,GAAAA,OAAI2hB,EAAen+C,MAAiB,YAAA,GAAAw8B,OAAG2hB,EAAen+C,MAAsB,oBAClG,OAAAq4C,EAAAK,YAAAoR,EAAAnlC,SAAA,KAAA,CAAA0zB,EAAAA,YAAA,MAAA,CAAA9c,IAEcktP,EAAkBnwO,MAAOgtO,EAAgBt3O,MAAOA,GACxD,CAAAqK,EAAAK,YAAA,MAAA,CAAAnd,IAAUmtP,QAAyBwE,GAAA,CAChCZ,IAAkBj0O,EAAAK,YAAA,MAAA,CAAAJ,MACPq0O,GAAA,CACTd,IACAG,EAAa,mBAoB1B,OAAA3zO,EAAAK,YAAAoR,EAAAnlC,SAAUyrH,KAAAA,CAAAA,EAAQpwI,OAVdq4C,EAAAK,YAAAoR,EAAAnlC,SAAA0zB,KAAAA,CAAAA,EAAAA,YAAA5xB,EAAAA,SAAA,CAAAoqB,GAAA,QAAA,CAAAriB,QAAA,WAAA,MAAA,0BAxNQ65P,kBAA2BlqO,EAAen+C,MAAA,aAAAguC,MAAyB,CAAE5B,OAAQA,EAAOpsC,MAAQ,IAAK,OAIrGguC,EAAQ,CAAE5B,OAAQA,EAAOpsC,MAAQ,GACjCmtR,EAAiB,CAAA3wP,GAAAA,OAClB2hB,EAAen+C,MAAAw8B,eAAAA,GAAAA,OACf2hB,EAAen+C,MAAqBw8B,iBAAAA,OAAAssP,EAAQ9oR,MAAQ,QAAU,UAAA,GAAAw8B,OAC9D2hB,EAAen+C,MAAA,MAAAw8B,OAAUwsP,EAAkBhpR,OAAS8oR,EAAQ9oR,MAAQ,QAAU,aAE7Ei5C,EAAc8vO,EAAqB,eACnC9tE,EAAY,CAAA,GAAAz+K,OAAI2hB,EAAen+C,MAAqBw8B,iBAAAA,OAAAyc,EAAc,OAAS,WAEjFZ,EAAAA,YAAA,MAAA,CAAA9c,IACY+sP,EAAmBhwO,MAAA,GAAA9b,OAAW2wP,EAAmBlyE,GAASjtK,MAAUA,GAAA,CAC3Eq7O,EAA2BrpR,OAASkpR,EAA8BlpR,SA6MhE8oR,EAAQ9oR,MAAQ4sR,IAAqBK,KAzNjB,IACrBj/O,EACAm/O,EAKAl0O,EACAgiK,CAiNwD,QAQpE,IGndWmyE,GAAQ/vO,GAAY8qO,ICLpBjsM,GAAU7+B,GAAYghB,ICDpBgvN,GAAA,CAEbnwN,SAAU,CACRz6D,KAAM,CAAC9C,OAAQyoB,QAAS3nB,UACxB+tB,aAAS,GAGXlK,QAAS,CACP7hB,KAAM,CAAC9C,OAAQc,WAGjB+tB,QAAS,CACP/rB,KAAM,CAAC9C,OAAQc,WAGjB0lC,SAAU,CACR1jC,KAAM7C,OACN4uB,QAAS,KAGXmsJ,OAAQ,CACNl4K,KAAM,CAAC9C,OAAQc,WAGjB+vB,KAAM,CACJ/tB,KAAM,CAAC2lB,QAAS3nB,UAChB+tB,SAAS,GAGXgL,MAAO,CACL/2B,KAAM9C,OACN6uB,QAAS,OACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,OAAQ,UAAW,UAAW,SAASvI,SAASuI,EAC1D,GAGFmN,MAAO,CACLvxB,KAAM,CAAC9C,OAAQc,WAGjB28D,gBAAiB38D,SAEjB48D,cAAe58D,UCpDJi8D,GAAW,OAEXC,GAAmB,CAC9B,WAAY,CACVpyB,KAAMmyB,GACNpyB,IAAKoyB,IAEP,YAAa,CACXjyB,MAAOiyB,GACPpyB,IAAKoyB,IAEP,eAAgB,CACdjyB,MAAOiyB,GACPlyB,OAAQkyB,IAEV,cAAe,CACbnyB,KAAMmyB,GACNlyB,OAAQkyB,KAICM,GAAiBl9D,OAAO+D,KAAK84D,ICZpCW,GAAmB,CACvBn3B,SAAU,IACV2C,OAAQ,UA2DGy0B,GAAS,SAAC3uB,EAAkB4uB,GACvC,GAAK5uB,EAAL,CACM,IAAAc,GAAed,eAAAA,EAAKc,eAAgB,EAEpC49O,EA5DmB,SAAC9vN,EAAmBhuB,EAAqBE,GAC9D,OAACstB,GAAe1+C,SAASk/C,GACX,cAAdA,EACK,CACL,CAAEptB,QAAS,EAAG/oC,UAAA,cAAAm1B,OAAyBgT,EAAiB,QACxD,CAAEY,QAAS,EAAG/oC,UAAA,oBAGA,iBAAdm2D,EACK,CACL,CAAEptB,QAAS,EAAG/oC,UAAAm1B,cAAAA,OAAyBgT,EAAkB,OAAAtP,aAAA,IAAA1D,OAAkBkT,EAAiB,OAC5F,CAAEU,QAAS,EAAG/oC,UAAA,oBAGA,aAAdm2D,EACK,CACL,CAAEptB,QAAS,EAAG/oC,UAAA,eAAAm1B,OAA0BgT,EAAiB,QACzD,CAAEY,QAAS,EAAG/oC,UAAA,oBAGA,gBAAdm2D,EACK,CACL,CAAEptB,QAAS,EAAG/oC,UAAAm1B,eAAAA,OAA0BgT,EAAkB,OAAAtP,aAAA,IAAA1D,OAAkBkT,EAAiB,OAC7F,CAAEU,QAAS,EAAG/oC,UAAA,yBAHlB,EAnBgD,IAyBlD,CAkC4Cq2D,CAAmBF,GADzC5uB,eAAAA,EAAKY,cAAe,EAC6CE,GAChF49O,GACL1+O,EAAIgvB,SAAWhvB,EAAIgvB,QAAQ0vN,EAAWhwN,GAL5B,CAMZ,EAEaO,GAAU,SAACjvB,EAAkB4uB,EAAmBM,GAC3D,GAAKlvB,EAAL,CACM,IAAAc,GAAed,eAAAA,EAAKc,eAAgB,EAEpC49O,EAzCoB,SAAC9vN,EAAmBhuB,EAAqBE,GAC/D,OAACstB,GAAe1+C,SAASk/C,GACX,cAAdA,EACK,CACL,CAAEptB,QAAS,EAAG/oC,UAAA,mBACd,CAAE+oC,QAAS,EAAG/oC,UAAAm1B,cAAAA,OAAyBgT,EAAkB,OAAAtP,aAAA,IAAA1D,OAAkBkT,EAAiB,QAG9E,iBAAd8tB,EACK,CACL,CAAEptB,QAAS,EAAG/oC,UAAA,mBACd,CAAE+oC,QAAS,EAAG/oC,UAAA,cAAAm1B,OAAyBgT,EAAiB,SAG1C,aAAdguB,EACK,CACL,CAAEptB,QAAS,EAAG/oC,UAAA,mBACd,CAAE+oC,QAAS,EAAG/oC,UAAAm1B,eAAAA,OAA0BgT,EAAkB,OAAAtP,aAAA,IAAA1D,OAAkBkT,EAAiB,QAG/E,gBAAd8tB,EACK,CACL,CAAEptB,QAAS,EAAG/oC,UAAA,mBACd,CAAE+oC,QAAS,EAAG/oC,UAAA,eAAAm1B,OAA0BgT,EAAiB,cAH7D,EAnBgD,IAyBlD,CAe4CyuB,CAAoBT,GAD1C5uB,eAAAA,EAAKY,cAAe,EAC8CE,GACtF,IAAK49O,EAAW,OAAOxvN,IAEvB,IAAMF,EAAUhvB,EAAIgvB,SAAWhvB,EAAIgvB,QAAQ0vN,EAAWhwN,IAClDM,EACFA,EAAQO,SAAW,WACRL,MAGXlvB,EAAIZ,MAAM6uB,QAAU,OACXiB,IAbD,CAeZ,qkBCnFA,IAAAyvN,GAAet2O,kBAAgB,CAC7Br4C,KAAM,gBACNgI,MAAOsxC,GAAAA,MACFtxC,IAAA,CAAA,EAAA,CACH42D,UAAW79D,SAEbu3C,eAAMtwC,EAAAA,GAA0B,IAAjBgf,EAAA4d,EAAA5d,MAAOusC,IAAAA,OACdhU,EAAiB5hB,GAAe,gBAC9BxM,EAAgByL,GAAU,eAA1BzL,YACRuuC,EAAmE59B,GAAc,CAC/E69B,qBAAsBC,GACtBC,sBAAuBC,GACvBK,UAAWC,KAHLT,EAAAD,EAAAC,qBAAsBE,EAAuBH,EAAvBG,sBAAuBM,EAAAT,EAAAS,UAK/CE,EAAcx3C,KACdsyB,EAAgBzxB,KAChB0sB,EAAQzZ,MAAI,MACZiyP,EAAkBjyP,MAAI,MAEtBsR,EAAQ,SAAC/uC,GACb,IAAM8wC,EAAM4+O,EAAgBxtR,MACpB69D,GAAAjvB,EAAKhoC,EAAM42D,WAAW,WAAM,IAAA6B,EAC5B,QAANz4D,EAAAA,EAAMw2D,uBAAA,IAAAiC,GAANz4D,EAAAA,KAAAA,EAAwB,CAAE9I,EAAAA,GAC5B,KAGI4hE,EAAa,WACb,IAAA8iN,EACJ,IAAmB,IAAf57Q,EAAM4pB,KAAuB,OAAA,KAC7B,GAAAhtB,EAAWoD,EAAM4pB,MACL5pB,EAAAA,EAAM4pB,KAAKhL,EAAAA,QAC3B,GAAWI,EAAM4K,KACDgyP,EAAA58P,EAAM4K,KAAK,WAC3B,GAAW5pB,EAAM4yB,MAAO,CAChB,IAAA8oP,EACY,YAAhB17Q,EAAM4yB,MAAU6e,EAAAA,YAAAomB,EAAA,CAAAnmB,MAAA9b,GAAAA,OACmBzM,EAAY/vB,cAAAw8B,OAAY51B,EAAM4yB,QAAS6e,MAAAA,EAAAK,YAAA6lB,EAAA,CAAAjmB,MAAA9b,GAAAA,OAExCzM,EAAY/vB,cAAAw8B,OAAY51B,EAAM4yB,QAAS,MAE3EgpP,EAAAnqO,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OAA6BzM,EAAY/vB,MAAA,wBAAA,CAA6BsiR,GACxE,CACO,OAAAE,GAgBHljN,EAAa,WACjB14D,EAAMu/B,UAAY9oB,aAAa23B,EAAMh1C,QAGjCu/D,EAAW,WACV34D,EAAMu/B,WAGX6O,EAAMh1C,MAAQJ,OACZmd,YAAW,WACEuiD,IACX,IAAM1wB,EAAM4+O,EAAgBxtR,MACpB69D,GAAAjvB,EAAKhoC,EAAM42D,WAAW,WAAM,IAAAiC,EACZ,QAAtB74D,EAAAA,EAAMy2D,qBAAgB,IAAAoC,GAAtB74D,EAAAA,KAAAA,EACF,GACF,GAAGA,EAAMu/B,aAcN,OAVPy5B,EAAAA,eAAc,WACZh5D,EAAMu/B,UAAYo5B,GACpB,IAEA7zB,EAAAA,WAAU,WACR,IAAMkD,EAAM4+O,EAAgBxtR,MACrBu9D,GAAA3uB,EAAKhoC,EAAM42D,UACpB,IAEOrL,EAAA,CAAEtlB,MAAAA,IACF,WAAA,OAAAwL,EAAAA,YAAA,MAAA,CAAA9c,IACKiyP,EAAAl1O,MAAA,GAAA9b,OAA2B2hB,EAAen+C,OAAA6/D,aAAuBP,EAAAQ,aAA0BP,GAAA,CAClGG,IAAWrnB,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OACG2hB,EAAen+C,MAAA,WAAA,CAAAq4C,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OACb2hB,EAAen+C,MAAA,kBAAA,CAAAq4C,EAAAK,YAAA,OAAA,CAAAJ,MAAA,GAAA9b,OACZ2hB,EAAen+C,MAAiB,YAAA,CAAAi/D,EAAY,YA9C5Dc,EAAA1nB,EAAAK,YAAAqmB,EAA0B,KAAA,MAChC1mB,EAAAA,YAAA,OAAA,CAAAC,MAAA,GAAA9b,OACkBzM,EAAY/vB,MAAA,mBAAAi+C,QAAiCpR,GAAA,CAC1DoyB,EAAY,WAAYc,QAMtB1nB,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OAAe2hB,EAAen+C,qBAAmB+5C,EAAc,UAAW,aAyC5EklB,EAAY,cAnDC,IACZc,EAsDV,ukBC3GF,IAAA0tN,GAAex2O,kBAAgB,CAC7BrwC,MAAO,CACL42D,UAAW,CACT/6D,KAAM9C,OACN6uB,QAAS,YACT8J,UAAAA,SAAU/O,GACD,MAAA,CAAC,WAAY,YAAa,cAAe,gBAAgBiZ,QAAQjZ,IAAK,CAC/E,IAGJ2tB,eAAMtwC,EAAA48B,GAAmB,IAAV2uB,EAAA3uB,EAAA2uB,OACPhU,EAAiB5hB,GAAe,qBAE9BihC,EAAc52D,EAAd42D,UAEF/kC,EAAmC8C,MAAI,IACvCmyP,EAAmBnyP,MAAI,IAEvBwS,EAAStvB,EAAAA,UAAS,WAAA,OAAAy5B,GAAA,CACtB9L,OHzByB,KG0BtBuwB,GAAiBa,GAAA,IAQhB/6C,EAAS,SAAC7gB,GACT62B,EAAAz4B,MAAMwL,OAAO5J,EAAO,IAOrBw+D,EAAY,SAACv5C,GACjB,GAAKA,EACL,OAAOonC,MAAMruD,OAAOinB,IAAQA,YAASA,EAAA,OAGjC8mQ,EAAqB,SAAClpQ,GAC1B,IAAMspB,EAAwB,CAC5B7N,aAAcw8B,IAQT3uB,OANHtpB,EAAKnX,SACPygC,EAAO4B,SAAW,WAClB5B,EAAOxD,KAAO61B,EAAU37C,EAAKnX,OAAO,IACpCygC,EAAOzD,IAAM81B,EAAU37C,EAAKnX,OAAO,KAEjCmX,EAAK2nB,SAAQ2B,EAAO,WAAatpB,EAAK2nB,QACnC2B,GAqBHuyB,EAAW,SAACv5B,GACZA,GACe2mP,EAAA1tR,MAAMgK,KAAK+8B,IAKhC,OAFAorB,EAAO,CAAE76C,IAtDG,SAAC0E,GAEJ,OADFyc,EAAAz4B,MAAMgK,KAAKgS,GACTyc,EAAKz4B,MAAMnC,OAAS,GAoDf4kB,OAAAA,EAAQg+C,UA7CJ,WAChBhoC,EAAKz4B,MAAQ,IA4CkBy4B,KAAAA,EAAMi1P,iBAAAA,IAEhC,WACD,GAACj1P,EAAKz4B,MAAMnC,OAEhB,OAAAw6C,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OACiB2hB,EAAen+C,MAAe,UAAAguC,MAAOD,EAAO/tC,OACxDy4B,CAAAA,EAAKz4B,MAAM6L,KAAI,SAAC4Y,EAA6E7iB,GAC5F,OAAAy2C,EAAAK,YAAAk1O,GAAA1yO,aAAA,CAAA3f,IAAmB+kC,EAAU77D,IAAKggB,EAAK2gB,GAAA4I,MAAW2/O,EAAmBlpQ,IA/B5D,SAAC7iB,EAAe6iB,GACxB,OAAAyzB,GAAAA,GAAA,CAAA,EACFzzB,GAAA,CAAA,EAAA,CACH24C,gBAAiB,SAACt/D,GAIhB,OAHI2mB,EAAK24C,iBACP34C,EAAK24C,gBAAgBt/D,GAEhB2kB,EAAO7gB,EAChB,EACAy7D,cAAe,WAIb,OAHI54C,EAAK44C,eACP54C,EAAK44C,gBAEA56C,EAAO7gB,EAChB,IAiBoF++D,CAAS/+D,EAAO6iB,IAAO,KACxG,MAIT,ukBC/EF,IAAIopQ,GAAO,EAELjtN,OAAuFj1D,IA2CvFmiR,GAA4C,SAACt0P,EAAOxd,GAExD,OA3C2B,SAACA,GAE5B,IAAM+xQ,EAAc71O,GAAA,CAClBslB,UAAW,YACXpxB,OAAQ,IACRjc,OAAQ,OACRiV,GALMyoP,IAAA,GAMH7xQ,GAEL+xQ,EAAYzpQ,QAAUtI,EAAQsI,QAAUtI,EAAQsI,QAAU,GAEpD,IAAA0pQ,EAAWtmP,GAAUqmP,EAAY59P,QAElCywC,GAAYt1D,IAAI0iR,IACPptN,GAAA31D,IAAI+iR,EAAU,CAAA,GAE5B,IAAIC,EAAcrtN,GAAYt1D,IAAI0iR,GAAUD,EAAYvwN,WACxD,GAAKywN,EAYHA,EAAY32Q,IAAIy2Q,OAZA,CACV,IAAA7sN,EAAU36B,SAASsD,cAAc,OAEjC9kB,EAAW82B,YAAU4xO,GAAkB,CAC3CjwN,UAAWuwN,EAAYvwN,YACtB1hB,MAAMolB,GAETn8C,EAASzN,IAAIy2Q,GACbntN,GAAYt1D,IAAI0iR,GAAUD,EAAYvwN,WAAaz4C,EACrCkpQ,EAAAlpQ,EACLipQ,EAAAlkP,YAAY/kB,EAASk8C,IAChC,CAIO,OAAA,IAAIltD,SAAQ,SAACc,GAClB,IAAMssD,EAAMP,GAAYt1D,IAAI0iR,GAAUD,EAAYvwN,WAClDpmB,EAAAA,UAAS,WACP,IAAMs2O,EAA2CvsN,EAAIusN,iBAC7C74Q,EAAA64Q,aAAA,EAAAA,EAAkBtsN,MAAK,SAAC8sN,GAAW,IAAAC,EAAA,eAAAA,EAAAD,EAAOllQ,gBAAUmlQ,UAAjBA,EAAUlmQ,aAAVkmQ,IAAiBA,OAAjBA,EAAAA,EAAiB1pR,OAAQspR,EAAY3oP,EAAE,IACpF,GACF,GACF,CAISgpP,CADal2O,GAAAA,MAAKl8B,GAAA,GAAA,CAASwd,MAAAA,IAEpC,EAWM+nC,GAAqB,CACzBzwC,KAAM,SAAC9U,GAAY,OAAA8xQ,GAAsB,OAAQ9xQ,EAAO,EACxDiV,QAAS,SAACjV,GAAY,OAAA8xQ,GAAsB,UAAW9xQ,EAAO,EAC9D+U,QAAS,SAAC/U,GAAY,OAAA8xQ,GAAsB,UAAW9xQ,EAAO,EAC9DshB,MAAO,SAACthB,GAAY,OAAA8xQ,GAAsB,QAAS9xQ,EAAO,EAC1D6wB,MAAO,SAAC20B,GACNA,EAAQv9B,MAAK,SAAClf,GAAa,OAAAA,EAAS8nB,UACtC,EACA40B,SAAU,WACIb,GAAAxpD,SAAQ,SAAC+Y,GACnBrwB,OAAO+D,KAAKssB,GAAQ/Y,SAAQ,SAAComD,GAC3BrtC,EAAOqtC,GAAWiD,WACpB,GACF,GACF,GAKI4tN,GAA6CP,GAEnDO,GAAmBhyO,QAAU,SAACT,GACxBA,EAAAU,OAAOC,iBAAiB+xO,QAAUR,GACtChuR,OAAO+D,KAAK09D,IAAUnqD,SAAQ,SAACwqD,GAC7BhmB,EAAIU,OAAOC,iBAAiB+xO,QAAQ1sN,GAAYL,GAASK,EAC3D,GACF,EAEA9hE,OAAO+D,KAAK09D,IAAUnqD,SAAQ,SAACwqD,GAG7BysN,GAAmBzsN,GAAYL,GAASK,EAC1C,QClGagsN,GAAevwO,GAAYkwO,ICDzBgB,GAAA,CAEbz3E,UAAW,CACTr0M,KAAM,CAAC9C,OAAQG,OAAQW,UACvB+tB,QAAS,IAGXuoL,WAAY,CACVt0M,KAAM,CAAC9C,OAAQG,OAAQW,UACvB+tB,QAAS,IAGXlK,QAAS,CACP7hB,KAAM,CAAC9C,OAAQc,WAGjB+tB,QAAS,CACP/rB,KAAM,CAAC9C,OAAQc,WAGjB00E,eAAgB,CACd1yE,KAAM2lB,QACNoG,SAAS,GAGXgC,KAAM,CACJ/tB,KAAMhC,UAGR+8D,UAAW,CACT/6D,KAAM9C,OACN6uB,QAAS,MACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CACL,MACA,OACA,QACA,SACA,WACA,YACA,cACA,eACA,WACA,cACA,YACA,gBACAvI,SAASuI,EACb,GAGFquD,WAAY,CACVzyE,KAAM3C,QAGR41E,UAAW,CACTjzE,KAAM2lB,QACNoG,SAAS,GAGXgL,MAAO,CACL/2B,KAAM9C,OACN6uB,QAAS,UACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,UAAW,UAAW,UAAUvI,SAASuI,EACnD,GAGF8uD,eAAgB,CACdlzE,KAAM,CAAC9C,OAAQc,WAGjBk9B,QAAS,CACPl7B,KAAM2lB,QACNoG,aAAS,GAEXyiB,WAAY,CACVxuC,KAAM2lB,QACNoG,aAAS,GAGXonD,eAAgBxtD,QAEhBmvL,SAAU92M,SAEVwlJ,UAAWxlJ,SAEXu1E,gBAAiBv1E,yOC1EnB,IAAA+tR,GAAev3O,kBAAgB,CAC7Br4C,KAAM,cACNgI,MAAAA,GACAswC,MAAAA,SAAMtwC,GACJ,IAAQk1B,EAAiBN,GAAU,cAA3BM,aACFqiB,EAAiB5hB,GAAe,cACtC+hC,EAAwD59B,GAAc,CACpE69B,qBAAsBC,GACtBG,sBAAuBC,KAFjBL,EAAAD,EAAAC,qBAAsBI,EAAsBL,EAAtBK,sBAK9B0Z,EAAgCv9B,SAAOl0C,GAOvC0xE,EAAA70D,GANwCutB,GADhCqnC,EAAA16C,QAAoB06C,EAAXpnC,WAIfrqC,EAAMgvE,eACNhvE,EAAMovE,gBACN,WACF,GANOkH,EAAc5E,EAAA,GAAA6E,EAAe7E,EAAA,GAkB9BmhI,EAAkC9B,GAAU,CAAEO,iBAV3B,SAACp6M,GAAkB,IAAAm3J,EACpC,QAANruJ,EAAAA,EAAMq/I,iBAAA,IAAAgP,GAANruJ,EAAAA,KAAAA,EAAkB,CAAE9I,EAAAA,IACpBq/E,GAAgB,EAAO,CAAEr/E,EAAAA,EAAGg4D,QAAS,aAQ+BwiJ,gBAL9C,SAACx6M,GAAkB,IAAA88M,EACnC,QAANh0M,EAAAA,EAAM2wM,gBAAA,IAAAqD,GAANh0M,EAAAA,KAAAA,EAAiB,CAAE9I,EAAAA,IACnBq/E,GAAgB,EAAO,CAAEr/E,EAAAA,EAAGg4D,QAAS,cAG/BiiJ,IAAAA,cAAeK,EAAaqB,EAAbrB,aAEjB9yL,EAAiBmC,KACjBgnQ,EAAkBhwQ,EAAAA,UAAS,WACxB,wWAAAy5B,CAAA,CACLw9B,UAAW9uE,EAAM8uE,UACjBL,iBAAkBl3B,EAAen+C,MACjC81D,QAAS,QACTqf,eAAgBvuE,EAAMuuE,eACtB3X,UAAW52D,EAAM42D,WACb52D,EAAMsuE,WAEd,IAEMw5M,EAAqBrmQ,KACrB0xB,EAAgB,WACpB,IAAM+8J,EAAYsB,EAAa,CAC7BtB,UAAWlwM,EAAMkwM,UACjBuB,aAAcv8K,EAAa97B,MAAMsd,OACjC6pB,aAAA3K,OAAc2hB,EAAen+C,MAAA,YAC7BoL,KAAM,UAGF2rM,EAAagB,EAAc,CAC/Bv+K,MAAO5yB,EAAM4yB,MACbu9K,WAAYnwM,EAAMmwM,WAClBiB,cAAel8K,EAAa97B,MAAMm0B,QAClC8jL,sBAAuBn8K,EAAa97B,MAAM6wB,gBAC1CsW,aAAA3K,OAAc2hB,EAAen+C,MAAA,aAC7BoL,KAAM,UAaR,OAAAitC,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OACiB2hB,EAAen+C,MAAA,cAAA,CAAAq4C,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OACb2hB,EAAen+C,MAAA,WAAA,CAZf,WACjB,IAAM0iD,EAAO,CACXl0B,QAAS+vC,EACTxtC,QAAS4tC,EACT3tC,OAAQ2tC,GACR/3D,EAAM4yB,OACFA,EAAQ5yB,EAAM4yB,OAAS,UACtB,OAAAk1P,EAAmB,wCAAwBvwO,EAAen+C,MAAgBw8B,YAAAA,OAAAhD,IAAA,OAM5EkmC,GAAWrnB,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OACG2hB,EAAen+C,MAAiB,YAAA,CAAAslB,EAAe,eAE/D8C,QAAQ0uL,GAAaC,IAAU1+J,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OACf2hB,EAAen+C,MAAA,cAC3B82M,CAAAA,EACAC,OAOLloG,EAAuB,SAAChoF,EAAc6X,GAC1Cy+C,EAAgBt2D,EAAK6X,IAGjB2rD,EAAqB/hE,KAEpB,OAAA,WAAA,OAAA+vB,EAAAK,YAAAgjC,GAAAxgC,aAAA,CAAAvd,QAEMu/C,EAAal9E,OAClByuR,EAAgBzuR,MAAA,CAAAg2E,gBACH64B,IAAA,CAAArgF,QAAA,WAAA,MAAA,CAKhB67D,EAAmB,UAAW,oBAH7B/lE,QAASy1B,IAMjB,ICxHW40O,GAAatxO,GAAYmxO,ICAvBI,GAAA,CAEb5sP,YAAa,CACXv/B,KAAMzE,OAGR0kC,OAAQ,CACNjgC,KAAM9C,OACN6uB,QAAS,IAGXwlC,OAAQ,CACNvxD,KAAM9C,OACN6uB,QAAS,IAGXqgQ,yBAA0BzmQ,QAE1B0mQ,WAAY,CACVrsR,KAAM2lB,QACNoG,SAAS,GAGXugQ,qBAAsB,CACpBtsR,KAAMhC,UAGRuuR,aAAc,CACZvsR,KAAMhC,UAGRwuR,mBAAoB,CAClBxsR,KAAM,CAAC3C,OAAQW,WAGjB8K,KAAM,CACJ9I,KAAM,CAAC3C,OAAQW,WAGjB+tB,QAAS,CACP/rB,KAAM,CAAC9C,OAAQc,WAGjB28B,SAAU,CACR36B,KAAM2lB,QACNoG,aAAS,GAGX0gQ,YAAa,CACXzsR,KAAM,CAAC9C,OAAQc,WAGjBspF,UAAW,CACTtnF,KAAM2lB,QACNoG,aAAS,GAGX2gQ,gBAAiB,CACf1sR,KAAMhC,UAGRyiC,MAAO,CACLzgC,KAAMzE,MACNwwB,aAAS,GAGX4gQ,aAAc,CACZ3sR,KAAMzE,MACNwwB,QAAS,WAAT,MAA8C,EAAC,GAGjDjB,OAAQ,CACN9qB,KAAMhC,UAGR4uR,cAAe,CACb5sR,KAAMhC,UAGR6uR,eAAgB,CACd7sR,KAAMhC,UAGR8uR,QAAS,CACP9sR,KAAM3C,QAGR0vR,iBAAkB,CAChB/sR,KAAM3C,QAGR2vR,gBAAiB,CACfhtR,KAAM3C,QAGR4vR,cAAetnQ,QAEfqC,OAAQ,CACNhoB,KAAM3C,QAGRoH,IAAK,CACHzE,KAAM7C,OACN4uB,QAAS,GAGX8Z,OAAQ,CACN7lC,KAAM9C,OACN6uB,QAAS,OACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,OAAQ,MAAO,MAAO,SAAU,QAAS,OAAQ,MAAO,MAAO,SAAU,SAASvI,SAASuI,EACrG,GAGF8oQ,qBAAsB,CACpBltR,KAAM7C,QAGR0uG,SAAUlmF,QAEVxpB,KAAM,CACJ6D,KAAM9C,OACN6uB,QAAS,QAGX4E,YAAa,CACX3wB,KAAM9C,OACN6uB,QAAS,IAGXohQ,cAAe,CACbntR,KAAMhC,UAGRovR,kBAAmB,CACjBptR,KAAM2lB,QACNoG,SAAS,GAGXshQ,cAAe1nQ,QAEf2nQ,mBAAoB,CAClBttR,KAAM2lB,QACNoG,SAAS,GAGXwhQ,UAAW,CACTvtR,KAAM,CAAC7C,OAAQE,SAGjBq/D,OAAQ,CACN18D,KAAM9C,OACN24B,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,UAAW,UAAW,UAAW,SAASvI,SAASuI,EAC7D,GAGF2S,MAAO,CACL/2B,KAAM9C,OACN6uB,QAAS,OACT8J,UAAAA,SAAUzR,GACR,OAAKA,GACE,CAAC,SAAU,OAAQ,aAAc,YAAa,QAAS,cAAcvI,SAASuI,EACvF,GAGFuzE,KAAM,CACJ33F,KAAM,CAAC9C,OAAQc,WAGjBq1D,QAAS,CACPrzD,KAAMhC,UAGRwvR,mBAAoB,CAClBxtR,KAAM3C,QAGRowR,2BAA4B9nQ,QAE5B+nQ,aAAc,CACZ1tR,KAAM,CAAC3C,OAAQW,WAGjB2vR,kBAAmB,CACjB3tR,KAAM2lB,QACNoG,SAAS,GAGX6hQ,gBAAiB,CACf5tR,KAAM2lB,QACNoG,SAAS,GAGXxuB,MAAO,CACLyC,KAAMzE,MACNwwB,aAAS,GAEXyiB,WAAY,CACVxuC,KAAMzE,MACNwwB,aAAS,GAGXrhB,aAAc,CACZ1K,KAAMzE,MACNwwB,QAAS,WAAT,MAA8C,EAAC,GAGjD8hQ,gBAAiBloQ,QAEjBmoQ,eAAgB9vR,SAEhBs9B,SAAUt9B,SAEV+vR,YAAa/vR,SAEbypL,YAAazpL,SAEb8lH,OAAQ9lH,SAERgwR,OAAQhwR,SAERiwR,cAAejwR,SAEfkwR,iBAAkBlwR,SAElBmwR,UAAWnwR,SAEXowR,WAAYpwR,SAEZ0pF,SAAU1pF,SAEVo6O,eAAgBp6O,SAEhBqwR,UAAWrwR,SAEXq6F,WAAYr6F,SAEZswR,2BAA4BtwR,UCtPjBuwR,GAAc,CACzBtuP,OAAQ/iC,OACRujC,MAAOllC,MACPizR,cAAejzR,MACfkzR,aAAclzR,MACdw7B,MAAO75B,OACPqiC,YAAahkC,MACbo1B,YAAazzB,OACbowB,YAAapwB,OACby6F,KAAM,CAACz6F,OAAQc,UACf0+D,OAAQx/D,OACR8qB,OAAQ3qB,OACRqxR,qBAAsBxxR,OACtBmvR,WAAY1mQ,QACZgoQ,kBAAmBhoQ,QACnBgpQ,kBAAmB3wR,SACnB28B,SAAUhV,QACV0O,UAAW1O,QACX+6E,YAAa,CAACxjG,OAAQ3B,MAAO8B,QAC7B+jK,aAAc,CAAClkK,OAAQ3B,MAAO8B,QAC9BuxR,iBAAkB,CAAC1xR,OAAQ3B,MAAO8B,QAClCiwR,mBAAoB3nQ,QACpBoG,QAAS/tB,SACT0uR,gBAAiB1uR,SACjB0pF,SAAU1pF,SACV+uR,iBAAkB1vR,uOCNpB,IAAMwxR,GAAar6O,EAAAA,gBAAgB,CACjCr4C,KAAM,mBACNgI,uWAAOsxC,CAAA,CACLo2D,SAAUlmF,SACP4oQ,IAEL95O,eAAMtwC,EAAA48B,GAAkB,IAAT5d,EAAA4d,EAAA5d,MACbyyD,EAAyCv9B,SAAOl0C,GAAxC4yB,EAAO6+C,EAAP7+C,MAAO4D,EAAAi7C,EAAAj7C,SAAUrN,EAAYsoD,EAAZtoD,YAEnBtF,EAAShM,EAAAA,UAAS,WAAA,OAAM7X,EAAM6jB,UAEpC6zC,EACE59B,GAAc,CACZq+B,UAAWC,GACXuyN,eAAgBC,GAChB/yN,sBAAuBC,GACvBC,sBAAuBC,GACvByhC,sBAAuBC,KANnBvhC,EAAWT,EAAXS,UAAWwyN,EAAAjzN,EAAAizN,eAAgB9yN,IAAAA,sBAAuBE,EAAuBL,EAAvBK,sBAAuB0hC,EAAA/hC,EAAA+hC,sBAS3E/6E,EAAiBmC,KAEjBgqQ,EAAAj1P,GAAAA,OAAkBzM,EAAY/vB,MAAA,WAE9B0xR,EAAiB,SAACj/G,GAAA,OAAAp6H,EAAAA,YAAA,MAAA,CAAAC,MAAA9b,GAAAA,OACPi1P,EAAA,sBAAAp5O,CAAAA,EAAAA,YAAAqG,GAAA,KAAA,MAEZ93C,EAAMmpR,oBAAA13O,EAAAK,YAAA,OAAA,CAAAJ,MAAA9b,GAAAA,OAAsCi1P,EAAA,qBAAA,CAAiCh/G,GAAW,EAAE,SAsDzFk/G,EAA2B,WAAM,IAAAC,EACrC,GAAoB,eAAhBp4P,EAAMx5B,MAAV,CACA,IAAMm3B,EAAmBvwB,EAAMsqR,aAAa,IAAM,GAC5CW,EAAiB,CAAAr1P,GAAAA,OAClBzM,EAAY/vB,MAAA,iBAAAH,EAAA,CAAA,EAAA,GAAA28B,OACTi1P,oBAA+B7qR,EAAMsqR,aAAa,KAEpDY,EAAgB10P,EAASp9B,MAAQ,GAAAw8B,OAAGzM,EAAY/vB,MAAsB,gBAAA,GACtE4iC,EACegvP,QAAnBA,EAAAhrR,EAAMo7B,uBAAa4vP,GAAnBA,EAAmB/zR,QAAnB,MAA6Bs5B,GAAAA,EAAMv4B,KAAOojC,GAAYp8B,cAAAuxB,EAAKv4B,MAAM49B,OAAA19B,EAAG8H,EAAMo7B,eAAe7K,aAAM,EAANA,EAAMv4B,KAE/F,OAAAy5C,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OAAei1P,EAAA,2BAAAj1P,OAAsCzM,EAAY/vB,MAAe,WAAAw8B,OAAAs1P,IAAA,CAAAz5O,EAAAK,YAAA,MAAA,CAAAJ,MAClEu5O,GAAA,CAAAx5O,EAAAK,YAAA,OAAA,CAAAJ,MAED,CAAA,GAAA9b,OACFi1P,yBAAA5xR,EAAA,CAAA,EACA+G,EAAMyqR,iBAAmBzqR,EAAMwsB,eAAgB+D,SAAAA,EAAMv4B,SAGzDu4B,CAAAA,SAAAA,EAAMv4B,KAAOgkC,EAAWh8B,EAAMwsB,cAEf,cAAjB+D,aAAM,EAANA,EAAMgoC,SAAyBuyN,EAAev6P,EAAKs7I,SAClC,aAAjBt7I,aAAA,EAAAA,EAAMgoC,SACL9mB,EAAAK,YAAA64O,EAAA,CAAAj5O,MAAA,GAAA9b,OAA0Bi1P,2BAA6BA,EAA8B,mBAAA,MAEtE,YAAhBt6P,EAAKgoC,QAAW9mB,EAAAK,YAAA+lB,EAAA,CAAAnmB,MAAA9b,GAAAA,OAA8Ci1P,EAA6B,kBAAA,OAC3Ft6P,aAAA,EAAAA,EAAMv4B,OAAwB,SAAhBu4B,EAAKgoC,QAAW9mB,EAAAK,YAAAimB,EAAA,CAAArmB,MAAA,GAAA9b,OACIi1P,EAAAj1P,kBAAAA,OAA6Bi1P,EAA2B,gBAAA,MAE1FrpQ,SAASgV,EAASp9B,OAASm3B,EAAKv4B,OAC/By5C,EAAAK,YAAA2nD,EAAA,CAAA/nD,MAAA9b,GAAAA,OACYi1P,EAAA,wBAAAxzO,QACD,SAAAlD,GAAA,IAAGj9C,EAAEi9C,EAAFj9C,EAAE,OAAyB8I,EAAMujF,SAAS,CAAErsF,EAAAA,EAAGq5B,KAAAA,EAAMv1B,MAAO,GAC1E,GAAA,SAhC0B,GAuCpC,OAAO,WAAM,IAAAkkB,EAAAisQ,EAAAC,EACL1qP,EAAU,CAAA,GAAA9K,OAAIi1P,wBAA2BA,eAAAj1P,OAAwBhD,EAAMx5B,QACzEmvR,EAAkB7pQ,EAAe,kBAAmB,CACtDT,OAAQ,CACNslE,SAAUvjF,EAAMujF,SAChB8mM,cAAerqR,EAAMqqR,cACrBE,qBAAsBvqR,EAAMuqR,qBAC5B1mQ,OAAQ7jB,EAAM6jB,OACdyY,MAAOt8B,EAAMsqR,gBAGa,OAA1BtqR,EAAMuoR,iBAAgD,OAApBA,IAClBA,EAAA,MAGd,IAxGyBjsP,EAAwB+uP,EAwG/Cf,EAAiBtqR,EAAjBsqR,aAGN,OAAA74O,EAAAA,YAAA,MAAA,CAAAC,MAAYhR,GAAA,CACO,eAAhB9N,EAAMx5B,OAA0B2xR,YAAyB7rQ,EAEzDF,iBAAgB,IAAAE,OAAA,EAAhBA,EAAArnB,KAAAmnB,GAEgB,SAAhB4T,EAAMx5B,OAAoB4G,EAAMwsB,cAAgB89P,EAAa,IAC5D74O,EAAAA,YAAA,QAAA,CAAAC,MAAc,CAAC1xC,EAAMu8F,YAAav8F,EAAMyqR,mBAAoBzqR,CAAAA,EAAMwsB,cAG/C,OAApB+7P,EAA2B,KAAOA,IApHRjsP,EAoHmDguP,EAnH9D,SAAhB13P,EAAMx5B,QACL4G,EAAM0nG,UAAiC,kBAArB2jL,EAAA/uP,EAAM,uBAAN+uP,EAAU9yN,SAAqBv4D,EAAMkoR,WADzB,KAI5B5rP,EAAMr3B,KAAI,SAACsrB,EAAMv1B,GACtB,IA7CoBinB,EA6Cd+Z,EAAWh8B,EAAMo7B,aAAe7K,EAAKv4B,KAAOojC,GAAAp8B,WAAA,EAAA,CAAYuxB,EAAKv4B,MAAA49B,OAAA19B,EAAS8H,EAAMo7B,eAAe7K,EAAKv4B,KACtG,OAAAy5C,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OAEci1P,EAAqCj1P,0BAAAA,OAAAi1P,EAAA,0BAAAhtR,IAC1C0yB,EAAKv4B,KAAOgD,EAAQu1B,EAAKs7I,QAAUt7I,EAAKgoC,QAAA,CAE5ChoC,EAAKY,IACJsgB,EAAAA,YAAA2L,GAAA,CAAAnG,KACQ1mB,EAAKY,IAAA8H,OAAA,SAAAyjB,MAAA,QAAAl4C,KAAA,QAAAktC,MAAA9b,GAAAA,OAIDi1P,EACV,iBAAAr0P,UAAU,IA1DEvU,EA4DX+Z,EA5DW,mBAAA/Z,GAAAu8B,oBAAAtlD,OAAAP,UAAAf,SAAAC,KAAAoqB,KAAAu8B,EAAAhhC,QAAAyE,GA4DX+Z,EAAA,CAAApU,QAAA,WAAA,MAAA,CAAAoU,EAAA,KAAAyV,EAAAK,YAAA,OAAA,CAAAJ,MAAA9b,GAAAA,OAGai1P,EAA8B,kBAAA7uP,CAAAA,IAE/B,SAAhBzL,EAAKgoC,QACJ9mB,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OAAei1P,EAAAj1P,kBAAAA,OAA6Bi1P,EAC1C,gBAAAp5O,CAAAA,EAAAK,YAAAimB,EADD,KAAA,QAIc,YAAhBxnC,EAAKgoC,QACJ9mB,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OAAei1P,EAAAj1P,kBAAAA,OAA6Bi1P,EAC1C,mBAAA,CAAAp5O,EAAAA,YAAAk5O,EAAA,KAAA,QAGa,aAAhBp6P,EAAKgoC,QAAyBuyN,EAAev6P,EAAKs7I,UACjDr1I,EAASp9B,OAAyB,aAAhBm3B,EAAKgoC,QACvB9mB,EAAAK,YAAAqmB,EAAA,CAAAzmB,MAAA9b,GAAAA,OACYi1P,EAAA,iBAAAxzO,QACD,SAAAxa,GAAA,IAAG3lC,EAAE2lC,EAAF3lC,EAAE,OAAyB8I,EAAMujF,SAAS,CAAErsF,EAAAA,EAAGq5B,KAAAA,EAAMv1B,MAAAA,GACnE,GAAA,OAIR,KA0EMgF,EAAM0nG,UAAwC,UAAX,QAAjByjL,EAAAb,EAAa,UAAba,IAAiBA,OAAjBA,EAAAA,EAAiB5yN,SAAqC,SAAhB3lC,EAAMx5B,MAI5D,KAJsEq4C,EAAAA,YAAA,QAAA,CAAAC,MAC1D,CAAC1xC,EAAMi9J,aAAcj9J,EAAMyqR,mBACtC,EAAgB,QAAhBW,EAAAd,EAAa,GAAGx7E,gBAAA,IAAAs8E,OAAA,EAAhBA,EAA0B10P,QAAS7S,EAAOzqB,MAAMy3B,SAASG,aAMtE,IC1KsB,SAAAw8K,GAAQxtM,EAAyB87B,GACjD,IAAA7C,EAAStE,MAAI,MACb22P,EAAa32P,OAAI,GAgChB,MAAA,CACLsE,OAAAA,EACAqyP,WAAAA,EACA9tG,WAjCiB,SAACrgJ,GAAqB,IAAAouP,EACvCpuP,EAAMu2C,iBACN43M,EAAWlyR,OAAQ,EAEb,IAGiBoyR,EAFjBC,EAAoBpvP,GADRc,EAAM4gJ,aAAhBzhJ,MACqCR,EAAO1iC,QACrC,QAAfmyR,EAAAvrR,EAAM2/G,cAAS,IAAA4rK,GAAfA,EAAA1zR,KAAAmI,EAAe,CAAE9I,EAAGimC,IAChBsuP,SAAAA,EAAWx0R,kBACbu0R,EAAAxrR,EAAM0rR,wBAANF,OAAAA,EAAA3zR,KAAAmI,EAAyByrR,KA0B3BE,gBAtBsB,SAACxuP,GAAqB,IAAAyuP,EAC5CzuP,EAAMu2C,iBACNz6C,EAAO7/B,MAAQ+jC,EAAMlE,OACD,QAApB2yP,EAAA5rR,EAAM4pR,mBAAc,IAAAgC,GAApBA,EAAA/zR,KAAAmI,EAAoB,CAAE9I,EAAGimC,IACzBmuP,EAAWlyR,OAAQ,GAmBnByyR,gBAhBsB,SAAC1uP,GAAqB,IAAA2uP,EACxC3uP,EAAMlE,SAAWA,EAAO7/B,QAC5B+jC,EAAMu2C,iBACc,QAApBo4M,EAAA9rR,EAAMsjL,mBAAc,IAAAwoG,GAApBA,EAAAj0R,KAAAmI,EAAoB,CAAE9I,EAAGimC,IACzBmuP,EAAWlyR,OAAQ,IAanB2yR,eAVqB,SAAC5uP,GACtBA,EAAMu2C,kBAWV,okBC1BA,IAAAs4M,GAAe37O,kBAAgB,CAC7Br4C,KAAM,oBACNgI,MAAOsxC,GAAAA,MACF84O,IAAA,CAAA,EAAA,CACHl7N,QAASr1D,SACToyR,cAAepyR,SACfqyR,YAAaryR,SACbsyR,aAActyR,SACduyR,WAAYlzR,SAEdo3C,eAAMtwC,EAAA48B,GAAkB,IAAT5d,EAAA4d,EAAA5d,MACbyyD,EAA2Cv9B,SAAOl0C,GAA1CsqR,EAAc74M,EAAd64M,aAAc9zP,EAAAi7C,EAAAj7C,SAAUsF,EAAO21C,EAAP31C,OAC1BjY,EAAShM,EAAAA,UAAS,WAAA,OAAM7X,EAAM6jB,UAE9BnF,EAAiBmC,KAEfiV,EAASD,KAATC,KACF+0P,EAAAj1P,GAAAA,OAAkB51B,EAAMmpB,YAAA,WAExB8zJ,EAAOuwB,GAAQxtM,EAAMosR,WAAYtwP,GAC/BwvP,EAAeruG,EAAfquG,WAEFe,EAAiB13P,EAAAA,MAEjB+L,EAAU7oB,EAAAA,UAAS,WAAA,IAAAy0Q,EAAA,MAAM,IAAA12P,OAC1Bi1P,EAAA5xR,aAAAA,QAAA28B,OACGi1P,EAAiC,qBAACP,EAAalxR,MAAM,IAAGH,EAAA,CAAA,EAAA,GAAA28B,OACxDi1P,EAAgC,mBAAkC,UAAf,QAAnByB,EAAAhC,EAAalxR,MAAM,UAAnBkzR,IAAmBA,OAAnBA,EAAAA,EAAuB/zN,aAG/Db,EAAyD59B,GAAc,CACrE+9B,sBAAuBC,GACvBC,sBAAuBC,KAFjBH,EAAAH,EAAAG,sBAAuBE,EAAsBL,EAAtBK,sBAKzB2lI,EAAc,WAAM,IAAA6uF,EACpB,GAACvsR,EAAMsqR,aAAarzR,OAApB,CACE,IAAAs5B,EAAO+5P,EAAalxR,MAAM,GAChC,IAAKm3B,EAAa,OAAA,KAClB,IAAMY,GAAMZ,aAAAA,EAAAA,EAAMY,OAAOZ,SAAgB,QAAhBg8P,EAAAh8P,EAAMu+K,gBAAU,IAAAy9E,OAAA,EAAhBA,EAAgBp7P,KACzC,OAAAsgB,EAAAA,YAAA,MAAA,CAAAC,MAAA9b,GAAAA,OACiBi1P,gEAEH,CAAC15P,GAAG+9B,QACH,SAACtwC,SAAKonB,EAAAg8B,EAAAh8B,KAAA,OAAAyL,EAAAA,YAAAosJ,GAAA,CAAA1B,IAA4BhrK,GAAOZ,EAAKi8P,YAAcxmP,EAAAtP,MAAA,GAAAJ,QAAA,IAAA,KAAA,GAChEt2B,EAAM4oR,kBAAA,OATe,GAe5B6D,EAAkB,WAClB,GAACzsR,EAAMsqR,aAAarzR,OAApB,CACE,IAAAs5B,EAAO+5P,EAAalxR,MAAM,GAChC,OAAKm3B,EACgB,cAAjBA,aAAA,EAAAA,EAAMgoC,QAEN9mB,EAAAA,YAAA,MAAA,CAAAC,MAAA9b,GAAAA,OAAei1P,EAAA,sBAAAp5O,CAAAA,EAAAA,YAAAqG,GAAA,KAAA,MAEZ93C,EAAMmpR,oBAAA13O,EAAAK,YAAA,OAAA,CAAAJ,MAAA9b,GAAAA,OAAsCi1P,EAAA,qBAAA,CAAiCt6P,EAAKs7I,QAAQ,aAJ7F,EADc,IAFc,GAuG5BjvF,EAAa,WAAM,IAAA19D,EAXcwtQ,EAC/BC,EAMAznL,EAKA30E,EAAO+5P,EAAalxR,MAAM,GAChC,OAAIm3B,IAAS,CAAC,WAAY,UAAW,OAAQ,WAAW7Y,SAAS6Y,EAAKgoC,SAAYhoC,EAAKgoC,OAGvF9mB,EAAAA,YAAA,MAAA,CAAAC,MAAA9b,GAAAA,OACiBi1P,EAAyB,aAAAxzO,QAASr3C,EAAMisR,eAAA,UACpD/sQ,EAAAF,EAAM,eAAA,IAAAE,OAAA,EAANA,EAAArnB,KAAAmnB,MAjBC2tQ,kEAEc9B,mBAA4D,UAAhChnQ,EAAOzqB,MAAMw2B,yBAAmB,IAAA88P,OAAA,EAAhCA,EAAgC58P,SAAA2hB,EAAAK,YACtE,OAAA,KAAA,CAAA,oBAA0BjuB,EAAOzqB,MAAM+2B,QAAQE,iBAGnD60E,gBAAsBrhF,MAAAA,KAAAA,CAAAA,EAAOzqB,MAAM+2B,QAAQC,eAC1Ck7P,EAAWlyR,MAAQ8rG,EAAgBynL,KAvFlB,WAAM,IAAAC,ExsBmCJ7mR,EwsBlCpBwqB,EAAO+5P,EAAalxR,MAAM,GAC1B4iC,EAAWh8B,EAAMo7B,YAAcA,GAAYp8B,WAAA,EAAA,CAAAuxB,EAAKv4B,eAASgI,EAAMo7B,eAAe7K,EAAKv4B,KAEnF60R,EAAW,CAAAp7O,EAAAK,YAAA,MAAA,CAAAJ,MAAA9b,GAAAA,OACAi1P,uEACGA,EAAA,kBAAA,CAA8B7uP,IAC7B,aAAhBzL,EAAKgoC,QAAyBk0N,IACd,YAAhBl8P,EAAKgoC,QAAwB9mB,EAAAK,YAAA+lB,EAAuB,KAAA,MACpC,SAAhBtnC,EAAKgoC,QAAqB9mB,EAAAK,YAAAimB,EAAA,KAAA,QAAuBtmB,EAAAA,YAAA,QAAA,CAAAC,MAAA,GAAA9b,OAEnCE,EAAK18B,MAAM28B,oBACzBlS,EAAOzqB,MAAMm3B,KAAKE,aAAa,UxsBuBV1qB,EwsBvB4BwqB,EAAK/rB,KxsBwB3DuB,EAAS,KACX6vB,GAAAA,OAAU7vB,EAAA,UAERA,GAAU,MAAQA,EAAS,QAC7B6vB,GAAAA,QAAW7vB,EAAS,MAAM87F,QAAQ,GAAC,OAEjC97F,GAAU,QACZ6vB,GAAAA,QAAW7vB,EAAS,SAAS87F,QAAQ,GAAC,OAEjC,MwsBjC4DpwD,EAAAA,YAAA,QAAA,CAAAC,MAAA,GAAA9b,OAE5CE,EAAK18B,MAAM28B,oBACzBlS,EAAOzqB,MAAMm3B,KAAKK,sBAAsB,SAAEL,EAAKu8P,YAAc,OAIhE,OAAAr7O,EAAAA,YAAA,MAAA,CAAAC,MAAA9b,GAAAA,OAAei1P,EAAA,uBACZ7qR,CAAgB,UAAhBA,EAAM4yB,OAAqB8qK,IAAYjsJ,EAAAK,YAAA,MAAA,CAAAJ,MAAA9b,GAAAA,OACzBi1P,EAAA,4BACZnsQ,CAAAA,EAAe,kBAAmB,CAAET,OAAQ,CAAEqe,MAAOt8B,EAAMsqR,iBAAqBuC,EAAAp7O,EAAAK,YAAA,MAAA,CAAAJ,MAAA9b,GAAAA,OAElEi1P,EAAA,mBACZ,CAAA,CAAC,WAAY,WAAWnzQ,SAAS6Y,EAAKgoC,UAAY/hC,EAASp9B,OAC1Dq4C,EAAAA,YAAAyG,GAAA,CAAAtlB,MAAA,UAAAwkB,QAAA,OAAA1F,MAAA9b,GAAAA,OAGYi1P,uCACD,SAAC3zR,GACR,IAAA61R,EAAA,OAAqB,QAArBA,EAAA/sR,EAAMmsR,oBAAe,IAAAY,OAAA,EAArBA,EAAAl1R,KAAAmI,EAAqB,CACnB9I,EAAAA,EACAq5B,KAAMvwB,EAAMqqR,cAAc,IAAMrqR,EAAMs8B,MAAM,IAC7C,GAAA,CAAA1U,QAAA,WAAA,MAAAglQ,SAAAA,EAGF/oQ,EAAOzqB,aAAA,IAAAwzR,OAAA,EAAPA,EAAcj9P,sBAGjB3vB,EAAMkoR,YAA8B,YAAhB33P,EAAKgoC,QACzB9mB,EAAAK,YAAAoG,GAAA,CAAAtlB,MAAA,UAAAwkB,QAAA,OAAA5gB,SAGYA,EAASp9B,MAAAi+C,QACV,WAAA,IAAA21O,EAAA,OAAY,QAAZA,EAAMhtR,EAAMksR,mBAAA,IAAAc,OAAA,EAANA,EAAAn1R,KAAAmI,EACf,EAAA0xC,MAAA9b,GAAAA,OAAUi1P,EAAA,yBAAA,CAAAjjQ,QAAA,WAAA,MAAA,CAET/D,EAAOzqB,MAAMw2B,kBAAkBE,OAAA,MAIrC,CAAC,OAAQ,WAAWpY,SAAS6Y,aAAAA,EAAAA,EAAMgoC,UAAY/hC,EAASp9B,OAAAq4C,EAAAK,YAAA,MAAA,CAAAJ,MAAA9b,GAAAA,OACxCi1P,EAAA,mBAAAp5O,CAAAA,EAAAK,YAAAoG,GAAA,CAAAtlB,MAAA,UAAAwkB,QAAA,OAAA5gB,SAIDA,EAASp9B,MAAAs4C,MAAA9b,GAAAA,OACTi1P,EAAA,6BAAAxzO,QACDr3C,EAAMisR,eAAA,CAAArkQ,QAAA,WAAA,MAAA,CAEd/D,EAAOzqB,MAAMw2B,kBAAkBG,sEAKtByG,EAASp9B,MACnBs4C,MAAA9b,GAAAA,OAAUi1P,EAAA,wBAAAxzO,QACD,SAACngD,GAAkB,OAAA8I,EAAMujF,SAAS,CAAErsF,EAAAA,EAAG8D,MAAO,EAAGu1B,KAAAA,GAAM,GAAA,CAAA3I,QAAA,WAAA,MAAA,CAE/D/D,EAAOzqB,MAAMw2B,kBAAkB,OAAA,UAuBnCq9P,IASX,OAAO,WAAA,IAAAC,EAAA,OAAAz7O,EAAAA,YAAA,MAAA,CAAA9c,IAEE03P,QACE3rP,EAAQtnC,MACfumH,OAAQs9D,EAAKO,WACbosG,YAAa3sG,EAAK0uG,gBAAA5rK,WACNk9D,EAAK8uG,eAAAzoG,YACJrG,EAAK4uG,iBAEjB,EAAgBqB,QAAhBA,EAAAltR,EAAMkvD,eAANg+N,IAAgBA,OAAhBA,EAAAA,EAAAr1R,KAAAmI,EAAgB4e,EAAAA,EAAG,CAAE0d,MAAOguP,EAAalxR,MAAOkyR,WAAYA,EAAWlyR,UAAYwjF,MAG1F,ukBChLF,IAAAuwM,GAAe98O,kBAAgB,CAC7Br4C,KAAM,kBACNgI,MAAOsxC,GAAAA,MACF84O,IAAA,CAAA,EAAA,CACH1iL,SAAUlmF,QACVlhB,IAAKtH,OACLw9B,SAAUhV,QACV2nQ,mBAAoB3nQ,QACpByqQ,cAAepyR,SACfqyR,YAAaryR,SACbsyR,aAActyR,SACdmwR,UAAWnwR,SACXovR,kBAAmBznQ,UAErB8uB,MAAAA,SAAMtwC,GACJ,IAAAyxE,EAAqDv9B,SAAOl0C,GAApDsqR,EAAc74M,EAAd64M,aAAcnhQ,EAAAsoD,EAAAtoD,YAAau+E,IAAAA,SAAUpnG,EAAImxE,EAAJnxE,IACvCujB,EAAShM,EAAAA,UAAS,WAAA,OAAM7X,EAAM6jB,UACpC6zC,EAAmE59B,GAAc,CAC/E2rD,QAASC,GACT2T,WAAYC,GACZ++F,WAAYC,GACZvgI,sBAAuBC,KAJjBqhC,EAAY3hC,EAAZ2hC,WAAYg/F,EAAA3gI,EAAA2gI,WAAY5yG,EAAS/tB,EAAT+tB,QAAS1tB,EAAAL,EAAAK,sBAOnCr5C,EAAiBmC,KAEjBusQ,EAAcv1Q,EAAAA,UAAS,WAAM,IAAAw1Q,EACjC,OAAI3lL,EAAStuG,OACHkH,EAAIlH,OAASkxR,EAAalxR,MAAMnC,OAASqJ,EAAIlH,QAE1Bi0R,QAAtBA,EAAC/C,EAAalxR,aAAbi0R,IAAqBA,GAArBA,EAAqB,GAC/B,IAEMC,EAAoB,SAAC/8P,EAAkBv1B,GAC3C,OAAAy2C,EAAAA,YAAA,MAAA,CAAAC,MAAA9b,GAAAA,OACiBzM,EAAY/vB,uCAA8B+vB,EAAY/vB,MAAA,sBAAAq4C,CAAAA,EAAAK,YAAA+rJ,GAAA,CAAAnsJ,MAAA,GAAA9b,OAClDzM,EAAY/vB,MAA4B,uBAAA+iM,IAAK5rK,EAAKY,KAAOZ,EAAKi8P,IAAA91P,MAAA,GAAAolK,IAAA,WAAA,MAAArqJ,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OAChEzM,EAAY/vB,MAAA,uBAAA,CAAAq4C,EAAAK,YAAA,OAAA,CAAAJ,MAAA,GAAA9b,OACTzM,EAAY/vB,MAAgC,2BAAAi+C,QAAS,SAACngD,GAAA,OAAMA,EAAEyhF,iBAC5E,GAAA,CAAAlnC,EAAAA,YAAAorK,GAAAvoK,aAAA,CAAAmjK,OACU6yE,EAAalxR,MAAM6L,KAAI,SAACtN,GAAA,OAAkBA,EAAEw5B,KAAOx5B,EAAE60R,OAAG90E,aAClD18M,EAAAk0D,QACL,SAACtwC,EAAGge,GAAa,IAAXoJ,IAAAA,KACb,OAAAyL,EAAAA,YAAA4nD,EAAA,CAAAhiD,QAEa,SAAAxa,GAA8B,IAAA0wP,EAA3Br2R,IAAAA,EACQ,QAAlBq2R,EAAAvtR,EAAMgqR,iBAAY,IAAAuD,GAAlBA,EAAA11R,KAAAmI,EAAkB,CAAEuwB,KAAAA,EAAMv1B,MAAAA,EAAO9D,EAAAA,IAC5B8uC,GACP,GACF,KAEJ,GACKhmC,EAAM4oR,kBACZ,SAED5oR,EAAMw2B,UACNib,EAAAK,YAAAoR,EAAAnlC,eAAA0zB,EAAAA,YAAA,OAAA,CAAAC,MAAA,GAAA9b,OACkBzM,EAAY/vB,MAAwC,oCAAA,MAAAq4C,EAAAK,YAAA,OAAA,CAAAJ,MAAA,GAAA9b,OACpDzM,EAAY/vB,MAAA,2BAAAi+C,QAAyC,SAACngD,GAAM,OAAAA,EAAEyhF,iBAAgB,GAAAlnC,CAAAA,EAAAK,YAAAumJ,EAAA,CAAAhhJ,QACvE,SAAA+c,GAAA,IAAAo5N,EAAGt2R,EAAAk9D,EAAAl9D,EAAA,OAA2B8I,SAAkB,QAAlBwtR,EAAAxtR,EAAOujF,gBAAPiqM,IAAkBA,OAAlBA,EAAAA,EAAA31R,KAAAmI,EAAkB,CAAE9I,EAAAA,EAAGq5B,KAAAA,EAAMv1B,MAAAA,GAAU,GAE9F,eAOJyyR,EAAqB,SAACl9P,EAAkBm9P,GAAqB,IAAAd,EAE/D,OAAAn7O,EAAAA,YAAA,MAAA,CAAAC,MAAY,CAACg8O,EAAA,GAAA93P,OAAazM,EAAY/vB,MAAiB,aAAAw8B,OAAA51B,EAAM4yB,MAAS,KAAAgD,OAAArF,EAAKgoC,UAAQ9mB,CAAAA,EAAAK,YAAAgF,GAAA,CAAAxgB,SAC/D,EAAA9xB,KAAA,UAAA,MAAAitC,EAAAK,YAAA,IAAA,KAAA,SAAA86O,EAEf/oQ,EAAOzqB,oBAAiB,UAAxBwzR,EAAc/7P,gBAAU,IAAA+7P,OAAA,EAAxBA,EAAwB97P,cACxB9wB,EAAMmpR,mBAAAvzP,IAAAA,OAAyBrF,EAAKs7I,aAAa,QAMpD8hH,EAAiB,SAACp9P,EAAkBv1B,EAAe0yR,GAAqB,IAAAnB,EAAAqB,EAE1E,OAAAn8O,EAAAA,YAAA,MAAA,CAAAC,MAAYg8O,GAAA,CAAAj8O,EAAAA,YAAAsmB,EAAAtmB,KAAAA,MAAAA,EAAAK,uBAED,QAALy6O,EAAAh8P,EAAKu+K,gBAALy9E,IAAKA,OAALA,EAAAA,EAAe71P,mBAAS7S,EAAOzqB,aAAA,IAAAw0R,WAAAA,EAAPA,EAAc/8P,gBAAU,IAAA+8P,OAAA,EAAxBA,EAAwB58P,YAAAygB,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OACrCzM,EAAY/vB,oEACT+vB,EAAY/vB,MAAgC,2BAAAi+C,QAAS,SAACngD,GAAA,OAAMA,EAAEyhF,iBAAgB,GAAAlnC,CAAAA,EAAAK,YAAAumJ,EAAA,CAAAhhJ,QACvE,SAAA2qB,GAAA,IAAA6rN,EAAG32R,EAAE8qE,EAAF9qE,EAAE,OAAyB8I,SAAkB,UAAlBA,EAAOujF,gBAAPsqM,IAAkBA,OAAlBA,EAAAA,EAAAh2R,KAAAmI,EAAkB,CAAE9I,EAAAA,EAAGq5B,KAAAA,EAAMv1B,MAAAA,GAAO,GAAA,aAOjG,OAAO,WAAM,IAAA8yR,EAAAC,EAELC,EAAatvQ,EAAe,kBAAmB,CACnDT,OAAQ,CACNguQ,cAAejsR,EAAMisR,cACrBC,YAAalsR,EAAMksR,YACnBC,aAAcnsR,EAAMmsR,aACpBnC,UAAWhqR,EAAMgqR,UACjBzmM,SAAUvjF,EAAMujF,SAChB8mM,cAAerqR,EAAMqqR,cACrBE,qBAAsBvqR,EAAMuqR,qBAC5B1mQ,OAAQ7jB,EAAM6jB,OACdyY,MAAOguP,EAAalxR,SAGpB,GAAA40R,EAAmB,OAAAA,EAEvB,IAAMC,EAAkB,GAAAr4P,OAAGzM,EAAY/vB,MAAA,uBAAAw8B,OAA2BzM,EAAY/vB,MAAA,kBAC9E,OAAAq4C,EAAAK,wBAAAL,EAAAA,YAAA,KAAA,CAAAC,MAAA,GAAA9b,OAEkBzM,EAAY/vB,MAAA,kBAAA,SAAA00R,EACvBxD,EAAalxR,aAAA,IAAA00R,OAAA,EAAbA,EAAoB7oR,KAAI,SAACsrB,EAAkBv1B,GACpC,IAjIFinB,EAiIEisQ,EAAAt4P,GAAAA,OAAuBzM,EAAY/vB,MAAA,sBAEnCs0R,EAAW,GAAA93P,OAAGzM,EAAY/vB,MAAA,4BAAAw8B,OAAgCzM,EAAY/vB,MAAA,qBACtE4iC,EAAWh8B,EAAMo7B,YAAcA,GAAYp8B,WAAA,EAAA,CAAAuxB,EAAKv4B,eAASgI,EAAMo7B,eAAe7K,EAAKv4B,KACzF,OAAAy5C,EAAAA,YAAA,KAAA,CAAAC,MACau8O,EAAApwR,IAAsB7C,GAAA,CACd,aAAhBu1B,EAAKgoC,QAAyBk1N,EAAmBl9P,EAAMm9P,GACvC,SAAhBn9P,EAAKgoC,QAAqBo1N,EAAep9P,EAAMv1B,EAAO0yR,IACrD,CAAC,WAAY,QAAQh2Q,SAAS6Y,EAAKgoC,SAAW+0N,EAAkB/8P,EAAMv1B,GACvEwmB,QAAQwa,GAAYh8B,EAAMipR,qBACxB14P,EAAKY,IACJsgB,EAAAK,YAAAsL,GAAA,CAAAnG,KACQ1mB,EAAKY,IAAAugB,MACJw8O,EACPj1P,OAAA,SAAAyjB,MAAA,QAAAl4C,KAAA,QAAAgyB,UAGU,IAlJhBvU,EAoJO+Z,EApJP,mBAAA/Z,GAAAu8B,oBAAAtlD,OAAAP,UAAAf,SAAAC,KAAAoqB,KAAAu8B,EAAAhhC,QAAAyE,GAoJO+Z,EAAA,CAAApU,QAAA,WAAA,MAAA,CAAAoU,EAAA,KAAAyV,EAAAK,YAAA,OAAA,CAAAJ,MAGUw8O,GAAoBlyP,CAAAA,MAI1C,IAEAoxP,EAAYh0R,OACXq4C,EAAAA,YAAA,KAAA,CAAAC,MAAWu8O,EAAiB52O,QAASr3C,EAAMisR,eAAA,CAAAx6O,EAAAK,YAAA,MAAA,CAAAJ,MAEhC,CAAA9b,GAAAA,OACFzM,EAAY/vB,MAAAw8B,sBAAAA,GAAAA,OACZzM,EAAY/vB,MAAAw8B,2BAAAA,GAAAA,OACZzM,EAAY/vB,MAAAH,qBAAAA,EAAA28B,CAAAA,EAAAA,GAAAA,OAETzM,EAAY/vB,MAAsB4G,gBAAAA,EAAMw2B,YAEhD,CAAAib,EAAAK,YAAA2zC,EAAA,KAAA,MAAAh0C,EAAAK,YAAA,IAAA,CAAAJ,MAGU,CAAA,GAAA9b,OAAIzM,EAAY/vB,MAAA,WAAA,GAAAw8B,OAAmBzM,EAAY/vB,6BACtD,CAAc,QAAd20R,EAAAlqQ,EAAOzqB,aAAO20R,IAAAA,GAAAA,QAAAA,EAAdA,EAAcn+P,6BAAAm+P,SAAdA,EAAiChiQ,gBASpD,ukBClJF,IAAAoiQ,GAAe99O,kBAAgB,CAC7Br4C,KAAM,yBACNgI,MAAOsxC,GAAAA,MACF84O,IAAA,CAAA,EAAA,CACHlB,cAAe1nQ,QACf0qQ,YAAaryR,SACbsyR,aAActyR,SACduyR,WAAYlzR,OACZs9B,SAAUhV,QACVsnQ,cAAetnQ,QACf2hE,UAAW3hE,QACXynQ,kBAAmBznQ,QACnB+nQ,aAAcrwR,OACdmvR,mBAAoBnvR,OACpB8wR,UAAWnwR,WAEby2C,eAAMtwC,EAAA48B,GAAkB,IAAT5d,EAAA4d,EAAA5d,MAEPyyD,EAA6Dv9B,SAAOl0C,GAAlEkwB,IAAAA,UAAWsG,EAAUi7C,EAAVj7C,SAAU8zP,EAAA74M,EAAA64M,aAAcnhQ,IAAAA,YAAa2S,EAAO21C,EAAP31C,OAClD+uP,EAAehzQ,EAAAA,UAAS,WAAA,MAAA,GAAA+d,OAASzM,EAAY/vB,MAAc,UAAA,IAE3DyqB,EAAShM,EAAAA,UAAS,WAAA,OAAM7X,EAAM6jB,UAE9BnF,EAAiBmC,KAEjB62C,EAYF59B,GAAc,CAChBu/D,WAAYC,GACZ++F,WAAYC,GACZzgI,sBAAuBC,GACvBC,sBAAuBC,GACvB2yN,eAAgBC,GAChBwD,cAAeC,GACfC,YAAaC,GACbC,aAAcC,GACdC,mBAAoBC,GACpBC,SAAUC,GACVC,UAAWC,KAtBX11L,EAAA3hC,EAAA2hC,WACAg/F,EAAA3gI,EAAA2gI,WACAxgI,EAAAH,EAAAG,sBACAE,EAAAL,EAAAK,sBACA4yN,EAAAjzN,EAAAizN,eACAyD,EAAA12N,EAAA02N,cACAE,EAAA52N,EAAA42N,YACAE,EAAA92N,EAAA82N,aACAE,EAAAh3N,EAAAg3N,mBACAE,EAAAl3N,EAAAk3N,SACAE,EAAAp3N,EAAAo3N,UAeI7xG,EAAOuwB,GAAQxtM,EAAMosR,WAAYtwP,GAEjCkzP,EAAqBr6P,MAAkB,IACvCs6P,EAAet6P,MAAI,GAEnBu6P,EAAar3Q,EAAAA,UAAS,WAC1B,OAAIqY,EAAU92B,MAAcw8B,GAAAA,OAAG/R,EAAOzqB,MAAMy3B,SAASC,eAC9CjN,EAAOzqB,MAAMw2B,kBAAkBE,MACxC,IAEMq/P,EAAkBt3Q,EAAAA,UAAS,WAE/B,YADsC,IAApB7X,EAAMmjF,WAAiCnjF,EAAMmjF,UAE3D,CACEw8B,OAAQs9D,EAAKO,WACbosG,YAAa3sG,EAAK0uG,gBAClB5rK,WAAYk9D,EAAK8uG,eACjBzoG,YAAarG,EAAK4uG,iBAEpB,EACN,IAEMuD,EAAe,WACnB,IAAMC,EAAU,CACdhlQ,QAAAonB,EAAAK,YAAA+lB,EAAgC,KAAA,MAChChsC,KAAA4lB,EAAAK,YAAAimB,EAA6B,KAAA,MAC7BlnC,SAAA4gB,EAAAK,YAAAgG,GAAoB,KAAA,MACpBw3O,QAAA79O,EAAAK,YAAA64O,EAAA,KAAA,OAEM95P,EAAahN,EAAOzqB,MAApBy3B,SAOD,MAAA,CACLw+P,QAAAA,EACAE,QARc,CACdllQ,QAASwG,aAAAA,EAAAA,EAAUI,YACnBpF,KAAMgF,aAAAA,EAAAA,EAAUG,SAChBH,SAAUA,aAAAA,EAAAA,EAAUC,cACpBw+P,QAASz+P,aAAU,EAAVA,EAAUE,eAQjBwlJ,EAAc,uDACHs0G,EAAazxR,MACzB,iBAAA6jL,CAAAA,EAAKquG,WAAWlyR,MAAQyqB,EAAOzqB,MAAM+2B,QAAQC,aAAevM,EAAOzqB,MAAM+2B,QAAQG,oBAwEhFk/P,EAAe,SAACj/P,GAAqB,IAAAk/P,EAAAC,EACzCC,EAA6BP,IAArBC,EAAAM,EAAAN,QAASE,EAAQI,EAARJ,QACjB,OAAA99O,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OACiBi1P,EAAazxR,MAAA,kBAAA,CACzBi2R,EAAQ9+P,EAAKgoC,QAAA9mB,EAAAA,YAAA,OAAA,CAAAC,MAAA,GAAA9b,OACEi1P,EAAazxR,YAAUw8B,OAAA51B,EAAM4yB,kBAASrC,EAAKgoC,SACxD,CAAe,QAAfk3N,EAAAl/P,EAAKu+K,gBAAU,IAAA2gF,GAAfA,EAAe/4P,QAAag5P,QAALA,EAAAn/P,EAAKu+K,gBAAL4gF,IAAKA,OAALA,EAAAA,EAAeh5P,QAAgC64P,EAAQh/P,EAAKgoC,QACnFv4D,EAAMmpR,oBAAsC,aAAhB54P,EAAKgoC,kBAA4BhoC,EAAKs7I,SAAW,EAAO,KAAA,QAiCvF+jH,EAAuB,SAAC7zP,GACxB,OAAAxB,GAAgBtiC,KAAK8jC,GACvB0V,cAAA68O,EAAA,KAAA,MAEE9zP,GAAkBviC,KAAK8jC,GACzB0V,cAAA28O,EAAA,KAAA,MAEE3zP,GAAiBxiC,KAAK8jC,GACxB0V,cAAA+8O,EAAA,KAAA,MAEE9zP,GAAgBziC,KAAK8jC,GACvB0V,cAAAi9O,EAAA,KAAA,MAEE/zP,GAAa1iC,KAAK8jC,GACpB0V,cAAAq9O,EAAA,KAAA,MAEFr9O,cAAAm9O,EAAA,KAAA,OAGIiB,EAAsB,SAACt/P,GAC3B,IAAKA,IAAUA,EAAKi8P,KAAOj8P,EAAKY,IAAa,OAAA,KACvC,IAAA4K,EAAWxL,EAAKi8P,IAAI3wR,KACpB0kC,EAAA3K,GAAAA,OAAei1P,EAAazxR,MAAA,oBAC9B,OAAAkhC,GAAariC,KAAK8jC,GACpB0V,EAAAA,YAAAosJ,GAAA,CAAAnsJ,MAEWnR,EACP47J,IAAK5rK,EAAKY,KAAOZ,EAAKi8P,IACtB1wF,IAAA,aAAAplK,MAAA,GAAAJ,QAAA,GAAA+gB,QAGS,SAACngD,GAAkB,IAAA44R,EAC1B54R,EAAEw8E,iBACiBs7M,EAAA51R,MAAQ,CAACm3B,GAC5B0+P,EAAa71R,MAAQ,UACrB02R,EAAA9vR,EAAMgqR,wBAAN8F,EAAAj4R,KAAAmI,EAAkB,CAAEuwB,KAAAA,EAAMv1B,MAAO,EAAG9D,EAAAA,GACtC,GACF,MAGJu6C,EAAAA,YAAA,MAAA,CAAAC,MAAmBnR,GAAYqvP,CAAAA,EAAqB7zP,MAGhDg0P,EAAiB,WAAM,IAAAC,EAAAC,EAAAC,EAAAC,EACrBnC,EAAatvQ,EAAe,kBAAmB,CACnDT,OAAQ,CACNkuQ,aAAcnsR,EAAMmsR,aACpBD,YAAalsR,EAAMksR,YACnBlC,UAAWhqR,EAAMgqR,UACjBzmM,SAAUvjF,EAAMujF,SAChB8mM,cAAerqR,EAAMqqR,cACrBE,qBAAsBvqR,EAAMuqR,qBAC5B1mQ,OAAQ7jB,EAAM6jB,OACdyY,MAAOt8B,EAAMsqR,aACb8B,WAAY+C,EAAgB/1R,SAGhC,OAAI40R,GAAchuR,EAAMuoR,gBAAwByF,EAChDv8O,EAAAK,oBAAAwC,aAAA,CAAA5C,MAAA,GAAA9b,OACmBi1P,EAAazxR,uBAAyB+1R,EAAgB/1R,OAAAq4C,CAAAA,EAAAK,0BAAAL,EAAAK,YAAA,KAAA,KAAA,CAAAL,EAAAA,YAAA,KAAA,KAAA,CAG/Cu+O,QAH+CA,EAG5DnsQ,EAAOzqB,MAAMm3B,gBAAAy/P,SAAbA,EAAmBx/P,yCACb,CAAEsrD,SAAU,UAAQ,CAAuBm0M,QAAvBA,EAAIpsQ,EAAOzqB,MAAMm3B,YAAb0/P,IAAmBA,OAAnBA,EAAAA,EAAmBx/P,eAAAghB,EAAAK,YAAA,KAAA,CAAA1K,MAC3C,CAAE00C,SAAU,UAAQo0M,CAAuBA,QAAvBA,EAAIrsQ,EAAOzqB,MAAMm3B,YAAb2/P,IAAmBA,OAAnBA,EAAAA,EAAmBx/P,iBACrD8F,EAASp9B,MAAQ,KAAOq4C,EAAAA,YAAA,KAAA,KAAA,CAAwB,QAAxB0+O,EAAKtsQ,EAAOzqB,MAAMm3B,YAAb4/P,IAAmBA,OAAnBA,EAAAA,EAAmBx/P,wBAAvB8gB,EAAAA,YAI3B,QAAA,KAAA,EAAC64O,EAAalxR,MAAMnC,QAAAw6C,EAAAK,YAAA,KAAA,KAAA,CAAAL,EAAAA,YAAA,KAAA,CAAAsT,QAEJ,GAAI,CAAAwxH,QAGpB+zG,EAAalxR,MAAM6L,KAAI,SAACsrB,EAAMv1B,GAAU,IAAAgwR,EAvSnC/oQ,E1sB8Balc,E0sB4QXqqR,EADwBpwR,EAAM8oR,eAETwB,EAAalxR,MAAMwuE,OAAM,SAAC/pD,SAAyB,YAAhBA,EAAK06C,SAAyB16C,EAAK06C,UA5F9E,SAACv9D,GAE5B,IAAA4yR,EAAA,OAAU,IAAV5yR,8BACesvR,EAAalxR,MAAMnC,uBAAkB4zR,EAAazxR,MAC7D,4BAAAq4C,CAAAA,EAAAK,YAAAwF,GAAA,CAAA1kB,MAAA,UAAAwkB,QAAA,OAAA15B,gBAAAkwQ,EAGW/pQ,EAAOzqB,aAAO,IAAAw0R,WAAAA,EAAdA,EAAch+P,yBAAA,IAAAg+P,OAAA,EAAdA,yBACC/C,EAAazxR,MACvB,YAAAi+C,QAAS,SAACngD,GAAkB,OAAA8I,EAAMujF,SAAS,CAAErsF,EAAAA,EAAG8D,OAAW,EAAAu1B,UAAM,GAAW,GAAA,QAG9E,IAAA,CAiFU8/P,CAAqBr1R,GA1GP,SAACu1B,EAAkBv1B,GAAA,IAAA4xR,EAAA,OAAAn7O,EAAAK,YAAA,KAAA,KAAA,CAAAL,EAAAA,YAAA6F,GAAA,CAAA1kB,MAAA,UAAAwkB,QAAA,OAAA15B,gBAAAkvQ,EAKlC/oQ,EAAOzqB,aAAO,IAAAwzR,WAAAA,EAAdA,EAAch9P,yBAAA,IAAAg9P,OAAA,EAAdA,EACT,OAAAl7O,MAAA,GAAA9b,OAAUi1P,EAAazxR,MACvB,YAAAi+C,QAAS,SAACngD,GAAkB,OAAA8I,EAAMujF,SAAS,CAAErsF,EAAAA,EAAG8D,MAAAA,EAAOu1B,KAAAA,GAAM,GAAA,QAoGnD+/P,CAAsB//P,EAAMv1B,GAC5BghC,EAAiB,QAANgvP,EAAAhrR,EAAMo7B,mBAAN4vP,IAAMA,GAANA,EAAmB/zR,OAASmkC,GAAAp8B,WAAA,EAAA,CAAYuxB,EAAKv4B,MAAA49B,OAAA19B,EAAS8H,EAAMo7B,eAAe7K,EAAKv4B,KAC3Fu4R,EAAgBvwR,EAAMkpR,cAAAz3O,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OACXi1P,EAAazxR,MAAA,gBAAA,CACzBy2R,EAAoBt/P,GACpByL,IAGHA,EAEIw0P,EAAejgQ,EAAKY,IAAAsgB,EAAAA,YAAA2L,GAAA,CAAAnG,KAEZ1mB,EAAKY,IAAA8H,OAAA,SAAAyjB,MAAA,QAAAlmB,UAA6C,GAzT5D,mBAAAvU,EA0TCsuQ,IA1TD/xO,oBAAAtlD,OAAAP,UAAAf,SAAAC,KAAAoqB,KAAAu8B,EAAAhhC,QAAAyE,GA0TCsuQ,EAAA,CAAA3oQ,QAAA,WAAA,MAAA,CAAA2oQ,EAAA,IAGHA,EAEF,OAAA9+O,EAAAA,YAAA,KAAA,CAAA5zC,IACW0yB,EAAKv4B,KAAOgD,EAAQu1B,EAAK/rB,MAAA,CAAAitC,EAAAK,YAAA,KAAA,CAAAJ,MAAA,GAAA9b,OAClBi1P,EAAazxR,MAAA,eAAAyE,IAAyB0yB,EAAKv4B,KAAOu4B,EAAKY,KAClEq/P,CAAAA,IAAA/+O,EAAAA,YAEEg/O,KAAAA,KAAAA,E1sBtSQ1qR,E0sBsSOwqB,EAAK/rB,K1sBrSrCuB,EAAS80B,GAASE,GACpBnF,GAAAA,OAAU7vB,EAAA,UAERA,GAAU80B,GAASE,IAAMh1B,EAAS80B,GAASG,GAC7C,GAAApF,QAAW7vB,EAAS80B,GAASE,IAAI8mE,QAAQ,GAAC,OAExC97F,GAAU80B,GAASG,IAAMj1B,EAAS80B,GAASI,GAC7C,GAAArF,QAAW7vB,EAAS80B,GAASG,IAAI6mE,QAAQ,GAAC,OAGxC97F,GAAU80B,GAASI,GACrB,GAAArF,QAAW7vB,EAAS80B,GAASI,IAAI4mE,QAAQ,GAAC,OAErC,+B0sByRc2tL,EAAaj/P,KACjBiG,EAASp9B,MAAQ,KAAOg3R,GAG/B,SAMFM,EAAkB,WAChB,IAAA1C,EAAatvQ,EAAe,kBAAmB,CACnDT,OAAQ,CACNkuQ,aAAcnsR,EAAMmsR,aACpBD,YAAalsR,EAAMksR,YACnB3oM,SAAUvjF,EAAMujF,SAChBymM,UAAWhqR,EAAMgqR,UACjBK,cAAerqR,EAAMqqR,cACrBE,qBAAsBvqR,EAAMuqR,qBAC5B1mQ,OAAQ7jB,EAAM6jB,OACdyY,MAAOt8B,EAAMsqR,aACb8B,WAAY+C,EAAgB/1R,SAGhC,OAAI40R,GAAchuR,EAAMuoR,gBAAwByF,EAChDv8O,EAAAA,YAAA,KAAA,CAAAC,MAAA,GAAA9b,OACgBi1P,EAAazxR,0BACxB4G,CAAAA,EAAMsqR,aAAarlR,KAAI,SAACsrB,EAAMv1B,GAAU,OA/OzB,SAACu1B,EAAkBv1B,GAAkB,IAAAuxR,EACzDoE,EAA6BvB,IAArBC,EAAAsB,EAAAtB,QAASE,EAAQoB,EAARpB,QACXvzP,EAAWh8B,EAAMo7B,aAAe7K,EAAKv4B,KAAOojC,GAAAp8B,WAAA,EAAA,CAAYuxB,EAAKv4B,MAAA49B,OAAA19B,EAAS8H,EAAMo7B,eAAe7K,EAAKv4B,KACtG,OAAAy5C,EAAAA,YAAA,KAAA,CAAAC,MAAA,GAAA9b,OACgBi1P,EAAazxR,MAAA,eAAAyE,IAAyB0yB,EAAKv4B,KAAOgD,EAAQu1B,EAAKs7I,QAAUt7I,EAAKgoC,QAAU,KAAA,CAAA9mB,EAAAK,YAAA,MAAA,CAAAJ,MAE3F,IAAA9b,OACFi1P,EAAazxR,wBAAAH,EAAA,CAAA,EAAA,GAAA28B,OACVzM,EAAY/vB,MAAsB,gBAAgB,YAAhBm3B,EAAKgoC,UAC/C,CAEiB,aAAhBhoC,EAAKgoC,QAAW9mB,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OACAi1P,EAAazxR,6BAAAw8B,OAA2Bi1P,EAAazxR,MAAAw8B,MAAAA,OAAU51B,EAAM4yB,MAAA,cAAA,CACjFy8P,EAAQ9+P,EAAKgoC,QAAA9mB,EAAAK,YAAA,IAAA,KAAA,CAEXy9O,EAAQh/P,EAAKgoC,QACbv4D,EAAMmpR,oBAAsBvzP,IAAAA,OAAIrF,EAAKs7I,QAAA,SAI3B,SAAhBt7I,EAAKgoC,QAAW9mB,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OACAi1P,EAAazxR,6BAAAw8B,OAA2Bi1P,EAAazxR,MAAAw8B,MAAAA,OAAU51B,EAAM4yB,MAAA,UACjFy8P,CAAAA,EAAQ9+P,EAAKgoC,QAAA9mB,cACV,IAAA,KAAA,EAAK86O,QAALA,EAAAh8P,EAAKu+K,gBAALy9E,IAAKA,OAALA,EAAAA,EAAe71P,QAAS64P,EAAQh/P,EAAKgoC,aAG3C,CAAC,UAAW,WAAW7gD,SAAS6Y,EAAKgoC,UAAahoC,EAAKgoC,QAAUhoC,EAAKY,MACtEsgB,EAAAK,YAAA+rJ,GAAA,CAAAnsJ,MAAA,GAAA9b,OACYi1P,EAAazxR,MACvB,gBAAA+iM,IAAK5rK,EAAKY,KAAOZ,EAAKi8P,IAAA91P,MAAA,GAAAJ,QAAA,GAAAwlK,IAAA,WAAA,MAIxBrqJ,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OAEai1P,EAAazxR,MAAA,gBAAA,EACxBm3B,EAAKY,KAAOZ,EAAKi8P,OAAS,CAAC,WAAY,QAAQ90Q,SAAS6Y,EAAKgoC,SAAM9mB,EAAAA,YAAA,OAAA,CAAAC,MAAA,GAAA9b,OACnDi1P,EAAazxR,MAAA,qBAAAq4C,CAAAA,EAAAK,YAAAunD,EAAA,CAAAhiD,QAEhB,SAAA+c,GAA8B,IAAAm5N,EAA3Br2R,IAAAA,EACV+3R,EAAa71R,MAAQ4B,EACrBg0R,EAAmB51R,MAAQkxR,EAAalxR,MACtB,QAAlBm0R,EAAAvtR,EAAMgqR,iBAAY,IAAAuD,GAAlBA,EAAA11R,KAAAmI,EAAkB,CAAEuwB,KAAAA,EAAMv1B,MAAAA,EAAO9D,EAAAA,GACnC,GACF,MAAAu6C,EAAAK,YAAA,OAAA,CAAAJ,MAAA,GAAA9b,OACgBi1P,EAAazxR,MAAiC,6BAAA,SAGhEo9B,EAASp9B,OAAAq4C,EAAAK,YAAA,OAAA,CAAAJ,MAAA9b,GAAAA,OAEGi1P,EAAazxR,2BAAyBw8B,OAAAi1P,EAAazxR,MAC7D,YAAAi+C,QAAS,SAACngD,GAAkB,OAAA8I,EAAMujF,SAAS,CAAErsF,EAAAA,EAAG8D,MAAAA,EAAOu1B,KAAAA,GAEvD,GAAAkhB,CAAAA,EAAAA,YAAA4mJ,EAAA,KAAA,YAKPr4L,EAAMipR,mBACLx3O,EAAAA,YAAA,IAAA,CAAAC,MAAU,CAAA,GAAA9b,OAAIi1P,EAAazxR,MAAA,eAAA,GAAAw8B,OAAuBi1P,EAAazxR,MAAoB,mBAChF,CAAA,CAAC,UAAW,WAAWse,SAAS6Y,EAAKgoC,SAAW82N,EAAQ9+P,EAAKgoC,QAC7Dv8B,MAkLoC40P,CAAcrgQ,EAAMv1B,SAKnE,OAAO,WAAM,IAAAkkB,EAAA6uQ,EAAA8C,EACLC,EAAAl7P,GAAAA,OAAmBi1P,EAAazxR,MAAA,oBAChC23R,EAAuBv6P,EAASp9B,QAAU82B,EAAU92B,MACpD43R,EAAuBhyQ,EAAMuqQ,cAAgB3sR,EAAWoD,EAAMupR,cAC9D0H,EAAuBzvQ,QAAQgV,EAASp9B,OAAS82B,EAAU92B,QAAUkxR,EAAalxR,MAAMnC,QACxFi6R,EAAuBlyQ,EAAMqpQ,oBAAsBzrR,EAAWoD,EAAMqoR,oBAExE,OAAA52O,EAAAA,YAAA,MAAA,CAAAC,MAAA,GAAA9b,OAAei1P,EAAazxR,iBAAew8B,OAAAi1P,EAAazxR,wBAAe4G,EAAM4yB,QAAA,CAAA6e,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OAC5Di1P,EAAazxR,MAAA,cAAA,CACT8lB,QADSA,EACzBF,qBAAgBE,SAAhBA,EAAArnB,KAAAmnB,GACAhf,EAAMwsB,aAAAilB,EAAAK,YAAA,QAAA,CAAAJ,MAAA9b,GAAAA,OACYi1P,EAAazxR,6BAAAw8B,OAA2Bi1P,EAAazxR,MAAA,kBAAA,CACnE4G,EAAMwsB,gBAKI,eAAhBxsB,EAAM4yB,OAAU6e,oBAAA6C,EAAAA,WAAA,CAAA5C,MACHo/O,GAAmB3B,EAAgB/1R,OAC5CkxR,CAAAA,EAAalxR,MAAMnC,OAASy5R,IAAoBn6G,MAIpC,cAAhBv2K,EAAM4yB,QACJ03P,EAAalxR,MAAMnC,OAClB84R,IAAet+O,EAAAA,kBAAA6C,aAAA,CAAA5C,MAEHo/O,GAAmB3B,EAAgB/1R,OAC5C,CAAAm9K,QAILv2K,EAAMkoR,aAAsC,OAAvBloR,EAAMupR,cAAsD,OAA7BvpR,EAAMqoR,qBAC1D52O,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OAAei1P,EAAazxR,MAAA,kBACzB4G,CAA6B,OAA7BA,EAAMqoR,qBACJ2I,EACCtyQ,EAAe,qBAAsB,CACnCT,OAAQ,CACNuY,SAAUu6P,EACVphQ,iBAAgC,QAAhCo+P,EAAkBlqQ,EAAOzqB,aAAO,IAAA20R,OAAA,EAAdA,EAAcp+P,iBAChCw8P,aAAcnsR,EAAMmsR,gBAEvB16O,EAAAA,YAAA6F,GAAAhD,aAAA,CAAA1hB,MAAA,UAAA4D,SAIWu6P,EACVrzQ,gBAAAmzQ,EAAShtQ,EAAOzqB,aAAA,IAAAy3R,OAAA,EAAPA,EAAclhQ,iBACvB+hB,MAAA,GAAA9b,OAAUi1P,EAAazxR,MAAA,YAAAi+C,QACd,SAACngD,GAAM,IAAA61R,EAAA,OAAqB,QAArBA,EAAA/sR,EAAMmsR,oBAAe,IAAAY,OAAA,EAArBA,EAAAl1R,KAAAmI,EAAqB,CAAE9I,EAAAA,GAAG,GACrC0E,EAASoE,EAAMqoR,oBAAsBroR,EAAMqoR,mBAAqB,IACtE,OAEmB,OAAvBroR,EAAMupR,eACJ2H,EACCxyQ,EAAe,eAAgB,CAC7BT,OAAQ,CACNuY,SAAUy6P,EACV/gQ,UAAWA,EAAU92B,MACrB81R,WAAYA,EAAW91R,MACvB8yR,YAAalsR,EAAMksR,eAEtBz6O,EAAAA,YAAA6F,GAAAhD,aAAA,CAAA9d,SAGWy6P,EAAAr+P,MAAA,UAAA0D,QAEDpG,EAAU92B,MACnBs4C,MAAA,GAAA9b,OAAUi1P,EAAazxR,MAAA,cAAAskB,QACdwxQ,EAAW91R,MACpBi+C,QAAS,WAAA,IAAA21O,EAAA,OAA0B,QAA1BA,EAAMhtR,EAAMksR,mBAAc,IAAAc,OAAA,EAApBA,EAAAn1R,KAAAmI,EAAoB,GAC9BpE,EAASoE,EAAMupR,cAAgBvpR,EAAMupR,aAAe,CAAA,YAtChE93O,EAAAA,YAAAorK,GAAAvoK,EAAAA,WAAA,CAAAmjK,OA6COu3E,EAAmB51R,MAAM6L,KAAI,SAACtN,UAAMA,EAAEw5B,KAAOx5B,EAAE60R,OAAGz1P,UAC/Ci4P,EAAmB51R,MAAMnC,OAAAs/D,QAC3B,WACPy4N,EAAmB51R,MAAQ,EAC7B,EAAA4B,MACOi0R,EAAa71R,MACpB0+M,cAAe,SAAC73L,GAAA,OAASgvQ,EAAa71R,MAAQ6mB,CACzC,GAAAjgB,EAAM4oR,kBACZ,QAIT,ukBCndF,IAAAuI,GAAe9gP,kBAAgB,CAC7Br4C,KAAM,mBACNgI,MAAOsxC,GAAAA,MACF84O,IAAA,CAAA,EAAA,CACHgC,WAAYlzR,OACZiqF,UAAW3hE,QAEX8mQ,YAAazuR,SACbq1D,QAASr1D,SACToyR,cAAepyR,SACfu3R,aAAc,CAACr4R,OAAQc,YAEzBy2C,eAAMtwC,EAAA48B,GAAkB,IAAT5d,EAAA4d,EAAA5d,MACbyyD,EAA8Cv9B,SAAOl0C,GAA7CmpB,EAAasoD,EAAbtoD,YAAamhQ,EAAA74M,EAAA64M,aAAcxuP,EAAO21C,EAAP31C,OAC7BmhJ,EAAOuwB,GAAQxtM,EAAMosR,WAAYtwP,GAC/BwvP,EAAeruG,EAAfquG,WAEFn4O,EAAgBzxB,KAoBf,OAAA,WAAA,IAAA2vQ,EAAAnyQ,EAlByBoyQ,EACxBrzQ,EAiBD,OAAAwzB,EAAAK,YAAAoR,WAAA,KAAA,CAEFljD,EAAMmjF,WAnBHllE,EAAS,CAAEqtQ,WAAYA,EAAWlyR,QAAS,EAAOkjC,MAAOguP,EAAalxR,OAC5Eq4C,EAAAA,YAAA,MAAA,CAAAC,MAAA9b,GAAAA,OAEczM,EAAY/vB,2BAAAw8B,OAAyBzM,EAAY/vB,MAC3D,2BAAAumH,OAAQs9D,EAAKO,WACbosG,YAAa3sG,EAAK0uG,gBAClB5rK,WAAYk9D,EAAK8uG,eACjBzoG,YAAarG,EAAK4uG,gBAClBx0O,QAASr3C,EAAMisR,eAAA,CAAAx6O,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OAEAzM,EAAY/vB,MAAA,qBAAA,CACxB+5C,EAAc,cAAe,UAAW,CAAEl1B,OAAAA,MAAmB,UAANje,EAAMoxR,oBAAA,IAAAE,OAAA,EAANA,EAAAz5R,KAAAmI,EAAqBie,SAW/EwzB,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OAAezM,EAAY/vB,MAAyB,oBAAAi+C,QAASr3C,EAAMisR,eAAA,EAC1D,QAANoF,EAAArxR,EAAMoxR,oBAAA,IAAAC,OAAA,EAANA,EAAAx5R,KAAAmI,EAAqB,CAAEs8B,MAAOguP,EAAalxR,WAAkB,QAAX8lB,EAAKF,EAAM,eAAA,IAAAE,OAAA,EAANA,EAAArnB,KAAAmnB,QAKlE,0oCCrCc,SAAAuyQ,GACdhhQ,EAAkBtS,GAEZ,IAAEmrQ,EAA4BnrQ,EAA5BmrQ,UAAWhB,EAAiBnqQ,EAAjBmqQ,aAEboJ,EAAc,IAAIrkR,SAAsB,SAACc,GAC7C,IAAIzT,EAAuB,KAC3B,GAAI4uR,EAAW,CACP,IAAAqI,EAA6Bn4Q,GAAS8vQ,GACxC,CAAE5kR,KAAM4kR,EAAW7jG,KAAM,MACzB6jG,EACE7L,E5sB0GI,SACdmU,EACAtI,EACA7jG,GAEA,IAAMosG,EAAQ,CAAC,IAAK,KAAM,KAAM,MAE5B32R,EAAQ22R,EAAM/1P,QAAQ2pJ,GAM1B,OALkB,IAAdvqL,IACFm/B,GAAS,SAAAvE,uCAAAA,OAAmD+7P,EAAMrpR,SAC1DtN,EAJM,GAOT02R,EAAWtI,EADNvuP,GAAS0qJ,EAEvB,C4sBxHoBqsG,CAAgBrhQ,EAAK/rB,KAAMitR,EAAajtR,KAAMitR,EAAalsG,MACrEg4F,IACO/iR,EAAAi3R,EAEb,CACAxjR,EAAQzT,EACV,IAGM+kQ,EAAuC,CAACiyB,OAAa,GACvD,GAAA50R,EAAWwrR,GAAe,CACtB,IAAArxR,EAAIqxR,EAAa73P,GACjBpN,EAAIpsB,aAAaoW,QAAUpW,EAAK,IAAIoW,SAAiB,SAACc,GAAA,OAAYA,EAAQlX,MAChFwoQ,EAAY,GAAKp8O,CACnB,CAGO,OAAA,IAAIhW,SAAQ,SAACc,GAClBd,QAAQqjI,IAAI+uH,GAAaliO,MAAK,SAACtmC,GAC7BkX,EAAQlX,EACV,GACF,GACF,CAMO,SAASqmM,GAAYhoL,GAC1B,IAAQ+nB,EAA2D/nB,EAA3D+nB,MAAOb,EAAoDlnB,EAApDknB,MAAOwyK,EAA6C15L,EAA7C05L,SAAU+iF,EAAmCz8Q,EAAnCy8Q,eAAgBnJ,EAAmBtzQ,EAAnBszQ,eAC5C1mQ,EAAM8sL,EAQV,OAPIlyM,EAAW8rR,KACP1mQ,EAAA0mQ,EAAe55E,EAAU,CAAEv+K,KAAM+L,EAAM,GAAIw1P,aAAcx1P,KAE3DA,EAAA9rB,SAAQ,SAAC+f,GACbA,EAAKgoC,OAAS,OACdhoC,EAAKu+K,SAAW9sL,CAClB,IACO,CAAE8sL,SAAU9sL,EAAKmb,MAAAA,EAAOb,MAAAA,EAAOu1P,eAAAA,EACxC,CAgDO,SAASE,GAAiB9zQ,GAC/B,IAAQmvC,EAAyCnvC,EAAzCmvC,OAAQi9N,EAAiCpsQ,EAAjCosQ,cAAerB,EAAkB/qQ,EAAlB+qQ,cACxB,OAAA,IAAI77Q,SAA6B,SAACc,GACnC,IAACm/C,IAAW47N,EAGd,OAFI7uP,GAAM,SAAU,uDACpBlsB,EAAQ,CAAE,GAGZ,IAAKo8Q,IAAkBA,EAAcpzR,OAGnC,OAFIkjC,GAAK,SAAU,qCACnBlsB,EAAQ,CAAE,GAOZ,GAJco8Q,EAAA75Q,SAAQ,SAAC+f,GACrBA,EAAKgoC,OAAS,UAChB,IAEIywN,EACYA,EAAA/qQ,EAAOypF,SAAW2iL,EAAgBA,EAAc,IAAIhtP,MAAK,SAACrb,GAClE,GAzCL,SAAqCA,GAC1C,OAAKA,EAIAA,EAAIu2C,OAIJ,CAAC,UAAW,QAAQ7gD,SAASsK,EAAIu2C,SAInB,YAAfv2C,EAAIu2C,QAA0Bv2C,EAAI8sL,WAAc9sL,EAAI8sL,SAAS39K,KAAQnP,EAAI8sL,SAASxyK,QAChFnC,GAAK,SAAU,wHAEd,IANDA,GAAM,SAAU,wHACb,IALHA,GAAM,SAAU,2FACb,IALHA,GAAM,SAAU,yCACb,EAcX,CAwBa63P,CAA4BhwQ,GAA7B,CAIA,IAAA8sL,EAAY9sL,EAAI8sL,UAAY,GAC5BlyM,EAAWqhB,EAAOyqQ,kBACT55E,EAAA7wL,EAAOyqQ,eAAe55E,EAAU,CAAEv+K,KAAM85P,EAAc,GAAIyH,aAAczH,KAElE,SAAfroQ,EAAIu2C,SACGu2I,EAAAp4K,MAAQ1U,EAAI0U,OAASo4K,EAASp4K,OAEzC,IAAIu7P,EAA4B,GACb,YAAfjwQ,EAAIu2C,QAAwBu2I,EAASxyK,MAEvC21P,EAAcnjF,EAASxyK,MAAMr3B,KAAI,SAACsrB,GAIzB,OAAA+gB,GAAAA,GAAAA,GACFu7O,CAAAA,EAJYxC,EAAc7vN,MAAK,SAAC03N,GAAA,OAClC3hQ,EAAKv4B,MAAQk6R,EAAOl6R,OAASu4B,EAAKv4B,MAAUu4B,EAAKi8P,KAAO0F,EAAO1F,MAAQj8P,EAAKi8P,QAI1Ej8P,GAAA,GAAA,CACHgoC,OAAQv2C,EAAIu2C,OACZu2I,SAAAA,GAEJ,KAGcu7E,EAAA75Q,SAAQ,SAAC+f,GAAS,IAAA4hQ,EAC9B5hQ,EAAKgoC,OAASv2C,EAAIu2C,OAClBhoC,EAAKu+K,SAAWA,EAChBv+K,EAAKY,IAAM29K,EAAS39K,IACpBZ,EAAKs7I,QAAyB,YAAf7pJ,EAAIu2C,OAAuB,IAAM,EAE3ChoC,EAAAu8P,YAAuB,QAAVqF,EAAArjF,SAAU,IAAAqjF,OAAA,EAAVA,EAAUrF,aAAc5xP,IAC5C,IACc+2P,EAAA5H,GAEhB,IAK8B+H,EALxB53R,EAAS,CACbs0M,SAAAA,EACAv+K,KAAM0hQ,EAAY,GAClB31P,MAAO21P,GAEL,GAAe,YAAfjwQ,EAAIu2C,eACN65N,EAAAn0Q,EAAOo0Q,yBAAPD,OAAAA,EAAAv6R,KAAAomB,EAA2BzjB,QAC7B,GAA0B,SAAfwnB,EAAIu2C,OAAmB,CAAA,IAAA+5N,UAChCA,EAAAr0Q,EAAOs0Q,uBAAPD,OAAAA,EAAAz6R,KAAAomB,EAAyBzjB,EAC3B,CACQyT,EAAA,CACNsqD,OAAQv2C,EAAIu2C,OACZ5zD,KAAMnK,GA9CR,MAFEyT,EAAQ,CAAE,EAkDd,QACK,CAAA,IAAAukR,EACCC,EChMZ,SAA4B71P,GAeb,IAAAyuP,EAWTqH,EACAC,EAZSC,EAAAh2P,EAdb8E,OAAAA,OAAS,IAAAkxP,EAAA,OAAAA,EACTxlO,EAAAxwB,EAAAwwB,OAAAylO,EAAAj2P,EACA8sP,gBAAAA,OAAkB,IAAAmJ,GAAAA,EAAAC,EAAAl2P,EAClB+rP,QAAAA,aAAU,CAAC,EAAAmK,EAAAC,EAAAn2P,EACXj4B,KAAAA,aAAO,CAAC,EAAAouR,EACRxiQ,EAAAqM,EAAArM,KAAAyiQ,EAAAp2P,EACAN,MAAAA,OAAQ,MAAA,GAAC02P,EAAAC,EAAAr2P,EACT5kC,KAAAA,OAAO,IAAAi7R,EAAA,OAAAA,EAAAC,EAAAt2P,EACP6sP,gBAAAA,OAAkB,IAAAyJ,GAAAA,EAAAC,EAAAv2P,EAClBmsP,qBAAAA,OAAuB,IAAAoK,EAAA,IAAAA,EACvB1K,EAAA7rP,EAAA6rP,cACA9sF,EAAA/+J,EAAA++J,QACAsuF,EAAArtP,EAAAqtP,WACAC,EAAAttP,EAAAstP,UAGMkJ,EAA2B92P,GAAS,GACtCuvI,EAAU,EAGRwnH,EAAM,IAAIxB,eAOhB,GANInI,IACF2J,EAAI3J,iBAAkB,GAKpBD,GAAwC,cAAX,QAAV4B,EAAA/uP,EAAM,UAAN+uP,IAAUA,OAAVA,EAAAA,EAAU9yN,QAEzBo6N,IAAAA,EAASx8Q,YAAW,WAExBu8Q,EAAS3uE,aAAY,WACfl4C,EAAU,GAAK,KACjBA,EAAUxrK,KAAKC,IAAIurK,EAAU,GAAIA,GAC7BvvI,EAAM,IAAMuvI,IAAYvvI,EAAM,GAAGuvI,UACnCvvI,EAAM,GAAGuvI,QAAUA,EACRo+G,EAAA,CACTp+G,QAAAA,EACAt7I,KAAMA,GAAQ6iQ,EAAW,GACzB92P,MAAO82P,EAAWnuR,KAAI,SAACsrB,mBAAeA,GAAM,CAAA,EAAA,CAAAs7I,QAAAA,GAAA,IAC5ChwK,KAAM,OACNg2R,eAAgBwB,MAIpBrvE,cAAc0uE,KAEf3J,GACHtyQ,aAAak8Q,KACZ5J,GAGL,IAAIuK,EAAsC,CAAA,EAC1C,GAAI3uR,EAAM,CACR,IAAM0pQ,EAAYzxQ,EAAW+H,GAAQA,EAAKyuR,GAAczuR,EACjDzL,OAAAi8B,OAAOm+P,EAAajlB,EAC7B,CACW+kB,EAAA5iR,SAAQ,SAAC+f,EAAMv1B,GACxB,IAAMu4R,EAAYH,EAAWn8R,OAAS,EAAI,GAAA2+B,OAAG59B,cAAQgD,OAAWhD,EAChEs7R,EAAYC,GAAahjQ,EAAKi8P,GAChC,IAC0B,IAAtB4G,EAAWn8R,OACDq8R,EAAAt7R,GAAQo7R,EAAW,GAAG5G,IAElC8G,EAAYt7R,GAAQo7R,EAAWnuR,KAAI,SAACsrB,GAAAA,OAASA,EAAKi8P,OAEpD8G,EAAYr8R,OAASm8R,EAAWn8R,OAE5BwxR,IACF6K,EAAc7K,EAAc6K,IAIxB,IAAAE,EAAW,IAAIC,SAyFdJ,OAxFPn6R,OAAO+D,KAAKq2R,GAAa9iR,SAAQ,SAAC3S,GACvB21R,EAAAn6J,OAAOx7H,EAAKy1R,EAAYz1R,GACnC,IAEAw1R,EAAIrtP,KAAKtE,EAAQ0rB,GAAQ,GAEzBl0D,OAAO+D,KAAK0rR,GAASn4Q,SAAQ,SAAC3S,GAC5Bw1R,EAAIK,iBAAiB71R,EAAK8qR,EAAQ9qR,GACpC,IAEAw1R,EAAIM,QAAU,SAACx2P,GACbw+J,EAAQ,CAAEx+J,MAAAA,EAAO5M,KAAAA,EAAM+L,MAAO82P,EAAYvB,eAAgBwB,IAC1DrvE,cAAc0uE,GACdj8Q,aAAak8Q,IAGfU,EAAIO,UAAY,SAACz2P,GACfw+J,EAAQ,CAAEx+J,MAAAA,EAAO5M,KAAAA,EAAM+L,MAAO82P,EAAYvB,eAAgBwB,KAGxDA,EAAI5jQ,SACN4jQ,EAAI5jQ,OAAOokQ,WAAa,SAAC12P,GAAyB,IAAA22P,EAC5CC,EAAc,EAKlB,GAJI52P,EAAM9Q,MAAQ,IAChB0nQ,EAAc1zR,KAAKomB,MAAO0W,EAAMmxK,OAASnxK,EAAM9Q,MAAS,OAEhDw/I,EAAAxrK,KAAKC,IAAIyzR,EAAaloH,MAChBkoH,IAA0B,QAAXD,EAAAV,EAAW,UAAXU,IAAWA,OAAXA,EAAAA,EAAejoH,WAAYA,EAAS,CAC3D,IAAAmoH,EAAgBZ,EAAWnuR,KAAI,SAAC4Y,mBAAeA,GAAM,CAAA,EAAA,CAAAguJ,QAAAA,GAAA,IAChDo+G,EAAA,CACT9sP,MAAAA,EACA0uI,QAAAA,EACAt7I,KAAMA,GAAQyjQ,EAAc,GAC5B13P,MAAO03P,EACPn4R,KAAM,OACNg2R,eAAgBwB,GAEpB,IAKJA,EAAIn2P,OAAS,SAACC,GACZ,IAAI2xK,EAAmC,CAAA,EAGvC,GAFAA,EAAS+iF,eAAiBwB,EACXA,EAAI96N,OAAS,KAAO86N,EAAI96N,QAAU,IAE/C,OAAOojI,EAAQ,CACbx+J,MAAAA,EACA5M,KAAAA,EACA+L,MAAO82P,EACPtkF,SAAAA,EACA+iF,eAAgBwB,IAGd,IAAA/gP,EAAO+gP,EAAIY,cAAgBZ,EAAIvkF,SACjC,IACSA,EAAAv7D,KAAKnvH,MAAMkuB,SACfp7C,GACI43M,EAAAx8J,EACPnY,GAAM,SAAU,iCACtB,CACA6pL,cAAc0uE,GACdj8Q,aAAak8Q,GACFS,EAAA5iR,SAAQ,SAAC+f,GAAS,IAAA4hQ,EAC3B5hQ,EAAKs7I,QAAU,IACft7I,EAAKgoC,OAAS,UAEdhoC,EAAKu8P,YAAuB,QAAVqF,EAAArjF,SAAU,IAAAqjF,OAAA,EAAVA,EAAUrF,aAAc5xP,IAC5C,IACwB,WAApBziC,EAAOq2M,KACTA,EAAS+iF,eAAiBwB,GAElBnJ,EAAA,CACR/sP,MAAAA,EACA5M,KAAMA,GAAQ6iQ,EAAW,GACzB92P,MAAApkC,EAAWk7R,GACXvB,eAAgBwB,EAChBvkF,SAAAA,KAIJukF,EAAIa,KAAKV,GAETH,EAAI5jQ,OAAO0kQ,cAAgBb,EAE3BD,EAAI5jQ,OAAO2kQ,eAAiBzL,EAErB0K,CACT,CD4BqBA,CAAI,CACjBjmO,OAAQnvC,EAAOmvC,OACf9wB,MAAOre,EAAOosQ,cACdZ,gBAAiBxrQ,EAAOwrQ,gBACxBV,qBAAsB9qQ,EAAO8qQ,qBAC7BptF,QAAS,SAACx4K,GAAoB,IAAAkxQ,EACtBt9R,EAAIqmM,YAAiBj6K,OAAGulQ,eAAgBzqQ,EAAOyqQ,0BACrD2L,EAAAp2Q,EAAOs0Q,uBAAP8B,OAAAA,EAAAx8R,KAAAomB,EAAyBlnB,GACzBkX,EAAQ,CAAEsqD,OAAQ,OAAQ5zD,KAAM5N,GAClC,EACAkzR,WAAYhsQ,EAAOq2Q,mBACnBpK,UAAW,SAAC/mQ,GACJ,IAAEulQ,EAAmBzqQ,EAAnByqQ,eACJ1mQ,EAAMmB,EAAE2rL,SAOZ,GANIlyM,EAAW8rR,KACP1mQ,EAAA0mQ,EAAevlQ,EAAE2rL,SAAU,CAC/Bv+K,KAAMpN,EAAEoN,KACRuhQ,aAAc3uQ,EAAEmZ,SAGhBta,EAAI0U,MAAO,CAAA,IAAA69P,EACPx9R,EAAIqmM,GAAY9rJ,GAAAA,MAAKnuB,GAAG,GAAA,CAAA2rL,SAAU9sL,aACxCuyQ,EAAAt2Q,EAAOs0Q,uBAAPgC,OAAAA,EAAA18R,KAAAomB,EAAyBlnB,GACzBkX,EAAQ,CAAEsqD,OAAQ,OAAQ5zD,KAAM5N,GAClC,KAAO,CAAA,IAAAy9R,EACLrxQ,EAAEoN,KAAKu+K,SAAW9sL,EAChBmB,EAAAmZ,MAAM,GAAGwyK,SAAW9sL,EACtB,IAAMjrB,EAjJX,SAAuBknB,GAC5B,IAAQkf,EAA2Clf,EAA3Ckf,MAAOb,EAAoCre,EAApCqe,MAAOwyK,EAA6B7wL,EAA7B6wL,SAAU+iF,EAAmB5zQ,EAAnB4zQ,gBAC5Bv1P,aAAA,EAAAA,EAAOrlC,SAAU,GACfkjC,GAAM,SAAU,kCAEhBmC,EAAA9rB,SAAQ,SAAC+f,GAAS,IAAAg8P,EACtBh8P,EAAKs7I,QAAU,IACft7I,EAAKgoC,OAAS,UACQg0N,QAAtBA,EAAOh8P,EAAKu+K,gBAAZ,IAAsBy9E,UAAfA,EAAe71P,KACxB,IACA,IAAM1U,EAAM8sL,EAEZ,OADAxyK,EAAM,GAAGnL,IAAMnP,EAAImP,KAAOmL,EAAM,GAAGnL,IAC5B,CAAE29K,SAAU9sL,EAAKmb,MAAAA,EAAOb,MAAAA,EAAOu1P,eAAAA,EACxC,CAoIsB4C,CAAcnjP,GAAAA,MAAKnuB,GAAG,GAAA,CAAA2rL,SAAU9sL,aAC1CwyQ,EAAAv2Q,EAAOo0Q,yBAAPmC,OAAAA,EAAA38R,KAAAomB,EAA2BlnB,GAC3BkX,EAAQ,CAAEsqD,OAAQ,UAAW5zD,KAAM5N,GACrC,CACF,EACA0xR,cAAexqQ,EAAOwqQ,cACtB9jR,KAAMsZ,EAAOtZ,KACb3M,KAAMimB,EAAOjmB,KACb2wR,QAAS1qQ,EAAO0qQ,QAChBe,gBAAiBzrQ,EAAOyrQ,gBACxBhoP,OAAQzjB,EAAOyjB,SAEK,QAAtB8wP,EAAAv0Q,EAAOy2Q,oBAAe,IAAAlC,GAAtBA,EAAA36R,KAAAomB,EAAsB,CACpBqe,MAAOre,EAAOosQ,cACdoI,OAAAA,GAEJ,CACF,GACF,CAoBO,SAAShjQ,GAAOxR,GAErB,IAAQqrQ,EAA4ErrQ,EAA5EqrQ,2BAA4Be,EAAgDpsQ,EAAhDosQ,cAAesK,EAAiC12Q,EAAjC02Q,cAAe7L,EAAkB7qQ,EAAlB6qQ,cAE5D8L,EAAkBvK,EAAclrQ,QAAO,SAACxnB,GAC5C,OAACA,EAAEm3M,UAAan3M,EAAEm3M,WAAan3M,EAAEm3M,SAASp4K,SAErC,OAAA,IAAIvpB,SAAQ,SAACc,GAEd,IAAAq7Q,GAA+BrrQ,EAAOypF,SAAtC,CAaJ,IAAM71E,EAAO+iQ,EAAgB3vR,KAAI,SAACsrB,UAChCwhQ,GAAiBzgP,GAAAA,MAAKrzB,GAAA,GAAA,CAAQosQ,cAAe,CAAC95P,SAEhDpjB,QAAQqjI,IAAI3+G,GAAMwL,MAAK,SAAC0/C,GACtB,IAAMzgD,EAAsB,GACtBu4P,EAA4B,GAC9B93M,EAAAvsE,SAAQ,SAACskR,GACQ,YAAfA,EAAIv8N,OACNj8B,EAAMl5B,KAAK0xR,EAAInwR,KAAK23B,MAAM,IACF,SAAfw4P,EAAIv8N,QACbs8N,EAAYzxR,KAAK0xR,EAAInwR,KAAK23B,MAAM,GAEpC,IACA,IAAMy4P,EAAS92Q,EAAOiqQ,WAClByM,EAAc/+P,OAAO0G,GACrBq4P,EACEK,EAAWlM,IAAkB7qQ,EAAOypF,SAAWprE,EAAQy4P,EACrD9mR,EAAA,CACNsqD,OAAQj8B,EAAMrlC,OAAS,UAAY,OACnC0N,KAAM,CACJ23B,MAAO04P,GAGTH,YAAAA,EACAhjQ,KAAMkrD,GAEV,GA5BA,MAVEg1M,GAAiB9zQ,GAAQof,MAAK,SAACtmC,GACZ,YAAbA,EAAEwhE,SACJxhE,EAAE4N,KAAK23B,MAAQwsP,IAAkB7qQ,EAAOypF,SACpC3wG,EAAE4N,KAAK23B,MA/BrB,SAA6B4vP,EAA2B+F,GAGtD,IAFA,IACM+C,EADa9I,EAAY/sQ,QAAO,SAACxnB,GAAA,OAAMA,EAAEw5B,OAC9B0N,EAAAA,WAEf,IAAMtO,EAAO0hQ,EAAYp5R,GACnBmC,EAAQkxR,EAAY7nJ,WAAU,SAACxmH,GAAA,OAClCA,EAAK2uQ,KAAO3uQ,EAAK2uQ,MAAQj8P,EAAKi8P,KAAS3uQ,EAAK7lB,MAAQ6lB,EAAK7lB,OAASu4B,EAAKv4B,QAEpEi9R,EAAUj6R,GAAS,EAAIs2C,GAAAA,GAAA,GAAK46O,EAAYlxR,IAAWu1B,GAASA,EAClEykQ,EAAS5xR,KAAK6xR,IANPp8R,EAAI,EAAGy4B,EAAM2gQ,EAAYh7R,OAAQ4B,EAAIy4B,EAAKz4B,IAAKgmC,IAQjD,OAAAm2P,CACT,CAoBcE,CAAoBP,EAAe59R,EAAE4N,KAAK23B,QAEhD,IAAMu4P,EAA2B,SAAb99R,EAAEwhE,OAAoBxhE,EAAE4N,KAAK23B,MAAQ,GACzDruB,EAAAqjC,GAAAA,MAAav6C,GAAG,CAAA,EAAA,CAAA89R,YAAAA,IAClB,GA+BJ,GACF,CAEO,SAASM,GACd74P,EACA3V,GAGA,IAFA4xC,EAA+Bx5D,UAAA9H,OAAA,QAAAkD,IAAA4E,UAAA,GAAAA,UAAA,QAAA,EAC/B8sK,yDAAU,EAEH,OAAAvvI,EAAMr3B,KAAI,SAAC63B,GAChB,IAAIvM,EAAmBuM,EAchB,OAbHlgC,EAAW+pB,KACb4J,EAAO5J,EAAOmW,IAEewU,GAAA,CAC7Bk7O,IAAK1vP,EACLs4P,aAAct4P,EAAQs4P,aACtBp9R,KAAM8kC,EAAQ9kC,KACdwM,KAAMs4B,EAAQt4B,KACd3I,KAAMihC,EAAQjhC,KACdgwK,QAAAA,EACAtzG,OAAAA,GACGhoC,EAGP,GACF,okBE9TA,SAAwB8kQ,GAAUr1R,GAChC,IAAMw2F,EAAW7hE,EAAAA,MAEX88C,EAAqFv9B,EAAAA,OAAOl0C,GAA1Fw2B,EAAUi7C,EAAVj7C,SAAU0xP,EAAAz2M,EAAAy2M,WAAYY,EAAer3M,EAAfq3M,cAAephL,EAAAj2B,EAAAi2B,SAAUprE,IAAAA,MAAO+N,EAAYonC,EAAZpnC,WAAYm+O,EAAA/2M,EAAA+2M,aAC1ExzM,EAAyCpgD,GAAU,UAA3CM,EAAc8/C,EAAd9/C,aAAcv9B,EAAAq9E,EAAAr9E,EAAGwxB,EAAY6rD,EAAZ7rD,YACqFuoD,EAAA70D,GAAxEutB,GAAU9N,EAAO+N,EAAYm+O,EAAapvR,MAAO4G,EAAMm3B,SAAU,SAAO,GAAvGm+P,EAAa5jN,EAAA,GAAA6jN,EAAc7jN,EAAA,GAC5B+gN,EAAS99P,MAAuD,IAChE01P,EAAgB11P,MAAkB,IAClC41P,EAAuB51P,MAAI,IAE3B9Q,EAAShM,EAAAA,UAAS,WAAA,OAAMkC,GAAM,CAAA,EAAImb,EAAa97B,MAAO4G,EAAM6jB,WAE5D04E,EAAc,GAAA3mE,OAAGzM,EAAY/vB,MAAA,kBAAAw8B,OAAsBzM,EAAY/vB,MAAA,WAC/D6jK,EAAe,CAAC1gE,GAAa3mE,OAAOA,GAAAA,OAAGzM,EAAY/vB,8BACnDqxR,EAAA70P,GAAAA,OAAsBzM,EAAY/vB,MAAA,wBAGlCw2B,EAAoB/X,EAAAA,UAAS,WAAM,IAAA29Q,EFsZPryQ,EErZ1BsyQ,GFqZ0BtyQ,EErZE,CAChC2lQ,cAAeA,EAAc1vR,MAC7BsuG,SAAUA,EAAStuG,MACnBm/D,OAAoB,QAApBi9N,EAAQF,EAAYl8R,aAAAo8R,IAAAA,GAAY,QAAZA,EAAZA,EAAoB,UAApBA,IAAwBA,OAAxBA,EAAAA,EAAwBj9N,OAChC2vN,WAAYA,EAAW9uR,QFuZrB0vR,eAAiB3lQ,EAAEo1C,QACR,SAAbp1C,EAAEo1C,OADkC,WAEvB,aAAbp1C,EAAEo1C,OAA8B,YACnB,YAAbp1C,EAAEo1C,SAA0Bp1C,EAAE+kQ,YAA2B,YAAb/kQ,EAAEo1C,OACzCp1C,EAAEukF,SAAW,iBAAmB,WAElC,YE3ZE,OAAA7jF,EAAOzqB,MAAMw2B,kBAAkB6lQ,EACxC,IAEMvlQ,EAAYyE,OAAI,GAGhB21P,EAAezyQ,EAAAA,UAAS,WAC5B,OFkaG,SAAyBoG,GAC9B,IAAQypF,EAAqDzpF,EAArDypF,SAAU4tL,EAA2Cr3Q,EAA3Cq3Q,YAAajL,EAA8BpsQ,EAA9BosQ,cAAenC,EAAejqQ,EAAfiqQ,WACxCwN,EAAqBxN,EACvBmC,EACAA,EAAclrQ,QAAO,SAACoR,GAAA,MAAyB,YAAhBA,EAAKgoC,UACpC,OAAAmvC,IAAazpF,EAAO6qQ,cACjBZ,GACGwN,EAAmBz+R,OAASq+R,EAAY1/P,OAAO8/P,GAAsBJ,IAAgB,GADrEA,GAGlBI,EAAmBz+R,OAASy+R,EAAqBJ,IAAgB,EAC3E,CE5aWK,CAAgB,CACrBjuL,SAAU1nG,EAAM0nG,SAChB2iL,cAAeA,EAAcjxR,MAC7Bk8R,YAAaA,EAAYl8R,MACzB8uR,WAAYA,EAAW9uR,MACvB0vR,cAAeA,EAAc1vR,OAEjC,IASMw8R,EAAsB,WACtB51R,EAAMkoR,aACRmC,EAAcjxR,MAAQlB,EAAImyR,EAAcjxR,SAItCm5R,EAAkB,SAACpvQ,GAA8B,IAAA0yQ,EACrD,GAAK1yQ,GAAMA,EAAEmZ,OAAUnZ,EAAEmZ,MAAM,GAA/B,CACA,IAAQwyK,EAA2B3rL,EAA3B2rL,SAAU3xK,EAAiBha,EAAjBga,MAAOb,EAAUnZ,EAAVmZ,MACLs5P,IACE,QAAtBC,EAAA71R,EAAM8pR,qBAAgB,IAAA+L,GAAtBA,EAAAh+R,KAAAmI,EAAsB,CACpB9I,EAAGimC,EACH5M,KAAM+L,eAAAA,EAAQ,GACdw1P,aAAcx1P,EACdu4P,YAAav4P,EACbwyK,SAAAA,IAGG9uM,EAAM0nG,WAAY1nG,EAAM8oR,eAC3ByM,EAAe,GAAI,CACjBrmO,QAAS,gBACTh4D,EAAGisB,EAAEga,MACL5M,KAAMpN,EAAEmZ,MAAM,IAfiB,GAqB/Bg4P,EAAqB,SAACnxQ,GAA4B,IAAA2yQ,EAClCF,IACD,QAAnBE,EAAA91R,EAAMiqR,kBAAa,IAAA6L,GAAnBA,EAAAj+R,KAAAmI,EAAmB,CACjB9I,EAAGisB,EAAEga,MACL5M,KAAMpN,EAAEoN,KACRuhQ,aAAc3uQ,EAAEmZ,MAChBuvI,QAAS1oJ,EAAE0oJ,QACXhwK,KAAMsnB,EAAEtnB,KACRg2R,eAAgB1uQ,EAAE0uQ,kBAKhBQ,EAAoB,SAAClvQ,GAEgC,IAAA4yQ,EAArD/1R,EAAM0nG,WAAa1nG,EAAMspR,6BACPsM,IACK,QAAzBG,EAAA/1R,EAAM+pR,wBAAmB,IAAAgM,GAAzBA,EAAAl+R,KAAAmI,EAAyB,CACvB9I,EAAGisB,EAAEga,MACL5M,KAAMpN,EAAEmZ,MAAM,GACdwyK,SAAU3rL,EAAE2rL,aAKlB,SAASknF,EAAkBvE,GACzB,IAAMlU,EAAQkU,EACP,OAAAlU,EAAM/qQ,QACT7a,EAAE4lR,EAAM/qQ,QAAS,CAAE42Q,UAAW7L,EAAM/4Q,OAAMoxB,GAAAA,OACvCj+B,EAAEksB,EAAOzqB,MAAMs2B,iBAAkB,CAAE05P,UAAW7L,EAAM/4Q,OAAMoxB,KAAAA,OAAK2nP,EAAMh4F,KAC9E,CAEM,IAYA0wG,EAAe,SAAC35P,GAAkB,IAAA45P,EACtC,IAAI1/P,EAASp9B,MAAb,CACM,IAAA6kB,EAAS,CAAEk4Q,qBAAsBhB,GAAmBj9R,EAAIokC,GAAQt8B,EAAM2mB,SACrD,QAAvBuvQ,EAAAl2R,EAAMi0O,sBAANiiD,IAAuBA,GAAvBA,EAAAr+R,KAAAmI,EAAA9H,EAA2BokC,GAAQre,GFsMhC,SACLA,GAEA,IAAQqe,EAAsDre,EAAtDqe,MAAOg5P,EAA+Cr3Q,EAA/Cq3Q,YAAah1R,EAAkC2d,EAAlC3d,IAAK2nR,EAA6BhqQ,EAA7BgqQ,yBAC1B,OAAA,IAAI96Q,SAAQ,SAACc,GAElB,IAAImoR,EAAW95P,EAAMnd,QAAO,SAACoR,GACrB,IAAA8lQ,EAAef,EAAY96N,MAAK,SAAC7iE,UAAMA,EAAEK,OAASu4B,EAAKv4B,QAC7D,OAAOiwR,IAA6BoO,CACtC,IAEIC,GAAkB,EAIlB,GAHAF,EAASn/R,OAASqlC,EAAMrlC,SACRq/R,GAAA,GAEfF,EAASn/R,OAAV,CAMJ,IAAIs/R,GAAkB,EACtB,GAAIj2R,GAAO81R,EAASn/R,SAAWgnB,EAAO6qQ,cAAe,CACnD,IAAM0N,EAAuBJ,EAASn/R,OACtCm/R,EAAWA,EAASt+R,MAAM,EAAGwI,EAAMg1R,EAAYr+R,QAC3Cu/R,EAAuBlB,EAAYr+R,OAASqJ,IAC5Bi2R,GAAA,EAEtB,CAGM,IAGFE,EAHEC,EAAiBvB,GAAmBiB,EAAUn4Q,EAAO0I,OAAQ1I,EAAOiqQ,WAAa,WAAa,WAIpG,GAAIjqQ,EAAOkqQ,qBAAsB,CAAA,IAAAwO,EACzB5/R,EAAW,QAAX4/R,EAAI14Q,EAAOkqQ,4BAAA,IAAAwO,OAAA,EAAPA,EAAA9+R,KAAAomB,EAA8By4Q,GACfD,EAAA1/R,aAAaoW,QAAUpW,EAAI,IAAIoW,SAAQ,SAACc,GAAAA,OAAYA,EAAQlX,KACvF,CAGM,IAAAwoQ,EAAcm3B,EAAezxR,KAAI,SAACsrB,UAAqB,IAAIpjB,SAAQ,SAACc,GACxEsjR,GACEhhQ,EACA,CAAE63P,aAAcnqQ,EAAOmqQ,aAAcgB,UAAWnrQ,EAAOmrQ,YACvD/rP,MAAK,SAAAT,GAAgC,IAAAC,EAAAhgB,GAAA+f,EAAA,GAA9Bg6P,EAAA/5P,EAAA,GAAYg6P,EAAYh6P,EAAA,GAC3B+5P,EACF3oR,EAAQ,CAAEsiB,KAAAA,EAAM2qI,eAAgB,CAAEr/J,KAAM,uBAAwB84F,MAAOiiM,MAC7C,IAAjBC,GACT5oR,EAAQ,CAAEsiB,KAAAA,EAAM2qI,eAAgB,CAAEr/J,KAAM,0BAE1CoS,EAAQ,CAAEsiB,KAAAA,GACZ,GACF,OACQpjB,QAAAqjI,IAAI,CAACimJ,GAAwB7gQ,OAAO2pO,IAAcliO,MAAK,SAACkvE,GACxD,IAAAuqL,EAAA19B,GAA8B7sJ,GAA7BwqL,EAAmBD,EAAA,GAAAE,EAAMF,EAAAh/R,MAAA,GAGtBmW,GADa,IAAnB8oR,EACM,CACNR,gBAAAA,EACAD,gBAAAA,EACAp7H,eAAgB,CAAEr/J,KAAM,2BACxBygC,MAAOo6P,GAGD,CACNH,gBAAAA,EACAD,gBAAAA,EACAW,iBAAkBD,EAClB16P,MAAOo6P,GAGb,GArDA,KAJI,CACI,IAAA3B,EAASI,GAAmB74P,EAAOre,EAAO0I,OAAQ1I,EAAOiqQ,WAAa,WAAa,WACzFj6Q,EAAQ,CAAEqoR,gBAAAA,EAAiB/lQ,KAAMwkQ,eAAAA,EAAS,GAAIz4P,MAAOy4P,EAAQ75H,eAAgB,CAAEr/J,KAAM,0BAEvF,CAsDF,GACF,CE/QiBq7R,CAAA,CACX5B,YAAaA,EAAYl8R,MAEzBkjC,MAAApkC,EAAWokC,GACX2rP,yBAA0BjoR,EAAMioR,yBAChC3nR,IAAKN,EAAM0nG,SAAW1nG,EAAMM,IAAM,EAClC8oR,UAAWppR,EAAMopR,UACjBN,cAAeA,EAAc1vR,MAC7B8uR,WAAYA,EAAW9uR,MACvButB,OAAQ3mB,EAAM2mB,OACdyhQ,aAAcpoR,EAAMooR,aACpBD,qBAAsBnoR,EAAMmoR,uBAC3B9qP,MAAK,SAAC38B,GAAS,IAAAy2R,EAEZ,GAA8B,6BAAT,QAArBA,EAAAz2R,EAAKw6J,sBAAgB,IAAAi8H,OAAA,EAArBA,EAAqBt7R,MAArB,CAMJ,GAAI6E,EAAK61R,gBAAiB,CAAA,IAAAv6B,EAClB/9O,EAAyB,CAAEpiB,KAAM,0BAA2BygC,MAAO57B,EAAK47B,OAE1E,WADJ0/N,EAAAh8P,EAAMk0F,kBAAN8nK,OAAAA,EAAAnkQ,KAAAmI,EAAmBie,IACdvd,EAAK47B,MAAMrlC,OAAQ,MAC1B,CAEA,GAAIyJ,EAAK41R,gBAAiB,CAAA,IAAAc,EAClBn5Q,EAAyB,CAAEpiB,KAAM,wBAAyBygC,MAAO57B,EAAK47B,eAC5E86P,EAAAp3R,EAAMk0F,kBAANkjM,OAAAA,EAAAv/R,KAAAmI,EAAmBie,EACrB,CAEI,GAAAvd,EAAKu2R,4BAA4B7/R,MAAO,CAAA,IAAAigS,EASlBC,EARxBC,EFiPQ,SAAkBN,EAAsCO,GACtE,IAAMC,EAAsC,GACtCC,EAAuC,GACvCC,EAAwB,GAkBvB,OAjBUV,EAAAzmR,SAAQ,SAAConR,GAAY,IAAAC,EAAAC,EAChC,GAAiC,0BAAT,QAAxBD,EAAAD,EAAQ18H,sBAAgB,IAAA28H,OAAA,EAAxBA,EAAwBh8R,MAIxB,MAAiC,0BAAT,QAAxBi8R,EAAAF,EAAQ18H,sBAAgB,IAAA48H,OAAA,EAAxBA,EAAwBj8R,OACrB+7R,EAAQrnQ,KAAKu+K,WACR8oF,EAAArnQ,KAAKu+K,SAAW,IAElB8oF,EAAArnQ,KAAKu+K,SAASp4K,MAAQkhQ,EAAQrnQ,KAAKu+K,SAASp4K,OACjD8gQ,EAASI,EAAQ18H,eAAevmE,YACnC8iM,EAAgBr0R,KAAKw0R,SAGfD,EAAAv0R,KAAKw0R,EAAQrnQ,MAZImnQ,EAAAt0R,KAAKw0R,EAAQrnQ,KAaxC,IAEO,CAAEknQ,gBAAAA,EAAiBC,uBAAAA,EAAwBC,QAAAA,EACpD,CEvQqEI,CAC3Dr3R,EAAKu2R,iBACLjB,GAFMyB,EAAAF,EAAAE,gBAAiBC,EAAwBH,EAAxBG,uBAAwBC,EAAAJ,EAAAI,QAI3CK,EAAkB9P,EAAW9uR,MAAQu+R,EAAUtN,EAAcjxR,MAAMw8B,OAAO+hQ,GAIhF,GAHAtN,EAAcjxR,MAAQ4+R,UACtBX,EAAAr3R,EAAMmqR,yCAANkN,EAAAx/R,KAAAmI,EAAmC,CAAEs8B,MAAO07P,EAAiB9oO,QAAS,aAElEuoO,EAAgB,GAClBlN,EAAqBnxR,MAAQq+R,EAAgB,GAAGlnQ,KAAKu+K,SAASp4K,MAC3C,QAAnB4gQ,EAAAt3R,EAAMk0F,kBAAa,IAAAojM,GAAnBA,EAAAz/R,KAAAmI,EAAmB,CAAEnE,KAAM,uBAAwBygC,MAAOm7P,EAAgBxyR,KAAI,SAACtN,GAAMA,OAAAA,EAAE44B,IAAI,WAI3F,GAFAg6P,EAAqBnxR,MAAQ,GAEzBs+R,EAAuBzgS,OAAQ,CAAA,IAAAghS,EAC3Bh6Q,EAAyB,CAAEpiB,KAAM,uBAAwBygC,MAAOo7P,WACtEO,EAAAj4R,EAAMk0F,kBAAN+jM,OAAAA,EAAApgS,KAAAmI,EAAmBie,EACrB,CAGEiqQ,EAAW9uR,MACb8yR,EAAY8L,GArEQ,SAACL,GACrB,IAAAvB,EAAWp2R,EAAM0nG,WAAaohL,EAAc1vR,MAAQk8R,EAAYl8R,MAAMw8B,OAAO+hQ,GAAWA,EACzFvB,EAASn/R,SACds+R,EAAea,EAAU,CACvBlnO,QAAS,MACTl0D,MAAOs6R,EAAYl8R,MAAMnC,OACzBs5B,KAAMonQ,EAAQ,GACdr7P,MAAOq7P,IAETtN,EAAcjxR,MAAQ,IA8DhB8+R,CAAoBF,EAExB,CAvCA,KAJI,CAAyD,IAAA3yL,EACrDpnF,EAAyB,CAAEpiB,KAAM,0BAA2BygC,MAAO57B,EAAK47B,eAC9E+oE,EAAArlG,EAAMk0F,kBAANmR,OAAAA,EAAAxtG,KAAAmI,EAAmBie,EAErB,CAwCF,IAGAu4E,EAASp9F,MAAMA,MAAQ,IAhEH,GAoFtB,SAAS8yR,EAAYyL,GACb,IAAAQ,EAAmB7C,EAAYl8R,MAAM+lB,QAAO,SAACxnB,GAAMA,MAAa,YAAbA,EAAE4gE,UACrDj8B,EAAQ4rP,EAAW9uR,MAAQu+R,GAAWtN,EAAcjxR,MAAQ++R,EAC7D77P,GAAUA,EAAMrlC,SACrBi5B,EAAU92B,OAAQ,EAClBq5R,EAAOr5R,MAAQ,GACRq2B,GAAA,CACL29B,OAAQptD,EAAMotD,OACdu7N,QAAS3oR,EAAM2oR,QACfjnP,OAAQ1hC,EAAM0hC,OACd1pC,KAAMgI,EAAMhI,KACZ0xR,gBAAiB1pR,EAAM0pR,gBACvBiL,cAAeW,EAAYl8R,MAC3BixR,cAAe/tP,EACforE,SAAU1nG,EAAM0nG,SAChBohL,cAAeA,EAAc1vR,MAC7B8uR,WAAYloR,EAAMkoR,WAClBoB,2BAA4BtpR,EAAMspR,2BAClCG,gBAAiBzpR,EAAMypR,gBACvB9kR,KAAM3E,EAAM2E,KACZokR,qBAAsB/oR,EAAM+oR,qBAC5BC,cAAehpR,EAAMgpR,cACrBP,cAAezoR,EAAMyoR,cACrBC,eAAgB1oR,EAAM0oR,eACtB4L,mBAAAA,EACAjC,kBAAAA,EACAE,gBAAAA,EACAmC,aAAc,SAACrB,GAAQ,IAAA+E,EACPA,QAAVA,EAAA/E,EAAI/2P,MAAM,cAAA87P,GAAVA,EAAc5L,KAAOiG,EAAOr5R,MAAMohE,MAAK,SAAC38C,GAAS,IAAAw6Q,EAAA,OAAeA,QAAfA,EAAAx6Q,EAAKye,MAAM,cAAI+7P,SAAfA,EAAe7L,OAAQ6G,EAAI/2P,MAAM,GAAGkwP,GAAG,MAC5FiG,EAAOr5R,MAAQq5R,EAAOr5R,MAAMw8B,OAAOy9P,GACrC,IACCh2P,MAED,SAAAT,GAAyC,IAEb07P,EA4BJC,EA9BrBhgO,EAAA37B,EAAA27B,OAAQ5zD,EAAMi4B,EAANj4B,KAAMktB,EAAA+K,EAAA/K,KAAMgjQ,IAAAA,YAErB,GADA3kQ,EAAU92B,OAAQ,EACH,YAAXm/D,EACFg9N,EAAAr9R,EAAmByM,EAAK23B,OAAQ,CAC9B4yB,QAAS,MACT3+B,KAAM5rB,EAAK23B,MAAM,KAEnBm2P,EAAOr5R,MAAQ,GACG,QAAlBk/R,EAAAt4R,EAAMkqR,iBAAY,IAAAoO,GAAlBA,EAAAzgS,KAAAmI,EAAkB,CAChBu8B,SAAU53B,EAAK23B,MACfw1P,aAAcx1P,EACd/L,KAAM+L,EAAM,GAEZiwE,QAAS16E,aAAM,EAANA,EAAM5sB,KAAI,SAACtN,GAAAA,OAAMA,EAAEgN,QAE5BmqM,SAAUnqM,EAAKmqM,UAAYj9K,EAAK5sB,KAAI,SAACtN,GAAAA,OAAMA,EAAEgN,KAAKmqM,YAClD+iF,eAAgBltR,EAAKktR,sBAEzB,GAAWgD,SAAAA,EAAc,GAAI,CAAA,IAAA2D,EACZ,QAAfA,EAAAx4R,EAAM6pR,cAAS,IAAA2O,GAAfA,EAAA3gS,KAAAmI,EAAe,CACb9I,EAAGyN,EAAKw4B,MACR5M,KAAMskQ,EAAY,GAClBA,YAAAA,EACA/C,aAAcx1P,EACdwyK,SAAUnqM,EAAKmqM,SACf+iF,eAAgBltR,EAAKktR,gBAEzB,CAGI3J,EAAW9uR,QACbixR,EAAcjxR,MAAQy7R,UACtB0D,EAAAv4R,EAAMmqR,yCAANoO,EAAA1gS,KAAAmI,EAAmC,CAAEs8B,MAAOu4P,EAAa3lO,QAAS,aAEtE,IAEJ,CAEA,SAASupO,EAAct1Q,GAAwB,IAAAu1Q,EAAAC,EAAAnL,EAC7CjD,EAAqBnxR,MAAQ,GACP,QAAtBs/R,GAAAC,EAAAx1Q,EAAEjsB,GAAEyhF,uBAAJ+/M,IAAsBA,GAAtBA,EAAA7gS,KAAA8gS,GACA,IAO4CC,EAPtCC,EAAmC,CACvC3hS,EAAGisB,EAAEjsB,EACLg4D,QAAS,SACTl0D,MAAOmoB,EAAEnoB,MACTu1B,KAAMpN,EAAEoN,MAGV,GAAIvwB,EAAM8oR,gBAAkB9oR,EAAM0nG,SAChC2iL,EAAcjxR,MAAQ,WACtBw/R,EAAA54R,EAAMmqR,yCAANyO,EAAA/gS,KAAAmI,EAAmC,CAAEs8B,MAAO,GAAI4yB,QAAS,WAC1CqmO,EAAA,GAAIsD,QACrB,GAAY74R,EAAMkoR,WAGX,CAME,IAAA4Q,EAHP,GAAI31Q,EAAEnoB,MAAQs6R,EAAYl8R,MAAMnC,OAC9Bq+R,EAAYl8R,MAAMwL,OAAOue,EAAEnoB,MAAO,GAClCu6R,EAAAr9R,EAAmBo9R,EAAYl8R,OAAQy/R,QAEvCxO,EAAcjxR,MAAMwL,OAAOue,EAAEnoB,MAAQs6R,EAAYl8R,MAAMnC,OAAQ,GAC/DozR,EAAcjxR,MAAQlB,EAAImyR,EAAcjxR,OAClC,QAAA0/R,EAAA94R,EAAAmqR,kCAAA,IAAA2O,GAAAA,EAAAjhS,KAAAmI,EAA6B,CAAEs8B,MAAApkC,EAAWmyR,EAAcjxR,OAAQ81D,QAAS,UAEnF,MAbEomO,EAAYl8R,MAAMwL,OAAOue,EAAEnoB,MAAO,GAClCu6R,EAAAr9R,EAAmBo9R,EAAYl8R,OAAQy/R,WAazCrL,EAAAxtR,EAAMujF,gBAANiqM,OAAAA,EAAA31R,KAAAmI,EAAiBmjB,EACnB,CAoCO,MAAA,CACLxrB,EAAAA,EACAksB,OAAAA,EACAsF,YAAAA,EACAyG,kBAAAA,EACAy6P,cAAAA,EACAiL,YAAAA,EACAhL,aAAAA,EACAC,qBAAAA,EACAr6P,UAAAA,EACAqsE,YAAAA,EACA0gE,aAAAA,EACAwtH,iBAAAA,EACAj0L,SAAAA,EACAhgE,SAAAA,EACAi8P,OAAAA,EACAsG,kBA7TwB,SAAC96Q,GACnB,IAAEsS,EAAkBtS,EAAlBsS,KAAMs7I,EAAY5tJ,EAAZ4tJ,QACRmtH,EAAuB9Q,EAAW9uR,MAAQixR,EAAgBiL,EAC1Dt6R,EAAQg+R,EAAqB5/R,MAAMirI,WAAU,SAACxmH,GAAS,OAAA0S,EAAKi8P,MAAQ3uQ,EAAK2uQ,OAC/EwM,EAAqB5/R,MAAM4B,GAASs2C,GAAAA,MAAK0nP,EAAqB5/R,MAAM4B,QAAQ6wK,QAAAA,KA0T5EqgH,YAAAA,EACA+J,aAAAA,EACAgD,mBA7KyB,SAAC/hS,GAC1B,IAAMqlC,EAAWF,GAAanlC,EAAE+hC,OAA4BqD,OAC5D25P,SAAAA,EAAe15P,IA4KfmvP,iBAzKF,SAA0BpvP,GACxB25P,SAAAA,EAAe35P,EACjB,EAwKEkuP,kBAtKF,SAA2BtzR,GACzB++R,SAAAA,EAAA/9R,EAAmBhB,EAAE0jG,cAAct+D,OACrC,EAqKEm8P,cAAAA,EACAxM,cAzDoB,SAAC/0R,GAAmB,IAAAspJ,GACpChqH,EAASp9B,OAAUo9F,EAASp9F,QAChClC,SAAqBspJ,QAArBA,EAAAtpJ,EAAGyhF,2BAAkB6nE,GAArBA,EAAA3oJ,KAAAX,GACCs/F,EAASp9F,MAA2B+pC,UAuDrCgpP,aApDmB,SAACr0P,GAAoD,IAAAohQ,EAAAC,EACjED,QAAAA,EAAAzG,EAAAr5R,aAAA8/R,IAAAA,GAAAA,EAAO1oR,SAAQ,SAACqN,GAAS,IAAAu7Q,UAC9BA,EAAAv7Q,EAAK40Q,qBAAL2G,EAAaC,OACf,IACAnpQ,EAAU92B,OAAQ,EAGd8uR,EAAW9uR,MACbixR,EAAcjxR,MAAQ,GAEtBm8R,EACED,EAAYl8R,MAAM6L,KAAI,SAAC4Y,GACjB,MAAgB,YAAhBA,EAAK06C,OACPjnB,GAAAA,GAAA,CAAA,EAAYzzB,GAAM,CAAA,EAAA,CAAA06C,OAAQ,YAErB16C,CACT,IACA,CAAEqxC,QAAS,UAIXp3B,SAAAA,EAASvH,OAAS23P,EAAW9uR,QACfq/R,SAAAA,EAAA,CAAEloQ,KAAMuH,EAAQvH,KAAMr5B,EAAG4gC,EAAQ5gC,EAAG8D,MAAO,KAGtC,QAAvBm+R,EAAAn5R,EAAM2pR,sBAAiB,IAAAwP,GAAvBA,EAAAthS,KAAAmI,IA6BJ,okBCpXA,IAAAs5R,GAAejpP,kBAAgB,CAC7Br4C,KAAM,UACNgI,MAAAA,GACAswC,eAAMtwC,EAAAA,GAAuC,IAAjBgf,EAAA4d,EAAA5d,MAAOusC,IAAAA,OAC3BpY,EAAgBzxB,KAChBhD,EAAiBmC,KACjB04Q,EAqBFlE,GAAUr1R,GApBZ6jB,EAAA01Q,EAAA11Q,OACAsF,EAAAowQ,EAAApwQ,YACAyG,EAAA2pQ,EAAA3pQ,kBACAy6P,EAAAkP,EAAAlP,cACAC,EAAAiP,EAAAjP,aACAgL,EAAAiE,EAAAjE,YACA/K,EAAAgP,EAAAhP,qBACAr6P,EAAAqpQ,EAAArpQ,UACAqsE,EAAAg9L,EAAAh9L,YACA0gE,EAAAs8H,EAAAt8H,aACAwtH,EAAA8O,EAAA9O,iBACAj0L,EAAA+iM,EAAA/iM,SACAiiM,EAAAc,EAAAd,cACAvM,EAAAqN,EAAArN,YACA+M,EAAAM,EAAAN,mBACAvN,EAAA6N,EAAA7N,iBACAlB,EAAA+O,EAAA/O,kBACAyB,EAAAsN,EAAAtN,cACAE,EAAAoN,EAAApN,aACA4M,EAAAQ,EAAAR,kBAEIviQ,EAAWqB,KAET2hQ,EAAe1/P,GAAc,CACnC0/P,WAAYC,KADND,WAIFE,EAA0B7hR,EAAAA,UAC9B,WAAA,IAAA8hR,EAAAC,EAAA,OAAY,QAAN55R,EAAAA,EAAMqpR,0BAAA,IAAAsQ,OAAA,EAAN35R,EAAAA,WAA2C,UAANA,EAAMqpR,0BAAA,IAAAuQ,OAAA,EAAN55R,EAA0B0d,UAAWkS,EAAkBx2B,KAAA,IAG7FmyD,EAAA,CACL97B,OAAQ+mE,EAASp9F,MACjB82B,UAAAA,EACA+7P,cAAAA,EACAC,YAAAA,EACAC,aAAAA,EACA4M,kBAAAA,IAGF,IAAMc,EAAgB,WAgBlB,OAAA1mP,EAAc,UAAW,UAAW,CAClCl1B,OAAQ,CAAEqtQ,YAAY,EAAOhvP,MAAOg5P,EAAYl8R,WAf9B,eAAhB4G,EAAM4yB,MAEN6e,EAAAK,YAAAoG,GAAA5D,aAAA,CAAA9d,SAAkBA,EAASp9B,MAAAg+C,QAAA,WAA6Bp3C,EAAMqpR,oBAAA,CAAAzhQ,QAAA,WAAA,MAC3D8xQ,CAAAA,EAAwBtgS,MAAA,IAI/Bq4C,EAAAK,YAAAoG,GAAA5D,aAAA,CAAA9d,SACoBA,EAASp9B,MAAAg+C,QAAA,UAAAxtB,KAA+B,WAAA,OAAA6nB,cAAA+nP,EAAA,KAAA,KAAA,GAA0Bx5R,EAAMqpR,oBACvF,CAAAzhQ,QAAA,WAAA,MAAA8xQ,CAAAA,EAAwBtgS,YAW3B0gS,EAAyBjiR,EAAAA,UAAiC,WAAA,MAAO,CACrEikB,OAAQ97B,EAAM87B,OACdQ,MAAOg5P,EAAYl8R,MACnBixR,cAAeA,EAAcjxR,MAC7BkxR,aAAcA,EAAalxR,MAC3Bw5B,MAAO5yB,EAAM4yB,MACbpG,YAAaxsB,EAAMwsB,YACnBgK,SAAUA,EAASp9B,MACnBo6F,KAAMxzF,EAAMwzF,KACZj7B,OAAQv4D,EAAMu4D,OACdgyN,qBAAsBA,EAAqBnxR,MAC3C82B,UAAWA,EAAU92B,MACrB+vB,YAAaA,EAAY/vB,MACzBmjG,YAAAA,EACA0gE,aAAAA,EACAwtH,iBAAAA,EACA5mQ,OAAQA,EAAOzqB,MACf8uR,WAAYloR,EAAMkoR,WAClB9sP,YAAap7B,EAAMo7B,YACnB+tP,mBAAoBnpR,EAAMmpR,mBAC1BZ,gBAAiBvoR,EAAMuoR,gBACvBhlM,SAAUk1M,EACVjP,kBAAmBxpR,EAAMwpR,kBACzBgB,kBAAAA,EACA5B,iBAAkB5oR,EAAM4oR,iBACxB,IAEImR,EAA8B,CAClCrO,iBAAAA,EACA9B,YAAa5pR,EAAM4pR,YACnBtmG,YAAatjL,EAAMsjL,YACnB3jE,OAAQ3/G,EAAM2/G,QAGVq6K,EAAgBniR,EAAAA,UAAS,WAAA,MAAM,CAAA,GAAA+d,OAChCzM,EAAY/vB,MAAA,WAAAH,EAAA,GAAA,GAAA28B,OAETzM,EAAY/vB,gCAAuB4G,EAAM4yB,OAA0B,eAAhB5yB,EAAM4yB,WAoG1D,OAAA,WAAA,OAAA6e,EAAAA,YAAA,MAAA,CAAAC,MACOsoP,EAAc5gS,MAAO66F,QAASj0F,EAAMwpR,kBAAoBgB,OAAoB,GAAA/4O,CAAAA,EAAAA,oBAAA6C,aAAA,CAAA3f,IAE/E6hE,EACL36F,KAAA,OAAA26B,SACUA,EAASp9B,MAAA+9B,SACT8hQ,EAAAvxL,SACA1nG,EAAM0nG,gBACR1nG,EAAM87B,OACdhF,QAAA,GACK92B,EAAM6oR,gBAAAv3O,MAAuBtxC,EAAM6oR,iBAAoB,CAAA,SAE7D,CAAC,OAAQ,cAAcnxQ,SAAS1X,EAAM4yB,SAAW5yB,EAAMmjF,WA5GtD1xC,EAAAK,YAAA44O,GAAAp2O,aAEEwlP,EAAuB1gS,MAC3B,CAAAsuG,SAAU1nG,EAAM0nG,WAAA,CAAA9/E,QAAA,WAAA,MAAA,CAAA6pB,EAAAK,YAAA,MAAA,CAAAJ,MAAA,GAAA9b,OAMDzM,EAAY/vB,MAAyB,oBAAAi+C,QAAS40O,GAC1D4N,CAAAA,MACH,EANEtR,gBAAiBvpQ,EAAMupQ,gBACvB,oBAAqBvpQ,EAAM,uBAuG5B,CAAC,OAAQ,SAAStH,SAAS1X,EAAM4yB,QAAU5yB,EAAMmjF,WA9FhD1xC,EAAAK,YAAAk6O,GAAA13O,aAEEwlP,EAAuB1gS,MAC3B,CAAAgzR,WAAY2N,UACH/5R,EAAMkvD,qBACDi9N,EAAAF,cACCA,EACfC,YAAaA,iBACGlsR,EAAM2pR,iBACb,CACPpB,gBAAiBvpQ,EAAMupQ,gBACvB,oBAAqBvpQ,EAAM,uBAoFZ,UAAhBhf,EAAM4yB,QAAsB5yB,EAAMmjF,WA/EjC1xC,EAAAK,YAAAq7O,GAAA74O,aAEEwlP,EAAuB1gS,MAC3B,CAAAsuG,SAAU1nG,EAAM0nG,SAAApnG,IACXN,EAAMM,IACX6oR,mBAAoBnpR,EAAMmpR,mBAAA8C,cACXA,EAAAC,YACFA,EAAAC,aACCA,EAAAnC,UACHhqR,EAAMgqR,UACjBf,kBAAmBjpR,EAAMipR,oBAChB,CACPV,gBAAiBvpQ,EAAMupQ,gBACvB,oBAAqBvpQ,EAAM,uBAmE5B,CAAC,aAAc,aAAatH,SAAS1X,EAAM4yB,QA9DxB6e,EAAAK,YAAAq8O,GAAA75O,aAEhBwlP,EAAuB1gS,MAC3B,CAAA0vR,cAAe9oR,EAAM8oR,cAAA3lM,UACVnjF,EAAMmjF,UACjBipM,WAAY2N,cACC7N,EAAAC,aACCA,EAAAnC,UACHhqR,EAAMgqR,UACjBf,kBAAmBjpR,EAAMipR,kBACzBC,cAAelpR,EAAMkpR,cAAAK,aACPvpR,EAAMupR,aAAAlB,mBACAroR,EAAMqoR,qFAUXl/P,EAAY/vB,MAAyB,oBAAAi+C,QAAS40O,GAC1D,EAACjsR,EAAMmjF,WAAa02M,MACvB,EAVEtR,gBAAiBvpQ,EAAMupQ,gBACvB,oBAAqBvpQ,EAAM,qBAC3BuqQ,aAAcvqQ,EAAMuqQ,aACpB,gBAAiBvqQ,EAAM,iBACvBqpQ,mBAAoBrpQ,EAAMqpQ,mBAC1B,uBAAwBrpQ,EAAM,0BA4Cf,WAAhBhf,EAAM4yB,OAnCL6e,EAAAK,YAAAq/O,GAAA78O,aAEEwlP,EAAuB1gS,MAC3B,CAAA+pF,UAAWnjF,EAAMmjF,UAAAmlM,YACJtoR,EAAMsoR,uBACPyR,EAAA9N,cACGA,EACf/8N,QAASlvD,EAAMkvD,QACfkiO,aAAcpyQ,EAAM,UAAA,CAAA4I,QAAA,WAAA,MAOnBiyQ,CAAAA,IAAc,EALbvR,YAAatpQ,EAAMspQ,YACnB,eAAgBtpQ,EAAM,gBACtBkwC,QAASlwC,EAAMkwC,UAyBhB1tC,QAAQxhB,EAAMwzF,MAAQx0E,EAAMw0E,oCACb,CAAC+I,EAAatjG,EAAA28B,CAAAA,EAAAA,GAAAA,OAAMzM,EAAY/vB,MAAsB4G,kBAAAA,OAAAA,EAAMu4D,QAAWv4D,EAAMu4D,UACxF75C,CAAAA,EAAe,UAGnB6rQ,EAAqBnxR,oCAAuB6jK,GAAestH,CAAAA,EAAqBnxR,UAGvF,IChPW6gS,GAASxjP,GAAY6iP,ICEnBt5R,GAAA,CAEbk1B,aAAc,CACZr5B,KAAM3C,SCPVghS,GAAe7pP,kBAAgB,CAC7Br4C,KAAM,kBACNgI,MAAAA,GACAswC,MAAAA,SAAMtwC,GACJu1B,GAAcv1B,GAEd,IAAM0e,EAAiBmC,KAEvB,OAAO,WAAA,OAAA4wB,EAAAA,YAAAyR,EAAAA,eAASxkC,EAAe,aACjC,ICPWy7Q,GAAiB1jP,GAAYyjP,upDCJ1B,SAAAzkP,GAAQT,EAAUU,GAChCx8C,OAAO+D,KAAKovM,IAAY77L,SAAQ,SAAC3S,GAC3B,aAAa5F,KAAK4F,KAEtB,UAAU5F,KAAK4F,GAAOm3C,EAAIolP,IAAI/tF,GAAWxuM,IAAQm3C,EAAIolP,IAAI/tF,GAAWxuM,GAAM63C,GAC5E,GACF,CAIe,IAAA2kP,GAAA,CACb5kP,QAAAA,GACA7D,QAAmD0oP"} \ No newline at end of file +{"version":3,"file":"tdesign.min.js","sources":["../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/esm/typeof.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_freeGlobal.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_root.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Symbol.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getRawTag.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_objectToString.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGetTag.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isObjectLike.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isSymbol.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayMap.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArray.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseToString.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_trimmedEndIndex.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseTrim.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isObject.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toNumber.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toFinite.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toInteger.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/identity.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isFunction.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_coreJsData.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isMasked.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_toSource.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsNative.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getNative.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getValue.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_WeakMap.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseCreate.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_copyArray.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_shortOut.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_defineProperty.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseSetToString.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/constant.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setToString.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsNaN.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayIncludes.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIndexOf.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_strictIndexOf.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseFindIndex.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isIndex.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseAssignValue.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/eq.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_assignValue.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_copyObject.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_overRest.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_apply.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseRest.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isLength.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArrayLike.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isIterateeCall.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createAssigner.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isPrototype.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsArguments.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArguments.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isBuffer.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/stubFalse.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsTypedArray.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseUnary.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nodeUtil.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isTypedArray.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayLikeKeys.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseTimes.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_overArg.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeKeys.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseKeys.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/keys.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseKeysIn.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeKeysIn.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/keysIn.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isKey.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeCreate.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashGet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashHas.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Hash.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_assocIndexOf.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashClear.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashDelete.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashSet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheDelete.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_ListCache.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheClear.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheGet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheHas.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheSet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Map.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getMapData.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isKeyable.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_MapCache.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheClear.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheDelete.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheGet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheHas.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheSet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/memoize.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stringToPath.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_memoizeCapped.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toString.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_castPath.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_toKey.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/get.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayPush.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isFlattenable.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseFlatten.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/flatten.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_flatRest.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getPrototype.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isPlainObject.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseSlice.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_castSlice.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hasUnicode.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_unicodeToArray.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stringToArray.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_asciiToArray.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/upperFirst.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createCaseFirst.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_deburrLetter.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_basePropertyOf.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/deburr.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_asciiWords.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hasUnicodeWord.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_unicodeWords.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/words.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createCompounder.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayReduce.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/camelCase.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/capitalize.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/chunk.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Stack.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackClear.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackDelete.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackGet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackHas.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackSet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneBuffer.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayFilter.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/stubArray.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getSymbols.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getSymbolsIn.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGetAllKeys.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getAllKeys.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getAllKeysIn.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_DataView.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Promise.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Set.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getTag.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_initCloneArray.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Uint8Array.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneArrayBuffer.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneRegExp.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneSymbol.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneTypedArray.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_initCloneByTag.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneDataView.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_initCloneObject.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isMap.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsMap.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isSet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsSet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseClone.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_copySymbolsIn.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseAssignIn.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_copySymbols.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseAssign.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayEach.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/cloneDeep.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_SetCache.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arraySome.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cacheHas.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setCacheAdd.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setCacheHas.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_equalArrays.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapToArray.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setToArray.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_equalByTag.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_equalObjects.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsEqualDeep.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsEqual.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isStrictComparable.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_matchesStrictComparable.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseMatches.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getMatchData.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsMatch.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseHasIn.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/hasIn.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hasPath.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseProperty.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/property.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_basePropertyDeep.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIteratee.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseMatchesProperty.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseFor.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createBaseFor.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseForOwn.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseEach.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createBaseEach.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/now.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/debounce.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_assignMergeValue.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArrayLikeObject.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_safeGet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseMergeDeep.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toPlainObject.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseMerge.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/mergeWith.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayIncludesWith.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseDifference.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/difference.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/last.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/escapeRegExp.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseFilter.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGt.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseInRange.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/inRange.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isString.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIntersection.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_castArrayLikeObject.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/intersection.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isBoolean.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isDate.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsDate.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isEmpty.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isEqual.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isNumber.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isNil.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isNull.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isUndefined.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/kebabCase.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseLt.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseExtremum.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/max.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/merge.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/min.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseUnset.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_parent.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_customOmitClone.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/omit.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseSet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_basePickBy.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseRepeat.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_asciiSize.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_unicodeSize.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stringSize.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createPadding.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/padStart.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/pick.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_basePick.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_basePullAt.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseRange.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/range.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createRange.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/remove.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/set.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/sum.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseSum.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/throttle.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createSet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/noop.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseUniq.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/uniqBy.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/uniqueId.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/xorWith.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseXor.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../../../node_modules/.pnpm/performance-now@2.1.0/node_modules/performance-now/lib/performance-now.js","../../../node_modules/.pnpm/raf@3.4.1/node_modules/raf/index.js","../../common/js/utils/easing.ts","../../shared/utils/dom.ts","../../shared/utils/withInstall.ts","../../shared/utils/render-tnode.ts","../../shared/hooks/slot/index.ts","../../common/js/utils/general.ts","../../shared/hooks/tnode/index.ts","../../common/js/global-config/default-config.ts","../../../node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/dayjs.min.js","../../../node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/locale/zh-cn.js","../../common/js/global-config/locale/zh_CN.ts","../../components/config-provider/utils/context.ts","../../common/js/global-config/t.ts","../../components/config-provider/hooks/useConfig.ts","../../shared/hooks/useConfig/index.ts","../../shared/hooks/useCommonClassName/index.ts","../../shared/hooks/useDefaultValue/index.ts","../../shared/hooks/useDestroyOnClose/index.ts","../../shared/hooks/useDisabled/index.ts","../../shared/hooks/useDragSort/index.ts","../../common/js/utils/observe.ts","../../shared/hooks/useGlobalIcon/index.ts","../../common/js/log/log.ts","../../common/js/upload/utils.ts","../../shared/hooks/useImagePreviewUrl/index.ts","../../shared/hooks/useKeepAnimation/index.ts","../../shared/hooks/useListener/index.ts","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/esm/createClass.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../../shared/hooks/usePopupManager/index.ts","../../shared/hooks/useReadonly/index.ts","../../shared/hooks/useResizeObserver/index.ts","../../common/js/utils/setStyle.ts","../../shared/hooks/useRipple/index.ts","../../shared/hooks/useTeleport/index.ts","../../shared/hooks/useVModel/index.ts","../../shared/hooks/useVirtualScrollNew/index.ts","../../shared/hooks/useMutationObservable/index.ts","../../common/js/common.ts","../../common/js/utils/getColorTokenColor.ts","../../shared/hooks/useVariables/index.ts","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../common/js/utils/helper.ts","../../components/loading/icon/gradient.tsx","../../common/js/loading/circle-adapter.ts","../../components/loading/props.ts","../../components/loading/loading.tsx","../../components/loading/plugin.tsx","../../components/loading/directive.ts","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/mapKeys.js","../../components/loading/index.ts","../../components/button/props.ts","../../components/button/button.tsx","../../components/button/index.ts","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/_chunks/dep-931ef437.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/utils/render-fn.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/utils/config-context.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/utils/use-size-props.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/utils/use-common-classname.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/add-rectangle.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/add.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/arrow-triangle-down-filled.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/arrow-triangle-up-filled.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/backtop.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/browse-off.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/browse.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/calendar.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/caret-right-small.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/check-circle-filled.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/check.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/chevron-down.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/chevron-left-double.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/chevron-left.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/chevron-right-circle.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/chevron-right-double.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/chevron-right.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/chevron-up.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/close-circle-filled.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/close.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/copy.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/delete.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/download.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/edit-1.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/ellipsis.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/error-circle-filled.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/error.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/file-copy.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/file-excel.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/file-pdf.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/file-powerpoint.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/file-word.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/file.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/filter.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/help-circle-filled.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/image-error.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/image.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/info-circle-filled.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/minus-rectangle.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/mirror.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/page-first.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/page-last.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/refresh.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/remove.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/rotation.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/round.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/search.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/setting.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/star-filled.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/time-filled.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/time.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/upload.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/video.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/zoom-in.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/zoom-out.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/utils/check-url-and-load.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/svg-sprite/props/props.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.6_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/svg-sprite/svg-sprite.js","../../components/icon/index.ts","../../components/link/props.ts","../../components/link/link.tsx","../../components/link/index.ts","../../components/grid/row-props.ts","../../common/js/utils/responsive.ts","../../components/grid/hooks/index.ts","../../components/grid/row.tsx","../../components/grid/utils/index.ts","../../components/grid/col-props.ts","../../components/grid/col.tsx","../../components/grid/index.ts","../../components/layout/layout.tsx","../../components/layout/header-props.ts","../../components/layout/header.tsx","../../components/layout/footer-props.ts","../../components/layout/footer.tsx","../../components/layout/aside-props.ts","../../components/layout/aside.tsx","../../components/layout/content-props.ts","../../components/layout/content.tsx","../../components/layout/index.ts","../../components/divider/props.ts","../../components/divider/divider.tsx","../../components/divider/index.ts","../../components/space/props.ts","../../components/space/space.tsx","../../components/space/index.ts","../../components/descriptions/props.ts","../../components/descriptions/consts/index.ts","../../components/descriptions/types.ts","../../components/descriptions/utils/index.ts","../../components/descriptions/descriptions-row.tsx","../../components/descriptions/descriptions.tsx","../../components/descriptions/descriptions-item-props.ts","../../components/descriptions/descriptions-item.tsx","../../components/descriptions/index.ts","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/OverloadYield.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/regeneratorDefine.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/regenerator.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/regeneratorAsync.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/regeneratorKeys.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/typeof.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/regeneratorValues.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/regeneratorRuntime.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/regenerator/index.js","../../components/affix/props.ts","../../components/affix/affix.tsx","../../components/affix/index.ts","../../../node_modules/.pnpm/clipboard@2.0.11/node_modules/clipboard/dist/clipboard.js","../../components/anchor/utils/index.ts","../../components/anchor/props.ts","../../components/anchor/consts/index.ts","../../components/anchor/anchor.tsx","../../components/anchor/anchor-item.tsx","../../components/anchor/anchor-item-props.ts","../../components/message/consts/index.ts","../../components/message/props.ts","../../components/message/utils/animation.ts","../../components/message/message.tsx","../../components/message/message-list.tsx","../../components/message/plugin.tsx","../../components/anchor/anchor-target-props.ts","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/enums.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/math.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/userAgent.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/contains.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/within.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/arrow.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getVariation.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/computeOffsets.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/detectOverflow.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/flip.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/hide.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/offset.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getAltAxis.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/orderModifiers.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/createPopper.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/debounce.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/mergeByName.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/popper.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../../components/popup/props.ts","../../components/popup/container.tsx","../../components/popup/popup.tsx","../../components/popup/index.ts","../../components/anchor/anchor-target.tsx","../../components/anchor/index.ts","../../components/breadcrumb/props.ts","../../components/breadcrumb/breadcrumb-item-props.ts","../../components/tooltip/props.ts","../../components/tooltip/tooltip.tsx","../../components/tooltip/utils/index.ts","../../components/tooltip/index.ts","../../components/breadcrumb/breadcrumb-item.tsx","../../components/breadcrumb/hooks/useEllipsis.ts","../../components/breadcrumb/hooks/useBreadcrumbOptions.ts","../../components/breadcrumb/breadcrumb.tsx","../../components/breadcrumb/index.ts","../../components/dropdown/dropdown-item-props.ts","../../components/dropdown/dropdown-item.tsx","../../components/dropdown/props.ts","../../components/dropdown/dropdown-menu.tsx","../../components/dropdown/hooks/useDropdownOptions.ts","../../components/dropdown/dropdown.tsx","../../components/dropdown/index.ts","../../components/menu/props.ts","../../components/menu/utils/v-menu.ts","../../components/menu/menu.tsx","../../components/menu/head-menu-props.ts","../../components/tabs/tab-panel-props.ts","../../components/tabs/tab-panel.tsx","../../components/tabs/props.ts","../../common/js/tabs/base.ts","../../components/tabs/tab-nav-item.tsx","../../components/tabs/tab-nav-bar.tsx","../../components/tabs/tab-nav.tsx","../../components/tabs/tabs.tsx","../../components/tabs/index.ts","../../components/menu/submenu-props.ts","../../components/common-components/fake-arrow.tsx","../../components/menu/submenu.tsx","../../shared/hooks/useCollapseAnimation/index.ts","../../components/menu/head-menu.tsx","../../components/menu/menu-item-props.ts","../../components/menu/menu-item.tsx","../../components/menu/menu-group-props.ts","../../components/menu/menu-group.tsx","../../components/menu/index.ts","../../components/input/props.ts","../../components/form/consts/index.ts","../../components/input/hooks/useLengthLimit.tsx","../../components/input/hooks/useInput.ts","../../components/input/hooks/useInputWidth.ts","../../components/input/input.tsx","../../components/input/hooks/useInputEventHandler.ts","../../components/input/input-group-props.ts","../../components/input/input-group.tsx","../../components/input/index.ts","../../components/input-number/props.ts","../../common/js/input-number/large-number.ts","../../common/js/input-number/number.ts","../../components/input-number/hooks/useInputNumber.tsx","../../components/input-number/input-number.tsx","../../components/input-number/index.ts","../../components/select-input/props.ts","../../components/tag-input/props.ts","../../../node_modules/.pnpm/tinycolor2@1.6.0/node_modules/tinycolor2/esm/tinycolor.js","../../components/tag/props.ts","../../components/tag/tag.tsx","../../components/tag/check-tag-props.ts","../../components/tag/check-tag.tsx","../../components/tag/check-tag-group-props.ts","../../components/tag/check-tag-group.tsx","../../components/tag/index.ts","../../components/tag-input/tag-input.tsx","../../components/tag-input/hooks/useHover.ts","../../components/tag-input/hooks/useDragSorter.ts","../../components/tag-input/hooks/useTagScroll.ts","../../components/tag-input/hooks/useTagList.tsx","../../components/tag-input/index.ts","../../components/select-input/hooks/useMultiple.tsx","../../components/select-input/hooks/useOverlayInnerStyle.ts","../../components/select-input/hooks/useSingle.tsx","../../components/select-input/select-input.tsx","../../components/select-input/index.ts","../../components/select/option-props.ts","../../components/checkbox/props.ts","../../components/checkbox/consts/index.ts","../../components/checkbox/checkbox.tsx","../../components/checkbox/hooks/useCheckboxLazyLoad.ts","../../components/checkbox/hooks/useKeyboardEvent.ts","../../components/checkbox/checkbox-group-props.ts","../../components/checkbox/group.tsx","../../components/checkbox/index.ts","../../components/select/utils/index.ts","../../components/select/consts/index.ts","../../components/select/option.tsx","../../components/select/option-group-props.ts","../../components/select/option-group.tsx","../../components/select/props.ts","../../components/select/hooks/usePanelVirtualScroll.ts","../../shared/hooks/useVirtualScroll/index.ts","../../components/select/components/select-panel.tsx","../../components/select/select.tsx","../../components/select/hooks/useSelectOptions.ts","../../components/select/hooks/useKeyboardControl.ts","../../components/select/index.ts","../../components/input-adornment/props.ts","../../components/input-adornment/input-adornment.tsx","../../components/input-adornment/index.ts","../../components/pagination/props.ts","../../components/pagination/pagination.tsx","../../components/pagination/hooks/usePaginationClasses.ts","../../components/pagination/hooks/useMoreAction.ts","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isNaN.js","../../components/pagination/pagination-mini-props.ts","../../components/pagination/pagination-mini.tsx","../../components/pagination/index.ts","../../components/steps/props.ts","../../components/steps/step-item-props.ts","../../components/steps/step-item.tsx","../../components/steps/steps.tsx","../../components/steps/index.ts","../../components/sticky-tool/props.ts","../../components/sticky-tool/sticky-item-props.ts","../../components/sticky-tool/sticky-item.tsx","../../components/sticky-tool/sticky-tool.tsx","../../components/sticky-tool/index.ts","../../components/back-top/props.ts","../../components/back-top/back-top.tsx","../../components/back-top/index.ts","../../components/auto-complete/props.ts","../../components/auto-complete/components/highlight-option.tsx","../../components/auto-complete/components/option-list.tsx","../../components/auto-complete/auto-complete.tsx","../../components/auto-complete/index.ts","../../components/cascader/utils/className.ts","../../components/cascader/utils/helper.ts","../../components/cascader/utils/effect.ts","../../components/cascader/components/Item.tsx","../../components/cascader/props.ts","../../components/cascader/components/Panel.tsx","../../common/js/tree/tree-node-model.ts","../../common/js/tree/tree-node.ts","../../common/js/tree/tree-store.ts","../../../node_modules/.pnpm/mitt@3.0.1/node_modules/mitt/dist/mitt.mjs","../../components/cascader/hooks/index.ts","../../components/cascader/cascader.tsx","../../components/cascader/cascader-panel.tsx","../../components/cascader/index.ts","../../../node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/plugin/isoWeeksInYear.js","../../../node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/plugin/isLeapYear.js","../../common/js/date-picker/format.ts","../../components/date-picker/hooks/useSingleValue.tsx","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/esm/extends.js","../../../node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/plugin/isBetween.js","../../../node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/plugin/weekOfYear.js","../../../node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/plugin/weekYear.js","../../../node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/plugin/localeData.js","../../../node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/plugin/quarterOfYear.js","../../../node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/plugin/advancedFormat.js","../../../node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/plugin/customParseFormat.js","../../common/js/date-picker/utils.ts","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js","../../components/date-picker/props.ts","../../components/date-picker/components/base/Header.tsx","../../components/date-picker/components/base/Cell.tsx","../../components/date-picker/components/base/Table.tsx","../../common/js/time-picker/const.ts","../../components/time-picker/props.ts","../../components/time-picker/panel/props.ts","../../common/js/time-picker/utils.ts","../../components/time-picker/panel/single-panel.tsx","../../components/time-picker/panel/time-picker-panel.tsx","../../components/date-picker/components/panel/PanelContent.tsx","../../components/date-picker/components/base/Footer.tsx","../../components/date-picker/components/panel/ExtraContent.tsx","../../components/date-picker/hooks/useDisableDate.ts","../../components/date-picker/hooks/useRangeValue.ts","../../components/date-picker/hooks/useRange.tsx","../../components/date-picker/hooks/useTableData.tsx","../../components/date-picker/components/panel/SinglePanel.tsx","../../components/date-picker/DatePicker.tsx","../../components/date-picker/hooks/useSingle.tsx","../../components/date-picker/date-picker-panel-props.ts","../../components/date-picker/DatePickerPanel.tsx","../../components/date-picker/date-range-picker-props.ts","../../components/range-input/props.ts","../../components/range-input/range-input.tsx","../../components/range-input/range-input-popup-props.ts","../../components/range-input/range-input-popup.tsx","../../components/range-input/index.ts","../../components/date-picker/components/panel/RangePanel.tsx","../../components/date-picker/utils/index.ts","../../components/date-picker/DateRangePicker.tsx","../../components/date-picker/date-range-picker-panel-props.ts","../../components/date-picker/DateRangePickerPanel.tsx","../../components/date-picker/index.ts","../../components/form/props.ts","../../../node_modules/.pnpm/validator@13.15.15/node_modules/validator/lib/util/merge.js","../../../node_modules/.pnpm/validator@13.15.15/node_modules/validator/lib/isDate.js","../../../node_modules/.pnpm/validator@13.15.15/node_modules/validator/lib/util/assertString.js","../../../node_modules/.pnpm/validator@13.15.15/node_modules/validator/lib/util/checkHost.js","../../../node_modules/.pnpm/validator@13.15.15/node_modules/validator/lib/isByteLength.js","../../../node_modules/.pnpm/validator@13.15.15/node_modules/validator/lib/isFQDN.js","../../../node_modules/.pnpm/validator@13.15.15/node_modules/validator/lib/isIP.js","../../../node_modules/.pnpm/validator@13.15.15/node_modules/validator/lib/isEmail.js","../../../node_modules/.pnpm/validator@13.15.15/node_modules/validator/lib/util/includesString.js","../../components/form/utils/form-model.ts","../../../node_modules/.pnpm/validator@13.15.15/node_modules/validator/lib/isURL.js","../../components/form/utils/form-item.ts","../../components/form/form.tsx","../../components/form/form-item-props.ts","../../components/form/form-item.tsx","../../common/js/utils/stringTemplate.ts","../../components/form/index.ts","../../components/radio/props.ts","../../components/radio/consts/index.ts","../../components/radio/radio.tsx","../../components/radio/radio-group-props.ts","../../components/radio/radio-button.tsx","../../components/watermark/hooks/index.ts","../../components/radio/group.tsx","../../components/radio/hooks/useKeyboard.ts","../../components/radio/index.ts","../../components/slider/props.ts","../../components/slider/utils/index.ts","../../components/slider/hooks/useSliderTooltip.tsx","../../components/slider/consts/index.ts","../../components/slider/slider-button.tsx","../../components/slider/slider-mark.tsx","../../components/slider/hooks/useSliderInput.tsx","../../common/js/utils/calcTextareaHeight.ts","../../components/slider/slider.tsx","../../components/slider/hooks/useSliderMark.tsx","../../components/slider/index.ts","../../components/switch/props.ts","../../components/switch/switch.tsx","../../components/switch/index.ts","../../components/textarea/props.ts","../../components/textarea/textarea.tsx","../../components/textarea/index.ts","../../components/transfer/utils/index.ts","../../components/transfer/components/transfer-search.tsx","../../components/transfer/components/transfer-list.tsx","../../components/transfer/hooks/useDragSort.ts","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/filter.js","../../components/transfer/props.ts","../../components/transfer/components/transfer-operations.tsx","../../components/transfer/transfer.tsx","../../components/transfer/index.ts","../../components/time-picker/time-picker.tsx","../../components/time-picker/time-range-picker-props.ts","../../components/time-picker/time-range-picker.tsx","../../components/time-picker/index.ts","../../components/tree/utils/adapt.ts","../../components/tree/hooks/useDraggable.ts","../../components/tree/utils/index.ts","../../components/tree/hooks/useTreeAction.ts","../../components/tree/hooks/useItemEvents.ts","../../components/tree/hooks/useRenderIcon.tsx","../../components/tree/hooks/useRenderLabel.tsx","../../components/tree/hooks/useTreeItem.tsx","../../components/tree/hooks/useRenderLine.tsx","../../components/tree/hooks/useRenderOperations.tsx","../../shared/hooks/useLazyLoad/index.ts","../../components/tree/tree-item.tsx","../../components/tree/hooks/useItemState.ts","../../components/tree/hooks/useTreeNodes.tsx","../../components/tree/hooks/useTreeEvents.ts","../../components/tree/hooks/useTreeScroll.ts","../../components/tree/hooks/useTreeStyles.ts","../../components/tree/props.ts","../../components/tree/tree.tsx","../../components/tree/hooks/useTreeState.ts","../../components/tree/hooks/useTreeStore.ts","../../components/tree/hooks/useDragHandle.ts","../../components/tree/index.ts","../../components/tree-select/props.ts","../../components/tree-select/tree-select.tsx","../../common/js/color-picker/gradient.ts","../../common/js/tree-select/utils.ts","../../components/tree-select/index.ts","../../components/color-picker/color-picker-panel-props.ts","../../common/js/color-picker/cmyk.ts","../../common/js/color-picker/constants.ts","../../common/js/color-picker/color.ts","../../common/js/color-picker/draggable.ts","../../common/js/color-picker/format.ts","../../components/color-picker/hooks/index.ts","../../components/color-picker/components/panel/header.tsx","../../components/color-picker/components/panel/base-props.ts","../../components/color-picker/components/panel/linear-gradient.tsx","../../components/color-picker/components/panel/saturation.tsx","../../components/color-picker/components/panel/slider.tsx","../../components/color-picker/components/panel/hue.tsx","../../components/color-picker/components/panel/alpha.tsx","../../components/color-picker/props.ts","../../components/color-picker/components/format/inputs.tsx","../../components/color-picker/components/format/index.tsx","../../components/color-picker/components/panel/swatches.tsx","../../components/color-picker/components/panel/index.tsx","../../components/color-picker/color-picker-panel.tsx","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/pickBy.js","../../components/color-picker/components/trigger/index.tsx","../../components/color-picker/color-picker.tsx","../../components/color-picker/index.ts","../../components/avatar/props.ts","../../components/image/props.ts","../../components/image/image.tsx","../../components/image/index.ts","../../components/avatar/avatar.tsx","../../components/avatar/avatar-group-props.ts","../../components/avatar/group.tsx","../../components/avatar/index.ts","../../components/badge/props.ts","../../components/badge/badge.tsx","../../components/badge/index.ts","../../components/calendar/props.ts","../../components/calendar/consts/index.ts","../../components/calendar/utils/index.ts","../../components/calendar/hooks/useState.ts","../../components/calendar/hooks/useController.ts","../../components/calendar/hooks/useColHeaders.ts","../../components/calendar/calendar-cell.tsx","../../components/calendar/hooks/useCalendarClass.ts","../../components/calendar/calendar.tsx","../../components/calendar/index.ts","../../components/card/props.ts","../../components/card/card.tsx","../../components/card/index.ts","../../components/comment/props.ts","../../components/comment/comment.tsx","../../components/comment/index.ts","../../components/empty/props.ts","../../components/empty/components/MaintenanceSvg.tsx","../../components/empty/components/NetworkErrorSvg.tsx","../../components/empty/components/EmptySvg.tsx","../../components/empty/components/FailSvg.tsx","../../components/empty/components/SuccessSvg.tsx","../../components/empty/empty.tsx","../../components/empty/index.ts","../../components/image-viewer/hooks/index.ts","../../components/image-viewer/base/ImageItem.tsx","../../components/image-viewer/base/ImageModalIcon.tsx","../../components/dialog/props.ts","../../components/dialog/hooks/useAction.tsx","../../common/js/utils/getScrollbarWidth.ts","../../components/dialog/utils/index.ts","../../components/dialog/dialog-card-props.ts","../../components/dialog/dialog-card.tsx","../../components/dialog/dialog.tsx","../../components/dialog/hooks/useSameTarget.ts","../../components/dialog/plugin.tsx","../../components/dialog/index.ts","../../components/image-viewer/props.ts","../../components/image-viewer/base/ImageViewerUtils.tsx","../../components/image-viewer/base/ImageViewerModal.tsx","../../components/image-viewer/consts/index.ts","../../components/image-viewer/utils/index.ts","../../components/image-viewer/image-viewer.tsx","../../components/image-viewer/index.ts","../../components/list/list-item-props.ts","../../components/list/list-item.tsx","../../components/list/props.ts","../../components/list/consts/index.ts","../../components/list/hooks/useListVirtualScroll.ts","../../components/list/list.tsx","../../components/list/hooks/useListItems.ts","../../components/list/list-item-meta-props.ts","../../components/list/list-item-meta.tsx","../../components/list/index.ts","../../components/progress/consts/index.ts","../../components/progress/props.ts","../../components/progress/progress.tsx","../../components/progress/index.ts","../../components/skeleton/props.ts","../../components/skeleton/skeleton.tsx","../../components/skeleton/index.ts","../../components/statistic/props.ts","../../common/js/statistic/tween.ts","../../common/js/statistic/utils.ts","../../components/statistic/statistic.tsx","../../components/statistic/index.ts","../../components/swiper/props.ts","../../components/swiper/swiper-item.tsx","../../components/swiper/swiper.tsx","../../components/swiper/index.ts","../../components/table/base-table-props.ts","../../components/table/hooks/useMultiHeader.ts","../../components/table/hooks/useClassName.ts","../../components/table/components/ellipsis.tsx","../../components/table/hooks/useTableHeader.tsx","../../components/table/hooks/useColumnResize.ts","../../components/table/hooks/useFixed.ts","../../components/table/hooks/usePagination.tsx","../../components/table/hooks/useAffix.ts","../../components/table/utils/index.ts","../../components/table/hooks/useRowspanAndColspan.ts","../../components/table/components/tr.tsx","../../components/table/hooks/useLazyLoad.ts","../../components/table/components/tbody.tsx","../../components/table/hooks/useStyle.ts","../../components/table/components/thead.tsx","../../components/table/components/tfoot.tsx","../../components/table/hooks/useRowHighlight.ts","../../components/table/base-table.tsx","../../shared/hooks/useElementLazyRender/index.ts","../../components/table/hooks/useHoverKeyboardEvent.ts","../../components/table/primary-table-props.ts","../../components/table/components/column-checkbox-group.tsx","../../components/table/hooks/useColumnController.tsx","../../common/js/table/utils.ts","../../components/table/hooks/useRowSelect.tsx","../../components/table/components/sorter-button.tsx","../../components/table/hooks/useSorter.tsx","../../components/table/components/filter-controller.tsx","../../components/table/hooks/useFilter.tsx","../../../node_modules/.pnpm/sortablejs@1.15.6/node_modules/sortablejs/modular/sortable.esm.js","../../common/js/utils/swapDragArrayElement.ts","../../components/table/hooks/useDragSort.ts","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/esm/toArray.js","../../components/table/components/editable-cell.tsx","../../components/table/hooks/useEditableRow.ts","../../components/table/primary-table.tsx","../../components/table/hooks/useRowExpand.tsx","../../components/table/hooks/useAsyncLoading.tsx","../../components/table/enhanced-table-props.ts","../../common/js/table/tree-store.ts","../../components/table/hooks/useTreeDataExpand.ts","../../components/table/hooks/useTreeData.tsx","../../components/table/hooks/useTreeSelect.tsx","../../components/table/enhanced-table.tsx","../../components/table/index.ts","../../components/timeline/props.ts","../../components/timeline/hooks/index.ts","../../components/timeline/timeline-item-props.ts","../../components/timeline/timeline-item.tsx","../../components/timeline/timeline.tsx","../../components/timeline/index.ts","../../components/collapse/props.ts","../../components/collapse/collapse.tsx","../../components/collapse/collapse-panel-props.ts","../../components/collapse/collapse-panel.tsx","../../components/collapse/index.ts","../../components/watermark/props.ts","../../components/watermark/watermark.tsx","../../common/js/watermark/generateBase64Url.ts","../../common/js/watermark/randomMovingStyle.ts","../../common/js/utils/injectStyle.ts","../../components/watermark/index.ts","../../components/rate/props.ts","../../components/rate/rate.tsx","../../components/rate/index.ts","../../components/typography/text-props.ts","../../components/typography/utils/copy-to-clipboard.ts","../../components/typography/paragraph-props.ts","../../components/typography/components/ellipsis.tsx","../../components/typography/text.tsx","../../components/typography/typography.tsx","../../components/typography/title-props.ts","../../components/typography/title.tsx","../../components/typography/paragraph.tsx","../../components/typography/index.ts","../../components/qrcode/props.ts","../../common/js/qrcode/qrcodegen.ts","../../common/js/qrcode/utils.ts","../../components/qrcode/components/props.ts","../../components/qrcode/hooks/useQRCode.ts","../../components/qrcode/components/qrcode-canvas.tsx","../../components/qrcode/components/qrcode-svg.tsx","../../components/qrcode/components/qrcode-status.tsx","../../components/qrcode/qrcode.tsx","../../components/qrcode/index.ts","../../components/alert/props.ts","../../components/alert/alert.tsx","../../shared/hooks/icon/index.tsx","../../components/alert/index.ts","../../components/drawer/props.ts","../../common/js/drawer/utils.ts","../../components/drawer/hooks/index.ts","../../components/drawer/drawer.tsx","../../components/drawer/plugin.tsx","../../components/drawer/index.ts","../../components/guide/props.ts","../../components/guide/utils/getScrollParent.ts","../../components/guide/utils/scrollToElm.ts","../../components/guide/guide.tsx","../../components/guide/utils/getRelativePosition.ts","../../components/guide/utils/getTargetElm.ts","../../components/guide/index.ts","../../components/message/index.ts","../../components/notification/props.ts","../../components/notification/consts/index.ts","../../components/notification/utils/animate.ts","../../components/notification/notification.tsx","../../components/notification/notification-list.tsx","../../components/notification/plugin.ts","../../components/notification/index.ts","../../components/popconfirm/props.ts","../../components/popconfirm/popconfirm.tsx","../../components/popconfirm/index.ts","../../components/upload/props.ts","../../components/upload/consts/index.ts","../../components/upload/components/normal-file.tsx","../../components/upload/hooks/useDrag.ts","../../components/upload/components/dragger-file.tsx","../../components/upload/components/image-card.tsx","../../components/upload/components/multiple-flow-list.tsx","../../components/upload/components/custom-file.tsx","../../common/js/upload/main.ts","../../common/js/upload/xhr.ts","../../components/upload/hooks/useUpload.ts","../../components/upload/upload.tsx","../../components/upload/index.ts","../../components/config-provider/props.ts","../../components/config-provider/index.ts","../../components/config-provider/config-provider.tsx","../../components/index.ts"],"sourcesContent":["function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nexport default trimmedEndIndex;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nexport default baseTrim;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import toNumber from './toNumber.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nexport default toFinite;\n","import toFinite from './toFinite.js';\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nexport default toInteger;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nexport default identity;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import isObject from './isObject.js';\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nexport default baseCreate;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nexport default copyArray;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nexport default shortOut;\n","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nexport default defineProperty;\n","import constant from './constant.js';\nimport defineProperty from './_defineProperty.js';\nimport identity from './identity.js';\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nexport default baseSetToString;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nexport default constant;\n","import baseSetToString from './_baseSetToString.js';\nimport shortOut from './_shortOut.js';\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nexport default setToString;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nexport default baseIsNaN;\n","import baseIndexOf from './_baseIndexOf.js';\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nexport default arrayIncludes;\n","import baseFindIndex from './_baseFindIndex.js';\nimport baseIsNaN from './_baseIsNaN.js';\nimport strictIndexOf from './_strictIndexOf.js';\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nexport default baseIndexOf;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nexport default strictIndexOf;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nexport default baseFindIndex;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nexport default baseAssignValue;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n","import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nexport default copyObject;\n","import apply from './_apply.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nexport default overRest;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nexport default apply;\n","import identity from './identity.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nexport default baseRest;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","import eq from './eq.js';\nimport isArrayLike from './isArrayLike.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nexport default isIterateeCall;\n","import baseRest from './_baseRest.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nexport default createAssigner;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default arrayLikeKeys;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nexport default baseTimes;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n","import isObject from './isObject.js';\nimport isPrototype from './_isPrototype.js';\nimport nativeKeysIn from './_nativeKeysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeysIn;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default nativeKeysIn;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeysIn from './_baseKeysIn.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nexport default keysIn;\n","import isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nexport default isKey;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nexport default getMapData;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nexport default stringToPath;\n","import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nexport default memoizeCapped;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","import isArray from './isArray.js';\nimport isKey from './_isKey.js';\nimport stringToPath from './_stringToPath.js';\nimport toString from './toString.js';\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nexport default castPath;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n","import castPath from './_castPath.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nexport default baseGet;\n","import baseGet from './_baseGet.js';\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nexport default get;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nexport default arrayPush;\n","import Symbol from './_Symbol.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nexport default isFlattenable;\n","import arrayPush from './_arrayPush.js';\nimport isFlattenable from './_isFlattenable.js';\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nexport default baseFlatten;\n","import baseFlatten from './_baseFlatten.js';\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nexport default flatten;\n","import flatten from './flatten.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nfunction flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n}\n\nexport default flatRest;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nexport default baseSlice;\n","import baseSlice from './_baseSlice.js';\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nexport default castSlice;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nexport default hasUnicode;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nexport default unicodeToArray;\n","import asciiToArray from './_asciiToArray.js';\nimport hasUnicode from './_hasUnicode.js';\nimport unicodeToArray from './_unicodeToArray.js';\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nexport default stringToArray;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nexport default asciiToArray;\n","import createCaseFirst from './_createCaseFirst.js';\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nexport default upperFirst;\n","import castSlice from './_castSlice.js';\nimport hasUnicode from './_hasUnicode.js';\nimport stringToArray from './_stringToArray.js';\nimport toString from './toString.js';\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nexport default createCaseFirst;\n","import basePropertyOf from './_basePropertyOf.js';\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n};\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\nexport default deburrLetter;\n","/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default basePropertyOf;\n","import deburrLetter from './_deburrLetter.js';\nimport toString from './toString.js';\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\nexport default deburr;\n","/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nexport default asciiWords;\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nexport default hasUnicodeWord;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nexport default unicodeWords;\n","import asciiWords from './_asciiWords.js';\nimport hasUnicodeWord from './_hasUnicodeWord.js';\nimport toString from './toString.js';\nimport unicodeWords from './_unicodeWords.js';\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nexport default words;\n","import arrayReduce from './_arrayReduce.js';\nimport deburr from './deburr.js';\nimport words from './words.js';\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\";\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nexport default createCompounder;\n","/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nexport default arrayReduce;\n","import capitalize from './capitalize.js';\nimport createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\nvar camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n});\n\nexport default camelCase;\n","import toString from './toString.js';\nimport upperFirst from './upperFirst.js';\n\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\nfunction capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n}\n\nexport default capitalize;\n","import baseSlice from './_baseSlice.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toInteger from './toInteger.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * Creates an array of elements split into groups the length of `size`.\n * If `array` can't be split evenly, the final chunk will be the remaining\n * elements.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to process.\n * @param {number} [size=1] The length of each chunk\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the new array of chunks.\n * @example\n *\n * _.chunk(['a', 'b', 'c', 'd'], 2);\n * // => [['a', 'b'], ['c', 'd']]\n *\n * _.chunk(['a', 'b', 'c', 'd'], 3);\n * // => [['a', 'b', 'c'], ['d']]\n */\nfunction chunk(array, size, guard) {\n if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {\n size = 1;\n } else {\n size = nativeMax(toInteger(size), 0);\n }\n var length = array == null ? 0 : array.length;\n if (!length || size < 1) {\n return [];\n }\n var index = 0,\n resIndex = 0,\n result = Array(nativeCeil(length / size));\n\n while (index < length) {\n result[resIndex++] = baseSlice(array, index, (index += size));\n }\n return result;\n}\n\nexport default chunk;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n","import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nexport default stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nexport default stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nexport default stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nexport default stackHas;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nexport default stackSet;\n","import root from './_root.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nexport default cloneBuffer;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nexport default stubArray;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nexport default getSymbols;\n","import arrayPush from './_arrayPush.js';\nimport getPrototype from './_getPrototype.js';\nimport getSymbols from './_getSymbols.js';\nimport stubArray from './stubArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nexport default getSymbolsIn;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nexport default getAllKeysIn;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nexport default initCloneArray;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","import Uint8Array from './_Uint8Array.js';\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nexport default cloneArrayBuffer;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nexport default cloneRegExp;\n","import Symbol from './_Symbol.js';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nexport default cloneSymbol;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nexport default cloneTypedArray;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\nimport cloneDataView from './_cloneDataView.js';\nimport cloneRegExp from './_cloneRegExp.js';\nimport cloneSymbol from './_cloneSymbol.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nexport default initCloneByTag;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nexport default cloneDataView;\n","import baseCreate from './_baseCreate.js';\nimport getPrototype from './_getPrototype.js';\nimport isPrototype from './_isPrototype.js';\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nexport default initCloneObject;\n","import baseIsMap from './_baseIsMap.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nexport default isMap;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nexport default baseIsMap;\n","import baseIsSet from './_baseIsSet.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nexport default isSet;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nexport default baseIsSet;\n","import Stack from './_Stack.js';\nimport arrayEach from './_arrayEach.js';\nimport assignValue from './_assignValue.js';\nimport baseAssign from './_baseAssign.js';\nimport baseAssignIn from './_baseAssignIn.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport copyArray from './_copyArray.js';\nimport copySymbols from './_copySymbols.js';\nimport copySymbolsIn from './_copySymbolsIn.js';\nimport getAllKeys from './_getAllKeys.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\nimport getTag from './_getTag.js';\nimport initCloneArray from './_initCloneArray.js';\nimport initCloneByTag from './_initCloneByTag.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isMap from './isMap.js';\nimport isObject from './isObject.js';\nimport isSet from './isSet.js';\nimport keys from './keys.js';\nimport keysIn from './keysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nexport default baseClone;\n","import copyObject from './_copyObject.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nexport default copySymbolsIn;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nexport default baseAssignIn;\n","import copyObject from './_copyObject.js';\nimport getSymbols from './_getSymbols.js';\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nexport default copySymbols;\n","import copyObject from './_copyObject.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nexport default baseAssign;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nexport default arrayEach;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nexport default cloneDeep;\n","import MapCache from './_MapCache.js';\nimport setCacheAdd from './_setCacheAdd.js';\nimport setCacheHas from './_setCacheHas.js';\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nexport default SetCache;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nexport default arraySome;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nexport default cacheHas;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nexport default setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nexport default setCacheHas;\n","import SetCache from './_SetCache.js';\nimport arraySome from './_arraySome.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nexport default equalArrays;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nexport default mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nexport default setToArray;\n","import Symbol from './_Symbol.js';\nimport Uint8Array from './_Uint8Array.js';\nimport eq from './eq.js';\nimport equalArrays from './_equalArrays.js';\nimport mapToArray from './_mapToArray.js';\nimport setToArray from './_setToArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nexport default equalByTag;\n","import getAllKeys from './_getAllKeys.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nexport default equalObjects;\n","import Stack from './_Stack.js';\nimport equalArrays from './_equalArrays.js';\nimport equalByTag from './_equalByTag.js';\nimport equalObjects from './_equalObjects.js';\nimport getTag from './_getTag.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nexport default baseIsEqualDeep;\n","import baseIsEqualDeep from './_baseIsEqualDeep.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nexport default baseIsEqual;\n","import isObject from './isObject.js';\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nexport default isStrictComparable;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nexport default matchesStrictComparable;\n","import baseIsMatch from './_baseIsMatch.js';\nimport getMatchData from './_getMatchData.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nexport default baseMatches;\n","import isStrictComparable from './_isStrictComparable.js';\nimport keys from './keys.js';\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nexport default getMatchData;\n","import Stack from './_Stack.js';\nimport baseIsEqual from './_baseIsEqual.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nexport default baseIsMatch;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nexport default baseHasIn;\n","import baseHasIn from './_baseHasIn.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nexport default hasIn;\n","import castPath from './_castPath.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isIndex from './_isIndex.js';\nimport isLength from './isLength.js';\nimport toKey from './_toKey.js';\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nexport default hasPath;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default baseProperty;\n","import baseProperty from './_baseProperty.js';\nimport basePropertyDeep from './_basePropertyDeep.js';\nimport isKey from './_isKey.js';\nimport toKey from './_toKey.js';\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nexport default property;\n","import baseGet from './_baseGet.js';\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nexport default basePropertyDeep;\n","import baseMatches from './_baseMatches.js';\nimport baseMatchesProperty from './_baseMatchesProperty.js';\nimport identity from './identity.js';\nimport isArray from './isArray.js';\nimport property from './property.js';\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nexport default baseIteratee;\n","import baseIsEqual from './_baseIsEqual.js';\nimport get from './get.js';\nimport hasIn from './hasIn.js';\nimport isKey from './_isKey.js';\nimport isStrictComparable from './_isStrictComparable.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\nimport toKey from './_toKey.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nexport default baseMatchesProperty;\n","import createBaseFor from './_createBaseFor.js';\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nexport default baseFor;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nexport default createBaseFor;\n","import baseFor from './_baseFor.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nexport default baseForOwn;\n","import baseForOwn from './_baseForOwn.js';\nimport createBaseEach from './_createBaseEach.js';\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nexport default baseEach;\n","import isArrayLike from './isArrayLike.js';\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nexport default createBaseEach;\n","import root from './_root.js';\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nexport default now;\n","import isObject from './isObject.js';\nimport now from './now.js';\nimport toNumber from './toNumber.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nexport default debounce;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignMergeValue;\n","import isArrayLike from './isArrayLike.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nexport default isArrayLikeObject;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nexport default safeGet;\n","import assignMergeValue from './_assignMergeValue.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\nimport copyArray from './_copyArray.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport isBuffer from './isBuffer.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport isPlainObject from './isPlainObject.js';\nimport isTypedArray from './isTypedArray.js';\nimport safeGet from './_safeGet.js';\nimport toPlainObject from './toPlainObject.js';\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nexport default baseMergeDeep;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nexport default toPlainObject;\n","import Stack from './_Stack.js';\nimport assignMergeValue from './_assignMergeValue.js';\nimport baseFor from './_baseFor.js';\nimport baseMergeDeep from './_baseMergeDeep.js';\nimport isObject from './isObject.js';\nimport keysIn from './keysIn.js';\nimport safeGet from './_safeGet.js';\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nexport default baseMerge;\n","import baseMerge from './_baseMerge.js';\nimport createAssigner from './_createAssigner.js';\n\n/**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\nvar mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n});\n\nexport default mergeWith;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nexport default arrayIncludesWith;\n","import SetCache from './_SetCache.js';\nimport arrayIncludes from './_arrayIncludes.js';\nimport arrayIncludesWith from './_arrayIncludesWith.js';\nimport arrayMap from './_arrayMap.js';\nimport baseUnary from './_baseUnary.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\nfunction baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n}\n\nexport default baseDifference;\n","import baseDifference from './_baseDifference.js';\nimport baseFlatten from './_baseFlatten.js';\nimport baseRest from './_baseRest.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\nvar difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n});\n\nexport default difference;\n","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nexport default last;\n","import toString from './toString.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n reHasRegExpChar = RegExp(reRegExpChar.source);\n\n/**\n * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n */\nfunction escapeRegExp(string) {\n string = toString(string);\n return (string && reHasRegExpChar.test(string))\n ? string.replace(reRegExpChar, '\\\\$&')\n : string;\n}\n\nexport default escapeRegExp;\n","import baseEach from './_baseEach.js';\n\n/**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n}\n\nexport default baseFilter;\n","/**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\nfunction baseGt(value, other) {\n return value > other;\n}\n\nexport default baseGt;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * The base implementation of `_.inRange` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to check.\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n */\nfunction baseInRange(number, start, end) {\n return number >= nativeMin(start, end) && number < nativeMax(start, end);\n}\n\nexport default baseInRange;\n","import baseInRange from './_baseInRange.js';\nimport toFinite from './toFinite.js';\nimport toNumber from './toNumber.js';\n\n/**\n * Checks if `n` is between `start` and up to, but not including, `end`. If\n * `end` is not specified, it's set to `start` with `start` then set to `0`.\n * If `start` is greater than `end` the params are swapped to support\n * negative ranges.\n *\n * @static\n * @memberOf _\n * @since 3.3.0\n * @category Number\n * @param {number} number The number to check.\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n * @see _.range, _.rangeRight\n * @example\n *\n * _.inRange(3, 2, 4);\n * // => true\n *\n * _.inRange(4, 8);\n * // => true\n *\n * _.inRange(4, 2);\n * // => false\n *\n * _.inRange(2, 2);\n * // => false\n *\n * _.inRange(1.2, 2);\n * // => true\n *\n * _.inRange(5.2, 4);\n * // => false\n *\n * _.inRange(-3, -2, -6);\n * // => true\n */\nfunction inRange(number, start, end) {\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n number = toNumber(number);\n return baseInRange(number, start, end);\n}\n\nexport default inRange;\n","import baseGetTag from './_baseGetTag.js';\nimport isArray from './isArray.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nexport default isString;\n","import SetCache from './_SetCache.js';\nimport arrayIncludes from './_arrayIncludes.js';\nimport arrayIncludesWith from './_arrayIncludesWith.js';\nimport arrayMap from './_arrayMap.js';\nimport baseUnary from './_baseUnary.js';\nimport cacheHas from './_cacheHas.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of shared values.\n */\nfunction baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n ? new SetCache(othIndex && array)\n : undefined;\n }\n array = arrays[0];\n\n var index = -1,\n seen = caches[0];\n\n outer:\n while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (!(seen\n ? cacheHas(seen, computed)\n : includes(result, computed, comparator)\n )) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache\n ? cacheHas(cache, computed)\n : includes(arrays[othIndex], computed, comparator))\n ) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nexport default baseIntersection;\n","import isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\nfunction castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n}\n\nexport default castArrayLikeObject;\n","import arrayMap from './_arrayMap.js';\nimport baseIntersection from './_baseIntersection.js';\nimport baseRest from './_baseRest.js';\nimport castArrayLikeObject from './_castArrayLikeObject.js';\n\n/**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\nvar intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n});\n\nexport default intersection;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]';\n\n/**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\nfunction isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n}\n\nexport default isBoolean;\n","import baseIsDate from './_baseIsDate.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsDate = nodeUtil && nodeUtil.isDate;\n\n/**\n * Checks if `value` is classified as a `Date` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n * @example\n *\n * _.isDate(new Date);\n * // => true\n *\n * _.isDate('Mon April 23 2012');\n * // => false\n */\nvar isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;\n\nexport default isDate;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar dateTag = '[object Date]';\n\n/**\n * The base implementation of `_.isDate` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n */\nfunction baseIsDate(value) {\n return isObjectLike(value) && baseGetTag(value) == dateTag;\n}\n\nexport default baseIsDate;\n","import baseKeys from './_baseKeys.js';\nimport getTag from './_getTag.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLike from './isArrayLike.js';\nimport isBuffer from './isBuffer.js';\nimport isPrototype from './_isPrototype.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nexport default isEmpty;\n","import baseIsEqual from './_baseIsEqual.js';\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nexport default isEqual;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n}\n\nexport default isNumber;\n","/**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nexport default isNil;\n","/**\n * Checks if `value` is `null`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `null`, else `false`.\n * @example\n *\n * _.isNull(null);\n * // => true\n *\n * _.isNull(void 0);\n * // => false\n */\nfunction isNull(value) {\n return value === null;\n}\n\nexport default isNull;\n","/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nexport default isUndefined;\n","import createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\nvar kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n});\n\nexport default kebabCase;\n","/**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\nfunction baseLt(value, other) {\n return value < other;\n}\n\nexport default baseLt;\n","import isSymbol from './isSymbol.js';\n\n/**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\nfunction baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n}\n\nexport default baseExtremum;\n","import baseExtremum from './_baseExtremum.js';\nimport baseGt from './_baseGt.js';\nimport identity from './identity.js';\n\n/**\n * Computes the maximum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * _.max([4, 2, 8, 6]);\n * // => 8\n *\n * _.max([]);\n * // => undefined\n */\nfunction max(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseGt)\n : undefined;\n}\n\nexport default max;\n","import baseMerge from './_baseMerge.js';\nimport createAssigner from './_createAssigner.js';\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nexport default merge;\n","import baseExtremum from './_baseExtremum.js';\nimport baseLt from './_baseLt.js';\nimport identity from './identity.js';\n\n/**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\nfunction min(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseLt)\n : undefined;\n}\n\nexport default min;\n","import castPath from './_castPath.js';\nimport last from './last.js';\nimport parent from './_parent.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\nfunction baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n}\n\nexport default baseUnset;\n","import baseGet from './_baseGet.js';\nimport baseSlice from './_baseSlice.js';\n\n/**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\nfunction parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n}\n\nexport default parent;\n","import isPlainObject from './isPlainObject.js';\n\n/**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\nfunction customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n}\n\nexport default customOmitClone;\n","import arrayMap from './_arrayMap.js';\nimport baseClone from './_baseClone.js';\nimport baseUnset from './_baseUnset.js';\nimport castPath from './_castPath.js';\nimport copyObject from './_copyObject.js';\nimport customOmitClone from './_customOmitClone.js';\nimport flatRest from './_flatRest.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\nvar omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n});\n\nexport default omit;\n","import assignValue from './_assignValue.js';\nimport castPath from './_castPath.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nexport default baseSet;\n","import baseGet from './_baseGet.js';\nimport baseSet from './_baseSet.js';\nimport castPath from './_castPath.js';\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n}\n\nexport default basePickBy;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeFloor = Math.floor;\n\n/**\n * The base implementation of `_.repeat` which doesn't coerce arguments.\n *\n * @private\n * @param {string} string The string to repeat.\n * @param {number} n The number of times to repeat the string.\n * @returns {string} Returns the repeated string.\n */\nfunction baseRepeat(string, n) {\n var result = '';\n if (!string || n < 1 || n > MAX_SAFE_INTEGER) {\n return result;\n }\n // Leverage the exponentiation by squaring algorithm for a faster repeat.\n // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.\n do {\n if (n % 2) {\n result += string;\n }\n n = nativeFloor(n / 2);\n if (n) {\n string += string;\n }\n } while (n);\n\n return result;\n}\n\nexport default baseRepeat;\n","import baseProperty from './_baseProperty.js';\n\n/**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\nvar asciiSize = baseProperty('length');\n\nexport default asciiSize;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\nfunction unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n ++result;\n }\n return result;\n}\n\nexport default unicodeSize;\n","import asciiSize from './_asciiSize.js';\nimport hasUnicode from './_hasUnicode.js';\nimport unicodeSize from './_unicodeSize.js';\n\n/**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\nfunction stringSize(string) {\n return hasUnicode(string)\n ? unicodeSize(string)\n : asciiSize(string);\n}\n\nexport default stringSize;\n","import baseRepeat from './_baseRepeat.js';\nimport baseToString from './_baseToString.js';\nimport castSlice from './_castSlice.js';\nimport hasUnicode from './_hasUnicode.js';\nimport stringSize from './_stringSize.js';\nimport stringToArray from './_stringToArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil;\n\n/**\n * Creates the padding for `string` based on `length`. The `chars` string\n * is truncated if the number of characters exceeds `length`.\n *\n * @private\n * @param {number} length The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padding for `string`.\n */\nfunction createPadding(length, chars) {\n chars = chars === undefined ? ' ' : baseToString(chars);\n\n var charsLength = chars.length;\n if (charsLength < 2) {\n return charsLength ? baseRepeat(chars, length) : chars;\n }\n var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));\n return hasUnicode(chars)\n ? castSlice(stringToArray(result), 0, length).join('')\n : result.slice(0, length);\n}\n\nexport default createPadding;\n","import createPadding from './_createPadding.js';\nimport stringSize from './_stringSize.js';\nimport toInteger from './toInteger.js';\nimport toString from './toString.js';\n\n/**\n * Pads `string` on the left side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padStart('abc', 6);\n * // => ' abc'\n *\n * _.padStart('abc', 6, '_-');\n * // => '_-_abc'\n *\n * _.padStart('abc', 3);\n * // => 'abc'\n */\nfunction padStart(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (createPadding(length - strLength, chars) + string)\n : string;\n}\n\nexport default padStart;\n","import basePick from './_basePick.js';\nimport flatRest from './_flatRest.js';\n\n/**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\nvar pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n});\n\nexport default pick;\n","import basePickBy from './_basePickBy.js';\nimport hasIn from './hasIn.js';\n\n/**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\nfunction basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n}\n\nexport default basePick;\n","import baseUnset from './_baseUnset.js';\nimport isIndex from './_isIndex.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * The base implementation of `_.pullAt` without support for individual\n * indexes or capturing the removed elements.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {number[]} indexes The indexes of elements to remove.\n * @returns {Array} Returns `array`.\n */\nfunction basePullAt(array, indexes) {\n var length = array ? indexes.length : 0,\n lastIndex = length - 1;\n\n while (length--) {\n var index = indexes[length];\n if (length == lastIndex || index !== previous) {\n var previous = index;\n if (isIndex(index)) {\n splice.call(array, index, 1);\n } else {\n baseUnset(array, index);\n }\n }\n }\n return array;\n}\n\nexport default basePullAt;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\n\nexport default baseRange;\n","import createRange from './_createRange.js';\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\nvar range = createRange();\n\nexport default range;\n","import baseRange from './_baseRange.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toFinite from './toFinite.js';\n\n/**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\nfunction createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n}\n\nexport default createRange;\n","import baseIteratee from './_baseIteratee.js';\nimport basePullAt from './_basePullAt.js';\n\n/**\n * Removes all elements from `array` that `predicate` returns truthy for\n * and returns an array of the removed elements. The predicate is invoked\n * with three arguments: (value, index, array).\n *\n * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`\n * to pull elements from an array by value.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = [1, 2, 3, 4];\n * var evens = _.remove(array, function(n) {\n * return n % 2 == 0;\n * });\n *\n * console.log(array);\n * // => [1, 3]\n *\n * console.log(evens);\n * // => [2, 4]\n */\nfunction remove(array, predicate) {\n var result = [];\n if (!(array && array.length)) {\n return result;\n }\n var index = -1,\n indexes = [],\n length = array.length;\n\n predicate = baseIteratee(predicate, 3);\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result.push(value);\n indexes.push(index);\n }\n }\n basePullAt(array, indexes);\n return result;\n}\n\nexport default remove;\n","import baseSet from './_baseSet.js';\n\n/**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\nfunction set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n}\n\nexport default set;\n","import baseSum from './_baseSum.js';\nimport identity from './identity.js';\n\n/**\n * Computes the sum of the values in `array`.\n *\n * @static\n * @memberOf _\n * @since 3.4.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {number} Returns the sum.\n * @example\n *\n * _.sum([4, 2, 8, 6]);\n * // => 20\n */\nfunction sum(array) {\n return (array && array.length)\n ? baseSum(array, identity)\n : 0;\n}\n\nexport default sum;\n","/**\n * The base implementation of `_.sum` and `_.sumBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the sum.\n */\nfunction baseSum(array, iteratee) {\n var result,\n index = -1,\n length = array.length;\n\n while (++index < length) {\n var current = iteratee(array[index]);\n if (current !== undefined) {\n result = result === undefined ? current : (result + current);\n }\n }\n return result;\n}\n\nexport default baseSum;\n","import debounce from './debounce.js';\nimport isObject from './isObject.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nexport default throttle;\n","import Set from './_Set.js';\nimport noop from './noop.js';\nimport setToArray from './_setToArray.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nexport default createSet;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nexport default noop;\n","import SetCache from './_SetCache.js';\nimport arrayIncludes from './_arrayIncludes.js';\nimport arrayIncludesWith from './_arrayIncludesWith.js';\nimport cacheHas from './_cacheHas.js';\nimport createSet from './_createSet.js';\nimport setToArray from './_setToArray.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nexport default baseUniq;\n","import baseIteratee from './_baseIteratee.js';\nimport baseUniq from './_baseUniq.js';\n\n/**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nfunction uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : [];\n}\n\nexport default uniqBy;\n","import toString from './toString.js';\n\n/** Used to generate unique IDs. */\nvar idCounter = 0;\n\n/**\n * Generates a unique ID. If `prefix` is given, the ID is appended to it.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {string} [prefix=''] The value to prefix the ID with.\n * @returns {string} Returns the unique ID.\n * @example\n *\n * _.uniqueId('contact_');\n * // => 'contact_104'\n *\n * _.uniqueId();\n * // => '105'\n */\nfunction uniqueId(prefix) {\n var id = ++idCounter;\n return toString(prefix) + id;\n}\n\nexport default uniqueId;\n","import arrayFilter from './_arrayFilter.js';\nimport baseRest from './_baseRest.js';\nimport baseXor from './_baseXor.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport last from './last.js';\n\n/**\n * This method is like `_.xor` except that it accepts `comparator` which is\n * invoked to compare elements of `arrays`. The order of result values is\n * determined by the order they occur in the arrays. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.xorWith(objects, others, _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\nvar xorWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator);\n});\n\nexport default xorWith;\n","import baseDifference from './_baseDifference.js';\nimport baseFlatten from './_baseFlatten.js';\nimport baseUniq from './_baseUniq.js';\n\n/**\n * The base implementation of methods like `_.xor`, without support for\n * iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of values.\n */\nfunction baseXor(arrays, iteratee, comparator) {\n var length = arrays.length;\n if (length < 2) {\n return length ? baseUniq(arrays[0]) : [];\n }\n var index = -1,\n result = Array(length);\n\n while (++index < length) {\n var array = arrays[index],\n othIndex = -1;\n\n while (++othIndex < length) {\n if (othIndex != index) {\n result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);\n }\n }\n }\n return baseUniq(baseFlatten(result, 1), iteratee, comparator);\n}\n\nexport default baseXor;\n","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","/**\n * @file\n * 缓动函数\n * 参考自: https://github.com/bameyrick/js-easing-functions/blob/master/src/index.ts\n */\n\nexport interface EasingFunction {\n (current: number, start: number, end: number, duration: number): number;\n}\n\n/**\n * @export\n * @param {number} current 当前时间\n * @param {number} start 开始值\n * @param {number} end 结束值\n * @param {number} duration 持续时间\n * @returns\n */\nexport const linear: EasingFunction = (current, start, end, duration) => {\n const change = end - start;\n const offset = (change * current) / duration;\n return offset + start;\n};\n\n/**\n * @export\n * @param {number} current 当前时间\n * @param {number} start 开始值\n * @param {number} end 结束值\n * @param {number} duration 持续时间\n * @returns\n */\nexport const easeInOutCubic: EasingFunction = (current, start, end, duration) => {\n const change = (end - start) / 2;\n let time = current / (duration / 2);\n if (time < 1) {\n return change * time * time * time + start;\n }\n time -= 2;\n // eslint-disable-next-line no-return-assign\n return change * (time * time * time + 2) + start;\n};\n","/**\n * Thanks to https://spothero.com/static/main/uniform/docs-js/module-DOMUtils.html\n */\n/* eslint-disable no-param-reassign */\n/* eslint-disable no-undef */\nimport { ComponentPublicInstance, VNode, isVNode, Comment } from 'vue';\nimport raf from 'raf';\nimport { isArray, isString, isFunction } from 'lodash-es';\n\nimport { easeInOutCubic, EasingFunction } from '@tdesign/common-js/utils/easing';\nimport { ScrollContainer, ScrollContainerElement } from '../../components/common';\n\nexport const isServer = typeof window === 'undefined';\nconst trim = (str: string): string => (str || '').replace(/^[\\s\\uFEFF]+|[\\s\\uFEFF]+$/g, '');\n\nexport const on = ((): any => {\n if (!isServer && document.addEventListener) {\n return (\n element: Node,\n event: string,\n handler: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ): any => {\n if (element && event && handler) {\n element.addEventListener(event, handler, options);\n }\n };\n }\n return (element: Node, event: string, handler: EventListenerOrEventListenerObject): any => {\n if (element && event && handler) {\n (element as any).attachEvent(`on${event}`, handler);\n }\n };\n})();\n\nexport const off = ((): any => {\n if (!isServer && document.removeEventListener) {\n return (\n element: Node,\n event: string,\n handler: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ): any => {\n if (element && event) {\n element.removeEventListener(event, handler, options);\n }\n };\n }\n return (element: Node, event: string, handler: EventListenerOrEventListenerObject): any => {\n if (element && event) {\n (element as any).detachEvent(`on${event}`, handler);\n }\n };\n})();\n\nexport function once(\n element: Node,\n event: string,\n handler: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n) {\n const handlerFn = isFunction(handler) ? handler : handler.handleEvent;\n const callback = (evt: any) => {\n handlerFn(evt);\n off(element, event, callback, options);\n };\n\n on(element, event, callback, options);\n}\n\nexport function hasClass(el: Element, cls: string): any {\n if (!el || !cls) return false;\n if (cls.indexOf(' ') !== -1) throw new Error('className should not contain space.');\n if (el.classList) {\n return el.classList.contains(cls);\n }\n return ` ${el.className} `.indexOf(` ${cls} `) > -1;\n}\n\nexport function addClass(el: Element, cls: string): any {\n if (!el) return;\n let curClass = el.className;\n const classes = (cls || '').split(' ');\n\n for (let i = 0, j = classes.length; i < j; i++) {\n const clsName = classes[i];\n if (!clsName) continue;\n\n if (el.classList) {\n el.classList.add(clsName);\n } else if (!hasClass(el, clsName)) {\n curClass += ` ${clsName}`;\n }\n }\n if (!el.classList) {\n el.className = curClass;\n }\n}\n\nexport function removeClass(el: Element, cls: string): any {\n if (!el || !cls) return;\n const classes = cls.split(' ');\n let curClass = ` ${el.className} `;\n\n for (let i = 0, j = classes.length; i < j; i++) {\n const clsName = classes[i];\n if (!clsName) continue;\n\n if (el.classList) {\n el.classList.remove(clsName);\n } else if (hasClass(el, clsName)) {\n curClass = curClass.replace(` ${clsName} `, ' ');\n }\n }\n if (!el.classList) {\n el.className = trim(curClass);\n }\n}\n\nexport const getAttach = (node: any, triggerNode?: any): HTMLElement | Element => {\n const attachNode = isFunction(node) ? node(triggerNode) : node;\n if (!attachNode) {\n return document.body;\n }\n if (isString(attachNode)) {\n return document.querySelector(attachNode);\n }\n if (attachNode instanceof HTMLElement) {\n return attachNode;\n }\n return document.body;\n};\n\n/**\n * 获取滚动容器\n * 因为document不存在scroll等属性, 因此排除document\n * window | HTMLElement\n * @param {ScrollContainerElement} [container='body']\n * @returns {ScrollContainer}\n */\nexport const getScrollContainer = (container: ScrollContainer = 'body'): ScrollContainerElement => {\n if (isString(container)) {\n return document.querySelector(container) as HTMLElement;\n }\n if (isFunction(container)) {\n return container();\n }\n return container;\n};\n\n/**\n * 返回是否window对象\n *\n * @export\n * @param {any} obj\n * @returns\n */\nfunction isWindow(obj: any) {\n return obj && obj === obj.window;\n}\n\ntype ScrollTarget = HTMLElement | Window | Document;\n\n/**\n * 获取滚动距离\n *\n * @export\n * @param {ScrollTarget} target\n * @param {boolean} isLeft true为获取scrollLeft, false为获取scrollTop\n * @returns {number}\n */\nexport function getScroll(target: ScrollTarget, isLeft?: boolean): number {\n // node环境或者target为空\n if (isServer || !target) {\n return 0;\n }\n const method = isLeft ? 'scrollLeft' : 'scrollTop';\n let result = 0;\n if (isWindow(target)) {\n result = (target as Window)[isLeft ? 'pageXOffset' : 'pageYOffset'];\n } else if (target instanceof Document) {\n result = target.documentElement[method];\n } else if (target) {\n result = (target as HTMLElement)[method];\n }\n return result;\n}\ninterface ScrollTopOptions {\n container?: ScrollTarget;\n duration?: number;\n easing?: EasingFunction;\n}\n\ndeclare type ScrollToResult = T | { default: T };\n\nexport function scrollTo(target: number, opt: ScrollTopOptions): Promise {\n const { container = window, duration = 450, easing = easeInOutCubic } = opt;\n const scrollTop = getScroll(container);\n const startTime = Date.now();\n return new Promise((res) => {\n const fnc = () => {\n const timestamp = Date.now();\n const time = timestamp - startTime;\n const nextScrollTop = easing(Math.min(time, duration), scrollTop, target, duration);\n if (isWindow(container)) {\n (container as Window).scrollTo(window.pageXOffset, nextScrollTop);\n } else if (container instanceof Document || container.constructor.name === 'HTMLDocument') {\n (container as Document).documentElement.scrollTop = nextScrollTop;\n } else {\n (container as HTMLElement).scrollTop = nextScrollTop;\n }\n if (time < duration) {\n raf(fnc);\n } else {\n // 由于上面步骤设置了scrollTop, 滚动事件可能未触发完毕\n // 此时应该在下一帧再执行res\n raf(res);\n }\n };\n raf(fnc);\n });\n}\n\nfunction containerDom(parent: VNode | Element | Iterable | ArrayLike, child: any): boolean {\n if (parent && child) {\n let pNode = child;\n while (pNode) {\n if (parent === pNode) {\n return true;\n }\n const { parentNode } = pNode;\n pNode = parentNode;\n }\n }\n return false;\n}\nexport const clickOut = (els: VNode | Element | Iterable | ArrayLike, cb: () => void): void => {\n on(document, 'click', (event: { target: Element }) => {\n if (isArray(els)) {\n const isFlag = Array.from(els).every((item) => containerDom(item, event.target) === false);\n return isFlag && cb && cb();\n }\n if (containerDom(els, event.target)) {\n return false;\n }\n return cb && cb();\n });\n};\n\n// 用于判断节点内容是否溢出\nexport const isTextEllipsis = (\n ele: ComponentPublicInstance | Element | ComponentPublicInstance[] | Element[],\n): boolean => {\n const { clientWidth = 0, scrollWidth = 0 } = ele as Element & { clientWidth: number; scrollWidth: number };\n return scrollWidth > clientWidth;\n};\n\n// 将子元素selected滚动到父元素parentEle的可视范围内\nexport const scrollSelectedIntoView = (parentEle: HTMLElement, selected: HTMLElement) => {\n // 服务端不处理\n if (isServer) return;\n // selected不存在或selected父元素不为parentEle则不处理\n if (!selected || selected.offsetParent !== parentEle) {\n parentEle.scrollTop = 0;\n return;\n }\n const selectedTop = selected.offsetTop;\n const selectedBottom = selectedTop + selected.offsetHeight;\n const parentScrollTop = parentEle.scrollTop;\n const parentViewBottom = parentScrollTop + parentEle.clientHeight;\n if (selectedTop < parentScrollTop) {\n // selected元素滚动过了,则将其向下滚动到可视范围顶部\n parentEle.scrollTop = selectedTop;\n } else if (selectedBottom > parentViewBottom) {\n // selected元素未滚动到,则将其向上滚动到可视范围底部\n parentEle.scrollTop = selectedBottom - parentEle.clientHeight;\n }\n};\n\nexport const requestSubmit = (target: HTMLFormElement) => {\n if (!(target instanceof HTMLFormElement)) {\n throw new Error('target must be HTMLFormElement');\n }\n const submitter = document.createElement('input');\n submitter.type = 'submit';\n submitter.hidden = true;\n target.appendChild(submitter);\n submitter.click();\n target.removeChild(submitter);\n};\n\n/**\n * 检查元素是否在父元素视图\n * http://stackoverflow.com/questions/123999/how-to-tell-if-a-dom-element-is-visible-in-the-current-viewport\n * @param elm 元素\n * @param parent\n * @returns boolean\n */\nexport function elementInViewport(elm: HTMLElement, parent?: HTMLElement): boolean {\n const rect = elm.getBoundingClientRect();\n if (parent) {\n const parentRect = parent.getBoundingClientRect();\n return (\n rect.top >= parentRect.top &&\n rect.left >= parentRect.left &&\n rect.bottom <= parentRect.bottom &&\n rect.right <= parentRect.right\n );\n }\n return rect.top >= 0 && rect.left >= 0 && rect.bottom + 80 <= window.innerHeight && rect.right <= window.innerWidth;\n}\n\n/**\n * 获取元素某个 css 对应的值\n * @param element 元素\n * @param propName css 名\n * @returns string\n */\nexport function getElmCssPropValue(element: HTMLElement, propName: string): string {\n let propValue = '';\n\n if (document.defaultView && document.defaultView.getComputedStyle) {\n propValue = document.defaultView.getComputedStyle(element, null).getPropertyValue(propName);\n }\n\n if (propValue && propValue.toLowerCase) {\n return propValue.toLowerCase();\n }\n\n return propValue;\n}\n\n/**\n * 判断元素是否处在 position fixed 中\n * @param element 元素\n * @returns boolean\n */\nexport function isFixed(element: HTMLElement): boolean {\n const p = element.parentNode as HTMLElement;\n\n if (!p || p.nodeName === 'HTML') {\n return false;\n }\n\n if (getElmCssPropValue(element, 'position') === 'fixed') {\n return true;\n }\n\n return isFixed(p);\n}\n\n/**\n * 获取当前视图滑动的距离\n * @returns { scrollTop: number, scrollLeft: number }\n */\nexport function getWindowScroll(): { scrollTop: number; scrollLeft: number } {\n const { body } = document;\n const docElm = document.documentElement;\n const scrollTop = window.pageYOffset || docElm.scrollTop || body.scrollTop;\n const scrollLeft = window.pageXOffset || docElm.scrollLeft || body.scrollLeft;\n\n return { scrollTop, scrollLeft };\n}\n\n/**\n * 获取当前视图的大小\n * @returns { width: number, height: number }\n */\nexport function getWindowSize(): { width: number; height: number } {\n if (window.innerWidth !== undefined) {\n return { width: window.innerWidth, height: window.innerHeight };\n }\n const doc = document.documentElement;\n return { width: doc.clientWidth, height: doc.clientHeight };\n}\n\n/**\n * 判断一个 VNode 是否是注释节点(Comment)\n * Vue 3 中注释节点的 type 是 Comment\n *\n * @param node - 任意节点\n * @returns 是否为注释类型的 VNode\n */\nexport const isCommentVNode = (node: unknown): node is VNode => {\n return isVNode(node) && node.type === Comment;\n};\n","import { App, Plugin, Component, Directive } from 'vue';\n\nexport function withInstall(\n comp: T,\n alias?: string,\n directive?: { name: string; comp: Directive },\n): T & Plugin {\n const componentPlugin = comp as T & Component & Plugin;\n\n componentPlugin.install = (app: App, name?: string) => {\n app.component(alias || name || componentPlugin.name, comp);\n directive && app.directive(directive.name, directive.comp);\n };\n\n return componentPlugin as T & Plugin;\n}\n","import { VNode, isVNode, Fragment } from 'vue';\nimport { isArray, isString, isObject } from 'lodash-es';\n\n// TODO:PAOPAO move? i have no idea\nexport interface JSXRenderContext {\n defaultNode?: VNode | string;\n params?: Record;\n slotFirst?: boolean;\n // 是否不打印 LOG\n silent?: boolean;\n}\n\nexport type OptionsType = VNode | JSXRenderContext | string;\n\nexport function getDefaultNode(options?: OptionsType) {\n let defaultNode;\n if (isObject(options) && 'defaultNode' in options) {\n defaultNode = options.defaultNode;\n } else if (isVNode(options) || isString(options)) {\n defaultNode = options;\n }\n return defaultNode;\n}\n\nexport function getChildren(content: VNode[]) {\n const childList: VNode[] = [];\n const innerGetChildren = (content: VNode[]) => {\n if (!isArray(content)) return;\n content.forEach((item: VNode) => {\n if (item.children && isArray(item.children)) {\n if (item.type !== Fragment) return;\n innerGetChildren(item.children as VNode[]);\n } else {\n childList.push(item);\n }\n });\n return childList;\n };\n\n return innerGetChildren(content);\n}\n\n// TODO:PAOPAO looks like a common util??\nexport function getParams(options?: OptionsType) {\n // TODO:PAOPAO in ??? in my view, it is better to use hasOwnProperty instead of in if it is not necessary.\n return isObject(options) && 'params' in options ? options.params : {};\n}\n\n// TODO:PAOPAO as above\n// and only hooks tnode import this one, so, can we move it to tnode hooks directly????\nexport function getSlotFirst(options?: OptionsType): boolean {\n return isObject(options) && 'slotFirst' in options ? options.slotFirst : false;\n}\n","import {\n Slots,\n VNode,\n Component,\n getCurrentInstance,\n Fragment,\n Comment,\n RendererNode,\n VNodeArrayChildren,\n RendererElement,\n VNodeChild,\n isVNode,\n Teleport,\n} from 'vue';\nimport { isArray } from 'lodash-es';\nimport { getChildren } from '@tdesign/shared-utils';\n\n/**\n * 渲染default slot,获取子组件VNode。处理多种子组件创建场景\n * 使用场景: , \n * @returns {function(childComponentName: string, slots: Slots): VNode[]}\n * @param childComponentName\n * @param slots\n * @example const getChildByName = useChildComponentSlots()\n * @example getChildComponentByName('TStepItem')\n */\nexport function useChildComponentSlots() {\n const instance = getCurrentInstance();\n return (childComponentName: string, slots?: Slots): VNode[] => {\n if (!slots) {\n slots = instance.slots;\n }\n const content = slots?.default?.() || [];\n\n return getChildren(content).filter((item: VNode) =>\n (item.type as Component).name?.endsWith(childComponentName),\n ) as VNode[];\n };\n}\n\n/**\n * 渲染default slot,获取slot child\n * @param childComponentName\n * @param slots\n * @example const getChildSlots = useChildSlots()\n * @example getChildSlots()\n */\nexport function useChildSlots(): () => (\n | VNode<\n RendererNode,\n RendererElement,\n {\n [key: string]: any;\n }\n >\n | VNodeArrayChildren\n | VNodeChild\n)[] {\n const instance = getCurrentInstance();\n return () => {\n const { slots } = instance;\n const content = slots?.default?.() || [];\n\n return content\n .filter((item) => {\n if (typeof item.type === 'symbol' && !item.children) {\n return false;\n }\n return item.type !== Comment;\n })\n .map((item) => {\n if (item.children && isArray(item.children) && item.type === Fragment) return item.children;\n return item;\n })\n .flat();\n };\n}\n\n/**\n * 递归展开所有 Fragment,并跳过 Comment 节点,返回一维 VNodeChild 数组\n * @example const useFlatChildrenSlots = useFlatChildrenSlotsHook()\n * @example useFlatChildrenSlots(children)\n */\nexport function useFlatChildrenSlots() {\n function getFlatChildren(children: VNodeChild[]): VNodeChild[] {\n const result: VNodeChild[] = [];\n children.forEach((child) => {\n if (isVNode(child) && child.type === Fragment && Array.isArray(child.children)) {\n result.push(...getFlatChildren(child.children as VNodeChild[]));\n } else if (isVNode(child) && [Teleport, Comment].some((vNode) => vNode === child.type)) {\n // skip Teleport and Comment\n } else {\n result.push(child);\n }\n });\n return result;\n }\n return getFlatChildren;\n}\n","import { isFunction, isObject } from 'lodash-es';\n\nconst { hasOwnProperty } = Object.prototype;\n\nexport const hasOwn = (val: T, key: string | symbol | number): key is keyof T => hasOwnProperty.call(val, key);\nexport const getPropertyValFromObj = (\n val: T,\n key: string | symbol | number,\n): T[keyof T] | undefined => (hasOwn(val, key) ? val[key] : undefined);\n\nconst objectToString: typeof Object.prototype.toString = Object.prototype.toString;\nconst toTypeString = (value: unknown): string => objectToString.call(value);\nexport const isPlainObject = (val: unknown): val is T => toTypeString(val) === '[object Object]';\nexport const isPromise = (val: unknown): val is Promise => (isObject(val) || isFunction(val))\n && isFunction((val as any).then)\n && isFunction((val as any).catch);\n","import { h, getCurrentInstance, ComponentInternalInstance, VNode } from 'vue';\nimport { camelCase, kebabCase, isFunction } from 'lodash-es';\n\nimport {\n getDefaultNode,\n getParams,\n OptionsType,\n JSXRenderContext,\n getSlotFirst,\n isCommentVNode,\n} from '@tdesign/shared-utils';\nimport { hasOwn } from '@tdesign/common-js/utils/general';\n\n// 兼容处理插槽名称,同时支持驼峰命名和中划线命名,示例:value-display 和 valueDisplay\nfunction handleSlots(instance: ComponentInternalInstance, name: string, params: Record) {\n // 2023-08 new Function 触发部分使用场景安全策略问题(Chrome插件/eletron等)\n // // 每个 slots 需要单独的 h 函数 否则直接assign会重复把不同 slots 的 params 都注入\n // const finalParams = new Function('return ' + h.toString())();\n // if (params) {\n // Object.assign(finalParams, params);\n // }\n\n // 检查是否存在 驼峰命名 的插槽(过滤注释节点)\n let node = instance.slots[camelCase(name)]?.(params);\n if (node && node.filter((t) => !isCommentVNode(t)).length) return node;\n // 检查是否存在 中划线命名 的插槽\n node = instance.slots[kebabCase(name)]?.(params);\n if (node && node.filter((t) => !isCommentVNode(t)).length) return node;\n return null;\n}\n\n/**\n * 是否为空节点,需要过滤掉注释节点。注释节点也会被认为是空节点\n */\nfunction isEmptyNode(node: any) {\n if ([undefined, null, ''].includes(node)) return true;\n const innerNodes = node instanceof Array ? node : [node];\n const r = innerNodes.filter((node) => node?.type?.toString() !== 'Symbol(Comment)');\n return !r.length;\n}\n\n// TODO 可以把这里移动到 utils 中\n/**\n * 检查用户是否有主动传 prop\n * @param instance 组件实例\n * @param propName prop 名称\n * @returns boolean\n */\nfunction isPropExplicitlySet(instance: ComponentInternalInstance, propName: string) {\n const vProps = instance?.vnode.props || {};\n return hasOwn(vProps, camelCase(propName)) || hasOwn(vProps, kebabCase(propName));\n}\n\n/**\n/**\n * 通过 JSX 的方式渲染 TNode,props 和 插槽同时处理,也能处理默认值为 true 则渲染默认节点的情况\n * 优先级:用户注入的 props 值 > slot > 默认 props 值\n * 如果 props 值为 true ,则使用插槽渲染。如果也没有插槽的情况下,则使用 defaultNode 渲染\n * @example const renderTNodeJSX = useTNodeJSX()\n * @return () => {}\n * @param name 插槽和属性名称\n * @param options 值可能为默认渲染节点,也可能是默认渲染节点和参数的集合\n * @example renderTNodeJSX('closeBtn') 优先级 props function 大于 插槽\n * @example renderTNodeJSX('closeBtn', )。 当属性值为 true 时则渲染 \n * @example renderTNodeJSX('closeBtn', { defaultNode: , params })。 params 为渲染节点时所需的参数\n */\nexport const useTNodeJSX = () => {\n const instance = getCurrentInstance();\n return function (name: string, options?: OptionsType) {\n // 渲染节点时所需的参数\n const renderParams = getParams(options);\n // 默认渲染节点\n // TODO 这里需要讨论,这里的默认节点规则是什么呢? pp test:unit image-viewer pp test:unit Collapse\n const defaultNode = getDefaultNode(options);\n // 是否显示设置 slot 优先\n const isSlotFirst = getSlotFirst(options);\n // 插槽\n const renderSlot = instance.slots[camelCase(name)] || instance.slots[kebabCase(name)];\n\n if (isSlotFirst && renderSlot) {\n // 1. 如果显示设置了 slot 优先,并且存在 slot,那么优先使用 slot\n return handleSlots(instance, name, renderParams);\n } else {\n // 2. 否者按照 用户主动传入的 props 值 > slot > 默认 props 值\n // 2.1 处理主动传入的 prop\n if (isPropExplicitlySet(instance, name)) {\n // 2.1.1 如果有传,那么优先使用 prop 的值\n const propsNode = instance.props[camelCase(name)] || instance.props[kebabCase(name)];\n // 如果该属性的类型有多种且包含 Boolean 和 Slot 的情况下,处理 boolean casting true 的场景\n // https://vuejs.org/guide/components/props.html#boolean-casting\n const types = instance.type.props[name]?.type;\n if (types?.length > 1) {\n if (types.includes(Boolean) && types.includes(Function)) {\n if (propsNode === '' && !renderSlot) return defaultNode;\n }\n }\n // 2.1.2 如果 prop 的值为 false 或者 null,那么直接不渲染\n if (propsNode === false || propsNode === null) return;\n // 2.1.3 如果 prop 的值为 true,那么使用 slot 渲染\n if (propsNode === true) {\n return handleSlots(instance, name, renderParams) || defaultNode;\n }\n // 2.1.4 如果 prop 的值为函数,那么执行函数\n if (isFunction(propsNode)) return propsNode(h, renderParams);\n // 2.1.5 如果 prop 的值为 undefined、'',那么使用插槽渲染\n const isPropsEmpty = [undefined, ''].includes(propsNode as any);\n if (isPropsEmpty && renderSlot) {\n return handleSlots(instance, name, renderParams);\n }\n // 2.1.6 如果 prop 的值为其他值,那么直接返回\n return propsNode;\n }\n // 2.2 如果未主动传入 prop,那么渲染 slot,当然前提是存在 slot\n if (renderSlot) {\n return handleSlots(instance, name, renderParams);\n }\n // 2.3 如果未主动传入 prop,也没有 slot,那么就走 prop\n const propsNode = instance.props[camelCase(name)] || instance.props[kebabCase(name)];\n if (propsNode === false || propsNode === null) return;\n if (propsNode === true) {\n return defaultNode;\n }\n if (isFunction(propsNode)) return propsNode(h, renderParams);\n return propsNode;\n }\n };\n};\n\n/**\n * 在setup中,通过JSX的方式 TNode,props 和 插槽同时处理。与 renderTNodeJSX 区别在于属性值为 undefined 时会渲染默认节点\n * @example const renderTNodeJSXDefault = useTNodeDefault()\n * @return () => {}\n * @param name 插槽和属性名称\n * @example renderTNodeJSXDefault('closeBtn')\n * @example renderTNodeJSXDefault('closeBtn', ) closeBtn 为空时,则兜底渲染 \n * @example renderTNodeJSXDefault('closeBtn', { defaultNode: , params }) 。params 为渲染节点时所需的参数\n */\nexport const useTNodeDefault = () => {\n const renderTNodeJSX = useTNodeJSX();\n return function (name: string, options?: VNode | JSXRenderContext) {\n const defaultNode = getDefaultNode(options);\n return renderTNodeJSX(name, options) || defaultNode;\n };\n};\n\n/**\n * 在setup中,用于处理相同名称的 TNode 渲染\n * @example const renderContent = useContent()\n * @return () => {}\n * @param name1 第一个名称,优先级高于 name2\n * @param name2 第二个名称\n * @param defaultNode 默认渲染内容:当 name1 和 name2 都为空时会启动默认内容渲染\n * @example renderContent('default', 'content')\n * @example renderContent('default', 'content', '我是默认内容')\n * @example renderContent('default', 'content', { defaultNode: '我是默认内容', params })\n */\nexport const useContent = () => {\n const renderTNodeJSX = useTNodeJSX();\n return function (name1: string, name2: string, options?: VNode | JSXRenderContext) {\n // assemble params && defaultNode\n const params = getParams(options);\n const defaultNode = getDefaultNode(options);\n\n const toParams = params ? { params } : undefined;\n\n const node1 = renderTNodeJSX(name1, toParams);\n const node2 = renderTNodeJSX(name2, toParams);\n\n const res = isEmptyNode(node1) ? node2 : node1;\n return isEmptyNode(res) ? defaultNode : res;\n };\n};\n\n/**\n * 过滤掉注释节点。\n *\n * @param nodes - VNode 数组\n * @returns 去除注释节点后的 VNode 数组。\n */\nexport const filterCommentNode = (nodes: VNode[]): VNode[] => {\n return nodes.filter((node) => !isCommentVNode(node));\n};\n","export type AnimationType = 'ripple' | 'expand' | 'fade';\n\nexport default {\n classPrefix: 't',\n animation: {\n include: ['ripple', 'expand', 'fade'],\n exclude: [],\n } as Record<'include' | 'exclude', Array>,\n attach: null,\n calendar: {\n firstDayOfWeek: 1,\n fillWithZero: true,\n controllerConfig: undefined,\n },\n icon: {},\n input: {\n autocomplete: '',\n },\n dialog: {\n closeOnEscKeydown: true,\n closeOnOverlayClick: true,\n confirmBtnTheme: {\n default: 'primary',\n info: 'primary',\n warning: 'primary',\n danger: 'primary',\n success: 'primary',\n },\n },\n message: {},\n popconfirm: {\n confirmBtnTheme: {\n default: 'primary',\n warning: 'primary',\n danger: 'primary',\n },\n },\n table: {\n // 展开和收起图标(使用收起图标)\n expandIcon: undefined,\n // 排序图标(使用降序图标)\n sortIcon: undefined,\n // 过滤图标\n filterIcon: undefined,\n // 树形结构展开图标\n treeExpandAndFoldIcon: undefined,\n // 是否隐藏排序图标的文本提示\n hideSortTips: false,\n // 全局表格尺寸配置\n size: 'medium',\n },\n select: {\n // 清除按钮\n clearIcon: undefined,\n filterable: false,\n },\n drawer: {\n closeOnEscKeydown: true,\n closeOnOverlayClick: true,\n size: 'small',\n },\n tree: {\n // 目录层级图标\n folderIcon: undefined,\n },\n datePicker: {\n firstDayOfWeek: 1,\n },\n steps: {\n checkIcon: undefined,\n errorIcon: undefined,\n },\n tag: {\n closeIcon: undefined,\n },\n form: {\n requiredMark: undefined,\n },\n empty: {\n titleText: {\n maintenance: undefined,\n success: undefined,\n fail: undefined,\n empty: undefined,\n networkError: undefined,\n },\n image: {\n maintenance: undefined,\n success: undefined,\n fail: undefined,\n empty: undefined,\n networkError: undefined,\n }\n },\n} as const;\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)> = Symbol('configProvide');\n\nexport const mergeWith = (defaultGlobalConfig: GlobalConfigProvider, injectConfig: GlobalConfigProvider) =>\n _mergeWith(defaultGlobalConfig, injectConfig, (objValue, srcValue) => {\n if (isArray(objValue)) {\n return srcValue;\n }\n });\n","import { isString } from 'lodash-es';\n\n/**\n * 复数规则判断函数\n * @param count 数量\n * @returns 返回复数形式的索引 (0: zero/none, 1: one, 2: other/many)\n */\nfunction getPluralIndex(count: number): number {\n if (count === 0) return 0; // no items\n if (count === 1) return 1; // one item\n return 2; // multiple items\n}\n\n/**\n * @see https://github.com/Tencent/tdesign-vue-next/blob/develop/packages/components/config-provider/hooks/useConfig.ts#L48\n * 自定义 t function 可能依赖特定库函数,例如 tdesign-vue-next 中使用了 vue 的 h 函数\n * 因此交由各个类库自行实现\n */\n\n/**\n * 国际化函数,支持复数处理和变量替换\n *\n * 示例用法:\n * 1. 基本变量替换:\n * t('Hello {name}', { name: 'World' }) // => 'Hello World'\n *\n * 2. 复数处理(传入数字):\n * t('no apples | one apple | {count} apples', 0) // => 'no apples'\n * t('no apples | one apple | {count} apples', 1) // => 'one apple'\n * t('no apples | one apple | {count} apples', 5) // => '5 apples'\n *\n * 3. 复合使用:\n * t('no items found | found {count} item | found {count} items', 3, { count: 3 }) // => 'found 3 items'\n */\n\n// 类型重载定义\nexport function t(pattern: string): string;\nexport function t(pattern: string, data: Record): string;\nexport function t(pattern: string, count: number): string;\nexport function t(pattern: string, count: number, data: Record): string;\nexport function t(pattern: T): string;\n\n/**\n * @param pattern 文本模式,可以是字符串、函数或其他类型\n * @param args 参数列表,支持 (count: number) 或 (count: number, data: object) 或 (data: object)\n * @returns 处理后的文本\n */\nexport function t(pattern: T, ...args: any[]): string {\n if (isString(pattern)) {\n let text = pattern as string;\n let count: number | undefined;\n let data: Record = {};\n\n // 解析参数\n if (args.length > 0) {\n const [firstArg, secondArg] = args;\n\n if (typeof firstArg === 'number') {\n // 第一个参数是数字,表示 count\n count = firstArg;\n if (secondArg && typeof secondArg === 'object') {\n // 第二个参数是对象,表示额外的数据\n data = secondArg;\n } else {\n data.count = count; // 若没有提供第二个参数,则将 count 添加到数据中\n }\n } else if (typeof firstArg === 'object' && firstArg !== null) {\n // 第一个参数是对象,表示数据\n data = firstArg;\n }\n }\n\n // 处理复数形式:支持 \"no items | one item | {count} items\" 格式\n if (text.includes('|')) {\n const pluralParts = text.split('|').map((part) => part.trim());\n\n if (typeof count === 'number') {\n // 使用 count 进行复数处理\n const pluralIndex = getPluralIndex(count);\n\n // 根据复数索引选择对应的文本\n if (pluralIndex < pluralParts.length) {\n text = pluralParts[pluralIndex];\n } else {\n // 如果索引超出范围,使用最后一个选项\n text = pluralParts[pluralParts.length - 1];\n }\n } else {\n // 如果没有 count,默认使用第一个选项\n const [firstPart] = pluralParts;\n text = firstPart;\n }\n }\n\n // 处理变量替换:{key} 格式\n if (data && Object.keys(data).length > 0) {\n const regular = /\\{\\s*([\\w-]+)\\s*\\}/g;\n text = text.replace(regular, (match, key) => {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n return String(data[key]);\n }\n return match; // 如果找不到对应的键,保留原始占位符\n });\n }\n\n return text as any;\n }\n\n // 如果不是字符串或函数,返回空字符串\n return '';\n}\n","// TODO 应当提取到公共 hooks 中\nimport { computed, h, inject, getCurrentInstance, ref, provide } from 'vue';\nimport { cloneDeep, isFunction } from 'lodash-es';\n\nimport { defaultGlobalConfig, configProviderInjectKey, mergeWith } from '../utils/context';\nimport { GlobalConfigProvider, TdConfigProviderProps } from '../type';\n\nimport { t as commonT } from '@tdesign/common-js/global-config/t';\n\n// 这是为了解决在非component里调用useConfig hook时发出的警告\n// https://github.com/Tencent/tdesign-vue-next/issues/2025\nconst globalConfigCopy = ref();\n\nexport * from '../type';\n\n/**\n * component globalConfig\n * @param componentName\n * @returns {t, globalConfig}\n * useConfig('pagination')\n */\nexport function useConfig(\n componentName: T = undefined,\n componentLocale?: GlobalConfigProvider[T],\n) {\n const injectGlobalConfig = getCurrentInstance() ? inject(configProviderInjectKey, null) : globalConfigCopy;\n const mergedGlobalConfig = computed(() => injectGlobalConfig?.value || defaultGlobalConfig);\n const globalConfig = computed(() => Object.assign({}, mergedGlobalConfig.value[componentName], componentLocale));\n\n const classPrefix = computed(() => {\n return mergedGlobalConfig.value.classPrefix;\n });\n\n // 处理正则表达式\n const t = function (pattern: T, ...args: any[]) {\n if (isFunction(pattern)) {\n // 重要:组件的渲染必须存在参数 h,不能移除\n if (!args.length) return pattern(h);\n return pattern(...args);\n }\n // 使用公共翻译函数,以支持复数处理\n // @ts-expect-error be passed to rest parameter\n return commonT(pattern, ...args);\n };\n\n return {\n t,\n global: globalConfig,\n globalConfig,\n classPrefix,\n };\n}\n\n/**\n * provide globalConfig\n * @param {TdConfigProviderProps} props\n * @returns {ComputedRef}\n */\nexport const provideConfig = (props: TdConfigProviderProps) => {\n const defaultData = cloneDeep(defaultGlobalConfig);\n const mergedGlobalConfig = computed(() =>\n Object.assign({}, mergeWith(defaultData as unknown as GlobalConfigProvider, props.globalConfig)),\n );\n\n provide(configProviderInjectKey, mergedGlobalConfig);\n\n if (!globalConfigCopy.value) {\n globalConfigCopy.value = mergedGlobalConfig.value;\n }\n\n return mergedGlobalConfig;\n};\n","import { computed } from 'vue';\n// TODO need refactor\nimport { useConfig } from '../../../components/config-provider/hooks/useConfig';\n\nexport function usePrefixClass(componentName?: string) {\n const { classPrefix } = useConfig('classPrefix');\n return computed(() => {\n return componentName ? `${classPrefix.value}-${componentName}` : classPrefix.value;\n });\n}\n\nexport { useConfig };\n","import { computed } from 'vue';\nimport { useConfig } from '../useConfig';\n\nexport function useCommonClassName() {\n const { classPrefix } = useConfig('classPrefix');\n\n return {\n classPrefix,\n SIZE: computed(() => ({\n small: `${classPrefix.value}-size-s`,\n medium: `${classPrefix.value}-size-m`,\n large: `${classPrefix.value}-size-l`,\n default: '',\n xs: `${classPrefix.value}-size-xs`,\n xl: `${classPrefix.value}-size-xl`,\n block: `${classPrefix.value}-size-full-width`,\n })),\n STATUS: computed(() => ({\n loading: `${classPrefix.value}-is-loading`,\n loadMore: `${classPrefix.value}-is-load-more`,\n disabled: `${classPrefix.value}-is-disabled`,\n focused: `${classPrefix.value}-is-focused`,\n success: `${classPrefix.value}-is-success`,\n error: `${classPrefix.value}-is-error`,\n warning: `${classPrefix.value}-is-warning`,\n selected: `${classPrefix.value}-is-selected`,\n active: `${classPrefix.value}-is-active`,\n checked: `${classPrefix.value}-is-checked`,\n current: `${classPrefix.value}-is-current`,\n hidden: `${classPrefix.value}-is-hidden`,\n visible: `${classPrefix.value}-is-visible`,\n expanded: `${classPrefix.value}-is-expanded`,\n indeterminate: `${classPrefix.value}-is-indeterminate`,\n })),\n };\n}\n\nexport type CommonClassNameType = ReturnType;\n","import { ref, Ref, getCurrentInstance } from 'vue';\nimport { kebabCase } from 'lodash-es';\nimport { ChangeHandler } from '../useVModel';\n\nexport function useDefaultValue(\n value: Ref,\n defaultValue: T,\n onChange: ChangeHandler,\n propsName: string,\n): [Ref, ChangeHandler] {\n const { emit, vnode } = getCurrentInstance();\n const internalValue: Ref = ref();\n\n const vProps = vnode.props || {};\n const isVMP =\n Object.prototype.hasOwnProperty.call(vProps, propsName) ||\n Object.prototype.hasOwnProperty.call(vProps, kebabCase(propsName));\n\n if (isVMP) {\n return [\n value,\n (newValue, ...args) => {\n emit(`update:${propsName}`, newValue);\n onChange?.(newValue, ...args);\n },\n ];\n }\n\n internalValue.value = defaultValue;\n return [\n internalValue,\n (newValue, ...args) => {\n internalValue.value = newValue;\n onChange?.(newValue, ...args);\n },\n ];\n}\n","import { ref, provide, onUpdated } from 'vue';\n\nexport const TDisplayNoneElementRefresh = 't-display-none-element-refresh';\n\n// destroyOnClose=false 时,父元素为 display: none,此时的子元素无法获取到自身元素的任何宽度\n// 因此,需在父元素 display: none 发生变化时主动更新子元素\nexport function useDestroyOnClose() {\n const refresh = ref(0);\n provide(TDisplayNoneElementRefresh, refresh);\n onUpdated(() => {\n refresh.value += 1;\n });\n}\n","import { Ref, inject, computed, getCurrentInstance } from 'vue';\nimport { isBoolean } from 'lodash-es';\n// TODO: need refator\nimport { TdFormProps } from '../../../components/form/type';\n\nexport interface FormDisabledProvider {\n disabled: Ref;\n}\n\nexport interface DisabledContext {\n beforeDisabled?: Ref;\n afterDisabled?: Ref;\n}\n\n/**\n * 用于实现组件全局禁用状态的hook\n * 优先级:(beforeDisabled) > Component.disabled > ComponentGroup.disabled(afterDisabled) > Form.disabled\n * @returns\n */\nexport function useDisabled(context?: DisabledContext) {\n const currentInstance = getCurrentInstance();\n const componentDisabled = computed(() => currentInstance.props.disabled as boolean);\n\n const formDisabled = inject('formDisabled', Object.create(null));\n\n return computed(() => {\n if (isBoolean(context?.beforeDisabled?.value)) return context.beforeDisabled.value;\n // Component\n if (isBoolean(componentDisabled.value)) return componentDisabled.value;\n // ComponentGroup\n if (isBoolean(context?.afterDisabled?.value)) return context.afterDisabled.value;\n // Form\n if (isBoolean(formDisabled.disabled?.value)) return formDisabled.disabled.value;\n\n return false;\n });\n}\n","import { onUnmounted } from 'vue';\n\nconst traversalTabNavs = (tabNavs: HTMLCollection, fn: { (itemNode: any): void; (tabNav: HTMLDivElement): void }) => {\n for (const itemNode of tabNavs) {\n if (itemNode.getAttribute('draggable')) {\n fn(itemNode);\n }\n }\n};\n\nconst handleTarget = (target: EventTarget, tabNavs: HTMLCollection): any => {\n let resultTarget;\n traversalTabNavs(tabNavs, (itemNode) => {\n if (itemNode.contains(target)) {\n resultTarget = itemNode;\n }\n });\n return resultTarget;\n};\n\nexport function useDragSort(props: any) {\n let navsWrap: HTMLDivElement = null;\n\n // 获取当前正在拖动的tabNav节点\n let dragged: HTMLDivElement;\n const enterTargets: HTMLDivElement[] = [];\n\n const dragstart = (event: DragEvent) => {\n const target = event.target as HTMLDivElement;\n // const { target } = event;\n // 保存拖动元素的引用(ref.)\n dragged = target;\n // 使其半透明\n target.style.opacity = '0.5';\n };\n const dragend = (event: DragEvent) => {\n // 重置透明度\n (event.target as HTMLDivElement).style.opacity = '';\n };\n /* 放置目标元素时触发事件 */\n const dragover = (event: DragEvent) => {\n // 阻止默认动作以启用drop\n event.preventDefault();\n };\n // 当可拖动的元素进入可放置的目标时\n const dragenter = (event: DragEvent) => {\n // 高亮目标节点\n const target = handleTarget(event.target, navsWrap.children);\n if (target && target !== dragged && target.draggable) {\n target.firstChild.style.outline = '1px dashed #0052d9';\n // 进入的节点全部记录下来\n if (!enterTargets.includes(target)) {\n enterTargets.push(target);\n }\n }\n };\n // 当拖动元素离开可放置目标节点\n const dragleave = (event: DragEvent) => {\n const target = event.target as HTMLDivElement;\n // 重置其边框\n // const { target } = event;\n for (const enterTarget of enterTargets) {\n // 目标不在需要放入的节点内,则重置边框\n if (!enterTarget.contains(target)) {\n // 记录过的节点全部重置边框\n (enterTarget.firstChild as HTMLDivElement).style.outline = 'none';\n }\n }\n };\n const drop = (event: DragEvent) => {\n // 阻止默认动作(如打开一些元素的链接)\n event.preventDefault();\n\n traversalTabNavs(navsWrap.children, (tabNav) => {\n tabNav.firstChild.style.outline = 'none';\n });\n // 将拖动的元素到所选择的放置目标节点中\n let target = handleTarget(event.target, navsWrap.children);\n if (target && target.parentNode !== dragged && target.draggable) {\n // 获取拖拽元素index\n const dragIndex = [].indexOf.call(navsWrap.children, dragged);\n // 获取放入元素index\n const targetIndex = [].indexOf.call(navsWrap.children, target);\n if (targetIndex > dragIndex) {\n target = navsWrap.children[targetIndex + 1];\n }\n\n // 当props.theme === \"normal\" 会多出一个指示条为第一个dom节点,所以需要减1\n const currentIndex = props.theme === 'card' ? dragIndex : dragIndex - 1;\n const endIndex = props.theme === 'card' ? targetIndex : targetIndex - 1;\n props.onDragSort?.({\n currentIndex,\n current: props.panels[currentIndex].value,\n targetIndex: endIndex,\n target: props.panels[endIndex].value,\n });\n }\n };\n function setNavsWrap(val: HTMLDivElement) {\n navsWrap = val;\n navsWrap.addEventListener('dragstart', dragstart, false);\n navsWrap.addEventListener('dragend', dragend, false);\n navsWrap.addEventListener('dragover', dragover, false);\n navsWrap.addEventListener('dragenter', dragenter, false);\n document.addEventListener('dragleave', dragleave, false);\n document.addEventListener('mousemove', dragleave, false);\n navsWrap.addEventListener('drop', drop, false);\n }\n\n onUnmounted(() => {\n if (navsWrap) {\n navsWrap.removeEventListener('dragstart', dragstart);\n navsWrap.removeEventListener('dragend', dragend);\n navsWrap.removeEventListener('dragover', dragover);\n navsWrap.removeEventListener('dragenter', dragenter);\n document.removeEventListener('dragleave', dragleave);\n document.removeEventListener('mousemove', dragleave);\n navsWrap.removeEventListener('drop', drop);\n }\n });\n return { setNavsWrap };\n}\n","export default function observe(\n element: HTMLElement,\n root: HTMLElement,\n callback: Function,\n marginBottom: number,\n): IntersectionObserver {\n if (typeof window === 'undefined') return null;\n if (!window || !window.IntersectionObserver) {\n callback();\n return null;\n }\n let io: IntersectionObserver = null;\n try {\n io = new window.IntersectionObserver(\n (entries) => {\n const entry = entries[0];\n if (entry.isIntersecting) {\n callback();\n io.unobserve(element);\n }\n },\n {\n rootMargin: `0px 0px ${marginBottom}px 0px`,\n root,\n },\n );\n io.observe(element);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(e);\n callback();\n }\n return io;\n}\n","import { useConfig } from '../useConfig';\n// TODO need refactor\nimport { IconConfig } from '@tdesign/components/config-provider/type';\n\n// 从 globalConfig 获取 icon 配置用于覆盖组件内置 icon\nexport function useGlobalIcon(tdIcon: object): IconConfig {\n const { globalConfig } = useConfig('icon');\n\n const resultIcon: IconConfig = {};\n\n Object.keys(tdIcon).forEach((key: keyof typeof tdIcon) => {\n resultIcon[key] = globalConfig.value?.[key] || tdIcon[key];\n });\n\n return resultIcon;\n}\n\nexport default useGlobalIcon;\n","/* eslint-disable no-console */\nimport { Log } from './types';\n\nconst logSet = new Set();\n\nconst log: Log = {\n warn(componentName, message): void {\n console.warn(`TDesign ${componentName} Warn: ${message}`);\n },\n warnOnce(componentName, message): void {\n const msgContent = `TDesign ${componentName} Warn: ${message}`;\n if (logSet.has(msgContent)) return;\n logSet.add(msgContent);\n console.warn(msgContent);\n },\n error(componentName, message): void {\n console.error(`TDesign ${componentName} Error: ${message}`);\n },\n errorOnce(componentName, message): void {\n const msgContent = `TDesign ${componentName} Error: ${message}`;\n if (logSet.has(msgContent)) return;\n logSet.add(msgContent);\n console.error(msgContent);\n },\n info(componentName, message): void {\n console.info(`TDesign ${componentName} Info: ${message}`);\n },\n};\n\nexport default log;\n","import { SizeUnit } from './types';\nimport log from '../log/log';\n\nexport const IMAGE_REGEXP = /(.png|.jpg|.jpeg|.jpe|.webp|.avif|.svg|.gif|.bmp)/i;\nexport const IMAGE_ALL_REGEXP = /(.png|.jpg|.jpeg|.jpe|.webp|.avif|.svg|.gif|.bmp|.dwg|.dxf|.svf|.tif|.tiff|.arw)/i;\nexport const FILE_PDF_REGEXP = /(.pdf)/i;\nexport const FILE_EXCEL_REGEXP = /(.xlsx|.xls|.csv|.xlc|.xlm|.xlt|.xlw)/i;\nexport const FILE_WORD_REGEXP = /(.dox|docx|.document|.wps|.wdb|.msword)/i;\nexport const FILE_PPT_REGEXP = /(.ppt|.pptx|.key)/i;\nexport const VIDEO_REGEXP = /(.avi|.mp4|.wmv|.mpg|.mpeg|.mov|.rm|.ram|.swf|.flv|.rmvb|.flash|.mid|.3gp)/i;\nexport const AUDIO_REGEXP = /(.mp2|.mp3|.mp4|.ogg|.3gpp|.ac3|.au)/i;\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types\n */\nconst INPUT_FILE_MAP = {\n 'audio/*': AUDIO_REGEXP,\n 'video/*': VIDEO_REGEXP,\n 'image/*': IMAGE_ALL_REGEXP,\n '.jpg': /image\\/jpeg|\\.jpg$/i,\n '.ico': /image\\/vnd.microsoft.icon/i,\n '.doc': /application\\/msword/i,\n '.docx': /application\\/vnd.openxmlformats-officedocument.wordprocessingml.document/i,\n '.xls': /application\\/vnd.ms-excel/i,\n '.xlsx': /application\\/vnd.openxmlformats-officedocument.spreadsheetml.sheet/i,\n '.ppt': /application\\/vnd.ms-powerpoint/i,\n '.pptx': /application\\/vnd.openxmlformats-officedocument.presentationml.presentation/i,\n '.vsd': /application\\/vnd.visio/i,\n '.txt': /text\\/plain/i,\n '.abw': /application\\/x-abiword/i,\n '.avi': /video\\/x-msvideo/i,\n '.azw': /application\\/vnd.amazon.ebook/i,\n '.bin': /application\\/octet-stream/i,\n '.cda': /application\\/x-cdf/i,\n '.mpkg': /application\\/vnd.apple.installer+xml/i,\n '.odp': /application\\/vnd.oasis.opendocument.presentation/i,\n '.ods': /application\\/vnd.oasis.opendocument.spreadsheet/i,\n '.odt': /application\\/vnd.oasis.opendocument.text/i,\n '.oga': /audio\\/ogg/i,\n '.ogv': /video\\/ogg/i,\n '.ogx': /application\\/ogg/i,\n};\n\n/**\n * 各个单位和 KB 的关系\n *\n * [*] 表示方法采用这种方式\n * [x] 表示方法不采用这种方式\n *\n * [x] bit 位 b 0 or 1\n * [*] byte 字节 B 8 bits\n * [x] kilobit 千位 kb 1000 bites\n * [*] kilobyte 千字节(二进制) KB 1024 bytes\n * [x] kilobyte 千字节(十进制) KB 1000 bytes\n * [x] Megabite 百万位 Mb 1000 kilobits\n * [*] Megabyte 兆字节(二进制) KB 1024 kilobytes\n * [*] Megabyte 兆字节(十进制) KB 1000 kilobytes\n * [x] Gigabit 万亿位 Gb 1000 Megabite\n * [*] Gigabyte 吉字节(二进制) GB 1024 Megabytes\n * [x] Gigabyte 吉字节(十进制) GB 1000 Megabytes\n */\nexport const SIZE_MAP = {\n B: 1,\n KB: 1024,\n MB: 1048576, // 1024 * 1024\n GB: 1073741824, // 1024 * 1024 * 1024\n};\n\nexport function returnFileSize(number: number) {\n if (number < SIZE_MAP.KB) {\n return `${number} Bytes`;\n }\n if (number >= SIZE_MAP.KB && number < SIZE_MAP.MB) {\n return `${(number / SIZE_MAP.KB).toFixed(1)} KB`;\n }\n if (number >= SIZE_MAP.MB && number < SIZE_MAP.GB) {\n return `${(number / SIZE_MAP.MB).toFixed(1)} MB`;\n }\n\n if (number >= SIZE_MAP.GB) {\n return `${(number / SIZE_MAP.GB).toFixed(1)} GB`;\n }\n return '';\n}\n\nexport function getCurrentDate(needTime = false) {\n const d = new Date();\n let month: string | number = d.getMonth() + 1;\n month = month < 10 ? `0${month}` : month;\n const date = `${d.getFullYear()}-${month}-${d.getDate()}`;\n const time = `${d.getHours()}:${d.getMinutes()}:${d.getSeconds()}`;\n if (needTime) return [date, time].join(' ');\n return date;\n}\n\n/**\n * 缩略文件名 ABCDEFG => ABC...FG\n * @param inputName 文件名\n * @param leftCount 左边长度\n * @param rightCount 右边长度\n * @returns 缩略后的文件名\n */\nexport function abridgeName(\n inputName: string,\n leftCount = 5,\n rightCount = 7\n): string {\n const name = inputName;\n let leftLength = 0;\n let rightLength = 0;\n if (!name) return '';\n for (let i = 0; i < name.length; i++) {\n const w = name[i];\n const isCn = escape(w).indexOf('%u') === 0;\n if (i < leftCount * 2 && leftLength < leftCount) {\n // eslint-disable-next-line no-unused-expressions\n isCn ? (leftLength += 1) : (leftLength += 2);\n } else if (i > i - rightCount && rightLength < rightCount) {\n // eslint-disable-next-line no-unused-expressions\n isCn ? (rightLength += 1) : (rightLength += 2);\n }\n }\n return name.replace(\n new RegExp(`^(.{${leftLength}})(.+)(.{${rightLength}})$`),\n '$1…$3'\n );\n}\n\nexport function getFileSizeText(number: number) {\n if (number < 1024) {\n return `${number} Bytes`;\n }\n if (number >= 1024 && number < 1048576) {\n return `${(number / 1024).toFixed(1)} KB`;\n }\n if (number >= 1048576) {\n return `${(number / 1048576).toFixed(1)} MB`;\n }\n return '';\n}\n\n/**\n * 大小比较\n * @param size 文件大小,单位:B\n * @param unit 计算机计量单位\n */\nexport function isOverSizeLimit(\n fileSize: number,\n sizeLimit: number,\n unit: SizeUnit\n) {\n const units = ['B', 'KB', 'MB', 'GB'];\n const KBIndex = 1;\n let index = units.indexOf(unit);\n if (index === -1) {\n log.warn('Upload', `\\`sizeLimit.unit\\` can only be one of ${units.join()}`);\n index = KBIndex;\n }\n const num = SIZE_MAP[unit];\n return fileSize > sizeLimit * num;\n}\n\n// vue2临时使用的 sizeLimit 计算\nexport function isOverSizeLimit1(\n fileSize: number,\n sizeLimit: number,\n unit: SizeUnit\n) {\n // 以 KB 为单位进行比较\n const units = ['B', 'KB', 'MB', 'GB'];\n // 各个单位和 KB 的关系\n\n const KBIndex = 1;\n let index = units.indexOf(unit);\n if (index === -1) {\n // eslint-disable-next-line no-console\n console.warn(\n `TDesign Upload Warn: \\`sizeLimit.unit\\` can only be one of ${units.join()}`\n );\n index = KBIndex;\n }\n const num = SIZE_MAP[unit];\n const limit = index < KBIndex ? sizeLimit / num : sizeLimit * num;\n return fileSize <= limit;\n}\n\nexport const urlCreator = () => window.webkitURL || window.URL;\n\nexport function getFileUrlByFileRaw(fileRaw: File): Promise {\n return new Promise((resolve) => {\n if (!fileRaw) {\n resolve('');\n return;\n }\n const reader = new FileReader();\n reader.readAsDataURL(fileRaw);\n reader.onload = (event: ProgressEvent) => {\n resolve(event.target?.result as string);\n };\n });\n}\n\nexport function validateFileType(accept: string, fileType: string, fileName?: string) {\n const tmpFileType = fileType || fileName;\n if (!accept) return true;\n\n if (!tmpFileType) return false;\n\n const acceptList = accept.split(',').map((v) => v.trim());\n for (let i = 0, len = acceptList.length; i < len; i++) {\n const oneRule = acceptList[i] as keyof typeof INPUT_FILE_MAP;\n if (INPUT_FILE_MAP[oneRule] && INPUT_FILE_MAP[oneRule].test(tmpFileType)) {\n return true;\n }\n const regExp = new RegExp(oneRule, 'i');\n if (regExp.test(tmpFileType)) {\n return true;\n }\n }\n return false;\n}\n\nexport function getFileList(files: FileList, accept: string = '') {\n const fileList: File[] = [];\n for (let i = 0; i < files.length; i++) {\n if (validateFileType(accept, files[i].type, files[i].name)) {\n fileList.push(files[i]);\n }\n }\n return fileList;\n}\n","import { ComputedRef, ref, Ref, watch } from 'vue';\nimport { getFileUrlByFileRaw } from '@tdesign/common-js/upload/utils';\n\nexport function useImagePreviewUrl(imgUrl: Ref | ComputedRef) {\n const previewUrl = ref('');\n\n watch(\n [imgUrl],\n ([imgUrl], [preImgUrl]) => {\n if (preImgUrl === imgUrl) return;\n if (typeof imgUrl === 'string') {\n previewUrl.value = imgUrl;\n return;\n }\n getFileUrlByFileRaw(imgUrl).then((url) => {\n previewUrl.value = url;\n });\n },\n { immediate: true },\n );\n\n return { previewUrl };\n}\n","import { useConfig } from '../useConfig';\n// TODO need refactor\nimport { EAnimationType } from '../../../components/config-provider/utils/context';\n\nconst { expand, ripple, fade } = EAnimationType;\n\nexport function useKeepAnimation() {\n const { globalConfig } = useConfig('animation');\n\n const keepAnimation = (type: EAnimationType) => {\n const animationConfig = globalConfig.value;\n return animationConfig && !animationConfig.exclude?.includes(type) && animationConfig.include?.includes(type);\n };\n return {\n keepExpand: keepAnimation(expand),\n keepRipple: keepAnimation(ripple),\n keepFade: keepAnimation(fade),\n };\n}\n","import { onBeforeUnmount, onMounted } from 'vue';\n\n/**\n * 用于订阅Listener事件\n * @param updateSize\n */\nexport function useListener(type: string, listener: () => void): void {\n onMounted(() => {\n window.addEventListener(type, listener);\n });\n\n onBeforeUnmount(() => {\n window.removeEventListener(type, listener);\n });\n}\n\nexport function useResize(listener: () => void, observer?: HTMLElement) {\n useListener('resize', listener);\n\n let resizeObserver: ResizeObserver = null;\n\n onMounted(() => {\n if (!window.ResizeObserver || !observer) return;\n resizeObserver = new window.ResizeObserver(listener);\n resizeObserver.observe(observer);\n });\n\n onBeforeUnmount(() => {\n resizeObserver?.disconnect();\n });\n}\n","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","// https://github.dev/arco-design/arco-design-vue\nimport { onMounted, onBeforeUnmount, readonly, Ref, ref, watch } from 'vue';\nexport type PopupType = 'popup' | 'dialog' | 'message' | 'drawer';\n\nconst popupStackType = ['dialog', 'drawer'];\nconst POPUP_BASE_Z_INDEX = 1000;\nconst MESSAGE_BASE_Z_INDEX = 5000;\nconst Z_INDEX_STEP = 1;\n\nclass PopupManager {\n private popupStack = {\n popup: new Set(),\n dialog: new Set(),\n message: new Set(),\n drawer: new Set(),\n };\n\n private zIndexStack: number[] = [];\n\n private getNextZIndex = (type: PopupType) => {\n const current =\n type === 'message'\n ? Array.from(this.popupStack.message).pop() || MESSAGE_BASE_Z_INDEX\n : Array.from(this.popupStack.popup).pop() || POPUP_BASE_Z_INDEX;\n return current + Z_INDEX_STEP;\n };\n\n public add = (type: PopupType) => {\n const zIndex = this.getNextZIndex(type);\n this.popupStack[type].add(zIndex);\n if (popupStackType.includes(type)) {\n this.popupStack.popup.add(zIndex);\n }\n this.zIndexStack.push(zIndex);\n return zIndex;\n };\n\n public delete = (zIndex: number, type: PopupType) => {\n this.popupStack[type].delete(zIndex);\n if (popupStackType.includes(type)) {\n this.popupStack.popup.delete(zIndex);\n }\n const index = this.zIndexStack.indexOf(zIndex);\n if (index !== -1) {\n this.zIndexStack.splice(index, 1);\n }\n };\n\n // 最顶层的交互式弹窗(指Dialog和Drawer)\n public isTopInteractivePopup = (popupType: PopupType, zIndex: number) => {\n if (popupStackType.includes(popupType)) {\n const lastZIndex = this.zIndexStack[this.zIndexStack.length - 1];\n return zIndex === lastZIndex;\n }\n\n if (this.popupStack[popupType]?.size > 1) {\n return zIndex === Array.from(this.popupStack[popupType]).pop();\n }\n\n return true;\n };\n\n public getLastZIndex = () => {\n return this.zIndexStack[this.zIndexStack.length - 1];\n };\n}\n\nconst popupManager = new PopupManager();\n\nexport function usePopupManager(\n type: PopupType,\n {\n visible,\n runOnMounted,\n }: {\n visible?: Ref;\n runOnMounted?: boolean;\n } = {},\n) {\n const zIndex = ref(0);\n\n const open = () => {\n zIndex.value = popupManager.add(type);\n };\n\n const close = () => {\n popupManager.delete(zIndex.value, type);\n };\n\n const isTopInteractivePopup = () => {\n if (popupStackType.includes(type)) {\n return popupManager.isTopInteractivePopup(type, zIndex.value);\n }\n return false;\n };\n\n watch(\n () => visible?.value,\n (visible) => {\n if (visible) {\n open();\n } else {\n close();\n }\n },\n {\n immediate: true,\n },\n );\n\n if (runOnMounted) {\n onMounted(() => {\n open();\n });\n\n onBeforeUnmount(() => {\n close();\n });\n }\n\n return {\n zIndex: readonly(zIndex),\n open,\n close,\n isTopInteractivePopup,\n };\n}\n","import { Ref, inject, computed, getCurrentInstance } from 'vue';\nimport { isBoolean } from 'lodash-es';\n// TODO need refactor\nimport { TdFormProps } from '../../../components/form/type';\n\nexport interface FormReadonlyProvider {\n readonly: Ref;\n}\n\nexport interface ReadonlyContext {\n beforeReadonly?: Ref;\n afterReadonly?: Ref;\n}\n\n/**\n * 用于实现组件全局只读状态的hook\n * 优先级:(beforeReadonly) > Component.readonly > ComponentGroup.readonly(afterReadonly) > Form.readonly\n * @returns\n */\nexport function useReadonly(context?: ReadonlyContext) {\n const currentInstance = getCurrentInstance();\n const componentReadonly = computed(() => currentInstance.props.readonly as boolean);\n\n const formReadonly = inject('formReadonly', Object.create(null));\n\n return computed(() => {\n if (isBoolean(context?.beforeReadonly?.value)) return context.beforeReadonly.value;\n // Component\n if (isBoolean(componentReadonly?.value)) return componentReadonly.value;\n // ComponentGroup\n if (isBoolean(context?.afterReadonly?.value)) return context.afterReadonly.value;\n // Form\n if (isBoolean(formReadonly.readonly?.value)) return formReadonly.readonly.value;\n\n return false;\n });\n}\n","import { Ref, watch, onBeforeUnmount } from 'vue';\n\nexport function useResizeObserver(container: Ref, callback: (data: ResizeObserverEntry[]) => void) {\n if (typeof window === 'undefined') return;\n\n const isSupport = window && (window as Window & typeof globalThis).ResizeObserver;\n // unit tests do not need any warn console; too many warns influence focusing on more important log info\n if (!isSupport) return;\n\n let containerObserver: ResizeObserver = null;\n\n const cleanupObserver = () => {\n if (!containerObserver || !container.value) return;\n containerObserver.unobserve(container.value);\n containerObserver.disconnect();\n containerObserver = null;\n };\n\n const addObserver = (el: HTMLElement) => {\n containerObserver = new ResizeObserver(callback);\n containerObserver.observe(el);\n };\n\n // can not use container.value to judge\n container &&\n watch(\n container,\n (el) => {\n cleanupObserver();\n el && addObserver(el);\n },\n { immediate: true, flush: 'post' },\n );\n\n onBeforeUnmount(() => {\n cleanupObserver();\n });\n}\n","import { Styles } from '../common';\n\n/**\n * 用于为节点增加styles\n * @param el HTMLElement\n * @param style Styles\n */\nfunction setStyle(el: HTMLElement, styles: Styles): void {\n const keys = Object.keys(styles);\n keys.forEach((key) => {\n // @ts-ignore\n // eslint-disable-next-line no-param-reassign\n el.style[key] = styles[key];\n });\n // TODO: 这个怎么样\n // Object.assign(el.style, styles);\n}\n\nexport default setStyle;\n","import { ref, onMounted, onUnmounted, Ref } from 'vue';\nimport { useKeepAnimation } from '../useKeepAnimation';\nimport { usePrefixClass } from '../useConfig';\nimport setStyle from '@tdesign/common-js/utils/setStyle';\n\nconst period = 200;\nconst noneRippleBg = 'rgba(0, 0, 0, 0)';\nconst defaultRippleColor = 'rgba(0, 0, 0, 0.35)';\n\n// 设置动画颜色 get the ripple animation color\nconst getRippleColor = (el: HTMLElement, fixedRippleColor?: string) => {\n // get fixed color from params\n if (fixedRippleColor) {\n return fixedRippleColor;\n }\n // get dynamic color from the dataset\n if (el?.dataset?.ripple) {\n const rippleColor = el.dataset.ripple;\n return rippleColor;\n }\n // use css variable\n const cssVariable = getComputedStyle(el).getPropertyValue('--ripple-color');\n if (cssVariable) {\n return cssVariable;\n }\n return defaultRippleColor;\n};\n\n/**\n * 斜八角动画hooks 支持三种方式使用\n * 1. fixedRippleColor 固定色值 useRipple(ref,fixedRippleColor);\n * 2. dynamicColor 动态色值 data.ripple=\"rippleColor\" useRipple(ref)\n * 3. CSS variables(recommended) 配合节点对应CSS设置 --ripple-color useRipple(ref)\n * @param ref 需要使用斜八角动画的DOM\n * @param fixedRippleColor 斜八角的动画颜色\n */\nexport function useRipple(el: Ref, fixedRippleColor?: Ref) {\n const rippleContainer = ref(null);\n const classPrefix = usePrefixClass();\n\n // 全局配置ripple\n const { keepRipple } = useKeepAnimation();\n\n // 为节点添加斜八角动画 add ripple to the DOM and set up the animation\n const handleAddRipple = (e: MouseEvent) => {\n const dom = el.value;\n const rippleColor = getRippleColor(dom, fixedRippleColor?.value);\n if (e.button !== 0 || !el || !keepRipple) return;\n\n if (\n dom.classList.contains(`${classPrefix.value}-is-active`) ||\n dom.classList.contains(`${classPrefix.value}-is-disabled`) ||\n dom.classList.contains(`${classPrefix.value}-is-checked`) ||\n dom.classList.contains(`${classPrefix.value}-is-loading`)\n )\n return;\n\n const elStyle = getComputedStyle(dom);\n\n const elBorder = parseInt(elStyle.borderWidth, 10);\n const border = elBorder > 0 ? elBorder : 0;\n const width = dom.offsetWidth;\n const height = dom.offsetHeight;\n\n if (rippleContainer.value.parentNode === null) {\n setStyle(rippleContainer.value, {\n position: 'absolute',\n left: `${0 - border}px`,\n top: `${0 - border}px`,\n width: `${width}px`,\n height: `${height}px`,\n borderRadius: elStyle.borderRadius,\n pointerEvents: 'none',\n overflow: 'hidden',\n });\n dom.appendChild(rippleContainer.value);\n }\n // 新增一个ripple\n const ripple = document.createElement('div');\n\n setStyle(ripple, {\n marginTop: '0',\n marginLeft: '0',\n right: `${width}px`,\n width: `${width + 20}px`,\n height: '100%',\n transition: `transform ${period}ms cubic-bezier(.38, 0, .24, 1), background ${period * 2}ms linear`,\n transform: 'skewX(-8deg)',\n pointerEvents: 'none',\n position: 'absolute',\n zIndex: 0,\n backgroundColor: rippleColor,\n opacity: '0.9',\n });\n\n // fix zIndex:避免遮盖内部元素\n const elMap = new WeakMap();\n for (let n = dom.children.length, i = 0; i < n; ++i) {\n const child = dom.children[i];\n if ((child as HTMLElement).style.zIndex === '' && child !== rippleContainer.value) {\n (child as HTMLElement).style.zIndex = '1';\n elMap.set(child, true);\n }\n }\n\n // fix position\n const initPosition = dom.style.position ? dom.style.position : getComputedStyle(dom).position;\n if (initPosition === '' || initPosition === 'static') {\n // eslint-disable-next-line no-param-reassign\n dom.style.position = 'relative';\n }\n rippleContainer.value.insertBefore(ripple, rippleContainer.value.firstChild);\n\n setTimeout(() => {\n ripple.style.transform = `translateX(${width}px)`;\n }, 0);\n // 清除动画节点 clear ripple container\n const handleClearRipple = () => {\n ripple.style.backgroundColor = noneRippleBg;\n\n if (!el.value) return;\n\n el.value.removeEventListener('pointerup', handleClearRipple, false);\n el.value.removeEventListener('pointerleave', handleClearRipple, false);\n\n setTimeout(() => {\n ripple.remove();\n if (rippleContainer.value.children.length === 0) rippleContainer.value.remove();\n }, period * 2 + 100);\n };\n el.value.addEventListener('pointerup', handleClearRipple, false);\n el.value.addEventListener('pointerleave', handleClearRipple, false);\n };\n\n onMounted(() => {\n const dom = el?.value;\n if (!dom) return;\n\n rippleContainer.value = document.createElement('div');\n\n dom.addEventListener('pointerdown', handleAddRipple, false);\n });\n\n onUnmounted(() => {\n el?.value?.removeEventListener('pointerdown', handleAddRipple, false);\n });\n}\n","import { getAttach } from '@tdesign/shared-utils';\nimport { computed, Ref, onMounted, ref, watch } from 'vue';\n// TODO need refactor\nimport { AttachNode } from '../../../components/common';\nimport { isFunction } from 'lodash-es';\n\n/**\n * @description 返回挂载的节点, 用于teleport\n * @param attach 既可以是一个函数, 也可以是一个ref\n * @param triggerNode 既可以是一个函数, 也可以是一个ref\n */\nexport function useTeleport(\n attach: (() => AttachNode) | Ref,\n triggerNode?: (() => any) | Ref,\n): Ref {\n // 如果是函数, 则使用computed包裹 否则直接使用ref\n const to = isFunction(attach) ? computed(attach) : ref(attach);\n const innerTriggerNode = isFunction(triggerNode) ? computed(triggerNode) : ref(triggerNode);\n\n const element = ref();\n\n const getElement = () => {\n element.value = getAttach(to.value, innerTriggerNode.value);\n };\n\n onMounted(() => getElement());\n\n watch([to, innerTriggerNode], () => getElement());\n\n return element;\n}\n","import { ref, Ref, getCurrentInstance } from 'vue';\nimport { kebabCase } from 'lodash-es';\n\nexport type ChangeHandler = (value: T, ...args: P) => void;\n\nexport function useVModel(\n value: Ref,\n modelValue: Ref,\n defaultValue: T,\n onChange: ChangeHandler,\n propName = 'value',\n): [Ref, ChangeHandler] {\n const { emit, vnode } = getCurrentInstance();\n const internalValue: Ref = ref();\n\n const vProps = vnode.props || {};\n const isVM =\n Object.prototype.hasOwnProperty.call(vProps, 'modelValue') ||\n Object.prototype.hasOwnProperty.call(vProps, 'model-value');\n const isVMP =\n Object.prototype.hasOwnProperty.call(vProps, propName) ||\n Object.prototype.hasOwnProperty.call(vProps, kebabCase(propName));\n\n if (isVM) {\n return [\n modelValue,\n (newValue, ...args) => {\n emit('update:modelValue', newValue);\n onChange?.(newValue, ...args);\n },\n ];\n }\n\n if (isVMP) {\n return [\n value,\n (newValue, ...args) => {\n emit(`update:${propName}`, newValue);\n onChange?.(newValue, ...args);\n },\n ];\n }\n\n internalValue.value = defaultValue;\n return [\n internalValue,\n (newValue, ...args) => {\n internalValue.value = newValue;\n onChange?.(newValue, ...args);\n },\n ];\n}\n","/**\n * 基于原作者(@louiszhai)的思路二次开发,为保证其他组件暂不受影响,单独开一个文件\n * 新增支持以下 3 个特性\n * 1. 支持不同表格高度\n * 2. 支持滚动到特定元素,方便 Select 等组件展开时直接定位到选中元素\n * 3. 支持数据变化不重置,方便支持树形结构虚拟滚动\n */\nimport { ref, computed, watch, Ref } from 'vue';\n// TODO need refactor\nimport { TScroll } from '../../../components/common';\nimport { useResizeObserver } from '../useResizeObserver';\nimport { max, min, sum, throttle } from 'lodash-es';\n\nexport type UseVirtualScrollParams = Ref<{\n /** 列数据 */\n data: { [key: string]: any }[];\n scroll: TScroll & {\n /** 固定行(冻结行),示例:[M, N],表示冻结头 M 行和尾 N 行。M 和 N 值为 0 时,表示不冻结行 */\n fixedRows?: Array;\n };\n preventResizeRefresh?: boolean;\n}>;\n\nexport interface ScrollToElementParams {\n /** 跳转元素下标 */\n index: number;\n /** 跳转元素距离顶部的距离 */\n top?: number;\n /** 单个元素高度非固定场景下,即 isFixedRowHeight = false。延迟设置元素位置,一般用于依赖不同高度异步渲染等场景,单位:毫秒 */\n time?: number;\n behavior?: 'auto' | 'smooth';\n}\n\nexport function useVirtualScrollNew(container: Ref, params: UseVirtualScrollParams) {\n /** 注意测试:数据长度为空;数据长度小于表格高度等情况。即期望只有数据量达到一定程度才允许开启虚拟滚动 */\n const visibleData = ref([]);\n // 用于显示表格列\n const translateY = ref((params.value.data?.length || 0) * (params.value.scroll?.rowHeight || 50));\n // 滚动高度,用于显示滚动条\n const scrollHeight = ref(0);\n // 已经通过节点渲染计算出来的各自行高\n // 不要使用响应式,数据量大时会产生卡顿\n let trHeightList: number[] = [];\n const containerHeight = ref(0);\n const containerWidth = ref(0);\n const startAndEndIndex = ref<[number, number]>([0, 15]);\n\n // 设置初始值\n const tScroll = computed(() => {\n const { scroll } = params.value;\n if (!scroll) return {};\n return {\n bufferSize: scroll.bufferSize || 10,\n isFixedRowHeight: scroll.isFixedRowHeight ?? false,\n rowHeight: scroll.rowHeight || 47,\n threshold: scroll.threshold || 100,\n type: scroll.type,\n fixedRows: scroll.fixedRows ?? [0, 0],\n };\n });\n\n // 当前场景是否满足开启虚拟滚动的条件\n const isVirtualScroll = computed(() => {\n const { data } = params.value;\n return tScroll.value.type === 'virtual' && tScroll.value.threshold < data.length;\n });\n\n // 一次循环遍历中计算可视范围的相关信息,减少大数据量时的遍历开销\n function getVisibleRangeConfig() {\n const scrollTop = container.value?.scrollTop ?? 0;\n const fixedStart = tScroll.value.fixedRows[0];\n\n // 记录前置 buffer 的高度\n const prevBufferHeightList: number[] = [];\n // 没有被渲染的行的高度,用于设定容器的 translateY\n let hiddenHeight = 0;\n\n let visibleStart = -1;\n let visibleEnd = -1;\n\n let totalHeight = 0;\n\n for (let i = 0, len = params.value.data.length; i < len; i++) {\n const rowHeight = trHeightList[i] ?? tScroll.value.rowHeight;\n totalHeight = totalHeight + rowHeight;\n // 获取第一个可视范围内的元素\n if (totalHeight > scrollTop && visibleStart === -1) {\n visibleStart = i;\n if (visibleStart - tScroll.value.bufferSize > 0) {\n hiddenHeight = totalHeight - rowHeight - sum(prevBufferHeightList);\n }\n }\n if (visibleStart === -1) {\n prevBufferHeightList.push(rowHeight);\n if (prevBufferHeightList.length > tScroll.value.bufferSize) {\n prevBufferHeightList.shift();\n }\n }\n // 获取最后一个可视范围内的元素\n if (\n visibleEnd === -1 &&\n (totalHeight > containerHeight.value + scrollTop || i === params.value.data.length - 1)\n ) {\n visibleEnd = i;\n }\n\n if (visibleStart !== -1 && visibleEnd !== -1) {\n // 不再统计高度\n break;\n }\n }\n\n // 前后偏移 buffer\n const startIndex = max([visibleStart - tScroll.value.bufferSize, 0]);\n const endIndex = min([visibleEnd + tScroll.value.bufferSize, params.value.data.length]);\n\n // 以 sticky 定位渲染的固定行,会占据高度,影响整体高度\n const stickyHeight = sum(trHeightList.slice(0, Math.min(startIndex, fixedStart)));\n\n return {\n startIndex,\n endIndex,\n translateY: hiddenHeight - stickyHeight,\n };\n }\n\n const updateVisibleData = throttle(() => {\n // 计算前后的buffer偏移后的渲染数据\n const { startIndex, endIndex, translateY: translateYValue } = getVisibleRangeConfig();\n\n // 需要考虑固定行的情况\n const fixedRows = tScroll.value.fixedRows;\n const [fixedStart, fixedEnd] = fixedRows;\n let fixedStartData = fixedStart ? params.value.data.slice(0, fixedStart) : [];\n if (fixedStart && startIndex < fixedStart) {\n fixedStartData = fixedStartData.slice(0, startIndex);\n }\n let fixedEndData = fixedEnd ? params.value.data.slice(params.value.data.length - fixedEnd) : [];\n const bottomStartIndex = endIndex - params.value.data.length + 1 + (fixedEnd ?? 0);\n if (fixedEnd && bottomStartIndex > 0) {\n fixedEndData = fixedEndData.slice(bottomStartIndex);\n }\n\n if (startAndEndIndex.value.join() !== [startIndex, endIndex].join() && startIndex >= 0) {\n translateY.value = translateYValue;\n visibleData.value = fixedStartData.concat(params.value.data.slice(startIndex, endIndex), fixedEndData);\n startAndEndIndex.value = [startIndex, endIndex];\n }\n }, 100);\n\n // 固定高度场景,不需要通过行渲染获取高度(仅非固定高度场景需要)\n const handleRowMounted = (rowData: any) => {\n if (!isVirtualScroll.value || !rowData || tScroll.value.isFixedRowHeight || !container.value) return;\n const trHeight = rowData.ref.value?.getBoundingClientRect().height || tScroll.value.rowHeight;\n const rowIndex = rowData.data.VIRTUAL_SCROLL_INDEX;\n\n if (trHeightList[rowIndex] !== trHeight) {\n const diff = trHeight - trHeightList[rowIndex];\n trHeightList[rowIndex] = trHeight;\n // 采用 diff 的方式更新,不再遍历数组\n scrollHeight.value = scrollHeight.value + diff;\n }\n };\n\n const handleScroll = () => {\n if (!isVirtualScroll.value) return;\n updateVisibleData();\n };\n\n const refreshVirtualScroll = ([{ contentRect }]: [ResizeObserverEntry]) => {\n // 如果宽度发生变化,重置滚动位置\n if (params.value.preventResizeRefresh) return;\n const maxScrollbarWidth = 16;\n if (Math.abs(contentRect.width - containerWidth.value) > maxScrollbarWidth && !!container.value) {\n container.value.scrollTop = 0;\n translateY.value = 0;\n }\n containerWidth.value = contentRect.width;\n // 高度更新后,由 height 独立的 watch 触发可视区域的更新\n containerHeight.value = contentRect.height;\n };\n\n const addIndexToData = (data: any[]) => {\n data.forEach((item, index) => {\n // eslint-disable-next-line\n item['VIRTUAL_SCROLL_INDEX'] = index;\n });\n };\n\n const updateScrollTop = ({ index, top = 0, behavior }: ScrollToElementParams) => {\n const scrollTop = sum(trHeightList.slice(0, index + 1)) - top;\n\n container.value.scrollTo({\n top: scrollTop,\n behavior: behavior || 'auto',\n });\n };\n\n /**\n * 滚动到指定元素(对外暴露的方法,谨慎修改)\n */\n const scrollToElement = (p: ScrollToElementParams) => {\n updateScrollTop(p);\n // 不同行高的表格需要异步计算\n if (!tScroll.value.isFixedRowHeight) {\n const duration = p.time ?? 60;\n const timer = setTimeout(() => {\n updateScrollTop(p);\n clearTimeout(timer);\n }, duration);\n }\n };\n\n // 如果初始化时 isVirtualScroll 为 false,undefined 的 ref 会导致无法监听元素高度变化\n useResizeObserver(\n computed(() => (isVirtualScroll.value ? container.value : undefined)),\n refreshVirtualScroll,\n );\n\n // 固定高度场景,可直接通过数据长度计算出最大滚动高度\n watch(\n () => [[...params.value.data], tScroll.value, isVirtualScroll.value, container.value],\n () => {\n if (!isVirtualScroll.value || !container.value) return;\n const { data } = params.value;\n addIndexToData(data);\n\n // 有可能初始化时,resize 监听没触发,尝试设置初始化容器高度\n containerHeight.value = container.value.getBoundingClientRect().height;\n\n if (trHeightList.length !== params.value.data.length) {\n // 暂时对于 table 和 tree 场景,信任之前缓存的行高\n // 后续优化可能提供一个参数,进行监听从而清除记录的行高会更好\n const initHeightList: number[] = Array.from(trHeightList);\n // 数据长度如果发生变化,裁剪高度记录的数组,避免算出异常的总高度\n initHeightList.length = params.value.data.length;\n initHeightList.fill(tScroll.value.rowHeight || 47);\n trHeightList = initHeightList;\n }\n\n scrollHeight.value = sum(trHeightList);\n\n // 清除记录的滚动顺序\n startAndEndIndex.value = [0, 0];\n updateVisibleData();\n },\n { immediate: true },\n );\n\n // 当容器高度变化后,重新计算可视区域数据\n watch(\n () => containerHeight.value,\n () => {\n updateVisibleData();\n },\n );\n\n return {\n visibleData,\n translateY,\n scrollHeight,\n isVirtualScroll,\n handleScroll,\n handleRowMounted,\n scrollToElement,\n };\n}\n\nexport type VirtualScrollConfig = ReturnType;\n","import { onBeforeUnmount, onMounted, ref, watch } from 'vue';\nimport { debounce, isEqual } from 'lodash-es';\n\nexport interface MutationCallback {\n (mutations: MutationRecord[]): void;\n}\n\ninterface Options {\n debounceTime?: number;\n config?: MutationObserverInit;\n}\n\nconst DEFAULT_OPTIONS: Options = {\n debounceTime: 0,\n config: {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true,\n },\n};\n\n/**\n * useMutationObservable\n * @param targetEl 监听对象\n * @param callback 回调方法\n * @param options 配置项\n */\nexport function useMutationObservable(\n targetEl: HTMLElement | null,\n callback: MutationCallback,\n options: Options = DEFAULT_OPTIONS,\n) {\n const mergedOptions = ref({ ...DEFAULT_OPTIONS, ...options });\n let observer: MutationObserver | null = null;\n\n const initObserver = () => {\n if (!targetEl) return;\n\n const { debounceTime = 0, config = DEFAULT_OPTIONS.config } = mergedOptions.value;\n const handler: MutationCallback = (...args) => {\n callback?.(...args);\n };\n\n observer?.disconnect();\n observer = new MutationObserver(debounceTime > 0 ? debounce(handler, debounceTime) : handler);\n observer.observe(targetEl, config);\n };\n\n watch(\n () => options,\n (newOptions) => {\n if (!isEqual(newOptions, mergedOptions.value)) {\n mergedOptions.value = { ...DEFAULT_OPTIONS, ...newOptions };\n initObserver();\n }\n },\n { deep: true },\n );\n\n onMounted(initObserver);\n onBeforeUnmount(() => observer?.disconnect());\n}\n\nexport default useMutationObservable;\n","export type PlainObject = { [key: string]: any };\n\nexport type OptionData = {\n label?: string;\n value?: string | number;\n} & PlainObject;\n\nexport type TreeOptionData = {\n children?: Array> | boolean;\n /** option label content */\n label?: any;\n /** option search text */\n text?: string;\n /** option value */\n value?: T;\n} & PlainObject;\n\nexport type SizeEnum = 'small' | 'medium' | 'large';\n\nexport type HorizontalAlignEnum = 'left' | 'center' | 'right';\n\nexport type VerticalAlignEnum = 'top' | 'middle' | 'bottom';\n\nexport type ClassName = { [className: string]: any } | ClassName[] | string;\n\nexport type CSSSelector = string;\n\nexport interface Styles {\n [css: string]: string | number;\n}\n\nexport enum EKeyboardDirection {\n left = 37,\n up = 38,\n right = 39,\n down = 40,\n}\n\nexport const ARROW_DOWN_REG = /^ArrowDown$/i;\nexport const ARROW_UP_REG = /^ArrowUp$/i;\nexport const ARROW_LEFT_REG = /^ArrowLeft$/i;\nexport const ARROW_RIGHT_REG = /^ArrowRight$/i;\nexport const ESCAPE_REG = /^Escape$/i;\nexport const SPACE_REG = /^Space$/i;\nexport const ENTER_REG = /^Enter$/i;\nexport const SHIFT_REG = /^(Shift|ShiftLeft|ShiftRight)$/i;\nexport const CLEAR_REG = /^KeyC$/i;\nexport const ALL_REG = /^(KeyA|KeyL)$/i;\nexport const CHECKED_CODE_REG = /^(Enter|Space)$/i;\n\nexport const THEME_MODE = 'theme-mode';\n","/**\n * 获取颜色token的色值\n * @example getColorTokenColor('--td-brand-color')\n * @returns string\n */\nexport const getColorTokenColor = (token: string): string => {\n const targetElement = document?.documentElement;\n const styles = getComputedStyle(targetElement);\n return styles.getPropertyValue(token).trim() ?? '';\n};\n\nexport default getColorTokenColor;\n","import { ref } from 'vue';\nimport type { Ref } from 'vue';\nimport { isString } from 'lodash-es';\nimport { THEME_MODE } from '@tdesign/common-js/common';\nimport getColorTokenColor from '@tdesign/common-js/utils/getColorTokenColor';\nimport useMutationObservable from '../useMutationObservable';\n\n/**\n * useVariables\n * @param variable CSS 变量名\n * @example\n * const { textColor, brandColor } = useVariables({\n * textColor: '--td-color-primary',\n * brandColor: '--td-brand-color',\n * });\n */\nexport function useVariables>(variables: T): Record> {\n const values = {} as Record>;\n let varsArray: string[] = [];\n\n varsArray = Object.values(variables);\n Object.entries(variables).forEach(([key, varName]) => {\n values[key as keyof T] = ref(getColorTokenColor(varName));\n });\n\n varsArray.forEach((varName) => {\n values[varName as keyof T] = ref(getColorTokenColor(varName));\n });\n\n const targetElement = document?.documentElement;\n useMutationObservable(targetElement, (mutationsList) => {\n mutationsList.some((mutation) => {\n if (mutation.type === 'attributes' && mutation.attributeName === THEME_MODE) {\n if (isString(variables) || Array.isArray(variables)) {\n varsArray.forEach((varName) => {\n values[varName].value = getColorTokenColor(varName);\n });\n } else {\n Object.entries(variables).forEach(([key, varName]) => {\n values[key].value = getColorTokenColor(varName);\n });\n }\n return true;\n }\n return false;\n });\n });\n\n return values;\n}\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","import { isString, isNull, isUndefined, isNumber, isArray } from 'lodash-es';\n\nexport function omit(obj: Record, fields: string[]) {\n const shallowCopy = {\n ...obj,\n };\n for (let i = 0; i < fields.length; i++) {\n const key = fields[i];\n delete shallowCopy[key];\n }\n return shallowCopy;\n}\n\nexport function getValidAttrs>(obj: T): Partial {\n const newObj: Partial = {};\n\n Object.keys(obj).forEach((key) => {\n if (!isUndefined(obj[key]) || isNull(obj[key])) {\n newObj[key as keyof T] = obj[key];\n }\n });\n\n return newObj;\n}\n\nexport function removeEmptyAttrs>(obj: T): Partial {\n const newObj: Partial = {};\n\n Object.keys(obj).forEach((key) => {\n if (!isUndefined(obj[key]) || isNull(obj[key])) {\n newObj[key as keyof T] = obj[key];\n }\n });\n\n return newObj;\n}\n\nexport function getTabElementByValue(tabs: [] = [], value: string): object {\n const [result] = tabs.filter((item) => {\n const { id } = item as any;\n return id === value;\n });\n return result || null;\n}\n\nexport function firstUpperCase(str: string): string {\n return str.toLowerCase().replace(/( |^)[a-z]/g, (char: string) => char.toUpperCase());\n}\n\nexport type Gradients = { [percent: string]: string };\nexport type FromTo = { from: string; to: string };\nexport type LinearGradient = { direction?: string } & (Gradients | FromTo);\nexport function getBackgroundColor(color: string | string[] | LinearGradient): string {\n if (isString(color)) {\n return color;\n }\n if (isArray(color)) {\n if (color[0] && color[0][0] === '#') {\n color.unshift('90deg');\n }\n return `linear-gradient( ${color.join(',')} )`;\n }\n const {\n from, to, direction = 'to right', ...rest\n } = color;\n let keys = Object.keys(rest);\n if (keys.length) {\n keys = keys.sort((a, b) => {\n const c = parseFloat(a.substr(0, a.length - 1)) - parseFloat(b.substr(0, b.length - 1));\n return c;\n });\n const tempArr = keys.map((key: any) => `${rest[key as keyof typeof rest]} ${key}`);\n return `linear-gradient(${direction}, ${tempArr.join(',')})`;\n }\n return `linear-gradient(${direction}, ${from}, ${to})`;\n}\n\n/**\n *\n * @returns 获取 ie 浏览器版本\n */\nexport function getIEVersion() {\n if (typeof navigator === 'undefined' || !navigator) return Number.MAX_SAFE_INTEGER;\n\n const { userAgent } = navigator;\n // 判断是否IE<11浏览器\n const isIE = userAgent.indexOf('compatible') > -1 && userAgent.indexOf('MSIE') > -1;\n // 判断是否IE11浏览器\n const isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf('rv:11.0') > -1;\n if (isIE) {\n const reIE = new RegExp('MSIE (\\\\d+\\\\.\\\\d+);');\n const match = userAgent.match(reIE);\n if (!match) return -1;\n const fIEVersion = parseFloat(match[1]);\n return fIEVersion < 7 ? 6 : fIEVersion;\n }\n if (isIE11) {\n // IE11\n return 11;\n }\n // 不是ie浏览器\n return Number.MAX_SAFE_INTEGER;\n}\n\n/**\n * Safari Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.5 Safari/605.1.15\n * FireFox Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/114.0\n * Chrome Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36\n * Chrome 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.3\n * 搜狗 Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36 SE 2.X MetaSr 1.\n * 360 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.6045.9 Safari/537.36 QIHU 360EE\n */\nexport function getFlexGapPolyFill() {\n if (typeof navigator === 'undefined' || !navigator) return false;\n const ua = navigator.userAgent;\n const chromeMatch = ua.match(/AppleWebKit.+Chrome\\/(.+) Safari\\/.+/i);\n if (Number(chromeMatch?.[1]?.split('.')[0]) < 100) return true;\n const safariMatch = ua.match(/AppleWebKit.+Version\\/(.+) Safari\\/.+/i);\n if (Number(safariMatch?.[1]?.split('.')[0]) < 12) return true;\n const ieVersion = getIEVersion();\n if (ieVersion <= 11) return true;\n const fireFoxMatch = ua.match(/Firefox\\/(.+)/i);\n if (Number(fireFoxMatch?.[1]?.split('.')[0]) < 100) return true;\n return false;\n}\n\n/**\n * 计算字符串字符的长度并可以截取字符串。\n * @param str 传入字符串\n * @param maxCharacter 规定最大字符串长度\n * @returns 当没有传入maxCharacter时返回字符串字符长度,当传入maxCharacter时返回截取之后的字符串和长度。\n */\nexport function getCharacterLength(str: string): number;\nexport function getCharacterLength(str: string, maxCharacter?: number): { length: number; characters: string }\nexport function getCharacterLength(str: string, maxCharacter?: number) {\n const hasMaxCharacter = isNumber(maxCharacter);\n if (!str || str.length === 0) {\n if (hasMaxCharacter) {\n return {\n length: 0,\n characters: str,\n };\n }\n return 0;\n }\n let len = 0;\n for (let i = 0; i < str.length; i++) {\n let currentStringLength = 0;\n if (str.charCodeAt(i) > 127) {\n currentStringLength = 2;\n } else {\n currentStringLength = 1;\n }\n if (hasMaxCharacter && len + currentStringLength > maxCharacter) {\n return {\n length: len,\n characters: str.slice(0, i),\n };\n }\n len += currentStringLength;\n }\n if (hasMaxCharacter) {\n return {\n length: len,\n characters: str,\n };\n }\n return len;\n}\n\n/**\n * 返回 Unicode 字符长度\n * '👨'.length === 2\n * getUnicodeLength('👨') === 1\n * @param str\n * @returns {number}\n */\nexport function getUnicodeLength(str?: string): number {\n return [...(str ?? '')].length;\n}\n\n/**\n * 修正 Unicode 最大字符长度\n * '👨👨👨'.slice(0, 2) === '👨'\n * limitUnicodeMaxLength('👨👨👨', 2) === '👨👨'\n * @param str\n * @param maxLength\n * @param oldStr\n * @returns {string}\n */\nexport function limitUnicodeMaxLength(\n str?: string,\n maxLength?: number,\n oldStr?: string\n): string {\n // 旧字符满足字数要求则返回\n if ([...(oldStr ?? '')].slice().length === maxLength) return oldStr || '';\n return [...(str ?? '')].slice(0, maxLength).join('');\n}\n\n/**\n * 兼容样式中支持number/string类型的传值 得出最后的结果。\n * @param param number或string类型的可用于样式上的值\n * @returns 可使用的样式值。\n */\nexport function pxCompat(param: string | number) {\n return isNumber(param) ? `${param}px` : param;\n}\n\n/**\n * 计算dom元素盒模型尺寸\n * @param targetElement 需要计算盒模型尺寸的元素\n * @returns 计算出各维度尺寸。\n */\nconst DOM_STYLE_PROPS = [\n 'padding-top',\n 'padding-bottom',\n 'padding-left',\n 'padding-right',\n 'font-family',\n 'font-weight',\n 'font-size',\n 'font-variant',\n 'text-rendering',\n 'text-transform',\n 'width',\n 'text-indent',\n 'border-width',\n 'box-sizing',\n 'line-height',\n 'letter-spacing',\n];\n\nexport function calculateNodeSize(targetElement: HTMLElement) {\n if (typeof window === 'undefined') {\n return {\n paddingSize: 0,\n borderSize: 0,\n boxSizing: 0,\n sizingStyle: '',\n };\n }\n\n const style = window.getComputedStyle(targetElement);\n\n const boxSizing = style.getPropertyValue('box-sizing')\n || style.getPropertyValue('-moz-box-sizing')\n || style.getPropertyValue('-webkit-box-sizing');\n\n const paddingSize = (\n parseFloat(style.getPropertyValue('padding-bottom'))\n + parseFloat(style.getPropertyValue('padding-top'))\n );\n\n const borderSize = (\n parseFloat(style.getPropertyValue('border-bottom-width'))\n + parseFloat(style.getPropertyValue('border-top-width'))\n );\n\n const sizingStyle = DOM_STYLE_PROPS\n .map((name) => `${name}:${style.getPropertyValue(name)}`)\n .join(';');\n\n return {\n paddingSize, borderSize, boxSizing, sizingStyle,\n };\n}\n","import { defineComponent, onMounted, nextTick, ref } from 'vue';\nimport { usePrefixClass } from '@tdesign/shared-hooks';\nimport circleAdapter from '@tdesign/common-js/loading/circle-adapter';\n\nexport default defineComponent({\n name: 'TLoadingGradient',\n setup() {\n const classPrefix = usePrefixClass();\n const circleRef = ref();\n\n onMounted(() => {\n nextTick(() => {\n circleAdapter(circleRef.value);\n });\n });\n\n return () => {\n const name = `${classPrefix.value}-loading__gradient`;\n const classes = [name, `${classPrefix.value}-icon-loading`];\n\n return (\n \n \n
    \n \n \n );\n };\n },\n});\n","import setStyle from '../utils/setStyle';\nimport { getIEVersion } from '../utils/helper';\n\nexport default function circleAdapter(circleElem: HTMLElement) {\n let basicStyle = {};\n\n if (!circleElem || typeof window === 'undefined') {\n return;\n }\n\n const { color, fontSize } = window?.getComputedStyle?.(circleElem);\n\n // to fix the browser compat of foreignObject in Safari,\n // https://bugs.webkit.org/show_bug.cgi?id=23113\n const ua = window?.navigator?.userAgent;\n const isSafari = /Safari/.test(ua) && !/Chrome/.test(ua);\n // 判断是否为 iOS 下的微信和企业微信\n const isIosWechat = /(?=.*iPhone)[?=.*MicroMessenger]/.test(ua) && !/Chrome/.test(ua);\n // 判断是否为 iPadOS 下的微信和企业微信\n const isIpadWechat = /(?=.*iPad)[?=.*MicroMessenger]/.test(ua) && !/Chrome/.test(ua);\n\n // 注意:chrome上调试mobile/ipad端时,loading出现异常,属于正常现象,不需要修改。\n if (isSafari || isIosWechat || isIpadWechat) {\n basicStyle = {\n transformOrigin: '0px 0px',\n transform: `scale(${parseInt(fontSize, 10) / 12})`,\n };\n }\n // 添加:判断是否为IE浏览器\n if (color && getIEVersion() > 11) {\n const matched = color.match(/[\\d.]+/g);\n const endColor = matched ? `rgba(${matched[0]}, ${matched[1]}, ${matched[2]}, 0)` : '';\n setStyle(circleElem, {\n ...basicStyle,\n background: `conic-gradient(from 90deg at 50% 50%,${endColor} 0deg, ${color} 360deg)`,\n });\n } else {\n setStyle(circleElem, {\n ...basicStyle,\n background: '',\n });\n }\n}\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdLoadingProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 挂载元素,默认挂载到组件本身所在的位置。数据类型为 String 时,会被当作选择器处理,进行节点查询。示例:'body' 或 () => document.body */\n attach: {\n type: [String, Function] as PropType,\n default: '' as TdLoadingProps['attach'],\n },\n /** 子元素 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 子元素,同 content */\n default: {\n type: [String, Function] as PropType,\n },\n /** 延迟显示加载效果的时间,用于防止请求速度过快引起的加载闪烁,单位:毫秒 */\n delay: {\n type: Number,\n default: 0,\n },\n /** 是否显示为全屏加载 */\n fullscreen: Boolean,\n /** 加载指示符,值为 true 显示默认指示符,值为 false 则不显示,也可以自定义指示符 */\n indicator: {\n type: [Boolean, Function] as PropType,\n default: true as TdLoadingProps['indicator'],\n },\n /** 是否继承父元素颜色 */\n inheritColor: Boolean,\n /** 是否处于加载状态 */\n loading: {\n type: Boolean,\n default: true,\n },\n /** 防止滚动穿透,全屏加载模式有效 */\n preventScrollThrough: {\n type: Boolean,\n default: true,\n },\n /** 是否需要遮罩层,遮罩层对包裹元素才有效 */\n showOverlay: {\n type: Boolean,\n default: true,\n },\n /** 尺寸,示例:small/medium/large/12px/56px/0.3em */\n size: {\n type: String,\n default: 'medium',\n },\n /** 加载提示文案 */\n text: {\n type: [String, Function] as PropType,\n },\n /** 消息通知层级,样式默认为 3500 */\n zIndex: {\n type: Number,\n },\n};\n","import { defineComponent, ref, computed, watch, onMounted, toRefs, CSSProperties, Teleport } from 'vue';\nimport GradientIcon from './icon/gradient';\nimport { addClass, removeClass } from '@tdesign/shared-utils';\nimport { getPropertyValFromObj } from '@tdesign/common-js/utils/general';\nimport { useContent, useTNodeJSX, useTeleport, usePrefixClass, useCommonClassName } from '@tdesign/shared-hooks';\n\nimport props from './props';\n\nconst useComponentClassName = () => {\n return {\n name: usePrefixClass('loading'),\n centerClass: usePrefixClass('loading--center'),\n fullscreenClass: usePrefixClass('loading__fullscreen'),\n lockClass: usePrefixClass('loading--lock'),\n overlayClass: usePrefixClass('loading__overlay'),\n relativeClass: usePrefixClass('loading__parent'),\n fullClass: usePrefixClass('loading--full'),\n inheritColorClass: usePrefixClass('loading--inherit-color'),\n };\n};\n\nexport default defineComponent({\n name: 'TLoading',\n inheritAttrs: false,\n props,\n setup(props, { slots, attrs }) {\n const delayShowLoading = ref(false);\n\n const { name, centerClass, fullscreenClass, lockClass, overlayClass, relativeClass, fullClass, inheritColorClass } =\n useComponentClassName();\n\n const classPrefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n const renderContent = useContent();\n const { SIZE } = useCommonClassName();\n\n const countDelay = () => {\n delayShowLoading.value = false;\n const timer = setTimeout(() => {\n delayShowLoading.value = true;\n clearTimeout(timer);\n }, props.delay);\n };\n // teleport容器\n const teleportElement = useTeleport(() => props.attach);\n // 延时计时是否完成。用于控制延时计时结束前不能显示加载态\n const delayCounted = computed(() => Boolean(!props.delay || (props.delay && delayShowLoading.value)));\n\n // loading style\n const styles = computed(() => {\n const styles: CSSProperties = {};\n if (props.zIndex !== undefined) {\n styles.zIndex = props.zIndex;\n }\n if (!['small', 'medium', 'large'].includes(props.size)) {\n styles['font-size'] = props.size;\n }\n return styles;\n });\n\n const hasContent = computed(() => Boolean(props.default || slots.default || props.content || slots.content));\n const lockFullscreen = computed(() => props.preventScrollThrough && props.fullscreen);\n const showText = computed(() => Boolean(props.text || slots.text));\n const showWrapLoading = computed(() => hasContent.value && props.loading && delayCounted.value);\n const showFullScreenLoading = computed(() => props.fullscreen && props.loading && delayCounted.value);\n const showAttachedLoading = computed(() => props.attach && props.loading && delayCounted.value);\n const classes = computed(() => {\n const baseClasses = [\n centerClass.value,\n getPropertyValFromObj(SIZE.value, props.size),\n { [inheritColorClass.value]: props.inheritColor },\n ];\n const fullScreenClasses = [name.value, fullscreenClass.value, centerClass.value, overlayClass.value];\n\n return {\n baseClasses,\n attachClasses: baseClasses.concat([name.value, fullClass.value, { [overlayClass.value]: props.showOverlay }]),\n withContentClasses: baseClasses.concat([\n name.value,\n fullClass.value,\n {\n [overlayClass.value]: props.showOverlay,\n },\n ]),\n fullScreenClasses,\n normalClasses: baseClasses.concat([name.value]),\n };\n });\n\n const { loading } = toRefs(props);\n\n watch([loading], ([isLoading]) => {\n if (isLoading) {\n countDelay();\n lockFullscreen.value && addClass(document.body, lockClass.value);\n } else {\n lockFullscreen.value && removeClass(document.body, lockClass.value);\n }\n });\n\n onMounted(() => {\n props.delay && countDelay();\n });\n\n return () => {\n const { fullScreenClasses, baseClasses, withContentClasses, attachClasses, normalClasses } = classes.value;\n\n const defaultIndicator = ;\n const indicator = loading.value && renderTNodeJSX('indicator', defaultIndicator);\n const text = showText.value &&
    {renderTNodeJSX('text')}
    ;\n\n // full screen loading\n if (props.fullscreen) {\n if (!showFullScreenLoading.value || !props.loading) return null;\n return (\n \n
    \n
    \n {indicator}\n {text}\n
    \n
    \n
    \n );\n }\n\n // Loading is wrapping a HTMLElement.\n if (hasContent.value) {\n return (\n
    \n {renderContent('default', 'content')}\n {showWrapLoading.value && (\n
    \n {indicator}\n {text}\n
    \n )}\n
    \n );\n }\n\n // transfer parent node\n if (props.attach) {\n if (!showAttachedLoading.value || !loading.value) return null;\n return (\n \n
    \n {indicator}\n {text}\n
    \n
    \n );\n }\n\n // Normal Loading without overlay or content\n return loading.value ? (\n
    \n {indicator}\n {text}\n
    \n ) : null;\n };\n },\n});\n","import { App, Plugin, createVNode, defineComponent, h, reactive, render, AppContext } from 'vue';\nimport { merge } from 'lodash-es';\nimport LoadingComponent from './loading';\nimport { usePrefixClass } from '@tdesign/shared-hooks';\nimport { getAttach, removeClass, addClass } from '@tdesign/shared-utils';\nimport { TdLoadingProps, LoadingInstance, LoadingMethod } from './type';\n\nlet fullScreenLoadingInstance: LoadingInstance = null;\n\nfunction mergeDefaultProps(props: TdLoadingProps): TdLoadingProps {\n const options: TdLoadingProps = merge(\n {\n fullscreen: false,\n attach: 'body',\n loading: true,\n preventScrollThrough: true,\n },\n props,\n );\n\n return options;\n}\n\nfunction createLoading(props: TdLoadingProps, context?: AppContext): LoadingInstance {\n const mergedProps = mergeDefaultProps(props);\n\n if (mergedProps.fullscreen && fullScreenLoadingInstance) {\n return fullScreenLoadingInstance;\n }\n\n const component = defineComponent({\n setup() {\n const loadingOptions = reactive(mergedProps);\n\n return () => h(LoadingComponent, loadingOptions);\n },\n });\n\n const attach = getAttach(mergedProps.fullscreen ? 'body' : mergedProps.attach);\n\n const instance = createVNode(component);\n\n // eslint-disable-next-line no-underscore-dangle\n if (context ?? LoadingPlugin._context) {\n // eslint-disable-next-line no-underscore-dangle\n instance.appContext = context ?? LoadingPlugin._context;\n }\n\n const wrapper = document.createElement('div');\n render(instance, wrapper);\n\n const parentRelativeClass = usePrefixClass('loading__parent--relative').value;\n const lockClass = usePrefixClass('loading--lock');\n const lockFullscreen = mergedProps.preventScrollThrough && mergedProps.fullscreen;\n\n if (lockFullscreen) {\n addClass(document.body, lockClass.value);\n }\n\n if (attach) {\n addClass(attach, parentRelativeClass);\n } else {\n console.error('attach is not exist');\n }\n\n const loadingInstance: LoadingInstance = {\n hide: () => {\n removeClass(attach, parentRelativeClass);\n removeClass(document.body, lockClass.value);\n // 卸载组件渲染\n render(null, wrapper);\n wrapper.remove();\n },\n };\n return loadingInstance;\n}\n\nfunction produceLoading(props: boolean | TdLoadingProps, context?: AppContext): LoadingInstance {\n // 全屏加载\n if (props === true) {\n fullScreenLoadingInstance = createLoading(\n {\n fullscreen: true,\n loading: true,\n attach: 'body',\n preventScrollThrough: true,\n },\n context,\n );\n return fullScreenLoadingInstance;\n }\n\n if (props === false) {\n // 销毁全屏实例\n fullScreenLoadingInstance?.hide();\n fullScreenLoadingInstance = null;\n return;\n }\n return createLoading(props);\n}\n\nexport type LoadingPluginType = Plugin &\n LoadingMethod & {\n _context?: AppContext;\n };\n\nexport const LoadingPlugin: LoadingPluginType = produceLoading as LoadingPluginType;\n\nLoadingPlugin.install = (app: App) => {\n // eslint-disable-next-line no-param-reassign\n app.config.globalProperties.$loading = produceLoading;\n // eslint-disable-next-line no-underscore-dangle\n LoadingPlugin._context = app._context;\n};\n\nexport default LoadingPlugin;\n","import type { Directive, DirectiveBinding } from 'vue';\nimport { mapKeys, isEqual, isObject } from 'lodash-es';\n\nimport { TdLoadingProps } from './type';\nimport produceLoading from './plugin';\n\nconst INSTANCE_KEY = Symbol('TdLoading');\n\nconst createInstance = (el: HTMLElement, binding: DirectiveBinding) => {\n const { fullscreen, inheritColor } = binding.modifiers;\n const options: TdLoadingProps = {\n attach: () => el,\n fullscreen: fullscreen ?? false,\n inheritColor: inheritColor ?? false,\n loading: binding.value,\n };\n\n if (isObject(binding.value)) {\n mapKeys(binding.value, (value, key: keyof typeof options) => {\n options[key] = value;\n });\n }\n\n // @ts-ignore\n // TODO: unique symbol' can't be used to index type 'HTMLElement'\n el[INSTANCE_KEY] = {\n options,\n instance: produceLoading(options),\n };\n};\n\nexport const vLoading: Directive = {\n mounted(el, binding) {\n if (binding.value) {\n createInstance(el, binding);\n }\n },\n updated(el, binding) {\n const instance = el[INSTANCE_KEY];\n const { value, oldValue } = binding;\n if (!isEqual(value, oldValue)) {\n const loading = value?.loading ?? value;\n if (loading) {\n createInstance(el, binding);\n } else {\n instance?.instance.hide();\n }\n }\n },\n unmounted(el) {\n el[INSTANCE_KEY]?.instance.hide();\n },\n};\n\nexport default vLoading;\n","import baseAssignValue from './_baseAssignValue.js';\nimport baseForOwn from './_baseForOwn.js';\nimport baseIteratee from './_baseIteratee.js';\n\n/**\n * The opposite of `_.mapValues`; this method creates an object with the\n * same values as `object` and keys generated by running each own enumerable\n * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n * with three arguments: (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapValues\n * @example\n *\n * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n * return key + value;\n * });\n * // => { 'a1': 1, 'b2': 2 }\n */\nfunction mapKeys(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, iteratee(value, key, object), value);\n });\n return result;\n}\n\nexport default mapKeys;\n","import { vLoading } from './directive';\nimport _Loading from './loading';\nimport { withInstall } from '@tdesign/shared-utils';\nimport { TdLoadingProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport * from './plugin';\n\nexport type LoadingProps = TdLoadingProps;\n\nexport { default as LoadingPlugin } from './plugin';\nexport { default as LoadingDirective } from './directive';\n\nexport const Loading = withInstall(_Loading, _Loading.name, { name: 'loading', comp: vLoading });\nexport default Loading;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdButtonProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否为块级元素 */\n block: Boolean,\n /** 按钮内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 按钮内容 */\n default: {\n type: [String, Function] as PropType,\n },\n /** 禁用状态。优先级:Button.disabled > Form.disabled */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 原生的form属性,支持用于通过form属性对于id的form的表单事件 */\n form: {\n type: String,\n default: undefined,\n },\n /** 是否为幽灵按钮(镂空按钮) */\n ghost: Boolean,\n /** 跳转地址。href 存在时,按钮标签默认使用 `` 渲染;如果指定了 `tag` 则使用指定的标签渲染 */\n href: {\n type: String,\n default: '',\n },\n /** 按钮内部图标,可完全自定义 */\n icon: {\n type: Function as PropType,\n },\n /** 是否显示为加载状态 */\n loading: Boolean,\n /** 透传加载组件(Loading)全部属性 */\n loadingProps: {\n type: Object as PropType,\n },\n /** 按钮形状,有 4 种:长方形、正方形、圆角长方形、圆形 */\n shape: {\n type: String as PropType,\n default: 'rectangle' as TdButtonProps['shape'],\n validator(val: TdButtonProps['shape']): boolean {\n if (!val) return true;\n return ['rectangle', 'square', 'round', 'circle'].includes(val);\n },\n },\n /** 组件尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdButtonProps['size'],\n validator(val: TdButtonProps['size']): boolean {\n if (!val) return true;\n return ['extra-small', 'small', 'medium', 'large'].includes(val);\n },\n },\n /** 右侧内容,可用于定义右侧图标 */\n suffix: {\n type: Function as PropType,\n },\n /** 渲染按钮的 HTML 标签,默认使用标签 `
    \n );\n };\n\n return () => {\n return props.theme === 'card' ? renderCardItem() : renderNormalItem();\n };\n },\n});\n","import { defineComponent, PropType, computed, VNode, nextTick, ref, watch, onMounted } from 'vue';\nimport tabProps from './props';\n\n// hooks\nimport { usePrefixClass, useResizeObserver } from '@tdesign/shared-hooks';\n\nimport { debounce } from 'lodash-es';\n\nexport default defineComponent({\n props: {\n navs: {\n type: Array as PropType,\n },\n placement: tabProps.placement,\n value: tabProps.value,\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('tabs');\n const classPrefix = usePrefixClass();\n const barRef = ref();\n const navBarClass = computed(() => {\n return [`${COMPONENT_NAME.value}__bar`, `${classPrefix.value}-is-${props.placement}`];\n });\n const navBarStyle = ref(null);\n const getStyle = () => {\n const isVertical = ['left', 'right'].includes(props.placement.toLowerCase());\n const [sizePropName, offsetPropName] = isVertical ? ['height', 'top'] : ['width', 'left'];\n let offset = 0;\n let i = 0;\n for (; i < props.navs.length; i++) {\n if (props.navs[i].props.value === props.value) {\n break;\n }\n if (props.navs[i]?.el) {\n const sizeWithUnit = getComputedStyle(props.navs[i].el as Element)[sizePropName as 'width' | 'left'];\n const size = parseFloat(sizeWithUnit);\n offset += size;\n }\n }\n if (!props.navs[i]) return {};\n return {\n [offsetPropName]: `${offset}px`,\n [sizePropName]: props.navs[i].el\n ? getComputedStyle(props.navs[i].el as Element)[sizePropName as 'width' | 'left']\n : '0px',\n };\n };\n const update = () => (navBarStyle.value = getStyle());\n\n onMounted(() => {\n nextTick(() => {\n update();\n });\n });\n\n watch([() => props.navs, () => props.value, () => props.placement], () => {\n nextTick(() => {\n update();\n });\n });\n\n useResizeObserver(\n barRef,\n debounce(() => {\n update();\n // 数值大了动画不流畅,小了会频繁触发,所以在合适区间里选择一个值\n }, 35),\n );\n return () => {\n return
    ;\n };\n },\n});\n","import { h, defineComponent, Transition, ref, computed, watch, onMounted, nextTick } from 'vue';\nimport { debounce, isFunction } from 'lodash-es';\nimport {\n ChevronLeftIcon as TdChevronLeftIcon,\n ChevronRightIcon as TdChevronRightIcon,\n AddIcon as TdAddIcon,\n} from 'tdesign-icons-vue-next';\nimport { TdTabsProps } from './type';\nimport tabProps from './props';\nimport { calcMaxOffset, calcValidOffset, calculateOffset, calcPrevOrNextOffset } from '@tdesign/common-js/tabs/base';\n\n// 子组件\nimport TTabPanel from './tab-panel';\nimport TTabNavItem from './tab-nav-item';\nimport TTabNavBar from './tab-nav-bar';\n\n// hooks\nimport { useResize, useDragSort, useGlobalIcon, usePrefixClass, useCommonClassName } from '@tdesign/shared-hooks';\n\nexport default defineComponent({\n name: 'TTabNav',\n resizeObserver: null,\n props: {\n theme: tabProps.theme,\n panels: {\n type: Array as { new (): Array> },\n default: (): Array> => [] as Array>,\n },\n action: Array,\n value: tabProps.value,\n placement: tabProps.placement,\n scrollPosition: tabProps.scrollPosition,\n size: tabProps.size,\n disabled: tabProps.disabled,\n addable: tabProps.addable,\n onChange: tabProps.onChange,\n onAdd: tabProps.onAdd,\n onRemove: tabProps.onRemove,\n dragSort: tabProps.dragSort,\n onDragSort: tabProps.onDragSort,\n },\n setup(props) {\n const componentName = usePrefixClass('tabs');\n const { ChevronLeftIcon, ChevronRightIcon, AddIcon } = useGlobalIcon({\n ChevronLeftIcon: TdChevronLeftIcon,\n ChevronRightIcon: TdChevronRightIcon,\n AddIcon: TdAddIcon,\n });\n const classPrefix = usePrefixClass();\n\n const { SIZE } = useCommonClassName();\n\n const scrollLeft = ref(0);\n\n // refs\n const navsContainerRef = ref();\n const navsWrapRef = ref();\n const leftOperationsRef = ref();\n const rightOperationsRef = ref();\n const toRightBtnRef = ref();\n const activeTabRef = ref();\n const maxScrollLeft = ref(0);\n const showAction = computed(() => {\n return ['top', 'bottom'].includes(props?.placement?.toLowerCase());\n });\n\n const getRefs = () => ({\n navsContainer: navsContainerRef.value,\n navsWrap: navsWrapRef.value,\n leftOperations: leftOperationsRef.value,\n rightOperations: rightOperationsRef.value,\n toRightBtn: toRightBtnRef.value,\n activeTab: activeTabRef.value,\n });\n\n // left right位置 选项卡的位置是在左右侧垂直方向铺开的\n const isVerticalPlacement = computed(() => ['left', 'right'].includes(props.placement.toLowerCase()));\n\n // 展示操作按钮\n const canToLeft = computed(() => scrollLeft.value > 1);\n const canToRight = computed(() => scrollLeft.value < maxScrollLeft.value - 1);\n\n // style\n const wrapTransformStyle = computed(() => {\n if (isVerticalPlacement.value) return {};\n return {\n transform: `translate3d(${-scrollLeft.value}px, 0, 0)`,\n };\n });\n const navsContainerStyle = computed(() => {\n return props.addable ? { 'min-height': '48px' } : null;\n });\n\n // class\n const iconBaseClass = computed(() => {\n return {\n [`${componentName.value}__btn`]: true,\n [SIZE.value.medium]: props.size === 'medium',\n [SIZE.value.large]: props.size === 'large',\n };\n });\n const leftIconClass = computed(() => {\n return {\n [`${componentName.value}__btn--left`]: true,\n ...iconBaseClass.value,\n };\n });\n const rightIconClass = computed(() => {\n return {\n [`${componentName.value}__btn--right`]: true,\n ...iconBaseClass.value,\n };\n });\n const addIconClass = computed(() => {\n return {\n [`${componentName.value}__add-btn`]: true,\n ...iconBaseClass.value,\n };\n });\n const navContainerClass = computed(() => {\n return {\n [`${componentName.value}__nav-container`]: true,\n [`${componentName.value}__nav--card`]: props.theme === 'card',\n [`${classPrefix.value}-is-${props.placement}`]: true,\n [`${classPrefix.value}-is-addable`]: props.addable,\n };\n });\n const navScrollContainerClass = computed(() => {\n return {\n [`${componentName.value}__nav-scroll`]: true,\n [`${classPrefix.value}-is-scrollable`]: canToLeft.value || canToRight.value,\n };\n });\n\n const navsWrapClass = computed(() => {\n return [\n `${componentName.value}__nav-wrap`,\n `${classPrefix.value}-is-smooth`,\n { [`${classPrefix.value}-is-vertical`]: isVerticalPlacement.value },\n ];\n });\n\n const setOffset = (offset: number) => {\n scrollLeft.value = calcValidOffset(offset, maxScrollLeft.value);\n };\n\n const handleScroll = (action: 'prev' | 'next') => {\n setOffset(calcPrevOrNextOffset(getRefs(), scrollLeft.value, action));\n };\n\n const handleWheel = (event: WheelEvent) => {\n if (!canToLeft.value && !canToRight.value) return;\n\n event.preventDefault();\n const { deltaX, deltaY } = event;\n\n if (Math.abs(deltaX) > Math.abs(deltaY)) {\n setOffset(scrollLeft.value + deltaX);\n } else {\n setOffset(scrollLeft.value + deltaY);\n }\n };\n\n const handleActiveTabScroll = () => {\n setTimeout(() => {\n setOffset(calculateOffset(getRefs(), scrollLeft.value, props.scrollPosition));\n }, 0);\n };\n\n const getMaxScrollLeft = () => {\n nextTick(() => {\n maxScrollLeft.value = calcMaxOffset(getRefs());\n });\n };\n\n // watch\n watch([() => props.placement, () => props.panels], getMaxScrollLeft);\n watch([() => props.scrollPosition], handleActiveTabScroll);\n\n // life times\n useResize(debounce(getMaxScrollLeft), navsContainerRef.value);\n\n const handleAddTab = (e: MouseEvent) => {\n props.onAdd?.({ e });\n };\n\n const tabClick = (event: MouseEvent, nav: Partial>) => {\n const { value, disabled } = nav;\n if (disabled || props.value === value) {\n return false;\n }\n props.onChange(value);\n };\n const removeBtnClick = ({ e, value, index }: Parameters[0]) => {\n props.onRemove({ e, value, index });\n };\n const setActiveTab = (ref: any) => {\n if (!ref?.$el) return;\n if (ref?.value === props.value && activeTabRef.value !== ref.$el) {\n activeTabRef.value = ref.$el;\n handleActiveTabScroll();\n }\n };\n\n const { setNavsWrap } = useDragSort(props);\n\n onMounted(() => {\n setNavsWrap(navsWrapRef.value);\n getMaxScrollLeft();\n handleActiveTabScroll();\n });\n // renders\n const renderNavsContent = () => {\n return props.panels.map((panel, index) => {\n let label;\n if (panel?.children?.label) {\n label = panel.children.label();\n } else if (isFunction(panel.label)) {\n label = panel.label(h);\n } else {\n label = panel.label || `选项卡${index + 1}`;\n }\n let draggable = props.dragSort;\n if (draggable && panel.draggable === false) {\n draggable = panel.draggable;\n }\n return (\n tabClick(e, panel)}\n onRemove={removeBtnClick}\n />\n );\n });\n };\n const renderArrows = () => {\n return [\n \n \n {canToLeft.value ? (\n
    handleScroll('prev')}>\n \n
    \n ) : null}\n
    \n ,\n \n \n {canToRight.value ? (\n
    handleScroll('next')}>\n \n
    \n ) : null}\n
    \n {props.addable ? (\n
    \n \n
    \n ) : null}\n {showAction.value && props.action}\n ,\n ];\n };\n const renderNavs = () => {\n const navContent = renderNavsContent();\n return (\n
    \n
    \n
    \n {props.theme !== 'card' && (\n \n )}\n {navContent}\n
    \n
    \n
    \n );\n };\n\n return () => {\n return (\n
    \n {renderArrows()}\n {renderNavs()}\n
    \n );\n };\n },\n});\n","import { ComponentPublicInstance, defineComponent, provide, Ref, toRefs } from 'vue';\nimport TTabPanel from './tab-panel';\nimport TTabNav from './tab-nav';\nimport { TabValue, TdTabsProps } from './type';\nimport props from './props';\n\nimport { useVModel, useTNodeJSX, usePrefixClass } from '@tdesign/shared-hooks';\n\nimport { isArray } from 'lodash-es';\n\nexport interface InjectTabs {\n value: Ref;\n}\n\nexport default defineComponent({\n name: 'TTabs',\n props,\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('tabs');\n const classPrefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n\n const { value, modelValue } = toRefs(props);\n const [tabValue, setTabValue] = useVModel(value, modelValue, props.defaultValue || '', props.onChange);\n\n provide('tabs', { value: tabValue });\n\n // methods\n const onTabAdd = (context: { e: MouseEvent }) => {\n props.onAdd?.({ e: context.e });\n };\n const onTabChange = (value: TabValue) => {\n setTabValue(value);\n };\n const onTabRemove = ({ e, value, index }: Parameters[0]) => {\n props.onRemove?.({ value, index, e });\n };\n\n // render\n const getSlotPanels = () => {\n const content = renderTNodeJSX('default');\n if (!content) return [];\n\n const flatContent = (ct: any) => {\n return ct\n .map((item: ComponentPublicInstance) => {\n if (item.children && isArray(item.children)) return flatContent(item.children);\n return item;\n })\n .flat()\n .filter((item: ComponentPublicInstance) => {\n return item.type.name === 'TTabPanel';\n });\n };\n\n return flatContent(content);\n };\n const renderHeader = () => {\n const panels = (props.list?.length ? props.list : getSlotPanels()) || [];\n const actionContent = renderTNodeJSX('action');\n const panelsData = panels.map((item: ComponentPublicInstance) => {\n const selfItem = item;\n\n if (item.props) {\n Object.keys(item.props).forEach((key) => {\n selfItem[key] = item.props[key];\n });\n }\n\n return selfItem;\n });\n const tabNavProps = {\n theme: props.theme,\n value: tabValue.value,\n size: props.size,\n disabled: props.disabled,\n placement: props.placement,\n scrollPosition: props.scrollPosition,\n addable: props.addable,\n panels: panelsData,\n dragSort: props.dragSort,\n action: actionContent,\n };\n return (\n \n \n \n );\n };\n const renderContent = () => {\n const panels = getSlotPanels();\n if (props.list?.length) {\n return props.list.map((item) => );\n }\n if (panels && panels.length) {\n return
    {panels}
    ;\n }\n };\n\n return () => {\n return (\n
    \n {props.placement !== 'bottom' ? [renderHeader(), renderContent()] : [renderContent(), renderHeader()]}\n
    \n );\n };\n },\n});\n","import _Tabs from './tabs';\nimport _TabPanel from './tab-panel';\nimport { withInstall } from '@tdesign/shared-utils';\nimport { TdTabsProps, TdTabPanelProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type TabsProps = TdTabsProps;\nexport type TabPanelProps = TdTabPanelProps;\n\nexport const Tabs = withInstall(_Tabs);\nexport const TabPanel = withInstall(_TabPanel);\nexport default Tabs;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdSubmenuProps } from '../menu/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 菜单项内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 菜单项内容,同 content */\n default: {\n type: [String, Function] as PropType,\n },\n /** 是否禁用菜单项展开/收起/跳转等功能 */\n disabled: Boolean,\n /** 菜单项图标 */\n icon: {\n type: Function as PropType,\n },\n /** 透传 Popup 组件全部特性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 二级菜单内容 */\n title: {\n type: [String, Function] as PropType,\n },\n /** 菜单项唯一标识 */\n value: {\n type: [String, Number] as PropType,\n },\n};\n","import { defineComponent, PropType, computed, CSSProperties } from 'vue';\nimport { usePrefixClass } from '@tdesign/shared-hooks';\n\n// 统一使用的翻转箭头组件\nexport default defineComponent({\n name: 'TFakeArrow',\n props: {\n // 是否active状态 active状态下箭头向上翻转\n isActive: {\n type: Boolean as PropType,\n },\n overlayClassName: {\n type: [String, Object, Array],\n },\n overlayStyle: {\n type: Object || (String as PropType),\n },\n },\n\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('fake-arrow');\n const classes = computed(() => [\n COMPONENT_NAME.value,\n {\n [`${COMPONENT_NAME.value}--active`]: props.isActive,\n },\n props.overlayClassName,\n ]);\n\n return () => (\n \n \n \n );\n },\n});\n","import {\n defineComponent,\n computed,\n inject,\n ref,\n provide,\n onMounted,\n getCurrentInstance,\n watch,\n Slots,\n toRefs,\n reactive,\n nextTick,\n Transition,\n} from 'vue';\nimport props from './submenu-props';\nimport { TdMenuInterface, TdSubMenuInterface, TdMenuItem } from './types';\nimport FakeArrow from '../common-components/fake-arrow';\nimport { useRipple, useContent, useTNodeJSX, usePrefixClass, useCollapseAnimation } from '@tdesign/shared-hooks';\n\nimport { Popup, PopupPlacement } from '../popup';\nimport { isFunction } from 'lodash-es';\nimport { TdSubmenuProps } from './type';\n\nexport default defineComponent({\n name: 'TSubmenu',\n props,\n setup(props: TdSubmenuProps, { attrs, slots }) {\n const classPrefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n const renderContent = useContent();\n\n const instance = getCurrentInstance();\n const menu = inject('TdMenu');\n const { value } = toRefs(props);\n const { theme, activeValues, expandValues, isHead, open } = menu;\n\n const submenu = inject('TdSubmenu', {});\n const { setSubPopup, closeParentPopup } = submenu;\n\n const mode = computed(() => attrs.expandType || menu.mode.value);\n\n const menuItems = ref([]); // 因composition-api的缺陷,不用reactive, 详见:https://github.com/vuejs/composition-api/issues/637\n const isActive = computed(() => activeValues.value.indexOf(props.value) > -1);\n const popupVisible = ref(false);\n const isCursorInPopup = ref(false);\n const rippleColor = computed(() => (theme.value === 'light' ? '#E7E7E7' : '#383838'));\n const isOpen = computed(() => {\n if (mode.value === 'popup') {\n return popupVisible.value;\n }\n return expandValues ? expandValues.value?.includes(props.value) : false;\n });\n const isNested = ref(false); // 是否嵌套\n\n const popupWrapperRef = ref();\n const subPopupRef = ref();\n const submenuRef = ref();\n const transitionClass = usePrefixClass('slide-down');\n useRipple(submenuRef, rippleColor);\n\n const classes = computed(() => [\n `${classPrefix.value}-submenu`,\n {\n [`${classPrefix.value}-is-disabled`]: props.disabled,\n [`${classPrefix.value}-is-opened`]: isOpen.value,\n },\n ]);\n const overlayInnerClassName = computed(() => [\n `${classPrefix.value}-menu__popup`,\n `${classPrefix.value}-is-${isHead ? 'horizontal' : 'vertical'}`,\n {\n [`${classPrefix.value}-is-opened`]: popupVisible.value,\n },\n props.popupProps?.overlayInnerClassName,\n ]);\n const overlayClassName = computed(() => [\n `${classPrefix.value}-menu--${theme.value}`,\n isHead && `${classPrefix.value}-is-head-menu`,\n { [`${classPrefix.value}-menu-is-nested`]: isNested.value },\n props.popupProps?.overlayClassName,\n ]);\n const submenuClass = computed(() => [\n `${classPrefix.value}-menu__item`,\n `${classPrefix.value}-menu__item-spacer`,\n `${classPrefix.value}-menu__item-spacer--${isHead && !isNested.value ? 'bottom' : 'right'}`,\n {\n [`${classPrefix.value}-is-disabled`]: props.disabled,\n [`${classPrefix.value}-is-opened`]: isOpen.value,\n [`${classPrefix.value}-is-active`]: isActive.value,\n },\n ]);\n const subClass = computed(() => [\n `${classPrefix.value}-menu__sub`,\n {\n [`${classPrefix.value}-is-opened`]: isOpen.value,\n },\n ]);\n const arrowClass = computed(() => [\n {\n [`${classPrefix.value}-fake-arrow--active`]: isOpen.value,\n },\n ]);\n\n provide(\n 'TdSubmenu',\n reactive({\n value,\n addMenuItem: (item: TdMenuItem) => {\n menuItems.value.push(item);\n if (submenu) {\n submenu.addMenuItem(item);\n }\n },\n setSubPopup: (ref: HTMLElement) => {\n subPopupRef.value = ref;\n },\n closeParentPopup: (e: MouseEvent) => {\n const related = e.relatedTarget as HTMLElement;\n if (loopInPopup(related)) return;\n handleMouseLeavePopup(e);\n },\n }),\n );\n\n const passSubPopupRefToParent = (val: HTMLElement) => {\n if (isFunction(setSubPopup)) {\n setSubPopup(val);\n }\n };\n\n // methods\n const handleMouseEnter = () => {\n if (props.disabled) return;\n setTimeout(() => {\n if (!popupVisible.value) {\n open(props.value);\n\n // popupVisible设置为TRUE之后打开popup,因此需要在nextTick中确保可以拿到ref值\n nextTick().then(() => {\n passSubPopupRefToParent(popupWrapperRef.value);\n });\n }\n popupVisible.value = true;\n }, 0);\n };\n\n const targetInPopup = (el: HTMLElement) => el?.classList.contains(`${classPrefix.value}-menu__popup`);\n const loopInPopup = (el: HTMLElement): boolean => {\n if (!el) return false;\n return targetInPopup(el) || loopInPopup(el.parentElement);\n };\n\n const handleMouseLeave = (e: MouseEvent) => {\n setTimeout(() => {\n const inPopup = targetInPopup(e.relatedTarget as HTMLElement);\n\n if (isCursorInPopup.value || inPopup) return;\n popupVisible.value = false;\n }, 0);\n };\n\n const handleMouseLeavePopup = (e: any) => {\n const { toElement, relatedTarget } = e;\n let target = toElement || relatedTarget;\n\n if (target === subPopupRef.value) return;\n\n const isSubmenu = (el: Element) => el === submenuRef.value;\n while (target !== null && target !== document && !isSubmenu(target)) {\n target = target.parentNode;\n }\n\n isCursorInPopup.value = false;\n\n if (!isSubmenu(target)) {\n popupVisible.value = false;\n }\n\n closeParentPopup?.(e);\n };\n const handleEnterPopup = () => {\n isCursorInPopup.value = true;\n };\n\n const handleSubmenuItemClick = () => {\n if (props.disabled) return;\n open(props.value);\n };\n\n const renderPopup = (triggerElement: Slots[]) => {\n let placement: PopupPlacement = 'right-top';\n if (!isNested.value && isHead) {\n placement = 'bottom-left';\n }\n\n const popupWrapper = (\n \n
      {renderContent('default', 'content')}
    \n \n );\n\n const slots = {\n content: () => popupWrapper,\n };\n\n const realPopup = (\n \n
    \n {triggerElement}\n
    \n \n );\n\n return realPopup;\n };\n\n const renderHeadSubmenu = () => {\n const icon = renderTNodeJSX('icon');\n const normalSubmenu = [\n
    \n {icon}\n {renderTNodeJSX('title', { silent: true })}\n
    ,\n
      {renderContent('default', 'content')}
    ,\n ];\n\n const needRotate = mode.value === 'popup' && isNested.value;\n\n const triggerElement = [\n icon,\n {renderTNodeJSX('title', { silent: true })},\n ,\n ];\n\n return mode.value === 'normal' ? normalSubmenu : renderPopup(triggerElement);\n };\n\n const renderSubmenu = () => {\n const hasContent = slots.content || slots.default;\n const icon = renderTNodeJSX('icon');\n const child = renderContent('default', 'content');\n let parent = instance.parent;\n let paddingLeft = 44;\n\n while (parent && parent.type.name !== 'TMenu') {\n if (parent.type.name === 'TSubmenu') {\n paddingLeft += 16;\n }\n parent = parent.parent;\n }\n\n const { beforeEnter, enter, afterEnter, beforeLeave, leave, afterLeave } = useCollapseAnimation();\n\n const needRotate = mode.value === 'popup' && isNested.value;\n\n const normalSubmenu = [\n
    \n {icon}\n {renderTNodeJSX('title', { silent: true })}\n {hasContent && (\n \n )}\n
    ,\n \n
      \n {child}\n
    \n ,\n ];\n\n const triggerElement = [\n icon,\n {renderTNodeJSX('title', { silent: true })},\n ,\n ];\n\n return mode.value === 'normal' ? normalSubmenu : renderPopup(triggerElement);\n };\n\n watch(popupVisible, (visible) => {\n menu.open(props.value, visible ? 'add' : 'remove');\n });\n\n watch(popupWrapperRef, () => {\n // 第一次触发nextTick会取空值,导致subPopupRef拿不到对应的DOM\n passSubPopupRefToParent(popupWrapperRef.value);\n });\n\n onMounted(() => {\n menu?.vMenu?.add({ value: props.value, parent: submenu?.value, vnode: slots.default });\n let node = instance.parent;\n\n while (node && !/^t(head)?menu/i.test(node?.type.name)) {\n if (/submenu/i.test(node?.type.name)) {\n isNested.value = true;\n break;\n }\n node = node?.parent;\n }\n });\n\n return () => {\n let child = null;\n let events = {};\n let virtualChild;\n\n if (mode.value === 'popup') {\n events = {\n onMouseenter: handleMouseEnter,\n onMouseleave: handleMouseLeave,\n };\n // popup模式下且存在多层的特殊封装场景中,需要将子节点挂载进行计算高亮\n if (activeValues.value.length < 2)\n virtualChild =
    {renderContent('default', 'content')}
    ;\n }\n if (Object.keys(slots).length > 0) {\n child = isHead ? renderHeadSubmenu() : renderSubmenu();\n }\n\n return (\n
  • \n {child}\n {virtualChild}\n
  • \n );\n };\n },\n});\n","export function useCollapseAnimation() {\n const beforeEnter = (el: HTMLElement) => {\n el.dataset.oldPaddingTop = el.style.paddingTop;\n el.dataset.oldPaddingBottom = el.style.paddingBottom;\n\n el.style.height = '0';\n el.style.paddingTop = '0';\n el.style.paddingBottom = '0';\n };\n const enter = (el: HTMLElement) => {\n el.dataset.oldOverflow = el.style.overflow;\n el.style.height = `${el.scrollHeight}px`;\n el.style.paddingTop = el.dataset.oldPaddingTop;\n el.style.paddingBottom = el.dataset.oldPaddingBottom;\n el.style.overflow = 'hidden';\n };\n const afterEnter = (el: HTMLElement) => {\n el.style.height = '';\n el.style.overflow = el.dataset.oldOverflow;\n };\n const beforeLeave = (el: HTMLElement) => {\n el.dataset.oldPaddingTop = el.style.paddingTop;\n el.dataset.oldPaddingBottom = el.style.paddingBottom;\n el.dataset.oldOverflow = el.style.overflow;\n\n el.style.height = `${el.scrollHeight}px`;\n el.style.overflow = 'hidden';\n };\n const leave = (el: HTMLElement) => {\n if (el.scrollHeight !== 0) {\n el.style.height = '0';\n el.style.paddingTop = '0';\n el.style.paddingBottom = '0';\n }\n };\n const afterLeave = (el: HTMLElement) => {\n el.style.height = '';\n el.style.overflow = el.dataset.oldOverflow;\n el.style.paddingTop = el.dataset.oldPaddingTop;\n el.style.paddingBottom = el.dataset.oldPaddingBottom;\n };\n\n return {\n beforeEnter,\n enter,\n afterEnter,\n beforeLeave,\n leave,\n afterLeave,\n };\n}\n","import {\n defineComponent,\n computed,\n provide,\n ref,\n reactive,\n watch,\n onMounted,\n watchEffect,\n toRefs,\n h,\n VNode,\n Component,\n getCurrentInstance,\n} from 'vue';\nimport { EllipsisIcon } from 'tdesign-icons-vue-next';\nimport { isArray, isFunction } from 'lodash-es';\n\nimport log from '@tdesign/common-js/log/log';\nimport props from './head-menu-props';\nimport { MenuValue } from './type';\nimport { TdMenuInterface, TdOpenType } from './types';\nimport { Tabs, TabPanel } from '../tabs';\nimport Submenu from './submenu';\nimport { VMenu } from './utils';\n\nimport { useVModel, usePrefixClass, useDefaultValue } from '@tdesign/shared-hooks';\n\nexport default defineComponent({\n name: 'THeadMenu',\n props,\n setup(props, ctx) {\n const classPrefix = usePrefixClass();\n const { proxy } = getCurrentInstance();\n watchEffect(() => {\n if (ctx.slots.options) {\n log.warnOnce('TMenu', '`options` slot is going to be deprecated, please use `operations` for slot instead.');\n }\n });\n const { value, modelValue, expanded } = toRefs(props);\n const [activeValue, setActiveValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const [expandValues, setExpanded] = useDefaultValue(expanded, props.defaultExpanded, props.onExpand, 'expanded');\n const activeValues = ref([]);\n const theme = computed(() => props.theme);\n const menuClass = computed(() => [\n `${classPrefix.value}-menu`,\n `${classPrefix.value}-head-menu`,\n `${classPrefix.value}-menu--${props.theme}`,\n ]);\n const mode = ref(props.expandType);\n const submenu = reactive([]);\n const vMenu = new VMenu({ isMutex: true, expandValues: expandValues.value });\n\n provide('TdMenu', {\n mode,\n theme,\n vMenu,\n isHead: true,\n expandValues,\n activeValue,\n activeValues,\n select: (value: MenuValue) => {\n setActiveValue(value);\n },\n open: (value: MenuValue, type: TdOpenType) => {\n const expanded = [...expandValues.value];\n const index = expanded.indexOf(value);\n\n if (mode.value === 'popup') {\n if (type === 'add') {\n if (index === -1) {\n // 可能初始expanded里包含了该value\n expanded.push(value);\n }\n } else if (type === 'remove') {\n expanded.splice(index, 1);\n }\n } else if (mode.value === 'normal' && value !== undefined) {\n expanded.splice(0, 1);\n if (index === -1) {\n expanded.push(value);\n }\n }\n setExpanded(expanded);\n },\n });\n\n // methods\n const handleTabChange = (value: MenuValue) => {\n setActiveValue(value);\n handleClickSubMenuItem(value);\n };\n\n const handleSubmenuExpand = (value: MenuValue) => {\n const ans = vMenu.getChild(value);\n submenu.length = 0;\n submenu.push(...ans);\n };\n\n // watch\n watch(expandValues, (value) => {\n if (mode.value === 'normal') {\n handleSubmenuExpand(value[0]);\n }\n });\n const updateActiveValues = (value: MenuValue) => {\n activeValues.value = vMenu.select(value);\n };\n watch(activeValue, updateActiveValues);\n watch(\n () => props.expandType,\n (value) => {\n mode.value = value;\n },\n );\n\n onMounted(() => {\n activeValues.value = vMenu.select(activeValue.value);\n if (expandValues.value?.length > 0) {\n handleSubmenuExpand(expandValues.value[0]); // 顶部导航只能同时展开一个子菜单\n }\n });\n\n const handleClickSubMenuItem = (value: MenuValue) => {\n const activeMenuItem = submenu.find((v) => v.value === value);\n activeMenuItem.onClick?.({ value });\n const { to, href, replace } = activeMenuItem;\n if (href) {\n window.location.href = activeMenuItem.href;\n }\n const router = activeMenuItem.router || proxy.$router;\n if (to && router) {\n replace ? router.replace(to) : router.push(to);\n }\n };\n // setup返回的render函数中无法访问methods属性中的类容,移动此方法到setup中\n const renderNormalSubmenu = () => {\n if (submenu.length === 0) return null;\n return (\n
      \n {\n \n {submenu.map((item) => (\n \n ))}\n \n }\n
    \n );\n };\n\n const menuRef = ref();\n const innerRef = ref();\n const logoRef = ref();\n const operationRef = ref();\n\n const getComputedCss = (el: Element, cssProperty: keyof CSSStyleDeclaration) =>\n getComputedStyle(el)[cssProperty] ?? '';\n\n const getComputedCssValue = (el: Element, cssProperty: keyof CSSStyleDeclaration) =>\n Number.parseInt(String(getComputedCss(el, cssProperty)), 10);\n\n const calcMenuWidth = () => {\n const menuPaddingLeft = getComputedCssValue(menuRef.value, 'paddingLeft');\n const menuPaddingRight = getComputedCssValue(menuRef.value, 'paddingRight');\n let totalWidth = innerRef.value.clientWidth;\n if (logoRef.value) {\n const logoMarginLeft = getComputedCssValue(logoRef.value, 'marginLeft');\n const logoMarginRight = getComputedCssValue(logoRef.value, 'marginRight');\n totalWidth = totalWidth - logoRef.value.offsetWidth - logoMarginLeft - logoMarginRight;\n }\n\n if (operationRef.value) {\n const operationMarginLeft = getComputedCssValue(operationRef.value, 'marginLeft');\n const operationMarginRight = getComputedCssValue(operationRef.value, 'marginRight');\n totalWidth = totalWidth - operationRef.value.offsetWidth - operationMarginLeft - operationMarginRight;\n }\n\n return totalWidth - menuPaddingLeft - menuPaddingRight;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const formatContent = () => {\n let slot = ctx.slots.default?.() || ctx.slots.content?.() || [];\n\n if (menuRef.value && innerRef.value) {\n const validNodes = Array.from(menuRef.value.childNodes ?? []).filter(\n (item) => item.nodeName !== '#text' || item.nodeValue,\n ) as HTMLElement[];\n\n const menuWidth = calcMenuWidth();\n const menuItemMinWidth = 104;\n\n let remainWidth = menuWidth;\n let sliceIndex = validNodes.length;\n\n for (let index = 0; index < validNodes.length; index++) {\n const element = validNodes[index];\n remainWidth -= element.offsetWidth || 0;\n if (remainWidth < menuItemMinWidth) {\n sliceIndex = index;\n break;\n }\n }\n\n const defaultSlot = slot.slice(0, sliceIndex);\n const subMore = slot.slice(sliceIndex);\n\n if (subMore.length) {\n slot = defaultSlot.concat(\n }>\n {subMore}\n ,\n );\n }\n }\n return slot;\n };\n\n const initVMenu = (slots: VNode[], parentValue?: string) => {\n slots.forEach((node) => {\n const nodeValue = node.props?.value;\n if ((node.type as Component)?.name === 'TSubmenu' || (node.type as Component)?.name === 'TMenuItem') {\n vMenu.add({ value: nodeValue, parent: parentValue, vnode: (node.children as any).default, ...node.props });\n }\n if (isFunction((node.children as any)?.default)) {\n initVMenu((node.children as any).default(), nodeValue);\n return;\n }\n if (isArray(node.children)) {\n initVMenu(node.children as VNode[], nodeValue);\n }\n });\n };\n initVMenu(ctx.slots.default?.() || ctx.slots.content?.() || []);\n\n return () => {\n const logo = props.logo?.(h) || ctx.slots.logo?.();\n const operations = props.operations?.(h) || ctx.slots.operations?.() || ctx.slots.options?.();\n\n // TODO: 判断逻辑不够完善 影响封装组件的子菜单样式渲染 暂时先不执行 待调整实现方案\n // const content = formatContent();\n const content = ctx.slots.default?.() || ctx.slots.content?.() || [];\n\n return (\n
    \n
    \n {logo && (\n
    \n {logo}\n
    \n )}\n
      \n {content}\n
    \n {operations && (\n
    \n {operations}\n
    \n )}\n
    \n {mode.value === 'normal' && renderNormalSubmenu()}\n
    \n );\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdMenuItemProps } from '../menu/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 菜单项内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 菜单项内容,同 content */\n default: {\n type: [String, Function] as PropType,\n },\n /** 是否禁用菜单项展开/收起/跳转等功能 */\n disabled: Boolean,\n /** 跳转链接,菜单项渲染为a标签,当routerLink为true时将使用Router进行路由跳转 */\n href: {\n type: String,\n default: '',\n },\n /** 图标 */\n icon: {\n type: Function as PropType,\n },\n /** 路由跳转是否采用覆盖的方式(覆盖后将没有浏览器历史记录) */\n replace: Boolean,\n /** 路由对象。如果项目存在 Router,则默认使用 Router。 */\n router: {\n type: Object as PropType,\n },\n /**\n * 菜单项内容是否渲染为使用Router进行跳转的a标签,当且仅当 Router 存在时,该 API 有效\n */\n routerLink: Boolean,\n /** 链接或路由跳转方式 */\n target: {\n type: String as PropType,\n default: '_self' as TdMenuItemProps['target'],\n validator(val: TdMenuItemProps['target']): boolean {\n if (!val) return true;\n return ['_blank', '_self', '_parent', '_top'].includes(val);\n },\n },\n /** 路由跳转目标,当且仅当 Router 存在时,该 API 有效 */\n to: {\n type: [String, Object] as PropType,\n },\n /** 菜单项唯一标识 */\n value: {\n type: [String, Number] as PropType,\n },\n /** 点击时触发 */\n onClick: Function as PropType,\n};\n","import { defineComponent, computed, inject, onMounted, ref, toRefs, getCurrentInstance } from 'vue';\nimport props from './menu-item-props';\nimport { TdMenuInterface, TdSubMenuInterface } from './types';\nimport { useRipple, useContent, useTNodeJSX, usePrefixClass } from '@tdesign/shared-hooks';\n\nimport Tooltip from '../tooltip';\nimport type { TdMenuItemProps } from './type';\n\nexport default defineComponent({\n name: 'TMenuItem',\n props,\n emits: ['click'],\n setup(props: TdMenuItemProps, ctx) {\n const { href, target, to, disabled, value, onClick, routerLink, replace } = toRefs(props);\n const classPrefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n const renderContent = useContent();\n\n const menu = inject('TdMenu');\n const itemRef = ref();\n const instance = getCurrentInstance();\n\n useRipple(itemRef);\n const submenu = inject('TdSubmenu', null);\n const active = computed(() => menu.activeValue.value === props.value);\n const collapsed = computed(() => menu.collapsed?.value);\n const classes = computed(() => [\n `${classPrefix.value}-menu__item`,\n {\n [`${classPrefix.value}-is-active`]: active.value,\n [`${classPrefix.value}-is-disabled`]: props.disabled,\n [`${classPrefix.value}-menu__item--plain`]: !ctx.slots.icon && !props.icon,\n [`${classPrefix.value}-submenu__item`]: !!submenu && !menu.isHead,\n },\n ]);\n const router = computed(() => props.router || instance?.proxy.$router);\n\n const handleClick = (e: MouseEvent) => {\n e.stopPropagation();\n if (disabled.value) return;\n menu.select(value.value);\n onClick.value?.({ e, value: value.value });\n if (to.value || (routerLink.value && href.value)) {\n const methods = replace.value ? 'replace' : 'push';\n router.value[methods](to.value || href.value).catch((err: Error) => {\n // vue-router 3.1.0+ push/replace cause NavigationDuplicated error\n // https://github.com/vuejs/vue-router/issues/2872\n // 当前path和目标path相同时,会抛出NavigationDuplicated的错误\n if (\n err.name !== 'NavigationDuplicated' &&\n !err.message.includes('Avoided redundant navigation to current location')\n ) {\n throw err;\n }\n });\n }\n submenu?.closeParentPopup?.(e);\n };\n\n // lifetimes\n onMounted(() => {\n menu?.vMenu?.add({ value: props.value, parent: submenu?.value, vnode: ctx.slots.default, ...props });\n const activeValues = menu.activeValues.value;\n if (activeValues.includes(props.value) && !activeValues.includes(submenu?.value)) {\n activeValues.push(submenu?.value);\n }\n });\n\n return () => {\n const liContent = (\n
  • \n {renderTNodeJSX('icon')}\n {routerLink.value ? (\n e.preventDefault()}\n >\n {renderContent('default', 'content')}\n \n ) : href.value ? (\n disabled.value && e.preventDefault()}\n >\n {renderContent('default', 'content')}\n \n ) : (\n {renderContent('default', 'content')}\n )}\n
  • \n );\n\n const node = instance?.parent;\n // 菜单收起,且只有本身为一级菜单才需要显示 tooltip\n if (collapsed.value && /tmenu/i.test(node?.type.name)) {\n return (\n renderContent('default', 'content')} placement=\"right\">\n {liContent}\n \n );\n }\n return liContent;\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdMenuGroupProps } from '../menu/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 菜单组标题 */\n title: {\n type: [String, Function] as PropType,\n },\n};\n","import { defineComponent } from 'vue';\nimport props from './menu-group-props';\nimport { useTNodeJSX, usePrefixClass } from '@tdesign/shared-hooks';\n\nexport default defineComponent({\n name: 'TMenuGroup',\n props,\n setup() {\n const classPrefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n\n return () => (\n
    \n
    {renderTNodeJSX('title', { silent: false })}
    \n {renderTNodeJSX('default')}\n
    \n );\n },\n});\n","import _Menu from './menu';\nimport _HeadMenu from './head-menu';\nimport _Submenu from './submenu';\nimport _MenuItem from './menu-item';\nimport _MenuGroup from './menu-group';\nimport { withInstall } from '@tdesign/shared-utils';\nimport { TdMenuProps, TdHeadMenuProps, TdSubmenuProps, TdMenuItemProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type MenuProps = TdMenuProps;\nexport type HeadMenuProps = TdHeadMenuProps;\nexport type SubmenuProps = TdSubmenuProps;\nexport type MenuItemProps = TdMenuItemProps;\n\nexport const Menu = withInstall(_Menu);\nexport const HeadMenu = withInstall(_HeadMenu);\nexport const Submenu = withInstall(_Submenu);\nexport const MenuItem = withInstall(_MenuItem);\nexport const MenuGroup = withInstall(_MenuGroup);\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdInputProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 文本内容位置,居左/居中/居右 */\n align: {\n type: String as PropType,\n default: 'left' as TdInputProps['align'],\n validator(val: TdInputProps['align']): boolean {\n if (!val) return true;\n return ['left', 'center', 'right'].includes(val);\n },\n },\n /** 超出 `maxlength` 或 `maxcharacter` 之后是否允许继续输入 */\n allowInputOverMax: Boolean,\n /** 宽度随内容自适应 */\n autoWidth: Boolean,\n /** 是否开启自动填充功能,HTML5 原生属性,[点击查看详情](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) */\n autocomplete: {\n type: String,\n default: undefined,\n },\n /** 自动聚焦 */\n autofocus: Boolean,\n /** 是否开启无边框模式 */\n borderless: Boolean,\n /** 是否可清空 */\n clearable: Boolean,\n /** 是否禁用输入框 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 指定输入框展示值的格式。注意 `type=number` 时请勿使用,此功能建议更为使用 `InputNumber` 组件 */\n format: {\n type: Function as PropType,\n },\n /** t-input 同级类名,示例:'name1 name2 name3' 或 `['name1', 'name2']` 或 `[{ 'name1': true }]` */\n inputClass: {\n type: [String, Object, Array] as PropType,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 用户最多可以输入的字符个数,一个中文汉字表示两个字符长度。`maxcharacter` 和 `maxlength` 二选一使用 */\n maxcharacter: {\n type: Number,\n },\n /** 用户最多可以输入的文本长度,一个中文等于一个计数长度。默认为空,不限制输入长度。`maxcharacter` 和 `maxlength` 二选一使用 */\n maxlength: {\n type: [String, Number] as PropType,\n },\n /** 名称 */\n name: {\n type: String,\n default: '',\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 组件前置图标 */\n prefixIcon: {\n type: Function as PropType,\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 输入框内容为空时,悬浮状态是否显示清空按钮,默认不显示 */\n showClearIconOnEmpty: Boolean,\n /** 是否在输入框右侧显示字数统计 */\n showLimitNumber: Boolean,\n /** 输入框尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdInputProps['size'],\n validator(val: TdInputProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 是否开启拼写检查,HTML5 原生属性,[点击查看详情](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/spellcheck) */\n spellCheck: Boolean,\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdInputProps['status'],\n validator(val: TdInputProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 后置图标前的后置内容 */\n suffix: {\n type: [String, Function] as PropType,\n },\n /** 组件后置图标 */\n suffixIcon: {\n type: Function as PropType,\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 输入框类型。`type=number` 仅支持最基础的数字输入功能,更多功能建议使用 `InputNumber` 组件 */\n type: {\n type: String as PropType,\n default: 'text' as TdInputProps['type'],\n validator(val: TdInputProps['type']): boolean {\n if (!val) return true;\n return ['text', 'number', 'url', 'tel', 'password', 'search', 'submit', 'hidden'].includes(val);\n },\n },\n /** 输入框的值 */\n value: {\n type: [String, Number] as PropType,\n default: undefined as TdInputProps['value'],\n },\n modelValue: {\n type: [String, Number] as PropType,\n default: undefined as TdInputProps['value'],\n },\n /** 输入框的值,非受控属性 */\n defaultValue: {\n type: [String, Number] as PropType,\n },\n /** 失去焦点时触发 */\n onBlur: Function as PropType,\n /** 输入框值发生变化时触发。参数 `trigger=initial` 表示传入的数据不符合预期,组件自动处理后触发 change 告知父组件。如:初始值长度超过 `maxlength` 限制 */\n onChange: Function as PropType,\n /** 清空按钮点击时触发 */\n onClear: Function as PropType,\n /** 点击组件时触发 */\n onClick: Function as PropType,\n /** 中文输入结束时触发 */\n onCompositionend: Function as PropType,\n /** 中文输入开始时触发 */\n onCompositionstart: Function as PropType,\n /** 回车键按下时触发 */\n onEnter: Function as PropType,\n /** 获得焦点时触发 */\n onFocus: Function as PropType,\n /** 键盘按下时触发 */\n onKeydown: Function as PropType,\n /** 按下字符键时触发(keydown -> keypress -> keyup) */\n onKeypress: Function as PropType,\n /** 释放键盘时触发 */\n onKeyup: Function as PropType,\n /** 进入输入框时触发 */\n onMouseenter: Function as PropType,\n /** 离开输入框时触发 */\n onMouseleave: Function as PropType,\n /** 粘贴事件,`pasteValue` 表示粘贴板的内容 */\n onPaste: Function as PropType,\n /** 字数超出限制时触发 */\n onValidate: Function as PropType,\n /** 输入框中滚动鼠标时触发 */\n onWheel: Function as PropType,\n};\n","import { computed, InjectionKey } from 'vue';\nimport { FormItemValidateResult } from '../form-item';\nimport {\n AllValidateResult,\n Data,\n FormItemValidateMessage,\n FormRule,\n TdFormItemProps,\n TdFormProps,\n ValidateResultType,\n ValidateTriggerType,\n} from '../type';\nimport { usePrefixClass, useTNodeJSX } from '@tdesign/shared-hooks';\n\n// 允许 Form 统一控制的表单\nexport const FORM_CONTROL_COMPONENTS = [\n 'TInput',\n 'TInputNumber',\n 'TTextarea',\n 'TCascader',\n 'TSelect',\n 'TOption',\n 'TSwitch',\n 'TCheckbox',\n 'TCheckboxGroup',\n 'TRadio',\n 'TRadioGroup',\n 'TTreeSelect',\n 'TDatePicker',\n 'TTimePicker',\n 'TUpload',\n 'TTransfer',\n 'TSlider',\n];\n\nexport const useCLASSNAMES = () => {\n const classPrefix = usePrefixClass();\n\n return computed(() => {\n const form = `${classPrefix.value}-form`;\n const input = `${classPrefix.value}-input`;\n const is = `${classPrefix.value}-is`;\n\n return {\n form,\n label: `${form}__label`,\n labelTop: `${form}__label--top`,\n inline: `${form}-inline`,\n formItem: `${form}__item`,\n formItemWithHelp: `${form}__item-with-help`,\n formItemWithExtra: `${form}__item-with-extra`,\n controls: `${form}__controls`,\n controlsContent: `${form}__controls-content`,\n status: `${form}__status`,\n extra: `${input}__extra`,\n help: `${input}__help`,\n success: `${is}-success`,\n successBorder: `${form}--success-border`,\n error: `${is}-error`,\n warning: `${is}-warning`,\n };\n });\n};\n\nexport const enum ValidateStatus {\n TO_BE_VALIDATED = 'not',\n SUCCESS = 'success',\n FAIL = 'fail',\n}\n\nexport type ErrorListType =\n | {\n result: false;\n message: string;\n type: 'error' | 'warning';\n }\n | ValidateResultType;\n\nexport type SuccessListType =\n | {\n result: true;\n message: string;\n type: 'success';\n }\n | ValidateResultType;\n\nexport interface AnalysisValidateResult {\n successList?: SuccessListType[];\n errorList?: ErrorListType[];\n rules: FormRule[];\n resultList: AllValidateResult[];\n allowSetValue: boolean;\n}\n\nexport interface FormItemContext {\n name: TdFormItemProps['name'];\n resetHandler: () => void;\n resetField: (resetType?: 'initial' | 'empty') => Promise;\n validate: (\n trigger: ValidateTriggerType,\n showErrorMessage?: boolean,\n ) => Promise>;\n validateOnly: (trigger: ValidateTriggerType) => Promise>;\n setValidateMessage: (validateMessage: FormItemValidateMessage[]) => void;\n}\n\nexport const FormInjectionKey: InjectionKey<{\n showErrorMessage: TdFormProps['showErrorMessage'];\n labelWidth: TdFormProps['labelWidth'];\n labelAlign: TdFormProps['labelAlign'];\n data: TdFormProps['data'];\n colon: TdFormProps['colon'];\n requiredMark: TdFormProps['requiredMark'];\n requiredMarkPosition: TdFormProps['requiredMarkPosition'];\n rules: TdFormProps['rules'];\n errorMessage: TdFormProps['errorMessage'];\n resetType: TdFormProps['resetType'];\n children: FormItemContext[];\n renderContent: ReturnType;\n}> = Symbol('FormProvide');\n\nexport const FormItemInjectionKey: InjectionKey<{\n handleBlur: () => Promise;\n}> = Symbol('FormItemProvide');\n","import { computed, ComputedRef, onMounted, watch } from 'vue';\nimport { TdInputProps } from './../type';\nimport log from '@tdesign/common-js/log/index';\nimport { getCharacterLength, getUnicodeLength, limitUnicodeMaxLength } from '@tdesign/common-js/utils/helper';\nimport { isNumber, isObject } from 'lodash-es';\n\nexport interface UseLengthLimitParams {\n value: string;\n maxlength: number;\n maxcharacter: number;\n allowInputOverMax: boolean;\n status: TdInputProps['status'];\n onValidate: TdInputProps['onValidate'];\n}\n\nexport function useLengthLimit(params: ComputedRef) {\n // 文本超出数量限制时,是否允许继续输入\n const getValueByLimitNumber = (inputValue: string) => {\n const { allowInputOverMax, maxlength, maxcharacter } = params.value;\n if (!(maxlength || maxcharacter) || allowInputOverMax || !inputValue) return inputValue;\n if (maxlength) {\n // input value could be unicode 😊\n return limitUnicodeMaxLength(inputValue, maxlength);\n }\n if (maxcharacter) {\n const r = getCharacterLength(inputValue, maxcharacter);\n if (isObject(r)) {\n return r.characters;\n }\n }\n };\n\n const limitNumber = computed(() => {\n const { maxlength, maxcharacter, value } = params.value;\n if (isNumber(value)) return String(value);\n if (maxlength && maxcharacter) {\n log.warn('Input', 'Pick one of maxlength and maxcharacter please.');\n }\n if (maxlength) {\n const length = value?.length ? getUnicodeLength(value) : 0;\n return `${length}/${maxlength}`;\n }\n if (maxcharacter) {\n return `${getCharacterLength(value || '')}/${maxcharacter}`;\n }\n return '';\n });\n\n const innerStatus = computed(() => {\n if (limitNumber.value) {\n const [current, total] = limitNumber.value.split('/');\n return Number(current) > Number(total) ? 'error' : '';\n }\n return '';\n });\n\n const tStatus = computed(() => {\n const { status } = params.value;\n return status || innerStatus.value;\n });\n\n const onValidateChange = () => {\n params.value.onValidate?.({\n error: innerStatus.value ? 'exceed-maximum' : undefined,\n });\n };\n\n watch(innerStatus, onValidateChange);\n\n onMounted(() => {\n innerStatus.value && onValidateChange();\n });\n\n return {\n tStatus,\n limitNumber,\n getValueByLimitNumber,\n };\n}\n","import { ref, computed, watch, nextTick, toRefs, inject } from 'vue';\nimport { InputValue, TdInputProps } from './../type';\nimport { FormItemInjectionKey } from '../../form/consts';\nimport { useVModel, useDisabled, useReadonly } from '@tdesign/shared-hooks';\n\nimport { useLengthLimit } from './useLengthLimit';\n\nexport function getOutputValue(val: InputValue, type: TdInputProps['type']) {\n if (type === 'number') {\n return val || val === 0 ? Number(val) : undefined;\n }\n return val;\n}\n\nexport interface ExtendsTdInputProps extends TdInputProps {\n showInput: boolean;\n keepWrapperWidth: boolean;\n}\n\nexport function useInput(props: ExtendsTdInputProps, expose: (exposed: Record) => void) {\n const { value, modelValue } = toRefs(props);\n const inputValue = ref();\n const isComposition = ref(false);\n const compositionValue = ref();\n const clearIconRef = ref(null);\n const innerClickElement = ref();\n const disabled = useDisabled();\n const readonly = useReadonly();\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n const isHover = ref(false);\n const focused = ref(false);\n const renderType = ref(props.type);\n const inputRef = ref(null);\n\n const limitParams = computed(() => ({\n value: [undefined, null].includes(innerValue.value) ? undefined : String(innerValue.value),\n status: props.status,\n maxlength: Number(props.maxlength),\n maxcharacter: props.maxcharacter,\n allowInputOverMax: props.allowInputOverMax,\n onValidate: props.onValidate,\n }));\n const { limitNumber, getValueByLimitNumber, tStatus } = useLengthLimit(limitParams);\n\n const showClear = computed(() => {\n return (\n ((innerValue.value && !disabled.value && props.clearable && !readonly.value) || props.showClearIconOnEmpty) &&\n isHover.value\n );\n });\n\n const focus = () => {\n focused.value = true;\n inputRef.value?.focus();\n };\n\n const blur = () => {\n focused.value = false;\n inputRef.value?.blur();\n };\n\n const emitFocus = (e: FocusEvent) => {\n if (isHover.value && focused.value) return;\n inputValue.value = innerValue.value;\n if (props.disabled) return;\n focused.value = true;\n props.onFocus?.(innerValue.value, { e });\n };\n\n const emitClear = ({ e }: { e: MouseEvent }) => {\n const val = props.type === 'number' ? undefined : '';\n setInnerValue(val, { e, trigger: 'clear' });\n props.onClear?.({ e });\n };\n\n const onClearIconMousedown = (e: MouseEvent) => {\n innerClickElement.value = e.target;\n };\n\n const emitPassword = () => {\n if (disabled.value) return;\n const toggleType = renderType.value === 'password' ? 'text' : 'password';\n renderType.value = toggleType;\n };\n\n const setInputElValue = (v: InputValue = '') => {\n const inputEl = inputRef.value as HTMLInputElement;\n if (!inputEl) return;\n const sV = String(v);\n if (!inputEl.value) {\n return;\n }\n if (inputEl.value !== sV) {\n inputEl.value = sV;\n }\n };\n const inputValueChangeHandle = (e: InputEvent | CompositionEvent) => {\n const { target } = e;\n let val = (target as HTMLInputElement).value;\n // over length: allow delete; not add\n if (props.type !== 'number' && typeof innerValue.value === 'string' && val.length > innerValue.value?.length) {\n val = getValueByLimitNumber(val);\n }\n setInnerValue(getOutputValue(val, props.type), { e, trigger: 'input' });\n // 受控\n nextTick(() => {\n // type = 'number'时, 解决小数点后面有 0 自动删除的问题\n if (props.type === 'number' && /\\.(\\d+)?0$/.test(val)) {\n setInputElValue(val);\n } else {\n setInputElValue(innerValue.value);\n }\n });\n };\n\n const handleInput = (e: InputEvent) => {\n const checkInputType = e.inputType && e.inputType === 'insertCompositionText';\n const {\n currentTarget: { value: val },\n }: any = e;\n if (checkInputType || isComposition.value) {\n compositionValue.value = val;\n return;\n }\n inputValueChangeHandle(e);\n };\n\n const isClearIcon = () => {\n let tmp = innerClickElement.value;\n if (!tmp || !tmp.tagName || !clearIconRef.value?.$el || !['path', 'svg'].includes(tmp.tagName)) return false;\n while (tmp) {\n if (clearIconRef.value?.$el === tmp) {\n return true;\n }\n tmp = tmp.parentNode;\n }\n return false;\n };\n\n const formItem = inject(FormItemInjectionKey, undefined);\n const formatAndEmitBlur = (e: FocusEvent) => {\n if (!isClearIcon()) {\n if (props.format) {\n inputValue.value =\n typeof innerValue.value === 'number' || props.type === 'number'\n ? innerValue.value\n : props.format(innerValue.value);\n }\n focused.value = false;\n if (isComposition.value) {\n isComposition.value = false;\n compositionValue.value = '';\n }\n props.onBlur?.(innerValue.value, { e });\n formItem?.handleBlur();\n } else {\n focus();\n }\n };\n\n const onHandleCompositionend = (e: CompositionEvent) => {\n isComposition.value = false;\n compositionValue.value = '';\n inputValueChangeHandle(e);\n props.onCompositionend?.(String(innerValue.value), { e });\n };\n\n const onHandleCompositionstart = (e: CompositionEvent) => {\n isComposition.value = true;\n const {\n currentTarget: { value },\n }: any = e;\n compositionValue.value = value;\n props.onCompositionstart?.(String(innerValue.value), { e });\n };\n\n const onRootClick = (e: MouseEvent) => {\n inputRef.value?.focus();\n props.onClick?.({ e });\n };\n\n watch(\n () => props.autofocus,\n (value) => {\n if (value === true) {\n nextTick(() => {\n inputRef.value?.focus();\n });\n }\n },\n { immediate: true },\n );\n\n watch(\n innerValue,\n (val, oldVal) => {\n const isNumberType = props.type === 'number';\n // 初始化时,如果有 format 函数,需要对 value 进行格式化\n if (oldVal === undefined && props.format && typeof val !== 'number' && !isNumberType) {\n inputValue.value = props.format(val);\n } else {\n inputValue.value = val;\n }\n // limit props value\n const newVal = typeof val === 'number' ? val : getValueByLimitNumber(val);\n if (newVal !== val && !isNumberType) {\n setInnerValue(newVal, { trigger: 'initial' });\n }\n },\n { immediate: true },\n );\n\n watch(\n () => props.type,\n (v) => {\n renderType.value = v;\n },\n { immediate: true },\n );\n\n expose({\n inputRef,\n focus,\n blur,\n });\n\n return {\n isHover,\n focused,\n renderType,\n showClear,\n inputRef,\n clearIconRef,\n inputValue,\n isComposition,\n compositionValue,\n limitNumber,\n tStatus,\n emitFocus,\n formatAndEmitBlur,\n onHandleCompositionend,\n onHandleCompositionstart,\n onRootClick,\n emitPassword,\n handleInput,\n emitClear,\n onClearIconMousedown,\n innerValue,\n };\n}\n","import { onMounted, Ref, ref, watch, nextTick, onBeforeUnmount, toRefs } from 'vue';\nimport { useResizeObserver } from '@tdesign/shared-hooks';\nimport { InputValue, TdInputProps } from './../type';\n\nconst ANIMATION_TIME = 100;\n\nexport function useInputWidth(props: TdInputProps, inputRef: Ref, innerValue: Ref) {\n const { autoWidth, placeholder } = toRefs(props);\n const inputPreRef = ref(null);\n const observerTimer = ref(null);\n\n const updateInputWidth = () => {\n if (!inputPreRef.value || !inputRef.value) return;\n // 使用 getComputedStyle 规避 transform 带来的影响\n inputRef.value.style.width = getComputedStyle(inputPreRef.value).width;\n };\n\n useResizeObserver(inputPreRef, () => {\n if (autoWidth.value) {\n observerTimer.value = setTimeout(() => {\n updateInputWidth();\n clearTimeout(observerTimer.value);\n }, ANIMATION_TIME);\n }\n });\n\n onBeforeUnmount(() => {\n clearTimeout(observerTimer.value);\n });\n\n const addListeners = () => {\n watch(\n [innerValue, placeholder],\n () => {\n if (!autoWidth.value) return;\n nextTick(() => {\n updateInputWidth();\n });\n },\n { immediate: true },\n );\n };\n\n onMounted(() => {\n if (autoWidth.value) {\n addListeners();\n }\n });\n\n return {\n inputPreRef,\n };\n}\n","import { defineComponent, computed } from 'vue';\nimport {\n BrowseIcon as TdBrowseIcon,\n BrowseOffIcon as TdBrowseOffIcon,\n CloseCircleFilledIcon as TdCloseCircleFilledIcon,\n} from 'tdesign-icons-vue-next';\nimport props from './props';\nimport {\n useConfig,\n useDisabled,\n useReadonly,\n useTNodeJSX,\n useGlobalIcon,\n usePrefixClass,\n useCommonClassName,\n} from '@tdesign/shared-hooks';\n\nimport { useInput, useInputEventHandler, useInputWidth } from './hooks';\nimport { getValidAttrs } from '@tdesign/common-js/utils/helper';\n\nexport default defineComponent({\n name: 'TInput',\n props: {\n ...props,\n /**\n * 非公开 API,随时可能变动,请勿使用。控制透传readonly同时是否展示input 默认保留 因为正常Input需要撑开宽度\n */\n showInput: {\n type: Boolean,\n default: true,\n },\n /**\n * 非公开 API,随时可能变动,请勿使用。控制透传autoWidth之后是否容器宽度也自适应 多选等组件需要用到自适应但也需要保留宽度\n */\n keepWrapperWidth: {\n type: Boolean,\n default: false,\n },\n },\n setup(props, { expose }) {\n const { globalConfig } = useConfig('input');\n const { BrowseIcon, BrowseOffIcon, CloseCircleFilledIcon } = useGlobalIcon({\n BrowseIcon: TdBrowseIcon,\n BrowseOffIcon: TdBrowseOffIcon,\n CloseCircleFilledIcon: TdCloseCircleFilledIcon,\n });\n const readonly = useReadonly();\n const disabled = useDisabled();\n\n const COMPONENT_NAME = usePrefixClass('input');\n const INPUT_WRAP_CLASS = usePrefixClass('input__wrap');\n const INPUT_TIPS_CLASS = usePrefixClass('input__tips');\n const { STATUS, SIZE } = useCommonClassName();\n const classPrefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n const {\n isHover,\n tStatus,\n inputRef,\n renderType,\n showClear,\n focused,\n inputValue,\n isComposition,\n compositionValue,\n innerValue,\n limitNumber,\n ...inputHandle\n } = useInput(props, expose);\n\n const { inputPreRef } = useInputWidth(props, inputRef, innerValue);\n\n const inputEventHandler = useInputEventHandler(props, isHover);\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 { useTNodeJSX, usePrefixClass } from '@tdesign/shared-hooks';\n\nimport inputGroupProps from './input-group-props';\n\nexport default defineComponent({\n name: 'TInputGroup',\n props: inputGroupProps,\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('input-group');\n const renderTNodeJSX = useTNodeJSX();\n const CLASS = computed(() => [\n COMPONENT_NAME.value,\n {\n [`${COMPONENT_NAME.value}--separate`]: props.separate,\n },\n ]);\n return () =>
    {renderTNodeJSX('default')}
    ;\n },\n});\n","import _Input from './input';\nimport _InputGroup from './input-group';\nimport { withInstall } from '@tdesign/shared-utils';\nimport { InputValue, TdInputProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type InputProps = TdInputProps;\nexport type InputBlurEventParams = Parameters;\nexport type InputFocusEventParams = Parameters;\nexport type StrInputProps = TdInputProps;\nexport type NumberInputProps = TdInputProps;\n\nexport const Input = withInstall(_Input);\nexport const InputGroup = withInstall(_InputGroup);\n\nexport default Input;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdInputNumberProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 文本内容位置,居左/居中/居右 */\n align: {\n type: String as PropType,\n validator(val: TdInputNumberProps['align']): boolean {\n if (!val) return true;\n return ['left', 'center', 'right'].includes(val);\n },\n },\n /** 是否允许输入超过 `max` `min` 范围外的数字。为保障用户体验,仅在失去焦点时进行数字范围矫正。默认允许超出,数字超出范围时,输入框变红提醒 */\n allowInputOverLimit: {\n type: Boolean,\n default: true,\n },\n /** 宽度随内容自适应 */\n autoWidth: Boolean,\n /** [小数位数](https://en.wiktionary.org/wiki/decimal_place) */\n decimalPlaces: {\n type: [Number, Object] as PropType,\n default: undefined as TdInputNumberProps['decimalPlaces'],\n },\n /** 禁用组件 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 格式化输入框展示值。第二个事件参数 `context.fixedNumber` 表示处理过小数位数 `decimalPlaces` 的数字 */\n format: {\n type: Function as PropType,\n },\n /** 透传 Input 输入框组件全部属性 */\n inputProps: {\n type: Object as PropType,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 是否作为大数使用。JS 支持的最大数字位数是 16 位,超过 16 位的数字需作为字符串大数处理。此时,数据类型必须保持为字符串,否则会丢失数据 */\n largeNumber: Boolean,\n /** 最大值。如果是大数,请传入字符串 */\n max: {\n type: [String, Number] as PropType,\n default: Infinity as TdInputNumberProps['max'],\n },\n /** 最小值。如果是大数,请传入字符串 */\n min: {\n type: [String, Number] as PropType,\n default: -Infinity as TdInputNumberProps['min'],\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 组件尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdInputNumberProps['size'],\n validator(val: TdInputNumberProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 文本框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdInputNumberProps['status'],\n validator(val: TdInputNumberProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 数值改变步数,可以是小数。如果是大数,请保证数据类型为字符串 */\n step: {\n type: [String, Number] as PropType,\n default: 1 as TdInputNumberProps['step'],\n },\n /** 后置内容 */\n suffix: {\n type: [String, Function] as PropType,\n },\n /** 按钮布局 */\n theme: {\n type: String as PropType,\n default: 'row' as TdInputNumberProps['theme'],\n validator(val: TdInputNumberProps['theme']): boolean {\n if (!val) return true;\n return ['column', 'row', 'normal'].includes(val);\n },\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 数字输入框的值。当值为 '' 时,输入框显示为空 */\n value: {\n type: [String, Number] as PropType,\n default: undefined as TdInputNumberProps['value'],\n },\n modelValue: {\n type: [String, Number] as PropType,\n default: undefined as TdInputNumberProps['value'],\n },\n /** 数字输入框的值。当值为 '' 时,输入框显示为空,非受控属性 */\n defaultValue: {\n type: [String, Number] as PropType,\n },\n /** 失去焦点时触发 */\n onBlur: Function as PropType,\n /** 值变化时触发,`type` 表示触发本次变化的来源 */\n onChange: Function as PropType,\n /** 回车键按下时触发 */\n onEnter: Function as PropType,\n /** 获取焦点时触发 */\n onFocus: Function as PropType,\n /** 键盘按下时触发 */\n onKeydown: Function as PropType,\n /** 按下字符键时触发(keydown -> keypress -> keyup) */\n onKeypress: Function as PropType,\n /** 释放键盘时触发 */\n onKeyup: Function as PropType,\n /** 最大值或最小值校验结束后触发,`exceed-maximum` 表示超出最大值,`below-minimum` 表示小于最小值 */\n onValidate: Function as PropType,\n};\n","import { isString, isNumber, isObject } from 'lodash-es';\nimport log from '../log/log';\n\nexport type InputNumberDecimalPlaces = number | { enableRound: boolean, places: number };\n\nexport function fillZero(length: number) {\n return new Array(length).fill(0).join('');\n}\n\n/**\n * 大数,是否是一个数字,数字字符包括 - . e [0-9]\n */\nexport function isInputNumber(num: number | string): boolean {\n if (!num) return true;\n if (isNumber(num)) return !Number.isNaN(num);\n const r = /^[0-9|e|E|-]+\\.*[0-9|e|E|-]*$/.test(num);\n if (!r) return false;\n // only allow one [.e] and two [-]\n let eCount = 0;\n let negativeCount = 0;\n let dotCount = 0;\n for (let i = 0, len = num.length; i < len; i++) {\n if (num[i] === '.') {\n dotCount += 1;\n if (dotCount > 1) return false;\n }\n if (/(e|E)+/.test(num[i])) {\n eCount += 1;\n if (eCount > 1) return false;\n }\n if (num[i] === '-') {\n negativeCount += 1;\n if (negativeCount > 2) return false;\n }\n }\n return true;\n}\n\n// 整数,去除前面的无效 0(本身是 0 除外);小数去除末尾的无效 0\nexport function removeInvalidZero(num: string, decimal = false) {\n if (num.indexOf('.') !== -1) {\n log.error('InputNumber', 'num is not a integer number.');\n return num;\n }\n if (!num || (num === '0' && decimal)) return '';\n if (num === '0') return num;\n return (decimal ? num.replace(/0+$/, '') : num.replace(/^0+/, '')) || '0';\n}\n\n/**\n * 大数加法,仅支持正整数(没有精度问题)\n * @param num1 被加数\n * @param num2 加数\n */\nexport function largeIntNumberAdd(num1: string, num2: string, decimal = false): string {\n const number1 = removeInvalidZero(num1, decimal);\n const number2 = removeInvalidZero(num2, decimal);\n const isFirstLarger = number1.length > number2.length;\n const maxNumber = isFirstLarger ? number1 : number2;\n const minNumber = isFirstLarger ? number2 : number1;\n const newNumber: string[] = [];\n const step = [];\n const diff = decimal ? 0 : maxNumber.length - minNumber.length;\n const len = decimal ? minNumber.length : maxNumber.length;\n for (let i = len - 1; i >= 0; i--) {\n const minIndex = i - diff;\n // 第一个数,加第二个数,加进位\n const count = Number(maxNumber[i]) + (Number(minNumber[minIndex]) || 0) + (step[i] || 0);\n if (count >= 10) {\n step[i - 1] = 1;\n }\n newNumber.unshift(String(count % 10));\n }\n // 999 + 1 = 1000,之类的进位\n if (step[-1]) {\n newNumber.unshift('1');\n }\n if (decimal) {\n return newNumber.concat(maxNumber.slice(len, maxNumber.length)).join('');\n }\n return newNumber.join('');\n}\n\n/**\n * 大数加法,支持小数和整数(没有精度问题)\n * @param num1 被加数\n * @param num2 加数\n */\nexport function largePositiveNumberAdd(num1: string, num2: string): string {\n const [intNumber1 = '0', decimalNumber1 = '0'] = num1.split('.');\n const [intNumber2 = '0', decimalNumber2 = '0'] = num2.split('.');\n const integerSum = largeIntNumberAdd(intNumber1, intNumber2);\n // 如果不存在小数,则直接返回整数相加结果\n if (decimalNumber1 === '0' && decimalNumber2 === '0') return integerSum;\n const newDecimalNumber1 = removeInvalidZero(decimalNumber1, true);\n const newDecimalNumber2 = removeInvalidZero(decimalNumber2, true);\n // 小数点相加\n const decimalNumberSum = largeIntNumberAdd(newDecimalNumber1, newDecimalNumber2, true);\n // 组合整数部分和小数部分\n const decimalLength = decimalNumberSum.length;\n // 如果小数相加进位\n if (decimalLength > newDecimalNumber1.length && decimalLength > newDecimalNumber2.length) {\n return [\n removeInvalidZero(largeIntNumberAdd(integerSum, '1')),\n removeInvalidZero(decimalNumberSum.slice(1), true),\n ].filter((v: string) => v).join('.');\n }\n return [\n removeInvalidZero(integerSum),\n removeInvalidZero(decimalNumberSum, true)\n ].filter((v: string) => v).join('.');\n}\n\n/**\n * 比较两个大数的大小,仅正整数有效\n */\nfunction compareLargeIntegerNumber(num1: string, num2: string): 1 | -1 | 0 {\n const number1 = removeInvalidZero(num1);\n const number2 = removeInvalidZero(num2);\n if (number1.length === number2.length) {\n for (let i = 0, len = number1.length; i < len; i++) {\n if (number1[i] > number2[i]) return 1;\n if (number1[i] < number2[i]) return -1;\n }\n return 0;\n }\n return number1.length > number2.length ? 1 : -1;\n}\n\nfunction compareLargeDecimalNumber(num1: string, num2: string) {\n const number1 = num1 && num1 !== '0' ? num1.replace(/0+$/, '') : '0';\n const number2 = num2 && num2 !== '0' ? num2.replace(/0+$/, '') : '0';\n const maxLength = Math.max(number1.length, number2.length);\n for (let i = 0, len = maxLength; i < len; i++) {\n if ((number1[i] || 0) > (number2[i] || 0)) return 1;\n if ((number1[i] || 0) < (number2[i] || 0)) return -1;\n }\n return 0;\n}\n\n/**\n * 2e3 => 2000\n * 0.2e3 => 200\n */\nexport function formatENumber(num: string): string {\n const [num1, num2] = num.split('e');\n if (!num2) return num;\n const [integer, initDecimal = ''] = num.split('.');\n const zeroCount = Number(num2);\n const [decimal] = initDecimal.split('e');\n if (zeroCount > decimal.length) {\n const multipleZero = fillZero(zeroCount - decimal.length);\n return num1.replace(/(^0+|\\.)/g, '') + multipleZero;\n }\n const n1 = integer.replace(/^0+/, '') + decimal.slice(0, zeroCount);\n const d2 = decimal.slice(zeroCount);\n return d2 ? [n1, d2].join('.') : n1;\n}\n\n/**\n * 比较两个大数的大小\n */\nexport function compareLargeNumber(\n num1: string,\n num2: string,\n): 1 | -1 | 0 {\n const [integer1, decimal1] = formatENumber(num1).split('.');\n const [integer2, decimal2] = formatENumber(num2).split('.');\n const result = compareLargeIntegerNumber(integer1.replace('-', ''), integer2.replace('-', ''));\n const integer1IsNegative = integer1.includes('-');\n const integer2IsNegative = integer2.includes('-');\n if (integer1IsNegative && !integer2IsNegative) return -1;\n if (!integer1IsNegative && integer2IsNegative) return 1;\n if (integer1IsNegative && integer2IsNegative) {\n if (result === 0) return 0;\n return result > 0 ? -1 : 1;\n }\n if (result === 0) {\n return compareLargeDecimalNumber(decimal1, decimal2);\n }\n return result;\n}\n\n// 确认是否为无限大/小\nexport function isInfinity(num: number| string) {\n return [-Infinity, Infinity].includes(Number(num));\n}\n\n// 确认是否是大数\nexport function isSafeNumber(num: string | number) {\n return Number(num) < Number.MAX_SAFE_INTEGER && Number(num) > Number.MIN_SAFE_INTEGER;\n}\n\n/**\n * 比较两个数的大小\n */\nexport function compareNumber(\n num1: string | number,\n num2: string | number,\n largeNumber?: boolean,\n) {\n const isSafeNumberCompare = isSafeNumber(num1) && isSafeNumber(num2) && !largeNumber;\n const isInfinityCompare = isInfinity(num1) || isInfinity(num2);\n if (isSafeNumberCompare || isInfinityCompare) {\n // 比较两个非大数或涉及无穷的大小\n if (Number(num1) === Number(num2)) return 0;\n return Number(num1) > Number(num2) ? 1 : -1;\n }\n // 比较两个大数的大小\n return compareLargeNumber(String(num1), String(num2));\n}\n\n/**\n * 大数减法,仅支持整数\n * @param num1 被减数\n * @param num2 减数\n * @param decimal 是否为小数位相减\n */\nexport function largeIntegerNumberSubtract(\n num1: string, num2: string, p?: { decimal?: boolean, stayZero?: boolean }\n): string {\n if (num1 === num2) return '0';\n const { decimal, stayZero } = p || {};\n const number1 = removeInvalidZero(num1);\n const number2 = removeInvalidZero(num2);\n const isFirstLarger = compareLargeIntegerNumber(number1, number2) > 0;\n const maxNumber = isFirstLarger ? number1 : number2;\n const minNumber = isFirstLarger ? number2 : number1;\n const newNumber: string[] = [];\n // step 存储借位信息\n const step = [];\n const diff = decimal ? 0 : maxNumber.length - minNumber.length;\n const len = decimal ? minNumber.length : maxNumber.length;\n for (let i = len - 1; i >= 0; i--) {\n const minIndex = i - diff;\n // 第一个数,减第二个数,减借位\n let count = Number(maxNumber[i]) - (Number(minNumber[minIndex]) || 0) - (step[i] || 0);\n if (count < 0) {\n step[i - 1] = 1;\n count += 10;\n }\n newNumber.unshift(String(count));\n }\n if (decimal) {\n return newNumber.concat(maxNumber.slice(len, maxNumber.length)).join('');\n }\n let finalNumber = newNumber.join('');\n if (!stayZero) {\n finalNumber = finalNumber.replace(/^0+/, '');\n }\n return removeInvalidZero(isFirstLarger ? finalNumber : `-${finalNumber}`);\n}\n\n/**\n * 大数减法,支持整数和小数(无精度问题)\n * @param num1 被减数\n * @param num2 减数\n * @param decimal 是否为小数位相减\n */\nexport function largePositiveNumberSubtract(num1: string, num2: string): string {\n if (num1 === num2) return '0';\n const isFirstLarger = compareNumber(num1, num2, true) > 0;\n const maxNumber = isFirstLarger ? num1 : num2;\n const minNumber = isFirstLarger ? num2 : num1;\n // 整数部分和小数部分分开处理\n const [intNumber1, decimalNumber1 = '0'] = maxNumber.split('.');\n const [intNumber2, decimalNumber2 = '0'] = minNumber.split('.');\n let integerNumber = largeIntegerNumberSubtract(intNumber1, intNumber2);\n // 如果不存在小数,则直接返回整数相加结果\n if (decimalNumber1 === '0' && decimalNumber2 === '0') {\n return isFirstLarger ? integerNumber : `-${integerNumber}`;\n }\n // 小数点相减\n let decimalNumber = '';\n let addOneNumber = decimalNumber1;\n // 第一个数字的小数位数比第二个少,需补足 0\n if (decimalNumber1.length < decimalNumber2.length) {\n addOneNumber = `${decimalNumber1}${fillZero(decimalNumber2.length - decimalNumber1.length)}`;\n }\n // 第一个小数位更小,是否需要借位\n if (compareLargeDecimalNumber(addOneNumber, decimalNumber2) >= 0) {\n decimalNumber = largeIntegerNumberSubtract(addOneNumber, decimalNumber2, { decimal: true });\n } else {\n if (decimalNumber1.length < decimalNumber2.length || decimalNumber1 === '0') {\n decimalNumber = largeIntegerNumberSubtract(`1${addOneNumber}`, decimalNumber2, { stayZero: true });\n decimalNumber = fillZero(decimalNumber2.length - decimalNumber.length) + decimalNumber;\n } else {\n decimalNumber = largeIntegerNumberSubtract(decimalNumber1, decimalNumber2, { decimal: true });\n }\n integerNumber = largeIntegerNumberSubtract(integerNumber, '1');\n }\n const finalNumber = decimalNumber ? [integerNumber, decimalNumber].join('.') : integerNumber;\n return isFirstLarger ? finalNumber : `-${finalNumber}`;\n}\n\n/**\n * -0.6 - 0.8 => -(0.6 + 0.8)\n * -0.6 - (-0.8) => 0.8 - 0.6\n * 0.6 - (-0.8) => 0.6 + 0.8\n * 0.6 - 0.8 => 0.6 - 0.8\n */\nexport function largeNumberSubtract(num1: string, num2: string): string {\n const isFirstNegative = num1[0] === '-';\n const isSecondNegative = num2[0] === '-';\n if (isFirstNegative && !isSecondNegative) {\n const r = largePositiveNumberAdd(num1.slice(1), num2);\n return `-${r}`;\n }\n if (isFirstNegative && isSecondNegative) {\n return largePositiveNumberSubtract(num2.slice(1), num1.slice(1));\n }\n if (!isFirstNegative && isSecondNegative) {\n return largePositiveNumberAdd(num1, num2.slice(1));\n }\n return largePositiveNumberSubtract(num1, num2);\n}\n\n/**\n * -0.6 + 0.8 => 0.8 - 0.6\n * -0.6 + (-0.8) => -(0.6 + 0.8)\n * 0.6 + (-0.8) => 0.6 - 0.8\n * 0.6 + 0.8 => 0.6 + 0.8\n */\nexport function largeNumberAdd(num1: string, num2: string): string {\n const isFirstNegative = num1[0] === '-';\n const isSecondNegative = num2[0] === '-';\n if (isFirstNegative && !isSecondNegative) {\n return largePositiveNumberSubtract(num2, num1.slice(1));\n }\n if (isFirstNegative && isSecondNegative) {\n const r = largePositiveNumberAdd(num2.slice(1), num1.slice(1));\n return `-${r}`;\n }\n if (!isFirstNegative && isSecondNegative) {\n return largePositiveNumberSubtract(num1, num2.slice(1));\n }\n return largePositiveNumberAdd(num1, num2);\n}\n\n/**\n * 格式化小数,并且可以控制小数点后的位数和是否进行四舍五入。\n *\n * @param {number} num - 要格式化的数字。\n * @param {number} places - 小数点后的位数。\n * @param {boolean} rounding - 是否进行四舍五入。\n * @returns {string} 格式化后的数字字符串。\n */\nexport function formatDecimal(num: number, places: number, enableRound: boolean = true) {\n // 开启四舍五入 直接用 toFixed\n if (enableRound) {\n return num.toFixed(places);\n }\n\n const [integer, decimal] = num.toString().split('.');\n // 保留 0 位小数\n if (places === 0) {\n return integer;\n }\n // 补足小数位数\n if (decimal) {\n let decimalNumber = decimal.slice(0, places);\n if (decimal.length < places) {\n decimalNumber += fillZero(places - decimal.length);\n }\n return [integer, decimalNumber].join('.');\n }\n\n return [integer, fillZero(places)].join('.');\n}\n\nexport function decimalPlacesToFixedNum(num: number, decimalPlaces: InputNumberDecimalPlaces) {\n if (isObject(decimalPlaces)) {\n return formatDecimal(num, decimalPlaces.places, decimalPlaces.enableRound ?? true);\n }\n return formatDecimal(num, decimalPlaces, true);\n}\n\n/**\n * 大数保留 N 位小数(没有精度问题)\n * @param {String} number 大数(只能使用字符串表示)\n * @param {Number} decimalPlaces 保留的小数位数\n * @param {Boolean} largeNumber 是否为大数\n */\nexport function largeNumberToFixed(\n number: string | number,\n decimalPlaces: InputNumberDecimalPlaces = 0,\n largeNumber: boolean = true,\n): string {\n if (Number.isNaN(Number(number))) return '';\n if (!largeNumber) {\n return decimalPlacesToFixedNum(Number(number), decimalPlaces);\n }\n const places = isObject(decimalPlaces) ? decimalPlaces.places : decimalPlaces;\n const enableRound = isObject(decimalPlaces) ? (decimalPlaces.enableRound ?? true) : true;\n if (!isString(number)) return String(number);\n // eslint-disable-next-line prefer-const\n let [num1, num2] = number.split('.');\n // 如果不存在小数点,则补足位数\n if (!num2) {\n return (places > 0 && enableRound) ? [number, (fillZero(places))].join('.') : number;\n }\n // 存在小数点,保留 0 位小数,灵活配置四舍五入\n if (places === 0) {\n return (enableRound && Number(num2[0]) >= 5) ? largePositiveNumberAdd(num1, '1') : num1;\n }\n // 存在小数点,保留 > 0 位小数,灵活配置四舍五入\n let decimalNumber = num2.slice(0, places);\n if (num2.length < places) {\n decimalNumber += (fillZero(places - num2.length));\n } else if (enableRound) {\n // 用于判断是否处于 1.08 这种小数为0开始的边界情况\n const leadZeroNum = decimalNumber.match(/^0+/)?.[0].length;\n // 用于判断是否处于 0.99/1.99 等需要往非0位进位的场景\n const leadNineNum = decimalNumber.match(/^9+/);\n // 决定是否需要四舍五入\n const needAdded = Number(num2[places]) >= 5;\n\n // 四舍五入后的结果\n decimalNumber = needAdded\n ? largePositiveNumberAdd(decimalNumber, '1')\n : decimalNumber;\n\n // 边界场景1(1.08 这种小数为0开始的边界情况):计算后有误判的可能,如008 +1 误判为 8+1,需要手动补 0\n if (\n leadZeroNum\n && needAdded\n && leadZeroNum + decimalNumber.length >= places\n ) {\n decimalNumber = `${fillZero(\n places - decimalNumber.length\n )}${decimalNumber}`;\n }\n // 边界场景2:(0.99 这种可能进位的边界情况):计算后有误判的可能,如995 四舍五入后需进位\n if (leadNineNum && decimalNumber.length > places) {\n num1 = (Number(num1) + 1).toString();\n decimalNumber = fillZero(places);\n }\n }\n return [num1, decimalNumber].join('.');\n}\n","import { isUndefined, isString, isNumber } from 'lodash-es';\n/** 普通数相关方法 */\nimport {\n compareNumber,\n formatENumber,\n largeNumberToFixed,\n isInputNumber,\n largeNumberAdd,\n largeNumberSubtract,\n} from './large-number';\nimport log from '../log';\nimport type { InputNumberDecimalPlaces } from './large-number';\n\nexport * from './large-number';\n\nexport type NumberType = number | string;\n\n// 小于最大值,才允许继续添加\nexport function canAddNumber(\n num: NumberType,\n max: NumberType,\n largeNumber = false\n): boolean {\n if (!num && num !== 0) return true;\n if (largeNumber && isString(num)) {\n return compareNumber(num, max, largeNumber) < 0;\n }\n return num < max;\n}\n\n// 大于最小值,才允许继续减少\nexport function canReduceNumber(\n num: NumberType,\n min: NumberType,\n largeNumber = false\n): boolean {\n if (!num && num !== 0) return true;\n if (largeNumber && isString(num)) {\n return compareNumber(num, min, largeNumber) > 0;\n }\n return num > min;\n}\n\n/**\n * 将数字控制在 max 和 min 之间\n */\nexport function putInRangeNumber(\n val: NumberType,\n params: {\n max?: NumberType;\n min?: NumberType;\n lastValue?: NumberType;\n largeNumber?: boolean;\n }\n) {\n if (val === '') return undefined;\n const { max, min, lastValue, largeNumber } = params;\n if (!isInputNumber(val)) return lastValue;\n if (largeNumber && (isString(max) || max === Infinity) && (isString(min) || min === -Infinity)) {\n if (compareNumber(max, val, largeNumber) < 0) return max;\n if (compareNumber(min, val, largeNumber) > 0) return min;\n return val;\n }\n return Math.max(Number(min), Math.min(Number(max), Number(val)));\n}\n\n/**\n * 仅支持正数,小数加法精度处理,小数部分和整数部分分开处理\n */\nexport function positiveAdd(num1: number, num2: number): number {\n if (!num1 || !num2) return (num1 || 0) + (num2 || 0);\n const r1 = num1.toString().split('.')[1]?.length || 0;\n const r2 = num2.toString().split('.')[1]?.length || 0;\n // 整数不存在精度问题,直接返回\n if (!r1 && !r2) return num1 + num2;\n let newNumber1 = num1;\n let newNumber2 = num2;\n const diff = Math.abs(r1 - r2);\n const digit = 10 ** Math.max(r1, r2);\n if (diff > 0) {\n const cm = 10 ** diff;\n if (r1 > r2) {\n newNumber1 = Number(num1.toString().replace('.', ''));\n newNumber2 = Number(num2.toString().replace('.', '')) * cm;\n } else {\n newNumber1 = Number(num1.toString().replace('.', '')) * cm;\n newNumber2 = Number(num2.toString().replace('.', ''));\n }\n } else {\n newNumber1 = Number(num1.toString().replace('.', ''));\n newNumber2 = Number(num2.toString().replace('.', ''));\n }\n return (newNumber1 + newNumber2) / digit;\n}\n\n/**\n * 正数,小数减法精度处理,小数部分和整数部分分开处理\n */\nexport function positiveSubtract(num1: number, num2: number): number {\n if (!num1 || !num2) return (num1 || 0) - (num2 || 0);\n const r1 = num1.toString().split('.')[1]?.length || 0;\n const r2 = num2.toString().split('.')[1]?.length || 0;\n const digit = 10 ** Math.max(r1, r2);\n const n = r1 >= r2 ? r1 : r2;\n return Number(((num1 * digit - num2 * digit) / digit).toFixed(n));\n}\n\n/**\n * 支持正数、负数、小数等全部数字的加法\n * -0.766 + 1 => 1 - 0.766\n * -1 + (-0.766) => - (1 + 0.766)\n * 1 + (-0.766) => 1 - 0.766\n * 1 + 0.766 => 1 + 0.766\n */\nexport function add(num1: number, num2: number): number {\n if (num1 < 0 && num2 > 0) return positiveSubtract(num2, Math.abs(num1));\n if (num1 < 0 && num2 < 0) return positiveAdd(Math.abs(num1), Math.abs(num2)) * -1;\n if (num1 > 0 && num2 < 0) return positiveSubtract(num1, Math.abs(num2));\n return positiveAdd(num1, num2);\n}\n\n/**\n * 支持正数、负数、小数等全部数字的减法\n * -0.766 - 1 => - (1 + 0.766)\n * -1 - (-0.766) => 0.766 - 1\n * 1 - (-0.766) => 1 + 0.766\n * 1 - 0.766 => 1 - 0.766\n */\nexport function subtract(num1: number, num2: number): number {\n if (num1 < 0 && num2 > 0) return positiveAdd(Math.abs(num1), num2) * -1;\n if (num1 < 0 && num2 < 0) return positiveSubtract(Math.abs(num2), Math.abs(num1));\n if (num1 > 0 && num2 < 0) return positiveAdd(num1, Math.abs(num2));\n return positiveSubtract(num1, num2);\n}\n\nexport function getStepValue(p: {\n op: 'add' | 'reduce';\n step: NumberType;\n max?: NumberType;\n min?: NumberType;\n lastValue?: NumberType;\n largeNumber?: boolean;\n}) {\n const { op, step, lastValue, max, min, largeNumber } = p;\n if (Number(step) <= 0) {\n log.error('InputNumber', 'step must be larger than 0.');\n return lastValue;\n }\n const tStep = isNumber(step) ? String(step) : step;\n let newVal;\n if (op === 'add') {\n if (largeNumber && isString(lastValue)) {\n newVal = largeNumberAdd(String(lastValue), String(tStep));\n } else {\n newVal = add(Number(lastValue || 0), Number(step));\n }\n } else if (op === 'reduce') {\n if (largeNumber && isString(lastValue)) {\n newVal = largeNumberSubtract(String(lastValue), String(tStep));\n } else {\n newVal = subtract(Number(lastValue || 0), Number(step));\n }\n }\n if (isUndefined(lastValue)) {\n newVal = putInRangeNumber(newVal, { max, min, lastValue, largeNumber });\n }\n return largeNumber ? newVal : Number(newVal);\n}\n\nexport type InputNumberErrorType =\n | 'exceed-maximum'\n | 'below-minimum'\n | undefined;\n\n/**\n * 最大值和最小值校验\n */\nexport function getMaxOrMinValidateResult(p: {\n largeNumber: boolean;\n value: NumberType;\n max: NumberType;\n min: NumberType;\n}): InputNumberErrorType {\n const { largeNumber, value, max, min } = p;\n if (isUndefined(value) || isUndefined(largeNumber)) return undefined;\n if (largeNumber && isNumber(value)) {\n log.warn('InputNumber', 'largeNumber value must be a string.');\n }\n let error: InputNumberErrorType;\n if (compareNumber(value, max, largeNumber) > 0) {\n error = 'exceed-maximum';\n } else if (compareNumber(value, min, largeNumber) < 0) {\n error = 'below-minimum';\n } else {\n error = undefined;\n }\n return error;\n}\n\nexport const specialCode = ['-', '.', 'e', 'E', '+'];\n\n/**\n * 是否允许输入当前字符,输入字符校验\n * 1.23E+08 就表示 1.23 乘 10 的 8 次方\n * 2e3 表示 2 乘 10 的 3 次方\n */\nexport function canInputNumber(number: string | undefined | null, largeNumber?: boolean) {\n if (['', null, undefined].includes(number)) return true;\n // 数字最前方不允许出现连续的两个 0\n if (number.slice(0, 2) === '00') return false;\n // 不能出现空格\n if (number.match(/\\s/g)) return false;\n // 只能出现一个点(.)\n if (number.match(/\\./g)?.length > 1) return false;\n // 只能出现一个e(e)\n if (number.match(/e/g)?.length > 1) return false;\n // 只能出现一个负号(-)或 一个正号(+),并且在第一个位置;但允许 3e+10 这种形式\n const tmpNumber = number.slice(1);\n const tmpMatched = tmpNumber.match(/(\\+|-)/g);\n if (tmpMatched && (!/e(\\+|-)/i.test(tmpNumber) || tmpMatched.length > 1)) return false;\n // 允许输入数字字符\n const isNumber = (largeNumber && isInputNumber(number)) || !Number.isNaN(Number(number));\n if (!isNumber && !specialCode.includes(number.slice(-1))) return false;\n if (/e/i.test(number) && (!/\\de/i.test(number) || /e\\./.test(number))) return false;\n return true;\n}\n\n/**\n * 是否允许设置组件新值,触发 onChange 事件\n */\nexport function canSetValue(number: string, lastNumber: number) {\n return parseFloat(number) !== lastNumber && !Number.isNaN(Number(number));\n}\n\n/**\n * 1. 格式化未输入完成的数字,如:如:2e/2+/2.等\n * 2. 处理小数点 decimalPlaces\n * 3. 格式化大数字 formatENumber\n */\nexport function formatUnCompleteNumber(\n number: string,\n extra: {\n decimalPlaces?: InputNumberDecimalPlaces;\n largeNumber?: boolean;\n isToFixed?: boolean;\n } = {}\n): number | string {\n if (['', null, undefined].includes(number) || !/\\d+/.test(number)) return undefined;\n const { decimalPlaces, largeNumber, isToFixed } = extra;\n let newNumber = number.replace(/[.|+|\\-|e]$/, '');\n if (largeNumber) {\n newNumber = formatENumber(newNumber);\n }\n if (decimalPlaces !== undefined) {\n newNumber = largeNumberToFixed(newNumber, decimalPlaces, largeNumber);\n }\n if (largeNumber) return newNumber;\n return isToFixed ? newNumber : parseFloat(newNumber);\n}\n\n/**\n * 对千分位进行处理 111,111,222 -> 111111222\n */\nexport function formatThousandths(number: string) {\n const thousandthsRegExp = /^[-+]?\\d{1,3}(,\\d{3})*(\\.(\\d*))?$/;\n if (thousandthsRegExp.test(number)) return number.replace(/,/g, '');\n return number;\n}\n","import { computed, ref, toRefs, watch } from 'vue';\nimport { useVModel, useReadonly, useDisabled, useCommonClassName } from '@tdesign/shared-hooks';\n\nimport { InputNumberValue, TdInputNumberProps } from '../type';\n\n// 计算逻辑,统一到 common 中,方便各框架复用(如超过 16 位的大数处理)\nimport {\n canAddNumber,\n canInputNumber,\n canReduceNumber,\n getMaxOrMinValidateResult,\n getStepValue,\n formatThousandths,\n canSetValue,\n formatUnCompleteNumber,\n largeNumberToFixed,\n} from '@tdesign/common-js/input-number/number';\n\nimport { StrInputProps } from '../../input';\n\n/**\n * 独立一个组件 Hook 方便用户直接使用相关逻辑 自定义任何样式的数字输入框\n */\nexport default function useInputNumber(props: TdInputNumberProps) {\n const { classPrefix, SIZE, STATUS } = useCommonClassName();\n const { value, modelValue, max, min } = toRefs(props);\n // 统一处理受控、非受控、语法糖 v-model 等\n const [tValue, setTValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const inputRef = ref();\n const userInput = ref('');\n\n const tDisabled = useDisabled();\n\n const isReadonly = useReadonly();\n\n const isError = ref<'exceed-maximum' | 'below-minimum'>();\n\n const disabledReduce = computed(\n () => tDisabled.value || !canReduceNumber(tValue.value, props.min, props.largeNumber),\n );\n\n const disabledAdd = computed(() => tDisabled.value || !canAddNumber(tValue.value, props.max, props.largeNumber));\n\n const wrapClasses = computed(() => [\n `${classPrefix.value}-input-number`,\n SIZE.value[props.size],\n {\n [STATUS.value.disabled]: tDisabled.value,\n [`${classPrefix.value}-is-controls-right`]: props.theme === 'column',\n [`${classPrefix.value}-input-number--${props.theme}`]: props.theme,\n [`${classPrefix.value}-input-number--auto-width`]: props.autoWidth,\n },\n ]);\n\n const reduceClasses = computed(() => [\n `${classPrefix.value}-input-number__decrease`,\n { [STATUS.value.disabled]: disabledReduce.value },\n ]);\n\n const addClasses = computed(() => [\n `${classPrefix.value}-input-number__increase`,\n { [STATUS.value.disabled]: disabledAdd.value },\n ]);\n\n const getUserInput = (value: InputNumberValue) => {\n if (!value && value !== 0) return '';\n let inputStr = value || value === 0 ? String(value) : '';\n if (!inputRef.value?.inputRef?.contains(document.activeElement)) {\n const num = formatUnCompleteNumber(inputStr, {\n decimalPlaces: props.decimalPlaces,\n largeNumber: props.largeNumber,\n isToFixed: true,\n });\n inputStr = num || num === 0 ? String(num) : '';\n if (props.format) {\n inputStr = String(props.format(value, { fixedNumber: inputStr }));\n }\n }\n return inputStr;\n };\n\n watch(\n tValue,\n (val) => {\n const { largeNumber, decimalPlaces } = props;\n const inputValue = [undefined, null].includes(val) ? '' : String(val);\n // userInput.value 为非合法数字,则表示用户正在输入,此时无需处理\n if (!largeNumber && !Number.isNaN(userInput.value)) {\n if (parseFloat(userInput.value) !== val) {\n userInput.value = getUserInput(inputValue);\n }\n const fixedNumber = Number(largeNumberToFixed(inputValue, decimalPlaces, largeNumber));\n if (\n decimalPlaces !== undefined &&\n ![undefined, null].includes(val) &&\n Number(fixedNumber) !== Number(tValue.value)\n ) {\n setTValue(fixedNumber, { type: 'props', e: undefined });\n }\n }\n if (largeNumber) {\n userInput.value = getUserInput(inputValue);\n\n if (decimalPlaces !== undefined && largeNumberToFixed(inputValue, decimalPlaces, largeNumber) !== val) {\n let completeValue = inputValue;\n if (!inputRef.value?.inputRef?.contains(document.activeElement)) {\n // isToFixed为true 只可能是string\n completeValue = formatUnCompleteNumber(completeValue, {\n decimalPlaces: props.decimalPlaces,\n largeNumber: props.largeNumber,\n isToFixed: true,\n }) as string;\n }\n setTValue(completeValue, { type: 'props', e: undefined });\n }\n }\n },\n { immediate: true },\n );\n\n watch(\n [tValue, max, min],\n () => {\n // @ts-ignore 没有输入完成,则无需校验\n if ([undefined, '', null].includes(tValue.value)) return;\n const { max, min, largeNumber } = props;\n const error = getMaxOrMinValidateResult({\n value: tValue.value,\n largeNumber,\n max,\n min,\n });\n isError.value = error;\n props.onValidate?.({ error });\n },\n { immediate: true },\n );\n\n const handleStepValue = (op: 'add' | 'reduce') => {\n const newValue = getStepValue({\n op,\n step: props.step,\n max: props.max,\n min: props.min,\n lastValue: tValue.value,\n largeNumber: props.largeNumber,\n });\n const { largeNumber, max, min } = props;\n const overLimit = getMaxOrMinValidateResult({\n value: newValue,\n largeNumber,\n max,\n min,\n });\n return {\n overLimit,\n newValue,\n };\n };\n\n const handleReduce = (e: KeyboardEvent | MouseEvent) => {\n if (disabledReduce.value || isReadonly.value) return;\n const r = handleStepValue('reduce');\n if (r.overLimit && !props.allowInputOverLimit) return;\n setTValue(r.newValue, { type: 'reduce', e });\n };\n\n const handleAdd = (e: KeyboardEvent | MouseEvent) => {\n if (disabledAdd.value || isReadonly.value) return;\n const r = handleStepValue('add');\n if (r.overLimit && !props.allowInputOverLimit) return;\n setTValue(r.newValue, { type: 'add', e });\n };\n\n const onInnerInputChange: StrInputProps['onChange'] = (inputValue, { e }) => {\n // 千分位处理\n const val = formatThousandths(inputValue);\n if (!canInputNumber(val, props.largeNumber)) return;\n\n // 先处理小数位数限制,然后再更新显示值和实际值\n let processedVal = val;\n if (props.decimalPlaces !== undefined && val !== '' && val.includes('.')) {\n const parts = val.split('.');\n // 获取实际小数位数限制\n const decimalLimit = typeof props.decimalPlaces === 'number' ? props.decimalPlaces : props.decimalPlaces.places;\n\n if (parts[1] && parts[1].length > decimalLimit) {\n // 直接截断为指定小数位数\n processedVal = `${parts[0]}.${parts[1].substring(0, decimalLimit)}`;\n }\n }\n\n // 更新显示值\n userInput.value = processedVal;\n\n if (props.largeNumber) {\n setTValue(processedVal, { type: 'input', e });\n return;\n }\n\n // 当处理后的值与当前值不同时,才更新\n const newNumber = processedVal === '' ? undefined : Number(processedVal);\n if (canSetValue(processedVal, Number(tValue.value))) {\n setTValue(newNumber, { type: 'input', e });\n }\n };\n\n const handleBlur = (value: string, ctx: { e: FocusEvent }) => {\n const { largeNumber, max, min, decimalPlaces } = props;\n if (!props.allowInputOverLimit && 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 '@tdesign/shared-hooks';\nimport { TdInputNumberProps } from './type';\nimport useInputNumber from './hooks/useInputNumber';\n\nexport default defineComponent({\n name: 'TInputNumber',\n props,\n // 保持纯净(逻辑和节点渲染分开)\n setup(props: TdInputNumberProps, context: SetupContext) {\n const { AddIcon, RemoveIcon, ChevronDownIcon, ChevronUpIcon } = useGlobalIcon({\n AddIcon: TdAddIcon,\n RemoveIcon: TdRemoveIcon,\n ChevronDownIcon: TdChevronDownIcon,\n ChevronUpIcon: TdChevronUpIcon,\n });\n const p = useInputNumber(props);\n const { inputRef } = p;\n context.expose({ ...p });\n\n return () => {\n const reduceIcon =\n props.theme === 'column' ? : ;\n const addIcon = props.theme === 'column' ? : ;\n const status = p.isError.value ? 'error' : props.status;\n\n return (\n
    \n {props.theme !== 'normal' && (\n reduceIcon}\n />\n )}\n \n {props.theme !== 'normal' && (\n addIcon}\n />\n )}\n
    \n );\n };\n },\n});\n","import _InputNumber from './input-number';\nimport { withInstall } from '@tdesign/shared-utils';\nimport { TdInputNumberProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type InputNumberProps = TdInputNumberProps;\n\nexport const InputNumber = withInstall(_InputNumber);\nexport default InputNumber;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdSelectInputProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否允许输入 */\n allowInput: Boolean,\n /** 宽度随内容自适应 */\n autoWidth: Boolean,\n /** 自动聚焦 */\n autofocus: Boolean,\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否可清空 */\n clearable: Boolean,\n /** 标签过多的情况下,折叠项内容,默认为 `+N`。如果需要悬浮就显示其他内容,可以使用 `collapsedItems` 自定义。`value` 表示所有标签值,`collapsedSelectedItems` 表示折叠标签值,`count` 表示折叠的数量,`onClose` 表示移除标签的事件回调 */\n collapsedItems: {\n type: Function as PropType,\n },\n /** 是否禁用 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 透传 Input 输入框组件全部属性 */\n inputProps: {\n type: Object as PropType,\n },\n /** 输入框的值 */\n inputValue: {\n type: [String, Number] as PropType,\n default: undefined as TdSelectInputProps['inputValue'],\n },\n /** 输入框的值,非受控属性 */\n defaultInputValue: {\n type: [String, Number] as PropType,\n },\n /** 定义字段别名,示例:`{ label: 'text', value: 'id', children: 'list' }` */\n keys: {\n type: Object as PropType,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 是否处于加载状态 */\n loading: Boolean,\n /** 最小折叠数量,用于标签数量过多的情况下折叠选中项,超出该数值的选中项折叠。值为 0 则表示不折叠 */\n minCollapsedNum: {\n type: Number,\n default: 0,\n },\n /** 是否为多选模式,默认为单选 */\n multiple: Boolean,\n /** 下拉框内容,可完全自定义 */\n panel: {\n type: [String, Function] as PropType,\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: '',\n },\n /** 透传 Popup 浮层组件全部属性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 是否显示下拉框 */\n popupVisible: {\n type: Boolean,\n default: undefined,\n },\n /** 是否显示下拉框,非受控属性 */\n defaultPopupVisible: Boolean,\n /** 组件前置图标 */\n prefixIcon: {\n type: Function as PropType,\n },\n /** 只读状态,值为真会隐藏输入框,且无法打开下拉框 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 多选且可搜索时,是否在选中一个选项后保留当前的搜索关键词 */\n reserveKeyword: Boolean,\n /** 组件尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdSelectInputProps['size'],\n validator(val: TdSelectInputProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdSelectInputProps['status'],\n validator(val: TdSelectInputProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 后置图标前的后置内容 */\n suffix: {\n type: [String, Function] as PropType,\n },\n /** 组件后置图标 */\n suffixIcon: {\n type: Function as PropType,\n },\n /** 多选场景下,自定义选中标签的内部内容。注意和 `valueDisplay` 区分,`valueDisplay` 是用来定义全部标签内容,而非某一个标签 */\n tag: {\n type: [String, Function] as PropType,\n },\n /** 透传 TagInput 组件全部属性 */\n tagInputProps: {\n type: Object as PropType,\n },\n /** 透传 Tag 标签组件全部属性 */\n tagProps: {\n type: Object as PropType,\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 全部标签值。值为数组表示多个标签,值为非数组表示单个数值 */\n value: {\n type: [String, Number, Boolean, Object, Array, Date] as PropType,\n default: undefined as TdSelectInputProps['value'],\n },\n /** 自定义值呈现的全部内容,参数为所有标签的值 */\n valueDisplay: {\n type: [String, Function] as PropType,\n },\n /** 失去焦点时触发,`context.inputValue` 表示输入框的值;`context.tagInputValue` 表示标签输入框的值 */\n onBlur: Function as PropType,\n /** 清空按钮点击时触发 */\n onClear: Function as PropType,\n /** 按键按下 Enter 时触发 */\n onEnter: Function as PropType,\n /** 聚焦时触发 */\n onFocus: Function as PropType,\n /** 输入框值发生变化时触发,`context.trigger` 表示触发输入框值变化的来源:文本输入触发、清除按钮触发等 */\n onInputChange: Function as PropType,\n /** 进入输入框时触发 */\n onMouseenter: Function as PropType,\n /** 离开输入框时触发 */\n onMouseleave: Function as PropType,\n /** 粘贴事件,`pasteValue` 表示粘贴板的内容 */\n onPaste: Function as PropType,\n /** 下拉框显示或隐藏时触发 */\n onPopupVisibleChange: Function as PropType,\n /** 值变化时触发,参数 `context.trigger` 表示数据变化的触发来源;`context.index` 指当前变化项的下标;`context.item` 指当前变化项;`context.e` 表示事件参数 */\n onTagChange: Function as PropType,\n};\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTagInputProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 宽度随内容自适应 */\n autoWidth: Boolean,\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否可清空 */\n clearable: Boolean,\n /** 标签过多的情况下,折叠项内容,默认为 `+N`。如果需要悬浮就显示其他内容,可以使用 collapsedItems 自定义。`value` 表示当前存在的所有标签,`collapsedSelectedItems` 表示折叠的标签,`count` 表示折叠的数量,`onClose` 表示移除标签的事件回调 */\n collapsedItems: {\n type: Function as PropType,\n },\n /** 是否禁用标签输入框 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 拖拽调整标签顺序 */\n dragSort: Boolean,\n /** 标签超出时的呈现方式,有两种:横向滚动显示 和 换行显示 */\n excessTagsDisplayType: {\n type: String as PropType,\n default: 'break-line' as TdTagInputProps['excessTagsDisplayType'],\n validator(val: TdTagInputProps['excessTagsDisplayType']): boolean {\n if (!val) return true;\n return ['scroll', 'break-line'].includes(val);\n },\n },\n /** 透传 Input 输入框组件全部属性 */\n inputProps: {\n type: Object as PropType,\n },\n /** 输入框的值 */\n inputValue: {\n type: [String, Number] as PropType,\n default: undefined as TdTagInputProps['inputValue'],\n },\n /** 输入框的值,非受控属性 */\n defaultInputValue: {\n type: [String, Number] as PropType,\n default: '' as TdTagInputProps['defaultInputValue'],\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 最大允许输入的标签数量 */\n max: {\n type: Number,\n },\n /** 最小折叠数量,用于标签数量过多的情况下折叠选中项,超出该数值的选中项折叠。值为 0 则表示不折叠 */\n minCollapsedNum: {\n type: Number,\n default: 0,\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 组件前置图标 */\n prefixIcon: {\n type: Function as PropType,\n },\n /** 只读状态,值为真会隐藏标签移除按钮和输入框 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 组件尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdTagInputProps['size'],\n validator(val: TdTagInputProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n validator(val: TdTagInputProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 后置图标前的后置内容 */\n suffix: {\n type: [String, Function] as PropType,\n },\n /** 组件后置图标 */\n suffixIcon: {\n type: Function as PropType,\n },\n /** 自定义标签的内部内容,每一个标签的当前值。注意和 `valueDisplay` 区分,`valueDisplay` 是用来定义全部标签内容,而非某一个标签 */\n tag: {\n type: [String, Function] as PropType,\n },\n /** 透传 Tag 组件全部属性 */\n tagProps: {\n type: Object as PropType,\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 值 */\n value: {\n type: Array as PropType,\n default: undefined as TdTagInputProps['value'],\n },\n modelValue: {\n type: Array as PropType,\n default: undefined as TdTagInputProps['value'],\n },\n /** 值,非受控属性 */\n defaultValue: {\n type: Array as PropType,\n default: (): TdTagInputProps['defaultValue'] => [],\n },\n /** 自定义值呈现的全部内容,参数为所有标签的值 */\n valueDisplay: {\n type: [String, Function] as PropType,\n },\n /** 失去焦点时触发 */\n onBlur: Function as PropType,\n /** 值变化时触发,参数 `context.trigger` 表示数据变化的触发来源;`context.index` 指当前变化项的下标;`context.item` 指当前变化项;`context.e` 表示事件参数 */\n onChange: Function as PropType,\n /** 清空按钮点击时触发 */\n onClear: Function as PropType,\n /** 点击组件时触发 */\n onClick: Function as PropType,\n /** 【开发中】拖拽排序时触发 */\n onDragSort: Function as PropType,\n /** 按键按下 Enter 时触发 */\n onEnter: Function as PropType,\n /** 聚焦时触发 */\n onFocus: Function as PropType,\n /** 输入框值发生变化时触发,`context.trigger` 表示触发输入框值变化的来源:文本输入触发、清除按钮触发、回车键触发等 */\n onInputChange: Function as PropType,\n /** 进入输入框时触发 */\n onMouseenter: Function as PropType,\n /** 离开输入框时触发 */\n onMouseleave: Function as PropType,\n /** 粘贴事件,`pasteValue` 表示粘贴板的内容 */\n onPaste: Function as PropType,\n /** 移除单个标签时触发 */\n onRemove: Function as PropType,\n};\n","// This file is autogenerated. It's used to publish ESM to npm.\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\nvar trimLeft = /^\\s+/;\nvar trimRight = /\\s+$/;\nfunction tinycolor(color, opts) {\n color = color ? color : \"\";\n opts = opts || {};\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n var rgb = inputToRGB(color);\n this._originalInput = color, this._r = rgb.r, this._g = rgb.g, this._b = rgb.b, this._a = rgb.a, this._roundA = Math.round(100 * this._a) / 100, this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) this._r = Math.round(this._r);\n if (this._g < 1) this._g = Math.round(this._g);\n if (this._b < 1) this._b = Math.round(this._b);\n this._ok = rgb.ok;\n}\ntinycolor.prototype = {\n isDark: function isDark() {\n return this.getBrightness() < 128;\n },\n isLight: function isLight() {\n return !this.isDark();\n },\n isValid: function isValid() {\n return this._ok;\n },\n getOriginalInput: function getOriginalInput() {\n return this._originalInput;\n },\n getFormat: function getFormat() {\n return this._format;\n },\n getAlpha: function getAlpha() {\n return this._a;\n },\n getBrightness: function getBrightness() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function getLuminance() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r / 255;\n GsRGB = rgb.g / 255;\n BsRGB = rgb.b / 255;\n if (RsRGB <= 0.03928) R = RsRGB / 12.92;else R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n if (GsRGB <= 0.03928) G = GsRGB / 12.92;else G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n if (BsRGB <= 0.03928) B = BsRGB / 12.92;else B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n },\n setAlpha: function setAlpha(value) {\n this._a = boundAlpha(value);\n this._roundA = Math.round(100 * this._a) / 100;\n return this;\n },\n toHsv: function toHsv() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v,\n a: this._a\n };\n },\n toHsvString: function toHsvString() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = Math.round(hsv.h * 360),\n s = Math.round(hsv.s * 100),\n v = Math.round(hsv.v * 100);\n return this._a == 1 ? \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" : \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \" + this._roundA + \")\";\n },\n toHsl: function toHsl() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return {\n h: hsl.h * 360,\n s: hsl.s,\n l: hsl.l,\n a: this._a\n };\n },\n toHslString: function toHslString() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = Math.round(hsl.h * 360),\n s = Math.round(hsl.s * 100),\n l = Math.round(hsl.l * 100);\n return this._a == 1 ? \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" : \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \" + this._roundA + \")\";\n },\n toHex: function toHex(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function toHexString(allow3Char) {\n return \"#\" + this.toHex(allow3Char);\n },\n toHex8: function toHex8(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function toHex8String(allow4Char) {\n return \"#\" + this.toHex8(allow4Char);\n },\n toRgb: function toRgb() {\n return {\n r: Math.round(this._r),\n g: Math.round(this._g),\n b: Math.round(this._b),\n a: this._a\n };\n },\n toRgbString: function toRgbString() {\n return this._a == 1 ? \"rgb(\" + Math.round(this._r) + \", \" + Math.round(this._g) + \", \" + Math.round(this._b) + \")\" : \"rgba(\" + Math.round(this._r) + \", \" + Math.round(this._g) + \", \" + Math.round(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function toPercentageRgb() {\n return {\n r: Math.round(bound01(this._r, 255) * 100) + \"%\",\n g: Math.round(bound01(this._g, 255) * 100) + \"%\",\n b: Math.round(bound01(this._b, 255) * 100) + \"%\",\n a: this._a\n };\n },\n toPercentageRgbString: function toPercentageRgbString() {\n return this._a == 1 ? \"rgb(\" + Math.round(bound01(this._r, 255) * 100) + \"%, \" + Math.round(bound01(this._g, 255) * 100) + \"%, \" + Math.round(bound01(this._b, 255) * 100) + \"%)\" : \"rgba(\" + Math.round(bound01(this._r, 255) * 100) + \"%, \" + Math.round(bound01(this._g, 255) * 100) + \"%, \" + Math.round(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function toName() {\n if (this._a === 0) {\n return \"transparent\";\n }\n if (this._a < 1) {\n return false;\n }\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function toFilter(secondColor) {\n var hex8String = \"#\" + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = \"#\" + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n return \"progid:DXImageTransform.Microsoft.gradient(\" + gradientType + \"startColorstr=\" + hex8String + \",endColorstr=\" + secondHex8String + \")\";\n },\n toString: function toString(format) {\n var formatSet = !!format;\n format = format || this._format;\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n return formattedString || this.toHexString();\n },\n clone: function clone() {\n return tinycolor(this.toString());\n },\n _applyModification: function _applyModification(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function lighten() {\n return this._applyModification(_lighten, arguments);\n },\n brighten: function brighten() {\n return this._applyModification(_brighten, arguments);\n },\n darken: function darken() {\n return this._applyModification(_darken, arguments);\n },\n desaturate: function desaturate() {\n return this._applyModification(_desaturate, arguments);\n },\n saturate: function saturate() {\n return this._applyModification(_saturate, arguments);\n },\n greyscale: function greyscale() {\n return this._applyModification(_greyscale, arguments);\n },\n spin: function spin() {\n return this._applyModification(_spin, arguments);\n },\n _applyCombination: function _applyCombination(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function analogous() {\n return this._applyCombination(_analogous, arguments);\n },\n complement: function complement() {\n return this._applyCombination(_complement, arguments);\n },\n monochromatic: function monochromatic() {\n return this._applyCombination(_monochromatic, arguments);\n },\n splitcomplement: function splitcomplement() {\n return this._applyCombination(_splitcomplement, arguments);\n },\n // Disabled until https://github.com/bgrins/TinyColor/issues/254\n // polyad: function (number) {\n // return this._applyCombination(polyad, [number]);\n // },\n triad: function triad() {\n return this._applyCombination(polyad, [3]);\n },\n tetrad: function tetrad() {\n return this._applyCombination(polyad, [4]);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function (color, opts) {\n if (_typeof(color) == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n } else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n var rgb = {\n r: 0,\n g: 0,\n b: 0\n };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n if (_typeof(color) == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a\n };\n}\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// \n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h,\n s,\n l = (max + min) / 2;\n if (max == min) {\n h = s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return {\n h: h,\n s: s,\n l: l\n };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n if (s === 0) {\n r = g = b = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h,\n s,\n v = max;\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n if (max == min) {\n h = 0; // achromatic\n } else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return {\n h: h,\n s: s,\n v: v\n };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16)), pad2(convertDecimalToHex(a))];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n var hex = [pad2(convertDecimalToHex(a)), pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) return false;\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\ntinycolor.random = function () {\n return tinycolor.fromRatio({\n r: Math.random(),\n g: Math.random(),\n b: Math.random()\n });\n};\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// \n\nfunction _desaturate(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\nfunction _saturate(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\nfunction _greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\nfunction _lighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\nfunction _brighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var rgb = tinycolor(color).toRgb();\n rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n return tinycolor(rgb);\n}\nfunction _darken(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction _spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// \n\nfunction _complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\nfunction polyad(color, number) {\n if (isNaN(number) || number <= 0) {\n throw new Error(\"Argument to polyad must be a positive number\");\n }\n var hsl = tinycolor(color).toHsl();\n var result = [tinycolor(color)];\n var step = 360 / number;\n for (var i = 1; i < number; i++) {\n result.push(tinycolor({\n h: (hsl.h + i * step) % 360,\n s: hsl.s,\n l: hsl.l\n }));\n }\n return result;\n}\nfunction _splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [tinycolor(color), tinycolor({\n h: (h + 72) % 360,\n s: hsl.s,\n l: hsl.l\n }), tinycolor({\n h: (h + 216) % 360,\n s: hsl.s,\n l: hsl.l\n })];\n}\nfunction _analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n for (hsl.h = (hsl.h - (part * results >> 1) + 720) % 360; --results;) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\nfunction _monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h,\n s = hsv.s,\n v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n while (results--) {\n ret.push(tinycolor({\n h: h,\n s: s,\n v: v\n }));\n v = (v + modification) % 1;\n }\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function (color1, color2, amount) {\n amount = amount === 0 ? 0 : amount || 50;\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n var p = amount / 100;\n var rgba = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b,\n a: (rgb2.a - rgb1.a) * p + rgb1.a\n };\n return tinycolor(rgba);\n};\n\n// Readability Functions\n// ---------------------\n// false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function (color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n out = false;\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function (baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors;\n level = args.level;\n size = args.size;\n for (var i = 0; i < colorList.length; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n if (tinycolor.isReadable(baseColor, bestColor, {\n level: level,\n size: size\n }) || !includeFallbackColors) {\n return bestColor;\n } else {\n args.includeFallbackColors = false;\n return tinycolor.mostReadable(baseColor, [\"#fff\", \"#000\"], args);\n }\n};\n\n// Big List of Colors\n// ------------------\n// \nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = {};\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) n = \"100%\";\n var processPercent = isPercentage(n);\n n = Math.min(max, Math.max(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return n % max / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// \nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf(\".\") != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf(\"%\") != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? \"0\" + c : \"\" + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = n * 100 + \"%\";\n }\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\nvar matchers = function () {\n // \n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // \n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n}();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n color = color.replace(trimLeft, \"\").replace(trimRight, \"\").toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n } else if (color == \"transparent\") {\n return {\n r: 0,\n g: 0,\n b: 0,\n a: 0,\n format: \"name\"\n };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if (match = matchers.rgb.exec(color)) {\n return {\n r: match[1],\n g: match[2],\n b: match[3]\n };\n }\n if (match = matchers.rgba.exec(color)) {\n return {\n r: match[1],\n g: match[2],\n b: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hsl.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n l: match[3]\n };\n }\n if (match = matchers.hsla.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n l: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hsv.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n v: match[3]\n };\n }\n if (match = matchers.hsva.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n v: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hex8.exec(color)) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if (match = matchers.hex6.exec(color)) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if (match = matchers.hex4.exec(color)) {\n return {\n r: parseIntFromHex(match[1] + \"\" + match[1]),\n g: parseIntFromHex(match[2] + \"\" + match[2]),\n b: parseIntFromHex(match[3] + \"\" + match[3]),\n a: convertHexToDecimal(match[4] + \"\" + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if (match = matchers.hex3.exec(color)) {\n return {\n r: parseIntFromHex(match[1] + \"\" + match[1]),\n g: parseIntFromHex(match[2] + \"\" + match[2]),\n b: parseIntFromHex(match[3] + \"\" + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n return false;\n}\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\n level: \"AA\",\n size: \"small\"\n };\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\n level: level,\n size: size\n };\n}\n\nexport { tinycolor as default };\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTagProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 标签是否可关闭 */\n closable: Boolean,\n /** 自定义标签颜色 */\n color: {\n type: String,\n default: '',\n },\n /** 组件子元素 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 组件子元素,同 `content` */\n default: {\n type: [String, Function] as PropType,\n },\n /** 标签禁用态,失效标签不能触发事件。默认风格(theme=default)才有禁用态 */\n disabled: Boolean,\n /** 标签中的图标,可自定义图标呈现 */\n icon: {\n type: Function as PropType,\n default: undefined,\n },\n /** 标签最大宽度,宽度超出后会出现省略号。示例:'50px' / 80 */\n maxWidth: {\n type: [String, Number] as PropType,\n },\n /** 标签类型,有三种:方形、圆角方形、标记型 */\n shape: {\n type: String as PropType,\n default: 'square' as TdTagProps['shape'],\n validator(val: TdTagProps['shape']): boolean {\n if (!val) return true;\n return ['square', 'round', 'mark'].includes(val);\n },\n },\n /** 标签尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdTagProps['size'],\n validator(val: TdTagProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 组件风格,用于描述组件不同的应用场景 */\n theme: {\n type: String as PropType,\n default: 'default' as TdTagProps['theme'],\n validator(val: TdTagProps['theme']): boolean {\n if (!val) return true;\n return ['default', 'primary', 'warning', 'danger', 'success'].includes(val);\n },\n },\n /** 标签标题,在标签hover时展示,默认为标签内容 */\n title: {\n type: String,\n default: '',\n },\n /** 标签风格变体 */\n variant: {\n type: String as PropType,\n default: 'dark' as TdTagProps['variant'],\n validator(val: TdTagProps['variant']): boolean {\n if (!val) return true;\n return ['dark', 'light', 'outline', 'light-outline'].includes(val);\n },\n },\n /** 点击时触发 */\n onClick: Function as PropType,\n /** 如果关闭按钮存在,点击关闭按钮时触发 */\n onClose: Function as PropType,\n};\n","import { computed, defineComponent, getCurrentInstance, h, VNode } from 'vue';\nimport { CloseIcon as TdCloseIcon } from 'tdesign-icons-vue-next';\nimport { isString } from 'lodash-es';\nimport tinycolor from 'tinycolor2';\n\nimport props from './props';\nimport {\n useConfig,\n useContent,\n useTNodeJSX,\n useGlobalIcon,\n usePrefixClass,\n useCommonClassName,\n} from '@tdesign/shared-hooks';\n\nimport { Styles } from '../common';\n\nexport default defineComponent({\n name: 'TTag',\n props,\n setup(props) {\n const { globalConfig: tagGlobalConfig } = useConfig('tag');\n const COMPONENT_NAME = usePrefixClass('tag');\n const { CloseIcon } = useGlobalIcon({ CloseIcon: TdCloseIcon });\n const renderTNodeJSX = useTNodeJSX();\n const renderContent = useContent();\n const { SIZE } = useCommonClassName();\n const { vnode } = getCurrentInstance();\n\n const tagClass = computed(() => {\n return [\n `${COMPONENT_NAME.value}`,\n `${COMPONENT_NAME.value}--${props.theme}`,\n `${COMPONENT_NAME.value}--${props.variant}`,\n {\n [`${COMPONENT_NAME.value}--ellipsis`]: props.maxWidth,\n [`${COMPONENT_NAME.value}--close`]: props.closable,\n [`${COMPONENT_NAME.value}--disabled`]: props.disabled,\n [SIZE.value[props.size]]: props.size !== 'medium',\n },\n props.shape !== 'square' && `${COMPONENT_NAME.value}--${props.shape}`,\n ];\n });\n const tagStyle = computed(() => {\n return getTagColorStyle();\n });\n\n const textStyle = computed(() => {\n if (!props.maxWidth) return {};\n\n return {\n maxWidth: isNaN(Number(props.maxWidth)) ? String(props.maxWidth) : `${props.maxWidth}px`,\n };\n });\n\n const getTagColorStyle = () => {\n const { color, variant } = props;\n if (!color) return {};\n\n const luminance = tinycolor(color).getLuminance();\n\n const style: Styles = {\n color: luminance > 0.5 ? 'black' : 'white',\n };\n\n if (variant === 'outline' || variant === 'light-outline') {\n style.borderColor = color;\n }\n if (variant !== 'outline') {\n const getLightestShade = () => {\n const { r, g, b } = tinycolor(color).toRgb();\n // alpha 0.1 is designed by @wen1kang\n return `rgba(${r}, ${g}, ${b}, 0.1)`;\n };\n style.backgroundColor = variant === 'dark' ? color : getLightestShade();\n }\n if (variant !== 'dark') {\n style.color = color;\n }\n return style;\n };\n\n const handleClick = (e: MouseEvent) => {\n if (props.disabled) return;\n props.onClick?.({ e });\n };\n\n const getCloseIcon = () => {\n if (!props.closable) return null;\n const iconClassName = `${COMPONENT_NAME.value}__icon-close`;\n if (tagGlobalConfig.value.closeIcon) {\n return h(tagGlobalConfig.value.closeIcon(h) as VNode, { class: iconClassName });\n }\n return (\n {\n if (e) e.stopPropagation();\n props.onClose?.({ e });\n }}\n class={iconClassName}\n />\n );\n };\n\n const renderTitle = (tagContent: string) => {\n const vProps = vnode.props || {};\n if (Reflect.has(vProps, 'title')) {\n return vProps.title || undefined;\n }\n\n if (tagContent) {\n return tagContent;\n }\n\n return undefined;\n };\n\n return () => {\n // 关闭按钮 自定义组件使用 nativeOnClick 绑定事件\n const closeIcon = getCloseIcon();\n // 标签内容\n const tagContent = renderContent('default', 'content');\n // 图标\n const icon = renderTNodeJSX('icon');\n\n const title = renderTitle(isString(tagContent) ? tagContent : '');\n\n return (\n
    \n {icon}\n \n {tagContent}\n \n {!props.disabled && closeIcon}\n
    \n );\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdCheckTagProps } from '../tag/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 标签选中的状态,默认风格(theme=default)才有选中态 */\n checked: {\n type: Boolean,\n default: undefined,\n },\n modelValue: {\n type: Boolean,\n default: undefined,\n },\n /** 标签选中的状态,默认风格(theme=default)才有选中态,非受控属性 */\n defaultChecked: Boolean,\n /** 透传标签选中态属性 */\n checkedProps: {\n type: Object as PropType,\n },\n /** 组件子元素;传入数组时:[选中内容,非选中内容] */\n content: {\n type: [String, Number, Array, Function] as PropType,\n },\n /** 组件子元素,默认插槽 */\n default: {\n type: [String, Function] as PropType,\n },\n /** 标签禁用态,失效标签不能触发事件。默认风格(theme=default)才有禁用态 */\n disabled: Boolean,\n /** 标签尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdCheckTagProps['size'],\n validator(val: TdCheckTagProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 透传标签未选态属性 */\n uncheckedProps: {\n type: Object as PropType,\n },\n /** 标签唯一标识,一般用于标签组场景,单个可选择标签无需设置 */\n value: {\n type: [String, Number] as PropType,\n },\n /** 状态切换时触发 */\n onChange: Function as PropType,\n /** 点击标签时触发 */\n onClick: Function as PropType,\n};\n","import { defineComponent, computed, toRefs } from 'vue';\nimport props from './check-tag-props';\nimport { useVModel, useContent, usePrefixClass, useCommonClassName } from '@tdesign/shared-hooks';\n\nimport Tag from './tag';\nimport { TdCheckTagProps, TdTagProps } from './type';\nimport { ENTER_REG, SPACE_REG } from '@tdesign/common-js/common';\n\nexport default defineComponent({\n name: 'TCheckTag',\n props,\n setup(props: TdCheckTagProps) {\n const componentName = usePrefixClass('tag');\n const { SIZE } = useCommonClassName();\n const renderContent = useContent();\n\n const { checked, modelValue } = toRefs(props);\n const [innerChecked, setInnerChecked] = useVModel(\n checked,\n modelValue,\n props.defaultChecked,\n props.onChange,\n 'checked',\n );\n\n const tagClass = computed(() => {\n return [\n `${componentName.value}`,\n `${componentName.value}--check`,\n SIZE.value[props.size],\n {\n [`${componentName.value}--checked`]: innerChecked.value,\n [`${componentName.value}--disabled`]: props.disabled,\n },\n ];\n });\n\n const checkTagProps = computed(() => {\n const checkedProps: TdTagProps = { theme: 'primary', ...props.checkedProps };\n const uncheckedProps: TdTagProps = { ...props.uncheckedProps };\n return innerChecked.value ? checkedProps : uncheckedProps;\n });\n\n const handleClick = ({ e }: { e: MouseEvent }) => {\n if (!props.disabled) {\n props.onClick?.({ e });\n setInnerChecked(!innerChecked.value, { e, value: props.value });\n }\n };\n\n const keyboardEventListener = (e: KeyboardEvent) => {\n const code = e.code || e.key?.trim();\n const isCheckedCode = SPACE_REG.test(code) || ENTER_REG.test(code);\n if (isCheckedCode) {\n e.preventDefault();\n setInnerChecked(!innerChecked.value, { e, value: props.value });\n }\n };\n\n const onCheckboxFocus = (e: FocusEvent) => {\n e.currentTarget.addEventListener('keydown', keyboardEventListener);\n };\n\n const onCheckboxBlur = (e: FocusEvent) => {\n e.currentTarget.removeEventListener('keydown', keyboardEventListener);\n };\n\n return () => {\n const tagContent = renderContent('default', 'content');\n return (\n \n {tagContent}\n \n );\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdCheckTagGroupProps } from '../tag/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 透传标签选中态属性 */\n checkedProps: {\n type: Object as PropType,\n },\n /** 是否支持选中多个标签 */\n multiple: Boolean,\n /** 标签选项列表 */\n options: {\n type: Array as PropType,\n },\n /** 透传标签未选态属性 */\n uncheckedProps: {\n type: Object as PropType,\n },\n /** 选中标签值 */\n value: {\n type: Array as PropType,\n default: undefined as TdCheckTagGroupProps['value'],\n },\n modelValue: {\n type: Array as PropType,\n default: undefined as TdCheckTagGroupProps['value'],\n },\n /** 选中标签值,非受控属性 */\n defaultValue: {\n type: Array as PropType,\n default: (): TdCheckTagGroupProps['defaultValue'] => [],\n },\n /** null */\n onChange: Function as PropType,\n};\n","import { computed, defineComponent, toRefs, h } from 'vue';\nimport { useVModel, usePrefixClass } from '@tdesign/shared-hooks';\nimport props from './check-tag-group-props';\nimport CheckTag from './check-tag';\n\nimport { CheckTagGroupOption, CheckTagGroupValue, TdCheckTagProps } from './type';\nimport { isFunction } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TCheckTagGroup',\n props,\n setup(props, context) {\n const { value, modelValue, options } = toRefs(props);\n const componentName = usePrefixClass('check-tag-group');\n const checkTagGroupClasses = computed(() => [componentName.value]);\n\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n const onCheckTagChange: TdCheckTagProps['onChange'] = (checked, ctx) => {\n const value = ctx.value;\n if (checked) {\n if (props.multiple) {\n setInnerValue(innerValue.value.concat(value), { e: ctx.e, type: 'check', value });\n } else {\n setInnerValue([value], { e: ctx.e, type: 'check', value });\n }\n } else {\n let newValue: CheckTagGroupValue = [];\n if (props.multiple) {\n newValue = innerValue.value.filter((t) => t !== value);\n }\n setInnerValue(newValue, { e: ctx.e, type: 'uncheck', value });\n }\n };\n\n const getTagContent = (option: CheckTagGroupOption) => {\n if (context.slots.option) return context.slots.option(option);\n if (context.slots.label) return context.slots.label(option);\n if (option.label) {\n return isFunction(option.label) ? option.label(h) : option.label;\n }\n if (option.content && isFunction(option.content)) return option.content(h);\n if (option.default && isFunction(option.default)) return option.default(h);\n return option.value;\n };\n\n return () => {\n return (\n
    \n {(options.value || []).map((option) => (\n \n {getTagContent(option)}\n \n ))}\n
    \n );\n };\n },\n});\n","import _Tag from './tag';\nimport _CheckTag from './check-tag';\nimport _CheckTagGroup from './check-tag-group';\nimport { withInstall } from '@tdesign/shared-utils';\nimport { TdTagProps, TdCheckTagProps, TdCheckTagGroupProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type TagProps = TdTagProps;\nexport type CheckTagProps = TdCheckTagProps;\nexport type CheckTagGroupProps = TdCheckTagGroupProps;\n\nexport const Tag = withInstall(_Tag);\nexport const CheckTag = withInstall(_CheckTag);\nexport const CheckTagGroup = withInstall(_CheckTagGroup);\n\nexport default Tag;\n","import { defineComponent, computed, toRefs, ref, nextTick, reactive, watch } from 'vue';\nimport { CloseCircleFilledIcon as TdCloseCircleFilledIcon } from 'tdesign-icons-vue-next';\nimport TInput, { InputProps, StrInputProps, TdInputProps } from '../input';\nimport { TdTagInputProps } from './type';\nimport props from './props';\nimport { useConfig } from '../config-provider/hooks/useConfig';\nimport {\n useDisabled,\n useReadonly,\n useTNodeJSX,\n useGlobalIcon,\n usePrefixClass,\n useDefaultValue,\n} from '@tdesign/shared-hooks';\n\nimport { useTagScroll, useHover, useDragSorter, useTagList } from './hooks';\n\nimport { isArray } from 'lodash-es';\n\nconst useComponentClassName = () => {\n return {\n NAME_CLASS: usePrefixClass('tag-input'),\n CLEAR_CLASS: usePrefixClass('tag-input__suffix-clear'),\n BREAK_LINE_CLASS: usePrefixClass('tag-input--break-line'),\n };\n};\n\nexport default defineComponent({\n name: 'TTagInput',\n props,\n setup(props: TdTagInputProps, { slots }) {\n const renderTNodeJSX = useTNodeJSX();\n const { NAME_CLASS, CLEAR_CLASS, BREAK_LINE_CLASS } = useComponentClassName();\n const { CloseCircleFilledIcon } = useGlobalIcon({ CloseCircleFilledIcon: TdCloseCircleFilledIcon });\n\n const isDisabled = useDisabled();\n const isReadonly = useReadonly();\n\n const { inputValue, inputProps, borderless, size, tips, status, suffix, autoWidth, onPaste } = toRefs(props);\n const [tInputValue, setTInputValue] = useDefaultValue(\n inputValue,\n props.defaultInputValue,\n props.onInputChange,\n 'inputValue',\n );\n const { excessTagsDisplayType, clearable, placeholder } = toRefs(props);\n const { isHover, addHover, cancelHover } = useHover({\n readonly: isReadonly.value,\n disabled: isDisabled.value,\n onMouseenter: props.onMouseenter,\n onMouseleave: props.onMouseleave,\n });\n const isComposition = ref(false);\n const { classPrefix } = useConfig();\n const isFocused = ref(false);\n\n // 这里不需要响应式,因此直接传递参数\n const { getDragProps } = useDragSorter({\n ...props,\n sortOnDraggable: props.dragSort,\n onDragOverCheck: {\n x: true,\n targetClassNameRegExp: new RegExp(`^${classPrefix.value}-tag`),\n },\n });\n const { scrollToRight, onWheel, scrollToRightOnEnter, scrollToLeftOnLeave, tagInputRef, isScrollable } =\n useTagScroll(props);\n // handle tag add and remove\n // 需要响应式,为了尽量的和 react 版本做法相同,这里进行响应式处理\n const { tagValue, onInnerEnter, onInputBackspaceKeyUp, onInputBackspaceKeyDown, clearAll, renderLabel, onClose } =\n useTagList(\n reactive({\n ...toRefs(props),\n getDragProps,\n }),\n );\n\n const classes = computed(() => {\n const isEmpty = !(isArray(tagValue.value) && tagValue.value.length);\n return [\n NAME_CLASS.value,\n {\n [BREAK_LINE_CLASS.value]: excessTagsDisplayType.value === 'break-line',\n [`${classPrefix.value}-is-empty`]: isEmpty,\n [`${classPrefix.value}-tag-input--with-tag`]: !isEmpty,\n [`${classPrefix.value}-tag-input--drag-sort`]: props.dragSort && !isReadonly.value && !isDisabled.value,\n },\n ];\n });\n\n const tagInputPlaceholder = computed(() => (!tagValue.value?.length ? placeholder.value : ''));\n\n const showClearIcon = computed(() =>\n Boolean(\n !isReadonly.value &&\n !isDisabled.value &&\n clearable.value &&\n isHover.value &&\n (tagValue.value?.length || tInputValue.value),\n ),\n );\n\n const onInputEnter = (value: string, context: { e: KeyboardEvent }) => {\n // 阻止 Enter 默认行为,避免在 Form 中触发 submit 事件\n context.e?.preventDefault?.();\n setTInputValue('', { e: context.e, trigger: 'enter' });\n !isComposition.value && onInnerEnter(value, context);\n nextTick(() => {\n scrollToRight();\n isComposition.value = false;\n });\n };\n\n const onInputCompositionstart = (value: string, context: { e: CompositionEvent }) => {\n isComposition.value = true;\n inputProps.value?.onCompositionstart?.(value, context);\n };\n\n const onInputCompositionend = (value: string, context: { e: CompositionEvent }) => {\n isComposition.value = false;\n inputProps.value?.onCompositionend?.(value, context);\n };\n\n const onClick: TdInputProps['onClick'] = (ctx) => {\n if (isDisabled.value) return;\n isFocused.value = true;\n tagInputRef.value?.focus();\n props.onClick?.(ctx);\n };\n\n const onClearClick = (context: { e: MouseEvent }) => {\n clearAll(context);\n setTInputValue('', { e: context.e, trigger: 'clear' });\n props.onClear?.(context);\n };\n\n const onMouseEnter: InputProps['onMouseenter'] = (context) => {\n addHover(context);\n scrollToRightOnEnter();\n };\n\n const onMouseLeave: InputProps['onMouseleave'] = (context) => {\n cancelHover(context);\n scrollToLeftOnLeave();\n };\n\n const onInnerFocus: InputProps['onFocus'] = (inputValue: string, context: { e: MouseEvent }) => {\n if (isFocused.value) return;\n isFocused.value = true;\n props.onFocus?.(tagValue.value, { e: context.e, inputValue });\n };\n\n const onInnerBlur: InputProps['onBlur'] = (inputValue: string, context: { e: MouseEvent }) => {\n isFocused.value = false;\n setTInputValue('', { e: context.e, trigger: 'blur' });\n props.onBlur?.(tagValue.value, { e: context.e, inputValue });\n };\n\n const onInnerChange: StrInputProps['onChange'] = (val, context) => {\n setTInputValue(val, { ...context, trigger: 'input' });\n };\n\n watch(\n () => isScrollable.value,\n (v) => {\n if (props.excessTagsDisplayType !== 'scroll') return;\n const scrollElementClass = `${classPrefix.value}-input__prefix`;\n const scrollElement = tagInputRef.value.$el.querySelector(`.${scrollElementClass}`);\n if (v) scrollElement.classList.add(`${scrollElementClass}--scrollable`);\n else scrollElement.classList.remove(`${scrollElementClass}--scrollable`);\n },\n );\n\n return () => {\n const suffixIconNode = showClearIcon.value ? (\n \n ) : (\n renderTNodeJSX('suffixIcon')\n );\n const prefixIconNode = renderTNodeJSX('prefixIcon');\n const suffixClass = `${classPrefix.value}-tag-input__with-suffix-icon`;\n if (suffixIconNode && !classes.value.includes(suffixClass)) {\n classes.value.push(suffixClass);\n }\n // 自定义 Tag 节点\n const displayNode = renderTNodeJSX('valueDisplay', {\n params: {\n value: tagValue.value,\n onClose: (index: number) => onClose({ index }),\n },\n });\n // 左侧文本\n const label = renderTNodeJSX('label', { silent: true });\n // const inputProps = inputProps as TdTagInputProps['inputProps'];\n const readonly = isReadonly.value || inputProps.value?.readonly;\n\n return (\n renderLabel({ displayNode, label })}\n class={classes.value}\n tips={tips.value}\n status={status.value}\n placeholder={tagInputPlaceholder.value}\n suffix={suffix.value}\n suffixIcon={() => suffixIconNode}\n prefixIcon={() => prefixIconNode}\n keepWrapperWidth={!autoWidth.value}\n onWheel={onWheel}\n onChange={onInnerChange}\n onPaste={onPaste.value}\n onEnter={onInputEnter}\n onKeyup={onInputBackspaceKeyUp}\n onKeydown={onInputBackspaceKeyDown}\n onMouseenter={onMouseEnter}\n onMouseleave={onMouseLeave}\n onFocus={onInnerFocus}\n onBlur={onInnerBlur}\n onClick={onClick}\n onCompositionstart={onInputCompositionstart}\n onCompositionend={onInputCompositionend}\n {...inputProps.value}\n />\n );\n };\n },\n});\n","import { ref } from 'vue';\n\nexport interface UseHoverParams {\n readonly: boolean;\n disabled: boolean;\n onMouseenter: (context: { e: MouseEvent }) => void;\n onMouseleave: (context: { e: MouseEvent }) => void;\n}\n\nexport function useHover(props: UseHoverParams) {\n const { disabled, readonly, onMouseenter, onMouseleave } = props;\n const isHover = ref(false);\n\n const addHover = (context: { e: MouseEvent }) => {\n if (readonly || disabled) return;\n isHover.value = true;\n onMouseenter?.(context);\n };\n\n const cancelHover = (context: { e: MouseEvent }) => {\n if (readonly || disabled) return;\n isHover.value = false;\n onMouseleave?.(context);\n };\n\n return { isHover, addHover, cancelHover };\n}\n","import { ref, reactive } from 'vue';\nimport { DragSortProps, DragSortInnerProps } from '../types';\n\nexport function useDragSorter(props: DragSortProps): DragSortInnerProps {\n const { sortOnDraggable, onDragSort, onDragOverCheck } = props;\n const draggingIndex = ref(-1);\n const dragStartData = ref(null);\n const isDropped = ref(null);\n const startInfo = reactive({ nodeX: 0, nodeWidth: 0, mouseX: 0 });\n\n const onDragOver = (e: DragEvent, index: number, record: T) => {\n e.preventDefault();\n if (draggingIndex.value === index || draggingIndex.value === -1) return;\n const target = e.target as HTMLElement;\n if (onDragOverCheck?.targetClassNameRegExp && !onDragOverCheck?.targetClassNameRegExp.test(target.className)) {\n return;\n }\n\n if (onDragOverCheck?.x && target) {\n if (!startInfo.nodeWidth) return;\n\n const { x, width } = target.getBoundingClientRect();\n const targetNodeMiddleX = x + width / 2;\n const draggingNodeLeft = e.clientX - (startInfo.mouseX - startInfo.nodeX);\n const draggingNodeRight = draggingNodeLeft + startInfo.nodeWidth;\n\n let overlap = false;\n if (draggingNodeLeft > x && draggingNodeLeft < x + width) {\n overlap = draggingNodeLeft < targetNodeMiddleX;\n } else {\n overlap = draggingNodeRight > targetNodeMiddleX;\n }\n\n if (!overlap) return;\n }\n\n onDragSort?.({\n currentIndex: draggingIndex.value,\n current: dragStartData,\n target: record,\n targetIndex: index,\n });\n\n draggingIndex.value = index;\n };\n\n if (!sortOnDraggable) {\n return {};\n }\n\n function onDragStart(e: DragEvent, index: number, record: T) {\n draggingIndex.value = index;\n dragStartData.value = record;\n const target = e.target as HTMLElement;\n if (onDragOverCheck && target) {\n const { x, width } = target.getBoundingClientRect();\n startInfo.nodeX = x;\n startInfo.nodeWidth = width;\n startInfo.mouseX = e.clientX;\n }\n }\n\n function onDrop() {\n isDropped.value = true;\n }\n\n function onDragEnd() {\n if (!isDropped.value) {\n // 取消排序,待扩展 api,输出 dragStartData\n }\n isDropped.value = false;\n draggingIndex.value = -1;\n dragStartData.value = null;\n }\n\n function getDragProps(index: number, record: T) {\n if (sortOnDraggable) {\n return {\n draggable: true,\n onDragstart: (e: DragEvent) => {\n onDragStart(e, index, record);\n },\n onDragover: (e: DragEvent) => {\n onDragOver(e, index, record);\n },\n onDrop: () => {\n onDrop();\n },\n onDragend: () => {\n onDragEnd();\n },\n };\n }\n return {};\n }\n\n return { onDragStart, onDragOver, onDrop, onDragEnd, getDragProps, dragging: draggingIndex.value !== -1 };\n}\n","/**\n * 当标签数量过多时,输入框显示不下,则需要滚动查看,以下为滚动逻辑\n * 如果标签过多时的处理方式,是标签省略,则不需要此功能\n */\n\nimport { isFunction } from 'lodash-es';\nimport { onMounted, onUnmounted, ref, toRefs } from 'vue';\nimport { TdTagInputProps } from '../type';\n\nexport function useTagScroll(props: TdTagInputProps) {\n const tagInputRef = ref();\n const { excessTagsDisplayType, readonly, disabled } = toRefs(props);\n // 允许向右滚动的最大距离\n const scrollDistance = ref(0);\n const scrollElement = ref();\n const mouseEnterTimer = ref();\n const isScrollable = ref(false); // 设置可滚动\n\n const updateScrollElement = (element: HTMLElement) => {\n const inputElement = element.children[0] as HTMLElement;\n scrollElement.value = inputElement;\n };\n\n const updateScrollDistance = () => {\n scrollDistance.value = scrollElement.value.scrollWidth - scrollElement.value.clientWidth;\n };\n\n const scrollTo = (distance: number) => {\n if (!isFunction(scrollElement.value?.scroll)) return;\n scrollElement.value.scroll({ left: distance, behavior: 'smooth' });\n };\n\n const scrollToRight = () => {\n updateScrollDistance();\n scrollTo(scrollDistance.value);\n setTimeout(() => {\n isScrollable.value = true;\n }, 200);\n };\n\n const scrollToLeft = () => {\n scrollTo(0);\n };\n\n // TODO:MAC 电脑横向滚动,Windows 纵向滚动。当前只处理了横向滚动\n const onWheel = ({ e }: { e: WheelEvent }) => {\n if (readonly.value || disabled.value) return;\n if (!scrollElement.value) return;\n if (e.deltaX > 0) {\n const distance = Math.min(scrollElement.value.scrollLeft + 120, scrollDistance.value);\n scrollTo(distance);\n } else {\n const distance = Math.max(scrollElement.value.scrollLeft - 120, 0);\n scrollTo(distance);\n }\n };\n\n // 鼠标 hover,自动滑动到最右侧,以便输入新标签\n const scrollToRightOnEnter = () => {\n if (excessTagsDisplayType.value !== 'scroll') return;\n // 一闪而过的 mousenter 不需要执行\n mouseEnterTimer.value = setTimeout(() => {\n scrollToRight();\n clearTimeout(mouseEnterTimer.value);\n }, 100);\n };\n\n const scrollToLeftOnLeave = () => {\n if (excessTagsDisplayType.value !== 'scroll') return;\n isScrollable.value = false; // 离开焦点不可滚动\n scrollTo(0);\n clearTimeout(mouseEnterTimer.value);\n };\n\n const init = () => {\n const element = tagInputRef.value?.$el;\n if (!element) return;\n updateScrollElement(element);\n };\n\n const clear = () => {\n clearTimeout(mouseEnterTimer.value);\n };\n\n onMounted(init);\n\n onUnmounted(clear);\n\n return {\n tagInputRef,\n scrollElement,\n scrollDistance,\n scrollTo,\n scrollToRight,\n scrollToLeft,\n updateScrollElement,\n updateScrollDistance,\n onWheel,\n scrollToRightOnEnter,\n scrollToLeftOnLeave,\n isScrollable,\n };\n}\n","import { computed, ref, toRefs } from 'vue';\nimport { TagInputValue, TagInputChangeContext } from '../type';\nimport { TagInputProps } from '../types';\nimport { InputValue } from '../../input';\nimport Tag from '../../tag';\nimport { useVModel, useTNodeJSX, useDisabled, useReadonly, usePrefixClass } from '@tdesign/shared-hooks';\n\nexport type ChangeParams = [TagInputChangeContext];\n\n// handle tag add and remove\nexport function useTagList(props: TagInputProps) {\n const renderTNode = useTNodeJSX();\n const classPrefix = usePrefixClass();\n const { value, modelValue, onRemove, max, minCollapsedNum, size, tagProps, getDragProps } = toRefs(props);\n // handle controlled property and uncontrolled property\n const [_tagValue, setTagValue] = useVModel(value, modelValue, props.defaultValue || [], props.onChange);\n const tagValue = computed(() => _tagValue.value || []);\n const oldInputValue = ref();\n\n const isDisabled = useDisabled();\n const isReadonly = useReadonly();\n\n // 点击标签关闭按钮,删除标签\n const onClose = (p: { e?: MouseEvent; index: number }) => {\n const arr = [...tagValue.value];\n const [item] = arr.splice(p.index, 1); // 当前删除的item无需参数传递\n setTagValue(arr, { trigger: 'tag-remove', ...p, item });\n onRemove.value?.({ ...p, item, trigger: 'tag-remove', value: arr });\n };\n\n const clearAll = (context: { e: MouseEvent }) => {\n setTagValue([], { trigger: 'clear', e: context.e });\n };\n\n // 按下 Enter 键,新增标签\n const onInnerEnter = (value: string, context: { e: KeyboardEvent }) => {\n const valueStr = value ? String(value).trim() : '';\n const isLimitExceeded = max && tagValue.value.length >= max.value;\n let newValue: TagInputValue = tagValue.value;\n if (!isLimitExceeded && valueStr) {\n newValue = tagValue.value.concat(String(valueStr));\n setTagValue(newValue, {\n trigger: 'enter',\n index: newValue.length - 1,\n item: valueStr,\n e: context.e,\n });\n }\n props?.onEnter?.(newValue, { ...context, inputValue: value });\n };\n\n // 按下回退键,删除标签\n const onInputBackspaceKeyUp = (value: InputValue) => {\n if (!tagValue.value.length) return;\n oldInputValue.value = value;\n };\n // 按下回退键,删除标签\n const onInputBackspaceKeyDown = (value: InputValue, context: { e: KeyboardEvent }) => {\n const { e } = context;\n if (!tagValue.value.length || e.key === 'Process' || isReadonly.value) return;\n // 回车键删除,输入框值为空时,才允许 Backspace 删除标签\n const isDelete = /(Backspace|NumpadDelete)/i.test(e.code) || /(Backspace|NumpadDelete)/i.test(e.key);\n if (!value && isDelete) {\n const index = tagValue.value.length - 1;\n const item = tagValue.value[index];\n const trigger = 'backspace';\n const newValue = tagValue.value.slice(0, -1);\n setTagValue(newValue, { e, index, item, trigger });\n onRemove.value?.({ e, index, item, trigger, value: newValue });\n }\n oldInputValue.value = value;\n };\n\n const renderLabel = ({ displayNode, label }: { displayNode: any; label: any }) => {\n const newList = minCollapsedNum.value ? tagValue.value.slice(0, minCollapsedNum.value) : tagValue.value;\n const list = displayNode\n ? [displayNode]\n : newList.map((item, index) => {\n const tagContent = renderTNode('tag', { params: { value: item } });\n return (\n onClose({ e: context.e, index })}\n closable={!isReadonly.value && !isDisabled.value}\n {...getDragProps.value?.(index, item)}\n {...tagProps.value}\n >\n {tagContent ?? item}\n \n );\n }) || [];\n if (![null, undefined, ''].includes(label)) {\n list.unshift(\n
    \n {label}\n
    ,\n );\n }\n // 超出省略\n if (newList.length !== tagValue.value.length) {\n const len = tagValue.value.length - newList.length;\n const more = renderTNode('collapsedItems', {\n params: {\n value: tagValue.value,\n count: tagValue.value.length - minCollapsedNum.value,\n collapsedTags: tagValue.value.slice(minCollapsedNum.value, tagValue.value.length),\n collapsedSelectedItems: tagValue.value.slice(minCollapsedNum.value, tagValue.value.length),\n onClose,\n },\n });\n list.push(\n more ?? (\n \n +{len}\n \n ),\n );\n }\n return list;\n };\n\n return {\n tagValue,\n clearAll,\n onClose,\n onInnerEnter,\n onInputBackspaceKeyUp,\n onInputBackspaceKeyDown,\n renderLabel,\n };\n}\n","import _TagInput from './tag-input';\nimport { withInstall } from '@tdesign/shared-utils';\nimport { TdTagInputProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type TagInputProps = TdTagInputProps;\n\nexport const TagInput = withInstall(_TagInput);\n\nexport default TagInput;\n","import { SetupContext, computed, ref, toRefs, Ref } from 'vue';\nimport { isObject } from 'lodash-es';\nimport { TdSelectInputProps, SelectInputChangeContext, SelectInputKeys } from '../type';\nimport { SelectInputCommonProperties } from '../types';\nimport TagInput, { TagInputValue, TagInputProps } from '../../tag-input';\nimport Loading from '../../loading';\nimport { useDisabled, useReadonly, usePrefixClass, useDefaultValue } from '@tdesign/shared-hooks';\n\nimport { PopupInstanceFunctions } from '../../popup';\n\nexport interface RenderSelectMultipleParams {\n commonInputProps: SelectInputCommonProperties;\n onInnerClear: (context: { e: MouseEvent }) => void;\n popupVisible: boolean;\n allowInput: boolean;\n}\n\nconst DEFAULT_KEYS = {\n label: 'label',\n key: 'key',\n children: 'children',\n};\n\nexport function useMultiple(props: TdSelectInputProps, context: SetupContext, popupRef: Ref) {\n const { inputValue } = toRefs(props);\n const classPrefix = usePrefixClass();\n const tagInputRef = ref();\n const isMultipleFocus = ref(props.autofocus);\n const [tInputValue, setTInputValue] = useDefaultValue(\n inputValue,\n props.defaultInputValue,\n props.onInputChange,\n 'inputValue',\n );\n const disable = useDisabled();\n const isReadonly = useReadonly();\n\n const iKeys = computed(() => ({ ...DEFAULT_KEYS, ...props.keys }));\n const tags = computed(() => {\n if (!(props.value instanceof Array)) {\n // TODO: replace isObject as isPlainObject\n return isObject(props.value) ? [(props.value as Record)[iKeys.value.label]] : [props.value];\n }\n return props.value.map((item) => (isObject(item) ? (item as Record)[iKeys.value.label] : item));\n });\n\n const tPlaceholder = computed(() => (!tags.value || !tags.value.length ? props.placeholder : ''));\n\n const onTagInputChange = (val: TagInputValue, context: SelectInputChangeContext) => {\n // 避免触发浮层的显示或隐藏\n if (context.trigger === 'tag-remove') {\n context.e?.stopPropagation();\n }\n props.onTagChange?.(val, context);\n };\n\n const onInputChange: TagInputProps['onInputChange'] = (val, ctx) => {\n if (ctx.trigger === 'enter' || ctx.trigger === 'blur') return;\n setTInputValue(val, { trigger: ctx.trigger, e: ctx.e });\n };\n\n /**\n * 筛选器统一特性:\n * 1. 筛选器按下回车时不清空输入框;\n * 2. SelectInput 的失焦不等于 TagInput。如点击下拉面板时,TagInput 失去焦点,但 SelectInput 依旧保持聚焦,允许继续选择。\n */\n const onBlur: TagInputProps['onBlur'] = (val, ctx) => {\n const overlayState = popupRef.value?.getOverlayState();\n if (overlayState?.hover) return;\n isMultipleFocus.value = false;\n props.onBlur?.(props.value, { ...ctx, tagInputValue: val });\n };\n\n const onFocus: TagInputProps['onFocus'] = (val, ctx) => {\n const overlayState = popupRef.value?.getOverlayState();\n if (isMultipleFocus.value || overlayState?.hover) return;\n isMultipleFocus.value = true;\n const params = { ...ctx, tagInputValue: val };\n props.onFocus?.(props.value, params);\n };\n\n const onEnter: TagInputProps['onEnter'] = (val, ctx) => {\n const params = { ...ctx, tagInputValue: val };\n props.onEnter?.(props.value, params);\n };\n\n const renderSelectMultiple = (p: RenderSelectMultipleParams) => {\n const tagInputProps = {\n ...p.commonInputProps,\n tagProps: props.tagProps,\n label: props.label,\n autoWidth: props.autoWidth,\n readonly: isReadonly.value,\n placeholder: tPlaceholder.value,\n minCollapsedNum: props.minCollapsedNum,\n collapsedItems: props.collapsedItems,\n tag: props.tag,\n value: tags.value,\n valueDisplay: props.valueDisplay,\n inputValue: p.popupVisible && p.allowInput ? tInputValue.value : '',\n inputProps: {\n readonly: !props.allowInput || isReadonly.value,\n inputClass: {\n [`${classPrefix.value}-input--focused`]: p.popupVisible,\n },\n ...props.inputProps,\n },\n suffixIcon: !disable.value && props.loading ? () => : props.suffixIcon,\n ...props.tagInputProps,\n };\n\n const { tips: _tips, ...slots } = context.slots;\n return (\n \n );\n };\n\n return {\n tags,\n tPlaceholder,\n tagInputRef,\n isMultipleFocus,\n multipleInputValue: tInputValue,\n renderSelectMultiple,\n };\n}\n","import { ref, toRefs, computed, CSSProperties } from 'vue';\nimport { isObject, isFunction } from 'lodash-es';\n\nimport { TdSelectInputProps } from '../type';\nimport { TdPopupProps, PopupVisibleChangeContext } from '../../popup';\nimport { useDisabled, useReadonly } from '@tdesign/shared-hooks';\n\nexport type overlayInnerStyleProps = Pick<\n TdSelectInputProps,\n 'popupProps' | 'autoWidth' | 'readonly' | 'onPopupVisibleChange' | 'disabled' | 'allowInput' | 'popupVisible'\n>;\n\n// 单位:px\nconst MAX_POPUP_WIDTH = 1000;\n// 避免因滚动条出现文本省略,预留宽度 8\nconst RESERVE_WIDTH = 0;\n\nexport function useOverlayInnerStyle(props: overlayInnerStyleProps) {\n const { popupProps, autoWidth } = toRefs(props);\n const innerPopupVisible = ref(false);\n const disable = useDisabled();\n const isReadonly = useReadonly();\n\n const matchWidthFunc = (triggerElement: HTMLElement, popupElement: HTMLElement) => {\n const SCROLLBAR_WIDTH = popupElement.scrollHeight > popupElement.offsetHeight ? RESERVE_WIDTH : 0;\n const width =\n popupElement.offsetWidth + SCROLLBAR_WIDTH >= triggerElement.offsetWidth\n ? popupElement.offsetWidth\n : triggerElement.offsetWidth;\n let otherOverlayInnerStyle: CSSProperties = {};\n if (\n popupProps.value &&\n typeof popupProps.value.overlayInnerStyle === 'object' &&\n !popupProps.value.overlayInnerStyle.width\n ) {\n otherOverlayInnerStyle = popupProps.value.overlayInnerStyle;\n }\n return {\n width: `${Math.min(width, MAX_POPUP_WIDTH)}px`,\n ...otherOverlayInnerStyle,\n };\n };\n\n const onInnerPopupVisibleChange = (visible: boolean, ctx: PopupVisibleChangeContext) => {\n if (disable.value || isReadonly.value) return;\n // 如果点击触发元素(输入框)且为可输入状态,则继续显示下拉框\n const newVisible = ctx.trigger === 'trigger-element-click' && props.allowInput ? true : visible;\n // 重复点击触发元素时,下拉框展示状态不变,不重复触发事件\n if (props.popupVisible !== newVisible) {\n innerPopupVisible.value = newVisible;\n props.onPopupVisibleChange?.(newVisible, ctx);\n }\n };\n\n const getAutoWidthPopupStyleWidth = (triggerElement: HTMLElement, popupElement: HTMLElement) => {\n return {\n width: `${Math.max(triggerElement.offsetWidth, popupElement.offsetWidth)}px`,\n ...popupProps.value?.overlayInnerStyle,\n };\n };\n\n const tOverlayInnerStyle = computed(() => {\n let result: TdPopupProps['overlayInnerStyle'] = {};\n const overlayInnerStyle = popupProps.value?.overlayInnerStyle || {};\n if (isFunction(overlayInnerStyle) || (isObject(overlayInnerStyle) && overlayInnerStyle.width)) {\n result = overlayInnerStyle;\n } else {\n if (autoWidth.value) {\n result = getAutoWidthPopupStyleWidth;\n } else {\n result = matchWidthFunc;\n }\n }\n return result;\n });\n\n return {\n tOverlayInnerStyle,\n innerPopupVisible,\n onInnerPopupVisibleChange,\n };\n}\n","import { SetupContext, ref, computed, toRefs, Ref } from 'vue';\nimport { pick, isObject } from 'lodash-es';\n\nimport Input, { StrInputProps } from '../../input';\nimport Loading from '../../loading';\nimport { useTNodeJSX, useDisabled, useReadonly, usePrefixClass, useDefaultValue } from '@tdesign/shared-hooks';\n\nimport { PopupInstanceFunctions } from '../../popup';\nimport { TdSelectInputProps } from '../type';\nimport { SelectInputCommonProperties } from '../types';\n\n// single 和 multiple 共有特性\nconst COMMON_PROPERTIES = [\n 'status',\n 'clearable',\n 'disabled',\n 'label',\n 'placeholder',\n 'readonly',\n 'prefixIcon',\n 'suffix',\n 'suffixIcon',\n 'onPaste',\n 'onMouseenter',\n 'onMouseleave',\n 'size',\n 'autofocus',\n];\n\nconst DEFAULT_KEYS = {\n label: 'label',\n value: 'value',\n children: 'children',\n};\n\nexport interface SelectInputValueDisplayOptions {\n useInputDisplay: boolean;\n usePlaceholder: boolean;\n}\n\nfunction getInputValue(value: TdSelectInputProps['value'], keys: TdSelectInputProps['keys']) {\n const iKeys = { ...DEFAULT_KEYS, ...keys };\n // TODO: replace isObject as isPlainObject\n return isObject(value) ? (value as Record)[iKeys.label] : value;\n}\n\nexport function useSingle(\n props: TdSelectInputProps & { valueDisplayOptions: SelectInputValueDisplayOptions },\n context: SetupContext,\n popupRef: Ref,\n) {\n const { value, keys, inputValue: propsInputValue } = toRefs(props);\n const classPrefix = usePrefixClass();\n const isSingleFocus = ref(props.autofocus);\n const inputRef = ref();\n const [inputValue, setInputValue] = useDefaultValue(\n propsInputValue,\n props.defaultInputValue ?? '',\n props.onInputChange,\n 'inputValue',\n );\n const renderTNode = useTNodeJSX();\n const disable = useDisabled();\n const isReadonly = useReadonly();\n\n const commonInputProps = computed(() => ({\n ...pick(props, COMMON_PROPERTIES),\n disabled: disable.value,\n readonly: isReadonly.value,\n }));\n\n const onInnerClear = (context: { e: MouseEvent }) => {\n context?.e?.stopPropagation();\n props.onClear?.(context);\n setInputValue('', { trigger: 'clear' });\n };\n\n const onInnerInputChange: StrInputProps['onChange'] = (value, context) => {\n if (props.allowInput) {\n setInputValue(value, { ...context, trigger: context.trigger || 'input' });\n }\n };\n\n const renderSelectSingle = (popupVisible: boolean) => {\n const singleValueDisplay = renderTNode('valueDisplay');\n const displayedValue = popupVisible && props.allowInput ? inputValue.value : getInputValue(value.value, keys.value);\n const prefixContent = renderPrefixContent(singleValueDisplay, popupVisible);\n\n const inputProps = {\n ...commonInputProps.value,\n value: renderInputDisplay(singleValueDisplay, displayedValue, popupVisible),\n label: prefixContent.length ? () => prefixContent : undefined,\n autoWidth: props.autoWidth,\n readonly: !props.allowInput || isReadonly.value,\n placeholder: renderPlaceholder(singleValueDisplay),\n suffixIcon: !disable.value && props.loading ? () => : props.suffixIcon,\n showClearIconOnEmpty: Boolean(\n props.clearable && (inputValue.value || displayedValue) && !disable.value && !isReadonly.value,\n ),\n ...props.inputProps,\n };\n\n // eslint-disable-next-line\n const { tips, ...slots } = context.slots;\n\n const inputClassProps = popupVisible\n ? [`${classPrefix.value}-input--focused`, `${classPrefix.value}-is-focused`, inputProps?.inputClass]\n : inputProps?.inputClass;\n\n const onEnter: StrInputProps['onEnter'] = (val, context) => {\n props.onEnter?.(value.value, { ...context, inputValue: val });\n };\n\n const onFocus: StrInputProps['onFocus'] = (val, context) => {\n const overlayState = popupRef.value?.getOverlayState();\n if (isSingleFocus.value || overlayState?.hover) return;\n isSingleFocus.value = true;\n props.onFocus?.(value.value, { ...context, inputValue: val });\n };\n\n const onBlur: StrInputProps['onBlur'] = (val, context) => {\n const overlayState = popupRef.value?.getOverlayState();\n isSingleFocus.value = false;\n if (overlayState?.hover) return;\n props.onBlur?.(value.value, { ...context, inputValue: val });\n };\n\n return (\n \n );\n };\n\n const renderPrefixContent = (singleValueDisplay: any, popupVisible: boolean) => {\n // 需要隐藏valueDisplay的两个情况\n // 1 用户传入usePlaceholder希望使用自带占位符实现,则应在未选择值时隐藏valueDisplay,只展示占位符\n // 2 用户传入useInputDisplay希望使用自带输入回显实现,激活选择器浮层时只展示input值(待讨论是否修改为激活后真的输入字符再隐藏valueDisplay,此处实现效果与不使用valueDisplay只使用filterable时不同)\n const label = renderTNode('label');\n\n if (!label && !singleValueDisplay) {\n return [];\n }\n\n if (singleValueDisplay) {\n if (\n !value.value ||\n (props.valueDisplayOptions?.useInputDisplay && popupVisible) ||\n (popupVisible && props.allowInput)\n ) {\n return [label];\n }\n }\n return [label, singleValueDisplay];\n };\n\n const renderInputDisplay = (singleValueDisplay: any, displayedValue: any, popupVisible: boolean) => {\n // 使用valueDisplay插槽时,如用户传入useInputDisplay使用自带输入回显实现,未传则认为用户自行实现。\n if (singleValueDisplay) {\n if (popupVisible && props.allowInput) {\n return displayedValue;\n }\n if (\n !props.valueDisplayOptions?.useInputDisplay ||\n (props.valueDisplayOptions?.useInputDisplay && !popupVisible)\n ) {\n return undefined;\n }\n }\n\n return displayedValue;\n };\n\n const renderPlaceholder = (singleValueDisplay: any) => {\n // 使用valueDisplay插槽时,如用户传入usePlaceholder使用自带占位符实现,未传则认为用户自行实现。\n // 如果当前存在value(对应直接使用组件和select组件调用时),不显示占位符。\n\n if (singleValueDisplay) {\n if (!value.value || (props.allowInput && props.popupVisible)) return props.placeholder;\n if (!props.valueDisplayOptions?.usePlaceholder || (props.valueDisplayOptions?.usePlaceholder && value.value)) {\n return '';\n }\n }\n return props.placeholder;\n };\n\n return {\n inputRef,\n isSingleFocus,\n commonInputProps,\n singleInputValue: inputValue,\n onInnerClear,\n renderSelectSingle,\n };\n}\n","import { computed, defineComponent, onBeforeUnmount, onMounted, PropType, ref, SetupContext, toRefs, watch } from 'vue';\nimport Popup, { PopupInstanceFunctions, PopupProps, PopupVisibleChangeContext } from '../popup';\nimport props from './props';\nimport { TdSelectInputProps } from './type';\nimport { useMultiple, useSingle, useOverlayInnerStyle } from './hooks';\nimport type { SelectInputValueDisplayOptions } from './hooks';\nimport { useTNodeJSX, usePrefixClass } from '@tdesign/shared-hooks';\n\nconst useComponentClassName = () => {\n return {\n NAME_CLASS: usePrefixClass('select-input'),\n BASE_CLASS_BORDERLESS: usePrefixClass('select-input--borderless'),\n BASE_CLASS_MULTIPLE: usePrefixClass('select-input--multiple'),\n BASE_CLASS_POPUP_VISIBLE: usePrefixClass('select-input--popup-visible'),\n BASE_CLASS_EMPTY: usePrefixClass('select-input--empty'),\n };\n};\n\nexport default defineComponent({\n name: 'TSelectInput',\n props: {\n ...props,\n /**\n * 非公开 API,请勿使用(后续即将删除)\n * 自定义值呈现的选项\n * useInputDisplay 表示在使用时仍然使用组件自带的输入回显实现,\n * usePlaceholder 表示在使用时仍然使用自带的占位符实现\n * */\n valueDisplayOptions: {\n type: Object as PropType,\n },\n },\n\n setup(props: TdSelectInputProps & { valueDisplayOptions: SelectInputValueDisplayOptions }, context: SetupContext) {\n const { NAME_CLASS, BASE_CLASS_BORDERLESS, BASE_CLASS_MULTIPLE, BASE_CLASS_POPUP_VISIBLE, BASE_CLASS_EMPTY } =\n useComponentClassName();\n const classPrefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n\n const selectInputRef = ref();\n const popupRef = ref();\n const { multiple, value, popupVisible, borderless, popupProps, panel, allowInput, status } = toRefs(props);\n\n const { tOverlayInnerStyle, innerPopupVisible, onInnerPopupVisibleChange } = useOverlayInnerStyle(props);\n\n const { isSingleFocus, commonInputProps, onInnerClear, renderSelectSingle } = useSingle(props, context, popupRef);\n\n const { isMultipleFocus, tagInputRef, renderSelectMultiple } = useMultiple(props, context, popupRef);\n\n const isFocus = computed(() => (props.multiple ? isMultipleFocus.value : isSingleFocus.value));\n\n const classes = computed(() => [\n `${NAME_CLASS.value}`,\n {\n [BASE_CLASS_MULTIPLE.value]: multiple.value,\n [BASE_CLASS_BORDERLESS.value]: borderless.value,\n [BASE_CLASS_POPUP_VISIBLE.value]: popupVisible.value ?? innerPopupVisible.value,\n [BASE_CLASS_EMPTY.value]: value.value instanceof Array ? !value.value.length : !value.value,\n },\n ]);\n\n const addKeyboardEventListener = (e: KeyboardEvent) => {\n const code = e.code || e.key?.trim();\n if (/(ArrowDown|ArrowUp)/.test(code) && !popupVisible.value) {\n const ctx: PopupVisibleChangeContext = { ...context, trigger: 'trigger-element-focus' };\n props.onPopupVisibleChange?.(true, ctx);\n }\n };\n\n watch([isFocus], ([isFocus]) => {\n if (popupVisible.value) return;\n if (isFocus) {\n selectInputRef.value.addEventListener('keydown', addKeyboardEventListener);\n } else {\n selectInputRef.value.removeEventListener('keydown', addKeyboardEventListener);\n }\n });\n\n onMounted(() => {\n if (!popupVisible.value && isFocus) {\n selectInputRef.value.addEventListener('keydown', addKeyboardEventListener);\n }\n });\n\n onBeforeUnmount(() => {\n selectInputRef.value?.removeEventListener('keydown', addKeyboardEventListener);\n });\n\n const onOverlayClick: PopupProps['onOverlayClick'] = (ctx) => {\n ctx.e?.stopPropagation();\n // do not set focus if target can be focused\n if ((ctx.e.target as HTMLElement).tabIndex >= 0) return;\n if (props.multiple) tagInputRef.value?.focus?.();\n };\n\n context.expose({\n popupRef,\n allowInput,\n });\n\n return () => {\n // 浮层显示的受控与非受控\n const visibleProps = { visible: popupVisible.value ?? innerPopupVisible.value };\n\n const mainContent = (\n \n {multiple.value\n ? renderSelectMultiple({\n commonInputProps: commonInputProps.value,\n onInnerClear: onInnerClear,\n popupVisible: visibleProps.visible,\n allowInput: allowInput.value,\n })\n : renderSelectSingle(visibleProps.visible)}\n \n );\n\n const tipsNode = renderTNodeJSX('tips');\n\n const tipsClasses = [\n `${classPrefix.value}-input__tips`,\n `${classPrefix.value}-tips`,\n `${classPrefix.value}-is-${status.value}`,\n ];\n\n return (\n
    \n {mainContent}\n {tipsNode &&
    {tipsNode}
    }\n
    \n );\n };\n },\n});\n","import _SelectInput from './select-input';\nimport { withInstall } from '@tdesign/shared-utils';\nimport { TdSelectInputProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type SelectInputProps = TdSelectInputProps;\n\nexport const SelectInput = withInstall(_SelectInput);\n\nexport default SelectInput;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdOptionProps } from '../select/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 当前选项是否为全选,全选可以在顶部,也可以在底部。点击当前选项会选中禁用态除外的全部选项,即使是分组选择器也会选中全部选项 */\n checkAll: Boolean,\n /** 用于定义复杂的选项内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 用于定义复杂的选项内容。同 content */\n default: {\n type: [String, Function] as PropType,\n },\n /** 是否禁用该选项 */\n disabled: Boolean,\n /** 选项名称 */\n label: {\n type: String,\n default: '',\n },\n /** 选项标题,在选项过长时hover选项展示 */\n title: {\n type: String,\n default: '',\n },\n /** 选项值 */\n value: {\n type: [String, Number, Boolean] as PropType,\n },\n};\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdCheckboxProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 用于标识是否为「全选选项」。单独使用无效,需在 CheckboxGroup 中使用 */\n checkAll: Boolean,\n /** 是否选中 */\n checked: {\n type: Boolean,\n default: undefined,\n },\n modelValue: {\n type: Boolean,\n default: undefined,\n },\n /** 是否选中,非受控属性 */\n defaultChecked: Boolean,\n /** 多选框内容,同 label */\n default: {\n type: [String, Function] as PropType,\n },\n /** 是否禁用组件。如果父组件存在 CheckboxGroup,默认值由 CheckboxGroup.disabled 控制。优先级:Checkbox.disabled > CheckboxGroup.disabled > Form.disabled */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 是否为半选 */\n indeterminate: Boolean,\n /** 主文案 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 是否启用懒加载。数据量大时建议开启;加载复杂内容或大量图片时建议开启 */\n lazyLoad: Boolean,\n /** HTML 元素原生属性 */\n name: {\n type: String,\n default: '',\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** HTML 原生属性 */\n title: {\n type: String,\n default: '',\n },\n /** 多选框的值 */\n value: {\n type: [String, Number, Boolean] as PropType,\n },\n /** 值变化时触发 */\n onChange: Function as PropType,\n};\n","import { ComputedRef, InjectionKey } from 'vue';\nimport { TdCheckboxGroupProps, TdCheckboxProps } from '../type';\n\nexport interface CheckboxGroupInjectData {\n name?: string;\n isCheckAll: boolean;\n maxExceeded: boolean;\n disabled: boolean;\n readonly: boolean;\n indeterminate: boolean;\n checkedValues: TdCheckboxGroupProps['value'];\n handleCheckboxChange: (data: { checked: boolean; e: Event; option: TdCheckboxProps }) => void;\n onCheckedChange: (p: { checked: boolean; checkAll: boolean; e: Event; option: TdCheckboxProps }) => void;\n}\n\nexport const CheckboxGroupInjectionKey: InjectionKey> =\n Symbol('CheckboxGroupProvide');\n","import { defineComponent, ref, toRefs, inject, watch, computed } from 'vue';\nimport { isString } from 'lodash-es';\nimport props from './props';\nimport {\n useVModel,\n useRipple,\n useContent,\n useDisabled,\n useReadonly,\n usePrefixClass,\n useCommonClassName,\n} from '@tdesign/shared-hooks';\n\nimport { CheckboxGroupInjectionKey } from './consts';\nimport useCheckboxLazyLoad from './hooks/useCheckboxLazyLoad';\nimport useKeyboardEvent from './hooks/useKeyboardEvent';\n\nexport default defineComponent({\n name: 'TCheckbox',\n props: {\n ...props,\n needRipple: Boolean,\n stopLabelTrigger: Boolean,\n index: Number,\n // 传递给 Checkbox 组件额外的数据\n data: Object,\n },\n setup(props) {\n const labelRef = ref();\n if (props.needRipple) {\n useRipple(labelRef);\n }\n const { STATUS } = useCommonClassName();\n\n const { checked, modelValue, lazyLoad } = toRefs(props);\n const [innerChecked, setInnerChecked] = useVModel(\n checked,\n modelValue,\n props.defaultChecked,\n props.onChange,\n 'checked',\n );\n\n const checkboxGroupData = inject(CheckboxGroupInjectionKey, undefined);\n\n /**\n * Warn: Do not use computed to set tName,\n * otherwise checkbox group will render all checkbox items on every checked or unchecked.\n */\n const tName = ref();\n watch(\n () => [props.name, checkboxGroupData?.value.name].join('_'),\n () => {\n const name = props.name || checkboxGroupData?.value.name;\n if (name) {\n tName.value = name;\n }\n },\n { immediate: true },\n );\n\n // checked\n const tChecked = ref(false);\n const getChecked = () => {\n const { value, checkAll } = props;\n if (checkAll) return checkboxGroupData?.value.isCheckAll;\n return checkboxGroupData?.value ? checkboxGroupData.value.checkedValues.includes(value) : innerChecked.value;\n };\n watch(\n () => [\n innerChecked.value,\n checkboxGroupData?.value.isCheckAll,\n checkboxGroupData?.value.checkedValues?.join(','),\n ],\n () => {\n tChecked.value = getChecked();\n },\n { immediate: true },\n );\n\n // Checkbox.disabled > CheckboxGroup.disabled > Form.disabled\n const beforeDisabled = computed(() => {\n if (!props.checkAll && !tChecked.value && checkboxGroupData?.value.maxExceeded) {\n return true;\n }\n return null;\n });\n const afterDisabled = computed(() => {\n return checkboxGroupData?.value.disabled;\n });\n const isDisabled = useDisabled({ beforeDisabled, afterDisabled });\n\n // Checkbox.readonly > CheckboxGroup.readonly > Form.readonly\n const afterReadonly = computed(() => {\n return checkboxGroupData?.value.readonly;\n });\n const isReadonly = useReadonly({ afterReadonly });\n\n const tIndeterminate = ref(false);\n watch(\n () => [props.checkAll, props.indeterminate, checkboxGroupData?.value.indeterminate],\n () => {\n tIndeterminate.value = props.checkAll ? checkboxGroupData?.value.indeterminate : props.indeterminate;\n },\n { immediate: true },\n );\n\n /** update labelClasses, do not use computed to get labelClasses */\n const COMPONENT_NAME = usePrefixClass('checkbox');\n const labelClasses = ref({});\n watch(\n [tChecked, isDisabled, tIndeterminate],\n () => {\n labelClasses.value = [\n `${COMPONENT_NAME.value}`,\n {\n [STATUS.value.checked]: tChecked.value,\n [STATUS.value.disabled]: isDisabled.value,\n [STATUS.value.indeterminate]: tIndeterminate.value,\n },\n ];\n },\n { immediate: true },\n );\n\n const handleChange = (e: Event) => {\n if (isReadonly.value) return;\n const checked = !tChecked.value;\n setInnerChecked(checked, { e });\n if (checkboxGroupData?.value.handleCheckboxChange) {\n checkboxGroupData.value.onCheckedChange({ checked, checkAll: props.checkAll, e, option: props });\n }\n };\n\n const renderContent = useContent();\n\n const handleLabelClick = (e: MouseEvent) => {\n // 在 Tree、Cascader 等组件中使用 阻止 label触发 checked 与非叶子节点的 expand 冲突\n if (props.stopLabelTrigger) e.preventDefault();\n };\n\n const { showCheckbox } = useCheckboxLazyLoad(labelRef, lazyLoad);\n const { onCheckboxFocus, onCheckboxBlur } = useKeyboardEvent(handleChange);\n\n return () => {\n const titleAttr = isString(props.title) && props.title ? props.title : null;\n return (\n \n {!showCheckbox.value\n ? null\n : [\n ,\n ,\n \n {renderContent('default', 'label')}\n ,\n ]}\n \n );\n };\n },\n});\n","import { onBeforeUnmount, onMounted, Ref, ref, watch } from 'vue';\nimport observe from '@tdesign/common-js/utils/observe';\n\nexport function useCheckboxLazyLoad(labelRef: Ref, lazyLoad: Ref) {\n const ioObserver = ref();\n const showCheckbox = ref(true);\n const handleLazyLoad = () => {\n if (!lazyLoad.value) return;\n showCheckbox.value = false;\n const io = observe(\n labelRef.value,\n null,\n () => {\n showCheckbox.value = true;\n },\n 0,\n );\n ioObserver.value = io;\n };\n\n onMounted(handleLazyLoad);\n\n watch([lazyLoad, labelRef], handleLazyLoad);\n\n onBeforeUnmount(() => {\n if (!lazyLoad.value) return;\n ioObserver.value.unobserve(labelRef.value);\n });\n\n return {\n showCheckbox,\n };\n}\n\nexport default useCheckboxLazyLoad;\n","import { CHECKED_CODE_REG } from '@tdesign/common-js/common';\n\nexport function useKeyboardEvent(handleChange: (e: Event) => void) {\n const keyboardEventListener = (e: KeyboardEvent) => {\n const isCheckedCode = CHECKED_CODE_REG.test(e.key) || CHECKED_CODE_REG.test(e.code);\n if (isCheckedCode) {\n e.preventDefault();\n const { disabled } = (e.currentTarget as HTMLElement).querySelector('input');\n !disabled && handleChange(e);\n }\n };\n\n const onCheckboxFocus = (e: FocusEvent) => {\n e.currentTarget.addEventListener('keydown', keyboardEventListener);\n };\n\n const onCheckboxBlur = (e: FocusEvent) => {\n e.currentTarget.removeEventListener('keydown', keyboardEventListener);\n };\n\n return {\n onCheckboxFocus,\n onCheckboxBlur,\n };\n}\n\nexport default useKeyboardEvent;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdCheckboxGroupProps } from '../checkbox/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否禁用组件。优先级:Form.disabled < CheckboxGroup.disabled < Checkbox.disabled */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 是否启用懒加载。子组件 Checkbox 数据量大时建议开启;加载复杂内容或大量图片时建议开启 */\n lazyLoad: Boolean,\n /** 支持最多选中的数量 */\n max: {\n type: Number,\n default: undefined,\n },\n /** 统一设置内部复选框 HTML 属性 */\n name: {\n type: String,\n default: '',\n },\n /** 以配置形式设置子元素。示例1:`['北京', '上海']` ,示例2: `[{ label: '全选', checkAll: true }, { label: '上海', value: 'shanghai' }]`。checkAll 值为 true 表示当前选项为「全选选项」 */\n options: {\n type: Array as PropType,\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 选中值 */\n value: {\n type: Array as PropType,\n default: undefined as TdCheckboxGroupProps['value'],\n },\n modelValue: {\n type: Array as PropType,\n default: undefined as TdCheckboxGroupProps['value'],\n },\n /** 选中值,非受控属性 */\n defaultValue: {\n type: Array as PropType,\n default: (): TdCheckboxGroupProps['defaultValue'] => [],\n },\n /** 值变化时触发。`context.current` 表示当前变化的数据项,如果是全选则为空;`context.type` 表示引起选中数据变化的是选中或是取消选中,`context.option` 表示当前变化的数据项 */\n onChange: Function as PropType,\n};\n","import { defineComponent, provide, computed, watchEffect, ref, toRefs } from 'vue';\nimport { isObject, isUndefined, intersection } from 'lodash-es';\n\nimport Checkbox from './checkbox';\nimport props from './checkbox-group-props';\nimport { CheckboxOptionObj, TdCheckboxProps, CheckboxGroupValue } from './type';\nimport { CheckboxGroupInjectionKey } from './consts';\nimport { useVModel, useTNodeJSX, usePrefixClass, useChildComponentSlots } from '@tdesign/shared-hooks';\n\nexport default defineComponent({\n name: 'TCheckboxGroup',\n props,\n setup(props) {\n /** 样式 */\n const COMPONENT_NAME = usePrefixClass('checkbox-group');\n const renderTNodeJSX = useTNodeJSX();\n\n const { isArray } = Array;\n const { value, modelValue } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n const optionList = ref>([]);\n\n const intersectionLen = computed(() => {\n if (!isArray(innerValue.value)) return 0;\n const values = optionList.value.map((item) => item.value);\n const n = intersection(innerValue.value, values);\n return n.length;\n });\n\n /**\n * 计算是否所有选项都被选中。\n * 此函数不接受参数,但依赖于外部的 `optionList` 和 `innerValue` 变量。\n *\n * @returns {boolean} 如果所有符合条件的选项都被选中,则返回 `true`;否则返回 `false`。\n */\n const isCheckAll = computed(() => {\n // 筛选出非禁用、非只读且不设置为“全选”的选项,并提取其值\n const optionItems = optionList.value\n .filter((item) => !item.disabled && !item.readonly && !item.checkAll)\n .map((t) => t.value);\n\n // 计算当前选中值与筛选后的选项值的交集\n const intersectionValues = intersection(optionItems, innerValue.value);\n\n // 判断交集的长度是否等于所有选项值的长度,以确定是否所有选项都被选中\n return intersectionValues.length === optionItems.length;\n });\n\n const indeterminate = computed(\n () => !isCheckAll.value && intersectionLen.value < optionList.value.length && intersectionLen.value !== 0,\n );\n\n const maxExceeded = computed(() => !isUndefined(props.max) && innerValue.value.length === props.max);\n\n watchEffect(() => {\n if (!props.options) return [];\n optionList.value = props.options.map((item) => {\n return isObject(item) ? item : { label: String(item), value: item };\n });\n });\n\n /**\n * 获取所有复选框的值。\n * 此函数遍历 `optionList` 中的项,忽略被标记为 `checkAll`、`disabled` 或 `readonly` 的项,\n * 并收集非这些状态的项的值到一个 Set 集合中。如果达到最大限制 `maxExceeded`,则停止遍历。\n *\n */\n const getAllCheckboxValue = () => {\n const checkAllVal = new Set();\n const uncheckAllVal = new Set();\n // 遍历选项列表,忽略特定状态的项,并收集有效值\n for (let i = 0, len = optionList.value.length; i < len; i++) {\n const item = optionList.value[i];\n\n // 如果项被标记为检查所有、禁用或只读,且未选中,则跳过当前循环迭代\n if (item.checkAll) continue;\n if (item.disabled) {\n if (!innerValue.value.includes(item.value)) continue;\n else uncheckAllVal.add(item.value); // 添加禁用状态项的值到集合中\n }\n if (item.readonly) {\n if (!innerValue.value.includes(item.value)) continue;\n else uncheckAllVal.add(item.value); // 添加禁用状态项的值到集合中\n }\n\n checkAllVal.add(item.value); // 添加非排除状态项的值到集合中\n\n // 如果已达到最大限制,则终止循环\n if (maxExceeded.value) break;\n }\n\n return { checkAllVal: [...checkAllVal], uncheckAllVal: [...uncheckAllVal] }; // 从 Set 集合转换为数组并返回\n };\n\n const onCheckAllChange = (checked: boolean, context: { e: Event; source?: 't-checkbox' }) => {\n const { checkAllVal, uncheckAllVal } = getAllCheckboxValue();\n\n const value: CheckboxGroupValue = checked ? checkAllVal : uncheckAllVal;\n setInnerValue(value, {\n e: context.e,\n type: checked ? 'check' : 'uncheck',\n current: undefined,\n option: undefined,\n });\n };\n\n const handleCheckboxChange = (data: { checked: boolean; e: Event; option: TdCheckboxProps }) => {\n const currentValue = data.option.value;\n if (!isArray(innerValue.value)) {\n console.warn(`TDesign CheckboxGroup Warn: \\`value\\` must be an array, instead of ${typeof innerValue.value}`);\n return;\n }\n const val = [...innerValue.value];\n if (data.checked) {\n val.push(currentValue);\n } else {\n const i = val.indexOf(currentValue);\n val.splice(i, 1);\n }\n setInnerValue(val, {\n e: data.e,\n current: data.option.value,\n option: data.option,\n type: data.checked ? 'check' : 'uncheck',\n });\n };\n\n const onCheckedChange = (p: { checked: boolean; checkAll: boolean; e: Event; option: TdCheckboxProps }) => {\n const { checked, checkAll, e } = p;\n if (checkAll) {\n onCheckAllChange(checked, { e });\n } else {\n handleCheckboxChange(p);\n }\n };\n\n const getChildComponentSlots = useChildComponentSlots();\n\n const getOptionListBySlots = () => {\n const nodes = getChildComponentSlots('Checkbox');\n const arr: Array = [];\n nodes?.forEach((node) => {\n const option = node.props as CheckboxOptionObj;\n if (!option) return;\n // @ts-ignore types only declare checkAll not declare check-all\n if (option['check-all'] === '' || option['check-all'] === true) {\n option.checkAll = true;\n }\n arr.push(option);\n });\n return arr;\n };\n\n provide(\n CheckboxGroupInjectionKey,\n computed(() => ({\n name: props.name,\n isCheckAll: isCheckAll.value,\n checkedValues: innerValue.value || [],\n maxExceeded: maxExceeded.value,\n disabled: props.disabled,\n readonly: props.readonly,\n indeterminate: indeterminate.value,\n handleCheckboxChange,\n onCheckedChange,\n })),\n );\n\n return () => {\n let children = null;\n if (props.options?.length) {\n children = optionList.value?.map((option, index) => (\n
    \n ));\n } else {\n const nodes = renderTNodeJSX('default');\n optionList.value = getOptionListBySlots();\n children = nodes;\n }\n return (\n
    \n {children}\n
    \n );\n };\n },\n});\n","import _Checkbox from './checkbox';\nimport _Group from './group';\nimport { withInstall } from '@tdesign/shared-utils';\nimport { TdCheckboxProps, TdCheckboxGroupProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type CheckboxProps = TdCheckboxProps;\nexport type CheckboxGroupProps = TdCheckboxGroupProps;\n\nexport const Checkbox = withInstall(_Checkbox);\nexport const CheckboxGroup = withInstall(_Group);\n\nexport default Checkbox;\n","import { ComputedRef } from 'vue';\nimport { cloneDeep } from 'lodash-es';\nimport { TdSelectProps, TdOptionProps, SelectValue, SelectOption } from '../type';\n\nexport const getSingleContent = (\n value: TdSelectProps['value'],\n isRemote: boolean,\n searchDisplayOptions: ComputedRef,\n optionsMap: ComputedRef, TdOptionProps>>,\n): string => {\n if (isRemote) {\n return searchDisplayOptions.value.filter((option) => option.value === value)[0]?.label || value?.toString();\n }\n\n const option = optionsMap.value.get(value);\n return option?.label || value?.toString();\n};\n\nexport const getMultipleContent = (\n value: SelectValue[],\n isRemote: boolean,\n searchDisplayOptions: ComputedRef,\n optionsMap: ComputedRef, TdOptionProps>>,\n) => {\n const res = [];\n for (const iterator of value) {\n const resLabel = getSingleContent(iterator, isRemote, searchDisplayOptions, optionsMap);\n if (resLabel) {\n res.push(resLabel);\n }\n }\n return res;\n};\n\nexport const getNewMultipleValue = (innerValue: SelectValue[], optionValue: SelectValue) => {\n const value = cloneDeep(innerValue) as SelectValue[];\n const valueIndex = value.indexOf(optionValue);\n if (valueIndex < 0) {\n value.push(optionValue);\n } else {\n value.splice(valueIndex, 1);\n }\n return {\n value,\n isCheck: valueIndex < 0,\n };\n};\n","import { InjectionKey, ComputedRef } from 'vue';\nimport { TdSelectProps, TdOptionProps, SelectValue } from '../type';\n\nexport const selectInjectKey: InjectionKey<\n ComputedRef<{\n hoverIndex: number;\n selectValue: TdSelectProps['value'];\n size: TdSelectProps['size'];\n max: TdSelectProps['max'];\n reserveKeyword: TdSelectProps['reserveKeyword'];\n multiple: TdSelectProps['multiple'];\n handleValueChange: TdSelectProps['onChange'];\n handleCreate: TdSelectProps['onCreate'];\n handlerInputChange: TdSelectProps['onInputChange'];\n handlePopupVisibleChange: TdSelectProps['onPopupVisibleChange'];\n popupContentRef: ComputedRef;\n indeterminate: boolean;\n isCheckAll: boolean;\n onCheckAllChange: (checked: boolean) => void;\n getSelectedOptions: (selectValue?: SelectValue[] | SelectValue) => TdOptionProps[];\n displayOptions: TdSelectProps['options'];\n emitBlur: (e: MouseEvent | KeyboardEvent) => void;\n }>\n> = Symbol('selectProvide');\n","import { defineComponent, ref, computed, inject, onMounted, onBeforeUnmount, getCurrentInstance } from 'vue';\n\nimport props from './option-props';\nimport Checkbox from '../checkbox/index';\n\n// hooks\nimport { useRipple, useContent, useDisabled, usePrefixClass, useCommonClassName } from '@tdesign/shared-hooks';\n\nimport { getNewMultipleValue } from './utils';\nimport { selectInjectKey } from './consts';\nimport { SelectValue } from './type';\n\nexport default defineComponent({\n name: 'TOption',\n props: {\n ...props,\n createAble: Boolean,\n multiple: Boolean,\n index: Number,\n rowIndex: Number,\n trs: Map,\n scrollType: String,\n isVirtual: Boolean,\n bufferSize: Number,\n checkAll: Boolean,\n },\n emits: ['row-mounted'],\n\n setup(props, context) {\n const selectProvider = inject(selectInjectKey);\n const formDisabled = useDisabled();\n const { vnode } = getCurrentInstance();\n\n const isReachMax = computed(\n () =>\n selectProvider.value.max !== 0 &&\n selectProvider.value.max <= (selectProvider.value.selectValue as SelectValue[]).length,\n );\n const disabled = computed(\n () =>\n formDisabled.value ||\n (props.multiple && isReachMax.value && !isSelected.value && !selectProvider.value.isCheckAll),\n );\n\n const renderContent = useContent();\n\n const selectName = usePrefixClass('select');\n const { STATUS, SIZE } = useCommonClassName();\n const liRef = ref();\n\n const isHover = ref(false);\n\n const isSelected = computed(() => {\n if (selectProvider.value.isCheckAll && !props.disabled) return true;\n return !props.multiple\n ? selectProvider.value.selectValue === props.value\n : (selectProvider.value.selectValue as SelectValue[]).includes(props.value);\n });\n\n const isIndeterminate = computed(() => {\n if (!props.checkAll) return false;\n return selectProvider.value.indeterminate;\n });\n\n const classes = computed(() => [\n `${selectName.value}-option`,\n [SIZE.value[selectProvider.value.size]],\n {\n [STATUS.value.disabled]: disabled.value,\n [STATUS.value.selected]: isSelected.value,\n [`${selectName.value}-option__hover`]:\n (isHover.value || selectProvider.value.hoverIndex === props.index) && !disabled.value,\n },\n ]);\n\n const labelText = computed(() => props.label || props.value);\n\n const handleClick = (e: MouseEvent | KeyboardEvent) => {\n if (props.disabled || disabled.value) return;\n if (props.multiple) {\n handleCheckboxClick(!isSelected.value, { e });\n e.preventDefault();\n return;\n }\n\n if (props.createAble) {\n selectProvider.value.handleCreate?.(props.value);\n if (selectProvider.value.multiple) {\n selectProvider.value.handleValueChange(\n [...(selectProvider.value.selectValue as SelectValue[]), props.value],\n {\n selectedOptions: selectProvider.value.getSelectedOptions(),\n trigger: 'check',\n e,\n },\n );\n return;\n }\n }\n const selectedOptions = selectProvider.value.getSelectedOptions(props.value);\n selectProvider.value.handleValueChange(props.value, {\n option: selectedOptions?.[0],\n selectedOptions: selectedOptions,\n trigger: 'check',\n e,\n });\n selectProvider.value.handlePopupVisibleChange(false, { e });\n selectProvider.value.emitBlur(e);\n };\n\n const handleCheckboxClick = (val: boolean, context: { e: MouseEvent | KeyboardEvent }) => {\n if (props.checkAll) {\n selectProvider.value.onCheckAllChange(val);\n return;\n }\n const newValue = getNewMultipleValue(selectProvider.value.selectValue as SelectValue[], props.value);\n const selectedOptions = selectProvider.value.getSelectedOptions(newValue.value);\n\n const currentOption = selectProvider.value.getSelectedOptions(props.value)?.[0];\n selectProvider.value.handleValueChange(newValue.value, {\n option: currentOption,\n selectedOptions,\n trigger: val ? 'check' : 'uncheck',\n e: context.e,\n });\n };\n\n const renderTitle = () => {\n const vProps = vnode.props || {};\n // 如果设置了title 说明希望自己控制title的展示\n if (Reflect.has(vProps, 'title')) {\n return props.title;\n }\n if (typeof labelText.value === 'string') return labelText.value;\n\n return null;\n };\n\n // 处理虚拟滚动节点挂载\n onMounted(() => {\n const { trs, rowIndex, isVirtual } = props;\n if (isVirtual) {\n trs.set(rowIndex, liRef.value);\n context.emit('row-mounted');\n }\n });\n\n // 处理虚拟滚动节点移除\n onBeforeUnmount(() => {\n if (props.isVirtual) {\n const { trs, rowIndex } = props;\n trs.delete(rowIndex);\n }\n });\n\n useRipple(liRef);\n\n return () => {\n const optionChild = renderContent('default', 'content') || labelText.value;\n\n return (\n (isHover.value = true)}\n onMouseleave={() => (isHover.value = false)}\n onClick={handleClick}\n >\n {selectProvider && props.multiple ? (\n \n {optionChild}\n \n ) : (\n {optionChild}\n )}\n \n );\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nexport default {\n /** 是否显示分隔线 */\n divider: {\n type: Boolean,\n default: true,\n },\n /** 分组别名 */\n label: {\n type: String,\n },\n};\n","import { defineComponent, inject, computed } from 'vue';\nimport { useTNodeJSX, usePrefixClass, useCommonClassName } from '@tdesign/shared-hooks';\nimport props from './option-group-props';\n\nimport { selectInjectKey } from './consts';\n\nexport default defineComponent({\n name: 'TOptionGroup',\n props,\n setup(props) {\n const selectProvider = inject(selectInjectKey);\n const COMPONENT_NAME = usePrefixClass('select-option-group');\n const { SIZE } = useCommonClassName();\n const renderTNodeJSX = useTNodeJSX();\n\n const classes = computed(() => [\n COMPONENT_NAME.value,\n SIZE.value[selectProvider.value.size],\n {\n [`${COMPONENT_NAME.value}__divider`]: props.divider,\n },\n ]);\n\n return () => (\n
  • \n {(props.label ?? false) &&
    {props.label}
    }\n {renderTNodeJSX('default')}\n
  • \n );\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdSelectProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 宽度随内容自适应 */\n autoWidth: Boolean,\n /** 自动聚焦 */\n autofocus: Boolean,\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否可以清空选项 */\n clearable: Boolean,\n /** 多选情况下,用于设置折叠项内容,默认为 `+N`。如果需要悬浮就显示其他内容,可以使用 collapsedItems 自定义。`value` 表示当前存在的所有标签,`collapsedTags` 表示折叠的标签,泛型 `T` 继承 `SelectOption`,表示选项数据;`count` 表示折叠的数量, `onClose` 表示移除标签 */\n collapsedItems: {\n type: Function as PropType,\n },\n /** 是否允许用户创建新条目,需配合 filterable 使用 */\n creatable: Boolean,\n /** 是否禁用组件 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 当下拉列表为空时显示的内容 */\n empty: {\n type: [String, Function] as PropType,\n },\n /** 自定义搜索规则,用于对现有数据进行搜索,判断是否过滤某一项数据。参数 `filterWords` 表示搜索词,`option`表示单个选项内容,返回值为 `true` 保留该选项,返回值为 `false` 则隐藏该选项。使用该方法时无需设置 `filterable` */\n filter: {\n type: Function as PropType,\n },\n /** 是否可搜索,默认搜索规则不区分大小写,全文本任意位置匹配。如果默认搜索规则不符合业务需求,可以更为使用 `filter` 自定义过滤规则 */\n filterable: Boolean,\n /** 透传 Input 输入框组件的全部属性 */\n inputProps: {\n type: Object as PropType,\n },\n /** 输入框的值 */\n inputValue: {\n type: [String, Number] as PropType,\n default: undefined as TdSelectProps['inputValue'],\n },\n /** 输入框的值,非受控属性 */\n defaultInputValue: {\n type: [String, Number] as PropType,\n },\n /** 用来定义 value / label / disabled 在 `options` 中对应的字段别名 */\n keys: {\n type: Object as PropType,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 是否为加载状态 */\n loading: Boolean,\n /** 远程加载时显示的文字,支持自定义。如加上超链接 */\n loadingText: {\n type: [String, Function] as PropType,\n },\n /** 用于控制多选数量,值为 0 则不限制 */\n max: {\n type: Number,\n default: 0,\n },\n /** 最小折叠数量,用于多选情况下折叠选中项,超出该数值的选中项折叠。值为 0 则表示不折叠 */\n minCollapsedNum: {\n type: Number,\n default: 0,\n },\n /** 是否允许多选 */\n multiple: Boolean,\n /** 数据化配置选项内容 */\n options: {\n type: Array as PropType,\n },\n /** 面板内的底部内容 */\n panelBottomContent: {\n type: [String, Function] as PropType,\n },\n /** 面板内的顶部内容 */\n panelTopContent: {\n type: [String, Function] as PropType,\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 透传给 popup 组件的全部属性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 是否显示下拉框 */\n popupVisible: {\n type: Boolean,\n default: undefined,\n },\n /** 是否显示下拉框,非受控属性 */\n defaultPopupVisible: Boolean,\n /** 组件前置图标 */\n prefixIcon: {\n type: Function as PropType,\n },\n /** 只读状态,值为真会隐藏输入框,且无法打开下拉框 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 多选且可搜索时,是否在选中一个选项后保留当前的搜索关键词 */\n reserveKeyword: Boolean,\n /** 懒加载和虚拟滚动。为保证组件收益最大化,当数据量小于阈值 `scroll.threshold` 时,无论虚拟滚动的配置是否存在,组件内部都不会开启虚拟滚动,`scroll.threshold` 默认为 `100` */\n scroll: {\n type: Object as PropType,\n },\n /** 透传 SelectInput 筛选器输入框组件的全部属性 */\n selectInputProps: {\n type: Object as PropType,\n },\n /** 是否显示右侧箭头,默认显示 */\n showArrow: {\n type: Boolean,\n default: true,\n },\n /** 组件尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdSelectProps['size'],\n validator(val: TdSelectProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdSelectProps['status'],\n validator(val: TdSelectProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 后置图标前的后置内容 */\n suffix: {\n type: [String, Function] as PropType,\n },\n /** 组件后置图标 */\n suffixIcon: {\n type: Function as PropType,\n },\n /** 透传 TagInput 标签输入框组件的全部属性 */\n tagInputProps: {\n type: Object as PropType,\n },\n /** 透传 Tag 标签组件全部属性 */\n tagProps: {\n type: Object as PropType,\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 选中值 */\n value: {\n type: [String, Number, Boolean, Object, Array] as PropType,\n default: undefined as TdSelectProps['value'],\n },\n modelValue: {\n type: [String, Number, Boolean, Object, Array] as PropType,\n default: undefined as TdSelectProps['value'],\n },\n /** 选中值,非受控属性 */\n defaultValue: {\n type: [String, Number, Boolean, Object, Array] as PropType,\n default: undefined,\n },\n /** 自定义选中项呈现的内容 */\n valueDisplay: {\n type: [String, Function] as PropType,\n },\n /** 用于控制选中值的类型。假设数据选项为:`[{ label: '姓名', value: 'name' }]`,value 表示值仅返回数据选项中的 value, object 表示值返回全部数据。 */\n valueType: {\n type: String as PropType,\n default: 'value' as TdSelectProps['valueType'],\n validator(val: TdSelectProps['valueType']): boolean {\n if (!val) return true;\n return ['value', 'object'].includes(val);\n },\n },\n /** 输入框失去焦点时触发 */\n onBlur: Function as PropType,\n /** 选中值变化时触发。`context.trigger` 表示触发变化的来源;`context.selectedOptions` 表示选中值的完整对象,数组长度一定和 `value` 相同;`context.option` 表示当前操作的选项,不一定存在 */\n onChange: Function as PropType,\n /** 点击清除按钮时触发 */\n onClear: Function as PropType,\n /** 当选择新创建的条目时触发 */\n onCreate: Function as PropType,\n /** 回车键按下时触发。`inputValue` 表示输入框的值,`value` 表示选中值 */\n onEnter: Function as PropType,\n /** 输入框获得焦点时触发 */\n onFocus: Function as PropType,\n /** 输入框值发生变化时触发,`context.trigger` 表示触发输入框值变化的来源:文本输入触发、清除按钮触发、失去焦点等 */\n onInputChange: Function as PropType,\n /** 下拉框显示或隐藏时触发 */\n onPopupVisibleChange: Function as PropType,\n /** 多选模式下,选中数据被移除时触发 */\n onRemove: Function as PropType,\n /** 输入值变化时,触发搜索事件。主要用于远程搜索新数据 */\n onSearch: Function as PropType,\n};\n","import { Ref, computed, onMounted, onBeforeUnmount } from 'vue';\nimport { useVirtualScroll } from '@tdesign/shared-hooks';\nimport { TdSelectProps } from '../type';\nimport { Styles } from '../../common';\n\nexport const usePanelVirtualScroll = (props: {\n scroll: TdSelectProps['scroll'];\n popupContentRef: Ref;\n options: Ref;\n}) => {\n const isVirtual = computed(\n () => props.scroll?.type === 'virtual' && props.options.value?.length > (props.scroll?.threshold || 100),\n );\n\n const {\n trs = null,\n visibleData = null,\n handleScroll: handleVirtualScroll = null,\n scrollHeight = null,\n translateY = null,\n handleRowMounted = null,\n } = props.scroll?.type === 'virtual'\n ? useVirtualScroll({\n container: props.popupContentRef,\n data: props.options,\n fixedHeight: props.scroll?.isFixedRowHeight || false,\n lineHeight: props.scroll?.rowHeight || 28, // 默认每行高度28\n bufferSize: props.scroll?.bufferSize || 20,\n threshold: props.scroll?.threshold || 100,\n })\n : {};\n let lastScrollY = -1;\n\n const onInnerVirtualScroll = (e: WheelEvent) => {\n if (!isVirtual.value) {\n return;\n }\n const target = e.target as HTMLElement;\n const top = target.scrollTop;\n // 排除横向滚动触发的纵向虚拟滚动计算\n if (Math.abs(lastScrollY - top) > 5) {\n handleVirtualScroll();\n lastScrollY = top;\n } else {\n lastScrollY = -1;\n }\n };\n\n // 监听popup滚动 处理虚拟滚动时的virtualData变化\n onMounted(() => {\n props.popupContentRef.value?.addEventListener('scroll', onInnerVirtualScroll);\n });\n\n // 卸载时取消监听\n onBeforeUnmount(() => {\n props.popupContentRef.value?.removeEventListener('scroll', onInnerVirtualScroll);\n });\n\n const cursorStyle = computed(\n () =>\n ({\n position: 'absolute',\n width: '1px',\n height: '1px',\n transition: 'transform 0.2s',\n transform: `translate(0, ${scrollHeight.value}px)`,\n '-ms-transform': `translate(0, ${scrollHeight.value}px)`,\n '-moz-transform': `translate(0, ${scrollHeight.value}px)`,\n '-webkit-transform': `translate(0, ${scrollHeight.value}px)`,\n } as Styles),\n );\n\n const panelStyle = computed(\n () =>\n ({\n transform: `translate(0, ${translateY.value}px)`,\n '-ms-transform': `translate(0, ${translateY.value}px)`,\n '-moz-transform': `translate(0, ${translateY.value}px)`,\n '-webkit-transform': `translate(0, ${translateY.value}px)`,\n } as Styles),\n );\n\n return {\n trs,\n scrollHeight,\n translateY,\n visibleData,\n handleRowMounted,\n isVirtual,\n cursorStyle,\n panelStyle,\n };\n};\n","/* eslint-disable */\n/**\n * 当前虚拟滚动存在的问题\n * 1. 反复拖动滚动条,底部会出现奇怪的高度\n * 2. 表格高度发生变化时,底部也会出现奇怪的高度\n * 3. 无法直接定位滚动到某个元素,进而无法实现 Select 组件直接滚动到选中项\n */\nimport { ref, toRefs, reactive, onMounted, computed, watch, nextTick } from 'vue';\n\n// 虚拟滚动Hooks的完整实现,只所以封装成hooks,主要是为了方便跟其他组件搭配使用,比如说表格或者下拉框\nexport function useVirtualScroll({\n data,\n container,\n fixedHeight = false,\n lineHeight = 30,\n bufferSize = 20,\n threshold = 100,\n}: {\n data: any;\n container: any;\n fixedHeight: boolean;\n lineHeight: number;\n bufferSize: number;\n threshold: number;\n}) {\n const state = reactive({\n visibleData: [],\n cachedHeight: [],\n cachedScrollY: [],\n });\n const isVirtual = computed(() => data.value.length > threshold);\n const updateId = ref(0);\n const trs = new Map(); // 当前展示的行元素和数据\n\n let visibleCount = 0; // 可见的节点数量\n let beforeScrollTop = 0; // 上一次的滚动条位置\n let index = 0; // 偏移行数\n let offset = 0; // 少于一行行高的偏移量\n let start = 0; // 第一条显示的行\n let last = 0; // 最后一条显示的行\n // let revising = false; // 是否正在修正滚动条\n\n const reset = () => {\n data.value.forEach((item: any, i: number) => {\n item.$index = i;\n if (fixedHeight) {\n state.cachedScrollY[i] = i * lineHeight;\n }\n });\n if (!fixedHeight) {\n state.cachedScrollY[data.value.length - 1] = undefined; // 初始化cachedScrollY数组的长度\n }\n };\n reset();\n\n // 计算虚拟滚动列表总高度,需要动态修正\n const scrollHeight = computed(() => {\n const { cachedHeight } = state;\n const { length } = cachedHeight;\n if (length) {\n const maxScrollY = cachedHeight.reduce((sum, v) => sum + v || lineHeight, 0); // 当前总高度\n if (cachedHeight.length === data.value.length) {\n return maxScrollY;\n }\n const average = maxScrollY / cachedHeight.length; // 平均高度\n return maxScrollY + (data.value.length - cachedHeight.length) * average; // 预估总高度\n }\n return isVirtual.value ? data.value.length * lineHeight : 0;\n });\n const translateY = computed(() => {\n const { visibleData } = state;\n const firstRow = visibleData[0];\n if (firstRow) {\n // 修复只有一个元素时存在偏移的问题\n return visibleData.length === 1 ? 0 : state.cachedScrollY[firstRow.$index];\n }\n return 0;\n });\n\n // 更新可视区域的节点数据\n const updateVisibleData = () => {\n last = Math.min(start + visibleCount + bufferSize * 2, data.value.length);\n state.visibleData = data.value.slice(start, last);\n };\n // 计算每行对应的scrollTop值\n const calculateScrollY = () => {\n const anchorDom = trs.get(index); // 获取锚点元素\n if (!anchorDom) {\n return; // 快速调整高度时,新的元素可能来不及加载,暂时跳过更新\n }\n const anchorDomHeight = anchorDom?.getBoundingClientRect()?.height; // 获取锚点元素的高\n state.cachedScrollY[index] = container.value.scrollTop - offset; // 锚点元素scrollY= 容器滚动高度 - 锚点元素的offset\n state.cachedHeight[index] = anchorDomHeight;\n\n for (let i = index + 1; i <= state.visibleData[state.visibleData.length - 1]?.$index; i++) {\n // 计算锚点后面的元素scrollY\n const tr = trs.get(i);\n const { height } = tr?.getBoundingClientRect() || {};\n state.cachedHeight[i] = height;\n const scrollY = state.cachedScrollY[i - 1] + state.cachedHeight[i - 1]; // 当前元素的y 是前一个元素的y+前一个元素高度\n // state.cachedScrollY[i] = scrollY;\n state.cachedScrollY.splice(i, 1, scrollY); // 兼容vue2的composition api\n }\n\n for (let i = index - 1; i >= state.visibleData[0]?.$index; i--) {\n const tr = trs.get(i);\n const { height } = tr?.getBoundingClientRect() || {};\n state.cachedHeight[i] = height;\n const scrollY = state.cachedScrollY[i + 1] - state.cachedHeight[i]; // 当前元素的y是下一个元素y - 当前元素高度\n // state.cachedScrollY[i] = scrollY;\n state.cachedScrollY.splice(i, 1, scrollY);\n }\n if (state.cachedScrollY[0] > 0) {\n // 修正滚动过快时,滚动到顶部时,滚动条多余的问题\n // revising = true;\n const distance = state.cachedScrollY[0]; // 第一个元素scrollY即为多出的量\n const length = Math.min(last, data.value.length);\n for (let i = 0; i < length; i++) {\n // state.cachedScrollY[i] -= distance;\n state.cachedScrollY.splice(i, 1, state.cachedScrollY[i] - distance);\n }\n\n const scrollTop = state.cachedScrollY[index - 1] ? state.cachedScrollY[index - 1] + offset : offset;\n container.value.scrollTop = scrollTop;\n beforeScrollTop = scrollTop;\n // revising = false;\n }\n // 修正拖动过快时,滚动到顶端时,滚动条不足的偏差\n if (state.cachedScrollY[start] < 0) {\n // revising = true;\n const s = state.cachedHeight.slice(0, Math.max(0, index)).reduce((sum, v) => sum + v, 0) + offset;\n container.value.scrollTop = s;\n beforeScrollTop = s;\n if (s === 0) {\n index = 0;\n offset = 0;\n }\n // revising = false;\n }\n nextTick(() => {\n // setTimeout是为了保证快速拖动到底部时,以下逻辑能够正常执行\n const { scrollTop, scrollHeight, clientHeight } = container.value;\n if (scrollTop + clientHeight === scrollHeight) {\n // 滚动到底部时,修正底部有空余的问题\n // revising = true;\n for (let i = last - 1; i >= start; i--) {\n if (i === last - 1) {\n // state.cachedScrollY[i] = scrollHeight.value - state.cachedHeight[i];\n state.cachedScrollY.splice(i, 1, scrollHeight.value - state.cachedHeight[i]);\n } else {\n // state.cachedScrollY[i] = state.cachedScrollY[i + 1] - state.cachedHeight[i];\n state.cachedScrollY.splice(i, 1, state.cachedScrollY[i + 1] - state.cachedHeight[i]);\n }\n }\n // revising = false;\n }\n });\n };\n\n // 滚动时动态计算和渲染\n const handleScroll = () => {\n if (!isVirtual.value) return;\n // if (revising) {\n // return false; // 修正滚动条时,暂停滚动逻辑\n // }\n const { scrollTop } = container.value;\n let distance = scrollTop - beforeScrollTop; // 滚动差值\n beforeScrollTop = scrollTop;\n distance += offset;\n let lastIndex = index;\n // !disatance 可能为横向滚动,不做任何计算\n if (!distance) return;\n if (distance >= 0) {\n // 向下滚动\n while (lastIndex < data.value.length && distance > (state.cachedHeight[lastIndex] || lineHeight)) {\n if (!state.cachedHeight[lastIndex]) {\n state.cachedHeight[lastIndex] = lineHeight;\n }\n distance -= state.cachedHeight[lastIndex];\n lastIndex++;\n }\n if (lastIndex >= data.value.length) {\n index = data.value.length - 1;\n offset = 0;\n } else {\n index = lastIndex;\n offset = distance;\n }\n const { clientHeight, scrollHeight } = container.value;\n if (scrollTop + clientHeight === scrollHeight) {\n // 滚动条到底了\n index = data.value.length - visibleCount + 1;\n // calculateScrollY();\n }\n if (start <= index - bufferSize) {\n // 计算第一个挂载元素\n start = Math.min(data.value.length - visibleCount, index - bufferSize);\n if (start < 0) {\n start = 0;\n }\n }\n } else {\n // 向上滚动\n while (distance < 0) {\n lastIndex--;\n if (!state.cachedHeight[lastIndex]) {\n state.cachedHeight[lastIndex] = lineHeight;\n }\n distance += state.cachedHeight[lastIndex];\n }\n if (lastIndex < 0) {\n index = 0;\n offset = 0;\n } else {\n index = lastIndex;\n offset = distance;\n }\n calculateScrollY();\n if (start > index - bufferSize) {\n // 计算第一个挂载元素\n start = Math.max(0, index - bufferSize);\n }\n }\n updateVisibleData();\n };\n\n !fixedHeight && watch(updateId, calculateScrollY, { flush: 'post' });\n const handleRowMounted = () => {\n if (!isVirtual.value) return;\n updateId.value++;\n };\n watch(data, () => {\n reset();\n state.visibleData = [];\n state.cachedScrollY = [];\n state.cachedHeight = [];\n beforeScrollTop = 0;\n index = 0;\n offset = 0;\n start = 0;\n // revising = false;\n trs.clear();\n if (data.value.length <= threshold) {\n state.visibleData = data.value;\n } else {\n updateVisibleData();\n }\n\n container.value && (container.value.scrollTop = 0);\n });\n let mounted = false;\n const refreshContainer = () => {\n if (mounted) {\n visibleCount = Math.ceil(container.value.offsetHeight / lineHeight);\n updateVisibleData();\n }\n };\n onMounted(() => {\n if (!window || !window.IntersectionObserver) {\n return;\n }\n const ob = new window.IntersectionObserver((entries) => {\n const entry = entries[0];\n if (entry.isIntersecting || entry.intersectionRatio) {\n mounted = true;\n isVirtual.value && refreshContainer();\n ob.unobserve(container.value);\n }\n });\n container.value && ob.observe(container.value);\n });\n return {\n trs,\n scrollHeight,\n ...toRefs(state),\n translateY,\n handleScroll,\n handleRowMounted,\n refreshContainer,\n fixedHeight,\n calculateScrollY,\n };\n}\n","import { computed, defineComponent, inject, Slots, ref } from 'vue';\nimport { omit } from 'lodash-es';\nimport { Styles } from '../../common';\n\nimport { SelectOption, SelectOptionGroup, TdOptionProps } from '../type';\nimport Option from '../option';\nimport OptionGroup from '../option-group';\nimport TdSelectProps from '../props';\n\nimport { useConfig, useTNodeJSX, usePrefixClass, useTNodeDefault } from '@tdesign/shared-hooks';\n\nimport { usePanelVirtualScroll } from '../hooks';\nimport { selectInjectKey } from '../consts';\nimport type { TdSelectProps as SelectProps } from '../type';\n\nexport default defineComponent({\n name: 'TSelectPanel',\n props: {\n inputValue: TdSelectProps.inputValue,\n panelTopContent: TdSelectProps.panelTopContent,\n panelBottomContent: TdSelectProps.panelBottomContent,\n empty: TdSelectProps.empty,\n creatable: TdSelectProps.creatable,\n loading: TdSelectProps.loading,\n loadingText: TdSelectProps.loadingText,\n multiple: TdSelectProps.multiple,\n filterable: TdSelectProps.filterable,\n filter: TdSelectProps.filter,\n scroll: TdSelectProps.scroll,\n keys: TdSelectProps.keys,\n },\n setup(props, { expose }) {\n const COMPONENT_NAME = usePrefixClass('select');\n const renderTNodeJSX = useTNodeJSX();\n const renderDefaultTNode = useTNodeDefault();\n const { t, globalConfig } = useConfig('select');\n const tSelect = inject(selectInjectKey);\n const innerRef = ref(null);\n const keys = computed(() => props.keys as SelectProps['keys']);\n\n const popupContentRef = computed(() => tSelect.value.popupContentRef.value);\n const showCreateOption = computed(() => props.creatable && props.filterable && props.inputValue);\n const displayOptions = computed(() => tSelect.value.displayOptions);\n\n const { trs, visibleData, handleRowMounted, isVirtual, panelStyle, cursorStyle } = usePanelVirtualScroll({\n scroll: props.scroll,\n popupContentRef,\n options: displayOptions,\n });\n\n const isEmpty = computed(() => !displayOptions.value.length);\n\n const renderCreateOption = () => (\n
      \n \n
    \n );\n\n // 递归render options\n const renderOptionsContent = (options: SelectOption[]) => {\n return (\n
      \n {options.map((item: SelectOptionGroup & TdOptionProps & { slots: Slots } & { $index: number }, index) => {\n if (item.children) {\n return (\n \n {renderOptionsContent(item.children)}\n \n );\n }\n\n const defaultOmit = ['index', '$index', 'className', 'tagName'];\n\n const { value, label, disabled } = keys.value || {};\n // 如果 keys 中刚好有 content,则移除 content 渲染 https://github.com/Tencent/tdesign-vue-next/issues/5088\n const shouldOmitContent = [value, label, disabled].includes('content');\n const option = omit(item, defaultOmit.concat(shouldOmitContent ? 'content' : []));\n\n return (\n \n );\n })}\n
    \n );\n };\n const dropdownInnerSize = computed(() => {\n return {\n small: 's',\n medium: 'm',\n large: 'l',\n }[tSelect.value.size];\n });\n\n expose({\n innerRef,\n visibleData, // 虚拟滚动的展示数据\n isVirtual,\n displayOptions, // 非虚拟滚动的展示数据\n });\n\n const renderPanel = (options: SelectOption[], extraStyle?: Styles) => (\n \n {/* create option */}\n {showCreateOption.value && renderCreateOption()}\n {/* loading状态 */}\n {props.loading &&\n renderDefaultTNode('loadingText', {\n defaultNode:
    {t(globalConfig.value.loadingText)}
    ,\n })}\n {/* 空状态 */}\n {!props.loading && isEmpty.value && !showCreateOption.value && (\n
    {renderTNodeJSX('empty') || t(globalConfig.value.empty)}
    \n )}\n {!isEmpty.value && renderOptionsContent(options)}\n \n );\n\n return () => {\n return isVirtual.value ? (\n <>\n {renderTNodeJSX('panelTopContent')}\n
    \n
    \n {renderPanel(visibleData.value, panelStyle.value)}\n
    \n {renderTNodeJSX('panelBottomContent')}\n \n ) : (\n <>\n {renderTNodeJSX('panelTopContent')}\n {renderPanel(displayOptions.value)}\n {renderTNodeJSX('panelBottomContent')}\n \n );\n };\n },\n});\n","import { defineComponent, provide, computed, toRefs, watch, ref, nextTick, PropType } from 'vue';\nimport { get, isArray, debounce, cloneDeep, isFunction, intersection, pick as picker } from 'lodash-es';\n\nimport FakeArrow from '../common-components/fake-arrow';\nimport SelectInput from '../select-input';\nimport SelectPanel from './components/select-panel';\nimport Tag from '../tag';\nimport props from './props';\n// hooks\nimport {\n useVModel,\n useConfig,\n useDisabled,\n useReadonly,\n useTNodeJSX,\n usePrefixClass,\n useDefaultValue,\n} from '@tdesign/shared-hooks';\n\nimport { getSingleContent, getMultipleContent } from './utils';\nimport { selectInjectKey } from './consts';\nimport { useSelectOptions, useKeyboardControl } from './hooks';\nimport type { PopupProps, PopupVisibleChangeContext } from '../popup';\nimport type { SelectInputChangeContext, SelectInputValueChangeContext } from '../select-input';\nimport type { TdSelectProps, SelectValue, TdOptionProps } from './type';\nimport { SelectInputValueDisplayOptions } from '../select-input/hooks/useSingle';\nimport { TagInputTriggerSource } from '../tag-input';\n\nexport default defineComponent({\n name: 'TSelect',\n props: {\n ...props,\n /**\n * 非公开 API,请勿使用(后续即将删除)\n */\n valueDisplayOptions: {\n type: Object as PropType,\n },\n },\n setup(props: TdSelectProps & { valueDisplayOptions: SelectInputValueDisplayOptions }, { slots }) {\n const classPrefix = usePrefixClass();\n const isDisabled = useDisabled();\n const isReadonly = useReadonly();\n const renderTNodeJSX = useTNodeJSX();\n const COMPONENT_NAME = usePrefixClass('select');\n const { globalConfig, t } = useConfig('select');\n const { popupVisible, inputValue, modelValue, value } = toRefs(props);\n const [innerInputValue, setInputValue] = useDefaultValue(\n inputValue,\n props.defaultInputValue,\n props.onInputChange,\n 'inputValue',\n );\n const [orgValue, setOrgValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const selectPanelRef = ref(null);\n const selectInputRef = ref(null);\n const keys = computed(() => ({\n label: props.keys?.label || 'label',\n value: props.keys?.value || 'value',\n disabled: props.keys?.disabled || 'disabled',\n }));\n\n const isObjectType = computed(() => props.valueType === 'object');\n\n // 内部数据,格式化过的\n const innerValue = computed(() => {\n if (orgValue.value === undefined) {\n return props.multiple ? [] : undefined;\n }\n if (isObjectType.value) {\n return !props.multiple\n ? // @ts-ignore\n // TODO optimize SelectValue\n orgValue.value[keys.value.value]\n : // @ts-ignore\n // TODO optimize SelectValue\n (orgValue.value as SelectValue[]).map((option) => option[keys.value.value]);\n }\n return orgValue.value;\n });\n\n const { optionsMap, optionsList, optionsCache, displayOptions, filterMethods, searchDisplayOptions } =\n useSelectOptions(props, keys, innerInputValue, innerValue);\n\n const setInnerValue: TdSelectProps['onChange'] = (newVal: SelectValue | SelectValue[], context) => {\n if (isObjectType.value) {\n const { value, label } = keys.value;\n const getOption = (val: SelectValue) => {\n if (val === undefined) {\n return undefined;\n }\n const option = optionsMap.value.get(val);\n return {\n [value]: get(option, 'value'),\n [label]: get(option, 'label'),\n };\n };\n newVal = props.multiple ? (newVal as SelectValue[]).map((val) => getOption(val)) : getOption(newVal);\n }\n if (newVal === orgValue.value) return;\n\n // 多选场景下 在选中值时,且不保留reserveKeyword 的情况下 ,需要清空输入(筛选)值\n if (props.multiple && !props.reserveKeyword && context.trigger == 'check') setInputValue('');\n\n setOrgValue(newVal, {\n selectedOptions: getSelectedOptions(newVal),\n ...context,\n });\n if (props.multiple && context.trigger === 'uncheck' && context.option) {\n props.onRemove?.({\n value: get(context.option, keys.value.value),\n data: context.option,\n e: context.e,\n });\n }\n };\n\n const [innerPopupVisible, setInnerPopupVisible] = useDefaultValue(\n popupVisible,\n false,\n (visible: boolean, context: PopupVisibleChangeContext) => {\n props.onPopupVisibleChange?.(visible, context);\n },\n 'popupVisible',\n );\n\n const placeholderText = computed(\n () =>\n ((!props.multiple &&\n innerPopupVisible.value &&\n getSingleContent(innerValue.value, isRemoteSearch.value, currentSelectOptions, optionsMap)) ||\n props.placeholder) ??\n t(globalConfig.value.placeholder),\n );\n\n // selectInput 展示值\n const displayText = computed(() =>\n props.multiple\n ? getMultipleContent(innerValue.value as SelectValue[], isRemoteSearch.value, currentSelectOptions, optionsMap)\n : getSingleContent(innerValue.value, isRemoteSearch.value, currentSelectOptions, optionsMap),\n );\n\n // valueDisplayParams参数\n const valueDisplayParams = computed(() => {\n if (!props.multiple) {\n return {\n ...optionsMap.value.get(innerValue.value),\n value: innerValue.value,\n label: displayText.value,\n };\n }\n\n const val = isArray(innerValue.value) ? innerValue.value.map((value) => optionsMap.value.get(value)) : [];\n const params = {\n value: val,\n onClose: props.multiple ? (index: number) => removeTag(index) : () => {},\n };\n\n if (props.minCollapsedNum && isArray(innerValue.value)) {\n return {\n ...params,\n displayValue: Array.isArray(val) ? val.slice(0, props.minCollapsedNum) : [],\n };\n }\n return params;\n });\n\n const isFilterable = computed(() => {\n return Boolean(props.filterable || globalConfig.value.filterable || isFunction(props.filter));\n });\n\n const isRemoteSearch = computed(() => {\n return Boolean((props.filterable || globalConfig.value.filterable) && isFunction(props.onSearch));\n });\n\n // 移除tag\n const removeTag = (index: number, context?: SelectInputChangeContext) => {\n const { e, trigger = 'tag-remove' } =\n (context as SelectInputChangeContext & {\n trigger: Exclude;\n }) || {};\n\n e && e.stopPropagation();\n\n const selectValue = cloneDeep(innerValue.value) as SelectValue[];\n const value = selectValue[index];\n\n selectValue.splice(index, 1);\n\n if (trigger === 'backspace') {\n // 如果最后一个为disabled,则应删除前一项(非disabled的)\n let closest = -1;\n let len = index;\n\n const currentSelected = getCurrentSelectedOptions();\n while (len >= 0) {\n if (!currentSelected[len]?.disabled) {\n closest = len;\n break;\n }\n len -= 1;\n }\n // 只剩下disabled的情况,不做任何操作\n if (closest < 0) return;\n\n // 前面不是disabled的option\n const values = currentSelected[closest];\n\n const currentSelectedOptions = currentSelected.filter((item) => item.value !== values.value);\n\n setInnerValue(\n currentSelectedOptions.map((item) => item.value),\n { selectedOptions: currentSelectedOptions, trigger, e },\n );\n\n props.onRemove?.({\n value: values.value as string | number,\n data: values,\n e,\n });\n\n return;\n }\n\n if (trigger !== 'clear') {\n setInnerValue(selectValue, { selectedOptions: getSelectedOptions(selectValue), trigger, e });\n }\n\n props.onRemove?.({\n value: value as string | number,\n data: optionsMap.value.get(value),\n e,\n });\n };\n\n const handleCreate = () => {\n if (!innerInputValue.value) return;\n props.onCreate?.(innerInputValue.value);\n // only clean input value when reopen popup\n if (!innerPopupVisible.value) setInputValue('');\n };\n\n const popupContentRef = computed(() => selectInputRef.value?.popupRef.getOverlay() as HTMLElement);\n\n /**\n * 可选选项的列表\n * 排除已禁用和全选的选项,考虑过滤情况\n */\n const optionalList = computed(() =>\n optionsList.value.filter((item) => {\n return (\n !item.disabled &&\n // @ts-ignore types only declare checkAll not declare check-all\n !(item['check-all'] || item['check-all'] === '') &&\n !item.checkAll &&\n filterMethods(item)\n );\n }),\n );\n\n const getSelectedOptions = (selectValue: SelectValue[] | SelectValue = innerValue.value) => {\n return optionsList.value.filter((option) => {\n if (option.checkAll) return;\n if (isArray(selectValue)) return selectValue.includes(option.value);\n return selectValue === option.value;\n });\n };\n\n // 获取当前选中的选项,和 getSelectedOptions 的区别是 这个会保持选择的先后顺序\n const getCurrentSelectedOptions = () => {\n const options: TdOptionProps[] = [];\n\n // 需要处理 objectType 的情况\n const selectedValue = isObjectType.value ? orgValue.value : innerValue.value;\n const values = isArray(selectedValue) ? selectedValue : [selectedValue];\n\n values.forEach((value) => {\n const option = optionsMap.value.get(isObjectType.value ? value.value : value);\n if (option) options.push(option);\n // 处理不存在选项的值的场景,也需要推入\n else options.push(isObjectType.value ? value : { value });\n });\n return options;\n };\n\n /*\n * 全选逻辑:\n * 根据 checked 的值计算最终选中的值:\n * - 如果 checked 为 true,则选中所有非 disabled 选项,并保留已选中的 disabled 选项。\n * - 如果 checked 为 false,则只保留已选中的 disabled 选项。\n * - 过滤条件下,如果 checked 为 true,则选中所有非 disabled 选项,并保留已选中的选项。\n * - 过滤条件下,如果 checked 为 false,则只保留已选中的 disabled 选项。\n */\n const onCheckAllChange = (checked: boolean) => {\n if (!props.multiple) return;\n const { value } = keys.value;\n // disabled状态的选项,不参与全选的计算,始终保留\n const lockedValues = innerValue.value.filter((value: string | number | boolean) => {\n return optionsList.value.find((item) => item.value === value && item.disabled);\n });\n\n const activeValues = optionalList.value.map((option) => option.value);\n const formattedOrgValue = isObjectType.value\n ? (orgValue.value as Array).map((v) => get(v, value))\n : orgValue.value;\n\n const values = checked\n ? [...new Set([...(formattedOrgValue as Array), ...activeValues, ...lockedValues])]\n : [...lockedValues];\n setInnerValue(values, { selectedOptions: getSelectedOptions(values), trigger: checked ? 'check' : 'clear' });\n };\n\n // 全选\n const isCheckAll = computed(() => {\n if (intersectionLen.value === 0) return false;\n return (\n intersectionLen.value === (isRemoteSearch.value ? searchDisplayOptions.value.length : optionalList.value.length)\n );\n });\n\n const { hoverIndex, virtualFilteredOptions, handleKeyDown, filteredOptions } = useKeyboardControl({\n displayOptions,\n optionsList,\n innerPopupVisible,\n setInnerPopupVisible,\n selectPanelRef,\n isFilterable,\n isRemoteSearch,\n getSelectedOptions,\n setInnerValue,\n onCheckAllChange,\n isCheckAll,\n innerValue,\n popupContentRef,\n multiple: props.multiple,\n max: props.max,\n });\n\n // 已选的长度\n const intersectionLen = computed(() => {\n const values = optionalList.value.map((item) => item.value);\n const n = intersection(innerValue.value, values);\n return n.length;\n });\n\n // 半选\n const indeterminate = computed(() => !isCheckAll.value && intersectionLen.value !== 0);\n\n const SelectProvider = computed(() => ({\n max: props.max,\n multiple: props.multiple,\n hoverIndex: hoverIndex.value,\n selectValue: innerValue.value,\n reserveKeyword: props.reserveKeyword,\n handleValueChange: setInnerValue,\n handlerInputChange: setInputValue,\n handlePopupVisibleChange: setInnerPopupVisible,\n handleCreate,\n size: props.size,\n popupContentRef,\n indeterminate: indeterminate.value,\n isCheckAll: isCheckAll.value,\n onCheckAllChange,\n getSelectedOptions,\n displayOptions: displayOptions.value,\n emitBlur: handleOptionEmitBlur,\n }));\n\n provide(selectInjectKey, SelectProvider);\n\n const checkValueInvalid = () => {\n // 参数类型检测与修复\n if (!props.multiple && isArray(orgValue.value)) {\n setOrgValue(undefined, { selectedOptions: [], trigger: 'default' });\n }\n if (props.multiple && !isArray(orgValue.value)) {\n setOrgValue([], { selectedOptions: [], trigger: 'default' });\n }\n };\n\n const handleSearch = debounce((value: string, { e }: { e: KeyboardEvent }) => {\n props.onSearch?.(`${value}`, { e });\n }, 300);\n\n const handlerInputChange = (value: string, context: SelectInputValueChangeContext) => {\n if (value) {\n !innerPopupVisible.value && setInnerPopupVisible(true, { e: context.e as KeyboardEvent });\n }\n setInputValue(value);\n handleSearch(`${value}`, { e: context.e as KeyboardEvent });\n nextTick(() => {\n virtualFilteredOptions.value = selectPanelRef.value?.visibleData;\n filteredOptions.value = selectPanelRef.value?.displayOptions;\n });\n };\n\n const handleOptionEmitBlur = (e: MouseEvent | KeyboardEvent) => {\n props.onBlur?.({ e, value: innerValue.value });\n };\n\n const handlerPopupVisibleChange = (visible: boolean, context: PopupVisibleChangeContext) => {\n setInnerPopupVisible(visible, context);\n // 在通过点击选择器打开弹窗时 清空此前的输入内容 避免在关闭时就清空引起的闪烁问题\n if (visible && context.trigger === 'trigger-element-click') setInputValue('');\n };\n\n const handlerPopupScrollToBottom: PopupProps['onScrollToBottom'] = async (context) => {\n const { popupProps } = props;\n if (props.loading) {\n return;\n }\n // @ts-ignore types 中只有 onScrollToBottom,但 Vue 会自动转换 on-scroll-to-bottom 并支持,故此处都进行调用\n popupProps?.['on-scroll-to-bottom']?.(context);\n popupProps?.onScrollToBottom?.(context);\n };\n\n const addCache = (val: SelectValue) => {\n if (props.multiple) {\n const newCache = [];\n for (const item of (val as SelectValue[]) || []) {\n const option = optionsMap.value.get(item);\n if (option) {\n newCache.push(option);\n }\n }\n optionsCache.value = Array.from(new Set([...newCache, ...optionsCache.value]));\n } else {\n const option = optionsMap.value.get(val);\n if (option) {\n optionsCache.value = Array.from(new Set([option, ...optionsCache.value]));\n }\n }\n };\n\n watch(\n orgValue,\n (val) => {\n checkValueInvalid();\n nextTick(() => {\n addCache(val);\n });\n },\n {\n immediate: true,\n },\n );\n watch(\n () => props.multiple,\n () => {\n checkValueInvalid();\n },\n );\n\n // 列表展开时定位置选中项\n const updateScrollTop = (content: HTMLDivElement) => {\n if (!selectPanelRef.value) {\n return;\n }\n const firstSelectedNode: HTMLDivElement = (selectPanelRef.value?.innerRef as HTMLDivElement)?.querySelector(\n `.${classPrefix.value}-is-selected`,\n );\n // 此处需要等待渲染后进行计算\n nextTick(() => {\n if (firstSelectedNode && content) {\n const { paddingBottom } = getComputedStyle(firstSelectedNode);\n const { marginBottom } = getComputedStyle(content);\n const elementBottomHeight = parseInt(paddingBottom, 10) + parseInt(marginBottom, 10);\n // 小于0时不需要特殊处理,会被设为0\n const updateValue =\n firstSelectedNode.offsetTop -\n content.offsetTop -\n (content.clientHeight - firstSelectedNode.clientHeight) +\n elementBottomHeight;\n // eslint-disable-next-line no-param-reassign\n content.scrollTop = updateValue;\n }\n });\n };\n\n /**\n * 获取当前选中的选项 —— 远程搜索数据和本地传入的数据\n */\n const currentSelectOptions = computed(() => {\n return isRemoteSearch.value ? searchDisplayOptions.value : getCurrentSelectedOptions();\n });\n\n const renderValueDisplay = () => {\n const renderTag = () => {\n if (!props.multiple || props.selectInputProps?.multiple === false) {\n return undefined;\n }\n\n return innerValue.value\n .slice(0, props.minCollapsedNum ? props.minCollapsedNum : innerValue.value.length)\n .map?.((v: string, key: number) => {\n const option = currentSelectOptions.value.find((item) => {\n if (item.value === v) {\n return true;\n }\n });\n\n return (\n {\n e.stopPropagation();\n props.tagProps?.onClose?.({ e });\n removeTag(key);\n }}\n >\n {option ? option.label ?? option?.value : v}\n \n );\n });\n };\n\n return (\n renderTNodeJSX('valueDisplay', {\n params: valueDisplayParams.value,\n }) || renderTag()\n );\n };\n\n provide('updateScrollTop', updateScrollTop);\n return () => {\n const { overlayClassName, ...restPopupProps } = (props.popupProps || {}) as TdSelectProps['popupProps'];\n return (\n
    \n {\n removeTag(ctx.index, ctx);\n }}\n tagProps={{ ...(props.tagProps as TdSelectProps['tagProps']) }}\n popupProps={{\n overlayClassName: [`${COMPONENT_NAME.value}__dropdown`, overlayClassName],\n ...restPopupProps,\n onScrollToBottom: handlerPopupScrollToBottom,\n }}\n label={props.label}\n prefixIcon={props.prefixIcon}\n suffix={props.suffix}\n suffixIcon={() => {\n if (props.suffixIcon || slots.suffixIcon) {\n return renderTNodeJSX('suffixIcon');\n }\n\n return (\n props.showArrow && (\n \n )\n );\n }}\n valueDisplay={renderValueDisplay}\n onPopupVisibleChange={handlerPopupVisibleChange}\n onInputChange={handlerInputChange}\n onClear={({ e }) => {\n setInnerValue(props.multiple ? [] : undefined, {\n option: null,\n selectedOptions: getSelectedOptions(props.multiple ? [] : undefined),\n trigger: 'clear',\n e,\n });\n props.onClear?.({ e });\n }}\n onEnter={(inputValue, { e }) => {\n // onEnter和handleKeyDown的Enter事件同时触发,需要通过setTimeout设置先后\n setTimeout(() => {\n props.onEnter?.({ inputValue: `${innerInputValue.value}`, e, value: innerValue.value });\n handleCreate();\n }, 0);\n }}\n onBlur={(inputValue, { e }) => {\n props.onBlur?.({ e, value: innerValue.value });\n }}\n onFocus={(inputValue, { e }) => {\n props.onFocus?.({ e, value: innerValue.value });\n }}\n {...(props.selectInputProps as TdSelectProps['selectInputProps'])}\n v-slots={{\n label: slots.label,\n prefixIcon: slots.prefixIcon,\n suffix: slots.suffix,\n panel: () => (\n \n ),\n collapsedItems: slots.collapsedItems,\n }}\n />\n
    \n );\n };\n },\n});\n","import { computed, Slots, Ref, ref } from 'vue';\nimport { get, isArray, isFunction, uniqBy } from 'lodash-es';\n\nimport { useChildComponentSlots } from '@tdesign/shared-hooks';\nimport { TdSelectProps, TdOptionProps, SelectOptionGroup, SelectValue, SelectOption } from '../type';\nimport { KeysType } from '../../common';\n\ntype UniOption = (TdOptionProps | SelectOptionGroup) & {\n index?: number;\n slots?: Slots;\n};\n\nexport const useSelectOptions = (\n props: TdSelectProps,\n keys: Ref,\n inputValue: Ref,\n innerValue: Ref>,\n) => {\n const getChildComponentSlots = useChildComponentSlots();\n const optionsCache = ref([]);\n\n const options = computed(() => {\n let dynamicIndex = 0;\n // 统一处理 keys,处理通用数据\n const innerOptions: UniOption[] =\n props.options?.map((option) => {\n const getFormatOption = (option: TdOptionProps) => {\n const { value, label, disabled } = keys.value;\n const res = {\n ...option,\n index: dynamicIndex,\n label: get(option, label),\n value: get(option, value),\n disabled: get(option, disabled) || false,\n };\n dynamicIndex++;\n return res;\n };\n if ((option as SelectOptionGroup).children) {\n return {\n ...option,\n children: (option as SelectOptionGroup).children.map((child) => getFormatOption(child)),\n };\n }\n return getFormatOption(option);\n }) || [];\n\n // 处理 slots\n const optionsSlots = getChildComponentSlots('Option');\n const groupSlots = getChildComponentSlots('OptionGroup');\n\n if (isArray(groupSlots)) {\n for (const group of groupSlots) {\n const groupOption = {\n group: group.props?.label,\n ...group.props,\n children: [] as TdOptionProps[],\n };\n const res = getChildComponentSlots('Option', group.children as Slots);\n if (!isArray(res)) continue;\n for (const child of res) {\n groupOption.children.push({\n ...child.props,\n slots: child.children,\n index: dynamicIndex,\n } as TdOptionProps);\n dynamicIndex++;\n }\n\n innerOptions.push(groupOption);\n }\n }\n if (isArray(optionsSlots)) {\n for (const child of optionsSlots) {\n innerOptions.push({\n ...child.props,\n slots: child.children,\n index: dynamicIndex,\n } as TdOptionProps);\n dynamicIndex++;\n }\n }\n return innerOptions;\n });\n\n const optionsList = computed(() => {\n const res: TdOptionProps[] = [];\n const getOptionsList = (options: TdOptionProps[]) => {\n for (const option of options) {\n if ((option as SelectOptionGroup).children) {\n getOptionsList((option as SelectOptionGroup).children);\n } else {\n res.push(option);\n }\n }\n };\n getOptionsList(options.value);\n return res;\n });\n\n const optionsMap = computed(() => {\n const res = new Map();\n // map以最新的为主 避免存在重复value更新的场景 https://github.com/Tencent/tdesign-vue-next/issues/2646\n optionsCache.value.concat(optionsList.value).forEach((option: TdOptionProps) => {\n res.set(option.value, option);\n });\n return res;\n });\n\n const filterMethods = (option: SelectOption) => {\n if (isFunction(props.filter)) {\n return props.filter(`${inputValue.value}`, option);\n }\n return option.label?.toLowerCase?.().indexOf(`${inputValue.value}`.toLowerCase()) > -1;\n };\n\n const searchOptions = ref([]);\n\n const getSelectedOptions = (options: TdOptionProps[], selectValue: SelectValue[] | SelectValue) => {\n return options.filter((option) => {\n if (option.checkAll) return;\n if (isArray(selectValue)) return selectValue.includes(option.value);\n return selectValue === option.value;\n });\n };\n\n /**\n * @description 获取搜索结果选项\n * 这里通过记录所有时间选中的 options 来保证搜索结果中选中的选项不会被过滤掉\n */\n const searchDisplayOptions = computed(() => {\n const currentSelectedOptions = getSelectedOptions(optionsList.value, innerValue.value);\n searchOptions.value = uniqBy([...searchOptions.value, ...currentSelectedOptions], 'value');\n const searchSelectedOptions = getSelectedOptions(searchOptions.value, innerValue.value);\n\n return uniqBy([...searchSelectedOptions, ...optionsList.value], 'value');\n });\n\n const displayOptions = computed(() => {\n if (props.onSearch && props.filterable) return options.value; // 远程搜索时,不执行内部的过滤,不干预用户的自行处理,如输入首字母搜索中文的场景等\n\n if (!inputValue.value || !(props.filterable || isFunction(props.filter))) return options.value;\n\n let checkAllOption: SelectOption;\n\n let res: SelectOption[] = [];\n\n options.value.forEach((option) => {\n if ((option as SelectOptionGroup).children) {\n res.push({\n ...option,\n children: (option as SelectOptionGroup).children.filter(filterMethods),\n });\n }\n\n if ((option as TdOptionProps)?.checkAll === true) checkAllOption = option;\n\n if (filterMethods(option)) {\n res.push(option);\n }\n });\n\n if (!isFunction(props.filter)) {\n // 使用默认 filter,增加表现,调整全等项到首尾,避免全等项位于最后\n // inputValue: ab\n // options abcde, abcd, abc, ab\n const exactMatch = res.filter((item) => item.label === inputValue.value);\n const fuzzyMatch = res.filter((item) => item.label !== inputValue.value);\n res = exactMatch.concat(fuzzyMatch);\n }\n\n return res.length && checkAllOption ? [checkAllOption, ...res] : res;\n });\n\n return {\n options,\n optionsMap,\n optionsList,\n optionsCache,\n displayOptions,\n filterMethods,\n searchDisplayOptions,\n };\n};\n","import { ref, watch, ComputedRef, Ref } from 'vue';\nimport { usePrefixClass } from '@tdesign/shared-hooks';\n\nimport { getNewMultipleValue } from '../utils';\n\nimport type { SelectOption, TdOptionProps, SelectValue } from '../type';\nimport type { ChangeHandler } from '@tdesign/shared-hooks';\nimport type { PopupVisibleChangeContext } from '../../popup';\n\nexport type useKeyboardControlType = {\n displayOptions: ComputedRef;\n optionsList: ComputedRef;\n innerPopupVisible: Ref;\n setInnerPopupVisible: ChangeHandler;\n selectPanelRef: Ref<{ isVirtual: boolean; innerRef: HTMLDivElement }>;\n isFilterable: ComputedRef;\n isRemoteSearch: ComputedRef;\n getSelectedOptions: (selectValue?: SelectValue[] | SelectValue) => TdOptionProps[];\n setInnerValue: Function;\n onCheckAllChange: Function;\n isCheckAll: ComputedRef;\n innerValue: Ref;\n popupContentRef: ComputedRef;\n multiple: boolean;\n max: number;\n};\n\n// 统一处理键盘控制的hooks\nexport function useKeyboardControl({\n displayOptions,\n optionsList,\n innerPopupVisible,\n setInnerPopupVisible,\n selectPanelRef,\n isFilterable,\n isRemoteSearch,\n getSelectedOptions,\n setInnerValue,\n onCheckAllChange,\n innerValue,\n popupContentRef,\n multiple,\n max,\n isCheckAll,\n}: useKeyboardControlType) {\n const hoverIndex = ref(-1);\n const filteredOptions = ref([]); // 处理普通场景选项过滤键盘选中的问题\n const virtualFilteredOptions = ref([]); // 处理虚拟滚动下选项过滤通过键盘选择的问题\n const classPrefix = usePrefixClass();\n const handleKeyDown = (e: KeyboardEvent) => {\n const optionsListLength = displayOptions.value.length;\n let newIndex = hoverIndex.value;\n switch (e.code) {\n case 'ArrowUp':\n e.preventDefault();\n if (hoverIndex.value === -1) {\n newIndex = 0;\n } else if (hoverIndex.value === 0 || hoverIndex.value > displayOptions.value.length - 1) {\n newIndex = optionsListLength - 1;\n } else {\n newIndex--;\n }\n if (optionsList.value[newIndex]?.disabled) {\n newIndex--;\n }\n hoverIndex.value = newIndex;\n break;\n case 'ArrowDown':\n e.preventDefault();\n\n if (hoverIndex.value === -1 || hoverIndex.value >= optionsListLength - 1) {\n newIndex = 0;\n } else {\n newIndex++;\n }\n if (optionsList.value[newIndex]?.disabled) {\n newIndex++;\n }\n hoverIndex.value = newIndex;\n break;\n case 'Enter':\n if (hoverIndex.value === -1) break;\n\n let finalOptions =\n selectPanelRef.value.isVirtual && isFilterable.value && virtualFilteredOptions.value.length\n ? virtualFilteredOptions.value\n : isRemoteSearch.value\n ? optionsList.value\n : filteredOptions.value;\n\n if (!finalOptions.length) finalOptions = optionsList.value;\n if (!innerPopupVisible.value) {\n setInnerPopupVisible(true, { e });\n break;\n }\n\n if (!multiple) {\n const selectedOptions = getSelectedOptions(finalOptions[hoverIndex.value].value);\n setInnerValue(finalOptions[hoverIndex.value].value, {\n option: selectedOptions?.[0],\n selectedOptions: getSelectedOptions(finalOptions[hoverIndex.value].value),\n trigger: 'check',\n e,\n });\n setInnerPopupVisible(false, { e });\n } else {\n if (hoverIndex.value === -1) return;\n\n if (finalOptions[hoverIndex.value].checkAll) {\n onCheckAllChange(!isCheckAll.value);\n return;\n }\n\n const optionValue = finalOptions[hoverIndex.value]?.value;\n\n if (!optionValue) return;\n const newValue = getNewMultipleValue(innerValue.value, optionValue);\n\n if (max > 0 && newValue.value.length > max) return; // 如果已选达到最大值 则不处理\n const selectedOptions = getSelectedOptions(newValue.value);\n setInnerValue(newValue.value, {\n option: selectedOptions.find((v) => v.value == optionValue),\n selectedOptions,\n trigger: newValue.isCheck ? 'check' : 'uncheck',\n e,\n });\n filteredOptions.value = [];\n }\n break;\n case 'Escape':\n setInnerPopupVisible(false, { e });\n break;\n }\n };\n\n watch(innerPopupVisible, (value) => {\n if (value) {\n // 展开重新恢复初始值\n hoverIndex.value = -1;\n virtualFilteredOptions.value = [];\n filteredOptions.value = [];\n }\n });\n\n // 处理键盘操作滚动 超出视图时继续自动滚动到键盘所在元素\n watch(hoverIndex, (index) => {\n const optionHeight = selectPanelRef.value?.innerRef?.querySelector(\n `.${classPrefix.value}-select-option`,\n )?.clientHeight;\n\n const scrollHeight = optionHeight * index;\n\n popupContentRef.value.scrollTo({\n top: scrollHeight,\n behavior: 'smooth',\n });\n });\n\n return {\n hoverIndex,\n handleKeyDown,\n virtualFilteredOptions,\n filteredOptions,\n };\n}\n","import _Select from './select';\nimport _Option from './option';\nimport _OptionGroup from './option-group';\nimport { withInstall } from '@tdesign/shared-utils';\nimport { TdSelectProps, TdOptionProps, TdOptionGroupProps, SelectOption } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type SelectProps = TdSelectProps;\nexport type OptionProps = TdOptionProps;\nexport type OptionGroupProps = TdOptionGroupProps;\n\nexport const Select = withInstall(_Select);\nexport const Option = withInstall(_Option);\nexport const OptionGroup = withInstall(_OptionGroup);\n\nexport default Select;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdInputAdornmentProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 后缀装饰 */\n append: {\n type: [String, Function] as PropType,\n },\n /** 前缀装饰 */\n prepend: {\n type: [String, Function] as PropType,\n },\n};\n","import { defineComponent, h, VNodeChild } from 'vue';\nimport { isString, isNumber, isFunction } from 'lodash-es';\n\nimport { useTNodeJSX, usePrefixClass } from '@tdesign/shared-hooks';\n\nimport props from './props';\n\nexport default defineComponent({\n name: 'TInputAdornment',\n props,\n setup(props, { slots }) {\n const COMPONENT_NAME = usePrefixClass('input-adornment');\n const renderTNodeJSX = useTNodeJSX();\n\n const renderAddon = (h: any, type: string, addon: string | Function | VNodeChild | undefined): VNodeChild => {\n let addonNode: VNodeChild;\n const isContentNode = isString(addon) || isNumber(addon);\n if (!slots[type] && isString(addon) && !addon) return null;\n if (slots[type]) {\n if (slots[type](null).length === 1 && typeof slots[type](null)[0].children === 'string') {\n addonNode = {slots[type](null)};\n } else {\n addonNode = slots[type](null);\n }\n } else if (isFunction(addon)) {\n addonNode = addon(h);\n } else {\n addonNode = isContentNode ? (\n {addon}\n ) : (\n (addon as VNodeChild)\n );\n }\n return addonNode ? {addonNode} : addonNode;\n };\n return () => {\n const prepend = renderAddon(h, 'prepend', props.prepend);\n const append = renderAddon(h, 'append', props.append);\n const defaultSlot: VNodeChild[] = renderTNodeJSX('default') || [null];\n const className = [\n COMPONENT_NAME.value,\n {\n [`${COMPONENT_NAME.value}--prepend`]: prepend,\n [`${COMPONENT_NAME.value}--append`]: append,\n },\n ];\n\n if (!prepend && !append) {\n return defaultSlot[0];\n }\n\n return (\n
    \n {prepend}\n {defaultSlot[0]}\n {append}\n
    \n );\n };\n },\n});\n","import _InputAdornment from './input-adornment';\nimport { withInstall } from '@tdesign/shared-utils';\nimport { TdInputAdornmentProps } from './type';\n\nimport './style';\n\nexport * from './type';\n\nexport type InputAdornmentProps = TdInputAdornmentProps;\nexport const InputAdornment = withInstall(_InputAdornment);\n\nexport default InputAdornment;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdPaginationProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 当前页 */\n current: {\n type: Number,\n default: undefined,\n },\n modelValue: {\n type: Number,\n default: undefined,\n },\n /** 当前页,非受控属性 */\n defaultCurrent: {\n type: Number,\n default: 1,\n },\n /** 是否禁用分页组件 */\n disabled: Boolean,\n /** 折叠时最多显示页码按钮数 */\n foldedMaxPageBtn: {\n type: Number,\n default: 5,\n },\n /** 最多显示页码按钮数 */\n maxPageBtn: {\n type: Number,\n default: 10,\n },\n /** 页码数量超出时,前后省略模式, `mid`表示中间省略, `both-ends` 表示两端省略 */\n pageEllipsisMode: {\n type: String as PropType,\n default: 'mid' as TdPaginationProps['pageEllipsisMode'],\n validator(val: TdPaginationProps['pageEllipsisMode']): boolean {\n if (!val) return true;\n return ['mid', 'both-ends'].includes(val);\n },\n },\n /** 每一页的数据量 */\n pageSize: {\n type: Number,\n default: undefined,\n },\n /** 每一页的数据量,非受控属性 */\n defaultPageSize: {\n type: Number,\n default: 10,\n },\n /** 分页大小控制器,值为 [] 则不显示 */\n pageSizeOptions: {\n type: Array as PropType,\n default: (): TdPaginationProps['pageSizeOptions'] => [5, 10, 20, 50],\n },\n /** 透传全部属性到 Select 组件,也可使用 `selectProps.popupProps` 透传全部 Popup 组件 */\n selectProps: {\n type: Object as PropType,\n },\n /** 是否显示跳转首页尾页页码控制器 */\n showFirstAndLastPageBtn: Boolean,\n /** 是否显示跳转页码控制器 */\n showJumper: Boolean,\n /** 是否显示页码控制器 */\n showPageNumber: {\n type: Boolean,\n default: true,\n },\n /** 是否显示分页数量控制器 */\n showPageSize: {\n type: Boolean,\n default: true,\n },\n /** 是否显示跳转前后页页码控制器 */\n showPreviousAndNextBtn: {\n type: Boolean,\n default: true,\n },\n /** 分页组件尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdPaginationProps['size'],\n validator(val: TdPaginationProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium'].includes(val);\n },\n },\n /** 分页组件风格 */\n theme: {\n type: String as PropType,\n default: 'default' as TdPaginationProps['theme'],\n validator(val: TdPaginationProps['theme']): boolean {\n if (!val) return true;\n return ['default', 'simple'].includes(val);\n },\n },\n /** 数据总条数 */\n total: {\n type: Number,\n default: 0,\n },\n /** 用于自定义总条数呈现内容。默认显示总条数,值为 false 则不显示 */\n totalContent: {\n type: [Boolean, Function] as PropType,\n default: true,\n },\n /** 当前页或分页大小发生变化时触发 */\n onChange: Function as PropType,\n /** 当前页发生变化时触发 */\n onCurrentChange: Function as PropType,\n /** 分页大小发生变化时触发 */\n onPageSizeChange: Function as PropType,\n};\n","import { defineComponent, computed, ref, watch, toRefs, getCurrentInstance } from 'vue';\nimport { isNaN, isObject } from 'lodash-es';\nimport {\n PageFirstIcon as TdPageFirstIcon,\n PageLastIcon as TdPageLastIcon,\n ChevronLeftIcon as TdChevronLeftIcon,\n ChevronRightIcon as TdChevronRightIcon,\n ChevronLeftDoubleIcon as TdChevronLeftDoubleIcon,\n ChevronRightDoubleIcon as TdChevronRightDoubleIcon,\n EllipsisIcon as TdEllipsisIcon,\n} from 'tdesign-icons-vue-next';\nimport {\n useConfig,\n useVModel,\n useTNodeJSX,\n useGlobalIcon,\n usePrefixClass,\n useDefaultValue,\n} from '@tdesign/shared-hooks';\n\nimport TInputNumber from '../input-number';\nimport { Select } from '../select';\nimport TInputAdornment from '../input-adornment';\nimport props from './props';\nimport { usePaginationClasses, useMoreAction } from './hooks';\n\nimport type { PageInfo, TdPaginationProps } from '../pagination/type';\n\nconst min = 1;\n\ntype PageChangeType = 'prevPage' | 'nextPage' | 'prevMorePage' | 'nextMorePage';\n\nexport default defineComponent({\n name: 'TPagination',\n props,\n\n setup(props: TdPaginationProps) {\n const { emit } = getCurrentInstance();\n\n const { modelValue, pageSize, current } = toRefs(props);\n const renderTNodeJSX = useTNodeJSX();\n const [innerCurrent, setInnerCurrent] = useVModel(\n current,\n modelValue,\n props.defaultCurrent,\n props.onCurrentChange,\n 'current',\n );\n\n const [innerPageSize, setInnerPageSize] = useDefaultValue(\n pageSize,\n props.defaultPageSize,\n props.onPageSizeChange,\n 'pageSize',\n );\n\n const { t, globalConfig } = useConfig('pagination');\n const COMPONENT_NAME = usePrefixClass('pagination');\n const {\n PageFirstIcon,\n PageLastIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n ChevronLeftDoubleIcon,\n ChevronRightDoubleIcon,\n EllipsisIcon,\n } = useGlobalIcon({\n PageFirstIcon: TdPageFirstIcon,\n PageLastIcon: TdPageLastIcon,\n ChevronLeftIcon: TdChevronLeftIcon,\n ChevronRightIcon: TdChevronRightIcon,\n ChevronLeftDoubleIcon: TdChevronLeftDoubleIcon,\n ChevronRightDoubleIcon: TdChevronRightDoubleIcon,\n EllipsisIcon: TdEllipsisIcon,\n });\n\n const { pageCount, ...CLASS_MAP } = usePaginationClasses(props, innerCurrent, innerPageSize, COMPONENT_NAME);\n\n const { prevMore, isPrevMoreShow, curPageLeftCount, nextMore, isNextMoreShow, curPageRightCount } = useMoreAction(\n props,\n pageCount,\n innerCurrent,\n );\n\n const jumpIndex = ref(innerCurrent.value);\n\n const isFolded = computed(() => pageCount.value > props.maxPageBtn);\n\n const sizeOptions = computed>(() => {\n const pageSizeOptions = props.pageSizeOptions as TdPaginationProps['pageSizeOptions'];\n const options = pageSizeOptions.map((option) =>\n isObject(option)\n ? option\n : {\n label: t(globalConfig.value.itemsPerPage, { size: option }),\n value: Number(option),\n },\n );\n return options.sort((a, b) => a.value - b.value);\n });\n\n const isMidEllipsis = computed(() => {\n return props.pageEllipsisMode === 'mid';\n });\n\n const pages = computed(() => {\n const array = [];\n let start;\n let end;\n\n if (isFolded.value) {\n if (isPrevMoreShow.value && isNextMoreShow.value) {\n start = innerCurrent.value - curPageLeftCount.value;\n end = innerCurrent.value + curPageRightCount.value;\n } else {\n const foldedStart = isMidEllipsis.value ? 2 : 1;\n const foldedEnd = isMidEllipsis.value ? pageCount.value - 1 : pageCount.value;\n if (isPrevMoreShow.value) {\n // 保证前面还有一页展示\n start = Math.min(innerCurrent.value - 1, pageCount.value - props.foldedMaxPageBtn + 1);\n } else {\n start = foldedStart;\n }\n\n if (isNextMoreShow.value) {\n // 保证后面还有一页展示\n end = Math.max(innerCurrent.value + 1, props.foldedMaxPageBtn);\n } else {\n end = foldedEnd;\n }\n }\n } else {\n start = 1;\n end = pageCount.value;\n }\n\n for (let i = start; i <= end; i++) {\n array.push(i);\n }\n return array;\n });\n\n // 如果页面总数发生变化并当前页数大于总页数则重置为1\n watch(\n () => pageCount.value,\n () => {\n if (innerCurrent.value > pageCount.value) innerCurrent.value = 1;\n },\n );\n watch(\n () => innerCurrent.value,\n (val) => (jumpIndex.value = val),\n );\n\n const toPage: (pageIndex: number, pageInfo?: PageInfo) => void = (pageIndex, pageInfo) => {\n if (props.disabled) {\n return;\n }\n let current = pageIndex;\n if (pageIndex < min) {\n current = min;\n } else if (pageIndex > pageCount.value) {\n current = pageCount.value;\n }\n if (innerCurrent.value !== current) {\n const prev = innerCurrent.value;\n pageInfo = pageInfo || {\n current,\n previous: prev,\n pageSize: innerPageSize.value,\n };\n if (pageInfo) {\n setInnerCurrent(current, pageInfo);\n props.onChange?.(pageInfo);\n } else {\n // 非主动更改时应仅更新modelValue不触发onCurrentChange事件\n emit('update:modelValue', current);\n }\n }\n };\n\n const handlePageChange = (type: PageChangeType) => {\n const pageChangeMap = {\n prevPage: () => toPage(innerCurrent.value - 1),\n nextPage: () => toPage(innerCurrent.value + 1),\n prevMorePage: () => toPage(Math.max(2, innerCurrent.value - props.foldedMaxPageBtn)),\n nextMorePage: () => toPage(Math.min(innerCurrent.value + props.foldedMaxPageBtn, pageCount.value - 1)),\n };\n pageChangeMap[type]();\n };\n\n const onSelectorChange: (e: string) => void = (e) => {\n if (props.disabled) {\n return;\n }\n const pageSize: number = parseInt(e, 10);\n let pageCount = 1;\n if (pageSize > 0) {\n pageCount = Math.max(Math.ceil(props.total / pageSize), 1);\n }\n\n let isIndexChange = false;\n\n if (innerCurrent.value > pageCount) {\n isIndexChange = true;\n }\n\n /**\n * 分页大小变化事件\n * @param {Number} pageSize 分页大小\n * @param {Number} index 当前页\n */\n const pageInfo = {\n current: isIndexChange ? pageCount : innerCurrent.value,\n previous: innerCurrent.value,\n pageSize,\n };\n setInnerPageSize(pageSize, pageInfo);\n if (isIndexChange) {\n toPage(pageCount, pageInfo);\n } else {\n props.onChange?.(pageInfo);\n }\n };\n\n const onJumperChange = (val: number) => {\n const currentIndex = Math.trunc(+val);\n if (isNaN(currentIndex)) return;\n jumpIndex.value = currentIndex;\n toPage(currentIndex);\n };\n\n return () => {\n const { total, pageSizeOptions, size, disabled, showPageSize } = props;\n if (pageCount.value < 1) return null;\n\n const Jumper = (\n
    \n {t(globalConfig.value.jumpTo)}\n \n \n \n
    \n );\n\n return (\n
    \n {/* 数据统计区 */}\n {renderTNodeJSX(\n 'totalContent',\n
    {t(globalConfig.value.total, total)}
    ,\n )}\n {/* 分页器 */}\n {showPageSize && pageSizeOptions.length > 0 && (\n \n )}\n {/* 首页按钮 */}\n {props.showFirstAndLastPageBtn ? (\n
    toPage(1)}>\n \n
    \n ) : null}\n {/* 向前按钮 */}\n {props.showPreviousAndNextBtn ? (\n
    handlePageChange('prevPage')}>\n \n
    \n ) : null}\n {/* 常规版 */}\n {props.showPageNumber && props.theme === 'default' ? (\n
      \n {isFolded.value && isMidEllipsis.value && (\n
    • toPage(min)}>\n {min}\n
    • \n )}\n {isFolded.value && isPrevMoreShow.value && isMidEllipsis.value ? (\n handlePageChange('prevMorePage')}\n onMouseover={() => (prevMore.value = true)}\n onMouseout={() => (prevMore.value = false)}\n >\n {prevMore.value ? : }\n \n ) : null}\n {pages.value.map((i) => (\n
    • toPage(i)}>\n {i}\n
    • \n ))}\n {isFolded.value && isNextMoreShow.value && isMidEllipsis.value ? (\n handlePageChange('nextMorePage')}\n onMouseover={() => (nextMore.value = true)}\n onMouseout={() => (nextMore.value = false)}\n >\n {nextMore.value ? : }\n \n ) : null}\n {isFolded.value && isMidEllipsis.value ? (\n
    • toPage(pageCount.value)}>\n {pageCount.value}\n
    • \n ) : null}\n
    \n ) : null}\n {/* 极简版 */}\n {props.theme === 'simple' && Jumper}\n {/* 向后按钮 */}\n {props.showPreviousAndNextBtn ? (\n
    handlePageChange('nextPage')}>\n \n
    \n ) : null}\n {/* 尾页按钮 */}\n {props.showFirstAndLastPageBtn ? (\n
    toPage(pageCount.value)}>\n \n
    \n ) : null}\n {/* 快速跳转 */}\n {props.theme === 'default' && props.showJumper && Jumper}\n
    \n );\n };\n },\n});\n","import { computed, Ref } from 'vue';\nimport { getIEVersion } from '@tdesign/common-js/utils/helper';\nimport { useCommonClassName } from '@tdesign/shared-hooks';\nimport { TdPaginationProps } from '../type';\n\nexport function usePaginationClasses(\n props: TdPaginationProps,\n innerCurrent: Ref,\n innerPageSize: Ref,\n name: Ref,\n) {\n const { SIZE, STATUS } = useCommonClassName();\n\n const pageCount = computed(() => {\n const c: number = Math.ceil(props.total / innerPageSize.value);\n return c > 0 ? c : 1;\n });\n\n const paginationClass = computed(() => [\n `${name.value}`,\n SIZE.value[props.size],\n {\n [STATUS.value.disabled]: props.disabled,\n [`${name.value}-ie`]: getIEVersion() < 11,\n },\n props.theme === 'simple' ? `${name.value}--simple` : ``,\n ]);\n\n const totalClass = computed(() => [`${name.value}__total`]);\n\n const sizerClass = computed(() => [`${name.value}__select`]);\n\n const preBtnClass = computed(() => [\n `${name.value}__btn`,\n `${name.value}__btn-prev`,\n {\n [STATUS.value.disabled]: props.disabled || innerCurrent.value === 1,\n },\n ]);\n\n const nextBtnClass = computed(() => [\n `${name.value}__btn`,\n `${name.value}__btn-next`,\n {\n [STATUS.value.disabled]: props.disabled || innerCurrent.value === pageCount.value,\n },\n ]);\n\n const btnWrapClass = computed(() => [`${name.value}__pager`]);\n\n const btnMoreClass = computed(() => [\n `${name.value}__number`,\n `${name.value}__number--more`,\n {\n [STATUS.value.disabled]: props.disabled,\n },\n ]);\n\n const jumperClass = computed(() => [`${name.value}__jump`]);\n\n const jumperInputClass = computed(() => [`${name.value}__input`]);\n\n const simpleClass = computed(() => [`${name.value}__select`]);\n\n const getButtonClass = (index: number) => [\n `${name.value}__number`,\n {\n [STATUS.value.disabled]: props.disabled,\n [STATUS.value.current]: innerCurrent.value === index,\n },\n ];\n\n return {\n pageCount,\n paginationClass,\n totalClass,\n sizerClass,\n preBtnClass,\n nextBtnClass,\n btnWrapClass,\n btnMoreClass,\n jumperClass,\n jumperInputClass,\n simpleClass,\n getButtonClass,\n };\n}\n","import { computed, ref, Ref } from 'vue';\nimport { TdPaginationProps } from '../type';\n\nexport function useMoreAction(props: TdPaginationProps, pageCount: Ref, innerCurrent: Ref) {\n const prevMore = ref(false);\n\n const nextMore = ref(false);\n\n const curPageLeftCount = computed(() => Math.ceil((props.foldedMaxPageBtn - 1) / 2));\n\n const curPageRightCount = computed(() => Math.floor((props.foldedMaxPageBtn - 1) / 2));\n\n const isPrevMoreShow = computed(() => 2 + curPageLeftCount.value < innerCurrent.value);\n\n const isNextMoreShow = computed(() => pageCount.value - 1 - curPageRightCount.value > innerCurrent.value);\n\n return {\n prevMore,\n nextMore,\n curPageLeftCount,\n curPageRightCount,\n isPrevMoreShow,\n isNextMoreShow,\n };\n}\n","import isNumber from './isNumber.js';\n\n/**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\nfunction isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n}\n\nexport default isNaN;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdPaginationMiniProps } from '../pagination/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 按钮禁用配置 */\n disabled: {\n type: [Boolean, Object] as PropType,\n },\n /** 按钮方向 */\n layout: {\n type: String as PropType,\n default: 'horizontal' as TdPaginationMiniProps['layout'],\n validator(val: TdPaginationMiniProps['layout']): boolean {\n if (!val) return true;\n return ['horizontal', 'vertical'].includes(val);\n },\n },\n /** 是否展示当前按钮 */\n showCurrent: {\n type: Boolean,\n default: true,\n },\n /** 按钮尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdPaginationMiniProps['size'],\n validator(val: TdPaginationMiniProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 提示文案配置,值为 `true` 显示默认文案;值为 `false` 不显示提示文案;值类型为对象则单独配置文案内容 */\n tips: {\n type: Object as PropType,\n },\n /** 按钮形式 */\n variant: {\n type: String as PropType,\n default: 'text' as TdPaginationMiniProps['variant'],\n validator(val: TdPaginationMiniProps['variant']): boolean {\n if (!val) return true;\n return ['text', 'outline'].includes(val);\n },\n },\n /** 按钮点击事件回调 */\n onChange: Function as PropType,\n};\n","import { defineComponent, computed } from 'vue';\nimport { isObject } from 'lodash-es';\nimport {\n ChevronLeftIcon as TdChevronLeftIcon,\n RoundIcon as TdRoundIcon,\n ChevronRightIcon as TdChevronRightIcon,\n ChevronUpIcon as TdChevronUpIcon,\n ChevronDownIcon as TdChevronDownIcon,\n} from 'tdesign-icons-vue-next';\n\nimport props from './pagination-mini-props';\nimport { useGlobalIcon, usePrefixClass } from '@tdesign/shared-hooks';\n\nimport TButton from '../button';\nimport TTooltip from '../tooltip';\n\nexport default defineComponent({\n name: 'TPaginationMini',\n props,\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('pagination-mini');\n const { ChevronLeftIcon, RoundIcon, ChevronRightIcon, ChevronUpIcon, ChevronDownIcon } = useGlobalIcon({\n ChevronLeftIcon: TdChevronLeftIcon,\n RoundIcon: TdRoundIcon,\n ChevronRightIcon: TdChevronRightIcon,\n ChevronUpIcon: TdChevronUpIcon,\n ChevronDownIcon: TdChevronDownIcon,\n });\n\n const titleConfig = computed<{\n prev?: string;\n current?: string;\n next?: string;\n }>(() => {\n if (isObject(props.tips)) return props.tips;\n if (props.tips === true) return { prev: '上一页', current: '当前', next: '下一页' };\n return {};\n });\n\n const disabledConfig = computed<{\n prev?: boolean;\n current?: boolean;\n next?: boolean;\n }>(() => {\n if (isObject(props.disabled)) return props.disabled;\n if (props.disabled === true) return { prev: true, current: true, next: true };\n return { prev: false, current: false, next: false };\n });\n\n const renderWithTooltip = (content: string | undefined, node: JSX.Element) => {\n if (!content) return node;\n return (\n \n {node}\n \n );\n };\n\n return () => {\n const jumperClass = [\n COMPONENT_NAME.value,\n {\n [`${COMPONENT_NAME.value}--outline`]: props.variant === 'outline',\n },\n ];\n\n return (\n
    \n {renderWithTooltip(\n titleConfig.value.prev,\n props.onChange?.({ e, trigger: 'prev' })}\n icon={props.layout === 'horizontal' ? () => : () => }\n class={`${COMPONENT_NAME.value}__prev`}\n disabled={disabledConfig.value.prev}\n />,\n )}\n\n {props.showCurrent &&\n renderWithTooltip(\n titleConfig.value.current,\n props.onChange?.({ e, trigger: 'current' })}\n icon={() => }\n class={`${COMPONENT_NAME.value}__current`}\n disabled={disabledConfig.value.current}\n />,\n )}\n\n {renderWithTooltip(\n titleConfig.value.next,\n props.onChange?.({ e, trigger: 'next' })}\n icon={props.layout === 'horizontal' ? () => : () => }\n class={`${COMPONENT_NAME.value}__next`}\n disabled={disabledConfig.value.next}\n />,\n )}\n
    \n );\n };\n },\n});\n","import _Pagination from './pagination';\nimport _PaginationMini from './pagination-mini';\nimport { withInstall } from '@tdesign/shared-utils';\nimport { TdPaginationProps, TdPaginationMiniProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type PaginationProps = TdPaginationProps;\nexport type PaginationMiniProps = TdPaginationMiniProps;\n\nexport const Pagination = withInstall(_Pagination);\nexport const PaginationMini = withInstall(_PaginationMini);\n\nexport default Pagination;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdStepsProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 当前步骤,即整个步骤条进度。默认根据步骤下标判断步骤的完成状态,当前步骤为进行中,当前步骤之前的步骤为已完成,当前步骤之后的步骤为未开始。如果每个步骤没有设置 value,current 值为步骤长度则表示所有步骤已完成。如果每个步骤设置了自定义 value,则 current = 'FINISH' 表示所有状态完成 */\n current: {\n type: [String, Number] as PropType,\n default: undefined as TdStepsProps['current'],\n },\n modelValue: {\n type: [String, Number] as PropType,\n default: undefined as TdStepsProps['current'],\n },\n /** 当前步骤,即整个步骤条进度。默认根据步骤下标判断步骤的完成状态,当前步骤为进行中,当前步骤之前的步骤为已完成,当前步骤之后的步骤为未开始。如果每个步骤没有设置 value,current 值为步骤长度则表示所有步骤已完成。如果每个步骤设置了自定义 value,则 current = 'FINISH' 表示所有状态完成,非受控属性 */\n defaultCurrent: {\n type: [String, Number] as PropType,\n },\n /** 步骤条方向,有两种:横向和纵向 */\n layout: {\n type: String as PropType,\n default: 'horizontal' as TdStepsProps['layout'],\n validator(val: TdStepsProps['layout']): boolean {\n if (!val) return true;\n return ['horizontal', 'vertical'].includes(val);\n },\n },\n /** 步骤条数据列表(作用和 StepItem 效果一样) */\n options: {\n type: Array as PropType,\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 步骤条分割符 */\n separator: {\n type: String as PropType,\n default: 'line' as TdStepsProps['separator'],\n validator(val: TdStepsProps['separator']): boolean {\n if (!val) return true;\n return ['line', 'dashed', 'arrow'].includes(val);\n },\n },\n /** 步骤条顺序 */\n sequence: {\n type: String as PropType,\n default: 'positive' as TdStepsProps['sequence'],\n validator(val: TdStepsProps['sequence']): boolean {\n if (!val) return true;\n return ['positive', 'reverse'].includes(val);\n },\n },\n /** 步骤条风格 */\n theme: {\n type: String as PropType,\n default: 'default' as TdStepsProps['theme'],\n validator(val: TdStepsProps['theme']): boolean {\n if (!val) return true;\n return ['default', 'dot'].includes(val);\n },\n },\n /** 当前步骤发生变化时触发 */\n onChange: Function as PropType,\n};\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdStepItemProps } from '../steps/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 步骤描述 */\n content: {\n type: [String, Function] as PropType,\n default: '' as TdStepItemProps['content'],\n },\n /** 步骤描述,同 content */\n default: {\n type: [String, Function] as PropType,\n },\n /** 显示在步骤描述下方的额外内容,比如:操作项 */\n extra: {\n type: [String, Function] as PropType,\n },\n /** 图标,默认显示内置图标,也可以自定义图标,值为 false 则不显示图标。优先级大于 `status` 定义的图标 */\n icon: {\n type: [Boolean, Function] as PropType,\n default: true as TdStepItemProps['icon'],\n },\n /** 当前步骤的状态:默认状态(未开始)、进行中状态、完成状态、错误状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdStepItemProps['status'],\n validator(val: TdStepItemProps['status']): boolean {\n if (!val) return true;\n return ['default', 'process', 'finish', 'error'].includes(val);\n },\n },\n /** 标题 */\n title: {\n type: [String, Function] as PropType,\n default: '' as TdStepItemProps['title'],\n },\n /** 当前步骤标识 */\n value: {\n type: [String, Number] as PropType,\n },\n};\n","import { computed, defineComponent, h, inject } from 'vue';\nimport { isFunction } from 'lodash-es';\nimport { CheckIcon as TdCheckIcon, CloseIcon as TdCloseIcon } from 'tdesign-icons-vue-next';\n\nimport props from './step-item-props';\nimport { SlotReturnValue } from '../common';\nimport { useConfig, useContent, useTNodeJSX, useGlobalIcon, usePrefixClass } from '@tdesign/shared-hooks';\n\nexport default defineComponent({\n name: 'TStepItem',\n props: { ...props, index: Number },\n setup(props) {\n const stepsState = inject('StepsState', undefined);\n const stepsProps = inject('StepsProps', undefined);\n\n const { globalConfig } = useConfig('steps');\n const { CheckIcon, CloseIcon } = useGlobalIcon({ CheckIcon: TdCheckIcon, CloseIcon: TdCloseIcon });\n const canClick = computed(() => {\n return props.status !== 'process' && !stepsProps?.readonly;\n });\n\n // when props.value is undefined\n const onStepClick = (e: MouseEvent) => {\n if (!canClick.value) return;\n const val = props.value === undefined ? props.index : props.value;\n stepsState.setCurrent(val, stepsState.current, { e });\n };\n\n // class\n const COMPONENT_NAME = usePrefixClass('steps-item');\n const statusClass = computed(() => ({ [`${COMPONENT_NAME.value}--${props.status}`]: props.status }));\n const baseClass = computed(() => [COMPONENT_NAME.value, statusClass.value]);\n const iconClass = computed(() => [`${COMPONENT_NAME.value}__icon`, statusClass.value]);\n\n // render\n const renderTNodeJSX = useTNodeJSX();\n const renderContent = useContent();\n const renderIcon = () => {\n let defaultIcon;\n if (stepsProps.theme === 'default') {\n let icon: SlotReturnValue = '';\n switch (props.status) {\n case 'finish':\n if (isFunction(globalConfig.value.checkIcon)) {\n icon = globalConfig.value.checkIcon(h);\n } else {\n icon = ;\n }\n break;\n case 'error':\n if (isFunction(globalConfig.value.errorIcon)) {\n icon = globalConfig.value.errorIcon(h);\n } else {\n icon = ;\n }\n break;\n default:\n icon = String(props.index + 1);\n break;\n }\n defaultIcon = {icon};\n }\n return renderTNodeJSX('icon', defaultIcon);\n };\n\n return () => (\n
    \n \n
    {renderIcon()}
    \n
    \n
    {renderTNodeJSX('title')}
    \n
    {renderContent('default', 'content')}
    \n
    {renderTNodeJSX('extra')}
    \n
    \n
    \n \n );\n },\n});\n","import { computed, defineComponent, provide, reactive, ref, toRefs, VNode } from 'vue';\nimport { isObject } from 'lodash-es';\nimport props from './props';\nimport stepItemProps from './step-item-props';\nimport { TdStepItemProps } from './type';\nimport StepItem from './step-item';\n\nimport { useVModel, usePrefixClass, useChildComponentSlots } from '@tdesign/shared-hooks';\n\nexport default defineComponent({\n name: 'TSteps',\n props,\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('steps');\n\n const { current, modelValue } = toRefs(props);\n const [innerCurrent, setInnerCurrent] = useVModel(\n current,\n modelValue,\n props.defaultCurrent,\n props.onChange,\n 'current',\n );\n\n provide(\n 'StepsState',\n reactive({\n current: innerCurrent,\n setCurrent: setInnerCurrent,\n }),\n );\n\n provide('StepsProps', props);\n\n const indexMap = ref>({});\n\n const handleStatus = (itemProps: TdStepItemProps, index: number) => {\n if (itemProps.status && itemProps.status !== 'default') return itemProps.status;\n if (innerCurrent.value === 'FINISH') return 'finish';\n // value 不存在时,使用 index 进行区分每一个步骤\n if (itemProps.value === undefined && index < Number(innerCurrent.value)) return 'finish';\n // value 存在,找匹配位置\n if (itemProps.value !== undefined) {\n const matchIndex = Number(indexMap.value[innerCurrent.value]);\n if (matchIndex === undefined) {\n console.warn('TDesign Steps Warn: The current `value` is not exist.');\n return 'default';\n }\n if (props.sequence === 'positive' && index < matchIndex) return 'finish';\n if (props.sequence === 'reverse' && index > matchIndex) return 'finish';\n }\n const key = itemProps.value === undefined ? index : itemProps.value;\n if (key === innerCurrent.value) return 'process';\n return 'default';\n };\n\n const getChildComponentByName = useChildComponentSlots();\n\n const getOptionListBySlots = (nodes: VNode[]) => {\n const arr: Array = [];\n nodes?.forEach((node) => {\n const option = node?.props || {};\n const children = node?.children;\n if (!option && !children) return;\n if (children && isObject(children)) {\n for (const key in children) {\n if (key in stepItemProps && !option[key]) {\n option[key] = (children as Record)[key];\n }\n }\n }\n props.sequence === 'reverse' ? arr.unshift(option as TdStepItemProps) : arr.push(option as TdStepItemProps);\n });\n return arr;\n };\n const getOptions = () => {\n let options: Array;\n if (props.options?.length) {\n options = props.sequence === 'reverse' ? props.options.slice().reverse() : props.options;\n } else {\n const nodes: VNode[] = getChildComponentByName('StepItem') as VNode[];\n options = getOptionListBySlots(nodes);\n }\n\n (options || []).forEach((item, index) => {\n if (item.value !== undefined) indexMap.value[item.value] = index;\n });\n return options;\n };\n\n const renderContent = () => {\n const options = getOptions();\n\n return options.map((item, index) => {\n const stepIndex = props.sequence === 'reverse' ? options.length - index - 1 : index;\n index = item.value !== undefined ? index : stepIndex;\n\n return ;\n });\n };\n\n /** class calculate */\n const handleTheme = () => {\n let { theme } = props;\n const options = getOptions();\n options.forEach((item) => {\n if (item?.icon !== undefined) {\n // icon > theme\n theme = 'default';\n }\n });\n return theme;\n };\n const baseClass = computed(() => {\n return [\n COMPONENT_NAME.value,\n `${COMPONENT_NAME.value}--${props.layout}`,\n `${COMPONENT_NAME.value}--${handleTheme()}-anchor`,\n `${COMPONENT_NAME.value}--${props.sequence}`,\n `${COMPONENT_NAME.value}--${props.separator}-separator`,\n ];\n });\n /** class calculate END */\n\n return () =>
    {renderContent()}
    ;\n },\n});\n","import _Steps from './steps';\nimport _StepItem from './step-item';\nimport { withInstall } from '@tdesign/shared-utils';\nimport { TdStepsProps, TdStepItemProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type StepsProps = TdStepsProps;\nexport type StepItemProps = TdStepItemProps;\n\nexport const Steps = withInstall(_Steps);\nexport const StepItem = withInstall(_StepItem);\nexport default Steps;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdStickyToolProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 列表 */\n list: {\n type: Array as PropType,\n default: (): TdStickyToolProps['list'] => [],\n },\n /** 相对于 placement 的偏移量,示例:[-10, 20] 或 ['10em', '8rem'] */\n offset: {\n type: Array as PropType,\n },\n /** 固定位置 */\n placement: {\n type: String as PropType,\n default: 'right-bottom' as TdStickyToolProps['placement'],\n validator(val: TdStickyToolProps['placement']): boolean {\n if (!val) return true;\n return ['right-top', 'right-center', 'right-bottom', 'left-top', 'left-center', 'left-bottom'].includes(val);\n },\n },\n /** 透传 Popup 组件全部特性,优先级低于 StickyItem.popupProps */\n popupProps: {\n type: Object as PropType,\n },\n /** 侧边栏菜单形状,有 2 种:方形、圆形 */\n shape: {\n type: String as PropType,\n default: 'square' as TdStickyToolProps['shape'],\n validator(val: TdStickyToolProps['shape']): boolean {\n if (!val) return true;\n return ['square', 'round'].includes(val);\n },\n },\n /** 侧边栏菜单类型,有 2 种:常规型和紧凑型 */\n type: {\n type: String as PropType,\n default: 'normal' as TdStickyToolProps['type'],\n validator(val: TdStickyToolProps['type']): boolean {\n if (!val) return true;\n return ['normal', 'compact'].includes(val);\n },\n },\n /** 宽度 */\n width: {\n type: [String, Number] as PropType,\n },\n /** 点击某一项时触发 */\n onClick: Function as PropType,\n /** 悬浮到某一项时触发 */\n onHover: Function as PropType,\n};\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdStickyItemProps } from '../sticky-tool/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 图标 */\n icon: {\n type: Function as PropType,\n },\n /** 名称 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 浮层内容 */\n popup: {\n type: [String, Function] as PropType,\n },\n /** 透传浮层组件全部属性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 触发浮层显示的方式 */\n trigger: {\n type: String as PropType,\n default: 'hover' as TdStickyItemProps['trigger'],\n validator(val: TdStickyItemProps['trigger']): boolean {\n if (!val) return true;\n return ['hover', 'click'].includes(val);\n },\n },\n};\n","import { computed, defineComponent, PropType } from 'vue';\nimport baseProps from './sticky-item-props';\nimport TdStickyToolProps from './props';\nimport { useTNodeJSX, usePrefixClass } from '@tdesign/shared-hooks';\nimport type { Styles } from '../common';\nimport Popup from '../popup';\n\nimport type { TdStickyItemProps } from './type';\nimport type { TdPopupProps } from '../popup/type';\n\nexport default defineComponent({\n name: 'TStickyItem',\n props: {\n ...baseProps,\n type: TdStickyToolProps.type,\n shape: TdStickyToolProps.shape,\n placement: TdStickyToolProps.placement,\n basePopupProps: Object as PropType,\n baseWidth: TdStickyToolProps.width,\n onClick: TdStickyToolProps.onClick,\n onHover: TdStickyToolProps.onHover,\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('sticky-item');\n const baseClass = computed(() => {\n return [\n `${COMPONENT_NAME.value}`,\n `${COMPONENT_NAME.value}--${props.type}`,\n `${COMPONENT_NAME.value}--${props.shape}`,\n ];\n });\n const labelClass = computed(() => {\n return [`${COMPONENT_NAME.value}__label`];\n });\n const popupPlacement = computed(() => {\n return props.placement.indexOf('right') !== -1 ? 'left' : 'right';\n });\n const styles = computed(() => {\n const styles: Styles = {};\n if (props.baseWidth) {\n const selfWidth = props.type === 'normal' ? '56px' : '40px';\n styles.margin = `calc((${props.baseWidth} - ${selfWidth})/2)`;\n }\n return styles;\n });\n const handleClickItem = (e: MouseEvent) => {\n const item: TdStickyItemProps = {};\n // @ts-ignore\n // TODO 这里因为 props 类型的原因,暂不好修改,后续改成 setup 就简单了\n (Object.keys(baseProps) as (keyof typeof baseProps)[]).forEach((i) => (item[i] = props[i] as any));\n props.onClick({ e, item });\n };\n const handleHoverItem = (e: MouseEvent) => {\n const item: TdStickyItemProps = {};\n // @ts-ignore\n // TODO 这里因为 props 类型的原因,暂不好修改,后续改成 setup 就简单了\n (Object.keys(baseProps) as (keyof typeof baseProps)[]).forEach((i) => (item[i] = props[i] as any));\n props.onHover({ e, item });\n };\n const renderTNodeJSX = useTNodeJSX();\n const popupProps = Object.assign({ hideEmptyPopup: true }, props.basePopupProps, props.popupProps);\n return () => (\n renderTNodeJSX('popup')}\n {...popupProps}\n >\n
    \n {renderTNodeJSX('icon')}\n {props.type === 'normal' ?
    {renderTNodeJSX('label')}
    : null}\n
    \n \n );\n },\n});\n","import { computed, defineComponent, VNode } from 'vue';\nimport props from './props';\nimport { isObject } from 'lodash-es';\nimport StickyItem from './sticky-item';\n\nimport { usePrefixClass, useChildComponentSlots } from '@tdesign/shared-hooks';\n\nimport stickyItemProps from './sticky-item-props';\n\nimport type { TdStickyItemProps } from './type';\nimport type { Styles } from '../common';\n\nexport default defineComponent({\n name: 'TStickyTool',\n props,\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('sticky-tool');\n const classes = computed(() => {\n return [COMPONENT_NAME.value, `${COMPONENT_NAME.value}--${props.shape}`];\n });\n const styles = computed(() => {\n const styles = getOffset();\n if (props.width) styles.width = typeof props.width === 'number' ? `${props.width}px` : props.width;\n return styles;\n });\n\n const getChildComponentByName = useChildComponentSlots();\n\n const getList = () => {\n let list: Array;\n if (props.list?.length) {\n list = props.list;\n } else {\n const nodes: VNode[] = getChildComponentByName('StickyItem') as VNode[];\n list = getListBySlots(nodes);\n }\n return list;\n };\n const getListBySlots = (nodes: VNode[]) => {\n const arr: Array = [];\n nodes?.forEach((node) => {\n const list = node?.props || {};\n const children = node?.children;\n if (!list && !children) return;\n if (children && isObject(children)) {\n for (const key in children) {\n if (key in stickyItemProps && !list[key]) {\n list[key] = (children as Record)[key];\n }\n }\n }\n arr.push(list as TdStickyItemProps);\n });\n return arr;\n };\n const getOffset = (): Styles => {\n // 默认偏移位置\n const position: Array = props.offset ? [80, 24] : ['80px', '24px'];\n props.offset?.forEach((item, index) => {\n position[index] = isNaN(Number(item))\n ? `calc( ${position[index]}px + ${item})`\n : `${(position[index] as number) + (item as number)}px`;\n });\n const offsetStyle: Styles = {};\n props.placement.split('-').forEach((item, index) => {\n if (item !== 'center') {\n offsetStyle[item] = position[index];\n } else {\n offsetStyle.top = '50%';\n offsetStyle.transform = 'translate(0, -50%)';\n }\n });\n return offsetStyle;\n };\n const handleClick = (context: { e: MouseEvent; item: TdStickyItemProps }) => {\n props.onClick?.(context);\n };\n const handleHover = (context: { e: MouseEvent; item: TdStickyItemProps }) => {\n props.onHover?.(context);\n };\n const renderContent = () => {\n const list = getList();\n const content = list.map((item, index) => {\n const { type, shape, placement, popupProps } = props;\n const itemProps = {\n ...item,\n type,\n shape,\n placement,\n basePopupProps: popupProps,\n baseWidth: styles.value.width,\n onClick: handleClick,\n onHover: handleHover,\n };\n return ;\n });\n return content;\n };\n return () => (\n
    \n {renderContent()}\n
    \n );\n },\n});\n","import _StickyTool from './sticky-tool';\nimport _StickyItem from './sticky-item';\nimport { withInstall } from '@tdesign/shared-utils';\nimport { TdStickyToolProps, TdStickyItemProps } from './type';\n\nimport './style';\n\nexport * from './type';\n\nexport type StickyToolProps = TdStickyToolProps;\nexport type StickyItemProps = TdStickyItemProps;\n\nexport const StickyItem = withInstall(_StickyItem);\n\nexport const StickyTool = withInstall(_StickyTool);\n\nexport default StickyTool;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdBackTopProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 监听滚动的容器。数据类型为 String 时,会被当作选择器处理,进行节点查询。示例:'body' 或 () => document.body */\n container: {\n type: [String, Function] as PropType,\n default: 'body' as TdBackTopProps['container'],\n },\n /** 回到顶部内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 回到顶部内容,同 `content` */\n default: {\n type: [String, Function] as PropType,\n },\n /** 回到顶部的耗时单位:毫秒 */\n duration: {\n type: Number,\n default: 200,\n },\n /** 回到顶部相对右下角的位置偏移,示例:[10, 20] 或 ['10em', '8rem'] */\n offset: {\n type: Array as PropType,\n default: (): TdBackTopProps['offset'] => ['24px', '80px'],\n },\n /** 回到顶部的形状 */\n shape: {\n type: String as PropType,\n default: 'square' as TdBackTopProps['shape'],\n validator(val: TdBackTopProps['shape']): boolean {\n if (!val) return true;\n return ['circle', 'square'].includes(val);\n },\n },\n /** 组件尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdBackTopProps['size'],\n validator(val: TdBackTopProps['size']): boolean {\n if (!val) return true;\n return ['medium', 'small'].includes(val);\n },\n },\n /** 指定回到该对象。数据类型为 String 时,会被当作选择器处理,进行节点查询。示例:'body' 或 () => document.body */\n target: {\n type: [String, Function] as PropType,\n default: 'body' as TdBackTopProps['target'],\n },\n /** 组件主题风格,浅色、主色、深色 */\n theme: {\n type: String as PropType,\n default: 'light' as TdBackTopProps['theme'],\n validator(val: TdBackTopProps['theme']): boolean {\n if (!val) return true;\n return ['light', 'primary', 'dark'].includes(val);\n },\n },\n /** 滚动高度达到此参数值才出现 */\n visibleHeight: {\n type: [String, Number] as PropType,\n default: '200px' as TdBackTopProps['visibleHeight'],\n },\n /** 点击回到顶部时触发 */\n onClick: Function as PropType,\n};\n","import { computed, defineComponent, onBeforeUnmount, onMounted, ref } from 'vue';\nimport { BacktopIcon as TdBackTopIcon } from 'tdesign-icons-vue-next';\n\nimport { scrollTo } from '@tdesign/shared-utils';\nimport { useConfig, useContent, useChildSlots, useGlobalIcon, usePrefixClass } from '@tdesign/shared-hooks';\n\nimport props from './props';\n\nimport type { TdBackTopProps } from './type';\n\nexport default defineComponent({\n name: 'TBackTop',\n props,\n setup(props: TdBackTopProps) {\n const visible = ref(false);\n const containerRef = ref(null);\n const componentName = usePrefixClass('back-top');\n const { classPrefix } = useConfig('alert');\n\n const { BacktopIcon } = useGlobalIcon({\n BacktopIcon: TdBackTopIcon,\n });\n const renderContent = useContent();\n const getContainer = (container: TdBackTopProps['container']) => {\n if (typeof container === 'string' && typeof document !== undefined) {\n if (container === 'body') {\n return document;\n }\n return document.querySelector(container);\n }\n if (typeof container === 'function') {\n return container();\n }\n return null;\n };\n onMounted(() => {\n containerRef.value = getContainer(props.container) as HTMLElement;\n let visibleHeight: number;\n if (typeof props.visibleHeight === 'string') {\n visibleHeight = Number(props.visibleHeight.replace('px', ''));\n } else {\n visibleHeight = props.visibleHeight;\n }\n if (visibleHeight === 0) {\n visible.value = true;\n return;\n }\n let scrollDOM: HTMLElement;\n if (containerRef.value.scrollTop === undefined) {\n scrollDOM = document.documentElement;\n } else {\n scrollDOM = containerRef.value;\n }\n containerRef.value.onscroll = () => {\n const scrollTop = scrollDOM?.scrollTop;\n if (scrollTop >= visibleHeight) {\n visible.value = true;\n }\n if (scrollTop < visibleHeight && visible.value) {\n visible.value = false;\n }\n };\n });\n\n onBeforeUnmount(() => {\n containerRef.value.onscroll = null;\n });\n\n return () => {\n const { theme, shape, size, target, duration, offset, container } = props;\n const getChild = useChildSlots();\n let children = getChild();\n if (children.length < 1) children = null;\n const cls = computed(() => {\n return {\n [componentName.value]: true,\n [`${componentName.value}--theme-${theme}`]: true,\n [`${componentName.value}--${shape}`]: true,\n [`${componentName.value}--show`]: visible.value,\n [`${classPrefix.value}-size-s`]: size === 'small',\n [`${classPrefix.value}-size-m`]: size === 'medium',\n };\n });\n const defaultContent = (\n <>\n \n TOP\n \n );\n const getBackTo = () => {\n if (target === container) return 0;\n if (target === 'body') return 0;\n if (!target) return 0;\n const targetNode = getContainer(target);\n if (!targetNode) return 0;\n const y = (targetNode as HTMLElement).getBoundingClientRect().y;\n return y;\n };\n const handleClick = (e: MouseEvent) => {\n const y = getBackTo();\n scrollTo(y, { container: containerRef.value, duration });\n props.onClick?.({ e });\n };\n const positionStyle = computed(() => {\n return {\n insetInlineEnd: offset[0],\n insetBlockEnd: offset[1],\n };\n });\n return (\n \n );\n };\n },\n});\n","import { withInstall } from '@tdesign/shared-utils';\nimport _BackTop from './back-top';\nimport { TdBackTopProps } from './type';\n\nimport './style';\n\nexport * from './type';\n\nexport type BackTopProps = TdBackTopProps;\n\nexport const BackTop = withInstall(_BackTop);\n\nexport default BackTop;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdAutoCompleteProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 自动获取焦点 */\n autofocus: Boolean,\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否允许清空 */\n clearable: Boolean,\n /** 触发显示联想词下拉框的元素,同 `triggerElement` */\n default: {\n type: [String, Function] as PropType,\n },\n /** 是否禁用 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 当下拉联想词列表为空时显示的内容 */\n empty: {\n type: [String, Function] as PropType,\n },\n /** 自定义过滤规则,用于对现有数据进行搜索过滤,判断是否过滤某一项数据。参数 `filterWords` 表示搜索词,`option`表示单个选项内容,返回值为 `true` 保留该选项,返回值为 `false` 则隐藏该选项。使用该方法时无需设置 `filterable` */\n filter: {\n type: Function as PropType,\n },\n /** 是否根据输入内容过滤联想词。默认过滤规则不区分大小写,全文本任意位置匹配。如果默认搜索规则不符合业务需求,可以更为使用 `filter` 自定义过滤规则。部分场景下输入关键词和下拉联想词完全不同,此时可以设置为 `false` */\n filterable: {\n type: Boolean,\n default: true,\n },\n /** 是否高亮联想词中和输入值的相同部分 */\n highlightKeyword: {\n type: Boolean,\n default: true,\n },\n /** 透传 Input 组件全部特性 */\n inputProps: {\n type: Object as PropType,\n },\n /** 下拉联想词列表。示例一:`['联想词一', '联想词二']`。示例二:`{ label: () =>
    联想词元素
    , text: '用于搜索的纯联想词' }` */\n options: {\n type: Array as PropType,\n },\n /** 面板内的底部内容 */\n panelBottomContent: {\n type: [String, Function] as PropType,\n },\n /** 面板内的顶部内容 */\n panelTopContent: {\n type: [String, Function] as PropType,\n },\n /** 输入框为空时的占位提示。组件本身默认值为 `undefined`,但全局配置存在默认值,不同语言全局默认值不同 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 透传 Popup 组件全部属性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 是否只读 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 组件尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdAutoCompleteProps['size'],\n validator(val: TdAutoCompleteProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdAutoCompleteProps['status'],\n validator(val: TdAutoCompleteProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 透传 Textarea 组件全部特性 */\n textareaProps: {\n type: Object as PropType,\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 触发显示联想词下拉框的元素,默认为 Input 组件,可以使用 `trigger` 自定义为 Textarea 组件或其他组件 */\n triggerElement: {\n type: [String, Function] as PropType,\n },\n /** 输入框的值,即当前指定的联想词 */\n value: {\n type: String,\n default: undefined,\n },\n modelValue: {\n type: String,\n default: undefined,\n },\n /** 输入框的值,即当前指定的联想词,非受控属性 */\n defaultValue: {\n type: String,\n default: '',\n },\n /** 失去焦点时触发 */\n onBlur: Function as PropType,\n /** 输入框值发生变化时触发 */\n onChange: Function as PropType,\n /** 清空按钮点击时触发 */\n onClear: Function as PropType,\n /** 中文输入结束时触发 */\n onCompositionend: Function as PropType,\n /** 中文输入开始时触发 */\n onCompositionstart: Function as PropType,\n /** 回车键按下时触发 */\n onEnter: Function as PropType,\n /** 获得焦点时触发 */\n onFocus: Function as PropType,\n /** 选中联想词时触发 */\n onSelect: Function as PropType,\n};\n","import { computed, defineComponent } from 'vue';\nimport type { PropType } from 'vue';\nimport { usePrefixClass } from '@tdesign/shared-hooks';\nimport { isString, escapeRegExp } from 'lodash-es';\n\nexport interface HighlightOptionProps {\n content: string;\n keyword: string;\n}\n\nexport default defineComponent({\n name: 'HighlightOption',\n props: {\n /** 联想词 */\n content: String as PropType,\n /** 搜索词 */\n keyword: String as PropType,\n },\n setup(props) {\n const classPrefix = usePrefixClass();\n const words = computed<{ list: string[]; keyword?: string }>(() => {\n const { content, keyword } = props;\n if (!content) return { list: [] };\n if (!isString(content) || !keyword) return { list: [content] };\n const regExp = new RegExp(escapeRegExp(keyword), 'i');\n const splitKeyword = content.match(regExp)?.[0];\n return {\n list: content.split(splitKeyword),\n keyword: splitKeyword,\n };\n });\n\n return () => {\n const { list, keyword } = words.value;\n return (\n
    \n {list.map((item, index) => {\n if (!index) return item;\n return [\n \n {keyword}\n ,\n item,\n ];\n })}\n
    \n );\n };\n },\n});\n","import { ref, computed, defineComponent, PropType, h, watch, onBeforeUnmount } from 'vue';\nimport { isString, isFunction, escapeRegExp } from 'lodash-es';\nimport HighlightOption from './highlight-option';\nimport { useConfig, usePrefixClass, CommonClassNameType } from '@tdesign/shared-hooks';\nimport { AutoCompleteOptionObj, TdAutoCompleteProps } from '../type';\nimport log from '@tdesign/common-js/log/index';\n\nimport { on, off } from '@tdesign/shared-utils';\n\nimport { ARROW_UP_REG, ARROW_DOWN_REG, ENTER_REG } from '@tdesign/common-js/common';\n\nexport default defineComponent({\n name: 'AutoCompleteOptionList',\n props: {\n sizeClassNames: Object as PropType,\n value: String,\n size: String as PropType,\n options: Array as PropType,\n popupVisible: Boolean,\n highlightKeyword: Boolean,\n filterable: Boolean,\n filter: Function as PropType,\n empty: [String, Function] as PropType,\n },\n emits: ['select'],\n setup(props, { emit, slots, expose }) {\n const active = ref('');\n const classPrefix = usePrefixClass();\n const { globalConfig } = useConfig('autoComplete');\n\n const classes = computed(() => `${classPrefix.value}-select__list`);\n const optionClasses = computed(() => [\n `${classPrefix.value}-select-option`,\n {\n [props.sizeClassNames.value[props.size]]: props.size,\n },\n ]);\n\n // 整理数据格式\n const tOptions = computed(() => {\n let options = (props.options || []).map((item) => {\n let option: AutoCompleteOptionObj = {};\n if (isString(item)) {\n option = { text: item, label: item };\n } else {\n if (item.text && !isString(item.text)) {\n log.warn('AutoComplete', '`text` must be a string.');\n }\n if (!item.text) {\n if (isString(item.label)) {\n option = { ...item, text: item.label };\n } else {\n log.warn('AutoComplete', 'one of `label` and `text` must be a existed string.');\n }\n } else {\n option = item;\n }\n }\n return option;\n });\n // 自定义过滤规则\n if (props.filter) {\n options = options.filter((option) => props.filter(props.value, option));\n } else if (props.filterable) {\n // 默认过滤规则\n const regExp = new RegExp(escapeRegExp(props.value), 'i');\n options = options.filter((item) => regExp.test(item.text));\n }\n return options;\n });\n\n const onOptionClick = (e: MouseEvent) => {\n let liNode = e.target as HTMLElement;\n while (liNode && liNode.tagName !== 'LI') {\n liNode = liNode.parentNode as HTMLElement;\n }\n const keyword = liNode.getAttribute('title');\n active.value = keyword;\n emit('select', keyword, { e });\n };\n\n // 键盘事件,上下选择\n const onKeyInnerPress = (e: KeyboardEvent) => {\n if (ARROW_UP_REG.test(e.code) || ARROW_UP_REG.test(e.key)) {\n const index = tOptions.value.findIndex((item) => item.text === active.value);\n const newIndex = index - 1 < 0 ? tOptions.value.length - 1 : index - 1;\n active.value = tOptions.value[newIndex]?.text;\n } else if (ARROW_DOWN_REG.test(e.code) || ARROW_DOWN_REG.test(e.key)) {\n const index = tOptions.value.findIndex((item) => item.text === active.value);\n const newIndex = index + 1 >= tOptions.value.length ? 0 : index + 1;\n active.value = tOptions.value[newIndex]?.text;\n } else if (ENTER_REG.test(e.code) || ENTER_REG.test(e.key)) {\n if (active.value) {\n emit('select', active.value, { e });\n }\n }\n };\n\n const addKeyboardListener = () => {\n on(document, 'keydown', onKeyInnerPress);\n };\n\n const removeKeyboardListener = () => {\n off(document, 'keydown', onKeyInnerPress);\n };\n\n expose({\n addKeyboardListener,\n removeKeyboardListener,\n });\n\n watch(\n () => props.popupVisible,\n () => {\n if (props.popupVisible) {\n addKeyboardListener();\n } else {\n removeKeyboardListener();\n }\n },\n { immediate: true },\n );\n\n watch(\n () => props.value,\n () => {\n if (!props.value) {\n active.value = '';\n }\n },\n { immediate: true },\n );\n\n onBeforeUnmount(() => {\n removeKeyboardListener();\n });\n\n return () => {\n if (!tOptions.value.length) {\n return (\n
    \n {props.empty || globalConfig.value.empty}\n
    \n );\n }\n\n return (\n
      \n {tOptions.value.map((item) => {\n const cls = [...optionClasses.value];\n if (item.text === active.value) {\n cls.push(`${classPrefix.value}-select-option--hover`);\n }\n let labelNode: any = item.label;\n if (isFunction(item.label)) {\n labelNode = item.label(h);\n } else if (slots.option) {\n labelNode = slots.option?.({ option: item });\n }\n const content = labelNode || item.text;\n return (\n
    • \n {isString(content) && props.highlightKeyword ? (\n \n ) : (\n content\n )}\n
    • \n );\n })}\n
    \n );\n };\n },\n});\n","import { computed, ref, defineComponent, toRefs, nextTick } from 'vue';\nimport props from './props';\nimport { TdAutoCompleteProps } from './type';\nimport TInput, { InputProps, StrInputProps } from '../input';\nimport Popup, { PopupProps } from '../popup';\nimport {\n useVModel,\n useContent,\n useTNodeJSX,\n useDisabled,\n useReadonly,\n useCommonClassName,\n} from '@tdesign/shared-hooks';\nimport AutoCompleteOptionList from './components/option-list';\n\nimport { useConfig } from '../config-provider/hooks/useConfig';\nimport { ClassName } from '../common';\n\nexport default defineComponent({\n name: 'TAutoComplete',\n props,\n setup(props: TdAutoCompleteProps, { slots }) {\n const { value, modelValue } = toRefs(props);\n const [tValue, setTValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const renderContent = useContent();\n const renderTNodeJSX = useTNodeJSX();\n const { classPrefix, SIZE } = useCommonClassName();\n const { globalConfig: global } = useConfig('input');\n const isDisabled = useDisabled();\n const isReadonly = useReadonly();\n const popupVisible = ref();\n const optionListRef = ref();\n\n const getOverlayStyle = (trigger: HTMLElement, popupElement: HTMLElement) => {\n const triggerWidth = trigger.getBoundingClientRect().width || trigger.offsetWidth || trigger.clientWidth;\n const popupWidth =\n popupElement.getBoundingClientRect().width || popupElement.offsetWidth || popupElement.clientWidth;\n return {\n width: triggerWidth >= popupWidth ? `${triggerWidth}px` : 'auto',\n ...props.popupProps?.overlayInnerStyle,\n };\n };\n\n const classes = computed(() => [`${classPrefix.value}-auto-complete`]);\n const popupClasses = computed(() => {\n let classes: ClassName = [`${classPrefix.value}-select__dropdown`];\n if (props.popupProps?.overlayClassName) {\n classes = classes.concat(props.popupProps.overlayClassName);\n }\n return classes;\n });\n const popupInnerClasses = computed(() => {\n let classes: ClassName = [`${classPrefix.value}-select__dropdown-inner`];\n if (props.popupProps?.overlayInnerClassName) {\n classes = classes.concat(props.popupProps.overlayInnerClassName);\n }\n return classes;\n });\n\n const onInputChange: StrInputProps['onChange'] = (value, context) => {\n setTValue(value, context);\n };\n\n const innerInputProps = computed(() => {\n const tProps: InputProps = {\n value: tValue.value,\n size: props.size,\n ...props.inputProps,\n };\n return tProps;\n });\n\n const onInnerFocus: StrInputProps['onFocus'] = (value, context) => {\n if (isReadonly.value || isDisabled.value) return;\n popupVisible.value = true;\n props.onFocus?.({ ...context, value });\n nextTick(() => {\n optionListRef.value?.addKeyboardListener();\n });\n };\n\n const onInnerBlur: StrInputProps['onBlur'] = (value, context) => {\n props.onBlur?.({ ...context, value });\n };\n\n const onInnerCompositionend: InputProps['onCompositionend'] = (value, context) => {\n props.onCompositionend?.({ ...context, value });\n };\n\n const onInnerCompositionstart: InputProps['onCompositionstart'] = (value, context) => {\n props.onCompositionstart?.({ ...context, value });\n };\n\n const onInnerEnter: StrInputProps['onEnter'] = (value, context) => {\n props.onEnter?.({ ...context, value });\n };\n\n const onInnerSelect: TdAutoCompleteProps['onSelect'] = (value, context) => {\n if (isReadonly.value || isDisabled.value) return;\n popupVisible.value = false;\n setTValue(value, context);\n props.onSelect?.(value, context);\n };\n\n const onPopupVisibleChange: PopupProps['onVisibleChange'] = (visible, { trigger }) => {\n if (isReadonly.value || isDisabled.value) return;\n if (trigger !== 'trigger-element-click') {\n popupVisible.value = visible;\n }\n };\n\n return () => {\n // 触发元素\n const triggerNode = renderContent('default', 'triggerElement') || (\n \n );\n // 联想词列表\n const listContent = Array.isArray(props.options) && (\n \n );\n\n const topContent = renderTNodeJSX('panelTopContent');\n const bottomContent = renderTNodeJSX('panelBottomContent');\n const panelContent =\n topContent || listContent || bottomContent ? (\n
    \n {topContent}\n {listContent}\n {bottomContent}\n
    \n ) : null;\n const popupProps = {\n ...props.popupProps,\n overlayInnerStyle: getOverlayStyle,\n overlayInnerClassName: popupInnerClasses.value,\n overlayClassName: popupClasses.value,\n };\n return (\n
    \n panelContent : null}\n {...popupProps}\n >\n {triggerNode}\n \n
    \n );\n };\n },\n});\n","import _AutoComplete from './auto-complete';\nimport _HighlightOption from './components/highlight-option';\nimport { withInstall } from '@tdesign/shared-utils';\nimport { AutoCompleteOption, TdAutoCompleteProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type AutoCompleteProps = TdAutoCompleteProps;\n\nexport const AutoComplete = withInstall(_AutoComplete);\nexport const HighlightOption = withInstall(_HighlightOption);\n\nexport default AutoComplete;\n","import { CascaderContextType, TreeNode, TreeNodeValue } from '../types';\n\n/**\n * icon Class\n * @param prefix\n * @param STATUS\n * @param cascaderContext\n * @returns\n */\nexport function getFakeArrowIconClass(\n prefix: string,\n STATUS: Record,\n cascaderContext: CascaderContextType,\n) {\n const { disabled } = cascaderContext;\n return [\n `${prefix}-cascader__icon`,\n {\n [STATUS.disabled]: disabled,\n },\n ];\n}\n\n/**\n * 通用状态\n * @param node\n * @param STATUS\n * @param cascaderContext\n * @returns\n */\nexport function getNodeStatusClass(\n node: TreeNode,\n STATUS: Record,\n cascaderContext: CascaderContextType,\n) {\n const { checkStrictly, multiple, value, max } = cascaderContext;\n const expandedActive =\n (!checkStrictly && node.expanded && (multiple ? !node.isLeaf() : true)) || (checkStrictly && node.expanded);\n\n const isLeaf = node.isLeaf();\n\n const isDisabled = node.disabled || (multiple && (value as TreeNodeValue[]).length >= max && max !== 0);\n\n let isSelected = node.checked || (multiple && !checkStrictly && node.expanded && !isLeaf);\n // 处理单选非叶子节点的选中逻辑\n if (!multiple && !checkStrictly && !isLeaf) {\n isSelected = node.expanded;\n }\n\n return [\n {\n [STATUS.selected]: !isDisabled && isSelected,\n [STATUS.expanded]: !isDisabled && expandedActive,\n [STATUS.disabled]: isDisabled,\n },\n ];\n}\n\n/**\n * 子节点状态\n * @param prefix\n * @param node\n * @param SIZE\n * @param STATUS\n * @param cascaderContext\n * @returns\n */\nexport function getCascaderItemClass(\n prefix: string,\n node: TreeNode,\n SIZE: Record,\n STATUS: Record,\n cascaderContext: CascaderContextType,\n) {\n const { size } = cascaderContext;\n return [\n `${prefix}-cascader__item`,\n ...getNodeStatusClass(node, STATUS, cascaderContext),\n SIZE[size],\n {\n [`${prefix}-cascader__item--with-icon`]: !!node.children,\n [`${prefix}-cascader__item--leaf`]: node.isLeaf(),\n },\n ];\n}\n\n/**\n * 子节点icon状态\n * @param prefix\n * @param node\n * @param STATUS\n * @param cascaderContext\n * @returns\n */\nexport function getCascaderItemIconClass(\n prefix: string,\n node: TreeNode,\n STATUS: Record,\n cascaderContext: CascaderContextType,\n) {\n return [`${prefix}-cascader__item-icon`, `${prefix}-icon`, ...getNodeStatusClass(node, STATUS, cascaderContext)];\n}\n","import { isArray, isEmpty, isNumber, isObject } from 'lodash-es';\n\nimport { TreeNode, CascaderContextType, TdCascaderProps, CascaderValue, TreeNodeValue, TreeOptionData } from '../types';\n\n/**\n * 单选状态下内容\n * @param isHover\n * @param cascaderContext\n * @returns\n */\nexport function getSingleContent(cascaderContext: CascaderContextType): string {\n const { value, multiple, treeStore, showAllLevels } = cascaderContext;\n if (multiple || (value !== 0 && !value)) return '';\n\n if (isArray(value)) return '';\n const node = treeStore && treeStore.getNodes(value as TreeNodeValue | TreeNode);\n if (!(node && node.length)) {\n return value as string;\n }\n const path = node && node[0].getPath();\n if (path && path.length) {\n return showAllLevels ? path.map((node: TreeNode) => node.label).join(' / ') : path.at(-1).label;\n }\n return value as string;\n}\n\n/**\n * 多选状态下选中内容\n * @param cascaderContext\n * @returns\n */\nexport function getMultipleContent(cascaderContext: CascaderContextType) {\n const { value, multiple, treeStore, showAllLevels } = cascaderContext;\n\n if (!multiple) return [];\n if (multiple && !isArray(value)) return [];\n\n const node = treeStore && treeStore.getNodes(value as TreeNodeValue | TreeNode);\n if (!node) return [];\n\n return (value as TreeNodeValue[])\n .map((item: TreeNodeValue) => {\n const node = treeStore.getNodes(item);\n return showAllLevels ? getFullPathLabel(node[0]) : node[0]?.label;\n })\n .filter((item) => !!item);\n}\n\n/**\n * 面板数据计算方法\n * @param treeNodes\n * @returns\n */\nexport function getPanels(treeNodes: CascaderContextType['treeNodes']) {\n const panels: TreeNode[][] = [];\n treeNodes.forEach((node: TreeNode) => {\n if (panels[node.level]) {\n panels[node.level].push(node);\n } else {\n panels[node.level] = [node];\n }\n });\n return panels;\n}\n\n/**\n * 获取node的全部路径\n * @param node\n * @returns\n */\nexport function getFullPathLabel(node: TreeNode, separator = '/') {\n return node\n ?.getPath()\n .map((node: TreeNode) => node.label)\n .join(separator);\n}\n\n/**\n * treeValue计算方法\n * @param value\n * @returns\n */\nexport const getTreeValue = (value: CascaderContextType['value']) => {\n let treeValue: TreeNodeValue[] = [];\n if (isArray(value)) {\n if (value.length > 0 && isObject(value[0])) {\n treeValue = (value as TreeOptionData[]).map((val) => val.value);\n } else if (value.length) {\n treeValue = value as TreeNodeValue[];\n }\n } else if (!isEmptyValues(value)) {\n if (isObject(value)) {\n treeValue = [(value as TreeOptionData).value];\n } else {\n treeValue = [value];\n }\n }\n return treeValue;\n};\n\n/**\n * 按数据类型计算通用数值\n * @param value\n * @param showAllLevels\n * @param multiple\n * @returns\n */\nexport const getCascaderValue = (value: CascaderValue, valueType: TdCascaderProps['valueType'], multiple: boolean) => {\n if (valueType === 'single') {\n return value;\n }\n const val = value as Array;\n if (multiple) {\n return val.map((item: TreeNodeValue[]) => item.at(-1));\n }\n return val.at(-1);\n};\n\n/**\n * 空值校验\n * 补充value为Number时的空值校验逻辑,排除NaN\n * @param value\n * @returns\n */\nexport function isEmptyValues(value: unknown): boolean {\n if (isNumber(value) && !isNaN(value)) return false;\n return isEmpty(value);\n}\n\n/**\n * 初始化数据校验\n * @param value\n * @param cascaderContext\n * @returns boolean\n */\nexport function isValueInvalid(value: CascaderValue, cascaderContext: CascaderContextType) {\n const { multiple, showAllLevels, valueType } = cascaderContext;\n return (multiple && !isArray(value)) || (!multiple && isArray(value) && valueType === 'single' && !showAllLevels);\n}\n","import { isArray, isNumber, cloneDeep, isFunction } from 'lodash-es';\n\nimport type { TreeNode, CascaderContextType, TdCascaderProps, TreeNodeValue, TreeNodeModel } from '../types';\nimport { getFullPathLabel, getTreeValue, isEmptyValues } from './helper';\n\n/**\n * 点击item的副作用\n * @param propsTrigger\n * @param trigger\n * @param node\n * @param cascaderContext\n */\nexport function expendClickEffect(\n propsTrigger: TdCascaderProps['trigger'],\n trigger: TdCascaderProps['trigger'],\n node: TreeNode,\n cascaderContext: CascaderContextType,\n) {\n const { checkStrictly, multiple, treeStore, setVisible, setValue, setTreeNodes, setExpend, value, max, valueType } =\n cascaderContext;\n\n const isDisabled = node.disabled || (multiple && (value as TreeNodeValue[]).length >= max && max !== 0);\n\n if (isDisabled) return;\n // 点击展开节点,设置展开状态\n if (propsTrigger === trigger) {\n const expanded = node.setExpanded(true);\n treeStore.refreshNodes();\n 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 { useRipple, useGlobalIcon, usePrefixClass, useCommonClassName } from '@tdesign/shared-hooks';\n\nconst props = {\n node: {\n type: Object as PropType,\n default() {\n return {};\n },\n },\n optionChild: {\n type: [Object, Array] as PropType,\n },\n cascaderContext: {\n type: Object as PropType,\n },\n onChange: Function as PropType<() => void>,\n onClick: Function as PropType<() => void>,\n onMouseenter: Function as PropType<() => void>,\n};\n\nexport default defineComponent({\n name: 'TCascaderItem',\n props,\n setup(props) {\n const liRef = ref();\n useRipple(liRef);\n\n const COMPONENT_NAME = usePrefixClass('cascader__item');\n const classPrefix = usePrefixClass();\n const { ChevronRightIcon } = useGlobalIcon({ ChevronRightIcon: TdChevronRightIcon });\n const { STATUS, SIZE } = useCommonClassName();\n\n const itemClass = computed(() => {\n return getCascaderItemClass(classPrefix.value, props.node, SIZE.value, STATUS.value, props.cascaderContext);\n });\n\n const iconClass = computed(() => {\n return getCascaderItemIconClass(classPrefix.value, props.node, STATUS.value, props.cascaderContext);\n });\n\n function RenderLabelInner(node: TreeNode, cascaderContext: CascaderContextType) {\n const { inputVal } = cascaderContext;\n const labelText = inputVal ? getFullPathLabel(node) : node.label;\n if (inputVal) {\n const texts = labelText.split(inputVal as string);\n const doms = [];\n for (let index = 0; index < texts.length; index++) {\n doms.push({texts[index]});\n if (index === texts.length - 1) break;\n doms.push(\n \n {inputVal}\n ,\n );\n }\n return doms;\n }\n return labelText;\n }\n\n const renderTitle = (node: TreeNode) => {\n if (typeof node.label === 'string') return node.label;\n\n return null;\n };\n\n function RenderLabelContent(node: TreeNode, cascaderContext: CascaderContextType) {\n const label = RenderLabelInner(node, cascaderContext);\n\n const labelCont = (\n \n {label}\n \n );\n\n return labelCont;\n }\n\n function RenderCheckBox(node: TreeNode, cascaderContext: CascaderContextType) {\n const { checkProps, value, max, inputVal } = cascaderContext;\n const label = RenderLabelInner(node, cascaderContext);\n return (\n = max && max !== 0)}\n // node.value maybe string or number\n name={String(node.value)}\n stopLabelTrigger={!!node.children}\n title={inputVal ? getFullPathLabel(node) : renderTitle(node)}\n onChange={() => {\n props.onChange();\n }}\n {...checkProps}\n >\n {label}\n \n );\n }\n\n return () => {\n const { cascaderContext, node, optionChild } = props;\n const isOptionChildAndMultiple = optionChild && cascaderContext.multiple;\n return (\n (isOptionChildAndMultiple ? props.onChange() : props.onClick())}\n onMouseenter={props.onMouseenter}\n >\n {optionChild ||\n (cascaderContext.multiple\n ? RenderCheckBox(node, cascaderContext)\n : RenderLabelContent(node, cascaderContext))}\n {node.children &&\n (node.loading ? (\n \n ) : (\n \n ))}\n \n );\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdCascaderProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 自动聚焦 */\n autofocus: Boolean,\n /** 无边框模式 */\n borderless: Boolean,\n /** 参考 checkbox 组件 API */\n checkProps: {\n type: Object as PropType,\n },\n /** 父子节点选中状态不再关联,可各自选中或取消 */\n checkStrictly: Boolean,\n /** 是否支持清空选项 */\n clearable: Boolean,\n /** 多选情况下,用于设置折叠项内容,默认为 `+N`。如果需要悬浮就显示其他内容,可以使用 collapsedItems 自定义。`value` 表示当前存在的所有标签,`collapsedSelectedItems` 表示折叠的标签,`count` 表示折叠的数量,`onClose` 表示移除标签的事件回调 */\n collapsedItems: {\n type: Function as PropType,\n },\n /** 是否禁用组件 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 无匹配选项时的内容,默认全局配置为 '暂无数据' */\n empty: {\n type: [String, Function] as PropType,\n },\n /** 自定义过滤方法,用于对现有数据进行搜索过滤,判断是否过滤某一项数据 */\n filter: {\n type: Function as PropType,\n },\n /** 是否可搜索 */\n filterable: Boolean,\n /** 透传 Input 输入框组件的全部属性 */\n inputProps: {\n type: Object as PropType,\n },\n /** 用来定义 value / label / children / disabled 在 `options` 中对应的字段别名 */\n keys: {\n type: Object as PropType,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 延迟加载 children 为 true 的子节点,即使 expandAll 被设置为 true,也同样延迟加载 */\n lazy: {\n type: Boolean,\n default: true,\n },\n /** 加载子树数据的方法(仅当节点 children 为 true 时生效) */\n load: {\n type: Function as PropType,\n },\n /** 是否为加载状态 */\n loading: Boolean,\n /** 远程加载时显示的文字,支持自定义。如加上超链接 */\n loadingText: {\n type: [String, Function] as PropType,\n },\n /** 用于控制多选数量,值为 0 则不限制 */\n max: {\n type: Number,\n default: 0,\n },\n /** 最小折叠数量,用于多选情况下折叠选中项,超出该数值的选中项折叠。值为 0 则表示不折叠 */\n minCollapsedNum: {\n type: Number,\n default: 0,\n },\n /** 是否允许多选 */\n multiple: Boolean,\n /** 自定义单个级联选项 */\n option: {\n type: Function as PropType,\n },\n /** 可选项数据源 */\n options: {\n type: Array as PropType,\n default: (): TdCascaderProps['options'] => [],\n },\n /** 面板内的底部内容 */\n panelBottomContent: {\n type: [String, Function] as PropType,\n },\n /** 面板内的顶部内容 */\n panelTopContent: {\n type: [String, Function] as PropType,\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 参考 popup 组件 API */\n popupProps: {\n type: Object as PropType,\n },\n /** 是否显示下拉框 */\n popupVisible: Boolean,\n /** 组件前置图标 */\n prefixIcon: {\n type: Function as PropType,\n },\n /** 只读状态,值为真会隐藏输入框,且无法打开下拉框 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 多选且可搜索时,是否在选中一个选项后保留当前的搜索关键词 */\n reserveKeyword: Boolean,\n /** 透传 SelectInput 筛选器输入框组件的全部属性 */\n selectInputProps: {\n type: Object as PropType,\n },\n /** 选中值使用完整路径,输入框在单选时也显示完整路径 */\n showAllLevels: {\n type: Boolean,\n default: true,\n },\n /** 组件尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdCascaderProps['size'],\n validator(val: TdCascaderProps['size']): boolean {\n if (!val) return true;\n return ['large', 'medium', 'small'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdCascaderProps['status'],\n validator(val: TdCascaderProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 后置图标前的后置内容 */\n suffix: {\n type: [String, Function] as PropType,\n },\n /** 组件后置图标 */\n suffixIcon: {\n type: Function as PropType,\n },\n /** 透传 TagInput 标签输入框组件的全部属性 */\n tagInputProps: {\n type: Object as PropType,\n },\n /** 透传 Tag 标签组件全部属性 */\n tagProps: {\n type: Object as PropType,\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 展开下一层级的方式 */\n trigger: {\n type: String as PropType,\n default: 'click' as TdCascaderProps['trigger'],\n validator(val: TdCascaderProps['trigger']): boolean {\n if (!val) return true;\n return ['click', 'hover'].includes(val);\n },\n },\n /** 选中项的值 */\n value: {\n type: [String, Number, Array] as PropType,\n default: undefined as TdCascaderProps['value'],\n },\n modelValue: {\n type: [String, Number, Array] as PropType,\n default: undefined as TdCascaderProps['value'],\n },\n /** 选中项的值,非受控属性 */\n defaultValue: {\n type: [String, Number, Array] as PropType,\n default: (): TdCascaderProps['defaultValue'] => [] as TdCascaderProps['defaultValue'],\n },\n /** 自定义选中项呈现的内容 */\n valueDisplay: {\n type: [String, Function] as PropType,\n },\n /** 选中值模式。all 表示父节点和子节点全部会出现在选中值里面;parentFirst 表示当子节点全部选中时,仅父节点在选中值里面;onlyLeaf 表示无论什么情况,选中值仅呈现叶子节点 */\n valueMode: {\n type: String as PropType,\n default: 'onlyLeaf' as TdCascaderProps['valueMode'],\n validator(val: TdCascaderProps['valueMode']): boolean {\n if (!val) return true;\n return ['onlyLeaf', 'parentFirst', 'all'].includes(val);\n },\n },\n /** 用于控制选中值的类型。single 表示输入输出值为 叶子结点值, full 表示输入输出值为全路径 */\n valueType: {\n type: String as PropType,\n default: 'single' as TdCascaderProps['valueType'],\n validator(val: TdCascaderProps['valueType']): boolean {\n if (!val) return true;\n return ['single', 'full'].includes(val);\n },\n },\n /** 当输入框失去焦点时触发 */\n onBlur: Function as PropType,\n /** 选中值发生变化时触发。TreeNodeModel 从树组件中导出。`context.node` 表示触发事件的节点,`context.source` 表示触发事件的来源 */\n onChange: Function as PropType,\n /** 获得焦点时触发 */\n onFocus: Function as PropType,\n /** 下拉框显示或隐藏时触发 */\n onPopupVisibleChange: Function as PropType,\n /** 多选模式下,选中数据被移除时触发 */\n onRemove: Function as PropType,\n};\n","import { defineComponent, PropType, computed, h } from 'vue';\n\nimport Item from './Item';\nimport { TreeNode, CascaderContextType } from '../types';\nimport CascaderProps from '../props';\nimport { useConfig, usePrefixClass, useTNodeDefault } from '@tdesign/shared-hooks';\n\nimport { getDefaultNode } from '@tdesign/shared-utils';\nimport { getPanels, expendClickEffect, valueChangeEffect } from '../utils';\n\nexport default defineComponent({\n name: 'TCascaderSubPanel',\n props: {\n option: CascaderProps.option,\n empty: CascaderProps.empty,\n trigger: CascaderProps.trigger,\n onChange: CascaderProps.onChange,\n loading: CascaderProps.loading,\n loadingText: CascaderProps.loadingText,\n cascaderContext: {\n type: Object as PropType,\n },\n },\n\n setup(props) {\n const renderTNodeJSXDefault = useTNodeDefault();\n const COMPONENT_NAME = usePrefixClass('cascader');\n const { globalConfig } = useConfig('cascader');\n\n const panels = computed(() => getPanels(props.cascaderContext.treeNodes));\n\n const handleExpand = (node: TreeNode, trigger: 'hover' | 'click') => {\n const { trigger: propsTrigger, cascaderContext } = props;\n expendClickEffect(propsTrigger, trigger, node, cascaderContext);\n };\n\n const renderItem = (node: TreeNode, index: number) => {\n const optionChild = node.data.content\n ? getDefaultNode(node.data.content(h))\n : renderTNodeJSXDefault('option', {\n params: { item: node.data, index },\n });\n return (\n {\n handleExpand(node, 'click');\n }}\n onMouseenter={() => {\n handleExpand(node, 'hover');\n }}\n onChange={() => {\n valueChangeEffect(node, props.cascaderContext);\n }}\n />\n );\n };\n\n const renderList = (treeNodes: TreeNode[], isFilter = false, segment = true, index = 1) => (\n \n {treeNodes.map((node: TreeNode) => renderItem(node, index))}\n \n );\n\n const renderPanels = () => {\n const { inputVal, treeNodes } = props.cascaderContext;\n return inputVal\n ? renderList(treeNodes, true)\n : panels.value.map((treeNodes, index: number) =>\n renderList(treeNodes, false, index !== panels.value.length - 1, index),\n );\n };\n\n return () => {\n let content;\n if (props.loading) {\n content = renderTNodeJSXDefault(\n 'loadingText',\n
    {globalConfig.value.loadingText}
    ,\n );\n } else {\n content = panels.value.length\n ? renderPanels()\n : renderTNodeJSXDefault(\n 'empty',\n
    {globalConfig.value.empty}
    ,\n );\n }\n return (\n \n {content}\n \n );\n };\n },\n});\n","import { isUndefined, isBoolean, omit, get } from 'lodash-es';\nimport { TreeNode } from './tree-node';\nimport { OptionData } from '../common';\nimport {\n TreeNodeValue,\n TypeTreeNodeModel,\n TypeTreeNodeData,\n TypeTreeItem,\n} from './types';\nimport log from '../log/log';\n\nexport const nodeKey = '__tdesign_tree-node__';\n\nexport class TreeNodeModel {\n private [nodeKey]: TreeNode;\n\n constructor(node: TreeNode) {\n this[nodeKey] = node;\n }\n\n public get value() {\n const node = this[nodeKey];\n return node.value;\n }\n\n public get label() {\n const node = this[nodeKey];\n return node.label;\n }\n\n public get data() {\n const node = this[nodeKey];\n return node.data;\n }\n\n public get actived() {\n const node = this[nodeKey];\n return node.actived;\n }\n\n public get expanded() {\n const node = this[nodeKey];\n return node.expanded;\n }\n\n public get checked() {\n const node = this[nodeKey];\n return node.checked;\n }\n\n public get indeterminate() {\n const node = this[nodeKey];\n return node.indeterminate;\n }\n\n public get loading() {\n const node = this[nodeKey];\n return node.loading;\n }\n\n public get disabled() {\n const node = this[nodeKey];\n return node.isDisabled();\n }\n\n /**\n * 获取节点所处层级\n * @return number 节点层级序号\n */\n public getLevel() {\n const node = this[nodeKey];\n return node.getLevel();\n }\n\n /**\n * 获取节点在父节点的子节点列表中的位置\n * - 如果没有父节点,则获取节点在根节点列表的位置\n * @return number 节点位置序号\n */\n public getIndex() {\n const node = this[nodeKey];\n return node.getIndex();\n }\n\n /**\n * 是否为兄弟节点中的第一个节点\n * @return boolean 是否为第一个节点\n */\n public isFirst() {\n const node = this[nodeKey];\n return node.isFirst();\n }\n\n /**\n * 是否为兄弟节点中的最后一个节点\n * @return boolean 是否为最后一个节点\n */\n public isLast() {\n const node = this[nodeKey];\n return node.isLast();\n }\n\n /**\n * 是否为叶子节点,叶子节点没有子节点\n * @return boolean 是否为叶子节点\n */\n public isLeaf() {\n const node = this[nodeKey];\n return node.isLeaf();\n }\n\n /**\n * 在当前节点之前插入节点\n * @param {object} newData 要插入的节点或者数据\n * @return void\n */\n public insertBefore(newData: TypeTreeItem) {\n const node = this[nodeKey];\n return node.insertBefore(newData);\n }\n\n /**\n * 在当前节点之后插入节点\n * @param {object} newData 要插入的节点或者数据\n * @return void\n */\n public insertAfter(newData: TypeTreeItem) {\n const node = this[nodeKey];\n return node.insertAfter(newData);\n }\n\n /**\n * 追加节点数据\n * @param {object | object[]} data 节点数据\n * @return void\n */\n public appendData(data: TypeTreeNodeData | TypeTreeNodeData[]) {\n const node = this[nodeKey];\n return node.append(data);\n }\n\n /**\n * 返回路径节点\n * - 路径节点包含自己在内\n * - 节点顺序与父级节点顺序相反,从根到当前\n * @return TreeNodeModel[] 路径节点数组\n */\n public getPath(): TypeTreeNodeModel[] {\n const node = this[nodeKey];\n const nodes = node.getPath();\n return nodes.map((item: TreeNode) => item.getModel());\n }\n\n /**\n * 获取本节点的父节点\n * @return TreeNodeModel 父节点\n */\n public getParent(): TypeTreeNodeModel {\n const node = this[nodeKey];\n return node.parent?.getModel();\n }\n\n /**\n * 获取所有父级节点\n * - 顺序为从当前到根\n * @return TreeNodeModel[] 父级节点数组\n */\n public getParents(): TypeTreeNodeModel[] {\n const node = this[nodeKey];\n const nodes = node.getParents();\n return nodes.map((item: TreeNode) => item.getModel());\n }\n\n /**\n * 获取本节点的根节点\n * @return TreeNodeModel 根节点\n */\n public getRoot(): TypeTreeNodeModel {\n const node = this[nodeKey];\n const root = node.getRoot();\n return root?.getModel();\n }\n\n /**\n * 获取所有兄弟节点,包含自己在内\n * @return TreeNodeModel[] 兄弟节点数组\n */\n public getSiblings(): TypeTreeNodeModel[] {\n const node = this[nodeKey];\n const nodes = node.getSiblings();\n return nodes.map((item: TreeNode) => item.getModel());\n }\n\n /**\n * 获取当前节点的子节点\n * @param {boolean} deep 是否获取所有深层子节点\n * @return TreeNodeModel[] 子节点数组\n */\n public getChildren(deep?: boolean): boolean | TypeTreeNodeModel[] {\n const node = this[nodeKey];\n let childrenModel: boolean | TypeTreeNodeModel[] = false;\n const { children } = node;\n if (Array.isArray(children)) {\n if (children.length > 0) {\n if (deep) {\n const nodes = node.walk();\n nodes.shift();\n childrenModel = nodes.map((item) => item.getModel());\n } else {\n childrenModel = children.map((item) => item.getModel());\n }\n } else {\n childrenModel = false;\n }\n } else if (isBoolean(children)) {\n childrenModel = children;\n }\n return childrenModel;\n }\n\n /**\n * 移除节点\n * - 提供 value 参数,移除本节点子节点中的节点\n * - 不提供 value 参数,移除自己\n * @param {string} value 目标节点值\n * @return void\n */\n public remove(value?: TreeNodeValue) {\n const node = this[nodeKey];\n if (!value) {\n node.remove();\n return;\n }\n\n const { tree } = node;\n const targetNode = tree.getNode(value);\n if (!targetNode) {\n log.warnOnce('Tree', `\\`${value}\\` is not exist`);\n return;\n }\n\n const parents = targetNode.getParents();\n const parentValues = parents.map((pnode) => (pnode.value));\n if (parentValues.indexOf(node.value) < 0) {\n log.warnOnce('Tree', `\\`${value}\\` is not a childNode of current node`);\n return;\n }\n targetNode.remove();\n }\n\n /**\n * 设置本节点携带的元数据\n * @param {object} data 节点数据\n * @return void\n */\n public setData(data: OptionData) {\n const node = this[nodeKey];\n // syncAttrs 列举的属性,key 名称可被 tree.config.keys 定义\n // 因此同步状态时需要读取被定义的 key 名称\n // 详细细节可见 https://github.com/Tencent/tdesign-common/issues/655\n const syncAttrs = [\n 'value',\n 'label',\n 'disabled',\n ];\n const cleanData = omit(data, ['children', ...syncAttrs]) as Partial;\n const { keys } = node.tree.config;\n syncAttrs.forEach((attr: string) => {\n const dataAttrValue = get(data, keys?.[attr as keyof typeof keys] || attr);\n if (!isUndefined(dataAttrValue)) cleanData[attr as keyof typeof keys] = dataAttrValue;\n });\n Object.assign(node.data, cleanData);\n Object.assign(node, cleanData);\n node.update();\n }\n}\n\n// 封装对外暴露的对象\nexport function createNodeModel(node: TreeNode): TypeTreeNodeModel {\n const model = new TreeNodeModel(node);\n return model as TypeTreeNodeModel;\n}\n","import { isNull, isFunction, isNumber, uniqueId, isBoolean, isNil, get } from 'lodash-es';\nimport { TreeStore } from './tree-store';\nimport {\n TreeNodeValue,\n TreeNodeState,\n TypeIdMap,\n TypeTreeItem,\n TypeSettingOptions,\n TypeTreeNodeModel,\n TypeTreeNodeData,\n TypeTreeStoreOptions,\n TypeFnOperation,\n} from './types';\nimport {\n createNodeModel,\n} from './tree-node-model';\nimport log from '../log';\n\nconst { hasOwnProperty } = Object.prototype;\n\n// 这里的属性为 data 中属性可以同步到 treeNode 实例属性的白名单\n// 仅 label 属性和在列表中的属性可以通过 set 方法配置到 treeNode 实例上\nexport const settableStatus: Record = {\n expandMutex: null,\n activable: null,\n checkable: null,\n draggable: null,\n loading: false,\n};\n\nexport const settableProps = Object.keys(settableStatus);\n\nexport const syncableProps = [...settableProps, 'actived', 'expanded', 'checked'];\n\nexport const privateKey = '__tdesign_id__';\n\n// vm 开头为视图属性,不可以外部设置\n// 用于触发视图更新\n// public 方法,在 ui 组件中有可能在使用,会保障其输入输出实现\n// private 方法,可能会改动其输入输出\n\n/**\n * tree 节点数据模型\n * @class TreeNode\n * @param {TreeStore} tree TreeStore 实例\n * @param {object} [data] 节点数据\n * @param {TreeNode} parent 指定的当前 TreeStore 实例中的父节点\n */\nexport class TreeNode {\n // 节点隶属的树实例\n public tree: TreeStore;\n\n // 节点私有 id,不接受外部传入,确保唯一性\n public [privateKey]: string;\n\n // 节点 id ,唯一标志\n public value: string;\n\n // 节点文本\n public label: string;\n\n // 节点数据\n public data: TypeTreeNodeData;\n\n // 父节点\n public parent: TreeNode;\n\n // 子节点列表\n public children: TreeNode[] | boolean;\n\n // 暴露的 treeNodeModel,这个对象的属性和 api 提供给用户使用\n public model: TypeTreeNodeModel;\n\n // 是否为叶节点\n public vmIsLeaf: boolean;\n\n // 是否为子节点中的第一个\n public vmIsFirst: boolean;\n\n // 是否为子节点中的最后\n public vmIsLast: boolean;\n\n // 节点是否是经过过滤剩下的\n public vmIsRest: boolean;\n\n // 节点是否展示为锁定状态\n public vmIsLocked: boolean;\n\n // 节点在视图上实际的展开状态\n public expanded: boolean;\n\n // 展开时是否收起同级节点,对子节点生效\n public expandMutex: null | boolean;\n\n // 节点在视图上实际的激活状态\n public actived: boolean;\n\n // 是否可激活\n public activable: null | boolean;\n\n // 是否可选中\n public checkable: null | boolean;\n\n // 是否可选中的视图呈现\n public vmCheckable: boolean;\n\n // 节点在视图上实际的选中态\n public checked: boolean;\n\n // 节点实际是否为半选状态\n public indeterminate: boolean;\n\n // 节点是否已禁用\n public disabled: null | boolean;\n\n // 节点是否可拖动\n public draggable: null | boolean;\n\n // 节点是否可视\n public visible: boolean;\n\n // 节点在树中的层级\n public level: number;\n\n // 节点是否正在加载数据\n public loading: boolean;\n\n public constructor(\n tree: TreeStore,\n data?: TypeTreeNodeData,\n parent?: TreeNode,\n ) {\n this.data = data;\n this.tree = tree;\n\n const config = tree.config || {};\n const prefix = config.prefix || 't';\n const keys = config.keys || {};\n const propChildren = keys.children || 'children';\n const propLabel = keys.label || 'label';\n const propValue = keys.value || 'value';\n const propDisabled = keys.disabled || 'disabled';\n\n // 节点自身初始化数据\n this.model = null;\n this.children = null;\n this.level = 0;\n\n // vm 开头为视图属性,不可以外部设置\n this.vmCheckable = false;\n this.vmIsLeaf = false;\n this.vmIsFirst = false;\n this.vmIsLast = false;\n this.vmIsRest = false;\n this.vmIsLocked = false;\n\n // 初始化节点基本状态\n this.visible = false;\n this.actived = false;\n this.checked = false;\n this.indeterminate = false;\n this.loading = false;\n this.expanded = config.expandAll;\n\n // 下面几个属性,节点初始化的时候,可以设置与 treeStore.config 不同的值\n // 初始化默认值为 null, 则在方法判断时,默认以 treeStore.config 为准\n // 传递或者设置属性为 boolean 类型的值,则以节点属性值为准\n // 这种处理方式主要是解决 treeStore.setConfig 方法配置全局属性导致的状态切换与保留的问题\n this.activable = null;\n this.checkable = null;\n this.expandMutex = null;\n this.draggable = null;\n\n // 为节点设置唯一 id\n // tree 数据替换时,value 相同有可能导致节点状态渲染冲突\n // 用这个 唯一 id 来解决,用于类似 vue 组件的唯一 key 指定场景\n this[privateKey] = uniqueId(prefix);\n\n // 设置 value\n // 没有 value 的时候,value 默认使用自动生成的 唯一 id\n this.value = isNil(get(data, propValue))\n ? this[privateKey]\n : get(data, propValue);\n const { nodeMap, privateMap } = tree;\n if (nodeMap.get(this.value)) {\n log.warn('Tree', `Dulplicate value: ${this.value}`);\n }\n nodeMap.set(this.value, this);\n privateMap.set(this[privateKey], this);\n\n // 设置标签\n this.label = get(data, propLabel) || '';\n // 设置是否禁用\n this.disabled = get(data, propDisabled) || false;\n\n // 设置子节点\n const children = data[propChildren];\n // 子节点为 true 的状态逻辑需要放到状态计算之前\n // 初始化加载逻辑需要依据这个来进行\n if (children === true) {\n this.children = children;\n }\n\n // 设置父节点\n if (parent && parent instanceof TreeNode) {\n this.parent = parent;\n } else {\n this.parent = null;\n }\n\n // 同步数据属性到节点属性\n // 仅 syncableStatus 列举的属性被同步到 treeNode 实例属性\n syncableProps.forEach((prop) => {\n if (typeof data[prop] !== 'undefined') {\n // @ts-ignore\n // TODO: 待移除\n this[prop] = data[prop];\n }\n });\n\n // 初始化节点激活状态\n this.initActived();\n // 展开状态影响了子节点的显示状态,所以要在子节点插入之前初始化展开状态\n this.initExpanded();\n\n // 这里的子节点加载逻辑不能放到状态初始化之前\n // 因为子节点状态计算依赖父节点初始化状态\n if (Array.isArray(children)) {\n this.append(children);\n } else if (children === true && !config.lazy) {\n this.loadChildren();\n }\n\n // 节点的选中状态同时依赖于子节点状态与父节点状态\n // 因此在子节点插入之后再更新选中状态\n this.initChecked();\n this.updateChecked();\n\n // 标记节点更新\n this.update();\n // 创建节点需要回流操作\n tree.reflow(this);\n }\n\n /* ------ 状态初始化 ------ */\n\n /**\n * 初始化选中态\n * @return void\n */\n private initChecked(): void {\n const { tree, value, parent } = this;\n const { checkedMap } = tree;\n const { checkStrictly } = tree.config;\n if (this.checked) {\n checkedMap.set(value, true);\n }\n // 这里不可以使用 parent.isChecked 方法\n // 因为当前节点创建时尚未插入父节点的 children 数组,可能父节点选中态仅受到之前子节点状态的影响\n // 这会导致父节点状态计算错误,进而引发子节点变更了选中状态\n if (!checkStrictly && parent?.checked) {\n checkedMap.set(value, true);\n }\n }\n\n /**\n * 初始化节点展开状态\n * @return void\n */\n private initExpanded(): void {\n const { tree } = this;\n let { expanded } = this;\n const { config } = tree;\n if (isNumber(config.expandLevel) && this.getLevel() < config.expandLevel) {\n tree.expandedMap.set(this.value, true);\n expanded = true;\n }\n if (this.children === true && config.lazy) {\n expanded = false;\n }\n if (expanded) {\n tree.expandedMap.set(this.value, true);\n } else {\n tree.expandedMap.delete(this.value);\n }\n this.expanded = expanded;\n }\n\n /**\n * 初始化节点激活状态\n * @return void\n */\n private initActived(): void {\n const { tree, actived } = this;\n if (actived && this.isActivable()) {\n tree.activedMap.set(this.value, true);\n }\n }\n\n /* ------ 节点操作 ------ */\n\n /**\n * 追加节点数据\n * @param {object | object[]} data 节点数据\n * @return void\n */\n public append(data: TypeTreeNodeData | TypeTreeNodeData[]): void {\n const list = [];\n if (!Array.isArray(data)) {\n list.push(data);\n } else {\n list.push(...data);\n }\n if (list.length <= 0) {\n return;\n }\n if (!Array.isArray(this.children)) {\n this.children = [];\n }\n const { children, tree } = this;\n list.forEach((item) => {\n let node = null;\n if (item instanceof TreeNode) {\n node = item;\n node.appendTo(this.tree, this);\n } else {\n node = new TreeNode(this.tree, item, this);\n children.push(node);\n }\n });\n tree.reflow(this);\n this.updateRelated();\n }\n\n /**\n * 将当前节点追加到某个父节点的子节点列表中\n * @param {TreeStore} tree 目标树\n * @param {TreeNode} [parent] 目标父节点\n * @param {number} [index] 预期在子节点列表中的位置\n * @return void\n */\n public appendTo(tree: TreeStore, parent?: TreeNode, index?: number): void {\n const parentNode = parent;\n let targetIndex = -1;\n if (isNumber(index)) {\n targetIndex = index;\n }\n\n const targetParents = parentNode?.getParents() || [];\n const includeCurrent = targetParents.some((pnode) => pnode === this);\n if (includeCurrent) {\n throw new Error('无法将父节点插入到子节点');\n }\n\n if (parentNode === this) {\n throw new Error('无法将节点插入到本节点');\n }\n\n if (Array.isArray(parentNode?.children)) {\n const targetPosNode = parentNode?.children[targetIndex];\n if (targetPosNode && targetPosNode === this) {\n // 无需将节点插入到原位置\n return;\n }\n }\n\n // 先要取得 siblings\n // 因为要应对节点在同一个 siblings 中变换位置的情况\n let siblings = null;\n if (parentNode instanceof TreeNode) {\n if (!Array.isArray(parentNode?.children)) {\n parentNode.children = [];\n }\n siblings = parent.children;\n } else {\n siblings = tree.children;\n }\n\n // 上面的逻辑其实已经覆盖了所有业务情况\n // 这里的逻辑报错仅用于极限兜底,防止 treeStore 被误使用\n if (!Array.isArray(siblings)) {\n throw new Error('无法插入到目标位置,可插入的节点列表不存在');\n }\n\n const prevLength = siblings.length;\n const prevIndex = this.getIndex();\n\n this.remove();\n\n if (isNumber(index)) {\n let targetIndex = index;\n if (parentNode === this.parent) {\n // 前置节点被拔出后再插入到同一个 siblings 时,会引起目标 index 的变化\n // 因此要相应的变更插入位置\n // 后置节点被拔出时,目标 index 是不变的\n const curLength = siblings.length;\n if (curLength < prevLength && prevIndex <= targetIndex) {\n targetIndex -= 1;\n }\n }\n siblings.splice(targetIndex, 0, this);\n } else {\n siblings.push(this);\n }\n\n this.parent = parentNode;\n\n // 插入节点应当继承展开状态\n // 但不要继承选中状态和高亮状态\n const nodes = this.walk();\n nodes.forEach((item) => {\n const node = item;\n node.tree = tree;\n tree.nodeMap.set(node.value, node);\n tree.privateMap.set(node[privateKey], node);\n if (node.expanded) {\n tree.expandedMap.set(node.value, true);\n }\n });\n\n const updateNodes = parentNode?.walk() || tree.children.map((item) => item.walk()).flat();\n updateNodes.forEach((node) => {\n node.update();\n node.updateChecked();\n });\n\n tree.reflow();\n }\n\n /**\n * 插入一个节点或者数据到到同级节点的目标位置\n * @param {TreeNode | object} item 要插入的节点或者数据\n * @param {number} [index] 预期在子节点列表中的位置\n * @return void\n */\n private insert(item: TypeTreeItem, index?: number): void {\n const { tree, parent } = this;\n const siblings = this.getSiblings();\n let node = null;\n if (item instanceof TreeNode) {\n node = item;\n node.appendTo(tree, parent, index);\n } else if (item) {\n node = new TreeNode(tree, item, parent);\n if (isNumber(index)) {\n siblings.splice(index, 0, node);\n }\n siblings.forEach((sibling) => {\n sibling.update();\n });\n }\n tree.reflow();\n }\n\n /**\n * 在当前节点之前插入节点\n * @param {TreeNode | object} newData 要插入的节点或者数据\n * @return void\n */\n public insertBefore(newData: TypeTreeItem): void {\n const index = this.getIndex();\n this.insert(newData, index);\n }\n\n /**\n * 在当前节点之后插入节点\n * @param {TreeNode | object} newData 要插入的节点或者数据\n * @return void\n */\n public insertAfter(newData: TypeTreeItem): void {\n const index = this.getIndex();\n this.insert(newData, index + 1);\n }\n\n /**\n * 从当前树中移除本节点\n * @return void\n */\n public remove(): void {\n const { tree } = this;\n\n const nodes = this.walk();\n const siblings = this.getSiblings();\n const index = this.getIndex();\n // 从父节点的子节点列表中移除自己\n // 但不要将自己的父节点移除,避免渲染与判断失败\n if (Array.isArray(siblings)) {\n siblings.splice(index, 1);\n }\n // 清理与树的关系,但不清理自身状态\n nodes.forEach((node) => {\n node.clean();\n });\n // 同级节点的连线状态会受到影响\n siblings.forEach((node) => {\n node.update();\n });\n // 父节点选中态会受到影响\n this.updateParents();\n tree.reflow();\n }\n\n /**\n * 清除本节点与当前树的关系\n * @return void\n */\n private clean(): void {\n const { tree, value } = this;\n tree.activedMap.delete(value);\n tree.checkedMap.delete(value);\n tree.expandedMap.delete(value);\n tree.nodeMap.delete(value);\n tree.filterMap.delete(value);\n tree.privateMap.delete(this[privateKey]);\n }\n\n /**\n * 异步加载子节点\n * @return Promise\n */\n private async loadChildren(): Promise {\n const config: TypeTreeStoreOptions = get(this, 'tree.config') || {};\n if (this.children === true && !this.loading) {\n if (isFunction(config.load)) {\n this.loading = true;\n this.update();\n let list = [];\n list = await config.load(this);\n this.tree.emit('load', {\n node: this,\n data: list,\n });\n this.loading = false;\n if (Array.isArray(list) && list.length > 0) {\n this.append(list);\n } else {\n this.children = false;\n }\n this.update();\n }\n }\n }\n\n /**\n * 设置节点状态\n * - 为节点设置独立于配置的 disabled 状态: set({ disabled: true })\n * - 清除独立于配置的 disabled 状态: set({ disabled: null })\n * @param {object} item 节点状态对象\n * @return void\n */\n public set(item: TreeNodeState): void {\n const { tree } = this;\n const keys = Object.keys(item);\n keys.forEach((key) => {\n // key, disabled 字段可被 tree.config.keys 定义\n if (hasOwnProperty.call(settableStatus, key) || key === 'label') {\n // @ts-ignore\n // TODO: 待移除\n this[key] = item[key];\n }\n if (key === 'disabled') {\n this.setDisabled(item[key]);\n }\n });\n tree.updated(this);\n }\n\n /* ------ 节点获取 ------- */\n\n /**\n * 获取本节点的父节点\n * @return TreeNode 父节点\n */\n public getParent(): TreeNode {\n return this.parent;\n }\n\n /**\n * 获取所有父级节点\n * - 顺序为从当前到根\n * @return TreeNode[] 父级节点数组\n */\n public getParents(): TreeNode[] {\n const parents = [];\n let node = this.parent;\n while (node) {\n parents.push(node);\n node = node.parent;\n }\n return parents;\n }\n\n /**\n * 获取所有兄弟节点,包含自己在内\n * @return TreeNode[] 兄弟节点数组\n */\n public getSiblings(): TreeNode[] {\n const { parent, tree } = this;\n let list: TreeNode[] = [];\n if (parent) {\n if (Array.isArray(parent.children)) {\n list = parent.children;\n }\n } else if (tree) {\n list = tree.children;\n }\n return list;\n }\n\n /**\n * 获取当前节点的子节点\n * @param {boolean} deep 是否获取所有深层子节点\n * @return TreeNodeModel[] 子节点数组\n */\n public getChildren(deep?: boolean): boolean | TypeTreeNodeModel[] {\n let childrenModel: boolean | TypeTreeNodeModel[] = false;\n const { children } = this;\n if (Array.isArray(children)) {\n if (children.length > 0) {\n if (deep) {\n const nodes = this.walk();\n nodes.shift();\n childrenModel = nodes.map((item) => item.getModel());\n } else {\n childrenModel = children.map((item) => item.getModel());\n }\n } else {\n childrenModel = false;\n }\n } else if (isBoolean(children)) {\n childrenModel = children;\n }\n return childrenModel;\n }\n\n /**\n * 获取本节点的根节点\n * @return TreeNode 根节点\n */\n public getRoot(): TreeNode {\n const parents = this.getParents();\n return parents[parents.length - 1] || null;\n }\n\n /**\n * 获取节点在父节点的子节点列表中的位置\n * - 如果没有父节点,则获取节点在根节点列表的位置\n * @return number 节点位置序号\n */\n public getIndex(): number {\n const list = this.getSiblings();\n return list.indexOf(this);\n }\n\n /**\n * 返回路径节点\n * - 路径节点包含自己在内\n * - 节点顺序与父级节点顺序相反,从根到当前\n * @return TreeNode[] 路径节点数组\n */\n public getPath(): TreeNode[] {\n const nodes = this.getParents();\n nodes.unshift(this);\n return nodes.reverse();\n }\n\n /**\n * 获取节点所在层级\n * @return number 层级序号\n */\n public getLevel(): number {\n const parents = this.getParents();\n return parents.length;\n }\n\n /* ------ 节点状态判断 ------ */\n\n /**\n * 判断节点是否被过滤\n * @return boolean 是否被过滤方法命中\n */\n public isRest(): boolean {\n const { config, filterMap, hasFilter } = this.tree;\n\n let rest = false;\n if (hasFilter) {\n // 仅在存在过滤条件时,过滤命中才有效\n const nodeModel = this.getModel();\n rest = config.filter(nodeModel);\n }\n\n if (rest) {\n filterMap.set(this.value, true);\n } else if (filterMap.get(this.value)) {\n filterMap.delete(this.value);\n }\n\n return rest;\n }\n\n /**\n * 判断节点是否可见\n * @return boolean 是否可见\n */\n public isVisible(): boolean {\n const { nodeMap, hasFilter, config } = this.tree;\n const { allowFoldNodeOnFilter } = config;\n\n let visible = true;\n\n if (!nodeMap.get(this.value)) {\n // 节点不在当前树上,所以不可见\n return false;\n }\n\n if (hasFilter && !allowFoldNodeOnFilter) {\n // 如果存在过滤条件\n // 锁定状态和过滤命中状态,直接呈现\n visible = this.vmIsLocked || this.vmIsRest;\n return visible;\n }\n\n // 标志所有父节点展开导致的可见状态\n let expandVisible = true;\n const parents = this.getParents();\n if (parents.length > 0) {\n expandVisible = parents.every((node: TreeNode) => node.expanded);\n }\n\n if (hasFilter) {\n visible = expandVisible && (this.vmIsRest || this.vmIsLocked);\n } else {\n visible = expandVisible;\n }\n return visible;\n }\n\n /**\n * 判断节点为逻辑禁用状态,不包含过滤锁定状态\n * @return boolean 是否被禁用\n */\n public isDisabledState(): boolean {\n const { tree, parent } = this;\n const { config } = tree;\n const { disabled, disableCheck, checkStrictly } = config;\n let state = disabled || false;\n if (this.disabled) {\n // 整个树被禁用,则节点为禁用状态\n state = true;\n }\n if (!checkStrictly && parent?.isDisabledState()) {\n // 如果 checkStrictly 为 false\n // 父节点被禁用,则子节点也为禁用状态\n state = true;\n }\n if (typeof disableCheck === 'boolean') {\n if (disableCheck) {\n state = true;\n }\n } else if (typeof disableCheck === 'function') {\n // disableCheck 视为禁用节点的过滤函数\n if (disableCheck(this.getModel())) {\n state = true;\n }\n }\n return state;\n }\n\n /**\n * 判断节点是否呈现为禁用态,包含过滤锁定状态\n * @return boolean 是否被禁用\n */\n public isDisabled(): boolean {\n const { tree } = this;\n const { hasFilter, config } = tree;\n const { allowFoldNodeOnFilter } = config;\n if (hasFilter && !allowFoldNodeOnFilter && this.vmIsLocked && !this.vmIsRest) {\n // 当前树存在过滤条件,允许节点过滤后被折叠,当前节点为锁定节点,并且不是筛选后剩下的节点\n // 则该节点应当呈现禁用状态\n return true;\n }\n return this.isDisabledState();\n }\n\n /**\n * 判断节点是否能拖拽\n * @return boolean 是否能拖拽\n */\n public isDraggable(): boolean {\n let state = !!get(this, 'tree.config.draggable');\n if (typeof this.draggable === 'boolean') {\n state = this.draggable;\n }\n return state;\n }\n\n /**\n * 判断子节点是否互斥展开\n * @return boolean 子节点是否互斥展开\n */\n public isExpandMutex(): boolean {\n let state = !!get(this, 'tree.config.expandMutex');\n if (typeof this.expandMutex === 'boolean') {\n state = this.expandMutex;\n }\n return state;\n }\n\n /**\n * 节点是否可被激活\n * @return boolean 是否可被激活\n */\n public isActivable() {\n let state = !!get(this, 'tree.config.activable');\n if (typeof this.activable === 'boolean') {\n state = this.activable;\n }\n return state;\n }\n\n /**\n * 节点是否可选\n * @return boolean 是否可选\n */\n public isCheckable() {\n let state = !!get(this, 'tree.config.checkable');\n if (typeof this.checkable === 'boolean') {\n state = this.checkable;\n }\n return state;\n }\n\n /**\n * 节点是否被激活\n * @param {Map} [map] 预设激活节点 map, 用于计算节点在预期环境中的激活状态\n * @return boolean 是否被激活\n */\n public isActived(map?: Map): boolean {\n const { tree, value } = this;\n const activedMap = map || tree.activedMap;\n return !!(tree.nodeMap.get(value) && activedMap.get(value));\n }\n\n /**\n * 节点是否已展开\n * @param {Map} [map] 预设展开节点 map, 用于计算节点在预期环境中的展开状态\n * @return boolean 是否已展开\n */\n public isExpanded(map?: Map): boolean {\n const { tree, value, vmIsLocked } = this;\n const { hasFilter, config } = tree;\n const { allowFoldNodeOnFilter } = config;\n if (hasFilter && !allowFoldNodeOnFilter && vmIsLocked) return true;\n const expandedMap = map || tree.expandedMap;\n return !!(tree.nodeMap.get(value) && expandedMap.get(value));\n }\n\n /**\n * 节点是否被选中\n * @param {Map} [map] 预设选中节点 map, 用于计算节点在预期环境中的选中态\n * @return boolean 是否被选中\n */\n public isChecked(map?: TypeIdMap): boolean {\n const { children, tree, value } = this;\n const { checkStrictly, valueMode } = tree.config;\n // 节点不在当前树上,视为未选中\n if (!tree.nodeMap.get(value)) return false;\n // 节点不可选,视为未选中\n if (!this.isCheckable()) return false;\n const checkedMap = map || tree.checkedMap;\n // 严格模式,则已经可以判定选中状态\n if (checkStrictly) {\n return !!checkedMap.get(value);\n }\n let checked = false;\n // 在 checkedMap 中,则根据 valueMode 的值进行判断\n if (checkedMap.get(value)\n && (\n // 如果 valueMode 为 all、parentFirst,则视为选中\n valueMode !== 'onlyLeaf'\n // 如果 valueMode 为 onlyLeaf 并且当前节点是叶子节点,则视为选中\n || this.isLeaf()\n )\n ) {\n return true;\n }\n // 如果 valueMode 为 onlyLeaf 并且当前节点是父节点,则进一步判断\n if (Array.isArray(children) && children.length > 0) {\n // 子节点全部选中,则当前节点选中\n checked = children.every((node) => {\n const childIsChecked = node.isChecked(checkedMap);\n return childIsChecked;\n });\n } else {\n // 从父节点状态推断子节点状态\n // 这里再调用 isChecked 会导致死循环\n const parents = this.getParents();\n checked = parents.some((node) => checkedMap.get(node.value));\n }\n return checked;\n }\n\n /**\n * 是否为半选状态\n * @return boolean 是否为半选状态\n */\n public isIndeterminate(): boolean {\n const { children, tree, value } = this;\n const { checkStrictly } = tree.config;\n // 节点不在当前树上,视为未选中\n if (!tree.nodeMap.get(value)) return false;\n // 节点不可选,视为未选中\n if (!this.isCheckable()) return false;\n // 严格模式没有半选状态\n if (checkStrictly) return false;\n // 叶节点不存在半选状态\n if (!Array.isArray(children)) return false;\n\n let childChecked: null | boolean = null;\n const indeterminate = children.some((node: TreeNode) => {\n if (node.isIndeterminate()) {\n // 子节点有任意一个半选,则其为半选状态\n return true;\n }\n if (isNull(childChecked)) {\n childChecked = node.isChecked();\n }\n if (childChecked !== node.isChecked()) {\n // 子节点选中状态不一致,则其为半选状态\n return true;\n }\n return false;\n });\n\n return indeterminate;\n }\n\n /**\n * 是否为兄弟节点中的第一个节点\n * @return boolean 是否为第一个节点\n */\n public isFirst(): boolean {\n const siblings = this.getSiblings();\n return siblings[0] === this;\n }\n\n /**\n * 是否为兄弟节点中的最后一个节点\n * @return boolean 是否为最后一个节点\n */\n public isLast(): boolean {\n const siblings = this.getSiblings();\n return siblings[siblings.length - 1] === this;\n }\n\n /**\n * 是否为叶子节点,叶子节点没有子节点\n * @return boolean 是否为叶子节点\n */\n public isLeaf(): boolean {\n let isLeaf = false;\n if (Array.isArray(this.children)) {\n isLeaf = this.children.length <= 0;\n } else {\n isLeaf = !this.children;\n }\n return isLeaf;\n }\n\n /* ------ 节点状态切换 ------ */\n\n /**\n * 锁定节点,解锁节点\n * - 搜索过滤节点时,路径节点需要固定呈现,视其为锁定态\n * @param {boolean} lockState 锁定状态\n * @return void\n */\n public lock(lockState: boolean): void {\n this.vmIsLocked = lockState;\n this.expanded = this.isExpanded();\n this.visible = this.isVisible();\n }\n\n /**\n * 节点展开关闭后需要调用的状态检查函数\n * @return void\n */\n public afterExpanded(): void {\n this.update();\n // 节点展开时检查延迟加载的数据\n if (this.expanded && this.children === true) {\n this.loadChildren();\n }\n this.updateChildren();\n }\n\n /**\n * 切换节点展开状态\n * - 用于受控逻辑处理\n * - 仅返回预期状态值数组,不直接操作状态\n * @return string[] 当前树展开的节点值数组\n */\n public toggleExpanded(opts?: TypeSettingOptions): TreeNodeValue[] {\n return this.setExpanded(!this.isExpanded(), opts);\n }\n\n /**\n * 设置节点展开状态\n * @param {boolean} expanded 节点展开状态\n * @param {object} [opts] 操作选项\n * @param {boolean} [opts.directly=false] 是否直接操作节点状态\n * @return string[] 当前树展开的节点值数组\n */\n public setExpanded(\n expanded: boolean,\n opts?: TypeSettingOptions\n ): TreeNodeValue[] {\n const { tree } = this;\n const { config } = tree;\n const options = {\n directly: false,\n ...opts,\n };\n\n let map = tree.expandedMap;\n if (!options.directly) {\n map = new Map(tree.expandedMap);\n }\n\n // 手风琴效果,先折叠同级节点\n if (expanded) {\n // 列举需要展开的节点\n const shouldExpandNodes = [];\n // 自己一定在展开列表中\n shouldExpandNodes.push(this);\n if (config.expandParent) {\n // expandParent 为 true,则父节点都要展开\n this.getParents().forEach((node) => {\n shouldExpandNodes.push(node);\n });\n }\n shouldExpandNodes.forEach((node) => {\n let isExpandMutex = false;\n // 对于每一个节点,都需要判断是否启用手风琴效果\n if (node.parent) {\n isExpandMutex = node.parent.isExpandMutex();\n } else {\n isExpandMutex = tree?.config?.expandMutex;\n }\n if (isExpandMutex) {\n // 折叠列表中,先移除同级节点\n const siblings = node.getSiblings();\n siblings.forEach((snode) => {\n map.delete(snode.value);\n // 同级节点相关状态更新\n snode.update();\n snode.updateChildren();\n });\n }\n // 最后设置自己的折叠状态\n map.set(node.value, true);\n node.update();\n node.updateChildren();\n });\n } else {\n map.delete(this.value);\n }\n\n if (options.directly) {\n this.afterExpanded();\n }\n\n return tree.getExpanded(map);\n }\n\n /**\n * 切换节点激活状态\n * - 用于受控逻辑处理\n * - 仅返回预期状态值数组,不直接操作状态\n * @return string[] 当前树激活的节点值数组\n */\n public toggleActived(opts?: TypeSettingOptions): TreeNodeValue[] {\n return this.setActived(!this.isActived(), opts);\n }\n\n /**\n * 设置节点激活状态\n * @param {boolean} actived 节点激活状态\n * @param {object} [opts] 操作选项\n * @param {boolean} [opts.directly=false] 是否直接操作节点状态\n * @return string[] 当前树激活的节点值数组\n */\n public setActived(\n actived: boolean,\n opts?: TypeSettingOptions\n ): TreeNodeValue[] {\n const { tree } = this;\n const options = {\n // 为 true, 为 UI 操作,状态变更受 disabled 影响\n // 为 false, 为值操作, 状态变更不受 disabled 影响\n isAction: true,\n // 为 true, 直接操作节点状态\n // 为 false, 返回预期状态\n directly: false,\n ...opts,\n };\n const config = tree.config || {};\n let map = tree.activedMap;\n if (!options.directly) {\n map = new Map(tree.activedMap);\n }\n if (options.isAction && this.isDisabledState()) {\n // 对于 UI 动作,禁用时不可切换激活状态\n return tree.getActived(map);\n }\n if (this.isActivable()) {\n if (actived) {\n const prevKeys = Array.from(map.keys());\n if (!config.activeMultiple) {\n map.clear();\n }\n prevKeys.forEach((value) => {\n const node = tree.getNode(value);\n node?.update();\n });\n map.set(this.value, true);\n } else {\n map.delete(this.value);\n }\n }\n this.update();\n return tree.getActived(map);\n }\n\n /**\n * 是否存在未选中的未禁用子节点\n * @return boolean 未选中的未禁用子节点存在与否\n */\n public hasEnableUnCheckedChild(): boolean {\n const { children } = this;\n if (!Array.isArray(children) || children.length <= 0) {\n // 没有子节点\n return false;\n }\n let state = false;\n children.some((child) => {\n // 不理会禁用节点\n if (child.isDisabledState()) return false;\n // 不理会选中节点\n if (child.isChecked()) return false;\n if (child.isIndeterminate()) {\n // 为半选节点则进行递归检查\n if (child.hasEnableUnCheckedChild()) {\n state = true;\n return true;\n }\n // 都尽可能选中了,则检查之后的节点\n return false;\n }\n // 子节点为未选中状态,且非半选状态\n // 则直接返回 true\n state = true;\n return true;\n });\n return state;\n }\n\n /**\n * 切换节点选中状态\n * - 用于受控逻辑处理\n * - 仅返回预期状态值数组,不直接操作状态\n * @return string[] 当前树选中的节点值数组\n */\n public toggleChecked(opts?: TypeSettingOptions): TreeNodeValue[] {\n if (this.isIndeterminate()) {\n // 当前节点为半选情况下需要判断子节点是否尽可能全部选中\n // 存在可操作的未选中的子节点,则应当尽可能选中子节点\n // 不存在可操作的未选中的子节点,则应取消选中子节点\n const expectState = this.hasEnableUnCheckedChild();\n return this.setChecked(expectState, opts);\n }\n return this.setChecked(!this.isChecked(), opts);\n }\n\n /**\n * 设置节点选中状态\n * - 节点 UI 操作时调用这个方法\n * - 节点设置自身状态时调用这个方法\n * @param {boolean} checked 节点选中状态\n * @param {object} [opts] 操作选项\n * @param {boolean} [opts.isAction=true] 是否为 UI 动作\n * @param {boolean} [opts.directly=false] 是否直接操作节点状态\n * @return string[] 当前树选中的节点值数组\n */\n public setChecked(\n checked: boolean,\n opts?: TypeSettingOptions\n ): TreeNodeValue[] {\n const { tree } = this;\n const config = tree.config || {};\n const options: TypeSettingOptions = {\n // 为 true, 为 UI 操作,状态变更受 disabled 影响\n // 为 false, 为值操作, 状态变更不受 disabled 影响\n isAction: true,\n // 为 true, 直接操作节点状态\n // 为 false, 返回预期状态\n directly: false,\n ...opts,\n };\n let map = tree.checkedMap;\n if (!options.directly) {\n map = new Map(tree.checkedMap);\n }\n if (!this.isCheckable()) {\n // 当前节点非可选节点,则不可设置选中态\n return tree.getChecked(map);\n }\n if (options.isAction && this.isDisabledState()) {\n // 对于 UI 动作,禁用时不可切换选中态\n return tree.getChecked(map);\n }\n\n if (checked === this.isChecked()) {\n const shouldSet = this.isIndeterminate() && !this.hasEnableUnCheckedChild();\n if (!shouldSet) {\n // 值没有变更, 则选中态无变化\n return tree.getChecked(map);\n }\n }\n\n if (checked) {\n map.set(this.value, true);\n } else {\n map.delete(this.value);\n }\n\n if (config.checkStrictly) {\n // 严格模式下,选中态不扩散,仅操作节点自身\n if (options.directly) {\n // 严格模式值更新节点自身\n this.updateChecked();\n }\n } else {\n // 先向下游扩散选中态\n this.spreadChildrenChecked(checked, map, options);\n // 再计算上游选中态\n this.spreadParentChecked(checked, map, options);\n // 状态更新务必放到扩散动作之后\n // 过早的状态更新会导致后续计算出错\n if (options.directly) {\n const relatedNodes = tree.getRelatedNodes([this.value], {\n reverse: true,\n });\n relatedNodes.forEach((node) => {\n node.updateChecked();\n });\n }\n }\n\n return tree.getChecked(map);\n }\n\n // 选中态向上游扩散\n private spreadParentChecked(\n checked: boolean,\n map?: TypeIdMap,\n opts?: TypeSettingOptions\n ) {\n const options: TypeSettingOptions = {\n isAction: true,\n directly: false,\n ...opts,\n };\n\n // 碰到不可选节点,中断扩散\n if (!this.isCheckable()) return;\n\n const { children } = this;\n if (Array.isArray(children) && children.length > 0) {\n // 有子节点,则选中态由子节点选中态集合来决定\n map.delete(this.value);\n }\n\n const { parent } = this;\n if (!parent) return;\n parent.spreadParentChecked(checked, map, options);\n }\n\n // 选中态向下游扩散\n private spreadChildrenChecked(\n checked: boolean,\n map?: TypeIdMap,\n opts?: TypeSettingOptions\n ) {\n const options: TypeSettingOptions = {\n isAction: true,\n directly: false,\n ...opts,\n };\n\n // 碰到不可选节点,中断扩散\n if (!this.isCheckable()) return;\n // 对于 UI 动作操作,节点禁用,中断扩散\n if (options.isAction && this.isDisabledState()) return;\n\n const { children } = this;\n if (!Array.isArray(children)) return;\n if (children.length <= 0) return;\n // 有子节点,则选中态由子节点选中态集合来决定\n map.delete(this.value);\n children.forEach((node) => {\n // 对于 UI 动作,向下扩散时,禁用状态会阻止状态切换\n if (options.isAction && node.isDisabledState()) return;\n if (checked) {\n map.set(node.value, true);\n } else {\n map.delete(node.value);\n }\n node.spreadChildrenChecked(checked, map, options);\n });\n }\n\n /**\n * 设置节点禁用状态\n * @return void\n */\n public setDisabled(disabled: boolean) {\n this.disabled = disabled;\n this.update();\n this.updateChildren();\n }\n\n /* ------ 节点状态更新 ------ */\n\n /**\n * 更新节点当前状态,将节点放到延时更新检查队列\n * @return void\n */\n public update(): void {\n this.level = this.getLevel();\n this.vmIsFirst = this.isFirst();\n this.vmIsLast = this.isLast();\n this.vmIsLeaf = this.isLeaf();\n this.vmCheckable = this.isCheckable();\n this.vmIsRest = this.isRest();\n this.actived = this.isActived();\n this.expanded = this.isExpanded();\n this.visible = this.isVisible();\n this.tree.updated(this);\n }\n\n /**\n * 更新节点选中态\n * @return void\n */\n public updateChecked(): void {\n const { tree, value } = this;\n const { checkedMap } = tree;\n this.checked = this.isChecked();\n this.indeterminate = this.isIndeterminate();\n if (this.checked) {\n checkedMap.set(value, true);\n }\n tree.updated(this);\n }\n\n /**\n * 更新所有子节点状态\n * - 不包含自己\n * @return void\n */\n public updateChildren(): void {\n this.spreadChildren((node) => {\n if (node === this) return;\n node.update();\n node.updateChecked();\n });\n }\n\n /**\n * 更新所有父级节点状态\n * - 不包含自己\n * @return void\n */\n public updateParents(): void {\n this.spreadParents((node: TreeNode) => {\n if (node === this) return;\n node.update();\n node.updateChecked();\n });\n }\n\n /**\n * 更新上下游相关节点状态\n * - 包含自己\n * @return void\n */\n public updateRelated(): void {\n const { tree } = this;\n const relatedNodes = tree.getRelatedNodes([this.value]);\n relatedNodes.forEach((node) => {\n node.update();\n node.updateChecked();\n });\n }\n\n /* ------ 节点遍历 ------ */\n\n /**\n * 获取包含自己在内所有的子节点\n * - 包含自己\n * @return TreeNode[] 遍历结果节点数组\n */\n public walk(): TreeNode[] {\n const list: TreeNode[] = [];\n this.spreadChildren((node: TreeNode) => {\n list.push(node);\n });\n return list;\n }\n\n /**\n * 向下遍历操作\n * - 包含自己\n * @return void\n */\n private spreadChildren(fn: TypeFnOperation) {\n fn(this);\n const { children } = this;\n if (Array.isArray(children) && children.length > 0) {\n children.forEach((node) => {\n node?.spreadChildren(fn);\n });\n }\n }\n\n /**\n * 向上遍历操作\n * - 包含自己\n * @return void\n */\n private spreadParents(fn: TypeFnOperation) {\n fn(this);\n const { parent } = this;\n if (!parent) return;\n parent?.spreadParents(fn);\n }\n\n /**\n * 获取节点封装对象\n * - TreeNode 对象 => TypeTreeNodeModel 对象\n * - TypeTreeNodeModel 用于封装 treeNode 对外暴露的 api\n * - 用户仅可操作经过封装的对象,减少了对外暴露的 api,利于代码重构\n * @return TypeTreeNodeModel 节点封装对象\n */\n public getModel(): TypeTreeNodeModel {\n let { model } = this;\n if (!model) {\n model = createNodeModel(this);\n this.model = model;\n }\n return model;\n }\n}\n\nexport default TreeNode;\n","import { isArray, isFunction, isNumber, isString, difference, camelCase, isPlainObject } from 'lodash-es';\nimport mitt from 'mitt';\n\nimport { TreeNode, privateKey } from './tree-node';\nimport {\n TreeNodeValue,\n TypeIdMap,\n TypeTargetNode,\n TypeTreeNodeData,\n TypeTreeItem,\n TypeTreeStoreOptions,\n TypeTreeFilter,\n TypeTreeFilterOptions,\n TypeRelatedNodesOptions,\n TypeTreeEventState,\n TypeUpdatedMap,\n} from './types';\n\nfunction nextTick(fn: () => void): Promise {\n const pm = Promise.resolve();\n pm.then(fn);\n return pm;\n}\n\n// 构建一个树的数据模型\n// 基本设计思想:写入时更新,减少读取消耗,以减少未来实现虚拟滚动所需的计算量\n// 任何一次数据写入,会触发相应节点的状态更新\n// public 方法,在 ui 组件中有可能在使用,会保障其输入输出实现\n// private 方法,可能会改动其输入输出\n\n/**\n * tree 数据模型\n * @class TreeStore\n * @param {object} options tree 组件选项\n * @param {string} [options.prefix=\"t\"] tree 组件内部属性前缀\n * @param {object} options.keys 取值映射对象,部分属性按照其 key/value 来取 treeNode 属性值\n * @param {string} [options.keys.label=\"label\"] 从 data 种取 label 值时读取的属性名称\n * @param {string} [options.keys.value=\"value\"] 从 data 种取 value 值时读取的属性名称\n * @param {string} [options.keys.children=\"children\"] 从 data 种取 children 值时读取的属性名称\n * @param {boolean} [options.expandAll=false] 初始化节点时,是否自动展开\n * @param {number} [options.expandLevel=0] 初始化节点时,自动展开的级别\n * @param {boolean} [options.expandMutex=false] 展开时,是否使用手风琴模式\n * @param {boolean} [options.expandParent=false] 展开节点时,是否自动展开父节点\n * @param {boolean} [options.activable=false] 是否可以激活节点\n * @param {boolean} [options.activeMultiple=false] 激活节点是否使用多选模式\n * @param {boolean} [options.checkable=false] 节点是否可选中\n * @param {boolean} [options.checkStrictly=false] 节点选中是否使用严格模式\n * @param {boolean} [options.disabled=false] 节点是否禁用\n * @param {boolean|function} [options.disableCheck=false] 节点被禁用的条件\n * @param {boolean} [options.draggable=false] 节点是否可拖动\n * @param {function} [options.load=null] 节点延迟加载函数\n * @param {boolean} [options.lazy=false] 节点是否使用延迟加载模式\n * @param {string} [options.valueMode=\"onlyLeaf\"] 节点选中取值模式\n * @param {function} [options.filter=null] 节点过滤函数\n * @param {function} [options.onLoad=null] 节点延迟加载完成时的回调函数\n * @param {function} [options.onReflow=null] 节点触发回流后的回调\n * @param {function} [options.onUpdate=null] 节点触发更新后的后调\n * @param {boolean} [options.allowFoldNodeOnFilter=false] 过滤时,是否允许折叠节点\n */\nexport class TreeStore {\n // 根节点集合\n public children: TreeNode[];\n\n // 所有节点集合\n public nodes: TreeNode[];\n\n // 所有节点映射\n public nodeMap: Map;\n\n // 节点 私有 ID 映射\n public privateMap: Map;\n\n // 配置选项\n public config: TypeTreeStoreOptions;\n\n // 活动节点集合\n public activedMap: TypeIdMap;\n\n // 数据被更新的节点集合\n public updatedMap: TypeUpdatedMap;\n\n // 选中节点集合\n public checkedMap: TypeIdMap;\n\n // 展开节点的集合\n public expandedMap: TypeIdMap;\n\n // 符合过滤条件的节点的集合\n public filterMap: TypeIdMap;\n\n // 存在过滤器标志\n public hasFilter: boolean;\n\n // 事件派发器\n public emitter: ReturnType;\n\n // 数据更新计时器\n private updateTick: Promise;\n\n // 识别是否需要重排\n private shouldReflow: boolean;\n\n // 树节点过滤器\n private prevFilter: TypeTreeFilter;\n\n public constructor(options: TypeTreeStoreOptions) {\n const config: TypeTreeStoreOptions = {\n prefix: 't',\n keys: {},\n expandAll: false,\n expandLevel: 0,\n expandMutex: false,\n expandParent: false,\n activable: false,\n activeMultiple: false,\n checkable: false,\n checkStrictly: false,\n disabled: false,\n disableCheck: false,\n draggable: false,\n load: null,\n lazy: false,\n valueMode: 'onlyLeaf',\n filter: null,\n // 每次搜索条件变更,重置展开状态,路径节点展开,显示命中节点\n // allowFoldNodeOnFilter 为 true 时,搜索条件不变的情况下,允许折叠路径节点\n // 默认状态,allowFoldNodeOnFilter 为 false 时,路径节点无法折叠\n allowFoldNodeOnFilter: false,\n onLoad: null,\n onReflow: null,\n onUpdate: null,\n ...options,\n };\n this.config = config;\n this.nodes = [];\n this.children = [];\n this.nodeMap = new Map();\n this.privateMap = new Map();\n this.activedMap = new Map();\n this.expandedMap = new Map();\n this.checkedMap = new Map();\n this.updatedMap = new Map();\n this.filterMap = new Map();\n this.prevFilter = null;\n // 这个计时器确保频繁的 update 事件被归纳为1次完整数据更新后的触发\n this.updateTick = null;\n // 在子节点增删改查时,将此属性设置为 true,来触发视图更新\n this.shouldReflow = false;\n // 这个标志会被大量用到\n this.hasFilter = isFunction(config.filter);\n this.emitter = mitt();\n }\n\n /**\n * 配置选项\n * @param {object} options tree 组件选项\n * @return void\n */\n public setConfig(options: TypeTreeStoreOptions) {\n const { config } = this;\n let hasChanged = false;\n (Object.keys(options) as (keyof TypeTreeStoreOptions)[]).forEach((key) => {\n const val = options[key];\n if (val !== config[key]) {\n hasChanged = true;\n // @ts-ignore\n // TODO: https://github.com/microsoft/TypeScript/issues/32693\n config[key] = val;\n }\n });\n this.hasFilter = isFunction(config.filter);\n if (hasChanged) {\n // 在 td-tree 的 render 方法中调用 setConfig\n // 这样减少了 watch 属性\n // 仅在属性变更后刷新状态\n // 这样可以避免触发渲染死循环\n this.refreshState();\n }\n }\n\n /**\n * 获取根节点列表\n * @return TreeNode[] 根节点对象数组\n */\n public getChildren(): TreeNode[] {\n return this.children;\n }\n\n /**\n * 获取指定节点对象\n * @param {string|number|TreeNode} item 获取节点对象的条件,可以是节点 value,也可以是节点本身\n * @return TreeNode 节点对象,如果判断树中没有符合条件的节点,返回 null\n */\n public getNode(item: TypeTargetNode): TreeNode {\n let node = null;\n if (isString(item) || isNumber(item)) {\n node = this.nodeMap.get(item);\n } else if (item instanceof TreeNode) {\n node = this.nodeMap.get(item.value);\n }\n if (!node) node = null;\n return node;\n }\n\n /**\n * 获取节点在总节点列表中的位置\n * @param {TreeNode} node 节点对象\n * @return number 节点在总节点列表中的位置序号\n */\n public getIndex(node: TreeNode): number {\n return this.nodes.indexOf(node);\n }\n\n /**\n * 获取指定节点的父节点\n * @param {string} value 节点值\n * @return TreeNode 节点对象\n */\n public getParent(value: TypeTargetNode): TreeNode {\n let parent = null;\n const node = this.getNode(value);\n if (node) {\n parent = node.getParent();\n }\n return parent;\n }\n\n /**\n * 获取指定节点的所有父节点\n * @param {string} value 节点值\n * @return TreeNode[] 父节点数组\n */\n public getParents(value: TypeTargetNode): TreeNode[] {\n const node = this.getNode(value);\n let parents: TreeNode[] = [];\n if (node) {\n parents = node.getParents();\n }\n return parents;\n }\n\n /**\n * 获取指定节点在其所在 children 中的位置\n * @param {string} value 节点值\n * @return number 节点在 children 中的位置序号\n */\n public getNodeIndex(value: TypeTargetNode): number {\n const node = this.getNode(value);\n let index = -1;\n if (node) {\n index = node.getIndex();\n }\n return index;\n }\n\n /**\n * 获取所有符合条件的节点,按回流排序后的顺序给出\n * 以这些字段作为示例:\n * - value: 节点值(ID)\n * - TreeNode: 节点实例\n * - level: 节点层级\n * - filter: 节点过滤函数\n * 支持下列使用方式\n * - getNodes() 获取所有节点\n * - getNodes(value) 获取节点值对应的目标节点下,包含自己在内的所有子节点\n * - getNodes(TreeNode) 获取目标节点下,包含自己在内的所有子节点\n * - getNodes(value, { level: 2 }) 获取目标节点下,层级在 2 以内的子节点\n * - getNodes(value, { filter: node => (!node.checked) }) 获取目标节点下,未选中的节点\n * - getNodes(value, { props: { actived: true } }) 获取目标节点下,已激活的节点\n * @param {string | TreeNode} [item] 节点值,节点对象\n * @param {object} [options] 节点过滤条件,可传递节点属性,过滤出属性一致的节点\n * @param {number} [options.level=Infinity] 节点层级\n * @param {function} [options.filter=null] 节点过滤条件函数\n * @param {object} [options.props] 节点属性对象,作为过滤条件\n * @return TreeNode[] 符合条件的节点数组\n */\n public getNodes(\n item?: TypeTargetNode,\n options?: TypeTreeFilterOptions,\n ): TreeNode[] {\n let nodes: TreeNode[] = [];\n let val: TreeNodeValue = '';\n if (isString(item) || isNumber(item)) {\n val = item;\n } else if (item instanceof TreeNode) {\n val = item.value;\n }\n if (!val && val !== 0) {\n nodes = this.nodes.slice(0);\n } else {\n const node = this.getNode(val);\n if (node) {\n nodes = node.walk();\n }\n }\n\n if (options) {\n const conf: TypeTreeFilterOptions = {\n filter: null,\n level: Infinity,\n ...options,\n };\n if (isNumber(conf.level) && conf.level !== Infinity) {\n nodes = nodes.filter((node) => node.level <= conf.level);\n }\n if (isFunction(conf.filter)) {\n nodes = nodes.filter((node) => {\n const nodeModel = node.getModel();\n return conf.filter(nodeModel);\n });\n }\n if (isPlainObject(conf.props)) {\n nodes = nodes.filter((node) => {\n const result = Object.keys(conf.props).every((key) => {\n // @ts-ignore\n // TODO: https://github.com/microsoft/TypeScript/issues/32693\n const propEqual = node[key] === conf.props[key];\n return propEqual;\n });\n return result;\n });\n }\n }\n return nodes;\n }\n\n /**\n * 添加新节点数据\n * @param {object[]} list 节点数据对象数组\n * @return void\n */\n public append(list: TypeTreeNodeData[]): void {\n list.forEach((item) => {\n const node = new TreeNode(this, item);\n this.children.push(node);\n });\n this.reflow();\n }\n\n /**\n * 清空当前树的数据,重新加载数据\n * @param {object[]} list 节点数据对象数组\n * @return void\n */\n public reload(list: TypeTreeNodeData[]): void {\n this.removeAll();\n this.append(list);\n }\n\n /**\n * 解析节点数据,适配多种节点类型\n * @param {string | TreeNode | object} para 树节点值,或者树节点,或者节点构造数据\n * @param {object | TreeNode} item 节点构造数据, 或者节点构造数据数组,或者树节点\n * @return spec 解析完成的数据结构\n * - {TreeNode} spec.node 目标树节点\n * - {object} spec.data 节点构造数据\n */\n private parseNodeData(\n para: TreeNodeValue | TreeNode | TypeTreeNodeData,\n item: TypeTreeNodeData | TreeNode,\n ) {\n let value: TreeNodeValue = '';\n let node = null;\n let data = null;\n\n if (isString(para) || isNumber(para)) {\n value = para;\n node = this.getNode(value);\n data = item;\n } else if (para instanceof TreeNode) {\n if (item) {\n node = para;\n data = item;\n } else {\n data = para;\n }\n } else {\n data = para;\n }\n const spec = {\n node,\n data,\n };\n return spec;\n }\n\n /**\n * 向指定节点追加节点或者数据\n * 以这些字段作为示例: item: 节点数据, TreeNode: 节点实例, value: 节点值(ID)\n * 支持下列使用方式\n * - appendNodes(item) 直接传递节点构造数据,新增节点\n * - appendNodes(TreeNode) 传递别的树的树节点,新增节点\n * - appendNodes(value, item) 以节点值查找指定节点,并新增节点构造数据\n * - appendNodes(value, TreeNode) 以节点值查找指定节点,并新增树节点\n * - appendNodes(TreeNode, item) 向指定节点新增节点构造数据\n * - appendNodes(TreeNode, TreeNode) 向指定节点新增树节点\n * @param {string | TreeNode | object} para 树节点值,或者树节点,或者节点构造数据\n * @param {object | TreeNode} [item] 节点构造数据, 或者节点构造数据数组,或者树节点\n * @return void\n */\n public appendNodes(\n para: TypeTargetNode | TypeTreeNodeData,\n item?: TypeTreeNodeData | TreeNode,\n ): void {\n const spec = this.parseNodeData(para, item);\n if (spec.data) {\n if (!spec.node) {\n // 在根节点插入\n if (spec.data instanceof TreeNode) {\n spec.data.appendTo(this);\n } else if (Array.isArray(spec.data)) {\n this.append(spec.data);\n } else {\n this.append([spec.data]);\n }\n } else {\n // 插入到目标节点之下\n if (spec.data instanceof TreeNode) {\n spec.data.appendTo(this, spec.node);\n } else if (isArray(spec.data)) {\n spec.node.append(spec.data);\n } else {\n spec.node.append([spec.data]);\n }\n spec.node.updateRelated();\n }\n }\n }\n\n /**\n * 在目标节点之前插入节点\n * @param {string | TreeNode} value 节点值,或者树节点\n * @param {object | TreeNode} item 节点构造数据, 或者树节点\n * @return void\n */\n public insertBefore(value: TypeTargetNode, item: TypeTreeItem): void {\n const node = this.getNode(value);\n if (node) {\n node.insertBefore(item);\n }\n }\n\n /**\n * 在目标节点之后插入节点\n * @param {string | TreeNode} value 节点值,或者树节点\n * @param {object | TreeNode} item 节点构造数据, 或者树节点\n * @return void\n */\n public insertAfter(value: TypeTargetNode, item: TypeTreeItem): void {\n const node = this.getNode(value);\n if (node) {\n node.insertAfter(item);\n }\n }\n\n /**\n * 更新树结构\n * - 清空 nodes 数组,然后遍历所有根节点重新插入 node\n * - 这个操作将会为树结构数据提供一个一纬数组索引\n * @return void\n */\n public refreshNodes(): void {\n const { children, nodes } = this;\n nodes.length = 0;\n children.forEach((node) => {\n const list = node.walk();\n Array.prototype.push.apply(nodes, list);\n });\n }\n\n /**\n * 标记节点重排\n * - 应该仅在树节点增删改查时调用\n * - 节点重排会在延时后触发 refreshNodes 方法的调用\n * @param {TreeNode} [node] 触发重排的树节点\n * @return void\n */\n public reflow(node?: TreeNode): void {\n this.shouldReflow = true;\n this.updated(node);\n }\n\n /**\n * 触发更新事件\n * - 节点属性变更时调用\n * - 统一延时后,处理需要在其他节点状态更新后再处理的逻辑,减少这类逻辑的重复调用开销\n * - 统一延时后,派发事件,通知树已更新完毕,以及回流完毕,触发 vue 视图渲染操作\n * @param {TreeNode} [node] 触发更新的树节点\n * @return void\n */\n public updated(node?: TreeNode): void {\n const { updatedMap } = this;\n if (node) {\n // 传入节点,则为指定节点的更新\n updatedMap.set(node[privateKey], 'changed');\n } else {\n // reflow 流程不传入节点,需要更新所有节点\n this.getNodes().forEach((itemNode) => {\n updatedMap.set(itemNode[privateKey], 'changed');\n });\n }\n\n if (this.updateTick) return;\n this.updateTick = nextTick(() => {\n this.updateTick = null;\n\n // 检查节点是否需要回流,重排数组\n if (this.shouldReflow) {\n this.refreshNodes();\n this.emit('reflow');\n }\n\n // 检查节点是否有被过滤,锁定路径节点\n // 在此之前要遍历节点生成一个经过排序的节点数组\n // 以便于优化锁定检查算法\n this.lockFilterPathNodes();\n\n // stateId 用于单个节点状态监控\n const stateId = `t${new Date().getTime()}`;\n const updatedList = Array.from(updatedMap.keys());\n const updatedNodes = updatedList.map((nodePrivateKey) => {\n updatedMap.set(nodePrivateKey, stateId);\n return this.privateMap.get(nodePrivateKey);\n });\n\n // 统计需要更新状态的节点,派发更新事件\n this.emit('update', {\n nodes: updatedNodes,\n map: updatedMap,\n });\n\n // 每次回流检查完毕,还原检查状态\n this.shouldReflow = false;\n updatedMap.clear();\n });\n }\n\n /**\n * 获取激活节点集合\n * @param {Map} [map] 预设激活节点 map, 用于受控操作时预先获取结果而不直接操作节点状态\n * @return string[] 激活节点值数组\n */\n public getActived(map?: TypeIdMap): TreeNodeValue[] {\n const activedMap = map || this.activedMap;\n return Array.from(activedMap.keys());\n }\n\n /**\n * 获取指定范围的激活节点\n * - 范围是目标节点在内所有子节点\n * @param {string | TreeNode} [item] 目标节点值,或者目标节点本身\n * @return TreeNode[] 激活节点数组\n */\n public getActivedNodes(item?: TypeTargetNode): TreeNode[] {\n let nodes = this.getNodes(item);\n nodes = nodes.filter((node) => node.isActived());\n return nodes;\n }\n\n /**\n * 替换激活态\n * @param {string[]} list 目标节点值数组\n * @return void\n */\n public replaceActived(list: TreeNodeValue[]): void {\n this.resetActived();\n this.setActived(list);\n }\n\n /**\n * 设置激活态\n * @param {string[]} list 目标节点值数组\n * @return void\n */\n public setActived(actived: TreeNodeValue[]): void {\n const { activeMultiple } = this.config;\n const list = actived.slice(0);\n if (!activeMultiple) {\n list.length = 1;\n }\n list.forEach((val) => {\n this.activedMap.set(val, true);\n const node = this.getNode(val);\n if (node) {\n node.update();\n }\n });\n }\n\n /**\n * 清空所有节点的激活状态\n * @return void\n */\n public resetActived(): void {\n const actived = this.getActived();\n this.activedMap.clear();\n const relatedNodes = this.getRelatedNodes(actived);\n relatedNodes.forEach((node) => {\n node.update();\n });\n }\n\n /**\n * 获取展开节点集合\n * @param {Map} [map] 预设展开节点 map, 用于受控操作时预先获取结果而不直接操作节点状态\n * @return void\n */\n public getExpanded(map?: TypeIdMap): TreeNodeValue[] {\n const expandedMap = map || this.expandedMap;\n return Array.from(expandedMap.keys());\n }\n\n /**\n * 替换展开节点\n * @param {string[]} list 目标节点值数组\n * @return void\n */\n public replaceExpanded(list: TreeNodeValue[]): void {\n const expanded = this.getExpanded();\n const added = difference(list, expanded);\n const removed = difference(expanded, list);\n this.setExpandedDirectly(removed, false);\n this.updateExpanded(removed);\n this.setExpanded(added);\n }\n\n /**\n * 批量设置展开节点\n * - 注意这个状态设置操作会忽略互斥属性\n * @param {string[]} list 目标节点值数组\n * @return void\n */\n public setExpanded(list: TreeNodeValue[]): void {\n this.setExpandedDirectly(list);\n this.updateExpanded(list);\n }\n\n /**\n * 直接设置节点展开状态\n * - 注意这个状态设置操作会忽略互斥属性\n * @param {string[]} list 目标节点值数组\n * @param {boolean} [expanded=true] 展开状态\n * @return void\n */\n public setExpandedDirectly(list: TreeNodeValue[], expanded = true): void {\n list.forEach((val) => {\n if (expanded) {\n this.expandedMap.set(val, true);\n } else {\n this.expandedMap.delete(val);\n }\n const node = this.getNode(val);\n if (node) {\n node.afterExpanded();\n }\n });\n }\n\n /**\n * 清除所有节点的展开状态\n * @return void\n */\n public resetExpanded(): void {\n const expanded = this.getExpanded();\n this.expandedMap.clear();\n this.updateExpanded(expanded);\n }\n\n /**\n * 更新展开节点相关节点的状态\n * - 节点展开状态变更后,上下游节点可能存在状态变更,统一纳入待更新队列\n * @param {string[]} list 目标节点值数组\n * @return void\n */\n public updateExpanded(list: TreeNodeValue[]): void {\n const relatedNodes = this.getRelatedNodes(list, {\n withParents: false,\n });\n relatedNodes.forEach((node) => {\n node.update();\n });\n }\n\n /**\n * 获取选中态节点值数组\n * @param {Map} [map] 预设选中节点 map, 用于受控操作时预先获取结果而不直接操作节点状态\n * @return string[] 选中态节点 value 数组\n */\n public getChecked(map?: TypeIdMap): TreeNodeValue[] {\n const { nodeMap, config } = this;\n const { valueMode, checkStrictly } = config;\n const list: TreeNodeValue[] = [];\n const checkedMap = map || this.checkedMap;\n nodeMap.forEach((node) => {\n // 判断未选中,直接忽略\n if (!node.isChecked(checkedMap)) return;\n if (valueMode === 'parentFirst' && !checkStrictly) {\n // valueMode 为 parentFirst\n // 仅取值父节点\n if (!node.parent || !node.parent.isChecked(checkedMap)) {\n list.push(node.value);\n }\n } else if (valueMode === 'onlyLeaf' && !checkStrictly) {\n // valueMode 为 onlyLeaf\n // 仅取值叶子节点\n if (node.isLeaf()) {\n list.push(node.value);\n }\n } else {\n // valueMode 为 all\n // 取值所有选中节点\n list.push(node.value);\n }\n });\n return list;\n }\n\n /**\n * 获取指定节点下的选中节点\n * @param {string | TreeNode} [item] 目标节点值,或者目标节点\n * @return TreeNode[] 选中节点数组\n */\n public getCheckedNodes(item?: TypeTargetNode): TreeNode[] {\n let nodes = this.getNodes(item);\n nodes = nodes.filter((node) => node.isChecked());\n return nodes;\n }\n\n /**\n * 替换选中态列表\n * @param {string[]} list 目标节点值数组\n * @return void\n */\n public replaceChecked(list: TreeNodeValue[]): void {\n this.resetChecked();\n this.setChecked(list);\n }\n\n /**\n * 批量设置选中态\n * @param {string[]} list 目标节点值数组\n * @return void\n */\n public setChecked(list: TreeNodeValue[]): void {\n const { checkStrictly, checkable } = this.config;\n if (!checkable) return;\n list.forEach((val: TreeNodeValue) => {\n const node = this.getNode(val);\n if (!node) return;\n if (checkStrictly) {\n this.checkedMap.set(val, true);\n node.updateChecked();\n } else {\n const childrenNodes = node.walk();\n childrenNodes.forEach((childNode) => {\n this.checkedMap.set(childNode.value, true);\n });\n }\n });\n if (!checkStrictly) {\n const checkedValues = this.getChecked();\n const relatedNodes = this.getRelatedNodes(checkedValues);\n relatedNodes.forEach((node) => {\n node.updateChecked();\n });\n }\n }\n\n /**\n * 清除所有节点选中态\n * @return void\n */\n public resetChecked(): void {\n const checked = this.getChecked();\n const relatedNodes = this.getRelatedNodes(checked);\n this.checkedMap.clear();\n relatedNodes.forEach((node) => {\n node.updateChecked();\n });\n }\n\n /**\n * 更新所有树节点状态,但不更新选中态\n * 用于不影响选中态时候的更新,减少递归循环造成的时间消耗\n * @return void\n */\n public refreshState(): void {\n const { nodeMap } = this;\n // 树在初始化未回流时,nodes 数组为空\n // 所以遍历 nodeMap 确保初始化阶段 refreshState 方法也可以触发全部节点的更新\n nodeMap.forEach((node) => {\n node.update();\n });\n }\n\n /**\n * 更新全部节点状态\n * @return void\n */\n public updateAll(): void {\n const { nodeMap } = this;\n nodeMap.forEach((node) => {\n node.update();\n node.updateChecked();\n });\n }\n\n /**\n * 移除指定节点\n * @param {string} value 目标节点值\n * @return void\n */\n public remove(value?: TypeTargetNode): void {\n const node = this.getNode(value);\n if (node) {\n node.remove();\n }\n }\n\n /**\n * 移除所有节点\n * @return void\n */\n public removeAll(): void {\n this.expandedMap.clear();\n this.checkedMap.clear();\n this.activedMap.clear();\n this.filterMap.clear();\n this.nodeMap.clear();\n this.privateMap.clear();\n this.updatedMap.clear();\n this.nodes = [];\n this.children = [];\n this.reflow();\n }\n\n /**\n * 获取节点状态变化可能影响的关联节点\n * - 用于实现最小遍历集合\n * @param {string[]} list 目标节点值数组\n * @param {object} [options] 操作选项\n * @oaran {boolean} [options.reverse=false] 倒序排列遍历节点\n * @param {boolean} [options.withParents=true] 包含所有父节点\n * @return TreeNode[] 关联节点数组\n */\n public getRelatedNodes(\n list: TreeNodeValue[],\n options?: TypeRelatedNodesOptions,\n ): TreeNode[] {\n const conf = {\n // 默认倒序排列,从底层节点开始遍历\n reverse: false,\n // 默认遍历父节点\n withParents: true,\n ...options,\n };\n const map = new Map();\n list.forEach((value) => {\n if (map.get(value)) return;\n const node = this.getNode(value);\n if (node) {\n const parents = node.getParents().reverse();\n const children = node.walk();\n let related = [];\n if (conf.withParents) {\n related = parents.concat(children);\n } else {\n related = children;\n }\n // 用 map 实现节点去重\n related.forEach((relatedNode) => {\n map.set(relatedNode.value, relatedNode);\n });\n }\n });\n let relatedNodes = Array.from(map.values());\n if (conf.reverse) {\n relatedNodes = relatedNodes.reverse();\n }\n return relatedNodes;\n }\n\n /**\n * 触发绑定的事件\n * - store.emitter 可以绑定事件回调,用于多个组件共同监听事件\n * @param {string} name 事件名称\n * @param {Event} [state] 事件对象\n * @param {TreeNode} [state.node] 事件关联节点\n * @param {TreeNode[]} [state.nodes] 事件关联节点数组\n * @param {Map} [state.map] 事件关联节点映射\n * @param {object[]} [state.data] 事件关联节点数据\n * @return void\n */\n public emit(name: string, state?: TypeTreeEventState): void {\n const { config, emitter } = this;\n const methodName = camelCase(`on-${name}`);\n const method = config[methodName as keyof TypeTreeStoreOptions];\n if (isFunction(method)) {\n // @ts-ignore\n // TODO: 待移除\n method(state);\n }\n emitter.emit(name, state);\n }\n\n /**\n * 锁定过滤节点的路径节点\n * - 使得路径节点自动展开\n * @return void\n */\n private lockFilterPathNodes(): void {\n const { config } = this;\n const allNodes = this.getNodes();\n\n if (this.prevFilter) {\n // 过滤条件清空时,也需要清理锁定节点\n // 所在判断过滤条件是否存在之前,就要调用这里的清理逻辑\n // 不想在每次渲染时都做这个清空判断\n // 所以判断一下之前是否有进行过滤\n allNodes.forEach((node: TreeNode) => {\n // 先清空所有锁定状态\n if (node.vmIsLocked) {\n // lock 方法内部有状态计算\n // 所以要减少 lock 方法调用次数\n node.lock(false);\n }\n });\n }\n\n const currentFilter = config.filter;\n // 当前没有过滤器\n // 则无需处理锁定节点\n if (!currentFilter || !isFunction(currentFilter)) return;\n this.prevFilter = config.filter;\n\n // 全部节点要经过排序,才能使用这个遍历\n // 比起每个过滤节点调用 getParents 方法检查父节点状态\n // 复杂度 O(N*log(N)) => O(N)\n allNodes.reverse().forEach((node: TreeNode) => {\n // 数组颠倒后,等于是从每个节点的子节点开始判断\n // 想象为从展开树的最底部向上遍历\n const parent = node.getParent();\n if (!parent) return;\n if (node.vmIsRest || node.vmIsLocked) {\n // 当前节点被过滤条件命中\n // 或者当前节点被锁定\n // 则需要判定父节点状态\n if (!parent.vmIsLocked) {\n // 父节点已被锁定,则忽略动作\n // lock 方法有内置状态判断\n parent.lock(true);\n }\n }\n });\n }\n}\n\nexport default TreeStore;\n","export default function(n){return{all:n=n||new Map,on:function(t,e){var i=n.get(t);i?i.push(e):n.set(t,[e])},off:function(t,e){var i=n.get(t);i&&(e?i.splice(i.indexOf(e)>>>0,1):n.set(t,[]))},emit:function(t,e){var i=n.get(t);i&&i.slice().map(function(n){n(e)}),(i=n.get(\"*\"))&&i.slice().map(function(n){n(t,e)})}}}\n//# sourceMappingURL=mitt.mjs.map\n","import { Ref, reactive, computed, toRefs, watch, nextTick } from 'vue';\nimport { isEqual, isString, isFunction } from 'lodash-es';\n\nimport TreeStore from '@tdesign/common-js/tree/tree-store';\nimport { useVModel, useDisabled, useDefaultValue } from '@tdesign/shared-hooks';\n\nimport {\n getTreeValue,\n getCascaderValue,\n isEmptyValues,\n isValueInvalid,\n treeNodesEffect,\n treeStoreExpendEffect,\n} from '../utils';\n\nimport {\n TreeNode,\n TreeNodeValue,\n TdCascaderProps,\n TreeNodeModel,\n CascaderChangeSource,\n CascaderValue,\n TreeOptionData,\n} from '../types';\n\n// 全局状态\nexport const useContext = (\n props: TdCascaderProps,\n setInnerValue: TdCascaderProps['onChange'],\n innerPopupVisible: Ref,\n setPopupVisible: TdCascaderProps['onPopupVisibleChange'],\n) => {\n const statusContext = reactive({\n treeStore: null,\n inputVal: null,\n scopeVal: undefined,\n treeNodes: [],\n expend: [],\n });\n\n return {\n statusContext,\n cascaderContext: computed(() => {\n const {\n size,\n checkStrictly,\n lazy,\n multiple,\n filterable,\n clearable,\n checkProps,\n max,\n disabled,\n showAllLevels,\n minCollapsedNum,\n valueType,\n modelValue,\n } = props;\n return {\n value: statusContext.scopeVal,\n size,\n checkStrictly,\n lazy,\n multiple,\n filterable,\n clearable,\n checkProps,\n max,\n disabled,\n showAllLevels,\n minCollapsedNum,\n valueType,\n visible: innerPopupVisible.value,\n ...statusContext,\n setTreeNodes: (nodes: TreeNode[]) => {\n statusContext.treeNodes = nodes;\n },\n setValue: (val: CascaderValue, source: CascaderChangeSource, node?: TreeNodeModel) => {\n if (isEqual(val, modelValue)) return;\n setInnerValue(val, { source, node });\n },\n setVisible: setPopupVisible,\n setInputVal: (val: string) => {\n statusContext.inputVal = val;\n },\n setExpend: (val: TreeNodeValue[]) => {\n statusContext.expend = val;\n },\n };\n }),\n };\n};\n\n// 内聚组件核心的副作用与状态处理\nexport const useCascaderContext = (props: TdCascaderProps) => {\n const disabled = useDisabled();\n const { value, modelValue, popupVisible } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const [innerPopupVisible, setPopupVisible] = useDefaultValue(\n popupVisible,\n false,\n props.onPopupVisibleChange,\n 'popupVisible',\n );\n const { cascaderContext, statusContext } = useContext(props, setInnerValue, innerPopupVisible, setPopupVisible);\n\n const isFilterable = computed(() => {\n return Boolean(props.filterable || isFunction(props.filter));\n });\n\n // 更新treeNodes\n const updatedTreeNodes = () => {\n const { inputVal, treeStore, setTreeNodes } = cascaderContext.value;\n treeNodesEffect(inputVal, treeStore, setTreeNodes, props.filter);\n };\n\n // 更新节点展开状态\n const updateExpend = () => {\n const { value, treeStore } = cascaderContext.value;\n const { expend } = statusContext;\n treeStoreExpendEffect(treeStore, value, expend);\n treeStore.replaceChecked(getTreeValue(value));\n };\n\n watch(\n () => props.options,\n () => {\n const { options, keys = {}, checkStrictly, lazy, load, valueMode } = props;\n const { treeStore } = statusContext;\n\n if (!options.length && !treeStore) return;\n\n if (!treeStore) {\n const store = new TreeStore({\n keys: {\n ...keys,\n children: isString(keys.children) ? keys.children : 'children',\n },\n checkable: true,\n expandMutex: true,\n expandParent: true,\n lazy,\n load,\n valueMode,\n checkStrictly,\n onLoad: () => {\n nextTick(() => {\n store.refreshNodes();\n updatedTreeNodes();\n });\n },\n });\n store.append(options);\n statusContext.treeStore = store;\n } else {\n treeStore.reload(options);\n treeStore.refreshNodes();\n }\n updateExpend();\n updatedTreeNodes();\n },\n { immediate: true, deep: true },\n );\n\n // tree插件配置变化\n watch(\n () => {\n const { checkStrictly, lazy, load, valueMode } = props;\n return JSON.stringify({\n valueMode,\n checkStrictly,\n lazy,\n load,\n });\n },\n () => {\n const { treeStore } = statusContext;\n if (!treeStore) return;\n const { checkStrictly, lazy, load, valueMode } = props;\n const treeProps = {\n checkStrictly,\n disabled,\n load,\n lazy,\n valueMode,\n };\n treeStore.setConfig(treeProps);\n },\n { immediate: true },\n );\n\n watch(\n innerValue,\n () => {\n // 初始化判断 value 逻辑\n const { setValue, multiple, valueType } = cascaderContext.value;\n\n if (isValueInvalid(innerValue.value, cascaderContext.value)) {\n setValue(multiple ? [] : '', 'invalid-value');\n }\n\n if (!isEmptyValues(innerValue.value)) {\n statusContext.scopeVal = getCascaderValue(innerValue.value, valueType, multiple);\n } else {\n statusContext.scopeVal = multiple ? [] : '';\n }\n\n if (!statusContext.treeStore) return;\n updateExpend();\n updatedTreeNodes();\n },\n { immediate: true },\n );\n\n watch(\n () => innerPopupVisible.value && isFilterable.value,\n (visible) => {\n const { setInputVal } = cascaderContext.value;\n if (visible) {\n setInputVal('');\n }\n },\n );\n\n watch(\n () => statusContext.inputVal,\n () => {\n updatedTreeNodes();\n },\n );\n\n const getCascaderItems = (arrValue: CascaderValue[]) => {\n const options: TreeOptionData[] = [];\n arrValue.forEach((value) => {\n const nodes = statusContext.treeStore?.getNodes(value);\n nodes && nodes[0] && options.push(nodes[0].data);\n });\n return options;\n };\n\n return {\n cascaderContext,\n isFilterable,\n innerValue,\n getCascaderItems,\n };\n};\n","import { defineComponent, computed } from 'vue';\nimport { omit } from 'lodash-es';\nimport Panel from './components/Panel';\nimport SelectInput from '../select-input';\nimport FakeArrow from '../common-components/fake-arrow';\nimport props from './props';\n\nimport { CascaderValue, TdSelectInputProps, TdCascaderProps } from './types';\nimport {\n closeIconClickEffect,\n handleRemoveTagEffect,\n getFakeArrowIconClass,\n getPanels,\n getSingleContent,\n getMultipleContent,\n} from './utils';\n\nimport {\n useConfig,\n useTNodeJSX,\n useDisabled,\n useReadonly,\n usePrefixClass,\n useCommonClassName,\n} from '@tdesign/shared-hooks';\nimport { useCascaderContext } from './hooks';\n\nexport default defineComponent({\n name: 'TCascader',\n props,\n setup(props, { slots }) {\n const COMPONENT_NAME = usePrefixClass('cascader');\n const classPrefix = usePrefixClass();\n const { STATUS } = useCommonClassName();\n const overlayClassName = usePrefixClass('cascader__popup');\n const { globalConfig } = useConfig('cascader');\n const isDisabled = useDisabled();\n const isReadonly = useReadonly();\n const renderTNodeJSX = useTNodeJSX();\n\n // 拿到全局状态的上下文\n const { cascaderContext, innerValue, isFilterable, getCascaderItems } = useCascaderContext(props);\n\n const displayValue = computed(() =>\n props.multiple ? getMultipleContent(cascaderContext.value) : getSingleContent(cascaderContext.value),\n );\n\n const panels = computed(() => getPanels(cascaderContext.value.treeNodes));\n\n const inputPlaceholder = computed(\n () =>\n (cascaderContext.value.visible && !props.multiple && getSingleContent(cascaderContext.value)) ||\n (props.placeholder ?? globalConfig.value.placeholder),\n );\n\n const renderSuffixIcon = () => {\n if (props.suffixIcon || slots.suffixIcon) {\n return renderTNodeJSX('suffixIcon');\n }\n\n const { visible, disabled } = cascaderContext.value;\n return (\n \n );\n };\n\n const valueDisplayParams = computed(() => {\n const arrayValue = innerValue.value instanceof Array ? innerValue.value : [innerValue.value];\n const displayValue =\n props.multiple && props.minCollapsedNum ? arrayValue.slice(0, props.minCollapsedNum) : innerValue.value;\n const options = getCascaderItems(arrayValue);\n return {\n value: innerValue.value,\n selectedOptions: options,\n onClose: (index: number) => {\n handleRemoveTagEffect(cascaderContext.value, index, props.onRemove);\n },\n displayValue,\n };\n });\n\n const renderValueDisplay = () => {\n return renderTNodeJSX('valueDisplay', {\n params: valueDisplayParams.value,\n });\n };\n\n const renderLabel = () => {\n const label = renderTNodeJSX('label');\n if (props.multiple) return label;\n if (!label) return null;\n return
    {label}
    ;\n };\n\n const cascaderClassNames = computed(() => [\n COMPONENT_NAME.value,\n props.multiple ? `${COMPONENT_NAME.value}--multiple` : `${COMPONENT_NAME.value}--single`,\n ]);\n\n return () => {\n const { setVisible, visible, inputVal, setInputVal } = cascaderContext.value;\n\n return (\n renderSuffixIcon()}\n popupProps={{\n ...(props.popupProps as TdCascaderProps['popupProps']),\n overlayInnerStyle: panels.value.length && !props.loading ? { width: 'auto' } : '',\n overlayClassName: [\n overlayClassName.value,\n (props.popupProps as TdCascaderProps['popupProps'])?.overlayClassName,\n ],\n }}\n inputProps={{ size: props.size, ...(props.inputProps as TdCascaderProps['inputProps']) }}\n tagInputProps={{\n size: props.size,\n ...(props.tagInputProps as TdCascaderProps['tagInputProps']),\n }}\n tagProps={{ ...(props.tagProps as TdCascaderProps['tagProps']) }}\n onInputChange={(value, ctx) => {\n if (!isFilterable.value) return;\n setInputVal(`${value}`);\n (props?.selectInputProps as TdSelectInputProps)?.onInputChange?.(value, ctx);\n }}\n onTagChange={(val: CascaderValue, ctx) => {\n // 按 enter 键不处理\n if (ctx.trigger === 'enter') return;\n handleRemoveTagEffect(cascaderContext.value, ctx.index, props.onRemove);\n // @ts-ignore TODO: fix bug\n (props?.selectInputProps as TdSelectInputProps)?.onTagChange?.(val, ctx);\n }}\n onPopupVisibleChange={(val: boolean, context) => {\n if (isDisabled.value) return;\n setVisible(val, context);\n (props?.selectInputProps as TdSelectInputProps)?.onPopupVisibleChange?.(val, context);\n }}\n onBlur={(val, context) => {\n props.onBlur?.({\n value: cascaderContext.value.value,\n inputValue: context.inputValue || '',\n e: context.e as FocusEvent,\n });\n (props?.selectInputProps as TdSelectInputProps)?.onBlur?.(val, context);\n }}\n onFocus={(val, context) => {\n props.onFocus?.({\n value: cascaderContext.value.value,\n e: context.e,\n });\n (props?.selectInputProps as TdSelectInputProps)?.onFocus?.(val, context);\n }}\n onClear={(context: { e: MouseEvent }) => {\n closeIconClickEffect(cascaderContext.value);\n (props?.selectInputProps as TdSelectInputProps)?.onClear?.(context);\n }}\n v-slots={{\n label: slots.label,\n suffix: slots.suffix,\n prefixIcon: slots.prefixIcon,\n panel: () => (\n <>\n {renderTNodeJSX('panelTopContent')}\n \n {renderTNodeJSX('panelBottomContent')}\n \n ),\n collapsedItems: slots.collapsedItems,\n }}\n {...omit(props.selectInputProps as TdSelectInputProps, [\n 'onTagChange',\n 'onInputChange',\n 'onPopupVisibleChange',\n 'onBlur',\n 'onFocus',\n 'onClear',\n ])}\n />\n );\n };\n },\n});\n","import { defineComponent } from 'vue';\nimport Panel from './components/Panel';\nimport props from './props';\n\nimport { useCascaderContext } from './hooks';\n\nexport default defineComponent({\n name: 'TCascaderPanel',\n props,\n setup(props, { slots }) {\n const { cascaderContext } = useCascaderContext(props);\n\n return () => (\n \n );\n },\n});\n","import _Cascader from './cascader';\nimport _CascaderPanel from './cascader-panel';\nimport { withInstall } from '@tdesign/shared-utils';\nimport { TdCascaderProps } from './type';\nimport { TreeOptionData } from '../common';\n\nimport './style';\n\nexport * from './type';\n\nexport type CascaderProps = TdCascaderProps;\nexport type CascaderPanelProps = TdCascaderProps;\n\nexport const Cascader = withInstall(_Cascader);\nexport const CascaderPanel = withInstall(_CascaderPanel);\n\nexport default Cascader;\n","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isoWeeksInYear=n()}(this,(function(){\"use strict\";return function(e,n){n.prototype.isoWeeksInYear=function(){var e=this.isLeapYear(),n=this.endOf(\"y\").day();return 4===n||e&&5===n?53:52}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isLeapYear=t()}(this,(function(){\"use strict\";return function(e,t){t.prototype.isLeapYear=function(){return this.$y%4==0&&this.$y%100!=0||this.$y%400==0}}}));","import { isString } from 'lodash-es';\nimport dayjs from 'dayjs';\nimport isoWeeksInYear from 'dayjs/plugin/isoWeeksInYear';\nimport isLeapYear from 'dayjs/plugin/isLeapYear';\nimport log from '../log';\n\ntype DateValue = string | number | Date;\n\ndayjs.extend(isoWeeksInYear);\ndayjs.extend(isLeapYear);\n\nexport const TIME_FORMAT = 'HH:mm:ss';\n\n// extract time format from a completed date format 'YYYY-MM-DD HH:mm' -> 'HH:mm'\nexport function extractTimeFormat(dateFormat: string = '') {\n return dateFormat\n .replace(/\\W?Y{2,4}|\\W?D{1,2}|\\W?Do|\\W?d{1,4}|\\W?M{1,4}|\\W?y{2,4}/g, '')\n .trim();\n}\n\n// 统一解析日期格式字符串成 Dayjs 对象\nexport function parseToDayjs(\n value: string | Date | number,\n format: string,\n timeOfDay?: string,\n dayjsLocale?: string,\n) {\n if (value === '' || value === null) return dayjs();\n\n let dateText = value;\n // format week\n if (/[w|W]/g.test(format)) {\n if (!isString(dateText)) {\n dateText = dayjs(dateText).locale(dayjsLocale || 'zh-cn').format(format) as string;\n }\n\n const yearStr = dateText.split(/[-/.\\s]/)[0];\n const weekStr = dateText.split(/[-/.\\s]/)[1];\n const weekFormatStr = format.split(/[-/.\\s]/)[1];\n\n let firstWeek = dayjs(yearStr, 'YYYY').locale(dayjsLocale || 'zh-cn').startOf('year');\n // 第一周ISO定义: 本年度第一个星期四所在的星期\n // 如果第一年第一天在星期四后, 直接跳到下一周, 下一周必定是第一周\n // 否则本周即为第一周\n if (firstWeek.day() > 4 || firstWeek.day() === 0) firstWeek = firstWeek.add(1, 'week');\n\n // 一年有52或者53周, 引入IsoWeeksInYear辅助查询\n const weekCounts = dayjs(yearStr, 'YYYY').locale(dayjsLocale || 'zh-cn').isoWeeksInYear();\n for (let i = 0; i <= weekCounts; i += 1) {\n let nextWeek = firstWeek.add(i, 'week');\n // 重置为周的第一天\n if (timeOfDay === 'start') nextWeek = nextWeek.subtract(5, 'day');\n if (nextWeek.format(weekFormatStr) === weekStr) {\n return nextWeek;\n }\n }\n }\n\n // format quarter\n if (/Q/g.test(format)) {\n if (!isString(dateText)) {\n dateText = dayjs(dateText).locale(dayjsLocale || 'zh-cn').format(format) as string;\n }\n\n const yearStr = dateText.split(/[-/.\\s]/)[0];\n const quarterStr = dateText.split(/[-/.\\s]/)[1];\n const quarterFormatStr = format.split(/[-/.\\s]/)[1];\n const firstQuarter = dayjs(yearStr, 'YYYY').startOf('year');\n for (let i = 0; i < 4; i += 1) {\n const nextQuarter = firstQuarter.add(i, 'quarter');\n if (nextQuarter.format(quarterFormatStr) === quarterStr) {\n return nextQuarter;\n }\n }\n }\n\n // 兼容数据格式不标准场景 YYYY-MM-D\n const result = dayjs(dateText, format).isValid()\n ? dayjs(dateText, format)\n : dayjs(dateText);\n\n // 兼容数据异常情况\n if (!result.isValid()) {\n log.error('DatePicker', `Check whether the format、value format is valid.\\n value: '${value}', format: '${format}'`);\n return dayjs();\n }\n\n return result;\n}\n\n// 格式化 range\nfunction formatRange({\n newDate,\n format,\n dayjsLocale,\n targetFormat,\n autoSwap,\n}: {\n newDate: any;\n format: string;\n dayjsLocale?: string;\n targetFormat?: string;\n autoSwap?: boolean;\n}) {\n if (!newDate || !Array.isArray(newDate)) return [];\n\n let dayjsDateList = newDate.map((d) => d && parseToDayjs(d, format).locale(dayjsLocale));\n\n // 保证后面的时间大于前面的时间\n if (\n autoSwap\n && dayjsDateList[0]\n && dayjsDateList[1]\n && dayjsDateList[0].toDate().getTime() > dayjsDateList[1].toDate().getTime()\n ) {\n // 数据兼容规则\n dayjsDateList = [dayjsDateList[1], dayjsDateList[0]];\n }\n\n // 格式化失败提示\n if (dayjsDateList.some((r) => r && !r.isValid())) {\n log.error(\n 'DatePicker',\n `Check whether the value、format、valueType format is valid.\\nformat: '${format}' value: '${newDate}' valueType: '${targetFormat}'`\n );\n return [];\n }\n\n // valueType = 'time-stamp' 返回时间戳\n if (targetFormat === 'time-stamp') return dayjsDateList.map((da) => da && da.toDate().getTime());\n // valueType = 'Date' 返回时间对象\n if (targetFormat === 'Date') return dayjsDateList.map((da) => da && da.toDate());\n\n return dayjsDateList.map((da) => da && da.format(targetFormat || format));\n}\n\n// 格式化单选\nfunction formatSingle({\n newDate,\n format,\n targetFormat,\n dayjsLocale,\n}: {\n newDate: any;\n format: string;\n targetFormat?: string;\n dayjsLocale?: string;\n}) {\n if (!newDate) return '';\n\n const dayJsDate = parseToDayjs(newDate, format).locale(dayjsLocale);\n\n // 格式化失败提示\n if (!dayJsDate.isValid()) {\n log.error(\n 'DatePicker',\n `Check whether the format、value format is valid.\\nformat: '${format}' value: '${newDate}'`\n );\n return '';\n }\n\n // valueType = 'time-stamp' 返回时间戳\n if (targetFormat === 'time-stamp') return dayJsDate.toDate().getTime();\n // valueType = 'Date' 返回时间对象\n if (targetFormat === 'Date') return dayJsDate.toDate();\n\n return dayJsDate.format(targetFormat || format);\n}\n\n// 检测日期是否合法\nexport function isValidDate(value: DateValue | DateValue[], format: string) {\n if (Array.isArray(value)) {\n return value.every((v) => {\n if (v === '') return true;\n return dayjs(v, format).isValid() || dayjs(v).isValid();\n });\n }\n\n if (value === '') return true;\n return dayjs(value, format).isValid() || dayjs(value).isValid();\n}\n\n// 日期格式化\nexport function formatDate(\n newDate: DateValue | DateValue[],\n {\n format,\n targetFormat,\n dayjsLocale = 'zh-cn',\n autoSwap,\n }: { format: string; dayjsLocale?: string, targetFormat?: string; autoSwap?: boolean }\n) {\n let result;\n\n if (Array.isArray(newDate)) {\n result = formatRange({ newDate, format, dayjsLocale, targetFormat, autoSwap });\n } else {\n result = formatSingle({ newDate, format, dayjsLocale, targetFormat });\n }\n\n return result;\n}\n\n// 对齐格式化时间\nexport function calcFormatTime(time: string, timeFormat: string) {\n if (time && timeFormat) {\n const timeArr = time.split(':');\n const timeFormatArr = timeFormat.split(':');\n return timeArr.slice(0, timeFormatArr.length).join(':');\n }\n return time;\n}\n\n// TODO 细化 value 类型\n// 格式化时间\nexport function formatTime(value: any, format: string, timeFormat: string, defaultTime: string | string[]) {\n // 无论参数是不是数组,统一转成数组处理\n let result = Array.isArray(value) ? value : [value];\n // eslint-disable-next-line no-param-reassign\n defaultTime = Array.isArray(defaultTime) ? defaultTime : [defaultTime, defaultTime];\n result = result.map((v, i) => {\n // string格式需要用format去解析,其他诸如Date、time-stamp格式则直接dayjs\n if (v) return dayjs(v, typeof v === 'string' ? format : undefined).format(timeFormat);\n return calcFormatTime(defaultTime[i], timeFormat);\n });\n result = result.length ? result : defaultTime.map((t) => calcFormatTime(t, timeFormat));\n // value是数组就输出数组,不是数组就输出第一个即可\n return Array.isArray(value) ? result : result?.[0];\n}\n\n// 根据不同 mode 给出格式化默认值\nexport function getDefaultFormat({\n mode = 'date',\n format,\n valueType,\n enableTimePicker,\n}: {\n mode?: string;\n format?: string;\n valueType?: string;\n enableTimePicker?: boolean;\n}) {\n if (mode === 'year') {\n return {\n format: format || 'YYYY',\n valueType: valueType || format || 'YYYY',\n timeFormat: TIME_FORMAT,\n };\n }\n if (mode === 'month') {\n return {\n format: format || 'YYYY-MM',\n valueType: valueType || format || 'YYYY-MM',\n timeFormat: TIME_FORMAT,\n };\n }\n if (mode === 'quarter') {\n return {\n format: format || 'YYYY-[Q]Q',\n valueType: valueType || format || 'YYYY-[Q]Q',\n timeFormat: TIME_FORMAT,\n };\n }\n if (mode === 'week') {\n return {\n format: format || 'gggg-wo',\n valueType: valueType || format || 'gggg-wo',\n timeFormat: TIME_FORMAT,\n };\n }\n if (mode === 'date') {\n return {\n format: format || `YYYY-MM-DD${enableTimePicker ? ' HH:mm:ss' : ''}`,\n valueType: valueType || format || `YYYY-MM-DD${enableTimePicker ? ' HH:mm:ss' : ''}`,\n timeFormat: extractTimeFormat(format || `YYYY-MM-DD${enableTimePicker ? ' HH:mm:ss' : ''}`) || TIME_FORMAT,\n };\n }\n log.error('DatePicker', `Invalid mode: ${mode}`);\n return {};\n}\n\n// 初始化面板年份月份\nexport function initYearMonthTime({\n value,\n mode = 'date',\n format,\n timeFormat = 'HH:mm:ss',\n enableTimePicker,\n}: {\n value: Array;\n mode: string;\n format: string;\n timeFormat?: string;\n enableTimePicker?: boolean;\n}) {\n const defaultYearMonthTime = {\n year: [dayjs().year(), dayjs().year()],\n month: [dayjs().month(), dayjs().month()],\n time: [dayjs().format(timeFormat), dayjs().format(timeFormat)],\n };\n if (mode === 'year') {\n defaultYearMonthTime.year[1] += 10;\n } else if (mode === 'month' || mode === 'quarter') {\n defaultYearMonthTime.year[1] += 1;\n } else if ((mode === 'date' || mode === 'week') && !enableTimePicker) {\n // 切换至下一年\n if (defaultYearMonthTime.month[0] === 11) {\n defaultYearMonthTime.year[1] += 1;\n defaultYearMonthTime.month[1] = 0;\n } else {\n defaultYearMonthTime.month[1] += 1;\n }\n }\n\n if (!value || !Array.isArray(value) || !value.length) {\n return defaultYearMonthTime;\n }\n\n return {\n year: value.map((v) => parseToDayjs(v, format).year()),\n month: value.map((v) => parseToDayjs(v, format).month()),\n time: value.map((v) => parseToDayjs(v, format).format(timeFormat)),\n };\n}\n","import { toRefs, watchEffect, ref, computed } from 'vue';\nimport {\n formatDate,\n formatTime,\n isValidDate,\n getDefaultFormat,\n parseToDayjs,\n extractTimeFormat,\n} from '@tdesign/common-js/date-picker/format';\nimport { useVModel } from '@tdesign/shared-hooks';\nimport { TdDatePickerProps, DateMultipleValue, DateValue } from '../type';\n\nexport function useSingleValue(props: TdDatePickerProps) {\n const { value: valueFromProps, modelValue } = toRefs(props);\n const [value, onChange] = useVModel(valueFromProps, modelValue, props.defaultValue, props.onChange);\n\n const formatRef = computed(() =>\n getDefaultFormat({\n mode: props.mode,\n format: props.format,\n enableTimePicker: props.multiple ? false : props.enableTimePicker,\n }),\n );\n\n if (props.enableTimePicker) {\n if (!extractTimeFormat(formatRef.value.format))\n console.error(`format: ${formatRef.value.format} 不规范,包含时间选择必须要有时间格式化 HH:mm:ss`);\n }\n\n const time = ref(\n formatTime(\n props.multiple ? (value.value as DateMultipleValue)?.[0] : value.value,\n formatRef.value.format,\n formatRef.value.timeFormat,\n props.defaultTime,\n ),\n );\n const month = ref(\n parseToDayjs(\n props.multiple ? (value.value as DateMultipleValue)?.[0] : (value.value as DateValue),\n formatRef.value.format,\n ).month(),\n );\n const year = ref(\n parseToDayjs(\n props.multiple ? (value.value as DateMultipleValue)?.[0] : (value.value as DateValue),\n formatRef.value.format,\n ).year(),\n );\n const cacheValue = ref(\n formatDate(props.multiple ? (value.value as DateMultipleValue)?.[0] : value.value, {\n format: formatRef.value.format,\n }),\n ); // 缓存选中值,panel 点击时更改\n\n // 输入框响应 value 变化\n watchEffect(() => {\n if (!value.value) {\n cacheValue.value = '';\n return;\n }\n if (!isValidDate(value.value, formatRef.value.format)) return;\n\n cacheValue.value = formatDate(value.value, {\n format: formatRef.value.format,\n });\n time.value = formatTime(value.value, formatRef.value.format, formatRef.value.timeFormat, props.defaultTime);\n });\n\n return {\n year,\n month,\n value,\n time,\n cacheValue,\n onChange,\n };\n}\n","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","!function(e,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isBetween=i()}(this,(function(){\"use strict\";return function(e,i,t){i.prototype.isBetween=function(e,i,s,f){var n=t(e),o=t(i),r=\"(\"===(f=f||\"()\")[0],u=\")\"===f[1];return(r?this.isAfter(n,s):!this.isBefore(n,s))&&(u?this.isBefore(o,s):!this.isAfter(o,s))||(r?this.isBefore(n,s):!this.isAfter(n,s))&&(u?this.isAfter(o,s):!this.isBefore(o,s))}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekOfYear=t()}(this,(function(){\"use strict\";var e=\"week\",t=\"year\";return function(i,n,r){var f=n.prototype;f.week=function(i){if(void 0===i&&(i=null),null!==i)return this.add(7*(i-this.week()),\"day\");var n=this.$locale().yearStart||1;if(11===this.month()&&this.date()>25){var f=r(this).startOf(t).add(1,t).date(n),s=r(this).endOf(e);if(f.isBefore(s))return 1}var a=r(this).startOf(t).date(n).startOf(e).subtract(1,\"millisecond\"),o=this.diff(a,e,!0);return o<0?r(this).startOf(\"week\").week():Math.ceil(o)},f.weeks=function(e){return void 0===e&&(e=null),this.week(e)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekYear=t()}(this,(function(){\"use strict\";return function(e,t){t.prototype.weekYear=function(){var e=this.month(),t=this.week(),n=this.year();return 1===t&&11===e?n+1:0===e&&t>=52?n-1:n}}}));","!function(n,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(n=\"undefined\"!=typeof globalThis?globalThis:n||self).dayjs_plugin_localeData=e()}(this,(function(){\"use strict\";return function(n,e,t){var r=e.prototype,o=function(n){return n&&(n.indexOf?n:n.s)},u=function(n,e,t,r,u){var i=n.name?n:n.$locale(),a=o(i[e]),s=o(i[t]),f=a||s.map((function(n){return n.slice(0,r)}));if(!u)return f;var d=i.weekStart;return f.map((function(n,e){return f[(e+(d||0))%7]}))},i=function(){return t.Ls[t.locale()]},a=function(n,e){return n.formats[e]||function(n){return n.replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(n,e,t){return e||t.slice(1)}))}(n.formats[e.toUpperCase()])},s=function(){var n=this;return{months:function(e){return e?e.format(\"MMMM\"):u(n,\"months\")},monthsShort:function(e){return e?e.format(\"MMM\"):u(n,\"monthsShort\",\"months\",3)},firstDayOfWeek:function(){return n.$locale().weekStart||0},weekdays:function(e){return e?e.format(\"dddd\"):u(n,\"weekdays\")},weekdaysMin:function(e){return e?e.format(\"dd\"):u(n,\"weekdaysMin\",\"weekdays\",2)},weekdaysShort:function(e){return e?e.format(\"ddd\"):u(n,\"weekdaysShort\",\"weekdays\",3)},longDateFormat:function(e){return a(n.$locale(),e)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};r.localeData=function(){return s.bind(this)()},t.localeData=function(){var n=i();return{firstDayOfWeek:function(){return n.weekStart||0},weekdays:function(){return t.weekdays()},weekdaysShort:function(){return t.weekdaysShort()},weekdaysMin:function(){return t.weekdaysMin()},months:function(){return t.months()},monthsShort:function(){return t.monthsShort()},longDateFormat:function(e){return a(n,e)},meridiem:n.meridiem,ordinal:n.ordinal}},t.months=function(){return u(i(),\"months\")},t.monthsShort=function(){return u(i(),\"monthsShort\",\"months\",3)},t.weekdays=function(n){return u(i(),\"weekdays\",null,null,n)},t.weekdaysShort=function(n){return u(i(),\"weekdaysShort\",\"weekdays\",3,n)},t.weekdaysMin=function(n){return u(i(),\"weekdaysMin\",\"weekdays\",2,n)}}}));","!function(t,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_quarterOfYear=n()}(this,(function(){\"use strict\";var t=\"month\",n=\"quarter\";return function(e,i){var r=i.prototype;r.quarter=function(t){return this.$utils().u(t)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(t-1))};var s=r.add;r.add=function(e,i){return e=Number(e),this.$utils().p(i)===n?this.add(3*e,t):s.bind(this)(e,i)};var u=r.startOf;r.startOf=function(e,i){var r=this.$utils(),s=!!r.u(i)||i;if(r.p(e)===n){var o=this.quarter()-1;return s?this.month(3*o).startOf(t).startOf(\"day\"):this.month(3*o+2).endOf(t).endOf(\"day\")}return u.bind(this)(e,i)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_advancedFormat=t()}(this,(function(){\"use strict\";return function(e,t){var r=t.prototype,n=r.format;r.format=function(e){var t=this,r=this.$locale();if(!this.isValid())return n.bind(this)(e);var s=this.$utils(),a=(e||\"YYYY-MM-DDTHH:mm:ssZ\").replace(/\\[([^\\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(e){switch(e){case\"Q\":return Math.ceil((t.$M+1)/3);case\"Do\":return r.ordinal(t.$D);case\"gggg\":return t.weekYear();case\"GGGG\":return t.isoWeekYear();case\"wo\":return r.ordinal(t.week(),\"W\");case\"w\":case\"ww\":return s.s(t.week(),\"w\"===e?1:2,\"0\");case\"W\":case\"WW\":return s.s(t.isoWeek(),\"W\"===e?1:2,\"0\");case\"k\":case\"kk\":return s.s(String(0===t.$H?24:t.$H),\"k\"===e?1:2,\"0\");case\"X\":return Math.floor(t.$d.getTime()/1e3);case\"x\":return t.$d.getTime();case\"z\":return\"[\"+t.offsetName()+\"]\";case\"zzz\":return\"[\"+t.offsetName(\"long\")+\"]\";default:return e}}));return n.bind(this)(a)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_customParseFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},t=/(\\[[^[]*\\])|([-_:/.,()\\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\\d\\d/,r=/\\d\\d?/,i=/\\d*[^-_:/,()\\s\\d]+/,o={},s=function(e){return(e=+e)+(e>68?1900:2e3)};var a=function(e){return function(t){this[e]=+t}},f=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:\"+\"===t[0]?-n:n}(e)}],h=function(e){var t=o[e];return t&&(t.indexOf?t:t.s.concat(t.f))},u=function(e,t){var n,r=o.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?\"pm\":\"PM\");return n},d={A:[i,function(e){this.afternoon=u(e,!1)}],a:[i,function(e){this.afternoon=u(e,!0)}],S:[/\\d/,function(e){this.milliseconds=100*+e}],SS:[n,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[r,a(\"seconds\")],ss:[r,a(\"seconds\")],m:[r,a(\"minutes\")],mm:[r,a(\"minutes\")],H:[r,a(\"hours\")],h:[r,a(\"hours\")],HH:[r,a(\"hours\")],hh:[r,a(\"hours\")],D:[r,a(\"day\")],DD:[n,a(\"day\")],Do:[i,function(e){var t=o.ordinal,n=e.match(/\\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\\[|\\]/g,\"\")===e&&(this.day=r)}],M:[r,a(\"month\")],MM:[n,a(\"month\")],MMM:[i,function(e){var t=h(\"months\"),n=(h(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[i,function(e){var t=h(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,a(\"year\")],YY:[n,function(e){this.year=s(e)}],YYYY:[/\\d{4}/,a(\"year\")],Z:f,ZZ:f};function c(n){var r,i;r=n,i=o&&o.formats;for(var s=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=s.length,f=0;f-1)return new Date((\"X\"===t?1e3:1)*e);var r=c(t)(e),i=r.year,o=r.month,s=r.day,a=r.hours,f=r.minutes,h=r.seconds,u=r.milliseconds,d=r.zone,l=new Date,m=s||(i||o?1:l.getDate()),M=i||l.getFullYear(),Y=0;i&&!o||(Y=o>0?o-1:l.getMonth());var p=a||0,v=f||0,D=h||0,g=u||0;return d?new Date(Date.UTC(M,Y,m,p,v,D,g+60*d.offset*1e3)):n?new Date(Date.UTC(M,Y,m,p,v,D,g)):new Date(M,Y,m,p,v,D,g)}catch(e){return new Date(\"\")}}(t,a,r),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),o={}}else if(a instanceof Array)for(var l=a.length,m=1;m<=l;m+=1){s[1]=a[m-1];var M=n.apply(this,s);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===l&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}));","import { isFunction, chunk } from 'lodash-es';\nimport dayjs from 'dayjs';\nimport dayJsIsBetween from 'dayjs/plugin/isBetween';\nimport weekOfYear from 'dayjs/plugin/weekOfYear';\nimport weekYear from 'dayjs/plugin/weekYear';\nimport localeData from 'dayjs/plugin/localeData';\nimport quarterOfYear from 'dayjs/plugin/quarterOfYear';\nimport advancedFormat from 'dayjs/plugin/advancedFormat';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { parseToDayjs } from './format';\n\ndayjs.extend(weekOfYear);\ndayjs.extend(weekYear);\ndayjs.extend(localeData);\ndayjs.extend(quarterOfYear);\ndayjs.extend(advancedFormat);\ndayjs.extend(customParseFormat);\ndayjs.extend(dayJsIsBetween);\n\n/**\n * 首字母大写\n * @param {String} str 目标字符串\n * @returns {String}\n */\nexport function firstUpperCase(str: string): string {\n if (!str) return str;\n return str[0].toUpperCase().concat(str.substring(1, str.length));\n}\n\ninterface DateObj {\n year: number;\n month: number;\n}\n\n/**\n * 返回指定年、月的第一天日期\n * @param {Object} { year, month }\n * @returns {Date}\n */\nfunction getFirstDayOfMonth({ year, month }: DateObj): Date {\n return new Date(year, month, 1);\n}\n\n/**\n * 返回指定年、月的天数\n * @param {Object} { year, month }\n * @returns {Number}\n */\nfunction getDaysInMonth({ year, month }: DateObj): number {\n return new Date(year, month + 1, 0).getDate();\n}\n\n/**\n * 返回指定年、月的最后一天日期\n * @param {Object} { year, month }\n * @returns {Date}\n */\nfunction getLastDayOfMonth({ year, month }: DateObj): Date {\n return new Date(year, month, getDaysInMonth({ year, month }));\n}\n\nfunction isSameYear(date1: Date, date2: Date): boolean {\n return date1.getFullYear() === date2.getFullYear();\n}\n\nfunction isSameQuarter(date1: Date, date2: Date): boolean {\n return isSameYear(date1, date2) && dayjs(date1).quarter() === dayjs(date2).quarter();\n}\n\nfunction isSameMonth(date1: Date, date2: Date): boolean {\n return isSameYear(date1, date2) && date1.getMonth() === date2.getMonth();\n}\n\nfunction isSameWeek(date1: Date, date2: Date, dayjsLocale = 'zh-cn'): boolean {\n return isSameMonth(date1, date2) && dayjs(date1).locale(dayjsLocale).week() === dayjs(date2).locale(dayjsLocale).week();\n}\n\nfunction isSameDate(date1: Date, date2: Date): boolean {\n return isSameMonth(date1, date2) && date1.getDate() === date2.getDate();\n}\n\n/**\n * 比较两个日期对象的时间戳\n * @param {Date} date1 日期1\n * @param {Date} date2 日期2\n * @returns {Number} 返回 date1.getTime() - date2.getTime() 的差值\n */\nfunction compareAsc(date1: { getTime: () => any }, date2: Date): number {\n const d1 = date1.getTime();\n const d2 = date2.getTime();\n\n if (d1 < d2) return -1;\n if (d1 > d2) return 1;\n return 0;\n}\n\n/**\n * 比较两个 Date 是否是同一天 或则 同一月 或则 同一年\n * @param {Date} date1 比较的日期\n * @param {Date} date2 比较的日期\n * @param {String} type 比较类型,默认比较到『日』 date|month|year\n * @returns {Boolean}\n */\nexport function isSame(date1: Date, date2: Date, type = 'date', dayjsLocale = 'zh-cn'): boolean {\n const func = {\n isSameYear,\n isSameQuarter,\n isSameMonth,\n isSameWeek,\n isSameDate,\n } as Record boolean>;\n return func[`isSame${firstUpperCase(type)}`](date1, date2, dayjsLocale);\n}\n\nexport function outOfRanges(d: Date, min: any, max: any) {\n return (min && compareAsc(d, min) === -1) || (max && compareAsc(d, max) === 1);\n}\n\n/**\n * @returns {Date} 当天零点的日期对象\n */\nexport function getToday(): Date {\n const now = new Date();\n return new Date(now.getFullYear(), now.getMonth(), now.getDate(), 0, 0, 0);\n}\n\n/**\n * 返回日期对象的年、月、日、小时、分钟、秒、12小时制标识\n * @param {Date} date\n * @returns {Object}\n */\nexport function getDateObj(date: Date) {\n let tempDate = date;\n if (!(date instanceof Date)) {\n tempDate = getToday();\n }\n return {\n year: tempDate.getFullYear(),\n month: tempDate.getMonth(),\n date: tempDate.getDate(),\n hours: tempDate.getHours(),\n minutes: tempDate.getMinutes(),\n seconds: tempDate.getSeconds(),\n milliseconds: tempDate.getMilliseconds(),\n meridiem: tempDate.getHours() > 11 ? 'PM' : 'AM',\n };\n}\n\n/**\n * 设置日期对象的时间部分\n * @param {Date} date 日期\n * @param {Number} hours 小时\n * @param {Number} minutes 分钟\n * @param {Number} seconds 秒\n * @param {Number} milliseconds 毫秒\n * @returns {Date} 一个新的date\n */\nexport function setDateTime(\n date: Date,\n hours: number,\n minutes: number,\n seconds: number,\n milliseconds?: number\n): Date {\n return dayjs(date)\n .hour(hours)\n .minute(minutes)\n .second(seconds)\n .millisecond(milliseconds)\n .toDate();\n}\n\n/**\n * 减少月份\n * @param {Date} date 起始日期\n * @param {Number} num 月份数\n * @returns {Date}\n */\nexport function subtractMonth(date: Date, num: number): Date {\n return dayjs(date).subtract(num, 'month').toDate();\n}\n\n/**\n * 增加月份\n * @param {Date} date 起始日期\n * @param {Number} num 月份数\n * @returns {Date}\n */\nexport function addMonth(date: Date, num: number): Date {\n return dayjs(date).add(num, 'month').toDate();\n}\n\nexport type DateValue = string | Date | number;\nexport interface DisableDateObj { from?: string; to?: string; before?: string; after?: string }\nexport type DisableDate = Array | DisableDateObj | ((date: DateValue) => boolean);\n\nexport interface OptionsType {\n firstDayOfWeek: number;\n disableDate: DisableDate;\n minDate: Date;\n maxDate: Date;\n showWeekOfYear?: Boolean;\n dayjsLocale?: string;\n monthLocal?: string[];\n quarterLocal?: string[];\n cancelRangeSelectLimit?: boolean;\n}\n\nexport function getWeeks(\n { year, month }: { year: number; month: number },\n {\n firstDayOfWeek,\n showWeekOfYear = false,\n disableDate = () => false,\n minDate,\n maxDate,\n dayjsLocale = 'zh-cn',\n cancelRangeSelectLimit = false,\n }: OptionsType,\n) {\n const prependDay = getFirstDayOfMonth({ year, month });\n const appendDay = getLastDayOfMonth({ year, month });\n const maxDays = getDaysInMonth({ year, month });\n const daysArr = [];\n let i = 1;\n const today = getToday();\n for (i; i <= maxDays; i++) {\n const currentDay = new Date(year, month, i);\n daysArr.push({\n text: i,\n active: false,\n value: currentDay,\n disabled: (isFunction(disableDate) && disableDate(currentDay))\n || (!cancelRangeSelectLimit && outOfRanges(currentDay, minDate, maxDate)),\n now: isSame(today, currentDay),\n firstDayOfMonth: i === 1,\n lastDayOfMonth: i === maxDays,\n type: 'current-month',\n dayjsObj: dayjs(currentDay).locale(dayjsLocale),\n });\n }\n\n if (prependDay.getDay() !== firstDayOfWeek) {\n prependDay.setDate(0); // 上一月\n while (true) {\n daysArr.unshift({\n text: prependDay.getDate().toString(),\n active: false,\n value: new Date(prependDay),\n disabled: (isFunction(disableDate) && disableDate(prependDay)) || (!cancelRangeSelectLimit && outOfRanges(prependDay, minDate, maxDate)),\n additional: true, // 非当前月\n type: 'prev-month',\n dayjsObj: dayjs(prependDay).locale(dayjsLocale),\n });\n prependDay.setDate(prependDay.getDate() - 1);\n if (prependDay.getDay() === Math.abs(firstDayOfWeek + 6) % 7) break;\n }\n }\n\n const LEN = 42; // 显示6周\n while (daysArr.length < LEN) {\n appendDay.setDate(appendDay.getDate() + 1);\n daysArr.push({\n text: appendDay.getDate(),\n active: false,\n value: new Date(appendDay),\n disabled: (isFunction(disableDate) && disableDate(appendDay)) || (!cancelRangeSelectLimit && outOfRanges(appendDay, minDate, maxDate)),\n additional: true, // 非当前月\n type: 'next-month',\n dayjsObj: dayjs(appendDay).locale(dayjsLocale),\n });\n }\n\n const dataList = chunk(daysArr, 7);\n // 显示周数\n if (showWeekOfYear) {\n dataList.forEach((d) => {\n d.unshift({\n ...d[0],\n active: false,\n value: d[0].value,\n text: dayjs(d[0].value).locale(dayjsLocale).week(),\n dayjsObj: dayjs(d[0].value).locale(dayjsLocale),\n });\n });\n }\n\n return dataList;\n}\n\nexport function getQuarters(\n year: number,\n {\n disableDate = () => false,\n minDate,\n maxDate,\n quarterLocal,\n dayjsLocale = 'zh-cn',\n cancelRangeSelectLimit = false,\n }: OptionsType,\n) {\n const quarterArr = [];\n const today = getToday();\n\n for (let i = 1; i <= 4; i++) {\n const date = dayjs(new Date(year, 0)).quarter(i).toDate();\n\n quarterArr.push({\n value: date,\n now: isSame(date, today, 'quarter'),\n disabled: (isFunction(disableDate) && disableDate(date)) || (!cancelRangeSelectLimit && outOfRanges(date, minDate, maxDate)),\n active: false,\n text: quarterLocal[i - 1],\n dayjsObj: dayjs(date).locale(dayjsLocale),\n });\n }\n\n return chunk(quarterArr, 4);\n}\n\nexport function getYears(\n year: number,\n {\n disableDate = () => false,\n minDate,\n maxDate,\n dayjsLocale = 'zh-cn',\n cancelRangeSelectLimit = false,\n }: OptionsType,\n) {\n const startYear = parseInt((year / 10).toString(), 10) * 10;\n const endYear = startYear + 9;\n\n const yearArr = [];\n\n const today = getToday();\n\n for (let i = startYear; i <= endYear; i++) {\n const date = new Date(i, 0);\n\n yearArr.push({\n value: date,\n now: isSame(date, today, 'year'),\n disabled: (isFunction(disableDate) && disableDate(date)) || (!cancelRangeSelectLimit && outOfRanges(date, minDate, maxDate)),\n active: false,\n text: `${date.getFullYear()}`,\n dayjsObj: dayjs(date).locale(dayjsLocale),\n });\n }\n\n return chunk(yearArr, 3);\n}\n\nexport function getMonths(year: number, params: OptionsType) {\n const {\n disableDate = () => false, minDate, maxDate, monthLocal, dayjsLocale = 'zh-cn', cancelRangeSelectLimit = false,\n } = params;\n const MonthArr = [];\n const today = getToday();\n\n for (let i = 0; i <= 11; i++) {\n const date = new Date(year, i);\n\n MonthArr.push({\n value: date,\n now: isSame(date, today, 'month'),\n disabled: (isFunction(disableDate) && disableDate(date)) || (!cancelRangeSelectLimit && outOfRanges(date, minDate, maxDate)),\n active: false,\n text: monthLocal[date.getMonth()], // `${date.getMonth() + 1} ${monthText || '月'}`,\n dayjsObj: dayjs(date).locale(dayjsLocale),\n });\n }\n\n return chunk(MonthArr, 3);\n}\n\nexport interface DateTime {\n additional: boolean;\n active: boolean;\n highlight: boolean;\n hoverHighlight: boolean;\n startOfRange: boolean;\n endOfRange: boolean;\n hoverStartOfRange: boolean;\n hoverEndOfRange: boolean;\n value: Date;\n}\n\ninterface FlagActiveOptions {\n start: Date;\n end: Date;\n hoverStart: Date;\n hoverEnd: Date;\n type: any;\n isRange: boolean;\n value: DateValue | DateValue[];\n multiple: boolean;\n}\n\nexport function flagActive(data: any[], { ...args }: FlagActiveOptions) {\n const {\n start,\n end,\n hoverStart,\n hoverEnd,\n type = 'date',\n isRange = false,\n value,\n multiple = false,\n } = args;\n\n // 周选择器不更改 cell 样式\n if (type === 'week') return data;\n\n if (!isRange) {\n return data.map((row: any[]) => row.map((item: DateTime) => {\n const _item = item;\n\n if (multiple) {\n _item.active = (value as DateValue[])?.some?.((val) => isSame(dayjs(val).toDate(), _item.value, type) && !_item.additional);\n } else {\n _item.active = start && isSame(item.value, start, type) && !_item.additional;\n }\n\n return _item;\n }));\n }\n\n return data.map((row: any[]) => row.map((item: DateTime) => {\n const _item = item;\n const date = item.value;\n\n const isStart = start && isSame(start, date, type);\n const isHoverStart = hoverStart && isSame(hoverStart, date, type);\n const isEnd = end && isSame(end, date, type);\n const isHoverEnd = hoverEnd && isSame(hoverEnd, date, type);\n _item.active = (isStart || isEnd) && !_item.additional;\n\n if (start && end) {\n _item.highlight = dayjs(date).isBetween(start, end, type, '[]') && !_item.additional;\n _item.startOfRange = isStart;\n _item.endOfRange = isEnd;\n }\n\n if (hoverStart && hoverEnd) {\n _item.hoverHighlight = dayjs(date).isBetween(hoverStart, hoverEnd, type, '[]') && !_item.additional;\n _item.hoverStartOfRange = isHoverStart;\n _item.hoverEndOfRange = isHoverEnd;\n }\n return _item;\n }));\n}\n\n/**\n * 返回时间对象的小时、分钟、秒、12小时制标识\n * @param {String} timeFormat 'pm 20:11:11:333'\n * @returns {Object}\n */\nexport function extractTimeObj(timeFormat: string = '') {\n const matchedMeridiem = timeFormat.match(/[ap]m/i) || [''];\n const timeReg = /\\d{1,2}(:\\d{1,2})?(:\\d{1,2})?(:\\d{1,3})?/;\n const matchedTimeStr = timeFormat.match(timeReg) || ['0:0:0:0'];\n const [hours = 0, minutes = 0, seconds = 0, milliseconds = 0] = matchedTimeStr[0].split(':');\n\n return {\n hours: +hours,\n minutes: +minutes,\n seconds: +seconds,\n milliseconds: +milliseconds,\n meridiem: matchedMeridiem[0],\n };\n}\n\n/**\n * 日期是否可用\n * @param {Object} { value, disableDate, mode, format }\n * @returns {Boolean}\n */\nexport function isEnabledDate({\n value,\n disableDate,\n mode,\n format,\n}: {\n value: Date;\n mode: 'year' | 'month' | 'date' | 'quarter' | 'week';\n format: string;\n disableDate: any;\n}): boolean {\n if (!disableDate) return true;\n\n const availableMode = mode === 'quarter' ? 'date' : mode;\n\n let isEnabled = true;\n // 值类型为 Function 则表示返回值为 true 的日期会被禁用\n if (isFunction(disableDate)) {\n return !disableDate(value);\n }\n\n // 禁用日期,示例:['A', 'B'] 表示日期 A 和日期 B 会被禁用。\n if (Array.isArray(disableDate)) {\n const formattedDisabledDate = disableDate.map((item: string) => parseToDayjs(item, format));\n // eslint-disable-next-line\n const isIncludes = formattedDisabledDate.some(item => item.isSame(dayjs(value)));\n return !isIncludes;\n }\n\n // { from: 'A', to: 'B' } 表示在 A 到 B 之间的日期会被禁用(包括A和B)。\n // eslint-disable-next-line\n const { from, to, before, after } = disableDate;\n\n if (from && to) {\n const compareMin = dayjs(from).startOf('day');\n const compareMax = dayjs(to).endOf('day');\n return !dayjs(value).isBetween(compareMin, compareMax, availableMode, '[]');\n }\n\n // 最小时间与最大时间的边界,防止正负时区出现禁用时间不一致的情况\n const min = before ? new Date(dayjs(before).startOf('day').format()) : null;\n const max = after ? new Date(dayjs(after).endOf('day').format()) : null;\n\n // { before: 'A', after: 'B' } 表示在 A 之前和在 B 之后的日期都会被禁用。\n if (max && min) {\n const compareMin = dayjs(new Date(min));\n const compareMax = dayjs(new Date(max));\n\n isEnabled = dayjs(value).isBetween(compareMin, compareMax, availableMode, '[]');\n } else if (min) {\n const compareMin = dayjs(new Date(min));\n isEnabled = !dayjs(value).isBefore(compareMin, availableMode);\n } else if (max) {\n const compareMax = dayjs(new Date(max));\n isEnabled = !dayjs(value).isAfter(compareMax, availableMode);\n }\n return isEnabled;\n}\n\n/**\n * formatDate 方法需要date作为入参,部分场景需要将timestamp或格式化后的时间string转换为date进行使用\n */\nexport function covertToDate(value: string, valueType: string) {\n return valueType === 'time-stamp'\n ? new Date(value)\n : dayjs(value, valueType).toDate();\n}\n","function _objectDestructuringEmpty(t) {\n if (null == t) throw new TypeError(\"Cannot destructure \" + t);\n}\nexport { _objectDestructuringEmpty as default };","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdDatePickerProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否允许输入日期 */\n allowInput: Boolean,\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否显示清除按钮 */\n clearable: Boolean,\n /** 时间选择器默认值,当 value/defaultValue 未设置值时有效 */\n defaultTime: {\n type: String,\n default: '00:00:00',\n },\n /** 禁用日期,示例:['A', 'B'] 表示日期 A 和日期 B 会被禁用。`{ from: 'A', to: 'B' }` 表示在 A 到 B 之间的日期会被禁用。`{ before: 'A', after: 'B' }` 表示在 A 之前和在 B 之后的日期都会被禁用。其中 A = '2021-01-01',B = '2021-02-01'。值类型为 Function 则表示返回值为 true 的日期会被禁用 */\n disableDate: {\n type: [Object, Array, Function] as PropType,\n },\n /** 是否禁用组件 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 是否显示时间选择 */\n enableTimePicker: Boolean,\n /** 第一天从星期几开始 */\n firstDayOfWeek: {\n type: Number,\n validator(val: TdDatePickerProps['firstDayOfWeek']): boolean {\n if (!val) return true;\n return [1, 2, 3, 4, 5, 6, 7].includes(val);\n },\n },\n /** 仅用于格式化日期显示的格式,不影响日期值。注意和 `valueType` 的区别,`valueType`会直接决定日期值 `value` 的格式。全局配置默认为:'YYYY-MM-DD',[详细文档](https://day.js.org/docs/en/display/format) */\n format: {\n type: String,\n default: undefined,\n },\n /** 透传给输入框(Input)组件的参数 */\n inputProps: {\n type: Object as PropType,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 选择器模式 */\n mode: {\n type: String as PropType,\n default: 'date' as TdDatePickerProps['mode'],\n validator(val: TdDatePickerProps['mode']): boolean {\n if (!val) return true;\n return ['year', 'quarter', 'month', 'week', 'date'].includes(val);\n },\n },\n /** 支持多选日期,但不支持在range-picker中,或与enableTimePicker、allowInput 一起使用 */\n multiple: Boolean,\n /** 决定在日期时间选择器的场景下是否需要点击确认按钮才完成选择动作,默认为`true` */\n needConfirm: {\n type: Boolean,\n default: true,\n },\n /** 占位符 */\n placeholder: {\n type: [String, Array] as PropType,\n default: undefined as TdDatePickerProps['placeholder'],\n },\n /** 透传给 popup 组件的参数 */\n popupProps: {\n type: Object as PropType,\n },\n /** 用于自定义组件前置图标 */\n prefixIcon: {\n type: Function as PropType,\n },\n /** 预设快捷日期选择,示例:`{ '元旦': '2021-01-01', '昨天': dayjs().subtract(1, 'day').format('YYYY-MM-DD'), '特定日期': () => ['2021-02-01'] }` */\n presets: {\n type: Object as PropType,\n },\n /** 预设面板展示区域(包含确定按钮) */\n presetsPlacement: {\n type: String as PropType,\n default: 'bottom' as TdDatePickerProps['presetsPlacement'],\n validator(val: TdDatePickerProps['presetsPlacement']): boolean {\n if (!val) return true;\n return ['left', 'top', 'right', 'bottom'].includes(val);\n },\n },\n /** 是否只读,优先级大于 allowInput */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 透传 SelectInput 筛选器输入框组件的全部属性 */\n selectInputProps: {\n type: Object as PropType,\n },\n /** 输入框尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdDatePickerProps['size'],\n validator(val: TdDatePickerProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdDatePickerProps['status'],\n validator(val: TdDatePickerProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 用于自定义组件后置图标 */\n suffixIcon: {\n type: Function as PropType,\n },\n /** 透传 TimePicker 组件属性 */\n timePickerProps: {\n type: Object as PropType,\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 选中值 */\n value: {\n type: [String, Number, Array, Date] as PropType,\n default: undefined as TdDatePickerProps['value'],\n },\n modelValue: {\n type: [String, Number, Array, Date] as PropType,\n default: undefined as TdDatePickerProps['value'],\n },\n /** 选中值,非受控属性 */\n defaultValue: {\n type: [String, Number, Array, Date] as PropType,\n default: '' as TdDatePickerProps['defaultValue'],\n },\n /** 自定义选中项呈现的内容 */\n valueDisplay: {\n type: [String, Function] as PropType,\n },\n /** 用于格式化日期的值,仅支持部分格式,时间戳、日期等。⚠️ `YYYYMMDD` 这种格式不支持,请勿使用,如果希望支持可以给 `dayjs` 提个 PR。注意和 `format` 的区别,`format` 仅用于处理日期在页面中呈现的格式。`ValueTypeEnum` 即将废弃,请更为使用 `DatePickerValueType` */\n valueType: {\n type: String as PropType,\n default: '' as TdDatePickerProps['valueType'],\n },\n /** 当输入框失去焦点时触发 */\n onBlur: Function as PropType,\n /** 选中值发生变化时触发 */\n onChange: Function as PropType,\n /** 如果存在“确定”按钮,则点击“确定”按钮时触发 */\n onConfirm: Function as PropType,\n /** 输入框获得焦点时触发 */\n onFocus: Function as PropType,\n /** 面板选中值后触发 */\n onPick: Function as PropType,\n /** 点击预设按钮后触发 */\n onPresetClick: Function as PropType,\n};\n","import { defineComponent, PropType, ref, computed, watch } from 'vue';\nimport { PaginationMini, JumperTrigger } from '../../../pagination';\nimport TSelect from '../../../select';\nimport { useConfig, usePrefixClass } from '@tdesign/shared-hooks';\n\nimport type { TdDatePickerProps } from '../../type';\n\nexport default defineComponent({\n name: 'TDatePickerHeader',\n props: {\n mode: {\n type: String as PropType,\n default: 'date',\n },\n year: Number,\n month: Number,\n 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 '@tdesign/shared-hooks';\nimport { extractTimeObj } from '@tdesign/common-js/date-picker/utils';\nimport { Dayjs } from 'dayjs';\n\nexport default defineComponent({\n name: 'TDatePickerCell',\n props: {\n time: String,\n text: [String, Number],\n value: Date,\n active: Boolean,\n highlight: Boolean,\n disabled: Boolean,\n startOfRange: Boolean,\n endOfRange: Boolean,\n hoverHighlight: Boolean,\n hoverStartOfRange: Boolean,\n hoverEndOfRange: Boolean,\n additional: Boolean,\n now: Boolean,\n firstDayOfMonth: Boolean,\n lastDayOfMonth: Boolean,\n onClick: Function,\n onMouseEnter: Function,\n dayjsObj: Dayjs,\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('date-picker__cell');\n\n const cellClass = computed(() => [\n COMPONENT_NAME.value,\n {\n [`${COMPONENT_NAME.value}--now`]: props.now,\n [`${COMPONENT_NAME.value}--active`]: props.active,\n [`${COMPONENT_NAME.value}--disabled`]: props.disabled,\n [`${COMPONENT_NAME.value}--highlight`]: props.highlight,\n [`${COMPONENT_NAME.value}--hover-highlight`]: props.hoverHighlight,\n [`${COMPONENT_NAME.value}--active-start`]: props.startOfRange,\n [`${COMPONENT_NAME.value}--active-end`]: props.endOfRange,\n [`${COMPONENT_NAME.value}--hover-start`]: props.hoverStartOfRange,\n [`${COMPONENT_NAME.value}--hover-end`]: props.hoverEndOfRange,\n [`${COMPONENT_NAME.value}--additional`]: props.additional,\n [`${COMPONENT_NAME.value}--first-day-of-month`]: props.firstDayOfMonth,\n [`${COMPONENT_NAME.value}--last-day-of-month`]: props.lastDayOfMonth,\n },\n ]);\n\n function handleClick(e: MouseEvent) {\n if (props.disabled) return;\n if (props.time) {\n const { hours, minutes, seconds, milliseconds, meridiem } = extractTimeObj(props.time);\n // am pm 12小时制转化 24小时制\n let nextHours = hours;\n if (/am/i.test(meridiem) && nextHours === 12) nextHours -= 12;\n if (/pm/i.test(meridiem) && nextHours < 12) nextHours += 12;\n props.value.setHours(nextHours);\n props.value.setMinutes(minutes);\n props.value.setSeconds(seconds);\n props.value.setMilliseconds(milliseconds);\n }\n props.onClick?.(props.value, { e });\n }\n\n function handleMouseEnter() {\n if (props.disabled) return;\n if (props.time) {\n const { hours, minutes, seconds, milliseconds, meridiem } = extractTimeObj(props.time);\n // am pm 12小时制转化 24小时制\n let nextHours = hours;\n if (/am/i.test(meridiem) && nextHours === 12) nextHours -= 12;\n if (/pm/i.test(meridiem) && nextHours < 12) nextHours += 12;\n props.value.setHours(nextHours);\n props.value.setMinutes(minutes);\n props.value.setSeconds(seconds);\n props.value.setMilliseconds(milliseconds);\n }\n props.onMouseEnter?.(props.value);\n }\n\n return () => (\n \n
    {props.text}
    \n \n );\n },\n});\n","import { defineComponent, PropType, computed } from 'vue';\n\nimport TDatePickerCell from './Cell';\nimport { useConfig, usePrefixClass } from '@tdesign/shared-hooks';\nimport { parseToDayjs } from '@tdesign/common-js/date-picker/format';\nimport { isArray } from 'lodash-es';\n\nimport type { TdDatePickerProps, DateMultipleValue } from '../../type';\n\nexport default defineComponent({\n name: 'TDatePickerTable',\n props: {\n mode: {\n type: String as PropType,\n default: 'date',\n },\n value: [String, Number, Array, Date],\n format: String,\n firstDayOfWeek: Number,\n multiple: Boolean,\n data: Array,\n time: String,\n onCellClick: Function,\n onCellMouseEnter: Function,\n onCellMouseLeave: Function,\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('date-picker__table');\n const { globalConfig } = useConfig('datePicker');\n const { dayjsLocale } = globalConfig.value;\n\n const weekArr = computed(() => {\n const weekArr = [];\n let wi = props.firstDayOfWeek - 1;\n const len = globalConfig.value.weekdays.length;\n while (weekArr.length < len) {\n weekArr.push(globalConfig.value.weekdays[wi]);\n wi = (wi + len + 1) % len;\n }\n\n if (props.mode === 'week') weekArr.unshift(globalConfig.value.weekAbbreviation);\n\n return weekArr;\n });\n\n const showThead = computed(() => props.mode === 'date' || props.mode === 'week');\n\n // 高亮周区间\n const weekRowClass = (value: any, targetValue: Date) => {\n if (props.mode !== 'week' || !value) return {};\n\n if (isArray(value)) {\n if (!value.length) return {};\n const [startObj, endObj] = value.map((v) => v && parseToDayjs(v, props.format));\n const startYear = startObj && startObj.year();\n const startWeek = startObj?.locale?.(dayjsLocale)?.week?.();\n const endYear = endObj && endObj.year();\n const endWeek = endObj?.locale?.(dayjsLocale)?.week?.();\n\n const targetObj = parseToDayjs(targetValue, props.format);\n const targetYear = targetObj.year();\n const targetWeek = targetObj.week();\n const isActive =\n (targetYear === startYear && targetWeek === startWeek) || (targetYear === endYear && targetWeek === endWeek);\n const isRange =\n targetYear >= startYear && targetYear <= endYear && targetWeek > startWeek && targetWeek < endWeek;\n return {\n // 同年同周\n [`${COMPONENT_NAME.value}-${props.mode}-row--active`]: isActive,\n [`${COMPONENT_NAME.value}-${props.mode}-row--range`]: isRange,\n };\n }\n\n const valueDayjs = parseToDayjs(value, props.format).locale(dayjsLocale);\n const targetDayjs = parseToDayjs(targetValue, props.format).locale(dayjsLocale);\n return {\n [`${COMPONENT_NAME.value}-${props.mode}-row--active`]:\n valueDayjs.year() === targetDayjs.year() && valueDayjs.week() === targetDayjs.week(),\n };\n };\n\n const multipleWeekRowClass = (value: DateMultipleValue, targetValue: Date) => {\n const targetDayjs = parseToDayjs(targetValue, props.format);\n if (props.mode !== 'week' || (Array.isArray(value) && !value.length)) return {};\n const isSomeYearWeek = value\n .map?.((v) => parseToDayjs(v, props.format))\n .some((item) => item.week() === targetDayjs.week() && item.year() === targetDayjs.year());\n return {\n [`${COMPONENT_NAME.value}-${props.mode}-row--active`]: isSomeYearWeek,\n };\n };\n const activeRowCss = props.multiple ? multipleWeekRowClass : weekRowClass;\n\n return () => (\n
    props.onCellMouseLeave?.({ e })}>\n \n {showThead.value && (\n \n \n {weekArr.value.map((value: string, i: number) => (\n \n ))}\n \n \n )}\n \n {props.data.map((row: Array, i: number) => (\n \n {row.map((col: any, j: number) => (\n \n ))}\n \n ))}\n \n
    \n {value}\n
    \n
    \n );\n },\n});\n","export const AM = 'am';\nexport const PM = 'pm';\nexport const MERIDIEM_LIST = [AM, PM];\n\nexport const TIME_PICKER_EMPTY: Array = [undefined, undefined];\n\nexport const DEFAULT_STEPS = [1, 1, 1];\nexport const DEFAULT_FORMAT = 'HH:mm:ss';\nexport const EMPTY_VALUE = -1;\n\nexport enum EPickerCols {\n hour = 'hour',\n minute = 'minute',\n second = 'second',\n milliSecond = 'millisecond',\n meridiem = 'meridiem',\n}\n\n// RegExp\nexport const TIME_FORMAT = /\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g;\n// 上下午前置\nexport const PRE_MERIDIEM_FORMAT = /^(a|A)\\s+?[h]{1,2}(:[m]{1,2}(:[s]{1,2})?)?$/;\n// 上下午后置\nexport const POST_MERIDIEM_FORMAT = /^[h]{1,2}(:[m]{1,2}(:[s]{1,2})?)?(\\s+(a|A))?$/;\n// 12小时制\nexport const TWELVE_HOUR_FORMAT = /[h]{1}/;\n// HH:mm\nexport const HM_FORMAT = /[hH]{1,2}:m{1,2}/;\n// HH:mm:ss\nexport const HMS_FORMAT = /[hH]{1,2}:m{1,2}:s{1,2}/;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTimePickerProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否允许直接输入时间 */\n allowInput: Boolean,\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否允许清除选中值 */\n clearable: Boolean,\n /** 禁用时间项的配置函数 */\n disableTime: {\n type: Function as PropType,\n },\n /** 是否禁用组件 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 用于格式化时间,[详细文档](https://day.js.org/docs/en/display/format) */\n format: {\n type: String,\n default: 'HH:mm:ss',\n },\n /** 是否隐藏禁用状态的时间项 */\n hideDisabledTime: {\n type: Boolean,\n default: true,\n },\n /** 透传给输入框(Input)组件的参数 */\n inputProps: {\n type: Object as PropType,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 透传 Popup 组件全部属性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 预设快捷时间选择,示例:`{ '前一小时': '11:00:00' }` */\n presets: {\n type: Object as PropType,\n },\n /** 只读状态,优先级大于 `allowInput` */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 透传 SelectInput 筛选器输入框组件的全部属性 */\n selectInputProps: {\n type: Object as PropType,\n },\n /** 尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdTimePickerProps['size'],\n validator(val: TdTimePickerProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdTimePickerProps['status'],\n validator(val: TdTimePickerProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 时间间隔步数,数组排列 [小时, 分钟, 秒],示例:[2, 1, 1] 或者 ['2', '1', '1'] */\n steps: {\n type: Array as PropType,\n default: (): TdTimePickerProps['steps'] => [1, 1, 1],\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 选中值 */\n value: {\n type: String as PropType,\n default: undefined as TdTimePickerProps['value'],\n },\n modelValue: {\n type: String as PropType,\n default: undefined as TdTimePickerProps['value'],\n },\n /** 选中值,非受控属性 */\n defaultValue: {\n type: String as PropType,\n default: '' as TdTimePickerProps['defaultValue'],\n },\n /** 自定义选中项呈现的内容 */\n valueDisplay: {\n type: [String, Function] as PropType,\n },\n /** 当输入框失去焦点时触发,value 表示组件当前有效值 */\n onBlur: Function as PropType,\n /** 选中值发生变化时触发 */\n onChange: Function as PropType,\n /** 点击清空按钮时触发 */\n onClear: Function as PropType,\n /** 面板关闭时触发 */\n onClose: Function as PropType,\n /** 点击确认按钮时触发 */\n onConfirm: Function as PropType,\n /** 输入框获得焦点时触发,value 表示组件当前有效值 */\n onFocus: Function as PropType,\n /** 当输入框内容发生变化时触发,参数 value 表示组件当前有效值 */\n onInput: Function as PropType,\n /** 面板打开时触发 */\n onOpen: Function as PropType,\n /** 面板选中值后触发 */\n onPick: Function as PropType,\n};\n","import { isBoolean } from 'lodash-es';\nimport { PropType } from 'vue';\nimport dayjs from 'dayjs';\n\nimport * as Props from '../props';\nimport { EPickerCols } from '@tdesign/common-js/time-picker/const';\nimport { TdTimePickerProps, TdTimeRangePickerProps } from '../type';\n\n// 布尔类型\nconst BooleanType = {\n type: Boolean,\n default: true,\n validator(v: boolean): boolean {\n return isBoolean(v);\n },\n};\n\nexport const panelProps = () => ({\n disabled: {\n ...BooleanType,\n ...{\n default: false,\n },\n },\n isFocus: {\n ...BooleanType,\n ...{\n default: false,\n },\n },\n value: {\n type: String,\n default: '',\n },\n format: {\n type: String,\n default: 'HH:mm:ss',\n },\n steps: {\n type: Array as PropType>,\n ...{\n default: [1, 1, 1],\n },\n },\n isShowPanel: {\n ...BooleanType,\n ...{\n default: true,\n },\n },\n activeIndex: {\n type: Number,\n },\n presets: {\n type: Object as PropType,\n },\n hideDisabledTime: {\n ...Props.default.hideDisabledTime,\n },\n disableTime: {\n type: Function,\n },\n isFooterDisplay: {\n ...BooleanType,\n },\n});\n\nexport const panelColProps = () => ({\n format: {\n type: String,\n default: 'HH:mm:ss',\n },\n cols: {\n type: Array as PropType>,\n default: () => [EPickerCols.hour, EPickerCols.minute, EPickerCols.second],\n },\n value: {\n type: String,\n default: '',\n },\n range: {\n type: Array as PropType>,\n default: () => [] as Array,\n },\n steps: {\n type: Array as PropType>,\n ...{\n default: [1, 1, 1],\n },\n },\n hideDisabledTime: {\n ...Props.default.hideDisabledTime,\n },\n disableTime: {\n type: Function,\n },\n localeMeridiems: {\n type: Array as PropType>,\n },\n});\n","import dayjs from 'dayjs';\nimport advancedFormat from 'dayjs/plugin/advancedFormat';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { EPickerCols, TIME_FORMAT } from './const';\n\ndayjs.extend(advancedFormat);\ndayjs.extend(customParseFormat);\n\n// 判断是否输入的值是合法的timepicker的值\nexport function validateInputValue(value: string, format: string) {\n return dayjs(value, format).format(format) === value;\n}\n\n// 转换输入值为标准格式的timepicker的值\nexport function formatInputValue(value: string, format: string) {\n return dayjs(value, format).format(format);\n}\n\n// 计算最接近的时间点\nexport function closestLookup(\n availableArr: Array,\n calcVal: number,\n step: number\n) {\n if (step <= 1) return calcVal;\n return availableArr.sort(\n (a, b) => Math.abs(calcVal + 1 - a) - Math.abs(calcVal + 1 - b)\n )[0];\n}\n\nexport function getPickerCols(format:string) {\n const renderCol: EPickerCols[] = [];\n const {\n meridiem, hour, minute, second, milliSecond,\n } = EPickerCols;\n const match = format.match(TIME_FORMAT);\n match.forEach((m) => {\n switch (m) {\n case 'H':\n case 'HH':\n case 'h':\n case 'hh':\n renderCol.push(hour);\n break;\n case 'a':\n case 'A':\n renderCol.push(meridiem);\n break;\n case 'm':\n case 'mm':\n renderCol.push(minute);\n break;\n case 's':\n case 'ss':\n renderCol.push(second);\n break;\n case 'SSS':\n renderCol.push(milliSecond);\n break;\n default:\n break;\n }\n });\n return renderCol;\n}\n","import { computed, defineComponent, ref, watch, toRefs, onMounted, reactive, nextTick } from 'vue';\nimport { range, debounce, padStart } from 'lodash-es';\n\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\n\nimport { panelColProps } from './props';\nimport { EPickerCols, TWELVE_HOUR_FORMAT, AM, PM, MERIDIEM_LIST } from '@tdesign/common-js/time-picker/const';\nimport { closestLookup, getPickerCols } from '@tdesign/common-js/time-picker/utils';\nimport { useCommonClassName, useConfig, usePrefixClass } from '@tdesign/shared-hooks';\n\ndayjs.extend(customParseFormat);\n\nconst timeArr = [EPickerCols.hour, EPickerCols.minute, EPickerCols.second, EPickerCols.milliSecond];\n\nconst panelOffset = {\n top: 15,\n bottom: 21,\n};\n\nexport default defineComponent({\n name: 'TTimePickerPanelCol',\n props: {\n ...panelColProps(),\n position: String,\n triggerScroll: Boolean,\n onChange: Function,\n resetTriggerScroll: Function,\n isShowPanel: Boolean,\n },\n setup(props) {\n const { globalConfig } = useConfig('timePicker');\n const COMPONENT_NAME = usePrefixClass('time-picker__panel');\n const { STATUS } = useCommonClassName();\n\n const { steps, value, format, position, triggerScroll } = toRefs(props);\n\n const cols = ref>([]);\n const bodyRef = ref();\n const maskRef = ref(null);\n // 每个滚动列的ref 顺序不定 所以只要有5列标识即可\n const colsRef = reactive>({\n 0: null,\n 1: null,\n 2: null,\n 3: null,\n 4: null,\n 5: null,\n });\n\n const dayjsValue = computed(() => {\n const isStepsSet = !!steps.value.filter((step) => Number(step) > 1).length;\n\n if (value.value) return dayjs(value.value, format.value);\n\n if (isStepsSet) return dayjs().hour(0).minute(0).second(0);\n\n return dayjs();\n });\n\n // 面板打开时 触发滚动 初始化面板\n watch(\n () => dayjsValue.value,\n () => {\n if (dayjsValue.value && value.value) updateTimeScrollPos(true);\n },\n );\n\n // 时间通过外部触发时 同样触发滚动\n watch(\n () => triggerScroll.value,\n () => {\n if (triggerScroll.value) {\n updateTimeScrollPos(true);\n }\n },\n );\n\n onMounted(() => {\n cols.value = getPickerCols(format.value);\n });\n\n // 获取每个时间的高度\n const getItemHeight = () => {\n const maskDom = maskRef.value?.querySelector('div');\n if (!maskDom) {\n return {\n offsetHeight: 0,\n margin: 0,\n };\n }\n return {\n offsetHeight: parseFloat(getComputedStyle(maskDom).height),\n margin: parseFloat(getComputedStyle(maskDom).marginTop),\n };\n };\n\n const timeItemCanUsed = (col: EPickerCols, el: string | number) => {\n const colIdx = timeArr.indexOf(col);\n if (colIdx !== -1) {\n const params: [number, number, number, number] = [\n dayjsValue.value.hour(),\n dayjsValue.value.minute(),\n dayjsValue.value.second(),\n dayjsValue.value.millisecond(),\n ];\n params[colIdx] = Number(el);\n return !props.disableTime?.(...params, { partial: position.value || 'start' })?.[col]?.includes(Number(el));\n }\n return true;\n };\n\n // 获取需要渲染的column\n const getColList = (col: EPickerCols) => {\n let count = 0;\n\n if (timeArr.includes(col)) {\n // hour、minute and second columns\n const colIdx = timeArr.indexOf(col);\n const colStep = steps.value[colIdx] || 1;\n\n if (col === EPickerCols.hour)\n count = TWELVE_HOUR_FORMAT.test(format.value) ? 11 : 23; // 小时最大为23 12小时制最大为11\n else if (col === EPickerCols.milliSecond) count = 999; // 毫秒最大为999\n else count = 59;\n\n const colList = range(0, count + 1, Number(colStep)).map((v) => padStart(String(v), 2, '0')) || [];\n return props.hideDisabledTime && !!props.disableTime\n ? colList.filter((t) => {\n const params: [number, number, number, number] = [\n dayjsValue.value.hour(),\n dayjsValue.value.minute(),\n dayjsValue.value.second(),\n dayjsValue.value.millisecond(),\n ];\n params[colIdx] = Number(t);\n return !props\n .disableTime?.(...params, { partial: position.value || 'start' })\n ?.[col]?.includes(Number(t));\n })\n : colList;\n }\n // meridiem column\n return MERIDIEM_LIST;\n };\n\n const getScrollDistance = (col: EPickerCols, time: number | string) => {\n if (col === EPickerCols.hour && /[h]{1}/.test(format.value))\n // eslint-disable-next-line no-param-reassign\n (time as number) %= 12; // 一定是数字,直接cast\n\n const itemIdx = getColList(col).indexOf(padStart(String(time), 2, '0'));\n const { offsetHeight, margin } = getItemHeight();\n const timeItemTotalHeight = offsetHeight + margin;\n const distance = Math.abs(Math.max(0, itemIdx) * timeItemTotalHeight);\n return distance;\n };\n\n const handleScroll = (col: EPickerCols, idx: number, e: MouseEvent) => {\n let val: number | string;\n let formattedVal: string;\n if (!props.isShowPanel) return;\n\n const scrollTop = (colsRef[idx]?.scrollTop || 0) + panelOffset.top;\n const { offsetHeight, margin } = getItemHeight();\n const timeItemTotalHeight = offsetHeight + margin;\n let colStep = Math.abs(Math.round(scrollTop / timeItemTotalHeight + 0.5));\n\n const meridiem = MERIDIEM_LIST[Math.min(colStep - 1, 1)].toLowerCase(); // 处理PM、AM与am、pm\n\n if (Number.isNaN(colStep)) colStep = 1;\n if (timeArr.includes(col)) {\n // hour、minute、 second and milliSecond\n let max = 59;\n if (col === EPickerCols.hour) max = /[h]{1}/.test(format.value) ? 11 : 23; // 小时最大为23 12小时制最大为11\n else if (col === EPickerCols.milliSecond) max = 999; // 毫秒最大为999\n\n const colIdx = timeArr.indexOf(col);\n const availableArr = range(0, max + 1, Number(steps.value[colIdx]) || 1);\n val = closestLookup(\n availableArr,\n Number(getColList(col)[Math.min(colStep - 1, max + 1, availableArr.length - 1)]),\n Number(steps.value[colIdx]) || 1,\n );\n if (Number.isNaN(val)) val = availableArr[availableArr.length - 1];\n if (col === EPickerCols.hour && cols.value.includes(EPickerCols.meridiem) && dayjsValue.value.hour() >= 12) {\n // 如果是十二小时制需要再判断\n val = Number(val) + 12;\n }\n }\n // meridiem columns\n else val = meridiem;\n\n const distance = getScrollDistance(col, val);\n if (!dayjs(dayjsValue.value).isValid() || (value.value && !dayjs(value.value, format.value, true).isValid()))\n return;\n\n if (timeArr.includes(col)) {\n // @ts-ignore\n // TODO: 这里不好改,要改的话需要分类型处理\n if (timeItemCanUsed(col, val)) formattedVal = dayjsValue.value[col]?.(val).format(format.value);\n else formattedVal = dayjsValue.value.format(format.value);\n } else {\n const currentHour = dayjsValue.value.hour();\n if (meridiem === AM && currentHour >= 12) {\n formattedVal = dayjsValue.value.hour(currentHour - 12).format(format.value);\n } else if (meridiem === PM && currentHour < 12) {\n formattedVal = dayjsValue.value.hour(currentHour + 12).format(format.value);\n } else {\n formattedVal = dayjsValue.value.format(format.value);\n }\n }\n if (formattedVal !== value.value) props.onChange?.(formattedVal, e);\n\n if (distance !== scrollTop) {\n const scrollCtrl = colsRef[cols.value.indexOf(col)];\n\n if (!scrollCtrl || scrollCtrl.scrollTop === distance) return;\n\n scrollCtrl.scrollTo?.({\n top: distance,\n behavior: 'smooth',\n });\n }\n };\n\n const scrollToTime = (\n col: EPickerCols,\n time: number | string,\n idx: number,\n behavior: 'auto' | 'smooth' = 'auto',\n ) => {\n const distance = getScrollDistance(col, time);\n const scrollCtrl = colsRef[idx];\n if (!scrollCtrl || scrollCtrl.scrollTop === distance || !timeItemCanUsed(col, time)) return;\n\n scrollCtrl.scrollTo?.({\n top: distance,\n behavior,\n });\n };\n\n const handleTimeItemClick = (col: EPickerCols, el: string | number, idx: number, e: MouseEvent) => {\n if (!timeItemCanUsed(col, el)) return;\n if (timeArr.includes(col)) {\n if (\n col === EPickerCols.hour &&\n dayjsValue.value.format('a') === PM &&\n cols.value.includes(EPickerCols.meridiem)\n ) {\n // eslint-disable-next-line no-param-reassign\n el = Number(el) + 12;\n }\n scrollToTime(col, el, idx, 'smooth');\n } else {\n const currentHour = dayjsValue.value.hour();\n if (el === AM && currentHour >= 12) {\n props.onChange?.(dayjsValue.value.hour(currentHour - 12).format(format.value), e);\n } else if (el === PM && currentHour < 12) {\n props.onChange?.(dayjsValue.value.hour(currentHour + 12).format(format.value), e);\n }\n }\n };\n\n // update each columns scroll distance\n const updateTimeScrollPos = (isAutoScroll = false) => {\n const behavior = value.value && !isAutoScroll ? 'smooth' : 'auto';\n const isStepsSet = !!steps.value.filter((step) => Number(step) > 1).length;\n nextTick(() => {\n cols.value.forEach((col: EPickerCols, idx: number) => {\n if (!isStepsSet || (isStepsSet && value.value)) {\n // 如果没有设置大于1的steps或设置了大于1的step 正常处理滚动\n scrollToTime(\n col,\n // @ts-ignore\n // TODO: 这里不好改,要改的话需要分类型处理\n timeArr.includes(col) ? dayjsValue.value[col]?.() : dayjsValue.value.format('a'),\n idx,\n behavior,\n );\n } else {\n // 否则初始化到每列第一个选项\n scrollToTime(col, getColList(col)?.[0], idx, behavior);\n }\n });\n });\n\n props.resetTriggerScroll();\n };\n\n const isCurrent = (col: EPickerCols, colItem: string | number) => {\n let colVal: number;\n if (col === EPickerCols.meridiem) {\n const currentMeridiem = dayjsValue.value.format('a');\n return currentMeridiem === colItem;\n }\n colVal = dayjsValue.value[col]?.();\n if (col === EPickerCols.hour && /[h]{1}/.test(format.value)) {\n colVal %= 12;\n }\n return colVal === Number(colItem);\n };\n\n return () => (\n
    \n
    \n {/* 渲染遮罩层 */}\n {cols.value.map?.((col, idx) => (\n
    \n ))}\n
    \n {/* 渲染实际滚动列 */}\n {cols.value.map?.((col, idx) => (\n (colsRef[idx] = el as HTMLElement)}\n class={`${COMPONENT_NAME.value}-body-scroll`}\n onScroll={debounce((e) => handleScroll(col, idx, e), 50)}\n >\n {getColList(col).map((el) => (\n handleTimeItemClick(col, el, idx, e)}\n >\n {/* eslint-disable-next-line no-nested-ternary */}\n {timeArr.includes(col)\n ? TWELVE_HOUR_FORMAT.test(format.value) && col === EPickerCols.hour && el === '00'\n ? '12'\n : el\n : globalConfig.value[el === AM ? 'anteMeridiem' : 'postMeridiem']}\n \n ))}\n \n ))}\n
    \n );\n },\n});\n","import { defineComponent, toRefs, computed, ref, onMounted, nextTick, watch } from 'vue';\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { isUndefined } from 'lodash-es';\n\nimport { DEFAULT_STEPS, DEFAULT_FORMAT } from '@tdesign/common-js/time-picker/const';\nimport { panelProps } from './props';\nimport SinglePanel from './single-panel';\nimport TButton from '../../button/button';\nimport { useConfig, usePrefixClass } from '@tdesign/shared-hooks';\nimport { TimePickerValue, TimeRangeValue } from '../type';\nimport log from '@tdesign/common-js/log/index';\n\ndayjs.extend(customParseFormat);\n\nexport default defineComponent({\n name: 'TTimePickerPanel',\n props: {\n ...panelProps(),\n isFooterDisplay: Boolean,\n handleConfirmClick: Function,\n onChange: Function,\n },\n setup(props) {\n const { globalConfig } = useConfig('timePicker');\n const COMPONENT_NAME = usePrefixClass('time-picker__panel');\n const { steps, isFooterDisplay, isShowPanel } = toRefs(props);\n const triggerScroll = ref(false);\n const panelRef = ref();\n const showNowTimeBtn = computed(() => !!steps.value.filter((step) => Number(step) > 1).length);\n\n const defaultValue = computed(() => {\n const isStepsSet = showNowTimeBtn.value;\n const formattedValue = dayjs(props.value, props.format);\n if (props.value && formattedValue.isValid()) {\n return formattedValue.format(props.format);\n }\n\n if (isStepsSet) {\n return dayjs().hour(0).minute(0).second(0).format(props.format);\n }\n return dayjs().hour(0).minute(0).second(0).format(props.format);\n });\n\n const panelColUpdate = () => {\n nextTick(() => {\n triggerScroll.value = true;\n });\n };\n\n const resetTriggerScroll = () => {\n triggerScroll.value = false;\n };\n const handlePresetClick = (\n presetValue: TimePickerValue | (() => TimePickerValue) | TimeRangeValue | (() => TimeRangeValue),\n ) => {\n const presetVal = typeof presetValue === 'function' ? presetValue() : presetValue;\n if (typeof props.activeIndex === 'number') {\n if (Array.isArray(presetVal)) {\n props.onChange?.(presetVal[props.activeIndex]);\n } else {\n log.error('TimePicker', `preset: ${props.presets} 预设值必须是数组!`);\n }\n } else {\n props.onChange?.(presetVal);\n }\n };\n\n const renderFooter = () => {\n if (!isUndefined(props.presets))\n return Object.keys(props.presets || []).map((key: string) => (\n handlePresetClick(props.presets[key])}\n >\n {key}\n \n ));\n return !showNowTimeBtn.value ? (\n props.onChange?.(dayjs().format(props.format))}\n >\n {globalConfig.value.now}\n \n ) : null;\n };\n\n // 渲染后执行update 使面板滚动至当前时间位置\n onMounted(() => {\n panelColUpdate();\n });\n\n watch(\n () => isShowPanel.value,\n () => {\n panelColUpdate();\n },\n );\n\n return () => (\n
    \n
    \n \n
    \n {isFooterDisplay.value ? (\n \n ) : null}\n
    \n );\n },\n});\n","import { defineComponent, PropType } from 'vue';\nimport { usePrefixClass } from '@tdesign/shared-hooks';\nimport type { TdDatePickerProps } from '../../type';\n\nimport TDateHeader from '../base/Header';\nimport TDateTable from '../base/Table';\nimport TTimePickerPanel from '../../../time-picker/panel/time-picker-panel';\nimport { getDefaultFormat } from '@tdesign/common-js/date-picker/format';\n\nexport default defineComponent({\n name: 'TPanelContent',\n props: {\n mode: String as PropType,\n format: String as PropType,\n enableTimePicker: Boolean as PropType,\n timePickerProps: {\n type: Object as PropType,\n default: () => ({}),\n },\n year: Number,\n month: Number,\n tableData: Array,\n time: String,\n multiple: Boolean,\n firstDayOfWeek: Number,\n partial: String,\n popupVisible: Boolean,\n onYearChange: Function,\n onMonthChange: Function,\n onJumperClick: Function,\n onCellMouseEnter: Function,\n onCellClick: Function,\n onCellMouseLeave: Function,\n onTimePickerChange: Function,\n value: [String, Number, Array, Date],\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('date-picker__panel');\n\n const { timeFormat } = getDefaultFormat({\n mode: props.mode,\n format: props.format,\n enableTimePicker: props.enableTimePicker,\n });\n\n const defaultTimeValue = '00:00:00';\n\n return () => (\n
    \n
    \n props.onMonthChange?.(val, { partial: props.partial })}\n onYearChange={(val: number) => props.onYearChange?.(val, { partial: props.partial })}\n onJumperClick={({ trigger }: { trigger: string }) =>\n props.onJumperClick?.({ trigger, partial: props.partial })\n }\n />\n\n \n props.onCellClick?.(date, { e, partial: props.partial })\n }\n onCellMouseEnter={(date: Date) => props.onCellMouseEnter?.(date, { partial: props.partial })}\n onCellMouseLeave={props.onCellMouseLeave}\n />\n
    \n\n {props.enableTimePicker && (\n
    \n
    {props.time || defaultTimeValue}
    \n \n
    \n )}\n
    \n );\n },\n});\n","import { defineComponent, computed, PropType } from 'vue';\nimport { useConfig, usePrefixClass } from '@tdesign/shared-hooks';\nimport TButton from '../../../button';\n\nimport type { TdDatePickerProps } from '../../type';\n\nexport default defineComponent({\n name: 'TDatePickerTable',\n props: {\n enableTimePicker: Boolean,\n presetsPlacement: String,\n presets: Object,\n needConfirm: Boolean,\n selectedValue: [String, Number, Array, Date] as PropType,\n onPresetClick: Function,\n onConfirmClick: Function,\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('date-picker__footer');\n const presetsClass = usePrefixClass('date-picker__presets');\n const { t, globalConfig } = useConfig('datePicker');\n\n const footerClass = computed(() => [COMPONENT_NAME.value, `${COMPONENT_NAME.value}--${props.presetsPlacement}`]);\n\n return () => (\n
    \n {\n
    \n {props.presets &&\n Object.keys(props.presets).map((key: string) => (\n \n props.onPresetClick?.(props.presets[key], { e, preset: { [key]: props.presets[key] } })\n }\n >\n {key}\n \n ))}\n
    \n }\n {props.enableTimePicker && props.needConfirm && (\n props.onConfirmClick?.({ e })}\n >\n {t(globalConfig.value.confirm)}\n \n )}\n
    \n );\n },\n});\n","import { defineComponent, PropType, computed } from 'vue';\nimport TDateFooter from '../base/Footer';\n\nimport type { TdDatePickerProps, TdDateRangePickerProps } from '../../type';\n\nexport default defineComponent({\n name: 'TExtraContent',\n props: {\n presets: Object as PropType,\n enableTimePicker: Boolean as PropType,\n presetsPlacement: String as PropType,\n needConfirm: Boolean,\n onPresetClick: Function,\n onConfirmClick: Function,\n selectedValue: [String, Number, Array, Date] as PropType,\n },\n setup(props) {\n // 默认为 true\n const showPanelFooter = computed(() => props.needConfirm || props.presets);\n\n return () =>\n showPanelFooter.value ? (\n \n ) : null;\n },\n});\n","import { isObject } from 'lodash-es';\nimport dayjs from 'dayjs';\nimport type { TdDatePickerProps, TdDateRangePickerProps } from '../type';\nimport { isEnabledDate } from '@tdesign/common-js/date-picker/utils';\n\nexport interface disableDateProps {\n disableDate?: TdDatePickerProps['disableDate'] | TdDateRangePickerProps['disableDate'];\n format?: TdDatePickerProps['format'];\n mode?: TdDatePickerProps['mode'];\n start?: Date;\n end?: Date;\n}\n\nexport function useDisableDate(props: disableDateProps) {\n const { disableDate, format, mode, start, end } = props;\n\n return {\n disableDate: (value: Date) => !isEnabledDate({ disableDate, format, mode, value }),\n minDate:\n isObject(disableDate) && 'before' in disableDate\n ? new Date(dayjs(disableDate.before).startOf('day').format())\n : start,\n maxDate:\n isObject(disableDate) && 'after' in disableDate ? new Date(dayjs(disableDate.after).endOf('day').format()) : end,\n };\n}\n","import { ref, toRefs, watchEffect, computed } from 'vue';\nimport { useVModel } from '@tdesign/shared-hooks';\nimport { isArray } from 'lodash-es';\n\nimport { TdDateRangePickerProps } from '../type';\nimport {\n isValidDate,\n formatDate,\n formatTime,\n getDefaultFormat,\n initYearMonthTime,\n extractTimeFormat,\n} from '@tdesign/common-js/date-picker/format';\n\nexport function useRangeValue(props: TdDateRangePickerProps) {\n const { value: valueFromProps, modelValue } = toRefs(props);\n\n const [value, onChange] = useVModel(valueFromProps, modelValue, props.defaultValue, props.onChange);\n\n const formatRef = computed(() =>\n getDefaultFormat({\n mode: props.mode,\n format: props.format,\n valueType: props.valueType,\n enableTimePicker: props.enableTimePicker,\n }),\n );\n\n if (props.enableTimePicker) {\n if (!extractTimeFormat(formatRef.value.format))\n console.error(`format: ${formatRef.value.format} 不规范,包含时间选择必须要有时间格式化 HH:mm:ss`);\n }\n\n // warning invalid value\n if (!isArray(value.value)) {\n console.error(`typeof value: ${value.value} must be Array!`);\n } else if (!isValidDate(value.value, formatRef.value.format)) {\n console.error(\n `value: ${value.value} is invalid dateTime! Check whether the value is consistent with format: ${formatRef.value.format}`,\n );\n }\n\n const isFirstValueSelected = ref(false); // 记录面板点击次数,两次后才自动关闭\n const time = ref(\n initYearMonthTime({\n value: value.value,\n mode: props.mode,\n format: formatRef.value.format,\n timeFormat: formatRef.value.timeFormat,\n }).time,\n );\n const month = ref(\n initYearMonthTime({\n value: value.value,\n mode: props.mode,\n format: formatRef.value.format,\n enableTimePicker: props.enableTimePicker,\n }).month,\n );\n const year = ref(initYearMonthTime({ value: value.value, mode: props.mode, format: formatRef.value.format }).year);\n const cacheValue = ref(formatDate(value.value, { format: formatRef.value.format })); // 选择阶段预选状态\n\n // 输入框响应 value 变化\n watchEffect(() => {\n if (!value.value) {\n cacheValue.value = [];\n return;\n }\n if (!isValidDate(value.value, formatRef.value.format)) return;\n\n cacheValue.value = formatDate(value.value, {\n format: formatRef.value.valueType,\n targetFormat: formatRef.value.format,\n });\n time.value = formatTime(\n value.value,\n formatRef.value.format,\n formatRef.value.timeFormat,\n props.defaultTime,\n ) as string[];\n });\n\n return {\n year,\n month,\n value,\n time,\n isFirstValueSelected,\n cacheValue,\n onChange,\n };\n}\n","import { ref, computed, watch } from 'vue';\nimport { CalendarIcon as TdCalendarIcon } from 'tdesign-icons-vue-next';\nimport { omit } from 'lodash-es';\n\nimport { useConfig, useTNodeJSX, useReadonly, useGlobalIcon, usePrefixClass } from '@tdesign/shared-hooks';\n\nimport { TdDateRangePickerProps, DateValue, DateRangePickerPartial } from '../type';\nimport { isValidDate, formatDate, getDefaultFormat, parseToDayjs } from '@tdesign/common-js/date-picker/format';\nimport { useRangeValue } from './useRangeValue';\n\nexport const PARTIAL_MAP: Record<'first' | 'second', DateRangePickerPartial> = { first: 'start', second: 'end' };\n\nexport function useRange(props: TdDateRangePickerProps) {\n const COMPONENT_NAME = usePrefixClass('date-range-picker');\n const { globalConfig } = useConfig('datePicker');\n const { CalendarIcon } = useGlobalIcon({ CalendarIcon: TdCalendarIcon });\n const renderTNodeJSX = useTNodeJSX();\n\n const isMountedRef = ref(false);\n const inputRef = ref();\n\n const { value, onChange, time, month, year, cacheValue, isFirstValueSelected } = useRangeValue(props);\n\n const formatRef = computed(() =>\n getDefaultFormat({\n mode: props.mode,\n format: props.format,\n valueType: props.valueType,\n enableTimePicker: props.enableTimePicker,\n }),\n );\n\n const popupVisible = ref(false);\n const isHoverCell = ref(false);\n const activeIndex = ref<0 | 1>(0); // 确定当前选中的输入框序号\n const inputValue = ref(formatDate(props.value, { format: formatRef.value.format })); // 未真正选中前可能不断变更输入框的内容\n const isReadOnly = useReadonly();\n\n // input 设置\n const rangeInputProps = computed(() => ({\n ...props.rangeInputProps,\n size: props.size,\n ref: inputRef,\n borderless: props.borderless,\n clearable: props.clearable && !isReadOnly.value,\n prefixIcon: () => renderTNodeJSX('prefixIcon'),\n readonly: isReadOnly.value || !props.allowInput,\n separator: props.separator || globalConfig.value.rangeSeparator,\n placeholder:\n props.placeholder || (globalConfig.value.placeholder as { [key in typeof props.mode]: string })[props.mode],\n activeIndex: popupVisible.value ? activeIndex.value : undefined,\n suffixIcon: () => {\n return renderTNodeJSX('suffixIcon') || ;\n },\n class: {\n [`${COMPONENT_NAME.value}__input--placeholder`]: isHoverCell.value,\n },\n onClick: ({ position }: any) => {\n activeIndex.value = position === 'first' ? 0 : 1;\n },\n onClear: ({ e }: { e: MouseEvent }) => {\n e.stopPropagation();\n popupVisible.value = false;\n onChange?.([], { dayjsValue: [], trigger: 'clear' });\n },\n onBlur: (newVal: string[], { e, position }: { e: MouseEvent; position: 'first' | 'second' }) => {\n props.onBlur?.({ value: newVal, partial: PARTIAL_MAP[position], e });\n },\n onFocus: (newVal: string[], { e, position }: { e: MouseEvent; position: 'first' | 'second' }) => {\n props.onFocus?.({ value: newVal, partial: PARTIAL_MAP[position], e });\n activeIndex.value = position === 'first' ? 0 : 1;\n },\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onChange: (newVal: string[], { e, position }: { e: MouseEvent; position: 'first' | 'second' }) => {\n inputValue.value = newVal;\n\n // 跳过不符合格式化的输入框内容\n if (!isValidDate(newVal, formatRef.value.format)) return;\n cacheValue.value = newVal;\n const newYear: Array = [];\n const newMonth: Array = [];\n const newTime: Array = [];\n newVal.forEach((v) => {\n newYear.push(parseToDayjs(v, formatRef.value.format).year());\n newMonth.push(parseToDayjs(v, formatRef.value.format).month());\n newTime.push(parseToDayjs(v, formatRef.value.format).format(formatRef.value.timeFormat));\n });\n year.value = newYear;\n month.value = newMonth;\n time.value = newTime;\n },\n onEnter: (newVal: string[]) => {\n if (!isValidDate(newVal, formatRef.value.format) && !isValidDate(value.value, formatRef.value.format)) return;\n\n popupVisible.value = false;\n if (isValidDate(newVal, formatRef.value.format)) {\n onChange?.(\n formatDate(newVal, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n autoSwap: true,\n }) as DateValue[],\n {\n dayjsValue: newVal.map((v) => parseToDayjs(v, formatRef.value.format)),\n trigger: 'enter',\n },\n );\n } else if (isValidDate(value.value, formatRef.value.format)) {\n inputValue.value = formatDate(value.value, {\n format: formatRef.value.format,\n });\n } else {\n inputValue.value = [];\n }\n },\n }));\n\n // popup 设置\n const popupProps = computed(() => ({\n expandAnimation: true,\n ...omit(props.popupProps, 'on-visible-change'),\n overlayInnerStyle: props.popupProps?.overlayInnerStyle ?? { width: 'auto' },\n overlayClassName: [props.popupProps?.overlayClassName, `${COMPONENT_NAME.value}__panel-container`],\n onVisibleChange: (visible: boolean, context: any) => {\n if (isReadOnly.value) return;\n\n // 这里劫持了进一步向 popup 传递的 onVisibleChange 事件,为了保证可以在 Datepicker 中使用 popupProps.onVisibleChange,故此处理\n props.popupProps?.onVisibleChange?.(visible, context);\n // TODO\n // @ts-ignore types only declare onVisibleChange,but not declare on-visible-change\n props.popupProps?.['on-visible-change']?.(visible, context);\n\n // 输入框点击不关闭面板\n if (context.trigger === 'trigger-element-click') {\n const indexMap = { 0: 'first', 1: 'second' };\n inputRef.value.focus({ position: indexMap[activeIndex.value] });\n popupVisible.value = true;\n return;\n }\n\n popupVisible.value = visible;\n },\n }));\n\n // 输入框响应 value 变化\n watch(\n value,\n (value) => {\n if (!value) {\n inputValue.value = [];\n return;\n }\n if (!isValidDate(value, formatRef.value.format)) return;\n\n inputValue.value = formatDate(value, {\n format: formatRef.value.valueType,\n targetFormat: formatRef.value.format,\n });\n },\n {\n immediate: true,\n },\n );\n\n // activeIndex 变化自动 focus 对应输入框\n watch(\n activeIndex,\n (index) => {\n if (!isMountedRef.value) {\n isMountedRef.value = true;\n return;\n }\n if (!popupVisible.value) return;\n const indexMap = { 0: 'first', 1: 'second' };\n inputRef.value?.focus?.({ position: indexMap[index] });\n },\n {\n immediate: true,\n },\n );\n\n return {\n year,\n month,\n value,\n time,\n inputValue,\n popupVisible,\n rangeInputProps,\n popupProps,\n isHoverCell,\n activeIndex,\n isFirstValueSelected,\n cacheValue,\n onChange,\n };\n}\n","import { useConfig } from '@tdesign/shared-hooks';\n\nimport { getWeeks, getYears, getMonths, getQuarters, flagActive } from '@tdesign/common-js/date-picker/utils';\n\nexport function useTableData(props: any) {\n // 国际化文本初始化\n const { globalConfig } = useConfig('datePicker');\n\n const options = {\n minDate: props.minDate,\n maxDate: props.maxDate,\n disableDate: props.disableDate,\n firstDayOfWeek: props.firstDayOfWeek ?? globalConfig.value.firstDayOfWeek,\n monthLocal: globalConfig.value.months as string[],\n quarterLocal: globalConfig.value.quarters as string[],\n showWeekOfYear: props.mode === 'week',\n dayjsLocale: globalConfig.value.dayjsLocale,\n cancelRangeSelectLimit: props.cancelRangeSelectLimit,\n };\n\n let data: Array = [];\n if (props.mode === 'date') {\n data = getWeeks({ year: props.year, month: props.month }, options);\n } else if (props.mode === 'week') {\n data = getWeeks({ year: props.year, month: props.month }, options);\n } else if (props.mode === 'quarter') {\n data = getQuarters(props.year, options);\n } else if (props.mode === 'month') {\n data = getMonths(props.year, options);\n } else if (props.mode === 'year') {\n data = getYears(props.year, options);\n }\n return flagActive(data, {\n start: props.start,\n end: props.end,\n hoverStart: props.hoverStart,\n hoverEnd: props.hoverEnd,\n type: props.mode,\n isRange: props.isRange,\n value: props.value,\n multiple: props.multiple,\n });\n}\n","import { defineComponent, PropType, computed } from 'vue';\nimport { useConfig, usePrefixClass } from '@tdesign/shared-hooks';\nimport TPanelContent from './PanelContent';\nimport TExtraContent from './ExtraContent';\nimport { getDefaultFormat, parseToDayjs } from '@tdesign/common-js/date-picker/format';\nimport { useTableData, useDisableDate } from '../../hooks';\n\nimport type { TdDatePickerProps, DateMultipleValue, DateValue } from '../../type';\n\nexport default defineComponent({\n name: 'TSinglePanel',\n props: {\n disableDate: [Object, Array, Function] as PropType,\n mode: {\n type: String as PropType,\n default: 'date',\n },\n format: String as PropType,\n presetsPlacement: {\n type: String as PropType,\n default: 'bottom',\n },\n value: [String, Number, Array, Date] as PropType,\n timePickerProps: Object as PropType,\n presets: Object as PropType,\n enableTimePicker: Boolean,\n firstDayOfWeek: Number,\n year: Number,\n month: Number,\n time: String,\n popupVisible: Boolean,\n multiple: Boolean,\n needConfirm: Boolean,\n onPanelClick: Function,\n onCellClick: Function,\n onCellMouseEnter: Function,\n onCellMouseLeave: Function,\n onJumperClick: Function,\n onConfirmClick: Function,\n onPresetClick: Function,\n onYearChange: Function,\n onMonthChange: Function,\n onTimePickerChange: Function,\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('date-picker__panel');\n const { globalConfig } = useConfig('datePicker');\n\n const format = computed(\n () =>\n getDefaultFormat({\n mode: props.mode,\n format: props.format,\n enableTimePicker: props.enableTimePicker,\n })?.format,\n );\n\n const disableDateOptions = computed(() =>\n useDisableDate({\n format: format.value,\n mode: props.mode,\n disableDate: props.disableDate,\n }),\n );\n const tableData = computed(() =>\n useTableData({\n year: props.year,\n month: props.month,\n mode: props.mode,\n start: props.value\n ? parseToDayjs(\n props.multiple ? (props.value as DateMultipleValue)[0] : (props.value as DateValue),\n format.value,\n ).toDate()\n : undefined,\n firstDayOfWeek: props.firstDayOfWeek || globalConfig.value.firstDayOfWeek,\n multiple: props.multiple,\n value: props.value,\n ...disableDateOptions.value,\n }),\n );\n\n const panelContentProps = computed(() => ({\n format: format.value,\n value: props.value,\n mode: props.mode,\n year: props.year,\n month: props.month,\n firstDayOfWeek: props.firstDayOfWeek || globalConfig.value.firstDayOfWeek,\n tableData: tableData.value,\n popupVisible: props.popupVisible,\n multiple: props.multiple,\n enableTimePicker: props.enableTimePicker,\n timePickerProps: props.timePickerProps,\n time: props.time,\n onMonthChange: props.onMonthChange,\n onYearChange: props.onYearChange,\n onJumperClick: props.onJumperClick,\n onCellClick: props.onCellClick,\n onCellMouseEnter: props.onCellMouseEnter,\n onCellMouseLeave: props.onCellMouseLeave,\n onTimePickerChange: props.onTimePickerChange,\n }));\n\n const extraProps = computed(() => ({\n presets: props.presets,\n enableTimePicker: props.enableTimePicker,\n presetsPlacement: props.presetsPlacement,\n onPresetClick: props.onPresetClick,\n onConfirmClick: props.onConfirmClick,\n selectedValue: props.value,\n needConfirm: props.needConfirm,\n }));\n\n return () => (\n props.onPanelClick?.({ e })}\n >\n {['top', 'left'].includes(props.presetsPlacement) ? : null}\n \n {['bottom', 'right'].includes(props.presetsPlacement) ? : null}\n
    \n );\n },\n});\n","import { defineComponent, computed, watch } from 'vue';\nimport dayjs from 'dayjs';\nimport { isFunction, isDate } from 'lodash-es';\nimport { CalendarIcon as TdCalendarIcon } from 'tdesign-icons-vue-next';\n\nimport { useConfig, useTNodeJSX, useDisabled, useReadonly, useGlobalIcon, usePrefixClass } from '@tdesign/shared-hooks';\n\nimport { useSingle } from './hooks/useSingle';\nimport { parseToDayjs, getDefaultFormat, formatTime, formatDate } from '@tdesign/common-js/date-picker/format';\nimport { subtractMonth, addMonth, extractTimeObj, covertToDate, isSame } from '@tdesign/common-js/date-picker/utils';\nimport props from './props';\nimport TSelectInput from '../select-input';\nimport TSinglePanel from './components/panel/SinglePanel';\n\nimport type { TdDatePickerProps, DateMultipleValue, DateValue } from './type';\nimport type { TagInputRemoveContext } from '../tag-input';\n\nexport default defineComponent({\n name: 'TDatePicker',\n props,\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('date-picker');\n\n const {\n inputValue,\n popupVisible,\n inputProps,\n popupProps,\n isHoverCell,\n cacheValue,\n value,\n year,\n month,\n time,\n inputRef,\n onChange,\n } = useSingle(props);\n\n const disabled = useDisabled();\n const renderTNodeJSX = useTNodeJSX();\n const { globalConfig } = useConfig('datePicker');\n const isReadOnly = useReadonly();\n const { CalendarIcon } = useGlobalIcon({ CalendarIcon: TdCalendarIcon });\n\n const formatRef = computed(() =>\n getDefaultFormat({\n mode: props.mode,\n format: props.format,\n valueType: props.valueType,\n enableTimePicker: props.multiple ? false : props.enableTimePicker,\n }),\n );\n const valueDisplayParams = computed(() => {\n return {\n value: value.value,\n displayValue: inputValue.value,\n };\n });\n\n watch(popupVisible, (visible) => {\n // 多选不考虑输入情况\n if (props.multiple) return;\n // 如果不需要确认,直接保存当前值\n if (!props.needConfirm && props.enableTimePicker && !visible) {\n const nextValue = formatDate(inputValue.value, {\n format: formatRef.value.format,\n });\n if (nextValue) {\n onChange?.(\n formatDate(inputValue.value, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n }) as DateValue,\n {\n dayjsValue: parseToDayjs(inputValue.value as string, formatRef.value.format),\n trigger: 'confirm',\n },\n );\n } else {\n inputValue.value = formatDate(value.value, {\n format: formatRef.value.format,\n });\n }\n }\n\n // 格式化 input 值\n const dateValue =\n // Date 属性、季度和周不再 parse,避免 dayjs 处理成 Invalid\n value.value && !isDate(value.value) && !['week', 'quarter'].includes(props.mode)\n ? covertToDate(value.value as string, formatRef.value?.valueType)\n : value.value;\n\n cacheValue.value = formatDate(dateValue, {\n format: formatRef.value.valueType,\n targetFormat: formatRef.value.format,\n });\n inputValue.value = formatDate(dateValue, {\n format: formatRef.value.valueType,\n targetFormat: formatRef.value.format,\n });\n\n // 面板展开重置数据\n if (visible) {\n year.value = parseToDayjs(value.value as DateValue, formatRef.value.valueType).year();\n month.value = parseToDayjs(value.value as DateValue, formatRef.value.format).month();\n time.value = formatTime(value.value, formatRef.value.format, formatRef.value.timeFormat, props.defaultTime);\n } else {\n isHoverCell.value = false;\n }\n });\n\n // 日期 hover\n function onCellMouseEnter(date: Date) {\n if (props.multiple) return;\n\n isHoverCell.value = true;\n inputValue.value = formatDate(date, {\n format: formatRef.value.format,\n });\n }\n\n // 日期 leave\n function onCellMouseLeave() {\n if (props.multiple) return;\n\n isHoverCell.value = false;\n inputValue.value = formatDate(cacheValue.value, {\n format: formatRef.value.format,\n });\n }\n\n // 日期点击\n function onCellClick(date: Date) {\n isHoverCell.value = false;\n // date 模式自动切换年月\n if (props.mode === 'date') {\n year.value = date.getFullYear();\n month.value = date.getMonth();\n }\n if (props.enableTimePicker) {\n cacheValue.value = formatDate(date, {\n format: formatRef.value.format,\n });\n } else {\n if (props.multiple) {\n const newDate = processDate(date);\n onChange(newDate, {\n dayjsValue: parseToDayjs(date, formatRef.value.format),\n trigger: 'pick',\n });\n return;\n }\n\n onChange?.(\n formatDate(date, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n }) as DateValue,\n {\n dayjsValue: parseToDayjs(date, formatRef.value.format),\n trigger: 'pick',\n },\n );\n popupVisible.value = false;\n }\n\n props.onPick?.(date);\n }\n\n function processDate(date: Date) {\n let isSameDate: boolean;\n const currentValue = (value.value || []) as DateMultipleValue;\n const { dayjsLocale } = globalConfig.value;\n\n let currentDate: DateMultipleValue;\n if (props.mode !== 'week')\n isSameDate = currentValue.some((val) =>\n isSame(parseToDayjs(val, formatRef.value.format).toDate(), date, props.mode, dayjsLocale),\n );\n else {\n isSameDate = currentValue.some((val) => val === dayjs(date).locale(dayjsLocale).format(formatRef.value.format));\n }\n\n if (!isSameDate) {\n currentDate = currentValue.concat(\n formatDate(date, { format: formatRef.value.format, targetFormat: formatRef.value.valueType }),\n );\n } else {\n currentDate = currentValue.filter(\n (val) =>\n formatDate(val, { format: formatRef.value.format, targetFormat: formatRef.value.valueType }) !==\n formatDate(date, { format: formatRef.value.format, targetFormat: formatRef.value.valueType }),\n );\n }\n return currentDate;\n }\n\n function onTagRemoveClick(ctx: TagInputRemoveContext) {\n if (['week', 'quarter'].includes(props.mode)) {\n onChange?.(ctx.value, { trigger: 'tag-remove' });\n return;\n }\n\n const removeDate = dayjs(ctx.item).toDate();\n const newDate = processDate(removeDate);\n onChange?.(newDate, {\n dayjsValue: parseToDayjs(removeDate, formatRef.value.format),\n trigger: 'tag-remove',\n });\n }\n\n function onTagClearClick({ e }: { e: MouseEvent }) {\n e.stopPropagation();\n popupVisible.value = false;\n onChange?.([], { dayjsValue: dayjs(), trigger: 'clear' });\n }\n\n // 头部快速切换\n function onJumperClick({ trigger }: { trigger: string }) {\n const monthCountMap = { date: 1, week: 1, month: 12, quarter: 12, year: 120 };\n const monthCount = monthCountMap[props.mode] || 0;\n\n const current = new Date(year.value, month.value);\n\n let next = null;\n if (trigger === 'prev') {\n next = subtractMonth(current, monthCount);\n } else if (trigger === 'current') {\n next = new Date();\n } else if (trigger === 'next') {\n next = addMonth(current, monthCount);\n }\n\n const nextYear = next.getFullYear();\n const nextMonth = next.getMonth();\n\n year.value = nextYear;\n month.value = nextMonth;\n }\n\n // timePicker 点击\n function onTimePickerChange(val: string) {\n time.value = val;\n\n const { hours, minutes, seconds, milliseconds, meridiem } = extractTimeObj(val);\n\n // am pm 12小时制转化 24小时制\n let nextHours = hours;\n if (/am/i.test(meridiem) && nextHours === 12) nextHours -= 12;\n if (/pm/i.test(meridiem) && nextHours < 12) nextHours += 12;\n const currentDate = !dayjs(inputValue.value as string, formatRef.value.format).isValid()\n ? dayjs()\n : dayjs(inputValue.value as string, formatRef.value.format);\n const nextDate = currentDate.hour(nextHours).minute(minutes).second(seconds).millisecond(milliseconds).toDate();\n inputValue.value = formatDate(nextDate, {\n format: formatRef.value.format,\n });\n cacheValue.value = formatDate(nextDate, {\n format: formatRef.value.format,\n });\n\n props.onPick?.(nextDate);\n }\n\n // 确定\n function onConfirmClick({ e }: { e: MouseEvent }) {\n const nextValue = formatDate(inputValue.value, {\n format: formatRef.value.format,\n });\n if (nextValue) {\n props?.onConfirm?.({ date: dayjs(nextValue as string).toDate(), e });\n onChange?.(\n formatDate(inputValue.value, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n }) as DateValue,\n {\n dayjsValue: parseToDayjs(inputValue.value as string, formatRef.value.format),\n trigger: 'confirm',\n },\n );\n } else {\n inputValue.value = formatDate(value.value, {\n format: formatRef.value.format,\n });\n }\n popupVisible.value = false;\n }\n\n // 预设\n function onPresetClick(presetValue: DateValue | (() => DateValue)) {\n const presetVal = isFunction(presetValue) ? presetValue() : presetValue;\n onChange?.(\n formatDate(presetVal, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n }) as DateValue,\n {\n dayjsValue: parseToDayjs(presetVal, formatRef.value.format),\n trigger: 'preset',\n },\n );\n // 更新到 input,避免 needConfirm 导致值被覆盖\n inputValue.value = formatDate(presetVal, {\n format: formatRef.value.format,\n });\n popupVisible.value = false;\n }\n\n function onYearChange(nextYear: number) {\n year.value = nextYear;\n }\n\n function onMonthChange(nextMonth: number) {\n month.value = nextMonth;\n }\n\n const panelProps = computed(() => ({\n value: cacheValue.value as string,\n year: year.value,\n month: month.value,\n format: formatRef.value.format,\n mode: props.mode,\n presets: props.presets,\n multiple: props.multiple,\n time: props.multiple ? '' : time.value,\n disableDate: props.disableDate,\n firstDayOfWeek: props.firstDayOfWeek,\n timePickerProps: props.timePickerProps,\n enableTimePicker: props.multiple ? false : props.enableTimePicker,\n presetsPlacement: props.presetsPlacement,\n popupVisible: popupVisible.value,\n needConfirm: props.needConfirm,\n onCellClick,\n onCellMouseEnter,\n onCellMouseLeave,\n onJumperClick,\n onConfirmClick,\n onPresetClick,\n onYearChange,\n onMonthChange,\n onTimePickerChange,\n onPanelClick: () => inputRef.value?.focus?.(),\n }));\n\n return () => (\n
    \n renderTNodeJSX('label')}\n status={props.status}\n tips={props.tips}\n clearable={props.clearable}\n readonly={isReadOnly.value}\n multiple={props.multiple}\n popupProps={popupProps.value}\n inputProps={inputProps.value}\n placeholder={\n props.placeholder || (globalConfig.value.placeholder as { [key in typeof props.mode]: string })[props.mode]\n }\n popupVisible={!isReadOnly.value && popupVisible.value}\n valueDisplay={() => renderTNodeJSX('valueDisplay', { params: valueDisplayParams.value })}\n needConfirm={props.needConfirm}\n {...(props.selectInputProps as TdDatePickerProps['selectInputProps'])}\n panel={() => }\n tagInputProps={{\n onRemove: onTagRemoveClick,\n }}\n onClear={onTagClearClick}\n prefixIcon={() => renderTNodeJSX('prefixIcon')}\n suffixIcon={() => renderTNodeJSX('suffixIcon') || }\n />\n
    \n );\n },\n});\n","import { ref, computed, watch } from 'vue';\nimport dayjs from 'dayjs';\nimport { omit } from 'lodash-es';\n\nimport { useDisabled, useReadonly, usePrefixClass } from '@tdesign/shared-hooks';\n\nimport { TdDatePickerProps, DateValue } from '../type';\nimport {\n isValidDate,\n formatDate,\n formatTime,\n getDefaultFormat,\n parseToDayjs,\n} from '@tdesign/common-js/date-picker/format';\nimport { useSingleValue } from './useSingleValue';\n\nexport function useSingle(props: TdDatePickerProps) {\n const COMPONENT_NAME = usePrefixClass('date-picker');\n const disabled = useDisabled();\n\n const inputRef = ref();\n const isReadOnly = useReadonly();\n\n const { value, onChange, time, month, year, cacheValue } = useSingleValue(props);\n\n const formatRef = computed(() =>\n getDefaultFormat({\n mode: props.mode,\n format: props.format,\n valueType: props.valueType,\n enableTimePicker: props.multiple ? false : props.enableTimePicker,\n }),\n );\n\n const popupVisible = ref(false);\n const isHoverCell = ref(false);\n // 未真正选中前可能不断变更输入框的内容\n const inputValue = ref(\n props.multiple\n ? formatDate(value.value, { format: formatRef.value.format }) || []\n : formatDate(value.value, { format: formatRef.value.format }),\n );\n\n // input 设置\n const inputProps = computed(() => {\n const defaultInputProps = {\n ...props.inputProps,\n size: props.size,\n ref: inputRef,\n readonly: isReadOnly.value || !props.allowInput,\n class: [\n {\n [`${COMPONENT_NAME.value}__input--placeholder`]: isHoverCell.value,\n },\n ],\n onClear: (context: { e: InputEvent }) => {\n context?.e?.stopPropagation();\n popupVisible.value = false;\n onChange?.('', { dayjsValue: dayjs(), trigger: 'clear' });\n },\n };\n return props.multiple\n ? defaultInputProps\n : {\n ...defaultInputProps,\n onBlur: (val: string, context: { e: FocusEvent }) => {\n props.onBlur?.({ value: val, e: context.e });\n },\n onFocus: (_: string, { e }: { e: FocusEvent }) => {\n props.onFocus?.({ value: value.value, e });\n },\n onChange: (val: string) => {\n // 输入事件\n inputValue.value = val;\n\n // 跳过不符合格式化的输入框内容\n if (!isValidDate(val, formatRef.value.format)) return;\n cacheValue.value = val;\n const newMonth = parseToDayjs(val, formatRef.value.format).month();\n const newYear = parseToDayjs(val, formatRef.value.format).year();\n const newTime = formatTime(val, formatRef.value.format, formatRef.value.timeFormat, props.defaultTime);\n !Number.isNaN(newYear) && (year.value = newYear);\n !Number.isNaN(newMonth) && (month.value = newMonth);\n !Number.isNaN(newTime) && (time.value = newTime);\n },\n onEnter: (val: string) => {\n if (!val) {\n onChange('', { dayjsValue: dayjs(), trigger: 'enter' });\n popupVisible.value = false;\n return;\n }\n\n if (!isValidDate(val, formatRef.value.format) && !isValidDate(value.value, formatRef.value.format)) return;\n\n popupVisible.value = false;\n if (isValidDate(val, formatRef.value.format)) {\n onChange?.(\n formatDate(val, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n }) as DateValue,\n {\n dayjsValue: parseToDayjs(val, formatRef.value.format),\n trigger: 'enter',\n },\n );\n } else if (isValidDate(value.value, formatRef.value.format)) {\n inputValue.value = formatDate(value.value, {\n format: formatRef.value.format,\n });\n } else {\n inputValue.value = '';\n }\n },\n };\n });\n\n // popup 设置\n const popupProps = computed(() => ({\n expandAnimation: true,\n ...omit(props.popupProps, 'on-visible-change'),\n disabled: disabled.value,\n overlayInnerStyle: props.popupProps?.overlayInnerStyle ?? { width: 'auto' },\n overlayClassName: [props.popupProps?.overlayClassName, `${COMPONENT_NAME.value}__panel-container`],\n onVisibleChange: (visible: boolean, context: any) => {\n if (disabled.value) return;\n // 这里劫持了进一步向 popup 传递的 onVisibleChange 事件,为了保证可以在 Datepicker 中使用 popupProps.onVisibleChange,故此处理\n props.popupProps?.onVisibleChange?.(visible, context);\n // TODO\n // @ts-ignore types only declare onVisibleChange,but not declare on-visible-change\n props.popupProps?.['on-visible-change']?.(visible, context);\n // 输入框点击不关闭面板\n if (context.trigger === 'trigger-element-click') {\n popupVisible.value = true;\n return;\n }\n popupVisible.value = visible;\n },\n }));\n\n watch(value, (value) => {\n if (!value) {\n inputValue.value = '';\n return;\n }\n if (!isValidDate(value, formatRef.value.format)) return;\n\n inputValue.value = formatDate(value, {\n format: formatRef.value.format,\n });\n });\n\n return {\n year,\n month,\n value,\n time,\n inputValue,\n popupVisible,\n inputProps,\n popupProps,\n inputRef,\n cacheValue,\n isHoverCell,\n onChange,\n };\n}\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdDatePickerPanelProps } from '../date-picker/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 时间选择器默认值,当 value/defaultValue 未设置值时有效 */\n defaultTime: {\n type: String,\n default: '00:00:00',\n },\n /** 点击日期单元格时触发 */\n onCellClick: Function as PropType,\n /** 选中值发生变化时触发。参数 `context.trigger` 表示触发当前事件的来源,不同的模式触发来源也会不同 */\n onChange: Function as PropType,\n /** 如果存在“确定”按钮,则点击“确定”按钮时触发 */\n onConfirm: Function as PropType,\n /** 月份切换发生变化时触发 */\n onMonthChange: Function as PropType,\n /** 点击面板时触发 */\n onPanelClick: Function as PropType,\n /** 点击预设按钮后触发 */\n onPresetClick: Function as PropType,\n /** 时间切换发生变化时触发 */\n onTimeChange: Function as PropType,\n /** 年份切换发生变化时触发 */\n onYearChange: Function as PropType,\n};\n","import { defineComponent, computed } from 'vue';\nimport dayjs from 'dayjs';\nimport { isFunction } from 'lodash-es';\nimport { useSingleValue } from './hooks/useSingleValue';\nimport { formatDate, getDefaultFormat, parseToDayjs } from '@tdesign/common-js/date-picker/format';\nimport { subtractMonth, addMonth, extractTimeObj } from '@tdesign/common-js/date-picker/utils';\nimport type {\n DateValue,\n TdDatePickerPanelProps,\n DatePickerYearChangeTrigger,\n DatePickerMonthChangeTrigger,\n} from './type';\n\nimport datePickerPanelProps from './date-picker-panel-props';\nimport datePickerProps from './props';\n\nimport TSinglePanel from './components/panel/SinglePanel';\n\nexport default defineComponent({\n name: 'TDatePickerPanel',\n props: {\n value: datePickerProps.value,\n defaultValue: datePickerProps.defaultValue,\n modelValue: datePickerProps.modelValue,\n disabled: datePickerProps.disabled,\n disableDate: datePickerProps.disableDate,\n enableTimePicker: datePickerProps.enableTimePicker,\n firstDayOfWeek: datePickerProps.firstDayOfWeek,\n format: datePickerProps.format,\n mode: datePickerProps.mode,\n presets: datePickerProps.presets,\n presetsPlacement: datePickerProps.presetsPlacement,\n timePickerProps: datePickerProps.timePickerProps,\n ...datePickerPanelProps,\n },\n\n setup(props: TdDatePickerPanelProps) {\n const { cacheValue, value, year, month, time, onChange } = useSingleValue(props);\n\n const formatRef = computed(() =>\n getDefaultFormat({\n mode: props.mode,\n format: props.format,\n enableTimePicker: props.enableTimePicker,\n }),\n );\n\n // 日期点击\n function onCellClick(date: Date, { e }: { e: MouseEvent }) {\n props.onCellClick?.({ date, e });\n\n // date 模式自动切换年月\n if (props.mode === 'date') {\n year.value = date.getFullYear();\n month.value = date.getMonth();\n }\n if (props.enableTimePicker) {\n cacheValue.value = formatDate(date, { format: formatRef.value.format });\n } else {\n onChange?.(formatDate(date, { format: formatRef.value.format }) as DateValue, {\n dayjsValue: parseToDayjs(date, formatRef.value.format),\n trigger: 'pick',\n });\n }\n }\n\n // 头部快速切换\n function onJumperClick({ trigger }: { trigger: 'prev' | 'next' | 'current' }) {\n const triggerMap = {\n prev: 'arrow-previous',\n next: 'arrow-next',\n };\n const monthCountMap = { date: 1, week: 1, month: 12, quarter: 12, year: 120 };\n const monthCount = monthCountMap[props.mode] || 0;\n\n const current = new Date(year.value, month.value);\n\n let next = null;\n if (trigger === 'prev') {\n next = subtractMonth(current, monthCount);\n } else if (trigger === 'current') {\n next = new Date();\n } else if (trigger === 'next') {\n next = addMonth(current, monthCount);\n }\n\n const nextYear = next.getFullYear();\n const nextMonth = next.getMonth();\n\n if (year.value !== nextYear) {\n props.onYearChange?.({\n year: nextYear,\n date: dayjs(value.value as DateValue).toDate(),\n trigger: trigger === 'current' ? 'today' : (`year-${triggerMap[trigger]}` as DatePickerYearChangeTrigger),\n });\n }\n if (month.value !== nextMonth) {\n props.onMonthChange?.({\n month: nextMonth,\n date: dayjs(value.value as DateValue).toDate(),\n trigger: trigger === 'current' ? 'today' : (`month-${triggerMap[trigger]}` as DatePickerMonthChangeTrigger),\n });\n }\n\n year.value = nextYear;\n month.value = nextMonth;\n }\n\n // timepicker 点击\n function onTimePickerChange(val: string) {\n time.value = val;\n\n const { hours, minutes, seconds, milliseconds, meridiem } = extractTimeObj(val);\n\n // am pm 12小时制转化 24小时制\n let nextHours = hours;\n if (/am/i.test(meridiem) && nextHours === 12) nextHours -= 12;\n if (/pm/i.test(meridiem) && nextHours < 12) nextHours += 12;\n const currentDate = !dayjs(cacheValue.value as string, formatRef.value.format).isValid()\n ? dayjs()\n : dayjs(cacheValue.value as string, formatRef.value.format);\n const nextDate = currentDate.hour(nextHours).minute(minutes).second(seconds).millisecond(milliseconds).toDate();\n cacheValue.value = formatDate(nextDate, { format: formatRef.value.format });\n\n props.onTimeChange?.({\n time: val,\n date: dayjs(value.value as DateValue).toDate(),\n trigger: 'time-hour',\n });\n }\n\n // 确定\n function onConfirmClick({ e }: { e: MouseEvent }) {\n onChange?.(\n formatDate(cacheValue.value, {\n format: formatRef.value.format,\n }) as DateValue,\n {\n dayjsValue: parseToDayjs(cacheValue.value as string, formatRef.value.format),\n trigger: 'confirm',\n },\n );\n props.onConfirm?.({ date: dayjs(cacheValue.value as string).toDate(), e });\n }\n\n // 预设\n function onPresetClick(preset: any, context: any) {\n const presetVal = isFunction(preset) ? preset() : preset;\n onChange?.(formatDate(presetVal, { format: formatRef.value.format }) as DateValue, {\n dayjsValue: parseToDayjs(presetVal, formatRef.value.format),\n trigger: 'preset',\n });\n props.onPresetClick?.(context);\n }\n\n function onYearChange(nextYear: number) {\n year.value = nextYear;\n\n props.onYearChange?.({\n year: year.value,\n date: dayjs(value.value as DateValue).toDate(),\n trigger: 'year-select',\n });\n }\n\n function onMonthChange(nextMonth: number) {\n month.value = nextMonth;\n\n props.onMonthChange?.({\n month: month.value,\n date: dayjs(value.value as DateValue).toDate(),\n trigger: 'month-select',\n });\n }\n\n const panelProps = computed(() => ({\n value: cacheValue.value as string,\n year: year.value,\n month: month.value,\n mode: props.mode,\n format: formatRef.value.format,\n presets: props.presets,\n time: time.value as string,\n disableDate: props.disableDate,\n firstDayOfWeek: props.firstDayOfWeek,\n timePickerProps: props.timePickerProps,\n enableTimePicker: props.enableTimePicker,\n presetsPlacement: props.presetsPlacement,\n popupVisible: true,\n panelClick: props.onPanelClick,\n onCellClick,\n onJumperClick,\n onConfirmClick,\n onPresetClick,\n onYearChange,\n onMonthChange,\n onTimePickerChange,\n }));\n\n return () => ;\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdDateRangePickerProps } from '../date-picker/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否允许输入日期 */\n allowInput: Boolean,\n /** 无边框模式 */\n borderless: Boolean,\n /** 默认的日期选择交互是根据点击前后日期的顺序来决定并且会加以限制。比如:用户先点击开始时间输入框,选择了一个日期例如2020-05-15,紧接着交互会自动将焦点跳到结束日期输入框,等待用户选择结束时间。此时用户只能选择大于2020-05-15的日期(之前的日期会被灰态禁止点击,限制用户的点击)。当该值传递`true`时,则取消该限制 */\n cancelRangeSelectLimit: Boolean,\n /** 是否显示清除按钮 */\n clearable: Boolean,\n /** 时间选择器默认值,当 value/defaultValue 未设置值时有效 */\n defaultTime: {\n type: Array as PropType,\n default: (): TdDateRangePickerProps['defaultTime'] => ['00:00:00', '23:59:59'],\n },\n /** 禁用日期,示例:['A', 'B'] 表示日期 A 和日期 B 会被禁用。{ from: 'A', to: 'B' } 表示在 A 到 B 之间的日期会被禁用。{ before: 'A', after: 'B' } 表示在 A 之前和在 B 之后的日期都会被禁用。其中 A = '2021-01-01',B = '2021-02-01'。值类型为 Function 则表示返回值为 true 的日期会被禁用 */\n disableDate: {\n type: [Object, Array, Function] as PropType,\n },\n /** 是否禁用组件 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 是否显示时间选择 */\n enableTimePicker: Boolean,\n /** 第一天从星期几开始 */\n firstDayOfWeek: {\n type: Number,\n validator(val: TdDateRangePickerProps['firstDayOfWeek']): boolean {\n if (!val) return true;\n return [1, 2, 3, 4, 5, 6, 7].includes(val);\n },\n },\n /** 用于格式化日期,[详细文档](https://day.js.org/docs/en/display/format) */\n format: {\n type: String,\n default: '',\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 选择器模式 */\n mode: {\n type: String as PropType,\n default: 'date' as TdDateRangePickerProps['mode'],\n validator(val: TdDateRangePickerProps['mode']): boolean {\n if (!val) return true;\n return ['year', 'quarter', 'month', 'week', 'date'].includes(val);\n },\n },\n /** 决定在日期时间区间选择器的场景下是否需要点击确认按钮才完成选择动作,默认为 `true` */\n needConfirm: {\n type: Boolean,\n default: true,\n },\n /** 在开始日期选中之前,面板是否显示预选状态,即是否高亮预选日期 */\n panelPreselection: {\n type: Boolean,\n default: true,\n },\n /** 占位符,值为数组表示可分别为开始日期和结束日期设置占位符 */\n placeholder: {\n type: [String, Array] as PropType,\n },\n /** 透传 Popup 组件全部属性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 组件前置图标 */\n prefixIcon: {\n type: Function as PropType,\n },\n /** 预设快捷日期选择,示例:{ '特定日期范围': ['2021-01-01', '2022-01-01'], '本月': [dayjs().startOf('month'), dayjs().endOf('month')] } */\n presets: {\n type: Object as PropType,\n },\n /** 预设面板展示区域(包含确定按钮) */\n presetsPlacement: {\n type: String as PropType,\n default: 'bottom' as TdDateRangePickerProps['presetsPlacement'],\n validator(val: TdDateRangePickerProps['presetsPlacement']): boolean {\n if (!val) return true;\n return ['left', 'top', 'right', 'bottom'].includes(val);\n },\n },\n /** 透传给范围输入框 RangeInput 组件的参数 */\n rangeInputProps: {\n type: Object as PropType,\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 日期分隔符,支持全局配置,默认为 '-' */\n separator: {\n type: String,\n default: '',\n },\n /** 输入框尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdDateRangePickerProps['size'],\n validator(val: TdDateRangePickerProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdDateRangePickerProps['status'],\n validator(val: TdDateRangePickerProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 组件后置图标 */\n suffixIcon: {\n type: Function as PropType,\n },\n /** 透传 TimePicker 组件属性 */\n timePickerProps: {\n type: Object as PropType,\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 选中值 */\n value: {\n type: Array as PropType,\n default: undefined as TdDateRangePickerProps['value'],\n },\n modelValue: {\n type: Array as PropType,\n default: undefined as TdDateRangePickerProps['value'],\n },\n /** 选中值,非受控属性 */\n defaultValue: {\n type: Array as PropType,\n default: (): TdDateRangePickerProps['defaultValue'] => [],\n },\n /** 用于格式化日期的值,仅支持部分格式,时间戳、日期等。⚠️ `YYYYMMDD` 这种格式不支持,请勿使用,如果希望支持可以给 `dayjs` 提个 PR。注意和 `format` 的区别,`format` 仅用于处理日期在页面中呈现的格式 */\n valueType: {\n type: String as PropType,\n validator(val: TdDateRangePickerProps['valueType']): boolean {\n if (!val) return true;\n return [\n 'time-stamp',\n 'Date',\n 'YYYY',\n 'YYYY-MM',\n 'YYYY-MM-DD',\n 'YYYY-MM-DD HH',\n 'YYYY-MM-DD HH:mm',\n 'YYYY-MM-DD HH:mm:ss',\n 'YYYY-MM-DD HH:mm:ss:SSS',\n ].includes(val);\n },\n },\n /** 当输入框失去焦点时触发 */\n onBlur: Function as PropType,\n /** 选中值发生变化时触发 */\n onChange: Function as PropType,\n /** 如果存在“确定”按钮,则点击“确定”按钮时触发 */\n onConfirm: Function as PropType,\n /** 输入框获得焦点时触发 */\n onFocus: Function as PropType,\n /** 输入框数据发生变化时触发,参数 input 表示输入内容,value 表示组件当前有效值 */\n onInput: Function as PropType,\n /** 选中日期时触发,可能是开始日期,也可能是结束日期,第二个参数可以区分是开始日期或是结束日期 */\n onPick: Function as PropType,\n /** 点击预设按钮后触发 */\n onPresetClick: Function as PropType,\n};\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdRangeInputProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 输入框高亮状态序号 */\n activeIndex: {\n type: Number,\n },\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否可清空 */\n clearable: Boolean,\n /** 是否禁用范围输入框 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 指定输入框展示值的格式 */\n format: {\n type: [Array, Function] as PropType,\n },\n /** 透传 Input 输入框组件全部属性,数组第一项表示第一个输入框属性,第二项表示第二个输入框属性。示例:`[{ label: 'A', name: 'A-name' }, { label: 'B', name: 'B-name' }]` */\n inputProps: {\n type: [Object, Array] as PropType,\n },\n /** 左侧内容 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 占位符,示例:'请输入' 或者 ['开始日期', '结束日期'] */\n placeholder: {\n type: [String, Array] as PropType,\n },\n /** 组件前置图标 */\n prefixIcon: {\n type: Function as PropType,\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 范围分隔符 */\n separator: {\n type: [String, Function] as PropType,\n default: '-' as TdRangeInputProps['separator'],\n },\n /** 输入框内容为空时,悬浮状态是否显示清空按钮,默认不显示 */\n showClearIconOnEmpty: Boolean,\n /** 输入框尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdRangeInputProps['size'],\n validator(val: TdRangeInputProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdRangeInputProps['status'],\n validator(val: TdRangeInputProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 后置图标前的后置内容 */\n suffix: {\n type: [String, Function] as PropType,\n },\n /** 组件后置图标 */\n suffixIcon: {\n type: Function as PropType,\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 范围输入框的值 */\n value: {\n type: Array as PropType,\n default: undefined as TdRangeInputProps['value'],\n },\n modelValue: {\n type: Array as PropType,\n default: undefined as TdRangeInputProps['value'],\n },\n /** 范围输入框的值,非受控属性 */\n defaultValue: {\n type: Array as PropType,\n default: (): TdRangeInputProps['defaultValue'] => [],\n },\n /** 范围输入框失去焦点时触发 */\n onBlur: Function as PropType,\n /** 范围输入框值发生变化时触发 */\n onChange: Function as PropType,\n /** 清空按钮点击时触发 */\n onClear: Function as PropType,\n /** 范围输入框点击时触发 */\n onClick: Function as PropType,\n /** 回车键按下时触发 */\n onEnter: Function as PropType,\n /** 范围输入框获得焦点时触发 */\n onFocus: Function as PropType,\n /** 进入输入框时触发 */\n onMouseenter: Function as PropType,\n /** 离开输入框时触发 */\n onMouseleave: Function as PropType,\n};\n","import { defineComponent, ref, toRefs, computed, Fragment } from 'vue';\nimport { CloseCircleFilledIcon as TdCloseCircleFilledIcon } from 'tdesign-icons-vue-next';\n\nimport Input from '../input';\nimport props from './props';\nimport { RangeInputValue, RangeInputPosition } from './type';\n\n// hooks\nimport {\n useVModel,\n useDisabled,\n useReadonly,\n useTNodeJSX,\n useGlobalIcon,\n usePrefixClass,\n useCommonClassName,\n} from '@tdesign/shared-hooks';\n\nimport { isArray } from 'lodash-es';\n\nfunction calcArrayValue(value: unknown | Array) {\n if (isArray(value)) {\n return value;\n }\n return [value, value];\n}\n\nexport default defineComponent({\n name: 'TRangeInput',\n inheritAttrs: false,\n props,\n setup(props, { expose, attrs }) {\n const { value, modelValue } = toRefs(props);\n const { STATUS, SIZE } = useCommonClassName();\n const classPrefix = usePrefixClass();\n const COMPONENT_NAME = usePrefixClass('range-input');\n const { CloseCircleFilledIcon } = useGlobalIcon({ CloseCircleFilledIcon: TdCloseCircleFilledIcon });\n const renderTNodeJSX = useTNodeJSX();\n\n const isDisabled = useDisabled();\n const isReadonly = useReadonly();\n const focused = ref(false);\n const isHover = ref(false);\n const format = computed(() => calcArrayValue(props.format));\n const inputProps = computed(() => calcArrayValue(props.inputProps));\n const placeholder = computed(() => calcArrayValue(props.placeholder));\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n const inputValue = computed(() => String((innerValue.value?.[0] || innerValue.value?.[1]) ?? ''));\n\n const isShowClearIcon = computed(\n () =>\n ((props.clearable && inputValue.value?.length && !isDisabled.value) || props.showClearIconOnEmpty) &&\n isHover.value,\n );\n\n const inputRefs = {\n firstInputRef: ref(),\n secondInputRef: ref(),\n };\n\n function handleClear(context: { e: MouseEvent }) {\n props.onClear?.(context);\n setInnerValue(['', ''], { ...context, trigger: 'clear', position: 'all' });\n }\n\n function handleEnter(rangeValue: RangeInputValue, context: { e: MouseEvent }) {\n props.onEnter?.(rangeValue, context);\n }\n\n function handleFocus(rangeValue: RangeInputValue, context: { e: MouseEvent }) {\n focused.value = true;\n props.onFocus?.(rangeValue, context);\n }\n\n function handleBlur(rangeValue: RangeInputValue, context: { e: MouseEvent }) {\n focused.value = false;\n props.onBlur?.(rangeValue, context);\n }\n\n function handleMouseEnter(e: MouseEvent) {\n isHover.value = true;\n props?.onMouseenter?.({ e });\n }\n\n function handleMouseLeave(e: MouseEvent) {\n isHover.value = false;\n props?.onMouseleave?.({ e });\n }\n\n expose({\n firstInputElement: inputRefs.firstInputRef.value,\n secondInputElement: inputRefs.secondInputRef.value,\n focus: (options: any) => {\n const { position = 'first' } = options || {};\n inputRefs[`${position as Exclude}InputRef`].value?.focus();\n },\n blur: (options: any) => {\n const { position = 'first' } = options || {};\n inputRefs[`${position as Exclude}InputRef`].value?.blur();\n },\n select: (options: any) => {\n const { position = 'first' } = options || {};\n inputRefs[`${position as Exclude}InputRef`].value?.select();\n },\n });\n\n return () => {\n const labelContent = renderTNodeJSX('label');\n const prefixIconContent = renderTNodeJSX('prefixIcon');\n const suffixContent = renderTNodeJSX('suffix');\n const suffixIconContent = renderTNodeJSX('suffixIcon');\n const tips = renderTNodeJSX('tips');\n const separator = renderTNodeJSX('separator');\n\n const RangeInputContent = (\n \n
    \n {prefixIconContent &&
    {prefixIconContent}
    }\n {labelContent ?
    {labelContent}
    : null}\n props.onClick?.({ e, position: 'first' })}\n onClear={() => setInnerValue([], { position: 'first', trigger: 'input' })}\n onEnter={(val, { e }) =>\n handleEnter([val, innerValue.value?.[1]], { e, position: 'first' } as {\n e: any;\n position: RangeInputPosition;\n })\n }\n onFocus={(val, { e }) =>\n handleFocus([val, innerValue.value?.[1]], { e, position: 'first' } as {\n e: any;\n position: RangeInputPosition;\n })\n }\n onBlur={(val, { e }) =>\n handleBlur([val, innerValue.value?.[1]], { e, position: 'first' } as {\n e: any;\n position: RangeInputPosition;\n })\n }\n onChange={(val, { e }) =>\n setInnerValue([val, innerValue.value?.[1]], { e, position: 'first', trigger: 'input' })\n }\n {...inputProps.value[0]}\n />\n\n
    {separator}
    \n\n props.onClick?.({ e, position: 'second' })}\n onClear={() => setInnerValue([], { position: 'second', trigger: 'input' })}\n onEnter={(val, { e }) =>\n handleEnter([innerValue.value?.[0], val], { e, position: 'second' } as {\n e: any;\n position: RangeInputPosition;\n })\n }\n onFocus={(val, { e }) =>\n handleFocus([innerValue.value?.[0], val], { e, position: 'second' } as {\n e: any;\n position: RangeInputPosition;\n })\n }\n onBlur={(val, { e }) =>\n handleBlur([innerValue.value?.[0], val], { e, position: 'second' } as {\n e: any;\n position: RangeInputPosition;\n })\n }\n onChange={(val, { e }) =>\n setInnerValue([innerValue.value?.[0], val], { e, position: 'second', trigger: 'input' })\n }\n {...inputProps.value[1]}\n />\n {suffixContent ?
    {suffixContent}
    : null}\n {(suffixIconContent || isShowClearIcon.value) && (\n \n {isShowClearIcon.value ? (\n \n ) : (\n suffixIconContent\n )}\n \n )}\n
    \n \n );\n\n const tipsClasses = [\n `${COMPONENT_NAME.value}__tips`,\n `${classPrefix.value}-tips`,\n `${classPrefix.value}-is-${props.status}`,\n ];\n return (\n \n {RangeInputContent}\n {tips &&
    {tips}
    }\n
    \n );\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdRangeInputPopupProps } from '../range-input/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 宽度随内容自适应 */\n autoWidth: Boolean,\n /** 是否禁用范围输入框,值为数组表示可分别控制某一个输入框是否禁用 */\n disabled: Boolean,\n /** 输入框的值 */\n inputValue: {\n type: Array as PropType,\n default: undefined as TdRangeInputPopupProps['inputValue'],\n },\n /** 输入框的值,非受控属性 */\n defaultInputValue: {\n type: Array as PropType,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 下拉框内容,可完全自定义 */\n panel: {\n type: [String, Function] as PropType,\n },\n /** 透传 Popup 浮层组件全部属性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 是否显示下拉框 */\n popupVisible: Boolean,\n /** 透传 RangeInput 组件全部属性 */\n rangeInputProps: {\n type: Object as PropType,\n },\n /** 只读状态,值为真会隐藏输入框,且无法打开下拉框 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdRangeInputPopupProps['status'],\n validator(val: TdRangeInputPopupProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 输入框值发生变化时触发,`context.trigger` 表示触发输入框值变化的来源:文本输入触发、清除按钮触发等 */\n onInputChange: Function as PropType,\n /** 下拉框显示或隐藏时触发 */\n onPopupVisibleChange: Function as PropType,\n};\n","import { defineComponent, computed } from 'vue';\nimport Popup from '../popup';\nimport { usePrefixClass } from '@tdesign/shared-hooks';\nimport RangeInput from './range-input';\nimport props from './range-input-popup-props';\nimport { useOverlayInnerStyle } from '../select-input/hooks/useOverlayInnerStyle';\nimport { TdRangeInputPopupProps } from './type';\n\nexport default defineComponent({\n name: 'TRangeInputPopup',\n props,\n setup(props: TdRangeInputPopupProps) {\n const COMPONENT_NAME = usePrefixClass('range-input-popup');\n\n const { tOverlayInnerStyle, innerPopupVisible, onInnerPopupVisibleChange } = useOverlayInnerStyle(props);\n\n const popupClasses = computed(() => [\n COMPONENT_NAME.value,\n {\n [`${COMPONENT_NAME.value}--visible`]: props.popupVisible || innerPopupVisible.value,\n },\n ]);\n\n return () => (\n
    \n \n \n \n
    \n );\n },\n});\n","import _RangeInput from './range-input';\nimport _RangeInputPopup from './range-input-popup';\nimport { withInstall } from '@tdesign/shared-utils';\nimport { TdRangeInputProps, TdRangeInputPopupProps } from './type';\n\nimport './style';\n\nexport * from './type';\n\nexport type RangeInputProps = TdRangeInputProps;\nexport type RangeInputPopupProps = TdRangeInputPopupProps;\n\nexport const RangeInput = withInstall(_RangeInput);\nexport const RangeInputPopup = withInstall(_RangeInputPopup);\n\nexport default RangeInput;\n","import { defineComponent, PropType, computed } from 'vue';\nimport { useConfig, usePrefixClass } from '@tdesign/shared-hooks';\nimport TPanelContent from './PanelContent';\nimport TExtraContent from './ExtraContent';\nimport { TdDateRangePickerProps } from '../../type';\nimport { getDefaultFormat, parseToDayjs } from '@tdesign/common-js/date-picker/format';\nimport { useTableData, useDisableDate } from '../../hooks';\n\nexport default defineComponent({\n name: 'TRangePanel',\n props: {\n hoverValue: Array as PropType>,\n activeIndex: Number,\n isFirstValueSelected: Boolean,\n disableDate: [Object, Array, Function] as PropType,\n mode: {\n type: String as PropType,\n default: 'date',\n },\n format: String as PropType,\n presetsPlacement: {\n type: String as PropType,\n default: 'bottom',\n },\n value: Array as PropType>,\n timePickerProps: Object as PropType,\n presets: Object as PropType,\n popupVisible: Boolean,\n enableTimePicker: Boolean,\n panelPreselection: Boolean,\n firstDayOfWeek: Number,\n year: Array as PropType>,\n month: Array as PropType>,\n time: Array as PropType>,\n cancelRangeSelectLimit: Boolean,\n onClick: Function,\n onCellClick: Function,\n onCellMouseEnter: Function,\n onCellMouseLeave: Function,\n onJumperClick: Function,\n onConfirmClick: Function,\n onPresetClick: Function,\n onYearChange: Function,\n onMonthChange: Function,\n onTimePickerChange: Function,\n needConfirm: Boolean,\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('date-range-picker__panel');\n const { globalConfig } = useConfig('datePicker');\n\n const format = computed(\n () =>\n getDefaultFormat({\n mode: props.mode,\n format: props.format,\n enableTimePicker: props.enableTimePicker,\n })?.format,\n );\n\n // 是否隐藏预选状态,只有 value 有值的时候需要隐藏\n const hidePreselection = !props.panelPreselection && props.value.length === 2;\n\n const disableDateOptions = computed(() =>\n useDisableDate({\n format: format.value,\n mode: props.mode,\n disableDate: props.disableDate,\n start:\n props.isFirstValueSelected && props.activeIndex === 1\n ? new Date(parseToDayjs(props.value[0], format.value, 'start').toDate().setHours(0, 0, 0))\n : undefined,\n end:\n props.isFirstValueSelected && props.activeIndex === 0\n ? new Date(parseToDayjs(props.value[1], format.value).toDate().setHours(23, 59, 59))\n : undefined,\n }),\n );\n\n const startTableData = computed(() =>\n useTableData({\n isRange: true,\n start: props.value[0] ? parseToDayjs(props.value[0], format.value).toDate() : undefined,\n end: props.value[1] ? parseToDayjs(props.value[1], format.value).toDate() : undefined,\n hoverStart:\n !hidePreselection && props.hoverValue[0]\n ? parseToDayjs(props.hoverValue[0], format.value).toDate()\n : undefined,\n hoverEnd:\n !hidePreselection && props.hoverValue[1]\n ? parseToDayjs(props.hoverValue[1], format.value).toDate()\n : undefined,\n year: props.year[0],\n month: props.month[0],\n mode: props.mode,\n firstDayOfWeek: props.firstDayOfWeek || globalConfig.value.firstDayOfWeek,\n ...disableDateOptions.value,\n cancelRangeSelectLimit: props.cancelRangeSelectLimit,\n }),\n );\n\n const endTableData = computed(() =>\n useTableData({\n isRange: true,\n start: props.value[0] ? parseToDayjs(props.value[0], format.value).toDate() : undefined,\n end: props.value[1] ? parseToDayjs(props.value[1], format.value).toDate() : undefined,\n hoverStart:\n !hidePreselection && props.hoverValue[0]\n ? parseToDayjs(props.hoverValue[0], format.value).toDate()\n : undefined,\n hoverEnd:\n !hidePreselection && props.hoverValue[1]\n ? parseToDayjs(props.hoverValue[1], format.value).toDate()\n : undefined,\n year: props.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, useReadonly, usePrefixClass } from '@tdesign/shared-hooks';\n\nimport { isArray, isFunction } from 'lodash-es';\n\nimport props from './date-range-picker-props';\nimport { DateValue, DateRangePickerPartial } from './type';\n\nimport { RangeInputPopup as TRangeInputPopup } from '../range-input';\nimport TRangePanel from './components/panel/RangePanel';\nimport { useRange } from './hooks/useRange';\nimport {\n parseToDayjs,\n formatTime,\n formatDate,\n isValidDate,\n getDefaultFormat,\n initYearMonthTime,\n} from '@tdesign/common-js/date-picker/format';\nimport { subtractMonth, addMonth, extractTimeObj } from '@tdesign/common-js/date-picker/utils';\nimport { dateCorrection } from './utils';\n\nexport default defineComponent({\n name: 'TDateRangePicker',\n props,\n setup(props, { slots }) {\n const COMPONENT_NAME = usePrefixClass('date-range-picker');\n\n const {\n inputValue,\n popupVisible,\n rangeInputProps,\n popupProps,\n value,\n year,\n month,\n time,\n cacheValue,\n activeIndex,\n isHoverCell,\n isFirstValueSelected,\n onChange,\n } = useRange(props);\n\n const disabled = useDisabled();\n const isReadOnly = useReadonly();\n\n const formatRef = computed(() =>\n getDefaultFormat({\n mode: props.mode,\n enableTimePicker: props.enableTimePicker,\n format: props.format,\n valueType: props.valueType,\n }),\n );\n\n // 记录面板是否选中过\n const isSelected = ref(false);\n\n watch(popupVisible, (visible) => {\n // 面板展开重置数据\n if (visible) {\n isSelected.value = false;\n cacheValue.value = formatDate(value.value || [], {\n format: formatRef.value.valueType,\n targetFormat: formatRef.value.format,\n }) as string[];\n time.value = formatTime(\n value.value || [dayjs().format(formatRef.value.timeFormat), dayjs().format(formatRef.value.timeFormat)],\n formatRef.value.format,\n formatRef.value.timeFormat,\n props.defaultTime,\n ) as string[];\n\n // 空数据重置为当前年月\n if (!value.value.length) {\n const { year: defaultYear, month: defaultMonth } = initYearMonthTime({\n value: value.value,\n mode: props.mode,\n format: formatRef.value.format,\n enableTimePicker: props.enableTimePicker,\n });\n year.value = defaultYear;\n month.value = defaultMonth;\n } else if (value.value.length === 2 && !props.enableTimePicker) {\n // 确保右侧面板月份比左侧大 避免两侧面板月份一致\n const nextMonth = value.value.map((v: string) => parseToDayjs(v, formatRef.value.format).month());\n year.value = value.value.map((v: string) => parseToDayjs(v, formatRef.value.valueType).year());\n if (year.value[0] === year.value[1] && nextMonth[0] === nextMonth[1]) {\n nextMonth[0] === 11 ? (nextMonth[0] -= 1) : (nextMonth[1] += 1);\n }\n month.value = nextMonth;\n // 月份季度选择时需要确保右侧面板年份比左侧大\n if ((props.mode === 'month' || props.mode === 'quarter') && year.value[0] === year.value[1]) {\n year.value = [year.value[0], year.value[0] + 1];\n }\n } else {\n year.value = value.value.map((v: string) => parseToDayjs(v, formatRef.value.format).year());\n if (year.value.length === 1) year.value = [year.value[0], year.value[0]];\n\n month.value = value.value.map((v: string) => parseToDayjs(v, formatRef.value.format).month());\n if (month.value.length === 1) month.value = [month.value[0], Math.min(month.value[0] + 1, 11)];\n }\n } else {\n activeIndex.value = 0;\n isHoverCell.value = false;\n isFirstValueSelected.value = false;\n if (props.needConfirm) {\n inputValue.value = formatDate(value.value, {\n format: formatRef.value.valueType,\n targetFormat: formatRef.value.format,\n });\n } else {\n confirmValueChange();\n }\n }\n });\n\n // 日期 hover\n function onCellMouseEnter(date: Date) {\n isHoverCell.value = true;\n const nextValue = [...(inputValue.value as string[])];\n nextValue[activeIndex.value] = formatDate(date, {\n format: formatRef.value.format,\n }) as string;\n inputValue.value = nextValue;\n }\n\n // 日期 leave\n function onCellMouseLeave() {\n isHoverCell.value = false;\n inputValue.value = cacheValue.value;\n }\n\n // 日期点击\n function onCellClick(date: Date, { e }: { e: MouseEvent; partial: DateRangePickerPartial }) {\n props.onPick?.(date, { e, partial: activeIndex.value ? 'end' : 'start' });\n\n isHoverCell.value = false;\n isSelected.value = true;\n\n const nextValue = [...(inputValue.value as string[])];\n nextValue[activeIndex.value] = formatDate(date, {\n format: formatRef.value.format,\n }) as string;\n cacheValue.value = nextValue;\n inputValue.value = nextValue;\n\n // 有时间选择器走 confirm 逻辑\n if (props.enableTimePicker) return;\n\n // 确保两端都是有效值\n const notValidIndex = nextValue.findIndex((v) => !v || !isValidDate(v, formatRef.value.format));\n\n // 当两端都有有效值时更改 value\n if (notValidIndex === -1 && nextValue.length === 2) {\n // 二次修改时当其中一侧不符合上次区间规范时,清空另一侧数据\n if (\n !isFirstValueSelected.value &&\n parseToDayjs(nextValue[0], formatRef.value.format).isAfter(parseToDayjs(nextValue[1], formatRef.value.format))\n ) {\n nextValue[activeIndex.value ? 0 : 1] = '';\n cacheValue.value = nextValue;\n inputValue.value = nextValue;\n } else {\n onChange?.(\n formatDate(nextValue, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n autoSwap: true,\n }) as DateValue[],\n {\n dayjsValue: nextValue.map((v) => parseToDayjs(v, formatRef.value.format)),\n trigger: 'pick',\n },\n );\n }\n }\n\n // 首次点击不关闭、确保两端都有有效值并且无时间选择器时点击后自动关闭\n if (!isFirstValueSelected.value || !activeIndex.value) {\n let nextIndex = notValidIndex;\n if (nextIndex === -1) nextIndex = activeIndex.value ? 0 : 1;\n activeIndex.value = nextIndex as 0 | 1;\n isFirstValueSelected.value = !!nextValue[0];\n } else {\n popupVisible.value = false;\n }\n }\n\n // 头部快速切换\n function onJumperClick({ trigger, partial }: { trigger: string; partial: DateRangePickerPartial }) {\n const partialIndex = partial === 'start' ? 0 : 1;\n\n const monthCountMap = { date: 1, week: 1, month: 12, quarter: 12, year: 120 };\n const monthCount = monthCountMap[props.mode] || 0;\n const current = new Date(year.value[partialIndex], month.value[partialIndex]);\n\n let next = null;\n if (trigger === 'prev') {\n next = subtractMonth(current, monthCount);\n } else if (trigger === 'current') {\n next = new Date();\n } else if (trigger === 'next') {\n next = addMonth(current, monthCount);\n }\n\n let nextYear = [...year.value];\n nextYear[partialIndex] = next.getFullYear();\n let nextMonth = [...month.value];\n nextMonth[partialIndex] = next.getMonth();\n const onlyYearSelect = ['year', 'quarter', 'month'].includes(props.mode);\n\n // 头部日期切换修正\n const correctedDate = dateCorrection(partialIndex, nextYear, nextMonth, onlyYearSelect);\n nextYear = correctedDate.nextYear;\n nextMonth = correctedDate.nextMonth;\n\n year.value = nextYear;\n month.value = nextMonth;\n }\n\n // time-picker 点击\n function onTimePickerChange(val: string) {\n const { hours, minutes, seconds, milliseconds, meridiem } = extractTimeObj(val);\n\n const nextInputValue = [...(inputValue.value as DateValue[])];\n const changedInputValue = nextInputValue[activeIndex.value];\n const currentDate = !dayjs(changedInputValue, formatRef.value.format).isValid()\n ? dayjs().year(year.value[activeIndex.value]).month(month.value[activeIndex.value])\n : dayjs(changedInputValue, formatRef.value.format);\n // am pm 12小时制转化 24小时制\n let nextHours = hours;\n if (/am/i.test(meridiem) && nextHours === 12) nextHours -= 12;\n if (/pm/i.test(meridiem) && nextHours < 12) nextHours += 12;\n\n const nextDate = currentDate.hour(nextHours).minute(minutes).second(seconds).millisecond(milliseconds).toDate();\n nextInputValue[activeIndex.value] = nextDate;\n\n const nextTime = [...time.value];\n nextTime[activeIndex.value] = val;\n time.value = nextTime;\n\n isSelected.value = true;\n inputValue.value = formatDate(nextInputValue, {\n format: formatRef.value.format,\n });\n cacheValue.value = formatDate(nextInputValue, {\n format: formatRef.value.format,\n });\n }\n const confirmValueChange = (e?: MouseEvent) => {\n const nextValue = [...(inputValue.value as string[])];\n\n const notValidIndex = nextValue.findIndex((v) => !v || !isValidDate(v, formatRef.value.format));\n\n // 当两端都有有效值时更改 value\n if (notValidIndex === -1 && nextValue.length === 2) {\n // 二次修改时当其中一侧不符合上次区间规范时,清空另一侧数据\n if (\n !isFirstValueSelected.value &&\n parseToDayjs(nextValue[0], formatRef.value.format).isAfter(parseToDayjs(nextValue[1], formatRef.value.format))\n ) {\n nextValue[activeIndex.value ? 0 : 1] = '';\n cacheValue.value = nextValue;\n inputValue.value = nextValue;\n } else {\n props?.onConfirm?.({\n date: nextValue.map((v) => dayjs(v).toDate()),\n e: e || null,\n partial: activeIndex.value ? 'end' : 'start',\n });\n onChange?.(\n formatDate(nextValue, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n autoSwap: true,\n }) as DateValue[],\n {\n dayjsValue: nextValue.map((v) => parseToDayjs(v, formatRef.value.format)),\n trigger: 'confirm',\n },\n );\n }\n }\n };\n // 确定\n function onConfirmClick({ e }: { e: MouseEvent }) {\n confirmValueChange(e);\n\n const nextValue = [...(inputValue.value as string[])];\n\n const notValidIndex = nextValue.findIndex((v) => !v || !isValidDate(v, formatRef.value.format));\n\n // 首次点击不关闭、确保两端都有有效值并且无时间选择器时点击后自动关闭\n if (!isFirstValueSelected.value || !activeIndex.value) {\n let nextIndex = notValidIndex;\n if (nextIndex === -1) nextIndex = activeIndex.value ? 0 : 1;\n activeIndex.value = nextIndex as 0 | 1;\n isFirstValueSelected.value = !!nextValue[0];\n } else if (nextValue.length === 2) {\n popupVisible.value = false;\n }\n }\n\n // 预设\n function onPresetClick(preset: any, context: any) {\n let presetValue = preset;\n if (isFunction(preset)) {\n presetValue = preset();\n }\n if (!isArray(presetValue)) {\n console.error(`preset: ${preset} 预设值必须是数组!`);\n } else {\n onChange?.(\n formatDate(presetValue, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n autoSwap: true,\n }) as DateValue[],\n {\n dayjsValue: presetValue.map((p) => parseToDayjs(p, formatRef.value.format)),\n trigger: 'preset',\n },\n );\n popupVisible.value = false;\n props.onPresetClick?.(context);\n }\n }\n\n function onYearChange(nextVal: number, { partial }: { partial: DateRangePickerPartial }) {\n let partialIndex = partial === 'start' ? 0 : 1;\n if (props.enableTimePicker) partialIndex = activeIndex.value;\n\n let nextYear = [...year.value];\n let nextMonth = [...month.value];\n\n nextYear[partialIndex] = nextVal;\n const onlyYearSelect = ['year', 'quarter', 'month'].includes(props.mode);\n\n // 头部日期切换修正\n const correctedDate = dateCorrection(partialIndex, nextYear, nextMonth, onlyYearSelect);\n nextYear = correctedDate.nextYear;\n nextMonth = correctedDate.nextMonth;\n\n year.value = nextYear;\n if (!onlyYearSelect) month.value = nextMonth;\n }\n\n function onMonthChange(nextVal: number, { partial }: { partial: DateRangePickerPartial }) {\n let partialIndex = partial === 'start' ? 0 : 1;\n if (props.enableTimePicker) partialIndex = activeIndex.value;\n\n const nextMonth = [...month.value];\n nextMonth[partialIndex] = nextVal;\n // 保证左侧时间不大于右侧\n if (year.value[0] === year.value[1]) {\n if (partialIndex === 0) {\n // 操作了左侧区间, 处理右侧区间小于或等于左侧区间的场景,交互上始终报错右侧比左侧大 1\n if (nextMonth[1] <= nextMonth[0]) {\n nextMonth[1] = nextMonth[0] + 1;\n if (nextMonth[1] === 12) {\n // 处理跨年的边界场景\n nextMonth[1] = 0;\n year.value = [year.value?.[0], year.value?.[1] + 1];\n }\n }\n }\n if (partialIndex === 1) {\n // 操作了右侧区间, 处理右侧区间小于或等于左侧区间的场景,交互上始终报错左侧比右侧小 1\n nextMonth[0] = Math.min(nextMonth[0], nextMonth[1]);\n if (nextMonth[0] >= nextMonth[1]) {\n nextMonth[0] -= 1;\n if (nextMonth[0] === -1) {\n // 处理跨年的边界场景\n nextMonth[0] = 11;\n year.value = [year.value?.[0] - 1, year.value?.[1]];\n }\n }\n }\n }\n\n month.value = nextMonth;\n }\n\n const panelProps = computed(() => ({\n hoverValue: (isHoverCell.value ? inputValue.value : []) as string[],\n value: (isSelected.value ? cacheValue.value : value.value) as string[],\n isFirstValueSelected: isFirstValueSelected.value,\n activeIndex: activeIndex.value,\n year: year.value,\n month: month.value,\n format: formatRef.value.format,\n mode: props.mode,\n presets: props.presets,\n time: time.value,\n disableDate: props.disableDate,\n firstDayOfWeek: props.firstDayOfWeek,\n timePickerProps: props.timePickerProps,\n enableTimePicker: props.enableTimePicker,\n presetsPlacement: props.presetsPlacement,\n popupVisible: popupVisible.value,\n panelPreselection: props.panelPreselection,\n cancelRangeSelectLimit: props.cancelRangeSelectLimit,\n needConfirm: props.needConfirm,\n onCellClick,\n onCellMouseEnter,\n onCellMouseLeave,\n onJumperClick,\n onConfirmClick,\n onPresetClick,\n onYearChange,\n onMonthChange,\n onTimePickerChange,\n }));\n\n return () => (\n
    \n }\n />\n
    \n );\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdDateRangePickerPanelProps } from '../date-picker/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 时间选择器默认值,当 value/defaultValue 未设置值时有效 */\n defaultTime: {\n type: Array as PropType,\n default: (): TdDateRangePickerPanelProps['defaultTime'] => ['00:00:00', '23:59:59'],\n },\n /** 点击日期单元格时触发 */\n onCellClick: Function as PropType,\n /** 选中值发生变化时触发。参数 `context.trigger` 表示触发当前事件的来源,不同的模式触发来源也会不同 */\n onChange: Function as PropType,\n /** 如果存在“确定”按钮,则点击“确定”按钮时触发 */\n onConfirm: Function as PropType,\n /** 月份切换发生变化时触发 */\n onMonthChange: Function as PropType,\n /** 点击面板时触发 */\n onPanelClick: Function as PropType,\n /** 点击预设按钮后触发 */\n onPresetClick: Function as PropType,\n /** 时间切换发生变化时触发 */\n onTimeChange: Function as PropType,\n /** 年份切换发生变化时触发 */\n onYearChange: Function as PropType,\n};\n","import { defineComponent, computed, ref, onMounted } from 'vue';\nimport dayjs from 'dayjs';\nimport { isArray, isFunction } from 'lodash-es';\n\nimport dateRangePickerPanelProps from './date-range-picker-panel-props';\nimport dateRangePickerProps from './date-range-picker-props';\nimport {\n DateValue,\n DateRangePickerPartial,\n TdDateRangePickerPanelProps,\n DatePickerYearChangeTrigger,\n DatePickerMonthChangeTrigger,\n} from './type';\n\nimport TRangePanel from './components/panel/RangePanel';\nimport { useRangeValue } from './hooks/useRangeValue';\nimport { formatDate, getDefaultFormat, parseToDayjs } from '@tdesign/common-js/date-picker/format';\nimport { subtractMonth, addMonth, extractTimeObj } from '@tdesign/common-js/date-picker/utils';\nimport { dateCorrection } from './utils';\n\nexport default defineComponent({\n name: 'TDateRangePickerPanel',\n props: {\n value: dateRangePickerProps.value,\n defaultValue: dateRangePickerProps.defaultValue,\n modelValue: dateRangePickerProps.modelValue,\n disabled: dateRangePickerProps.disabled,\n disableDate: dateRangePickerProps.disableDate,\n enableTimePicker: dateRangePickerProps.enableTimePicker,\n firstDayOfWeek: dateRangePickerProps.firstDayOfWeek,\n format: dateRangePickerProps.format,\n mode: dateRangePickerProps.mode,\n presets: dateRangePickerProps.presets,\n presetsPlacement: dateRangePickerProps.presetsPlacement,\n timePickerProps: dateRangePickerProps.timePickerProps,\n panelPreselection: dateRangePickerProps.panelPreselection,\n ...dateRangePickerPanelProps,\n },\n\n setup(props: TdDateRangePickerPanelProps) {\n const { value, year, month, time, cacheValue, isFirstValueSelected, onChange } = useRangeValue(props);\n\n const formatRef = computed(() =>\n getDefaultFormat({\n mode: props.mode,\n enableTimePicker: props.enableTimePicker,\n format: props.format,\n }),\n );\n\n // 记录面板是否选中过\n const isSelected = ref(false);\n const isHoverCell = ref(false);\n const hoverValue = ref([]);\n const activeIndex = computed(() => (isFirstValueSelected.value ? 1 : 0));\n\n onMounted(() => {\n if (value.value.length === 2 && !props.enableTimePicker) {\n // 确保右侧面板月份比左侧大 避免两侧面板月份一致\n const nextMonth = value.value.map((v: string) => parseToDayjs(v, formatRef.value.format).month());\n year.value = value.value.map((v: string) => parseToDayjs(v, formatRef.value.valueType).year());\n if (year.value[0] === year.value[1] && nextMonth[0] === nextMonth[1]) {\n nextMonth[0] === 11 ? (nextMonth[0] -= 1) : (nextMonth[1] += 1);\n }\n month.value = nextMonth;\n // 月份季度选择时需要确保右侧面板年份比左侧大\n if (['month', 'quarter'].includes(props.mode) && year.value[0] === year.value[1]) {\n year.value = [year.value[0], year.value[0] + 1];\n }\n }\n });\n\n // 日期 hover\n function onCellMouseEnter(date: Date) {\n isHoverCell.value = true;\n const nextValue = [...(hoverValue.value as string[])];\n nextValue[activeIndex.value] = formatDate(date, {\n format: formatRef.value.format,\n }) as string;\n hoverValue.value = nextValue;\n }\n\n // 日期 leave\n function onCellMouseLeave() {\n isHoverCell.value = false;\n hoverValue.value = cacheValue.value as string[];\n }\n\n // 日期点击\n function onCellClick(date: Date, { e }: { e: MouseEvent }) {\n isHoverCell.value = false;\n isSelected.value = true;\n\n const nextValue = [...(cacheValue.value as string[])];\n nextValue[activeIndex.value] = formatDate(date, {\n format: formatRef.value.format,\n }) as string;\n cacheValue.value = nextValue;\n\n props.onCellClick?.({\n e,\n partial: activeIndex.value ? 'end' : 'start',\n date: nextValue.map((v) => dayjs(v).toDate()),\n });\n // 有时间选择器走 confirm 逻辑\n if (props.enableTimePicker) return;\n\n // 首次点击不关闭、确保两端都有有效值并且无时间选择器时点击后自动关闭\n if (nextValue.length === 2 && isFirstValueSelected.value) {\n onChange?.(\n formatDate(nextValue, {\n format: formatRef.value.format,\n autoSwap: true,\n }) as DateValue[],\n {\n dayjsValue: nextValue.map((v) => parseToDayjs(v, formatRef.value.format)),\n trigger: 'pick',\n },\n );\n isFirstValueSelected.value = false;\n } else {\n isFirstValueSelected.value = true;\n }\n }\n\n // 头部快速切换\n function onJumperClick({\n trigger,\n partial,\n }: {\n trigger: 'prev' | 'next' | 'current';\n partial: DateRangePickerPartial;\n }) {\n const partialIndex = partial === 'start' ? 0 : 1;\n\n const triggerMap = {\n prev: 'arrow-previous',\n next: 'arrow-next',\n };\n const monthCountMap = { date: 1, week: 1, month: 12, quarter: 12, year: 120 };\n const monthCount = monthCountMap[props.mode] || 0;\n const current = new Date(year.value[partialIndex], month.value[partialIndex]);\n\n let next = null;\n if (trigger === 'prev') {\n next = subtractMonth(current, monthCount);\n } else if (trigger === 'current') {\n next = new Date();\n } else if (trigger === 'next') {\n next = addMonth(current, monthCount);\n }\n let nextYear = [...year.value];\n nextYear[partialIndex] = next.getFullYear();\n let nextMonth = [...month.value];\n nextMonth[partialIndex] = next.getMonth();\n const onlyYearSelect = ['year', 'quarter', 'month'].includes(props.mode);\n\n // 头部日期切换修正\n const correctedDate = dateCorrection(partialIndex, nextYear, nextMonth, onlyYearSelect);\n nextYear = correctedDate.nextYear;\n nextMonth = correctedDate.nextMonth;\n\n if (year.value.some((y) => !nextYear.includes(y))) {\n props.onYearChange?.({\n partial,\n year: nextYear[partialIndex],\n date: value.value.map((v) => dayjs(v).toDate()),\n trigger: trigger === 'current' ? 'today' : (`year-${triggerMap[trigger]}` as DatePickerYearChangeTrigger),\n });\n }\n if (month.value.some((m) => !nextMonth.includes(m))) {\n props.onMonthChange?.({\n partial,\n month: nextMonth[partialIndex],\n date: value.value.map((v) => dayjs(v).toDate()),\n trigger: trigger === 'current' ? 'today' : (`month-${triggerMap[trigger]}` as DatePickerMonthChangeTrigger),\n });\n }\n\n year.value = nextYear;\n month.value = nextMonth;\n }\n\n // time-picker 点击\n function onTimePickerChange(val: string) {\n const { hours, minutes, seconds, milliseconds, meridiem } = extractTimeObj(val);\n const nextInputValue = [...(cacheValue.value as DateValue[])];\n // @ts-ignore\n const changedInputValue = cacheValue.value[activeIndex.value];\n const currentDate = !dayjs(changedInputValue, formatRef.value.format).isValid()\n ? dayjs().year(year.value[activeIndex.value]).month(month.value[activeIndex.value])\n : dayjs(changedInputValue, formatRef.value.format);\n // am pm 12小时制转化 24小时制\n let nextHours = hours;\n if (/am/i.test(meridiem) && nextHours === 12) nextHours -= 12;\n if (/pm/i.test(meridiem) && nextHours < 12) nextHours += 12;\n\n const nextDate = currentDate.hour(nextHours).minute(minutes).second(seconds).millisecond(milliseconds).toDate();\n nextInputValue[activeIndex.value] = nextDate;\n\n const nextTime = [...time.value];\n nextTime[activeIndex.value] = val;\n time.value = nextTime;\n\n isSelected.value = true;\n cacheValue.value = formatDate(nextInputValue, {\n format: formatRef.value.format,\n });\n\n props.onTimeChange?.({\n time: val,\n date: value.value.map((v) => parseToDayjs(v, formatRef.value.format).toDate()),\n partial: activeIndex.value ? 'end' : 'start',\n trigger: 'time-hour',\n });\n }\n\n // 确定\n function onConfirmClick({ e }: { e: MouseEvent }) {\n const nextValue = [...(cacheValue.value as string[])];\n\n // 首次点击不关闭、确保两端都有有效值并且无时间选择器时点击后自动关闭\n if (nextValue.length === 2 && isFirstValueSelected.value) {\n onChange?.(\n formatDate(nextValue, {\n format: formatRef.value.format,\n autoSwap: true,\n }) as DateValue[],\n {\n dayjsValue: nextValue.map((v) => parseToDayjs(v, formatRef.value.format)),\n trigger: 'confirm',\n },\n );\n year.value = nextValue.map((v) => dayjs(v, formatRef.value.format).year());\n month.value = nextValue.map((v) => dayjs(v, formatRef.value.format).month());\n isFirstValueSelected.value = false;\n } else {\n isFirstValueSelected.value = true;\n }\n\n props.onConfirm?.({ date: value.value.map((v) => dayjs(v).toDate()), e });\n }\n\n // 预设\n function onPresetClick(preset: any, context: any) {\n let presetValue = preset;\n if (isFunction(preset)) {\n presetValue = preset();\n }\n if (!isArray(presetValue)) {\n console.error(`preset: ${preset} 预设值必须是数组!`);\n } else {\n onChange?.(\n formatDate(presetValue, {\n format: formatRef.value.format,\n autoSwap: true,\n }) as DateValue[],\n {\n dayjsValue: presetValue.map((p) => parseToDayjs(p, formatRef.value.format)),\n trigger: 'preset',\n },\n );\n props.onPresetClick?.(context);\n }\n }\n\n function onYearChange(nextVal: number, { partial }: { partial: DateRangePickerPartial }) {\n let partialIndex = partial === 'start' ? 0 : 1;\n if (props.enableTimePicker) partialIndex = activeIndex.value;\n\n let nextYear = [...year.value];\n nextYear[partialIndex] = nextVal;\n let nextMonth = [...month.value];\n // 年/季度/月份场景下,头部只有年选择器\n const onlyYearSelect = ['year', 'quarter', 'month'].includes(props.mode);\n\n // 头部日期切换修正\n const correctedDate = dateCorrection(partialIndex, nextYear, nextMonth, onlyYearSelect);\n nextYear = correctedDate.nextYear;\n nextMonth = correctedDate.nextMonth;\n\n year.value = nextYear;\n if (!onlyYearSelect) month.value = nextMonth;\n\n props.onYearChange?.({\n partial,\n year: nextYear[partialIndex],\n date: value.value.map((v) => dayjs(v).toDate()),\n trigger: 'year-select',\n });\n }\n\n function onMonthChange(nextVal: number, { partial }: { partial: DateRangePickerPartial }) {\n let partialIndex = partial === 'start' ? 0 : 1;\n if (props.enableTimePicker) partialIndex = activeIndex.value;\n\n const nextMonth = [...month.value];\n nextMonth[partialIndex] = nextVal;\n // 保证左侧时间不大于右侧\n if (year.value[0] === year.value[1]) {\n if (partialIndex === 0) {\n // 操作了左侧区间, 处理右侧区间小于或等于左侧区间的场景,交互上始终报错右侧比左侧大 1\n if (nextMonth[1] <= nextMonth[0]) {\n nextMonth[1] = nextMonth[0] + 1;\n if (nextMonth[1] === 12) {\n // 处理跨年的边界场景\n nextMonth[1] = 0;\n year.value = [year.value?.[0], year.value?.[1] + 1];\n }\n }\n }\n if (partialIndex === 1) {\n // 操作了右侧区间, 处理右侧区间小于或等于左侧区间的场景,交互上始终报错左侧比右侧小 1\n nextMonth[0] = Math.min(nextMonth[0], nextMonth[1]);\n if (nextMonth[0] >= nextMonth[1]) {\n nextMonth[0] -= 1;\n if (nextMonth[0] === -1) {\n // 处理跨年的边界场景\n nextMonth[0] = 11;\n year.value = [year.value?.[0] - 1, year.value?.[1]];\n }\n }\n }\n }\n\n month.value = nextMonth;\n\n props.onMonthChange?.({\n partial,\n month: nextMonth[partialIndex],\n date: value.value.map((v) => dayjs(v).toDate()),\n trigger: 'month-select',\n });\n }\n\n const panelProps = computed(() => ({\n hoverValue: (isHoverCell.value ? hoverValue.value : []) as string[],\n value: (isSelected.value ? cacheValue.value : value.value) as string[],\n activeIndex: activeIndex.value,\n year: year.value,\n month: month.value,\n mode: props.mode,\n format: formatRef.value.format,\n presets: props.presets,\n time: time.value,\n disableDate: props.disableDate,\n firstDayOfWeek: props.firstDayOfWeek,\n timePickerProps: props.timePickerProps,\n enableTimePicker: props.enableTimePicker,\n presetsPlacement: props.presetsPlacement,\n panelPreselection: props.panelPreselection,\n popupVisible: true,\n panelClick: props.onPanelClick,\n onCellClick,\n onCellMouseEnter,\n onCellMouseLeave,\n onJumperClick,\n onConfirmClick,\n onPresetClick,\n onYearChange,\n onMonthChange,\n onTimePickerChange,\n }));\n\n return () => ;\n },\n});\n","import _DatePicker from './DatePicker';\nimport _DatePickerPanel from './DatePickerPanel';\nimport _DateRangePicker from './DateRangePicker';\nimport _DateRangePickerPanel from './DateRangePickerPanel';\nimport { withInstall } from '@tdesign/shared-utils';\nimport { TdDatePickerProps, TdDateRangePickerProps, TdDatePickerPanelProps, TdDateRangePickerPanelProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type DatePickerProps = TdDatePickerProps;\n\nexport interface DatePickerPanelProps extends TdDatePickerPanelProps, Pick {}\n\nexport type DateRangePickerProps = TdDateRangePickerProps;\nexport interface DateRangePickerPanelProps\n extends TdDateRangePickerPanelProps,\n Pick {}\n\nexport const DatePicker = withInstall(_DatePicker);\nexport const DatePickerPanel = withInstall(_DatePickerPanel);\nexport const DateRangePicker = withInstall(_DateRangePicker);\nexport const DateRangePickerPanel = withInstall(_DateRangePickerPanel);\n\nexport default DatePicker;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdFormProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否在表单标签字段右侧显示冒号 */\n colon: Boolean,\n /** 表单数据 */\n data: {\n type: Object as PropType,\n default: () => ({}),\n },\n /** 是否禁用整个表单 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 表单错误信息配置,示例:`{ idcard: '请输入正确的身份证号码', max: '字符长度不能超过 ${max}' }` */\n errorMessage: {\n type: Object as PropType,\n },\n /** 表单原生的id属性,支持用于配合非表单内的按钮通过form属性来触发表单事件 */\n id: {\n type: String,\n default: undefined,\n },\n /** 表单字段标签对齐方式:左对齐、右对齐、顶部对齐 */\n labelAlign: {\n type: String as PropType,\n default: 'right' as TdFormProps['labelAlign'],\n validator(val: TdFormProps['labelAlign']): boolean {\n if (!val) return true;\n return ['left', 'right', 'top'].includes(val);\n },\n },\n /** 可以整体设置label标签宽度,默认为100px */\n labelWidth: {\n type: [String, Number] as PropType,\n default: '100px' as TdFormProps['labelWidth'],\n },\n /** 表单布局,有两种方式:纵向布局 和 行内布局 */\n layout: {\n type: String as PropType,\n default: 'vertical' as TdFormProps['layout'],\n validator(val: TdFormProps['layout']): boolean {\n if (!val) return true;\n return ['vertical', 'inline'].includes(val);\n },\n },\n /** 是否阻止表单提交默认事件(表单提交默认事件会刷新页面),设置为 `true` 可以避免刷新 */\n preventSubmitDefault: {\n type: Boolean,\n default: true,\n },\n /** 是否整个表单只读 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 是否显示必填符号(*),默认显示 */\n requiredMark: {\n type: Boolean,\n default: undefined,\n },\n /** 表单必填符号(*)显示位置 */\n requiredMarkPosition: {\n type: String as PropType,\n validator(val: TdFormProps['requiredMarkPosition']): boolean {\n if (!val) return true;\n return ['left', 'right'].includes(val);\n },\n },\n /** 重置表单的方式,值为 empty 表示重置表单为空,值为 initial 表示重置表单数据为初始值 */\n resetType: {\n type: String as PropType,\n default: 'empty' as TdFormProps['resetType'],\n validator(val: TdFormProps['resetType']): boolean {\n if (!val) return true;\n return ['empty', 'initial'].includes(val);\n },\n },\n /** 表单字段校验规则 */\n rules: {\n type: Object as PropType,\n },\n /** 表单校验不通过时,是否自动滚动到第一个校验不通过的字段,平滑滚动或是瞬间直达。值为空则表示不滚动 */\n scrollToFirstError: {\n type: String as PropType,\n validator(val: TdFormProps['scrollToFirstError']): boolean {\n if (!val) return true;\n return ['', 'smooth', 'auto'].includes(val);\n },\n },\n /** 校验不通过时,是否显示错误提示信息,统一控制全部表单项。如果希望控制单个表单项,请给 FormItem 设置该属性 */\n showErrorMessage: {\n type: Boolean,\n default: true,\n },\n /** 校验状态图标,值为 `true` 显示默认图标,默认图标有 成功、失败、警告 等,不同的状态图标不同。`statusIcon` 值为 `false`,不显示图标。`statusIcon` 值类型为渲染函数,则可以自定义右侧状态图标 */\n statusIcon: {\n type: [Boolean, Function] as PropType,\n default: undefined as TdFormProps['statusIcon'],\n },\n /** 【讨论中】当校验结果只有告警信息时,是否触发 `submit` 提交事件 */\n submitWithWarningMessage: Boolean,\n /** 表单重置时触发 */\n onReset: Function as PropType,\n /** 表单提交时触发。其中 `context.validateResult` 表示校验结果,`context.firstError` 表示校验不通过的第一个规则提醒。`context.validateResult` 值为 `true` 表示校验通过;如果校验不通过,`context.validateResult` 值为校验结果列表。
    【注意】⚠️ 默认情况,输入框按下 Enter 键会自动触发提交事件,如果希望禁用这个默认行为,可以给输入框添加 enter 事件,并在事件中设置 `e.preventDefault()` */\n onSubmit: Function as PropType,\n /** 校验结束后触发,result 值为 true 表示校验通过;如果校验不通过,result 值为校验结果列表 */\n onValidate: Function as PropType,\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = merge;\nfunction merge() {\n var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var defaults = arguments.length > 1 ? arguments[1] : undefined;\n for (var key in defaults) {\n if (typeof obj[key] === 'undefined') {\n obj[key] = defaults[key];\n }\n }\n return obj;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isDate;\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nfunction _createForOfIteratorHelper(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nvar default_date_options = {\n format: 'YYYY/MM/DD',\n delimiters: ['/', '-'],\n strictMode: false\n};\nfunction isValidFormat(format) {\n return /(^(y{4}|y{2})[.\\/-](m{1,2})[.\\/-](d{1,2})$)|(^(m{1,2})[.\\/-](d{1,2})[.\\/-]((y{4}|y{2})$))|(^(d{1,2})[.\\/-](m{1,2})[.\\/-]((y{4}|y{2})$))/gi.test(format);\n}\nfunction zip(date, format) {\n var zippedArr = [],\n len = Math.max(date.length, format.length);\n for (var i = 0; i < len; i++) {\n zippedArr.push([date[i], format[i]]);\n }\n return zippedArr;\n}\nfunction isDate(input, options) {\n if (typeof options === 'string') {\n // Allow backward compatibility for old format isDate(input [, format])\n options = (0, _merge.default)({\n format: options\n }, default_date_options);\n } else {\n options = (0, _merge.default)(options, default_date_options);\n }\n if (typeof input === 'string' && isValidFormat(options.format)) {\n if (options.strictMode && input.length !== options.format.length) return false;\n var formatDelimiter = options.delimiters.find(function (delimiter) {\n return options.format.indexOf(delimiter) !== -1;\n });\n var dateDelimiter = options.strictMode ? formatDelimiter : options.delimiters.find(function (delimiter) {\n return input.indexOf(delimiter) !== -1;\n });\n var dateAndFormat = zip(input.split(dateDelimiter), options.format.toLowerCase().split(formatDelimiter));\n var dateObj = {};\n var _iterator = _createForOfIteratorHelper(dateAndFormat),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _step$value = _slicedToArray(_step.value, 2),\n dateWord = _step$value[0],\n formatWord = _step$value[1];\n if (!dateWord || !formatWord || dateWord.length !== formatWord.length) {\n return false;\n }\n dateObj[formatWord.charAt(0)] = dateWord;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n var fullYear = dateObj.y;\n\n // Check if the year starts with a hyphen\n if (fullYear.startsWith('-')) {\n return false; // Hyphen before year is not allowed\n }\n if (dateObj.y.length === 2) {\n var parsedYear = parseInt(dateObj.y, 10);\n if (isNaN(parsedYear)) {\n return false;\n }\n var currentYearLastTwoDigits = new Date().getFullYear() % 100;\n if (parsedYear < currentYearLastTwoDigits) {\n fullYear = \"20\".concat(dateObj.y);\n } else {\n fullYear = \"19\".concat(dateObj.y);\n }\n }\n var month = dateObj.m;\n if (dateObj.m.length === 1) {\n month = \"0\".concat(dateObj.m);\n }\n var day = dateObj.d;\n if (dateObj.d.length === 1) {\n day = \"0\".concat(dateObj.d);\n }\n return new Date(\"\".concat(fullYear, \"-\").concat(month, \"-\").concat(day, \"T00:00:00.000Z\")).getUTCDate() === +dateObj.d;\n }\n if (!options.strictMode) {\n return Object.prototype.toString.call(input) === '[object Date]' && isFinite(input);\n }\n return false;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = assertString;\nfunction assertString(input) {\n if (input === undefined || input === null) throw new TypeError(\"Expected a string but received a \".concat(input));\n if (input.constructor.name !== 'String') throw new TypeError(\"Expected a string but received a \".concat(input.constructor.name));\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = checkHost;\nfunction isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n}\nfunction checkHost(host, matches) {\n for (var i = 0; i < matches.length; i++) {\n var match = matches[i];\n if (host === match || isRegExp(match) && match.test(host)) {\n return true;\n }\n }\n return false;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isByteLength;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/* eslint-disable prefer-rest-params */\nfunction isByteLength(str, options) {\n (0, _assertString.default)(str);\n var min;\n var max;\n if (_typeof(options) === 'object') {\n min = options.min || 0;\n max = options.max;\n } else {\n // backwards compatibility: isByteLength(str, min [, max])\n min = arguments[1];\n max = arguments[2];\n }\n var len = encodeURI(str).split(/%..|./).length - 1;\n return len >= min && (typeof max === 'undefined' || len <= max);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isFQDN;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nvar default_fqdn_options = {\n require_tld: true,\n allow_underscores: false,\n allow_trailing_dot: false,\n allow_numeric_tld: false,\n allow_wildcard: false,\n ignore_max_length: false\n};\nfunction isFQDN(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_fqdn_options);\n\n /* Remove the optional trailing dot before checking validity */\n if (options.allow_trailing_dot && str[str.length - 1] === '.') {\n str = str.substring(0, str.length - 1);\n }\n\n /* Remove the optional wildcard before checking validity */\n if (options.allow_wildcard === true && str.indexOf('*.') === 0) {\n str = str.substring(2);\n }\n var parts = str.split('.');\n var tld = parts[parts.length - 1];\n if (options.require_tld) {\n // disallow fqdns without tld\n if (parts.length < 2) {\n return false;\n }\n if (!options.allow_numeric_tld && !/^([a-z\\u00A1-\\u00A8\\u00AA-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i.test(tld)) {\n return false;\n }\n\n // disallow spaces\n if (/\\s/.test(tld)) {\n return false;\n }\n }\n\n // reject numeric TLDs\n if (!options.allow_numeric_tld && /^\\d+$/.test(tld)) {\n return false;\n }\n return parts.every(function (part) {\n if (part.length > 63 && !options.ignore_max_length) {\n return false;\n }\n if (!/^[a-z_\\u00a1-\\uffff0-9-]+$/i.test(part)) {\n return false;\n }\n\n // disallow full-width chars\n if (/[\\uff01-\\uff5e]/.test(part)) {\n return false;\n }\n\n // disallow parts starting or ending with hyphen\n if (/^-|-$/.test(part)) {\n return false;\n }\n if (!options.allow_underscores && /_/.test(part)) {\n return false;\n }\n return true;\n });\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIP;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/**\n11.3. Examples\n\n The following addresses\n\n fe80::1234 (on the 1st link of the node)\n ff02::5678 (on the 5th link of the node)\n ff08::9abc (on the 10th organization of the node)\n\n would be represented as follows:\n\n fe80::1234%1\n ff02::5678%5\n ff08::9abc%10\n\n (Here we assume a natural translation from a zone index to the\n part, where the Nth zone of any scope is translated into\n \"N\".)\n\n If we use interface names as , those addresses could also be\n represented as follows:\n\n fe80::1234%ne0\n ff02::5678%pvc1.3\n ff08::9abc%interface10\n\n where the interface \"ne0\" belongs to the 1st link, \"pvc1.3\" belongs\n to the 5th link, and \"interface10\" belongs to the 10th organization.\n * * */\nvar IPv4SegmentFormat = '(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';\nvar IPv4AddressFormat = \"(\".concat(IPv4SegmentFormat, \"[.]){3}\").concat(IPv4SegmentFormat);\nvar IPv4AddressRegExp = new RegExp(\"^\".concat(IPv4AddressFormat, \"$\"));\nvar IPv6SegmentFormat = '(?:[0-9a-fA-F]{1,4})';\nvar IPv6AddressRegExp = new RegExp('^(' + \"(?:\".concat(IPv6SegmentFormat, \":){7}(?:\").concat(IPv6SegmentFormat, \"|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){6}(?:\").concat(IPv4AddressFormat, \"|:\").concat(IPv6SegmentFormat, \"|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){5}(?::\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,2}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){4}(?:(:\").concat(IPv6SegmentFormat, \"){0,1}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,3}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){3}(?:(:\").concat(IPv6SegmentFormat, \"){0,2}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,4}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){2}(?:(:\").concat(IPv6SegmentFormat, \"){0,3}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,5}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){1}(?:(:\").concat(IPv6SegmentFormat, \"){0,4}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,6}|:)|\") + \"(?::((?::\".concat(IPv6SegmentFormat, \"){0,5}:\").concat(IPv4AddressFormat, \"|(?::\").concat(IPv6SegmentFormat, \"){1,7}|:))\") + ')(%[0-9a-zA-Z.]{1,})?$');\nfunction isIP(ipAddress) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n (0, _assertString.default)(ipAddress);\n\n // accessing 'arguments' for backwards compatibility: isIP(ipAddress [, version])\n // eslint-disable-next-line prefer-rest-params\n var version = (_typeof(options) === 'object' ? options.version : arguments[1]) || '';\n if (!version) {\n return isIP(ipAddress, {\n version: 4\n }) || isIP(ipAddress, {\n version: 6\n });\n }\n if (version.toString() === '4') {\n return IPv4AddressRegExp.test(ipAddress);\n }\n if (version.toString() === '6') {\n return IPv6AddressRegExp.test(ipAddress);\n }\n return false;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEmail;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _checkHost = _interopRequireDefault(require(\"./util/checkHost\"));\nvar _isByteLength = _interopRequireDefault(require(\"./isByteLength\"));\nvar _isFQDN = _interopRequireDefault(require(\"./isFQDN\"));\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nvar default_email_options = {\n allow_display_name: false,\n allow_underscores: false,\n require_display_name: false,\n allow_utf8_local_part: true,\n require_tld: true,\n blacklisted_chars: '',\n ignore_max_length: false,\n host_blacklist: [],\n host_whitelist: []\n};\n\n/* eslint-disable max-len */\n/* eslint-disable no-control-regex */\nvar splitNameAddress = /^([^\\x00-\\x1F\\x7F-\\x9F\\cX]+)]/.test(display_name_without_quotes);\n if (contains_illegal) {\n // if contains illegal characters,\n // must to be enclosed in double-quotes, otherwise it's not a valid display name\n if (display_name_without_quotes === display_name) {\n return false;\n }\n\n // the quotes in display name must start with character symbol \\\n var all_start_with_back_slash = display_name_without_quotes.split('\"').length === display_name_without_quotes.split('\\\\\"').length;\n if (!all_start_with_back_slash) {\n return false;\n }\n }\n return true;\n}\nfunction isEmail(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_email_options);\n if (options.require_display_name || options.allow_display_name) {\n var display_email = str.match(splitNameAddress);\n if (display_email) {\n var display_name = display_email[1];\n\n // Remove display name and angle brackets to get email address\n // Can be done in the regex but will introduce a ReDOS (See #1597 for more info)\n str = str.replace(display_name, '').replace(/(^<|>$)/g, '');\n\n // sometimes need to trim the last space to get the display name\n // because there may be a space between display name and email address\n // eg. myname \n // the display name is `myname` instead of `myname `, so need to trim the last space\n if (display_name.endsWith(' ')) {\n display_name = display_name.slice(0, -1);\n }\n if (!validateDisplayName(display_name)) {\n return false;\n }\n } else if (options.require_display_name) {\n return false;\n }\n }\n if (!options.ignore_max_length && str.length > defaultMaxEmailLength) {\n return false;\n }\n var parts = str.split('@');\n var domain = parts.pop();\n var lower_domain = domain.toLowerCase();\n if (options.host_blacklist.length > 0 && (0, _checkHost.default)(lower_domain, options.host_blacklist)) {\n return false;\n }\n if (options.host_whitelist.length > 0 && !(0, _checkHost.default)(lower_domain, options.host_whitelist)) {\n return false;\n }\n var user = parts.join('@');\n if (options.domain_specific_validation && (lower_domain === 'gmail.com' || lower_domain === 'googlemail.com')) {\n /*\n Previously we removed dots for gmail addresses before validating.\n This was removed because it allows `multiple..dots@gmail.com`\n to be reported as valid, but it is not.\n Gmail only normalizes single dots, removing them from here is pointless,\n should be done in normalizeEmail\n */\n user = user.toLowerCase();\n\n // Removing sub-address from username before gmail validation\n var username = user.split('+')[0];\n\n // Dots are not included in gmail length restriction\n if (!(0, _isByteLength.default)(username.replace(/\\./g, ''), {\n min: 6,\n max: 30\n })) {\n return false;\n }\n var _user_parts = username.split('.');\n for (var i = 0; i < _user_parts.length; i++) {\n if (!gmailUserPart.test(_user_parts[i])) {\n return false;\n }\n }\n }\n if (options.ignore_max_length === false && (!(0, _isByteLength.default)(user, {\n max: 64\n }) || !(0, _isByteLength.default)(domain, {\n max: 254\n }))) {\n return false;\n }\n if (!(0, _isFQDN.default)(domain, {\n require_tld: options.require_tld,\n ignore_max_length: options.ignore_max_length,\n allow_underscores: options.allow_underscores\n })) {\n if (!options.allow_ip_domain) {\n return false;\n }\n if (!(0, _isIP.default)(domain)) {\n if (!domain.startsWith('[') || !domain.endsWith(']')) {\n return false;\n }\n var noBracketdomain = domain.slice(1, -1);\n if (noBracketdomain.length === 0 || !(0, _isIP.default)(noBracketdomain)) {\n return false;\n }\n }\n }\n if (options.blacklisted_chars) {\n if (user.search(new RegExp(\"[\".concat(options.blacklisted_chars, \"]+\"), 'g')) !== -1) return false;\n }\n if (user[0] === '\"' && user[user.length - 1] === '\"') {\n user = user.slice(1, user.length - 1);\n return options.allow_utf8_local_part ? quotedEmailUserUtf8.test(user) : quotedEmailUser.test(user);\n }\n var pattern = options.allow_utf8_local_part ? emailUserUtf8Part : emailUserPart;\n var user_parts = user.split('.');\n for (var _i = 0; _i < user_parts.length; _i++) {\n if (!pattern.test(user_parts[_i])) {\n return false;\n }\n }\n return true;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar includes = function includes(str, val) {\n return str.indexOf(val) !== -1;\n};\nvar _default = exports.default = includes;\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { isEmpty, isObject, isNumber, isBoolean } from 'lodash-es';\n\n// https://github.com/validatorjs/validator.js\n\nimport isDate from 'validator/lib/isDate';\nimport isEmail from 'validator/lib/isEmail';\n\nimport isURL from 'validator/lib/isURL';\n\nimport { getCharacterLength } from '@tdesign/common-js/utils/helper';\nimport {\n CustomValidator,\n FormRule,\n ValueType,\n AllValidateResult,\n ValidateResultType,\n CustomValidateResolveType,\n} from '../type';\n\n// `{} / [] / '' / undefined / null` 等内容被认为是空; 0 和 false 被认为是正常数据,部分数据的值就是 0 或者 false\nexport function isValueEmpty(val: ValueType): boolean {\n const type: string = Object.prototype.toString.call(val);\n const typeMap: Record = {\n Date: '[object Date]',\n };\n if (type === typeMap.Date) {\n return false;\n }\n return isObject(val) ? isEmpty(val) : ['', undefined, null].includes(val);\n}\n\nconst VALIDATE_MAP = {\n date: isDate,\n url: isURL,\n email: isEmail,\n required: (val: ValueType): boolean => !isValueEmpty(val),\n whitespace: (val: ValueType): boolean => !(/^\\s+$/.test(val) || val === ''),\n boolean: (val: ValueType): boolean => isBoolean(val),\n max: (val: ValueType, num: number): boolean => (isNumber(val) ? val <= num : getCharacterLength(val) <= num),\n min: (val: ValueType, num: number): boolean => (isNumber(val) ? val >= num : getCharacterLength(val) >= num),\n len: (val: ValueType, num: number): boolean => getCharacterLength(String(val)) === num,\n number: (val: ValueType): boolean => isNumber(val),\n enum: (val: ValueType, strs: Array): boolean => strs.includes(val),\n idcard: (val: ValueType): boolean => /^(\\d{18,18}|\\d{15,15}|\\d{17,17}x)$/i.test(val),\n telnumber: (val: ValueType): boolean => /^1[3-9]\\d{9}$/.test(val),\n pattern: (val: ValueType, regexp: RegExp): boolean => regexp.test(val),\n // 自定义校验规则,可能是异步校验\n validator: (val: ValueType, validate: CustomValidator): ReturnType => validate(val),\n};\n\nexport type ValidateFuncType = typeof VALIDATE_MAP[keyof typeof VALIDATE_MAP];\n\n/**\n * 校验某一条数据的某一条规则,一种校验规则不满足则不再进行校验。\n * @param value 值\n * @param rule 校验规则\n * @returns 两种校验结果,一种是内置校验规则的校验结果哦,二种是自定义校验规则(validator)的校验结果\n */\nexport async function validateOneRule(value: ValueType, rule: FormRule): Promise {\n let validateResult: CustomValidateResolveType | ValidateResultType = { result: true };\n const keys = Object.keys(rule) as (keyof FormRule)[];\n let vOptions: undefined | FormRule[keyof FormRule];\n let vValidateFun: ValidateFuncType;\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n // 非必填选项,值为空,非自定义规则:无需校验,直接返回 true\n if (!rule.required && isValueEmpty(value) && !rule.validator) {\n return validateResult;\n }\n\n const validateRule: ValidateFuncType = VALIDATE_MAP[key as keyof typeof VALIDATE_MAP];\n // 找到一个校验规则,则无需再找,因为参数只允许对一个规则进行校验\n if (validateRule && (rule[key] || rule[key] === 0)) {\n // rule 值为 true 则表示没有校验参数,只是对值进行默认规则校验\n vOptions = rule[key] === true ? undefined : rule[key];\n vValidateFun = validateRule;\n break;\n }\n }\n if (vValidateFun) {\n // @ts-ignore\n validateResult = await vValidateFun(value, vOptions);\n // 如果校验不通过,则返回校验不通过的规则\n if (isBoolean(validateResult)) {\n return { ...rule, result: validateResult };\n }\n // 校验结果为 CustomValidateObj,只有自定义校验规则会存在这种情况\n if (isObject(validateResult)) {\n return validateResult;\n }\n }\n return validateResult;\n}\n\n// 单个数据进行全规则校验,校验成功也可能会有 message\nexport async function validate(value: ValueType, rules: Array): Promise {\n const all = rules.map((rule) => validateOneRule(value, rule));\n const r = await Promise.all(all);\n return r;\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isURL;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _checkHost = _interopRequireDefault(require(\"./util/checkHost\"));\nvar _includesString = _interopRequireDefault(require(\"./util/includesString\"));\nvar _isFQDN = _interopRequireDefault(require(\"./isFQDN\"));\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\n/*\noptions for isURL method\n\nprotocols - valid protocols can be modified with this option.\nrequire_tld - If set to false isURL will not check if the URL's host includes a top-level domain.\nrequire_protocol - if set to true isURL will return false if protocol is not present in the URL.\nrequire_host - if set to false isURL will not check if host is present in the URL.\nrequire_port - if set to true isURL will check if port is present in the URL.\nrequire_valid_protocol - isURL will check if the URL's protocol is present in the protocols option.\nallow_underscores - if set to true, the validator will allow underscores in the URL.\nhost_whitelist - if set to an array of strings or regexp, and the domain matches none of the strings\n defined in it, the validation fails.\nhost_blacklist - if set to an array of strings or regexp, and the domain matches any of the strings\n defined in it, the validation fails.\nallow_trailing_dot - if set to true, the validator will allow the domain to end with\n a `.` character.\nallow_protocol_relative_urls - if set to true protocol relative URLs will be allowed.\nallow_fragments - if set to false isURL will return false if fragments are present.\nallow_query_components - if set to false isURL will return false if query components are present.\ndisallow_auth - if set to true, the validator will fail if the URL contains an authentication\n component, e.g. `http://username:password@example.com`\nvalidate_length - if set to false isURL will skip string length validation. `max_allowed_length`\n will be ignored if this is set as `false`.\nmax_allowed_length - if set, isURL will not allow URLs longer than the specified value (default is\n 2084 that IE maximum URL length).\n\n*/\n\nvar default_url_options = {\n protocols: ['http', 'https', 'ftp'],\n require_tld: true,\n require_protocol: false,\n require_host: true,\n require_port: false,\n require_valid_protocol: true,\n allow_underscores: false,\n allow_trailing_dot: false,\n allow_protocol_relative_urls: false,\n allow_fragments: true,\n allow_query_components: true,\n validate_length: true,\n max_allowed_length: 2084\n};\nvar wrapped_ipv6 = /^\\[([^\\]]+)\\](?::([0-9]+))?$/;\nfunction isURL(url, options) {\n (0, _assertString.default)(url);\n if (!url || /[\\s<>]/.test(url)) {\n return false;\n }\n if (url.indexOf('mailto:') === 0) {\n return false;\n }\n options = (0, _merge.default)(options, default_url_options);\n if (options.validate_length && url.length > options.max_allowed_length) {\n return false;\n }\n if (!options.allow_fragments && (0, _includesString.default)(url, '#')) {\n return false;\n }\n if (!options.allow_query_components && ((0, _includesString.default)(url, '?') || (0, _includesString.default)(url, '&'))) {\n return false;\n }\n var protocol, auth, host, hostname, port, port_str, split, ipv6;\n split = url.split('#');\n url = split.shift();\n split = url.split('?');\n url = split.shift();\n split = url.split('://');\n if (split.length > 1) {\n protocol = split.shift().toLowerCase();\n if (options.require_valid_protocol && options.protocols.indexOf(protocol) === -1) {\n return false;\n }\n } else if (options.require_protocol) {\n return false;\n } else if (url.slice(0, 2) === '//') {\n if (!options.allow_protocol_relative_urls) {\n return false;\n }\n split[0] = url.slice(2);\n }\n url = split.join('://');\n if (url === '') {\n return false;\n }\n split = url.split('/');\n url = split.shift();\n if (url === '' && !options.require_host) {\n return true;\n }\n split = url.split('@');\n if (split.length > 1) {\n if (options.disallow_auth) {\n return false;\n }\n if (split[0] === '') {\n return false;\n }\n auth = split.shift();\n if (auth.indexOf(':') >= 0 && auth.split(':').length > 2) {\n return false;\n }\n var _auth$split = auth.split(':'),\n _auth$split2 = _slicedToArray(_auth$split, 2),\n user = _auth$split2[0],\n password = _auth$split2[1];\n if (user === '' && password === '') {\n return false;\n }\n }\n hostname = split.join('@');\n port_str = null;\n ipv6 = null;\n var ipv6_match = hostname.match(wrapped_ipv6);\n if (ipv6_match) {\n host = '';\n ipv6 = ipv6_match[1];\n port_str = ipv6_match[2] || null;\n } else {\n split = hostname.split(':');\n host = split.shift();\n if (split.length) {\n port_str = split.join(':');\n }\n }\n if (port_str !== null && port_str.length > 0) {\n port = parseInt(port_str, 10);\n if (!/^[0-9]+$/.test(port_str) || port <= 0 || port > 65535) {\n return false;\n }\n } else if (options.require_port) {\n return false;\n }\n if (options.host_whitelist) {\n return (0, _checkHost.default)(host, options.host_whitelist);\n }\n if (host === '' && !options.require_host) {\n return true;\n }\n if (!(0, _isIP.default)(host) && !(0, _isFQDN.default)(host, options) && (!ipv6 || !(0, _isIP.default)(ipv6, 6))) {\n return false;\n }\n host = host || ipv6;\n if (options.host_blacklist && (0, _checkHost.default)(host, options.host_blacklist)) {\n return false;\n }\n return true;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","export function getFormItemClassName(componentName: string, name?: string) {\n if (!name) return '';\n return `${componentName}__${name}`.replace(/(\\[|\\]|\\.)+/g, '_');\n}\n","import { computed, defineComponent, provide, reactive, ref, toRefs } from 'vue';\nimport { isEmpty, isArray, isBoolean, isFunction } from 'lodash-es';\n\nimport { requestSubmit } from '@tdesign/shared-utils';\nimport { FormItemValidateResult } from './form-item';\nimport {\n Data,\n FormResetParams,\n FormValidateMessage,\n FormValidateParams,\n FormValidateResult,\n TdFormProps,\n ValidateResultList,\n} from './type';\nimport props from './props';\nimport { FormInjectionKey, FormItemContext, useCLASSNAMES } from './consts';\nimport { FormResetEvent, FormSubmitEvent } from '../common';\nimport { getFormItemClassName } from './utils';\nimport { FormDisabledProvider, FormReadonlyProvider } from './hooks';\nimport { usePrefixClass, useTNodeJSX } from '@tdesign/shared-hooks';\n\ntype Result = FormValidateResult;\n\nexport default defineComponent({\n name: 'TForm',\n props,\n setup(props, { expose }) {\n const renderContent = useTNodeJSX();\n const { disabled, readonly } = toRefs(props);\n provide('formDisabled', {\n disabled,\n });\n provide('formReadonly', {\n readonly,\n });\n\n const formRef = ref(null);\n const children = ref([]);\n\n const {\n showErrorMessage,\n labelWidth,\n labelAlign,\n data,\n colon,\n requiredMark,\n requiredMarkPosition,\n rules,\n errorMessage,\n resetType,\n } = toRefs(props);\n provide(\n FormInjectionKey,\n reactive({\n showErrorMessage,\n labelWidth,\n labelAlign,\n data,\n colon,\n requiredMark,\n requiredMarkPosition,\n rules,\n errorMessage,\n resetType,\n children,\n renderContent,\n }),\n );\n\n const COMPONENT_NAME = usePrefixClass('form');\n const CLASS_NAMES = useCLASSNAMES();\n const formClass = computed(() => [\n CLASS_NAMES.value.form,\n { [`${COMPONENT_NAME.value}-inline`]: props.layout === 'inline' },\n ]);\n\n const FORM_ITEM_CLASS_PREFIX = usePrefixClass('form-item');\n\n const getFirstError = (result: Result) => {\n if (isBoolean(result)) return '';\n const [firstKey] = Object.keys(result);\n if (props.scrollToFirstError) {\n const tmpClassName = getFormItemClassName(FORM_ITEM_CLASS_PREFIX.value, firstKey);\n scrollTo(tmpClassName);\n }\n const resArr = result[firstKey] as ValidateResultList;\n if (!isArray(resArr)) return '';\n return resArr.filter((item) => !item.result)[0].message;\n };\n // 校验不通过时,滚动到第一个错误表单\n const scrollTo = (selector: string) => {\n const [dom] = formRef.value.getElementsByClassName(selector);\n const behavior = props.scrollToFirstError;\n if (behavior) {\n dom && dom.scrollIntoView({ behavior });\n }\n };\n\n const needValidate = (name: string | number, fields: string[] | undefined) => {\n if (!fields || !isArray(fields)) return true;\n return fields.indexOf(`${name}`) !== -1;\n };\n const formatValidateResult = (validateResultList: FormItemValidateResult[]) => {\n const result: Record = validateResultList.reduce((r, err) => Object.assign(r || {}, err), {});\n Object.keys(result).forEach((key) => {\n if (result[key] === true) {\n delete result[key];\n }\n });\n return isEmpty(result) ? true : result;\n };\n const validate = async (param?: FormValidateParams): Promise => {\n const { fields, trigger = 'all', showErrorMessage } = param || {};\n const list = children.value\n .filter((child) => isFunction(child.validate) && needValidate(String(child.name), fields))\n .map((child) => child.validate(trigger, showErrorMessage));\n const arr = await Promise.all(list);\n const result = formatValidateResult(arr);\n const firstError = getFirstError(result);\n props.onValidate?.({\n validateResult: result,\n firstError,\n });\n return result;\n };\n const validateOnly = async (params?: Omit) => {\n const { fields, trigger = 'all' } = params || {};\n const list = children.value\n .filter((child) => isFunction(child.validateOnly) && needValidate(String(child.name), fields))\n .map((child) => child.validateOnly(trigger));\n const arr = await Promise.all(list);\n return formatValidateResult(arr);\n };\n const submitParams = ref>();\n const onSubmit = (e?: FormSubmitEvent) => {\n if (props.preventSubmitDefault && e) {\n e.preventDefault();\n e.stopPropagation();\n }\n validate(submitParams.value).then((r) => {\n props.onSubmit?.({ validateResult: r, firstError: getFirstError(r), e });\n });\n submitParams.value = undefined;\n };\n const submit = async (params?: Pick) => {\n submitParams.value = params;\n requestSubmit(formRef.value);\n };\n\n const resetParams = ref>();\n const onReset = (e?: FormResetEvent) => {\n if (props.preventSubmitDefault && e) {\n e.preventDefault();\n e.stopPropagation();\n }\n children.value\n .filter(\n (child) =>\n isFunction(child.resetField) && needValidate(String(child.name), resetParams.value?.fields as string[]),\n )\n .forEach((child) => child.resetField(resetParams.value?.type));\n resetParams.value = undefined;\n props.onReset?.({ e });\n };\n const reset = (params?: FormResetParams) => {\n (resetParams.value as any) = params;\n formRef.value.reset();\n };\n\n const clearValidate = (fields?: Array) => {\n children.value.forEach((child) => {\n if (isFunction(child.resetHandler) && needValidate(String(child.name), fields)) {\n child.resetHandler();\n }\n });\n };\n const setValidateMessage = (validateMessage: FormValidateMessage) => {\n const keys = Object.keys(validateMessage);\n if (!keys.length) return;\n const list = children.value\n .filter((child) => isFunction(child.setValidateMessage) && keys.includes(`${child.name}`))\n .map((child) => child.setValidateMessage(validateMessage[child.name as keyof FormData]));\n Promise.all(list);\n };\n\n expose({ validate, submit, reset, clearValidate, setValidateMessage, validateOnly });\n\n return () => (\n onSubmit(e)}\n onReset={(e) => onReset(e)}\n >\n {renderContent('default')}\n \n );\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdFormItemProps } from '../form/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** label 原生属性 */\n for: {\n type: String,\n default: '',\n },\n /** 表单项说明内容 */\n help: {\n type: [String, Function] as PropType,\n },\n /** 字段标签名称 */\n label: {\n type: [String, Function] as PropType,\n default: '' as TdFormItemProps['label'],\n },\n /** 表单字段标签对齐方式:左对齐、右对齐、顶部对齐。默认使用 Form 的对齐方式,优先级高于 Form.labelAlign */\n labelAlign: {\n type: String as PropType,\n validator(val: TdFormItemProps['labelAlign']): boolean {\n if (!val) return true;\n return ['left', 'right', 'top'].includes(val);\n },\n },\n /** 可以整体设置标签宽度,优先级高于 Form.labelWidth */\n labelWidth: {\n type: [String, Number] as PropType,\n },\n /** 表单字段名称 */\n name: {\n type: String,\n default: '',\n },\n /** 是否显示必填符号(*),优先级高于 Form.requiredMark */\n requiredMark: {\n type: Boolean,\n default: undefined,\n },\n /** 表单字段校验规则 */\n rules: {\n type: Array as PropType,\n },\n /** 校验不通过时,是否显示错误提示信息,优先级高于 `Form.showErrorMessage` */\n showErrorMessage: {\n type: Boolean,\n default: undefined,\n },\n /** 校验状态,可在需要完全自主控制校验状态时使用 */\n status: {\n type: String as PropType,\n default: '' as TdFormItemProps['status'],\n },\n /** 校验状态图标,值为 `true` 显示默认图标,默认图标有 成功、失败、警告 等,不同的状态图标不同。`statusIcon` 值为 `false`,不显示图标。`statusIcon` 值类型为渲染函数,则可以自定义右侧状态图标。优先级高级 Form 的 statusIcon */\n statusIcon: {\n type: [Boolean, Function] as PropType,\n default: undefined as TdFormItemProps['statusIcon'],\n },\n /** 是否显示校验成功的边框,默认不显示 */\n successBorder: Boolean,\n /** 自定义提示内容,样式跟随 `status` 变动,可在需要完全自主控制校验规则时使用 */\n tips: {\n type: [String, Function] as PropType,\n },\n};\n","import {\n computed,\n defineComponent,\n inject,\n nextTick,\n onBeforeUnmount,\n onMounted,\n provide,\n reactive,\n ref,\n toRefs,\n VNode,\n watch,\n} from 'vue';\nimport {\n CheckCircleFilledIcon as TdCheckCircleFilledIcon,\n CloseCircleFilledIcon as TdCloseCircleFilledIcon,\n ErrorCircleFilledIcon as TdErrorCircleFilledIcon,\n GlobalIconType,\n} from 'tdesign-icons-vue-next';\nimport {\n isNil,\n isArray,\n isNumber,\n isString,\n isBoolean,\n cloneDeep,\n get as lodashGet,\n set as lodashSet,\n} from 'lodash-es';\n\nimport { validate } from './utils/form-model';\nimport {\n AllValidateResult,\n Data,\n FormErrorMessage,\n FormItemValidateMessage,\n FormRule,\n ValidateTriggerType,\n ValueType,\n} from './type';\nimport props from './form-item-props';\nimport {\n AnalysisValidateResult,\n ErrorListType,\n FormInjectionKey,\n FormItemContext,\n FormItemInjectionKey,\n SuccessListType,\n useCLASSNAMES,\n ValidateStatus,\n} from './consts';\n\nimport { useConfig, useTNodeJSX, useGlobalIcon, usePrefixClass } from '@tdesign/shared-hooks';\nimport { getFormItemClassName } from './utils';\nimport { template } from '@tdesign/common-js/utils/stringTemplate';\n\nexport type FormItemValidateResult = { [key in keyof T]: boolean | AllValidateResult[] };\n\nexport default defineComponent({\n name: 'TFormItem',\n props,\n setup(props, { slots }) {\n const renderContent = useTNodeJSX();\n const CLASS_NAMES = useCLASSNAMES();\n const { globalConfig } = useConfig('form');\n const { CheckCircleFilledIcon, CloseCircleFilledIcon, ErrorCircleFilledIcon } = useGlobalIcon({\n CheckCircleFilledIcon: TdCheckCircleFilledIcon,\n CloseCircleFilledIcon: TdCloseCircleFilledIcon,\n ErrorCircleFilledIcon: TdErrorCircleFilledIcon,\n });\n const form = inject(FormInjectionKey, undefined);\n\n const classPrefix = usePrefixClass();\n const formItemClassPrefix = usePrefixClass('form-item');\n\n const needRequiredMark = computed(() => {\n const requiredMark = props.requiredMark ?? form?.requiredMark ?? globalConfig.value.requiredMark;\n const isRequired = innerRules.value.filter((rule) => rule.required).length > 0;\n return requiredMark ?? isRequired;\n });\n\n const requiredMarkPosition = computed(() => {\n return form?.requiredMarkPosition ?? globalConfig.value.requiredMarkPosition;\n });\n\n const hasLabel = computed(() => slots.label || props.label);\n const hasColon = computed(() => !!(form?.colon && hasLabel.value));\n const FROM_LABEL = usePrefixClass('form__label');\n const labelAlign = computed(() => (isNil(props.labelAlign) ? form?.labelAlign : props.labelAlign));\n const labelWidth = computed(() => (isNil(props.labelWidth) ? form?.labelWidth : props.labelWidth));\n\n const labelClasses = computed(() => [\n CLASS_NAMES.value.label,\n {\n [`${FROM_LABEL.value}--required`]: needRequiredMark.value,\n [`${FROM_LABEL.value}--required-right`]: needRequiredMark.value && requiredMarkPosition.value === 'right',\n [`${FROM_LABEL.value}--top`]: hasLabel.value && (labelAlign.value === 'top' || !labelWidth.value),\n [`${FROM_LABEL.value}--left`]: labelAlign.value === 'left' && labelWidth.value,\n [`${FROM_LABEL.value}--right`]: labelAlign.value === 'right' && labelWidth.value,\n },\n ]);\n\n const statusClass = computed(\n () =>\n `${classPrefix.value}-is-${props.status || 'default'} ${\n props.status === 'success' ? CLASS_NAMES.value.successBorder : ''\n }`,\n );\n\n const renderLabel = () => {\n if (Number(labelWidth.value) === 0) return;\n\n let labelStyle = {};\n if (labelWidth.value && labelAlign.value !== 'top') {\n if (isNumber(labelWidth.value)) {\n labelStyle = { width: `${labelWidth.value}px` };\n } else {\n labelStyle = { width: labelWidth.value };\n }\n }\n\n return (\n
    \n \n {hasColon.value && globalConfig.value.colonText}\n
    \n );\n };\n\n /** Suffix Icon */\n const getDefaultIcon = (): VNode => {\n const resultIcon = (Icon: GlobalIconType) => (\n \n \n \n );\n const list = errorList.value;\n if (verifyStatus.value === ValidateStatus.SUCCESS) {\n return resultIcon(CheckCircleFilledIcon);\n }\n if (list?.[0]) {\n const type = list[0].type || 'error';\n const icon = {\n error: CloseCircleFilledIcon,\n warning: ErrorCircleFilledIcon,\n success: CheckCircleFilledIcon,\n }[type];\n return resultIcon(icon);\n }\n return null;\n };\n const renderSuffixIcon = () => {\n const { statusIcon } = props;\n if (statusIcon === false) return;\n\n let resultIcon = renderContent('statusIcon', { defaultNode: getDefaultIcon() });\n if (resultIcon) return {resultIcon};\n if (resultIcon === false) return;\n\n resultIcon = form?.renderContent('statusIcon', { defaultNode: getDefaultIcon(), params: props });\n if (resultIcon) return resultIcon;\n };\n /** Suffix Icon END */\n\n /** Content Style */\n const errorClasses = computed(() => {\n if (!showErrorMessage.value) return '';\n if (verifyStatus.value === ValidateStatus.SUCCESS) {\n return props.successBorder\n ? [CLASS_NAMES.value.success, CLASS_NAMES.value.successBorder].join(' ')\n : CLASS_NAMES.value.success;\n }\n if (!errorList.value.length) return;\n const type = errorList.value[0].type || 'error';\n if (props.status) return statusClass.value;\n return type === 'error' ? CLASS_NAMES.value.error : CLASS_NAMES.value.warning;\n });\n const contentClasses = computed(() => [CLASS_NAMES.value.controls, errorClasses.value]);\n const contentStyle = computed(() => {\n let contentStyle = {};\n if (labelWidth.value && labelAlign.value !== 'top') {\n if (isNumber(labelWidth.value)) {\n contentStyle = { marginLeft: `${labelWidth.value}px` };\n } else {\n contentStyle = { marginLeft: labelWidth.value };\n }\n }\n\n return contentStyle;\n });\n /** Content Style END */\n\n const errorList = ref([]);\n const successList = ref([]);\n const verifyStatus = ref(ValidateStatus.TO_BE_VALIDATED);\n const resetValidating = ref(false);\n const needResetField = ref(false);\n\n const resetHandler = () => {\n needResetField.value = false;\n errorList.value = [];\n successList.value = [];\n verifyStatus.value = ValidateStatus.TO_BE_VALIDATED;\n };\n const getEmptyValue = (): ValueType => {\n const type = Object.prototype.toString.call(lodashGet(form?.data, props.name));\n let emptyValue: ValueType;\n if (type === '[object String]') {\n emptyValue = '';\n }\n if (type === '[object Array]') {\n emptyValue = [];\n }\n if (type === '[object Object]') {\n emptyValue = {};\n }\n return emptyValue;\n };\n const resetField = async (resetType: 'initial' | 'empty' | undefined = form?.resetType) => {\n if (!props.name) return;\n\n if (resetType === 'empty') lodashSet(form?.data, props.name, getEmptyValue());\n else if (resetType === 'initial') lodashSet(form?.data, props.name, initialValue.value);\n\n await nextTick();\n if (resetValidating.value) {\n needResetField.value = true;\n } else {\n resetHandler();\n }\n };\n\n const errorMessages = computed(() => form?.errorMessage ?? globalConfig.value.errorMessage);\n const innerRules = computed(() => {\n if (props.rules?.length) return props.rules;\n if (!props.name) return [];\n const index = `${props.name}`.lastIndexOf('.') || -1;\n const pRuleName = `${props.name}`.slice(index + 1);\n return lodashGet(form?.rules, props.name) || lodashGet(form?.rules, pRuleName) || [];\n });\n\n const analysisValidateResult = async (trigger: ValidateTriggerType): Promise => {\n const result: AnalysisValidateResult = {\n successList: [],\n errorList: [],\n rules: [],\n resultList: [],\n allowSetValue: false,\n };\n result.rules =\n trigger === 'all'\n ? innerRules.value\n : innerRules.value.filter((item) => (item.trigger || 'change') === trigger);\n if (innerRules.value.length && !result.rules?.length) {\n return result;\n }\n result.allowSetValue = true;\n result.resultList = await validate(value.value, result.rules);\n result.errorList = result.resultList\n .filter((item) => item.result !== true)\n .map((item: ErrorListType) => {\n Object.keys(item).forEach((key) => {\n // @ts-ignore\n if (!item.message && errorMessages.value[key]) {\n const name = isString(props.label) ? props.label : props.name;\n // @ts-ignore\n item.message = template(errorMessages.value[key], {\n name,\n // @ts-ignore\n validate: item[key],\n });\n }\n });\n return item;\n });\n // 仅有自定义校验方法才会存在 successList\n result.successList = result.resultList.filter(\n (item) => item.result === true && item.message && item.type === 'success',\n ) as SuccessListType[];\n\n return result;\n };\n const validateHandler = async (\n trigger: ValidateTriggerType,\n showErrorMessage?: boolean,\n ): Promise> => {\n resetValidating.value = true;\n // undefined | boolean\n freeShowErrorMessage.value = showErrorMessage;\n const {\n successList: innerSuccessList,\n errorList: innerErrorList,\n rules,\n resultList,\n allowSetValue,\n } = await analysisValidateResult(trigger);\n\n if (allowSetValue) {\n successList.value = innerSuccessList;\n errorList.value = innerErrorList;\n }\n // 根据校验结果设置校验状态\n if (rules.length) {\n verifyStatus.value = innerErrorList.length ? ValidateStatus.FAIL : ValidateStatus.SUCCESS;\n }\n // 重置处理\n if (needResetField.value) {\n resetHandler();\n }\n resetValidating.value = false;\n\n return {\n [props.name]: innerErrorList.length === 0 ? true : resultList,\n } as FormItemValidateResult;\n };\n const validateOnly = async (trigger: ValidateTriggerType): Promise> => {\n const { errorList: innerErrorList, resultList } = await analysisValidateResult(trigger);\n\n return {\n [props.name]: innerErrorList.length === 0 ? true : resultList,\n } as FormItemValidateResult;\n };\n\n const setValidateMessage = (validateMessage: FormItemValidateMessage[]) => {\n if (!validateMessage && !isArray(validateMessage)) return;\n if (validateMessage.length === 0) {\n errorList.value = [];\n verifyStatus.value = ValidateStatus.SUCCESS;\n }\n errorList.value = validateMessage.map((item) => ({ ...item, result: false }));\n verifyStatus.value = ValidateStatus.FAIL;\n };\n\n const value = computed(() => form?.data && lodashGet(form?.data, props.name));\n const initialValue = ref(undefined);\n const { name } = toRefs(props);\n const context: FormItemContext = reactive({\n name,\n resetHandler,\n resetField,\n validate: validateHandler,\n validateOnly,\n setValidateMessage,\n });\n\n onMounted(() => {\n initialValue.value = cloneDeep(value.value);\n form?.children.push(context);\n });\n\n onBeforeUnmount(() => {\n if (form) form.children = form?.children.filter((ctx) => ctx !== context);\n });\n\n watch(\n value,\n async () => {\n await validateHandler('change');\n },\n { deep: true },\n );\n\n watch(\n () => [props.name, JSON.stringify(props.rules)].join(','),\n () => {\n validateHandler('change');\n },\n );\n\n const freeShowErrorMessage = ref(undefined);\n const showErrorMessage = computed(() => {\n if (isBoolean(freeShowErrorMessage.value)) return freeShowErrorMessage.value;\n if (isBoolean(props.showErrorMessage)) return props.showErrorMessage;\n return form?.showErrorMessage;\n });\n\n const classes = computed(() => [\n CLASS_NAMES.value.formItem,\n getFormItemClassName(formItemClassPrefix.value, props.name),\n {\n [CLASS_NAMES.value.formItemWithHelp]: helpNode.value,\n [CLASS_NAMES.value.formItemWithExtra]: extraNode.value,\n },\n ]);\n const helpNode = computed(() => {\n const help = renderContent('help');\n if (help) return
    {help}
    ;\n return null;\n });\n const extraNode = computed(() => {\n const getExtraNode = (content: string) => (\n
    \n {content}\n
    \n );\n const list = errorList.value;\n if (showErrorMessage.value && list?.[0]?.message) {\n return getExtraNode(list[0].message);\n }\n if (successList.value.length) {\n return getExtraNode(successList.value[0].message);\n }\n return null;\n });\n\n const tipsNode = computed(() => {\n const tmpTips = renderContent('tips');\n if (!tmpTips) return null;\n const tmpClasses = [`${formItemClassPrefix.value}-tips`, `${classPrefix.value}-tips`, statusClass.value];\n return
    {tmpTips}
    ;\n });\n\n const handleBlur = async () => {\n await validateHandler('blur');\n };\n provide(FormItemInjectionKey, {\n handleBlur,\n });\n\n return () => (\n
    \n {renderLabel()}\n
    \n
    \n {renderContent('default')}\n {renderSuffixIcon()}\n
    \n {helpNode.value}\n {tipsNode.value}\n {extraNode.value}\n
    \n
    \n );\n },\n});\n","/**\n * 用正则实现模板字符串功能\n * @param str 模板字符串\n * @param vars 取值的对象\n * @returns 替换后的字符串\n */\nexport function template>(str: string, vars: T): string {\n return str.replace(/\\${(.*?)}/g, (_, prop: string) => vars[prop.trim()] ?? '');\n}\n","import _Form from './form';\nimport _FormItem from './form-item';\nimport { withInstall } from '@tdesign/shared-utils';\nimport { TdFormProps, TdFormItemProps, Data } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type FormProps = TdFormProps;\nexport type FormItemProps = TdFormItemProps;\n\nexport const Form = withInstall(_Form);\nexport const FormItem = withInstall(_FormItem);\nexport default Form;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdRadioProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否允许取消选中 */\n allowUncheck: Boolean,\n /** 是否选中 */\n checked: {\n type: Boolean,\n default: undefined,\n },\n modelValue: {\n type: Boolean,\n default: undefined,\n },\n /** 是否选中,非受控属性 */\n defaultChecked: Boolean,\n /** 单选按钮内容,同 label */\n default: {\n type: [String, Function] as PropType,\n },\n /** 是否为禁用态。如果存在父组件 RadioGroup,默认值由 RadioGroup.disabled 控制。优先级:Radio.disabled > RadioGroup.disabled > Form.disabled */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 主文案 */\n label: {\n type: [String, Function] as PropType,\n },\n /** HTML 元素原生属性 */\n name: {\n type: String,\n default: '',\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 单选按钮的值 */\n value: {\n type: [String, Number, Boolean] as PropType,\n default: undefined as TdRadioProps['value'],\n },\n /** 选中状态变化时触发 */\n onChange: Function as PropType,\n /** 点击时触发,一般用于外层阻止冒泡场景 */\n onClick: Function as PropType,\n};\n","import { InjectionKey } from 'vue';\nimport { RadioValue } from '../type';\n\nexport const RadioGroupInjectionKey: InjectionKey<{\n name: string;\n disabled: boolean;\n readonly: boolean;\n value: RadioValue;\n allowUncheck: boolean;\n setValue: (value: RadioValue, context: { e: Event; name?: string }) => void;\n}> = Symbol('RadioGroupProvide');\n\nexport const RadioButtonInjectionKey: InjectionKey<{}> = Symbol('RadioButtonProvide');\n","import { defineComponent, inject, toRefs, computed, ref } from 'vue';\nimport {\n useVModel,\n useContent,\n useDisabled,\n useReadonly,\n usePrefixClass,\n useCommonClassName,\n} from '@tdesign/shared-hooks';\nimport { omit, isString } from 'lodash-es';\nimport props from './props';\nimport { RadioGroupInjectionKey, RadioButtonInjectionKey } from './consts';\n\n// hooks\n\nimport { getValidAttrs } from '@tdesign/common-js/utils/helper';\n\nexport default defineComponent({\n name: 'TRadio',\n inheritAttrs: false,\n props,\n setup(props, { attrs }) {\n const inputRef = ref();\n const { checked, modelValue } = toRefs(props);\n const [innerChecked, setInnerChecked] = useVModel(\n checked,\n modelValue,\n props.defaultChecked,\n props.onChange,\n 'checked',\n );\n\n const radioChecked = computed(() => (radioGroup ? props.value === radioGroup.value : innerChecked.value));\n\n const radioGroup = inject(RadioGroupInjectionKey, undefined);\n\n const allowUncheck = computed(() => Boolean(props.allowUncheck || radioGroup?.allowUncheck));\n\n const handleClick = (e: MouseEvent) => {\n e.stopPropagation();\n };\n\n const onLabelClick = (e: MouseEvent) => {\n if (isDisabled.value || isReadonly.value) return;\n props.onClick?.({ e });\n\n if (radioChecked.value && !allowUncheck.value) return;\n\n if (radioGroup) {\n const value = radioChecked.value && allowUncheck.value ? undefined : props.value;\n radioGroup.setValue(value, { e, name: radioGroup.name });\n } else {\n const value = allowUncheck.value ? !radioChecked.value : true;\n setInnerChecked(value, { e });\n }\n };\n\n const inputEvents = computed(() =>\n getValidAttrs({\n focus: attrs.onFocus,\n blur: attrs.onBlur,\n keydown: attrs.onKeydown,\n keyup: attrs.onKeyup,\n keypresss: attrs.onKeypresss,\n }),\n );\n const wrapperAttrs = computed(() => {\n const events = [...Object.keys(inputEvents.value), 'input', 'change'].map(\n (str) => `on${str[0].toUpperCase()}${str.slice(1)}`,\n );\n return omit(attrs, events);\n });\n /** Event END */\n\n // extend radioGroup disabled props\n const groupDisabled = computed(() => radioGroup?.disabled);\n const groupReadonly = computed(() => radioGroup?.readonly);\n const isDisabled = useDisabled({ afterDisabled: groupDisabled });\n const isReadonly = useReadonly({ afterReadonly: groupReadonly });\n\n // attribute\n const inputProps = computed(() => ({\n name: radioGroup ? radioGroup.name : props.name,\n checked: radioChecked.value,\n disabled: isDisabled.value,\n readonly: isReadonly.value,\n value: props.value,\n }));\n\n /** Style */\n const { STATUS } = useCommonClassName();\n const radioButton = inject(RadioButtonInjectionKey, undefined);\n const radioBtnName = usePrefixClass('radio-button');\n const COMPONENT_NAME = usePrefixClass('radio');\n const prefixCls = computed(() => (radioButton ? radioBtnName.value : COMPONENT_NAME.value));\n const inputClass = computed(() => [\n `${prefixCls.value}`,\n {\n [STATUS.value.checked]: inputProps.value.checked,\n [STATUS.value.disabled]: inputProps.value.disabled,\n },\n ]);\n /** Style END */\n\n const renderContent = useContent();\n\n return () => (\n \n \n \n {renderContent('default', 'label')}\n \n );\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdRadioGroupProps } from '../radio/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否允许取消选中 */\n allowUncheck: Boolean,\n /** 是否禁用全部子单选框。优先级:Radio.disabled > RadioGroup.disabled > Form.disabled */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** HTML 元素原生属性 */\n name: {\n type: String,\n default: '',\n },\n /** 单选组件按钮形式。RadioOption 数据类型为 string 或 number 时,表示 label 和 value 值相同 */\n options: {\n type: Array as PropType,\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 组件尺寸【讨论中】 */\n size: {\n type: String as PropType,\n default: 'medium' as TdRadioGroupProps['size'],\n validator(val: TdRadioGroupProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 组件风格 */\n theme: {\n type: String as PropType,\n default: 'radio' as TdRadioGroupProps['theme'],\n validator(val: TdRadioGroupProps['theme']): boolean {\n if (!val) return true;\n return ['radio', 'button'].includes(val);\n },\n },\n /** 选中的值 */\n value: {\n type: [String, Number, Boolean] as PropType,\n default: undefined as TdRadioGroupProps['value'],\n },\n modelValue: {\n type: [String, Number, Boolean] as PropType,\n default: undefined as TdRadioGroupProps['value'],\n },\n /** 选中的值,非受控属性 */\n defaultValue: {\n type: [String, Number, Boolean] as PropType,\n },\n /** 单选组件按钮形式 */\n variant: {\n type: String as PropType,\n default: 'outline' as TdRadioGroupProps['variant'],\n validator(val: TdRadioGroupProps['variant']): boolean {\n if (!val) return true;\n return ['outline', 'primary-filled', 'default-filled'].includes(val);\n },\n },\n /** 选中值发生变化时触发, `context.name` 指 RadioGroup 的 name 属性 */\n onChange: Function as PropType,\n};\n","import { computed, defineComponent, provide, reactive } from 'vue';\nimport props from './props';\nimport Radio from './radio';\nimport { omit } from 'lodash-es';\nimport { RadioButtonInjectionKey } from './consts';\n\nimport { useContent } from '@tdesign/shared-hooks';\n\nexport default defineComponent({\n name: 'TRadioButton',\n inheritAttrs: false,\n props,\n setup(props, { attrs }) {\n provide(RadioButtonInjectionKey, reactive({}));\n\n const radioProps = computed(() => {\n const res = {\n ...props,\n ...omit(\n attrs,\n Object.keys(attrs).filter((key) => key.startsWith('on')),\n ),\n };\n\n return res;\n });\n\n const renderContent = useContent();\n\n return () => {renderContent('default', 'label')};\n },\n});\n","import type { ComponentPublicInstance, Ref } from 'vue';\nimport { unref, watch, getCurrentScope, onScopeDispose } from 'vue';\n\nexport const defaultWindow = typeof window !== 'undefined' ? window : undefined;\nexport interface ConfigurableWindow {\n window?: Window;\n}\n// eslint-disable-next-line no-undef\nexport interface MutationObserverOptions extends MutationObserverInit, ConfigurableWindow {}\nexport type MaybeRef = T | Ref;\nexport type VueInstance = ComponentPublicInstance;\nexport type MaybeElementRef = MaybeRef;\nexport type MaybeElement = HTMLElement | SVGElement | VueInstance | undefined | null;\nexport type UnRefElementReturn = T extends VueInstance\n ? Exclude\n : T | undefined;\n\nexport type Fn = () => void;\n\nexport function unrefElement(elRef: MaybeElementRef): UnRefElementReturn {\n const plain = unref(elRef);\n return (plain as VueInstance)?.$el ?? plain;\n}\nexport function tryOnScopeDispose(fn: Fn) {\n if (getCurrentScope()) {\n onScopeDispose(fn);\n return true;\n }\n return false;\n}\n\nexport function useMutationObserver(\n target: MaybeElementRef,\n // eslint-disable-next-line no-undef\n callback: MutationCallback,\n options: MutationObserverOptions = {},\n) {\n const { window = defaultWindow, ...mutationOptions } = options;\n let observer: MutationObserver | undefined;\n const isSupported = window && 'MutationObserver' in window;\n\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = undefined;\n }\n };\n\n const stopWatch = watch(\n () => unrefElement(target),\n (el) => {\n cleanup();\n\n if (isSupported && window && el) {\n observer = new MutationObserver(callback);\n observer.observe(el, mutationOptions);\n }\n },\n { immediate: true },\n );\n\n const stop = () => {\n cleanup();\n stopWatch();\n };\n\n tryOnScopeDispose(stop);\n\n return {\n isSupported,\n stop,\n };\n}\n\nexport type UseMutationObserverReturn = ReturnType;\n","import {\n VNode,\n defineComponent,\n h,\n provide,\n reactive,\n ref,\n computed,\n onMounted,\n watch,\n nextTick,\n toRefs,\n onUnmounted,\n} from 'vue';\nimport { isNil, isEqual, isString, isNumber, throttle, isFunction } from 'lodash-es';\n\nimport props from './radio-group-props';\nimport type { RadioOptionObj, RadioOption, TdRadioGroupProps } from './type';\nimport TRadio from './radio';\nimport TRadioButton from './radio-button';\nimport { RadioGroupInjectionKey } from './consts';\nimport {\n useVModel,\n usePrefixClass,\n useTNodeDefault,\n useResizeObserver,\n useCommonClassName,\n} from '@tdesign/shared-hooks';\n\nimport { useKeyboard } from './hooks';\n\nimport { useMutationObserver } from '../watermark/hooks';\nimport type { UseMutationObserverReturn } from '../watermark/hooks';\n\nexport default defineComponent({\n name: 'TRadioGroup',\n props,\n setup(props) {\n const { value, modelValue } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n /** calculate bar style */\n const radioGroupRef = ref();\n const radioBtnName = usePrefixClass('radio-button');\n const { STATUS, SIZE } = useCommonClassName();\n\n const updateInnerValue: TdRadioGroupProps['onChange'] = (value, context) => {\n if (isEqual(value, innerValue.value)) return;\n setInnerValue(value, context);\n };\n\n // 键盘操作\n useKeyboard(radioGroupRef, updateInnerValue);\n\n const checkedClassName = computed(() => `.${radioBtnName.value}.${STATUS.value.checked}`);\n\n const barStyle = ref({ width: '0px', height: '0px', left: '0px', top: '0px', 'transition-property': 'none' });\n\n const calcDefaultBarStyle = () => {\n const div = document.createElement('div');\n div.setAttribute('style', 'position: absolute; visibility: hidden;');\n div.appendChild(radioGroupRef.value.cloneNode(true));\n document.body.appendChild(div);\n\n const defaultCheckedRadio: HTMLElement = div.querySelector(checkedClassName.value);\n const { offsetWidth, offsetHeight, offsetLeft, offsetTop } = defaultCheckedRadio;\n barStyle.value = {\n ...barStyle.value,\n width: `${offsetWidth}px`,\n height: `${offsetHeight}px`,\n left: `${offsetLeft}px`,\n top: `${offsetTop}px`,\n };\n document.body.removeChild(div);\n };\n\n const calcBarStyle = (disableAnimation = false) => {\n if (props.variant === 'outline') return;\n\n const checkedRadio: HTMLElement = radioGroupRef.value.querySelector(checkedClassName.value);\n\n const transitionProperty = disableAnimation ? 'none' : 'all';\n if (!checkedRadio) {\n barStyle.value = {\n 'transition-property': transitionProperty,\n width: '0px',\n height: '9px',\n left: '0px',\n top: '0px',\n };\n return;\n }\n\n const { offsetWidth, offsetHeight, offsetLeft, offsetTop } = checkedRadio;\n // current node is not rendered,fallback to default render\n if (!offsetWidth) {\n calcDefaultBarStyle();\n } else {\n barStyle.value = {\n 'transition-property': transitionProperty,\n width: `${offsetWidth}px`,\n height: `${offsetHeight}px`,\n left: `${offsetLeft}px`,\n top: `${offsetTop}px`,\n };\n }\n };\n\n let observerReturn: UseMutationObserverReturn;\n\n watch(innerValue, async () => {\n await nextTick();\n calcBarStyle();\n });\n\n onMounted(() => {\n calcBarStyle(true);\n useResizeObserver(\n radioGroupRef,\n throttle(async () => {\n await nextTick();\n calcBarStyle();\n }, 300),\n );\n\n const checkedRadioLabel: HTMLElement = radioGroupRef.value.querySelector(\n `${checkedClassName.value} .${radioBtnName.value}__label`,\n );\n if (checkedRadioLabel) {\n observerReturn = useMutationObserver(\n checkedRadioLabel,\n (mutations) => {\n mutations.forEach((mutation) => {\n if (mutation.type === 'characterData') {\n calcBarStyle();\n }\n });\n },\n {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true,\n },\n );\n }\n });\n onUnmounted(() => {\n observerReturn?.stop();\n });\n /** calculate bar style end */\n\n const { name, disabled, readonly } = toRefs(props);\n provide(\n RadioGroupInjectionKey,\n reactive({\n name,\n disabled,\n readonly,\n value: innerValue,\n allowUncheck: props.allowUncheck,\n setValue: updateInnerValue,\n }),\n );\n\n const radioGroupName = usePrefixClass('radio-group');\n const renderSlot = useTNodeDefault();\n const renderBlock = (): VNode => {\n if (props.variant.includes('filled') && !isNil(innerValue.value))\n return
    ;\n };\n const renderOptions = (): VNode[] => {\n return props.options?.map((option: RadioOption) => {\n let opt = option as RadioOptionObj;\n if (isNumber(option) || isString(option)) {\n opt = { value: option, label: option.toString() };\n }\n const RadioComponent = props.theme === 'button' ? TRadioButton : TRadio;\n return (\n \n {isFunction(opt.label) ? opt.label(h) : opt.label}\n \n );\n });\n };\n\n const groupClass = computed(() => [\n `${radioGroupName.value}`,\n SIZE.value[props.size],\n {\n [`${radioGroupName.value}__outline`]: props.variant === 'outline',\n [`${radioGroupName.value}--filled`]: props.variant.includes('filled'),\n [`${radioGroupName.value}--primary-filled`]: props.variant === 'primary-filled',\n },\n ]);\n\n return () => (\n
    \n {renderSlot('default') || renderOptions()}\n {renderBlock()}\n
    \n );\n },\n});\n","import { onBeforeMount, onMounted, Ref } from 'vue';\nimport { isString } from 'lodash-es';\nimport { off, on } from '@tdesign/shared-utils';\nimport { CHECKED_CODE_REG } from '@tdesign/common-js/common';\n\n/** 键盘操作 */\nexport function useKeyboard(\n radioGroupRef: Ref,\n setInnerValue: (value: any, context: { e: Event }) => void,\n) {\n const checkRadioInGroup = (e: KeyboardEvent) => {\n const inputNode = (e.target as HTMLElement).querySelector('input');\n if (!inputNode) return;\n\n const isCheckedCode = CHECKED_CODE_REG.test(e.key) || CHECKED_CODE_REG.test(e.code);\n if (isCheckedCode) {\n e.preventDefault();\n\n const data = inputNode.dataset;\n if (inputNode.checked && data.allowUncheck) {\n setInnerValue(undefined, { e });\n } else {\n // Number\n let value: number | string | boolean = !isNaN(Number(data.value)) ? Number(data.value) : data.value;\n // Boolean\n value = (isString(value) && { true: true, false: false }[value]) || value;\n // String\n value = isString(value) && value[0] === \"'\" ? value.replace(/'/g, '') : value;\n setInnerValue(value, { e });\n }\n }\n };\n\n onMounted(() => {\n on(radioGroupRef.value, 'keydown', checkRadioInGroup);\n });\n\n onBeforeMount(() => {\n off(radioGroupRef.value, 'keydown', checkRadioInGroup);\n });\n}\n","import _Radio from './radio';\nimport _Group from './group';\nimport _RadioButton from './radio-button';\nimport { withInstall } from '@tdesign/shared-utils';\nimport { TdRadioProps, TdRadioGroupProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type RadioProps = TdRadioProps;\nexport type RadioGroupProps = TdRadioGroupProps;\n\nexport const Radio = withInstall(_Radio);\nexport const RadioGroup = withInstall(_Group);\nexport const RadioButton = withInstall(_RadioButton);\n\nexport default Radio;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdSliderProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否禁用组件 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 用于控制数字输入框组件,值为 false 表示不显示数字输入框;值为 true 表示呈现默认数字输入框;值类型为 Object 表示透传属性到数字输入框组件 */\n inputNumberProps: {\n type: [Boolean, Object] as PropType,\n default: false as TdSliderProps['inputNumberProps'],\n },\n /** 滑块当前值文本。
    值为 true 显示默认文案;值为 false 不显示滑块当前值文本;
    值为 `${value}%` 则表示组件会根据占位符渲染文案;
    值类型为函数时,参数 `value` 标识滑块值,参数 `position=start` 表示范围滑块的起始值,参数 `position=end` 表示范围滑块的终点值 */\n label: {\n type: [String, Boolean, Function] as PropType,\n default: true as TdSliderProps['label'],\n },\n /** 滑块布局方向 */\n layout: {\n type: String as PropType,\n default: 'horizontal' as TdSliderProps['layout'],\n validator(val: TdSliderProps['layout']): boolean {\n if (!val) return true;\n return ['vertical', 'horizontal'].includes(val);\n },\n },\n /** 刻度标记,示例:[0, 10, 40, 200] 或者 `{ 10: (val) => val + '%', 50: (h) => }` */\n marks: {\n type: [Object, Array] as PropType,\n },\n /** 滑块范围最大值 */\n max: {\n type: Number,\n default: 100,\n },\n /** 滑块范围最小值 */\n min: {\n type: Number,\n default: 0,\n },\n /** 双游标滑块 */\n range: Boolean,\n /** 控制步长刻度值显示 */\n showStep: Boolean,\n /** 步长 */\n step: {\n type: Number,\n default: 1,\n },\n /** 透传提示组件属性 */\n tooltipProps: {\n type: Object as PropType,\n },\n /** 滑块值 */\n value: {\n type: [Number, Array] as PropType,\n default: undefined as TdSliderProps['value'],\n },\n modelValue: {\n type: [Number, Array] as PropType,\n default: undefined as TdSliderProps['value'],\n },\n /** 滑块值,非受控属性 */\n defaultValue: {\n type: [Number, Array] as PropType,\n default: 0 as TdSliderProps['defaultValue'],\n },\n /** 滑块值变化时触发 */\n onChange: Function as PropType,\n /** 松开拖动`mouseup` 或点击滑块条时触发,适合不希望在拖动滑块过程频繁触发回调的场景实用 */\n onChangeEnd: Function as PropType,\n};\n","import { isString } from 'lodash-es';\nimport { TNode } from '../../common';\n/**\n * 计算刻度区间值停止坐标\n * @param position 刻度坐标值 ;\n * @param isVertical 是否垂直方向\n * @returns {string} style内联样式值\n */\nexport const getStopStyle = (position: number, isVertical: boolean) => {\n return isVertical ? { top: `calc(${100 - position}% - 1px)` } : { left: `${position}%` };\n};\n\n/**\n * 格式化返回slider初始值\n * @param val slider传入的value\n * @param type 第一个滑块or第二个滑块值\n * @returns {number}\n */\nexport const formatSliderValue = (val: number | number[], type: 'first' | 'second') => {\n if (type === 'first') {\n if (val instanceof Array) {\n return val[0];\n }\n return val;\n }\n if (val instanceof Array) {\n return val[1];\n }\n return 0;\n};\n\n/**\n * 格式化label参数\n * @param label slider传入的label属性\n * @param val slider传入的value\n */\nexport const formatLabel = (label: TNode | string, val: number) => {\n if (Boolean(label) === false) {\n return String(val);\n }\n if (isString(label)) {\n let text = String(val);\n try {\n const rule = /\\${value}%/g;\n const enableToReplace = rule.test(label);\n if (enableToReplace) {\n text = label.replace(rule, String(val));\n } else {\n text = label;\n throw new Error();\n }\n } catch (e) {\n console.warn(`fail to parse label prop, please pass string such as '\\${value}%'`);\n }\n return text;\n }\n return label;\n};\n","import { TooltipProps } from '../../tooltip';\nimport { ref, computed, ComputedRef, Ref } from 'vue';\nimport { TdSliderProps } from '../type';\nimport { formatLabel } from '../utils';\nimport { useTNodeJSX } from '@tdesign/shared-hooks';\n\nconst initialProps: TooltipProps & { overlayClassName: string } = {\n visible: false,\n trigger: 'hover',\n showArrow: true,\n overlayInnerStyle: undefined,\n overlayClassName: undefined,\n attach: 'body',\n theme: 'default',\n};\n\nexport interface TooltipConfig {\n tooltipProps: boolean | TooltipProps;\n vertical: boolean;\n value: number;\n label: TdSliderProps['label'];\n position: string;\n range: boolean;\n}\n\n/**\n * 聚合管理滑块tooltip内容hook\n * @param tooltipProps tooltip属性配置\n * @param vertical 是否垂直展示\n * @returns\n */\nexport const useSliderTooltip = (tooltipConfig: Ref) => {\n const tooltipRef = ref();\n const showTooltip = computed({\n get() {\n return !tooltipConfig.value.tooltipProps === false;\n },\n set(val) {\n return val;\n },\n });\n const normalizeProps = ref({ ...initialProps });\n /** 开关显示tooltip */\n const toggleTooltip = (toState: boolean) => {\n if (!showTooltip.value) return;\n normalizeProps.value.visible = toState;\n };\n\n const renderTNodeJSX = useTNodeJSX();\n\n /** 合并最终tooltip属性,以外部同名属性覆盖初始化属性 */\n const validProps = computed(() => {\n const { vertical, tooltipProps, label, value, position, range } = tooltipConfig.value;\n const placement = vertical ? 'right' : 'top';\n\n let content = (() => {\n if (label === true) {\n return String(value);\n }\n if (typeof label === 'string') {\n return formatLabel(label, value);\n }\n return renderTNodeJSX('label', {\n params: range\n ? {\n value,\n position,\n }\n : { value },\n });\n })();\n\n if (tooltipProps instanceof Object) {\n if (!tooltipProps?.placement) {\n normalizeProps.value.placement = placement;\n }\n if (tooltipProps.content) {\n content = tooltipProps.content;\n }\n // @ts-ignore\n return { ...normalizeProps.value, ...tooltipProps, content };\n }\n return { ...normalizeProps.value, placement, content };\n });\n\n return {\n tooltipRef,\n tooltipProps: validProps as ComputedRef,\n toggleTooltip,\n showTooltip,\n };\n};\n","import { InjectionKey } from 'vue';\n\ntype SliderPropsInjectKey = InjectionKey<{\n max: number;\n min: number;\n step: number;\n dragging: boolean;\n toggleDragging: (val: boolean) => void;\n precision: number;\n disabled: boolean;\n resetSize: () => void;\n sliderSize: number;\n}>;\nexport const sliderPropsInjectKey: SliderPropsInjectKey = Symbol('sliderProps');\n","import {\n ComponentPublicInstance,\n PropType,\n computed,\n defineComponent,\n inject,\n nextTick,\n reactive,\n ref,\n watchEffect,\n} from 'vue';\nimport TTooltip from '../tooltip/index';\nimport { TdSliderProps } from './type';\n\nimport { isFunction } from 'lodash-es';\nimport { usePrefixClass } from '@tdesign/shared-hooks';\nimport { useSliderTooltip } from './hooks/useSliderTooltip';\nimport { sliderPropsInjectKey } from './consts';\n\nexport default defineComponent({\n name: 'TSliderButton',\n props: {\n value: {\n type: [Number],\n default: 0,\n },\n vertical: {\n type: Boolean,\n default: false,\n },\n tooltipProps: {\n type: [Boolean, Object],\n default: true,\n },\n label: {\n type: [String, Boolean, Function] as PropType,\n },\n range: {\n type: Boolean,\n default: false,\n },\n position: {\n type: String,\n },\n },\n emits: ['input', 'mouseup'],\n setup(props, ctx) {\n const COMPONENT_NAME = usePrefixClass('slider__button');\n const tooltipConfig = computed(() => props);\n const { tooltipRef, tooltipProps, toggleTooltip, showTooltip } = useSliderTooltip(tooltipConfig);\n const parentProps = inject(sliderPropsInjectKey);\n const buttonRef = ref();\n const dragged = ref(false);\n\n /** --------------------- slide button 相关状态start ------------------- */\n const slideButtonProps = reactive({\n dragging: false,\n isClick: false,\n startX: 0,\n startY: 0,\n startPos: 0,\n newPos: null,\n });\n\n const rangeDiff = computed(() => {\n return Number(parentProps.max) - Number(parentProps.min);\n });\n\n const currentPos = computed(() => {\n return `${((props.value - parentProps.min) / rangeDiff.value) * 100}%`;\n });\n\n const step = computed(() => {\n return parentProps.step;\n });\n\n const wrapperStyle = computed(() => {\n return props.vertical ? { bottom: currentPos.value } : { left: currentPos.value };\n });\n\n watchEffect(() => {\n parentProps.toggleDragging(slideButtonProps.dragging);\n });\n /** --------------------- slide button 相关状态end ------------------- */\n\n /** --------------------- slide button 相关事件start ------------------- */\n /** 设置当前位置 */\n const setPosition = (pos: number) => {\n let newPos = pos;\n if (newPos === null || Number.isNaN(newPos)) {\n return;\n }\n\n if (newPos > 100) {\n newPos = 100;\n } else if (newPos < 0) {\n newPos = 0;\n }\n const perStepLen = (100 * step.value) / rangeDiff.value;\n const steps = Math.round(newPos / perStepLen);\n let value = steps * perStepLen * rangeDiff.value * 0.01;\n value += parentProps.min;\n value = Number(parseFloat(`${value}`).toFixed(parentProps.precision));\n ctx.emit('input', value);\n nextTick(() => {\n tooltipRef.value && tooltipRef.value.updatePopper?.();\n });\n };\n\n const handleMouseEnter = () => {\n (buttonRef.value as ComponentPublicInstance).focus();\n toggleTooltip(true);\n };\n const handleMouseLeave = () => {\n if (!slideButtonProps.dragging) {\n toggleTooltip(false);\n }\n };\n\n const onDragStart = (event: MouseEvent | TouchEvent) => {\n slideButtonProps.dragging = true;\n slideButtonProps.isClick = true;\n const { type } = event;\n let { clientY, clientX } = event as MouseEvent;\n if (type === 'touchstart') {\n const touch = (event as TouchEvent).touches;\n [clientY, clientX] = [touch[0].clientY, touch[0].clientX];\n }\n if (props.vertical) {\n slideButtonProps.startY = clientY;\n } else {\n slideButtonProps.startX = clientX;\n }\n slideButtonProps.startPos = parseFloat(currentPos.value);\n slideButtonProps.newPos = slideButtonProps.startPos;\n };\n\n const onDragging = (e: MouseEvent | TouchEvent) => {\n const event = e;\n if (!slideButtonProps.dragging) {\n return;\n }\n dragged.value = true;\n slideButtonProps.isClick = false;\n if (parentProps?.resetSize && isFunction(parentProps?.resetSize)) {\n parentProps.resetSize();\n }\n let diff = 0;\n const parentSliderSize = parentProps.sliderSize;\n const { type } = event;\n let { clientY, clientX } = event as MouseEvent;\n if (type === 'touchmove') {\n const touch = (event as TouchEvent).touches;\n [clientY, clientX] = [touch[0].clientY, touch[0].clientX];\n }\n if (props.vertical) {\n diff = slideButtonProps.startY - clientY;\n } else {\n diff = clientX - slideButtonProps.startX;\n }\n diff = (diff / parentSliderSize) * 100;\n slideButtonProps.newPos = slideButtonProps.startPos + diff;\n setPosition(slideButtonProps.newPos);\n };\n\n const onDragEnd = () => {\n if (slideButtonProps.dragging) {\n setTimeout(() => {\n slideButtonProps.dragging = false;\n toggleTooltip(false);\n if (!slideButtonProps.isClick) {\n setPosition(slideButtonProps.newPos);\n }\n dragged.value && ctx.emit('mouseup');\n dragged.value = false;\n }, 0);\n window.removeEventListener('mousemove', onDragging);\n window.removeEventListener('touchmove', onDragging);\n window.removeEventListener('mouseup', onDragEnd);\n window.removeEventListener('touchend', onDragEnd);\n window.removeEventListener('contextmenu', onDragEnd);\n }\n };\n\n function onButtonDown(event: MouseEvent | TouchEvent) {\n if (parentProps.disabled) {\n return;\n }\n event.preventDefault();\n onDragStart(event);\n window.addEventListener('mousemove', onDragging);\n window.addEventListener('mouseup', onDragEnd);\n window.addEventListener('touchmove', onDragging);\n window.addEventListener('touchend', onDragEnd);\n window.addEventListener('contextmenu', onDragEnd);\n }\n\n const onKeyDown = (state: 'sub' | 'add') => {\n if (parentProps.disabled) {\n return;\n }\n let stepLength = (step.value / rangeDiff.value) * 100;\n if (state === 'sub') {\n stepLength = -stepLength;\n }\n slideButtonProps.newPos = parseFloat(currentPos.value) + stepLength;\n setPosition(slideButtonProps.newPos);\n };\n\n const onNativeKeyDown = (e: KeyboardEvent) => {\n const { code } = e;\n e.preventDefault();\n if (code === 'ArrowDown' || code === 'ArrowLeft') {\n onKeyDown('sub');\n }\n if (code === 'ArrowUp' || code === 'ArrowRight') {\n onKeyDown('add');\n }\n };\n /** --------------------- slide button 相关事件end ------------------- */\n\n /** 暴露设置按钮坐标方法供父组件调用 */\n ctx.expose({\n setPosition,\n });\n\n return () => (\n \n {/* hide tooltip with `hideEmptyPopup`, empty content won't show */}\n \n
    \n \n
    \n );\n },\n});\n","import { defineComponent, PropType } from 'vue';\nimport { TdSliderProps } from './type';\nimport { usePrefixClass } from '@tdesign/shared-hooks';\n\nexport default defineComponent({\n name: 'TSliderMark',\n props: {\n mark: {\n type: [Object, Array, String, Number] as PropType,\n },\n point: {\n type: Number,\n },\n onClickMarkPoint: {\n type: Function,\n default: () => {},\n },\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('slider__mark');\n const changeValue = (e: MouseEvent) => {\n e.stopPropagation();\n props?.onClickMarkPoint?.(props.point);\n };\n\n return () => (\n
    \n {props.mark}\n
    \n );\n },\n});\n","import { computed, Ref } from 'vue';\nimport { omit, isBoolean } from 'lodash-es';\nimport { TdSliderProps } from '../type';\nimport InputNumber, { InputNumberProps, ChangeContext } from '../../input-number';\n\ninterface useSliderInputProps {\n inputNumberProps: boolean | TdSliderProps['inputNumberProps'];\n max: number;\n min: number;\n step: number;\n prefixName: string;\n vertical: boolean;\n disabled: boolean;\n}\n\n/**\n * 聚合管理inputNumber渲染逻辑\n */\nexport const useSliderInput = (config: Ref) => {\n const name = config.value.prefixName;\n\n /** 根据传入属性缓存计算inputNumber props */\n const sliderInputState = computed(() => {\n let initialState: InputNumberProps = {\n format: undefined,\n placeholder: '',\n theme: 'column',\n decimalPlaces: config.value.step.toString().split('.')[1]?.length || 0,\n };\n const inputProps = config.value;\n if (!isBoolean(inputProps.inputNumberProps)) {\n const inputTheme = inputProps.inputNumberProps?.theme;\n initialState = { ...initialState, ...omit(inputProps.inputNumberProps, 'onChange') };\n if (['column', 'row', 'normal'].includes(inputTheme)) {\n initialState.theme = inputTheme;\n }\n }\n return initialState;\n });\n\n const sliderNumberClass = computed(() => {\n return [\n `${name}__input`,\n {\n 'is-vertical': config.value.vertical,\n },\n ];\n });\n\n const renderInputNumber = (val: number, changeFn: (val: number) => void) => {\n // if exist min or max prop, onChange callback function will pass undefined value when decrease\n const normalizeChangeFn = (num: number | undefined, context: ChangeContext) => {\n if (num !== undefined && !isNaN(num)) {\n changeFn(num);\n }\n (config.value?.inputNumberProps as InputNumberProps)?.onChange?.(num, context);\n };\n return (\n \n );\n };\n\n return renderInputNumber;\n};\n","import { isNull } from 'lodash-es';\nimport { calculateNodeSize } from './helper';\n\ntype CalculateStyleType = {\n height?: string,\n minHeight?: string\n};\n\ntype LimitType = number | null;\n\nconst TEXTAREA_STYLE = `\n min-height:0 !important;\n max-height:none !important;\n height:0 !important;\n visibility:hidden !important;\n overflow:hidden !important;\n position:absolute !important;\n z-index:-1000 !important;\n top:0 !important;\n right:0 !important\n`;\n\nlet hiddenTextarea: HTMLTextAreaElement;\n\nfunction calcTextareaHeight(\n targetElement: HTMLTextAreaElement,\n minRows: LimitType = 1,\n maxRows: LimitType = null,\n): CalculateStyleType {\n if (!hiddenTextarea) {\n hiddenTextarea = document.createElement('textarea');\n document.body.appendChild(hiddenTextarea);\n }\n\n const {\n paddingSize,\n borderSize,\n boxSizing,\n sizingStyle,\n } = calculateNodeSize(targetElement);\n\n hiddenTextarea.setAttribute('style', `${sizingStyle};${TEXTAREA_STYLE}`);\n hiddenTextarea.value = targetElement.value || targetElement.placeholder || '';\n\n let height = hiddenTextarea.scrollHeight;\n const result: CalculateStyleType = {};\n const isBorderbox = boxSizing === 'border-box';\n const isContentbox = boxSizing === 'content-box';\n\n if (isBorderbox) {\n height += borderSize;\n } else if (isContentbox) {\n height -= paddingSize;\n }\n\n hiddenTextarea.value = '';\n const singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;\n hiddenTextarea?.parentNode?.removeChild(hiddenTextarea);\n // @ts-ignore\n hiddenTextarea = null;\n\n const calcHeight = (rows: number) => {\n let rowsHeight = singleRowHeight * rows;\n if (isBorderbox) {\n rowsHeight = rowsHeight + paddingSize + borderSize;\n }\n return rowsHeight;\n };\n\n if (!isNull(minRows)) {\n const minHeight = calcHeight(minRows);\n height = Math.max(minHeight, height);\n result.minHeight = `${minHeight}px`;\n }\n if (!isNull(maxRows)) {\n height = Math.min(calcHeight(maxRows), height);\n }\n result.height = `${height}px`;\n return result;\n}\n\nexport default calcTextareaHeight;\n","import {\n defineComponent,\n VNode,\n ref,\n reactive,\n provide,\n computed,\n onBeforeUnmount,\n onMounted,\n watch,\n toRefs,\n} from 'vue';\nimport { isArray, isNumber } from 'lodash-es';\n\nimport props from './props';\nimport TSliderButton from './slider-button';\nimport { SliderValue } from './type';\n\n// hooks\nimport { useVModel, useDisabled, usePrefixClass, useCommonClassName } from '@tdesign/shared-hooks';\nimport { useSliderMark } from './hooks/useSliderMark';\nimport { useSliderInput } from './hooks/useSliderInput';\nimport { formatSliderValue, getStopStyle } from './utils';\nimport { sliderPropsInjectKey } from './consts';\n\ninterface SliderButtonType {\n setPosition: (param: number) => {};\n}\nexport default defineComponent({\n name: 'TSlider',\n model: {\n prop: 'value',\n event: 'change',\n },\n props,\n setup(props) {\n const disabled = useDisabled();\n const COMPONENT_NAME = usePrefixClass('slider');\n const { STATUS } = useCommonClassName();\n const { value, modelValue } = toRefs(props) as any;\n const [sliderValue, setSliderValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n const sliderContainerRef = ref();\n const sliderRef = ref();\n const firstButtonRef = ref();\n const secondButtonRef = ref();\n\n const firstValue = ref(formatSliderValue(sliderValue.value, 'first'));\n const secondValue = ref(formatSliderValue(sliderValue.value, 'second'));\n const dragging = ref(false);\n const sliderSize = ref(1);\n\n const vertical = computed(() => {\n return props.layout === 'vertical';\n });\n\n /** ----------------- 样式计算 start ------------- */\n const containerClass = computed(() => [`${COMPONENT_NAME.value}__container`, { 'is-vertical': vertical.value }]);\n const sliderClass = computed(() => {\n return [\n `${COMPONENT_NAME.value}`,\n {\n 'is-vertical': vertical.value,\n [`${COMPONENT_NAME.value}--with-input`]: props.inputNumberProps,\n [`${COMPONENT_NAME.value}--vertical`]: vertical.value,\n [STATUS.value.disabled]: disabled.value,\n },\n ];\n });\n const sliderRailClass = computed(() => [\n `${COMPONENT_NAME.value}__rail`,\n { 'show-input': props.inputNumberProps, disabled: disabled.value },\n ]);\n const runwayStyle = computed(() => {\n return vertical.value ? { height: '100%' } : {};\n });\n const barStyle = computed(() => {\n const barStart = props.range ? `${(100 * (minValue.value - props.min)) / rangeDiff.value}%` : '0%';\n const currentDiff = props.range ? maxValue.value - minValue.value : firstValue.value - props.min;\n const barSize = `${(100 * currentDiff) / rangeDiff.value}%`;\n return vertical.value\n ? {\n height: barSize,\n bottom: barStart,\n }\n : {\n width: barSize,\n left: barStart,\n };\n });\n /** ----------------- 样式计算 end ------------- */\n\n // 差值范围\n const rangeDiff = computed(() => {\n return props.max - props.min;\n });\n const minValue = computed(() => {\n return Math.min(firstValue.value, secondValue.value);\n });\n const maxValue = computed(() => {\n return Math.max(firstValue.value, secondValue.value);\n });\n const steps = computed(() => {\n if (!props.showStep || props.min > props.max) return [];\n if (props.step === 0) {\n console.warn('[Element Warn][Slider]step should not be 0.');\n return [];\n }\n const stepCount = rangeDiff.value / props.step;\n const stepWidth = (100 * props.step) / rangeDiff.value;\n const result = [];\n for (let i = 1; i < stepCount; i++) {\n result.push(i * stepWidth);\n }\n if (props.range) {\n const r = result.filter(\n (step) =>\n step < (100 * (minValue.value - props.min)) / rangeDiff.value ||\n props.step > (100 * (maxValue.value - props.max)) / rangeDiff.value,\n );\n return r;\n }\n return result.filter((step) => step > (100 * (firstValue.value - props.min)) / rangeDiff.value);\n });\n const precision = computed(() => {\n const precisions = [props.min, props.max, props.step].map((item) => {\n const decimalArr = `${item}`.split('.');\n return decimalArr[1] ? decimalArr[1].length : 0;\n });\n return Math.max.apply(null, precisions);\n });\n // 防止值越级\n const setValues = (value: SliderValue): SliderValue => {\n const [min, max] = [props.min, props.max];\n if (min > max) {\n console.warn('[Slider] max should be greater than min.');\n return;\n }\n // 双向滑块\n if (props.range && isArray(value)) {\n let [maxLimit, minLimit] = [Math.min(...value), Math.max(...value)];\n if (maxLimit > max) {\n maxLimit = firstValue.value;\n }\n if (maxLimit < min) {\n maxLimit = min;\n }\n if (minLimit < min) {\n minLimit = secondValue.value;\n }\n if (minLimit > max) {\n minLimit = max;\n }\n [firstValue.value, secondValue.value] = [maxLimit, minLimit];\n return [maxLimit, minLimit];\n }\n let preValue = value as number;\n if (preValue < min) {\n preValue = min;\n }\n if (preValue > max) {\n preValue = max;\n }\n return preValue;\n };\n // 只要触发修改就要有这个方法抛出change事件\n const emitChange = (value: SliderValue) => {\n let changeValue = value;\n if (changeValue === undefined) {\n if (props.range) {\n changeValue = [firstValue.value, secondValue.value];\n } else {\n changeValue = firstValue.value;\n }\n }\n const fixValue: SliderValue = setValues(changeValue);\n setSliderValue(fixValue);\n };\n\n const resetSize = () => {\n if (sliderRef.value) {\n sliderSize.value = sliderRef.value[`client${vertical.value ? 'Height' : 'Width'}`];\n }\n };\n\n // 是否以完成挂载(部分组合组件如inputNumber依赖于首次init后的状态值进行渲染)\n const isAlreadyMount = ref(false);\n // 初始化传入的value\n const init = () => {\n let valuetext: string | number;\n if (props.range) {\n if (isArray(sliderValue.value)) {\n firstValue.value = Math.max(props.min || 0, sliderValue.value[0]);\n secondValue.value = Math.min(props.max || 100, sliderValue.value[1]);\n } else {\n firstValue.value = props.min || 0;\n secondValue.value = props.max || 100;\n }\n valuetext = `${firstValue.value}-${secondValue.value}`;\n } else {\n if (!isNumber(sliderValue.value)) {\n firstValue.value = props.min;\n } else {\n firstValue.value = Math.min(props.max, Math.max(props.min, sliderValue.value as number));\n }\n valuetext = String(firstValue.value);\n }\n if (sliderContainerRef.value) {\n sliderContainerRef.value.setAttribute('aria-valuetext', valuetext);\n }\n resetSize();\n window.addEventListener('resize', resetSize);\n };\n // 相应button的位置\n const setPosition = (percent: number): void => {\n let targetValue = (percent * rangeDiff.value) / 100;\n targetValue = props.min + targetValue;\n if (!props.range && firstButtonRef.value) {\n firstButtonRef.value.setPosition(percent);\n return;\n }\n let button;\n if (Math.abs(minValue.value - targetValue) < Math.abs(maxValue.value - targetValue)) {\n button = firstValue.value < secondValue.value ? 'button1' : 'button2';\n } else {\n button = firstValue.value > secondValue.value ? 'button1' : 'button2';\n }\n if (button === 'button1' && firstButtonRef.value) {\n firstButtonRef.value.setPosition(percent);\n }\n if (button === 'button2' && secondButtonRef.value) {\n secondButtonRef.value.setPosition(percent);\n }\n };\n\n const getFixValue = () => {\n const changeValue = props.range ? [firstValue.value, secondValue.value] : firstValue.value;\n return setValues(changeValue);\n };\n\n // 全局点击\n const onSliderClick = (event: MouseEvent): void => {\n if (disabled.value || dragging.value) {\n return;\n }\n if (!sliderRef.value) return;\n resetSize();\n let value = 0;\n if (vertical.value) {\n const sliderOffsetBottom = sliderRef.value.getBoundingClientRect().bottom;\n value = ((sliderOffsetBottom - event.clientY) / sliderSize.value) * 100;\n setPosition(value);\n } else {\n const sliderOffsetLeft = sliderRef.value.getBoundingClientRect().left;\n value = ((event.clientX - sliderOffsetLeft) / sliderSize.value) * 100;\n setPosition(value);\n }\n const fixValue = getFixValue();\n props.onChangeEnd?.(fixValue);\n };\n\n // mark 点击触发修改事件\n const changeValue = (point: number) => {\n if (disabled.value || dragging.value) {\n return;\n }\n resetSize();\n const value = Number((point / rangeDiff.value) * 100);\n setPosition(value);\n emitChange(point);\n const fixValue = getFixValue();\n props.onChangeEnd?.(fixValue);\n };\n\n /** 副作用监听 */\n watch(\n () => sliderValue.value,\n (newVal) => {\n if (dragging.value === true) return;\n if (isArray(newVal) && props.range) {\n [firstValue.value, secondValue.value] = newVal;\n } else {\n firstValue.value = newVal as number;\n }\n },\n );\n\n watch([firstValue, secondValue, dragging], (newStates, prevStates) => {\n if (newStates[0] !== prevStates[0]) {\n if (props.range) {\n emitChange([minValue.value, maxValue.value]);\n } else {\n emitChange(firstValue.value);\n }\n }\n if (newStates[1] !== prevStates[1]) {\n if (props.range) {\n emitChange([minValue.value, maxValue.value]);\n }\n }\n if (newStates[2] !== prevStates[2] && newStates[2] === false) {\n init();\n }\n });\n\n /** 挂载&卸载 */\n onMounted(() => {\n init();\n isAlreadyMount.value = true;\n });\n onBeforeUnmount(() => {\n window.removeEventListener('resize', resetSize);\n });\n\n /** -------------------------- 渲染相关逻辑 start -------------------------- */\n const markConfig = computed(() => ({\n max: props.max,\n min: props.min,\n marks: props.marks,\n vertical: vertical.value,\n prefixName: COMPONENT_NAME.value,\n }));\n const renderMask = useSliderMark(markConfig);\n\n const inputConfig = computed(() => ({\n max: props.max,\n min: props.min,\n inputNumberProps: props.inputNumberProps,\n step: props.step,\n prefixName: COMPONENT_NAME.value,\n vertical: vertical.value,\n disabled: disabled.value,\n }));\n const renderInputNumber = useSliderInput(inputConfig);\n\n const renderInputButton = (): VNode => {\n const firstInputVal = setValues(firstValue.value) as number;\n const firstInputOnChange = (v: number) => {\n firstValue.value = setValues(v) as number;\n };\n const secondInputVal = setValues(secondValue.value) as number;\n const secondInputOnChange = (v: number) => {\n secondValue.value = setValues(v) as number;\n };\n return (\n \n {renderInputNumber(firstInputVal, firstInputOnChange)}\n {props.range &&
    }\n {props.range && renderInputNumber(secondInputVal, secondInputOnChange)}\n
    \n );\n };\n /** -------------------------- 渲染相关逻辑 end -------------------------- */\n\n /** 父子共用状态&方法 */\n const toggleDragging = (toState: boolean) => {\n dragging.value = toState;\n };\n\n const { min, max, step } = toRefs(props);\n provide(\n sliderPropsInjectKey,\n reactive({\n min,\n max,\n step,\n dragging,\n toggleDragging,\n precision,\n disabled,\n resetSize,\n sliderSize,\n }),\n );\n\n return () => (\n
    \n \n
    \n
    \n {\n firstValue.value = v;\n }}\n onMouseup={() => {\n const fixValue = getFixValue();\n props.onChangeEnd?.(fixValue);\n }}\n />\n {props.range && (\n {\n secondValue.value = v;\n }}\n onMouseup={() => {\n const fixValue = getFixValue();\n props.onChangeEnd?.(fixValue);\n }}\n />\n )}\n {props.showStep && (\n
    \n {steps.value.map((item: any, key) => {\n if (item.position === 0 || item.position === 100) return null;\n return (\n
    \n );\n })}\n
    \n )}\n {renderMask(changeValue)}\n
    \n
    \n {isAlreadyMount.value && props.inputNumberProps && renderInputButton()}\n
    \n );\n },\n});\n","import { computed, VNode, Ref } from 'vue';\nimport { isArray, cloneDeep } from 'lodash-es';\nimport { SliderMarks } from '../type';\nimport { TNode } from '../../common';\nimport log from '@tdesign/common-js/log/log';\nimport { getStopStyle } from '../utils';\nimport TSliderMark from '../slider-mark';\n\ninterface MarkItem {\n point: number;\n position: number;\n mark: string | number | TNode<{ value: number }>;\n}\n\ninterface useSliderMarkProps {\n max: number;\n min: number;\n marks: number[] | SliderMarks;\n vertical: boolean;\n prefixName: string;\n}\n\n/**\n * 聚合管理刻度值渲染逻辑\n */\nexport const useSliderMark = (config: Ref) => {\n const name = config.value.prefixName;\n const markList = computed(() => {\n const markProps = config.value;\n if (!markProps.marks) {\n return [];\n }\n const legalMarks: Array = [];\n if (isArray(markProps.marks)) {\n const marksList = cloneDeep(markProps.marks).sort((a, b) => a - b);\n const maxLimit = Math.max(...marksList, markProps.max);\n const minLimit = Math.min(...marksList, markProps.min);\n if (minLimit < markProps.min) {\n log.errorOnce('TSlider', 'marks min value should >= props min');\n }\n if (maxLimit > markProps.max) {\n log.errorOnce('TSlider', 'marks max value should <= props max');\n }\n marksList.forEach((item) => {\n legalMarks.push({\n point: item,\n position: ((item - minLimit) / (maxLimit - minLimit)) * 100,\n mark: item,\n });\n });\n } else {\n Object.keys(markProps.marks)\n .map(parseFloat)\n .sort((a, b) => a - b)\n .filter((point) => point <= markProps.max && point >= markProps.min)\n .forEach((point) => {\n const item: MarkItem = {\n point,\n position: ((point - markProps.min) * 100) / (markProps.max - markProps.min),\n mark: markProps.marks[point],\n };\n legalMarks.push(item);\n });\n }\n return legalMarks;\n });\n\n const renderMask = (onChangeFn?: (point: number) => void): VNode => {\n if (!markList.value.length) return null;\n\n return (\n
    \n
    \n {markList.value.map((item, index) => {\n if (item.position === 0 || item.position === 100) return null;\n return (\n \n );\n })}\n
    \n
    \n {markList.value.map((item, key) => (\n \n ))}\n
    \n
    \n );\n };\n\n return renderMask;\n};\n","import _Slider from './slider';\nimport _SliderButton from './slider-button';\nimport { withInstall } from '@tdesign/shared-utils';\nimport { TdSliderProps } from './type';\n\nimport './style';\n\nexport * from './type';\n\nexport type SliderProps = TdSliderProps;\nexport const Slider = withInstall(_Slider);\nexport const SliderButton = withInstall(_SliderButton);\nexport default Slider;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdSwitchProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** Switch 切换状态前的回调方法,常用于需要发起异步请求的场景,回调返回值支持布尔和 Promise 类型,返回`false`或 Promise reject不继续执行change,否则则继续执行。 */\n beforeChange: {\n type: Function as PropType,\n },\n /** 用于自定义开关的值,[打开时的值,关闭时的值]。默认为 [true, false]。示例:[1, 0]、['open', 'close'] */\n customValue: {\n type: Array as PropType,\n },\n /** 是否禁用组件。优先级:Switch.disabled > Form.disabled */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 开关内容,[开启时内容,关闭时内容]。示例:['开', '关'] 或 (value) => value ? '开' : '关' */\n label: {\n type: [Array, Function] as PropType,\n default: (): TdSwitchProps['label'] => [] as TdSwitchProps['label'],\n },\n /** 是否处于加载中状态 */\n loading: Boolean,\n /** 开关尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdSwitchProps['size'],\n validator(val: TdSwitchProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 开关值 */\n value: {\n type: [String, Number, Boolean] as PropType,\n default: undefined as TdSwitchProps['value'],\n },\n modelValue: {\n type: [String, Number, Boolean] as PropType,\n default: undefined as TdSwitchProps['value'],\n },\n /** 开关值,非受控属性 */\n defaultValue: {\n type: [String, Number, Boolean] as PropType,\n },\n /** 数据发生变化时触发 */\n onChange: Function as PropType,\n};\n","import { defineComponent, h, VNodeChild, computed, watch, toRefs } from 'vue';\nimport { useVModel, useDisabled, usePrefixClass, useCommonClassName } from '@tdesign/shared-hooks';\nimport TLoading from '../loading';\nimport props from './props';\nimport { TNodeReturnValue } from '../common';\n\n// hooks\n\nimport { isArray, isString, isFunction } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TSwitch',\n props,\n setup(props, { slots }) {\n const disabled = useDisabled();\n const COMPONENT_NAME = usePrefixClass('switch');\n const { STATUS, SIZE } = useCommonClassName();\n // values\n const { value, modelValue } = toRefs(props);\n const [innerValue, setSwitchVal] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n const activeValue = computed(() => {\n if (props.customValue && props.customValue.length > 0) {\n return props.customValue[0];\n }\n return true;\n });\n const inactiveValue = computed(() => {\n if (props.customValue && props.customValue.length > 1) {\n return props.customValue[1];\n }\n return false;\n });\n\n // methods\n function handleToggle(e: MouseEvent) {\n const checked = innerValue.value === activeValue.value ? inactiveValue.value : activeValue.value;\n // emits\n setSwitchVal(checked, { e });\n }\n\n function toggle(e: MouseEvent) {\n if (disabled.value || props.loading) {\n return;\n }\n if (!props.beforeChange) {\n handleToggle(e);\n return;\n }\n Promise.resolve(props.beforeChange())\n .then((v) => {\n if (v) {\n handleToggle(e);\n }\n })\n .catch((e) => {\n throw new Error(`Switch: some error occurred: ${e}`);\n });\n }\n\n // classes\n const classes = computed(() => [\n `${COMPONENT_NAME.value}`,\n SIZE.value[props.size],\n {\n [STATUS.value.disabled]: disabled.value,\n [STATUS.value.loading]: props.loading,\n [STATUS.value.checked]: innerValue.value === activeValue.value || props.modelValue === activeValue.value,\n },\n ]);\n const nodeClasses = computed(() => {\n return [\n `${COMPONENT_NAME.value}__handle`,\n {\n [STATUS.value.disabled]: disabled.value,\n [STATUS.value.loading]: props.loading,\n },\n ];\n });\n const contentClasses = computed(() => {\n return [\n `${COMPONENT_NAME.value}__content`,\n SIZE.value[props.size],\n {\n [STATUS.value.disabled]: disabled.value,\n },\n ];\n });\n\n watch(\n innerValue,\n (val) => {\n if (props.customValue && props.customValue.length && !props.customValue.includes(val)) {\n throw new Error(`value is ${val} not in ${JSON.stringify(props.customValue)}`);\n }\n },\n {\n immediate: true,\n },\n );\n\n const content = computed(() => {\n if (isFunction(props.label)) {\n return props.label(h, { value: innerValue.value });\n }\n if (isString(props.label)) {\n return props.label;\n }\n if (isArray(props.label) && props.label.length) {\n const label = innerValue.value === activeValue.value ? props.label[0] : props.label[1];\n if (!label) return;\n if (isString(label)) {\n return label;\n }\n if (isFunction(label)) {\n return label(h);\n }\n }\n if (slots.label) {\n return slots.label({ value: innerValue.value });\n }\n return null;\n });\n return () => {\n let switchContent: VNodeChild;\n let loadingContent: TNodeReturnValue;\n if (props.loading) {\n loadingContent = ;\n } else if (content.value) {\n switchContent = content.value;\n }\n\n return (\n
    \n {loadingContent}\n
    {switchContent}
    \n
    \n );\n };\n },\n});\n","import _Switch from './switch';\nimport { withInstall } from '@tdesign/shared-utils';\nimport { TdSwitchProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type SwitchProps = TdSwitchProps;\n\nexport const Switch = withInstall(_Switch);\nexport default Switch;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTextareaProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 超出maxlength或maxcharacter之后是否还允许输入 */\n allowInputOverMax: Boolean,\n /** 自动聚焦,拉起键盘 */\n autofocus: Boolean,\n /** 高度自动撑开。 autosize = true 表示组件高度自动撑开,同时,依旧允许手动拖高度。如果设置了 autosize.maxRows 或者 autosize.minRows 则不允许手动调整高度 */\n autosize: {\n type: [Boolean, Object] as PropType,\n default: false as TdTextareaProps['autosize'],\n },\n /** 是否禁用文本框 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 用户最多可以输入的字符个数,一个中文汉字表示两个字符长度 */\n maxcharacter: {\n type: Number,\n },\n /** 用户最多可以输入的字符个数 */\n maxlength: {\n type: [String, Number] as PropType,\n },\n /** 名称,HTML 元素原生属性 */\n name: {\n type: String,\n default: '',\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 文本框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdTextareaProps['status'],\n validator(val: TdTextareaProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 文本框值 */\n value: {\n type: [String, Number] as PropType,\n default: undefined as TdTextareaProps['value'],\n },\n modelValue: {\n type: [String, Number] as PropType,\n default: undefined as TdTextareaProps['value'],\n },\n /** 文本框值,非受控属性 */\n defaultValue: {\n type: [String, Number] as PropType,\n },\n /** 失去焦点时触发 */\n onBlur: Function as PropType,\n /** 输入内容变化时触发 */\n onChange: Function as PropType,\n /** 获得焦点时触发 */\n onFocus: Function as PropType,\n /** 键盘按下时触发 */\n onKeydown: Function as PropType,\n /** 按下字符键时触发(keydown -> keypress -> keyup) */\n onKeypress: Function as PropType,\n /** 释放键盘时触发 */\n onKeyup: Function as PropType,\n /** 字数超出限制时触发 */\n onValidate: Function as PropType,\n};\n","import {\n defineComponent,\n computed,\n watch,\n ref,\n nextTick,\n onMounted,\n toRefs,\n inject,\n StyleValue,\n CSSProperties,\n} from 'vue';\nimport { isObject, merge, omit } from 'lodash-es';\n\nimport { FormItemInjectionKey } from '../form/consts';\nimport setStyle from '@tdesign/common-js/utils/setStyle';\nimport { getCharacterLength, getValidAttrs } from '@tdesign/common-js/utils/helper';\n\n// hooks\nimport {\n useVModel,\n useDisabled,\n useReadonly,\n useTNodeJSX,\n usePrefixClass,\n useCommonClassName,\n} from '@tdesign/shared-hooks';\n\nimport { useLengthLimit } from '../input/hooks/useLengthLimit';\n\nimport props from './props';\nimport type { TextareaValue, TdTextareaProps } from './type';\n\nimport calcTextareaHeight from '@tdesign/common-js/utils/calcTextareaHeight';\n\nexport default defineComponent({\n name: 'TTextarea',\n inheritAttrs: false,\n props,\n setup(props: TdTextareaProps, { attrs, expose }) {\n const prefix = usePrefixClass();\n const name = usePrefixClass('textarea');\n const TEXTAREA_TIPS_CLASS = computed(() => `${name.value}__tips`);\n const TEXTAREA_LIMIT = computed(() => `${name.value}__limit`);\n\n const { value, modelValue } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const disabled = useDisabled();\n const isReadonly = useReadonly();\n const textareaStyle = ref({});\n\n const refTextareaElem = ref();\n const focused = ref(false);\n const isComposing = ref(false);\n\n const focus = () => refTextareaElem.value?.focus();\n const blur = () => refTextareaElem.value?.blur();\n\n // methods\n const adjustTextareaHeight = () => {\n if (props.autosize === true) {\n nextTick(() => {\n textareaStyle.value = calcTextareaHeight(refTextareaElem.value);\n });\n } else if (props.autosize && typeof props.autosize === 'object') {\n const { minRows, maxRows } = props.autosize;\n nextTick(() => {\n textareaStyle.value = calcTextareaHeight(refTextareaElem.value, minRows, maxRows);\n });\n } else if (attrs.rows) {\n textareaStyle.value = { height: 'auto', minHeight: 'auto' };\n } else if (attrs.style && refTextareaElem.value?.style?.height) {\n textareaStyle.value = { height: refTextareaElem.value.style.height };\n }\n };\n\n const setInputValue = (v: TextareaValue = '') => {\n const textareaElem = refTextareaElem.value;\n const sV = String(v);\n if (!textareaElem) {\n return;\n }\n\n if (textareaElem.value !== sV) {\n textareaElem.value = sV;\n innerValue.value = sV;\n }\n };\n const inputValueChangeHandle = (e: InputEvent) => {\n const { target } = e;\n let val = (target as HTMLInputElement).value;\n if (props.maxcharacter && props.maxcharacter >= 0) {\n const stringInfo = getCharacterLength(val, props.maxcharacter);\n val = typeof stringInfo === 'object' && stringInfo.characters;\n }\n !isComposing.value && setInnerValue(val, { e });\n nextTick(() => setInputValue(val));\n adjustTextareaHeight();\n };\n\n const handleInput = (e: InputEvent) => {\n inputValueChangeHandle(e);\n };\n\n const onCompositionstart = () => {\n isComposing.value = true;\n };\n\n const onCompositionend = (e: InputEvent | CompositionEvent) => {\n isComposing.value = false;\n inputValueChangeHandle(e as InputEvent);\n };\n\n const eventDeal = (name: T, e: KeyboardEvent) => {\n if (disabled.value) return;\n const eventName = `on${name[0].toUpperCase()}${name.slice(1)}` as `on${Capitalize}`;\n props[eventName]?.(innerValue.value, { e });\n };\n\n const emitKeyDown = (e: KeyboardEvent) => {\n eventDeal('keydown', e);\n };\n const emitKeyUp = (e: KeyboardEvent) => {\n eventDeal('keyup', e);\n };\n const emitKeypress = (e: KeyboardEvent) => {\n eventDeal('keypress', e);\n };\n\n const emitFocus = (e: FocusEvent) => {\n adjustTextareaHeight();\n if (disabled.value) return;\n focused.value = true;\n props.onFocus?.(innerValue.value, { e });\n };\n\n const formItem = inject(FormItemInjectionKey, undefined);\n const emitBlur = (e: FocusEvent) => {\n if (!e.target) return;\n adjustTextareaHeight();\n focused.value = false;\n props.onBlur?.(innerValue.value, { e });\n formItem?.handleBlur();\n };\n\n // computed\n const textareaClasses = computed(() => {\n return [\n name.value,\n {\n [`${prefix.value}-is-disabled`]: disabled.value,\n [`${prefix.value}-is-readonly`]: isReadonly.value,\n },\n ];\n });\n const inputAttrs = computed>(() => {\n return getValidAttrs({\n autofocus: props.autofocus,\n disabled: disabled.value,\n readonly: isReadonly.value,\n placeholder: props.placeholder,\n maxlength: (!props.allowInputOverMax && props.maxlength) || undefined,\n name: props.name || undefined,\n });\n });\n const characterNumber = computed(() => {\n const characterInfo = getCharacterLength(String(innerValue.value || ''));\n if (typeof characterInfo === 'object') {\n // @ts-ignore\n // TODO: 这里的写法本身就有问题,因为 getCharacterLength(String(innerValue.value || '')) 一定会返回 number,所以这个分支肯定是进不了的,除非 getCharacterLength 写得有问题\n return characterInfo.length;\n }\n return characterInfo;\n });\n\n const limitParams = computed(() => ({\n value: [undefined, null].includes(innerValue.value) ? undefined : String(innerValue.value),\n status: props.status,\n maxlength: Number(props.maxlength),\n maxcharacter: props.maxcharacter,\n allowInputOverMax: props.allowInputOverMax,\n onValidate: props.onValidate,\n }));\n const { tStatus } = useLengthLimit(limitParams);\n\n // watch\n watch(\n () => innerValue.value,\n () => adjustTextareaHeight(),\n );\n\n watch(refTextareaElem, (el) => {\n if (!el) return;\n adjustTextareaHeight();\n if (props.autofocus) {\n el.focus();\n }\n });\n\n watch(textareaStyle, (val) => {\n const { style } = attrs as { style: StyleValue };\n if (isObject(style)) {\n setStyle(refTextareaElem.value, merge(style, val) as Record);\n } else {\n setStyle(refTextareaElem.value, val);\n }\n });\n\n watch(innerValue, () => {\n nextTick(() => adjustTextareaHeight());\n });\n\n watch(() => props.autosize, adjustTextareaHeight, { deep: true });\n\n expose({\n focus,\n blur,\n });\n\n onMounted(() => {\n adjustTextareaHeight();\n });\n\n const renderTNodeJSX = useTNodeJSX();\n return () => {\n const inputEvents = getValidAttrs({\n onFocus: emitFocus,\n onBlur: emitBlur,\n onKeydown: emitKeyDown,\n onKeyup: emitKeyUp,\n onKeypress: emitKeypress,\n });\n const { STATUS } = useCommonClassName();\n const classes = computed(() => [\n `${name.value}__inner`,\n {\n [`${prefix.value}-is-${tStatus.value}`]: tStatus.value,\n [STATUS.value.disabled]: disabled.value,\n [STATUS.value.focused]: focused.value,\n [`${prefix.value}-resize-none`]: typeof props.autosize === 'object',\n },\n ]);\n\n const tips = renderTNodeJSX('tips');\n\n const textTips = tips && (\n
    {tips}
    \n );\n\n const limitText =\n (props.maxcharacter && (\n {`${characterNumber.value}/${props.maxcharacter}`}\n )) ||\n (!props.maxcharacter && props.maxlength && (\n {`${innerValue.value ? String(innerValue.value)?.length : 0}/${\n props.maxlength\n }`}\n ));\n\n return (\n
    \n \n {textTips || limitText ? (\n \n {textTips}\n {limitText}\n
    \n ) : null}\n
    \n );\n };\n },\n});\n","import _Textarea from './textarea';\nimport { withInstall } from '@tdesign/shared-utils';\nimport { TdTextareaProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type TextareaProps = TdTextareaProps;\n\nexport const Textarea = withInstall(_Textarea);\nexport default Textarea;\n","import { ComponentPublicInstance } from 'vue';\nimport { isArray, cloneDeep, isUndefined } from 'lodash-es';\n\nimport { TransferListOptionBase, TransferItemOption, TdTransferProps, TransferValue, DataOption } from '../types';\n\n// TODO:PAOPAO for what?\n// export { emitEvent } from '../../utils/event';\n\nexport const TRANSFER_NAME = 'TTransfer';\n\nexport const SOURCE = 'source';\nexport const TARGET = 'target';\n\ninterface TreeNode {\n children?: Array;\n}\n\nfunction findTopNode(vm: ComponentPublicInstance): ComponentPublicInstance {\n // 找到t-transfer这层父节点\n if (vm.$options.name === 't-transfer') {\n return vm;\n }\n if (vm.$parent) {\n return findTopNode(vm.$parent);\n }\n return vm;\n}\n\nfunction getTransferListOption(prop: T | Array): TransferListOptionBase {\n if (isArray(prop)) {\n return {\n source: prop[0],\n target: prop[1],\n };\n }\n return {\n source: prop,\n target: prop,\n };\n}\n\nfunction getDataValues(\n data: Array,\n filterValues: Array,\n {\n isTreeMode = false,\n include = true, // true=保留filterValues,false=删除filterValues中元素\n remainValue = [] as Array,\n } = {},\n): Array {\n // 用于处理 tree 组件这种数据结构是树形的\n if (isTreeMode) {\n let result: Array = [];\n if (data) {\n for (let i = 0; i < data.length; i++) {\n const item = data[i];\n const isInclude = filterValues.includes(item.value) && !item.disabled;\n if (!include && isInclude) {\n continue; // 排除模式下子元素一律排除\n }\n\n // 只找叶子节点\n if (item.children && item.children.length > 0) {\n const childResult = getDataValues(item.children, filterValues, {\n isTreeMode,\n include,\n });\n result = result.concat(childResult);\n } else if ((include && isInclude) || (!include && !isInclude)) {\n result.push(item.value);\n }\n }\n }\n return result;\n }\n return data\n .filter((item) => {\n if (!item) return false;\n const isInclude = filterValues.includes(item.value);\n return (\n ((include && isInclude) || (!include && !isInclude)) && (!item.disabled || remainValue.includes(item.value))\n );\n })\n .map((item) => item.value);\n}\n\nfunction getTransferData(\n data: Array,\n keys: TdTransferProps['keys'],\n isTreeMode = false,\n): Array {\n const list: Array = data.map((transferDataItem, index): TransferItemOption => {\n const labelKey = keys?.label || 'label';\n const valueKey = keys?.value || 'value';\n const disabledKey = keys?.disabled || 'disabled';\n if (isUndefined(transferDataItem[labelKey])) {\n throw new Error(`${labelKey} is not in DataOption ${JSON.stringify(transferDataItem)}`);\n }\n if (isUndefined(transferDataItem[valueKey])) {\n throw new Error(`${valueKey} is not in DataOption ${JSON.stringify(transferDataItem)}`);\n }\n const result: TransferItemOption = {\n label: transferDataItem[labelKey] as string,\n value: transferDataItem[valueKey],\n key: `key__value_${transferDataItem[valueKey]}_index_${index}`,\n disabled: transferDataItem[disabledKey] ?? false,\n data: transferDataItem,\n };\n if (isTreeMode && transferDataItem.children) {\n result.children = getTransferData(transferDataItem.children, keys, true);\n }\n return result;\n });\n return list;\n}\n\nfunction isAllNodeValid(data: TransferItemOption, filterValues: Array, needMatch: boolean): boolean {\n if (filterValues.includes(data.value)) {\n return needMatch;\n }\n return false;\n}\n\nfunction isTreeNodeValid(data: TransferItemOption, filterValues: Array, needMatch: boolean): boolean {\n if (!data) return !needMatch;\n\n if (filterValues.includes(data.value)) {\n return needMatch;\n }\n\n if (data.children?.length) {\n return data.children.some((item) => isTreeNodeValid(item, filterValues, needMatch));\n }\n return !needMatch;\n}\n\n// 复制树并过滤节点\nfunction cloneTreeWithFilter(\n sourceTree: TransferItemOption[],\n targetTree: TransferItemOption[],\n filterValues: Array,\n needMatch: boolean,\n) {\n sourceTree.forEach((item) => {\n let newNode: TransferItemOption;\n if (isAllNodeValid(item, filterValues, needMatch)) {\n // 如果当前节点直接命中,则复制所有子节点\n newNode = cloneDeep(item);\n targetTree.push(newNode);\n } else if (isTreeNodeValid(item, filterValues, needMatch)) {\n // 如果有合法子节点,就复制这个节点\n newNode = {\n ...item,\n };\n delete newNode.children;\n targetTree.push(newNode);\n if (item.children) {\n newNode.children = [];\n cloneTreeWithFilter(item.children, newNode.children, filterValues, needMatch);\n if (newNode.children.length === 0) {\n delete newNode.children;\n }\n }\n }\n });\n}\n\n// 过滤列表,如果是树的话需要保持树的结构\nfunction filterTransferData(\n data: Array,\n filterValues: Array,\n needMatch = true,\n isTreeMode = false,\n) {\n if (!isTreeMode) {\n if (needMatch) {\n // 正向过滤。要保持filterValues顺序\n return filterValues?.map((value) => data.find((item) => item.value === value)).filter((item) => !!item);\n }\n // 反向过滤\n return data.filter((item) => {\n const isMatch = filterValues.includes(item.value);\n return !isMatch;\n });\n }\n\n const result: Array = [];\n cloneTreeWithFilter(data, result, filterValues, needMatch);\n return result;\n}\n\n// 获取树节点的叶子数量\nfunction getLefCount(nodes: Array): number {\n let total = 0;\n nodes.forEach((child) => {\n if (child.children && child.children.length > 0) {\n total += getLefCount(child.children);\n } else {\n total += 1;\n }\n });\n return total;\n}\n\nexport {\n findTopNode,\n getTransferListOption,\n getDataValues,\n getTransferData,\n cloneTreeWithFilter,\n filterTransferData,\n getLefCount,\n};\n","import { defineComponent, PropType } from 'vue';\nimport { SearchIcon as TdSearchIcon } from 'tdesign-icons-vue-next';\n\nimport { SearchOption } from '../types';\nimport TInput from '../../input';\nimport { useGlobalIcon, usePrefixClass } from '@tdesign/shared-hooks';\n\nexport default defineComponent({\n name: 'TTransferSearch',\n props: {\n value: {\n type: String,\n default: '',\n },\n search: {\n type: [Boolean, Object] as PropType,\n default: false,\n },\n placeholder: {\n type: String,\n default: '',\n },\n onChange: Function,\n },\n setup(props) {\n const classPrefix = usePrefixClass();\n const { SearchIcon } = useGlobalIcon({ SearchIcon: TdSearchIcon });\n const handleChange = (value: string, changeCtx: any) => {\n const { e, trigger } = changeCtx;\n props.onChange?.({\n value,\n e,\n trigger,\n });\n };\n const inputProps = typeof props.search === 'object' ? props.search : { clearable: true };\n\n return () => (\n
    \n \n \n \n
    \n );\n },\n});\n","import { defineComponent, VNode, PropType, ref, computed, watch, toRefs } from 'vue';\nimport {\n EmptyType,\n SearchEvent,\n SearchOption,\n TransferValue,\n TdTransferProps,\n TransferListType,\n TransferItemOption,\n} from '../types';\nimport { PageInfo, TdPaginationProps, Pagination } from '../../pagination';\nimport { Checkbox as TCheckbox, CheckboxGroup as TCheckboxGroup, CheckboxProps } from '../../checkbox';\nimport { getLefCount, getDataValues, TARGET } from '../utils';\nimport Search from './transfer-search';\nimport { useConfig, usePrefixClass, useTNodeDefault } from '@tdesign/shared-hooks';\n\nimport { filter, isString, cloneDeep } from 'lodash-es';\n\nimport useDragSort from '../hooks/useDragSort';\n\nconst props = {\n checkboxProps: {\n type: Object as PropType,\n default: () => ({}),\n },\n dataSource: {\n type: Array as PropType>,\n default(): Array {\n return [];\n },\n },\n listType: {\n type: String as PropType,\n default: 'target',\n },\n title: {\n type: [String, Function],\n },\n checkedValue: {\n type: Array as PropType>,\n default(): Array {\n return [];\n },\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n search: {\n type: [Boolean, Object] as PropType,\n default: false,\n },\n transferItem: Function as PropType,\n empty: {\n type: [Function, String] as PropType,\n },\n pagination: [Boolean, Object],\n footer: [Function, String],\n checkAll: Boolean,\n isTreeMode: {\n type: Boolean as PropType,\n default: false,\n },\n onCheckedChange: Function as PropType<(event: Array) => void>,\n onPageChange: Function,\n onScroll: Function,\n onSearch: Function,\n onDataChange: Function as PropType<(data: Array, movedValue: Array) => void>,\n draggable: Boolean,\n currentValue: {\n type: Array as PropType>,\n },\n};\n\nexport default defineComponent({\n name: 'TTransferList',\n props,\n setup(props) {\n const classPrefix = usePrefixClass();\n const { currentValue } = toRefs(props);\n const { t, globalConfig } = useConfig('transfer');\n // 搜索框输入内容\n const filterValue = ref('');\n // 用于兼容处理 Pagination 的非受控属性(非受控属性仅有 change 事件变化,无 props 变化,因此只需监听事件)\n const defaultCurrent = ref(1);\n // 用于兼容处理 Pagination 的非受控属性\n const defaultPageSize = ref(0);\n\n const currentPage = computed(() => {\n const pagination = props.pagination as any;\n return pagination?.current || defaultCurrent.value || pagination?.defaultCurrent;\n });\n const pageSize = computed(() => {\n const pagination = props.pagination as any;\n return pagination?.pageSize || defaultPageSize.value || pagination?.defaultPageSize;\n });\n\n const filteredData = computed(() => {\n const isTreeData = props.dataSource.some((item) => item.children && item.children.length);\n if (!isTreeData) {\n return props.dataSource.filter((item: TransferItemOption) => {\n const label = item && item.label.toString();\n return label.toLowerCase().indexOf(filterValue.value.toLowerCase()) > -1;\n });\n } else {\n return filteredTreeData(props.dataSource, filterValue.value);\n }\n });\n\n const pageTotal = computed(() => {\n return (filteredData.value && filteredData.value.length) || 0;\n });\n\n const curPageData = computed(() => {\n let pageData = filteredData.value;\n if (!props.pagination) return pageData;\n if (pageSize.value === 0) return pageData;\n const startIndex = (currentPage.value - 1) * pageSize.value;\n const endIndex = currentPage.value * pageSize.value;\n pageData = pageData.slice(startIndex, endIndex);\n return pageData;\n });\n const paginationProps = computed(() => {\n const defaultPaginationProps: TdPaginationProps = {\n totalContent: false,\n pageSizeOptions: [],\n };\n return typeof props.pagination === 'object'\n ? {\n ...defaultPaginationProps,\n ...props.pagination,\n size: 'small',\n theme: 'simple',\n current: currentPage.value,\n total: pageTotal.value,\n pageSize: pageSize.value,\n }\n : {};\n });\n const { onDragStart, onDragEnd, onDrop, onDragOver, onDragLeave } = useDragSort(\n currentValue,\n curPageData,\n props.onDataChange,\n );\n const isAllChecked = computed(() => {\n const allValue = getDataValues(props.dataSource, [], { isTreeMode: props.isTreeMode, include: false });\n\n return (\n props.checkedValue.length > 0 &&\n (props.isTreeMode\n ? allValue.every((item) => props.checkedValue.includes(item))\n : (props.search ? filteredData.value : props.dataSource).every(\n (item: TransferItemOption) => item.disabled || props.checkedValue.includes(item.value),\n ))\n );\n });\n const indeterminate = computed(() => {\n return !isAllChecked.value && props.checkedValue.length > 0;\n });\n\n const totalCount = computed(() => {\n return getLefCount(props.dataSource);\n });\n\n watch(totalCount, (val) => {\n if (val <= (currentPage.value - 1) * pageSize.value) {\n const lastPage = Math.ceil(val / pageSize.value);\n defaultCurrent.value = lastPage;\n }\n });\n\n const filteredTreeData = (list: TransferItemOption[], keyword: string) => {\n const res = filter(cloneDeep(list), (node) => {\n if (node.label.toLowerCase().includes(keyword.toLowerCase())) {\n return true;\n }\n if (node.children && node.children.length > 0) {\n node.children = filteredTreeData(node.children, keyword);\n if (node.children.length > 0) {\n return true;\n }\n }\n return false;\n });\n return res;\n };\n\n const handlePaginationChange = (pageInfo: PageInfo) => {\n props.onPageChange?.(pageInfo);\n defaultCurrent.value = pageInfo.current;\n defaultPageSize.value = pageInfo.pageSize;\n };\n const handleCheckedChange = (val: Array) => {\n props.onCheckedChange?.(val);\n };\n const handleCheckedAllChange = (checked: boolean) => {\n if (checked) {\n const allValue = getDataValues(props.search ? filteredData.value : props.dataSource, [], {\n isTreeMode: props.isTreeMode,\n include: false,\n });\n handleCheckedChange(allValue);\n } else {\n handleCheckedChange([]);\n }\n };\n const handleScroll = (e: Event) => {\n props.onScroll?.(e);\n };\n const handleSearch = (e: any) => {\n const event: SearchEvent = {\n query: e.value,\n type: props.listType as TransferListType,\n e: e.e,\n trigger: e.trigger,\n };\n filterValue.value = e.value;\n props.onSearch?.(event);\n };\n const renderTNodeJSX = useTNodeDefault();\n const renderTitle = () => {\n const defaultNode = props.title && isString(props.title) ? : null;\n const titleNode = renderTNodeJSX('title', {\n defaultNode,\n params: {\n type: props.listType,\n },\n });\n return {titleNode};\n };\n const renderContent = () => {\n const isDraggable = props.draggable && props.listType === TARGET;\n let defaultNode: JSX.Element = null;\n if (!isDraggable) {\n defaultNode = (\n \n {curPageData.value.map((item, index) => (\n \n {renderTNodeJSX('transferItem', {\n defaultNode: {item.label},\n params: { data: item.data, index, type: props.listType },\n })}\n \n ))}\n \n );\n } else {\n defaultNode = (\n \n {curPageData.value.map((item, index) => (\n \n \n {renderTNodeJSX('transferItem', {\n defaultNode: {item.label},\n params: { data: item.data, index, type: props.listType },\n })}\n \n
    \n ))}\n \n );\n }\n\n return (\n
    \n {renderTNodeJSX('tree', {\n defaultNode,\n params: {\n data: curPageData.value,\n value: props.checkedValue,\n onChange: handleCheckedChange,\n },\n })}\n
    \n );\n };\n const renderEmpty = () => {\n const empty = props.empty || t(globalConfig.value.empty);\n const defaultNode: VNode = isString(empty) ? {empty} : null;\n return (\n
    \n {renderTNodeJSX('empty', {\n defaultNode,\n params: {\n type: props.listType,\n },\n })}\n
    \n );\n };\n const renderFooter = () => {\n const defaultNode = isString(props.footer) ? (\n
    {props.footer}
    \n ) : null;\n return renderTNodeJSX('footer', {\n defaultNode,\n params: {\n type: props.listType,\n },\n });\n };\n\n return () => (\n
    \n
    \n
    \n {props.checkAll && (\n \n )}\n \n {t(globalConfig.value.title, {\n checked: props.checkedValue.length,\n total: totalCount.value,\n })}\n \n
    \n {renderTitle()}\n
    \n \n {props.search && (\n \n )}\n {curPageData.value.length > 0 ? renderContent() : renderEmpty()}\n
    \n {props.pagination && pageSize.value > 0 && pageTotal.value > 0 && (\n
    \n \n
    \n )}\n {renderFooter()}\n \n );\n },\n});\n","import { ref, ComputedRef, Ref } from 'vue';\nimport type { TransferValue } from '../type';\nimport type { TransferItemOption } from '../types';\nexport default function useDragSort(\n currentValue: Ref>,\n curPageData: ComputedRef,\n handleDataChange: (data: Array, movedValue: Array) => void,\n) {\n const draggingIndex = ref(null);\n const dragoverIndex = ref(null);\n const dragoverPos = ref(null);\n\n const onDragStart = (e: DragEvent) => {\n const index = Number((e.target as HTMLElement).dataset.index);\n draggingIndex.value = index;\n };\n\n const onDragOver = (e: DragEvent) => {\n e.preventDefault();\n if (e.currentTarget) {\n const currentElement = e.currentTarget as HTMLElement;\n const index = Number(currentElement.dataset.index);\n const elemHeight = currentElement.offsetHeight;\n const dragY = e.clientY - currentElement.getBoundingClientRect().top;\n const insertAreaPercent = 0.3;\n const insertAreaHeight = elemHeight * insertAreaPercent;\n\n dragoverIndex.value = index;\n\n if (dragoverIndex.value === draggingIndex.value) {\n dragoverPos.value = '';\n return;\n }\n if (dragY < insertAreaHeight) {\n dragoverPos.value = 'top';\n } else if (dragY > elemHeight - insertAreaHeight) {\n dragoverPos.value = 'bottom';\n } else {\n dragoverPos.value = 'center';\n }\n }\n };\n\n const onDragLeave = () => {\n dragoverPos.value = '';\n dragoverIndex.value = null;\n };\n\n const onDragEnd = () => {\n draggingIndex.value = null;\n dragoverIndex.value = null;\n dragoverPos.value = '';\n };\n\n const onDrop = (e: DragEvent) => {\n e.preventDefault();\n const currentDraggingIndex = draggingIndex.value;\n const currentDragoverIndex = dragoverIndex.value;\n\n draggingIndex.value = null;\n dragoverIndex.value = null;\n dragoverPos.value = '';\n if (currentDraggingIndex === currentDragoverIndex) {\n return;\n }\n\n const newData = [...currentValue.value];\n\n const sourceItem = curPageData.value[currentDraggingIndex].value;\n const targetItem = curPageData.value[currentDragoverIndex].value;\n const sourceIndex = newData.indexOf(sourceItem);\n let targetIndex = newData.indexOf(targetItem);\n\n newData.splice(sourceIndex, 1);\n\n if (dragoverPos.value === 'bottom') {\n targetIndex += 1;\n }\n newData.splice(targetIndex, 0, sourceItem);\n handleDataChange?.(newData, [sourceItem, targetItem]);\n };\n\n return {\n onDragStart,\n onDragEnd,\n onDrop,\n onDragOver,\n onDragLeave,\n };\n}\n","import arrayFilter from './_arrayFilter.js';\nimport baseFilter from './_baseFilter.js';\nimport baseIteratee from './_baseIteratee.js';\nimport isArray from './isArray.js';\n\n/**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\nfunction filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, baseIteratee(predicate, 3));\n}\n\nexport default filter;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTransferProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 用于控制复选框属性 */\n checkboxProps: {\n type: Object as PropType,\n },\n /** 数据列表选中项 */\n checked: {\n type: Array as PropType,\n default: undefined as TdTransferProps['checked'],\n },\n /** 数据列表选中项,非受控属性 */\n defaultChecked: {\n type: Array as PropType,\n default: (): TdTransferProps['defaultChecked'] => [],\n },\n /** 全量数据 */\n data: {\n type: Array as PropType,\n default: (): TdTransferProps['data'] => [],\n },\n /** 穿梭框可操作方向 */\n direction: {\n type: String as PropType,\n default: 'both' as TdTransferProps['direction'],\n validator(val: TdTransferProps['direction']): boolean {\n if (!val) return true;\n return ['left', 'right', 'both'].includes(val);\n },\n },\n /** 禁用全部操作:搜索、选中、移动、分页等。[源列表, 目标列表],示例:[true, false] 或者 true */\n disabled: {\n type: [Boolean, Array] as PropType,\n default: undefined,\n },\n /** 列表为空时呈现的内容。值类型为数组,则表示分别控制源列表和目标列表数据为空的呈现内容 */\n empty: {\n type: [String, Array, Function] as PropType,\n default: '' as TdTransferProps['empty'],\n },\n /** 穿梭框底部内容 */\n footer: {\n type: [Array, Function] as PropType,\n },\n /** 用来定义 value / label / disabled 在 `data` 中对应的字段别名,示例:`{ label: 'text', value: 'id' }`,表示选项文本取 `text` 字段,选项值取 `id` 字段 */\n keys: {\n type: Object as PropType,\n },\n /** 方向操作按钮。默认显示组件内置操作图标。自定义操作图标示例:['向左', '向右'] 或者 `[() => , () => ]` 或者 `(h, direction) => direction === 'left' ? '《' : '》'` */\n operation: {\n type: [Array, Function] as PropType,\n },\n /** 分页配置,值为空则不显示。具体 API 参考分页组件。值类型为数组,表示可分别控制源列表和目标列表分页组件 */\n pagination: {\n type: [Object, Array] as PropType,\n },\n /** 搜索框配置,值为 false 表示不显示搜索框;值为 true 表示显示默认搜索框;值类型为对象,用于透传 Props 到 Input 组件;值类型为数组,则分别表示控制两侧搜索框 */\n search: {\n type: [Boolean, Object, Array] as PropType,\n default: false,\n },\n /** 是否显示全选,值类型为数组则表示分别控制源列表和目标列表 */\n showCheckAll: {\n type: [Boolean, Array] as PropType,\n default: true as TdTransferProps['showCheckAll'],\n },\n /** 是否允许通过拖拽对目标列表进行排序 */\n targetDraggable: Boolean,\n /** 目标数据列表排列顺序 */\n targetSort: {\n type: String as PropType,\n default: 'original' as TdTransferProps['targetSort'],\n validator(val: TdTransferProps['targetSort']): boolean {\n if (!val) return true;\n return ['original', 'push', 'unshift'].includes(val);\n },\n },\n /** 穿梭框标题,示例:['源列表', '目标列表'] 或者 `[() => 'A', () => 'B']` 或者 `({ type }) => type === 'source' ? '源' : '目标'` */\n title: {\n type: [Array, Function] as PropType,\n default: (): TdTransferProps['title'] => [] as TdTransferProps['title'],\n },\n /** 自定义渲染节点 */\n transferItem: {\n type: Function as PropType,\n },\n /** 目标数据列表数据 */\n value: {\n type: Array as PropType,\n default: undefined as TdTransferProps['value'],\n },\n modelValue: {\n type: Array as PropType,\n default: undefined as TdTransferProps['value'],\n },\n /** 目标数据列表数据,非受控属性 */\n defaultValue: {\n type: Array as PropType,\n default: (): TdTransferProps['defaultValue'] => [],\n },\n /** 数据列表发生变化时触发,`type` 值为 `source`,表示源列表移动到目标列表,值为 `target` 表示目标列表移动到源列表,movedValue 则表示被移动的选项 */\n onChange: Function as PropType,\n /** 源数据列表或目标数据列表的选中项发生变化时触发,`context.type` 可以区分触发来源是目标列表,还是源列表 */\n onCheckedChange: Function as PropType,\n /** 分页发生变化时触发 */\n onPageChange: Function as PropType,\n /** 列表滚动时触发,bottomDistance 表示元素滚动到底部的距离 */\n onScroll: Function as PropType,\n /** 搜索时触发,options.query 表示用户输入的内容 */\n onSearch: Function as PropType,\n};\n","import { defineComponent, createElementVNode, PropType, h } from 'vue';\nimport { ChevronRightIcon as TdChevronRightIcon, ChevronLeftIcon as TdChevronLeftIcon } from 'tdesign-icons-vue-next';\n\nimport Button from '../../button';\nimport { TNode } from '../../common';\nimport { useGlobalIcon, usePrefixClass } from '@tdesign/shared-hooks';\n\nimport props from '../props';\nimport { isArray, isString, isFunction } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TTransferOperations',\n props: {\n // 控制左按钮的禁用与否\n leftDisabled: {\n type: Boolean as PropType,\n required: true,\n },\n // 控制右按钮的禁用与否\n rightDisabled: {\n type: Boolean as PropType,\n required: true,\n },\n operation: props.operation,\n },\n emits: ['moveToRight', 'moveToLeft'],\n setup(props, { slots, emit }) {\n const classPrefix = usePrefixClass();\n const { ChevronRightIcon, ChevronLeftIcon } = useGlobalIcon({\n ChevronRightIcon: TdChevronRightIcon,\n ChevronLeftIcon: TdChevronLeftIcon,\n });\n const moveToRight = () => {\n emit('moveToRight');\n };\n const moveToLeft = () => {\n emit('moveToLeft');\n };\n const getIconRight = () => {\n return ;\n };\n const getIconLeft = () => {\n return ;\n };\n const getIcon = (direction: 'left' | 'right') => {\n if (isFunction(props.operation)) {\n return null;\n }\n if (direction === 'right' && props.operation && isFunction(props.operation[0])) {\n return null;\n }\n if (direction === 'left' && props.operation && isFunction(props.operation[1])) {\n return null;\n }\n\n if (slots.operation) {\n return null;\n }\n\n return direction === 'left' ? getIconLeft : getIconRight;\n };\n // right:去右边,left:去左边\n const renderButton = (h: typeof createElementVNode, direction: 'left' | 'right') => {\n if (isFunction(slots.operation)) {\n return slots.operation({\n direction,\n });\n }\n if (isFunction(props.operation)) {\n const renderContent = props.operation;\n return renderContent(h as any, { direction });\n }\n let renderContent: string | TNode;\n if (isArray(props.operation)) {\n const [left, right] = props.operation;\n renderContent = direction === 'right' ? right : left;\n } else {\n renderContent = '';\n }\n return renderContent;\n };\n\n return () => (\n
    \n \n {slots.operation || (isArray(props.operation) && props.operation[1]) ? renderButton(h, 'right') : null}\n \n \n {slots.operation || (isArray(props.operation) && props.operation[0]) ? renderButton(h, 'left') : null}\n \n
    \n );\n },\n});\n","import { defineComponent, computed, toRefs } from 'vue';\nimport { pick, isFunction } from 'lodash-es';\n\nimport TransferList from './components/transfer-list';\nimport TransferOperations from './components/transfer-operations';\nimport { TransferListType, CheckedOptions, TransferValue, EmptyType, TargetParams, SearchEvent } from './types';\n\nimport {\n getTransferListOption,\n getDataValues,\n getTransferData,\n filterTransferData,\n TRANSFER_NAME,\n SOURCE,\n TARGET,\n} from './utils';\nimport { PageInfo, TdPaginationProps } from '../pagination/type';\nimport props from './props';\nimport { TNode } from '../common';\n\n// hooks\nimport { useVModel, useDisabled, usePrefixClass, useDefaultValue } from '@tdesign/shared-hooks';\n\nexport default defineComponent({\n name: TRANSFER_NAME,\n props,\n\n setup(props, { slots }) {\n const disabled = useDisabled();\n const classPrefix = usePrefixClass();\n const { value, modelValue, checked } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n // @ts-ignore TODO\n const [innerChecked] = useDefaultValue(checked, props.defaultChecked, props.onCheckedChange, 'checked');\n const valueList = computed(() => innerValue.value);\n\n const isTreeMode = computed(() => {\n const treeSlot = slots.tree;\n return isFunction(treeSlot);\n });\n\n const leftButtonDisabled = computed(() => props.direction === 'right');\n const rightButtonDisabled = computed(() => props.direction === 'left');\n // props 传入的 data 格式化后的数据\n const transferData = computed(() => {\n return getTransferData(props.data, props.keys, isTreeMode.value);\n });\n const sourceList = computed(() => {\n return filterTransferData(transferData.value, valueList.value as TransferValue[], false, isTreeMode.value);\n });\n const targetList = computed(() => {\n return filterTransferData(transferData.value, valueList.value as TransferValue[], true, isTreeMode.value);\n });\n // 被选中的value\n const checkedValue = computed(() => {\n return {\n [SOURCE]: getDataValues(sourceList.value, innerChecked.value, { isTreeMode: isTreeMode.value }),\n [TARGET]: getDataValues(targetList.value, innerChecked.value, { isTreeMode: isTreeMode.value }),\n };\n });\n const hasFooter = computed(() => {\n return !!slots.footer || !!props.footer;\n });\n const showPagination = computed(() => {\n // 翻页在自定义列表无效\n return !!props.pagination && !slots.content;\n });\n const showSearch = computed(() => {\n // 翻页在自定义列表无效\n return !!props.search;\n });\n const footerOption = computed(() => {\n const footer = props.footer || '';\n return getTransferListOption(footer);\n });\n const emptyOption = computed(() => {\n return getTransferListOption(props.empty);\n });\n const searchOption = computed(() => {\n return getTransferListOption(props.search);\n });\n const checkAllOption = computed(() => {\n return getTransferListOption(props.showCheckAll);\n });\n const disabledOption = computed(() => {\n return getTransferListOption(disabled.value);\n });\n const titleOption = computed(() => {\n return getTransferListOption>(props.title);\n });\n const paginationOption = computed(() => {\n return getTransferListOption(props.pagination);\n });\n\n const handleCheckedChange = (val: Array, listType: TransferListType) => {\n const sourceChecked = listType === SOURCE ? val : checkedValue.value[SOURCE];\n const targetChecked = listType === TARGET ? val : checkedValue.value[TARGET];\n const checked = [...sourceChecked, ...targetChecked];\n const event: CheckedOptions = {\n checked,\n sourceChecked,\n targetChecked,\n type: listType,\n };\n // TODO onCheckedChange 参数有点不合理\n innerChecked.value = checked;\n props.onCheckedChange?.(event);\n };\n\n const transferTo = (toDirection: TransferListType) => {\n const oldTargetValue: Array = JSON.parse(JSON.stringify(valueList.value));\n let newTargetValue: Array;\n const selfCheckedValue = toDirection === TARGET ? checkedValue.value[SOURCE] : checkedValue.value[TARGET];\n // target->source\n if (toDirection === SOURCE) {\n newTargetValue = oldTargetValue.filter((v) => !selfCheckedValue.includes(v));\n } else if (props.targetSort === 'original') {\n // 按照原始顺序\n const remainValue = transferData.value.reduce((acc, data) => {\n if (oldTargetValue.includes(data.value) && data.disabled) {\n return acc.concat(data.value);\n }\n return acc;\n }, []);\n newTargetValue = getDataValues(transferData.value, oldTargetValue.concat(selfCheckedValue), {\n isTreeMode: isTreeMode.value,\n remainValue,\n });\n } else if (props.targetSort === 'unshift') {\n newTargetValue = selfCheckedValue.concat(oldTargetValue);\n } else {\n newTargetValue = oldTargetValue.concat(selfCheckedValue);\n }\n\n // 清空checked。与toDirection相反\n handleCheckedChange([], toDirection === SOURCE ? TARGET : SOURCE);\n\n const params: TargetParams = {\n type: toDirection,\n movedValue: selfCheckedValue,\n };\n setInnerValue(newTargetValue, params);\n };\n\n // 点击移到右边按钮触发的函数\n const transferToRight = () => {\n transferTo(TARGET);\n };\n // 点击移到左边按钮触发的函数\n const transferToLeft = () => {\n transferTo(SOURCE);\n };\n\n const handleScroll = (e: Event, listType: TransferListType) => {\n const target = e.target as HTMLElement;\n const bottomDistance = target.scrollHeight - target.scrollTop - target.clientHeight;\n const event: { e: Event; bottomDistance: number; type: TransferListType } = {\n e,\n bottomDistance,\n type: listType,\n };\n props.onScroll?.(event);\n };\n const handleSearch = (e: SearchEvent) => {\n props.onSearch?.(e);\n };\n const handlePageChange = (pageInfo: PageInfo, listType: TransferListType) => {\n props.onPageChange?.(pageInfo, { type: listType });\n };\n\n const handleDataChange = (data: Array, movedValue: Array) => {\n setInnerValue(data, {\n type: TARGET,\n movedValue,\n });\n };\n const renderTransferList = (listType: TransferListType) => {\n const scopedSlots = pick(slots, ['title', 'empty', 'footer', 'operation', 'transferItem', 'default', 'tree']);\n return (\n handleCheckedChange($event, listType)}\n onScroll={($event: any) => handleScroll($event, listType)}\n onSearch={handleSearch}\n onPageChange={($event: any) => handlePageChange($event, listType)}\n isTreeMode={isTreeMode.value}\n onDataChange={handleDataChange}\n currentValue={valueList.value}\n draggable={props.targetDraggable && listType === TARGET}\n >\n {scopedSlots}\n \n );\n };\n\n return () => (\n \n {renderTransferList(SOURCE)}\n \n {renderTransferList(TARGET)}\n \n );\n },\n});\n","import _Transfer from './transfer';\nimport { withInstall } from '@tdesign/shared-utils';\nimport { TdTransferProps } from './type';\n\nimport './style';\n\nexport type TransferProps = TdTransferProps;\n\nexport const Transfer = withInstall(_Transfer);\n\nexport default Transfer;\n","import { computed, defineComponent, ref, toRefs, watch } from 'vue';\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { TimeIcon as TdTimeIcon } from 'tdesign-icons-vue-next';\n\nimport TimePickerPanel from './panel/time-picker-panel';\nimport TSelectInput, { SelectInputBlurContext } from '../select-input';\nimport { formatInputValue, validateInputValue } from '@tdesign/common-js/time-picker/utils';\nimport {\n useVModel,\n useConfig,\n useTNodeJSX,\n useDisabled,\n useReadonly,\n useGlobalIcon,\n usePrefixClass,\n useCommonClassName,\n} from '@tdesign/shared-hooks';\nimport type { InputProps } from '../input';\n\nimport props from './props';\n\n// hooks\n\nimport { TdTimePickerProps } from './type';\n\ndayjs.extend(customParseFormat);\n\nexport default defineComponent({\n name: 'TTimePicker',\n props,\n setup(props) {\n const renderTNodeJSX = useTNodeJSX();\n const { globalConfig } = useConfig('timePicker');\n const COMPONENT_NAME = usePrefixClass('time-picker');\n const { STATUS } = useCommonClassName();\n const { TimeIcon } = useGlobalIcon({ TimeIcon: TdTimeIcon });\n\n const currentValue = ref('');\n const isShowPanel = ref(false);\n const isReadonly = useReadonly();\n\n const { value, modelValue } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n const disabled = useDisabled();\n const { allowInput, format } = toRefs(props);\n\n const inputClasses = computed(() => [\n `${COMPONENT_NAME.value}__group`,\n {\n [STATUS.value.focused]: isShowPanel.value,\n },\n ]);\n\n const handleShowPopup = (visible: boolean, context: { e: MouseEvent }) => {\n isShowPanel.value = visible;\n visible ? props.onOpen?.(context) : props.onClose?.(context); // trigger on-open and on-close\n };\n\n const handleClear = (context: { e: MouseEvent }) => {\n const { e } = context;\n e.stopPropagation();\n currentValue.value = null;\n setInnerValue(null);\n props?.onClear?.(context);\n };\n\n const handleInputChange = (value: string) => {\n currentValue.value = value;\n };\n\n const handleInputBlur = (value: string, context: SelectInputBlurContext) => {\n if (allowInput.value) {\n const isValidTime = validateInputValue(currentValue.value, format.value);\n if (isValidTime) {\n setInnerValue(formatInputValue(currentValue.value, format.value));\n }\n }\n props.onBlur?.({ value, inputValue: context.inputValue, e: context.e });\n };\n\n const handleClickConfirm = (e: MouseEvent) => {\n props?.onConfirm?.({ e });\n const isValidTime = validateInputValue(currentValue.value, format.value);\n if (isValidTime) setInnerValue(currentValue.value);\n isShowPanel.value = false;\n };\n\n const handlePanelChange = (v: string, e: MouseEvent) => {\n currentValue.value = v;\n props.onPick?.(v, { e });\n };\n\n const valueDisplayParams = computed(() => {\n return {\n value: isShowPanel.value ? currentValue.value : innerValue.value ?? undefined,\n };\n });\n\n watch(\n () => isShowPanel.value,\n () => {\n currentValue.value = isShowPanel.value ? innerValue.value ?? '' : '';\n },\n );\n\n return () => (\n
    \n }\n popupVisible={!isReadonly.value && isShowPanel.value}\n onInputChange={handleInputChange}\n onBlur={handleInputBlur}\n onPopupVisibleChange={handleShowPopup}\n placeholder={!innerValue.value ? props.placeholder || globalConfig.value.placeholder : undefined}\n value={isShowPanel.value ? currentValue.value : innerValue.value ?? undefined}\n inputValue={isShowPanel.value ? currentValue.value : innerValue.value ?? undefined}\n inputProps={{ ...(props.inputProps as InputProps), size: props.size }}\n popupProps={{ overlayInnerStyle: { width: 'auto', padding: 0 }, ...(props.popupProps as object) }}\n status={props.status}\n tips={props.tips}\n valueDisplay={() => renderTNodeJSX('valueDisplay', { params: valueDisplayParams.value })}\n {...(props.selectInputProps as TdTimePickerProps['selectInputProps'])}\n panel={() => (\n \n )}\n />\n
    \n );\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTimeRangePickerProps } from '../time-picker/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否允许直接输入时间 */\n allowInput: Boolean,\n /** 是否自动调换左右区间的顺序,默认为 true;若需要支持跨天的场景,可以设置为 false */\n autoSwap: {\n type: Boolean,\n default: true,\n },\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否允许清除选中值 */\n clearable: Boolean,\n /** 禁用时间项 */\n disableTime: {\n type: Function as PropType,\n },\n /** 是否禁用组件,值为数组表示可分别控制开始日期和结束日期是否禁用 */\n disabled: {\n type: [Boolean, Array] as PropType,\n default: undefined as TdTimeRangePickerProps['disabled'],\n },\n /** 用于格式化时间,[详细文档](https://day.js.org/docs/en/display/format) */\n format: {\n type: String,\n default: 'HH:mm:ss',\n },\n /** 是否隐藏禁用状态的时间项 */\n hideDisabledTime: {\n type: Boolean,\n default: true,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 占位符,值为数组表示可分别为开始日期和结束日期设置占位符 */\n placeholder: {\n type: [String, Array] as PropType,\n default: undefined as TdTimeRangePickerProps['placeholder'],\n },\n /** 透传 Popup 组件全部属性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 预设快捷时间范围选择,示例:{ '下午': ['13:00:00', '18:00:00'] } */\n presets: {\n type: Object as PropType,\n },\n /** 透传给范围输入框 RangeInput 组件的参数 */\n rangeInputProps: {\n type: Object as PropType,\n },\n /** 只读状态,优先级大于 `allowInput` */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdTimeRangePickerProps['size'],\n validator(val: TdTimeRangePickerProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdTimeRangePickerProps['status'],\n validator(val: TdTimeRangePickerProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 时间间隔步数,数组排列 [小时, 分钟, 秒],示例:[2, 1, 1] 或者 ['2', '1', '1'] */\n steps: {\n type: Array as PropType,\n default: (): TdTimeRangePickerProps['steps'] => [1, 1, 1],\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 选中值 */\n value: {\n type: Array as PropType,\n default: undefined as TdTimeRangePickerProps['value'],\n },\n modelValue: {\n type: Array as PropType,\n default: undefined as TdTimeRangePickerProps['value'],\n },\n /** 选中值,非受控属性 */\n defaultValue: {\n type: Array as PropType,\n },\n /** 当输入框失去焦点时触发 */\n onBlur: Function as PropType,\n /** 选中值发生变化时触发 */\n onChange: Function as PropType,\n /** 范围输入框获得焦点时触发 */\n onFocus: Function as PropType,\n /** 当输入框内容发生变化时触发,参数 input 表示输入内容,value 表示组件当前有效值 */\n onInput: Function as PropType,\n /** 面板选中值后触发 */\n onPick: Function as PropType,\n};\n","import { defineComponent, ref, toRefs, watch, computed } from 'vue';\nimport dayjs from 'dayjs';\nimport { isArray } from 'lodash-es';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { TimeIcon as TdTimeIcon } from 'tdesign-icons-vue-next';\n\nimport { RangeInputPopup, RangeInputPosition } from '../range-input';\nimport TimePickerPanel from './panel/time-picker-panel';\n\nimport { TIME_PICKER_EMPTY } from '@tdesign/common-js/time-picker/const';\nimport { formatInputValue, validateInputValue } from '@tdesign/common-js/time-picker/utils';\n\n// interfaces\nimport props from './time-range-picker-props';\nimport { TimeRangeValue } from './types';\nimport { TimeRangePickerPartial } from './type';\n// hooks\nimport {\n useVModel,\n useConfig,\n useDisabled,\n useReadonly,\n useGlobalIcon,\n usePrefixClass,\n useCommonClassName,\n} from '@tdesign/shared-hooks';\n\ndayjs.extend(customParseFormat);\n\nexport default defineComponent({\n name: 'TTimeRangePicker',\n props: { ...props, rangeInputProps: Object, popupProps: Object },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('time-range-picker');\n const { globalConfig } = useConfig('timePicker');\n const { STATUS } = useCommonClassName();\n const { TimeIcon } = useGlobalIcon({ TimeIcon: TdTimeIcon });\n\n const disabled = useDisabled();\n const currentPanelIdx = ref(undefined);\n const currentValue = ref>(TIME_PICKER_EMPTY);\n const isShowPanel = ref(false);\n const isReadOnly = useReadonly();\n\n const inputClasses = computed(() => [\n `${COMPONENT_NAME.value}__group`,\n {\n [STATUS.value.focused]: isShowPanel.value,\n },\n ]);\n const { value, modelValue, allowInput, format } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange as any);\n\n const handleShowPopup = (visible: boolean, context: any) => {\n if (isReadOnly.value) return;\n // 输入框点击不关闭面板\n if (context.trigger === 'trigger-element-click') {\n isShowPanel.value = true;\n return;\n }\n isShowPanel.value = visible;\n };\n\n const handleClear = (context: { e: MouseEvent }) => {\n const { e } = context;\n e.stopPropagation();\n currentValue.value = TIME_PICKER_EMPTY;\n setInnerValue(null);\n };\n\n const handleClick = ({ position }: { position: 'first' | 'second' }) => {\n currentPanelIdx.value = position === 'first' ? 0 : 1;\n };\n\n const handleTimeChange = (newValue: string | string[], e: MouseEvent) => {\n if (isArray(newValue)) {\n currentValue.value = newValue;\n } else if (currentPanelIdx.value === 0) {\n currentValue.value = [newValue, currentValue.value[1] ?? newValue];\n } else {\n currentValue.value = [currentValue.value[0] ?? newValue, newValue];\n }\n handleOnPick(newValue, e);\n };\n\n const handleInputBlur = (value: TimeRangeValue, { e }: { e: FocusEvent }) => {\n if (allowInput.value) {\n const isValidTime = validateInputValue(currentValue.value[currentPanelIdx.value], format.value);\n if (isValidTime) {\n const formattedVal = formatInputValue(currentValue.value[currentPanelIdx.value], format.value);\n currentPanelIdx.value === 0\n ? (currentValue.value = [formattedVal, currentValue.value[1] ?? formattedVal])\n : (currentValue.value = [currentValue.value[0] ?? formattedVal, formattedVal]);\n } else {\n const previousValue = innerValue.value ?? TIME_PICKER_EMPTY;\n currentPanelIdx.value === 0\n ? (currentValue.value = [previousValue[0] ?? TIME_PICKER_EMPTY[0], currentValue.value[1]])\n : (currentValue.value = [currentValue.value[0], previousValue[1] ?? TIME_PICKER_EMPTY[1]]);\n }\n }\n props.onBlur?.({ value, e });\n };\n\n const handleInputChange = (\n inputVal: TimeRangeValue,\n { e, position }: { e: InputEvent; position: RangeInputPosition },\n ) => {\n currentValue.value = inputVal;\n props.onInput?.({ value: innerValue.value, e, position: position === 'first' ? 'start' : 'end' });\n };\n\n const handleClickConfirm = () => {\n const isValidTime = !currentValue.value.find((v) => !validateInputValue(v, format.value));\n if (isValidTime) setInnerValue(currentValue.value);\n if (props.autoSwap) autoSwapTime();\n isShowPanel.value = false;\n };\n\n const handleFocus = (value: TimeRangeValue, { e, position }: { e: FocusEvent; position: RangeInputPosition }) => {\n props.onFocus?.({ value, e, position: position === 'first' ? 'start' : 'end' });\n };\n\n const autoSwapTime = () => {\n const [startTime, endTime] = currentValue.value;\n const startDayjs = dayjs(startTime, props.format);\n const endDayjs = dayjs(endTime, props.format);\n\n if (startDayjs.isAfter(endDayjs, 'second')) {\n setInnerValue([currentValue.value[1], currentValue.value[0]]);\n } else {\n setInnerValue([currentValue.value[0], currentValue.value[1]]);\n }\n };\n\n const handleOnPick = (pickValue: string | string[], e: MouseEvent) => {\n let pickedRangeValue = [];\n let context;\n if (isArray(pickValue)) {\n pickedRangeValue = pickValue;\n context = { e };\n } else if (currentPanelIdx.value === 0) {\n pickedRangeValue = [pickValue, currentValue.value[1] ?? pickValue];\n context = { e, position: 'start' as TimeRangePickerPartial };\n } else {\n pickedRangeValue = [currentValue.value[0] ?? pickValue, pickValue];\n context = { e, position: 'end' as TimeRangePickerPartial };\n }\n props.onPick?.(pickedRangeValue, context);\n };\n\n watch(\n () => isShowPanel.value,\n () => {\n currentValue.value = isShowPanel.value ? innerValue.value ?? TIME_PICKER_EMPTY : TIME_PICKER_EMPTY;\n if (!isShowPanel.value) currentPanelIdx.value = undefined;\n },\n );\n\n return () => (\n
    \n ,\n onClear: handleClear,\n onClick: handleClick,\n onFocus: handleFocus,\n onBlur: handleInputBlur,\n readonly: isReadOnly.value || !allowInput.value,\n activeIndex: currentPanelIdx.value,\n ...props.rangeInputProps,\n }}\n label={props.label}\n status={props.status}\n tips={props.tips}\n panel={() => (\n \n )}\n />\n
    \n );\n },\n});\n","import _TimePicker from './time-picker';\nimport _TimeRangePicker from './time-range-picker';\nimport _TimePickerPanel from './panel/time-picker-panel';\nimport { TdTimePickerProps, TdTimeRangePickerProps } from './type';\n\nimport { withInstall } from '@tdesign/shared-utils';\n\nimport './style';\n\nexport * from './type';\nexport type TimePickerProps = TdTimePickerProps;\nexport type TimeRangePickerProps = TdTimeRangePickerProps;\nexport type TimePickerPanelProps = TdTimePickerProps;\n\nexport const TimePicker = withInstall(_TimePicker);\nexport const TimeRangePicker = withInstall(_TimeRangePicker);\nexport const TimePickerPanel = withInstall(_TimePickerPanel);\n\nexport default TimePicker;\n","// 在这个文件,解决 vue2/vue3 tree 组件依赖的差异问题\n// 除此文件之外的其他组件文件,可从 vue2 项目直接复制到 vue3 项目进行维护\nimport * as Vue from 'vue';\nimport { Ref, SetupContext, ToRefs, VNode, PropType, ComponentPublicInstance, UnwrapNestedRefs } from 'vue';\nimport { CheckboxProps } from '../../checkbox';\nimport { ClassName, TScroll, Styles, TNode, TreeOptionData, TNodeReturnValue } from '../../common';\nimport { TypeTreeEventState as TreeEventState } from '@tdesign/common-js/tree/types';\nimport { TdTreeProps, TreeInstanceFunctions } from '../type';\nimport {\n VirtualScrollConfig,\n useVModel as tdUseVModel,\n useDefaultValue as tdUseDefaultValue,\n} from '@tdesign/shared-hooks';\nimport { withInstall as tdWithInstall } from '@tdesign/shared-utils';\n\nimport { TreeStore } from '@tdesign/common-js/tree/tree-store';\n\nexport { ref, reactive, computed, watch, onMounted, toRefs, defineComponent, TransitionGroup } from 'vue';\nexport { CaretRightSmallIcon as TdCaretRightSmallIcon } from 'tdesign-icons-vue-next';\nexport { Checkbox as TCheckBox } from '../../checkbox';\nexport { Loading as TLoading } from '../../loading';\nexport { useConfig, usePrefixClass } from '@tdesign/shared-hooks';\nexport { useGlobalIcon } from '@tdesign/shared-hooks';\nexport { useLazyLoad } from '@tdesign/shared-hooks';\nexport { useVirtualScrollNew } from '@tdesign/shared-hooks';\nexport { TreeNode, privateKey } from '@tdesign/common-js/tree/tree-node';\nexport type TypeVModel = ReturnType;\n\nexport type TypeRef = Ref;\nexport type TypeSetupContext = SetupContext;\nexport type TypeCreateElement = typeof Vue.h;\nexport type TypeVNode = VNode;\nexport type TypePropType = PropType;\nexport type TypeCheckboxProps = CheckboxProps;\nexport type TypeClassName = ClassName;\nexport type TypeScroll = TScroll;\nexport type TypeStyles = Styles;\nexport type TypeTNode = TNode;\nexport type TypeTNodeReturnValue = TNodeReturnValue;\nexport type TypeTreeOptionData = TreeOptionData;\nexport type TypeTreeEventState = TreeEventState;\nexport type TypeVirtualScrollConfig = VirtualScrollConfig;\nexport type TypeToRefs = ToRefs;\nexport type TypeUnwrapNestedRefs = UnwrapNestedRefs;\nexport interface TypeTreeInstance extends ComponentPublicInstance, TreeInstanceFunctions {}\n\nexport type TreeProps = TdTreeProps & {\n treeStore?: TreeStore;\n};\n\nexport interface TypeOnDrag {\n default?: unknown;\n}\n\nconst onDrag: TypeOnDrag = {\n default: undefined,\n};\n\nexport const isVueNext = true;\n\nexport const TreeItemDefinition = {\n name: 'TTreeNode',\n inject: {\n onDrag,\n },\n};\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function useRipple(el: unknown) {}\n\nexport function withInstall(construct: T) {\n return tdWithInstall(construct);\n}\n\nexport interface UseVModelParams {\n value: Ref;\n eventName?: string;\n propName?: string;\n}\n\nexport function getCreateElement(h?: TypeCreateElement) {\n if (h) {\n // do nothing, just for adapt\n }\n return Vue.h;\n}\n\nexport function getScopedSlots(instance: ComponentPublicInstance) {\n return instance.$slots;\n}\n\nexport function useVModel(\n props: TreeProps & Record,\n refsProps: ToRefs & Record,\n propName = 'value',\n defaultPropName = 'defaultValue',\n eventPropName = 'onChange',\n eventName = 'change',\n) {\n if (eventName) {\n // do nothing,just for adapt\n }\n const { modelValue } = refsProps;\n let vm;\n if (propName === 'value') {\n vm = tdUseVModel(refsProps[propName], modelValue, props[defaultPropName], props[eventPropName], propName);\n } else {\n vm = tdUseDefaultValue(refsProps[propName], props[defaultPropName], props[eventPropName], propName);\n }\n return vm;\n}\n","import { throttle } from 'lodash-es';\nimport { reactive } from '../utils/adapt';\nimport { TypeTreeItemState } from '../types';\n\nexport interface TypeDragStates {\n isDragOver: boolean;\n isDragging: boolean;\n dropPosition: number;\n}\n\nexport enum DragPosition {\n Before = -1,\n Inside = 0,\n After = 1,\n}\n\ntype TypeDrag = 'dragStart' | 'dragOver' | 'dragLeave' | 'dragEnd' | 'drop';\n\nexport default function useDraggable(state: TypeTreeItemState) {\n const { treeItemRef } = state;\n const dragStates = reactive({\n isDragOver: false,\n isDragging: false,\n dropPosition: DragPosition.Inside,\n });\n\n const updateDropPosition = (dragEvent: DragEvent) => {\n const rootNode = treeItemRef.value;\n if (!rootNode) return;\n\n const rect = rootNode?.getBoundingClientRect?.();\n const offsetY = window.scrollY + rect.top;\n const { pageY } = dragEvent;\n const gapHeight = rect.height / 4;\n const diff = pageY - offsetY;\n\n if (diff < gapHeight) {\n dragStates.dropPosition = DragPosition.Before;\n } else if (diff < rect.height - gapHeight) {\n dragStates.dropPosition = DragPosition.Inside;\n } else {\n dragStates.dropPosition = DragPosition.After;\n }\n };\n\n const setDragStatus = (status: TypeDrag, dragEvent: DragEvent) => {\n const { node, treeScope } = state;\n const { drag } = treeScope;\n if (!drag) return;\n\n switch (status) {\n case 'dragStart':\n dragStates.isDragging = true;\n dragStates.dropPosition = DragPosition.Inside;\n drag.handleDragStart?.({ node, dragEvent });\n break;\n case 'dragEnd':\n dragStates.isDragging = false;\n dragStates.isDragOver = false;\n dragStates.dropPosition = DragPosition.Inside;\n throttleUpdateDropPosition.cancel();\n drag.handleDragEnd?.({ node, dragEvent });\n break;\n case 'dragOver':\n dragStates.isDragOver = true;\n throttleUpdateDropPosition(dragEvent);\n drag.handleDragOver?.({ node, dragEvent });\n break;\n case 'dragLeave':\n dragStates.isDragOver = false;\n dragStates.dropPosition = DragPosition.Inside;\n throttleUpdateDropPosition.cancel();\n drag.handleDragLeave?.({ node, dragEvent });\n break;\n case 'drop':\n drag.handleDrop?.({ node, dropPosition: dragStates.dropPosition, dragEvent });\n dragStates.isDragOver = false;\n throttleUpdateDropPosition.cancel();\n break;\n default:\n break;\n }\n };\n\n const handleDragStart = (evt: DragEvent) => {\n const { node } = state;\n if (!node.isDraggable()) return;\n evt.stopPropagation();\n setDragStatus('dragStart', evt);\n\n try {\n // ie throw error firefox-need-it\n evt.dataTransfer?.setData('text/plain', '');\n } catch (e) {\n // empty\n }\n };\n\n const handleDragEnd = (evt: DragEvent) => {\n const { node } = state;\n if (!node.isDraggable()) return;\n evt.stopPropagation();\n setDragStatus('dragEnd', evt);\n };\n\n const handleDragOver = (evt: DragEvent) => {\n const { node } = state;\n if (!node.isDraggable()) return;\n evt.stopPropagation();\n evt.preventDefault();\n setDragStatus('dragOver', evt);\n };\n\n const handleDragLeave = (evt: DragEvent) => {\n const { node } = state;\n if (!node.isDraggable()) return;\n evt.stopPropagation();\n setDragStatus('dragLeave', evt);\n };\n\n const handleDrop = (evt: DragEvent) => {\n const { node } = state;\n if (!node.isDraggable()) return;\n evt.stopPropagation();\n evt.preventDefault();\n setDragStatus('drop', evt);\n };\n\n const throttleUpdateDropPosition = throttle((dragEvent: DragEvent) => {\n updateDropPosition(dragEvent);\n });\n\n return {\n dragStates,\n handleDragStart,\n handleDragEnd,\n handleDragOver,\n handleDragLeave,\n handleDrop,\n };\n}\n","import { camelCase } from 'lodash-es';\nimport { TypeVNode, TypeSetupContext, isVueNext } from './adapt';\nimport {\n TreeProps,\n TypeTreeStore,\n TypeTreeNode,\n TypeMark,\n TypeLineModel,\n TypeTNodeProp,\n TypeGetTNodeOption,\n TypeTargetNode,\n} from '../types';\n\nexport function emitEvent(\n props: TreeProps & Record,\n context: TypeSetupContext,\n evtName: string,\n ...args: T\n) {\n const apiName = camelCase(`on-${evtName}`);\n evtName.replace(/^on/, '').toLowerCase();\n if (typeof props[apiName] === 'function') {\n props[apiName](...args);\n }\n if (!isVueNext) {\n // vue3 调用 props.onClick 时就已经派发了事件了\n context.emit(evtName, ...args);\n }\n}\n\nexport function getParentsToRoot(element?: HTMLElement, root?: HTMLElement): HTMLElement[] {\n const list = [];\n let el: HTMLElement = element;\n while (el && el.parentNode) {\n list.push(el);\n if (el === root) {\n break;\n }\n el = el.parentNode as HTMLElement;\n }\n return list;\n}\n\nexport function getParentMarks(name: string, element?: HTMLElement, root?: HTMLElement): TypeMark[] {\n const list = getParentsToRoot(element, root);\n return list\n .map((el) => {\n const mark: TypeMark = {\n name,\n value: el?.getAttribute(name) || '',\n el,\n };\n return mark;\n })\n .filter((mark) => mark.value);\n}\n\nexport function getMark(name: string, element?: HTMLElement, root?: HTMLElement): TypeMark {\n const list = getParentMarks(name, element, root);\n const info = list.pop() || null;\n return info;\n}\n\nexport function pathMatchClass(name: string, element?: HTMLElement, root?: HTMLElement): boolean {\n const list = getParentsToRoot(element, root);\n const rs = list.some((el) => el.classList.contains(name));\n return rs;\n}\n\nexport function getTNode(prop: TypeTNodeProp, options: TypeGetTNodeOption): string | TypeVNode {\n let tnode = null;\n let item = null;\n const conf = {\n ...options,\n };\n if (typeof prop === 'function') {\n item = prop(conf.createElement, conf.node?.getModel());\n } else if (typeof prop === 'string') {\n item = prop;\n }\n if (typeof item === 'string') {\n tnode = item;\n } else if (item) {\n tnode = item as TypeVNode;\n }\n return tnode;\n}\n\n// 获取一个节点层级位置的连线模型\nexport function getLineModel(nodes: TypeTreeNode[], node: TypeTreeNode, index: number): TypeLineModel {\n // 标记 [上,右,下,左] 是否有连线\n const lineModel: TypeLineModel = {\n top: false,\n right: false,\n bottom: false,\n left: false,\n };\n\n let nodeChildren = [];\n if (Array.isArray(node.children)) {\n nodeChildren = node.children;\n }\n const childNode = nodes[index - 1] || null;\n const nodeItemIndex = childNode ? childNode.getIndex() : 0;\n\n if (index === 0) {\n lineModel.left = !!node.parent;\n lineModel.bottom = node.children && node.expanded;\n lineModel.right = node.parent && !node.children;\n } else if (index === 1) {\n lineModel.top = true;\n lineModel.right = true;\n lineModel.bottom = nodeItemIndex < nodeChildren.length - 1;\n } else if (nodeItemIndex < nodeChildren.length - 1) {\n lineModel.top = true;\n lineModel.bottom = true;\n }\n\n return lineModel;\n}\n\nexport function isTreeNodeValue(item: unknown): boolean {\n return typeof item === 'string' || typeof item === 'number';\n}\n\nexport function getNode(store: TypeTreeStore, item: TypeTargetNode): TypeTreeNode {\n let node = null;\n let val = null;\n if (typeof item === 'string' || typeof item === 'number') {\n val = item;\n } else if (item && isTreeNodeValue(item.value)) {\n val = item.value;\n }\n node = store.getNode(val);\n return node;\n}\n","import { usePrefixClass } from '../utils/adapt';\nimport {\n TreeNodeValue,\n TypeTreeState,\n TypeTargetNode,\n TypeExpandEventContext,\n TypeActiveEventContext,\n TypeChangeEventContext,\n} from '../types';\nimport { getNode, pathMatchClass } from '../utils';\n\n// tree 组件节点状态设置\nexport default function useTreeAction(state: TypeTreeState) {\n const treeState = state;\n const { store } = treeState;\n const componentName = usePrefixClass('tree').value;\n\n const [tValue, setTValue] = state.vmValue;\n const [tActived, setTActived] = state.vmActived;\n const [tExpanded, setTExpanded] = state.vmExpanded;\n\n const setExpanded = (item: TypeTargetNode, isExpanded: boolean): TreeNodeValue[] => {\n const node = getNode(store, item);\n const mouseEvent = treeState.mouseEvent as MouseEvent;\n const evtCtx: TypeExpandEventContext = {\n node: node.getModel(),\n e: mouseEvent,\n trigger: 'setItem',\n };\n if (mouseEvent) {\n evtCtx.trigger = 'node-click';\n const target = mouseEvent.target as HTMLElement;\n const currentTarget = mouseEvent.currentTarget as HTMLElement;\n if (pathMatchClass(`${componentName}__icon`, target, currentTarget)) {\n evtCtx.trigger = 'icon-click';\n }\n }\n const expanded = node.setExpanded(isExpanded, {\n directly: true,\n });\n setTExpanded(expanded, evtCtx);\n if (evtCtx.trigger !== 'setItem') {\n store.replaceExpanded((tExpanded.value || []) as TreeNodeValue[]);\n }\n return expanded;\n };\n\n const toggleExpanded = (item: TypeTargetNode): TreeNodeValue[] => {\n const node = getNode(store, item);\n\n if (!node.children) return;\n\n return setExpanded(node, !node.isExpanded());\n };\n\n const setActived = (item: TypeTargetNode, isActived: boolean) => {\n const node = getNode(store, item);\n const mouseEvent = treeState.mouseEvent as MouseEvent;\n const evtCtx: TypeActiveEventContext = {\n node: node.getModel(),\n e: mouseEvent,\n trigger: 'setItem',\n };\n if (mouseEvent) {\n evtCtx.trigger = 'node-click';\n }\n const actived = node.setActived(isActived, {\n isAction: evtCtx.trigger === 'node-click',\n directly: true,\n });\n setTActived(actived, evtCtx);\n if (evtCtx.trigger !== 'setItem') {\n store.replaceActived((tActived.value || []) as TreeNodeValue[]);\n }\n return actived;\n };\n\n const toggleActived = (item: TypeTargetNode): TreeNodeValue[] => {\n const node = getNode(store, item);\n return setActived(node, !node.isActived());\n };\n\n const setChecked = (item: TypeTargetNode, isChecked: boolean, ctx: { e: Event }): TreeNodeValue[] => {\n const node = getNode(store, item);\n const mouseEvent = ctx?.e as MouseEvent;\n const evtCtx: TypeChangeEventContext = {\n node: node.getModel(),\n e: mouseEvent,\n trigger: 'setItem',\n };\n if (mouseEvent) {\n evtCtx.trigger = 'node-click';\n }\n const checked = node.setChecked(isChecked, {\n isAction: evtCtx.trigger === 'node-click',\n directly: true,\n });\n setTValue(checked, evtCtx);\n // 这是针对受控执行的操作,如果 props.value 未变更,则执行还原操作\n if (evtCtx.trigger !== 'setItem') {\n store.replaceChecked((tValue.value || []) as TreeNodeValue[]);\n }\n return checked;\n };\n\n const toggleChecked = (item: TypeTargetNode, ctx: { e: Event }): TreeNodeValue[] => {\n const node = getNode(store, item);\n if (node.isIndeterminate()) {\n const expectState = node.hasEnableUnCheckedChild();\n return setChecked(node, expectState, ctx);\n }\n return setChecked(node, !node.isChecked(), ctx);\n };\n\n return {\n setExpanded,\n toggleExpanded,\n setActived,\n toggleActived,\n setChecked,\n toggleChecked,\n };\n}\n","import { TypeCheckboxProps, usePrefixClass } from '../utils/adapt';\nimport { TypeEventState, TypeTreeItemState } from '../types';\n// 这里封装 tree-item 的一般事件\n// 拖动事件,虚拟滚动事件不要安排到这里\nexport default function useItemEvents(state: TypeTreeItemState) {\n const { context } = state;\n const classPrefix = usePrefixClass().value;\n\n const handleChange: TypeCheckboxProps['onChange'] = (_, ctx) => {\n const { node } = state;\n const event = new Event('change');\n const evtContext: TypeEventState = {\n event,\n node,\n };\n context.emit('change', evtContext, ctx);\n };\n\n let clicked = false;\n\n const handleClick = (evt: MouseEvent) => {\n const { node, treeScope } = state;\n const { treeProps = {} } = treeScope;\n const { expandOnClickNode } = treeProps;\n const srcTarget = evt.target as HTMLElement;\n const isBranchTrigger =\n node.children &&\n expandOnClickNode &&\n (srcTarget.className === `${classPrefix}-checkbox__input` || srcTarget.tagName.toLowerCase() === 'input');\n\n // checkbox 上也有 emit click 事件\n // 用这个逻辑避免重复的 click 事件被触发\n if (clicked || isBranchTrigger) return;\n clicked = true;\n // 为保持事件响应敏捷,立即还原 clicked 状态\n setTimeout(() => {\n clicked = false;\n });\n\n // 处理expandOnClickNode时与checkbox的选中的逻辑冲突\n if (expandOnClickNode && node.children && srcTarget.className?.indexOf?.(`${classPrefix}-tree__label`) !== -1)\n evt.preventDefault();\n\n const evtContext: TypeEventState = {\n mouseEvent: evt,\n event: evt,\n node,\n path: node.getPath(),\n };\n context.emit('click', evtContext);\n };\n\n return {\n handleChange,\n handleClick,\n };\n}\n","import { usePrefixClass, useGlobalIcon, TypeCreateElement, TLoading, TdCaretRightSmallIcon } from '../utils/adapt';\nimport { TypeTreeItemState } from '../types';\nimport { getTNode } from '../utils';\n\n// 渲染节点图标\nexport default function useRenderIcon(state: TypeTreeItemState) {\n const classPrefix = usePrefixClass().value;\n const componentName = usePrefixClass('tree').value;\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const getFolderIcon = (h: TypeCreateElement) => {\n const { CaretRightSmallIcon } = useGlobalIcon({\n CaretRightSmallIcon: TdCaretRightSmallIcon,\n });\n return ;\n };\n\n const handleMousedown = (evt: MouseEvent) => {\n // 在点击展开按钮 mousedown阶段 阻止冒泡 应用于处理如展开阻止下拉框失焦等场景\n evt.preventDefault();\n };\n\n const renderIcon = (h: TypeCreateElement) => {\n const { node, treeScope } = state;\n const { scopedSlots } = treeScope;\n const treeProps = treeScope?.treeProps || {};\n const { icon } = treeProps;\n let isDefaultIcon = false;\n\n let iconNode = null;\n if (icon === true) {\n if (scopedSlots?.icon) {\n iconNode = scopedSlots.icon({\n node: node?.getModel(),\n });\n } else if (!node.vmIsLeaf) {\n isDefaultIcon = true;\n iconNode = getFolderIcon(h);\n if (node.loading && node.expanded) {\n iconNode = ;\n }\n } else {\n iconNode = '';\n }\n } else if (icon) {\n iconNode = getTNode(icon, {\n createElement: h,\n node,\n });\n }\n\n const wrapIconNode = (\n \n {iconNode}\n \n );\n return wrapIconNode;\n };\n\n return {\n renderIcon,\n };\n}\n","import { isBoolean } from 'lodash-es';\nimport { usePrefixClass, TypeCreateElement, computed, TCheckBox, TypeVNode } from '../utils/adapt';\nimport { TypeTreeItemState } from '../types';\nimport { getTNode } from '../utils';\nimport useItemEvents from './useItemEvents';\n\n// 渲染节点文本与内容\nexport default function useRenderLabel(state: TypeTreeItemState) {\n const classPrefix = usePrefixClass().value;\n const componentName = usePrefixClass('tree').value;\n\n const { handleChange } = useItemEvents(state);\n\n const renderLabel = (h: TypeCreateElement): TypeVNode => {\n const { node, treeScope } = state;\n const { scopedSlots, treeProps = {} } = treeScope;\n const { label, expandOnClickNode } = treeProps;\n const checkProps = treeProps?.checkProps || {};\n\n let labelNode = null;\n if (label === true) {\n if (scopedSlots?.label) {\n labelNode = scopedSlots.label({\n node: node?.getModel(),\n });\n } else {\n labelNode = node.label || '';\n }\n } else {\n labelNode = getTNode(label, {\n createElement: h,\n node,\n });\n }\n\n const labelClasses = [\n `${componentName}__label`,\n {\n [`${classPrefix}-is-active`]: node.isActivable() ? node.actived : false,\n },\n ];\n\n const shouldStopLabelTrigger = computed(() => {\n const isNormalBranchNode = Array.isArray(node.children) && node.children?.length > 0;\n // 延迟加载子节点场景\n const isLazyLoadChildBranchNode = isBoolean(node.children) && node.children;\n const isBranchNode = isNormalBranchNode || isLazyLoadChildBranchNode;\n return expandOnClickNode && isBranchNode;\n });\n\n if (node.vmCheckable) {\n let checkboxDisabled = false;\n if (node.vmIsLocked && !node.vmIsRest) {\n checkboxDisabled = true;\n }\n if (node.isDisabled()) {\n checkboxDisabled = true;\n }\n const itemCheckProps = {\n ...checkProps,\n disabled: checkboxDisabled,\n };\n\n labelNode = (\n \n {labelNode}\n \n );\n } else {\n const inner = {labelNode};\n // 使用key是为了避免元素复用,从而顺利移除ripple指令\n labelNode = node.isActivable() ? (\n \n {inner}\n \n ) : (\n \n {inner}\n \n );\n }\n\n return labelNode;\n };\n\n return {\n renderLabel,\n };\n}\n","import { onMounted, reactive, TypeCreateElement, usePrefixClass, useLazyLoad, TypeVNode } from '../utils/adapt';\nimport { TypeTreeItemState } from '../types';\nimport useItemEvents from './useItemEvents';\nimport useRenderIcon from './useRenderIcon';\nimport useRenderLabel from './useRenderLabel';\nimport useRenderLine from './useRenderLine';\nimport useRenderOperations from './useRenderOperations';\nimport useDraggable from './useDraggable';\nimport { onUpdated } from 'vue';\n\nexport default function useTreeItem(state: TypeTreeItemState) {\n const { treeScope, treeItemRef } = state;\n const { virtualConfig, treeContentRef, scrollProps } = treeScope;\n const classPrefix = usePrefixClass().value;\n const componentName = usePrefixClass('tree').value;\n\n const { handleClick } = useItemEvents(state);\n const { renderIcon } = useRenderIcon(state);\n const { renderLabel } = useRenderLabel(state);\n const { renderLine } = useRenderLine(state);\n const { renderOperations } = useRenderOperations(state);\n const { dragStates, handleDragStart, handleDragEnd, handleDragOver, handleDragLeave, handleDrop } =\n useDraggable(state);\n\n const { hasLazyLoadHolder, tRowHeight } = useLazyLoad(\n treeContentRef,\n treeItemRef,\n reactive({ ...scrollProps?.value }),\n );\n\n function tryNotifyVirtualScrollRowUpdate() {\n const { node } = state;\n const isVirtual = virtualConfig?.isVirtualScroll.value;\n if (isVirtual) {\n // mounted 了,但是有可能样式没有计算完毕,此时获取的 row height 会有坑,延迟一点点再触发虚拟滚动的 mounted 回调,确保获取到正确的渲染高度\n const timer = setTimeout(() => {\n virtualConfig.handleRowMounted({\n ref: treeItemRef,\n data: node,\n });\n clearTimeout(timer);\n }, 100);\n }\n }\n\n onMounted(() => {\n tryNotifyVirtualScrollRowUpdate();\n });\n\n // 有可能因为 row-key 带来组件复用,这时候通过 update 进行更新\n onUpdated(() => {\n tryNotifyVirtualScrollRowUpdate();\n });\n\n // 节点隐藏用 class 切换,不要写在 js 中\n const getItemStyles = (): string => {\n const { node } = state;\n const { level } = node;\n // 原本想在这里计算 --hscale\n // 实际操作中发现 scrollHeight 在动画执行到一半的时候取得了错误的值\n // 导致 hscale 值获取错误\n // 暂无合适的方案,先搁置 hscale 自动计算策略\n const levelStyle = `--level: ${level};`;\n const strStyle = `${levelStyle}`;\n return strStyle;\n };\n\n const getItemClassList = () => {\n const { node } = state;\n const { isDragOver, isDragging, dropPosition } = dragStates;\n const list = [];\n list.push(`${componentName}__item`);\n list.push({\n [`${componentName}__item--open`]: node.expanded,\n [`${classPrefix}-is-active`]: node.isActivable() ? node.actived : false,\n [`${classPrefix}-is-disabled`]: node.isDisabled(),\n });\n list.push({\n [`${componentName}__item--draggable`]: node.isDraggable(),\n });\n if (node.visible) {\n list.push(`${componentName}__item--visible`);\n } else {\n list.push(`${componentName}__item--hidden`);\n }\n if (node.vmIsLocked) {\n list.push(`${componentName}__item--locked`);\n }\n if (node.vmIsRest) {\n list.push(`${componentName}__item--matched`);\n }\n // 拖拽过程样式相关classList\n list.push({\n [`${componentName}__item--dragging`]: isDragging,\n [`${componentName}__item--tip-top`]: isDragOver && dropPosition < 0,\n [`${componentName}__item--tip-bottom`]: isDragOver && dropPosition > 0,\n [`${componentName}__item--tip-highlight`]: !isDragging && isDragOver && dropPosition === 0,\n });\n return list;\n };\n\n const renderItem = (h: TypeCreateElement) => {\n const itemNodes: TypeVNode[] = [];\n // 第一步是渲染图标\n const iconNode = renderIcon(h);\n // 渲染连线排在渲染图标之后,是为了确认图标是否存在\n const lineNode = renderLine(h);\n if (lineNode) {\n itemNodes.push(lineNode);\n }\n if (iconNode) {\n itemNodes.push(iconNode);\n }\n const labelNode = renderLabel(h);\n if (labelNode) {\n itemNodes.push(labelNode);\n }\n const opNode = renderOperations(h);\n if (opNode) {\n itemNodes.push(opNode);\n }\n return itemNodes;\n };\n\n const renderItemNode = (h: TypeCreateElement) => {\n const { node, props } = state;\n if (!node) return null;\n\n const { level, value } = node;\n const styles = getItemStyles();\n const classList = getItemClassList();\n\n // 这里的代码用于 vue2 组件触发节点更新\n // 即使是新增的属性,调用 node.setData 也会触发节点更新\n const treeState = state;\n treeState.stateId = props.stateId;\n\n const itemNode = (\n handleClick(evt)}\n draggable={node.isDraggable()}\n onDragstart={(evt: DragEvent) => handleDragStart(evt)}\n onDragend={(evt: DragEvent) => handleDragEnd(evt)}\n onDragover={(evt: DragEvent) => handleDragOver(evt)}\n onDragleave={(evt: DragEvent) => handleDragLeave(evt)}\n onDrop={(evt: DragEvent) => handleDrop(evt)}\n >\n {hasLazyLoadHolder.value ? [
    ] : renderItem(h)}\n
    \n );\n return itemNode;\n };\n\n return {\n hasLazyLoadHolder,\n tRowHeight,\n renderItemNode,\n };\n}\n","import { usePrefixClass, TypeCreateElement, TreeNode, TypeVNode } from '../utils/adapt';\nimport { TypeTreeItemState } from '../types';\nimport { getTNode } from '../utils';\n\n// 渲染节点连线\nexport default function useRenderLine(state: TypeTreeItemState) {\n const componentName = usePrefixClass('tree').value;\n\n const renderLine = (h: TypeCreateElement): TypeVNode => {\n const { node, treeScope } = state;\n const { scopedSlots } = treeScope;\n const treeProps = treeScope?.treeProps || {};\n const { line } = treeProps;\n const iconVisible = !!treeProps.icon;\n\n let lineNode = null;\n if (line === true) {\n if (scopedSlots?.line) {\n lineNode = scopedSlots.line({\n node: node?.getModel(),\n });\n } else if (node.parent && node.tree) {\n const { vmIsLeaf, vmIsFirst, level } = node;\n\n const lineClasses = [];\n\n // 每个节点绘制抵达上一层级的折线\n lineClasses.push(`${componentName}__line`);\n\n // 叶子节点,折线宽度延长,因为没有 icon 呈现\n // 任意节点,icon 不呈现时也是要延长折线宽度\n if (vmIsLeaf || !iconVisible) {\n lineClasses.push(`${componentName}__line--leaf`);\n }\n\n // 分支首节点,到上一节点的折线高度要缩短,让位给 icon 呈现\n // 如果 icon 隐藏了,则不必缩短折线高度\n if (vmIsFirst && iconVisible) {\n lineClasses.push(`${componentName}__line--first`);\n }\n\n // 如果节点的父节点,不是最后的节点\n // 则需要绘制节点延长线\n const shadowStyles: string[] = [];\n const parents = node.getParents();\n parents.pop();\n parents.forEach((pnode: TreeNode, index: number) => {\n if (!pnode.vmIsLast) {\n shadowStyles.push(`calc(-${index + 1} * var(--space)) 0 var(--color)`);\n }\n });\n\n const styles = {\n '--level': level ? String(level) : undefined,\n 'box-shadow': shadowStyles.join(','),\n };\n\n lineNode = ;\n }\n } else {\n lineNode = getTNode(line, {\n createElement: h,\n node,\n });\n }\n return lineNode as TypeVNode;\n };\n\n return {\n renderLine,\n };\n}\n","import { usePrefixClass, TypeCreateElement, TypeVNode } from '../utils/adapt';\nimport { TypeTreeItemState } from '../types';\nimport { getTNode } from '../utils';\n\n// 渲染节点操作区域\nexport default function useRenderOperations(state: TypeTreeItemState) {\n const componentName = usePrefixClass('tree').value;\n\n const renderOperations = (h: TypeCreateElement): TypeVNode => {\n const { node, treeScope } = state;\n const { scopedSlots } = treeScope;\n const treeProps = treeScope?.treeProps || {};\n const { operations } = treeProps;\n\n let opNode = null;\n if (scopedSlots?.operations) {\n opNode = scopedSlots.operations({\n node: node?.getModel(),\n });\n } else {\n opNode = getTNode(operations, {\n createElement: h,\n node,\n });\n }\n if (opNode) {\n opNode = (\n // TODO: 这里最好修改一下,改成 data-ignore 之类的\n // @ts-ignore\n \n {opNode}\n \n );\n }\n return opNode as TypeVNode;\n };\n\n return {\n renderOperations,\n };\n}\n","import { ref, onMounted, computed, nextTick, Ref, UnwrapRef } from 'vue';\nimport observe from '@tdesign/common-js/utils/observe';\nimport { isServer } from '@tdesign/shared-utils';\n\nexport type UseLazyLoadParams = UnwrapRef<{\n type: 'lazy' | 'virtual';\n rowHeight?: number;\n bufferSize?: number;\n}>;\n\nexport function useLazyLoad(containerRef: Ref, childRef: Ref, params: UseLazyLoadParams) {\n const tRowHeight = computed(() => Math.max(params.rowHeight || 48, 48));\n const isInit = ref(false);\n const hasLazyLoadHolder = computed(() => params?.type === 'lazy' && !isInit.value);\n\n const requestAnimationFrame = (!isServer && window.requestAnimationFrame) || ((cb) => setTimeout(cb, 16.6));\n\n const init = () => {\n if (!isInit.value) {\n requestAnimationFrame(() => {\n isInit.value = true;\n });\n }\n };\n\n onMounted(() => {\n if (params?.type !== 'lazy') return;\n nextTick(() => {\n const bufferSize = Math.max(10, params.bufferSize || 10);\n const height = tRowHeight.value * bufferSize;\n observe(childRef.value, containerRef.value, init, height);\n });\n });\n\n return {\n hasLazyLoadHolder,\n tRowHeight,\n };\n}\n","import {\n TypePropType,\n defineComponent,\n TypeCreateElement,\n ref,\n TreeItemDefinition,\n useRipple,\n getCreateElement,\n} from './utils/adapt';\nimport { TypeTreeItemProps } from './types';\nimport useItemState from './hooks/useItemState';\nimport useTreeItem from './hooks/useTreeItem';\n\nexport const treeItemProps = {\n stateId: {\n type: String as TypePropType,\n },\n itemKey: {\n type: String as TypePropType,\n },\n rowIndex: {\n type: Number as TypePropType,\n },\n treeScope: {\n type: Object as TypePropType,\n },\n};\n\nexport default defineComponent({\n props: treeItemProps,\n ...TreeItemDefinition,\n setup(props: TypeTreeItemProps, context) {\n const { state } = useItemState(props, context);\n const { treeItemRef } = state;\n const label = ref();\n useRipple(label);\n const { renderItemNode } = useTreeItem(state);\n\n return {\n treeItemRef,\n renderItemNode,\n };\n },\n render(h: TypeCreateElement) {\n const createElement = getCreateElement(h);\n // 这个类型判断看起来多此一举\n // 然而单元测试时没有它却会报错:\n // This expression is not callable. Type '{}' has no call signatures.\n if (typeof this.renderItemNode === 'function') {\n return this.renderItemNode(createElement);\n }\n return null;\n },\n});\n","import { ref, toRefs, TypeSetupContext } from '../utils/adapt';\nimport { TypeTreeItemProps, TypeTreeItemState } from '../types';\n\n// 提供公共对象\nexport default function useItemState(props: TypeTreeItemProps, context: TypeSetupContext) {\n const refProps = toRefs(props);\n const treeItemRef = ref(null);\n const { treeScope } = props;\n const { store } = treeScope;\n const node = store.privateMap.get(props.itemKey);\n\n const state: TypeTreeItemState = {\n stateId: props.stateId,\n props,\n context,\n treeScope,\n refProps,\n node,\n treeItemRef,\n };\n\n return {\n state,\n };\n}\n","import { ref, watch, TypeCreateElement, privateKey, TypeVNode } from '../utils/adapt';\nimport { TypeTreeRow, TypeTreeNode, TypeTreeState } from '../types';\nimport TreeItem from '../tree-item';\nimport useTreeEvents from './useTreeEvents';\n\n// tree 节点列表渲染\nexport default function useTreeNodes(state: TypeTreeState) {\n const { store, scope, allNodes, nodes, virtualConfig } = state;\n const { handleClick, handleChange } = useTreeEvents(state);\n const nodesEmpty = ref(false);\n // 用于存储已呈现节点的缓存\n const cacheMap = new Map();\n\n const refresh = () => {\n allNodes.value = store.getNodes();\n };\n\n const refreshVisibleNodes = () => {\n const isVirtual = virtualConfig?.isVirtualScroll.value;\n if (isVirtual) return;\n // 非虚拟滚动,渲染可视节点\n const list: TypeTreeNode[] = [];\n // 非虚拟滚动,缓存曾经展示过的节点\n let hasVisibleNode = false;\n allNodes.value.forEach((node: TypeTreeNode) => {\n if (node.visible) {\n // 曾经展示过的节点加入缓存,避免再次创建\n hasVisibleNode = true;\n cacheMap.set(node.value, node.value);\n }\n if (cacheMap.has(node.value)) {\n // 创建的节点是缓存的节点\n list.push(node);\n }\n });\n cacheMap.forEach((value) => {\n // 在缓存中清理结构变化后不存在的节点\n if (!store.getNode(value)) {\n cacheMap.delete(value);\n }\n });\n // 渲染为平铺列表\n nodes.value = list;\n nodesEmpty.value = !hasVisibleNode;\n };\n\n const refreshVirtualNodes = () => {\n const isVirtual = virtualConfig?.isVirtualScroll.value;\n if (!isVirtual) return;\n // 虚拟滚动只渲染可见节点\n const list = virtualConfig.visibleData.value;\n nodes.value = list;\n nodesEmpty.value = list.length <= 0;\n };\n\n // 创建单个 tree 节点\n const renderItem = (h: TypeCreateElement, node: TypeTreeRow, index: number, stateId: string) => {\n const rowIndex = node.VIRTUAL_SCROLL_INDEX || index;\n const nodeUniqueId = node[privateKey];\n // vue3 中,不使用动画时,传递 node, 或者单纯传递 itemKey 无法触发 treeItem 的 render 方法\n // 考虑到有必要对所有节点状态更新,所以添加 stateId 属性,专门用于触发 treeItem 的 render 方法\n // 使用动画时,transition group 触发了所有节点的 render 方法,回头可以研究看下更合适的方案\n // 未来也可以根据节点数据的具体更新状态,来决定节点更新与否\n // 考虑到 value 值有冲突可能,所以使用 privateKey 来作为节点标记\n const treeItem = (\n \n );\n return treeItem;\n };\n\n const renderTreeNodes = (h: TypeCreateElement) => {\n const stateId = `render-${new Date().getTime()}`;\n const treeNodeViews: TypeVNode[] = nodes.value.map((node: TypeTreeNode, index) =>\n renderItem(h, node, index, stateId),\n );\n return treeNodeViews;\n };\n\n watch(allNodes, refreshVisibleNodes);\n watch(virtualConfig.visibleData, refreshVirtualNodes);\n\n refresh();\n refreshVisibleNodes();\n refreshVirtualNodes();\n store.emitter.on('update', refresh);\n\n return {\n nodesEmpty,\n renderTreeNodes,\n };\n}\n","import { TreeProps, TypeTreeState, TypeEventState } from '../types';\nimport { getMark, emitEvent } from '../utils';\nimport useTreeAction from './useTreeAction';\n\n// tree 组件一般事件处理\nexport default function useTreeEvents(state: TypeTreeState) {\n const treeState = state;\n const { props, context } = treeState;\n const { toggleExpanded, toggleActived, toggleChecked } = useTreeAction(state);\n\n const handleClick = (evtState: TypeEventState) => {\n const { mouseEvent, event, node } = evtState;\n if (!node || !mouseEvent) return;\n\n // 用于向内部方法传递事件对象\n treeState.mouseEvent = mouseEvent;\n\n let shouldExpand = props.expandOnClickNode;\n let shouldActive = !props.disabled && !node.disabled && node.isActivable();\n let isRightClick = false;\n // 给节点添加属性 trigger=\"expand,active\", ignore=\"expand,active\"\n // 来确认或者屏蔽动作\n ['trigger', 'ignore'].forEach((markName) => {\n const mark = getMark(markName, event.target as HTMLElement, event.currentTarget as HTMLElement);\n const markValue = mark?.value || '';\n if (markValue.indexOf('expand') >= 0) {\n // 路径节点包含了 trigger=\"expand\" ignore=\"expand\"\n if (markName === 'trigger') {\n shouldExpand = true;\n isRightClick = true;\n } else if (markName === 'ignore') {\n shouldExpand = false;\n }\n }\n if (markValue.indexOf('active') >= 0) {\n // 路径节点包含了 trigger=\"active\" ignore=\"active\"\n if (markName === 'ignore') {\n shouldActive = false;\n }\n }\n });\n\n if (shouldExpand) {\n toggleExpanded(node);\n if (isRightClick) return;\n }\n\n if (shouldActive) {\n toggleActived(node);\n }\n\n const evtCtx = {\n node: node.getModel(),\n e: mouseEvent,\n };\n emitEvent>(props, context, 'click', evtCtx);\n\n treeState.mouseEvent = null;\n };\n\n const handleChange = (evtState: TypeEventState, ctx: { e: Event }) => {\n const { disabled } = props;\n const { node } = evtState;\n if (!node || disabled || node.disabled || !node.isCheckable()) {\n return;\n }\n toggleChecked(node, ctx);\n };\n\n return {\n handleChange,\n handleClick,\n };\n}\n","import { computed, onMounted, TypeRef, TypeScroll, TreeNode } from '../utils/adapt';\nimport { get } from 'lodash-es';\nimport { TypeTreeState, TypeTimer } from '../types';\nimport log from '@tdesign/common-js/log/index';\nimport { useVirtualScrollNew } from '@tdesign/shared-hooks';\n\nimport type { ComponentScrollToElementParams } from '../../common';\n\n// tree 虚拟滚动整合\nexport default function useTreeScroll(state: TypeTreeState) {\n const treeState = state;\n const { props, context, allNodes, nodes, scope, treeContentRef, isScrolling } = treeState;\n\n const scrollProps: TypeRef = computed(() => ({\n // 默认一行高度为 34px\n rowHeight: 34,\n ...props.scroll,\n }));\n scope.scrollProps = scrollProps;\n\n // 虚拟滚动\n const virtualScrollParams = computed(() => {\n const list = allNodes.value.filter((node: TreeNode) => node.visible);\n return {\n data: list,\n scroll: scrollProps.value,\n preventResizeRefresh: true,\n };\n });\n\n const virtualConfig = useVirtualScrollNew(treeContentRef, virtualScrollParams);\n scope.virtualConfig = virtualConfig;\n treeState.virtualConfig = virtualConfig;\n\n onMounted(() => {\n const isVirtual = virtualConfig?.isVirtualScroll.value;\n if (isVirtual) {\n virtualConfig.handleScroll();\n }\n });\n\n const emitScrollEvent = (e: WheelEvent) => {\n props.onScroll?.({ e });\n // Vue3 ignore next line\n context.emit('scroll', { e });\n };\n\n // 设置滚动结束状态\n let scrollStopTimer: TypeTimer = null;\n const setScrolling = () => {\n isScrolling.value = true;\n if (scrollStopTimer) {\n clearTimeout(scrollStopTimer);\n scrollStopTimer = null;\n }\n scrollStopTimer = setTimeout(() => {\n scrollStopTimer = null;\n isScrolling.value = false;\n }, 100);\n };\n\n let lastScrollY = 0;\n const onInnerVirtualScroll = (e: WheelEvent) => {\n setScrolling();\n const isVirtual = virtualConfig?.isVirtualScroll.value;\n const target = (e.target || e.srcElement) as HTMLElement;\n const top = target.scrollTop;\n\n // 排除横向滚动触发的纵向虚拟滚动计算\n if (lastScrollY !== top) {\n if (isVirtual) {\n virtualConfig.handleScroll();\n nodes.value = virtualConfig.visibleData.value;\n }\n } else {\n lastScrollY = 0;\n }\n lastScrollY = top;\n emitScrollEvent(e);\n };\n\n const handleScrollTo = (params: ComponentScrollToElementParams) => {\n let index = params.index;\n if (!index && index !== 0) {\n if (!params.key) {\n log.error('Tree', 'scrollToElement: one of `index` or `key` must exist.');\n return;\n }\n index = allNodes.value?.findIndex((item) =>\n [get(item.data, 'key'), get(item.data, props.keys?.['value'] || 'value')].includes(params.key),\n );\n if (index < 0) {\n log.error('Tree', `${params.key} does not exist in data, check \\`key\\` or \\`data\\` please.`);\n return;\n }\n }\n virtualConfig.scrollToElement({ ...params, index: index - 1 });\n };\n return {\n // 虚拟滚动相关\n treeContentRef,\n onInnerVirtualScroll,\n virtualConfig,\n scrollToElement: handleScrollTo,\n };\n}\n","import { computed, TypeStyles, usePrefixClass } from '../utils/adapt';\nimport { TypeTreeState } from '../types';\n\nexport function formatCSSUnit(unit: string | number) {\n if (!unit) return unit;\n return isNaN(Number(unit)) ? unit : `${unit}px`;\n}\n\nexport default function useTreeStyles(state: TypeTreeState) {\n const { props } = state;\n const componentName = usePrefixClass('tree').value;\n const classPrefix = usePrefixClass().value;\n const { virtualConfig, isScrolling, refProps } = state;\n\n const { height, maxHeight } = refProps;\n\n const treeClasses = computed(() => {\n const list: Array = [componentName];\n const { disabled, hover, transition, checkable, draggable, expandOnClickNode, scroll } = props;\n if (disabled) {\n list.push(`${classPrefix}-is-disabled`);\n }\n if (hover) {\n list.push(`${componentName}--hoverable`);\n }\n if (checkable) {\n list.push(`${componentName}--checkable`);\n }\n if (draggable) {\n list.push(`${componentName}--draggable`);\n }\n if (transition) {\n list.push(`${componentName}--transition`);\n }\n if (expandOnClickNode) {\n list.push(`${componentName}--block-node`);\n }\n\n const isVirtual = virtualConfig?.isVirtualScroll.value;\n if (isVirtual) {\n list.push(`${componentName}__vscroll`);\n if (isScrolling.value) {\n list.push(`${componentName}--scrolling`);\n }\n } else if (scroll && scroll.type === 'lazy') {\n list.push(`${componentName}__lazyload`);\n }\n\n return list;\n });\n\n const treeContentStyles = computed(() => ({\n height: formatCSSUnit(height.value),\n maxHeight: formatCSSUnit(maxHeight.value),\n overflowY: formatCSSUnit(height.value) || formatCSSUnit(maxHeight.value) ? 'auto' : undefined,\n }));\n\n const scrollStyles = computed(() => {\n // isVirtual 改为函数内取值,可接收属性的变动\n const isVirtual = virtualConfig?.isVirtualScroll.value;\n const translateY = isVirtual ? virtualConfig?.translateY.value : 0;\n const transform = `translateY(${translateY}px)`;\n const posStyle = {\n transform,\n '-ms-transform': transform,\n '-moz-transform': transform,\n '-webkit-transform': transform,\n };\n return posStyle;\n });\n\n const cursorStyles = computed(() => {\n const isVirtual = virtualConfig?.isVirtualScroll.value;\n const translateY = isVirtual ? virtualConfig?.translateY.value : 0;\n const translate = `translate(0, ${translateY}px)`;\n return {\n transform: translate,\n '-ms-transform': translate,\n '-moz-transform': translate,\n '-webkit-transform': translate,\n };\n });\n\n return {\n treeClasses,\n treeContentStyles,\n scrollStyles,\n cursorStyles,\n };\n}\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTreeProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 节点是否可高亮 */\n activable: Boolean,\n /** 是否允许多个节点同时高亮 */\n activeMultiple: Boolean,\n /** 高亮的节点值 */\n actived: {\n type: Array as PropType,\n default: undefined as TdTreeProps['actived'],\n },\n /** 高亮的节点值,非受控属性 */\n defaultActived: {\n type: Array as PropType,\n },\n /** 判断节点是否可以执行 drop 操作,泛型 `T` 表示树节点 TS 类型 */\n allowDrop: {\n type: Function as PropType,\n },\n /** 是否允许在过滤时节点折叠节点 */\n allowFoldNodeOnFilter: Boolean,\n /** 透传属性到 checkbox 组件。参考 checkbox 组件 API */\n checkProps: {\n type: Object as PropType,\n },\n /** 父子节点选中状态不再关联,可各自选中或取消 */\n checkStrictly: Boolean,\n /** 隐藏节点复选框 */\n checkable: Boolean,\n /** 树数据,泛型 `T` 表示树节点 TS 类型 */\n data: {\n type: Array as PropType,\n default: (): TdTreeProps['data'] => [],\n },\n /** 禁用复选框,可支持禁用不同的行 */\n disableCheck: {\n type: [Boolean, Function] as PropType,\n default: false as TdTreeProps['disableCheck'],\n },\n /** 是否禁用树操作 */\n disabled: Boolean,\n /** 节点是否可拖拽 */\n draggable: Boolean,\n /** 数据为空时展示的文本 */\n empty: {\n type: [String, Function] as PropType,\n default: '' as TdTreeProps['empty'],\n },\n /** 是否展开全部节点 */\n expandAll: Boolean,\n /** 默认展开的级别,第一层为 0 */\n expandLevel: {\n type: Number,\n default: 0,\n },\n /** 同级别展开互斥,手风琴效果 */\n expandMutex: Boolean,\n /** 是否支持点击节点也能展开收起 */\n expandOnClickNode: Boolean,\n /** 展开子节点时是否自动展开父节点 */\n expandParent: Boolean,\n /** 展开的节点值 */\n expanded: {\n type: Array as PropType,\n default: undefined as TdTreeProps['expanded'],\n },\n /** 展开的节点值,非受控属性 */\n defaultExpanded: {\n type: Array as PropType,\n default: (): TdTreeProps['defaultExpanded'] => [],\n },\n /** 节点过滤方法,只呈现返回值为 true 的节点,泛型 `T` 表示树节点 TS 类型 */\n filter: {\n type: Function as PropType,\n },\n /** 树的高度,超出后会出现滚动条。示例:100, '30%', '300'。值为数字类型,会自动加上单位 px。如果不是绝对固定树的高度,建议使用 `maxHeight` */\n height: {\n type: [String, Number] as PropType,\n },\n /** 节点是否有悬浮状态 */\n hover: Boolean,\n /** 节点图标,可自定义 */\n icon: {\n type: [Boolean, Function] as PropType,\n default: true as TdTreeProps['icon'],\n },\n /** 用来定义 `value / label / disabled / children` 在 `data` 数据中对应的字段别名,示例:`{ value: 'key', label 'name', children: 'list' }`。其中,disabled 待开发。 */\n keys: {\n type: Object as PropType,\n },\n /** 自定义节点内容,值为 `false` 不显示,值为 `true` 显示默认 label,值为字符串直接输出该字符串。泛型 `T` 表示树节点 TS 类型。
    如果期望只有点击复选框才选中,而点击节点不选中,可以使用 `label` 自定义节点,然后加上点击事件 `e.preventDefault()`,通过调整自定义节点的宽度和高度决定禁止点击选中的范围 */\n label: {\n type: [String, Boolean, Function] as PropType,\n default: true as TdTreeProps['label'],\n },\n /** 延迟加载 children 为 true 的节点的子节点数据,即使 expandAll 被设置为 true,也同样延迟加载 */\n lazy: {\n type: Boolean,\n default: true,\n },\n /** 连接线。值为 false 不显示连接线;值为 true 显示默认连接线;值类型为 Function 表示自定义连接线 */\n line: {\n type: [Boolean, Function] as PropType,\n default: false as TdTreeProps['line'],\n },\n /** 加载子数据的方法,在展开节点时调用(仅当节点 children 为 true 时生效),泛型 `T` 表示树节点 TS 类型 */\n load: {\n type: Function as PropType,\n },\n /** 树的最大高度,超出后会出现滚动条。示例:100, '30%', '300'。值为数字类型,会自动加上单位 px */\n maxHeight: {\n type: [String, Number] as PropType,\n },\n /** 自定义节点操作项,泛型 `T` 表示树节点 TS 类型 */\n operations: {\n type: Function as PropType,\n },\n /** 懒加载和虚拟滚动。为保证组件收益最大化,当数据量小于阈值 `scroll.threshold` 时,无论虚拟滚动的配置是否存在,组件内部都不会开启虚拟滚动,`scroll.threshold` 默认为 `100` */\n scroll: {\n type: Object as PropType,\n },\n /** 节点展开折叠时是否使用过渡动画 */\n transition: {\n type: Boolean,\n default: true,\n },\n /** 选中值,组件为可选状态时有效 */\n value: {\n type: Array as PropType,\n default: undefined as TdTreeProps['value'],\n },\n modelValue: {\n type: Array as PropType,\n default: undefined as TdTreeProps['value'],\n },\n /** 选中值,组件为可选状态时有效,非受控属性 */\n defaultValue: {\n type: Array as PropType,\n default: (): TdTreeProps['defaultValue'] => [],\n },\n /** 选中值模式。all 表示父节点和子节点全部会出现在选中值里面;parentFirst 表示当子节点全部选中时,仅父节点在选中值里面;onlyLeaf 表示无论什么情况,选中值仅呈现叶子节点 */\n valueMode: {\n type: String as PropType,\n default: 'onlyLeaf' as TdTreeProps['valueMode'],\n validator(val: TdTreeProps['valueMode']): boolean {\n if (!val) return true;\n return ['onlyLeaf', 'parentFirst', 'all'].includes(val);\n },\n },\n /** 节点激活时触发,泛型 `T` 表示树节点 TS 类型 */\n onActive: Function as PropType,\n /** 节点选中状态变化时触发,context.node 表示当前变化的选项,泛型 `T` 表示树节点 TS 类型 */\n onChange: Function as PropType,\n /** 节点点击时触发,泛型 `T` 表示树节点 TS 类型 */\n onClick: Function as PropType,\n /** 节点结束拖拽时触发,泛型 `T` 表示树节点 TS 类型 */\n onDragEnd: Function as PropType,\n /** 节点拖拽时离开目标元素时触发,泛型 `T` 表示树节点 TS 类型 */\n onDragLeave: Function as PropType,\n /** 节点拖拽到目标元素时触发,泛型 `T` 表示树节点 TS 类型 */\n onDragOver: Function as PropType,\n /** 节点开始拖拽时触发,泛型 `T` 表示树节点 TS 类型 */\n onDragStart: Function as PropType,\n /** 节点在目标元素上释放时触发,泛型 `T` 表示树节点 TS 类型 */\n onDrop: Function as PropType,\n /** 节点展开或收起时触发,泛型 `T` 表示树节点 TS 类型 */\n onExpand: Function as PropType,\n /** 异步加载后触发,泛型 `T` 表示树节点 TS 类型 */\n onLoad: Function as PropType,\n /** 滚动事件 */\n onScroll: Function as PropType,\n};\n","import { isFunction, upperFirst } from 'lodash-es';\nimport {\n defineComponent,\n getCreateElement,\n getScopedSlots,\n TransitionGroup,\n TreeNode,\n TypeCreateElement,\n TypeStyles,\n TypeTNodeReturnValue,\n TypeTreeOptionData,\n useConfig,\n usePrefixClass,\n} from './utils/adapt';\nimport useDragHandle from './hooks/useDragHandle';\nimport useTreeAction from './hooks/useTreeAction';\nimport useTreeNodes from './hooks/useTreeNodes';\nimport useTreeScroll from './hooks/useTreeScroll';\nimport useTreeState from './hooks/useTreeState';\nimport useTreeStore from './hooks/useTreeStore';\nimport useTreeStyles from './hooks/useTreeStyles';\nimport props from './props';\nimport { TreeNodeState, TreeNodeValue, TypeTreeNodeModel } from './types';\nimport { getNode } from './utils';\nimport { useTNodeJSX } from '@tdesign/shared-hooks';\n\n// 2022.11.02 tabliang 备注\n// 之前尝试实现了嵌套布局,原本预期嵌套布局能够提升大数据量下,全部渲染节点时的性能表现\n// 实测性能提升有限,不如使用虚拟滚动的收益高,反而导致了组件的维护困难与混乱\n// 自 2022 年初首次提出嵌套布局要求,大半年以来,对嵌套布局的需求也不是很高\n// 因此废弃嵌套布局方案,之后重点解决虚拟滚动能力\n\nexport default defineComponent({\n name: 'TTree',\n model: {\n prop: 'value',\n event: 'change',\n },\n props,\n setup(props, context) {\n const { t, global } = useConfig('tree');\n const classPrefix = usePrefixClass();\n const componentName = usePrefixClass('tree');\n const renderTNodeJSX = useTNodeJSX();\n\n // 用于 hooks 传递数据\n const { state } = useTreeState(props, context);\n const { treeContentRef, isScrolling } = state;\n const { store, updateStoreConfig, rebuild } = useTreeStore(state);\n\n useDragHandle(state);\n const { setActived, setExpanded, setChecked } = useTreeAction(state);\n const { onInnerVirtualScroll, virtualConfig, scrollToElement } = useTreeScroll(state);\n const { renderTreeNodes, nodesEmpty } = useTreeNodes(state);\n const { treeClasses, treeContentStyles, scrollStyles, cursorStyles } = useTreeStyles(state);\n\n // 不想暴露给用户的属性与方法,统一挂载到 setup 返回的对象上\n // 实例上无法直接访问这些方法与属性\n return {\n t,\n global,\n classPrefix,\n componentName,\n state,\n store,\n treeClasses,\n treeContentRef,\n renderTNodeJSX,\n\n rebuild,\n updateStoreConfig,\n setActived,\n setExpanded,\n setChecked,\n renderTreeNodes,\n nodesEmpty,\n\n isScrolling,\n onInnerVirtualScroll,\n treeContentStyles,\n scrollStyles,\n cursorStyles,\n virtualConfig,\n scrollToElement: scrollToElement, // deprecated\n scrollTo: scrollToElement,\n };\n },\n\n watch: {\n // 实测发现,composition api 中的 refsProps watch ,回调时间迟于 $nextTick 回调\n // 因此改为在这里绑定 data 属性监听,实测这里的 watch 回调,早于 $nextTick 回调发生\n data(list) {\n this.rebuild(list);\n },\n },\n // 在 methods 提供公共方法\n // 实例上可以直接访问\n methods: {\n // 刷新树节点状态\n refresh(): void {\n this.store.refreshState();\n },\n // 设置目标节点状态\n setItem(value: TreeNodeValue, options: TreeNodeState): void {\n const node: TreeNode = this.store.getNode(value);\n const spec = options;\n const keys = Object.keys(spec);\n if (node && spec) {\n ['expanded', 'actived', 'checked'].forEach((name) => {\n if (keys.includes(name)) {\n const val = spec[name as keyof typeof spec];\n delete spec[name as keyof typeof spec];\n const methodName = `set${upperFirst(name)}`;\n const setupMethod = this[methodName];\n if (isFunction(setupMethod)) {\n setupMethod.call(this, node, val);\n }\n }\n });\n node.set(spec);\n }\n },\n // 获取目标节点\n getItem(value: TreeNodeValue): TypeTreeNodeModel {\n const node: TreeNode = this.store.getNode(value);\n return node?.getModel();\n },\n // 无 value 参数: 获取 tree 所有节点,一维结构\n // 传递 value 参数: 获取节点值对应的目标节点下,包含自己在内的所有子节点\n getItems(value?: TreeNodeValue): TypeTreeNodeModel[] {\n const nodes = this.store.getNodes(value);\n return nodes.map((node: TreeNode) => node.getModel());\n },\n // 将节点数据插入到目标节点\n // 无目标节点,则插入为根节点\n appendTo(para?: TreeNodeValue, item?: TypeTreeOptionData | TypeTreeOptionData[]) {\n const { store } = this;\n let list = [];\n if (Array.isArray(item)) {\n list = item;\n } else {\n list = [item];\n }\n list.forEach((item) => {\n const val = item?.value || '';\n const node = getNode(store, val);\n if (node) {\n store.appendNodes(para, node);\n } else {\n store.appendNodes(para, item);\n }\n });\n },\n // 在指定节点之前插入单个节点数据\n insertBefore(value: TreeNodeValue, item: TypeTreeOptionData) {\n const { store } = this;\n const val = item?.value || '';\n const node = getNode(store, val);\n if (node) {\n store.insertBefore(value, node);\n } else {\n store.insertBefore(value, item);\n }\n },\n // 在指定节点之后插入单个节点数据\n insertAfter(value: TreeNodeValue, item: TypeTreeOptionData) {\n const { store } = this;\n const val = item?.value || '';\n const node = getNode(store, val);\n if (node) {\n store.insertAfter(value, node);\n } else {\n store.insertAfter(value, item);\n }\n },\n // 移除目标节点\n remove(value?: TreeNodeValue) {\n return this.store.remove(value);\n },\n // 获取节点在当前层级的 index\n getIndex(value: TreeNodeValue): number {\n return this.store.getNodeIndex(value);\n },\n // 获取父节点\n getParent(value: TreeNodeValue): TypeTreeNodeModel {\n const node = this.store.getParent(value);\n return node?.getModel();\n },\n // 获取父节点列表\n getParents(value: TreeNodeValue): TypeTreeNodeModel[] {\n const nodes = this.store.getParents(value);\n return nodes.map((node: TreeNode) => node.getModel());\n },\n // 获取路径节点列表\n getPath(value: TreeNodeValue): TypeTreeNodeModel[] {\n const node = this.store.getNode(value);\n let pathNodes: TypeTreeNodeModel[] = [];\n if (node) {\n pathNodes = node.getPath().map((node: TreeNode) => node.getModel());\n }\n return pathNodes;\n },\n // 提供树结构原始数据\n getTreeData(value?: TreeNodeValue): TypeTreeOptionData[] {\n let list: TreeNode[] = [];\n if (value) {\n const node = this.store.getNode(value);\n if (!node) return [];\n list = this.store.getNodes(value);\n } else {\n list = this.store.getNodes();\n }\n // 一维结构树节点转树结构数据\n const nodeMap: Record = {};\n const treeNodes: TypeTreeOptionData[] = [];\n list.forEach((item: TreeNode) => {\n const { value } = item;\n const itemData = {\n ...item.data,\n value,\n };\n if (itemData.children !== true) {\n delete itemData.children;\n }\n nodeMap[value] = itemData;\n const parent = item.getParent();\n if (!parent) {\n // 是根节点\n treeNodes.push(itemData);\n } else {\n const parentData = nodeMap[parent.value];\n if (!parentData) {\n // 为目标节点范围内的根节点\n treeNodes.push(itemData);\n } else {\n if (!Array.isArray(parentData.children)) {\n parentData.children = [];\n }\n parentData.children.push(itemData);\n }\n }\n });\n return treeNodes;\n },\n },\n render(h: TypeCreateElement) {\n const {\n state,\n treeClasses,\n updateStoreConfig,\n renderTreeNodes,\n nodesEmpty,\n isScrolling,\n virtualConfig,\n treeContentStyles,\n scrollStyles,\n cursorStyles,\n } = this;\n\n const createElement = getCreateElement(h);\n\n const { scope, allNodes, refProps } = state;\n // 更新 scopedSlots\n scope.scopedSlots = getScopedSlots(this);\n\n updateStoreConfig();\n\n const treeNodeViews = renderTreeNodes(createElement);\n const cname = this.componentName;\n const isVirtual = virtualConfig.isVirtualScroll.value;\n\n // 空数据判定\n let emptyNode: TypeTNodeReturnValue = null;\n if (nodesEmpty) {\n const useLocale = !this.empty && !this.$slots.empty;\n const emptyContent = useLocale ? this.t(this.global.empty) : this.renderTNodeJSX('empty');\n emptyNode =
    {emptyContent}
    ;\n } else if (treeNodeViews.length <= 0) {\n // 数据切换时,有闪现的缓存节点呈现\n // 用这个替换内容置空\n emptyNode =
    ;\n }\n\n // 构造列表\n const { $props } = this;\n const { transition } = $props;\n\n let treeNodeList = null;\n if (!transition || (isVirtual && isScrolling)) {\n // vue3 不使用 transition group 会导致展开收起动作异常\n treeNodeList = (\n
    \n {treeNodeViews}\n
    \n );\n } else {\n // 启用动画时,需要确保滚动中动画样式失效\n treeNodeList = (\n \n {treeNodeViews}\n \n );\n }\n\n const topValue =\n (allNodes.value?.filter((node) => node.visible).length ?? 0) * (refProps.scroll.value?.rowHeight ?? 34);\n const placeholderStyles: TypeStyles = {\n width: '1px',\n height: '1px',\n opacity: 0,\n pointerEvents: 'none',\n position: 'absolute',\n left: 0,\n top: `${topValue}px`,\n };\n\n const placeholderEl =
    ;\n\n const treeNode = (\n
    \n {isVirtual &&
    }\n {emptyNode || treeNodeList}\n {isVirtual && placeholderEl}\n
    \n );\n\n return treeNode;\n },\n});\n","import { ref, TypeRef, TreeNode, useVModel, toRefs, TypeSetupContext } from '../utils/adapt';\nimport { TreeProps, TypeTreeStore, TypeTreeState } from '../types';\n\n// 提供公共对象\nexport default function useTreeState(props: TreeProps, context: TypeSetupContext) {\n const treeContentRef = ref();\n const nodes: TypeRef = ref([]);\n const allNodes: TypeRef = ref([]);\n const isScrolling: TypeRef = ref(false);\n\n const refProps = toRefs(props);\n const vmValue = useVModel(props, refProps, 'value', 'defaultValue', 'onChange', 'change');\n const vmActived = useVModel(props, refProps, 'actived', 'defaultActived', 'onActive', 'active');\n const vmExpanded = useVModel(props, refProps, 'expanded', 'defaultExpanded', 'onExpand', 'expand');\n\n function setStore(store: TypeTreeStore) {\n state.store = store;\n state.scope.store = store;\n allNodes.value = store.getNodes();\n }\n\n const state: TypeTreeState = {\n props,\n context,\n // tree 数据对象\n store: null,\n // 内容根节点\n treeContentRef,\n // 渲染节点\n nodes,\n // 所有节点\n allNodes,\n // 是否正在滚动\n isScrolling,\n // 缓存点击事件\n mouseEvent: null,\n // 虚拟滚动对象\n virtualConfig: null,\n // 缓存与节点共享的关联对象\n scope: {\n store: null,\n treeContentRef,\n treeProps: props,\n scopedSlots: {},\n virtualConfig: null,\n },\n setStore,\n refProps,\n vmValue,\n vmActived,\n vmExpanded,\n };\n\n return {\n state,\n };\n}\n","import { pick } from 'lodash-es';\nimport { TreeStore } from '@tdesign/common-js/tree/tree-store';\nimport { watch, TypeRef } from '../utils/adapt';\nimport {\n TreeProps,\n TypeValueMode,\n TreeNodeValue,\n TypeEventState,\n TypeTreeNodeModel,\n TypeTreeNode,\n TypeTNodeValue,\n TypeTreeState,\n} from '../types';\n\nexport default function useTreeStore(state: TypeTreeState) {\n const { props, context, refProps } = state;\n const { valueMode, filter, keys } = props;\n\n const store: TreeStore = new TreeStore({\n valueMode: valueMode as TypeValueMode,\n filter,\n });\n\n // tValue 就是 refProps.value\n const tValue = state.vmValue[0] as TypeRef;\n // tActived 就是 refProps.actived\n const tActived = state.vmActived[0] as TypeRef;\n // tExpanded 就是 refProps.expanded\n const tExpanded = state.vmExpanded[0] as TypeRef;\n\n // 同步 Store 选项\n const updateStoreConfig = () => {\n // 统一更新选项,然后在 store 统一识别属性更新\n // 注意: keys 属性比较特殊,不应该在实例化之后再次变更\n const storeProps = pick(props, [\n 'expandAll',\n 'expandLevel',\n 'expandMutex',\n 'expandParent',\n 'activable',\n 'activeMultiple',\n 'disabled',\n 'disableCheck',\n 'checkable',\n 'draggable',\n 'checkStrictly',\n 'load',\n 'lazy',\n 'valueMode',\n 'filter',\n 'allowFoldNodeOnFilter',\n ]);\n store.setConfig(storeProps);\n };\n\n const updateExpanded = () => {\n const { expandParent } = props;\n if (!Array.isArray(tExpanded.value)) return;\n // 初始化展开状态\n // 校验是否自动展开父节点\n const expandedMap = new Map();\n tExpanded.value.forEach((val) => {\n expandedMap.set(val, true);\n if (expandParent) {\n const node = store.getNode(val);\n if (node) {\n node\n .getModel()\n .getParents()\n .forEach((tn: TypeTreeNodeModel) => {\n expandedMap.set(tn.value, true);\n });\n }\n }\n });\n const expandedArr = Array.from(expandedMap.keys());\n store.setExpanded(expandedArr);\n };\n\n let filterChanged = false;\n let prevExpanded: null | TypeTNodeValue[] = null;\n\n // store 的 update 方法触发后,可以拿到搜索命中节点的路径节点\n // 所以在 update 之后检查,如果之前 filter 有变更,则检查路径节点是否需要展开\n // 如果 filter 属性被清空,则重置为开启搜索之前的结果\n const expandFilterPath = () => {\n if (!props.allowFoldNodeOnFilter) return;\n if (!filterChanged) return;\n // 确保 filter 属性未变更时,不会重复检查展开状态\n filterChanged = false;\n\n if (props.filter) {\n if (!prevExpanded) {\n // 缓存之前的展开状态\n prevExpanded = store.getExpanded();\n }\n\n // 展开搜索命中节点的路径节点\n const pathValues: TypeTNodeValue[] = [];\n const allNodes: TypeTreeNode[] = store.getNodes();\n allNodes.forEach((node: TypeTreeNode) => {\n if (node.vmIsLocked) {\n pathValues.push(node.value);\n }\n });\n store.setExpanded(pathValues);\n } else if (prevExpanded) {\n // filter 属性置空,该还原之前的展开状态了\n store.replaceExpanded(prevExpanded);\n prevExpanded = null;\n }\n };\n\n // 这个方法监听 filter 属性,仅在 allowFoldNodeOnFilter 属性为 true 时生效\n // 仅在 filter 属性发生变更时开启检查开关,避免其他操作也触发展开状态的重置\n const checkFilterExpand = (newFilter: null | Function, previousFilter: null | Function) => {\n if (!props.allowFoldNodeOnFilter) return;\n filterChanged = newFilter !== previousFilter;\n };\n\n const handleLoad = (info: TypeEventState) => {\n const { node } = info;\n const evtCtx = {\n node: node.getModel(),\n };\n if (Array.isArray(tValue.value) && tValue.value.length > 0) {\n store.replaceChecked(tValue.value);\n }\n if (Array.isArray(tExpanded.value) && tExpanded.value.length > 0) {\n store.replaceExpanded(tExpanded.value);\n }\n if (Array.isArray(tActived.value) && tActived.value.length > 0) {\n store.replaceActived(tActived.value);\n }\n if (props?.onLoad) {\n props?.onLoad(evtCtx);\n }\n context.emit('load', evtCtx);\n };\n\n const rebuild = (list: TreeProps['data']) => {\n store.reload(list || []);\n store.refreshNodes();\n // 初始化选中状态\n if (Array.isArray(tValue.value)) {\n store.setChecked(tValue.value);\n }\n // 更新展开状态\n updateExpanded();\n // 初始化激活状态\n if (Array.isArray(tActived.value)) {\n store.setActived(tActived.value);\n }\n // 刷新节点状态\n store.refreshState();\n };\n\n function initStore() {\n // keys 属性比较特殊,不应该在实例化之后再次变更\n store.setConfig({\n keys,\n });\n updateStoreConfig();\n store.append(props.data || []);\n\n // 刷新节点,必须在配置选中之前执行\n // 这样选中态联动判断才能找到父节点\n store.refreshNodes();\n\n // 初始化选中状态\n if (Array.isArray(tValue.value)) {\n store.setChecked(tValue.value);\n }\n\n // 更新节点展开状态\n updateExpanded();\n\n // 初始化激活状态\n if (Array.isArray(tActived.value)) {\n store.setActived(tActived.value);\n }\n\n store.emitter.on('load', handleLoad);\n store.emitter.on('update', expandFilterPath);\n }\n\n // 初始化 store\n initStore();\n // 设置初始化状态\n state.setStore(store);\n // 配置属性监听\n watch(\n () => [...(tValue.value || [])],\n (nVal: TreeNodeValue[]) => {\n store.replaceChecked(nVal);\n },\n );\n watch(\n () => [...(tExpanded.value || [])],\n (nVal: TreeNodeValue[]) => {\n store.replaceExpanded(nVal);\n },\n );\n watch(\n () => [...(tActived.value || [])],\n (nVal: TreeNodeValue[]) => {\n store.replaceActived(nVal);\n },\n );\n\n watch(refProps.filter, (nVal, previousVal) => {\n checkFilterExpand(nVal, previousVal);\n });\n watch(refProps.keys, (keys) => {\n store.setConfig({\n keys,\n });\n });\n\n watch(refProps.expandAll, (nVal) => {\n if (nVal) {\n const valueList = store\n .getNodes()\n .filter((node) => Array.isArray(node.children) && node.children.length)\n .map((node) => node.value);\n store.setExpanded(valueList);\n } else {\n store.replaceExpanded(prevExpanded);\n prevExpanded = null;\n }\n });\n\n return {\n store,\n rebuild,\n checkFilterExpand,\n updateStoreConfig,\n updateExpanded,\n expandFilterPath,\n };\n}\n","import { TreeNode } from '../utils/adapt';\nimport { TreeProps, TypeDragEventState, TypeTreeState, TypeDragHandle } from '../types';\nimport { DragPosition } from './useDraggable';\nimport { emitEvent } from '../utils';\n\nexport default function useDragHandle(state: TypeTreeState) {\n const { props, context, scope, store } = state;\n let dragNode: TreeNode = null;\n\n const handleDragStart = (state: TypeDragEventState) => {\n const { dragEvent, node } = state;\n dragNode = node;\n\n const ctx = {\n node: node.getModel(),\n e: dragEvent,\n };\n emitEvent>(props, context, 'drag-start', ctx);\n };\n\n const handleDragEnd = (state: TypeDragEventState) => {\n const { dragEvent, node } = state;\n dragNode = node;\n\n const ctx = {\n node: node.getModel(),\n e: dragEvent,\n };\n emitEvent>(props, context, 'drag-end', ctx);\n };\n\n const handleDragOver = (state: TypeDragEventState) => {\n const { dragEvent, node } = state;\n const ctx = {\n node: node.getModel(),\n e: dragEvent,\n };\n emitEvent>(props, context, 'drag-over', ctx);\n };\n\n const handleDragLeave = (state: TypeDragEventState) => {\n const { dragEvent, node } = state;\n const ctx = {\n node: node.getModel(),\n e: dragEvent,\n };\n emitEvent>(props, context, 'drag-leave', ctx);\n };\n\n const handleDrop = (state: TypeDragEventState) => {\n const { dragEvent, node, dropPosition } = state;\n if (node.value === dragNode.value || node.getParents().some((_node) => _node.value === dragNode.value)) return;\n\n const ctx = {\n dropNode: node.getModel(),\n dragNode: dragNode.getModel(),\n dropPosition,\n e: dragEvent,\n };\n\n if (props.allowDrop?.(ctx) === false) return;\n\n const nodes = store.getNodes() as TreeNode[];\n nodes.some((_node) => {\n if (_node.value === node.value) {\n if (dropPosition === DragPosition.Inside) {\n dragNode.appendTo(store, _node);\n } else if (dropPosition === DragPosition.Before) {\n node.insertBefore(dragNode);\n } else {\n node.insertAfter(dragNode);\n }\n return true;\n }\n return false;\n });\n\n emitEvent>(props, context, 'drop', ctx);\n };\n\n const drag: TypeDragHandle = {\n handleDragStart,\n handleDragEnd,\n handleDragOver,\n handleDragLeave,\n handleDrop,\n };\n\n scope.drag = drag;\n\n return {\n drag,\n };\n}\n","import _TdTree from './tree';\nimport { withInstall } from './utils/adapt';\n\nimport './style';\n\nexport const Tree = withInstall(_TdTree);\n\nexport * from './types';\nexport default Tree;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTreeSelectProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 宽度随内容自适应 */\n autoWidth: Boolean,\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否允许清空 */\n clearable: Boolean,\n /** 多选情况下,用于设置折叠项内容,默认为 `+N`。如果需要悬浮就显示其他内容,可以使用 collapsedItems 自定义。\n `value` 表示当前存在的所有标签,`collapsedSelectedItems` 表示折叠的标签,`count` 表示折叠的数量,`onClose` 表示移除标签的事件回调 */\n collapsedItems: {\n type: Function as PropType,\n },\n /** 数据 */\n data: {\n type: Array as PropType,\n default: (): TdTreeSelectProps['data'] => [],\n },\n /** 是否禁用组件 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 当下拉列表为空时显示的内容 */\n empty: {\n type: [String, Function] as PropType,\n default: '',\n },\n /** 过滤方法,用于对现有数据进行搜索过滤,判断是否过滤某一项数据 */\n filter: {\n type: Function as PropType,\n },\n /** 是否可搜索 */\n filterable: Boolean,\n /** 透传给 输入框 Input 组件的全部属性 */\n inputProps: {\n type: Object as PropType,\n },\n /** 输入框的值 */\n inputValue: {\n type: [String, Number] as PropType,\n default: undefined,\n },\n /** 输入框的值,非受控属性 */\n defaultInputValue: {\n type: [String, Number] as PropType,\n },\n /** 用来定义 `value / label / children / disabled` 在 `data` 数据中对应的字段别名,示例:`{ value: 'key', label 'name', children: 'list' }` */\n keys: {\n type: Object as PropType,\n },\n /** 是否正在加载数据 */\n loading: Boolean,\n /** 远程加载时显示的文字,支持自定义。如加上超链接 */\n loadingText: {\n type: [String, Function] as PropType,\n default: '',\n },\n /** 用于控制多选数量,值为 0 则不限制 */\n max: {\n type: Number,\n default: 0,\n },\n /** 最小折叠数量,用于多选情况下折叠选中项,超出该数值的选中项折叠。值为 0 则表示不折叠 */\n minCollapsedNum: {\n type: Number,\n default: 0,\n },\n /** 是否允许多选 */\n multiple: Boolean,\n /** 面板内的底部内容 */\n panelBottomContent: {\n type: [String, Function] as PropType,\n },\n /** 面板内的顶部内容 */\n panelTopContent: {\n type: [String, Function] as PropType,\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 透传给 popup 组件的全部属性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 是否显示下拉框 */\n popupVisible: {\n type: Boolean,\n default: undefined,\n },\n /** 组件前置图标 */\n prefixIcon: {\n type: Function as PropType,\n },\n /** 只读状态,值为真会隐藏输入框,且无法打开下拉框 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 透传 SelectInput 筛选器输入框组件的全部属性 */\n selectInputProps: {\n type: Object as PropType,\n },\n /** 尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdTreeSelectProps['size'],\n validator(val: TdTreeSelectProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 后置图标前的后置内容 */\n suffix: {\n type: [String, Function] as PropType,\n },\n /** 组件后置图标 */\n suffixIcon: {\n type: Function as PropType,\n },\n /** 【开发中】透传 Tag 标签组件全部属性 */\n tagProps: {\n type: Object as PropType,\n },\n /** 透传 Tree 组件的全部属性 */\n treeProps: {\n type: Object as PropType,\n },\n /** 选中值 */\n value: {\n type: [String, Number, Object, Array] as PropType,\n default: undefined as TdTreeSelectProps['value'],\n },\n modelValue: {\n type: [String, Number, Object, Array] as PropType,\n default: undefined as TdTreeSelectProps['value'],\n },\n /** 选中值,非受控属性 */\n defaultValue: {\n type: [String, Number, Object, Array] as PropType,\n },\n /** 自定义选中项呈现方式 */\n valueDisplay: {\n type: Function as PropType,\n },\n /** 用于控制选中值的类型。假设数据选项为:`[{ label: '姓名', value: 'name' }]`,value 表示值仅返回数据选项中的 value, object 表示值返回全部数据 */\n valueType: {\n type: String as PropType,\n default: 'value' as TdTreeSelectProps['valueType'],\n validator(val: TdTreeSelectProps['valueType']): boolean {\n if (!val) return true;\n return ['value', 'object'].includes(val);\n },\n },\n /** 输入框失去焦点时触发 */\n onBlur: Function as PropType,\n /** 节点选中状态变化时触发,`context.node` 表示当前变化的选项,`context. trigger` 表示触发变化的来源 */\n onChange: Function as PropType,\n /** 点击清除按钮时触发 */\n onClear: Function as PropType,\n /** 输入框获得焦点时触发 */\n onFocus: Function as PropType,\n /** 输入框值发生变化时触发,`context.trigger` 表示触发输入框值变化的来源:文本输入触发、清除按钮触发、失去焦点等 */\n onInputChange: Function as PropType,\n /** 下拉框显示或隐藏时触发 */\n onPopupVisibleChange: Function as PropType,\n /** 多选模式下,选中数据被移除时触发 */\n onRemove: Function as PropType,\n /** 输入值变化时,触发搜索事件。主要用于远程搜索新数据 */\n onSearch: Function as PropType,\n};\n","import { defineComponent, ref, computed, watch, onMounted, toRefs } from 'vue';\nimport { isNil, isArray, isEmpty, isBoolean, isFunction } from 'lodash-es';\n\nimport { findParentValues } from '@tdesign/common-js/tree-select/utils';\n\nimport Tree, { TreeProps, TreeNodeModel, TreeNodeValue } from '../tree';\nimport SelectInput, { TdSelectInputProps } from '../select-input';\nimport FakeArrow from '../common-components/fake-arrow';\nimport { PopupVisibleChangeContext } from '../popup';\n\nimport { INodeOptions } from './types';\nimport { TreeSelectValue, TdTreeSelectProps, TreeSelectValueChangeTrigger } from './type';\nimport { TreeOptionData } from '../common';\nimport props from './props';\n\n// hooks\nimport {\n useConfig,\n useVModel,\n useDisabled,\n useReadonly,\n useTNodeJSX,\n usePrefixClass,\n useTNodeDefault,\n useDefaultValue,\n} from '@tdesign/shared-hooks';\n\nexport default defineComponent({\n name: 'TTreeSelect',\n props,\n setup(props: TdTreeSelectProps, { slots, expose }) {\n const renderTNodeJSX = useTNodeJSX();\n const renderDefaultTNode = useTNodeDefault();\n const classPrefix = usePrefixClass();\n const { globalConfig } = useConfig('treeSelect');\n const formDisabled = useDisabled();\n const isReadonly = useReadonly();\n\n // ref\n const treeRef = ref(null);\n\n // data\n const actived = ref([]);\n const expanded = ref([]);\n const nodeInfo = ref(null);\n const treeKey = ref(0);\n\n // model\n const { value, modelValue, popupVisible, inputValue } = toRefs(props);\n const [treeSelectValue, setTreeSelectValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const [innerVisible, setInnerVisible] = useDefaultValue(\n popupVisible,\n false,\n props.onPopupVisibleChange,\n 'popupVisible',\n );\n const [innerInputValue, setInnerInputValue] = useDefaultValue(\n inputValue,\n props.defaultInputValue,\n props.onInputChange,\n 'inputValue',\n );\n\n /**\n * 设置树的所有父节点展开\n */\n const setTreeParentsExpanded = () => {\n const getParents = (value: TreeSelectValue) =>\n findParentValues(props.data, value, realValue.value, realChildren.value);\n\n let treeParents: TreeSelectValue[] = [];\n if (treeSelectValue.value) {\n if (Array.isArray(treeSelectValue.value) && props.multiple) {\n treeParents = treeSelectValue.value.flatMap(getParents);\n } else if (!Array.isArray(treeSelectValue.value) && !props.multiple) {\n treeParents = getParents(treeSelectValue.value);\n }\n }\n expanded.value = Array.from(new Set([...expanded.value, ...treeParents]));\n };\n\n // watch\n watch(treeSelectValue, async () => {\n await changeNodeInfo();\n if (!props.multiple) {\n actived.value = nodeInfo.value ? [nodeInfo.value.value] : [];\n }\n setTreeParentsExpanded();\n });\n watch(\n () => props.data,\n async () => {\n await changeNodeInfo();\n treeRerender();\n },\n {\n deep: true,\n },\n );\n\n // computed\n /** filterByText keep pace with innerInputValue */\n const filterByText = computed(() => {\n const value = innerInputValue.value || '';\n if (value === '') {\n return null;\n }\n return (node: TreeNodeModel) => {\n if (isFunction(props.filter)) {\n const filter: boolean | Promise = props.filter(String(value), node);\n if (isBoolean(filter)) {\n return filter;\n }\n }\n return node.data[realLabel.value].indexOf(value) >= 0;\n };\n });\n const tDisabled = computed(() => {\n return formDisabled.value || props.disabled;\n });\n\n const inputPlaceholder = computed(\n () => (innerVisible.value && nodeInfo.value?.label) || props.placeholder || globalConfig.value.placeholder,\n );\n\n const popupClass = computed(() => {\n return [`${classPrefix.value}-select__dropdown`, 'narrow-scrollbar'];\n });\n\n const dropdownInnerSize = computed(() => {\n return {\n small: 's',\n medium: 'm',\n large: 'l',\n }[props.size];\n });\n\n const isObjectValue = computed(() => props.valueType === 'object');\n\n const checked = computed((): Array => {\n if (props.multiple) {\n if (isObjectValue.value) {\n return isArray(treeSelectValue.value)\n ? (treeSelectValue.value as Array).map((item) => (item as INodeOptions).value)\n : [];\n }\n return isArray(treeSelectValue.value)\n ? (treeSelectValue.value as Array).map((item) => item as TreeNodeValue)\n : [];\n }\n return [];\n });\n\n const multiLimitDisabled = computed(() => {\n return (\n props.multiple &&\n !!props.max &&\n isArray(treeSelectValue.value) &&\n props.max <= (treeSelectValue.value as Array).length\n );\n });\n\n const realLabel = computed(() => {\n if (!isEmpty(props.treeProps) && !isEmpty((props.treeProps as TreeProps).keys)) {\n return (props.treeProps as TreeProps).keys.label || 'label';\n }\n return props.keys?.label || 'label';\n });\n\n const realValue = computed(() => {\n if (!isEmpty(props.treeProps) && !isEmpty((props.treeProps as TreeProps).keys)) {\n return (props.treeProps as TreeProps).keys.value || 'value';\n }\n return props.keys?.value || 'value';\n });\n\n const realChildren = computed(() => {\n if (!isEmpty(props.treeProps) && !isEmpty((props.treeProps as TreeProps).keys)) {\n return (props.treeProps as TreeProps).keys.children || 'children';\n }\n return props.keys?.children || 'children';\n });\n\n onMounted(async () => {\n setTreeParentsExpanded();\n if (!treeSelectValue.value && props.defaultValue) {\n change(props.defaultValue, null, 'uncheck');\n }\n if (isObjectValue.value) {\n actived.value = isArray(treeSelectValue.value)\n ? (treeSelectValue.value as Array).map((item) => (item as INodeOptions)?.value)\n : [(treeSelectValue.value as INodeOptions)?.value];\n } else {\n (actived.value as TreeSelectValue) = isArray(treeSelectValue.value)\n ? treeSelectValue.value\n : [treeSelectValue.value];\n }\n changeNodeInfo();\n });\n\n const change = (\n valueParam: TreeSelectValue,\n node: TreeNodeModel,\n trigger: TreeSelectValueChangeTrigger,\n ) => {\n setTreeSelectValue(valueParam, { node, trigger });\n changeNodeInfo();\n };\n\n const clear = (content: { e: MouseEvent }) => {\n const defaultValue: TreeSelectValue = props.multiple ? [] : '';\n actived.value = [];\n change(defaultValue, null, 'clear');\n props.onClear?.({ e: content.e });\n };\n\n const treeNodeChange = (\n valueParam: Array,\n context: { node: TreeNodeModel; e?: MouseEvent },\n ) => {\n let current: TreeSelectValue = valueParam;\n if (isObjectValue.value) {\n current = valueParam.map(getNodeItem);\n }\n change(current, context.node, 'check');\n };\n\n const treeNodeActive = (\n valueParam: Array,\n context: { node: TreeNodeModel; e?: MouseEvent },\n ) => {\n if (!props.multiple) {\n setInnerVisible(false, context);\n }\n // 多选模式屏蔽 Active 事件和取消选中状态改变\n if (props.multiple || !context.node.actived) {\n return;\n }\n // 单选模式重复选择不清空\n if (treeSelectValue.value === context.node.data[realValue.value]) {\n return;\n }\n let current: TreeSelectValue = valueParam;\n if (isObjectValue.value) {\n const nodeValue = isEmpty(valueParam) ? '' : valueParam[0];\n current = getNodeItem(nodeValue);\n } else {\n current = isEmpty(valueParam) ? '' : valueParam[0];\n }\n change(current, context.node, 'check');\n actived.value = valueParam;\n };\n\n const treeNodeExpand = (valueParam: Array) => {\n expanded.value = valueParam;\n };\n\n const treeNodeLoad = () => {\n changeNodeInfo();\n };\n\n const inputChange = (value: string): boolean => {\n // 未打开状态不处理输入框输入\n if (!innerVisible.value) {\n props.onSearch?.(String(value));\n return;\n }\n setInnerInputValue(value);\n props.onSearch?.(String(value));\n };\n\n const tagChange: TdSelectInputProps['onTagChange'] = (value, context) => {\n const { trigger, index } = context;\n if (['tag-remove', 'backspace'].includes(trigger)) {\n isArray(treeSelectValue.value) && (treeSelectValue.value as Array).splice(index, 1);\n }\n props.onRemove?.({ value, data: null, e: context && (context.e as MouseEvent) });\n change(treeSelectValue.value, null, trigger as 'tag-remove' | 'backspace');\n };\n\n const handlePopupVisibleChange = (visible: boolean, context: PopupVisibleChangeContext) => {\n setInnerVisible(visible, context);\n // 在通过点击选择器打开弹窗时 清空此前的输入内容 避免在关闭时就清空引起的闪烁问题\n if (visible && context.trigger === 'trigger-element-click') setInnerInputValue('');\n };\n const changeNodeInfo = async () => {\n if (!props.multiple) {\n if (treeSelectValue.value || treeSelectValue.value === 0) {\n nodeInfo.value = getSingleNodeInfo();\n } else {\n nodeInfo.value = '';\n }\n } else if (props.multiple) {\n if (isArray(treeSelectValue.value)) {\n nodeInfo.value = getMultipleNodeInfo();\n } else {\n nodeInfo.value = [];\n }\n } else {\n nodeInfo.value = null;\n }\n };\n\n const getSingleNodeInfo = () => {\n const nodeValue = isObjectValue.value ? (treeSelectValue.value as INodeOptions).value : treeSelectValue.value;\n return getNodeItem(nodeValue);\n };\n\n const getMultipleNodeInfo = () => {\n return (treeSelectValue.value as Array).map((value) => {\n const nodeValue = isObjectValue.value ? (value as INodeOptions).value : value;\n return getNodeItem(nodeValue);\n });\n };\n\n const getNodeItem = (targetValue: TreeSelectValue) => {\n if (treeRef.value) {\n const node = treeRef.value.getItem(targetValue);\n if (node) {\n return {\n ...node.data,\n label: node.data[realLabel.value],\n value: node.data[realValue.value],\n };\n }\n }\n const node = getTreeNode(props.data, targetValue);\n if (node) {\n return node;\n }\n return {\n label: targetValue,\n value: targetValue,\n };\n };\n\n const getTreeNode = (data: Array, targetValue: TreeSelectValue): TreeSelectValue | null => {\n for (let i = 0, len = data.length; i < len; i++) {\n const item = data[i];\n if (item[realValue.value] === targetValue) {\n return {\n ...item,\n label: item[realLabel.value],\n value: item[realValue.value],\n };\n }\n if (item?.[realChildren.value]) {\n const result = getTreeNode(item?.[realChildren.value], targetValue);\n if (!isNil(result)) {\n return result;\n }\n }\n }\n return null;\n };\n\n const treeRerender = () => {\n treeKey.value += 1;\n };\n\n const renderTree = () => (\n \n renderDefaultTNode('empty', {\n defaultNode:
    {globalConfig.value.empty}
    ,\n }),\n }}\n {...(props.treeProps as TdTreeSelectProps['treeProps'])}\n />\n );\n\n const renderSuffixIcon = () => (\n \n );\n\n expose({\n treeRef,\n });\n\n return () => (\n renderTNodeJSX('prefixIcon')}\n suffix={props.suffix}\n suffixIcon={() => {\n if (props.suffixIcon || slots.suffixIcon) {\n return renderTNodeJSX('suffixIcon');\n }\n\n return renderSuffixIcon();\n }}\n onClear={clear}\n onBlur={(_: any, context) => {\n props.onBlur?.({ value: treeSelectValue.value, e: context.e as FocusEvent });\n }}\n onFocus={(_: any, context: { e: FocusEvent }) => {\n props.onFocus?.({ value: treeSelectValue.value, e: context.e });\n }}\n valueDisplay={() =>\n renderTNodeJSX('valueDisplay', {\n params: props.multiple\n ? {\n value: nodeInfo.value,\n onClose: (index: number) => {\n const value = nodeInfo.value.map((node: TreeOptionData) => node.value);\n tagChange(value, {\n trigger: 'tag-remove',\n index,\n item: value[index],\n });\n },\n }\n : {\n value: nodeInfo.value || { [realLabel.value]: '', [realValue.value]: undefined },\n },\n })\n }\n v-slots={{\n suffix: slots.suffix,\n panel: () => (\n \n {renderTNodeJSX('panelTopContent')}\n \n {renderDefaultTNode('loadingText', {\n defaultNode:
    {globalConfig.value.loadingText}
    ,\n })}\n

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

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

    \n
      \n {props.colors.map((color) => {\n return (\n {\n if (props.disabled) {\n return;\n }\n handleClick(color);\n }}\n >\n
      \n \n
      \n \n );\n })}\n
    \n
    \n );\n };\n },\n});\n","import { defineComponent, ref, toRefs, watch, computed } from 'vue';\nimport { cloneDeep, isNull, isUndefined } from 'lodash-es';\nimport {\n Color,\n DEFAULT_COLOR,\n DEFAULT_LINEAR_GRADIENT,\n DEFAULT_SYSTEM_SWATCH_COLORS,\n getColorObject,\n GradientColorPoint,\n initColorFormat,\n TD_COLOR_USED_COLORS_MAX_SIZE,\n} from '@tdesign/common-js/color-picker/index';\nimport { useConfig, useVModel, useDefaultValue, useCommonClassName } from '@tdesign/shared-hooks';\nimport props from '../../color-picker-panel-props';\nimport PanelHeader from './header';\nimport LinearGradient from './linear-gradient';\nimport SaturationPanel from './saturation';\nimport HueSlider from './hue';\nimport AlphaSlider from './alpha';\nimport FormatPanel from '../format';\nimport SwatchesPanel from './swatches';\nimport type { TdColorPickerProps, ColorPickerChangeTrigger } from '../../type';\nimport type { TdColorModes } from '../../types';\nimport { useBaseClassName } from '../../hooks';\n\nexport default defineComponent({\n name: 'ColorPanel',\n props: {\n ...props,\n togglePopup: {\n type: Function,\n },\n },\n setup(props) {\n const baseClassName = useBaseClassName();\n const { STATUS } = useCommonClassName();\n const { t, globalConfig } = useConfig('colorPicker');\n const statusClassNames = STATUS.value;\n const { value: inputValue, modelValue, recentColors } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(inputValue, modelValue, props.defaultValue, props.onChange);\n const [innerRecentColors, setInnerRecentColors] = useDefaultValue(\n recentColors,\n props.defaultRecentColors,\n props.onRecentColorsChange,\n 'recentColors',\n );\n\n const getModeByColor = (input: string) => {\n if (props.colorModes.length === 1) return props.colorModes[0];\n return props.colorModes.includes('linear-gradient') && Color.isGradientColor(input)\n ? 'linear-gradient'\n : 'monochrome';\n };\n const mode = ref(getModeByColor(innerValue.value));\n\n const isGradient = computed(() => mode.value === 'linear-gradient');\n const defaultEmptyColor = computed(() => (isGradient.value ? DEFAULT_LINEAR_GRADIENT : DEFAULT_COLOR));\n\n const color = ref(new Color(innerValue.value || defaultEmptyColor.value));\n\n const formatModel = ref(initColorFormat(props.format, props.enableAlpha));\n\n /**\n * 添加最近使用颜色\n * @returns void\n */\n const addRecentlyUsedColor = () => {\n if (innerRecentColors.value === null || innerRecentColors.value === false) {\n return;\n }\n const colors = cloneDeep(innerRecentColors.value as string[]) || [];\n const currentColor = color.value.isGradient ? color.value.linearGradient : color.value.rgba;\n const index = colors.indexOf(currentColor);\n if (index > -1) {\n colors.splice(index, 1);\n }\n colors.unshift(currentColor);\n if (colors.length > TD_COLOR_USED_COLORS_MAX_SIZE) {\n colors.length = TD_COLOR_USED_COLORS_MAX_SIZE;\n }\n handleRecentlyUsedColorsChange(colors);\n };\n\n /**\n * 最近使用颜色变更时触发\n * @param colors\n */\n const handleRecentlyUsedColorsChange = (colors: string[]) => {\n setInnerRecentColors(colors);\n };\n\n /**\n * onChange\n * @param trigger\n */\n const emitColorChange = (trigger?: ColorPickerChangeTrigger) => {\n const value = color.value.getFormattedColor(props.format, props.enableAlpha);\n setInnerValue(value, {\n color: getColorObject(color.value),\n trigger: trigger || 'palette-saturation-brightness',\n });\n };\n\n watch(\n () => innerValue.value,\n (newColor) => {\n const newMode = getModeByColor(newColor);\n mode.value = newMode;\n color.value.isGradient = newMode === 'linear-gradient';\n const currentColor = color.value.getFormattedColor(props.format, props.enableAlpha);\n if (currentColor !== newColor) {\n color.value.update(newColor);\n }\n },\n );\n\n /**\n * mode change\n * @param newMode\n * @returns\n */\n const handleModeChange = (newMode: TdColorModes) => {\n mode.value = newMode;\n\n const isGradientMode = newMode === 'linear-gradient';\n color.value.isGradient = isGradientMode;\n\n if (isGradientMode) {\n color.value.update(\n color.value.gradientColors.length > 0 ? color.value.linearGradient : DEFAULT_LINEAR_GRADIENT,\n );\n } else {\n color.value.update(color.value.rgba);\n }\n\n emitColorChange();\n };\n\n /**\n * 饱和度亮度变化\n * @param param0\n */\n const handleSatAndValueChange = ({ saturation, value }: { saturation: number; value: number }) => {\n const { saturation: sat, value: val } = color.value;\n let changeTrigger: ColorPickerChangeTrigger = 'palette-saturation-brightness';\n if (value !== val && saturation !== sat) {\n color.value.saturation = saturation;\n color.value.value = value;\n changeTrigger = 'palette-saturation-brightness';\n } else if (saturation !== sat) {\n color.value.saturation = saturation;\n changeTrigger = 'palette-saturation';\n } else if (value !== val) {\n color.value.value = value;\n changeTrigger = 'palette-brightness';\n } else {\n return;\n }\n\n emitColorChange(changeTrigger);\n };\n\n /**\n * 色相变化\n * @param hue\n */\n const handleHueChange = (hue: number) => {\n color.value.hue = hue;\n emitColorChange('palette-hue-bar');\n props.onPaletteBarChange?.({\n color: getColorObject(color.value),\n });\n };\n\n /**\n * 透明度变化\n * @param alpha\n */\n const handleAlphaChange = (alpha: number) => {\n color.value.alpha = alpha;\n emitColorChange('palette-alpha-bar');\n };\n\n /**\n * 输入框触发改变\n * @param input\n * @param alpha\n */\n const handleInputChange = (input: string, alpha?: number) => {\n color.value.update(input);\n color.value.alpha = alpha;\n emitColorChange('input');\n };\n\n /**\n * 渐变改变\n * @param param0\n */\n const handleGradientChange = ({\n key,\n payload,\n }: {\n key: 'degree' | 'selectedId' | 'colors';\n payload: number | string | GradientColorPoint[];\n }) => {\n let trigger: ColorPickerChangeTrigger = 'palette-saturation-brightness';\n switch (key) {\n case 'degree':\n color.value.gradientDegree = payload as number;\n trigger = 'input';\n break;\n case 'selectedId':\n color.value.gradientSelectedId = payload as string;\n break;\n case 'colors':\n color.value.gradientColors = payload as GradientColorPoint[];\n break;\n }\n emitColorChange(trigger);\n };\n\n /**\n * 色块点击\n * @param type\n * @param value\n */\n const handleSetColor = (value: string, trigger: ColorPickerChangeTrigger) => {\n const newMode = getModeByColor(value);\n mode.value = newMode;\n color.value.isGradient = newMode === 'linear-gradient';\n color.value.update(value);\n emitColorChange(trigger);\n };\n\n return () => {\n const baseProps = {\n color: color.value,\n disabled: props.disabled,\n };\n\n // 只支持渐变模式\n const onlySupportGradient = props.colorModes.length === 1 && props.colorModes.includes('linear-gradient');\n\n // 最近使用颜色\n let recentColors = innerRecentColors.value;\n if (onlySupportGradient && Array.isArray(recentColors)) {\n recentColors = recentColors.filter((color) => Color.isGradientColor(color));\n }\n const showUsedColors = !!Array.isArray(recentColors);\n\n // 系统预设颜色\n let systemColors = props.swatchColors;\n if (isUndefined(systemColors)) {\n systemColors = [...DEFAULT_SYSTEM_SWATCH_COLORS];\n }\n if (isNull(systemColors)) {\n systemColors = [];\n }\n if (onlySupportGradient) {\n systemColors = systemColors.filter((color) => Color.isGradientColor(color));\n }\n const showSystemColors = Array.isArray(systemColors) && systemColors.length;\n\n const renderSwatches = () => {\n if (!showSystemColors && !showUsedColors) return null;\n return (\n <>\n
    \n {showUsedColors ? (\n handleSetColor(color, 'recent')}\n onChange={handleRecentlyUsedColorsChange}\n />\n ) : null}\n {showSystemColors ? (\n handleSetColor(color, 'preset')}\n />\n ) : null}\n
    \n \n );\n };\n\n return (\n
    \n \n
    \n {isGradient.value ? (\n \n ) : null}\n\n \n\n
    \n
    \n \n {props.enableAlpha ? : null}\n
    \n\n {props.showPrimaryColorPreview ? (\n
    \n \n
    \n ) : null}\n
    \n\n \n {renderSwatches()}\n
    \n
    \n );\n };\n },\n});\n","import { computed, defineComponent } from 'vue';\nimport props from './color-picker-panel-props';\nimport ColorPanel from './components/panel';\nimport { usePrefixClass } from '@tdesign/shared-hooks';\nimport { pickBy } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TColorPickerPanel',\n inheritAttrs: false,\n props,\n setup(props, { attrs }) {\n const newProps = computed(() => pickBy({ ...props, ...attrs }, (v) => v !== undefined));\n const prefix = usePrefixClass();\n return () => ;\n },\n});\n","import arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport basePickBy from './_basePickBy.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\n\n/**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\nfunction pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = baseIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n}\n\nexport default pickBy;\n","import { defineComponent, PropType, ref, watch } from 'vue';\nimport TInput from '../../../input';\nimport { Color, getColorObject } from '../../utils';\nimport { TdColorPickerProps } from '../../type';\nimport { useBaseClassName } from '../../hooks';\nimport { useCommonClassName } from '@tdesign/shared-hooks';\n\nexport default defineComponent({\n name: 'DefaultTrigger',\n inheritAttrs: false,\n props: {\n color: {\n type: String,\n default: '',\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n borderless: {\n type: Boolean,\n default: false,\n },\n clearable: {\n type: Boolean,\n default: false,\n },\n inputProps: {\n type: Object as PropType,\n default: () => {\n return {\n autoWidth: true,\n };\n },\n },\n onTriggerChange: {\n type: Function,\n default: () => {\n return () => {};\n },\n },\n onTriggerClear: {\n type: Function,\n default: () => {\n return () => {};\n },\n },\n size: {\n type: String as PropType,\n default: 'medium',\n },\n },\n setup(props) {\n const baseClassName = useBaseClassName();\n const value = ref(props.color);\n const { SIZE: sizeClassNames } = useCommonClassName();\n watch(\n () => [props.color],\n () => (value.value = props.color),\n );\n\n const handleChange = (input: string) => {\n if (input !== props.color) {\n props.onTriggerChange(value.value, {\n color: getColorObject(new Color(input)),\n trigger: 'input',\n });\n }\n };\n\n const handleClear = (context: { e: MouseEvent }) => props.onTriggerClear?.(context);\n\n return () => {\n const inputSlots = {\n label: () => {\n return (\n
    \n \n
    \n );\n },\n };\n return (\n \n );\n };\n },\n});\n","import { defineComponent, ref, toRefs } from 'vue';\nimport { useVModel, useDefaultValue, useTNodeDefault } from '@tdesign/shared-hooks';\n\nimport props from './props';\nimport { Popup as TPopup } from '../popup';\nimport ColorPanel from './components/panel';\nimport DefaultTrigger from './components/trigger';\nimport { useBaseClassName } from './hooks';\n\nexport default defineComponent({\n name: 'TColorPicker',\n props,\n setup(props) {\n const baseClassName = useBaseClassName();\n const renderTNodeJSXDefault = useTNodeDefault();\n const visible = ref(false);\n const setVisible = (value: boolean) => (visible.value = value);\n\n const { value: inputValue, modelValue, recentColors } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(inputValue, modelValue, props.defaultValue, props.onChange);\n const [innerRecentColors, setInnerRecentColors] = useDefaultValue(\n recentColors,\n props.defaultRecentColors,\n props.onRecentColorsChange,\n 'recentColors',\n );\n\n const refTrigger = ref();\n\n const handleClear = (context: { e: MouseEvent }) => props.onClear?.(context);\n\n const renderPopupContent = () => {\n if (props.disabled) {\n return null;\n }\n\n return (\n \n );\n };\n\n return () => {\n const popProps = {\n placement: 'bottom-left',\n ...((props.popupProps as any) || {}),\n trigger: 'click',\n attach: 'body',\n overlayClassName: [baseClassName.value],\n visible: visible.value,\n overlayInnerStyle: {\n padding: 0,\n },\n onVisibleChange: (\n visible: boolean,\n context: {\n trigger: string;\n },\n ) => {\n if (context.trigger === 'document') {\n setVisible(false);\n }\n },\n };\n return (\n \n
    setVisible(!visible.value)} ref={refTrigger}>\n {renderTNodeJSXDefault(\n 'default',\n ,\n )}\n
    \n
    \n );\n };\n },\n});\n","import _ColorPickerPanel from './color-picker-panel';\nimport _ColorPicker from './color-picker';\nimport { withInstall } from '@tdesign/shared-utils';\nimport { TdColorPickerProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type ColorPickerProps = TdColorPickerProps;\nexport type ColorPickerPanelProps = TdColorPickerProps;\n\nexport const ColorPickerPanel = withInstall(_ColorPickerPanel);\nexport const ColorPicker = withInstall(_ColorPicker);\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdAvatarProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 头像替换文本,仅当图片加载失败时有效 */\n alt: {\n type: String,\n default: '',\n },\n /** 子元素内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 子元素内容,同 content */\n default: {\n type: [String, Function] as PropType,\n },\n /** 加载失败时隐藏图片 */\n hideOnLoadFailed: Boolean,\n /** 图标 */\n icon: {\n type: Function as PropType,\n },\n /** 图片地址 */\n image: {\n type: String,\n default: '',\n },\n /** 透传至 Image 组件 */\n imageProps: {\n type: Object as PropType,\n },\n /** 形状 */\n shape: {\n type: String as PropType,\n default: 'circle' as TdAvatarProps['shape'],\n validator(val: TdAvatarProps['shape']): boolean {\n if (!val) return true;\n return ['circle', 'round'].includes(val);\n },\n },\n /** 尺寸,示例值:small/medium/large/24px/38px 等。优先级高于 AvatarGroup.size 。Avatar 单独存在时,默认值为 medium。如果父组件存在 AvatarGroup,默认值便由 AvatarGroup.size 决定 */\n size: {\n type: String,\n default: '',\n },\n /** 图片加载失败时触发 */\n onError: Function as PropType,\n};\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdImageProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 图片描述 */\n alt: {\n type: String,\n default: '',\n },\n /** 自定义图片加载失败状态下的显示内容 */\n error: {\n type: [String, Function] as PropType,\n },\n /** 图片加载失败时,显示当前链接设置的图片地址。如果要使用组件图标或完全自定义加载失败时显示的内容,请更为使用 `error` */\n fallback: {\n type: String,\n default: '',\n },\n /** 图片填充模式 */\n fit: {\n type: String as PropType,\n default: 'fill' as TdImageProps['fit'],\n validator(val: TdImageProps['fit']): boolean {\n if (!val) return true;\n return ['contain', 'cover', 'fill', 'none', 'scale-down'].includes(val);\n },\n },\n /** 是否展示为图集样式 */\n gallery: Boolean,\n /** 是否开启图片懒加载 */\n lazy: Boolean,\n /** 自定义加载中状态的图片内容,如:“加载中” */\n loading: {\n type: [String, Function] as PropType,\n },\n /** 图片上方的浮层内容 */\n overlayContent: {\n type: [String, Function] as PropType,\n },\n /** 浮层 `overlayContent` 出现的时机 */\n overlayTrigger: {\n type: String as PropType,\n default: 'always' as TdImageProps['overlayTrigger'],\n validator(val: TdImageProps['overlayTrigger']): boolean {\n if (!val) return true;\n return ['always', 'hover'].includes(val);\n },\n },\n /** 占位元素,展示层级低于 `loading` `error` 和图片本身,值类型为字符串时表示占位图片地址 */\n placeholder: {\n type: [String, Function] as PropType,\n },\n /** 等同于原生的 object-position 属性,可选值为 top right bottom left 或 string,可以自定义任何单位,px 或者 百分比 */\n position: {\n type: String,\n default: 'center',\n },\n /** `` 标签的原生属性,[MDN 定义](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy) */\n referrerpolicy: {\n type: String as PropType,\n default: 'strict-origin-when-cross-origin' as TdImageProps['referrerpolicy'],\n validator(val: TdImageProps['referrerpolicy']): boolean {\n if (!val) return true;\n return [\n 'no-referrer',\n 'no-referrer-when-downgrade',\n 'origin',\n 'origin-when-cross-origin',\n 'same-origin',\n 'strict-origin',\n 'strict-origin-when-cross-origin',\n 'unsafe-url',\n ].includes(val);\n },\n },\n /** 图片圆角类型 */\n shape: {\n type: String as PropType,\n default: 'square' as TdImageProps['shape'],\n validator(val: TdImageProps['shape']): boolean {\n if (!val) return true;\n return ['circle', 'round', 'square'].includes(val);\n },\n },\n /** 用于显示图片的链接或原始图片文件对象 */\n src: {\n type: [String, Object] as PropType,\n },\n /** 图片链接集合,用于支持特殊格式的图片,如 `.avif` 和 `.webp`。会优先加载 `srcset` 中的图片格式,浏览器不支持的情况下,加载 `src` 设置的图片地址 */\n srcset: {\n type: Object as PropType,\n },\n /** 图片加载失败时触发 */\n onError: Function as PropType,\n /** 图片加载完成时触发 */\n onLoad: Function as PropType,\n};\n","import { defineComponent, ref, onMounted, computed, onUnmounted, watch, toRefs } from 'vue';\nimport { omit, isString, isFunction } from 'lodash-es';\n\nimport { ImageErrorIcon, ImageIcon } from 'tdesign-icons-vue-next';\nimport observe from '@tdesign/common-js/utils/observe';\nimport { useConfig } from '../config-provider/hooks/useConfig';\nimport { useTNodeJSX, useTNodeDefault, useImagePreviewUrl } from '@tdesign/shared-hooks';\nimport props from './props';\nimport Space from '../space';\n\nexport default defineComponent({\n name: 'TImage',\n props,\n setup(props) {\n const divRef = ref(null);\n const imgRef = ref(null);\n let io: IntersectionObserver = null;\n\n const { src } = toRefs(props);\n\n const renderTNodeJSX = useTNodeJSX();\n\n onMounted(() => {\n //在nuxt3中img的onload事件会失效\n if (imgRef.value?.complete && !props.lazy) {\n triggerHandleLoad();\n }\n\n if (!props.lazy || !divRef.value) return;\n\n const ioObserver = observe(divRef.value, null, handleLoadImage, 0);\n io = ioObserver;\n });\n onUnmounted(() => {\n divRef.value && io && io.unobserve(divRef.value);\n });\n\n const { classPrefix, globalConfig } = useConfig('image');\n\n // replace image url\n const imageStrSrc = ref(src.value);\n\n watch(\n [src, globalConfig],\n ([src, globalConfig]) => {\n const { replaceImageSrc } = globalConfig || {};\n const tmpUrl = isFunction(replaceImageSrc) ? replaceImageSrc(props) : src;\n if (tmpUrl === imageStrSrc.value && imageStrSrc.value) return;\n imageStrSrc.value = tmpUrl;\n },\n { immediate: true },\n );\n\n const { previewUrl } = useImagePreviewUrl(imageStrSrc);\n\n watch([previewUrl], () => {\n hasError.value = false;\n isLoaded.value = false;\n });\n\n const shouldLoad = ref(!props.lazy);\n const handleLoadImage = () => {\n shouldLoad.value = true;\n };\n\n const isLoaded = ref(false);\n const handleLoad = (e: Event) => {\n isLoaded.value = true;\n props.onLoad?.({ e });\n };\n const triggerHandleLoad = () => {\n const loadEvent = new Event('load');\n Object.defineProperty(loadEvent, 'target', {\n value: imgRef.value,\n enumerable: true,\n });\n handleLoad(loadEvent);\n };\n const hasError = ref(false);\n const handleError = (e: Event) => {\n hasError.value = true;\n props.onError?.({ e });\n if (props.fallback) {\n imageStrSrc.value = props.fallback;\n hasError.value = false;\n }\n };\n\n const hasMouseEvent = computed(() => {\n return props.overlayTrigger === 'hover';\n });\n\n const imageClasses = computed(() => [\n `${classPrefix.value}-image`,\n `${classPrefix.value}-image--fit-${props.fit}`,\n `${classPrefix.value}-image--position-${props.position}`,\n ]);\n\n const shouldShowOverlay = ref(!hasMouseEvent.value);\n const handleToggleOverlay = () => {\n if (hasMouseEvent.value) {\n shouldShowOverlay.value = !shouldShowOverlay.value;\n }\n };\n\n const renderPlaceholder = () => {\n const placeholder = renderTNodeJSX('placeholder');\n if (!placeholder) return null;\n return
    {placeholder}
    ;\n };\n\n const renderGalleryShadow = () => {\n if (!props.gallery) return null;\n return \n );\n };\n\n function renderImageSrcset() {\n return (\n \n {Object.entries(props.srcset).map(([type, url]) => (\n \n ))}\n {renderImage()}\n \n );\n }\n\n function renderImage() {\n // string | File\n const url = isString(imageStrSrc.value) ? imageStrSrc.value : previewUrl.value;\n return (\n \n );\n }\n\n const renderTNodDefault = useTNodeDefault();\n\n return () => {\n return (\n \n {renderPlaceholder()}\n {renderGalleryShadow()}\n\n {(hasError.value || !shouldLoad.value) &&
    }\n {!(hasError.value || !shouldLoad.value) &&\n (props.srcset && Object.keys(props.srcset).length ? renderImageSrcset() : renderImage())}\n {!(hasError.value || !shouldLoad.value) && !isLoaded.value && (\n
    \n {renderTNodeJSX('loading') || (\n \n \n {isString(props.loading) ? props.loading : globalConfig.value.loadingText}\n \n )}\n
    \n )}\n\n {hasError.value && (\n
    \n {renderTNodDefault('error', {\n defaultNode: (\n \n \n {isString(props.error) ? props.error : globalConfig.value.errorText}\n \n ),\n })}\n
    \n )}\n\n {renderOverlay()}\n
    \n );\n };\n },\n});\n","import _Image from './image';\nimport { withInstall } from '@tdesign/shared-utils';\nimport { TdImageProps } from './type';\n\nimport './style';\n\nexport type ImageProps = TdImageProps;\nexport * from './type';\n\nexport const Image = withInstall(_Image);\nexport default Image;\n","import { computed, defineComponent, inject, nextTick, onMounted, onUpdated, ref, watch } from 'vue';\nimport props from './props';\nimport { TdAvatarProps } from './type';\nimport { useContent, useTNodeJSX, usePrefixClass, useCommonClassName } from '@tdesign/shared-hooks';\n\nimport Image, { ImageProps } from '../image';\n\nexport default defineComponent({\n name: 'TAvatar',\n props,\n setup(props: TdAvatarProps) {\n const COMPONENT_NAME = usePrefixClass('avatar');\n const renderContent = useContent();\n const renderTNodeJSX = useTNodeJSX();\n const { SIZE } = useCommonClassName();\n const avatarGroup = inject('avatarGroup', undefined);\n const avatar = ref(null);\n const avatarChild = ref(null);\n const isImgExist = ref(true);\n // 内容区在左右两边的间距保持为4\n const gap = ref(4);\n const scale = ref('');\n\n const sizeValue = computed(() => props.size || avatarGroup?.size);\n const isCustomSize = computed(() => sizeValue.value && !SIZE.value[sizeValue.value]);\n\n const customAvatarSize = computed(() => {\n return isCustomSize.value\n ? {\n width: sizeValue.value,\n height: sizeValue.value,\n 'font-size': `${Number.parseInt(sizeValue.value, 10) / 2}px`,\n }\n : {};\n });\n const customImageSize = computed(() => {\n return isCustomSize.value\n ? {\n height: sizeValue.value,\n width: sizeValue.value,\n }\n : {};\n });\n const customCharacterSize = computed(() => {\n return {\n transform: scale.value,\n };\n });\n\n const handleImgLoadError: ImageProps['onError'] = ({ e }) => {\n const { hideOnLoadFailed } = props;\n isImgExist.value = !hideOnLoadFailed;\n props.onError?.({ e });\n };\n // 设置字符头像大小自适应\n const setScaleParams = () => {\n const $avatar = avatar.value as HTMLElement;\n const $avatarChild = avatarChild.value as HTMLElement;\n const avatarWidth = $avatar?.offsetWidth;\n const avatarChildWidth = $avatarChild?.offsetWidth;\n if (gap.value * 2 < avatarWidth) {\n scale.value =\n avatarChildWidth > avatarWidth - gap.value * 2\n ? `scale(${(avatarWidth - gap.value * 2) / avatarChildWidth})`\n : 'scale(1)';\n }\n };\n\n onMounted(() => {\n nextTick(() => {\n setScaleParams();\n });\n });\n\n onUpdated(() => {\n nextTick(() => {\n setScaleParams();\n });\n });\n\n watch(\n () => props.image,\n (val) => {\n if (val) {\n // 重置 flag,避免切换后无法渲染\n isImgExist.value = true;\n }\n },\n );\n\n return () => {\n let content = renderContent('default', 'content');\n const icon = renderTNodeJSX('icon');\n const isIconOnly = icon && !content;\n const { shape, image, alt } = props;\n const avatarClass = [\n `${COMPONENT_NAME.value}`,\n SIZE.value[sizeValue.value],\n {\n [`${COMPONENT_NAME.value}--circle`]: shape === 'circle',\n [`${COMPONENT_NAME.value}--round`]: shape === 'round',\n [`${COMPONENT_NAME.value}__icon`]: !!isIconOnly,\n },\n ];\n content = (\n \n {content}\n \n );\n if (icon) {\n content = [icon, !isIconOnly ? content : ''];\n }\n\n if (image && isImgExist.value) {\n content = (\n \n );\n }\n return (\n
    \n {content}\n
    \n );\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdAvatarGroupProps } from '../avatar/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 图片之间的层叠关系,可选值:左侧图片在上和右侧图片在上 */\n cascading: {\n type: String as PropType,\n default: 'right-up' as TdAvatarGroupProps['cascading'],\n validator(val: TdAvatarGroupProps['cascading']): boolean {\n if (!val) return true;\n return ['left-up', 'right-up'].includes(val);\n },\n },\n /** 头像数量超出时,会出现一个头像折叠元素。该元素内容可自定义。默认为 `+N`。示例:`+5`,`...`, `更多` */\n collapseAvatar: {\n type: [String, Function] as PropType,\n },\n /** 能够同时显示的最多头像数量 */\n max: {\n type: Number,\n },\n /** 头像右上角提示信息 */\n popupProps: {\n type: Object as PropType,\n },\n /** 尺寸,示例值:small/medium/large/24px/38px 等。优先级低于 Avatar.size */\n size: {\n type: String,\n default: '',\n },\n};\n","import { defineComponent, provide, VNode } from 'vue';\nimport props from './avatar-group-props';\nimport Avatar from './avatar';\nimport { useTNodeJSX, usePrefixClass } from '@tdesign/shared-hooks';\n\nimport { getChildren } from '@tdesign/shared-utils';\n\nexport default defineComponent({\n name: 'TAvatarGroup',\n props,\n setup(props) {\n provide('avatarGroup', props);\n const renderTNodeJSX = useTNodeJSX();\n\n const AVATAR_NAME = usePrefixClass('avatar');\n const COMPONENT_NAME = usePrefixClass('avatar-group');\n\n const renderEllipsisAvatar = (children: Array): Array => {\n if (children?.length > props.max) {\n const content = getEllipsisContent(children);\n const outAvatar = children.slice(0, props.max);\n outAvatar.push(\n \n {content}\n ,\n );\n return outAvatar;\n }\n return children;\n };\n\n // collapseAvatar\n const getEllipsisContent = (children: Array) => {\n return renderTNodeJSX('collapseAvatar') || `+${children.length - props.max}`;\n };\n\n return () => {\n const children = renderTNodeJSX('default');\n const { cascading, max } = props;\n const groupClass = [\n `${COMPONENT_NAME.value}`,\n {\n [`${AVATAR_NAME.value}--offset-right`]: cascading === 'right-up',\n [`${AVATAR_NAME.value}--offset-left`]: cascading === 'left-up',\n },\n ];\n const content = max && max >= 0 ? [renderEllipsisAvatar(getChildren(children))] : [children];\n\n return
    {content}
    ;\n };\n },\n});\n","import _Avatar from './avatar';\nimport _AvatarGroup from './group';\nimport { withInstall } from '@tdesign/shared-utils';\nimport { TdAvatarProps, TdAvatarGroupProps } from './type';\n\nimport './style';\n\nexport * from './type';\n\nexport type AvatarProps = TdAvatarProps;\nexport type AvatarGroupProps = TdAvatarGroupProps;\n\nexport const Avatar = withInstall(_Avatar);\nexport const AvatarGroup = withInstall(_AvatarGroup);\n\nexport default Avatar;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * updated at 2021-12-12 19:17:30\n * */\n\nimport { TdBadgeProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 颜色 */\n color: {\n type: String,\n default: '',\n },\n /** 徽标内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 徽标右上角内容。可以是数字,也可以是文字。如:'new'/3/99+ */\n count: {\n type: [String, Number, Function] as PropType,\n default: 0,\n },\n /** 徽标内容,默认插槽,同 content */\n default: {\n type: [String, Function] as PropType,\n },\n /** 是否为红点 */\n dot: Boolean,\n /** 封顶的数字值 */\n maxCount: {\n type: Number,\n default: 99,\n },\n /** 设置状态点的位置偏移,示例:[-10, 20] 或 ['10em', '8rem'] */\n offset: {\n type: Array as PropType,\n },\n /** 形状 */\n shape: {\n type: String as PropType,\n default: 'circle' as TdBadgeProps['shape'],\n validator(val: TdBadgeProps['shape']): boolean {\n return ['circle', 'round'].includes(val);\n },\n },\n /** 当数值为 0 时,是否展示徽标 */\n showZero: Boolean,\n /** 尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdBadgeProps['size'],\n validator(val: TdBadgeProps['size']): boolean {\n return ['small', 'medium'].includes(val);\n },\n },\n};\n","import { defineComponent, computed } from 'vue';\nimport props from './props';\nimport { useContent, useTNodeJSX, usePrefixClass } from '@tdesign/shared-hooks';\n\nexport default defineComponent({\n name: 'TBadge',\n inheritAttrs: false,\n props,\n setup(props, { attrs }) {\n const renderContent = useContent();\n const renderTNodeJSX = useTNodeJSX();\n\n /** 内容计算相关逻辑 start */\n const displayCount = computed(() => {\n let count = renderTNodeJSX('count');\n\n if (Number.isNaN(Number(count))) {\n return count;\n }\n count = Number(props.count);\n return count > props.maxCount ? `${props.maxCount}+` : count;\n });\n\n const getOffset = () => {\n if (!props.offset) return {};\n let [xOffset, yOffset]: Array = props.offset;\n xOffset = Number.isNaN(Number(xOffset)) ? xOffset : `${xOffset}px`;\n yOffset = Number.isNaN(Number(yOffset)) ? yOffset : `${yOffset}px`;\n return { xOffset, yOffset };\n };\n /** 内容计算相关逻辑 end */\n\n /** 样式计算相关逻辑 start */\n const classPrefix = usePrefixClass();\n const COMPONENT_NAME = usePrefixClass('badge');\n const isHidden = computed(() => {\n return !props.showZero && (displayCount.value === 0 || displayCount.value === '0');\n });\n\n const badgeClassNames = computed(() => {\n return [\n {\n [`${COMPONENT_NAME.value}--dot`]: !!props.dot,\n [`${COMPONENT_NAME.value}--circle`]: !props.dot && props.shape === 'circle',\n [`${COMPONENT_NAME.value}--round`]: !props.dot && props.shape === 'round',\n [`${classPrefix.value}-size-s`]: props.size === 'small',\n },\n ];\n });\n\n const inlineStyle = computed(() => {\n const { xOffset, yOffset } = getOffset();\n return {\n background: props.color,\n right: xOffset,\n top: yOffset,\n };\n });\n /** 样式计算相关逻辑 end */\n\n return () => (\n
    \n {renderContent('default', 'content')}\n {isHidden.value ? null : (\n \n {props.dot ? null : displayCount.value}\n \n )}\n
    \n );\n },\n});\n","import _Badge from './badge';\nimport { withInstall } from '@tdesign/shared-utils';\nimport { TdBadgeProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type BadgeProps = TdBadgeProps;\n\nexport const Badge = withInstall(_Badge);\nexport default Badge;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdCalendarProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 单元格插槽 */\n cell: {\n type: [String, Function] as PropType,\n },\n /** 单元格插槽,在原来的内容之后追加 */\n cellAppend: {\n type: [String, Function] as PropType,\n },\n /** 右上角控制器配置。支持全局配置。值为 false 则表示不显示控制器,值为 true 则显示控制器默认配置,值类型为 CalendarController 则显示为自定义控制器配置 */\n controllerConfig: {\n type: [Boolean, Object] as PropType,\n default: undefined as TdCalendarProps['controllerConfig'],\n },\n /** 小于 10 的日期,是否使用 '0' 填充。支持全局配置。默认表现为 `01` `02`,值为 false 表现为 `1` `2` `9` */\n fillWithZero: {\n type: Boolean,\n default: undefined,\n },\n /** 第一天从星期几开始,仅在日历展示维度为月份时(mode = month)有效。默认为 1 */\n firstDayOfWeek: {\n type: Number,\n validator(val: TdCalendarProps['firstDayOfWeek']): boolean {\n if (!val) return true;\n return [1, 2, 3, 4, 5, 6, 7].includes(val);\n },\n },\n /** 用于格式化日期,决定事件参数 formattedFilterDate 的输出值。[详细文档](https://day.js.org/docs/en/display/format) */\n format: {\n type: String,\n default: 'YYYY-MM-DD',\n },\n /** 头部插槽(左上角处,默认不显示任何内容) */\n head: {\n type: [String, Function] as PropType,\n },\n /** 默认是否显示周末 */\n isShowWeekendDefault: {\n type: Boolean,\n default: true,\n },\n /** 日历展示维度 */\n mode: {\n type: String as PropType,\n default: 'month' as TdCalendarProps['mode'],\n validator(val: TdCalendarProps['mode']): boolean {\n if (!val) return true;\n return ['month', 'year'].includes(val);\n },\n },\n /** 控制当前面板展示月份,优先级高于 `controllerConfig.month` */\n month: {\n type: [String, Number] as PropType,\n },\n /** 是否高亮多个日期单元格 */\n multiple: Boolean,\n /** 是否禁用单元格右键默认系统菜单 */\n preventCellContextmenu: Boolean,\n /** 用于设置日历的年月份显示范围,[范围开始,范围结束] */\n range: {\n type: Array as PropType,\n },\n /** 日历风格 */\n theme: {\n type: String as PropType,\n default: 'full' as TdCalendarProps['theme'],\n validator(val: TdCalendarProps['theme']): boolean {\n if (!val) return true;\n return ['full', 'card'].includes(val);\n },\n },\n /** 当前高亮的日期 */\n value: {\n type: [String, Array, Date] as PropType,\n },\n /** 用于自定义日历星期呈现方式。CalendarWeek.day 表示当前是星期几。示例一:['周一', '周二', '周三', '周四', '周五', '星期六', '星期天']。示例二:`({ day }) => '周' + day` */\n week: {\n type: [Array, Function] as PropType,\n },\n /** 控制当前面板展示年份,优先级高于 `controllerConfig.year` */\n year: {\n type: [String, Number] as PropType,\n },\n /** 日历单元格点击时触发 */\n onCellClick: Function as PropType,\n /** 日历单元格双击时触发 */\n onCellDoubleClick: Function as PropType,\n /** 日历单元格右击时触发 */\n onCellRightClick: Function as PropType,\n /** 右上角控件组选中值有变化的时候触发 */\n onControllerChange: Function as PropType,\n /** 月份切换时触发 */\n onMonthChange: Function as PropType,\n};\n","interface ModeOption {\n // 选项值\n value: string;\n // 选项展示的文本\n label: string;\n}\n\n/** 常量 */\n// 组件配置项名\nexport const COMPONENT_NAME = 'calendar';\n// 非法日期的标识\nexport const INVALID_DATE = 'Invalid Date';\n// 最小年份\nexport const MIN_YEAR = 1970;\n// 每年首月份\nexport const FIRST_MONTH_OF_YEAR = 1;\n// 每年最后一个月份\nexport const LAST_MONTH_OF_YEAR = 12;\n\n/** 默认值 */\n// 默认的日期字符串格式\nexport const DEFAULT_DATE_FORMAT = 'YYYY-MM-DD';\n// 默认模式值\nexport const DEFAULT_MODE = 'month';\n// 默认周起始日\nexport const DEFAULT_FIRST_DAY_OF_WEEK = 1;\n// 默认风格类型\nexport const DEFAULT_THEME = 'full';\n// 年历中每一行显示的月数量\nexport const DEFAULT_YEAR_CELL_NUMINROW = 4;\n\n/** 数据源 */\n// 日历组件风格的可选值\nexport const THEME_LIST: string[] = ['full', 'card'];\n// 日历组件模式的可选值\nexport const MODE_LIST: string[] = ['month', 'year'];\n// 日历组件模式选项列表\nexport const MODE_OPTION_LIST: ModeOption[] = [\n { value: 'month', label: '月' },\n { value: 'year', label: '年' },\n];\n// 日历组件首列星期的可选值\nexport const FIRST_DAY_OF_WEEK_LIST: number[] = [1, 2, 3, 4, 5, 6, 7];\n\n/** map */\n// 一些固定的文本\nexport const TEXT_MAP: Record = {\n showWeekend: '显示周末',\n hideWeekend: '隐藏周末',\n today: '今天',\n thisMonth: '本月',\n};\n// 星期的显示值\nexport const DAY_CN_MAP: Record = {\n 1: '一',\n 2: '二',\n 3: '三',\n 4: '四',\n 5: '五',\n 6: '六',\n 7: '日',\n};\n// 月份的显示值\nexport const MONTH_CN_MAP: Record = {\n 1: '一月',\n 2: '二月',\n 3: '三月',\n 4: '四月',\n 5: '五月',\n 6: '六月',\n 7: '七月',\n 8: '八月',\n 9: '九月',\n 10: '十月',\n 11: '十一月',\n 12: '十二月',\n};\n\nexport default {\n COMPONENT_NAME,\n INVALID_DATE,\n MIN_YEAR,\n FIRST_MONTH_OF_YEAR,\n LAST_MONTH_OF_YEAR,\n\n DEFAULT_DATE_FORMAT,\n DEFAULT_MODE,\n DEFAULT_FIRST_DAY_OF_WEEK,\n DEFAULT_THEME,\n DEFAULT_YEAR_CELL_NUMINROW,\n\n TEXT_MAP,\n MODE_LIST,\n MODE_OPTION_LIST,\n FIRST_DAY_OF_WEEK_LIST,\n\n THEME_LIST,\n DAY_CN_MAP,\n MONTH_CN_MAP,\n};\n","import dayjs from 'dayjs';\n\nimport { TdCalendarProps, CalendarCell } from '../type';\nimport { CalendarState } from '../types';\n\n// 组件的一些常量\nimport { FIRST_MONTH_OF_YEAR, LAST_MONTH_OF_YEAR, DAY_CN_MAP } from '../consts';\n\n/**\n * 获取一个日期是周几(1~7)\n */\nexport const getDay = (dt: Date): number => {\n let day = dayjs(dt).day();\n if (day === 0) {\n day = 7;\n }\n return day;\n};\n\n/**\n * 获取星期的中文\n * @param num 星期(1~7)\n */\nexport const getDayCn = (num: number): string => {\n let re = '';\n const numStr = num.toString();\n if (numStr in DAY_CN_MAP) {\n re = DAY_CN_MAP[numStr];\n }\n return re;\n};\n\n/**\n * 获取一个日期在日历上的列下标\n * @param firstDayOfWeek 周起始日(1~7)\n * @param dt\n */\nexport const getCellColIndex = (firstDayOfWeek: number, dt: Date): number => {\n let re = 0;\n const day = getDay(dt);\n if (day >= firstDayOfWeek) {\n re = day - firstDayOfWeek;\n } else {\n re = 7 - firstDayOfWeek + day;\n }\n return re;\n};\n/**\n * 返回日期+天数(天数可以负数)\n */\nexport const addDate = (dt: Date, days: number) => {\n const d = new Date(dt);\n d.setDate(d.getDate() + days);\n return d;\n};\n\n/**\n * 创建月历单元格数据\n */\nexport const createYearCellsData = (props: TdCalendarProps, state: CalendarState): CalendarCell[] => {\n const { curSelectedYear: year, curDate, curDateList } = state;\n const { format, multiple } = props;\n\n const monthsArr: CalendarCell[] = [];\n for (let num = FIRST_MONTH_OF_YEAR; num <= LAST_MONTH_OF_YEAR; num++) {\n const date = new Date(year, num - 1);\n const isCurrent = multiple\n ? !!curDateList.find((item) => item.year() === year && parseInt(item.format('M'), 10) === num)\n : curDate.year() === year && parseInt(curDate.format('M'), 10) === num;\n monthsArr.push({\n mode: 'year',\n isCurrent,\n date,\n formattedDate: dayjs(date).format(format),\n filterDate: null,\n formattedFilterDate: null,\n isShowWeekend: true,\n });\n }\n\n return monthsArr;\n};\n\n/**\n * 创建日历单元格数据\n */\nexport const createMonthCellsData = (props: TdCalendarProps, state: CalendarState): CalendarCell[][] => {\n const {\n curSelectedYear: year,\n curSelectedMonth: month,\n realFirstDayOfWeek: firstDayOfWeek,\n curDate,\n curDateList,\n } = state;\n const { format, multiple } = props;\n\n const daysArr: CalendarCell[][] = [];\n // 当前月份的开始日期\n const begin: Date = dayjs(`${year}-${month}`).startOf('month').toDate();\n // 当前月份的结束日期\n const end: Date = dayjs(dayjs(`${year}-${month}`).endOf('month').format('YYYY-MM-DD')).toDate();\n const days = end.getDate();\n\n const beginDateColIndex = getCellColIndex(firstDayOfWeek, begin);\n let arr = [];\n let num = 1;\n\n const createCellData = (belongTo: number, isCurrent: boolean, date: Date, weekOrder: number): CalendarCell => {\n const day = getDay(date);\n return {\n mode: 'month',\n belongTo,\n isCurrent,\n day,\n weekOrder,\n date,\n formattedDate: dayjs(date).format(format),\n filterDate: null,\n formattedFilterDate: null,\n isShowWeekend: true,\n };\n };\n\n const judgeIsCurrent = (date: Date) => {\n const isCurrent = multiple ? !!curDateList.find((item) => item.isSame(dayjs(date))) : curDate.isSame(dayjs(date));\n return isCurrent;\n };\n\n // 添加上个月中和当前月第一天同一周的日期\n for (let i = 0; i < beginDateColIndex; i++) {\n const date = addDate(begin, i - beginDateColIndex);\n arr.push(createCellData(-1, false, date, num));\n if (arr.length === 7) {\n daysArr.push(arr);\n arr = [];\n num += 1;\n }\n }\n for (let i = 0; i < days; i++) {\n const date = addDate(begin, i);\n const isCurrent = judgeIsCurrent(date);\n arr.push(createCellData(0, isCurrent, date, num));\n if (arr.length === 7) {\n daysArr.push(arr);\n arr = [];\n num += 1;\n }\n }\n // 添加下个月中和当前月最后同一周的日期\n if (arr.length) {\n const nextMonthCellNum = 7 - arr.length;\n for (let i = 0; i < nextMonthCellNum; i++) {\n const date = addDate(end, i + 1);\n arr.push(createCellData(1, false, date, num));\n }\n daysArr.push(arr);\n }\n\n return daysArr;\n};\n\n/**\n * 根据当前时间创建一个默认日期\n * @returns 当前日期都dayjs对象\n */\nexport const createDefaultCurDate = (): dayjs.Dayjs => dayjs(dayjs().format('YYYY-MM-DD'));\n","import { reactive, watch } from 'vue';\nimport dayjs from 'dayjs';\n\nimport { useConfig } from '@tdesign/shared-hooks';\nimport { COMPONENT_NAME } from '../consts';\nimport { createDefaultCurDate } from '../utils';\nimport { TdCalendarProps } from '../type';\nimport { CalendarState } from '../types';\nimport { isArray } from 'lodash-es';\n\nexport function useState(props: TdCalendarProps) {\n const { globalConfig } = useConfig(COMPONENT_NAME);\n\n const state = reactive({\n realFirstDayOfWeek: 1,\n curDate: null,\n curDateList: [],\n curSelectedYear: null,\n curSelectedMonth: null,\n curSelectedMode: null,\n isShowWeekend: true,\n controlSize: 'medium',\n });\n\n function toToday() {\n const curDate = createDefaultCurDate();\n state.curDate = curDate;\n state.curSelectedYear = curDate.year();\n state.curSelectedMonth = parseInt(curDate.format('M'), 10);\n }\n\n function setCurSelectedYear(year?: TdCalendarProps['year']) {\n const curSelectedYear = year ? parseInt(`${year}`, 10) : createDefaultCurDate().year();\n if (!isNaN(curSelectedYear) && curSelectedYear > 0) {\n state.curSelectedYear = curSelectedYear;\n }\n }\n\n function setCurSelectedMonth(month?: TdCalendarProps['month']) {\n const curSelectedMonth = month ? parseInt(`${month}`, 10) : parseInt(createDefaultCurDate().format('M'), 10);\n if (!isNaN(curSelectedMonth) && curSelectedMonth > 0 && curSelectedMonth <= 12) {\n state.curSelectedMonth = curSelectedMonth;\n }\n }\n\n function setCurrentDate(value?: TdCalendarProps['value']): void {\n if (isArray(value)) {\n state.curDate = value && value.length ? dayjs(value[0]) : createDefaultCurDate();\n } else {\n state.curDate = value ? dayjs(value) : createDefaultCurDate();\n }\n }\n\n function setCurrentDateList(value?: TdCalendarProps['value']): void {\n if (isArray(value)) {\n state.curDateList = value && value.length ? value.map((item) => dayjs(item)) : [createDefaultCurDate()];\n } else {\n state.curDateList = value ? [dayjs(value)] : [createDefaultCurDate()];\n }\n }\n\n function checkDayVisible(day: number) {\n let re = true;\n if (!state.isShowWeekend) {\n re = day !== 6 && day !== 7;\n }\n return re;\n }\n\n watch(\n () => props.firstDayOfWeek,\n () => {\n state.realFirstDayOfWeek = props.firstDayOfWeek ?? globalConfig.value.firstDayOfWeek ?? 1;\n },\n { immediate: true },\n );\n watch(\n () => props.value,\n (v: TdCalendarProps['value']) => {\n if (props.multiple) {\n setCurrentDateList(v);\n } else {\n setCurrentDate(v);\n }\n },\n { immediate: true },\n );\n watch(\n () => props.year,\n (v: TdCalendarProps['year']) => {\n setCurSelectedYear(v);\n },\n { immediate: true },\n );\n watch(\n () => props.month,\n (v: TdCalendarProps['month']) => {\n setCurSelectedMonth(v);\n },\n { immediate: true },\n );\n watch(\n () => props.isShowWeekendDefault,\n (v: TdCalendarProps['isShowWeekendDefault']) => {\n state.isShowWeekend = v;\n },\n { immediate: true },\n );\n watch(\n () => props.mode,\n (v: TdCalendarProps['mode']) => {\n state.curSelectedMode = v;\n },\n { immediate: true },\n );\n watch(\n () => props.theme,\n (v: TdCalendarProps['theme']) => {\n if (v === 'card') state.controlSize = 'small';\n if (v === 'full') state.controlSize = 'medium';\n },\n { immediate: true },\n );\n return {\n state,\n toToday,\n checkDayVisible,\n };\n}\n","import { isBoolean, isFunction } from 'lodash-es';\n\nimport { computed, nextTick } from 'vue';\nimport dayjs from 'dayjs';\nimport { COMPONENT_NAME } from '../consts';\nimport { CalendarState } from '../types';\nimport { TdCalendarProps, ControllerOptions } from '../type';\nimport { useConfig } from '@tdesign/shared-hooks';\n\nconst getDefaultControllerConfigData = (visible = true): Record => ({\n visible, // 是否显示(全部控件)\n disabled: false, // 是否禁用(全部控件)\n // 模式切换单选组件设置\n mode: {\n visible: true, // 是否显示\n radioGroupProps: {}, // 用于透传props给该radioGroup组件\n },\n // 年份选择框组件相关设置\n year: {\n visible: true, // 是否显示\n selectProps: {}, // 用于透传props给该select组件\n },\n // 年份选择框组件相关设置\n month: {\n visible: true, // 是否显示(“year”模式下本身是不显示该组件的)\n selectProps: {}, // 用于透传props给该select组件\n },\n // 隐藏\\显示周末按钮组件相关设置\n weekend: {\n visible: true, // 是否显示\n showWeekendButtonProps: {}, // 用于透传props给显示周末按钮组件\n hideWeekendButtonProps: {}, // 用于透传props给隐藏周末按钮组件\n },\n // “今天\\本月”按钮组件相关设置\n current: {\n visible: true, // 是否显示\n currentDayButtonProps: {}, // 用于透传props给“今天”钮组件(“month”模式下有效)\n currentMonthButtonProps: {}, // 用于透传props给“本月”按钮组件(“year”模式下有效)\n },\n});\n\nexport function userController(props: TdCalendarProps, state: CalendarState) {\n const { globalConfig } = useConfig(COMPONENT_NAME);\n\n const options = computed(() => {\n const dayJsFilterDate = dayjs(`${state.curSelectedYear}-${state.curSelectedMonth}`);\n const re = {\n isShowWeekend: state.isShowWeekend,\n filterDate: dayJsFilterDate.toDate(),\n formattedFilterDate: dayJsFilterDate.format(props.format),\n mode: state.curSelectedMode,\n };\n return re;\n });\n const configData = computed>(() => {\n const controllerConfig = props.controllerConfig ?? globalConfig.value.controllerConfig ?? true;\n if (isBoolean(controllerConfig)) {\n return getDefaultControllerConfigData(controllerConfig);\n }\n return {\n ...getDefaultControllerConfigData(),\n ...controllerConfig,\n };\n });\n const visible = computed(() => {\n return !!configData.value && configData.value.visible;\n });\n /**\n * 判断某个控件是否显示\n * @param name 控件对应的配置节点名(对应controllerConfigData)\n * @returns true表示显示\n */\n function checkControllerVisible(name: string): boolean {\n let re = true;\n const conf = configData.value;\n if (!conf || !conf.visible || conf[name] === false || (conf[name] && !conf[name].visible)) {\n re = false;\n }\n return re;\n }\n /**\n * 判断某个控件是否禁用\n * @param name 控件对应的配置节点名(对应controllerConfigData)\n * @param propsName 表示禁用的控件属性(对应controllerConfigData)\n * @returns true表示禁用\n */\n function checkControllerDisabled(name: string, propsName: string): boolean {\n let re = false;\n const conf = configData.value;\n if (conf && (conf.disabled || (conf[name] && conf[name][propsName] && conf[name][propsName].disabled))) {\n re = true;\n }\n return re;\n }\n function emitControllerChange() {\n nextTick(() => {\n isFunction(props.onControllerChange) && props.onControllerChange({ ...options.value });\n });\n }\n\n return {\n options,\n configData,\n visible,\n checkControllerVisible,\n checkControllerDisabled,\n emitControllerChange,\n };\n}\n","import { computed } from 'vue';\n\nimport { CellColHeader, CalendarState } from '../types';\nimport { TdCalendarProps, WeekDay } from '../type';\nimport { useConfig } from '@tdesign/shared-hooks';\nimport { COMPONENT_NAME } from '../consts';\nimport * as utils from '../utils';\nimport { isObject } from 'lodash-es';\n\nexport function useColHeaders(props: TdCalendarProps, state: CalendarState) {\n const { t, globalConfig } = useConfig(COMPONENT_NAME);\n\n const weekDisplayText = computed(() => {\n return props.week || t(globalConfig.value.week).split(',');\n });\n function getWeekDisplay(weekNum: number): string {\n const weekText = weekDisplayText.value as string[];\n return isObject(weekText) && weekText[weekNum - 1] ? weekText[weekNum - 1] : utils.getDayCn(weekNum);\n }\n const cellColHeaders = computed(() => {\n const re: CellColHeader[] = [];\n const min: WeekDay = 1;\n const max: WeekDay = 7;\n\n for (let i = state.realFirstDayOfWeek; i <= max; i++) {\n re.push({\n num: i as WeekDay,\n display: getWeekDisplay(i),\n });\n }\n if (state.realFirstDayOfWeek > min) {\n for (let i = min; i < state.realFirstDayOfWeek; i++) {\n re.push({\n num: i as WeekDay,\n display: getWeekDisplay(i),\n });\n }\n }\n return re;\n });\n\n return {\n cellColHeaders,\n };\n}\n","import { computed, defineComponent } from 'vue';\nimport dayjs from 'dayjs';\n\nimport { useContent, useCommonClassName } from '@tdesign/shared-hooks';\n\nimport { useCalendarCellClass } from './hooks';\n\n// 组件相关的自定义类型\nimport { CalendarCell } from './type';\n\nconst clickTypeEmitEventMap = {\n click: 'click',\n dblclick: 'dblclick',\n contextmenu: 'rightclick',\n};\n\nexport default defineComponent({\n name: `TCalendarCell`,\n inheritAttrs: false,\n props: {\n item: {\n type: Object,\n default: (): CalendarCell => null,\n },\n fillWithZero: {\n type: Boolean,\n default: undefined,\n },\n theme: {\n type: String,\n default: (): string => null,\n },\n t: Function,\n global: Object,\n cell: [String, Function],\n cellAppend: [String, Function],\n },\n emits: [...Object.values(clickTypeEmitEventMap)],\n setup(props, { emit }) {\n const renderContent = useContent();\n const cls = useCalendarCellClass();\n const { STATUS } = useCommonClassName();\n\n const valueDisplay = computed(() => {\n if (props.item.mode === 'month') {\n const dateNum = props.item.date.getDate();\n const fillZero = dateNum < 10 && (props.fillWithZero ?? props.global.fillWithZero ?? true);\n return fillZero ? `0${dateNum}` : dateNum;\n }\n const map = props.t(props.global.cellMonth).split(',');\n return map[props.item.date.getMonth().toString()];\n });\n const allowSlot = computed(() => {\n return props.theme === 'full';\n });\n const disabled = computed(() => {\n return props.item.mode === 'month' && props.item.belongTo !== 0;\n });\n const cellCls = computed(() => {\n const { mode, date, formattedDate, isCurrent } = props.item;\n const now = new Date();\n const isNow =\n mode === 'year'\n ? now.getMonth() === date.getMonth() && now.getFullYear() === date.getFullYear()\n : formattedDate === dayjs().format('YYYY-MM-DD');\n return [\n cls.tableBodyCell.value,\n {\n [STATUS.value.disabled]: disabled.value,\n [STATUS.value.checked]: isCurrent,\n [cls.tableBodyCell4Now.value]: isNow,\n },\n ];\n });\n const clickCell = (e: MouseEvent): void => {\n if (disabled.value) return;\n const emitName = clickTypeEmitEventMap[e.type as keyof typeof clickTypeEmitEventMap];\n emit(emitName, e);\n };\n\n const renderDefaultNode = () => (\n <>\n
    {valueDisplay.value}
    \n
    \n {allowSlot.value &&\n renderContent('cellAppend', undefined, {\n params: { ...props.item },\n })}\n
    \n \n );\n\n return () => {\n return (\n props.item && (\n \n {renderContent('cell', undefined, {\n defaultNode: renderDefaultNode(),\n params: { ...props.item },\n })}\n \n )\n );\n };\n },\n});\n","import { computed } from 'vue';\n\nimport { usePrefixClass } from '@tdesign/shared-hooks';\nimport { CalendarState } from '../types';\nimport { TdCalendarProps } from '../type';\nimport { COMPONENT_NAME } from '../consts';\n\nexport function useCalendarClass(props: TdCalendarProps, state: CalendarState) {\n const prefixClass = usePrefixClass(COMPONENT_NAME);\n\n const body = computed(() => {\n return [`${prefixClass.value}`, `${prefixClass.value}--${props.theme}`];\n });\n const panel = computed(() => {\n return [`${prefixClass.value}__panel`, `${prefixClass.value}__panel--${state.curSelectedMode}`];\n });\n const control = computed(() => {\n return [`${prefixClass.value}__control`];\n });\n const title = computed(() => {\n return [`${prefixClass.value}__title`];\n });\n const controlSection = computed(() => {\n return [`${prefixClass.value}__control-section`];\n });\n const controlSectionCell = computed(() => {\n return [`${prefixClass.value}__control-section-cell`];\n });\n const controlTag = computed(() => {\n return [`${prefixClass.value}__control-tag`];\n });\n const table = computed(() => {\n return [`${prefixClass.value}__table`];\n });\n const tableHead = computed(() => {\n return [`${prefixClass.value}__table-head`];\n });\n const tableHeadRow = computed(() => {\n return [`${prefixClass.value}__table-head-row`];\n });\n const tableHeadCell = computed(() => {\n return [`${prefixClass.value}__table-head-cell`];\n });\n const tableBody = computed(() => {\n return [`${prefixClass.value}__table-body`];\n });\n const tableBodyRow = computed(() => {\n return [`${prefixClass.value}__table-body-row`];\n });\n\n return {\n body,\n panel,\n control,\n title,\n controlSection,\n controlSectionCell,\n controlTag,\n table,\n tableHead,\n tableHeadRow,\n tableHeadCell,\n tableBody,\n tableBodyRow,\n };\n}\n\nexport function useCalendarCellClass() {\n const prefixClass = usePrefixClass(COMPONENT_NAME);\n\n const tableBodyCell = computed(() => {\n return [`${prefixClass.value}__table-body-cell`];\n });\n const tableBodyCell4Now = computed(() => {\n return `${prefixClass.value}__table-body-cell--now`;\n });\n const tableBodyCellDisplay = computed(() => {\n return [`${prefixClass.value}__table-body-cell-display`];\n });\n const tableBodyCellCsontent = computed(() => {\n return [`${prefixClass.value}__table-body-cell-content`];\n });\n\n return {\n tableBodyCell,\n tableBodyCell4Now,\n tableBodyCellDisplay,\n tableBodyCellCsontent,\n };\n}\n","import { defineComponent, computed, watch } from 'vue';\n// 通用库\nimport dayjs from 'dayjs';\nimport { remove, isArray, isFunction } from 'lodash-es';\n\nimport props from './props';\nimport * as utils from './utils';\nimport { useConfig, useContent } from '@tdesign/shared-hooks';\n\nimport { useState, useCalendarClass, userController, useColHeaders } from './hooks';\n\n// 组件的一些常量\nimport {\n COMPONENT_NAME,\n MIN_YEAR,\n FIRST_MONTH_OF_YEAR,\n LAST_MONTH_OF_YEAR,\n DEFAULT_YEAR_CELL_NUMINROW,\n} from './consts';\n\n// 子组件\nimport { Select as TSelect } from '../select';\nimport { RadioGroup as TRadioGroup, RadioButton as TRadioButton } from '../radio';\nimport { Button as TButton } from '../button';\nimport { CheckTag as TCheckTag } from '../tag';\nimport CalendarCellItem from './calendar-cell';\n\n// 组件相关类型\nimport { CalendarCell } from './type';\nimport { CalendarRange, YearMonthOption, ModeOption, CellEventOption } from './types';\n\n// 组件逻辑\nexport default defineComponent({\n name: 'TCalendar',\n props,\n setup(props, { slots }) {\n const renderContent = useContent();\n const { t, globalConfig } = useConfig(COMPONENT_NAME);\n // 组件内部状态管理\n const { state, toToday, checkDayVisible } = useState(props);\n\n // 样式\n const cls = useCalendarClass(props, state);\n\n // 日历主体头部(日历模式下使用)\n const { cellColHeaders } = useColHeaders(props, state);\n\n // 日历控件栏(右上角)\n const controller = userController(props, state);\n\n // 年\\月份下拉框\n const rangeFromTo = computed(() => {\n if (!props.range || props.range.length < 2) {\n return null;\n }\n const [v1, v2] = props.range;\n if (dayjs(v1).isBefore(dayjs(v2))) {\n return {\n from: v1,\n to: v2,\n };\n }\n return {\n from: v2,\n to: v1,\n };\n });\n function checkMonthAndYearSelectedDisabled(year: number, month: number): boolean {\n let disabled = false;\n if (rangeFromTo.value && rangeFromTo.value.from && rangeFromTo.value.to) {\n const beginYear = dayjs(rangeFromTo.value.from).year();\n const endYear = dayjs(rangeFromTo.value.to).year();\n if (year === beginYear) {\n const beginMon = parseInt(dayjs(rangeFromTo.value.from).format('M'), 10);\n disabled = month < beginMon;\n } else if (year === endYear) {\n const endMon = parseInt(dayjs(rangeFromTo.value.to).format('M'), 10);\n disabled = month > endMon;\n }\n }\n return disabled;\n }\n // 当存在日期范围限制时,改变年份后应将月份调整为合法月份\n function adjustMonth(): void {\n if (rangeFromTo.value?.from && rangeFromTo.value?.to) {\n const beginYear = dayjs(rangeFromTo.value.from).year();\n const endYear = dayjs(rangeFromTo.value.to).year();\n const beginMon = parseInt(dayjs(rangeFromTo.value.from).format('M'), 10);\n if (checkMonthAndYearSelectedDisabled(state.curSelectedYear, state.curSelectedMonth)) {\n state.curSelectedMonth =\n state.curSelectedYear === beginYear\n ? beginMon\n : state.curSelectedYear === endYear\n ? 1\n : state.curSelectedMonth;\n }\n }\n }\n watch(\n () => {\n return {\n year: `${state.curSelectedYear}`,\n month: `${state.curSelectedMonth}`,\n };\n },\n (v: { month: string; year: string }) => {\n isFunction(props.onMonthChange) && props.onMonthChange({ ...v });\n controller.emitControllerChange();\n },\n );\n const dateSelect = {\n yearSelectOptionList: computed(() => {\n const re: YearMonthOption[] = [];\n let begin: number = state.curSelectedYear - 10;\n let end: number = state.curSelectedYear + 10;\n if (rangeFromTo.value && rangeFromTo.value.from && rangeFromTo.value.to) {\n begin = dayjs(rangeFromTo.value.from).year();\n end = dayjs(rangeFromTo.value.to).year();\n }\n\n if (begin < MIN_YEAR) {\n begin = MIN_YEAR;\n }\n if (end < MIN_YEAR) {\n end = MIN_YEAR;\n }\n\n for (let i = begin; i <= end; i++) {\n re.push({\n value: i,\n label: t(globalConfig.value.yearSelection, { year: i }),\n disabled: false,\n });\n }\n return re;\n }),\n isYearSelectVisible: computed(() => {\n return controller.checkControllerVisible('year');\n }),\n isYearSelectDisabled: computed(() => {\n return controller.checkControllerDisabled('year', 'selectProps');\n }),\n monthSelectOptionList: computed(() => {\n adjustMonth();\n const re: YearMonthOption[] = [];\n for (let i = FIRST_MONTH_OF_YEAR; i <= LAST_MONTH_OF_YEAR; i++) {\n const disabled = checkMonthAndYearSelectedDisabled(state.curSelectedYear, i);\n re.push({\n value: i,\n label: t(globalConfig.value.monthSelection, { month: i }),\n disabled,\n });\n }\n return re;\n }),\n isMonthSelectVisible: computed(() => {\n return state.curSelectedMode === 'month' && controller.checkControllerVisible('month');\n }),\n isMonthSelectDisabled: computed(() => {\n return controller.checkControllerDisabled('month', 'selectProps');\n }),\n };\n // 模式选项\n const modeSelect = {\n optionList: computed(() => {\n return [\n { value: 'month', label: t(globalConfig.value.monthRadio) },\n { value: 'year', label: t(globalConfig.value.yearRadio) },\n ];\n }),\n isVisible: computed(() => {\n return controller.checkControllerVisible('mode');\n }),\n isDisabled: computed(() => {\n return controller.checkControllerDisabled('mode', 'radioGroupProps');\n }),\n };\n // 显示\\隐藏周末按钮\n const weekendBtn = {\n text: computed(() => {\n return state.isShowWeekend ? t(globalConfig.value.hideWeekend) : t(globalConfig.value.showWeekend);\n }),\n vBind: computed(() => {\n const c = controller.configData.value.weekend;\n return state.isShowWeekend ? c.hideWeekendButtonProps : c.showWeekendButtonProps;\n }),\n isVisible: computed(() => {\n return (\n props.theme === 'full' &&\n controller.checkControllerVisible('current') &&\n controller.checkControllerVisible('weekend')\n );\n }),\n isDisabled: computed(() => {\n const p = state.isShowWeekend ? 'hideWeekendButtonProps' : 'showWeekendButtonProps';\n return controller.checkControllerDisabled('weekend', p);\n }),\n };\n // 今天\\本月按钮\n const currentBtn = {\n text: computed(() => {\n return state.curSelectedMode === 'month' ? t(globalConfig.value.today) : t(globalConfig.value.thisMonth);\n }),\n vBind: computed(() => {\n const c = controller.configData.value.current;\n return state.curSelectedMode === 'month' ? c.currentDayButtonProps : c.currentMonthButtonProps;\n }),\n isVisible: computed(() => {\n return props.theme === 'full' && controller.checkControllerVisible('current');\n }),\n isDisabled: computed(() => {\n const p = state.curSelectedMode === 'month' ? 'currentDayButtonProps' : 'currentMonthButtonProps';\n return controller.checkControllerDisabled('current', p);\n }),\n };\n const renderControl = () => {\n return (\n
    \n
    \n {renderContent('head', undefined, {\n params: { ...controller.options.value },\n })}\n
    \n
    \n {dateSelect.isYearSelectVisible.value && (\n
    \n \n
    \n )}\n {dateSelect.isMonthSelectVisible.value && (\n
    \n \n
    \n )}\n {modeSelect.isVisible.value && (\n
    \n \n {modeSelect.optionList.value.map((item) => (\n \n {item.label}\n \n ))}\n \n
    \n )}\n\n {weekendBtn.isVisible.value && (\n
    \n {\n state.isShowWeekend = !state.isShowWeekend;\n controller.emitControllerChange();\n }}\n >\n {weekendBtn.text.value}\n \n
    \n )}\n {currentBtn.isVisible.value && (\n
    \n {\n toToday();\n }}\n >\n {currentBtn.text.value}\n \n
    \n )}\n
    \n
    \n );\n };\n\n const cellClickEmit = (eventPropsName: keyof typeof props, e: MouseEvent, cellData: CalendarCell): void => {\n if (isFunction(props[eventPropsName])) {\n const options: CellEventOption = {\n cell: {\n ...cellData,\n ...controller.options.value,\n },\n e,\n };\n (props[eventPropsName] as Function)(options);\n }\n };\n const clickCell = (e: MouseEvent, cellData: CalendarCell): void => {\n const d = dayjs(cellData.date);\n if (props.multiple) {\n if (state.curDateList.find((item) => item.isSame(d))) {\n // @ts-ignore @types/lodash 4.17.18\n state.curDateList = remove(state.curDateList, (item) => !item.isSame(d));\n } else {\n state.curDateList.push(d);\n }\n } else {\n state.curDate = d;\n }\n cellClickEmit('onCellClick', e, cellData);\n };\n const doubleClickCell = (e: MouseEvent, cellData: CalendarCell): void => {\n cellClickEmit('onCellDoubleClick', e, cellData);\n };\n const rightClickCell = (e: MouseEvent, cellData: CalendarCell): void => {\n if (props.preventCellContextmenu) {\n e.preventDefault();\n }\n cellClickEmit('onCellRightClick', e, cellData);\n };\n\n const monthCellsData = computed(() => {\n const daysArr: CalendarCell[][] = utils.createMonthCellsData(props, state);\n return daysArr;\n });\n const renderMonthBody = () => {\n return (\n \n \n \n {cellColHeaders.value.map(\n (item, index) =>\n checkDayVisible(item.num) && (\n \n ),\n )}\n \n \n\n \n {monthCellsData.value.map((week, weekIndex) => (\n \n {week.map(\n (item, itemIndex) =>\n (state.isShowWeekend || item.day < 6) && (\n clickCell(e, item)}\n onDblclick={(e: MouseEvent) => doubleClickCell(e, item)}\n onRightclick={(e: MouseEvent) => rightClickCell(e, item)}\n v-slots={{ ...slots }}\n >\n ),\n )}\n \n ))}\n \n
    \n {isArray(props.week)\n ? props.week[index]\n : renderContent('week', undefined, {\n defaultNode: {item.display},\n params: { day: item.num },\n })}\n
    \n );\n };\n\n const yearCellsData = computed(() => {\n const re: CalendarCell[][] = [];\n const monthsArr: CalendarCell[] = utils.createYearCellsData(props, state);\n const rowCount = Math.ceil(monthsArr.length / DEFAULT_YEAR_CELL_NUMINROW);\n let index = 0;\n for (let i = 1; i <= rowCount; i++) {\n const row: CalendarCell[] = [];\n for (let j = 1; j <= DEFAULT_YEAR_CELL_NUMINROW; j++) {\n row.push(monthsArr[index]);\n index += 1;\n }\n re.push(row);\n }\n return re;\n });\n const renderYearBody = () => {\n return (\n \n \n {yearCellsData.value.map((cell, cellIndex) => (\n \n {cell.map((item, itemIndex) => (\n clickCell(e, item)}\n onDblclick={(e: MouseEvent) => doubleClickCell(e, item)}\n onRightclick={(e: MouseEvent) => rightClickCell(e, item)}\n v-slots={{ ...slots }}\n >\n ))}\n \n ))}\n \n
    \n );\n };\n\n return () => {\n return (\n
    \n {controller.visible.value && renderControl()}\n
    {state.curSelectedMode === 'month' ? renderMonthBody() : renderYearBody()}
    \n
    \n );\n };\n },\n});\n","import _Calendar from './calendar';\nimport { withInstall } from '@tdesign/shared-utils';\nimport { TdCalendarProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type CalendarProps = TdCalendarProps;\n\nexport const Calendar = withInstall(_Calendar);\nexport default Calendar;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdCardProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 卡片操作区 */\n actions: {\n type: [String, Function] as PropType,\n },\n /** 卡片中的用户头像,仅在海报风格的卡片中有效 */\n avatar: {\n type: [String, Function] as PropType,\n },\n /** 是否有边框 */\n bordered: {\n type: Boolean,\n default: true,\n },\n /** 卡片内容 */\n 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 { useTNodeJSX, usePrefixClass, useCommonClassName } from '@tdesign/shared-hooks';\n\nimport TLoading from '../loading';\nimport props from './props';\nimport { isString } from 'lodash-es';\nimport { TdCardProps } from './type';\n\nexport default defineComponent({\n name: 'TCard',\n props,\n setup(props, { slots }) {\n const renderTNodeJSX = useTNodeJSX();\n const COMPONENT_NAME = usePrefixClass('card');\n const { SIZE } = useCommonClassName();\n\n const baseCls = computed(() => {\n const defaultClass = [COMPONENT_NAME.value];\n\n if (props.size === 'small') defaultClass.push(`${SIZE.value[props.size]}`);\n if (props.bordered) defaultClass.push(`${COMPONENT_NAME.value}--bordered`);\n if (props.shadow) defaultClass.push(`${COMPONENT_NAME.value}--shadow`);\n if (props.hoverShadow) defaultClass.push(`${COMPONENT_NAME.value}--shadow-hover`);\n\n return defaultClass;\n });\n\n const headerCls = computed(() => {\n 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 '@tdesign/shared-utils';\nimport { TdCardProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type CardProps = TdCardProps;\n\nexport const Card = withInstall(_Card);\nexport default Card;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * updated at 2021-12-12 19:17:30\n * */\n\nimport { TdCommentProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 操作 */\n actions: {\n type: Array as PropType,\n },\n /** 作者 */\n author: {\n type: [String, Function] as PropType,\n },\n /** 头像 */\n avatar: {\n type: [String, Object, Function] as PropType,\n },\n /** 内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 时间 */\n datetime: {\n type: [String, Function] as PropType,\n },\n /** 引用 */\n quote: {\n type: [String, Function] as PropType,\n },\n /** 回复 */\n reply: {\n type: [String, Function] as PropType,\n },\n};\n","import { defineComponent, computed } from 'vue';\nimport props from './props';\n\nimport { useTNodeJSX, usePrefixClass, useFlatChildrenSlots } from '@tdesign/shared-hooks';\n\nimport Button from '../button';\nimport { isString } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TComment',\n props,\n setup() {\n const COMPONENT_NAME = usePrefixClass('comment');\n const renderTNodeJSX = useTNodeJSX();\n const getFlatChildren = useFlatChildrenSlots();\n\n return () => {\n const reply = renderTNodeJSX('reply');\n const author = renderTNodeJSX('author');\n const datetime = renderTNodeJSX('datetime');\n const quote = renderTNodeJSX('quote');\n const actions = renderTNodeJSX('actions');\n const content = renderTNodeJSX('content');\n const avatar = renderTNodeJSX('avatar');\n const showAuthorDatetime = computed(() => author || datetime);\n\n const replyDom = reply ?
    {reply}
    : null;\n\n const quoteDom = quote ?
    {quote}
    : null;\n\n const avatarDom = avatar ? (\n
    \n {isString(avatar) ? \"\" : avatar}\n
    \n ) : null;\n\n const authorDatetimeDom = showAuthorDatetime.value && (\n
    \n {author && {author}}\n {datetime && {datetime}}\n
    \n );\n\n const renderActions = () => {\n if (!actions || !actions.length) return null;\n const flatChildren = getFlatChildren(actions);\n return (\n
    \n {flatChildren.map((action, index) => (\n \n ))}\n
    \n );\n };\n\n const contentDom = (\n
    \n {authorDatetimeDom}\n
    {content}
    \n {quoteDom}\n {renderActions()}\n
    \n );\n\n return (\n
    \n
    \n {avatarDom}\n {contentDom}\n
    \n {replyDom}\n
    \n );\n };\n },\n});\n","import _Comment from './comment';\nimport { withInstall } from '@tdesign/shared-utils';\nimport { TdCommentProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type CommentProps = TdCommentProps;\n\nexport const Comment = withInstall(_Comment);\nexport default Comment;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdEmptyProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 操作按钮 */\n action: {\n type: Function as PropType,\n },\n /** 描述文字 */\n description: {\n type: [String, Function] as PropType,\n },\n /** 组件图片,可以完全自定义内容。值类型为字符串时,表示图片地址;值类型为对象时,则表示透传全部属性到图片组件,示例:`` */\n image: {\n type: [String, Function] as PropType,\n },\n /** 透传图片样式表 */\n imageStyle: {\n type: Object as PropType,\n },\n /** 空状态的尺寸,默认为 `medium` */\n size: {\n type: String as PropType,\n default: 'medium' as TdEmptyProps['size'],\n validator(val: TdEmptyProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 错误标题 */\n title: {\n type: [String, Function] as PropType,\n },\n /** 组件类型,如:空数据/成功/失败/网络错误/建设中 */\n type: {\n type: String as PropType,\n default: 'empty' as TdEmptyProps['type'],\n validator(val: TdEmptyProps['type']): boolean {\n if (!val) return true;\n return ['empty', 'success', 'fail', 'network-error', 'maintenance'].includes(val);\n },\n },\n};\n","import { defineComponent } from 'vue';\n\nexport default defineComponent({\n name: 'MaintenanceSvg',\n setup() {\n return () => (\n \n \n \n \n \n \n \n \n \n );\n },\n});\n","import { defineComponent } from 'vue';\n\nexport default defineComponent({\n name: 'NetworkErrorSvg',\n setup() {\n return () => (\n \n \n \n \n \n \n \n \n \n );\n },\n});\n","import { defineComponent } from 'vue';\n\nexport default defineComponent({\n name: 'EmptySvg',\n setup() {\n return () => (\n \n \n \n \n \n \n \n \n \n \n );\n },\n});\n","import { defineComponent } from 'vue';\n\nexport default defineComponent({\n name: 'FailSvg',\n setup() {\n return () => (\n \n \n \n );\n },\n});\n","import { defineComponent } from 'vue';\n\nexport default defineComponent({\n name: 'SuccessSvg',\n setup() {\n return () => (\n \n \n \n );\n },\n});\n","import { computed, defineComponent, h, toRefs } from 'vue';\nimport { isString, isPlainObject } from 'lodash-es';\n\nimport { useConfig, useTNodeJSX, usePrefixClass, useCommonClassName } from '@tdesign/shared-hooks';\n\nimport props from './props';\nimport type { TdEmptyProps } from './type';\nimport Image from '../image';\nimport MaintenanceSvg from './components/MaintenanceSvg';\nimport NetworkErrorSvg from './components/NetworkErrorSvg';\nimport EmptySvg from './components/EmptySvg';\nimport FailSvg from './components/FailSvg';\nimport SuccessSvg from './components/SuccessSvg';\n\nexport default defineComponent({\n name: 'TEmpty',\n components: { TImage: Image },\n props,\n setup(props: TdEmptyProps, { slots }) {\n const { size, image: propsImage, description: propsDescription, title: propsTitle, type } = toRefs(props);\n const { globalConfig } = useConfig('empty');\n const classPrefix = usePrefixClass('empty');\n const showAction = computed(() => props.action || slots.action);\n const { SIZE } = useCommonClassName();\n const renderTNodeJSX = useTNodeJSX();\n\n const defaultMaps: {\n [key in TdEmptyProps['type']]?: Pick;\n } = {\n maintenance: {\n image: globalConfig.value.image.maintenance || MaintenanceSvg,\n title: globalConfig.value.titleText.maintenance,\n },\n success: {\n image: globalConfig.value.image.success || SuccessSvg,\n title: globalConfig.value.titleText.success,\n },\n fail: {\n image: globalConfig.value.image.fail || FailSvg,\n title: globalConfig.value.titleText.fail,\n },\n 'network-error': {\n image: globalConfig.value.image.networkError || NetworkErrorSvg,\n title: globalConfig.value.titleText.networkError,\n },\n empty: {\n image: globalConfig.value.image.empty || EmptySvg,\n title: globalConfig.value.titleText.empty,\n },\n };\n\n const emptyClasses = computed(() => [classPrefix.value, SIZE.value[size.value]]);\n const titleClasses = [`${classPrefix.value}__title`];\n const imageClasses = [`${classPrefix.value}__image`];\n const descriptionClasses = [`${classPrefix.value}__description`];\n const actionClass = [`${classPrefix.value}__action`];\n\n const typeImageProps = computed(() => defaultMaps[type.value] ?? null);\n const showImage = computed(() => propsImage.value || slots?.image?.() || typeImageProps.value?.image);\n const showTitle = computed(() => propsTitle.value || slots?.title?.() || typeImageProps.value?.title);\n const showDescription = computed(() => propsDescription.value || slots?.description?.());\n\n const renderTitle = () => {\n if (!showTitle.value) {\n return null;\n }\n return
    {showTitle.value}
    ;\n };\n const renderDescription = () => {\n if (!showDescription.value) {\n return null;\n }\n return
    {showDescription.value}
    ;\n };\n const getImageIns = () => {\n const data = showImage.value;\n let result = null;\n if (isString(data)) {\n result = ;\n } else if (data && Reflect.has(data, 'setup')) {\n result = h(data as unknown);\n } else if (isPlainObject(data)) {\n result = ;\n }\n\n return data ? result : null;\n };\n\n return () => {\n return (\n
    \n {showImage.value ? (\n
    \n {slots?.image ? renderTNodeJSX('image') : getImageIns()}\n
    \n ) : null}\n {renderTitle()}\n {renderDescription()}\n {showAction.value ?
    {renderTNodeJSX('action')}
    : null}\n
    \n );\n };\n },\n});\n","import _Empty from './empty';\nimport { withInstall } from '@tdesign/shared-utils';\nimport type { TdEmptyProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type EmptyProps = TdEmptyProps;\n\nexport const Empty = withInstall(_Empty);\nexport default Empty;\n","import { positiveSubtract, positiveAdd } from '@tdesign/common-js/input-number/number';\nimport { ref, watch } from 'vue';\nimport { ImageScale } from '../type';\nimport { throttle } from 'lodash-es';\n\ninterface InitTransform {\n translateX: number;\n translateY: number;\n}\n\nexport function useDrag(initTransform: InitTransform) {\n const transform = ref(initTransform);\n\n const mouseDownHandler = (e: MouseEvent) => {\n const { pageX: startX, pageY: startY } = e;\n const { translateX, translateY } = transform.value;\n const mouseMoveHandler = (e: MouseEvent) => {\n const { pageX, pageY } = e;\n transform.value = {\n translateX: translateX + pageX - startX,\n translateY: translateY + pageY - startY,\n };\n };\n const mouseUpHandler = () => {\n document.removeEventListener('mousemove', mouseMoveHandler);\n document.removeEventListener('mouseup', mouseUpHandler);\n };\n\n document.addEventListener('mousemove', mouseMoveHandler);\n document.addEventListener('mouseup', mouseUpHandler);\n };\n\n const resetTransform = () => {\n transform.value = { ...initTransform };\n };\n\n return { transform, mouseDownHandler, resetTransform };\n}\n\nexport function useMirror() {\n const mirror = ref(1);\n const onMirror = () => {\n mirror.value *= -1;\n };\n const resetMirror = () => {\n mirror.value = 1;\n };\n\n return { mirror, onMirror, resetMirror };\n}\n\nexport function useScale(imageScale: ImageScale = { max: 2, min: 0.5, step: 0.2 }) {\n const { max, min, step, defaultScale } = imageScale;\n const scale = ref(defaultScale ?? 1);\n\n const onZoomIn = throttle(() => {\n const result = positiveAdd(scale.value, step);\n setScale(result);\n }, 50);\n\n const onZoomOut = throttle(() => {\n const result = positiveSubtract(scale.value, step);\n setScale(result);\n }, 50);\n\n const resetScale = () => {\n scale.value = defaultScale ?? 1;\n };\n\n const setScale = (newScale: number) => {\n let value = newScale;\n if (newScale < min) {\n value = min;\n }\n if (newScale > max) {\n value = max;\n }\n scale.value = value;\n };\n\n watch(\n () => imageScale,\n () => resetScale(),\n );\n\n return { scale, onZoomIn, onZoomOut, resetScale };\n}\n\nexport function useRotate() {\n const rotate = ref(0);\n const ROTATE_DEG = 90;\n\n const onRotate = () => {\n rotate.value += ROTATE_DEG;\n };\n const resetRotate = () => {\n rotate.value = 0;\n };\n\n return { rotate, onRotate, resetRotate };\n}\n","import { ImageErrorIcon } from 'tdesign-icons-vue-next';\nimport { PropType, computed, defineComponent, onMounted, ref, toRefs, watch } from 'vue';\nimport { useConfig, usePrefixClass, useImagePreviewUrl } from '@tdesign/shared-hooks';\n\nimport { useDrag } from '../hooks';\nimport { TdImageViewerProps } from '../type';\n\nexport default defineComponent({\n name: 'TImageItem',\n props: {\n rotate: Number,\n scale: Number,\n mirror: Number,\n src: [String, Object] as PropType,\n placementSrc: [String, Object] as PropType,\n isSvg: Boolean,\n imageReferrerpolicy: String as PropType,\n },\n\n setup(props) {\n const { src, placementSrc, isSvg } = toRefs(props);\n const classPrefix = usePrefixClass();\n const error = ref(false);\n const loaded = ref(false);\n const { transform, mouseDownHandler } = useDrag({ translateX: 0, translateY: 0 });\n const { globalConfig } = useConfig('imageViewer');\n const errorText = globalConfig.value.errorText;\n const svgElRef = ref();\n\n const imgStyle = computed(() => ({\n transform: `rotate(${props.rotate}deg) scale(${props.scale})`,\n display: !props.placementSrc || loaded.value ? 'block' : 'none',\n }));\n const placementImgStyle = computed(() => ({\n transform: `rotate(${props.rotate}deg) scale(${props.scale})`,\n display: !loaded.value ? 'block' : 'none',\n }));\n const boxStyle = computed(() => {\n const { translateX, translateY } = transform.value;\n return {\n transform: `translate(${translateX}px, ${translateY}px) scale(${props.mirror}, 1)`,\n };\n });\n\n const resetStatus = () => {\n error.value = false;\n loaded.value = false;\n if (isSvg.value) {\n createSvgShadow(mainImagePreviewUrl.value);\n }\n };\n\n const createSvgShadow = async (url: string) => {\n const response = await fetch(url);\n if (!response.ok) {\n error.value = true;\n throw new Error(`Failed to fetch SVG: ${response.statusText}`);\n }\n const svgText = await response.text();\n\n const element = svgElRef.value;\n element.innerHTML = '';\n element.classList?.add(`${classPrefix.value}-image-viewer__modal-image-svg`);\n const shadowRoot = element.attachShadow({ mode: 'closed' });\n\n const container = document.createElement('div');\n\n container.style.background = 'var(--td-bg-color-container)';\n container.style.padding = '4px';\n container.style.borderRadius = '4px';\n container.style.maxHeight = '100%';\n container.style.maxWidth = '100%';\n container.style.boxSizing = 'border-box';\n container.style.height = 'auto';\n container.innerHTML = svgText;\n shadowRoot.appendChild(container);\n\n const svgElement = container.querySelector('svg');\n if (svgElement) {\n const svgViewBox = svgElement.getAttribute('viewBox');\n if (svgViewBox) {\n const viewBoxValues = svgViewBox\n .split(/[\\s\\,]/)\n .filter(function (v) {\n return v;\n })\n .map(parseFloat);\n\n // svg viewbox x(0) and y(1) offset, width(2) and height(3),eg\n const svgViewBoxWidth = viewBoxValues[2];\n // const svgViewBoxHeight = viewBoxValues[3];\n container.style.width = `${svgViewBoxWidth}px`;\n } else {\n const bbox = svgElement.getBBox();\n const calculatedViewBox = `${bbox.x} ${bbox.y} ${bbox.width} ${bbox.height}`;\n svgElement.setAttribute('viewBox', calculatedViewBox);\n\n container.style.width = `${bbox.width}px`;\n }\n svgElement.style.maxHeight = '100%';\n svgElement.style.maxWidth = '100%';\n svgElement.style.height = 'auto';\n svgElement.style.display = 'block';\n svgElement.style.lineHeight = 'normal';\n }\n loaded.value = true;\n };\n\n const { previewUrl: mainImagePreviewUrl } = useImagePreviewUrl(src);\n const { previewUrl: placementImagePreviewUrl } = useImagePreviewUrl(placementSrc);\n\n watch([mainImagePreviewUrl, placementImagePreviewUrl], () => {\n resetStatus();\n });\n\n onMounted(async () => {\n if (isSvg.value) {\n await createSvgShadow(mainImagePreviewUrl.value);\n }\n });\n\n return () => (\n
    \n
    \n {error.value && (\n
    \n {/* 脱离文档流 */}\n
    \n \n
    {errorText}
    \n
    \n
    \n )}\n\n {!error.value && !!props.placementSrc && placementImagePreviewUrl.value && (\n {\n event.stopPropagation();\n mouseDownHandler(event);\n }}\n src={placementImagePreviewUrl.value}\n style={placementImgStyle.value}\n referrerpolicy={props.imageReferrerpolicy}\n alt=\"image\"\n draggable=\"false\"\n />\n )}\n\n {!error.value && mainImagePreviewUrl.value && !isSvg.value && (\n {\n event.stopPropagation();\n mouseDownHandler(event);\n }}\n src={mainImagePreviewUrl.value}\n onLoad={() => (loaded.value = true)}\n onError={() => (error.value = true)}\n style={imgStyle.value}\n referrerpolicy={props.imageReferrerpolicy}\n alt=\"image\"\n draggable=\"false\"\n />\n )}\n\n {!error.value && mainImagePreviewUrl.value && isSvg.value && (\n {\n event.stopPropagation();\n mouseDownHandler(event);\n }}\n data-alt=\"svg\"\n style={imgStyle.value}\n draggable=\"false\"\n >
    \n )}\n
    \n \n );\n },\n});\n","import { computed, defineComponent, PropType } from 'vue';\nimport { useTNodeJSX, usePrefixClass } from '@tdesign/shared-hooks';\nimport { TNode } from '../../common';\n\nexport default defineComponent({\n name: 'TImageModalIcon',\n props: {\n disabled: Boolean,\n onClick: Function as PropType<(e: MouseEvent) => void>,\n label: String,\n icon: Function as PropType,\n },\n setup(props) {\n const classPrefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n const wrapClass = computed(() => [\n `${classPrefix.value}-image-viewer__modal-icon`,\n {\n [`${classPrefix.value}-is-disabled`]: props.disabled,\n },\n ]);\n\n return () => (\n
    \n {renderTNodeJSX('icon')}\n {props.label && {props.label}}\n
    \n );\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdDialogProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 对话框挂载的节点。数据类型为 String 时,会被当作选择器处理,进行节点查询。示例:'body' 或 () => document.body */\n attach: {\n type: [String, Function] as PropType,\n },\n /** 对话框内容 */\n body: {\n type: [String, Function] as PropType,\n },\n /** 取消按钮,可自定义。值为 null 则不显示取消按钮。值类型为字符串,则表示自定义按钮文本,值类型为 Object 则表示透传 Button 组件属性。使用 TNode 自定义按钮时,需自行控制取消事件 */\n cancelBtn: {\n type: [String, Object, Function, null] as PropType,\n },\n /** 关闭按钮,可以自定义。值为 true 显示默认关闭按钮,值为 false 不显示关闭按钮。值类型为 string 则直接显示值,如:“关闭”。值类型为 TNode,则表示呈现自定义按钮示例 */\n closeBtn: {\n type: [String, Boolean, Function] as PropType,\n default: true as TdDialogProps['closeBtn'],\n },\n /** 按下 ESC 时是否触发对话框关闭事件 */\n closeOnEscKeydown: {\n type: Boolean,\n default: undefined,\n },\n /** 点击蒙层时是否触发关闭事件 */\n closeOnOverlayClick: {\n type: Boolean,\n default: undefined,\n },\n /** 确认按钮。值为 null 则不显示确认按钮。值类型为字符串,则表示自定义按钮文本,值类型为 Object 则表示透传 Button 组件属性。使用 TNode 自定义按钮时,需自行控制确认事件 */\n confirmBtn: {\n type: [String, Object, Function, null] as PropType,\n },\n /** 确认按钮加载状态 */\n confirmLoading: {\n type: Boolean,\n default: undefined,\n },\n /** 是否在按下回车键时,触发确认事件 */\n confirmOnEnter: Boolean,\n /** 对话框内容,同 body */\n default: {\n type: [String, Function] as PropType,\n },\n /** 是否在关闭弹框的时候销毁子元素 */\n destroyOnClose: Boolean,\n /** 弹框元素类名,示例:'t-class-dialog-first t-class-dialog-second' */\n dialogClassName: {\n type: String,\n default: '',\n },\n /** 作用于对话框本身的样式 */\n dialogStyle: {\n type: Object as PropType,\n },\n /** 对话框是否可以拖拽(仅在非模态对话框时有效) */\n draggable: Boolean,\n /** 底部操作栏,默认会有“确认”和“取消”两个按钮。值为 true 显示默认操作按钮,值为 false 不显示任何内容,值类型为 Function 表示自定义底部内容 */\n footer: {\n type: [Boolean, Function] as PropType,\n default: true as TdDialogProps['footer'],\n },\n /** 头部内容。值为 true 显示空白头部,值为 false 不显示任何内容,值类型为 string 则直接显示值,值类型为 Function 表示自定义头部内容 */\n header: {\n type: [String, Boolean, Function] as PropType,\n default: true as TdDialogProps['header'],\n },\n /** 是否启用对话框懒加载,启用时对话框内的内容不渲染 */\n lazy: Boolean,\n /** 对话框类型,有 4 种:模态对话框、非模态对话框、普通对话框、全屏对话框。弹出「模态对话框」时,只能操作对话框里面的内容,不能操作其他内容。弹出「非模态对话框」时,则可以操作页面内所有内容。「普通对话框」是指没有脱离文档流的对话框,可以在这个基础上开发更多的插件 */\n mode: {\n type: String as PropType,\n default: 'modal' as TdDialogProps['mode'],\n validator(val: TdDialogProps['mode']): boolean {\n if (!val) return true;\n return ['modal', 'modeless', 'normal', 'full-screen'].includes(val);\n },\n },\n /** 对话框位置,内置两种:垂直水平居中显示 和 靠近顶部(top:20%)显示。默认情况,为避免贴顶或贴底,顶部和底部距离最小为 `48px`,可通过调整 `top` 覆盖默认大小 */\n placement: {\n type: String as PropType,\n default: 'top' as TdDialogProps['placement'],\n validator(val: TdDialogProps['placement']): boolean {\n if (!val) return true;\n return ['top', 'center'].includes(val);\n },\n },\n /** 防止滚动穿透 */\n preventScrollThrough: {\n type: Boolean,\n default: true,\n },\n /** 仅在挂载元素中显示抽屉,默认在浏览器可视区域显示。父元素需要有定位属性,如:position: relative */\n showInAttachedElement: Boolean,\n /** 是否显示遮罩层 */\n showOverlay: {\n type: Boolean,\n default: true,\n },\n /** 对话框风格 */\n theme: {\n type: String as PropType,\n default: 'default' as TdDialogProps['theme'],\n validator(val: TdDialogProps['theme']): boolean {\n if (!val) return true;\n return ['default', 'info', 'warning', 'danger', 'success'].includes(val);\n },\n },\n /** 用于弹框具体窗口顶部的距离,优先级大于 placement */\n top: {\n type: [String, Number] as PropType,\n },\n /** 控制对话框是否显示 */\n visible: Boolean,\n /** 对话框宽度,示例:320, '500px', '80%' */\n width: {\n type: [String, Number] as PropType,\n },\n /** 对话框层级,Web 侧样式默认为 2500,移动端和小程序样式默认为 1500 */\n zIndex: {\n type: Number,\n },\n /** 对话框执行消失动画效果前触发 */\n onBeforeClose: Function as PropType,\n /** 对话框执行弹出动画效果前触发 */\n onBeforeOpen: Function as PropType,\n /** 如果“取消”按钮存在,则点击“取消”按钮时触发,同时触发关闭事件 */\n onCancel: Function as PropType,\n /** 关闭事件,点击取消按钮、点击关闭按钮、点击蒙层、按下 ESC 等场景下触发 */\n onClose: Function as PropType,\n /** 点击右上角关闭按钮时触发 */\n onCloseBtnClick: Function as PropType,\n /** 对话框消失动画效果结束后触发 */\n onClosed: Function as PropType,\n /** 如果“确认”按钮存在,则点击“确认”按钮时触发,或者键盘按下回车键时触发 */\n onConfirm: Function as PropType,\n /** 按下 ESC 时触发事件 */\n onEscKeydown: Function as PropType,\n /** 对话框弹出动画效果结束后触发 */\n onOpened: Function as PropType,\n /** 如果蒙层存在,点击蒙层时触发 */\n onOverlayClick: Function as PropType,\n};\n","import { getCurrentInstance } from 'vue';\nimport { omit, isString, isObject } from 'lodash-es';\n\nimport { useTNodeJSX } from '@tdesign/shared-hooks';\nimport TButton, { ButtonProps } from '../../button';\nimport { PopconfirmConfig, DialogConfig, DrawerConfig } from '../../config-provider';\nimport type { ClassName } from '../../common';\nimport type { TdDialogProps } from '../type';\nimport { getPropertyValFromObj } from '@tdesign/common-js/utils/general';\n\nexport interface MixinsConfirmBtn {\n theme?: MixinsThemeType;\n className?: ClassName;\n confirmBtn: TdDialogProps['confirmBtn'];\n globalConfirm: PopconfirmConfig['confirm'] | DrawerConfig['confirm'] | DialogConfig['confirm'];\n globalConfirmBtnTheme?: PopconfirmConfig['confirmBtnTheme'] | DialogConfig['confirmBtnTheme'];\n size?: ButtonProps['size'];\n confirmLoading?: boolean;\n}\n\nexport interface MixinsCancelBtn {\n className?: ClassName;\n cancelBtn: TdDialogProps['cancelBtn'];\n globalCancel: PopconfirmConfig['cancel'] | DrawerConfig['cancel'] | DialogConfig['cancel'];\n size?: ButtonProps['size'];\n}\n\nexport type MixinsThemeType = keyof (PopconfirmConfig['confirmBtnTheme'] & DialogConfig['confirmBtnTheme']);\n\nexport interface BtnAction {\n confirmBtnAction: (e: MouseEvent) => void;\n cancelBtnAction: (e: MouseEvent) => void;\n}\n\nexport function useAction(action: BtnAction) {\n const instance = getCurrentInstance();\n const renderTNodeJSX = useTNodeJSX();\n // 全局配置属性综合\n const getDefaultConfirmBtnProps = (options: MixinsConfirmBtn): ButtonProps => {\n const { globalConfirm, theme, globalConfirmBtnTheme } = options;\n const defaultTheme = getPropertyValFromObj(omit(globalConfirmBtnTheme, ['info']), theme) || 'primary';\n let props: ButtonProps = {\n // @ts-ignore\n // TODO: fix type of globalConfirmBtnTheme\n theme: defaultTheme,\n size: options.size,\n onClick: (e) => {\n action.confirmBtnAction(e);\n },\n };\n if (isString(globalConfirm)) {\n props.content = globalConfirm;\n } else if (isObject(globalConfirm)) {\n props = { ...props, ...globalConfirm };\n }\n return props;\n };\n // 全局配置属性综合\n const getDefaultCancelBtnProps = (options: MixinsCancelBtn): ButtonProps => {\n const { globalCancel } = options;\n let props: ButtonProps = {\n theme: 'default',\n size: options.size,\n onClick: (e) => {\n action.cancelBtnAction(e);\n },\n };\n if (isString(globalCancel)) {\n props.content = globalCancel;\n } else if (isObject(globalCancel)) {\n props = { ...props, ...globalCancel };\n }\n return props;\n };\n const getButtonByProps = (\n button: string | ButtonProps,\n params: {\n defaultButtonProps: ButtonProps;\n className?: ClassName;\n confirmLoading?: boolean;\n },\n ) => {\n const { defaultButtonProps, className, confirmLoading } = params;\n let newOptions = defaultButtonProps;\n if (isString(button)) {\n newOptions.content = button;\n } else if (isObject(button)) {\n newOptions = { ...newOptions, ...button };\n }\n if (confirmLoading !== undefined) {\n newOptions.loading = confirmLoading;\n }\n return ;\n };\n const getConfirmBtn = (options: MixinsConfirmBtn) => {\n const { confirmBtn, className, confirmLoading } = options;\n if (confirmBtn === null) return null;\n if (confirmBtn && instance.slots.confirmBtn) {\n console.warn('Both $props.confirmBtn and $scopedSlots.confirmBtn exist, $props.confirmBtn is preferred.');\n }\n const defaultButtonProps = getDefaultConfirmBtnProps(options);\n // 属性和插槽都不存在,就返回全局默认配置\n if (!confirmBtn && !instance.slots.confirmBtn) {\n return ;\n }\n // 如果属性存在,优先返回属性配置\n if (confirmBtn && ['string', 'object'].includes(typeof confirmBtn)) {\n return getButtonByProps(confirmBtn as string | ButtonProps, {\n defaultButtonProps,\n className,\n confirmLoading,\n });\n }\n // 渲染插槽 或 function 类型的 confirmBtn,属性优先级更高\n return renderTNodeJSX('confirmBtn');\n };\n const getCancelBtn = (options: MixinsCancelBtn) => {\n const { cancelBtn, className } = options;\n if (cancelBtn === null) return null;\n if (cancelBtn && instance.slots.cancelBtn) {\n console.warn('Both $props.cancelBtn and $scopedSlots.cancelBtn exist, $props.cancelBtn is preferred.');\n }\n const defaultButtonProps: ButtonProps = getDefaultCancelBtnProps(options);\n // 属性和插槽都不存在,就返回全局默认配置\n if (!cancelBtn && !instance.slots.cancelBtn) {\n return ;\n }\n // 如果属性存在,优先返回属性配置\n if (cancelBtn && ['string', 'object'].includes(typeof cancelBtn)) {\n return getButtonByProps(cancelBtn as string | ButtonProps, { defaultButtonProps, className });\n }\n // 渲染插槽 或 function 类型的 confirmBtn,属性优先级更高\n return renderTNodeJSX('cancelBtn');\n };\n return { getConfirmBtn, getCancelBtn };\n}\n","/**\n * 计算滚动条宽度的方法\n * 新建一个带有滚动条的 div 元素,通过该元素的 offsetWidth 和 clientWidth 的差值即可获得\n * CSS 中设置了 -webkit-scrollbar { width: 6px; height: 6px },固定浏览器滚动条宽度,仅限 Chrome/Safari\n * Safari UA\n * \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)\n * AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15\"\n * Chrome UA\n * Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)\n * AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36\n * FireFox UA\n * Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:94.0) Gecko/20100101 Firefox/94.0\n * IE UA\n * \"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2;\n * .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)\"\n */\nimport { getIEVersion } from './helper';\n\nexport function getScrollbarWidthWithCSS() {\n const defaultScrollbarWidth = 6;\n if (typeof navigator === 'undefined' || !navigator) return defaultScrollbarWidth;\n if (/(Chrome|Safari)/i.test(navigator.userAgent)) return defaultScrollbarWidth;\n const scrollDiv = document.createElement('div');\n scrollDiv.style.cssText = 'width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;';\n document.body.appendChild(scrollDiv);\n let scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n // 火狐浏览器需要再减去 4\n if (/Firefox/.test(navigator.userAgent)) {\n scrollbarWidth -= 4;\n }\n if (getIEVersion() <= 11) {\n scrollbarWidth = 12;\n }\n return scrollbarWidth;\n}\n\n/**\n * @description: Calculate scroll bar width\n * @param container Container used to calculate scrollbar width\n * @default container: document.body\n */\nexport function getScrollbarWidth(container: HTMLElement = document.body) {\n if (container === document.body) {\n return window.innerWidth - document.documentElement.clientWidth;\n }\n return container.offsetWidth - container.clientWidth;\n}\n","export function getCSSValue(v: string | number) {\n return Number.isNaN(Number(v)) ? v : `${Number(v)}px`;\n}\n\nexport function initDragEvent(dragBox: HTMLElement) {\n const target = dragBox;\n const windowInnerWidth = window.innerWidth || document.documentElement.clientWidth;\n const windowInnerHeight = window.innerHeight || document.documentElement.clientHeight;\n target.addEventListener('mousedown', (targetEvent: MouseEvent) => {\n // 算出鼠标相对元素的位置\n const disX = targetEvent.clientX - target.offsetLeft;\n const disY = targetEvent.clientY - target.offsetTop;\n const dialogW = target.offsetWidth;\n const dialogH = target.offsetHeight;\n // 如果弹出框超出屏幕范围 不能进行拖拽\n if (dialogW > windowInnerWidth || dialogH > windowInnerHeight) return;\n function mouseMoverHandler(documentEvent: MouseEvent) {\n // 用鼠标的位置减去鼠标相对元素的位置,得到元素的位置\n let left = documentEvent.clientX - disX;\n let top = documentEvent.clientY - disY;\n // 临界判断\n // 拖拽上左边界限制\n if (left < 0) left = 0;\n if (top < 0) top = 0;\n if (windowInnerWidth - target.offsetWidth - left < 0) left = windowInnerWidth - target.offsetWidth;\n if (windowInnerHeight - target.offsetHeight - top < 0) top = windowInnerHeight - target.offsetHeight;\n target.style.position = 'absolute';\n target.style.left = `${left}px`;\n target.style.top = `${top}px`;\n }\n function mouseUpHandler() {\n // 鼠标弹起来的时候不再移动\n document.removeEventListener('mousemove', mouseMoverHandler);\n // 预防鼠标弹起来后还会循环(即预防鼠标放上去的时候还会移动)\n document.removeEventListener('mouseup', mouseUpHandler);\n }\n // 元素按下时注册document鼠标监听事件\n document.addEventListener('mousemove', mouseMoverHandler);\n // 鼠标弹起来移除document鼠标监听事件\n document.addEventListener('mouseup', mouseUpHandler);\n // 拖拽结束移除鼠标监听事件,解决文字拖拽结束事件未解绑问题\n document.addEventListener('dragend', mouseUpHandler);\n });\n}\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdDialogCardProps } from '../dialog/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 对话框内容 */\n body: {\n type: [String, Function] as PropType,\n },\n /** 取消按钮,可自定义。值为 null 则不显示取消按钮。值类型为字符串,则表示自定义按钮文本,值类型为 Object 则表示透传 Button 组件属性。使用 TNode 自定义按钮时,需自行控制取消事件 */\n cancelBtn: {\n type: [String, Object, Function] as PropType,\n },\n /** 关闭按钮,可以自定义。值为 true 显示默认关闭按钮,值为 false 不显示关闭按钮。值类型为 string 则直接显示值,如:“关闭”。值类型为 TNode,则表示呈现自定义按钮示例 */\n closeBtn: {\n type: [String, Boolean, Function] as PropType,\n default: true as TdDialogCardProps['closeBtn'],\n },\n /** 确认按钮。值为 null 则不显示确认按钮。值类型为字符串,则表示自定义按钮文本,值类型为 Object 则表示透传 Button 组件属性。使用 TNode 自定义按钮时,需自行控制确认事件 */\n confirmBtn: {\n type: [String, Object, Function] as PropType,\n },\n /** 确认按钮加载状态 */\n confirmLoading: {\n type: Boolean,\n default: undefined,\n },\n /** 底部操作栏,默认会有“确认”和“取消”两个按钮。值为 true 显示默认操作按钮,值为 false 不显示任何内容,值类型为 Function 表示自定义底部内容 */\n footer: {\n type: [Boolean, Function] as PropType,\n },\n /** 头部内容。值为 true 显示空白头部,值为 false 不显示任何内容,值类型为 string 则直接显示值,值类型为 Function 表示自定义头部内容 */\n header: {\n type: [String, Boolean, Function] as PropType,\n default: true as TdDialogCardProps['header'],\n },\n /** 对话框风格 */\n theme: {\n type: String as PropType,\n default: 'default' as TdDialogCardProps['theme'],\n validator(val: TdDialogCardProps['theme']): boolean {\n if (!val) return true;\n return ['default', 'info', 'warning', 'danger', 'success'].includes(val);\n },\n },\n /** 如果“取消”按钮存在,则点击“取消”按钮时触发,同时触发关闭事件 */\n onCancel: Function as PropType,\n /** 点击右上角关闭按钮时触发 */\n onCloseBtnClick: Function as PropType,\n /** 如果“确认”按钮存在,则点击“确认”按钮时触发,或者键盘按下回车键时触发 */\n onConfirm: Function as PropType,\n};\n","import { computed, defineComponent, ref, toRefs } from 'vue';\nimport {\n CloseIcon as TdCloseIcon,\n InfoCircleFilledIcon as TdInfoCircleFilledIcon,\n CheckCircleFilledIcon as TdCheckCircleFilledIcon,\n ErrorCircleFilledIcon as TdErrorCircleFilledIcon,\n} from 'tdesign-icons-vue-next';\nimport dialogCardProps from './dialog-card-props';\nimport { useConfig, useContent, useTNodeJSX, useGlobalIcon, usePrefixClass } from '@tdesign/shared-hooks';\n\nimport { useAction } from './hooks';\n\nimport type { TdDialogProps } from './type';\nimport dialogProps from './props';\nimport { getCSSValue, initDragEvent } from './utils';\n\nexport default defineComponent({\n name: 'TDialogCard',\n // 注册v-draggable指令,传入true时候初始化拖拽事件\n directives: {\n draggable(el, binding) {\n // el 指令绑定的元素\n if (el && binding && binding.value) {\n initDragEvent(el);\n }\n },\n },\n props: {\n ...dialogProps,\n ...dialogCardProps,\n },\n setup(props, { expose }) {\n const rootRef = ref(null);\n const COMPONENT_NAME = usePrefixClass('dialog');\n const classPrefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n const renderContent = useContent();\n const { globalConfig } = useConfig('dialog');\n const { CloseIcon, InfoCircleFilledIcon, CheckCircleFilledIcon, ErrorCircleFilledIcon } = useGlobalIcon({\n CloseIcon: TdCloseIcon,\n InfoCircleFilledIcon: TdInfoCircleFilledIcon,\n CheckCircleFilledIcon: TdCheckCircleFilledIcon,\n ErrorCircleFilledIcon: TdErrorCircleFilledIcon,\n });\n const { cancelBtn, confirmBtn, confirmLoading } = toRefs(props);\n const confirmBtnAction = (e: MouseEvent) => props.onConfirm?.({ e });\n const cancelBtnAction = (e: MouseEvent) => props.onCancel?.({ e });\n const { getConfirmBtn, getCancelBtn } = useAction({ confirmBtnAction, cancelBtnAction });\n // 是否非模态对话框\n const isModeLess = computed(() => props.mode === 'modeless');\n // 是否全屏对话框\n const isFullScreen = computed(() => props.mode === 'full-screen');\n const closeBtnAction = (e: MouseEvent) => props?.onCloseBtnClick?.({ e });\n const onStopDown = (e: MouseEvent) => {\n if (isModeLess.value && props?.draggable) e.stopPropagation();\n };\n\n const resetPosition = () => {\n if (!rootRef.value && isModeLess.value && props.draggable) return;\n rootRef.value.style.position = 'relative';\n rootRef.value.style.left = 'unset';\n rootRef.value.style.top = 'unset';\n };\n\n // 暴露给父组件的接口\n expose({\n $el: rootRef,\n resetPosition,\n });\n\n const dialogClass = computed(() => {\n const dialogClass = [\n `${COMPONENT_NAME.value}`,\n `${COMPONENT_NAME.value}__modal-${props.theme}`,\n isModeLess.value && props.draggable && `${COMPONENT_NAME.value}--draggable`,\n props.dialogClassName,\n ];\n\n if (isFullScreen.value) {\n dialogClass.push(`${COMPONENT_NAME.value}__fullscreen`);\n } else {\n dialogClass.push(...[`${COMPONENT_NAME.value}--default`, `${COMPONENT_NAME.value}--${props.placement}`]);\n }\n return dialogClass;\n });\n const dialogStyle = computed(() => {\n return !isFullScreen.value ? { width: getCSSValue(props.width), ...props.dialogStyle } : { ...props.dialogStyle }; // width全屏模式不生效\n });\n\n const renderCard = () => {\n const confirmBtnLoading = computed(() => {\n // @ts-ignore\n return confirmBtn.value?.loading || confirmLoading.value;\n });\n const defaultFooter = (\n
    \n {getCancelBtn({\n cancelBtn: cancelBtn.value as TdDialogProps['cancelBtn'],\n globalCancel: globalConfig.value.cancel,\n className: `${COMPONENT_NAME.value}__cancel`,\n })}\n {getConfirmBtn({\n theme: props?.theme,\n confirmBtn: confirmBtn.value as TdDialogProps['confirmBtn'],\n globalConfirm: globalConfig.value.confirm,\n globalConfirmBtnTheme: globalConfig.value.confirmBtnTheme,\n className: `${COMPONENT_NAME.value}__confirm`,\n confirmLoading: confirmBtnLoading.value,\n })}\n
    \n );\n\n const footerContent = renderTNodeJSX('footer', defaultFooter);\n\n const renderHeader = () => {\n // header 值为 true 显示空白头部\n const header = renderTNodeJSX('header',
    ) ?? false;\n const headerClassName = isFullScreen.value\n ? [`${COMPONENT_NAME.value}__header`, `${COMPONENT_NAME.value}__header--fullscreen`]\n : `${COMPONENT_NAME.value}__header`;\n\n const closeClassName = isFullScreen.value\n ? [`${COMPONENT_NAME.value}__close`, `${COMPONENT_NAME.value}__close--fullscreen`]\n : `${COMPONENT_NAME.value}__close`;\n const getIcon = () => {\n const icon = {\n info: ,\n warning: ,\n danger: ,\n success: ,\n };\n return icon[props?.theme as keyof typeof icon];\n };\n return (\n (header || props?.closeBtn) && (\n
    \n
    \n {getIcon()}\n {header}\n
    \n\n {props?.closeBtn ? (\n \n {renderTNodeJSX('closeBtn', )}\n \n ) : null}\n
    \n )\n );\n };\n\n const renderBody = () => {\n const body = renderContent('default', 'body');\n const bodyClassName =\n props?.theme === 'default' ? [`${COMPONENT_NAME.value}__body`] : [`${COMPONENT_NAME.value}__body__icon`];\n if (isFullScreen.value && footerContent) {\n bodyClassName.push(`${COMPONENT_NAME.value}__body--fullscreen`);\n } else if (isFullScreen.value) {\n bodyClassName.push(`${COMPONENT_NAME.value}__body--fullscreen--without-footer`);\n }\n return (\n
    \n {body}\n
    \n );\n };\n\n const renderFooter = () => {\n const footerClassName = isFullScreen.value\n ? [`${COMPONENT_NAME.value}__footer`, `${COMPONENT_NAME.value}__footer--fullscreen`]\n : `${COMPONENT_NAME.value}__footer`;\n\n return (\n footerContent && (\n
    \n {footerContent}\n
    \n )\n );\n };\n\n return (\n <>\n {renderHeader()}\n {renderBody()}\n {!!props.footer && renderFooter()}\n \n );\n };\n\n return () => (\n \n {renderCard()}\n \n );\n },\n});\n","import {\n computed,\n defineComponent,\n nextTick,\n onBeforeUnmount,\n onMounted,\n ref,\n Transition,\n watch,\n Teleport,\n ComponentPublicInstance,\n} from 'vue';\nimport { DialogCloseContext } from './type';\nimport props from './props';\nimport { useConfig, useTeleport, usePrefixClass, usePopupManager, useDestroyOnClose } from '@tdesign/shared-hooks';\nimport { useSameTarget } from './hooks';\n\nimport { getScrollbarWidth } from '@tdesign/common-js/utils/getScrollbarWidth';\n\nimport { getCSSValue } from './utils';\nimport TDialogCard from './dialog-card';\n\nlet mousePosition: { x: number; y: number } | null;\nconst getClickPosition = (e: MouseEvent) => {\n mousePosition = {\n x: e.clientX,\n y: e.clientY,\n };\n setTimeout(() => {\n mousePosition = null;\n }, 100);\n};\n\nif (typeof window !== 'undefined' && window.document && window.document.documentElement) {\n document.documentElement.addEventListener('click', getClickPosition, true);\n}\n\nlet key = 1;\n\nexport default defineComponent({\n name: 'TDialog',\n inheritAttrs: false,\n props,\n emits: ['update:visible'],\n setup(props, context) {\n const COMPONENT_NAME = usePrefixClass('dialog');\n const classPrefix = usePrefixClass();\n const dialogCardRef = ref void }>>(null);\n const { globalConfig } = useConfig('dialog');\n const confirmBtnAction = (context: { e: MouseEvent }) => {\n props.onConfirm?.(context);\n };\n const cancelBtnAction = (context: { e: MouseEvent }) => {\n props.onCancel?.(context);\n emitCloseEvent({ e: context.e, trigger: 'cancel' });\n };\n // teleport容器\n const teleportElement = useTeleport(() => props.attach);\n useDestroyOnClose();\n const timer = ref();\n const styleEl = ref();\n // 是否模态形式的对话框\n const isModal = computed(() => props.mode === 'modal');\n // 是否非模态对话框\n const isModeLess = computed(() => props.mode === 'modeless');\n // 是否全屏对话框\n const isFullScreen = computed(() => props.mode === 'full-screen');\n const computedVisible = computed(() => props.visible);\n const maskClass = computed(() => [\n `${COMPONENT_NAME.value}__mask`,\n !props.showOverlay && `${classPrefix.value}-is-hidden`,\n ]);\n const positionClass = computed(() => {\n if (isFullScreen.value) return [`${COMPONENT_NAME.value}__position_fullscreen`];\n if (isModal.value || isModeLess.value) {\n return [\n `${COMPONENT_NAME.value}__position`,\n !!props.top && `${COMPONENT_NAME.value}--top`,\n `${props.placement && !props.top ? `${COMPONENT_NAME.value}--${props.placement}` : ''}`,\n ];\n }\n return [];\n });\n const wrapClass = computed(() =>\n isFullScreen.value || isModal.value || isModeLess.value ? [`${COMPONENT_NAME.value}__wrap`] : null,\n );\n const positionStyle = computed(() => {\n if (isFullScreen.value) return {}; // 全屏模式,top属性不生效\n\n // 此处获取定位方式 top 优先级较高 存在时 默认使用top定位\n const { top } = props;\n let topStyle = {};\n if (top !== undefined) {\n const topValue = getCSSValue(top);\n topStyle = { paddingTop: topValue };\n }\n return topStyle;\n });\n\n const { isTopInteractivePopup } = usePopupManager('dialog', {\n visible: computedVisible,\n });\n /**是否已经第一次渲染,懒加载判断 */\n const isMounted = ref(false);\n\n watch(\n () => props.visible,\n (value) => {\n if (value) {\n isMounted.value = true;\n if ((isModal.value && !props.showInAttachedElement) || isFullScreen.value) {\n if (props.preventScrollThrough) {\n document.body.appendChild(styleEl.value);\n }\n\n nextTick(() => {\n if (mousePosition && dialogCardRef.value?.$el) {\n const el = dialogCardRef.value.$el as HTMLElement;\n el.style.transformOrigin = `${mousePosition.x - el.offsetLeft}px ${mousePosition.y - el.offsetTop}px`;\n }\n });\n }\n // 清除鼠标焦点 避免entry事件多次触发(按钮弹出弹窗 不移除焦点 立即按Entry按键 会造成弹窗关闭再弹出)\n (document.activeElement as HTMLElement)?.blur();\n } else {\n clearStyleFunc();\n }\n addKeyboardEvent(value);\n },\n );\n\n function destroySelf() {\n styleEl.value.parentNode?.removeChild?.(styleEl.value);\n }\n\n function clearStyleFunc() {\n clearTimeout(timer.value);\n timer.value = setTimeout(() => {\n destroySelf();\n }, 150);\n }\n\n const addKeyboardEvent = (status: boolean) => {\n if (status) {\n document.addEventListener('keydown', keyboardEvent);\n props.confirmOnEnter && document.addEventListener('keydown', keyboardEnterEvent);\n } else {\n document.removeEventListener('keydown', keyboardEvent);\n props.confirmOnEnter && document.removeEventListener('keydown', keyboardEnterEvent);\n }\n };\n // 回车触发确认事件\n const keyboardEnterEvent = (e: KeyboardEvent) => {\n const eventSrc = e.target as HTMLElement;\n if (eventSrc.tagName.toLowerCase() === 'input') return; // 若是input触发 则不执行\n const { code } = e;\n if ((code === 'Enter' || code === 'NumpadEnter') && isTopInteractivePopup()) {\n props.onConfirm?.({ e });\n }\n };\n const keyboardEvent = (e: KeyboardEvent) => {\n if (e.code === 'Escape' && isTopInteractivePopup()) {\n props.onEscKeydown?.({ e });\n // 根据closeOnEscKeydown判断按下ESC时是否触发close事件\n if (props.closeOnEscKeydown ?? globalConfig.value.closeOnEscKeydown) {\n emitCloseEvent({ e, trigger: 'esc' });\n // 阻止事件冒泡\n e.stopImmediatePropagation();\n }\n }\n };\n const overlayAction = (e: MouseEvent) => {\n if (props.showOverlay && (props.closeOnOverlayClick ?? globalConfig.value.closeOnOverlayClick)) {\n props.onOverlayClick?.({ e });\n emitCloseEvent({ e, trigger: 'overlay' });\n }\n };\n const { onClick, onMousedown, onMouseup } = useSameTarget(overlayAction);\n const closeBtnAction = (context: { e: MouseEvent }) => {\n props.onCloseBtnClick?.(context);\n emitCloseEvent({\n trigger: 'close-btn',\n e: context.e,\n });\n };\n\n // 打开弹窗动画开始时事件\n const beforeEnter = () => {\n props.onBeforeOpen?.();\n };\n\n // 打开弹窗动画结束时事件\n const afterEnter = () => {\n props.onOpened?.();\n };\n\n // 关闭弹窗动画开始时事件\n const beforeLeave = () => {\n props.onBeforeClose?.();\n };\n\n // 关闭弹窗动画结束时事件\n const afterLeave = () => {\n dialogCardRef.value?.resetPosition?.();\n props.onClosed?.();\n };\n\n const emitCloseEvent = (ctx: DialogCloseContext) => {\n props.onClose?.(ctx);\n // 默认关闭弹窗\n context.emit('update:visible', false);\n };\n\n // Vue在引入阶段对事件的处理还做了哪些初始化操作。Vue在实例上用一个_events属性存贮管理事件的派发和更新,\n // 暴露出$on, $once, $off, $emit方法给外部管理事件和派发执行事件\n // 所以通过判断_events某个事件下监听函数数组是否超过一个,可以判断出组件是否监听了当前事件\n // const hasEventOn = (name: string) => {\n // // _events 因没有被暴露在vue实例接口中,只能把这个规则注释掉\n // // eslint-disable-next-line dot-notation\n // // @ts-ignore\n // const eventFuncs = this['_events']?.[name];\n // return !!eventFuncs?.length;\n // };\n\n const renderDialog = () => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { theme, onConfirm, onCancel, onCloseBtnClick, ...otherProps } = props;\n return (\n /** 非模态形态下draggable为true才允许拖拽 */\n
    \n \n \n
    \n \n );\n };\n\n onMounted(() => {\n const hasScrollBar = document.documentElement.scrollHeight > document.documentElement.clientHeight;\n const scrollWidth = hasScrollBar ? getScrollbarWidth() : 0;\n styleEl.value = document.createElement('style');\n styleEl.value.dataset.id = `td_dialog_${+new Date()}_${(key += 1)}`;\n styleEl.value.innerHTML = `\n html body {\n overflow-y: hidden;\n width: calc(100% - ${scrollWidth}px);\n }\n `;\n });\n\n onBeforeUnmount(() => {\n addKeyboardEvent(false);\n destroySelf();\n });\n\n const shouldRender = computed(() => {\n const { destroyOnClose, visible, lazy } = props;\n if (!isMounted.value) {\n return !lazy;\n } else {\n return visible || !destroyOnClose;\n }\n });\n\n return () => {\n const maskView = (isModal.value || isFullScreen.value) &&
    ;\n const dialogView = renderDialog();\n const view = [maskView, dialogView];\n const ctxStyle = { zIndex: props.zIndex };\n // dialog__ctx--fixed 绝对定位\n // dialog__ctx--absolute 挂载在attach元素上 相对定位\n // __ctx--modeless modeless 点击穿透\n const ctxClass = [\n `${COMPONENT_NAME.value}__ctx`,\n {\n [`${COMPONENT_NAME.value}__ctx--fixed`]: isModal.value || isFullScreen.value,\n [`${COMPONENT_NAME.value}__ctx--absolute`]: isModal.value && props.showInAttachedElement,\n [`${COMPONENT_NAME.value}__ctx--modeless`]: isModeLess.value,\n },\n ];\n\n return (\n \n \n {shouldRender.value && (\n
    \n {view}\n
    \n )}\n \n
    \n );\n };\n },\n});\n","export function useSameTarget(handleClick?: (e: MouseEvent) => void) {\n // 判断 click 事件的起点和落点所在元素是否一致\n let MOUSEDOWN_TARGET = false;\n let MOUSEUP_TARGET = false;\n\n const onClick = (e: MouseEvent) => {\n if (MOUSEDOWN_TARGET && MOUSEUP_TARGET) {\n handleClick?.(e);\n }\n MOUSEDOWN_TARGET = false;\n MOUSEUP_TARGET = false;\n };\n\n const onMousedown = (e: MouseEvent) => {\n MOUSEDOWN_TARGET = e.target === e.currentTarget;\n };\n const onMouseup = (e: MouseEvent) => {\n MOUSEUP_TARGET = e.target === e.currentTarget;\n };\n\n return { onClick, onMousedown, onMouseup };\n}\n","import { App, ref, Plugin, defineComponent, h, onMounted, nextTick, AppContext, createVNode, render } from 'vue';\nimport DialogComponent from './dialog';\nimport { getAttach } from '@tdesign/shared-utils';\nimport { DialogOptions, DialogMethod, DialogConfirmMethod, DialogAlertMethod, DialogInstance } from './type';\nimport { omit } from 'lodash-es';\n\nconst createDialog: DialogMethod = (props, context) => {\n const options = { ...props };\n const wrapper = document.createElement('div');\n const visible = ref(false);\n const { className, style } = options;\n\n let preClassName = className;\n\n const updateClassNameStyle = (className: string, style: DialogOptions['style']) => {\n if (className) {\n if (preClassName && preClassName !== className) {\n wrapper.firstElementChild.classList.remove(...preClassName.split(' ').map((name) => name.trim()));\n }\n className.split(' ').forEach((name) => {\n wrapper.firstElementChild.classList.add(name.trim());\n });\n }\n\n if (style) {\n (wrapper.firstElementChild as HTMLElement).style.cssText += style;\n }\n\n preClassName = className;\n };\n\n function destroySelf() {\n render(null, wrapper);\n wrapper.remove();\n }\n\n const component = defineComponent({\n setup(props, { expose }) {\n const dialogOptions = ref>(options);\n onMounted(() => {\n visible.value = true;\n // 处理 https://github.com/Tencent/tdesign-vue-next/issues/394\n (document.activeElement as HTMLElement).blur();\n // 避免元素未挂载就触发样式获取,子元素为空的问题\n nextTick(() => {\n updateClassNameStyle(className, style);\n });\n });\n const update = (newOptions: DialogOptions) => {\n dialogOptions.value = {\n ...options,\n ...newOptions,\n };\n };\n\n expose({\n update,\n });\n\n return () => {\n const onClose =\n options.onClose ||\n function () {\n visible.value = false;\n if (options.destroyOnClose) {\n setTimeout(() => {\n destroySelf();\n }, 300);\n }\n };\n delete options.className;\n delete options.style;\n return h(DialogComponent, {\n onClose,\n visible: visible.value,\n ...dialogOptions.value,\n });\n };\n },\n });\n const dialog = createVNode(component);\n // eslint-disable-next-line no-underscore-dangle\n if (context ?? DialogPlugin._context) {\n // eslint-disable-next-line no-underscore-dangle\n dialog.appContext = context ?? DialogPlugin._context;\n }\n\n const container = getAttach(options.attach);\n if (container) {\n container.appendChild(wrapper);\n } else {\n console.error('attach is not exist');\n }\n\n render(dialog, wrapper);\n\n const dialogNode: DialogInstance = {\n show: () => {\n visible.value = true;\n },\n hide: () => {\n visible.value = false;\n },\n update: (newOptions: DialogOptions) => {\n // className & style由updateClassNameStyle来处理\n dialog.component.exposed.update(omit(newOptions, ['className', 'style']));\n updateClassNameStyle(newOptions.className, newOptions.style);\n },\n destroy: () => {\n visible.value = false;\n setTimeout(() => {\n destroySelf();\n }, 300);\n },\n setConfirmLoading: (val: boolean) => {\n dialog.component.exposed.update({ confirmLoading: val });\n },\n };\n return dialogNode;\n};\ninterface ExtraApi {\n confirm: DialogConfirmMethod;\n alert: DialogAlertMethod;\n}\n\ntype ExtraApiType = keyof ExtraApi;\n\nconst confirm: DialogConfirmMethod = (props: DialogOptions, context?: AppContext) => createDialog(props, context);\n\nconst alert: DialogAlertMethod = (props: Omit, context?: AppContext) => {\n const options = { ...props };\n options.cancelBtn = null;\n return createDialog(options, context);\n};\n\nconst extraApi: ExtraApi = {\n confirm,\n alert,\n};\n\nexport type DialogPluginType = Plugin &\n ExtraApi &\n DialogMethod & {\n _context?: AppContext;\n };\n\nexport const DialogPlugin = createDialog as DialogPluginType;\n\nDialogPlugin.install = (app: App): void => {\n app.config.globalProperties.$dialog = createDialog;\n // 如果使用 use 方法,自动绑定当前 App 的 context\n // eslint-disable-next-line no-underscore-dangle\n DialogPlugin._context = app._context;\n Object.keys(extraApi).forEach((funcName: ExtraApiType) => {\n app.config.globalProperties.$dialog[funcName] = extraApi[funcName];\n });\n};\n\nObject.keys(extraApi).forEach((funcName: ExtraApiType) => {\n DialogPlugin[funcName] = extraApi[funcName];\n});\n\nexport default DialogPlugin;\n","import _Dialog from './dialog';\nimport _DialogCard from './dialog-card';\nimport { withInstall } from '@tdesign/shared-utils';\nimport { TdDialogProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type DialogProps = TdDialogProps;\n\nexport const Dialog = withInstall(_Dialog);\nexport const DialogCard = withInstall(_DialogCard);\n\nexport { default as DialogPlugin } from './plugin';\nexport default Dialog;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { PropType } from 'vue';\nimport { TdImageViewerProps } from './type';\n\nexport default {\n /** 指定挂载节点。数据类型为 String 时,会被当作选择器处理,进行节点查询。示例:'body' 或 () => document.body */\n attach: {\n type: [String, Function] as PropType,\n default: 'body' as TdImageViewerProps['attach'],\n },\n /** 是否展示关闭按钮,值为 `true` 显示默认关闭按钮;值为 `false` 则不显示关闭按钮;也可以完全自定义关闭按钮 */\n closeBtn: {\n type: [Boolean, Function] as PropType,\n default: true as TdImageViewerProps['closeBtn'],\n },\n /** 按下 ESC 时是否触发图片预览器关闭事件 */\n closeOnEscKeydown: {\n type: Boolean,\n default: true,\n },\n /** 是否在点击遮罩层时,触发预览关闭 */\n closeOnOverlay: Boolean,\n /** 是否允许拖拽调整位置。`mode=modal` 时,默认不允许拖拽;`mode=modeless` 时,默认允许拖拽 */\n draggable: {\n type: Boolean,\n default: undefined,\n },\n /** 图片预览中的 `` 标签的原生属性,[MDN 定义](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy) */\n imageReferrerpolicy: {\n type: String as PropType,\n validator(val: TdImageViewerProps['imageReferrerpolicy']): boolean {\n if (!val) return true;\n return [\n 'no-referrer',\n 'no-referrer-when-downgrade',\n 'origin',\n 'origin-when-cross-origin',\n 'same-origin',\n 'strict-origin',\n 'strict-origin-when-cross-origin',\n 'unsafe-url',\n ].includes(val);\n },\n },\n /** 图片缩放相关配置。`imageScale.max` 缩放的最大比例;`imageScale.min` 缩放的最小比例;`imageScale.step` 缩放的步长速度; `imageScale.defaultScale` 默认的缩放比例 */\n imageScale: {\n type: Object as PropType,\n },\n /** 图片数组。`mainImage` 表示主图,必传;`thumbnail` 表示缩略图,如果不存在,则使用主图显示;`download` 是否允许下载图片,默认允许下载。示例: `['img_url_1', 'img_url_2']`,`[{ thumbnail: 'small_image_url', mainImage: 'big_image_url', download: false }]` */\n images: {\n type: Array as PropType,\n default: (): TdImageViewerProps['images'] => [],\n },\n /** 当前预览图片所在的下标 */\n index: {\n type: Number,\n default: undefined,\n },\n /** 当前预览图片所在的下标,非受控属性 */\n defaultIndex: {\n type: Number,\n default: 0,\n },\n /** 模态预览(modal)和非模态预览(modeless) */\n mode: {\n type: String as PropType,\n default: 'modal' as TdImageViewerProps['mode'],\n validator(val: TdImageViewerProps['mode']): boolean {\n if (!val) return true;\n return ['modal', 'modeless'].includes(val);\n },\n },\n /** 切换预览图片的左图标,可自定义 */\n navigationArrow: {\n type: [Boolean, Function] as PropType,\n default: true as TdImageViewerProps['navigationArrow'],\n },\n /** 是否显示遮罩层。`mode=modal` 时,默认显示;`mode=modeless` 时,默认不显示 */\n showOverlay: {\n type: Boolean,\n default: undefined,\n },\n /** 预览标题 */\n title: {\n type: [String, Function] as PropType,\n },\n /** 触发图片预览的元素,可能是一个预览按钮,可能是一张缩略图,完全自定义 */\n trigger: {\n type: [String, Function] as PropType,\n },\n /** 限制预览器缩放的最小宽度和最小高度,仅 `mode=modeless` 时有效 */\n viewerScale: {\n type: Object as PropType,\n },\n /** 隐藏/显示预览 */\n visible: {\n type: Boolean,\n default: undefined,\n },\n modelValue: {\n type: Boolean,\n default: undefined,\n },\n /** 隐藏/显示预览,非受控属性 */\n defaultVisible: Boolean,\n /** 层级,默认为 2000 */\n zIndex: {\n type: Number,\n },\n /** 关闭时触发,事件参数包含触发关闭的来源:关闭按钮、遮罩层、ESC 键 */\n onClose: Function as PropType,\n /** 自定义预览图片下载操作,url为图片链接 */\n onDownload: Function as PropType,\n /** 预览图片切换时触发,`context.prev` 切换到上一张图片,`context.next` 切换到下一张图片 */\n onIndexChange: Function as PropType,\n};\n","import { computed, defineComponent, PropType } from 'vue';\nimport { ImageIcon, ZoomInIcon, ZoomOutIcon, DownloadIcon, MirrorIcon, RotationIcon } from 'tdesign-icons-vue-next';\nimport TImageViewerIcon from './ImageModalIcon';\nimport TToolTip from '../../tooltip';\nimport { useConfig, usePrefixClass, useImagePreviewUrl } from '@tdesign/shared-hooks';\n\nimport { ImageInfo } from '../type';\nimport { largeNumberToFixed } from '@tdesign/common-js/input-number/large-number';\n\nexport default defineComponent({\n name: 'TImageViewerUtils',\n props: {\n scale: Number,\n onRotate: Function as PropType<() => void>,\n onZoomIn: Function as PropType<() => void>,\n onZoomOut: Function as PropType<() => void>,\n onMirror: Function as PropType<() => void>,\n onReset: Function as PropType<() => void>,\n onDownload: Function as PropType<(url: string) => void>,\n currentImage: {\n type: Object as PropType,\n default() {\n return {};\n },\n },\n },\n setup(props) {\n const classPrefix = usePrefixClass();\n const imageUrl = computed(() => props.currentImage.mainImage);\n\n const { previewUrl } = useImagePreviewUrl(imageUrl);\n const { globalConfig } = useConfig('imageViewer');\n\n return () => (\n
    \n
    \n \n } />\n \n \n } />\n \n } onClick={props.onZoomOut} />\n \n\n } onClick={props.onZoomIn} />\n \n
    \n } onClick={props.onReset} />\n
    \n \n {props.currentImage.download && (\n }\n onClick={() => {\n props.onDownload(previewUrl.value);\n }}\n />\n )}\n
    \n
    \n );\n },\n});\n","import { computed, defineComponent, PropType } from 'vue';\nimport TDialog from '../../dialog';\nimport { useTNodeJSX, usePrefixClass } from '@tdesign/shared-hooks';\n\nimport props from '../props';\nimport { ImageInfo, TdImageViewerProps } from '../type';\nimport TImageItem from './ImageItem';\nimport TImageViewerUtils from './ImageViewerUtils';\n\nexport default defineComponent({\n name: 'TImageViewerModal',\n props: {\n zIndex: Number,\n visible: Boolean,\n index: Number,\n images: props.images,\n scale: Number,\n rotate: Number,\n mirror: Number,\n title: props.title,\n currentImage: {\n type: Object as PropType,\n default() {\n return {};\n },\n },\n onRotate: Function as PropType<() => void>,\n onZoomIn: Function as PropType<() => void>,\n onZoomOut: Function as PropType<() => void>,\n onMirror: Function as PropType<() => void>,\n onReset: Function as PropType<() => void>,\n onClose: props.onClose,\n onDownload: props.onDownload,\n draggable: {\n type: Boolean,\n default: true,\n },\n viewerScale: {\n type: Object as PropType,\n default() {\n return {};\n },\n },\n showOverlay: Boolean,\n closeBtn: props.closeBtn,\n imageReferrerpolicy: props.imageReferrerpolicy,\n },\n setup(props) {\n const classPrefix = usePrefixClass();\n const renderJSX = useTNodeJSX();\n const style = computed(() => ({\n minWidth: props.viewerScale.minWidth,\n minHeight: props.viewerScale.minHeight,\n }));\n\n return () => (\n (\n
    \n \n
    \n )}\n >\n
    \n \n
    \n \n );\n },\n});\n","export const enum EVENT_CODE {\n left = 'ArrowLeft', // 37\n up = 'ArrowUp', // 38\n right = 'ArrowRight', // 39\n down = 'ArrowDown', // 40\n esc = 'Escape',\n}\n","import { isArray, isString } from 'lodash-es';\n\nimport { TdImageViewerProps, ImageInfo } from '../type';\n\nexport const downloadFile = function (imgSrc: string) {\n const image = new Image();\n // fix #2935\n // 当链接携带了参数时,需处理掉参数再取图片名称,否则扩展名会与参数链接导致原扩展名失效\n // 例如:img.png?sign=xxx 不处理参数会被转成 img.png_sign=xxx\n const name = imgSrc?.split?.('?')?.[0]?.split?.('#')?.[0]?.split?.('/').pop() || Math.random().toString(32).slice(2);\n\n image.setAttribute('crossOrigin', 'anonymous');\n\n image.onload = () => {\n const canvas = document.createElement('canvas');\n canvas.width = image.width;\n canvas.height = image.height;\n\n const context = canvas.getContext('2d');\n context.drawImage(image, 0, 0, image.width, image.height);\n canvas.toBlob((blob) => {\n const url = URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.download = name;\n a.href = url;\n a.click();\n a.remove();\n URL.revokeObjectURL(url);\n });\n };\n image.src = imgSrc;\n};\n\nconst isImageInfo = (image: string | File | ImageInfo): image is ImageInfo => {\n return !!image && !isString(image) && !(image instanceof File);\n};\n\nexport const formatImages = (images: TdImageViewerProps['images']): ImageInfo[] => {\n if (!isArray(images)) return [];\n return images.map((item) => {\n if (isImageInfo(item)) {\n return {\n download: true,\n thumbnail: item.mainImage,\n ...item,\n };\n }\n return {\n mainImage: item,\n thumbnail: item,\n download: true,\n };\n });\n};\n\nexport const getOverlay = (props: TdImageViewerProps) => {\n if (props.showOverlay !== undefined) {\n return props.showOverlay;\n }\n return props.mode === 'modal';\n};\n","import { ChevronDownIcon, ChevronLeftIcon, CloseIcon } from 'tdesign-icons-vue-next';\nimport { Teleport, Transition, computed, defineComponent, nextTick, ref, toRefs, watch } from 'vue';\n\nimport {\n useVModel,\n useTNodeJSX,\n useTeleport,\n usePrefixClass,\n useDefaultValue,\n usePopupManager,\n} from '@tdesign/shared-hooks';\n\nimport Image from '../image';\nimport TImageItem from './base/ImageItem';\nimport TImageViewerIcon from './base/ImageModalIcon';\nimport TImageViewerModal from './base/ImageViewerModal';\nimport TImageViewerUtils from './base/ImageViewerUtils';\nimport { EVENT_CODE } from './consts';\nimport { useMirror, useRotate, useScale } from './hooks';\nimport props from './props';\nimport { TdImageViewerProps } from './type';\nimport { downloadFile, formatImages, getOverlay } from './utils';\n\nexport default defineComponent({\n name: 'TImageViewer',\n props,\n setup(props) {\n const classPrefix = usePrefixClass();\n const COMPONENT_NAME = usePrefixClass('image-viewer');\n const renderTNodeJSX = useTNodeJSX();\n const isExpand = ref(true);\n const showOverlayValue = computed(() => getOverlay(props));\n\n const { index, visible, modelValue, imageReferrerpolicy } = toRefs(props);\n const [indexValue, setIndexValue] = useDefaultValue(index, props.defaultIndex ?? 0, props.onIndexChange, 'index');\n const [visibleValue, setVisibleValue] = useVModel(visible, modelValue, props.defaultVisible, () => {}, 'visible');\n const animationEnd = ref(true);\n const animationTimer = ref();\n // teleport容器\n const teleportElement = useTeleport(() => props.attach);\n\n const wrapClass = computed(() => [\n COMPONENT_NAME.value,\n `${COMPONENT_NAME.value}-preview-image`,\n {\n [`${classPrefix.value}-is-hide`]: !visibleValue.value,\n },\n ]);\n const headerClass = computed(() => [\n `${classPrefix.value}-image-viewer__modal-header`,\n {\n [`${classPrefix.value}-is-show`]: isExpand.value,\n },\n ]);\n const zIndexValue = computed(() => props.zIndex ?? 2600);\n const toggleExpand = () => {\n isExpand.value = !isExpand.value;\n };\n\n const { mirror, onMirror, resetMirror } = useMirror();\n const { scale, onZoomIn, onZoomOut, resetScale } = useScale(props.imageScale);\n const { rotate, onRotate, resetRotate } = useRotate();\n const onRest = () => {\n resetMirror();\n resetScale();\n resetRotate();\n };\n\n const images = computed(() => formatImages(props.images));\n const currentImage = computed(() => images.value[indexValue.value] ?? { mainImage: '' });\n\n const { isTopInteractivePopup } = usePopupManager('dialog', {\n visible: visibleValue,\n });\n\n const prevImage = () => {\n const newIndex = indexValue.value - 1;\n onRest();\n setIndexValue(newIndex < 0 ? 0 : newIndex, { trigger: 'prev' });\n };\n\n const nextImage = () => {\n const newIndex = indexValue.value + 1;\n onRest();\n setIndexValue(newIndex >= images.value.length ? indexValue.value : newIndex, { trigger: 'next' });\n };\n\n const onImgClick = (i: number) => {\n setIndexValue(i, { trigger: 'current' });\n };\n\n const onDownloadClick = (url: string) => {\n props.onDownload ? props.onDownload(url) : downloadFile(url);\n };\n\n const openHandler = () => {\n setVisibleValue(true);\n };\n const onClose: TdImageViewerProps['onClose'] = (ctx) => {\n setVisibleValue(false);\n props.onClose?.(ctx);\n };\n const closeBtnAction = (e: MouseEvent) => {\n onClose({ e, trigger: 'close-btn' });\n };\n const clickOverlayHandler = (e: MouseEvent) => {\n if (props.closeOnOverlay) {\n onClose({ e, trigger: 'overlay' });\n }\n };\n\n const keydownHandler = (e: KeyboardEvent) => {\n e.stopPropagation();\n\n switch (e.code) {\n case EVENT_CODE.left:\n prevImage();\n break;\n case EVENT_CODE.right:\n nextImage();\n break;\n case EVENT_CODE.up:\n onZoomIn();\n break;\n case EVENT_CODE.down:\n onZoomOut();\n break;\n case EVENT_CODE.esc:\n if (props.closeOnEscKeydown && isTopInteractivePopup()) {\n onClose({ e, trigger: 'esc' });\n }\n break;\n default:\n break;\n }\n };\n\n const divRef = ref();\n watch(\n () => visibleValue.value,\n (val) => {\n clearTimeout(animationTimer.value);\n if (val) {\n animationEnd.value = false;\n nextTick().then(() => {\n divRef.value?.focus?.();\n });\n\n onRest();\n } else {\n animationTimer.value = setTimeout(() => {\n animationEnd.value = true;\n }, 200);\n }\n },\n );\n\n const onWheel = (e: WheelEvent) => {\n e.preventDefault();\n const { deltaY } = e;\n deltaY > 0 ? onZoomOut() : onZoomIn();\n };\n\n const transStyle = computed(() => ({\n transform: `translateX(calc(-${indexValue.value} * (40px / 9 * 16 + 4px)))`,\n }));\n\n const renderHeader = () => (\n
    \n }\n class={`${COMPONENT_NAME.value}__header-pre-bt`}\n onClick={toggleExpand}\n />\n
    \n
    \n {images.value.map((image, index) => (\n \n onImgClick(index)}\n />\n
    \n ))}\n
    \n
    \n \n );\n const renderNavigationArrow = (type: 'prev' | 'next') => {\n const rotateDeg = type === 'prev' ? 0 : 180;\n const icon = renderTNodeJSX(\n 'navigationArrow',\n ,\n );\n\n return (\n icon}\n />\n );\n };\n\n const renderCloseBtn = () => {\n if (props.closeBtn === false) {\n return;\n }\n return (\n \n {renderTNodeJSX('closeBtn', )}\n \n );\n };\n\n return () => {\n if (props.mode === 'modeless') {\n return (\n <>\n {renderTNodeJSX('trigger', { params: { open: openHandler } })}\n \n \n );\n }\n\n return (\n <>\n {renderTNodeJSX('trigger', { params: { open: openHandler } })}\n \n \n {(visibleValue.value || !animationEnd.value) && (\n \n {!!showOverlayValue.value && (\n
    \n )}\n {images.value.length > 1 && (\n <>\n {renderHeader()}\n
    \n {props.title && renderTNodeJSX('title')}\n {`${indexValue.value + 1}/${images.value.length}`}\n
    \n {renderNavigationArrow('prev')}\n {renderNavigationArrow('next')}\n \n )}\n {renderCloseBtn()}\n \n \n
    \n )}\n
    \n
    \n \n );\n };\n },\n});\n","import _ImageViewer from './image-viewer';\nimport { withInstall } from '@tdesign/shared-utils';\nimport { TdImageViewerProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type ImageViewerProps = TdImageViewerProps;\nexport const ImageViewer = withInstall(_ImageViewer);\nexport default ImageViewer;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdListItemProps } from '../list/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 操作栏 */\n action: {\n type: [String, Function] as PropType,\n },\n /** 内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 内容,同 content */\n default: {\n type: [String, Function] as PropType,\n },\n};\n","import { defineComponent } from 'vue';\nimport props from './list-item-props';\nimport { useTNodeJSX, usePrefixClass } from '@tdesign/shared-hooks';\n\nexport default defineComponent({\n name: 'TListItem',\n props,\n setup() {\n const COMPONENT_NAME = usePrefixClass('list-item');\n const renderTNodeJSX = useTNodeJSX();\n\n return () => {\n const propsContent = renderTNodeJSX('content');\n const propsDefaultContent = renderTNodeJSX('default');\n const propsActionContent = renderTNodeJSX('action');\n\n return (\n
  • \n
    \n {propsDefaultContent || propsContent}\n {propsActionContent &&
  • {propsActionContent}
  • }\n \n \n );\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdListProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 自定义加载中。值为空不显示加载中,值为 'loading' 显示加载中状态,值为 'load-more' 显示加载更多状态。值类型为函数,则表示自定义加载状态呈现内容 */\n asyncLoading: {\n type: [String, Function] as PropType,\n },\n /** 底部 */\n footer: {\n type: [String, Function] as PropType,\n },\n /** 头部 */\n header: {\n type: [String, Function] as PropType,\n },\n /** 排列方式(待设计稿输出) */\n layout: {\n type: String as PropType,\n default: 'horizontal' as TdListProps['layout'],\n validator(val: TdListProps['layout']): boolean {\n if (!val) return true;\n return ['horizontal', 'vertical'].includes(val);\n },\n },\n /** 懒加载和虚拟滚动。为保证组件收益最大化,当数据量小于阈值 `scroll.threshold` 时,无论虚拟滚动的配置是否存在,组件内部都不会开启虚拟滚动,`scroll.threshold` 默认为 `100` */\n scroll: {\n type: Object as PropType,\n },\n /** 尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdListProps['size'],\n validator(val: TdListProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 是否展示分割线 */\n split: Boolean,\n /** 是否展示斑马纹 */\n stripe: Boolean,\n /** 点击加载更多时触发 */\n onLoadMore: Function as PropType,\n /** 列表滚动时触发,scrollTop 表示顶部滚动距离,scrollBottom 表示底部滚动距离 */\n onScroll: Function as PropType,\n};\n","export const LOAD_MORE = 'load-more';\nexport const LOADING = 'loading';\n","import { Ref, computed } from 'vue';\n\nimport log from '@tdesign/common-js/log/index';\nimport { useVirtualScrollNew } from '@tdesign/shared-hooks';\nimport { TdListProps } from '../type';\nimport { Styles, type ComponentScrollToElementParams } from '../../common';\n\nexport const useListVirtualScroll = (\n scroll: TdListProps['scroll'],\n listRef: Ref,\n listItems: Ref,\n) => {\n const virtualScrollParams = computed(() => ({\n data: listItems.value,\n scroll: scroll,\n }));\n const virtualConfig = useVirtualScrollNew(listRef, virtualScrollParams);\n const isVirtualScroll = computed(() => virtualConfig.isVirtualScroll.value);\n let lastScrollY = -1;\n\n const onInnerVirtualScroll = (e: WheelEvent) => {\n const target = (e.target || e.srcElement) as HTMLElement;\n const top = target.scrollTop;\n if (lastScrollY !== top) {\n virtualConfig.isVirtualScroll.value && virtualConfig.handleScroll();\n } else {\n lastScrollY = -1;\n }\n lastScrollY = top;\n };\n\n const cursorStyle = computed(\n () =>\n ({\n position: 'absolute',\n width: '1px',\n height: '1px',\n transition: 'transform 0.2s',\n transform: `translate(0, ${virtualConfig.scrollHeight.value}px)`,\n '-ms-transform': `translate(0, ${virtualConfig.scrollHeight.value}px)`,\n '-moz-transform': `translate(0, ${virtualConfig.scrollHeight.value}px)`,\n '-webkit-transform': `translate(0, ${virtualConfig.scrollHeight.value}px)`,\n } as Styles),\n );\n\n const listStyle = computed(\n () =>\n ({\n transform: `translate(0, ${virtualConfig.translateY.value}px)`,\n '-ms-transform': `translate(0, ${virtualConfig.translateY.value}px)`,\n '-moz-transform': `translate(0, ${virtualConfig.translateY.value}px)`,\n '-webkit-transform': `translate(0, ${virtualConfig.translateY.value}px)`,\n } as Styles),\n );\n\n const handleScrollTo = (params: ComponentScrollToElementParams) => {\n const { index, key } = params;\n const targetIndex = index === 0 ? index : index ?? Number(key);\n if (!targetIndex && targetIndex !== 0) {\n log.error('List', 'scrollTo: `index` or `key` must exist.');\n return;\n }\n if (targetIndex < 0 || targetIndex >= listItems.value.length) {\n log.error('List', `${targetIndex} does not exist in data, check \\`index\\` or \\`key\\` please.`);\n return;\n }\n virtualConfig.scrollToElement({ ...params, index: targetIndex - 1 });\n };\n\n return {\n virtualConfig,\n cursorStyle,\n listStyle,\n isVirtualScroll,\n onInnerVirtualScroll,\n scrollToElement: handleScrollTo,\n };\n};\n","import { defineComponent, VNodeChild, computed, ref } from 'vue';\nimport { omit, isString } from 'lodash-es';\n\nimport { useConfig, useTNodeJSX, usePrefixClass, useCommonClassName } from '@tdesign/shared-hooks';\nimport TLoading from '../loading';\nimport TListItem from './list-item';\nimport props from './props';\nimport { LOAD_MORE, LOADING } from './consts';\n\nimport { useListItems, useListVirtualScroll } from './hooks';\n\nimport type { TdListProps } from './type';\n\nexport default defineComponent({\n name: 'TList',\n props,\n setup(props: TdListProps, { expose }) {\n const listRef = ref();\n\n const { globalConfig } = useConfig('list');\n const COMPONENT_NAME = usePrefixClass('list');\n const { SIZE } = useCommonClassName();\n const renderTNodeJSX = useTNodeJSX();\n const { listItems } = useListItems();\n\n const { virtualConfig, cursorStyle, listStyle, isVirtualScroll, onInnerVirtualScroll, scrollToElement } =\n useListVirtualScroll(props.scroll, listRef, listItems);\n\n /** 列表基础逻辑 start */\n const listClass = computed(() => {\n return [\n `${COMPONENT_NAME.value}`,\n SIZE.value[props.size],\n {\n [`${COMPONENT_NAME.value}--split`]: props.split,\n [`${COMPONENT_NAME.value}--stripe`]: props.stripe,\n [`${COMPONENT_NAME.value}--vertical-action`]: props.layout === 'vertical',\n },\n ];\n });\n const renderContent = (): VNodeChild => {\n const propsHeaderContent = renderTNodeJSX('header');\n const propsFooterContent = renderTNodeJSX('footer');\n const isVirtualScroll = virtualConfig.isVirtualScroll.value;\n return (\n <>\n {propsHeaderContent ?
    {propsHeaderContent}
    : null}\n {isVirtualScroll ? (\n <>\n
    \n
      \n {virtualConfig.visibleData.value.map((item) => (\n <>\n \n \n ))}\n
    \n \n ) : (\n
      {renderTNodeJSX('default')}
    \n )}\n {propsFooterContent ?
    {propsFooterContent}
    : null}\n \n );\n };\n /** 列表基础逻辑 end */\n\n /** 滚动相关逻辑 start */\n const handleScroll = (e: WheelEvent) => {\n const listElement = e.target as HTMLElement;\n const { scrollTop, scrollHeight, clientHeight } = listElement;\n if (isVirtualScroll.value) onInnerVirtualScroll(e);\n props.onScroll?.({\n e,\n scrollTop,\n scrollBottom: scrollHeight - clientHeight - scrollTop,\n });\n };\n /** 滚动相关逻辑 end */\n\n /** loading加载相关逻辑 start */\n const loadingClass = computed(() => {\n return isString(props.asyncLoading) && ['loading', 'load-more'].includes(props.asyncLoading)\n ? `${COMPONENT_NAME.value}__load ${COMPONENT_NAME.value}__load--${props.asyncLoading}`\n : `${COMPONENT_NAME.value}__load`;\n });\n\n const renderLoading = () => {\n if (props.asyncLoading && isString(props.asyncLoading)) {\n if (props.asyncLoading === LOADING) {\n return (\n
    \n \n {globalConfig.value.loadingText}\n
    \n );\n }\n if (props.asyncLoading === LOAD_MORE) {\n return {globalConfig.value.loadingMoreText};\n }\n }\n return renderTNodeJSX('asyncLoading');\n };\n\n const handleLoadMore = (e: MouseEvent) => {\n if (isString(props.asyncLoading) && props.asyncLoading !== LOAD_MORE) return;\n props.onLoadMore?.({ e });\n };\n expose({ scrollTo: scrollToElement });\n return () => {\n const listContent = [\n renderContent(),\n
    \n {renderLoading()}\n
    ,\n ];\n\n return (\n \n {listContent}\n \n );\n };\n },\n});\n","import { computed } from 'vue';\nimport { isArray } from 'lodash-es';\n\nimport { useChildComponentSlots } from '@tdesign/shared-hooks';\n\nexport const useListItems = () => {\n const getChildComponentSlots = useChildComponentSlots();\n\n const listItems = computed(() => {\n const computedListItems = [];\n // 处理 slots\n const listItemSlots = getChildComponentSlots('ListItem');\n\n if (isArray(listItemSlots)) {\n for (const child of listItemSlots) {\n computedListItems.push({\n ...child.props,\n slots: child.children,\n } as any);\n }\n }\n return computedListItems;\n });\n\n return {\n listItems,\n };\n};\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdListItemMetaProps } from '../list/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 已废弃。列表项图片 */\n avatar: {\n type: [String, Function] as PropType,\n },\n /** 列表项内容 */\n description: {\n type: [String, Function] as PropType,\n },\n /** 列表项图片 */\n image: {\n type: [String, Function] as PropType,\n },\n /** 列表项标题 */\n title: {\n type: [String, Function] as PropType,\n },\n};\n","import { defineComponent } from 'vue';\nimport props from './list-item-meta-props';\nimport { useContent, useTNodeJSX, usePrefixClass } from '@tdesign/shared-hooks';\n\nimport { isString } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TListItemMeta',\n props,\n setup(props, ctx) {\n const COMPONENT_NAME = usePrefixClass('list-item__meta');\n const renderContent = useContent();\n const renderTNodeJSX = useTNodeJSX();\n\n const renderAvatar = () => {\n if (props.avatar || ctx.slots.avatar) {\n console.warn('`avatar` is going to be deprecated, please use `image` instead');\n }\n const thumbnail = renderContent('avatar', 'image');\n if (!thumbnail) return;\n if (isString(thumbnail)) {\n return (\n
    \n \n
    \n );\n }\n return
    {thumbnail}
    ;\n };\n return () => {\n const propsTitleContent = renderTNodeJSX('title');\n const propsDescriptionContent = renderTNodeJSX('description');\n\n const listItemMetaContent = [\n renderAvatar(),\n
    \n {propsTitleContent &&

    {propsTitleContent}

    }\n {propsDescriptionContent &&

    {propsDescriptionContent}

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

    \n {globalConfig.value.columnConfigDescriptionText}\n

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

    {content.value}

    \n {renderEllipsisExpand()}\n \n );\n };\n },\n});\n","import { computed, defineComponent, ref } from 'vue';\nimport { useContent, usePrefixClass } from '@tdesign/shared-hooks';\nimport props from './text-props';\nimport copy from './utils/copy-to-clipboard';\nimport { CopyIcon, CheckIcon } from 'tdesign-icons-vue-next';\nimport Ellipsis from './components/ellipsis';\nimport TTooltip from '../tooltip';\nimport TButton from '../button';\nimport { useConfig } from '../config-provider/hooks/useConfig';\n\nimport type { TdTextProps } from './type';\nimport type { TdTooltipProps } from '../tooltip/type';\n\nexport default defineComponent({\n name: 'TTypographyText',\n props,\n setup(props, { slots }) {\n const COMPONENT_NAME = usePrefixClass('typography');\n const { globalConfig } = useConfig('typography');\n const isCopied = ref(false);\n const renderContent = useContent();\n\n const wrapperDecorations = (\n { code, underline, delete: del, strong, keyboard, mark, italic }: TdTextProps,\n content: any,\n ) => {\n let currentContent = content;\n\n function wrap(needed: boolean, Tag: string, styles: object = {}) {\n if (!needed) return;\n currentContent = {currentContent};\n }\n\n wrap(strong, 'strong');\n wrap(underline, 'u');\n wrap(del, 'del');\n wrap(code, 'code');\n wrap(mark !== false, 'mark', mark ? { color: mark } : {});\n wrap(keyboard, 'kbd');\n wrap(italic, 'i');\n return currentContent;\n };\n\n const classList = computed(() => {\n const { theme, disabled } = props;\n const prefix = COMPONENT_NAME.value;\n const list: string[] = [prefix];\n if (disabled) {\n list.push(`${prefix}--disabled`);\n } else if (theme && ['primary', 'secondary', 'success', 'warning', 'error'].includes(theme)) {\n list.push(`${prefix}--${theme}`);\n }\n return list;\n });\n\n const tooltipText = computed(() => {\n const { copyable } = props;\n if (isCopied.value) return globalConfig.value.copiedText;\n else if (typeof copyable === 'object') return copyable.tooltipProps?.content;\n return null;\n });\n\n const content = computed(() => {\n return props.content || slots?.default();\n });\n\n const renderCopy = () => {\n const { copyable } = props;\n if (!copyable) return;\n\n let icon: any = isCopied.value ? () => : () => ;\n let tooltipConf: TdTooltipProps = {\n theme: 'default',\n };\n\n let onCopy = () => {};\n if (typeof copyable === 'object') {\n if (copyable.suffix && !isCopied.value) {\n icon = copyable.suffix;\n }\n if (copyable.tooltipProps) {\n tooltipConf = copyable.tooltipProps;\n }\n if (typeof copyable.onCopy === 'function') {\n onCopy = copyable.onCopy;\n }\n }\n return (\n \n onCopyClick(e, onCopy)} />\n \n );\n };\n\n const getChildrenText = () => {\n if (typeof content.value === 'string') {\n return content.value;\n } else if (Array.isArray(content.value)) {\n return content.value.map((v) => v.children).join('');\n }\n };\n\n const onCopyClick = (e: MouseEvent, cb: Function) => {\n e.preventDefault();\n e.stopPropagation();\n\n isCopied.value = true;\n setTimeout(() => {\n isCopied.value = false;\n }, 1500);\n\n copy(getChildrenText());\n cb?.();\n };\n\n return () => {\n const content = renderContent('default', 'content');\n return props.ellipsis ? (\n \n {wrapperDecorations(props, content)}\n {props.copyable ? renderCopy() : null}\n \n ) : (\n \n {wrapperDecorations(props, content)}\n {props.copyable ? renderCopy() : null}\n \n );\n };\n },\n});\n","import { defineComponent } from 'vue';\nimport { useTNodeJSX } from '@tdesign/shared-hooks';\n\nimport Text from './text';\n\nexport default defineComponent({\n name: 'TTypography',\n setup() {\n const renderTNodeJSX = useTNodeJSX();\n return () => {\n return {renderTNodeJSX('default')};\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTitleProps } from '../typography/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 段落内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 标题内容 */\n default: {\n type: [String, Function] as PropType,\n },\n /** 是否省略展示,可通过配置参数自定义省略操作的具体功能和样式 */\n ellipsis: {\n type: [Boolean, Object] as PropType,\n default: false as TdTitleProps['ellipsis'],\n },\n /** 标题等级 */\n level: {\n type: String as PropType,\n default: 'h1' as TdTitleProps['level'],\n validator(val: TdTitleProps['level']): boolean {\n if (!val) return true;\n return ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'].includes(val);\n },\n },\n};\n","import { defineComponent, h } from 'vue';\nimport { useContent, usePrefixClass } from '@tdesign/shared-hooks';\nimport props from './title-props';\nimport Ellipsis from './components/ellipsis';\n\nexport default defineComponent({\n name: 'TTypographyTitle',\n props,\n setup(props) {\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 '@tdesign/shared-hooks';\nimport props from './paragraph-props';\nimport TTooltip from '../tooltip/index';\nimport Ellipsis from './components/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 '@tdesign/shared-utils';\n\nexport * from './type';\nimport './style';\n\nexport const Typography = withInstall(_Typography);\nexport const Text = withInstall(_Text);\nexport const Title = withInstall(_Title);\nexport const Paragraph = withInstall(_Paragraph);\n\nexport default Typography;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdQRCodeProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 二维码背景颜色 */\n bgColor: {\n type: String,\n default: '',\n },\n /** 是否有边框 */\n borderless: Boolean,\n /** 二维码颜色 */\n color: {\n type: String,\n default: '',\n },\n /** 二维码中图片的地址 */\n icon: {\n type: String,\n default: '',\n },\n /** 二维码中图片的大小 */\n iconSize: {\n type: [Number, Object] as PropType,\n default: 40 as TdQRCodeProps['iconSize'],\n },\n /** 二维码纠错等级 */\n level: {\n type: String as PropType,\n default: 'M' as TdQRCodeProps['level'],\n validator(val: TdQRCodeProps['level']): boolean {\n if (!val) return true;\n return ['L', 'M', 'Q', 'H'].includes(val);\n },\n },\n /** 二维码大小 */\n size: {\n type: Number,\n default: 160,\n },\n /** 二维码状态 */\n status: {\n type: String as PropType,\n default: 'active' as TdQRCodeProps['status'],\n validator(val: TdQRCodeProps['status']): boolean {\n if (!val) return true;\n return ['active', 'expired', 'loading', 'scanned'].includes(val);\n },\n },\n /** 自定义状态渲染器 */\n statusRender: {\n type: Function as PropType,\n },\n /** 渲染类型 */\n type: {\n type: String as PropType,\n default: 'canvas' as TdQRCodeProps['type'],\n validator(val: TdQRCodeProps['type']): boolean {\n if (!val) return true;\n return ['canvas', 'svg'].includes(val);\n },\n },\n /** 扫描后的文本 */\n value: {\n type: String,\n default: '',\n },\n /** 点击\"点击刷新\"的回调 */\n onRefresh: Function as PropType,\n};\n","/* eslint-disable */\n// Copyright (c) Project Nayuki. (MIT License)\n// https://www.nayuki.io/page/qr-code-generator-library\n\n// Modification with code reorder and prettier\n\n// --------------------------------------------\n\n// Appends the given number of low-order bits of the given value\n// to the given buffer. Requires 0 <= len <= 31 and 0 <= val < 2^len.\nfunction appendBits(val: number, len: number, bb: number[]): void {\n if (len < 0 || len > 31 || val >>> len !== 0) {\n throw new RangeError(\"Value out of range\");\n }\n for (\n let i = len - 1;\n i >= 0;\n i-- // Append bit by bit\n ) {\n bb.push((val >>> i) & 1);\n }\n}\n\n// Returns true iff the i'th bit of x is set to 1.\nfunction getBit(x: number, i: number): boolean {\n return ((x >>> i) & 1) !== 0;\n}\n\n// Throws an exception if the given condition is false.\nfunction assert(cond: boolean): void {\n if (!cond) {\n throw new Error(\"Assertion error\");\n }\n}\n\n/* ---- Public helper enumeration ----*/\n/*\n * Describes how a segment's data bits are numbererpreted. Immutable.\n */\nexport class Mode {\n /* -- Constants --*/\n\n public static readonly NUMERIC = new Mode(0x1, [10, 12, 14]);\n\n public static readonly ALPHANUMERIC = new Mode(0x2, [9, 11, 13]);\n\n public static readonly BYTE = new Mode(0x4, [8, 16, 16]);\n\n public static readonly KANJI = new Mode(0x8, [8, 10, 12]);\n\n public static readonly ECI = new Mode(0x7, [0, 0, 0]);\n\n /* -- Constructor and fields --*/\n\n // The mode indicator bits, which is a unumber4 value (range 0 to 15).\n public modeBits: number;\n\n // Number of character count bits for three different version ranges.\n private numBitsCharCount: [number, number, number];\n\n private constructor(\n modeBits: number,\n numBitsCharCount: [number, number, number]\n ) {\n this.modeBits = modeBits;\n this.numBitsCharCount = numBitsCharCount;\n }\n\n /* -- Method --*/\n\n // (Package-private) Returns the bit width of the character count field for a segment in\n // this mode in a QR Code at the given version number. The result is in the range [0, 16].\n public numCharCountBits(ver: number): number {\n return this.numBitsCharCount[Math.floor((ver + 7) / 17)];\n }\n}\n\n/* ---- Public helper enumeration ----*/\n\n/*\n * The error correction level in a QR Code symbol. Immutable.\n */\nexport class Ecc {\n /* -- Constants --*/\n\n public static readonly LOW = new Ecc(0, 1); // The QR Code can tolerate about 7% erroneous codewords\n\n public static readonly MEDIUM = new Ecc(1, 0); // The QR Code can tolerate about 15% erroneous codewords\n\n public static readonly QUARTILE = new Ecc(2, 3); // The QR Code can tolerate about 25% erroneous codewords\n\n public static readonly HIGH = new Ecc(3, 2); // The QR Code can tolerate about 30% erroneous codewords\n\n /* -- Constructor and fields --*/\n // In the range 0 to 3 (unsigned 2-bit numbereger).\n public ordinal: number;\n\n // (Package-private) In the range 0 to 3 (unsigned 2-bit numbereger).\n public formatBits: number;\n\n private constructor(ordinal: number, formatBits: number) {\n this.ordinal = ordinal;\n this.formatBits = formatBits;\n }\n}\n\n/*\n * A segment of character/binary/control data in a QR Code symbol.\n * Instances of this class are immutable.\n * The mid-level way to create a segment is to take the payload data\n * and call a static factory function such as QrSegment.makeNumeric().\n * The low-level way to create a segment is to custom-make the bit buffer\n * and call the QrSegment() constructor with appropriate values.\n * This segment class imposes no length restrictions, but QR Codes have restrictions.\n * Even in the most favorable conditions, a QR Code can only hold 7089 characters of data.\n * Any segment longer than this is meaningless for the purpose of generating QR Codes.\n */\nexport class QrSegment {\n /* -- Static factory functions (mid level) --*/\n\n // Returns a segment representing the given binary data encoded in\n // byte mode. All input byte arrays are acceptable. Any text string\n // can be converted to UTF-8 bytes and encoded as a byte mode segment.\n public static makeBytes(data: Readonly): QrSegment {\n const bb: number[] = [];\n for (const b of data) {\n appendBits(b, 8, bb);\n }\n return new QrSegment(Mode.BYTE, data.length, bb);\n }\n\n // Returns a segment representing the given string of decimal digits encoded in numeric mode.\n public static makeNumeric(digits: string): QrSegment {\n if (!QrSegment.isNumeric(digits)) {\n throw new RangeError(\"String contains non-numeric characters\");\n }\n const bb: number[] = [];\n for (let i = 0; i < digits.length; ) {\n // Consume up to 3 digits per iteration\n const n: number = Math.min(digits.length - i, 3);\n appendBits(parseInt(digits.substring(i, i + n), 10), n * 3 + 1, bb);\n i += n;\n }\n return new QrSegment(Mode.NUMERIC, digits.length, bb);\n }\n\n // Returns a segment representing the given text string encoded in alphanumeric mode.\n // The characters allowed are: 0 to 9, A to Z (uppercase only), space,\n // dollar, percent, asterisk, plus, hyphen, period, slash, colon.\n public static makeAlphanumeric(text: string): QrSegment {\n if (!QrSegment.isAlphanumeric(text)) {\n throw new RangeError(\n \"String contains unencodable characters in alphanumeric mode\"\n );\n }\n const bb: number[] = [];\n let i: number;\n for (i = 0; i + 2 <= text.length; i += 2) {\n // Process groups of 2\n let temp: number =\n QrSegment.ALPHANUMERIC_CHARSET.indexOf(text.charAt(i)) * 45;\n temp += QrSegment.ALPHANUMERIC_CHARSET.indexOf(text.charAt(i + 1));\n appendBits(temp, 11, bb);\n }\n if (i < text.length) {\n // 1 character remaining\n appendBits(QrSegment.ALPHANUMERIC_CHARSET.indexOf(text.charAt(i)), 6, bb);\n }\n return new QrSegment(Mode.ALPHANUMERIC, text.length, bb);\n }\n\n // Returns a new mutable list of zero or more segments to represent the given Unicode text string.\n // The result may use various segment modes and switch modes to optimize the length of the bit stream.\n public static makeSegments(text: string): QrSegment[] {\n // Select the most efficient segment encoding automatically\n if (text === \"\") {\n return [];\n }\n if (QrSegment.isNumeric(text)) {\n return [QrSegment.makeNumeric(text)];\n }\n if (QrSegment.isAlphanumeric(text)) {\n return [QrSegment.makeAlphanumeric(text)];\n }\n return [QrSegment.makeBytes(QrSegment.toUtf8ByteArray(text))];\n }\n\n // Returns a segment representing an Extended Channel Interpretation\n // (ECI) designator with the given assignment value.\n public static makeEci(assignVal: number): QrSegment {\n const bb: number[] = [];\n if (assignVal < 0) {\n throw new RangeError(\"ECI assignment value out of range\");\n } else if (assignVal < 1 << 7) {\n appendBits(assignVal, 8, bb);\n } else if (assignVal < 1 << 14) {\n appendBits(0b10, 2, bb);\n appendBits(assignVal, 14, bb);\n } else if (assignVal < 1000000) {\n appendBits(0b110, 3, bb);\n appendBits(assignVal, 21, bb);\n } else {\n throw new RangeError(\"ECI assignment value out of range\");\n }\n return new QrSegment(Mode.ECI, 0, bb);\n }\n\n // Tests whether the given string can be encoded as a segment in numeric mode.\n // A string is encodable iff each character is in the range 0 to 9.\n public static isNumeric(text: string): boolean {\n return QrSegment.NUMERIC_REGEX.test(text);\n }\n\n // Tests whether the given string can be encoded as a segment in alphanumeric mode.\n // A string is encodable iff each character is in the following set: 0 to 9, A to Z\n // (uppercase only), space, dollar, percent, asterisk, plus, hyphen, period, slash, colon.\n public static isAlphanumeric(text: string): boolean {\n return QrSegment.ALPHANUMERIC_REGEX.test(text);\n }\n\n /* -- Constructor (low level) and fields --*/\n // The mode indicator of this segment.\n public mode: Mode;\n\n // The length of this segment's unencoded data. Measured in characters for\n // numeric/alphanumeric/kanji mode, bytes for byte mode, and 0 for ECI mode.\n // Always zero or positive. Not the same as the data's bit length.\n public numChars: number;\n\n // The data bits of this segment. Accessed through getData().\n private bitData: number[];\n\n // Creates a new QR Code segment with the given attributes and data.\n // The character count (numChars) must agree with the mode and the bit buffer length,\n // but the constranumber isn't checked. The given bit buffer is cloned and stored.\n public constructor(mode: Mode, numChars: number, bitData: number[]) {\n this.mode = mode;\n this.numChars = numChars;\n this.bitData = bitData;\n if (numChars < 0) {\n throw new RangeError(\"Invalid argument\");\n }\n this.bitData = bitData.slice(); // Make defensive copy\n }\n\n /* -- Methods --*/\n\n // Returns a new copy of the data bits of this segment.\n public getData(): number[] {\n return this.bitData.slice(); // Make defensive copy\n }\n\n // (Package-private) Calculates and returns the number of bits needed to encode the given segments at\n // the given version. The result is infinity if a segment has too many characters to fit its length field.\n public static getTotalBits(\n segs: Readonly,\n version: number\n ): number {\n let result: number = 0;\n for (const seg of segs) {\n const ccbits: number = seg.mode.numCharCountBits(version);\n if (seg.numChars >= 1 << ccbits) {\n return Infinity; // The segment's length doesn't fit the field's bit width\n }\n result += 4 + ccbits + seg.bitData.length;\n }\n return result;\n }\n\n // Returns a new array of bytes representing the given string encoded in UTF-8.\n private static toUtf8ByteArray(input: string): number[] {\n const str = encodeURI(input);\n const result: number[] = [];\n for (let i = 0; i < str.length; i++) {\n if (str.charAt(i) !== \"%\") {\n result.push(str.charCodeAt(i));\n } else {\n result.push(parseInt(str.substring(i + 1, i + 3), 16));\n i += 2;\n }\n }\n return result;\n }\n\n /* -- Constants --*/\n\n // Describes precisely all strings that are encodable in numeric mode.\n private static readonly NUMERIC_REGEX: RegExp = /^[0-9]*$/;\n\n // Describes precisely all strings that are encodable in alphanumeric mode.\n private static readonly ALPHANUMERIC_REGEX: RegExp = /^[A-Z0-9 $%*+.\\/:-]*$/;\n\n // The set of all legal characters in alphanumeric mode,\n // where each character value maps to the index in the string.\n private static readonly ALPHANUMERIC_CHARSET: string =\n \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:\";\n}\n\n/*\n * A QR Code symbol, which is a type of two-dimension barcode.\n * Invented by Denso Wave and described in the ISO/IEC 18004 standard.\n * Instances of this class represent an immutable square grid of dark and light cells.\n * The class provides static factory functions to create a QR Code from text or binary data.\n * The class covers the QR Code Model 2 specification, supporting all versions (sizes)\n * from 1 to 40, all 4 error correction levels, and 4 character encoding modes.\n *\n * Ways to create a QR Code object:\n * - High level: Take the payload data and call QrCode.encodeText() or QrCode.encodeBinary().\n * - Mid level: Custom-make the list of segments and call QrCode.encodeSegments().\n * - Low level: Custom-make the array of data codeword bytes (including\n * segment headers and final padding, excluding error correction codewords),\n * supply the appropriate version number, and call the QrCode() constructor.\n * (Note that all ways require supplying the desired error correction level.)\n */\nexport class QrCode {\n /* -- Static factory functions (high level) --*/\n\n // Returns a QR Code representing the given Unicode text string at the given error correction level.\n // As a conservative upper bound, this function is guaranteed to succeed for strings that have 738 or fewer\n // Unicode code ponumbers (not UTF-16 code units) if the low error correction level is used. The smallest possible\n // QR Code version is automatically chosen for the output. The ECC level of the result may be higher than the\n // ecl argument if it can be done without increasing the version.\n public static encodeText(text: string, ecl: Ecc): QrCode {\n const segs: QrSegment[] = QrSegment.makeSegments(text);\n return QrCode.encodeSegments(segs, ecl);\n }\n\n // Returns a QR Code representing the given binary data at the given error correction level.\n // This function always encodes using the binary segment mode, not any text mode. The maximum number of\n // bytes allowed is 2953. The smallest possible QR Code version is automatically chosen for the output.\n // The ECC level of the result may be higher than the ecl argument if it can be done without increasing the version.\n public static encodeBinary(data: Readonly, ecl: Ecc): QrCode {\n const seg = QrSegment.makeBytes(data);\n return QrCode.encodeSegments([seg], ecl);\n }\n\n /* -- Static factory functions (mid level) --*/\n\n // Returns a QR Code representing the given segments with the given encoding parameters.\n // The smallest possible QR Code version within the given range is automatically\n // chosen for the output. Iff boostEcl is true, then the ECC level of the result\n // may be higher than the ecl argument if it can be done without increasing the\n // version. The mask number is either between 0 to 7 (inclusive) to force that\n // mask, or -1 to automatically choose an appropriate mask (which may be slow).\n // This function allows the user to create a custom sequence of segments that switches\n // between modes (such as alphanumeric and byte) to encode text in less space.\n // This is a mid-level API; the high-level API is encodeText() and encodeBinary().\n public static encodeSegments(\n segs: Readonly,\n oriEcl: Ecc,\n minVersion: number = 1,\n maxVersion: number = 40,\n mask: number = -1,\n boostEcl: boolean = true\n ): QrCode {\n if (\n !(\n QrCode.MIN_VERSION <= minVersion &&\n minVersion <= maxVersion &&\n maxVersion <= QrCode.MAX_VERSION\n ) ||\n mask < -1 ||\n mask > 7\n ) {\n throw new RangeError(\"Invalid value\");\n }\n\n // Find the minimal version number to use\n let version: number;\n let dataUsedBits: number;\n for (version = minVersion; ; version++) {\n const dataCapacityBits = QrCode.getNumDataCodewords(version, oriEcl) * 8; // Number of data bits available\n const usedBits: number = QrSegment.getTotalBits(segs, version);\n if (usedBits <= dataCapacityBits) {\n dataUsedBits = usedBits;\n break; // This version number is found to be suitable\n }\n if (version >= maxVersion) {\n // All versions in the range could not fit the given data\n throw new RangeError(\"Data too long\");\n }\n }\n let ecl: Ecc = oriEcl;\n // Increase the error correction level while the data still fits in the current version number\n for (const newEcl of [Ecc.MEDIUM, Ecc.QUARTILE, Ecc.HIGH]) {\n // From low to high\n if (\n boostEcl &&\n dataUsedBits <= QrCode.getNumDataCodewords(version, newEcl) * 8\n ) {\n ecl = newEcl;\n }\n }\n\n // Concatenate all segments to create the data bit string\n const bb: number[] = [];\n for (const seg of segs) {\n appendBits(seg.mode.modeBits, 4, bb);\n appendBits(seg.numChars, seg.mode.numCharCountBits(version), bb);\n for (const b of seg.getData()) {\n bb.push(b);\n }\n }\n assert(bb.length === dataUsedBits);\n\n // Add terminator and pad up to a byte if applicable\n const dataCapacityBits = QrCode.getNumDataCodewords(version, ecl) * 8;\n assert(bb.length <= dataCapacityBits);\n appendBits(0, Math.min(4, dataCapacityBits - bb.length), bb);\n appendBits(0, (8 - (bb.length % 8)) % 8, bb);\n assert(bb.length % 8 === 0);\n\n // Pad with alternating bytes until data capacity is reached\n for (\n let padByte = 0xec;\n bb.length < dataCapacityBits;\n padByte ^= 0xec ^ 0x11\n ) {\n appendBits(padByte, 8, bb);\n }\n\n // Pack bits numbero bytes in big endian\n const dataCodewords: number[] = [];\n while (dataCodewords.length * 8 < bb.length) {\n dataCodewords.push(0);\n }\n bb.forEach((b, i) => {\n dataCodewords[i >>> 3] |= b << (7 - (i & 7));\n });\n\n // Create the QR Code object\n return new QrCode(version, ecl, dataCodewords, mask);\n }\n\n /* -- Fields --*/\n\n // The width and height of this QR Code, measured in modules, between\n // 21 and 177 (inclusive). This is equal to version * 4 + 17.\n public readonly size: number;\n\n // The index of the mask pattern used in this QR Code, which is between 0 and 7 (inclusive).\n // Even if a QR Code is created with automatic masking requested (mask = -1),\n // the resulting object still has a mask value between 0 and 7.\n public readonly mask: number;\n\n // The modules of this QR Code (false = light, true = dark).\n // Immutable after constructor finishes. Accessed through getModule().\n private readonly modules: boolean[][] = [];\n\n // Indicates function modules that are not subjected to masking. Discarded when constructor finishes.\n private readonly isFunction: boolean[][] = [];\n\n /* -- Constructor (low level) and fields --*/\n // The version number of this QR Code, which is between 1 and 40 (inclusive).\n // This determines the size of this barcode.\n public version: number;\n\n // The error correction level used in this QR Code.\n public errorCorrectionLevel: Ecc;\n\n // Creates a new QR Code with the given version number,\n // error correction level, data codeword bytes, and mask number.\n // This is a low-level API that most users should not use directly.\n // A mid-level API is the encodeSegments() function.\n public constructor(\n // The version number of this QR Code, which is between 1 and 40 (inclusive).\n // This determines the size of this barcode.\n version: number,\n\n // The error correction level used in this QR Code.\n errorCorrectionLevel: Ecc,\n\n dataCodewords: Readonly,\n\n oriMsk: number\n ) {\n let msk = oriMsk;\n this.version = version;\n this.errorCorrectionLevel = errorCorrectionLevel;\n // Check scalar arguments\n if (version < QrCode.MIN_VERSION || version > QrCode.MAX_VERSION) {\n throw new RangeError(\"Version value out of range\");\n }\n if (msk < -1 || msk > 7) {\n throw new RangeError(\"Mask value out of range\");\n }\n this.size = version * 4 + 17;\n\n // Initialize both grids to be size*size arrays of Boolean false\n const row: boolean[] = [];\n for (let i = 0; i < this.size; i++) {\n row.push(false);\n }\n for (let i = 0; i < this.size; i++) {\n this.modules.push(row.slice()); // Initially all light\n this.isFunction.push(row.slice());\n }\n\n // Compute ECC, draw modules\n this.drawFunctionPatterns();\n const allCodewords: number[] = this.addEccAndInterleave(dataCodewords);\n this.drawCodewords(allCodewords);\n\n // Do masking\n if (msk === -1) {\n // Automatically choose best mask\n let minPenalty: number = 1000000000;\n for (let i = 0; i < 8; i++) {\n this.applyMask(i);\n this.drawFormatBits(i);\n const penalty: number = this.getPenaltyScore();\n if (penalty < minPenalty) {\n msk = i;\n minPenalty = penalty;\n }\n this.applyMask(i); // Undoes the mask due to XOR\n }\n }\n assert(msk >= 0 && msk <= 7);\n this.mask = msk;\n this.applyMask(msk); // Apply the final choice of mask\n this.drawFormatBits(msk); // Overwrite old format bits\n\n this.isFunction = [];\n }\n\n /* -- Accessor methods --*/\n\n // Returns the color of the module (pixel) at the given coordinates, which is false\n // for light or true for dark. The top left corner has the coordinates (x=0, y=0).\n // If the given coordinates are out of bounds, then false (light) is returned.\n public getModule(x: number, y: number): boolean {\n return (\n x >= 0 && x < this.size && y >= 0 && y < this.size && this.modules[y][x]\n );\n }\n\n // Modified to expose modules for easy access\n public getModules() {\n return this.modules;\n }\n\n /* -- Private helper methods for constructor: Drawing function modules --*/\n\n // Reads this object's version field, and draws and marks all function modules.\n private drawFunctionPatterns(): void {\n // Draw horizontal and vertical timing patterns\n for (let i = 0; i < this.size; i++) {\n this.setFunctionModule(6, i, i % 2 === 0);\n this.setFunctionModule(i, 6, i % 2 === 0);\n }\n\n // Draw 3 finder patterns (all corners except bottom right; overwrites some timing modules)\n this.drawFinderPattern(3, 3);\n this.drawFinderPattern(this.size - 4, 3);\n this.drawFinderPattern(3, this.size - 4);\n\n // Draw numerous alignment patterns\n const alignPatPos: number[] = this.getAlignmentPatternPositions();\n const numAlign: number = alignPatPos.length;\n for (let i = 0; i < numAlign; i++) {\n for (let j = 0; j < numAlign; j++) {\n // Don't draw on the three finder corners\n if (\n !(\n (i === 0 && j === 0) ||\n (i === 0 && j === numAlign - 1) ||\n (i === numAlign - 1 && j === 0)\n )\n ) {\n this.drawAlignmentPattern(alignPatPos[i], alignPatPos[j]);\n }\n }\n }\n\n // Draw configuration data\n this.drawFormatBits(0); // Dummy mask value; overwritten later in the constructor\n this.drawVersion();\n }\n\n // Draws two copies of the format bits (with its own error correction code)\n // based on the given mask and this object's error correction level field.\n private drawFormatBits(mask: number): void {\n // Calculate error correction code and pack bits\n const data: number = (this.errorCorrectionLevel.formatBits << 3) | mask; // errCorrLvl is unumber2, mask is unumber3\n let rem: number = data;\n for (let i = 0; i < 10; i++) {\n rem = (rem << 1) ^ ((rem >>> 9) * 0x537);\n }\n const bits = ((data << 10) | rem) ^ 0x5412; // unumber15\n assert(bits >>> 15 === 0);\n\n // Draw first copy\n for (let i = 0; i <= 5; i++) {\n this.setFunctionModule(8, i, getBit(bits, i));\n }\n this.setFunctionModule(8, 7, getBit(bits, 6));\n this.setFunctionModule(8, 8, getBit(bits, 7));\n this.setFunctionModule(7, 8, getBit(bits, 8));\n for (let i = 9; i < 15; i++) {\n this.setFunctionModule(14 - i, 8, getBit(bits, i));\n }\n // Draw second copy\n for (let i = 0; i < 8; i++) {\n this.setFunctionModule(this.size - 1 - i, 8, getBit(bits, i));\n }\n for (let i = 8; i < 15; i++) {\n this.setFunctionModule(8, this.size - 15 + i, getBit(bits, i));\n }\n this.setFunctionModule(8, this.size - 8, true); // Always dark\n }\n\n // Draws two copies of the version bits (with its own error correction code),\n // based on this object's version field, iff 7 <= version <= 40.\n private drawVersion(): void {\n if (this.version < 7) {\n return;\n }\n\n // Calculate error correction code and pack bits\n let rem: number = this.version; // version is unumber6, in the range [7, 40]\n for (let i = 0; i < 12; i++) {\n rem = (rem << 1) ^ ((rem >>> 11) * 0x1f25);\n }\n const bits: number = (this.version << 12) | rem; // unumber18\n assert(bits >>> 18 === 0);\n\n // Draw two copies\n for (let i = 0; i < 18; i++) {\n const color: boolean = getBit(bits, i);\n const a: number = this.size - 11 + (i % 3);\n const b: number = Math.floor(i / 3);\n this.setFunctionModule(a, b, color);\n this.setFunctionModule(b, a, color);\n }\n }\n\n // Draws a 9*9 finder pattern including the border separator,\n // with the center module at (x, y). Modules can be out of bounds.\n private drawFinderPattern(x: number, y: number): void {\n for (let dy = -4; dy <= 4; dy++) {\n for (let dx = -4; dx <= 4; dx++) {\n const dist: number = Math.max(Math.abs(dx), Math.abs(dy)); // Chebyshev/infinity norm\n const xx: number = x + dx;\n const yy: number = y + dy;\n if (xx >= 0 && xx < this.size && yy >= 0 && yy < this.size) {\n this.setFunctionModule(xx, yy, dist !== 2 && dist !== 4);\n }\n }\n }\n }\n\n // Draws a 5*5 alignment pattern, with the center module\n // at (x, y). All modules must be in bounds.\n private drawAlignmentPattern(x: number, y: number): void {\n for (let dy = -2; dy <= 2; dy++) {\n for (let dx = -2; dx <= 2; dx++) {\n this.setFunctionModule(\n x + dx,\n y + dy,\n Math.max(Math.abs(dx), Math.abs(dy)) !== 1\n );\n }\n }\n }\n\n // Sets the color of a module and marks it as a function module.\n // Only used by the constructor. Coordinates must be in bounds.\n private setFunctionModule(x: number, y: number, isDark: boolean): void {\n this.modules[y][x] = isDark;\n this.isFunction[y][x] = true;\n }\n\n /* -- Private helper methods for constructor: Codewords and masking --*/\n\n // Returns a new byte string representing the given data with the appropriate error correction\n // codewords appended to it, based on this object's version and error correction level.\n private addEccAndInterleave(data: Readonly): number[] {\n const ver: number = this.version;\n const ecl: Ecc = this.errorCorrectionLevel;\n if (data.length !== QrCode.getNumDataCodewords(ver, ecl)) {\n throw new RangeError(\"Invalid argument\");\n }\n // Calculate parameter numbers\n const numBlocks = QrCode.NUM_ERROR_CORRECTION_BLOCKS[ecl.ordinal][ver];\n const blockEccLen = QrCode.ECC_CODEWORDS_PER_BLOCK[ecl.ordinal][ver];\n const rawCodewords = Math.floor(QrCode.getNumRawDataModules(ver) / 8);\n const numShortBlocks = numBlocks - (rawCodewords % numBlocks);\n const shortBlockLen = Math.floor(rawCodewords / numBlocks);\n\n // Split data numbero blocks and append ECC to each block\n const blocks: number[][] = [];\n const rsDiv = QrCode.reedSolomonComputeDivisor(blockEccLen);\n for (let i = 0, k = 0; i < numBlocks; i++) {\n const dat = data.slice(\n k,\n k + shortBlockLen - blockEccLen + (i < numShortBlocks ? 0 : 1)\n );\n k += dat.length;\n const ecc: number[] = QrCode.reedSolomonComputeRemainder(dat, rsDiv);\n if (i < numShortBlocks) {\n dat.push(0);\n }\n blocks.push(dat.concat(ecc));\n }\n\n // Interleave (not concatenate) the bytes from every block numbero a single sequence\n const result: number[] = [];\n for (let i = 0; i < blocks[0].length; i++) {\n blocks.forEach((block, j) => {\n // Skip the padding byte in short blocks\n if (i !== shortBlockLen - blockEccLen || j >= numShortBlocks) {\n result.push(block[i]);\n }\n });\n }\n assert(result.length === rawCodewords);\n return result;\n }\n\n // Draws the given sequence of 8-bit codewords (data and error correction) onto the entire\n // data area of this QR Code. Function modules need to be marked off before this is called.\n private drawCodewords(data: Readonly): void {\n if (\n data.length !== Math.floor(QrCode.getNumRawDataModules(this.version) / 8)\n ) {\n throw new RangeError(\"Invalid argument\");\n }\n let i: number = 0; // Bit index numbero the data\n // Do the funny zigzag scan\n for (let right = this.size - 1; right >= 1; right -= 2) {\n // Index of right column in each column pair\n if (right === 6) {\n right = 5;\n }\n for (let vert = 0; vert < this.size; vert++) {\n // Vertical counter\n for (let j = 0; j < 2; j++) {\n const x: number = right - j; // Actual x coordinate\n const upward: boolean = ((right + 1) & 2) === 0;\n const y: number = upward ? this.size - 1 - vert : vert; // Actual y coordinate\n if (!this.isFunction[y][x] && i < data.length * 8) {\n this.modules[y][x] = getBit(data[i >>> 3], 7 - (i & 7));\n i++;\n }\n // If this QR Code has any remainder bits (0 to 7), they were assigned as\n // 0/false/light by the constructor and are left unchanged by this method\n }\n }\n }\n assert(i === data.length * 8);\n }\n\n // XORs the codeword modules in this QR Code with the given mask pattern.\n // The function modules must be marked and the codeword bits must be drawn\n // before masking. Due to the arithmetic of XOR, calling applyMask() with\n // the same mask value a second time will undo the mask. A final well-formed\n // QR Code needs exactly one (not zero, two, etc.) mask applied.\n private applyMask(mask: number): void {\n if (mask < 0 || mask > 7) {\n throw new RangeError(\"Mask value out of range\");\n }\n for (let y = 0; y < this.size; y++) {\n for (let x = 0; x < this.size; x++) {\n let invert: boolean;\n switch (mask) {\n case 0:\n invert = (x + y) % 2 === 0;\n break;\n case 1:\n invert = y % 2 === 0;\n break;\n case 2:\n invert = x % 3 === 0;\n break;\n case 3:\n invert = (x + y) % 3 === 0;\n break;\n case 4:\n invert = (Math.floor(x / 3) + Math.floor(y / 2)) % 2 === 0;\n break;\n case 5:\n invert = ((x * y) % 2) + ((x * y) % 3) === 0;\n break;\n case 6:\n invert = (((x * y) % 2) + ((x * y) % 3)) % 2 === 0;\n break;\n case 7:\n invert = (((x + y) % 2) + ((x * y) % 3)) % 2 === 0;\n break;\n default:\n throw new Error(\"Unreachable\");\n }\n if (!this.isFunction[y][x] && invert) {\n this.modules[y][x] = !this.modules[y][x];\n }\n }\n }\n }\n\n // Calculates and returns the penalty score based on state of this QR Code's current modules.\n // This is used by the automatic mask choice algorithm to find the mask pattern that yields the lowest score.\n private getPenaltyScore(): number {\n let result: number = 0;\n\n // Adjacent modules in row having same color, and finder-like patterns\n for (let y = 0; y < this.size; y++) {\n let runColor = false;\n let runX = 0;\n const runHistory = [0, 0, 0, 0, 0, 0, 0];\n for (let x = 0; x < this.size; x++) {\n if (this.modules[y][x] === runColor) {\n runX++;\n if (runX === 5) {\n result += QrCode.PENALTY_N1;\n } else if (runX > 5) {\n result++;\n }\n } else {\n this.finderPenaltyAddHistory(runX, runHistory);\n if (!runColor) {\n result +=\n this.finderPenaltyCountPatterns(runHistory) * QrCode.PENALTY_N3;\n }\n runColor = this.modules[y][x];\n runX = 1;\n }\n }\n result +=\n this.finderPenaltyTerminateAndCount(runColor, runX, runHistory) *\n QrCode.PENALTY_N3;\n }\n // Adjacent modules in column having same color, and finder-like patterns\n for (let x = 0; x < this.size; x++) {\n let runColor = false;\n let runY = 0;\n const runHistory = [0, 0, 0, 0, 0, 0, 0];\n for (let y = 0; y < this.size; y++) {\n if (this.modules[y][x] === runColor) {\n runY++;\n if (runY === 5) {\n result += QrCode.PENALTY_N1;\n } else if (runY > 5) {\n result++;\n }\n } else {\n this.finderPenaltyAddHistory(runY, runHistory);\n if (!runColor) {\n result +=\n this.finderPenaltyCountPatterns(runHistory) * QrCode.PENALTY_N3;\n }\n runColor = this.modules[y][x];\n runY = 1;\n }\n }\n result +=\n this.finderPenaltyTerminateAndCount(runColor, runY, runHistory) *\n QrCode.PENALTY_N3;\n }\n\n // 2*2 blocks of modules having same color\n for (let y = 0; y < this.size - 1; y++) {\n for (let x = 0; x < this.size - 1; x++) {\n const color: boolean = this.modules[y][x];\n if (\n color === this.modules[y][x + 1] &&\n color === this.modules[y + 1][x] &&\n color === this.modules[y + 1][x + 1]\n ) {\n result += QrCode.PENALTY_N2;\n }\n }\n }\n\n // Balance of dark and light modules\n let dark: number = 0;\n for (const row of this.modules) {\n dark = row.reduce((sum, color) => sum + (color ? 1 : 0), dark);\n }\n const total: number = this.size * this.size; // Note that size is odd, so dark/total !== 1/2\n // Compute the smallest numbereger k >= 0 such that (45-5k)% <= dark/total <= (55+5k)%\n const k: number = Math.ceil(Math.abs(dark * 20 - total * 10) / total) - 1;\n assert(k >= 0 && k <= 9);\n result += k * QrCode.PENALTY_N4;\n assert(result >= 0 && result <= 2568888); // Non-tight upper bound based on default values of PENALTY_N1, ..., N4\n return result;\n }\n\n /* -- Private helper functions --*/\n\n // Returns an ascending list of positions of alignment patterns for this version number.\n // Each position is in the range [0,177), and are used on both the x and y axes.\n // This could be implemented as lookup table of 40 variable-length lists of numberegers.\n private getAlignmentPatternPositions(): number[] {\n if (this.version === 1) {\n return [];\n }\n const numAlign = Math.floor(this.version / 7) + 2;\n const step =\n this.version === 32\n ? 26\n : Math.ceil((this.version * 4 + 4) / (numAlign * 2 - 2)) * 2;\n const result: number[] = [6];\n for (let pos = this.size - 7; result.length < numAlign; pos -= step) {\n result.splice(1, 0, pos);\n }\n return result;\n }\n\n // Returns the number of data bits that can be stored in a QR Code of the given version number, after\n // all function modules are excluded. This includes remainder bits, so it might not be a multiple of 8.\n // The result is in the range [208, 29648]. This could be implemented as a 40-entry lookup table.\n private static getNumRawDataModules(ver: number): number {\n if (ver < QrCode.MIN_VERSION || ver > QrCode.MAX_VERSION) {\n throw new RangeError(\"Version number out of range\");\n }\n let result: number = (16 * ver + 128) * ver + 64;\n if (ver >= 2) {\n const numAlign: number = Math.floor(ver / 7) + 2;\n result -= (25 * numAlign - 10) * numAlign - 55;\n if (ver >= 7) {\n result -= 36;\n }\n }\n assert(result >= 208 && result <= 29648);\n return result;\n }\n\n // Returns the number of 8-bit data (i.e. not error correction) codewords contained in any\n // QR Code of the given version number and error correction level, with remainder bits discarded.\n // This stateless pure function could be implemented as a (40*4)-cell lookup table.\n private static getNumDataCodewords(ver: number, ecl: Ecc): number {\n return (\n Math.floor(QrCode.getNumRawDataModules(ver) / 8) -\n QrCode.ECC_CODEWORDS_PER_BLOCK[ecl.ordinal][ver] *\n QrCode.NUM_ERROR_CORRECTION_BLOCKS[ecl.ordinal][ver]\n );\n }\n\n // Returns a Reed-Solomon ECC generator polynomial for the given degree. This could be\n // implemented as a lookup table over all possible parameter values, instead of as an algorithm.\n private static reedSolomonComputeDivisor(degree: number): number[] {\n if (degree < 1 || degree > 255) {\n throw new RangeError(\"Degree out of range\");\n }\n // Polynomial coefficients are stored from highest to lowest power, excluding the leading term which is always 1.\n // For example the polynomial x^3 + 255x^2 + 8x + 93 is stored as the unumber8 array [255, 8, 93].\n const result: number[] = [];\n for (let i = 0; i < degree - 1; i++) {\n result.push(0);\n }\n result.push(1); // Start off with the monomial x^0\n\n // Compute the product polynomial (x - r^0) * (x - r^1) * (x - r^2) * ... * (x - r^{degree-1}),\n // and drop the highest monomial term which is always 1x^degree.\n // Note that r = 0x02, which is a generator element of this field GF(2^8/0x11D).\n let root = 1;\n for (let i = 0; i < degree; i++) {\n // Multiply the current product by (x - r^i)\n for (let j = 0; j < result.length; j++) {\n result[j] = QrCode.reedSolomonMultiply(result[j], root);\n if (j + 1 < result.length) {\n result[j] ^= result[j + 1];\n }\n }\n root = QrCode.reedSolomonMultiply(root, 0x02);\n }\n return result;\n }\n\n // Returns the Reed-Solomon error correction codeword for the given data and divisor polynomials.\n private static reedSolomonComputeRemainder(\n data: Readonly,\n divisor: Readonly\n ) {\n const result = divisor.map(() => 0);\n for (const b of data) {\n // Polynomial division\n const factor = b ^ result.shift();\n result.push(0);\n divisor.forEach((coef, i) => {\n result[i] ^= QrCode.reedSolomonMultiply(coef, factor);\n });\n }\n return result;\n }\n\n // Returns the product of the two given field elements modulo GF(2^8/0x11D). The arguments and result\n // are unsigned 8-bit numberegers. This could be implemented as a lookup table of 256*256 entries of unumber8.\n private static reedSolomonMultiply(x: number, y: number): number {\n if (x >>> 8 !== 0 || y >>> 8 !== 0) {\n throw new RangeError(\"Byte out of range\");\n }\n // Russian peasant multiplication\n let z: number = 0;\n for (let i = 7; i >= 0; i--) {\n z = (z << 1) ^ ((z >>> 7) * 0x11d);\n z ^= ((y >>> i) & 1) * x;\n }\n assert(z >>> 8 === 0);\n return z as number;\n }\n\n // Can only be called immediately after a light run is added, and\n // returns either 0, 1, or 2. A helper function for getPenaltyScore().\n private finderPenaltyCountPatterns(runHistory: Readonly): number {\n const n: number = runHistory[1];\n assert(n <= this.size * 3);\n const core: boolean =\n n > 0 &&\n runHistory[2] === n &&\n runHistory[3] === n * 3 &&\n runHistory[4] === n &&\n runHistory[5] === n;\n return (\n (core && runHistory[0] >= n * 4 && runHistory[6] >= n ? 1 : 0) +\n (core && runHistory[6] >= n * 4 && runHistory[0] >= n ? 1 : 0)\n );\n }\n\n // Must be called at the end of a line (row or column) of modules. A helper function for getPenaltyScore().\n private finderPenaltyTerminateAndCount(\n currentRunColor: boolean,\n oriCurrentRunLength: number,\n runHistory: number[]\n ): number {\n let currentRunLength = oriCurrentRunLength;\n if (currentRunColor) {\n // Terminate dark run\n this.finderPenaltyAddHistory(currentRunLength, runHistory);\n currentRunLength = 0;\n }\n currentRunLength += this.size; // Add light border to final run\n this.finderPenaltyAddHistory(currentRunLength, runHistory);\n return this.finderPenaltyCountPatterns(runHistory);\n }\n\n // Pushes the given value to the front and drops the last value. A helper function for getPenaltyScore().\n private finderPenaltyAddHistory(\n oriCurrentRunLength: number,\n runHistory: number[]\n ) {\n let currentRunLength = oriCurrentRunLength;\n if (runHistory[0] === 0) {\n currentRunLength += this.size; // Add light border to initial run\n }\n runHistory.pop();\n runHistory.unshift(currentRunLength);\n }\n\n /* -- Constants and tables --*/\n\n // The minimum version number supported in the QR Code Model 2 standard.\n public static readonly MIN_VERSION: number = 1;\n\n // The maximum version number supported in the QR Code Model 2 standard.\n public static readonly MAX_VERSION: number = 40;\n\n // For use in getPenaltyScore(), when evaluating which mask is best.\n private static readonly PENALTY_N1: number = 3;\n\n private static readonly PENALTY_N2: number = 3;\n\n private static readonly PENALTY_N3: number = 40;\n\n private static readonly PENALTY_N4: number = 10;\n\n private static readonly ECC_CODEWORDS_PER_BLOCK: number[][] = [\n // Version: (note that index 0 is for padding, and is set to an illegal value)\n // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 Error correction level\n [\n -1, 7, 10, 15, 20, 26, 18, 20, 24, 30, 18, 20, 24, 26, 30, 22, 24, 28, 30,\n 28, 28, 28, 28, 30, 30, 26, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,\n 30, 30, 30, 30,\n ], // Low\n [\n -1, 10, 16, 26, 18, 24, 16, 18, 22, 22, 26, 30, 22, 22, 24, 24, 28, 28,\n 26, 26, 26, 26, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,\n 28, 28, 28, 28, 28,\n ], // Medium\n [\n -1, 13, 22, 18, 26, 18, 24, 18, 22, 20, 24, 28, 26, 24, 20, 30, 24, 28,\n 28, 26, 30, 28, 30, 30, 30, 30, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30,\n 30, 30, 30, 30, 30,\n ], // Quartile\n [\n -1, 17, 28, 22, 16, 22, 28, 26, 26, 24, 28, 24, 28, 22, 24, 24, 30, 28,\n 28, 26, 28, 30, 24, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,\n 30, 30, 30, 30, 30,\n ], // High\n ];\n\n private static readonly NUM_ERROR_CORRECTION_BLOCKS: number[][] = [\n // Version: (note that index 0 is for padding, and is set to an illegal value)\n // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 Error correction level\n [\n -1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 4, 4, 4, 4, 4, 6, 6, 6, 6, 7, 8, 8, 9, 9,\n 10, 12, 12, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 24, 25,\n ], // Low\n [\n -1, 1, 1, 1, 2, 2, 4, 4, 4, 5, 5, 5, 8, 9, 9, 10, 10, 11, 13, 14, 16, 17,\n 17, 18, 20, 21, 23, 25, 26, 28, 29, 31, 33, 35, 37, 38, 40, 43, 45, 47,\n 49,\n ], // Medium\n [\n -1, 1, 1, 2, 2, 4, 4, 6, 6, 8, 8, 8, 10, 12, 16, 12, 17, 16, 18, 21, 20,\n 23, 23, 25, 27, 29, 34, 34, 35, 38, 40, 43, 45, 48, 51, 53, 56, 59, 62,\n 65, 68,\n ], // Quartile\n [\n -1, 1, 1, 2, 4, 4, 4, 5, 6, 8, 8, 11, 11, 16, 16, 18, 16, 19, 21, 25, 25,\n 25, 34, 30, 32, 35, 37, 40, 42, 45, 48, 51, 54, 57, 60, 63, 66, 70, 74,\n 77, 81,\n ], // High\n ];\n}\n","import type {\n CrossOrigin,\n ERROR_LEVEL_MAPPED_TYPE,\n ErrorCorrectionLevel,\n Excavation,\n ImageSettings,\n Modules,\n} from './types';\nimport { Ecc } from './qrcodegen';\n\n// =================== ERROR_LEVEL ==========================\nexport const ERROR_LEVEL_MAP: ERROR_LEVEL_MAPPED_TYPE = {\n L: Ecc.LOW,\n M: Ecc.MEDIUM,\n Q: Ecc.QUARTILE,\n H: Ecc.HIGH,\n} as const;\n\n// =================== DEFAULT_VALUE ==========================\nexport const DEFAULT_SIZE = 160;\nexport const DEFAULT_LEVEL: ErrorCorrectionLevel = 'M';\nexport const DEFAULT_BACKGROUND_COLOR = '#FFFFFF';\nexport const DEFAULT_FRONT_COLOR = '#000000';\nexport const DEFAULT_NEED_MARGIN = false;\nexport const DEFAULT_MINVERSION = 1;\nexport const SPEC_MARGIN_SIZE = 4;\nexport const DEFAULT_MARGIN_SIZE = 0;\nexport const DEFAULT_IMG_SCALE = 0.1;\n\n// =================== UTILS ==========================\n/**\n * Generate a path string from modules\n * @param modules\n * @param margin\n * @returns\n */\nexport const generatePath = (modules: Modules, margin: number = 0) => {\n const ops: string[] = [];\n modules.forEach((row, y) => {\n let start: number | null = null;\n row.forEach((cell, x) => {\n if (!cell && start !== null) {\n ops.push(\n `M${start + margin} ${y + margin}h${x - start}v1H${start + margin}z`\n );\n start = null;\n return;\n }\n\n if (x === row.length - 1) {\n if (!cell) {\n return;\n }\n if (start === null) {\n ops.push(`M${x + margin},${y + margin} h1v1H${x + margin}z`);\n } else {\n ops.push(\n `M${start + margin},${y + margin} h${x + 1 - start}v1H${\n start + margin\n }z`\n );\n }\n return;\n }\n\n if (cell && start === null) {\n start = x;\n }\n });\n });\n return ops.join('');\n};\n\n/**\n * Excavate modules\n * @param modules\n * @param excavation\n * @returns\n */\nexport const excavateModules = (modules: Modules, excavation: Excavation) => modules.slice().map((row, y) => {\n if (y < excavation.y || y >= excavation.y + excavation.h) {\n return row;\n }\n return row.map((cell, x) => {\n if (x < excavation.x || x >= excavation.x + excavation.w) {\n return cell;\n }\n return false;\n });\n});\n\n/**\n * Get image settings\n * @param cells The modules of the QR code\n * @param size The size of the QR code\n * @param margin\n * @param imageSettings\n * @returns\n */\nexport const getImageSettings = (\n cells: Modules,\n size: number,\n margin: number,\n imageSettings?: ImageSettings\n): null | {\n x: number;\n y: number;\n h: number;\n w: number;\n excavation: Excavation | null;\n opacity: number;\n crossOrigin: CrossOrigin;\n} => {\n if (imageSettings == null) {\n return null;\n }\n const numCells = cells.length + margin * 2;\n const defaultSize = Math.floor(size * DEFAULT_IMG_SCALE);\n const scale = numCells / size;\n const w = (imageSettings.width || defaultSize) * scale;\n const h = (imageSettings.height || defaultSize) * scale;\n const x = imageSettings.x == null\n ? cells.length / 2 - w / 2\n : imageSettings.x * scale;\n const y = imageSettings.y == null\n ? cells.length / 2 - h / 2\n : imageSettings.y * scale;\n const opacity = imageSettings.opacity == null ? 1 : imageSettings.opacity;\n\n let excavation = null;\n if (imageSettings.excavate) {\n const floorX = Math.floor(x);\n const floorY = Math.floor(y);\n const ceilW = Math.ceil(w + x - floorX);\n const ceilH = Math.ceil(h + y - floorY);\n excavation = { x: floorX, y: floorY, w: ceilW, h: ceilH };\n }\n\n const { crossOrigin } = imageSettings;\n\n return { x, y, h, w, excavation, opacity, crossOrigin };\n};\n\n/**\n * Get margin size\n * @param needMargin Whether need margin\n * @param marginSize Custom margin size\n * @returns\n */\nexport const getMarginSize = (needMargin: boolean, marginSize?: number) => {\n if (marginSize != null) {\n return Math.max(Math.floor(marginSize), 0);\n }\n return needMargin ? SPEC_MARGIN_SIZE : DEFAULT_MARGIN_SIZE;\n};\n\n/**\n * Check if Path2D is supported\n */\nexport const isSupportPath2d = (() => {\n try {\n new Path2D().addPath(new Path2D());\n } catch {\n return false;\n }\n return true;\n})();\n","import { PropType } from 'vue';\nimport { QRCodeSubComponent, QRCodeStatus } from './type';\n\nexport const QRCodeSubComponentProps = {\n /**\n * The value to encode into the QR Code. An array of strings can be passed in\n * to represent multiple segments to further optimize the QR Code.\n */\n value: {\n type: String,\n default: '',\n },\n /**\n * The size, in pixels, to render the QR Code.\n * @defaultValue 128\n */\n size: {\n type: Number,\n default: 128,\n },\n /**\n * The Error Correction Level to use.\n * @see https://www.qrcode.com/en/about/error_correction.html\n * @defaultValue L\n */\n level: {\n type: String as PropType,\n default: 'L',\n },\n /**\n * The background color used to render the QR Code.\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/color_value\n * @defaultValue #FFFFFF\n */\n bgColor: {\n type: String,\n default: '#FFFFFF',\n },\n /**\n * The foregtound color used to render the QR Code.\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/color_value\n * @defaultValue #000000\n */\n fgColor: {\n type: String,\n default: '#000000',\n },\n /**\n * The style to apply to the QR Code.\n */\n style: {\n type: Object as PropType,\n default: () => ({} as QRCodeSubComponent['style']),\n },\n /**\n * Whether or not a margin of 4 modules should be rendered as a part of the\n * QR Code.\n * @deprecated Use `marginSize` instead.\n * @defaultValue false\n */\n includeMargin: {\n type: Boolean,\n default: false,\n },\n /**\n * The number of _modules_ to use for margin. The QR Code specification\n * requires `4`, however you can specify any number. Values will be turned to\n * integers with `Math.floor`. Overrides `includeMargin` when both are specified.\n * @defaultValue 0\n */\n marginSize: {\n type: Number,\n default: 0,\n },\n /**\n * The settings for the embedded image.\n */\n imageSettings: {\n type: Object as PropType,\n default: () => ({}),\n },\n /**\n * The title to assign to the QR Code. Used for accessibility reasons.\n */\n title: {\n type: String,\n default: '',\n },\n /**\n * The minimum version used when encoding the QR Code. Valid values are 1-40\n * with higher values resulting in more complex QR Codes. The optimal\n * (lowest) version is determined for the `value` provided, using `minVersion`\n * as the lower bound.\n * @defaultValue 1\n */\n minVersion: {\n type: Number,\n default: 1,\n },\n};\n\nexport const QRCodeStatusProps = {\n locale: {\n type: Object as PropType,\n default: () => ({} as QRCodeStatus['locale']),\n },\n onRefresh: {\n type: Function as PropType,\n },\n statusRender: {\n type: Function as PropType,\n },\n status: {\n type: String as PropType,\n default: 'active' as QRCodeStatus['status'],\n },\n};\n","import { QrCode, QrSegment } from '@tdesign/common-js/qrcode/qrcodegen';\nimport type { CrossOrigin, ErrorCorrectionLevel, Excavation, ImageSettings } from '@tdesign/common-js/qrcode/types';\nimport { ERROR_LEVEL_MAP, getImageSettings, getMarginSize } from '@tdesign/common-js/qrcode/utils';\nimport { computed, ComputedRef } from 'vue';\n\ninterface Options {\n value: string;\n level: ErrorCorrectionLevel;\n minVersion: number;\n includeMargin: boolean;\n marginSize?: number;\n imageSettings?: ImageSettings;\n size: number;\n}\n\ninterface QRCodeResult {\n cells: ComputedRef;\n margin: ComputedRef;\n numCells: ComputedRef;\n calculatedImageSettings: ComputedRef<{\n x: number;\n y: number;\n h: number;\n w: number;\n excavation: Excavation | null;\n opacity: number;\n crossOrigin: CrossOrigin;\n }>;\n qrcode: ComputedRef;\n}\n\nexport const useQRCode = (opt: Options): QRCodeResult => {\n const { value, level, minVersion, includeMargin, marginSize, imageSettings, size } = opt;\n\n const memoizedQrcode = computed(() => {\n const segments = QrSegment.makeSegments(value);\n return QrCode.encodeSegments(segments, ERROR_LEVEL_MAP[level], minVersion);\n });\n\n const cs = computed(() => memoizedQrcode.value.getModules());\n const mg = computed(() => getMarginSize(includeMargin, marginSize));\n const cis = computed(() => getImageSettings(cs.value, size, mg.value, imageSettings));\n\n return {\n cells: cs,\n margin: mg,\n numCells: computed(() => cs.value.length + mg.value * 2),\n calculatedImageSettings: cis,\n qrcode: memoizedQrcode,\n };\n};\n\nexport default useQRCode;\n","import { computed, defineComponent, ref, watchEffect, onMounted } from 'vue';\nimport { QRCodeSubComponentProps } from './props';\nimport {\n DEFAULT_NEED_MARGIN,\n DEFAULT_MINVERSION,\n isSupportPath2d,\n excavateModules,\n generatePath,\n} from '@tdesign/common-js/qrcode/utils';\nimport { useQRCode } from '../hooks/useQRCode';\n\nexport default defineComponent({\n name: 'QRCodeCanvas',\n props: QRCodeSubComponentProps,\n setup(props) {\n const imgSrc = computed(() => props.imageSettings?.src);\n\n const imageRef = ref(null);\n\n const canvasRef = ref(null);\n\n const imgCrossOrigin = ref('');\n\n const renderQRCode = () => {\n const { margin, cells, numCells, calculatedImageSettings } = useQRCode({\n value: props.value,\n level: props.level,\n minVersion: DEFAULT_MINVERSION,\n includeMargin: DEFAULT_NEED_MARGIN,\n marginSize: props.marginSize,\n imageSettings: props.imageSettings,\n size: props.size,\n });\n\n if (!canvasRef.value) {\n return;\n }\n\n const canvas = canvasRef.value;\n const ctx = canvas.getContext('2d');\n\n if (!ctx) {\n return;\n }\n\n imgCrossOrigin.value = calculatedImageSettings.value?.crossOrigin;\n\n let cellsToDraw = cells;\n const image = imageRef.value;\n\n if (image) {\n image.crossOrigin = calculatedImageSettings.value.crossOrigin;\n }\n\n const haveImageToRender =\n calculatedImageSettings.value &&\n image !== null &&\n image.complete &&\n image.naturalHeight !== 0 &&\n image.naturalWidth !== 0;\n\n if (haveImageToRender && calculatedImageSettings.value.excavation != null) {\n cellsToDraw = computed(() => excavateModules(cells.value, calculatedImageSettings.value.excavation));\n }\n\n const pixelRatio = window.devicePixelRatio || 1;\n canvas.height = props.size * pixelRatio;\n canvas.width = props.size * pixelRatio;\n const scale = (props.size / numCells.value) * pixelRatio;\n ctx.scale(scale, scale);\n\n ctx.fillStyle = props.bgColor;\n ctx.fillRect(0, 0, numCells.value, numCells.value);\n\n ctx.fillStyle = props.fgColor;\n if (isSupportPath2d) {\n ctx.fill(new Path2D(generatePath(cellsToDraw.value, margin.value)));\n } else {\n cells.value.forEach((row, rdx) => {\n row.forEach((cell, cdx) => {\n if (cell) {\n ctx.fillRect(cdx + margin.value, rdx + margin.value, 1, 1);\n }\n });\n });\n }\n\n if (calculatedImageSettings) {\n ctx.globalAlpha = calculatedImageSettings.value.opacity;\n }\n\n if (haveImageToRender) {\n ctx.globalAlpha = calculatedImageSettings.value.opacity;\n ctx.drawImage(\n image,\n calculatedImageSettings.value.x + margin.value,\n calculatedImageSettings.value.y + margin.value,\n calculatedImageSettings.value.w,\n calculatedImageSettings.value.h,\n );\n }\n };\n\n watchEffect(() => {\n renderQRCode();\n });\n\n onMounted(() => {\n renderQRCode();\n });\n\n return () => {\n return (\n <>\n \n {imgSrc.value != null ? (\n \n ) : null}\n \n );\n };\n },\n});\n","import { computed, defineComponent } from 'vue';\nimport { QRCodeSubComponentProps } from './props';\nimport {\n DEFAULT_NEED_MARGIN,\n DEFAULT_MINVERSION,\n excavateModules,\n generatePath,\n} from '@tdesign/common-js/qrcode/utils';\nimport { useQRCode } from '../hooks/useQRCode';\n\nexport default defineComponent({\n name: 'QRCodeSVG',\n props: QRCodeSubComponentProps,\n setup(props) {\n const { margin, cells, numCells, calculatedImageSettings } = useQRCode({\n value: props.value,\n level: props.level,\n minVersion: DEFAULT_MINVERSION,\n includeMargin: DEFAULT_NEED_MARGIN,\n marginSize: props.marginSize,\n imageSettings: props.imageSettings,\n size: props.size,\n });\n\n const cellsToDraw = computed(() => {\n if (props.imageSettings && calculatedImageSettings.value?.excavation != null) {\n return excavateModules(cells.value, calculatedImageSettings.value.excavation);\n }\n return cells.value;\n });\n\n const imageNode = computed(() => {\n if (!props.imageSettings || !calculatedImageSettings.value) return null;\n\n return (\n \n );\n });\n\n return () => {\n const fgPath = generatePath(cellsToDraw.value, margin.value);\n return (\n \n {!!props.title && {props.title}}\n \n \n {imageNode.value}\n \n );\n };\n },\n});\n","import { computed, defineComponent } from 'vue';\nimport { QRCodeStatusProps } from './props';\nimport { CheckCircleFilledIcon, RefreshIcon } from 'tdesign-icons-vue-next';\nimport Loading from '../../loading';\nimport type { StatusRenderInfo } from '../type';\nimport { usePrefixClass } from '@tdesign/shared-hooks';\n\nexport default defineComponent({\n name: 'QRCodeStatus',\n props: QRCodeStatusProps,\n setup(props) {\n const classPrefix = usePrefixClass();\n\n const defaultSpin = ;\n\n const defaultExpiredNode = computed(() => (\n <>\n

    {props.locale?.expiredText}

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

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

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

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

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

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

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

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

    \n
    \n e.stopPropagation()}>\n props?.onRemove?.({ e, file, index })} />\n \n
    \n
    \n );\n };\n\n return () => {\n // render custom UI with fileListDisplay\n const customList = renderTNodeJSX('fileListDisplay', {\n params: {\n triggerUpload: props.triggerUpload,\n uploadFiles: props.uploadFiles,\n cancelUpload: props.cancelUpload,\n onPreview: props.onPreview,\n onRemove: props.onRemove,\n toUploadFiles: props.toUploadFiles,\n sizeOverLimitMessage: props.sizeOverLimitMessage,\n locale: props.locale,\n files: displayFiles.value,\n },\n });\n if (customList) return customList;\n\n const cardItemClasses = `${classPrefix.value}-upload__card-item ${classPrefix.value}-is-background`;\n const renderTrigger = () => {\n return (\n renderTNodeJSX('trigger', {\n params: {\n triggerUpload: props.triggerUpload,\n },\n }) || (\n
  • \n \n \n

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

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

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

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

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

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

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

    \n )}\n
  • \n );\n };\n\n const renderStatus = (file: UploadFile) => {\n const { iconMap, textMap } = getStatusMap();\n return (\n
    \n {iconMap[file.status]}\n \n {file.response?.error ? file.response?.error || textMap[file.status] : textMap[file.status]}\n {props.showUploadProgress && file.status === 'progress' ? ` ${file.percent || 0}%` : ''}\n \n
    \n );\n };\n\n const renderNormalActionCol = (file: UploadFile, index: number) => (\n \n props.onRemove({ e, index, file })}\n >\n \n );\n\n // batchUpload action col\n const renderBatchActionCol = (index: number) =>\n // 第一行数据才需要合并单元格\n index === 0 ? (\n \n props.onRemove({ e, index: -1, file: undefined })}\n >\n \n ) : null;\n\n const getFileThumbnailIcon = (fileType: string) => {\n if (FILE_PDF_REGEXP.test(fileType)) {\n return ;\n }\n if (FILE_EXCEL_REGEXP.test(fileType)) {\n return ;\n }\n if (FILE_WORD_REGEXP.test(fileType)) {\n return ;\n }\n if (FILE_PPT_REGEXP.test(fileType)) {\n return ;\n }\n if (VIDEO_REGEXP.test(fileType)) {\n return ;\n }\n return ;\n };\n\n const renderFileThumbnail = (file: UploadFile) => {\n if (!file || (!file.raw && file.url)) return null;\n const fileType = file.raw.type;\n const className = `${uploadPrefix.value}__file-thumbnail`;\n if (IMAGE_REGEXP.test(fileType)) {\n return (\n {\n e.preventDefault();\n currentPreviewFile.value = [file];\n previewIndex.value = 0;\n props.onPreview?.({ file, index: 0, e });\n }}\n />\n );\n }\n return
    {getFileThumbnailIcon(fileType)}
    ;\n };\n\n const renderFileList = () => {\n const customList = renderTNodeJSX('fileListDisplay', {\n params: {\n cancelUpload: props.cancelUpload,\n uploadFiles: props.uploadFiles,\n onPreview: props.onPreview,\n onRemove: props.onRemove,\n toUploadFiles: props.toUploadFiles,\n sizeOverLimitMessage: props.sizeOverLimitMessage,\n locale: props.locale,\n files: props.displayFiles,\n dragEvents: innerDragEvents.value,\n },\n });\n if (customList || props.fileListDisplay) return customList;\n return (\n \n \n \n \n \n \n {disabled.value ? null : }\n \n \n \n {!displayFiles.value.length && (\n \n \n \n )}\n {displayFiles.value.map((file, index) => {\n // 合并操作出现条件为:当前为合并上传模式且列表内没有待上传文件\n const showBatchUploadAction = props.isBatchUpload;\n const deleteNode =\n showBatchUploadAction && displayFiles.value.every((item) => item.status === 'success' || !item.status)\n ? renderBatchActionCol(index)\n : renderNormalActionCol(file, index);\n const fileName = props.abridgeName?.length ? abridgeName(file.name, ...props.abridgeName) : file.name;\n const thumbnailNode = props.showThumbnail ? (\n
    \n {renderFileThumbnail(file)}\n {fileName}\n
    \n ) : (\n fileName\n );\n const fileNameNode = file.url ? (\n // 此次需要设置disabled为false 否则链接会跟随表单不可点击\n \n {thumbnailNode}\n \n ) : (\n thumbnailNode\n );\n return (\n \n \n \n \n {disabled.value ? null : deleteNode}\n \n );\n })}\n \n
    {locale.value.file?.fileNameText}{locale.value.file?.fileSizeText}{locale.value.file?.fileStatusText}{locale.value.file?.fileOperationText}
    {renderEmpty()}
    \n {fileNameNode}\n {returnFileSize(file.size)}{renderStatus(file)}
    \n );\n };\n\n const renderImageList = () => {\n const customList = renderTNodeJSX('fileListDisplay', {\n params: {\n cancelUpload: props.cancelUpload,\n uploadFiles: props.uploadFiles,\n onRemove: props.onRemove,\n onPreview: props.onPreview,\n toUploadFiles: props.toUploadFiles,\n sizeOverLimitMessage: props.sizeOverLimitMessage,\n locale: props.locale,\n files: props.displayFiles,\n dragEvents: innerDragEvents.value,\n },\n });\n if (customList || props.fileListDisplay) return customList;\n return (\n
      \n {props.displayFiles.map((file, index) => renderImgItem(file, index))}\n
    \n );\n };\n\n return () => {\n const cardClassName = `${uploadPrefix.value}__flow-card-area`;\n const cancelUploadDisabled = disabled.value || !uploading.value;\n const hasCancelUploadTNode = slots.uploadButton || isFunction(props.uploadButton);\n const uploadButtonDisabled = Boolean(disabled.value || uploading.value || !displayFiles.value.length);\n const hasUploadButtonTNode = slots.cancelUploadButton || isFunction(props.cancelUploadButton);\n return (\n
    \n
    \n {slots.default?.()}\n {props.placeholder && (\n \n {props.placeholder}\n \n )}\n
    \n\n {props.theme === 'image-flow' && (\n
    \n {displayFiles.value.length ? renderImageList() : renderEmpty()}\n
    \n )}\n\n {props.theme === 'file-flow' &&\n (displayFiles.value.length ? (\n renderFileList()\n ) : (\n
    \n {renderEmpty()}\n
    \n ))}\n\n {!props.autoUpload && (props.uploadButton !== null || props.cancelUploadButton !== null) && (\n
    \n {props.cancelUploadButton !== null &&\n (hasCancelUploadTNode ? (\n renderTNodeJSX('cancelUploadButton', {\n params: {\n disabled: cancelUploadDisabled,\n cancelUploadText: locale.value?.cancelUploadText,\n cancelUpload: props.cancelUpload,\n },\n })\n ) : (\n props.cancelUpload?.({ e })}\n {...(isObject(props.cancelUploadButton) ? props.cancelUploadButton : {})}\n >\n ))}\n {props.uploadButton !== null &&\n (hasUploadButtonTNode ? (\n renderTNodeJSX('uploadButton', {\n params: {\n disabled: uploadButtonDisabled,\n uploading: uploading.value,\n uploadText: uploadText.value,\n uploadFiles: props.uploadFiles,\n },\n })\n ) : (\n props.uploadFiles?.()}\n {...(isObject(props.uploadButton) ? props.uploadButton : {})}\n >\n ))}\n
    \n )}\n\n t.url || t.raw)}\n visible={!!currentPreviewFile.value.length}\n onClose={() => {\n currentPreviewFile.value = [];\n }}\n index={previewIndex.value}\n onIndexChange={(val) => (previewIndex.value = val)}\n {...(props.imageViewerProps as ImageViewerProps)}\n >\n
    \n );\n };\n },\n});\n","import { defineComponent, PropType, toRefs } from 'vue';\nimport useDrag, { UploadDragEvents } from '../hooks/useDrag';\nimport { CommonDisplayFileProps } from '../types';\nimport { commonProps } from '../consts';\nimport { useContent } from '@tdesign/shared-hooks';\nimport { TdUploadProps } from '../type';\n\nexport interface CustomFileProps extends CommonDisplayFileProps {\n dragEvents: UploadDragEvents;\n draggable?: boolean;\n // 拖拽区域\n dragContent?: TdUploadProps['dragContent'];\n trigger?: TdUploadProps['trigger'];\n triggerUpload?: (e: MouseEvent) => void;\n childrenNode?: any;\n}\n\nexport default defineComponent({\n name: 'UploadCustomFile',\n props: {\n ...commonProps,\n dragEvents: Object as PropType,\n draggable: Boolean,\n // 拖拽区域\n dragContent: Function as PropType,\n trigger: Function as PropType,\n triggerUpload: Function as PropType,\n childrenNode: [String, Function] as PropType,\n },\n setup(props, { slots }) {\n const { classPrefix, displayFiles, accept } = toRefs(props);\n const drag = useDrag(props.dragEvents, accept);\n const { dragActive } = drag;\n\n const renderContent = useContent();\n\n const renderDragContent = () => {\n const params = { dragActive: dragActive.value || false, files: displayFiles.value };\n return (\n \n
    \n {renderContent('dragContent', 'trigger', { params }) || props.childrenNode?.(params)}\n
    \n \n );\n };\n\n return () => (\n <>\n {props.draggable ? (\n renderDragContent()\n ) : (\n
    \n {props.childrenNode?.({ files: displayFiles.value }) || slots.default?.()}\n
    \n )}\n \n );\n },\n});\n","import { isFunction, isNumber } from 'lodash-es';\n/* eslint-disable no-param-reassign */\nimport { getCurrentDate, isOverSizeLimit } from './utils';\nimport xhr from './xhr';\nimport log from '../log/log';\nimport {\n UploadFile,\n SizeLimitObj,\n FileChangeParams,\n FileChangeReturn,\n RequestMethodResponse,\n HandleUploadParams,\n SuccessContext,\n handleSuccessParams,\n UploadTriggerUploadText,\n ErrorContext,\n ResponseType,\n} from './types';\n\nexport interface BeforeUploadExtra {\n /** 图片文件大小限制 */\n sizeLimit?: number | SizeLimitObj;\n /** 上传文件之前的钩子,参数为上传的文件,返回值决定是否上传 */\n beforeUpload?: (file: UploadFile) => boolean | Promise;\n}\n\nexport type BeforeUploadPromiseList = [Promise, undefined | Promise]\n\nexport function handleBeforeUpload(\n file: UploadFile, params: BeforeUploadExtra,\n): Promise<[SizeLimitObj, boolean]> {\n const { sizeLimit, beforeUpload } = params;\n // 文件大小校验\n const sizePromise = new Promise((resolve) => {\n let result: SizeLimitObj = null;\n if (sizeLimit) {\n const sizeLimitObj: SizeLimitObj = isNumber(sizeLimit)\n ? { size: sizeLimit, unit: 'KB' }\n : sizeLimit;\n const limit = isOverSizeLimit(file.size, sizeLimitObj.size, sizeLimitObj.unit);\n if (limit) {\n result = sizeLimitObj;\n }\n }\n resolve(result);\n });\n\n // 自定义校验\n const promiseList: BeforeUploadPromiseList = [sizePromise, undefined];\n if (isFunction(beforeUpload)) {\n const r = beforeUpload(file);\n const p = r instanceof Promise ? r : (new Promise((resolve) => resolve(r)));\n promiseList[1] = p;\n }\n\n // 同时进行文件大小校验和自定义校验函数\n return new Promise((resolve) => {\n Promise.all(promiseList).then((r) => {\n resolve(r);\n });\n });\n}\n\nexport interface OnErrorParams extends ErrorContext {\n formatResponse?: HandleUploadParams['formatResponse'];\n}\n\nexport function handleError(options: OnErrorParams) {\n const { event, files, response, XMLHttpRequest, formatResponse } = options;\n let res = response;\n if (isFunction(formatResponse)) {\n res = formatResponse(response, { file: files[0], currentFiles: files });\n }\n files.forEach((file) => {\n file.status = 'fail';\n file.response = res;\n });\n return { response: res, event, files, XMLHttpRequest };\n}\n\nexport function handleSuccess(params: handleSuccessParams) {\n const { event, files, response, XMLHttpRequest } = params;\n if (files?.length <= 0) {\n log.error('Upload', 'Empty File in Success Callback');\n }\n files.forEach((file) => {\n file.percent = 100;\n file.status = 'success';\n delete file.response?.error;\n });\n const res = response;\n files[0].url = res.url || files[0].url;\n return { response: res, event, files, XMLHttpRequest };\n}\n\nexport type UploadRequestReturn = {\n status?: 'fail' | 'success';\n /** 上传失败的文件,需等待继续上传 */\n failedFiles?: UploadFile[];\n data?: SuccessContext;\n /** 批量文件上传,一个文件一个请求的场景下,响应结果的列表 */\n list?: UploadRequestReturn[];\n}\n\nexport function handleRequestMethodResponse(res: RequestMethodResponse) {\n if (!res) {\n log.error('Upload', '`requestMethodResponse` is required.');\n return false;\n }\n if (!res.status) {\n log.error('Upload', '`requestMethodResponse.status` is missing, which value only can be `success` or `fail`');\n return false;\n }\n if (!['success', 'fail'].includes(res.status)) {\n log.error('Upload', '`requestMethodResponse.status` must be `success` or `fail`, examples `{ status: \\'success\\', response: { url: \\'\\' } }`');\n return false;\n }\n if (res.status === 'success' && (!res.response || (!res.response.url && !res.response.files))) {\n log.warn('Upload', '`requestMethodResponse.response.url` or `requestMethodResponse.response.files` is required if `status` is `success`');\n }\n return true;\n}\n\n/**\n * 一次上传请求的返回结果\n */\nexport function uploadOneRequest(params: HandleUploadParams): Promise {\n const { action, toUploadFiles, requestMethod } = params;\n return new Promise((resolve) => {\n if (!action && !requestMethod) {\n log.error('Upload', 'one of action and requestMethod must be exist.');\n resolve({});\n return;\n }\n if (!toUploadFiles || !toUploadFiles.length) {\n log.warn('Upload', 'No files need to be uploaded');\n resolve({});\n return;\n }\n toUploadFiles.forEach((file) => {\n file.status = 'progress';\n });\n // 自定义上传方法\n if (requestMethod) {\n requestMethod(params.multiple ? toUploadFiles : toUploadFiles[0]).then((res) => {\n if (!handleRequestMethodResponse(res)) {\n resolve({});\n return;\n }\n let response = (res.response || {}) as ResponseType;\n if (isFunction(params.formatResponse)) {\n response = params.formatResponse(response, { file: toUploadFiles[0], currentFiles: toUploadFiles });\n }\n if (res.status === 'fail') {\n response.error = res.error || response.error;\n }\n let resultFiles: UploadFile[] = [];\n if (res.status === 'success' && response.files) {\n // 一个请求上传并返回多个文件\n resultFiles = response.files.map((file: UploadFile) => {\n const fileInfo = toUploadFiles.find((toFile) => (\n (file.name && toFile.name === file.name) || (file.raw && toFile.raw === file.raw)\n ));\n return {\n ...fileInfo,\n ...file,\n status: res.status,\n response,\n };\n });\n } else {\n // 一个请求上传并返回一个文件\n toUploadFiles.forEach((file) => {\n file.status = res.status;\n file.response = response;\n file.url = response.url;\n file.percent = res.status === 'success' ? 100 : 0;\n // 如果上传请求返回结果没有上传日期,则使用电脑当前日期显示\n file.uploadTime = response?.uploadTime || getCurrentDate();\n });\n resultFiles = toUploadFiles;\n }\n const result = {\n response,\n file: resultFiles[0],\n files: resultFiles,\n };\n if (res.status === 'success') {\n params.onResponseSuccess?.(result);\n } else if (res.status === 'fail') {\n params.onResponseError?.(result);\n }\n resolve({\n status: res.status,\n data: result,\n });\n });\n } else {\n const xhrReq = xhr({\n action: params.action,\n files: params.toUploadFiles,\n useMockProgress: params.useMockProgress,\n mockProgressDuration: params.mockProgressDuration,\n onError: (p: ErrorContext) => {\n const r = handleError({ ...p, formatResponse: params.formatResponse });\n params.onResponseError?.(r);\n resolve({ status: 'fail', data: r });\n },\n onProgress: params.onResponseProgress,\n onSuccess: (p: SuccessContext) => {\n const { formatResponse } = params;\n let res = p.response;\n if (isFunction(formatResponse)) {\n res = formatResponse(p.response, {\n file: p.file,\n currentFiles: p.files,\n });\n }\n if (res.error) {\n const r = handleError({ ...p, response: res });\n params.onResponseError?.(r);\n resolve({ status: 'fail', data: r });\n } else {\n p.file.response = res;\n p.files[0].response = res;\n const r = handleSuccess({ ...p, response: res });\n params.onResponseSuccess?.(r);\n resolve({ status: 'success', data: r });\n }\n },\n formatRequest: params.formatRequest,\n data: params.data,\n name: params.name,\n headers: params.headers,\n withCredentials: params.withCredentials,\n method: params.method,\n });\n params.setXhrObject?.({\n files: params.toUploadFiles,\n xhrReq,\n });\n }\n });\n}\n\nfunction updateUploadedFiles(uploadFiles: UploadFile[], resultFiles: UploadFile[]) {\n const existFiles = uploadFiles.filter((t) => t.url);\n const newFiles = existFiles;\n for (let i = 0, len = resultFiles.length; i < len; i++) {\n const file = resultFiles[i];\n const index = uploadFiles.findIndex((item) => (\n (item.raw && item.raw === file.raw) || (item.name && item.name === file.name)\n ));\n const tmpFile = index >= 0 ? { ...uploadFiles[index], ...file } : file;\n newFiles.push(tmpFile);\n }\n return newFiles;\n}\n\n/**\n * 可能单个文件上传,也可能批量文件一次性上传\n * 返回上传成功或上传失败的文件列表\n */\nexport function upload(params: HandleUploadParams):\nPromise {\n const { uploadAllFilesInOneRequest, toUploadFiles, uploadedFiles, isBatchUpload } = params;\n // 一批文件上传,部分文件失败,重新上传失败的文件\n const thisUploadFiles = toUploadFiles.filter((t) => (\n !t.response || (t.response && !t.response.error)\n ));\n return new Promise((resolve) => {\n // 所有文件一次性上传\n if (uploadAllFilesInOneRequest || !params.multiple) {\n uploadOneRequest(params).then((r) => {\n if (r.status === 'success') {\n r.data.files = isBatchUpload || !params.multiple\n ? r.data.files\n : updateUploadedFiles(uploadedFiles, r.data.files);\n }\n const failedFiles = r.status === 'fail' ? r.data.files : [];\n resolve({ ...r, failedFiles });\n });\n return;\n }\n // 一个文件一个文件上传\n const list = thisUploadFiles.map((file) => (\n uploadOneRequest({ ...params, toUploadFiles: [file] })\n ));\n Promise.all(list).then((arr) => {\n const files: UploadFile[] = [];\n const failedFiles: UploadFile[] = [];\n arr.forEach((one) => {\n if (one.status === 'success') {\n files.push(one.data.files[0]);\n } else if (one.status === 'fail') {\n failedFiles.push(one.data.files[0]);\n }\n });\n const tFiles = params.autoUpload\n ? uploadedFiles.concat(files)\n : uploadedFiles;\n const newFiles = isBatchUpload || !params.multiple ? files : tFiles;\n resolve({\n status: files.length ? 'success' : 'fail',\n data: {\n files: newFiles,\n },\n // 上传失败的文件,需等待继续上传\n failedFiles,\n list: arr,\n });\n });\n });\n}\n\nexport function formatToUploadFile(\n files: File[],\n format: FileChangeParams['format'],\n status: UploadFile['status'] = undefined,\n percent = 0,\n) {\n return files.map((fileRaw: File) => {\n let file: UploadFile = fileRaw;\n if (isFunction(format)) {\n file = format(fileRaw);\n }\n const uploadFile: UploadFile = {\n raw: fileRaw,\n lastModified: fileRaw.lastModified,\n name: fileRaw.name,\n size: fileRaw.size,\n type: fileRaw.type,\n percent,\n status,\n ...file,\n };\n return uploadFile;\n });\n}\n\nexport function validateFile(\n params: FileChangeParams\n): Promise {\n const { files, uploadValue, max, allowUploadDuplicateFile } = params;\n return new Promise((resolve) => {\n // 是否允许相同的文件名存在\n let tmpFiles = files.filter((file) => {\n const sameNameFile = uploadValue.find((t) => t.name === file.name);\n return allowUploadDuplicateFile || !sameNameFile;\n });\n\n let hasSameNameFile = false;\n if (tmpFiles.length < files.length) {\n hasSameNameFile = true;\n }\n if (!tmpFiles.length) {\n const tFiles = formatToUploadFile(files, params.format, params.autoUpload ? 'progress' : 'waiting');\n resolve({ hasSameNameFile, file: tFiles?.[0], files: tFiles, validateResult: { type: 'FILTER_FILE_SAME_NAME' } });\n return;\n }\n // 上传文件数量限制\n let lengthOverLimit = false;\n if (max && tmpFiles.length && !params.isBatchUpload) {\n const tmpFilesLenToBeAdded = tmpFiles.length;\n tmpFiles = tmpFiles.slice(0, max - uploadValue.length);\n if (tmpFilesLenToBeAdded + uploadValue.length > max) {\n lengthOverLimit = true;\n }\n }\n\n // 格式化文件对象\n const formattedFiles = formatToUploadFile(tmpFiles, params.format, params.autoUpload ? 'progress' : 'waiting');\n\n // 全量文件,一波校验,整体上传 或 终止上传\n let allFileValidatePromise;\n if (params.beforeAllFilesUpload) {\n const r = params.beforeAllFilesUpload?.(formattedFiles);\n allFileValidatePromise = r instanceof Promise ? r : new Promise((resolve) => resolve(r));\n }\n\n // 单文件合法性校验,一个文件校验不通过其他文件可继续上传\n const promiseList = formattedFiles.map((file: UploadFile) => new Promise((resolve) => {\n handleBeforeUpload(\n file,\n { beforeUpload: params.beforeUpload, sizeLimit: params.sizeLimit },\n ).then(([sizeResult, customResult]) => {\n if (sizeResult) {\n resolve({ file, validateResult: { type: 'FILE_OVER_SIZE_LIMIT', extra: sizeResult } });\n } else if (customResult === false) {\n resolve({ file, validateResult: { type: 'CUSTOM_BEFORE_UPLOAD' } });\n }\n resolve({ file });\n });\n }));\n Promise.all([allFileValidatePromise].concat(promiseList)).then((results) => {\n const [allFilesResult, ...others] = results;\n // 如果 beforeAllFilesUpload 校验未通过\n if (allFilesResult === false) {\n resolve({\n lengthOverLimit,\n hasSameNameFile,\n validateResult: { type: 'BEFORE_ALL_FILES_UPLOAD' },\n files: formattedFiles,\n });\n } else {\n resolve({\n lengthOverLimit,\n hasSameNameFile,\n fileValidateList: others,\n files: formattedFiles,\n });\n }\n });\n });\n}\n\nexport function getFilesAndErrors(fileValidateList: FileChangeReturn[], getError: (p: {[key: string]: any }) => string) {\n const sizeLimitErrors: FileChangeReturn[] = [];\n const beforeUploadErrorFiles: UploadFile[] = [];\n const toFiles: UploadFile[] = [];\n fileValidateList.forEach((oneFile) => {\n if (oneFile.validateResult?.type === 'CUSTOM_BEFORE_UPLOAD') {\n beforeUploadErrorFiles.push(oneFile.file);\n return;\n }\n if (oneFile.validateResult?.type === 'FILE_OVER_SIZE_LIMIT') {\n if (!oneFile.file.response) {\n oneFile.file.response = {};\n }\n oneFile.file.response.error = oneFile.file.response.error\n || getError(oneFile.validateResult.extra);\n sizeLimitErrors.push(oneFile);\n return;\n }\n toFiles.push(oneFile.file);\n });\n\n return { sizeLimitErrors, beforeUploadErrorFiles, toFiles };\n}\n\n/**\n * 获取文件上传触发元素文本 在全局配置中的字段\n */\nexport function getTriggerTextField(p: {\n status: 'success' | 'fail' | 'progress' | 'waiting',\n multiple: boolean,\n autoUpload: boolean;\n isBatchUpload: boolean;\n}): keyof UploadTriggerUploadText {\n if (p.isBatchUpload && p.status) return 'reupload';\n if (p.status === 'fail') return 'reupload';\n if (p.status === 'progress') return 'uploading';\n if (p.status === 'success' || (!p.autoUpload && p.status === 'waiting')) {\n return p.multiple ? 'continueUpload' : 'reupload';\n }\n return 'fileInput';\n}\n\nexport interface GetDisplayFilesParams {\n multiple: boolean;\n autoUpload: boolean;\n isBatchUpload: boolean;\n uploadValue: UploadFile[];\n toUploadFiles: UploadFile[];\n}\n\n/**\n * 获取文件列表显示\n */\nexport function getDisplayFiles(params: GetDisplayFilesParams) {\n const { multiple, uploadValue, toUploadFiles, autoUpload } = params;\n const waitingUploadFiles = autoUpload\n ? toUploadFiles\n : toUploadFiles.filter((file) => file.status !== 'success');\n if (multiple && !params.isBatchUpload) {\n if (!autoUpload) return uploadValue;\n return (waitingUploadFiles.length ? uploadValue.concat(waitingUploadFiles) : uploadValue) || [];\n }\n return (waitingUploadFiles.length ? waitingUploadFiles : uploadValue) || [];\n}\n","import { isFunction } from 'lodash-es';\n/* eslint-disable no-param-reassign */\nimport log from '../log/log';\nimport { UploadFile, XhrOptions } from './types';\nimport { getCurrentDate } from './utils';\n\nexport default function xhr({\n method = 'POST',\n action,\n withCredentials = false,\n headers = {},\n data = {},\n file,\n files = [],\n name = 'file',\n useMockProgress = true,\n mockProgressDuration = 300,\n formatRequest,\n onError,\n onProgress,\n onSuccess,\n}: XhrOptions) {\n // support files\n const innerFiles: UploadFile[] = files || [];\n let percent = 0;\n\n // eslint-disable-next-line no-shadow\n const xhr = new XMLHttpRequest();\n if (withCredentials) {\n xhr.withCredentials = true;\n }\n\n let timer1: NodeJS.Timeout;\n let timer2: NodeJS.Timeout;\n if (useMockProgress && files[0]?.status === 'progress') {\n // 超过 500 毫秒再开启虚拟进度\n const timer2 = setTimeout(() => {\n // 只有真实进度一直不存在时才需要模拟进度\n timer1 = setInterval(() => {\n if (percent + 10 < 100) {\n percent = Math.max(percent + 10, percent);\n if (files[0] && percent !== files[0].percent) {\n files[0].percent = percent;\n onProgress({\n percent,\n file: file || innerFiles[0],\n files: innerFiles.map((file) => ({ ...file, percent })),\n type: 'mock',\n XMLHttpRequest: xhr,\n });\n }\n } else {\n clearInterval(timer1);\n }\n }, mockProgressDuration);\n clearTimeout(timer2);\n }, mockProgressDuration);\n }\n\n let requestData: { [key: string]: any } = {};\n if (data) {\n const extraData = isFunction(data) ? data(innerFiles) : data;\n Object.assign(requestData, extraData);\n }\n innerFiles.forEach((file, index) => {\n const fileField = innerFiles.length > 1 ? `${name}[${index}]` : name;\n requestData[fileField] = file.raw;\n });\n if (innerFiles.length === 1) {\n requestData[name] = innerFiles[0].raw;\n } else {\n requestData[name] = innerFiles.map((file) => file.raw);\n }\n requestData.length = innerFiles.length;\n\n if (formatRequest) {\n requestData = formatRequest(requestData);\n }\n\n // set send data\n const formData = new FormData();\n Object.keys(requestData).forEach((key) => {\n formData.append(key, requestData[key]);\n });\n\n xhr.open(method, action, true);\n // custom request headers\n Object.keys(headers).forEach((key) => {\n xhr.setRequestHeader(key, headers[key]);\n });\n\n xhr.onerror = (event: ProgressEvent) => {\n onError({ event, file, files: innerFiles, XMLHttpRequest: xhr, });\n clearInterval(timer1);\n clearTimeout(timer2);\n };\n\n xhr.ontimeout = (event) => {\n onError({ event, file, files: innerFiles, XMLHttpRequest: xhr, });\n };\n\n if (xhr.upload) {\n xhr.upload.onprogress = (event: ProgressEvent) => {\n let realPercent = 0;\n if (event.total > 0) {\n realPercent = Math.round((event.loaded / event.total) * 100);\n }\n percent = Math.max(realPercent, percent);\n if (percent !== realPercent && innerFiles[0]?.percent !== percent) {\n const progressFiles = innerFiles.map((item) => ({ ...item, percent }));\n onProgress({\n event,\n percent,\n file: file || progressFiles[0],\n files: progressFiles,\n type: 'real',\n XMLHttpRequest: xhr,\n });\n }\n };\n }\n\n // eslint-disable-next-line consistent-return\n xhr.onload = (event: ProgressEvent) => {\n let response: { [key: string]: any } = {};\n response.XMLHttpRequest = xhr;\n const isFail = xhr.status < 200 || xhr.status >= 300;\n if (isFail) {\n return onError({\n event,\n file,\n files: innerFiles,\n response,\n XMLHttpRequest: xhr,\n });\n }\n const text = xhr.responseText || xhr.response;\n try {\n response = JSON.parse(text);\n } catch (e) {\n response = text;\n log.error('Upload', 'response does not a valid json');\n }\n clearInterval(timer1);\n clearTimeout(timer2);\n innerFiles.forEach((file) => {\n file.percent = 100;\n file.status = 'success';\n // 如果上传请求返回结果没有上传日期,则使用电脑当前日期显示\n file.uploadTime = response?.uploadTime || getCurrentDate();\n });\n if (typeof response === 'object') {\n response.XMLHttpRequest = xhr;\n }\n onSuccess({\n event,\n file: file || innerFiles[0],\n files: [...innerFiles],\n XMLHttpRequest: xhr,\n response,\n });\n };\n\n xhr.send(formData);\n // @ts-ignore\n xhr.upload.requestParams = requestData;\n // @ts-ignore\n xhr.upload.requestHeaders = headers;\n\n return xhr;\n}\n","import { ref, computed, toRefs } from 'vue';\nimport { merge } from 'lodash-es';\nimport { SizeLimitObj, TdUploadProps, UploadChangeContext, UploadFile, UploadRemoveContext } from '../type';\nimport {\n getFilesAndErrors,\n validateFile,\n upload,\n getTriggerTextField,\n getDisplayFiles,\n formatToUploadFile,\n} from '@tdesign/common-js/upload/main';\nimport { getFileList } from '@tdesign/common-js/upload/utils';\nimport { useVModel, useConfig } from '@tdesign/shared-hooks';\nimport { InnerProgressContext, OnResponseErrorContext, SuccessContext } from '@tdesign/common-js/upload/types';\n\nexport type ValidateParams = Parameters[0];\n\n/**\n * 上传组件全部逻辑,方便脱离 UI,自定义 UI 组件\n */\nexport default function useUpload(props: TdUploadProps) {\n const inputRef = ref();\n // TODO: Form 表单控制上传组件是否禁用\n const { disabled, autoUpload, isBatchUpload, multiple, files, modelValue, defaultFiles } = toRefs(props);\n const { globalConfig, t, classPrefix } = useConfig('upload');\n const [uploadValue, setUploadValue] = useVModel(files, modelValue, defaultFiles.value, props.onChange, 'files');\n const xhrReq = ref<{ files: UploadFile[]; xhrReq: XMLHttpRequest }[]>([]);\n const toUploadFiles = ref([]);\n const sizeOverLimitMessage = ref('');\n\n const locale = computed(() => merge({}, globalConfig.value, props.locale));\n\n const tipsClasses = `${classPrefix.value}-upload__tips ${classPrefix.value}-size-s`;\n const errorClasses = [tipsClasses].concat(`${classPrefix.value}-upload__tips-error`);\n const placeholderClass = `${classPrefix.value}-upload__placeholder`;\n\n // 单文件场景:触发元素文本\n const triggerUploadText = computed(() => {\n const field = getTriggerTextField({\n isBatchUpload: isBatchUpload.value,\n multiple: multiple.value,\n status: uploadValue.value?.[0]?.status,\n autoUpload: autoUpload.value,\n }) as keyof typeof locale.value.triggerUploadText;\n return locale.value.triggerUploadText[field];\n });\n\n const uploading = ref(false);\n\n // 文件列表显示的内容(自动上传和非自动上传有所不同)\n const displayFiles = computed(() => {\n return getDisplayFiles({\n multiple: props.multiple,\n toUploadFiles: toUploadFiles.value,\n uploadValue: uploadValue.value,\n autoUpload: autoUpload.value,\n isBatchUpload: isBatchUpload.value,\n });\n });\n\n const uploadFilePercent = (params: { file: UploadFile; percent: number }) => {\n const { file, percent } = params;\n const operationUploadFiles = autoUpload.value ? toUploadFiles : uploadValue;\n const index = operationUploadFiles.value.findIndex((item) => file.raw === item.raw);\n operationUploadFiles.value[index] = { ...operationUploadFiles.value[index], percent };\n };\n\n const updateFilesProgress = () => {\n if (props.autoUpload) {\n toUploadFiles.value = [...toUploadFiles.value];\n }\n };\n\n const onResponseError = (p: OnResponseErrorContext) => {\n if (!p || !p.files || !p.files[0]) return;\n const { response, event, files } = p;\n updateFilesProgress();\n props.onOneFileFail?.({\n e: event,\n file: files?.[0],\n currentFiles: files,\n failedFiles: files,\n response,\n });\n // 单选或多文件替换,需要清空上一次上传成功的文件\n if (!props.multiple || props.isBatchUpload) {\n setUploadValue([], {\n trigger: 'progress-fail',\n e: p.event,\n file: p.files[0],\n });\n }\n };\n\n // 多文件上传场景,单个文件进度\n const onResponseProgress = (p: InnerProgressContext) => {\n updateFilesProgress();\n props.onProgress?.({\n e: p.event,\n file: p.file,\n currentFiles: p.files,\n percent: p.percent,\n type: p.type,\n XMLHttpRequest: p.XMLHttpRequest,\n });\n };\n\n // 多文件上传场景,单个文件上传成功后\n const onResponseSuccess = (p: SuccessContext) => {\n // 只有多个上传请求同时触发时才需 onOneFileSuccess\n if (props.multiple && !props.uploadAllFilesInOneRequest) {\n updateFilesProgress();\n props.onOneFileSuccess?.({\n e: p.event,\n file: p.files[0],\n response: p.response,\n });\n }\n };\n\n function getSizeLimitError(sizeLimitObj: SizeLimitObj) {\n const limit = sizeLimitObj;\n return limit.message\n ? t(limit.message, { sizeLimit: limit.size })\n : `${t(locale.value.sizeLimitMessage, { sizeLimit: limit.size })} ${limit.unit}`;\n }\n\n const handleNotAutoUpload = (toFiles: UploadFile[]) => {\n const tmpFiles = props.multiple && !isBatchUpload.value ? uploadValue.value.concat(toFiles) : toFiles;\n if (!tmpFiles.length) return;\n setUploadValue(tmpFiles, {\n trigger: 'add',\n index: uploadValue.value.length,\n file: toFiles[0],\n files: toFiles,\n });\n toUploadFiles.value = [];\n };\n\n const onFileChange = (files: File[]) => {\n if (disabled.value) return;\n const params = { currentSelectedFiles: formatToUploadFile([...files], props.format) };\n props.onSelectChange?.([...files], params);\n validateFile({\n uploadValue: uploadValue.value,\n // @ts-ignore\n files: [...files],\n allowUploadDuplicateFile: props.allowUploadDuplicateFile,\n max: props.multiple ? props.max : 0,\n sizeLimit: props.sizeLimit,\n isBatchUpload: isBatchUpload.value,\n autoUpload: autoUpload.value,\n format: props.format,\n beforeUpload: props.beforeUpload,\n beforeAllFilesUpload: props.beforeAllFilesUpload,\n }).then((args) => {\n // 自定义全文件校验不通过\n if (args.validateResult?.type === 'BEFORE_ALL_FILES_UPLOAD') {\n const params: ValidateParams = { type: 'BEFORE_ALL_FILES_UPLOAD', files: args.files };\n props.onValidate?.(params);\n return;\n }\n // 文件数量校验不通过\n if (args.lengthOverLimit) {\n const params: ValidateParams = { type: 'FILES_OVER_LENGTH_LIMIT', files: args.files };\n props.onValidate?.(params);\n if (!args.files.length) return;\n }\n // 过滤相同的文件名\n if (args.hasSameNameFile) {\n const params: ValidateParams = { type: 'FILTER_FILE_SAME_NAME', files: args.files };\n props.onValidate?.(params);\n }\n // 文件大小校验结果处理(已过滤超出限制的文件)\n if (args.fileValidateList instanceof Array) {\n const { sizeLimitErrors, beforeUploadErrorFiles, toFiles } = getFilesAndErrors(\n args.fileValidateList,\n getSizeLimitError,\n );\n const tmpWaitingFiles = autoUpload.value ? toFiles : toUploadFiles.value.concat(toFiles);\n toUploadFiles.value = tmpWaitingFiles;\n props.onWaitingUploadFilesChange?.({ files: tmpWaitingFiles, trigger: 'validate' });\n // 文件大小处理\n if (sizeLimitErrors[0]) {\n sizeOverLimitMessage.value = sizeLimitErrors[0].file.response.error;\n props.onValidate?.({ type: 'FILE_OVER_SIZE_LIMIT', files: sizeLimitErrors.map((t) => t.file) });\n } else {\n sizeOverLimitMessage.value = '';\n // 自定义方法 beforeUpload 拦截的文件\n if (beforeUploadErrorFiles.length) {\n const params: ValidateParams = { type: 'CUSTOM_BEFORE_UPLOAD', files: beforeUploadErrorFiles };\n props.onValidate?.(params);\n }\n }\n // 如果是自动上传\n if (autoUpload.value) {\n uploadFiles(tmpWaitingFiles);\n } else {\n handleNotAutoUpload(tmpWaitingFiles);\n }\n }\n });\n\n // 清空 元素的文件,避免出现重复文件无法选择的情况\n inputRef.value.value = null;\n };\n\n const onNormalFileChange = (e: InputEvent) => {\n const fileList = getFileList((e.target as HTMLInputElement).files);\n onFileChange?.(fileList);\n };\n\n function onDragFileChange(files: File[]) {\n onFileChange?.(files);\n }\n\n function onPasteFileChange(e: ClipboardEvent) {\n onFileChange?.([...e.clipboardData.files]);\n }\n\n /**\n * 上传文件。对外暴露方法,修改时需谨慎\n * @param toFiles 本地上传的文件列表\n */\n function uploadFiles(toFiles?: UploadFile[]) {\n const notUploadedFiles = uploadValue.value.filter((t) => t.status !== 'success');\n const files = autoUpload.value ? toFiles || toUploadFiles.value : notUploadedFiles;\n if (!files || !files.length) return;\n uploading.value = true;\n xhrReq.value = [];\n upload({\n action: props.action,\n headers: props.headers,\n method: props.method,\n name: props.name,\n withCredentials: props.withCredentials,\n uploadedFiles: uploadValue.value,\n toUploadFiles: files,\n multiple: props.multiple,\n isBatchUpload: isBatchUpload.value,\n autoUpload: props.autoUpload,\n uploadAllFilesInOneRequest: props.uploadAllFilesInOneRequest,\n useMockProgress: props.useMockProgress,\n data: props.data,\n mockProgressDuration: props.mockProgressDuration,\n requestMethod: props.requestMethod,\n formatRequest: props.formatRequest,\n formatResponse: props.formatResponse,\n onResponseProgress,\n onResponseSuccess,\n onResponseError,\n setXhrObject: (xhr) => {\n if (xhr.files[0]?.raw && xhrReq.value.find((item) => item.files[0]?.raw === xhr.files[0].raw)) return;\n xhrReq.value = xhrReq.value.concat(xhr);\n },\n }).then(\n // 多文件场景时,全量文件完成后\n ({ status, data, list, failedFiles }) => {\n uploading.value = false;\n if (status === 'success') {\n setUploadValue([...data.files], {\n trigger: 'add',\n file: data.files[0],\n });\n xhrReq.value = [];\n props.onSuccess?.({\n fileList: data.files,\n currentFiles: files,\n file: files[0],\n // 只有全部请求完成后,才会存在该字段\n results: list?.map((t) => t.data),\n // 单文件单请求有一个 response,多文件多请求有多个 response\n response: data.response || list.map((t) => t.data.response),\n XMLHttpRequest: data.XMLHttpRequest,\n });\n } else if (failedFiles?.[0]) {\n props.onFail?.({\n e: data.event,\n file: failedFiles[0],\n failedFiles,\n currentFiles: files,\n response: data.response,\n XMLHttpRequest: data.XMLHttpRequest,\n });\n }\n\n // 非自动上传,文件都在 uploadValue,不涉及 toUploadFiles\n if (autoUpload.value) {\n toUploadFiles.value = failedFiles;\n props.onWaitingUploadFilesChange?.({ files: failedFiles, trigger: 'uploaded' });\n }\n },\n );\n }\n\n function onInnerRemove(p: UploadRemoveContext) {\n sizeOverLimitMessage.value = '';\n p.e.stopPropagation?.();\n const changePrams: UploadChangeContext = {\n e: p.e,\n trigger: 'remove',\n index: p.index,\n file: p.file,\n };\n // remove all files for batchUpload\n if (props.isBatchUpload || !props.multiple) {\n toUploadFiles.value = [];\n props.onWaitingUploadFilesChange?.({ files: [], trigger: 'remove' });\n setUploadValue([], changePrams);\n } else if (!props.autoUpload) {\n uploadValue.value.splice(p.index, 1);\n setUploadValue([...uploadValue.value], changePrams);\n } else {\n // autoUpload 场景下, p.index < uploadValue.length 表示移除已经上传成功的文件;反之表示移除待上传列表文件\n // eslint-disable-next-line\n if (p.index < uploadValue.value.length) {\n uploadValue.value.splice(p.index, 1);\n setUploadValue([...uploadValue.value], changePrams);\n } else {\n toUploadFiles.value.splice(p.index - uploadValue.value.length, 1);\n toUploadFiles.value = [...toUploadFiles.value];\n props.onWaitingUploadFilesChange?.({ files: [...toUploadFiles.value], trigger: 'remove' });\n }\n }\n props.onRemove?.(p);\n }\n\n const triggerUpload = (e?: MouseEvent) => {\n if (disabled.value || !inputRef.value) return;\n e?.stopPropagation?.();\n (inputRef.value as HTMLInputElement).click();\n };\n\n const cancelUpload = (context?: { file?: UploadFile; e?: MouseEvent }) => {\n xhrReq.value?.forEach((item) => {\n item.xhrReq?.abort();\n });\n uploading.value = false;\n\n // autoUpload do not need to reset to waiting state\n if (autoUpload.value) {\n toUploadFiles.value = [];\n } else {\n setUploadValue(\n uploadValue.value.map((item) => {\n if (item.status !== 'success') {\n return { ...item, status: 'waiting' };\n }\n return item;\n }),\n { trigger: 'abort' },\n );\n }\n\n if (context?.file && !autoUpload.value) {\n onInnerRemove?.({ file: context.file, e: context.e, index: 0 });\n }\n\n props.onCancelUpload?.();\n };\n\n return {\n t,\n locale,\n classPrefix,\n triggerUploadText,\n toUploadFiles,\n uploadValue,\n displayFiles,\n sizeOverLimitMessage,\n uploading,\n tipsClasses,\n errorClasses,\n placeholderClass,\n inputRef,\n disabled,\n xhrReq,\n uploadFilePercent,\n uploadFiles,\n onFileChange,\n onNormalFileChange,\n onDragFileChange,\n onPasteFileChange,\n onInnerRemove,\n triggerUpload,\n cancelUpload,\n };\n}\n","import { computed, defineComponent } from 'vue';\nimport { UploadIcon as TdUploadIcon } from 'tdesign-icons-vue-next';\nimport props from './props';\nimport NormalFile from './components/normal-file';\nimport DraggerFile from './components/dragger-file';\nimport ImageCard from './components/image-card';\nimport MultipleFlowList from './components/multiple-flow-list';\nimport Button from '../button';\nimport { CommonDisplayFileProps, UploadProps } from './types';\nimport CustomFile from './components/custom-file';\n\nimport { UploadDragEvents } from './hooks/useDrag';\nimport useUpload from './hooks/useUpload';\nimport { useContent, useTNodeJSX, useDisabled, useGlobalIcon } from '@tdesign/shared-hooks';\n\nexport default defineComponent({\n name: 'TUpload',\n props,\n setup(props: UploadProps, { slots, expose }) {\n const renderContent = useContent();\n const renderTNodeJSX = useTNodeJSX();\n const {\n locale,\n classPrefix,\n triggerUploadText,\n toUploadFiles,\n displayFiles,\n uploadValue,\n sizeOverLimitMessage,\n uploading,\n tipsClasses,\n errorClasses,\n placeholderClass,\n inputRef,\n onInnerRemove,\n uploadFiles,\n onNormalFileChange,\n onDragFileChange,\n onPasteFileChange,\n triggerUpload,\n cancelUpload,\n uploadFilePercent,\n } = useUpload(props);\n const disabled = useDisabled();\n\n const { UploadIcon } = useGlobalIcon({\n UploadIcon: TdUploadIcon,\n });\n\n const triggerUploadButtonText = computed(\n () => props.triggerButtonProps?.default || props.triggerButtonProps?.content || triggerUploadText.value,\n );\n\n expose({\n upload: inputRef.value,\n uploading,\n triggerUpload,\n uploadFiles,\n cancelUpload,\n uploadFilePercent,\n });\n\n const renderTrigger = () => {\n const getDefaultTrigger = () => {\n if (props.theme === 'file-input') {\n return (\n \n );\n }\n return (\n \n );\n };\n return (\n renderContent('default', 'trigger', {\n params: { dragActive: false, files: uploadValue.value },\n }) || getDefaultTrigger()\n );\n };\n\n const commonDisplayFileProps = computed(() => ({\n accept: props.accept,\n files: uploadValue.value,\n toUploadFiles: toUploadFiles.value,\n displayFiles: displayFiles.value,\n theme: props.theme,\n placeholder: props.placeholder,\n disabled: disabled.value,\n tips: props.tips,\n status: props.status,\n sizeOverLimitMessage: sizeOverLimitMessage.value,\n uploading: uploading.value,\n classPrefix: classPrefix.value,\n tipsClasses,\n errorClasses,\n placeholderClass,\n locale: locale.value,\n autoUpload: props.autoUpload,\n abridgeName: props.abridgeName,\n showUploadProgress: props.showUploadProgress,\n fileListDisplay: props.fileListDisplay,\n onRemove: onInnerRemove,\n uploadPastedFiles: props.uploadPastedFiles,\n onPasteFileChange: onPasteFileChange,\n imageViewerProps: props.imageViewerProps,\n }));\n\n const dragProps: UploadDragEvents = {\n onDragFileChange,\n onDragenter: props.onDragenter,\n onDragleave: props.onDragleave,\n onDrop: props.onDrop,\n };\n\n const uploadClasses = computed(() => [\n `${classPrefix.value}-upload`,\n {\n [`${classPrefix.value}-upload--theme-${props.theme}`]: props.theme === 'file-input',\n },\n ]);\n\n const getNormalFileNode = () => (\n \n
    \n {renderTrigger()}\n
    \n \n );\n\n const getSingleFileDraggerUploadNode = () => (\n \n );\n\n const getImageCardUploadNode = () => (\n \n );\n\n const getFlowListNode = () => (\n \n
    \n {!props.draggable && renderTrigger()}\n
    \n \n );\n\n const getCustomFile = () => (\n \n {renderTrigger()}\n \n );\n\n return () => (\n
    \n \n {['file', 'file-input'].includes(props.theme) && !props.draggable && getNormalFileNode()}\n {['file', 'image'].includes(props.theme) && props.draggable && getSingleFileDraggerUploadNode()}\n {props.theme === 'image' && !props.draggable && getImageCardUploadNode()}\n {['image-flow', 'file-flow'].includes(props.theme) && getFlowListNode()}\n {props.theme === 'custom' && getCustomFile()}\n\n {Boolean(props.tips || slots.tips) && (\n \n {renderTNodeJSX('tips')}\n \n )}\n {sizeOverLimitMessage.value && {sizeOverLimitMessage.value}}\n
    \n );\n },\n});\n","import _Upload from './upload';\nimport { withInstall } from '@tdesign/shared-utils';\n\nimport './style';\n\nexport * from './types';\nexport const Upload = withInstall(_Upload);\nexport default Upload;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdConfigProviderProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 全局配置 */\n globalConfig: {\n type: Object as PropType,\n },\n};\n","import { withInstall } from '@tdesign/shared-utils';\nimport _ConfigProvider from './config-provider';\nimport { TdConfigProviderProps } from './type';\n\nexport * from './type';\nexport type ConfigProviderProps = TdConfigProviderProps;\n\nexport const ConfigProvider = withInstall(_ConfigProvider);\nexport default ConfigProvider;\n","import { defineComponent } from 'vue';\nimport props from './props';\nimport { useTNodeJSX } from '@tdesign/shared-hooks';\nimport { provideConfig } from './hooks/useConfig';\n\nexport default defineComponent({\n name: 'TConfigProvider',\n props,\n setup(props) {\n provideConfig(props);\n\n const renderTNodeJSX = useTNodeJSX();\n\n return () => <>{renderTNodeJSX('default')};\n },\n});\n","import { App } from 'vue';\nimport * as components from './components';\n\nexport function install(app: App, config?: Record): void {\n Object.keys(components).forEach((key) => {\n if (/directive/i.test(key)) return;\n // @ts-ignore\n /plugin/i.test(key) ? app.use(components[key]) : app.use(components[key], config);\n });\n}\n\nexport * from './components';\nexport * from './common';\nexport default {\n install,\n version: typeof PKG_VERSION === 'undefined' ? '' : PKG_VERSION, // eslint-disable-line\n};\n"],"names":["_arrayLikeToArray","r","a","length","e","n","Array","_iterableToArray","Symbol","iterator","from","_unsupportedIterableToArray","arrayLikeToArray","t","toString","call","slice","constructor","name","test","_toConsumableArray","isArray","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","TypeError","nonIterableSpread","_typeof","o","prototype","toPropertyKey","i","toPrimitive","String","Number","_defineProperty","Object","defineProperty","value","enumerable","configurable","writable","freeGlobal","global","freeSelf","self","root","Function","objectProto","hasOwnProperty","nativeObjectToString","symToStringTag","toStringTag","undefined","baseGetTag","isOwn","tag","unmasked","result","getRawTag","objectToString","isObjectLike","isSymbol","arrayMap","array","iteratee","index","isArray$1","symbolProto","symbolToString","baseToString","reWhitespace","reTrimStart","baseTrim","string","charAt","trimmedEndIndex","replace","isObject","type","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","toNumber","other","valueOf","isBinary","INFINITY","toFinite","toInteger","remainder","identity","isFunction","uid","coreJsData","maskSrcKey","exec","keys","IE_PROTO","funcToString","toSource","func","reIsHostCtor","funcProto","reIsNative","RegExp","baseIsNative","getNative","object","key","getValue","WeakMap","objectCreate","create","baseCreate","proto","copyArray","source","nativeNow","Date","now","count","lastCalled","baseSetToString","setToString","stamp","remaining","arguments","apply","baseIsNaN","arrayIncludes","fromIndex","strictIndexOf","predicate","fromRight","baseFindIndex","baseIndexOf","reIsUint","isIndex","baseAssignValue","eq","assignValue","objValue","copyObject","props","customizer","isNew","newValue","nativeMax","Math","max","overRest","start","transform","args","otherArgs","thisArg","this","baseRest","isLength","isArrayLike","isIterateeCall","createAssigner","assigner","sources","guard","isPrototype","Ctor","baseIsArguments","propertyIsEnumerable","isArguments","freeExports","exports","nodeType","freeModule","module","Buffer","isBuffer","typedArrayTags","baseUnary","freeProcess","process","nodeUtil","types","require","binding","nodeIsTypedArray","isTypedArray","arrayLikeKeys","inherited","isArr","isArg","isBuff","isType","skipIndexes","baseTimes","push","overArg","arg","nativeKeys","baseKeys","baseKeysIn","nativeKeysIn","isProto","keysIn","reIsDeepProp","reIsPlainProp","isKey","nativeCreate","Hash","entries","clear","entry","set","assocIndexOf","__data__","size","has","get","data","splice","ListCache","pop","Map","getMapData","map","MapCache","hash","memoize","resolver","memoized","cache","Cache","rePropName","reEscapeChar","stringToPath","memoizeCapped","charCodeAt","match","number","quote","subString","stringToPath$1","castPath","toKey","baseGet","path","defaultValue","arrayPush","values","offset","spreadableSymbol","isConcatSpreadable","isFlattenable","baseFlatten","depth","isStrict","flatten","flatRest","getPrototype","getPrototypeOf","objectCtorString","isPlainObject","baseSlice","end","castSlice","reHasUnicode","hasUnicode","rsAstralRange","rsAstral","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsSeq","join","rsSymbol","reUnicode","stringToArray","unicodeToArray","split","asciiToArray","methodName","upperFirst$1","strSymbols","chr","trailing","deburrLetter","reLatin","reComboMark","reAsciiWord","reHasUnicodeWord","rsDingbatRange","rsLowerRange","rsUpperRange","rsBreakRange","rsMathOpRange","rsBreak","rsDigits","rsDingbat","rsLower","rsMisc","rsUpper","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","rsModifier","rsEmoji","reUnicodeWord","words","pattern","hasUnicodeWord","unicodeWords","asciiWords","reApos","createCompounder","callback","accumulator","initAccum","arrayReduce","deburr","camelCase","word","toLowerCase","upperFirst","camelCase$1","nativeCeil","ceil","chunk","resIndex","Stack","pairs","LARGE_ARRAY_SIZE","allocUnsafe","cloneBuffer","buffer","isDeep","copy","arrayFilter","stubArray","nativeGetSymbols","getOwnPropertySymbols","getSymbols","symbol","getSymbolsIn","baseGetAllKeys","keysFunc","symbolsFunc","getAllKeys","getAllKeysIn","DataView","Promise","Set","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","ArrayBuffer","resolve","ctorString","getTag$1","Uint8Array","cloneArrayBuffer","arrayBuffer","byteLength","reFlags","symbolValueOf","cloneTypedArray","typedArray","byteOffset","initCloneByTag","regexp","dataView","cloneDataView","lastIndex","initCloneObject","nodeIsMap","isMap","nodeIsSet","isSet","argsTag","funcTag","objectTag","cloneableTags","baseClone","bitmask","stack","isFlat","isFull","input","initCloneArray","isFunc","copySymbolsIn","baseAssignIn","copySymbols","baseAssign","stacked","forEach","subValue","add","arrayEach","cloneDeep","CLONE_DEEP_FLAG","SetCache","arraySome","cacheHas","equalArrays","equalFunc","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","mapToArray","setToArray","arrayTag","baseIsEqualDeep","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","message","convert","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","equalObjects","baseIsEqual","isStrictComparable","matchesStrictComparable","srcValue","baseMatches","matchData","getMatchData","noCustomizer","COMPARE_PARTIAL_FLAG","baseIsMatch","baseHasIn","hasIn","hasFunc","hasPath","baseProperty","property","basePropertyDeep","baseIteratee","baseFor","iterable","baseForOwn","baseEach","eachFunc","collection","createBaseEach","now$2","nativeMin","min","debounce","wait","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","invokeFunc","time","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","setTimeout","timeWaiting","remainingWait","debounced","isInvoking","leadingEdge","clearTimeout","cancel","flush","assignMergeValue","isArrayLikeObject","safeGet","baseMergeDeep","srcIndex","mergeFunc","isCommon","isTyped","baseMerge","mergeWith","_mergeWith","arrayIncludesWith","comparator","baseDifference","includes","valuesLength","outer","computed","valuesIndex","difference$1","last","reRegExpChar","reHasRegExpChar","escapeRegExp","baseFilter","baseGt","inRange","baseInRange","isString","castArrayLikeObject","intersection","arrays","mapped","caches","maxLength","Infinity","baseIntersection","intersection$1","isBoolean","nodeIsDate","isDate","isDate$3","isEmpty","isEqual","isNumber","isNil","isNull","isUndefined","kebabCase","kebabCase$1","baseLt","baseExtremum","current","merge","merge$2","baseUnset","parent","customOmitClone","omit","paths","omit$1","baseSet","nested","basePickBy","nativeFloor","floor","baseRepeat","asciiSize","stringSize","unicodeSize","padStart","chars","strLength","charsLength","createPadding","pick","basePick","pick$1","range","step","baseRange","createRange","range$1","remove","indexes","previous","basePullAt","sum","baseSum","throttle","createSet","baseUniq","seenIndex","uniqBy","idCounter","xorWith","baseXor","xorWith$1","_arrayWithHoles","_nonIterableRest","_slicedToArray","arrayWithHoles","l","u","f","next","done","iterableToArrayLimit","nonIterableRest","hrtime","performanceNowModule","getNanoSeconds","nodeLoadTime","moduleLoadTime","hr","upTime","loadTime","window","vendors","suffix","raf","caf","id","queue","frameDuration","_now","cp","_loop","cancelled","round","handle","rafModule","fn","polyfill","requestAnimationFrame","cancelAnimationFrame","easeInOutCubic","duration","change","isServer","on","document","addEventListener","element","event","handler","attachEvent","concat","off","removeEventListener","detachEvent","hasClass","el","cls","indexOf","Error","classList","contains","className","addClass","curClass","classes","j","clsName","removeClass","getAttach","node","triggerNode","attachNode","querySelector","HTMLElement","body","getScrollContainer","container","isWindow","obj","getScroll","target","isLeft","method","Document","documentElement","scrollTo","opt","_opt$container","_opt$duration","_opt$easing","easing","scrollTop","startTime","res","fnc","nextScrollTop","pageXOffset","isTextEllipsis","ele","_ele$clientWidth","clientWidth","_ele$scrollWidth","scrollWidth","requestSubmit","HTMLFormElement","submitter","createElement","hidden","appendChild","click","removeChild","elementInViewport","elm","rect","getBoundingClientRect","parentRect","top","left","bottom","right","innerHeight","innerWidth","getElmCssPropValue","propName","propValue","defaultView","getComputedStyle","getPropertyValue","isFixed","p","parentNode","nodeName","getWindowScroll","docElm","pageYOffset","scrollLeft","isCommentVNode","isVNode","Comment","withInstall","comp","alias","directive","componentPlugin","install","app","component","getDefaultNode","defaultNode","getChildren","content","childList","innerGetChildren","item","children","Fragment","getParams","params","useChildComponentSlots","instance","getCurrentInstance","childComponentName","slots","_slots","_slots$default","filter","_item$type$name","endsWith","useChildSlots","_slots$default2","flat","useFlatChildrenSlots","getFlatChildren","child","Teleport","some","vNode","hasOwn","val","getPropertyValFromObj","handleSlots","_instance$slots$camel","_instance$slots","_instance$slots$kebab","_instance$slots2","isEmptyNode","_node2$type","useTNodeJSX","renderParams","isSlotFirst","slotFirst","getSlotFirst","renderSlot","vProps","vnode","isPropExplicitlySet","_instance$type$props$","propsNode","Boolean","h","useTNodeDefault","renderTNodeJSX","useContent","name1","name2","toParams","node1","node2","s","c","d","$","y","M","weekdays","months","ordinal","m","v","z","utcOffset","abs","date","year","month","clone","w","D","ms","Q","g","S","_","O","b","locale","$L","utc","$u","x","$x","$offset","parse","$d","NaN","substring","UTC","init","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","isSame","startOf","endOf","isAfter","isBefore","$g","unix","getTime","toDate","$locale","weekStart","$set","daysInMonth","subtract","format","invalidDate","meridiem","monthsShort","weekdaysMin","weekdaysShort","getTimezoneOffset","diff","toJSON","toISOString","toUTCString","k","extend","$i","isDayjs","en","Ls","default","yearStart","formats","LT","LTS","L","LL","LLL","LLLL","ll","lll","llll","relativeTime","future","past","mm","hh","dd","MM","yy","require$$0","EAnimationType","defaultGlobalConfig","classPrefix","animation","include","exclude","attach","calendar","firstDayOfWeek","fillWithZero","controllerConfig","icon","autocomplete","dialog","closeOnEscKeydown","closeOnOverlayClick","confirmBtnTheme","info","warning","danger","success","popconfirm","table","expandIcon","sortIcon","filterIcon","treeExpandAndFoldIcon","hideSortTips","select","clearIcon","filterable","drawer","tree","folderIcon","datePicker","steps","checkIcon","errorIcon","closeIcon","form","requiredMark","empty","titleText","maintenance","fail","networkError","image","autoComplete","pagination","itemsPerPage","jumpTo","page","total","cascader","loadingText","placeholder","yearSelection","monthSelection","yearRadio","monthRadio","hideWeekend","showWeekend","today","thisMonth","week","cellMonth","transfer","title","timePicker","dayjsLocale","confirm","anteMeridiem","postMeridiem","loadingMoreText","filterInputPlaceholder","sortAscendingOperationText","sortCancelOperationText","sortDescendingOperationText","clearFilterResultButtonText","columnConfigButtonText","columnConfigTitleText","columnConfigDescriptionText","confirmText","cancelText","resetText","selectAllText","searchResultText","treeSelect","quarter","quarters","rangeSeparator","direction","dayAriaLabel","weekAbbreviation","yearAriaLabel","monthAriaLabel","selectTime","selectDate","nextYear","preYear","nextMonth","preMonth","preDecade","nextDecade","upload","sizeLimitMessage","cancelUploadText","triggerUploadText","fileInput","normal","reupload","continueUpload","delete","uploading","dragger","dragDropText","draggingText","clickAndDragText","file","fileNameText","fileSizeText","fileStatusText","fileOperationText","fileOperationDateText","progress","uploadingText","waitingText","failText","successText","errorMessage","url","required","whitespace","len","enum","idcard","telnumber","validator","boolean","colonText","list","alert","expandText","collapseText","anchor","copySuccessText","copyText","colorPicker","swatchColorTitle","recentColorTitle","clearConfirmText","singleColor","gradientColor","guide","finishButtonProps","theme","nextButtonProps","skipButtonProps","prevButtonProps","errorText","imageViewer","mirrorTipText","rotateTipText","originalSizeTipText","typography","copiedText","rate","rateText","descriptions","chat","stopBtnText","refreshTipText","copyTipText","likeTipText","dislikeTipText","copyCodeBtnText","copyCodeSuccessText","clearHistoryBtnText","copyTextSuccess","copyTextFail","confirmClearHistory","loadingEndText","uploadImageText","uploadAttachmentText","qrcode","expiredText","refreshText","scannedText","configProviderInjectKey","text","_len","_key","firstArg","secondArg","pluralParts","part","trim","pluralIndex","getPluralIndex","globalConfigCopy","ref","useConfig","componentName","componentLocale","injectGlobalConfig","inject","mergedGlobalConfig","globalConfig","assign","commonT","provideConfig","defaultData","injectConfig","provide","usePrefixClass","useCommonClassName","SIZE","small","medium","large","xs","xl","block","STATUS","loading","loadMore","disabled","focused","error","selected","active","checked","visible","expanded","indeterminate","useDefaultValue","onChange","propsName","_getCurrentInstance","emit","internalValue","_len2","_key2","useDestroyOnClose","refresh","onUpdated","useDisabled","context","currentInstance","componentDisabled","formDisabled","_context$beforeDisabl","_context$afterDisable","_formDisabled$disable","beforeDisabled","afterDisabled","traversalTabNavs","tabNavs","_step","_iterator","_createForOfIteratorHelper","itemNode","getAttribute","err","handleTarget","resultTarget","observe","marginBottom","IntersectionObserver","io","isIntersecting","unobserve","rootMargin","console","useGlobalIcon","tdIcon","resultIcon","_globalConfig$value","logSet","log","warn","msgContent","IMAGE_REGEXP","FILE_PDF_REGEXP","FILE_EXCEL_REGEXP","FILE_WORD_REGEXP","FILE_PPT_REGEXP","VIDEO_REGEXP","INPUT_FILE_MAP","SIZE_MAP","B","KB","MB","GB","getCurrentDate","needTime","abridgeName","inputName","leftCount","rightCount","leftLength","rightLength","isCn","escape","validateFileType","accept","fileType","fileName","tmpFileType","acceptList","oneRule","getFileList","files","fileList","useImagePreviewUrl","imgUrl","previewUrl","watch","_ref","_ref2","fileRaw","reader","FileReader","readAsDataURL","onload","_event$target","then","immediate","expand","ripple","fade","useListener","listener","onMounted","onBeforeUnmount","_defineProperties","_createClass","_classCallCheck","popupStackType","PopupManager","_this","popup","popupStack","zIndex","getNextZIndex","zIndexStack","popupType","_this$popupStack$popu","popupManager","usePopupManager","runOnMounted","open","close","readonly","isTopInteractivePopup","useReadonly","componentReadonly","formReadonly","_context$beforeReadon","_context$afterReadonl","_formReadonly$readonl","beforeReadonly","afterReadonly","useResizeObserver","ResizeObserver","containerObserver","cleanupObserver","disconnect","addObserver","setStyle","styles","style","useRipple","fixedRippleColor","keepAnimation","rippleContainer","keepRipple","keepExpand","_animationConfig$excl","_animationConfig$incl","animationConfig","keepFade","handleAddRipple","dom","rippleColor","_el$dataset","dataset","cssVariable","getRippleColor","button","elStyle","elBorder","borderWidth","border","width","offsetWidth","height","offsetHeight","position","borderRadius","pointerEvents","overflow","marginTop","marginLeft","transition","period","backgroundColor","opacity","elMap","initPosition","insertBefore","firstChild","handleClearRipple","onUnmounted","_el$value","useTeleport","to","innerTriggerNode","getElement","useVModel","modelValue","isVM","isVMP","_len3","_key3","useVirtualScrollNew","_params$value$data","_params$value$scroll","visibleData","translateY","scroll","rowHeight","scrollHeight","trHeightList","containerHeight","containerWidth","startAndEndIndex","tScroll","_scroll$isFixedRowHei","_scroll$fixedRows","bufferSize","isFixedRowHeight","threshold","fixedRows","isVirtualScroll","updateVisibleData","_getVisibleRangeConfi","_container$value$scro","_container$value","fixedStart","prevBufferHeightList","hiddenHeight","visibleStart","visibleEnd","totalHeight","_trHeightList$i","shift","startIndex","endIndex","getVisibleRangeConfig","translateYValue","_fixedRows","fixedEnd","fixedStartData","fixedEndData","bottomStartIndex","updateScrollTop","_ref3$top","behavior","contentRect","preventResizeRefresh","addIndexToData","initHeightList","fill","handleScroll","handleRowMounted","rowData","_rowData$ref$value","trHeight","rowIndex","VIRTUAL_SCROLL_INDEX","scrollToElement","_p$time","timer","DEFAULT_OPTIONS","debounceTime","config","attributes","characterData","subtree","ARROW_DOWN_REG","ARROW_UP_REG","ARROW_LEFT_REG","ARROW_RIGHT_REG","ESCAPE_REG","SPACE_REG","ENTER_REG","SHIFT_REG","CLEAR_REG","ALL_REG","CHECKED_CODE_REG","getColorTokenColor","token","_document","_styles$getPropertyVa","targetElement","useVariables","variables","varsArray","varName","targetEl","mergedOptions","_objectSpread","observer","initObserver","_observer","_mergedOptions$value","_mergedOptions$value$","_mergedOptions$value$2","MutationObserver","newOptions","deep","_observer2","useMutationObservable","mutationsList","mutation","attributeName","_ref3","_ref4","_objectWithoutProperties","objectWithoutPropertiesLoose","getValidAttrs","newObj","getBackgroundColor","color","unshift","_color$direction","rest","_excluded","tempArr","sort","parseFloat","substr","getIEVersion","navigator","MAX_SAFE_INTEGER","userAgent","isIE","isIE11","reIE","fIEVersion","getCharacterLength","str","maxCharacter","hasMaxCharacter","characters","currentStringLength","pxCompat","param","DOM_STYLE_PROPS","GradientIcon","defineComponent","setup","circleRef","nextTick","circleElem","_window","_window$getComputedSt2","_window2","basicStyle","_window$getComputedSt","fontSize","ua","isSafari","isIosWechat","isIpadWechat","transformOrigin","matched","endColor","background","circleAdapter","_createVNode","class","viewBox","version","xmlns","createVNode","props$1z","delay","fullscreen","indicator","inheritColor","preventScrollThrough","showOverlay","_Loading","inheritAttrs","attrs","delayShowLoading","_useComponentClassNam","centerClass","fullscreenClass","lockClass","overlayClass","relativeClass","fullClass","inheritColorClass","renderContent","countDelay","teleportElement","delayCounted","hasContent","lockFullscreen","showText","showWrapLoading","showFullScreenLoading","showAttachedLoading","baseClasses","fullScreenClasses","attachClasses","withContentClasses","normalClasses","toRefs","_ref5","_classes$value","defaultIndicator","_mergeProps","fullScreenLoadingInstance","createLoading","mergedProps","mergeDefaultProps","loadingOptions","reactive","LoadingComponent","LoadingPlugin","_context","appContext","wrapper","render","parentRelativeClass","hide","produceLoading","_fullScreenLoadingIns","globalProperties","$loading","INSTANCE_KEY","createInstance","_binding$modifiers","modifiers","mapKeys","vLoading","mounted","updated","_value$loading","oldValue","unmounted","_el$INSTANCE_KEY","Loading","props$1y","ghost","href","loadingProps","shape","variant","onClick","TButton","COMPONENT_NAME","_useCommonClassName","btnRef","isDisabled","mergeTheme","buttonClass","buttonContent","TLoading","iconOnly","buttonAttrs","tabindex","Button","_Button","renderFn","kebabAttrs","reduce","camelString","camel2Kebab","DEFAULT_CLASS_PREFIX","ConfigContext","COMMON_SIZE_CLASS_NAMES","addRectangle","useSizeProps","_useSizeProps","finalCls","finalStyle","finalProps","_props$onClick","arrowTriangleDownFilled","arrowTriangleUpFilled","backtop","browseOff","clipPath","browse","caretRightSmall","checkCircleFilled","check","chevronDown","chevronLeftDouble","chevronLeft","chevronRightCircle","chevronRightDouble","chevronRight","chevronUp","closeCircleFilled","_delete","download","edit1","ellipsis","errorCircleFilled","fileCopy","fileExcel","filePdf","filePowerpoint","fileWord","helpCircleFilled","imageError","infoCircleFilled","minusRectangle","mirror","pageFirst","pageLast","rotation","search","setting","starFilled","timeFilled","video","zoomIn","zoomOut","loadDefaultIcons","Icon","props2","propsSize","sizeClassName","sizeStyle","finalUrl","classNames","querySelectorAll","svg","setAttribute","_props2$onClick","props$1w","hover","prefixIcon","suffixIcon","underline","_Link","emits","linkClass","handleClick","linkContent","prefix","Link","props$1v","align","gutter","justify","calcSize","useRowSize","_Row","rowClasses","getRowClasses","rowStyle","currentSize","getMarginStyle","marginRight","getRowGapStyle","rowGap","strategyMap","calcRowStyle","_slot","TAG","_isVNode","props$1u","flex","lg","md","order","pull","sm","span","xxl","_Col","rowContext","colClasses","ColSizeClasses","acc","currSize","sizeProp","sizeObject","getColClasses","colStyle","paddingObj","getPaddingStyle","parseFlex","rowGutter","paddingLeft","paddingRight","Row","Col","_Layout","hasSide","props$1t","_Header","props$1s","_Footer","props$1r","_Aside","props$1q","_Content","Aside","Layout","Header","Footer","Content","props$1p","dashed","layout","_Divider","dividerClassNames","Divider","props$1o","breakLine","separator","sizeMap","defaultNeedPolyfill","_chromeMatch$","_safariMatch$","_fireFoxMatch$","chromeMatch","safariMatch","fireFoxMatch","getFlexGapPolyFill","_Space","forceFlexGapPolyfill","getChildSlots","needPolyfill","renderStyle","renderGap","_renderGap$split2","columnGap","gap","separatorContent","spaceClassNames","renderChildren","showSeparator","_Fragment","Space","props$1n","bordered","colon","column","contentStyle","itemLayout","items","labelStyle","tableLayout","descriptionsKey","ItemsType","renderCustomNode","renderVNodeTNode","_node$props","prop","slot","itemTypeIsProps","itemsType","DescriptionsRow","row","itemType","descriptionsProps","layoutIsHorizontal","itemLayoutIsHorizontal","label","labelClass","labelSpan","colspan","contentClass","contentSpan","_Descriptions","getChildByName","getRows","temp","reset","_item$props","tableClass","props$1m","_DescriptionsItem","Descriptions","DescriptionsItem","asyncGeneratorStep","_asyncToGenerator","_next","_throw","__esModule","_regeneratorDefine","_invoke","regeneratorDefine","_regenerator","Generator","G","bind","GeneratorFunction","GeneratorFunctionPrototype","setPrototypeOf","__proto__","displayName","OverloadYield","require$$1","AsyncIterator","asyncIterator","regenerator","regeneratorAsyncIterator","regeneratorAsyncGen","isNaN","regeneratorAsync","require$$2","require$$3","require$$4","regeneratorKeys","require$$5","regeneratorValues","require$$6","_regeneratorRuntime","throw","return","break","continue","stop","catch","abrupt","delegateYield","resultName","finish","_t","prev","sent","wrap","reverse","isGeneratorFunction","mark","awrap","async","runtime","regeneratorRuntime","accidentalStrictMode","globalThis","props$1l","offsetBottom","offsetTop","onFixedChange","_Affix","affixWrapRef","affixRef","placeholderEL","ticking","isBind","scrollContainer","affixStyle","rAFId","_affixWrapRef$value$g","_affixWrapRef$value","fixedTop","wrapToTop","wrapWidth","wrapHeight","containerTop","calcTop","calcBottom","Window","affixed","placeholderStatus","removeAttribute","bindScroll","_callee","unbindScroll","onActivated","onDeactivated","expose","Affix","factory","__webpack_modules__","__unused_webpack_module","__webpack_exports__","__webpack_require__","clipboard","tiny_emitter","tiny_emitter_default","listen","listen_default","src_select","select_default","command","execCommand","actions_cut","selectedText","fakeCopyAction","fakeElement","isRTL","padding","margin","yPosition","createFakeElement","actions_copy","HTMLInputElement","actions_default","_options$action","action","hasAttribute","clipboard_typeof","descriptor","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","getAttributeValue","attribute","Clipboard","_Emitter","subClass","superClass","_inherits","Constructor","protoProps","staticProps","_super","trigger","resolveOptions","listenClick","defaultAction","defaultTarget","defaultText","_this2","delegateTarget","currentTarget","clearSelection","focus","getSelection","removeAllRanges","selector","destroy","actions","support","queryCommandSupported","Element","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","__unused_webpack_exports","closest","_delegate","useCapture","listenerFn","elements","nodeList","is","delegate","listenNode","listenNodeList","listenSelector","isReadOnly","setSelectionRange","selection","selectNodeContents","addRange","E","ctx","once","evtArr","evts","liveEvents","TinyEmitter","__webpack_module_cache__","moduleId","getter","definition","ANCHOR_SHARP_REGEXP","getOffsetTop","clientTop","props$1k","affixProps","bounds","cursor","targetOffset","AnchorInjectionKey","_Anchor","anchorRef","links","handleScrollLock","activeLineStyle","ANCHOR_LINE_CLASSNAME","ANCHOR_LINE_CURSOR_CLASSNAME","utilsGetScrollContainer","filters","link","getAnchorTarget","cur","setCurrentActiveLink","matcher","getElementById","_props2$onChange","updateActiveLine","_x","_anchorRef$value","handleScrollTo","_callee2","_context2","_x2","_callee3","_context3","watchEffect","registerLink","unregisterLink","each","handleLinkClick","renderCursor","localProps","customScroll","_AnchorItem","tAnchor","CLASSNAME_PREFIX","register","unregister","titleSlot","titleVal","renderTitle","titleAttr","wrapperClass","titleClass","THEME_LIST","DISTANCE","PLACEMENT_OFFSET","center","display","flexDirection","alignItems","PLACEMENT_LIST","props$1i","closeBtn","onClose","onCloseBtnClick","onDurationEnd","ANIMATION_OPTION","fadeIn","placement","fadeInKeyframes","getFadeInKeyframes","setDomStyleAfterAnimation","animate","fadeOut","onFinish","fadeOutKeyframes","marginOffset","getFadeOutKeyframes","styleAfterFadeOut","onfinish","styleAfterAnimation","_Message","_useGlobalIcon","InfoCircleFilledIcon","TdInfoCircleFilledIcon","CheckCircleFilledIcon","TdCheckCircleFilledIcon","ErrorCircleFilledIcon","TdErrorCircleFilledIcon","HelpCircleFilledIcon","TdHelpCircleFilledIcon","CloseIcon","TdCloseIcon","renderTNode","msgRef","status","_props2$onClose","_props2$onCloseBtnCli","clearTimer","setTimer","_props2$onClose2","_props2$onDurationEnd","renderIcon","question","onBeforeMount","onMouseenter","onMouseleave","defaultClose","DEFAULT_Z_INDEX","getUniqueId","MessageList","messageList","getOffset","msgStyles","addChild","msg","mg","removeAll","TMessage","getProps","instanceMap","MessageFunction","handleParams","attachDom","mgKey","exposed","MessagePlugin","ins","find","_mg$$","showThemeMessage","extraApi","promise","closeAll","$message","funcName","props$1h","auto","basePlacements","viewport","popper","variationPlacements","placements","modifierPhases","getNodeName","getWindow","ownerDocument","isElement","isHTMLElement","isShadowRoot","ShadowRoot","applyStyles$1","enabled","phase","state","effect","initialStyles","strategy","arrow","reference","requires","getBasePlacement","getUAString","uaData","userAgentData","brands","brand","isLayoutViewport","includeScale","isFixedStrategy","clientRect","scaleX","scaleY","visualViewport","addVisualOffsets","offsetLeft","getLayoutRect","rootNode","getRootNode","isSameNode","host","isTableElement","getDocumentElement","getParentNode","assignedSlot","getTrueOffsetParent","offsetParent","getOffsetParent","isFirefox","currentNode","css","perspective","contain","willChange","getContainingBlock","getMainAxisFromPlacement","within","mathMax","mathMin","mergePaddingObject","paddingObject","expandToHashMap","hashMap","arrow$1","_state$modifiersData$","arrowElement","popperOffsets","modifiersData","basePlacement","axis","rects","toPaddingObject","arrowRect","minProp","maxProp","endDiff","startDiff","arrowOffsetParent","clientSize","clientHeight","centerToReference","axisProp","centerOffset","_options$element","requiresIfExists","getVariation","unsetSides","mapToStyles","_Object$assign2","popperRect","variation","offsets","gpuAcceleration","adaptive","roundOffsets","_offsets$x","_offsets$y","hasX","hasY","sideX","sideY","win","heightProp","widthProp","_Object$assign","commonStyles","dpr","devicePixelRatio","roundOffsetsByDPR","passive","getOppositePlacement","getOppositeVariationPlacement","getWindowScrollBarX","isScrollParent","_getComputedStyle","overflowX","overflowY","getScrollParent","listScrollParents","_element$ownerDocumen","scrollParent","isBody","updatedList","rectToClientRect","getClientRectFromMixedType","clippingParent","html","layoutViewport","getViewportRect","clientLeft","getInnerBoundingClientRect","winScroll","getDocumentRect","getClippingRect","boundary","rootBoundary","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","computeOffsets","commonX","commonY","mainAxis","detectOverflow","_options","_options$placement","_options$strategy","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","contextElement","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","computeAutoPlacement","flipVariations","_options$allowedAutoP","allowedAutoPlacements","allPlacements","allowedPlacements","overflows","flip$2","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","every","_i","fittingPlacement","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","offset$1","_options$offset","invertDistance","skidding","distance","distanceAndSkiddingToXY","_data$state$placement","preventOverflow$1","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","minLen","maxLen","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","clientOffset","offsetModifierValue","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_offset","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","withinMaxClamp","getCompositeRect","elementOrVirtualElement","isOffsetParentAnElement","offsetParentIsScaled","isElementScaled","getHTMLElementScroll","visited","modifier","dep","depModifier","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","pending","orderedModifiers","effectCleanupFns","isDestroyed","setOptions","setOptionsAction","cleanupModifierEffects","scrollParents","merged","orderModifiers","existing","_ref$options","cleanupFn","noopFn","update","forceUpdate","_state$elements","_state$orderedModifie","_state$orderedModifie2","onFirstUpdate","createPopper","_options$scroll","_options$resize","resize","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","applyStyles","flip","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","popupProps","destroyOnClose","hideEmptyPopup","overlayClassName","overlayInnerClassName","overlayInnerStyle","overlayStyle","popperOptions","showArrow","triggerElement","defaultVisible","onOverlayClick","onScroll","onScrollToBottom","onVisibleChange","filterEmpty","vnodes","Text","useElement","newEl","Trigger","forwardRef","vm","nextElementSibling","_props2$forwardRef","newContentRect","newRect","oldRect","rect1","rect2","_children$","Container","triggerEl","mountContent","emitResize","unmountContent","onResize","onVnodeMounted","POPUP_ATTR_NAME","POPUP_PARENT_ATTR_NAME","getPopperTree","upwards","selectors","recurse","childId","parentKey","_Popup","expandAnimation","_process$env","showTimeout","hideTimeout","_toRefs","_useVModel2","setVisible","overlayEl","popperEl","containerRef","isOverlayHover","arrowStyle","env","TEST","assertMouseLeave","onMouseLeave","offs","prefixCls","commonCls","_props2$delay","_delay2$","show","clean","getOverlayStyle","updateOverlayInnerStyle","getArrowStyle","_popperEl$value$offse2","triggerRect","popupRect","startsWith","_popperEl$value$offse","popupWidth","maxPopupOffsetLeft","popupHeight","maxPopupOffsetTop","updatePopper","parentElement","getTriggerType","destroyPopper","_popper","_containerRef$value","ev","clearAllTimeout","onDocumentMouseDown","_popperEl$value","_triggerEl$value","activedPopper","_props2$onOverlayClic","preventDefault","handlerFn","handleEvent","evt","_process$env2","code","getOverlay","getOverlayState","handleOnScroll","_props2$onScroll","_e$target","debounceOnScrollBottom","_props2$onScrollToBot","hidePopup","overlay","_withDirectives","withDirectives","mergeProps","visibility","_vShow","onContentMounted","Popup","_AnchorTarget","_useConfig","FileCopyIcon","TdFileCopyIcon","toCopyText","div","clip","Message","iconClassName","Anchor","AnchorItem","AnchorTarget","props$1g","itemsAfterCollapse","itemsBeforeCollapse","maxItemWidth","maxItems","props$1f","maxWidth","router","props$1e","_Tooltip","popupRef","innerVisible","setInnerVisible","innerTooltipVisible","_useMouse","onMouseMove","clientX","clientY","useMouse","offsetX","onTipVisibleChange","tooltipOverlayClassName","offsetStyle","popupEl","_popupRef$value","_popupRef$value$updat","Tooltip","localTBreadcrumbOrigin","_BreadcrumbItem","isEllipsisItem","breadcrumbText","localTBreadcrumb","themeClassName","isCutOff","separatorClass","disableClass","maxLengthClass","textFlowClass","maxWithStyle","maxWith","proxy","onBeforeUpdate","bindEvent","$router","location","itemClass","textClass","listeners","stopPropagation","textContent","itemContent","textOverflow","valueIsZeroOrUndefined","_Breadcrumb","ChevronRightIcon","TdChevronRightIcon","EllipsisIcon","TdEllipsisIcon","_useBreadcrumbOptions","getChildComponentSlots","breadcrumbOptions","_props$options","breadcrumbItems","currentIndex","option","itemsSlots","getSlotOrProp","slotName","_child$props","_children$slotName","slotContent","useBreadcrumbOptions","ellipsisItems","ellipsisContent","_useEllipsis","getBreadcrumbItems","shouldShowEllipsis","_maxItems$value","currentMaxItems","totalItems","itemsCollapseSum","getDisplayItems","beforeItems","afterItems","getEllipsisItems","sliceItems","isLast","useEllipsis","BreadcrumbItem","Breadcrumb","dropdownItemProps","divider","_DropdownItem","maxColumnWidth","minColumnWidth","isSubmenu","itemRef","dropdownItemClass","handleItemClick","minWidth","props$1d","hideAfterItemClick","maxHeight","panelBottomContent","panelTopContent","_DropdownMenu","dropdownClass","dropdownMenuClass","scrollTopMap","itemHeight","menuRef","isOverMaxHeight","getContent","renderOptions","_data$forEach","arr","menu","idx","optionItem","onViewIdx","renderIdx","DropdownItem","TDivider","_data$onClick","getOptionsFromChildren","menuNode","_menuNode$","_menuNode$3","_menuNode$4","_menuNode$2","_menuNode$2$default","groupChildren","_item$children","_item$children$conten","_item$children2","_item$children2$prefi","_item$children3","_item$children3$prefi","_item$children4","_item$children4$defau","_groupChildren$filter","_groupChildren$filter2","slotPrefixIcon","contentCtx","_v$type","childrenCtx","_v$type2","itemProps","_item$type","_Dropdown","popupElem","isPopupVisible","manualCloseTimeout","_props2$popupProps","_delay$","handleMenuClick","_props2$popupProps2","_props2$popupProps2$o","_props2$popupProps3","_props2$popupProps3$o","handleVisibleChange","_props2$popupProps4","_props2$popupProps4$o","_props2$popupProps5","_props2$popupProps5$o","_renderTNodeJSX","_props2$popupProps6","_getChildComponentSlo","_getChildComponentSlo2","_instance$slots$dropd","menuSlot","dropdown","useDropdownOptions","popupParams","_options$value","DropdownMenu","Dropdown","props$1c","collapsed","defaultExpanded","expandMutex","expandType","logo","operations","onExpand","getTreePaths","ans","getTreeSameParentNodes","DFS","VMenu","isMutex","expandValues","v2","pNode","activeValues","sameParentNodes","sameLevelSubmenuValues","_node$children","_Menu","onCollapsed","mode","menuClass","innerClasses","expandWidth","activeValue","setActiveValue","_useDefaultValue2","setExpand","_props2$onCollapsed","vMenu","isHead","tmp","props$1b","tabPanelProps","destroyOnHide","draggable","lazy","panel","removable","onRemove","_TabPanel","renderTNodeContent","tabs","isActive","isMount","tabPanelClass","props$1a","addable","dragSort","scrollPosition","onAdd","onDragSort","getDomWidth","TTabNavItem","tabProps","removeBtnClick","onClickNav","navItemClass","TTabNavBar","navs","barRef","navBarClass","navBarStyle","sizePropName","offsetPropName","_props$navs$i","sizeWithUnit","getStyle","TTabNav","resizeObserver","panels","ChevronLeftIcon","TdChevronLeftIcon","AddIcon","TdAddIcon","navsContainerRef","navsWrapRef","leftOperationsRef","rightOperationsRef","toRightBtnRef","activeTabRef","maxScrollLeft","showAction","_props$placement","getRefs","navsContainer","navsWrap","leftOperations","rightOperations","toRightBtn","activeTab","isVerticalPlacement","canToLeft","canToRight","wrapTransformStyle","navsContainerStyle","iconBaseClass","leftIconClass","rightIconClass","addIconClass","navContainerClass","navScrollContainerClass","navsWrapClass","setOffset","calcValidOffset","navsContainerWidth","activeTabWidth","diffWidth","calcPrevOrNextOffset","handleWheel","deltaX","deltaY","handleActiveTabScroll","depElement","tabWidth","tabOffset","rightOperationsWidth","leftOperationsWidth","calculateOffset","getMaxScrollLeft","_resizeObserver","useResize","handleAddTab","_props$onAdd","setActiveTab","$el","_useDragSort","dragged","enterTargets","dragstart","dragend","dragover","dragenter","outline","dragleave","_enterTargets","enterTarget","drop","tabNav","_props$onDragSort","dragIndex","targetIndex","setNavsWrap","useDragSort","renderNavsContent","_panel$children","nav","tabClick","Transition","appear","navContent","onWheel","_Tabs","tabValue","setTabValue","onTabAdd","_props2$onAdd","onTabChange","onTabRemove","_props2$onRemove","getSlotPanels","flatContent","ct","renderHeader","_props2$list","actionContent","panelsData","selfItem","tabNavProps","_props2$list2","TTabPanel","Tabs","TabPanel","props$19","FakeArrow","stroke","_Submenu","submenu","setSubPopup","closeParentPopup","menuItems","popupVisible","isCursorInPopup","isOpen","_expandValues$value","isNested","popupWrapperRef","subPopupRef","submenuRef","transitionClass","submenuClass","arrowClass","addMenuItem","related","relatedTarget","loopInPopup","handleMouseLeavePopup","passSubPopupRefToParent","handleMouseEnter","targetInPopup","handleMouseLeave","inPopup","toElement","handleEnterPopup","handleSubmenuItemClick","renderPopup","popupWrapper","realPopup","_menu$vMenu","_node","_node2","_node3","virtualChild","normalSubmenu","needRotate","events","silent","$options","_useCollapseAnimation","beforeEnter","oldPaddingTop","paddingTop","oldPaddingBottom","paddingBottom","enter","oldOverflow","afterEnter","beforeLeave","leave","afterLeave","onEnter","onAfterEnter","onBeforeLeave","onLeave","vShow","renderSubmenu","_HeadMenu","_ctx$slots$default2","_ctx$slots3","_ctx$slots$content2","_ctx$slots4","setExpanded","handleTabChange","handleClickSubMenuItem","handleSubmenuExpand","getChild","_activeMenuItem$onCli","activeMenuItem","innerRef","logoRef","operationRef","initVMenu","parentValue","_node$type","_node$type2","nodeValue","_props2$logo","_ctx$slots$logo","_ctx$slots5","_props2$operations","_ctx$slots$operations","_ctx$slots6","_ctx$slots$options","_ctx$slots7","_ctx$slots$default3","_ctx$slots8","_ctx$slots$content3","_ctx$slots9","_item$vnode$","props$18","routerLink","_MenuItem","_menu$collapsed","_onClick$value","_submenu$closeParentP","methods","_router$value","liContent","props$17","_MenuGroup","Menu","HeadMenu","Submenu","MenuItem","MenuGroup","props$16","allowInputOverMax","autoWidth","autofocus","borderless","clearable","inputClass","maxcharacter","maxlength","showClearIconOnEmpty","showLimitNumber","spellCheck","tips","onBlur","onClear","onCompositionend","onCompositionstart","onFocus","onKeydown","onKeypress","onKeyup","onPaste","onValidate","useCLASSNAMES","labelTop","inline","formItem","formItemWithHelp","formItemWithExtra","controls","controlsContent","extra","help","successBorder","ValidateStatus","FormInjectionKey","FormItemInjectionKey","useLengthLimit","limitNumber","_params$value2","innerStatus","_limitNumber$value$sp2","tStatus","onValidateChange","_params$value$onValid","_params$value3","getValueByLimitNumber","inputValue","oldStr","_params$value","getOutputValue","useInput","isComposition","compositionValue","clearIconRef","innerClickElement","innerValue","setInnerValue","isHover","renderType","inputRef","_useLengthLimit","showClear","_inputRef$value","setInputElValue","inputEl","sV","inputValueChangeHandle","_innerValue$value","_inputRef$value4","oldVal","isNumberType","newVal","blur","_inputRef$value2","emitFocus","_props$onFocus","formatAndEmitBlur","_props$onBlur","_clearIconRef$value","tagName","_clearIconRef$value2","isClearIcon","handleBlur","onHandleCompositionend","_props$onCompositione","onHandleCompositionstart","_props$onCompositions","onRootClick","_inputRef$value3","emitPassword","toggleType","handleInput","checkInputType","inputType","emitClear","_props$onClear","onClearIconMousedown","useInputWidth","inputPreRef","observerTimer","updateInputWidth","_Input","showInput","keepWrapperWidth","BrowseIcon","TdBrowseIcon","BrowseOffIcon","TdBrowseOffIcon","CloseCircleFilledIcon","TdCloseCircleFilledIcon","INPUT_WRAP_CLASS","INPUT_TIPS_CLASS","_useInput","inputHandle","inputEventHandler","mouseEvent","handleKeydown","_props$onEnter","_props$onKeydown","tmpValue","handleKeyUp","_props$onKeyup","handleKeypress","_props$onKeypress","onHandlePaste","_props$onPaste","clipData","clipboardData","pasteValue","getData","onHandleMousewheel","_props$onWheel","onInputMouseenter","_props$onMouseenter","onInputMouseleave","_props$onMouseleave","useInputEventHandler","tPlaceholder","_props2$placeholder","inputAttrs","_props2$autocomplete","unselectable","spellcheck","wrapClasses","inputEvents","_compositionValue$val","_inputValue$value","_compositionValue$val2","passwordIcon","limitNode","labelContent","suffixContent","passwordClass","onMousedown","tipsClasses","inputGroupProps","separate","_InputGroup","CLASS","Input","InputGroup","props$15","allowInputOverLimit","decimalPlaces","inputProps","largeNumber","fillZero","isInputNumber","num","eCount","negativeCount","dotCount","removeInvalidZero","decimal","largeIntNumberAdd","num1","num2","number1","number2","isFirstLarger","maxNumber","minNumber","newNumber","minIndex","largePositiveNumberAdd","_num1$split2","_num1$split2$","intNumber1","_num1$split2$2","decimalNumber1","_num2$split2","_num2$split2$","intNumber2","_num2$split2$2","decimalNumber2","integerSum","newDecimalNumber1","newDecimalNumber2","decimalNumberSum","decimalLength","compareLargeIntegerNumber","compareLargeDecimalNumber","formatENumber","_num$split2","_num$split4","integer","_num$split4$","initDecimal","zeroCount","multipleZero","n1","d2","isInfinity","isSafeNumber","MIN_SAFE_INTEGER","compareNumber","isSafeNumberCompare","isInfinityCompare","_formatENumber$split2","integer1","decimal1","_formatENumber$split4","integer2","decimal2","integer1IsNegative","integer2IsNegative","compareLargeNumber","largeIntegerNumberSubtract","stayZero","finalNumber","largePositiveNumberSubtract","_maxNumber$split2","_maxNumber$split2$","_minNumber$split2","_minNumber$split2$","integerNumber","decimalNumber","addOneNumber","formatDecimal","places","toFixed","_num$toString$split2","largeNumberToFixed","_decimalPlaces$enable2","_decimalPlaces$enable","enableRound","decimalPlacesToFixedNum","_number$split2","_decimalNumber$match","leadZeroNum","leadNineNum","needAdded","positiveAdd","_num1$toString$split$","_num2$toString$split$","r1","r2","newNumber1","newNumber2","digit","pow","cm","positiveSubtract","_num1$toString$split$2","_num2$toString$split$2","getStepValue","op","lastValue","tStep","isFirstNegative","isSecondNegative","largeNumberAdd","largeNumberSubtract","putInRangeNumber","getMaxOrMinValidateResult","specialCode","formatUnCompleteNumber","isToFixed","useInputNumber","tValue","setTValue","userInput","tDisabled","isReadonly","isError","disabledReduce","canReduceNumber","disabledAdd","canAddNumber","reduceClasses","addClasses","getUserInput","inputStr","activeElement","fixedNumber","completeValue","_props$onValidate","handleStepValue","overLimit","handleReduce","handleAdd","_props$onBlur3","_props$onBlur2","keyEvent","ArrowUp","ArrowDown","onInnerInputChange","_number$match","_number$match2","tmpNumber","tmpMatched","canInputNumber","processedVal","parts","decimalLimit","lastNumber","canSetValue","_InputNumber","RemoveIcon","TdRemoveIcon","ChevronDownIcon","TdChevronDownIcon","ChevronUpIcon","TdChevronUpIcon","reduceIcon","addIcon","TInput","InputNumber","props$14","allowInput","collapsedItems","defaultInputValue","minCollapsedNum","multiple","defaultPopupVisible","reserveKeyword","tagInputProps","tagProps","valueDisplay","onInputChange","onPopupVisibleChange","onTagChange","props$13","excessTagsDisplayType","trimLeft","trimRight","tinycolor","opts","rgb","ok","named","names","matchers","rgba","hsl","hsla","hsv","hsva","hex8","parseIntFromHex","convertHexToDecimal","hex6","hex4","hex3","stringInputToObject","isValidCSSUnit","bound01","convertToPercentage","q","mod","hsvToRgb","hue2rgb","hslToRgb","boundAlpha","inputToRGB","_originalInput","_r","_g","_b","_a","_roundA","_format","_gradientType","gradientType","_ok","rgbToHsl","rgbToHsv","rgbToHex","allow3Char","hex","pad2","rgbaToArgbHex","convertDecimalToHex","_desaturate","amount","toHsl","clamp01","_saturate","_greyscale","desaturate","_lighten","_brighten","toRgb","_darken","_spin","hue","_complement","polyad","_splitcomplement","_analogous","results","slices","ret","_monochromatic","toHsv","modification","isDark","getBrightness","isLight","getOriginalInput","getFormat","getAlpha","getLuminance","RsRGB","GsRGB","BsRGB","setAlpha","toHsvString","toHslString","toHex","toHexString","toHex8","allow4Char","rgbaToHex","toHex8String","toRgbString","toPercentageRgb","toPercentageRgbString","toName","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","hasAlpha","_applyModification","lighten","brighten","darken","saturate","greyscale","spin","_applyCombination","analogous","complement","monochromatic","splitcomplement","triad","tetrad","fromRatio","newColor","equals","color1","color2","random","mix","rgb1","rgb2","readability","c1","c2","isReadable","wcag2","wcag2Parms","out","parms","level","toUpperCase","validateWCAG2Parms","mostReadable","baseColor","colorList","includeFallbackColors","bestColor","bestScore","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","flipped","isOnePointZero","processPercent","isPercentage","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","props$12","closable","_Tag","tagGlobalConfig","tagClass","tagStyle","getTagColorStyle","textStyle","_tinycolor$toRgb","borderColor","getCloseIcon","tagContent","props$11","defaultChecked","checkedProps","uncheckedProps","_CheckTag","innerChecked","setInnerChecked","checkTagProps","keyboardEventListener","_e$key","onCheckboxFocus","onCheckboxBlur","Tag","props$10","_CheckTagGroup","checkTagGroupClasses","onCheckTagChange","getTagContent","CheckTag","CheckTagGroup","_TagInput","NAME_CLASS","CLEAR_CLASS","BREAK_LINE_CLASS","tInputValue","setTInputValue","_toRefs2","_useHover","addHover","cancelHover","useHover","isFocused","_useDragSorter","sortOnDraggable","onDragOverCheck","draggingIndex","dragStartData","isDropped","startInfo","nodeX","nodeWidth","mouseX","onDragOver","record","targetClassNameRegExp","_target$getBoundingCl","targetNodeMiddleX","draggingNodeLeft","draggingNodeRight","onDragStart","_target$getBoundingCl2","onDrop","onDragEnd","getDragProps","onDragstart","onDragover","onDragend","dragging","useDragSorter","_useTagScroll","tagInputRef","scrollDistance","scrollElement","mouseEnterTimer","isScrollable","updateScrollElement","inputElement","updateScrollDistance","_scrollElement$value","scrollToRight","_tagInputRef$value","scrollToLeft","scrollToRightOnEnter","scrollToLeftOnLeave","useTagScroll","_useTagList","_tagValue","setTagValue","tagValue","oldInputValue","_onRemove$value","clearAll","onInnerEnter","valueStr","isLimitExceeded","onInputBackspaceKeyUp","onInputBackspaceKeyDown","isDelete","_onRemove$value2","renderLabel","displayNode","newList","_getDragProps$value","more","collapsedTags","collapsedSelectedItems","useTagList","tagInputPlaceholder","_tagValue$value","showClearIcon","_tagValue$value2","onInputEnter","_context$e","_context$e$preventDef","onInputCompositionstart","_inputProps$value","_inputProps$value$onC","onInputCompositionend","_inputProps$value2","_inputProps$value2$on","onClearClick","_props2$onClear","onMouseEnter","onInnerFocus","_props2$onFocus","onInnerBlur","_props2$onBlur","onInnerChange","scrollElementClass","_inputProps$value3","_tagValue$value3","suffixIconNode","prefixIconNode","suffixClass","TagInput","DEFAULT_KEYS","useOverlayInnerStyle","innerPopupVisible","disable","matchWidthFunc","popupElement","SCROLLBAR_WIDTH","otherOverlayInnerStyle","getAutoWidthPopupStyleWidth","_popupProps$value","tOverlayInnerStyle","_popupProps$value2","onInnerPopupVisibleChange","_props$onPopupVisible","newVisible","COMMON_PROPERTIES","useSingle","_props$defaultInputVa","propsInputValue","isSingleFocus","setInputValue","commonInputProps","onInnerClear","_context2$e","renderPrefixContent","singleValueDisplay","_props$valueDisplayOp","valueDisplayOptions","useInputDisplay","renderInputDisplay","displayedValue","_props$valueDisplayOp2","_props$valueDisplayOp3","renderPlaceholder","_props$valueDisplayOp4","_props$valueDisplayOp5","usePlaceholder","singleInputValue","renderSelectSingle","_context$attrs","iKeys","getInputValue","prefixContent","_context$slots","inputClassProps","overlayState","_popupRef$value2","_SelectInput","BASE_CLASS_BORDERLESS","BASE_CLASS_MULTIPLE","BASE_CLASS_POPUP_VISIBLE","BASE_CLASS_EMPTY","selectInputRef","_useOverlayInnerStyle","_useSingle","_useMultiple","isMultipleFocus","tags","onTagInputChange","_props$onTagChange","tagInputValue","multipleInputValue","renderSelectMultiple","useMultiple","isFocus","_popupVisible$value","addKeyboardEventListener","_props2$onPopupVisibl","_selectInputRef$value","_ctx$e","_tagInputRef$value$fo","tabIndex","_popupVisible$value2","visibleProps","mainContent","tipsNode","SelectInput","props$$","checkAll","props$_","lazyLoad","CheckboxGroupInjectionKey","_Checkbox","needRipple","stopLabelTrigger","labelRef","checkboxGroupData","tName","tChecked","_checkboxGroupData$va","isCheckAll","checkedValues","maxExceeded","tIndeterminate","labelClasses","handleChange","handleCheckboxChange","onCheckedChange","handleLabelClick","_useCheckboxLazyLoad","ioObserver","showCheckbox","handleLazyLoad","useCheckboxLazyLoad","_useKeyboardEvent","useKeyboardEvent","props$Z","_Group$1","optionList","intersectionLen","optionItems","onCheckAllChange","_getAllCheckboxValue","checkAllVal","uncheckAllVal","getAllCheckboxValue","currentValue","_props2$options","_optionList$value","Checkbox","nodes","getOptionListBySlots","role","CheckboxGroup","_Group","getSingleContent","isRemote","searchDisplayOptions","optionsMap","_searchDisplayOptions","getNewMultipleValue","optionValue","valueIndex","isCheck","selectInjectKey","_Option","createAble","trs","scrollType","isVirtual","selectProvider","isReachMax","selectValue","isSelected","selectName","liRef","isIndeterminate","hoverIndex","labelText","handleCheckboxClick","_selectProvider$value","_selectProvider$value2","handleCreate","handleValueChange","selectedOptions","getSelectedOptions","handlePopupVisibleChange","emitBlur","_selectProvider$value3","currentOption","optionChild","props$Y","_OptionGroup","_props2$label","props$X","creatable","selectInputProps","valueType","onCreate","onSearch","usePanelVirtualScroll","_props$scroll3","_props$scroll4","_props$scroll5","_props$scroll6","_props$scroll7","_props$scroll","_props$options$value","_props$scroll2","_ref$fixedHeight","fixedHeight","_ref$lineHeight","lineHeight","_ref$bufferSize","_ref$threshold","cachedHeight","cachedScrollY","updateId","visibleCount","beforeScrollTop","$index","maxScrollY","average","firstRow","calculateScrollY","_anchorDom$getBoundin","anchorDom","anchorDomHeight","_state$visibleData","tr","scrollY","_state$visibleData$","refreshContainer","ob","intersectionRatio","_container$value2","useVirtualScroll","popupContentRef","_ref$trs","_ref$visibleData","_ref$handleScroll","handleVirtualScroll","_ref$scrollHeight","_ref$translateY","_ref$handleRowMounted","lastScrollY","onInnerVirtualScroll","_props$popupContentRe","_props$popupContentRe2","cursorStyle","panelStyle","SelectPanel","TdSelectProps","renderDefaultTNode","tSelect","showCreateOption","displayOptions","_usePanelVirtualScrol","renderOptionsContent","OptionGroup","group","shouldOmitContent","Option","dropdownInnerSize","renderPanel","extraStyle","_Select","innerInputValue","orgValue","setOrgValue","selectPanelRef","_props2$keys","_props2$keys2","_props2$keys3","isObjectType","_useSelectOptions","optionsCache","dynamicIndex","innerOptions","getFormatOption","_keys$value","optionsSlots","groupSlots","_group$props","groupOption","_step2","_iterator2","_step3","_iterator3","optionsList","getOptionsList","_step4","_iterator4","filterMethods","_option$label","_option$label$toLower","searchOptions","currentSelectedOptions","searchSelectedOptions","checkAllOption","exactMatch","fuzzyMatch","useSelectOptions","getOption","_useDefaultValue4","setInnerPopupVisible","placeholderText","isRemoteSearch","currentSelectOptions","displayText","resLabel","getMultipleContent","valueDisplayParams","removeTag","displayValue","isFilterable","_props2$onRemove3","_ref4$trigger","_props2$onRemove2","currentSelected","getCurrentSelectedOptions","_currentSelected$len","_props2$onCreate","optionalList","selectedValue","lockedValues","formattedOrgValue","_useKeyboardControl","filteredOptions","virtualFilteredOptions","_selectPanelRef$value","handleKeyDown","_optionsList$value$ne","_optionsList$value$ne2","optionsListLength","newIndex","finalOptions","_finalOptions$hoverIn","useKeyboardControl","SelectProvider","handlerInputChange","handleOptionEmitBlur","checkValueInvalid","handleSearch","_props2$onSearch","_selectPanelRef$value2","handlerPopupVisibleChange","handlerPopupScrollToBottom","_ref6","_popupProps$onScroll","_popupProps$onScrollT","newCache","addCache","renderValueDisplay","_props2$selectInputPr","_innerValue$value$sli","_innerValue$value$sli2","_ref7","_props2$tagProps","_props2$tagProps$onCl","renderTag","_selectPanelRef$value3","firstSelectedNode","elementBottomHeight","updateValue","_ref8","restPopupProps","onkeydown","_ref9","_ref0","_props2$onEnter","_ref1","_props2$onBlur2","_ref10","picker","Select","props$W","append","prepend","_InputAdornment","renderAddon","addon","addonNode","isContentNode","defaultSlot","InputAdornment","props$V","defaultCurrent","foldedMaxPageBtn","maxPageBtn","pageEllipsisMode","pageSize","defaultPageSize","pageSizeOptions","selectProps","showFirstAndLastPageBtn","showJumper","showPageNumber","showPageSize","showPreviousAndNextBtn","totalContent","onCurrentChange","onPageSizeChange","_Pagination","innerCurrent","setInnerCurrent","innerPageSize","setInnerPageSize","PageFirstIcon","TdPageFirstIcon","PageLastIcon","TdPageLastIcon","ChevronLeftDoubleIcon","TdChevronLeftDoubleIcon","ChevronRightDoubleIcon","TdChevronRightDoubleIcon","_usePaginationClasses","pageCount","paginationClass","totalClass","sizerClass","preBtnClass","nextBtnClass","btnWrapClass","btnMoreClass","jumperClass","jumperInputClass","simpleClass","getButtonClass","usePaginationClasses","CLASS_MAP","_useMoreAction","prevMore","nextMore","curPageLeftCount","curPageRightCount","isPrevMoreShow","isNextMoreShow","useMoreAction","jumpIndex","isFolded","sizeOptions","isMidEllipsis","pages","foldedStart","foldedEnd","toPage","pageIndex","pageInfo","handlePageChange","prevPage","nextPage","prevMorePage","nextMorePage","onSelectorChange","isIndexChange","_props2$onChange2","onJumperChange","trunc","Jumper","TInputAdornment","$event","onMouseover","onMouseout","props$U","showCurrent","_PaginationMini","RoundIcon","TdRoundIcon","titleConfig","disabledConfig","renderWithTooltip","TTooltip","Pagination","PaginationMini","props$T","sequence","stepItemProps","_StepItem","stepsState","stepsProps","CheckIcon","TdCheckIcon","canClick","onStepClick","setCurrent","statusClass","baseClass","iconClass","defaultIcon","_Steps","indexMap","handleStatus","matchIndex","getChildComponentByName","getOptions","stepIndex","StepItem","Steps","props$S","onHover","stickyItemProps","_StickyItem","baseProps","TdStickyToolProps","basePopupProps","baseWidth","popupPlacement","selfWidth","handleClickItem","handleHoverItem","_StickyTool","getListBySlots","_props2$offset","handleHover","_props2$onHover","getList","StickyItem","StickyTool","props$R","visibleHeight","_BackTop","BacktopIcon","TdBackTopIcon","getContainer","scrollDOM","onscroll","_scrollDOM","defaultContent","_createTextVNode","positionStyle","insetInlineEnd","insetBlockEnd","targetNode","getBackTo","BackTop","props$Q","highlightKeyword","textareaProps","onSelect","_HighlightOption","keyword","_content$match","regExp","splitKeyword","_words$value","AutoCompleteOptionList","sizeClassNames","optionClasses","tOptions","onOptionClick","liNode","onKeyInnerPress","_tOptions$value$newIn","findIndex","_tOptions$value$_newI","addKeyboardListener","removeKeyboardListener","labelNode","_slots$option","HighlightOption","_AutoComplete","optionListRef","triggerWidth","popupClasses","popupInnerClasses","innerInputProps","_optionListRef$value","onInnerCompositionend","_props2$onComposition","onInnerCompositionstart","_props2$onComposition2","onInnerSelect","_props2$onSelect","listContent","topContent","bottomContent","panelContent","AutoComplete","getFakeArrowIconClass","cascaderContext","getNodeStatusClass","checkStrictly","expandedActive","isLeaf","treeStore","showAllLevels","getNodes","getPath","at","getPanels","treeNodes","getFullPathLabel","getTreeValue","treeValue","isEmptyValues","handleRemoveTagEffect","setValue","setChecked","isChecked","getNode","getModel","Item","getCascaderItemClass","getCascaderItemIconClass","RenderLabelInner","inputVal","texts","doms","RenderLabelContent","RenderCheckBox","checkProps","isOptionChildAndMultiple","props$O","load","valueMode","Panel","CascaderProps","renderTNodeJSXDefault","handleExpand","propsTrigger","setTreeNodes","setExpend","refreshNodes","replaceExpanded","resetChecked","expendClickEffect","renderItem","getExpanded","isSelectAll","valueChangeEffect","renderList","isFilter","segment","_props$cascaderContex","nodeKey","TreeNodeModel","actived","getLevel","getIndex","isFirst","newData","insertAfter","_node$parent","getParents","getRoot","getSiblings","childrenModel","walk","pnode","syncAttrs","cleanData","attr","dataAttrValue","settableStatus","activable","checkable","settableProps","syncableProps","privateKey","TreeNode","propChildren","propLabel","propDisabled","model","vmCheckable","vmIsLeaf","vmIsFirst","vmIsLast","vmIsRest","vmIsLocked","expandAll","uniqueId","nodeMap","privateMap","initActived","initExpanded","loadChildren","initChecked","updateChecked","reflow","checkedMap","expandLevel","expandedMap","isActivable","activedMap","appendTo","updateRelated","_this3","targetPosNode","siblings","prevLength","prevIndex","sibling","insert","updateParents","filterMap","_loadChildren","_this4","setDisabled","parents","_this$tree","hasFilter","nodeModel","_this$tree2","allowFoldNodeOnFilter","expandVisible","disableCheck","isDisabledState","_tree$config","isCheckable","childChecked","lockState","isExpanded","isVisible","updateChildren","directly","shouldExpandNodes","expandParent","_tree$config2","isExpandMutex","snode","afterExpanded","setActived","isActived","isAction","getActived","prevKeys","activeMultiple","hasEnableUnCheckedChild","expectState","getChecked","spreadChildrenChecked","spreadParentChecked","getRelatedNodes","isRest","_this5","spreadChildren","_this6","spreadParents","TreeStore","onLoad","onReflow","onUpdate","updatedMap","prevFilter","updateTick","shouldReflow","emitter","all","hasChanged","refreshState","getParent","conf","para","spec","parseNodeData","pm","lockFilterPathNodes","stateId","updatedNodes","nodePrivateKey","resetActived","added","difference","removed","setExpandedDirectly","updateExpanded","withParents","_this$config","childNode","relatedNodes","relatedNode","allNodes","lock","currentFilter","useCascaderContext","setPopupVisible","_useContext","statusContext","scopeVal","expend","setInputVal","useContext","updatedTreeNodes","_cascaderContext$valu","treeNodesEffect","updateExpend","_cascaderContext$valu2","tn","expandedArr","treeStoreExpendEffect","replaceChecked","_props$keys","reload","store","JSON","stringify","treeProps","setConfig","_cascaderContext$valu3","isValueInvalid","getCascaderValue","getCascaderItems","_statusContext$treeSt","_Cascader","_useCascaderContext","_node2$","inputPlaceholder","arrayValue","cascaderClassNames","renderSuffixIcon","_props2$selectInputPr2","_props2$selectInputPr3","_props2$selectInputPr4","_props2$selectInputPr5","_props2$selectInputPr6","_props2$selectInputPr7","_props2$selectInputPr8","_props2$selectInputPr9","_props2$selectInputPr0","_props2$selectInputPr1","_props2$selectInputPr10","closeIconClickEffect","_CascaderPanel","Cascader","CascaderPanel","isoWeeksInYear","isLeapYear","day","dayjs","TIME_FORMAT","extractTimeFormat","parseToDayjs","timeOfDay","dateText","yearStr","weekStr","weekFormatStr","firstWeek","weekCounts","nextWeek","quarterStr","quarterFormatStr","firstQuarter","nextQuarter","isValidDate","formatDate","newDate","targetFormat","_ref3$dayjsLocale","autoSwap","dayjsDateList","da","formatRange","dayJsDate","formatSingle","calcFormatTime","timeFormat","timeArr","timeFormatArr","formatTime","defaultTime","_result","getDefaultFormat","_ref4$mode","enableTimePicker","initYearMonthTime","_ref5$mode","_ref5$timeFormat","defaultYearMonthTime","useSingleValue","_value$value","_value$value2","_value$value3","_value$value4","formatRef","cacheValue","_extends","isBetween","weeks","weekYear","longDateFormat","localeData","isoWeekYear","isoWeek","offsetName","zone","A","afternoon","milliseconds","SS","SSS","ss","H","HH","DD","Do","MMM","MMMM","Y","YY","YYYY","Z","ZZ","regex","parser","hours","customParseFormat","parseTwoDigitYear","minutes","seconds","getDaysInMonth","isSameYear","date1","date2","isSameQuarter","isSameMonth","isSameWeek","isSameDate","compareAsc","d1","outOfRanges","getToday","subtractMonth","addMonth","getWeeks","_ref5$showWeekOfYear","showWeekOfYear","_ref5$disableDate","disableDate","minDate","maxDate","_ref5$dayjsLocale","_ref5$cancelRangeSele","cancelRangeSelectLimit","prependDay","getFirstDayOfMonth","appendDay","getLastDayOfMonth","maxDays","daysArr","currentDay","firstDayOfMonth","lastDayOfMonth","dayjsObj","setDate","additional","dataList","flagActive","_objectDestructuringEmpty","hoverStart","hoverEnd","_args$type","_args$isRange","isRange","_args$multiple","_item","isStart","isHoverStart","isEnd","isHoverEnd","highlight","startOfRange","endOfRange","hoverHighlight","hoverStartOfRange","hoverEndOfRange","_value$some","extractTimeObj","matchedMeridiem","_matchedTimeStr$0$spl2","_matchedTimeStr$0$spl3","_matchedTimeStr$0$spl4","_matchedTimeStr$0$spl5","_matchedTimeStr$0$spl6","weekOfYear","quarterOfYear","advancedFormat","dayJsIsBetween","datePickerProps","needConfirm","presets","presetsPlacement","timePickerProps","onConfirm","onPick","onPresetClick","TDateHeader","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","valueDayjs","_props$onCellMouseLea","col","AM","PM","MERIDIEM_LIST","TIME_PICKER_EMPTY","DEFAULT_STEPS","EPickerCols","TWELVE_HOUR_FORMAT","props$N","disableTime","hideDisabledTime","onInput","onOpen","BooleanType","validateInputValue","formatInputValue","hour","minute","second","milliSecond","panelOffset","SinglePanel","panelColProps","cols","Props","localeMeridiems","triggerScroll","resetTriggerScroll","isShowPanel","bodyRef","maskRef","colsRef","dayjsValue","isStepsSet","updateTimeScrollPos","renderCol","getPickerCols","getItemHeight","_maskRef$value","maskDom","timeItemCanUsed","colIdx","_props$disableTime","millisecond","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","onConfirmClick","presetsClass","footerClass","_props$onPresetClick","preset","_props$onConfirmClick","TExtraContent","showPanelFooter","useDisableDate","availableMode","isEnabled","before","after","compareMin","compareMax","isEnabledDate","useRangeValue","isFirstValueSelected","PARTIAL_MAP","first","useTableData","_props$firstDayOfWeek","monthLocal","quarterLocal","_ref6$disableDate","_ref6$dayjsLocale","_ref6$cancelRangeSele","quarterArr","getQuarters","_params$disableDate","_params$dayjsLocale","_params$cancelRangeSe","MonthArr","getMonths","_ref7$disableDate","_ref7$dayjsLocale","_ref7$cancelRangeSele","yearArr","getYears","TSinglePanel","onPanelClick","_getDefaultFormat","disableDateOptions","panelContentProps","extraProps","_props$onPanelClick","_DatePicker","_useSingleValue","isHoverCell","defaultInputProps","newMonth","newYear","newTime","_props$popupProps$ove","_props$popupProps","_props$popupProps2","_props$popupProps3","_props$popupProps3$on","_props$popupProps4","_props$popupProps4$on","CalendarIcon","TdCalendarIcon","_props2$onPick","processDate","onTagRemoveClick","removeDate","onTagClearClick","monthCount","_props2$onPick2","nextDate","_props2$onConfirm","nextValue","_formatRef$value","dateValue","covertToDate","_inputRef$value$focus","datePickerPanelProps","onTimeChange","_DatePickerPanel","triggerMap","_props$onTimeChange","_props$onConfirm","_props$onYearChange2","_props$onMonthChange2","panelClick","dateRangePickerProps","panelPreselection","rangeInputProps","props$M","calcArrayValue","_RangeInput","_innerValue$value2","isShowClearIcon","inputRefs","firstInputRef","secondInputRef","handleClear","handleEnter","rangeValue","handleFocus","_props2$onMouseenter","_props2$onMouseleave","firstInputElement","secondInputElement","_inputRefs$value","_ref3$position","_inputRefs$value2","_ref4$position","_inputRefs$value3","_ref5$position","_innerValue$value3","_innerValue$value8","prefixIconContent","suffixIconContent","RangeInputContent","_innerValue$value4","_innerValue$value5","_innerValue$value6","_innerValue$value7","_ref12","_props2$onClick2","_ref13","_innerValue$value9","_ref14","_innerValue$value0","_ref15","_innerValue$value1","_ref16","_innerValue$value10","props$L","_RangeInputPopup","RangeInput","RangeInputPopup","TRangePanel","hoverValue","hidePreselection","startTableData","endTableData","dateCorrection","partialIndex","onlyYearSelect","_DateRangePicker","_useRange","isMountedRef","_useRangeValue","useRange","notValidIndex","nextIndex","correctedDate","nextInputValue","changedInputValue","currentDate","nextTime","_initYearMonthTime","defaultYear","defaultMonth","confirmValueChange","_props2$onPresetClick","nextVal","_year$value","_year$value2","_year$value3","_year$value4","TRangeInputPopup","dateRangePickerPanelProps","_DateRangePickerPanel","DatePicker","DatePickerPanel","DateRangePicker","DateRangePickerPanel","props$K","labelAlign","labelWidth","preventSubmitDefault","requiredMarkPosition","resetType","rules","scrollToFirstError","showErrorMessage","statusIcon","submitWithWarningMessage","onReset","onSubmit","defaults","_merge","default_date_options","isValidFormat","strictMode","formatDelimiter","delimiters","delimiter","dateDelimiter","dateAndFormat","zippedArr","zip","dateObj","_n","F","_step$value","dateWord","formatWord","fullYear","parsedYear","getUTCDate","isFinite","_iterableToArrayLimit","isRegExp","_assertString","encodeURI","default_fqdn_options","allow_trailing_dot","allow_wildcard","tld","require_tld","allow_numeric_tld","ignore_max_length","allow_underscores","_interopRequireDefault","isIP","ipAddress","IPv4AddressRegExp","IPv6AddressRegExp","IPv4SegmentFormat","IPv4AddressFormat","IPv6SegmentFormat","default_email_options","require_display_name","allow_display_name","display_email","splitNameAddress","display_name","display_name_without_quotes","validateDisplayName","defaultMaxEmailLength","domain","lower_domain","host_blacklist","_checkHost","host_whitelist","user","domain_specific_validation","username","_isByteLength","_user_parts","gmailUserPart","_isFQDN","allow_ip_domain","_isIP","noBracketdomain","blacklisted_chars","allow_utf8_local_part","quotedEmailUserUtf8","quotedEmailUser","emailUserUtf8Part","emailUserPart","user_parts","isValueEmpty","default_url_options","validate_length","max_allowed_length","allow_fragments","_includesString","allow_query_components","protocol","auth","hostname","port","port_str","ipv6","require_valid_protocol","protocols","require_protocol","allow_protocol_relative_urls","require_host","disallow_auth","_auth$split","_auth$split2","password","ipv6_match","wrapped_ipv6","require_port","VALIDATE_MAP","email","isEmail","strs","validate","validateOneRule","_validateOneRule","rule","validateResult","vOptions","vValidateFun","validateRule","_x3","_x4","_validate","getFormItemClassName","_Form","formRef","CLASS_NAMES","formClass","FORM_ITEM_CLASS_PREFIX","getFirstError","firstKey","tmpClassName","resArr","getElementsByClassName","scrollIntoView","needValidate","fields","formatValidateResult","validateResultList","_props2$onValidate","showErrorMessage2","firstError","validateOnly","_ref6$trigger","submitParams","submit","resetParams","clearValidate","resetHandler","setValidateMessage","validateMessage","_props2$onSubmit","_props2$onReset","_resetParams$value","resetField","_resetParams$value2","props$J","for","_FormItem","formItemClassPrefix","needRequiredMark","_props2$requiredMark","isRequired","innerRules","_form$requiredMarkPos","hasLabel","hasColon","FROM_LABEL","getDefaultIcon","errorList","verifyStatus","SUCCESS","errorClasses","contentClasses","successList","TO_BE_VALIDATED","resetValidating","needResetField","getEmptyValue","emptyValue","lodashGet","_args","lodashSet","initialValue","errorMessages","_form$errorMessage","_props2$rules","lastIndexOf","pRuleName","analysisValidateResult","_result$rules","resultList","allowSetValue","vars","_vars$prop$trim","validateHandler","_yield$analysisValida","innerSuccessList","innerErrorList","freeShowErrorMessage","FAIL","_callee4","_yield$analysisValida2","_context4","_callee5","_context5","helpNode","extraNode","_list$","getExtraNode","tmpTips","tmpClasses","_callee6","_context6","Form","FormItem","props$I","allowUncheck","RadioGroupInjectionKey","RadioButtonInjectionKey","_Radio","radioChecked","radioGroup","onLabelClick","keydown","keyup","keypresss","onKeypresss","wrapperAttrs","groupDisabled","groupReadonly","radioButton","radioBtnName","props$H","_RadioButton","radioProps","Radio","defaultWindow","useMutationObserver","_options$window","mutationOptions","isSupported","cleanup","stopWatch","elRef","plain","unref","_plain$$el","getCurrentScope","onScopeDispose","radioGroupRef","updateInnerValue","checkRadioInGroup","inputNode","true","false","useKeyboard","observerReturn","checkedClassName","barStyle","calcBarStyle","disableAnimation","checkedRadio","transitionProperty","cloneNode","defaultCheckedRadio","calcDefaultBarStyle","checkedRadioLabel","mutations","_observerReturn","radioGroupName","renderBlock","groupClass","RadioComponent","TRadioButton","TRadio","RadioGroup","RadioButton","props$G","inputNumberProps","marks","showStep","tooltipProps","onChangeEnd","getStopStyle","formatSliderValue","initialProps","useSliderTooltip","tooltipConfig","tooltipRef","showTooltip","normalizeProps","validProps","_tooltipConfig$value","vertical","formatLabel","toggleTooltip","toState","sliderPropsInjectKey","_SliderButton","_useSliderTooltip","parentProps","buttonRef","slideButtonProps","isClick","startX","startY","startPos","newPos","rangeDiff","currentPos","wrapperStyle","toggleDragging","setPosition","pos","perStepLen","precision","_tooltipRef$value$upd","_tooltipRef$value","onDragging","resetSize","parentSliderSize","sliderSize","touch","touches","onButtonDown","onKeyDown","stepLength","onNativeKeyDown","onTouchstart","TSliderMark","point","onClickMarkPoint","changeValue","_props$onClickMarkPoi","hiddenTextarea","_Slider","sliderValue","setSliderValue","sliderContainerRef","sliderRef","firstButtonRef","secondButtonRef","firstValue","secondValue","containerClass","sliderClass","sliderRailClass","runwayStyle","barStart","minValue","currentDiff","maxValue","barSize","stepCount","stepWidth","precisions","decimalArr","setValues","maxLimit","minLimit","preValue","emitChange","fixValue","isAlreadyMount","valuetext","percent","getFixValue","onSliderClick","_props2$onChangeEnd","sliderOffsetLeft","_props2$onChangeEnd2","_newVal","newStates","prevStates","markList","markConfig","prefixName","renderMask","markProps","legalMarks","marksList","onChangeFn","renderInputNumber","sliderInputState","_config$value$step$to","initialState","_inputProps$inputNumb","inputTheme","sliderNumberClass","changeFn","_config$value","_config$value$onChang","useSliderInput","TSliderButton","onMouseup","_props2$onChangeEnd3","_props2$onChangeEnd4","firstInputVal","secondInputVal","Slider","SliderButton","props$F","beforeChange","customValue","_Switch","setSwitchVal","inactiveValue","handleToggle","toggle","nodeClasses","switchContent","loadingContent","Switch","props$E","autosize","calcTextareaHeight","_hiddenTextarea","minRows","maxRows","_calculateNodeSize","paddingSize","borderSize","boxSizing","sizingStyle","calculateNodeSize","isBorderbox","singleRowHeight","calcHeight","rows","rowsHeight","minHeight","_Textarea","TEXTAREA_TIPS_CLASS","TEXTAREA_LIMIT","textareaStyle","refTextareaElem","isComposing","adjustTextareaHeight","_refTextareaElem$valu3","_props2$autosize","stringInfo","textareaElem","eventDeal","_props2$eventName","eventName","emitKeyDown","emitKeyUp","emitKeypress","textareaClasses","characterNumber","characterInfo","_refTextareaElem$valu","_refTextareaElem$valu2","_String","textTips","limitText","Textarea","SOURCE","TARGET","getTransferListOption","getDataValues","filterValues","_ref$isTreeMode","isTreeMode","_ref$include","_ref$remainValue","remainValue","isInclude","childResult","getTransferData","transferDataItem","_transferDataItem$dis","labelKey","valueKey","disabledKey","isTreeNodeValid","needMatch","_data$children","cloneTreeWithFilter","sourceTree","targetTree","newNode","isAllNodeValid","filterTransferData","getLefCount","Search","SearchIcon","TdSearchIcon","changeCtx","checkboxProps","dataSource","listType","checkedValue","transferItem","footer","onPageChange","onDataChange","TransferList","filterValue","currentPage","filteredData","filteredTreeData","pageTotal","curPageData","pageData","paginationProps","handleDataChange","dragoverIndex","dragoverPos","currentDraggingIndex","currentDragoverIndex","sourceItem","targetItem","sourceIndex","currentElement","elemHeight","dragY","insertAreaHeight","onDragLeave","isAllChecked","allValue","totalCount","lastPage","handlePaginationChange","_props2$onPageChange","handleCheckedChange","_props2$onCheckedChan","handleCheckedAllChange","query","_slot4","_slot2","isDraggable","TCheckboxGroup","_slot3","renderEmpty","TCheckbox","titleNode","props$C","operation","showCheckAll","targetDraggable","targetSort","TransferOperations","leftDisabled","rightDisabled","moveToRight","moveToLeft","getIconRight","getIconLeft","getIcon","renderButton","_props2$operation","_Transfer","valueList","leftButtonDisabled","rightButtonDisabled","transferData","sourceList","targetList","hasFooter","showPagination","showSearch","footerOption","emptyOption","searchOption","disabledOption","titleOption","paginationOption","sourceChecked","targetChecked","transferTo","toDirection","newTargetValue","oldTargetValue","selfCheckedValue","movedValue","transferToRight","transferToLeft","renderTransferList","scopedSlots","bottomDistance","onMoveToRight","onMoveToLeft","Transfer","_TimePicker","TimeIcon","TdTimeIcon","inputClasses","handleShowPopup","_props2$onOpen","handleInputChange","handleInputBlur","handleClickConfirm","handlePanelChange","TSelectInput","TimePickerPanel","props$B","_TimeRangePicker","currentPanelIdx","handleTimeChange","_currentValue$value$","_currentValue$value$2","handleOnPick","_currentValue$value$3","_currentValue$value$4","_previousValue$","_previousValue$2","previousValue","_props2$onInput","autoSwapTime","_currentValue$value","endTime","startDayjs","endDayjs","pickValue","pickedRangeValue","_currentValue$value$5","_currentValue$value$6","TimePicker","TimeRangePicker","TreeItemDefinition","onDrag","getCreateElement","Vue","refsProps","defaultPropName","eventPropName","tdUseVModel","tdUseDefaultValue","DragPosition","useDraggable","treeItemRef","dragStates","isDragOver","isDragging","dropPosition","setDragStatus","dragEvent","_drag$handleDragStart","_drag$handleDragEnd","_drag$handleDragOver","_drag$handleDragLeave","_drag$handleDrop","drag","treeScope","handleDragStart","throttleUpdateDropPosition","handleDragEnd","handleDragOver","handleDragLeave","handleDrop","_rootNode$getBounding","offsetY","pageY","gapHeight","updateDropPosition","_evt$dataTransfer","dataTransfer","setData","emitEvent","evtName","apiName","getParentsToRoot","getMark","getParentMarks","getTNode","_conf$node","tnode","isTreeNodeValue","useTreeAction","treeState","_state$vmValue","vmValue","_state$vmActived","vmActived","tActived","setTActived","_state$vmExpanded","vmExpanded","tExpanded","setTExpanded","evtCtx","pathMatchClass","replaceActived","toggleExpanded","toggleActived","toggleChecked","useItemEvents","clicked","evtContext","Event","_srcTarget$className","_srcTarget$className$","_treeScope$treeProps","expandOnClickNode","srcTarget","isBranchTrigger","useRenderIcon","handleMousedown","CaretRightSmallIcon","isDefaultIcon","iconNode","TdCaretRightSmallIcon","ignore","onmousedown","useRenderLabel","shouldStopLabelTrigger","isNormalBranchNode","isLazyLoadChildBranchNode","checkboxDisabled","itemCheckProps","_labelNode","TCheckBox","inner","useTreeItem","virtualConfig","treeContentRef","scrollProps","_useRenderLine","renderLine","line","iconVisible","lineNode","lineClasses","shadowStyles","useRenderLine","_useRenderOperations","renderOperations","opNode","useRenderOperations","_useDraggable","_useLazyLoad","childRef","tRowHeight","isInit","hasLazyLoadHolder","cb","useLazyLoad","tryNotifyVirtualScrollRowUpdate","itemNodes","renderItemNode","levelStyle","getItemStyles","getItemClassList","onDragleave","treeItemProps","itemKey","TreeItem","_useItemState","refProps","useItemState","useTreeNodes","scope","_useTreeEvents","_useTreeAction","evtState","shouldExpand","shouldActive","isRightClick","markName","markValue","useTreeEvents","nodesEmpty","cacheMap","refreshVisibleNodes","hasVisibleNode","refreshVirtualNodes","renderTreeNodes","treeNodeViews","nodeUniqueId","useTreeScroll","isScrolling","scrollStopTimer","srcElement","_props$onScroll","emitScrollEvent","_allNodes$value","formatCSSUnit","unit","props$A","defaultActived","allowDrop","onActive","_TdTree","_useTreeState","setStore","useTreeState","_useTreeStore","updateStoreConfig","storeProps","filterChanged","prevExpanded","expandFilterPath","pathValues","checkFilterExpand","newFilter","previousFilter","handleLoad","nVal","previousVal","rebuild","useTreeStore","dragNode","_props$allowDrop","dropNode","Inside","Before","useDragHandle","_useTreeScroll","_useTreeNodes","_useTreeStyles","treeClasses","treeContentStyles","scrollStyles","cursorStyles","translate","useTreeStyles","setItem","setupMethod","getItem","getItems","appendNodes","getNodeIndex","pathNodes","getTreeData","itemData","parentData","_allNodes$value$filte","_refProps$scroll$valu","_refProps$scroll$valu2","$slots","cname","emptyNode","emptyContent","treeNodeList","$props","TransitionGroup","topValue","placeholderStyles","placeholderEl","Tree","tdWithInstall","props$z","rComma","rValue","rColor","rColorStop","rColorStopList","rLineCapture","_TreeSelect","treeRef","nodeInfo","treeKey","treeSelectValue","setTreeSelectValue","setInnerInputValue","setTreeParentsExpanded","realValue","realChildren","_currentTargetValue","currentTargetValue","findPath","parentPath","newPath","findParentValues","treeParents","flatMap","changeNodeInfo","treeRerender","filterByText","realLabel","_nodeInfo$value","popupClass","isObjectValue","multiLimitDisabled","_treeSelectValue$valu","valueParam","treeNodeChange","getNodeItem","treeNodeActive","treeNodeExpand","treeNodeLoad","inputChange","_props2$onSearch2","tagChange","getMultipleNodeInfo","getSingleNodeInfo","getTreeNode","TreeSelect","props$y","colorModes","enableAlpha","enableMultipleGradient","recentColors","defaultRecentColors","showPrimaryColorPreview","swatchColors","onPaletteBarChange","onRecentColorsChange","REG_CMYK_STRING","cmykInputToColor","_cmyk2rgb","cmyk2rgb","COLOR_MODES","monochrome","DEFAULT_LINEAR_GRADIENT","DEFAULT_SYSTEM_SWATCH_COLORS","FORMATS","ALPHA_FORMAT_MAP","HEX","RGB","HSL","HSV","COLOR_FORMAT_INPUTS","CMYK","CSS","combineRegExp","regexpList","flags","REGEXP_LIB","gradientSearch","colorStopSearch","REG_GRADIENT","isGradientColor","sideCornerDegreeMap","parseGradientString","gradientColors","points","degree","regExpLib","matchColorStop","stopResult","matchGradient","original","colorStopList","angle","sideCorner","parseGradient","tinyColor","mathRound","hsv2rgba","states","gradientColors2string","colorsStop","pA","pB","genGradientPoint","Color","colors","selectedId","originColor","isGradient","colorHsv","updateCurrentGradientColor","colorInput","_points$","_this$gradientSelecte","_this$gradientStates$","gradientStates","linearGradient","gradientSelectedPoint","updateStates","_hsv2rgba","_hsv2rgba2","_this$getHsva","getHsva","_this$getHsva2","_this$getHsla","getHsla","_this$getHsla2","_this$getCmyk","getCmyk","gradientDegree","_this$gradientSelecte2","gradientSelectedId","cmyk","RGBA","HSLA","HSVA","HEX8","finalFormat","getFormatsColorMap","_hsv2rgba3","_this$getRgba","getRgba","_rgb2cmyk","computedC","computedM","computedY","minCMY","rgb2cmyk","_rgb2cmyk2","_hsv2hsva","_hsv2hsla","_Color","_defineProperty$2","isGradientColor1","isGradientColor2","gradientStr1","gradientStr2","COLOR_OBJECT_OUTPUT_KEYS","getColorObject","colorObject","defaultsOptions","coordinate","_Draggable_brand","WeakSet","Draggable","_classPrivateMethodInitSpec","handles","_assertClassBrand","_dragStart","_drag","_dragEnd","_getCoordinate","getColorFormatMap","getColorFormatInputs","configs","useBaseClassName","baseClassName","PanelHeader","togglePopup","onModeChange","modeValue","handleModeChange","_props2$colorModes","DELETE_KEYS","LinearGradient","statusClassNames","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","props$x","FormatInputs","lastModelValue","updateModelValue","throttleUpdate","_props2$color","object2color","FormatPanel","formatModel","newProps","SwatchesPanel","editable","onSetColor","handleAddColor","DeleteIcon","TdDeleteIcon","visiblePopConfirm","isEqualCurrentColor","compare","selectedColorIndex","handleRemoveColor","selectedIndex","swatchesClass","ColorPanel","innerRecentColors","setInnerRecentColors","getModeByColor","defaultEmptyColor","initColorFormat","addRecentlyUsedColor","currentColor","handleRecentlyUsedColorsChange","emitColorChange","getFormattedColor","newMode","isGradientMode","handleSatAndValueChange","_color$value","sat","changeTrigger","handleHueChange","_props2$onPaletteBarC","handleAlphaChange","handleGradientChange","handleSetColor","onlySupportGradient","showUsedColors","systemColors","showSystemColors","renderSwatches","_ColorPickerPanel","pickBy","DefaultTrigger","onTriggerChange","onTriggerClear","_props$onTriggerClear","inputSlots","_ColorPicker","refTrigger","renderPopupContent","popProps","TPopup","ColorPickerPanel","ColorPicker","props$w","alt","hideOnLoadFailed","imageProps","onError","props$v","fallback","fit","gallery","overlayContent","overlayTrigger","referrerpolicy","src","srcset","_Image","divRef","imgRef","_imgRef$value","complete","triggerHandleLoad","handleLoadImage","imageStrSrc","replaceImageSrc","tmpUrl","hasError","isLoaded","shouldLoad","_props2$onLoad","loadEvent","handleError","_props2$onError","hasMouseEvent","imageClasses","shouldShowOverlay","handleToggleOverlay","renderImage","renderTNodDefault","ImageIcon","Image","_Avatar","avatarGroup","avatar","avatarChild","isImgExist","scale","sizeValue","isCustomSize","customAvatarSize","customImageSize","customCharacterSize","handleImgLoadError","setScaleParams","$avatar","$avatarChild","avatarWidth","avatarChildWidth","isIconOnly","avatarClass","props$u","cascading","collapseAvatar","_AvatarGroup","AVATAR_NAME","renderEllipsisAvatar","getEllipsisContent","outAvatar","Avatar","AvatarGroup","props$t","dot","maxCount","showZero","_Badge","displayCount","isHidden","badgeClassNames","inlineStyle","_getOffset","xOffset","yOffset","Badge","props$s","cell","cellAppend","head","isShowWeekendDefault","preventCellContextmenu","onCellDoubleClick","onCellRightClick","onControllerChange","MIN_YEAR","DAY_CN_MAP","dt","addDate","days","createMonthCellsData","curSelectedYear","curSelectedMonth","realFirstDayOfWeek","curDate","curDateList","begin","beginDateColIndex","getCellColIndex","createCellData","belongTo","weekOrder","formattedDate","filterDate","formattedFilterDate","isShowWeekend","judgeIsCurrent","nextMonthCellNum","createDefaultCurDate","useState","curSelectedMode","controlSize","setCurrentDate","toToday","checkDayVisible","re","getDefaultControllerConfigData","radioGroupProps","weekend","showWeekendButtonProps","hideWeekendButtonProps","currentDayButtonProps","currentMonthButtonProps","useColHeaders","weekDisplayText","getWeekDisplay","weekNum","numStr","weekText","cellColHeaders","clickTypeEmitEventMap","dblclick","contextmenu","CalendarCellItem","prefixClass","tableBodyCell","tableBodyCell4Now","tableBodyCellDisplay","tableBodyCellCsontent","_props$fillWithZero","dateNum","allowSlot","cellCls","_props$item","isNow","clickCell","emitName","onDblclick","onContextmenu","_Calendar","_useState","control","controlSection","controlSectionCell","controlTag","tableHead","tableHeadRow","tableHeadCell","tableBody","tableBodyRow","useCalendarClass","controller","dayJsFilterDate","configData","_props$controllerConf","checkControllerVisible","checkControllerDisabled","emitControllerChange","userController","rangeFromTo","_props2$range","v1","checkMonthAndYearSelectedDisabled","beginYear","dateSelect","yearSelectOptionList","isYearSelectVisible","isYearSelectDisabled","monthSelectOptionList","_rangeFromTo$value","_rangeFromTo$value2","beginMon","adjustMonth","isMonthSelectVisible","isMonthSelectDisabled","modeSelect","weekendBtn","vBind","currentBtn","cellClickEmit","eventPropsName","cellData","doubleClickCell","rightClickCell","monthCellsData","utils","yearCellsData","monthsArr","rowCount","TRadioGroup","TCheckTag","weekIndex","itemIndex","onRightclick","cellIndex","Calendar","props$r","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$q","author","datetime","reply","_Comment","showAuthorDatetime","replyDom","quoteDom","avatarDom","authorDatetimeDom","contentDom","flatChildren","renderActions","props$p","imageStyle","MaintenanceSvg","NetworkErrorSvg","EmptySvg","FailSvg","SuccessSvg","_Empty","components","TImage","propsImage","propsDescription","propsTitle","defaultMaps","emptyClasses","titleClasses","descriptionClasses","actionClass","typeImageProps","_defaultMaps$type$val","showImage","_slots$image","_typeImageProps$value","_slots$title","_typeImageProps$value2","_slots$description","Empty","useDrag","initTransform","mouseDownHandler","pageX","_transform$value","translateX","mouseMoveHandler","mouseUpHandler","resetTransform","TImageItem","rotate","placementSrc","isSvg","imageReferrerpolicy","loaded","_useDrag","svgElRef","imgStyle","placementImgStyle","boxStyle","createSvgShadow","_element$classList","response","svgText","shadowRoot","svgElement","svgViewBox","viewBoxValues","svgViewBoxWidth","bbox","calculatedViewBox","fetch","statusText","innerHTML","attachShadow","getBBox","mainImagePreviewUrl","placementImagePreviewUrl","ImageErrorIcon","TImageViewerIcon","wrapClass","props$o","cancelBtn","confirmBtn","confirmLoading","confirmOnEnter","dialogClassName","dialogStyle","showInAttachedElement","onBeforeClose","onBeforeOpen","onCancel","onClosed","onEscKeydown","onOpened","useAction","getButtonByProps","defaultButtonProps","getConfirmBtn","globalConfirm","globalConfirmBtnTheme","confirmBtnAction","getDefaultConfirmBtnProps","getCancelBtn","globalCancel","cancelBtnAction","getDefaultCancelBtnProps","getScrollbarWidth","getCSSValue","dialogCardProps","mousePosition","_DialogCard","directives","windowInnerWidth","windowInnerHeight","targetEvent","disX","disY","dialogW","dialogH","mouseMoverHandler","documentEvent","dialogProps","rootRef","_useAction","_props$onCancel","isModeLess","isFullScreen","closeBtnAction","_props$onCloseBtnClic","onStopDown","resetPosition","dialogClass","confirmBtnLoading","_confirmBtn$value","defaultFooter","footerContent","headerClassName","closeClassName","bodyClassName","footerClassName","_Dialog","dialogCardRef","_props2$onCancel","emitCloseEvent","styleEl","isModal","computedVisible","maskClass","positionClass","topStyle","isMounted","destroySelf","_styleEl$value$parent","_styleEl$value$parent2","_document$activeEleme","_dialogCardRef$value","addKeyboardEvent","MOUSEDOWN_TARGET","MOUSEUP_TARGET","keyboardEvent","keyboardEnterEvent","_props2$onConfirm2","_props2$onEscKeydown","_props2$closeOnEscKey","stopImmediatePropagation","_useSameTarget","_props2$closeOnOverla","_props2$onBeforeOpen","_props2$onOpened","_props2$onBeforeClose","_dialogCardRef$value2","_dialogCardRef$value3","_props2$onClosed","shouldRender","view","otherProps","TDialogCard","renderDialog","ctxStyle","ctxClass","onBeforeEnter","onAfterLeave","createDialog","preClassName","updateClassNameStyle","_wrapper$firstElement","firstElementChild","cssText","dialogOptions","DialogComponent","DialogPlugin","setConfirmLoading","$dialog","Dialog","DialogCard","props$n","closeOnOverlay","imageScale","images","defaultIndex","navigationArrow","viewerScale","onDownload","onIndexChange","TImageViewerUtils","onRotate","onZoomIn","onZoomOut","onMirror","currentImage","mainImage","TToolTip","MirrorIcon","RotationIcon","ZoomOutIcon","ZoomInIcon","DownloadIcon","TImageViewerModal","renderJSX","TDialog","thumbnail","EVENT_CODE","formatImages","File","isImageInfo","_ImageViewer","_props2$defaultIndex","isExpand","showOverlayValue","indexValue","setIndexValue","visibleValue","setVisibleValue","animationEnd","animationTimer","headerClass","zIndexValue","_props2$zIndex","toggleExpand","_useMirror","resetMirror","useMirror","_useScale","defaultScale","setScale","resetScale","newScale","useScale","_useRotate","resetRotate","useRotate","onRest","_images$value$indexVa","prevImage","nextImage","onDownloadClick","imgSrc","_imgSrc$split","_imgSrc$split$split","_imgSrc$split$split$s","canvas","getContext","drawImage","toBlob","blob","URL","createObjectURL","revokeObjectURL","downloadFile","openHandler","clickOverlayHandler","keydownHandler","up","down","esc","_divRef$value","_divRef$value$focus","transStyle","onImgClick","renderNavigationArrow","rotateDeg","renderCloseBtn","ImageViewer","props$m","_ListItem","propsContent","propsDefaultContent","propsActionContent","props$l","asyncLoading","stripe","onLoadMore","LOAD_MORE","_List","listRef","listItems","computedListItems","listItemSlots","_useListVirtualScroll","listStyle","useListVirtualScroll","listClass","listElement","scrollBottom","loadingClass","renderLoading","handleLoadMore","_props2$onLoadMore","propsHeaderContent","propsFooterContent","TListItem","props$k","_ListItemMeta","renderAvatar","propsTitleContent","propsDescriptionContent","listItemMetaContent","List","ListItem","ListItemMeta","PRO_THEME","CIRCLE_SIZE","CIRCLE_SIZE_PX","CIRCLE_FONT_SIZE_RATIO","STATUS_ICON","props$j","percentage","strokeWidth","trackColor","_Progress","ErrorIcon","TdErrorIcon","CIRCLE_ICONS_MAP","NORMAL_ICONS_MAP","statusStyle","trackBgStyle","circlePathStyle","circleOuterStyle","diameter","diameterValue","SMALL","LARGE","MEDIUM","customSize","rPoints","radius","circleStrokeWidth","circleStyle","defaultWidth","strokeDashArr","perimeter","PI","getIconMap","getLabelContent","labelContentRender","infoIsOut","infoRef","separateClasses","_updateInfoIsOut","infoEl","cx","cy","Progress","props$i","rowCol","ThemeMap","paragraph","tab","article","getColItemStyle","px","_Skeleton","isShow","getColItemClass","renderRowCol","_rowCol","renderCols","_cols","bool","Skeleton","props$h","animationStart","trend","trendPlacement","quartOut","Tween","_ref$duration","onStart","_ref$onUpdate","started","finished","_this$onFinish","elapsed","_this$onStart","delta","interval","setInterval","clearInterval","tick","polyfillStart","normalStart","COLOR_MAP","_Statistic","_props2$animation$val","_props2$animation","ArrowTriangleUpFilledIcon","TDArrowTriangleUpFilledIcon","ArrowTriangleDownFilledIcon","TDArrowTriangleDownFilledIcon","trendIcons","increase","decrease","numberValue","valueFrom","innerDecimalPlaces","_props2$decimalPlaces","_numberValue$value$to","tween","_props2$animation$val2","_props2$animation2","_tween$value","formatValue","minimumFractionDigits","maximumFractionDigits","useGrouping","toLocaleString","getFormatValue","_tween$value2","trendIcon","Statistic","props$g","autoplay","loop","navigation","stopOnHover","cardScale","swiperItemProps","isSwitching","getWrapAttribute","swiperItemLength","itemWidth","_SwiperItem","disposeIndex","translateIndex","isActivity","inStage","itemStyle","defaultNavigation","showSlideBtn","_Swiper","swiperTimer","swiperSwitchingTimer","isBeginToEnd","isEndToBegin","navActiveIndex","isHovering","swiperWrap","navigationConfig","propsToUpdateSetTimer","swiperWrapClass","containerStyle","swiperItems","swiperItemList","swiperItem","TSwiperItem","cloneVNode","swiperTo","goNext","goPrevious","_swiperWrap$value","renderNavigation","fractionIndex","navigationSlot","renderPagination","onMouseEnterNavigationItem","onClickNavigationItem","renderSwiperItems","Swiper","SwiperItem","baseTableProps","activeRowKeys","defaultActiveRowKeys","activeRowType","allowResizeColumnWidth","cellEmptyContent","columns","disableDataPage","disableSpaceInactiveRow","firstFullRow","footData","footerAffixProps","footerAffixedBottom","footerSummary","headerAffixProps","headerAffixedTop","horizontalScrollAffixedBottom","keyboardRowHover","lastFullRow","paginationAffixedBottom","resizable","rowAttributes","rowClassName","rowKey","rowspanAndColspan","rowspanAndColspanInFooter","tableContentWidth","verticalAlign","onActiveChange","onActiveRowAction","onColumnResizeChange","onRowClick","onRowDblclick","onRowMousedown","onRowMouseenter","onRowMouseleave","onRowMouseover","onRowMouseup","onScrollX","onScrollY","getNodeDepth","depthMap","maxDepth","_col$children","getChildrenNodeWidth","countNew","childrenList","getThRowspanAndColspan","columnsDepth","rowspanAndColspanMap","leafColumns","_col$children2","rowspan","useClassName","tableBaseClass","columnResizableTable","overflowVisible","paginationWrap","tdLastRow","tdFirstCol","thCellInner","tableRowEdit","cellEditable","cellEditWrap","striped","emptyRow","headerFixed","columnFixed","widthOverflow","multipleHeader","footerAffixed","horizontalBarAffixed","affixedHeader","affixedHeaderElm","affixedFooterElm","affixedFooterWrap","scrollbarDivider","fullHeight","resizeLine","obviousScrollbar","affixedHeaderWrap","tdAlignClasses","tableHeaderClasses","thBordered","fixed","tableFooterClasses","tableAlignClasses","middle","tableRowFixedClasses","firstBottom","withoutBorderBottom","tableColFixedClasses","lastLeft","firstRight","leftShadow","rightShadow","tableLayoutClasses","tdEllipsisClass","tableFullRowClasses","base","innerFullRow","innerFullElement","tableExpandClasses","iconBox","iconCell","rowExpanded","rowFolded","rowInner","tableSortClasses","sortable","sortColumn","doubleIcon","iconDirection","asc","desc","iconActive","iconDefault","tableSelectedClasses","checkCell","tableFilterClasses","popupContent","bottomButtons","contentInner","iconWrap","asyncLoadingClass","isFocusClass","isLoadingClass","isLoadMoreClass","tableTreeClasses","inlineCol","leafNode","tableDraggableClasses","rowDraggable","rowHandlerDraggable","colDraggable","chosen","dragSortTh","virtualScrollClasses","positiveRotate90","negativeRotate180","TEllipsis","tooltipContent","flag","isOverflow","ellipsisClasses","innerEllipsisClassName","onMouseAround","cellNode","rProps","colIndex","useTableHeader","_useClassName","spansAndLeafNodes","thList","thRows","_children","thRowData","isMultipleHeader","renderTitleWidthIcon","ellipsisTitle","isEllipsis","ellipsisOverlayClassName","useColumnResize","originalSelectStart","originalDragStart","isWidthOverflow","tableContentRef","showColumnShadow","getThWidthList","updateThWidthList","setTableElmWidth","updateTableAfterColumnResize","resizeLineRef","effectColMap","hasDocument","onselectstart","ondragstart","getSiblingResizableCol","setEffectColMap","prevNode","nextNode","parentPrevCol","colKey","parentNextCol","prevSibling","nextSibling","resizeLineParams","draggingCol","draggingStart","effectCol","resizeLineStyle","isColRightFixActive","getMinMaxColWidth","targetCol","_targetCol$resize","_targetCol$resize2","propMinWidth","minColWidth","maxColWidth","getOtherResizeInfo","effectPrevCol","targetBoundRect","tableBoundRect","resizeLinePos","colLeft","_getMinMaxColWidth","minResizeLineLeft","maxResizeLineLeft","getNormalResizeInfo","getFixedToLeftResizeInfo","onColumnMouseover","_col$resizable","thRightCursor","thLeftCursor","isFixedToRight","prevEl","previousElementSibling","_effectColMap$value$c","_effectPrevCol$resiza","onColumnMousedown","_tableContentRef$valu","_effectColMap$value$c2","_effectColMap$value$c3","effectNextCol","colkey","_getMinMaxColWidth2","getFixedToRightResizeInfo","_effectColMap$value$c4","moveDistance","thWidthList","currentCol","currentSibling","newThWidthList","tmpCurrentCol","canResizeSiblingColWidth","isWidthAbnormal","_getMinMaxColWidth3","targetNextColWidth","getSiblingColCanResizable","tableWidth","getTotalTableWidth","columnsWidth","getColumnFixedStyles","rowAndColFixedPosition","fixedPos","thClasses","lastLeftFixedCol","firstRightFixedCol","useFixed","finalColumns","tableRef","isFixedHeader","tableElmRef","scrollbarWidth","virtualScrollHeaderPos","tableElmWidth","isFixedColumn","isFixedRightColumn","isFixedLeftColumn","columnResizable","_allowResizeColumnWid","notNeedThWidthList","getColumnMap","levelNodes","columnInfo","newColumnsMap","shadowLastScrollLeft","setFixedLeftPos","initialColumnMap","colInfo","lastColIndex","lastCol","lastColInfo","setFixedRightPos","_col$children3","updateRowAndColFixedPosition","tableContentElm","thead","trList","thLen","_obj$col","th","innerText","setFixedColPosition","tbody","tfoot","fixedTopRows","fixedBottomRows","_props$rowKey","rowId","thisRowInfo","lastRowId","lastRowInfo","defaultBottom","setFixedRowPosition","updateColumnFixedShadow","skipScrollLimit","isShowRight","isShowLeft","updateFixedStatus","_getColumnMap","colMapInfo","nextColMapInfo","lastColMapInfo","setIsLastOrFirstFixedCol","_fixedRows$value","updateFixedHeader","updateAffixPosition","_affixRef$paginationA","_affixRef$paginationA2","_affixRef$horizontalS","_affixRef$horizontalS2","_affixRef$headerTopAf","_affixRef$headerTopAf2","_affixRef$footerBotto","_affixRef$footerBotto2","paginationAffixRef","horizontalScrollAffixRef","headerTopAffixRef","footerBottomAffixRef","calculateThWidthList","widthMap","HTMLCollection","updateThWidthListHandler","_tableContentRef$valu2","_tableElmRef$value","reduceWidth","elmRect","updateTableWidth","_tableContentRef$valu3","preFinalColumns","finalColKeys","preColKeys","reduceKeys","rootThWidthList","oldTotalWidth","contentWidth","widthToReserve","refreshTable","scrollDiv","getScrollbarWidthWithCSS","isWatchResize","hasResizeObserver","_resizeObserver2","_props$onScrollX","_props$onScrollY","setUseFixedTableElmRef","addTableResizeObserver","tableElement","usePagination","innerPagination","isPaginateData","updateDataSourceAndPaginate","_pagination$value","_pagination$value2","_pagination$value3","_innerPagination$valu","_innerPagination$valu2","_props$pagination","_props$pagination$onC","_props$onPageChange","useAffix","affixHeaderRef","affixFooterRef","horizontalScrollbarRef","paginationRef","showAffixHeader","showAffixFooter","showAffixPagination","isMousedown","isMouseInScrollableArea","isAffixed","lastScrollLeft","onHorizontalScroll","toUpdateScrollElement","isAffixedBottomElementShow","elementRect","tableRect","headerHeight","updateAffixHeaderOrFooter","_affixFooterRef$value","headerRect","footerRect","footerHeight","horizontalScrollbarRect","pageRect","onDocumentScroll","onFootScroll","onHeaderScroll","horizontalScrollbarScroll","onTableContentScroll","onFootMouseEnter","onFootMouseLeave","onHeaderMouseEnter","onMouseEnterScrollableArea","onHeaderMouseLeave","onMouseLeaveScrollableArea","onScrollbarMouseEnter","onScrollbarMouseLeave","onTableContentMouseEnter","onTableContentMouseLeave","activatingTouchScrollListenerCleanups","setupElementTouchScrollListener","debounceOffScrollListener","onElementTouchScroll","onElementTouchStart","composedPath","removeElementTouchScrollListener","elementTouchScrollCleanups","removeHorizontalScrollListeners","addVerticalScrollListener","addHorizontalScrollListeners","setTableContentRef","tableContent","formatRowAttributes","attrList","attrItem","attrProperty","formatRowClassNames","rowClassNames","rowClassList","customClasses","rName","tClass","formatClassNames","getCurrentRowByKey","_columns$i","_columns$i2","getAffixProps","mainAffixProps","subAffixProps","getCellKey","rowValue","useRowspanAndColspan","skipSpansMap","onTrRowspanOrColspan","skipSpansValue","maxRowIndex","maxColIndex","cellKey","skipped","_skipSpansMap$value","colLen","updateSkipSpansMap","TABLE_PROPS","ROW_LISTENERS","renderCell","tCurrent","tPageSize","TrElement","dataLength","tableElm","trRef","trStyles","rowLength","virtualTranslateY","fixedBottom","firstFixedBottomRow","getRowFixedStyles","trAttributes","_trStyles$value","notifyVirtualSizeUpdate","_props$virtualConfig","renderEllipsisCell","cellParams","_trStyles$value2","columnVNodeList","cellSpans","spanState","_spanState","_spanState2","tdStyles","normalAttrs","renderTd","columnLength","trListeners","_props","getTrListeners","extendTableProps","TBody","renderExpandedRow","activeRow","hoverRow","tbodyClasses","_data$value","_data$value2","_props$virtualConfig2","getFullRow","tType","fullRowNode","isFixedToLeft","trNodeList","properties","renderData","_props$activeRow","trProps","trNode","onRowMounted","expandedContent","posStyle","useStyle","tableSize","_size$value","tableClasses","tableContentStyles","tableElementStyles","THead","thDraggable","columnResizeParams","theadRef","classnames","theadClasses","colspanSkipMap","processColumns","thBorderMap","thRowspanAndColspan","renderThNodeList","thRow","thStyles","colParams","thCustomClasses","thClassName","isLeftFixedActive","isRightFixedActive","canDragSort","withoutChildren","innerTh","resizeColumnListener","_props$columnResizePa","_props$columnResizePa2","_thList$index","onMousemove","_props$columnResizePa3","_props$columnResizePa4","_parent","getTableNode","TFoot","virtualScroll","renderTFootCell","foot","_props$footData","footerDomList","_props$thWidthList","useRowHighlight","currentOperationRowIndex","isShiftPressed","shiftSelectionState","areaSelectionStartIndex","tActiveRow","setTActiveRow","getActiveRowList","onHighlightRow","newActiveRowData","newActiveRowKeys","activeRowList","currentRowData","handleShiftActive","handleInactive","handleActive","clearShiftAreaSelection","keyboardDownListener","_props$onActiveRowAct2","activeKeys","_props$onActiveRowAct","_props$onActiveRowAct3","_props$onActiveRowAct4","keyboardUpListener","_e$key2","addHighlightKeyboardListener","removeHighlightKeyboardListener","_BaseTable","onLeafColumnsChange","tableBodyRef","bottomContentRef","tableFootHeight","_useStyle","_useTableHeader","_spansAndLeafNodes$va","_props2$size","_useElementLazyRender","showElement","_ioObserver$value","_ioObserver$value$uno","useElementLazyRender","_useFixed","_useAffix","_usePagination","dynamicBaseTableClasses","tableElmClasses","showRightDivider","dividerBottom","_bottomContentRef$val","_paginationRef$value","bottomRect","paginationRect","_useRowHighlight","_useHoverKeyboardEven","currentHoverRowIndex","tableRefTabIndex","needKeyboardRowHover","onHoverRow","ctrlKey","metaKey","clearHoverRow","addRowHoverKeyboardListener","removeRowHoverKeyboardListener","useHoverKeyboardEvent","_props2$onLeafColumns","syncThWidthList","virtualScrollParams","getTFootHeight","_tableElmRef$value$qu","onTableFocus","onTableBlur","onInnerRowClick","_props2$onRowClick","scrollColumnIntoView","thDom","fixedThDom","totalWidth","domRect","_tableData$value","_tableBodyRef$value","_el$children","_params$top","_params$behavior","scrollBy","_props2$allowResizeCo","_affixHeaderRef$value","_props2$footData","_tableFootHeight$valu","_tableFootHeight$valu2","_affixHeaderHeight$va","defaultColWidth","renderColGroup","isAffixHeader","headProps","IEHeaderWrap","barWidth","affixHeaderHeight","_affixHeaderRef$value2","affixHeaderWrapHeight","headerOpacity","affixHeaderWrapHeightStyle","affixedLeftBorder","affixHeaderWithWrap","marginScrollbarWidth","affixedFooter","virtualStyle","tableBodyProps","getCustomLoadingText","primaryTableProps","columnController","columnControllerVisible","defaultColumnControllerVisible","displayColumns","defaultDisplayColumns","dragSortOptions","editableCellState","editableRowKeys","expandOnRowClick","expandedRow","expandedRowKeys","defaultExpandedRowKeys","filterRow","defaultFilterValue","indeterminateSelectedRowKeys","multipleSort","reserveSelectedRowOnPaginate","rowSelectionAllowUncheck","rowSelectionType","selectOnRowClick","selectedRowKeys","defaultSelectedRowKeys","showSortColumnBgColor","defaultSort","sortOnRowDraggable","onAsyncLoadingClick","onColumnChange","onColumnControllerVisibleChange","onDisplayColumnsChange","onExpandChange","onFilterChange","onRowEdit","onRowValidate","onSelectChange","onSortChange","ColumnCheckboxGroup","uniqueKey","allCheckedColumnKeys","allCheckedKeys","intersectionKeys","isCheckedAll","onCheckAllColumnsChange","changeParams","newKeys","handleCheckChange","getColumnKeys","useColumnController","SettingIcon","TdSettingIcon","dialogInstance","enabledColKeys","_columnController$val","tDisplayColumns","setTDisplayColumns","columnCheckboxKeys","checkboxGroupList","_columnController$val2","groupColumns","_columnController$val3","groupList","_column$children","oneItem","getOneColumnItem","len1","_groupList$j","getCheckboxGroupOptions","getCheckboxOptions","_columnController$val4","_props$onColumnChange","currentColumn","handleToggleColumnController","_columnController$val8","_columnController$val5","widthMode","displayType","columnControllerTopContent","columnControllerBottomContent","_columnController$val6","_columnController$val7","_props$onColumnContro","_props$onColumnContro2","renderColumnController","_props$columnControll","isColumnController","hideTriggerButton","buttonProps","isRowSelectedDisabled","selectColumn","getColumnDataByKey","_columns$i$children","getColumnIndexByKey","_columns$i$children2","getColumnsResetValue","resetValue","useRowSelect","currentPaginateData","selectedRowClassNames","tSelectedRowKeys","setTSelectedRowKeys","selectedRowDataMap","selectionType","_selectColumn$value","canSelectedRows","_selectColumn$value2","_selectColumn$value3","getRowSelectDisabledData","handleSelectChange","selectedRowIndex","isExisted","selectedRowData","currentRowKey","handleSelectAll","_selectedRowKeys$valu","reRowKey","canSelectedRowKeys","disabledSelectedRowKeys","allIds","_selectColumn$value4","disabledRowClass","selectedRowClass","showRowSelect","formatToRowSelectColumn","_p$row","_getRowSelectDisabled","selectBoxProps","_e$e","_props$indeterminateS","renderSelectCell","onInnerSelectRowClick","_getRowSelectDisabled2","selectedColIndex","handleRowSelectWithAreaSelection","validAreaSelection","areaSelectionKeys","toCheck","clearedKeys","newSelectedRowKeys","SorterButton","sortType","sortOrder","allowSortTypes","getSortIcon","activeClass","sortClassName","descending","onSortIconClick","tooltips","sortButton","_props$hideSortTips","cancelTips","useSorter","originalData","tSortInfo","setTSortInfo","tData","setTData","sorterFuncMap","getSorterFuncMap","innerSort","sortArray","sortMap","sortBy","sorter","handleDataSort","sortInfo","isEmptyArraySort","isEmptyObjectSort","formatedSort","sortResult","sortFunc","handleSortHeaderClick","getSingleNextSort","getMultipleNextSort","currentData","currentDataSource","getSortOrder","tmpSortInfo","tmpInnerSortInfo","_ret","isSortInfoSame","renderSortIcon","_sortMap$value$col$co","sorterButtonsProps","TableFilterController","tFilterValue","innerFilterValue","primaryTableElement","triggerElementRef","FilterIcon","TdFilterIcon","filterPopupVisible","renderComponent","filterComponentProps","isVueComponent","tProps","getFilterContent","_column$filter","_column$filter2","_column$filter3","_props$innerFilterVal","single","_column$filter$props","_column$filter4","_column$filter$props$","_column$filter$props2","confirmEvents","getBottomButtons","showConfirmAndReset","_props$tFilterValue","defaultFilterIcon","isObjectTrue","isValueExist","_props$onVisibleChang","isFilterValueExist","isArrayTrue","useFilter","primaryTableRef","isTableOverflowHidden","setTFilterValue","hasEmptyCondition","newFilterValue","getFilterResultContent","getAllColumns","_col$filter","_col$filter2","onInnerFilterChange","emitFilterChange","_column$filter$resetV","onResetAll","renderFilterIcon","_primaryTableRef$valu","renderFirstFilterRow","_props$data","filterContent","setFilterPrimaryTableRef","ownKeys","enumerableOnly","symbols","sym","getOwnPropertyDescriptor","_objectSpread2","getOwnPropertyDescriptors","defineProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","IE11OrLess","Edge","FireFox","Safari","IOS","ChromeForAndroid","captureMode","capture","getParentOrHost","includeCTX","_throttleTimeout","R_SPACE","toggleClass","currentStyle","matrix","selfOnly","appliedTransforms","matrixFn","DOMMatrix","WebKitCSSMatrix","CSSMatrix","MSCSSMatrix","getElementsByTagName","getWindowScrollingElement","scrollingElement","getRect","relativeToContainingBlock","relativeToNonStaticParent","undoScale","elRect","containerRect","elMatrix","isScrolledPast","elSide","parentSide","getParentAutoScrollElement","elSideVal","parentSideVal","childNum","includeDragEl","currentChild","Sortable","lastChild","lastElementChild","getRelativeScrollOffset","winScroller","includeSelf","elem","gotSelf","elemCSS","isRectEqual","Polymer","jQuery","Zepto","getChildContainingRectFromElement","ghostEl","_rect$left","_rect$top","_rect$right","_rect$bottom","animated","childRect","expando","AnimationStateManager","animationCallbackId","animationStates","captureAnimationState","fromRect","thisAnimationDuration","childMatrix","addAnimationState","removeAnimationState","indexOfObject","animateAll","animating","animationTime","toRect","prevFromRect","prevToRect","animatingRect","targetMatrix","sqrt","calculateRealTime","animationResetTimer","currentRect","animatingX","animatingY","forRepaintDummy","repaint","plugins","initializeByDefault","PluginManager","mount","plugin","pluginName","pluginEvent","eventCanceled","eventNameGlobal","initializePlugins","initialized","modified","modifyOption","getEventProperties","eventProperties","modifiedValue","optionListeners","originalEvent","dragEl","parentEl","rootEl","nextEl","lastDownEl","cloneEl","cloneHidden","dragStarted","moved","putSortable","activeSortable","oldIndex","oldDraggableIndex","newDraggableIndex","hideGhostForTarget","_hideGhostForTarget","unhideGhostForTarget","_unhideGhostForTarget","cloneNowHidden","cloneNowShown","dispatchSortableEvent","_dispatchEvent","toEl","fromEl","extraEventProperties","onName","CustomEvent","createEvent","initEvent","bubbles","cancelable","pullMode","lastPutMode","allEventProperties","dispatchEvent","activeGroup","tapEvt","touchEvt","lastDx","lastDy","tapDistanceLeft","tapDistanceTop","lastTarget","lastDirection","targetMoveDistance","ghostRelativeParent","awaitingDragStarted","ignoreNextClick","sortables","pastFirstInvertThresh","isCircumstantialInvert","ghostRelativeParentInitialScroll","_silent","savedInputChecked","documentExists","PositionGhostAbsolutely","CSSFloatProperty","supportDraggable","supportCssPointerEvents","_detectDirection","elCSS","elWidth","borderLeftWidth","borderRightWidth","child1","child2","firstChildCSS","secondChildCSS","firstChildWidth","secondChildWidth","gridTemplateColumns","touchingSideChild2","_prepareGroup","toFn","sameGroup","otherGroup","originalGroup","checkPull","checkPut","put","revertClone","nearestEmptyInsertDetectEvent","nearest","emptyInsertThreshold","insideHorizontally","insideVertically","_onDragOver","_checkOutsideTargetEl","_isOutsideThisEl","swapThreshold","invertSwap","invertedSwapThreshold","removeCloneOnHide","ghostClass","chosenClass","dragClass","preventOnFilter","dropBubble","dragoverBubble","dataIdAttr","delayOnTouchOnly","touchStartThreshold","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","nativeDraggable","_onTapStart","_onMove","dragRect","targetRect","willInsertAfter","retVal","onMoveFn","onMove","draggedRect","relatedRect","_disableDraggable","_unsilent","_generateId","_nextTick","_cancelNextTick","_getDirection","pointerType","originalTarget","inputs","_saveInputCheckedState","isContentEditable","criteria","_prepareDragStart","dragStartFn","_lastX","_lastY","_onDrop","_disableDelayedDragEvents","_triggerDragStart","_disableDelayedDrag","_delayedDragTouchMoveHandler","_dragStartTimer","_onTouchMove","_onDragStart","_dragStarted","_appendGhost","_nulling","_emulateDragOver","elementFromPoint","ghostMatrix","relativeScrollOffset","dx","dy","cssMatrix","_hideClone","cloneId","_loopId","effectAllowed","_dragStartId","revert","isOwner","canSort","fromSortable","completedFired","dragOverEvent","_ignoreWhileAnimating","completed","elLastChild","lastElRect","childContainingRect","spacer","_ghostIsLast","changed","firstElRect","_ghostIsFirst","targetBeforeFirstSwap","differentLevel","differentRowCol","dragElS1Opp","dragElS2Opp","dragElOppLength","targetS1Opp","targetS2Opp","targetOppLength","_dragElInRowColumn","side1","scrolledPastTop","scrollBefore","isLastTarget","mouseOnAxis","targetLength","targetS1","targetS2","invert","_getInsertDirection","_getSwapDirection","moveVector","insertion","_showClone","_offMoveEvents","_offUpEvents","save","dropEffect","_globalDragOver","toArray","useAnimation","dst","cancelNextTick","detectDirection","scrollEl","scrollRootEl","lastAutoScrollX","lastAutoScrollY","touchEvt$1","pointerElemChangedInterval","autoScrolls","scrolling","clearAutoScrolls","autoScroll","pid","clearPointerElemChangedInterval","isFallback","scrollCustomFn","sens","scrollSensitivity","speed","scrollSpeed","scrollThisInstance","scrollFn","layersOut","currentParent","canScrollX","canScrollY","scrollPosX","scrollPosY","vx","vy","layer","scrollOffsetY","scrollOffsetX","bubbleScroll","toSortable","changedTouches","onSpill","Revert","Remove","swapDragArrayElement","removeNode","insertNodeAt","fatherNode","refNode","dragCol","isRowDraggable","isRowHandlerDraggable","isColDraggable","getDataPageIndex","_pagination$current","_pagination$pageSize","registerOneLevelColDragEvent","recover","onEnd","_props$onDragSort2","oldElement","newElement","registerColDragEvent","primaryTableCmp","timerA","_element$children","dragContainer","baseOptions","registerRowDragEvent","$refs","setDragSortPrimaryTableRef","setDragSortColumns","_toArray","dragStart","parentSortable","AutoScroll","forceAutoScrollFallback","_handleAutoScroll","_handleFallbackAutoScroll","dragOverCompleted","dragOverBubble","nulling","ogElemScroller","newElem","EditableCell","oldCell","errors","onRuleChange","onEditableChange","_props$col$edit","isKeepEditMode","_col$value$edit","edit","keepEditMode","isEdit","defaultEditable","editValue","Edit1Icon","TdEdit1Icon","updateEditedCellValue","isUpdateCurrentRow","editOnListeners","_col$value$edit2","_col$value$edit2$on","editedRow","currentRow","restKeys","newRow","editProps","componentProps","_edit$abortEditOnEven","tmpProps","abortEditOnEvent","isAbortEditOnChange","_edit$abortEditOnEven2","validateEdit","_props$onValidate2","updateAndSaveAbort","outsideAbortEvent","_editOnListeners$valu","_editOnListeners$valu2","_props$onEditableChan","_edit$abortEditOnEven3","isCellEditable","tListeners","onEdited","itemEvent","newRowData","onEditChange","_editProps$value","_editProps$value$onCh","_props$onRuleChange","_editOnListeners$valu3","_editOnListeners$valu4","_col$value$edit4","_col$value$edit3","validateTrigger","documentClickHandler","_e$composedPath","_node2$classList","enterEdit","_props$onEditableChan2","_props$col$edit2","cellValue","_props$onRuleChange2","_col$value$edit6","_errorList$value","_col$value$edit7","_errorList$value2","_col$value$edit5","showEditIcon","Component","tmpEditOnListeners","onEventName","useRowEdit","cellRuleMap","errorListMap","editableKeysMap","getEditableKeysMap","editingCells","editedFormData","getErrorListMapByErrors","errorMap","validateOneRowData","rowRules","reject","_t$errorList","validateTableCellData","cellKeys","existKeys","_v$props$rowKey","promiseList","_cellKey$split","allErrorListMap","_editableRowKeys$valu","keyStr","validateTableData","rList","validateRowData","_props$onRowValidate","tTrigger","clearValidateData","onUpdateEditedCell","lastRowData","getEditRowData","_props$editableRowKey","editedRowData","tmpRow","onPrimaryTableCellEditChange","OMIT_PROPS","_PrimaryTable","_props$size","_useColumnController","_useRowExpand","ChevronRightCircleIcon","TdChevronRightCircleIcon","tExpandedRowKeys","setTExpandedRowKeys","showExpandedRow","showExpandIconColumn","isFirstColumnFixed","_props$columns","onToggleExpand","currentId","expandedRowData","renderExpandIcon","getExpandColumn","isFixedLeft","onInnerExpandRowClick","getExpandedRowClass","_tExpandedRowKeys$val","useRowExpand","_useRowSelect","_useFilter","dragSortParams","_useAsyncLoading","onLoadClick","_props$onAsyncLoading","renderAsyncLoading","asyncLoadingNode","useAsyncLoading","_useEditableRow","useEditableRow","innerKeyboardRowHover","innerDisableSpaceInactiveRow","primaryTableClasses","tRowClassNames","tRowAttributes","tAttributes","baseTableRef","onEditableCellChange","_props$onRowEdit","getColumns","parentDisplay","_tDisplayColumns$valu","_item$edit","_tDisplayColumns$valu2","titleContent","cellProps","_errorListMap$value","tColumns","onInnerPageChange","onInnerActiveRowAction","onSingleRowClick","onShowElementChange","formatNode","api","renderInnerNode","condition","innerNode","_props$keyboardRowHov","_props$disableSpaceIn","isBottomController","BaseTable","enhancedTableProps","beforeDragSort","expandedTreeNodes","defaultExpandedTreeNodes","onAbnormalDragSort","onExpandedTreeNodesChange","onTreeExpandChange","TABLE_TREE_ERROR_CODE_NOT_SAME_LEVEL","getUniqueRowValue","TableTreeStore","treeDataMap","_this$treeDataMap","initialTreeDataMap","childrenKey","getAllUniqueKeys","getExpandedChildrenKeys","rowList","rowState","toggleExpandData","_r$rowIndex","updateExpandRow","changeRow","childrenNodes","updateChildrenRowState","updateRowExpandLength","expandChildrenLength","updateRowIndex","minRowIndex","newRowValue","updateRowData","oldChildren","currentRowIndex","removeNumber","validateDataExist","isShowNewNode","tmpData","newChildrenData","firstNewChildrenIndex","oneData","mapState","validateDataDoubleExist","newState","newChildrenCount","newDataSource","tmpNewData","dataSourceLen","dataIndex","childrenIndex","startRowValue","endRowValue","startState","endState","reason","startLastIndex","endLastIndex","startRowList","endRowList","middleRowList","allSwapList","expandAllRowIndex","expandLoop","tmpParent","_tmpParent","foldAll","treeData","updateDisabledState","_state$parent","expandLen","clearRowExpandLength","kidRowIndex","useTreeDataExpand","rowDataKeys","isDefaultExpandAllExecute","isDefaultExpandedTreeNodesExecute","tExpandedTreeNode","setTExpandedTreeNode","changedExpandTreeNode","expandedNode","updateExpandState","_diffExpandedTreeNode","newExpandedNode","oldExpandedNode","removedList","addedList","newExpandedNodeMap","oldExpandedNodeMap","diffExpandedTreeNode","expandTreeNode","foldTreeNode","oldExpandedTreeNode","onExpandFoldIconClick","_props$onTreeExpandCh","expandedNodes","expandedChildrenKeys","updateExpandOnDataChange","_tree$value","_tExpandedTreeNode$va","defaultExpandAll","useTreeData","AddRectangleIcon","TdAddRectangleIcon","MinusRectangleIcon","TdMinusRectangleIcon","treeNodeCol","shallowRef","_props$tree","_useTreeDataExpand","checkedColumn","resetData","initialTreeStore","defaultNeedExpand","needExpandAll","_store$value$treeData","_props$tree2","treeNodeColumnIndex","_props$tree5","_columns2$treeNodeCol","_columns2$treeNodeCol2","getTreeNodeColumnCol","swapData","_props$onAbnormalDrag","updateData","removeChildren","appendToRoot","formatTreeColumn","newCol","defaultFoldIcon","cellInfo","currentState","_props$tree3","_props$tree4","indent","getTreeNodeStyle","_store$value$treeData2","defaultExpandIcon","_store$value","getTreeExpandedRow","childrenMap","getChildrenData","allChildren","allChildrenKeys","leafNodeKeys","selectableChildren","_treeDataMap$get","tItem","nextLevelData","useTreeSelect","tIndeterminateSelectedRowKeys","parentMap","parentTmp","checkedLength","parentTmpIndex","updateIndeterminateState","onInnerSelectChange","rowKeys","extraData","newRowKeys","newExtraData","removeKeys","removeChildrenKeys","selectedKeys","checkedChildrenKeys","updateParentCheckedState","getRowDataByKeys","handleSelect","_EnhancedTable","_useTreeData","treeInstanceFunctions","_useTreeSelect","onDragSortChange","onEnhancedTableRowClick","_props$onRowClick","expandTreeNodeOnClick","getScrollRowIndex","rowStateData","enhancedProps","PrimaryTable","EnhancedTable","Table","TimeLineProps","DefaultAlign","horizontal","TimelineInjectKey","DEFAULT_PROVIDER","itemsStatus","renderAlign","props$f","dotColor","DEFAULT_THEME","_TimelineItem","TimelineProvider","getPositionClassName","_props2$labelAlign","_TimelineProvider$val","timelineItemAlign","_TimelineProvider$val2","dotElement","dotContentClass","_dotElement$props","_Timeline","TimeLineProvide","globalAlign","timelineItems","hasLabelItem","TimelineItem","Timeline","props$e","expandIconPlacement","_Collapse","borderlessClass","collapseValue","setCollapseValue","getUniqId","props$d","destroyOnCollapse","headerRightContent","_CollapsePanel","clickableClass","updateCollapseValue","_inject","disableAll","renderParentTNode","iconRef","panelExpandIcon","handleHeaderRightContentClick","tNodeRender","renderBody","Collapse","CollapsePanel","props$c","isRepeat","lineSpace","movable","moveInterval","watermarkContent","_Watermark","backgroundImage","watermarkRef","watermarkContentRef","gapX","gapY","backgroundRepeat","fontColor","bgImageOptions","injectWaterMark","_ref$fontColor","ratio","canvasWidth","canvasHeight","globalAlpha","markWidth","markHeight","fillStyle","fillRect","contents","_item$isGrayscale","isGrayscale","img","crossOrigin","referrerPolicy","imgData","getImageData","pixels","lightness","putImageData","toDataURL","_item$fontSize","_item$fontFamily","fontFamily","_item$fontWeight","fontWeight","markSize","font","textAlign","textBaseline","fillText","generateBase64Url","base64Url","_watermarkRef$value","backgroundSize","keyframesStyle","p1","styleElement","styleSheet","sheet","insertRule","cssRules","isRemoved","removedNodes","isModified","Watermark","props$b","allowHalf","_Rate","activeColor","defaultColor","starValue","setStarValue","displayTexts","RateIcon","iconProps","StarFilledIcon","getStarValue","starMiddle","mouseLeaveHandler","getStarCls","clickHandler","mouseEnterHandler","Rate","props$a","copyable","italic","keyboard","strong","reselectPrevious","rangeCount","ranges","getRangeAt","deselectCurrent","whiteSpace","webkitUserSelect","userSelect","clearData","onCopy","copyKey","prompt","removeRange","props$9","Ellipsis","ellipsisState","expandable","ellipsisStyles","def","WebkitLineClamp","WebkitBoxOrient","_props2$ellipsis$onEx","_props2$ellipsis","onCollapse","_props2$ellipsis$onEx2","_props2$ellipsis2","renderEllipsisExpand","moreNode","_ellipsisState$value","collapsible","_Text","isCopied","wrapperDecorations","del","currentContent","needed","_currentContent","tooltipText","_copyable$tooltipProp","renderCopy","CopyIcon","tooltipConf","onCopyClick","_Typography","props$8","_Title","_Paragraph","Typography","Title","Paragraph","props$7","bgColor","iconSize","statusRender","onRefresh","appendBits","bb","RangeError","getBit","assert","cond","Mode","modeBits","numBitsCharCount","ver","_Mode","Ecc","formatBits","_Ecc","QrSegment","numChars","bitData","BYTE","digits","isNumeric","NUMERIC","isAlphanumeric","ALPHANUMERIC_CHARSET","ALPHANUMERIC","makeNumeric","makeAlphanumeric","makeBytes","toUtf8ByteArray","assignVal","ECI","NUMERIC_REGEX","ALPHANUMERIC_REGEX","segs","seg","ccbits","numCharCountBits","QrCode","errorCorrectionLevel","dataCodewords","oriMsk","msk","MIN_VERSION","MAX_VERSION","modules","drawFunctionPatterns","allCodewords","addEccAndInterleave","drawCodewords","minPenalty","applyMask","drawFormatBits","penalty","getPenaltyScore","mask","setFunctionModule","drawFinderPattern","alignPatPos","getAlignmentPatternPositions","numAlign","drawAlignmentPattern","drawVersion","rem","bits","dist","xx","ecl","getNumDataCodewords","numBlocks","NUM_ERROR_CORRECTION_BLOCKS","blockEccLen","ECC_CODEWORDS_PER_BLOCK","rawCodewords","getNumRawDataModules","numShortBlocks","shortBlockLen","blocks","rsDiv","reedSolomonComputeDivisor","dat","ecc","reedSolomonComputeRemainder","_i9","vert","runColor","runX","runHistory","PENALTY_N1","finderPenaltyAddHistory","finderPenaltyCountPatterns","PENALTY_N3","finderPenaltyTerminateAndCount","runY","PENALTY_N2","dark","PENALTY_N4","core","currentRunColor","oriCurrentRunLength","currentRunLength","makeSegments","encodeSegments","oriEcl","dataUsedBits","minVersion","maxVersion","boostEcl","dataCapacityBits","usedBits","getTotalBits","_i0","_arr","QUARTILE","HIGH","newEcl","_step5","_iterator5","padByte","reedSolomonMultiply","divisor","_step6","_iterator6","_loop2","factor","coef","ERROR_LEVEL_MAP","LOW","DEFAULT_NEED_MARGIN","generatePath","ops","excavateModules","excavation","isSupportPath2d","Path2D","addPath","_unused","QRCodeSubComponentProps","fgColor","includeMargin","marginSize","imageSettings","QRCodeStatusProps","useQRCode","memoizedQrcode","segments","cs","getModules","needMargin","getMarginSize","cis","cells","numCells","defaultSize","excavate","floorX","floorY","getImageSettings","calculatedImageSettings","QRCodeCanvas","_props$imageSettings","imageRef","canvasRef","imgCrossOrigin","renderQRCode","_calculatedImageSetti","_useQRCode","cellsToDraw","haveImageToRender","naturalHeight","naturalWidth","pixelRatio","rdx","cdx","QRCodeSVG","imageNode","fgPath","QRcodeStatus","_props$locale3","defaultSpin","defaultExpiredNode","_props$locale","_props$locale2","RefreshIcon","defaultScannedNode","defaultNodes","expired","scanned","_QRCode","_useVariables","themeFgColor","themeBgColor","finalBgColor","finalFgColor","_props2$iconSize$heig","_props2$iconSize","_props2$iconSize$widt","_props2$iconSize2","mergedStyle","QRCodeProps","QRCode","props$6","maxLine","_Alert","renderIconTNode","iconType","defaultIcons","iconContent","useIcon","alertRef","descriptionRef","descHeight","renderClose","isUsingClose","closeContent","handleClose","renderDescription","_descriptionRef$value","messageContent","contentLength","hasCollapse","handleCloseEnd","isTransitionTarget","propertyName","operationContent","Alert","props$5","drawerClassName","sizeDraggable","onSizeDragEnd","calcSizeRange","isSizeDragging","draggedSizeValue","handleMouseup","handleMousemove","_props$onSizeDragEnd","limit","_getSizeDraggable","allowSizeDraggable","limitMax","limitMin","moveSize","calcMoveSize","draggableLineStyles","isHorizontal","draggingStyles","enableDrag","_Drawer","destroyOnCloseVisible","styleTimer","closeDrawer","drawerEle","drawerClasses","wrapperStyles","wrapperClasses","_drawerEle$value","modeAndPlacement","footerStyle","justifyContent","handleEscKeydown","clearStyleEl","_styleEl$value","_styleEl$value$remove","_drawerEle$value2","_drawerEle$value2$foc","addStyleElToHead","createStyleEl","updateVisibleState","handleCloseBtnClick","handleWrapperClick","marginValueData","setProperty","removeProperty","headerContent","createDrawer","updateStyle","drawerOptions","_drawerOptions$value","DrawerComponent","drawerComponent","DrawerPlugin","$drawer","Drawer","props$4","counter","hideCounter","hidePrev","hideSkip","highlightPadding","onNextStepClick","onPrevStepClick","onSkip","scrollToParentVisibleArea","excludeStaticParent","overflowRegex","scrollToElm","winHeight","doc","getWindowSize","_Guide","LOCK_CLASS","overlayLayerRef","highlightLayerRef","referenceLayerRef","currentHighlightLayerElm","dialogWrapperRef","dialogTooltipRef","popupTooltipRef","stepsTotal","currentStepInfo","isPopup","getCurrentCrossProps","currentElmIsFixed","_currentStepInfo$valu","currentCustomHighlightContent","highlightContent","hWithParams","showCustomHighlightContent","newH","setHighlightLayerPosition","highlightLayer","isReference","_getRelativePosition","relativeElm","_getWindowScroll","_elm$getBoundingClien","elmTop","elmLeft","_relativeElm$getBound","relElmTop","relElmLeft","relativeElmPosition","getRelativePosition","_currentHighlightLaye","_highlightLayerRef$va","showPopupGuide","_popupTooltipRef$valu","_process","NODE_ENV","getTargetElm","destroyTooltipElm","_referenceLayerRef$va","destroyDialogTooltipElm","_dialogTooltipRef$val","_dialogWrapperRef$val","showGuide","handleSkip","_props2$onSkip","handlePrev","_props2$onPrevStepCli","handleNext","_props2$onNextStepCli","handleFinish","_props2$onFinish","initGuide","_highlightLayerRef$va2","_overlayLayerRef$valu","renderCounter","popupSlotCounter","popupDefaultCounter","renderAction","_getCurrentCrossProps","_getCurrentCrossProps2","_getCurrentCrossProps3","_props2$finishButtonP","buttonSize","renderTooltipBody","functionTitle","slotTitle","descBody","bodyRender","footerClasses","renderPopupGuide","_currentStepInfo$valu2","contentProps","innerClassName","stepOverlayClass","renderDialogGuide","dialogClasses","highlightClass","Guide","props$3","keyframes","_Notification","notificationRef","NotificationList","notificationList","notificationStyles","Notification","seed","showThemeNotification","hackOptions","attachEl","tmpInstance","NotificationPlugin","_ins$component$expose","notify","_notify$$","NotificationFunction","$notify","props$2","_Popconfirm","innerPopupProps","renderTNodeDefault","Popconfirm","props$1","allowUploadDuplicateFile","autoUpload","beforeAllFilesUpload","beforeUpload","cancelUploadButton","dragContent","fileListDisplay","defaultFiles","formatRequest","formatResponse","headers","imageViewerProps","inputAttributes","isBatchUpload","mockProgressDuration","requestMethod","showImageFileName","showThumbnail","showUploadProgress","sizeLimit","triggerButtonProps","uploadAllFilesInOneRequest","uploadButton","uploadPastedFiles","useMockProgress","withCredentials","onCancelUpload","onDragenter","onFail","onOneFileFail","onOneFileSuccess","onPreview","onProgress","onSuccess","onWaitingUploadFilesChange","commonProps","toUploadFiles","displayFiles","sizeOverLimitMessage","onPasteFileChange","placeholderClass","NormalFile","TimeFilledIcon","TdTimeFilledIcon","uploadPrefix","renderProgress","renderFilePreviewAsInput","_props$abridgeName","inputTextClass","disabledClass","_displayFiles$","_displayFiles$0$respo","_files$","dragActive","_props$onDrop","_props$onDragFileChan","dragFiles","onDragFileChange","handleDragenter","_props$onDragenter","handleDragleave","_props$onDragleave","handleDragover","DraggerFile","triggerUpload","uploadFiles","cancelUpload","dragEvents","draggerFileRef","_displayFiles$value$","_file$response","raw","renderUploading","_locale$value$trigger","unActiveElement","_locale$value","fileInfo","uploadTime","_props$cancelUpload","_props$uploadFiles","renderMainPreview","_props$trigger","ImageCard","showTrigger","_displayFiles$value","renderMainContent","_props$onPreview","_props$onRemove","renderProgressFile","loadCard","renderFailFile","_locale$value2","_props$onRemove2","_displayFiles$value2","customList","_locale$value3","cardItemClasses","fileNameClassName","MultipleFlowList","FileExcelIcon","TdFileExcelIcon","FilePdfIcon","TdFilePdfIcon","FileWordIcon","TdFileWordIcon","FilePowerpointIcon","TdFilePowerpointIcon","FileIcon","TdFileIcon","VideoIcon","TdVideoIcon","currentPreviewFile","previewIndex","uploadText","innerDragEvents","getStatusMap","iconMap","waiting","textMap","renderStatus","_file$response2","_file$response3","_getStatusMap2","getFileThumbnailIcon","renderFileThumbnail","_props$onPreview2","renderFileList","_locale$value$file","_locale$value$file2","_locale$value$file3","_locale$value$file4","deleteNode","renderBatchActionCol","renderNormalActionCol","thumbnailNode","fileNameNode","returnFileSize","renderImageList","_getStatusMap","renderImgItem","_locale$value4","cardClassName","cancelUploadDisabled","hasCancelUploadTNode","uploadButtonDisabled","hasUploadButtonTNode","CustomFile","childrenNode","_props$childrenNode2","_props$childrenNode","handleBeforeUpload","sizePromise","sizeLimitObj","fileSize","units","isOverSizeLimit","XMLHttpRequest","currentFiles","uploadOneRequest","handleRequestMethodResponse","resultFiles","toFile","_response","_params$onResponseSuc","onResponseSuccess","_params$onResponseErr","onResponseError","_params$setXhrObject","xhrReq","timer1","timer2","_ref$method","_ref$withCredentials","_ref$headers","_ref$data","_ref$files","_ref$name","_ref$useMockProgress","_ref$mockProgressDura","innerFiles","xhr","requestData","fileField","formData","FormData","setRequestHeader","onerror","ontimeout","onprogress","_innerFiles$","realPercent","progressFiles","responseText","send","requestParams","requestHeaders","_params$onResponseErr2","onResponseProgress","_params$onResponseErr3","_params$onResponseSuc2","handleSuccess","setXhrObject","uploadedFiles","thisUploadFiles","failedFiles","one","tFiles","newFiles","existFiles","tmpFile","updateUploadedFiles","formatToUploadFile","lastModified","useUpload","uploadValue","setUploadValue","_uploadValue$value","field","waitingUploadFiles","getDisplayFiles","updateFilesProgress","_props$onOneFileFail","_props$onProgress","_props$onOneFileSucce","getSizeLimitError","onFileChange","_props$onSelectChange","currentSelectedFiles","tmpFiles","sameNameFile","hasSameNameFile","lengthOverLimit","tmpFilesLenToBeAdded","allFileValidatePromise","formattedFiles","_params$beforeAllFile","sizeResult","customResult","_results","allFilesResult","others","fileValidateList","validateFile","_args$validateResult","_props$onValidate3","_props$onWaitingUploa","_props$onValidate4","_getFilesAndErrors","getError","sizeLimitErrors","beforeUploadErrorFiles","toFiles","oneFile","_oneFile$validateResu","_oneFile$validateResu2","getFilesAndErrors","tmpWaitingFiles","_props$onValidate5","handleNotAutoUpload","notUploadedFiles","_xhr$files$","_item$files$","_props$onSuccess","_props$onWaitingUploa2","_props$onFail","onInnerRemove","_p$e$stopPropagation","_p$e","_props$onWaitingUploa3","changePrams","_props$onWaitingUploa4","uploadFilePercent","operationUploadFiles","onNormalFileChange","_xhrReq$value","_props$onCancelUpload","_item$xhrReq","abort","_Upload","_useUpload","UploadIcon","TdUploadIcon","triggerUploadButtonText","_props2$triggerButton","_props2$triggerButton2","renderTrigger","commonDisplayFileProps","dragProps","uploadClasses","Upload","ConfigProvider","use","tdesign","PKG_VERSION"],"mappings":"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I,EAAA4kK,EAAA5kK,EACP,MAAAxL,OAAAA,OAAOhpB,eAAMo0B,EAAM,MAAApL,OAAAwL,EAAA,IAC5B,CACO,OAAAvb,CACT,EC/EaqgL,GAAc,CACzBC,WAAY,cACZ,kBAAmB,iBAORC,GAA0B,wEAG1BC,GAA+B,CAC1C,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAMWC,GAAU,CACrB,MACA,MACA,MACA,MACA,OACA,OAMWC,GAAmB,CAC9BC,IAAK,OACLC,IAAK,OACLC,IAAK,OACLC,IAAK,QAMMC,GAAkE,CAC7EH,IAAK,CACH,CACE/yL,IAAK,IACLoX,IAAK,EACL3U,IAAK,IACLzE,KAAM,eAER,CACEgC,IAAK,IACLoX,IAAK,EACL3U,IAAK,IACLzE,KAAM,eAER,CACEgC,IAAK,IACLoX,IAAK,EACL3U,IAAK,IACLzE,KAAM,gBAGVi1L,IAAK,CACH,CACEjzL,IAAK,IACLoX,IAAK,EACL3U,IAAK,IACLzE,KAAM,eAER,CACEgC,IAAK,IACLoX,IAAK,EACL3U,IAAK,IACLzE,KAAM,eAER,CACEgC,IAAK,IACLoX,IAAK,EACL3U,IAAK,IACLzE,KAAM,gBAGVg1L,IAAK,CACH,CACEhzL,IAAK,IACLoX,IAAK,EACL3U,IAAK,IACLzE,KAAM,eAER,CACEgC,IAAK,IACLoX,IAAK,EACL3U,IAAK,IACLzE,KAAM,eAER,CACEgC,IAAK,IACLoX,IAAK,EACL3U,IAAK,IACLzE,KAAM,gBAGVm1L,KAAM,CACJ,CACEnzL,IAAK,IACLoX,IAAK,EACL3U,IAAK,IACLzE,KAAM,eAER,CACEgC,IAAK,IACLoX,IAAK,EACL3U,IAAK,IACLzE,KAAM,eAER,CACEgC,IAAK,IACLoX,IAAK,EACL3U,IAAK,IACLzE,KAAM,eAER,CACEgC,IAAK,IACLoX,IAAK,E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"} \ No newline at end of file diff --git a/docs/assets/js/modules/vue.global.prod.js b/docs/assets/js/modules/vue.global.prod.js index 21fdcbe..43ebdc4 100644 --- a/docs/assets/js/modules/vue.global.prod.js +++ b/docs/assets/js/modules/vue.global.prod.js @@ -1,12 +1,12 @@ /** -* vue v3.5.17 +* vue v3.5.18 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/var Vue=function(e){"use strict";var t,n,r;let i,l,s,o,a,c,u,d,p,h,f,m,g;function y(e){let t=Object.create(null);for(let n of e.split(","))t[n]=1;return e=>e in t}let b={},_=[],S=()=>{},x=()=>!1,C=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&(e.charCodeAt(2)>122||97>e.charCodeAt(2)),k=e=>e.startsWith("onUpdate:"),T=Object.assign,N=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)},w=Object.prototype.hasOwnProperty,A=(e,t)=>w.call(e,t),E=Array.isArray,I=e=>"[object Map]"===V(e),R=e=>"[object Set]"===V(e),O=e=>"[object Date]"===V(e),P=e=>"function"==typeof e,M=e=>"string"==typeof e,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=>"[object Object]"===V(e),U=e=>M(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,j=y(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),H=y("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),q=e=>{let t=Object.create(null);return n=>t[n]||(t[n]=e(n))},W=/-(\w)/g,K=q(e=>e.replace(W,(e,t)=>t?t.toUpperCase():"")),z=/\B([A-Z])/g,J=q(e=>e.replace(z,"-$1").toLowerCase()),G=q(e=>e.charAt(0).toUpperCase()+e.slice(1)),X=q(e=>e?`on${G(e)}`:""),Q=(e,t)=>!Object.is(e,t),Z=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},ee=e=>{let t=parseFloat(e);return isNaN(t)?e:t},et=e=>{let t=M(e)?Number(e):NaN;return isNaN(t)?e:t},en=()=>i||(i="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{}),er=y("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol");function ei(e){if(E(e)){let t={};for(let n=0;n{if(e){let n=e.split(es);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function ec(e){let t="";if(M(e))t=e;else if(E(e))for(let n=0;nem(e,t))}let ev=e=>!!(e&&!0===e.__v_isRef),ey=e=>M(e)?e:null==e?"":E(e)||$(e)&&(e.toString===F||!P(e.toString))?ev(e)?ey(e.value):JSON.stringify(e,eb,2):String(e),eb=(e,t)=>{if(ev(t))return eb(e,t.value);if(I(t))return{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],r)=>(e[e_(t,r)+" =>"]=n,e),{})};if(R(t))return{[`Set(${t.size})`]:[...t.values()].map(e=>e_(e))};if(L(t))return e_(t);if($(t)&&!E(t)&&!B(t))return String(t);return t},e_=(e,t="")=>{var n;return L(e)?`Symbol(${null!=(n=e.description)?n:t})`:e};class eS{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=l,!e&&l&&(this.index=(l.scopes||(l.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){let e,t;if(this._isPaused=!0,this.scopes)for(e=0,t=this.scopes.length;e0&&0==--this._on&&(l=this.prevScope,this.prevScope=void 0)}stop(e){if(this._active){let t,n;for(t=0,this._active=!1,n=this.effects.length;t0)){if(a){let e=a;for(a=void 0;e;){let t=e.next;e.next=void 0,e.flags&=-9,e=t}}for(;o;){let t=o;for(o=void 0;t;){let n=t.next;if(t.next=void 0,t.flags&=-9,1&t.flags)try{t.trigger()}catch(t){e||(e=t)}t=n}}if(e)throw e}}function ew(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function eA(e){let t,n=e.depsTail,r=n;for(;r;){let e=r.prevDep;-1===r.version?(r===n&&(n=e),eR(r),function(e){let{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=e}e.deps=t,e.depsTail=n}function eE(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(eI(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function eI(e){if(4&e.flags&&!(16&e.flags)||(e.flags&=-17,e.globalVersion===eD)||(e.globalVersion=eD,!e.isSSR&&128&e.flags&&(!e.deps&&!e._dirty||!eE(e))))return;e.flags|=2;let t=e.dep,n=s,r=eO;s=e,eO=!0;try{ew(e);let n=e.fn(e._value);(0===t.version||Q(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(e){throw t.version++,e}finally{s=n,eO=r,eA(e),e.flags&=-3}}function eR(e,t=!1){let{dep:n,prevSub:r,nextSub:i}=e;if(r&&(r.nextSub=i,e.prevSub=void 0),i&&(i.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let e=n.computed.deps;e;e=e.nextDep)eR(e,!0)}t||--n.sc||!n.map||n.map.delete(n.key)}let eO=!0,eP=[];function eM(){eP.push(eO),eO=!1}function eL(){let e=eP.pop();eO=void 0===e||e}function e$(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let e=s;s=void 0;try{t()}finally{s=e}}}let eD=0;class eF{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class eV{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!s||!eO||s===this.computed)return;let t=this.activeLink;if(void 0===t||t.sub!==s)t=this.activeLink=new eF(s,this),s.deps?(t.prevDep=s.depsTail,s.depsTail.nextDep=t,s.depsTail=t):s.deps=s.depsTail=t,function e(t){if(t.dep.sc++,4&t.sub.flags){let n=t.dep.computed;if(n&&!t.dep.subs){n.flags|=20;for(let t=n.deps;t;t=t.nextDep)e(t)}let r=t.dep.subs;r!==t&&(t.prevSub=r,r&&(r.nextSub=t)),t.dep.subs=t}}(t);else if(-1===t.version&&(t.version=this.version,t.nextDep)){let e=t.nextDep;e.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=e),t.prevDep=s.depsTail,t.nextDep=void 0,s.depsTail.nextDep=t,s.depsTail=t,s.deps===t&&(s.deps=e)}return t}trigger(e){this.version++,eD++,this.notify(e)}notify(e){ek++;try{for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{eN()}}}let eB=new WeakMap,eU=Symbol(""),ej=Symbol(""),eH=Symbol("");function eq(e,t,n){if(eO&&s){let t=eB.get(e);t||eB.set(e,t=new Map);let r=t.get(n);r||(t.set(n,r=new eV),r.map=t,r.key=n),r.track()}}function eW(e,t,n,r,i,l){let s=eB.get(e);if(!s)return void eD++;let o=e=>{e&&e.trigger()};if(ek++,"clear"===t)s.forEach(o);else{let i=E(e),l=i&&U(n);if(i&&"length"===n){let e=Number(r);s.forEach((t,n)=>{("length"===n||n===eH||!L(n)&&n>=e)&&o(t)})}else switch((void 0!==n||s.has(void 0))&&o(s.get(n)),l&&o(s.get(eH)),t){case"add":i?l&&o(s.get("length")):(o(s.get(eU)),I(e)&&o(s.get(ej)));break;case"delete":!i&&(o(s.get(eU)),I(e)&&o(s.get(ej)));break;case"set":I(e)&&o(s.get(eU))}}eN()}function eK(e){let t=tS(e);return t===e?t:(eq(t,"iterate",eH),tb(e)?t:t.map(tC))}function ez(e){return eq(e=tS(e),"iterate",eH),e}let eJ={__proto__:null,[Symbol.iterator](){return eG(this,Symbol.iterator,tC)},concat(...e){return eK(this).concat(...e.map(e=>E(e)?eK(e):e))},entries(){return eG(this,"entries",e=>(e[1]=tC(e[1]),e))},every(e,t){return eQ(this,"every",e,t,void 0,arguments)},filter(e,t){return eQ(this,"filter",e,t,e=>e.map(tC),arguments)},find(e,t){return eQ(this,"find",e,t,tC,arguments)},findIndex(e,t){return eQ(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return eQ(this,"findLast",e,t,tC,arguments)},findLastIndex(e,t){return eQ(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return eQ(this,"forEach",e,t,void 0,arguments)},includes(...e){return eY(this,"includes",e)},indexOf(...e){return eY(this,"indexOf",e)},join(e){return eK(this).join(e)},lastIndexOf(...e){return eY(this,"lastIndexOf",e)},map(e,t){return eQ(this,"map",e,t,void 0,arguments)},pop(){return e0(this,"pop")},push(...e){return e0(this,"push",e)},reduce(e,...t){return eZ(this,"reduce",e,t)},reduceRight(e,...t){return eZ(this,"reduceRight",e,t)},shift(){return e0(this,"shift")},some(e,t){return eQ(this,"some",e,t,void 0,arguments)},splice(...e){return e0(this,"splice",e)},toReversed(){return eK(this).toReversed()},toSorted(e){return eK(this).toSorted(e)},toSpliced(...e){return eK(this).toSpliced(...e)},unshift(...e){return e0(this,"unshift",e)},values(){return eG(this,"values",tC)}};function eG(e,t,n){let r=ez(e),i=r[t]();return r===e||tb(e)||(i._next=i.next,i.next=()=>{let e=i._next();return e.value&&(e.value=n(e.value)),e}),i}let eX=Array.prototype;function eQ(e,t,n,r,i,l){let s=ez(e),o=s!==e&&!tb(e),a=s[t];if(a!==eX[t]){let t=a.apply(e,l);return o?tC(t):t}let c=n;s!==e&&(o?c=function(t,r){return n.call(this,tC(t),r,e)}:n.length>2&&(c=function(t,r){return n.call(this,t,r,e)}));let u=a.call(s,c,r);return o&&i?i(u):u}function eZ(e,t,n,r){let i=ez(e),l=n;return i!==e&&(tb(e)?n.length>3&&(l=function(t,r,i){return n.call(this,t,r,i,e)}):l=function(t,r,i){return n.call(this,t,tC(r),i,e)}),i[t](l,...r)}function eY(e,t,n){let r=tS(e);eq(r,"iterate",eH);let i=r[t](...n);return(-1===i||!1===i)&&t_(n[0])?(n[0]=tS(n[0]),r[t](...n)):i}function e0(e,t,n=[]){eM(),ek++;let r=tS(e)[t].apply(e,n);return eN(),eL(),r}let e1=y("__proto__,__v_isRef,__isVue"),e2=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>"arguments"!==e&&"caller"!==e).map(e=>Symbol[e]).filter(L));function e3(e){L(e)||(e=String(e));let t=tS(this);return eq(t,"has",e),t.hasOwnProperty(e)}class e6{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,n){if("__v_skip"===t)return e.__v_skip;let r=this._isReadonly,i=this._isShallow;if("__v_isReactive"===t)return!r;if("__v_isReadonly"===t)return r;if("__v_isShallow"===t)return i;if("__v_raw"===t)return n===(r?i?tp:td:i?tu:tc).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;let l=E(e);if(!r){let e;if(l&&(e=eJ[t]))return e;if("hasOwnProperty"===t)return e3}let s=Reflect.get(e,t,tT(e)?e:n);return(L(t)?e2.has(t):e1(t))||(r||eq(e,"get",t),i)?s:tT(s)?l&&U(t)?s:s.value:$(s)?r?tm(s):th(s):s}}class e4 extends e6{constructor(e=!1){super(!1,e)}set(e,t,n,r){let i=e[t];if(!this._isShallow){let t=ty(i);if(tb(n)||ty(n)||(i=tS(i),n=tS(n)),!E(e)&&tT(i)&&!tT(n))if(t)return!1;else return i.value=n,!0}let l=E(e)&&U(t)?Number(t)e,tn=e=>Reflect.getPrototypeOf(e);function tr(e){return function(...t){return"delete"!==e&&("clear"===e?void 0:this)}}function ti(e,t){let n=function(e,t){let n={get(n){let r=this.__v_raw,i=tS(r),l=tS(n);e||(Q(n,l)&&eq(i,"get",n),eq(i,"get",l));let{has:s}=tn(i),o=t?tt:e?tk:tC;return s.call(i,n)?o(r.get(n)):s.call(i,l)?o(r.get(l)):void(r!==i&&r.get(n))},get size(){let t=this.__v_raw;return e||eq(tS(t),"iterate",eU),Reflect.get(t,"size",t)},has(t){let n=this.__v_raw,r=tS(n),i=tS(t);return e||(Q(t,i)&&eq(r,"has",t),eq(r,"has",i)),t===i?n.has(t):n.has(t)||n.has(i)},forEach(n,r){let i=this,l=i.__v_raw,s=tS(l),o=t?tt:e?tk:tC;return e||eq(s,"iterate",eU),l.forEach((e,t)=>n.call(r,o(e),o(t),i))}};return T(n,e?{add:tr("add"),set:tr("set"),delete:tr("delete"),clear:tr("clear")}:{add(e){t||tb(e)||ty(e)||(e=tS(e));let n=tS(this);return tn(n).has.call(n,e)||(n.add(e),eW(n,"add",e,e)),this},set(e,n){t||tb(n)||ty(n)||(n=tS(n));let r=tS(this),{has:i,get:l}=tn(r),s=i.call(r,e);s||(e=tS(e),s=i.call(r,e));let o=l.call(r,e);return r.set(e,n),s?Q(n,o)&&eW(r,"set",e,n):eW(r,"add",e,n),this},delete(e){let t=tS(this),{has:n,get:r}=tn(t),i=n.call(t,e);i||(e=tS(e),i=n.call(t,e)),r&&r.call(t,e);let l=t.delete(e);return i&&eW(t,"delete",e,void 0),l},clear(){let e=tS(this),t=0!==e.size,n=e.clear();return t&&eW(e,"clear",void 0,void 0),n}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=function(...n){let i=this.__v_raw,l=tS(i),s=I(l),o="entries"===r||r===Symbol.iterator&&s,a=i[r](...n),c=t?tt:e?tk:tC;return e||eq(l,"iterate","keys"===r&&s?ej:eU),{next(){let{value:e,done:t}=a.next();return t?{value:e,done:t}:{value:o?[c(e[0]),c(e[1])]:c(e),done:t}},[Symbol.iterator](){return this}}}}),n}(e,t);return(t,r,i)=>"__v_isReactive"===r?!e:"__v_isReadonly"===r?e:"__v_raw"===r?t:Reflect.get(A(n,r)&&r in t?n:t,r,i)}let tl={get:ti(!1,!1)},ts={get:ti(!1,!0)},to={get:ti(!0,!1)},ta={get:ti(!0,!0)},tc=new WeakMap,tu=new WeakMap,td=new WeakMap,tp=new WeakMap;function th(e){return ty(e)?e:tg(e,!1,e5,tl,tc)}function tf(e){return tg(e,!1,e7,ts,tu)}function tm(e){return tg(e,!0,e9,to,td)}function tg(e,t,n,r,i){var l;if(!$(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;let s=(l=e).__v_skip||!Object.isExtensible(l)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}(V(l).slice(8,-1));if(0===s)return e;let o=i.get(e);if(o)return o;let a=new Proxy(e,2===s?r:n);return i.set(e,a),a}function tv(e){return ty(e)?tv(e.__v_raw):!!(e&&e.__v_isReactive)}function ty(e){return!!(e&&e.__v_isReadonly)}function tb(e){return!!(e&&e.__v_isShallow)}function t_(e){return!!e&&!!e.__v_raw}function tS(e){let t=e&&e.__v_raw;return t?tS(t):e}function tx(e){return!A(e,"__v_skip")&&Object.isExtensible(e)&&Y(e,"__v_skip",!0),e}let tC=e=>$(e)?th(e):e,tk=e=>$(e)?tm(e):e;function tT(e){return!!e&&!0===e.__v_isRef}function tN(e){return tA(e,!1)}function tw(e){return tA(e,!0)}function tA(e,t){return tT(e)?e:new tE(e,t)}class tE{constructor(e,t){this.dep=new eV,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:tS(e),this._value=t?e:tC(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){let t=this._rawValue,n=this.__v_isShallow||tb(e)||ty(e);Q(e=n?e:tS(e),t)&&(this._rawValue=e,this._value=n?e:tC(e),this.dep.trigger())}}function tI(e){return tT(e)?e.value:e}let tR={get:(e,t,n)=>"__v_raw"===t?e:tI(Reflect.get(e,t,n)),set:(e,t,n,r)=>{let i=e[t];return tT(i)&&!tT(n)?(i.value=n,!0):Reflect.set(e,t,n,r)}};function tO(e){return tv(e)?e:new Proxy(e,tR)}class tP{constructor(e){this.__v_isRef=!0,this._value=void 0;let t=this.dep=new eV,{get:n,set:r}=e(t.track.bind(t),t.trigger.bind(t));this._get=n,this._set=r}get value(){return this._value=this._get()}set value(e){this._set(e)}}function tM(e){return new tP(e)}class tL{constructor(e,t,n){this._object=e,this._key=t,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0}get value(){let e=this._object[this._key];return this._value=void 0===e?this._defaultValue:e}set value(e){this._object[this._key]=e}get dep(){return function(e,t){let n=eB.get(e);return n&&n.get(t)}(tS(this._object),this._key)}}class t${constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function tD(e,t,n){let r=e[t];return tT(r)?r:new tL(e,t,n)}class tF{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new eV(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=eD-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(8&this.flags)&&s!==this)return eT(this,!0),!0}get value(){let e=this.dep.track();return eI(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}let tV={},tB=new WeakMap;function tU(e,t=!1,n=m){if(n){let t=tB.get(n);t||tB.set(n,t=[]),t.push(e)}}function tj(e,t=1/0,n){if(t<=0||!$(e)||e.__v_skip||(n=n||new Set).has(e))return e;if(n.add(e),t--,tT(e))tj(e.value,t,n);else if(E(e))for(let r=0;r{tj(e,t,n)});else if(B(e)){for(let r in e)tj(e[r],t,n);for(let r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&tj(e[r],t,n)}return e}function tH(e,t,n,r){try{return r?e(...r):e()}catch(e){tW(e,t,n)}}function tq(e,t,n,r){if(P(e)){let i=tH(e,t,n,r);return i&&D(i)&&i.catch(e=>{tW(e,t,n)}),i}if(E(e)){let i=[];for(let l=0;l=t4(n)?tK.push(e):tK.splice(function(e){let t=tz+1,n=tK.length;for(;t>>1,i=tK[r],l=t4(i);lt4(e)-t4(t));if(tJ.length=0,tG)return void tG.push(...e);for(tX=0,tG=e;tXnull==e.id?2&e.flags?-1:1/0:e.id,t8=null,t5=null;function t9(e){let t=t8;return t8=e,t5=e&&e.type.__scopeId||null,t}function t7(e,t=t8,n){if(!t||e._n)return e;let r=(...n)=>{let i;r._d&&ia(-1);let l=t9(t);try{i=e(...n)}finally{t9(l),r._d&&ia(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function ne(e,t,n,r){let i=e.dirs,l=t&&t.dirs;for(let s=0;se&&(e.disabled||""===e.disabled),nr=e=>e&&(e.defer||""===e.defer),ni=e=>"undefined"!=typeof SVGElement&&e instanceof SVGElement,nl=e=>"function"==typeof MathMLElement&&e instanceof MathMLElement,ns=(e,t)=>{let n=e&&e.to;return M(n)?t?t(n):null:n},no={name:"Teleport",__isTeleport:!0,process(e,t,n,r,i,l,s,o,a,c){let{mc:u,pc:d,pbc:p,o:{insert:h,querySelector:f,createText:m,createComment:g}}=c,y=nn(t.props),{shapeFlag:b,children:_,dynamicChildren:S}=t;if(null==e){let e=t.el=m(""),c=t.anchor=m("");h(e,n,r),h(c,n,r);let d=(e,t)=>{16&b&&(i&&i.isCE&&(i.ce._teleportTarget=e),u(_,e,t,i,l,s,o,a))},p=()=>{let e=t.target=ns(t.props,f),n=nu(e,t,m,h);e&&("svg"!==s&&ni(e)?s="svg":"mathml"!==s&&nl(e)&&(s="mathml"),y||(d(e,n),nc(t,!1)))};y&&(d(n,c),nc(t,!0)),nr(t.props)?(t.el.__isMounted=!1,rM(()=>{p(),delete t.el.__isMounted},l)):p()}else{if(nr(t.props)&&!1===e.el.__isMounted)return void rM(()=>{no.process(e,t,n,r,i,l,s,o,a,c)},l);t.el=e.el,t.targetStart=e.targetStart;let u=t.anchor=e.anchor,h=t.target=e.target,m=t.targetAnchor=e.targetAnchor,g=nn(e.props),b=g?n:h,_=g?u:m;if("svg"===s||ni(h)?s="svg":("mathml"===s||nl(h))&&(s="mathml"),S?(p(e.dynamicChildren,S,b,i,l,s,o),rB(e,t,!0)):a||d(e,t,b,_,i,l,s,o,!1),y)g?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):na(t,n,u,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){let e=t.target=ns(t.props,f);e&&na(t,e,null,c,0)}else g&&na(t,h,m,c,1);nc(t,y)}},remove(e,t,n,{um:r,o:{remove:i}},l){let{shapeFlag:s,children:o,anchor:a,targetStart:c,targetAnchor:u,target:d,props:p}=e;if(d&&(i(c),i(u)),l&&i(a),16&s){let e=l||!nn(p);for(let i=0;i{e.isMounted=!0}),nY(()=>{e.isUnmounting=!0}),e}let nf=[Function,Array],nm={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:nf,onEnter:nf,onAfterEnter:nf,onEnterCancelled:nf,onBeforeLeave:nf,onLeave:nf,onAfterLeave:nf,onLeaveCancelled:nf,onBeforeAppear:nf,onAppear:nf,onAfterAppear:nf,onAppearCancelled:nf},ng=e=>{let t=e.subTree;return t.component?ng(t.component):t};function nv(e){let t=e[0];if(e.length>1){for(let n of e)if(n.type!==ie){t=n;break}}return t}let ny={name:"BaseTransition",props:nm,setup(e,{slots:t}){let n=iE(),r=nh();return()=>{let i=t.default&&nk(t.default(),!0);if(!i||!i.length)return;let l=nv(i),s=tS(e),{mode:o}=s;if(r.isLeaving)return nS(l);let a=nx(l);if(!a)return nS(l);let c=n_(a,s,r,n,e=>c=e);a.type!==ie&&nC(a,c);let u=n.subTree&&nx(n.subTree);if(u&&u.type!==ie&&!ip(a,u)&&ng(n).type!==ie){let e=n_(u,s,r,n);if(nC(u,e),"out-in"===o&&a.type!==ie)return r.isLeaving=!0,e.afterLeave=()=>{r.isLeaving=!1,8&n.job.flags||n.update(),delete e.afterLeave,u=void 0},nS(l);"in-out"===o&&a.type!==ie?e.delayLeave=(e,t,n)=>{nb(r,u)[String(u.key)]=u,e[nd]=()=>{t(),e[nd]=void 0,delete c.delayedLeave,u=void 0},c.delayedLeave=()=>{n(),delete c.delayedLeave,u=void 0}}:u=void 0}else u&&(u=void 0);return l}}};function nb(e,t){let{leavingVNodes:n}=e,r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function n_(e,t,n,r,i){let{appear:l,mode:s,persisted:o=!1,onBeforeEnter:a,onEnter:c,onAfterEnter:u,onEnterCancelled:d,onBeforeLeave:p,onLeave:h,onAfterLeave:f,onLeaveCancelled:m,onBeforeAppear:g,onAppear:y,onAfterAppear:b,onAppearCancelled:_}=t,S=String(e.key),x=nb(n,e),C=(e,t)=>{e&&tq(e,r,9,t)},k=(e,t)=>{let n=t[1];C(e,t),E(e)?e.every(e=>e.length<=1)&&n():e.length<=1&&n()},T={mode:s,persisted:o,beforeEnter(t){let r=a;if(!n.isMounted)if(!l)return;else r=g||a;t[nd]&&t[nd](!0);let i=x[S];i&&ip(e,i)&&i.el[nd]&&i.el[nd](),C(r,[t])},enter(e){let t=c,r=u,i=d;if(!n.isMounted)if(!l)return;else t=y||c,r=b||u,i=_||d;let s=!1,o=e[np]=t=>{s||(s=!0,t?C(i,[e]):C(r,[e]),T.delayedLeave&&T.delayedLeave(),e[np]=void 0)};t?k(t,[e,o]):o()},leave(t,r){let i=String(e.key);if(t[np]&&t[np](!0),n.isUnmounting)return r();C(p,[t]);let l=!1,s=t[nd]=n=>{l||(l=!0,r(),n?C(m,[t]):C(f,[t]),t[nd]=void 0,x[i]===e&&delete x[i])};x[i]=e,h?k(h,[t,s]):s()},clone(e){let l=n_(e,t,n,r,i);return i&&i(l),l}};return T}function nS(e){if(nB(e))return(e=ib(e)).children=null,e}function nx(e){if(!nB(e))return e.type.__isTeleport&&e.children?nv(e.children):e;if(e.component)return e.component.subTree;let{shapeFlag:t,children:n}=e;if(n){if(16&t)return n[0];if(32&t&&P(n.default))return n.default()}}function nC(e,t){6&e.shapeFlag&&e.component?(e.transition=t,nC(e.component.subTree,t)):128&e.shapeFlag?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function nk(e,t=!1,n){let r=[],i=0;for(let l=0;l1)for(let e=0;enw(e,t&&(E(t)?t[l]:t),n,r,i));if(nF(r)&&!i){512&r.shapeFlag&&r.type.__asyncResolved&&r.component.subTree.component&&nw(e,t,n,r.component.subTree);return}let l=4&r.shapeFlag?iV(r.component):r.el,s=i?null:l,{i:o,r:a}=e,c=t&&t.r,u=o.refs===b?o.refs={}:o.refs,d=o.setupState,p=tS(d),h=d===b?()=>!1:e=>A(p,e);if(null!=c&&c!==a&&(M(c)?(u[c]=null,h(c)&&(d[c]=null)):tT(c)&&(c.value=null)),P(a))tH(a,o,12,[s,u]);else{let t=M(a),r=tT(a);if(t||r){let o=()=>{if(e.f){let n=t?h(a)?d[a]:u[a]:a.value;i?E(n)&&N(n,l):E(n)?n.includes(l)||n.push(l):t?(u[a]=[l],h(a)&&(d[a]=u[a])):(a.value=[l],e.k&&(u[e.k]=a.value))}else t?(u[a]=s,h(a)&&(d[a]=s)):r&&(a.value=s,e.k&&(u[e.k]=s))};s?(o.id=-1,rM(o,n)):o()}}}let nA=!1,nE=()=>{nA||(console.error("Hydration completed but contains mismatches."),nA=!0)},nI=e=>{if(1===e.nodeType){if(e.namespaceURI.includes("svg")&&"foreignObject"!==e.tagName)return"svg";if(e.namespaceURI.includes("MathML"))return"mathml"}},nR=e=>8===e.nodeType;function nO(e){let{mt:t,p:n,o:{patchProp:r,createText:i,nextSibling:l,parentNode:s,remove:o,insert:a,createComment:c}}=e,u=(n,r,o,c,b,_=!1)=>{_=_||!!r.dynamicChildren;let S=nR(n)&&"["===n.data,x=()=>f(n,r,o,c,b,S),{type:C,ref:k,shapeFlag:T,patchFlag:N}=r,w=n.nodeType;r.el=n,-2===N&&(_=!1,r.dynamicChildren=null);let A=null;switch(C){case r7:3!==w?""===r.children?(a(r.el=i(""),s(n),n),A=n):A=x():(n.data!==r.children&&(nE(),n.data=r.children),A=l(n));break;case ie:y(n)?(A=l(n),g(r.el=n.content.firstChild,n,o)):A=8!==w||S?x():l(n);break;case it:if(S&&(w=(n=l(n)).nodeType),1===w||3===w){A=n;let e=!r.children.length;for(let t=0;t{s=s||!!t.dynamicChildren;let{type:a,props:c,patchFlag:u,shapeFlag:d,dirs:h,transition:f}=t,m="input"===a||"option"===a;if(m||-1!==u){let a;h&&ne(t,null,n,"created");let b=!1;if(y(e)){b=rV(null,f)&&n&&n.vnode.props&&n.vnode.props.appear;let r=e.content.firstChild;if(b){let e=r.getAttribute("class");e&&(r.$cls=e),f.beforeEnter(r)}g(r,e,n),t.el=e=r}if(16&d&&!(c&&(c.innerHTML||c.textContent))){let r=p(e.firstChild,t,e,n,i,l,s);for(;r;){nL(e,1)||nE();let t=r;r=r.nextSibling,o(t)}}else if(8&d){let n=t.children;` -`===n[0]&&("PRE"===e.tagName||"TEXTAREA"===e.tagName)&&(n=n.slice(1)),e.textContent!==n&&(nL(e,0)||nE(),e.textContent=t.children)}if(c){if(m||!s||48&u){let t=e.tagName.includes("-");for(let i in c)(m&&(i.endsWith("value")||"indeterminate"===i)||C(i)&&!j(i)||"."===i[0]||t)&&r(e,i,null,c[i],void 0,n)}else if(c.onClick)r(e,"onClick",null,c.onClick,void 0,n);else if(4&u&&tv(c.style))for(let e in c.style)c.style[e]}(a=c&&c.onVnodeBeforeMount)&&iT(a,n,t),h&&ne(t,null,n,"beforeMount"),((a=c&&c.onVnodeMounted)||h||b)&&r8(()=>{a&&iT(a,n,t),b&&f.enter(e),h&&ne(t,null,n,"mounted")},i)}return e.nextSibling},p=(e,t,r,s,o,c,d)=>{d=d||!!t.dynamicChildren;let p=t.children,h=p.length;for(let t=0;t{let{slotScopeIds:u}=t;u&&(i=i?i.concat(u):u);let d=s(e),h=p(l(e),t,d,n,r,i,o);return h&&nR(h)&&"]"===h.data?l(t.anchor=h):(nE(),a(t.anchor=c("]"),d,h),h)},f=(e,t,r,i,a,c)=>{if(nL(e.parentElement,1)||nE(),t.el=null,c){let t=m(e);for(;;){let n=l(e);if(n&&n!==t)o(n);else break}}let u=l(e),d=s(e);return o(e),n(null,t,d,u,r,i,nI(d),a),r&&(r.vnode.el=t.el,r0(r,t.el)),u},m=(e,t="[",n="]")=>{let r=0;for(;e;)if((e=l(e))&&nR(e)&&(e.data===t&&r++,e.data===n))if(0===r)return l(e);else r--;return e},g=(e,t,n)=>{let r=t.parentNode;r&&r.replaceChild(e,t);let i=n;for(;i;)i.vnode.el===t&&(i.vnode.el=i.subTree.el=e),i=i.parent},y=e=>1===e.nodeType&&"TEMPLATE"===e.tagName;return[(e,t)=>{if(!t.hasChildNodes()){n(null,e,t),t6(),t._vnode=e;return}u(t.firstChild,e,null,null,null),t6(),t._vnode=e},u]}let nP="data-allow-mismatch",nM={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function nL(e,t){if(0===t||1===t)for(;e&&!e.hasAttribute(nP);)e=e.parentElement;let n=e&&e.getAttribute(nP);if(null==n)return!1;{if(""===n)return!0;let e=n.split(",");return!!(0===t&&e.includes("children"))||e.includes(nM[t])}}let n$=en().requestIdleCallback||(e=>setTimeout(e,1)),nD=en().cancelIdleCallback||(e=>clearTimeout(e)),nF=e=>!!e.type.__asyncLoader;function nV(e,t){let{ref:n,props:r,children:i,ce:l}=t.vnode,s=iv(e,r,i);return s.ref=n,s.ce=l,delete t.vnode.ce,s}let nB=e=>e.type.__isKeepAlive;function nU(e,t){return E(e)?e.some(e=>nU(e,t)):M(e)?e.split(",").includes(t):"[object RegExp]"===V(e)&&(e.lastIndex=0,e.test(t))}function nj(e,t){nq(e,"a",t)}function nH(e,t){nq(e,"da",t)}function nq(e,t,n=iA){let r=e.__wdc||(e.__wdc=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()});if(nz(t,r,n),n){let e=n.parent;for(;e&&e.parent;)nB(e.parent.vnode)&&function(e,t,n,r){let i=nz(t,e,r,!0);n0(()=>{N(r[t],i)},n)}(r,t,n,e),e=e.parent}}function nW(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function nK(e){return 128&e.shapeFlag?e.ssContent:e}function nz(e,t,n=iA,r=!1){if(n){let i=n[e]||(n[e]=[]),l=t.__weh||(t.__weh=(...r)=>{eM();let i=iI(n),l=tq(t,n,e,r);return i(),eL(),l});return r?i.unshift(l):i.push(l),l}}let nJ=e=>(t,n=iA)=>{iP&&"sp"!==e||nz(e,(...e)=>t(...e),n)},nG=nJ("bm"),nX=nJ("m"),nQ=nJ("bu"),nZ=nJ("u"),nY=nJ("bum"),n0=nJ("um"),n1=nJ("sp"),n2=nJ("rtg"),n3=nJ("rtc");function n6(e,t=iA){nz("ec",e,t)}let n4="components",n8=Symbol.for("v-ndc");function n5(e,t,n=!0,r=!1){let i=t8||iA;if(i){let n=i.type;if(e===n4){let e=iB(n,!1);if(e&&(e===t||e===K(t)||e===G(K(t))))return n}let l=n9(i[e]||n[e],t)||n9(i.appContext[e],t);return!l&&r?n:l}}function n9(e,t){return e&&(e[t]||e[K(t)]||e[G(K(t))])}let n7=e=>e?iO(e)?iV(e):n7(e.parent):null,re=T(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>n7(e.parent),$root:e=>n7(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>ra(e),$forceUpdate:e=>e.f||(e.f=()=>{t0(e.update)}),$nextTick:e=>e.n||(e.n=tY.bind(e.proxy)),$watch:e=>rW.bind(e)}),rt=(e,t)=>e!==b&&!e.__isScriptSetup&&A(e,t),rn={get({_:e},t){let n,r,i;if("__v_skip"===t)return!0;let{ctx:l,setupState:s,data:o,props:a,accessCache:c,type:u,appContext:d}=e;if("$"!==t[0]){let r=c[t];if(void 0!==r)switch(r){case 1:return s[t];case 2:return o[t];case 4:return l[t];case 3:return a[t]}else{if(rt(s,t))return c[t]=1,s[t];if(o!==b&&A(o,t))return c[t]=2,o[t];if((n=e.propsOptions[0])&&A(n,t))return c[t]=3,a[t];if(l!==b&&A(l,t))return c[t]=4,l[t];rs&&(c[t]=0)}}let p=re[t];return p?("$attrs"===t&&eq(e.attrs,"get",""),p(e)):(r=u.__cssModules)&&(r=r[t])?r:l!==b&&A(l,t)?(c[t]=4,l[t]):A(i=d.config.globalProperties,t)?i[t]:void 0},set({_:e},t,n){let{data:r,setupState:i,ctx:l}=e;return rt(i,t)?(i[t]=n,!0):r!==b&&A(r,t)?(r[t]=n,!0):!A(e.props,t)&&!("$"===t[0]&&t.slice(1)in e)&&(l[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:i,propsOptions:l}},s){let o;return!!n[s]||e!==b&&A(e,s)||rt(t,s)||(o=l[0])&&A(o,s)||A(r,s)||A(re,s)||A(i.config.globalProperties,s)},defineProperty(e,t,n){return null!=n.get?e._.accessCache[t]=0:A(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}},rr=T({},rn,{get(e,t){if(t!==Symbol.unscopables)return rn.get(e,t,e)},has:(e,t)=>"_"!==t[0]&&!er(t)});function ri(){let e=iE();return e.setupContext||(e.setupContext=iF(e))}function rl(e){return E(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}let rs=!0;function ro(e,t,n){tq(E(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function ra(e){let t,n=e.type,{mixins:r,extends:i}=n,{mixins:l,optionsCache:s,config:{optionMergeStrategies:o}}=e.appContext,a=s.get(n);return a?t=a:l.length||r||i?(t={},l.length&&l.forEach(e=>rc(t,e,o,!0)),rc(t,n,o)):t=n,$(n)&&s.set(n,t),t}function rc(e,t,n,r=!1){let{mixins:i,extends:l}=t;for(let s in l&&rc(e,l,n,!0),i&&i.forEach(t=>rc(e,t,n,!0)),t)if(r&&"expose"===s);else{let r=ru[s]||n&&n[s];e[s]=r?r(e[s],t[s]):t[s]}return e}let ru={data:rd,props:rm,emits:rm,methods:rf,computed:rf,beforeCreate:rh,created:rh,beforeMount:rh,mounted:rh,beforeUpdate:rh,updated:rh,beforeDestroy:rh,beforeUnmount:rh,destroyed:rh,unmounted:rh,activated:rh,deactivated:rh,errorCaptured:rh,serverPrefetch:rh,components:rf,directives:rf,watch:function(e,t){if(!e)return t;if(!t)return e;let n=T(Object.create(null),e);for(let r in t)n[r]=rh(e[r],t[r]);return n},provide:rd,inject:function(e,t){return rf(rp(e),rp(t))}};function rd(e,t){return t?e?function(){return T(P(e)?e.call(this,this):e,P(t)?t.call(this,this):t)}:t:e}function rp(e){if(E(e)){let t={};for(let n=0;n1)return n&&P(t)?t.call(r&&r.proxy):t}}let rS={},rx=()=>Object.create(rS),rC=e=>Object.getPrototypeOf(e)===rS;function rk(e,t,n,r){let i,[l,s]=e.propsOptions,o=!1;if(t)for(let a in t){let c;if(j(a))continue;let u=t[a];l&&A(l,c=K(a))?s&&s.includes(c)?(i||(i={}))[c]=u:n[c]=u:rG(e.emitsOptions,a)||a in r&&u===r[a]||(r[a]=u,o=!0)}if(s){let t=tS(n),r=i||b;for(let i=0;i"_"===e[0]||"$stable"===e,rE=e=>E(e)?e.map(iS):[iS(e)],rI=(e,t,n)=>{if(t._n)return t;let r=t7((...e)=>rE(t(...e)),n);return r._c=!1,r},rR=(e,t,n)=>{let r=e._ctx;for(let n in e){if(rA(n))continue;let i=e[n];if(P(i))t[n]=rI(n,i,r);else if(null!=i){let e=rE(i);t[n]=()=>e}}},rO=(e,t)=>{let n=rE(t);e.slots.default=()=>n},rP=(e,t,n)=>{for(let r in t)(n||!rA(r))&&(e[r]=t[r])},rM=r8;function rL(e){return r$(e,nO)}function r$(e,t){var n;let r,i;en().__VUE__=!0;let{insert:l,remove:s,patchProp:o,createElement:a,createText:c,createComment:d,setText:p,setElementText:h,parentNode:f,nextSibling:m,setScopeId:g=S,insertStaticContent:y}=e,x=(e,t,n,r=null,i=null,l=null,s,o=null,a=!!t.dynamicChildren)=>{if(e===t)return;e&&!ip(e,t)&&(r=es(e),ee(e,i,l,!0),e=null),-2===t.patchFlag&&(a=!1,t.dynamicChildren=null);let{type:c,ref:u,shapeFlag:d}=t;switch(c){case r7:C(e,t,n,r);break;case ie:k(e,t,n,r);break;case it:null==e&&N(t,n,r,s);break;case r9:V(e,t,n,r,i,l,s,o,a);break;default:1&d?w(e,t,n,r,i,l,s,o,a):6&d?B(e,t,n,r,i,l,s,o,a):64&d?c.process(e,t,n,r,i,l,s,o,a,ec):128&d&&c.process(e,t,n,r,i,l,s,o,a,ec)}null!=u&&i?nw(u,e&&e.ref,l,t||e,!t):null==u&&e&&null!=e.ref&&nw(e.ref,null,l,e,!0)},C=(e,t,n,r)=>{if(null==e)l(t.el=c(t.children),n,r);else{let n=t.el=e.el;t.children!==e.children&&p(n,t.children)}},k=(e,t,n,r)=>{null==e?l(t.el=d(t.children||""),n,r):t.el=e.el},N=(e,t,n,r)=>{[e.el,e.anchor]=y(e.children,t,n,r,e.el,e.anchor)},w=(e,t,n,r,i,l,s,o,a)=>{"svg"===t.type?s="svg":"math"===t.type&&(s="mathml"),null==e?I(t,n,r,i,l,s,o,a):M(e,t,i,l,s,o,a)},I=(e,t,n,r,i,s,c,u)=>{let d,p,{props:f,shapeFlag:m,transition:g,dirs:y}=e;if(d=e.el=a(e.type,s,f&&f.is,f),8&m?h(d,e.children):16&m&&O(e.children,d,null,r,i,rD(e,s),c,u),y&&ne(e,null,r,"created"),R(d,e,e.scopeId,c,r),f){for(let e in f)"value"===e||j(e)||o(d,e,null,f[e],s,r);"value"in f&&o(d,"value",null,f.value,s),(p=f.onVnodeBeforeMount)&&iT(p,r,e)}y&&ne(e,null,r,"beforeMount");let b=rV(i,g);b&&g.beforeEnter(d),l(d,t,n),((p=f&&f.onVnodeMounted)||b||y)&&rM(()=>{p&&iT(p,r,e),b&&g.enter(d),y&&ne(e,null,r,"mounted")},i)},R=(e,t,n,r,i)=>{if(n&&g(e,n),r)for(let t=0;t{for(let c=a;c{let a,c=t.el=e.el,{patchFlag:u,dynamicChildren:d,dirs:p}=t;u|=16&e.patchFlag;let f=e.props||b,m=t.props||b;if(n&&rF(n,!1),(a=m.onVnodeBeforeUpdate)&&iT(a,n,t,e),p&&ne(t,e,n,"beforeUpdate"),n&&rF(n,!0),(f.innerHTML&&null==m.innerHTML||f.textContent&&null==m.textContent)&&h(c,""),d?L(e.dynamicChildren,d,c,n,r,rD(t,i),l):s||z(e,t,c,null,n,r,rD(t,i),l,!1),u>0){if(16&u)F(c,f,m,n,i);else if(2&u&&f.class!==m.class&&o(c,"class",null,m.class,i),4&u&&o(c,"style",f.style,m.style,i),8&u){let e=t.dynamicProps;for(let t=0;t{a&&iT(a,n,t,e),p&&ne(t,e,n,"updated")},r)},L=(e,t,n,r,i,l,s)=>{for(let o=0;o{if(t!==n){if(t!==b)for(let l in t)j(l)||l in n||o(e,l,t[l],null,i,r);for(let l in n){if(j(l))continue;let s=n[l],a=t[l];s!==a&&"value"!==l&&o(e,l,a,s,i,r)}"value"in n&&o(e,"value",t.value,n.value,i)}},V=(e,t,n,r,i,s,o,a,u)=>{let d=t.el=e?e.el:c(""),p=t.anchor=e?e.anchor:c(""),{patchFlag:h,dynamicChildren:f,slotScopeIds:m}=t;m&&(a=a?a.concat(m):m),null==e?(l(d,n,r),l(p,n,r),O(t.children||[],n,p,i,s,o,a,u)):h>0&&64&h&&f&&e.dynamicChildren?(L(e.dynamicChildren,f,n,i,s,o,a),(null!=t.key||i&&t===i.subTree)&&rB(e,t,!0)):z(e,t,n,p,i,s,o,a,u)},B=(e,t,n,r,i,l,s,o,a)=>{t.slotScopeIds=o,null==e?512&t.shapeFlag?i.ctx.activate(t,n,r,s,a):U(t,n,r,i,l,s,a):H(e,t,a)},U=(e,t,n,r,i,l,s)=>{let o=e.component=function(e,t,n){let r=e.type,i=(t?t.appContext:e.appContext)||iN,l={uid:iw++,vnode:e,type:r,parent:t,appContext:i,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new eS(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(i.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:function e(t,n,r=!1){let i=r?rN:n.propsCache,l=i.get(t);if(l)return l;let s=t.props,o={},a=[],c=!1;if(!P(t)){let i=t=>{c=!0;let[r,i]=e(t,n,!0);T(o,r),i&&a.push(...i)};!r&&n.mixins.length&&n.mixins.forEach(i),t.extends&&i(t.extends),t.mixins&&t.mixins.forEach(i)}if(!s&&!c)return $(t)&&i.set(t,_),_;if(E(s))for(let e=0;e{let r=e(t,n,!0);r&&(a=!0,T(o,r))};!r&&n.mixins.length&&n.mixins.forEach(i),t.extends&&i(t.extends),t.mixins&&t.mixins.forEach(i)}return s||a?(E(s)?s.forEach(e=>o[e]=null):T(o,s),$(t)&&i.set(t,o),o):($(t)&&i.set(t,null),null)}(r,i),emit:null,emitted:null,propsDefaults:b,inheritAttrs:r.inheritAttrs,ctx:b,data:b,props:b,attrs:b,slots:b,refs:b,setupState:b,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return l.ctx={_:l},l.root=t?t.root:l,l.emit=rJ.bind(null,l),e.ce&&e.ce(l),l}(e,r,i);nB(e)&&(o.ctx.renderer=ec),function(e,t=!1,n=!1){t&&u(t);let{props:r,children:i}=e.vnode,l=iO(e);!function(e,t,n,r=!1){let i={},l=rx();for(let n in e.propsDefaults=Object.create(null),rk(e,t,i,l),e.propsOptions[0])n in i||(i[n]=void 0);n?e.props=r?i:tf(i):e.type.props?e.props=i:e.props=l,e.attrs=l}(e,r,l,t),((e,t,n)=>{let r=e.slots=rx();if(32&e.vnode.shapeFlag){let e=t.__;e&&Y(r,"__",e,!0);let i=t._;i?(rP(r,t,n),n&&Y(r,"_",i,!0)):rR(t,r)}else t&&rO(e,t)})(e,i,n||t),l&&function(e,t){let n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,rn);let{setup:r}=n;if(r){eM();let n=e.setupContext=r.length>1?iF(e):null,i=iI(e),l=tH(r,e,0,[e.props,n]),s=D(l);if(eL(),i(),(s||e.sp)&&!nF(e)&&nN(e),s){if(l.then(iR,iR),t)return l.then(n=>{iM(e,n,t)}).catch(t=>{tW(t,e,0)});e.asyncDep=l}else iM(e,l,t)}else i$(e,t)}(e,t),t&&u(!1)}(o,!1,s),o.asyncDep?(i&&i.registerDep(o,q,s),e.el||k(null,o.subTree=iv(ie),t,n)):q(o,e,t,n,i,l,s)},H=(e,t,n)=>{let r=t.component=e.component;if(function(e,t,n){let{props:r,children:i,component:l}=e,{props:s,children:o,patchFlag:a}=t,c=l.emitsOptions;if(t.dirs||t.transition)return!0;if(!n||!(a>=0))return(!!i||!!o)&&(!o||!o.$stable)||r!==s&&(r?!s||rY(r,s,c):!!s);if(1024&a)return!0;if(16&a)return r?rY(r,s,c):!!s;if(8&a){let e=t.dynamicProps;for(let t=0;t{let a=()=>{if(e.isMounted){let t,{next:n,bu:r,u:i,parent:c,vnode:u}=e;{let t=function e(t){let n=t.subTree.component;if(n)if(n.asyncDep&&!n.asyncResolved)return n;else return e(n)}(e);if(t){n&&(n.el=u.el,W(e,n,o)),t.asyncDep.then(()=>{e.isUnmounted||a()});return}}let d=n;rF(e,!1),n?(n.el=u.el,W(e,n,o)):n=u,r&&Z(r),(t=n.props&&n.props.onVnodeBeforeUpdate)&&iT(t,c,n,u),rF(e,!0);let p=rX(e),h=e.subTree;e.subTree=p,x(h,p,f(h.el),es(h),e,l,s),n.el=p.el,null===d&&r0(e,p.el),i&&rM(i,l),(t=n.props&&n.props.onVnodeUpdated)&&rM(()=>iT(t,c,n,u),l)}else{let o,{el:a,props:c}=t,{bm:u,m:d,parent:p,root:h,type:f}=e,m=nF(t);if(rF(e,!1),u&&Z(u),!m&&(o=c&&c.onVnodeBeforeMount)&&iT(o,p,t),rF(e,!0),a&&i){let t=()=>{e.subTree=rX(e),i(a,e.subTree,e,l,null)};m&&f.__asyncHydrate?f.__asyncHydrate(a,e,t):t()}else{h.ce&&!1!==h.ce._def.shadowRoot&&h.ce._injectChildStyle(f);let i=e.subTree=rX(e);x(null,i,n,r,e,l,s),t.el=i.el}if(d&&rM(d,l),!m&&(o=c&&c.onVnodeMounted)){let e=t;rM(()=>iT(o,p,e),l)}(256&t.shapeFlag||p&&nF(p.vnode)&&256&p.vnode.shapeFlag)&&e.a&&rM(e.a,l),e.isMounted=!0,t=n=r=null}};e.scope.on();let c=e.effect=new eC(a);e.scope.off();let u=e.update=c.run.bind(c),d=e.job=c.runIfDirty.bind(c);d.i=e,d.id=e.uid,c.scheduler=()=>t0(d),rF(e,!0),u()},W=(e,t,n)=>{t.component=e;let r=e.vnode.props;e.vnode=t,e.next=null,function(e,t,n,r){let{props:i,attrs:l,vnode:{patchFlag:s}}=e,o=tS(i),[a]=e.propsOptions,c=!1;if((r||s>0)&&!(16&s)){if(8&s){let n=e.vnode.dynamicProps;for(let r=0;r{let{vnode:r,slots:i}=e,l=!0,s=b;if(32&r.shapeFlag){let e=t._;e?n&&1===e?l=!1:rP(i,t,n):(l=!t.$stable,rR(t,i)),s=t}else t&&(rO(e,t),s={default:1});if(l)for(let e in i)rA(e)||null!=s[e]||delete i[e]})(e,t.children,n),eM(),t3(e),eL()},z=(e,t,n,r,i,l,s,o,a=!1)=>{let c=e&&e.children,u=e?e.shapeFlag:0,d=t.children,{patchFlag:p,shapeFlag:f}=t;if(p>0){if(128&p)return void X(c,d,n,r,i,l,s,o,a);else if(256&p)return void G(c,d,n,r,i,l,s,o,a)}8&f?(16&u&&el(c,i,l),d!==c&&h(n,d)):16&u?16&f?X(c,d,n,r,i,l,s,o,a):el(c,i,l,!0):(8&u&&h(n,""),16&f&&O(d,n,r,i,l,s,o,a))},G=(e,t,n,r,i,l,s,o,a)=>{let c;e=e||_,t=t||_;let u=e.length,d=t.length,p=Math.min(u,d);for(c=0;cd?el(e,i,l,!0,!1,p):O(t,n,r,i,l,s,o,a,p)},X=(e,t,n,r,i,l,s,o,a)=>{let c=0,u=t.length,d=e.length-1,p=u-1;for(;c<=d&&c<=p;){let r=e[c],u=t[c]=a?ix(t[c]):iS(t[c]);if(ip(r,u))x(r,u,n,null,i,l,s,o,a);else break;c++}for(;c<=d&&c<=p;){let r=e[d],c=t[p]=a?ix(t[p]):iS(t[p]);if(ip(r,c))x(r,c,n,null,i,l,s,o,a);else break;d--,p--}if(c>d){if(c<=p){let e=p+1,d=ep)for(;c<=d;)ee(e[c],i,l,!0),c++;else{let h,f=c,m=c,g=new Map;for(c=m;c<=p;c++){let e=t[c]=a?ix(t[c]):iS(t[c]);null!=e.key&&g.set(e.key,c)}let y=0,b=p-m+1,S=!1,C=0,k=Array(b);for(c=0;c=b){ee(u,i,l,!0);continue}if(null!=u.key)r=g.get(u.key);else for(h=m;h<=p;h++)if(0===k[h-m]&&ip(u,t[h])){r=h;break}void 0===r?ee(u,i,l,!0):(k[r-m]=c+1,r>=C?C=r:S=!0,x(u,t[r],n,null,i,l,s,o,a),y++)}let T=S?function(e){let t,n,r,i,l,s=e.slice(),o=[0],a=e.length;for(t=0;t>1]]0&&(s[t]=o[r-1]),o[r]=t)}}for(r=o.length,i=o[r-1];r-- >0;)o[r]=i,i=s[i];return o}(k):_;for(h=T.length-1,c=b-1;c>=0;c--){let e=m+c,d=t[e],p=e+1{let{el:o,type:a,transition:c,children:u,shapeFlag:d}=e;if(6&d)return void Q(e.component.subTree,t,n,r);if(128&d)return void e.suspense.move(t,n,r);if(64&d)return void a.move(e,t,n,ec);if(a===r9){l(o,t,n);for(let e=0;e{let i;for(;e&&e!==t;)i=m(e),l(e,n,r),e=i;l(t,n,r)})(e,t,n);if(2!==r&&1&d&&c)if(0===r)c.beforeEnter(o),l(o,t,n),rM(()=>c.enter(o),i);else{let{leave:r,delayLeave:i,afterLeave:a}=c,u=()=>{e.ctx.isUnmounted?s(o):l(o,t,n)},d=()=>{r(o,()=>{u(),a&&a()})};i?i(o,u,d):d()}else l(o,t,n)},ee=(e,t,n,r=!1,i=!1)=>{let l,{type:s,props:o,ref:a,children:c,dynamicChildren:u,shapeFlag:d,patchFlag:p,dirs:h,cacheIndex:f}=e;if(-2===p&&(i=!1),null!=a&&(eM(),nw(a,null,n,e,!0),eL()),null!=f&&(t.renderCache[f]=void 0),256&d)return void t.ctx.deactivate(e);let m=1&d&&h,g=!nF(e);if(g&&(l=o&&o.onVnodeBeforeUnmount)&&iT(l,t,e),6&d)ei(e.component,n,r);else{if(128&d)return void e.suspense.unmount(n,r);m&&ne(e,null,t,"beforeUnmount"),64&d?e.type.remove(e,t,n,ec,r):u&&!u.hasOnce&&(s!==r9||p>0&&64&p)?el(u,t,n,!1,!0):(s===r9&&384&p||!i&&16&d)&&el(c,t,n),r&&et(e)}(g&&(l=o&&o.onVnodeUnmounted)||m)&&rM(()=>{l&&iT(l,t,e),m&&ne(e,null,t,"unmounted")},n)},et=e=>{let{type:t,el:n,anchor:r,transition:i}=e;if(t===r9)return void er(n,r);if(t===it)return void(({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=m(e),s(e),e=n;s(t)})(e);let l=()=>{s(n),i&&!i.persisted&&i.afterLeave&&i.afterLeave()};if(1&e.shapeFlag&&i&&!i.persisted){let{leave:t,delayLeave:r}=i,s=()=>t(n,l);r?r(e.el,l,s):s()}else l()},er=(e,t)=>{let n;for(;e!==t;)n=m(e),s(e),e=n;s(t)},ei=(e,t,n)=>{let{bum:r,scope:i,job:l,subTree:s,um:o,m:a,a:c,parent:u,slots:{__:d}}=e;rU(a),rU(c),r&&Z(r),u&&E(d)&&d.forEach(e=>{u.renderCache[e]=void 0}),i.stop(),l&&(l.flags|=8,ee(s,e,t,n)),o&&rM(o,t),rM(()=>{e.isUnmounted=!0},t),t&&t.pendingBranch&&!t.isUnmounted&&e.asyncDep&&!e.asyncResolved&&e.suspenseId===t.pendingId&&(t.deps--,0===t.deps&&t.resolve())},el=(e,t,n,r=!1,i=!1,l=0)=>{for(let s=l;s{if(6&e.shapeFlag)return es(e.component.subTree);if(128&e.shapeFlag)return e.suspense.next();let t=m(e.anchor||e.el),n=t&&t[nt];return n?m(n):t},eo=!1,ea=(e,t,n)=>{null==e?t._vnode&&ee(t._vnode,null,null,!0):x(t._vnode||null,e,t,null,null,null,n),t._vnode=e,eo||(eo=!0,t3(),t6(),eo=!1)},ec={p:x,um:ee,m:Q,r:et,mt:U,mc:O,pc:z,pbc:L,n:es,o:e};return t&&([r,i]=t(ec)),{render:ea,hydrate:r,createApp:(n=r,function(e,t=null){P(e)||(e=T({},e)),null==t||$(t)||(t=null);let r=rg(),i=new WeakSet,l=[],s=!1,o=r.app={_uid:rv++,_component:e,_props:t,_container:null,_context:r,_instance:null,version:iq,get config(){return r.config},set config(v){},use:(e,...t)=>(i.has(e)||(e&&P(e.install)?(i.add(e),e.install(o,...t)):P(e)&&(i.add(e),e(o,...t))),o),mixin:e=>(r.mixins.includes(e)||r.mixins.push(e),o),component:(e,t)=>t?(r.components[e]=t,o):r.components[e],directive:(e,t)=>t?(r.directives[e]=t,o):r.directives[e],mount(i,l,a){if(!s){let c=o._ceVNode||iv(e,t);return c.appContext=r,!0===a?a="svg":!1===a&&(a=void 0),l&&n?n(c,i):ea(c,i,a),s=!0,o._container=i,i.__vue_app__=o,iV(c.component)}},onUnmount(e){l.push(e)},unmount(){s&&(tq(l,o._instance,16),ea(null,o._container),delete o._container.__vue_app__)},provide:(e,t)=>(r.provides[e]=t,o),runWithContext(e){let t=ry;ry=o;try{return e()}finally{ry=t}}};return o})}}function rD({type:e,props:t},n){return"svg"===n&&"foreignObject"===e||"mathml"===n&&"annotation-xml"===e&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function rF({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function rV(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function rB(e,t,n=!1){let r=e.children,i=t.children;if(E(r)&&E(i))for(let e=0;etq(e,c,t,n);let u=!1;return"post"===s?a.scheduler=e=>{rM(e,c&&c.suspense)}:"sync"!==s&&(u=!0,a.scheduler=(e,t)=>{t?e():t0(e)}),a.augmentJob=e=>{t&&(e.flags|=4),u&&(e.flags|=2,c&&(e.id=c.uid,e.i=c))},function(e,t,n=b){let r,i,s,o,{immediate:a,deep:c,once:u,scheduler:d,augmentJob:p,call:h}=n,f=e=>c?e:tb(e)||!1===c||0===c?tj(e,1):tj(e),g=!1,y=!1;if(tT(e)?(i=()=>e.value,g=tb(e)):tv(e)?(i=()=>f(e),g=!0):E(e)?(y=!0,g=e.some(e=>tv(e)||tb(e)),i=()=>e.map(e=>tT(e)?e.value:tv(e)?f(e):P(e)?h?h(e,2):e():void 0)):i=P(e)?t?h?()=>h(e,2):e:()=>{if(s){eM();try{s()}finally{eL()}}let t=m;m=r;try{return h?h(e,3,[o]):e(o)}finally{m=t}}:S,t&&c){let e=i,t=!0===c?1/0:c;i=()=>tj(e(),t)}let _=l,x=()=>{r.stop(),_&&_.active&&N(_.effects,r)};if(u&&t){let e=t;t=(...t)=>{e(...t),x()}}let C=y?Array(e.length).fill(tV):tV,k=e=>{if(1&r.flags&&(r.dirty||e))if(t){let e=r.run();if(c||g||(y?e.some((e,t)=>Q(e,C[t])):Q(e,C))){s&&s();let n=m;m=r;try{let n=[e,C===tV?void 0:y&&C[0]===tV?[]:C,o];C=e,h?h(t,3,n):t(...n)}finally{m=n}}}else r.run()};return p&&p(k),(r=new eC(i)).scheduler=d?()=>d(k,!1):k,o=e=>tU(e,!1,r),s=r.onStop=()=>{let e=tB.get(r);if(e){if(h)h(e,4);else for(let t of e)t();tB.delete(r)}},t?a?k(!0):C=r.run():d?d(k.bind(null,!0),!0):r.run(),x.pause=r.pause.bind(r),x.resume=r.resume.bind(r),x.stop=x,x}(e,t,a)}function rW(e,t,n){let r,i=this.proxy,l=M(e)?e.includes(".")?rK(i,e):()=>i[e]:e.bind(i,i);P(t)?r=t:(r=t.handler,n=t);let s=iI(this),o=rq(l,r.bind(i),n);return s(),o}function rK(e,t){let n=t.split(".");return()=>{let t=e;for(let e=0;e"modelValue"===t||"model-value"===t?e.modelModifiers:e[`${t}Modifiers`]||e[`${K(t)}Modifiers`]||e[`${J(t)}Modifiers`];function rJ(e,t,...n){let r;if(e.isUnmounted)return;let i=e.vnode.props||b,l=n,s=t.startsWith("update:"),o=s&&rz(i,t.slice(7));o&&(o.trim&&(l=n.map(e=>M(e)?e.trim():e)),o.number&&(l=n.map(ee)));let a=i[r=X(t)]||i[r=X(K(t))];!a&&s&&(a=i[r=X(J(t))]),a&&tq(a,e,6,l);let c=i[r+"Once"];if(c){if(e.emitted){if(e.emitted[r])return}else e.emitted={};e.emitted[r]=!0,tq(c,e,6,l)}}function rG(e,t){return!!e&&!!C(t)&&(A(e,(t=t.slice(2).replace(/Once$/,""))[0].toLowerCase()+t.slice(1))||A(e,J(t))||A(e,t))}function rX(e){let t,n,{type:r,vnode:i,proxy:l,withProxy:s,propsOptions:[o],slots:a,attrs:c,emit:u,render:d,renderCache:p,props:h,data:f,setupState:m,ctx:g,inheritAttrs:y}=e,b=t9(e);try{if(4&i.shapeFlag){let e=s||l;t=iS(d.call(e,e,p,h,m,f,g)),n=c}else t=iS(r.length>1?r(h,{attrs:c,slots:a,emit:u}):r(h,null)),n=r.props?c:rQ(c)}catch(n){ir.length=0,tW(n,e,1),t=iv(ie)}let _=t;if(n&&!1!==y){let e=Object.keys(n),{shapeFlag:t}=_;e.length&&7&t&&(o&&e.some(k)&&(n=rZ(n,o)),_=ib(_,n,!1,!0))}return i.dirs&&((_=ib(_,null,!1,!0)).dirs=_.dirs?_.dirs.concat(i.dirs):i.dirs),i.transition&&nC(_,i.transition),t=_,t9(b),t}let rQ=e=>{let t;for(let n in e)("class"===n||"style"===n||C(n))&&((t||(t={}))[n]=e[n]);return t},rZ=(e,t)=>{let n={};for(let r in e)k(r)&&r.slice(9)in t||(n[r]=e[r]);return n};function rY(e,t,n){let r=Object.keys(t);if(r.length!==Object.keys(e).length)return!0;for(let i=0;ie.__isSuspense,r2=0;function r3(e,t){let n=e.props&&e.props[t];P(n)&&n()}function r6(e,t,n,r,i,l,s,o,a,c,u=!1){let d,{p:p,m:h,um:f,n:m,o:{parentNode:g,remove:y}}=c,b=function(e){let t=e.props&&e.props.suspensible;return null!=t&&!1!==t}(e);b&&t&&t.pendingBranch&&(d=t.pendingId,t.deps++);let _=e.props?et(e.props.timeout):void 0,S=l,x={vnode:e,parent:t,parentComponent:n,namespace:s,container:r,hiddenContainer:i,deps:0,pendingId:r2++,timeout:"number"==typeof _?_:-1,activeBranch:null,pendingBranch:null,isInFallback:!u,isHydrating:u,isUnmounted:!1,effects:[],resolve(e=!1,n=!1){let{vnode:r,activeBranch:i,pendingBranch:s,pendingId:o,effects:a,parentComponent:c,container:u}=x,p=!1;x.isHydrating?x.isHydrating=!1:!e&&((p=i&&s.transition&&"out-in"===s.transition.mode)&&(i.transition.afterLeave=()=>{o===x.pendingId&&(h(s,u,l===S?m(i):l,0),t2(a))}),i&&(g(i.el)===u&&(l=m(i)),f(i,c,x,!0)),p||h(s,u,l,0)),r5(x,s),x.pendingBranch=null,x.isInFallback=!1;let y=x.parent,_=!1;for(;y;){if(y.pendingBranch){y.effects.push(...a),_=!0;break}y=y.parent}_||p||t2(a),x.effects=[],b&&t&&t.pendingBranch&&d===t.pendingId&&(t.deps--,0!==t.deps||n||t.resolve()),r3(r,"onResolve")},fallback(e){if(!x.pendingBranch)return;let{vnode:t,activeBranch:n,parentComponent:r,container:i,namespace:l}=x;r3(t,"onFallback");let s=m(n),c=()=>{x.isInFallback&&(p(null,e,i,s,r,null,l,o,a),r5(x,e))},u=e.transition&&"out-in"===e.transition.mode;u&&(n.transition.afterLeave=c),x.isInFallback=!0,f(n,r,null,!0),u||c()},move(e,t,n){x.activeBranch&&h(x.activeBranch,e,t,n),x.container=e},next:()=>x.activeBranch&&m(x.activeBranch),registerDep(e,t,n){let r=!!x.pendingBranch;r&&x.deps++;let i=e.vnode.el;e.asyncDep.catch(t=>{tW(t,e,0)}).then(l=>{if(e.isUnmounted||x.isUnmounted||x.pendingId!==e.suspenseId)return;e.asyncResolved=!0;let{vnode:o}=e;iM(e,l,!1),i&&(o.el=i);let a=!i&&e.subTree.el;t(e,o,g(i||e.subTree.el),i?null:m(e.subTree),x,s,n),a&&y(a),r0(e,o.el),r&&0==--x.deps&&x.resolve()})},unmount(e,t){x.isUnmounted=!0,x.activeBranch&&f(x.activeBranch,n,e,t),x.pendingBranch&&f(x.pendingBranch,n,e,t)}};return x}function r4(e){let t;if(P(e)){let n=io&&e._c;n&&(e._d=!1,il()),e=e(),n&&(e._d=!0,t=ii,is())}return E(e)&&(e=function(e,t=!0){let n;for(let t=0;tt!==e)),e}function r8(e,t){t&&t.pendingBranch?E(e)?t.effects.push(...e):t.effects.push(e):t2(e)}function r5(e,t){e.activeBranch=t;let{vnode:n,parentComponent:r}=e,i=t.el;for(;!i&&t.component;)i=(t=t.component.subTree).el;n.el=i,r&&r.subTree===n&&(r.vnode.el=i,r0(r,i))}let r9=Symbol.for("v-fgt"),r7=Symbol.for("v-txt"),ie=Symbol.for("v-cmt"),it=Symbol.for("v-stc"),ir=[],ii=null;function il(e=!1){ir.push(ii=e?null:[])}function is(){ir.pop(),ii=ir[ir.length-1]||null}let io=1;function ia(e,t=!1){io+=e,e<0&&ii&&t&&(ii.hasOnce=!0)}function ic(e){return e.dynamicChildren=io>0?ii||_:null,is(),io>0&&ii&&ii.push(e),e}function iu(e,t,n,r,i){return ic(iv(e,t,n,r,i,!0))}function id(e){return!!e&&!0===e.__v_isVNode}function ip(e,t){return e.type===t.type&&e.key===t.key}let ih=({key:e})=>null!=e?e:null,im=({ref:e,ref_key:t,ref_for:n})=>("number"==typeof e&&(e=""+e),null!=e?M(e)||tT(e)||P(e)?{i:t8,r:e,k:t,f:!!n}:e:null);function ig(e,t=null,n=null,r=0,i=null,l=+(e!==r9),s=!1,o=!1){let a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ih(t),ref:t&&im(t),scopeId:t5,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:l,patchFlag:r,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:t8};return o?(iC(a,n),128&l&&e.normalize(a)):n&&(a.shapeFlag|=M(n)?8:16),io>0&&!s&&ii&&(a.patchFlag>0||6&l)&&32!==a.patchFlag&&ii.push(a),a}let iv=function(e,t=null,n=null,r=0,i=null,l=!1){var s;if(e&&e!==n8||(e=ie),id(e)){let r=ib(e,t,!0);return n&&iC(r,n),io>0&&!l&&ii&&(6&r.shapeFlag?ii[ii.indexOf(e)]=r:ii.push(r)),r.patchFlag=-2,r}if(P(s=e)&&"__vccOpts"in s&&(e=e.__vccOpts),t){let{class:e,style:n}=t=iy(t);e&&!M(e)&&(t.class=ec(e)),$(n)&&(t_(n)&&!E(n)&&(n=T({},n)),t.style=ei(n))}let o=M(e)?1:r1(e)?128:e.__isTeleport?64:$(e)?4:2*!!P(e);return ig(e,t,n,r,i,o,l,!0)};function iy(e){return e?t_(e)||rC(e)?T({},e):e:null}function ib(e,t,n=!1,r=!1){let{props:i,ref:l,patchFlag:s,children:o,transition:a}=e,c=t?ik(i||{},t):i,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&ih(c),ref:t&&t.ref?n&&l?E(l)?l.concat(im(t)):[l,im(t)]:im(t):l,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==r9?-1===s?16:16|s:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&ib(e.ssContent),ssFallback:e.ssFallback&&ib(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&r&&nC(u,a.clone(u)),u}function i_(e=" ",t=0){return iv(r7,null,e,t)}function iS(e){return null==e||"boolean"==typeof e?iv(ie):E(e)?iv(r9,null,e.slice()):id(e)?ix(e):iv(r7,null,String(e))}function ix(e){return null===e.el&&-1!==e.patchFlag||e.memo?e:ib(e)}function iC(e,t){let n=0,{shapeFlag:r}=e;if(null==t)t=null;else if(E(t))n=16;else if("object"==typeof t)if(65&r){let n=t.default;n&&(n._c&&(n._d=!1),iC(e,n()),n._c&&(n._d=!0));return}else{n=32;let r=t._;r||rC(t)?3===r&&t8&&(1===t8.slots._?t._=1:(t._=2,e.patchFlag|=1024)):t._ctx=t8}else P(t)?(t={default:t,_ctx:t8},n=32):(t=String(t),64&r?(n=16,t=[i_(t)]):n=8);e.children=t,e.shapeFlag|=n}function ik(...e){let t={};for(let n=0;niA||t8;c=e=>{iA=e},u=e=>{iP=e};let iI=e=>{let t=iA;return c(e),e.scope.on(),()=>{e.scope.off(),c(t)}},iR=()=>{iA&&iA.scope.off(),c(null)};function iO(e){return 4&e.vnode.shapeFlag}let iP=!1;function iM(e,t,n){P(t)?e.render=t:$(t)&&(e.setupState=tO(t)),i$(e,n)}function iL(e){d=e,p=e=>{e.render._rc&&(e.withProxy=new Proxy(e.ctx,rr))}}function i$(e,t,n){let r=e.type;if(!e.render){if(!t&&d&&!r.render){let t=r.template||ra(e).template;if(t){let{isCustomElement:n,compilerOptions:i}=e.appContext.config,{delimiters:l,compilerOptions:s}=r,o=T(T({isCustomElement:n,delimiters:l},i),s);r.render=d(t,o)}}e.render=r.render||S,p&&p(e)}{let t=iI(e);eM();try{!function(e){let t=ra(e),n=e.proxy,r=e.ctx;rs=!1,t.beforeCreate&&ro(t.beforeCreate,e,"bc");let{data:i,computed:l,methods:s,watch:o,provide:a,inject:c,created:u,beforeMount:d,mounted:p,beforeUpdate:h,updated:f,activated:m,deactivated:g,beforeDestroy:y,beforeUnmount:b,destroyed:_,unmounted:x,render:C,renderTracked:k,renderTriggered:T,errorCaptured:N,serverPrefetch:w,expose:A,inheritAttrs:I,components:R,directives:O,filters:L}=t;if(c&&function(e,t,n=S){for(let n in E(e)&&(e=rp(e)),e){let r,i=e[n];tT(r=$(i)?"default"in i?r_(i.from||n,i.default,!0):r_(i.from||n):r_(i))?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>r.value,set:e=>r.value=e}):t[n]=r}}(c,r,null),s)for(let e in s){let t=s[e];P(t)&&(r[e]=t.bind(n))}if(i){let t=i.call(n,n);$(t)&&(e.data=th(t))}if(rs=!0,l)for(let e in l){let t=l[e],i=P(t)?t.bind(n,n):P(t.get)?t.get.bind(n,n):S,s=iU({get:i,set:!P(t)&&P(t.set)?t.set.bind(n):S});Object.defineProperty(r,e,{enumerable:!0,configurable:!0,get:()=>s.value,set:e=>s.value=e})}if(o)for(let e in o)!function e(t,n,r,i){var l,s,o,a,c,u,d;let p=i.includes(".")?rK(r,i):()=>r[i];if(M(t)){let e=n[t];P(e)&&(l=p,s=e,rq(l,s,void 0))}else if(P(t)){o=p,a=t.bind(r),rq(o,a,void 0)}else if($(t))if(E(t))t.forEach(t=>e(t,n,r,i));else{let e=P(t.handler)?t.handler.bind(r):n[t.handler];P(e)&&(c=p,u=e,d=t,rq(c,u,d))}}(o[e],r,n,e);if(a){let e=P(a)?a.call(n):a;Reflect.ownKeys(e).forEach(t=>{rb(t,e[t])})}function D(e,t){E(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(u&&ro(u,e,"c"),D(nG,d),D(nX,p),D(nQ,h),D(nZ,f),D(nj,m),D(nH,g),D(n6,N),D(n3,k),D(n2,T),D(nY,b),D(n0,x),D(n1,w),E(A))if(A.length){let t=e.exposed||(e.exposed={});A.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t})})}else e.exposed||(e.exposed={});C&&e.render===S&&(e.render=C),null!=I&&(e.inheritAttrs=I),R&&(e.components=R),O&&(e.directives=O)}(e)}finally{eL(),t()}}}let iD={get:(e,t)=>(eq(e,"get",""),e[t])};function iF(e){return{attrs:new Proxy(e.attrs,iD),slots:e.slots,emit:e.emit,expose:t=>{e.exposed=t||{}}}}function iV(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(tO(tx(e.exposed)),{get:(t,n)=>n in t?t[n]:n in re?re[n](e):void 0,has:(e,t)=>t in e||t in re})):e.proxy}function iB(e,t=!0){return P(e)?e.displayName||e.name:e.name||t&&e.__name}let iU=(e,t)=>(function(e,t,n=!1){let r,i;return P(e)?r=e:(r=e.get,i=e.set),new tF(r,i,n)})(e,0,iP);function ij(e,t,n){let r=arguments.length;return 2!==r?(r>3?n=Array.prototype.slice.call(arguments,2):3===r&&id(n)&&(n=[n]),iv(e,t,n)):!$(t)||E(t)?iv(e,null,t):id(t)?iv(e,null,[t]):iv(e,t)}function iH(e,t){let n=e.memo;if(n.length!=t.length)return!1;for(let e=0;e0&&ii&&ii.push(e),!0}let iq="3.5.17",iW="undefined"!=typeof window&&window.trustedTypes;if(iW)try{g=iW.createPolicy("vue",{createHTML:e=>e})}catch(e){}let iK=g?e=>g.createHTML(e):e=>e,iz="undefined"!=typeof document?document:null,iJ=iz&&iz.createElement("template"),iG="transition",iX="animation",iQ=Symbol("_vtc"),iZ={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},iY=T({},nm,iZ),i0=((t=(e,{slots:t})=>ij(ny,i3(e),t)).displayName="Transition",t.props=iY,t),i1=(e,t=[])=>{E(e)?e.forEach(e=>e(...t)):e&&e(...t)},i2=e=>!!e&&(E(e)?e.some(e=>e.length>1):e.length>1);function i3(e){let t={};for(let n in e)n in iZ||(t[n]=e[n]);if(!1===e.css)return t;let{name:n="v",type:r,duration:i,enterFromClass:l=`${n}-enter-from`,enterActiveClass:s=`${n}-enter-active`,enterToClass:o=`${n}-enter-to`,appearFromClass:a=l,appearActiveClass:c=s,appearToClass:u=o,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:h=`${n}-leave-to`}=e,f=function(e){if(null==e)return null;{if($(e))return[function(e){return et(e)}(e.enter),function(e){return et(e)}(e.leave)];let t=function(e){return et(e)}(e);return[t,t]}}(i),m=f&&f[0],g=f&&f[1],{onBeforeEnter:y,onEnter:b,onEnterCancelled:_,onLeave:S,onLeaveCancelled:x,onBeforeAppear:C=y,onAppear:k=b,onAppearCancelled:N=_}=t,w=(e,t,n,r)=>{e._enterCancelled=r,i4(e,t?u:o),i4(e,t?c:s),n&&n()},A=(e,t)=>{e._isLeaving=!1,i4(e,d),i4(e,h),i4(e,p),t&&t()},E=e=>(t,n)=>{let i=e?k:b,s=()=>w(t,e,n);i1(i,[t,s]),i8(()=>{i4(t,e?a:l),i6(t,e?u:o),i2(i)||i9(t,r,m,s)})};return T(t,{onBeforeEnter(e){i1(y,[e]),i6(e,l),i6(e,s)},onBeforeAppear(e){i1(C,[e]),i6(e,a),i6(e,c)},onEnter:E(!1),onAppear:E(!0),onLeave(e,t){e._isLeaving=!0;let n=()=>A(e,t);i6(e,d),e._enterCancelled?(i6(e,p),ln()):(ln(),i6(e,p)),i8(()=>{e._isLeaving&&(i4(e,d),i6(e,h),i2(S)||i9(e,r,g,n))}),i1(S,[e,n])},onEnterCancelled(e){w(e,!1,void 0,!0),i1(_,[e])},onAppearCancelled(e){w(e,!0,void 0,!0),i1(N,[e])},onLeaveCancelled(e){A(e),i1(x,[e])}})}function i6(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.add(t)),(e[iQ]||(e[iQ]=new Set)).add(t)}function i4(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.remove(t));let n=e[iQ];n&&(n.delete(t),n.size||(e[iQ]=void 0))}function i8(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let i5=0;function i9(e,t,n,r){let i=e._endId=++i5,l=()=>{i===e._endId&&r()};if(null!=n)return setTimeout(l,n);let{type:s,timeout:o,propCount:a}=i7(e,t);if(!s)return r();let c=s+"end",u=0,d=()=>{e.removeEventListener(c,p),l()},p=t=>{t.target===e&&++u>=a&&d()};setTimeout(()=>{u(n[e]||"").split(", "),i=r(`${iG}Delay`),l=r(`${iG}Duration`),s=le(i,l),o=r(`${iX}Delay`),a=r(`${iX}Duration`),c=le(o,a),u=null,d=0,p=0;t===iG?s>0&&(u=iG,d=s,p=l.length):t===iX?c>0&&(u=iX,d=c,p=a.length):p=(u=(d=Math.max(s,c))>0?s>c?iG:iX:null)?u===iG?l.length:a.length:0;let h=u===iG&&/\b(transform|all)(,|$)/.test(r(`${iG}Property`).toString());return{type:u,timeout:d,propCount:p,hasTransform:h}}function le(e,t){for(;e.lengthlt(t)+lt(e[n])))}function lt(e){return"auto"===e?0:1e3*Number(e.slice(0,-1).replace(",","."))}function ln(){return document.body.offsetHeight}let lr=Symbol("_vod"),li=Symbol("_vsh");function ll(e,t){e.style.display=t?e[lr]:"none",e[li]=!t}let ls=Symbol("");function lo(e,t){if(1===e.nodeType){let n=e.style,r="";for(let e in t)n.setProperty(`--${e}`,t[e]),r+=`--${e}: ${t[e]};`;n[ls]=r}}let la=/(^|;)\s*display\s*:/,lc=/\s*!important$/;function lu(e,t,n){if(E(n))n.forEach(n=>lu(e,t,n));else if(null==n&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{let r=function(e,t){let n=lp[t];if(n)return n;let r=K(t);if("filter"!==r&&r in e)return lp[t]=r;r=G(r);for(let n=0;n111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)>96&&123>e.charCodeAt(2),lx={};function lC(e,t,n){let r=nT(e,t);B(r)&&T(r,t);class i extends lT{constructor(e){super(r,e,n)}}return i.def=r,i}let lk="undefined"!=typeof HTMLElement?HTMLElement:class{};class lT extends lk{constructor(e,t={},n=l1){super(),this._def=e,this._props=t,this._createApp=n,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._ob=null,this.shadowRoot&&n!==l1?this._root=this.shadowRoot:!1!==e.shadowRoot?(this.attachShadow({mode:"open"}),this._root=this.shadowRoot):this._root=this}connectedCallback(){if(!this.isConnected)return;this.shadowRoot||this._resolved||this._parseSlots(),this._connected=!0;let e=this;for(;e=e&&(e.parentNode||e.host);)if(e instanceof lT){this._parent=e;break}this._instance||(this._resolved?this._mount(this._def):e&&e._pendingResolve?this._pendingResolve=e._pendingResolve.then(()=>{this._pendingResolve=void 0,this._resolveDef()}):this._resolveDef())}_setParent(e=this._parent){e&&(this._instance.parent=e._instance,this._inheritParentContext(e))}_inheritParentContext(e=this._parent){e&&this._app&&Object.setPrototypeOf(this._app._context.provides,e._instance.provides)}disconnectedCallback(){this._connected=!1,tY(()=>{this._connected||(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null)})}_resolveDef(){if(this._pendingResolve)return;for(let e=0;e{for(let t of e)this._setAttr(t.attributeName)}),this._ob.observe(this,{attributes:!0});let e=(e,t=!1)=>{let n;this._resolved=!0,this._pendingResolve=void 0;let{props:r,styles:i}=e;if(r&&!E(r))for(let e in r){let t=r[e];(t===Number||t&&t.type===Number)&&(e in this._props&&(this._props[e]=et(this._props[e])),(n||(n=Object.create(null)))[K(e)]=!0)}this._numberProps=n,this._resolveProps(e),this.shadowRoot&&this._applyStyles(i),this._mount(e)},t=this._def.__asyncLoader;t?this._pendingResolve=t().then(t=>{t.configureApp=this._def.configureApp,e(this._def=t,!0)}):e(this._def)}_mount(e){this._app=this._createApp(e),this._inheritParentContext(),e.configureApp&&e.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);let t=this._instance&&this._instance.exposed;if(t)for(let e in t)A(this,e)||Object.defineProperty(this,e,{get:()=>tI(t[e])})}_resolveProps(e){let{props:t}=e,n=E(t)?t:Object.keys(t||{});for(let e of Object.keys(this))"_"!==e[0]&&n.includes(e)&&this._setProp(e,this[e]);for(let e of n.map(K))Object.defineProperty(this,e,{get(){return this._getProp(e)},set(t){this._setProp(e,t,!0,!0)}})}_setAttr(e){if(e.startsWith("data-v-"))return;let t=this.hasAttribute(e),n=t?this.getAttribute(e):lx,r=K(e);t&&this._numberProps&&this._numberProps[r]&&(n=et(n)),this._setProp(r,n,!1,!0)}_getProp(e){return this._props[e]}_setProp(e,t,n=!0,r=!1){if(t!==this._props[e]&&(t===lx?delete this._props[e]:(this._props[e]=t,"key"===e&&this._app&&(this._app._ceVNode.key=t)),r&&this._instance&&this._update(),n)){let n=this._ob;n&&n.disconnect(),!0===t?this.setAttribute(J(e),""):"string"==typeof t||"number"==typeof t?this.setAttribute(J(e),t+""):t||this.removeAttribute(J(e)),n&&n.observe(this,{attributes:!0})}}_update(){let e=this._createVNode();this._app&&(e.appContext=this._app._context),l0(e,this._root)}_createVNode(){let e={};this.shadowRoot||(e.onVnodeMounted=e.onVnodeUpdated=this._renderSlots.bind(this));let t=iv(this._def,T(e,this._props));return this._instance||(t.ce=e=>{this._instance=e,e.ce=this,e.isCE=!0;let t=(e,t)=>{this.dispatchEvent(new CustomEvent(e,B(t[0])?T({detail:t},t[0]):{detail:t}))};e.emit=(e,...n)=>{t(e,n),J(e)!==e&&t(J(e),n)},this._setParent()}),t}_applyStyles(e,t){if(!e)return;if(t){if(t===this._def||this._styleChildren.has(t))return;this._styleChildren.add(t)}let n=this._nonce;for(let t=e.length-1;t>=0;t--){let r=document.createElement("style");n&&r.setAttribute("nonce",n),r.textContent=e[t],this.shadowRoot.prepend(r)}}_parseSlots(){let e,t=this._slots={};for(;e=this.firstChild;){let n=1===e.nodeType&&e.getAttribute("slot")||"default";(t[n]||(t[n]=[])).push(e),this.removeChild(e)}}_renderSlots(){let e=(this._teleportTarget||this).querySelectorAll("slot"),t=this._instance.type.__scopeId;for(let n=0;n{if(!n.length)return;let t=e.moveClass||`${e.name||"v"}-move`;if(!function(e,t,n){let r=e.cloneNode(),i=e[iQ];i&&i.forEach(e=>{e.split(/\s+/).forEach(e=>e&&r.classList.remove(e))}),n.split(/\s+/).forEach(e=>e&&r.classList.add(e)),r.style.display="none";let l=1===t.nodeType?t:t.parentNode;l.appendChild(r);let{hasTransform:s}=i7(r);return l.removeChild(r),s}(n[0].el,i.vnode.el,t)){n=[];return}n.forEach(lO),n.forEach(lP);let r=n.filter(lM);ln(),r.forEach(e=>{let n=e.el,r=n.style;i6(n,t),r.transform=r.webkitTransform=r.transitionDuration="";let i=n[lE]=e=>{(!e||e.target===n)&&(!e||/transform$/.test(e.propertyName))&&(n.removeEventListener("transitionend",i),n[lE]=null,i4(n,t))};n.addEventListener("transitionend",i)}),n=[]}),()=>{let s=tS(e),o=i3(s),a=s.tag||r9;if(n=[],r)for(let e=0;e{let t=e.props["onUpdate:modelValue"]||!1;return E(t)?e=>Z(t,e):t};function l$(e){e.target.composing=!0}function lD(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}let lF=Symbol("_assign"),lV={created(e,{modifiers:{lazy:t,trim:n,number:r}},i){e[lF]=lL(i);let l=r||i.props&&"number"===i.props.type;lg(e,t?"change":"input",t=>{if(t.target.composing)return;let r=e.value;n&&(r=r.trim()),l&&(r=ee(r)),e[lF](r)}),n&&lg(e,"change",()=>{e.value=e.value.trim()}),t||(lg(e,"compositionstart",l$),lg(e,"compositionend",lD),lg(e,"change",lD))},mounted(e,{value:t}){e.value=null==t?"":t},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:i,number:l}},s){if(e[lF]=lL(s),e.composing)return;let o=(l||"number"===e.type)&&!/^0\d/.test(e.value)?ee(e.value):e.value,a=null==t?"":t;if(o!==a){if(document.activeElement===e&&"range"!==e.type&&(r&&t===n||i&&e.value.trim()===a))return;e.value=a}}},lB={deep:!0,created(e,t,n){e[lF]=lL(n),lg(e,"change",()=>{let t=e._modelValue,n=lW(e),r=e.checked,i=e[lF];if(E(t)){let e=eg(t,n),l=-1!==e;if(r&&!l)i(t.concat(n));else if(!r&&l){let n=[...t];n.splice(e,1),i(n)}}else if(R(t)){let e=new Set(t);r?e.add(n):e.delete(n),i(e)}else i(lK(e,r))})},mounted:lU,beforeUpdate(e,t,n){e[lF]=lL(n),lU(e,t,n)}};function lU(e,{value:t,oldValue:n},r){let i;if(e._modelValue=t,E(t))i=eg(t,r.props.value)>-1;else if(R(t))i=t.has(r.props.value);else{if(t===n)return;i=em(t,lK(e,!0))}e.checked!==i&&(e.checked=i)}let lj={created(e,{value:t},n){e.checked=em(t,n.props.value),e[lF]=lL(n),lg(e,"change",()=>{e[lF](lW(e))})},beforeUpdate(e,{value:t,oldValue:n},r){e[lF]=lL(r),t!==n&&(e.checked=em(t,r.props.value))}},lH={deep:!0,created(e,{value:t,modifiers:{number:n}},r){let i=R(t);lg(e,"change",()=>{let t=Array.prototype.filter.call(e.options,e=>e.selected).map(e=>n?ee(lW(e)):lW(e));e[lF](e.multiple?i?new Set(t):t:t[0]),e._assigning=!0,tY(()=>{e._assigning=!1})}),e[lF]=lL(r)},mounted(e,{value:t}){lq(e,t)},beforeUpdate(e,t,n){e[lF]=lL(n)},updated(e,{value:t}){e._assigning||lq(e,t)}};function lq(e,t){let n=e.multiple,r=E(t);if(!n||r||R(t)){for(let i=0,l=e.options.length;iString(e)===String(s)):l.selected=eg(t,s)>-1}else l.selected=t.has(s);else if(em(lW(l),t)){e.selectedIndex!==i&&(e.selectedIndex=i);return}}n||-1===e.selectedIndex||(e.selectedIndex=-1)}}function lW(e){return"_value"in e?e._value:e.value}function lK(e,t){let n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}function lz(e,t,n,r,i){let l=function(e,t){switch(e){case"SELECT":return lH;case"TEXTAREA":return lV;default:switch(t){case"checkbox":return lB;case"radio":return lj;default:return lV}}}(e.tagName,n.props&&n.props.type)[i];l&&l(e,t,n,r)}let lJ=["ctrl","shift","alt","meta"],lG={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&0!==e.button,middle:e=>"button"in e&&1!==e.button,right:e=>"button"in e&&2!==e.button,exact:(e,t)=>lJ.some(n=>e[`${n}Key`]&&!t.includes(n))},lX={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},lQ=T({patchProp:(e,t,n,r,i,l)=>{let s="svg"===i;if("class"===t){var o=r;let t=e[iQ];t&&(o=(o?[o,...t]:[...t]).join(" ")),null==o?e.removeAttribute("class"):s?e.setAttribute("class",o):e.className=o}else"style"===t?function(e,t,n){let r=e.style,i=M(n),l=!1;if(n&&!i){if(t)if(M(t))for(let e of t.split(";")){let t=e.slice(0,e.indexOf(":")).trim();null==n[t]&&lu(r,t,"")}else for(let e in t)null==n[e]&&lu(r,e,"");for(let e in n)"display"===e&&(l=!0),lu(r,e,n[e])}else if(i){if(t!==n){let e=r[ls];e&&(n+=";"+e),r.cssText=n,l=la.test(n)}}else t&&e.removeAttribute("style");lr in e&&(e[lr]=l?r.display:"",e[li]&&(r.display="none"))}(e,n,r):C(t)?k(t)||function(e,t,n,r,i=null){let l=e[lv]||(e[lv]={}),s=l[t];if(r&&s)s.value=r;else{let[n,o]=function(e){let t;if(ly.test(e)){let n;for(t={};n=e.match(ly);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[":"===e[2]?e.slice(3):J(e.slice(2)),t]}(t);if(r)lg(e,n,l[t]=function(e,t){let n=e=>{if(e._vts){if(e._vts<=n.attached)return}else e._vts=Date.now();tq(function(e,t){if(!E(t))return t;{let n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(e=>t=>!t._stopped&&e&&e(t))}}(e,n.value),t,5,[e])};return n.value=e,n.attached=lb||(l_.then(()=>lb=0),lb=Date.now()),n}(r,i),o);else s&&(e.removeEventListener(n,s,o),l[t]=void 0)}}(e,t,0,r,l):("."===t[0]?(t=t.slice(1),0):"^"===t[0]?(t=t.slice(1),1):!function(e,t,n,r){if(r)return!!("innerHTML"===t||"textContent"===t||t in e&&lS(t)&&P(n));if("spellcheck"===t||"draggable"===t||"translate"===t||"autocorrect"===t||"form"===t||"list"===t&&"INPUT"===e.tagName||"type"===t&&"TEXTAREA"===e.tagName)return!1;if("width"===t||"height"===t){let t=e.tagName;if("IMG"===t||"VIDEO"===t||"CANVAS"===t||"SOURCE"===t)return!1}return!(lS(t)&&M(n))&&t in e}(e,t,r,s))?e._isVueCE&&(/[A-Z]/.test(t)||!M(r))?lm(e,K(t),r,l,t):("true-value"===t?e._trueValue=r:"false-value"===t&&(e._falseValue=r),lf(e,t,r,s)):(lm(e,t,r),e.tagName.includes("-")||"value"!==t&&"checked"!==t&&"selected"!==t||lf(e,t,r,s,l,"value"!==t))}},{insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{let i="svg"===t?iz.createElementNS("http://www.w3.org/2000/svg",e):"mathml"===t?iz.createElementNS("http://www.w3.org/1998/Math/MathML",e):n?iz.createElement(e,{is:n}):iz.createElement(e);return"select"===e&&r&&null!=r.multiple&&i.setAttribute("multiple",r.multiple),i},createText:e=>iz.createTextNode(e),createComment:e=>iz.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>iz.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,i,l){let s=n?n.previousSibling:t.lastChild;if(i&&(i===l||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),i!==l&&(i=i.nextSibling););else{iJ.innerHTML=iK("svg"===r?`${e}`:"mathml"===r?`${e}`:e);let i=iJ.content;if("svg"===r||"mathml"===r){let e=i.firstChild;for(;e.firstChild;)i.appendChild(e.firstChild);i.removeChild(e)}t.insertBefore(i,n)}return[s?s.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}}),lZ=!1;function lY(){return h=lZ?h:rL(lQ),lZ=!0,h}let l0=(...e)=>{(h||(h=r$(lQ))).render(...e)},l1=(...e)=>{let t=(h||(h=r$(lQ))).createApp(...e),{mount:n}=t;return t.mount=e=>{let r=l6(e);if(!r)return;let i=t._component;P(i)||i.render||i.template||(i.template=r.innerHTML),1===r.nodeType&&(r.textContent="");let l=n(r,!1,l3(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),l},t},l2=(...e)=>{let t=lY().createApp(...e),{mount:n}=t;return t.mount=e=>{let t=l6(e);if(t)return n(t,!0,l3(t))},t};function l3(e){return e instanceof SVGElement?"svg":"function"==typeof MathMLElement&&e instanceof MathMLElement?"mathml":void 0}function l6(e){return M(e)?document.querySelector(e):e}let l4=Symbol(""),l8=Symbol(""),l5=Symbol(""),l9=Symbol(""),l7=Symbol(""),se=Symbol(""),st=Symbol(""),sn=Symbol(""),sr=Symbol(""),si=Symbol(""),sl=Symbol(""),ss=Symbol(""),so=Symbol(""),sa=Symbol(""),sc=Symbol(""),su=Symbol(""),sd=Symbol(""),sp=Symbol(""),sh=Symbol(""),sf=Symbol(""),sm=Symbol(""),sg=Symbol(""),sv=Symbol(""),sy=Symbol(""),sb=Symbol(""),s_=Symbol(""),sS=Symbol(""),sx=Symbol(""),sC=Symbol(""),sk=Symbol(""),sT=Symbol(""),sN=Symbol(""),sw=Symbol(""),sA=Symbol(""),sE=Symbol(""),sI=Symbol(""),sR=Symbol(""),sO=Symbol(""),sP=Symbol(""),sM={[l4]:"Fragment",[l8]:"Teleport",[l5]:"Suspense",[l9]:"KeepAlive",[l7]:"BaseTransition",[se]:"openBlock",[st]:"createBlock",[sn]:"createElementBlock",[sr]:"createVNode",[si]:"createElementVNode",[sl]:"createCommentVNode",[ss]:"createTextVNode",[so]:"createStaticVNode",[sa]:"resolveComponent",[sc]:"resolveDynamicComponent",[su]:"resolveDirective",[sd]:"resolveFilter",[sp]:"withDirectives",[sh]:"renderList",[sf]:"renderSlot",[sm]:"createSlots",[sg]:"toDisplayString",[sv]:"mergeProps",[sy]:"normalizeClass",[sb]:"normalizeStyle",[s_]:"normalizeProps",[sS]:"guardReactiveProps",[sx]:"toHandlers",[sC]:"camelize",[sk]:"capitalize",[sT]:"toHandlerKey",[sN]:"setBlockTracking",[sw]:"pushScopeId",[sA]:"popScopeId",[sE]:"withCtx",[sI]:"unref",[sR]:"isRef",[sO]:"withMemo",[sP]:"isMemoSame"},sL={start:{line:1,column:1,offset:0},end:{line:1,column:1,offset:0},source:""};function s$(e,t,n,r,i,l,s,o=!1,a=!1,c=!1,u=sL){var d,p,h,f;return e&&(o?(e.helper(se),e.helper((d=e.inSSR,p=c,d||p?st:sn))):e.helper((h=e.inSSR,f=c,h||f?sr:si)),s&&e.helper(sp)),{type:13,tag:t,props:n,children:r,patchFlag:i,dynamicProps:l,directives:s,isBlock:o,disableTracking:a,isComponent:c,loc:u}}function sD(e,t=sL){return{type:17,loc:t,elements:e}}function sF(e,t=sL){return{type:15,loc:t,properties:e}}function sV(e,t){return{type:16,loc:sL,key:M(e)?sB(e,!0):e,value:t}}function sB(e,t=!1,n=sL,r=0){return{type:4,loc:n,content:e,isStatic:t,constType:t?3:r}}function sU(e,t=sL){return{type:8,loc:t,children:e}}function sj(e,t=[],n=sL){return{type:14,loc:n,callee:e,arguments:t}}function sH(e,t,n=!1,r=!1,i=sL){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:sL}}function sW(e,{helper:t,removeHelper:n,inSSR:r}){if(!e.isBlock){var i,l;e.isBlock=!0,n((i=e.isComponent,r||i?sr:si)),t(se),t((l=e.isComponent,r||l?st:sn))}}let sK=new Uint8Array([123,123]),sz=new Uint8Array([125,125]);function sJ(e){return e>=97&&e<=122||e>=65&&e<=90}function sG(e){return 32===e||10===e||9===e||12===e||13===e}function sX(e){return 47===e||62===e||sG(e)}function sQ(e){let t=new Uint8Array(e.length);for(let n=0;n4===e.type&&e.isStatic;function s3(e){switch(e){case"Teleport":case"teleport":return l8;case"Suspense":case"suspense":return l5;case"KeepAlive":case"keep-alive":return l9;case"BaseTransition":case"base-transition":return l7}}let s6=/^\d|[^\$\w\xA0-\uFFFF]/,s4=e=>!s6.test(e),s8=/[A-Za-z_$\xA0-\uFFFF]/,s5=/[\.\?\w$\xA0-\uFFFF]/,s9=/\s+[.[]\s*|\s*[.[]\s+/g,s7=e=>4===e.type?e.content:e.loc.source,oe=e=>{let t=s7(e).trim().replace(s9,e=>e.trim()),n=0,r=[],i=0,l=0,s=null;for(let e=0;e|^\s*(async\s+)?function(?:\s+[\w$]+)?\s*\(/;function on(e,t,n=!1){for(let r=0;r4===e.key.type&&e.key.content===r)}return n}function op(e,t){return`_${t}_${e.replace(/[^\w]/g,(t,n)=>"-"===t?"_":e.charCodeAt(n).toString())}`}let oh=/([\s\S]*?)\s+(?:in|of)\s+(\S[\s\S]*)/,of={parseMode:"base",ns:0,delimiters:["{{","}}"],getNamespace:()=>0,isVoidTag:x,isPreTag:x,isIgnoreNewlineTag:x,isCustomElement:x,onError:sY,onWarn:s0,comments:!1,prefixIdentifiers:!1},om=of,og=null,ov="",oy=null,ob=null,o_="",oS=-1,ox=-1,oC=0,ok=!1,oT=null,oN=[],ow=new class{constructor(e,t){this.stack=e,this.cbs=t,this.state=1,this.buffer="",this.sectionStart=0,this.index=0,this.entityStart=0,this.baseState=1,this.inRCDATA=!1,this.inXML=!1,this.inVPre=!1,this.newlines=[],this.mode=0,this.delimiterOpen=sK,this.delimiterClose=sz,this.delimiterIndex=-1,this.currentSequence=void 0,this.sequenceIndex=0}get inSFCRoot(){return 2===this.mode&&0===this.stack.length}reset(){this.state=1,this.mode=0,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=1,this.inRCDATA=!1,this.currentSequence=void 0,this.newlines.length=0,this.delimiterOpen=sK,this.delimiterClose=sz}getPos(e){let t=1,n=e+1;for(let r=this.newlines.length-1;r>=0;r--){let i=this.newlines[r];if(e>i){t=r+2,n=e-i;break}}return{column:n,line:t,offset:e}}peek(){return this.buffer.charCodeAt(this.index+1)}stateText(e){60===e?(this.index>this.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=5,this.sectionStart=this.index):this.inVPre||e!==this.delimiterOpen[0]||(this.state=2,this.delimiterIndex=0,this.stateInterpolationOpen(e))}stateInterpolationOpen(e){if(e===this.delimiterOpen[this.delimiterIndex])if(this.delimiterIndex===this.delimiterOpen.length-1){let e=this.index+1-this.delimiterOpen.length;e>this.sectionStart&&this.cbs.ontext(this.sectionStart,e),this.state=3,this.sectionStart=e}else this.delimiterIndex++;else this.inRCDATA?(this.state=32,this.stateInRCDATA(e)):(this.state=1,this.stateText(e))}stateInterpolation(e){e===this.delimiterClose[0]&&(this.state=4,this.delimiterIndex=0,this.stateInterpolationClose(e))}stateInterpolationClose(e){e===this.delimiterClose[this.delimiterIndex]?this.delimiterIndex===this.delimiterClose.length-1?(this.cbs.oninterpolation(this.sectionStart,this.index+1),this.inRCDATA?this.state=32:this.state=1,this.sectionStart=this.index+1):this.delimiterIndex++:(this.state=3,this.stateInterpolation(e))}stateSpecialStartSequence(e){let t=this.sequenceIndex===this.currentSequence.length;if(t?sX(e):(32|e)===this.currentSequence[this.sequenceIndex]){if(!t)return void this.sequenceIndex++}else this.inRCDATA=!1;this.sequenceIndex=0,this.state=6,this.stateInTagName(e)}stateInRCDATA(e){if(this.sequenceIndex===this.currentSequence.length){if(62===e||sG(e)){let t=this.index-this.currentSequence.length;if(this.sectionStart=e||(28===this.state?this.currentSequence===sZ.CdataEnd?this.cbs.oncdata(this.sectionStart,e):this.cbs.oncomment(this.sectionStart,e):6===this.state||11===this.state||18===this.state||17===this.state||12===this.state||13===this.state||14===this.state||15===this.state||16===this.state||20===this.state||19===this.state||21===this.state||9===this.state||this.cbs.ontext(this.sectionStart,e))}emitCodePoint(e,t){}}(oN,{onerr:oH,ontext(e,t){oO(oI(e,t),e,t)},ontextentity(e,t,n){oO(e,t,n)},oninterpolation(e,t){if(ok)return oO(oI(e,t),e,t);let n=e+ow.delimiterOpen.length,r=t-ow.delimiterClose.length;for(;sG(ov.charCodeAt(n));)n++;for(;sG(ov.charCodeAt(r-1));)r--;let i=oI(n,r);i.includes("&")&&(i=om.decodeEntities(i,!1)),oV({type:5,content:oj(i,!1,oB(n,r)),loc:oB(e,t)})},onopentagname(e,t){let n=oI(e,t);oy={type:1,tag:n,ns:om.getNamespace(n,oN[0],om.ns),tagType:0,props:[],children:[],loc:oB(e-1,t),codegenNode:void 0}},onopentagend(e){oR(e)},onclosetag(e,t){let n=oI(e,t);if(!om.isVoidTag(n)){let r=!1;for(let e=0;e0&&oN[0].loc.start.offset;for(let n=0;n<=e;n++)oP(oN.shift(),t,n(7===e.type?e.rawName:e.name)===t)},onattribend(e,t){oy&&ob&&(oU(ob.loc,t),0!==e&&(o_.includes("&")&&(o_=om.decodeEntities(o_,!0)),6===ob.type?("class"===ob.name&&(o_=oF(o_).trim()),ob.value={type:2,content:o_,loc:1===e?oB(oS,ox):oB(oS-1,ox+1)},ow.inSFCRoot&&"template"===oy.tag&&"lang"===ob.name&&o_&&"html"!==o_&&ow.enterRCDATA(sQ("{let i=t.start.offset+n,l=i+e.length;return oj(e,!1,oB(i,l),0,+!!r)},o={source:s(l.trim(),n.indexOf(l,i.length)),value:void 0,key:void 0,index:void 0,finalized:!1},a=i.trim().replace(oE,"").trim(),c=i.indexOf(a),u=a.match(oA);if(u){let e;a=a.replace(oA,"").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}(ob.exp)))),(7!==ob.type||"pre"!==ob.name)&&oy.props.push(ob)),o_="",oS=ox=-1},oncomment(e,t){om.comments&&oV({type:3,content:oI(e,t),loc:oB(e-4,t+3)})},onend(){let e=ov.length;for(let t=0;t64&&n<91||s3(e)||om.isBuiltInComponent&&om.isBuiltInComponent(e)||om.isNativeTag&&!om.isNativeTag(e))return!0;for(let e=0;e=0;)n--;return n}let oL=new Set(["if","else","else-if","for","slot"]),o$=/\r\n/g;function oD(e){let t="preserve"!==om.whitespace,n=!1;for(let r=0;r3!==e.type);return 1!==t.length||1!==t[0].type||oa(t[0])?null:t[0]}function oW(e,t){let{constantCache:n}=t;switch(e.type){case 1:if(0!==e.tagType)return 0;let r=n.get(e);if(void 0!==r)return r;let i=e.codegenNode;if(13!==i.type||i.isBlock&&"svg"!==e.tag&&"foreignObject"!==e.tag&&"math"!==e.tag)return 0;if(void 0!==i.patchFlag)return n.set(e,0),0;{let r=3,c=oz(e,t);if(0===c)return n.set(e,0),0;c1)for(let i=0;i{l--};for(;lt===e:t=>e.test(t);return(e,r)=>{if(1===e.type){let{props:i}=e;if(3===e.tagType&&i.some(os))return;let l=[];for(let s=0;s`${sM[e]}: _${sM[e]}`;function oY(e,t,{helper:n,push:r,newline:i,isTS:l}){let s=n("component"===t?sa:su);for(let n=0;n3;t.push("["),n&&t.indent(),o1(e,t,n),n&&t.deindent(),t.push("]")}function o1(e,t,n=!1,r=!0){let{push:i,newline:l}=t;for(let s=0;se||"null")}([a,c,u,i,p]),t),l(")"),f&&l(")"),h&&(l(", "),o2(h,t),l(")"))}(e,t);break;case 14:var m=e,g=t;let{push:y,helper:b,pure:_}=g,S=M(m.callee)?m.callee:b(m.callee);_&&y(oQ),y(S+"(",-2,m),o1(m.arguments,g),y(")");break;case 15:!function(e,t){let{push:n,indent:r,deindent:i,newline:l}=t,{properties:s}=e;if(!s.length)return n("{}",-2,e);let o=s.length>1;n(o?"{":"{ "),o&&r();for(let e=0;e "),(R||I)&&(k("{"),T()),A?(R&&k("return "),E(A)?o0(A,C):o2(A,C)):I&&o2(I,C),(R||I)&&(N(),k("}")),O&&k(")");break;case 19:var P=e,$=t;let{test:D,consequent:F,alternate:V,newline:B}=P,{push:U,indent:j,deindent:H,newline:q}=$;if(4===D.type){let e=!s4(D.content);e&&U("("),o3(D,$),e&&U(")")}else U("("),o2(D,$),U(")");B&&j(),$.indentLevel++,B||U(" "),U("? "),o2(F,$),$.indentLevel--,B&&q(),B||U(" "),U(": ");let W=19===V.type;!W&&$.indentLevel++,o2(V,$),!W&&$.indentLevel--,B&&H(!0);break;case 20:var K=e,z=t;let{push:J,helper:G,indent:X,deindent:Q,newline:Z}=z,{needPauseTracking:Y,needArraySpread:ee}=K;ee&&J("[...("),J(`_cache[${K.index}] || (`),Y&&(X(),J(`${G(sN)}(-1`),K.inVOnce&&J(", true"),J("),"),Z(),J("(")),J(`_cache[${K.index}] = `),o2(K.value,z),Y&&(J(`).cacheIndex = ${K.index},`),Z(),J(`${G(sN)}(1),`),Z(),J(`_cache[${K.index}]`),Q()),J(")"),ee&&J(")]");break;case 21:o1(e.body,t,!0,!1)}}function o3(e,t){let{content:n,isStatic:r}=e;t.push(r?JSON.stringify(n):n,-3,e)}function o6(e,t){for(let n=0;n(function(e,t,n,r){if("else"!==t.name&&(!t.exp||!t.exp.content.trim())){let r=t.exp?t.exp.loc:e.loc;n.onError(s1(28,t.loc)),t.exp=sB("true",!1,r)}if("if"===t.name){var i;let l=o8(e,t),s={type:9,loc:oB((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(s1(30,e.loc)),n.removeNode();let i=o8(e,t);s.branches.push(i);let l=r&&r(s,i,!1);oG(i,n),l&&l(),n.currentNode=null}else n.onError(s1(30,e.loc));break}}})(e,t,n,(e,t,r)=>{let i=n.parent.children,l=i.indexOf(e),s=0;for(;l-- >=0;){let e=i[l];e&&9===e.type&&(s+=e.branches.length)}return()=>{r?e.codegenNode=o5(t,s,n):function(e){for(;;)if(19===e.type)if(19!==e.alternate.type)return e;else e=e.alternate;else 20===e.type&&(e=e.value)}(e.codegenNode).alternate=o5(t,s+e.branches.length-1,n)}}));function o8(e,t){let n=3===e.tagType;return{type:10,loc:e.loc,condition:"else"===t.name?void 0:t.exp,children:n&&!on(e,"for")?e.children:[e],userKey:or(e,"key"),isTemplateIf:n}}function o5(e,t,n){return e.condition?sq(e.condition,o9(e,t,n),sj(n.helper(sl),['""',"true"])):o9(e,t,n)}function o9(e,t,n){let{helper:r}=n,i=sV("key",sB(`${t}`,!1,sL,2)),{children:l}=e,s=l[0];if(1!==l.length||1!==s.type)if(1!==l.length||11!==s.type)return s$(n,r(l4),sF([i]),l,64,void 0,void 0,!0,!1,!1,e.loc);else{let e=s.codegenNode;return ou(e,i,n),e}{let e=s.codegenNode,t=14===e.type&&e.callee===sO?e.arguments[1].returns:e;return 13===t.type&&sW(t,n),ou(t,i,n),e}}let o7=(e,t,n)=>{let{modifiers:r,loc:i}=e,l=e.arg,{exp:s}=e;if(s&&4===s.type&&!s.content.trim()&&(s=void 0),!s){if(4!==l.type||!l.isStatic)return n.onError(s1(52,l.loc)),{props:[sV(l,sB("",!0,i))]};ae(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=K(l.content):l.content=`${n.helperString(sC)}(${l.content})`:(l.children.unshift(`${n.helperString(sC)}(`),l.children.push(")"))),!n.inSSR&&(r.some(e=>"prop"===e.content)&&at(l,"."),r.some(e=>"attr"===e.content)&&at(l,"^")),{props:[sV(l,s)]}},ae=(e,t)=>{let n=e.arg;e.exp=sB(K(n.content),!1,n.loc)},at=(e,t)=>{4===e.type?e.isStatic?e.content=t+e.content:e.content=`\`${t}\${${e.content}}\``:(e.children.unshift(`'${t}' + (`),e.children.push(")"))},an=oX("for",(e,t,n)=>{let{helper:r,removeHelper:i}=n;return function(e,t,n,r){if(!t.exp)return void n.onError(s1(31,t.loc));let i=t.forParseResult;if(!i)return void n.onError(s1(32,t.loc));ar(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:oo(e)?e.children:[e]};n.replaceNode(p),o.vFor++;let h=r&&r(p);return()=>{o.vFor--,h&&h()}}(e,t,n,t=>{let l=sj(r(sh),[t.source]),s=oo(e),o=on(e,"memo"),a=or(e,"key",!1,!0);a&&7===a.type&&!a.exp&&ae(a);let c=a&&(6===a.type?a.value?sB(a.value.content,!0):void 0:a.exp),u=a&&c?sV("key",c):null,d=4===t.source.type&&t.source.constType>0,p=d?64:a?128:256;return t.codegenNode=s$(n,r(l4),void 0,l,p,void 0,void 0,!0,!d,!1,e.loc),()=>{let a,{children:p}=t,h=1!==p.length||1!==p[0].type,f=oa(e)?e:s&&1===e.children.length&&oa(e.children[0])?e.children[0]:null;if(f)a=f.codegenNode,s&&u&&ou(a,u,n);else if(h)a=s$(n,r(l4),u?sF([u]):void 0,e.children,64,void 0,void 0,!0,void 0,!1);else{var m,g,y,b,_,S,x,C;a=p[0].codegenNode,s&&u&&ou(a,u,n),!d!==a.isBlock&&(a.isBlock?(i(se),i((m=n.inSSR,g=a.isComponent,m||g?st:sn))):i((y=n.inSSR,b=a.isComponent,y||b?sr:si))),(a.isBlock=!d,a.isBlock)?(r(se),r((_=n.inSSR,S=a.isComponent,_||S?st:sn))):r((x=n.inSSR,C=a.isComponent,x||C?sr:si))}if(o){let e=sH(ai(t.parseResult,[sB("_cached")]));e.body={type:21,body:[sU(["const _memo = (",o.exp,")"]),sU(["if (_cached",...c?[" && _cached.key === ",c]:[],` && ${n.helperString(sP)}(_cached, _memo)) return _cached`]),sU(["const _item = ",a]),sB("_item.memo = _memo"),sB("return _item")],loc:sL},l.arguments.push(e,sB("_cache"),sB(String(n.cached.length))),n.cached.push(null)}else l.arguments.push(sH(ai(t.parseResult),a,!0))}})});function ar(e,t){e.finalized||(e.finalized=!0)}function ai({value:e,key:t,index:n},r=[]){var i=[e,t,n,...r];let l=i.length;for(;l--&&!i[l];);return i.slice(0,l+1).map((e,t)=>e||sB("_".repeat(t+1),!1))}let al=sB("undefined",!1),as=(e,t)=>{if(1===e.type&&(1===e.tagType||3===e.tagType)){let n=on(e,"slot");if(n)return n.exp,t.scopes.vSlot++,()=>{t.scopes.vSlot--}}};function ao(e,t,n){let r=[sV("name",e),sV("fn",t)];return null!=n&&r.push(sV("key",sB(String(n),!0))),sF(r)}function aa(e){return 2!==e.type&&12!==e.type||(2===e.type?!!e.content.trim():aa(e.content))}let ac=new WeakMap,au=(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=ah(r),l=or(e,"is",!1,!0);if(l)if(i){let e;if(6===l.type?e=l.value&&sB(l.value.content,!0):(e=l.exp)||(e=sB("is",!1,l.arg.loc)),e)return sj(t.helper(sc),[e])}else 6===l.type&&l.value.content.startsWith("vue:")&&(r=l.value.content.slice(4));let s=s3(r)||t.isBuiltInComponent(r);return s?(n||t.helper(s),s):(t.helper(sa),t.components.add(r),op(r,"component"))}(e,t):`"${o}"`,d=$(u)&&u.callee===sc,p=0,h=d||u===l8||u===l5||!c&&("svg"===o||"foreignObject"===o||"math"===o);if(a.length>0){let r=ad(e,t,void 0,c,d);n=r.props,p=r.patchFlag,l=r.dynamicPropNames;let i=r.directives;s=i&&i.length?sD(i.map(e=>(function(e,t){let n=[],r=ac.get(e);r?n.push(t.helperString(r)):(t.helper(su),t.directives.add(e.name),n.push(op(e.name,"directive")));let{loc:i}=e;if(e.exp&&n.push(e.exp),e.arg&&(e.exp||n.push("void 0"),n.push(e.arg)),Object.keys(e.modifiers).length){e.arg||(e.exp||n.push("void 0"),n.push("void 0"));let t=sB("true",!1,i);n.push(sF(e.modifiers.map(e=>sV(e,t)),i))}return sD(n,e.loc)})(e,t))):void 0,r.shouldUseBlock&&(h=!0)}if(e.children.length>0)if(u===l9&&(h=!0,p|=1024),c&&u!==l8&&u!==l9){let{slots:n,hasDynamicSlots:i}=function(e,t,n=(e,t,n,r)=>sH(e,n,!1,!0,n.length?n[0].loc:r)){t.helper(sE);let{children:r,loc:i}=e,l=[],s=[],o=t.scopes.vSlot>0||t.scopes.vFor>0,a=on(e,"slot",!0);if(a){let{arg:e,exp:t}=a;e&&!s2(e)&&(o=!0),l.push(sV(e||sB("default",!0),n(t,void 0,r,i)))}let c=!1,u=!1,d=[],p=new Set,h=0;for(let e=0;esV("default",n(e,void 0,t,i));c?d.length&&d.some(e=>aa(e))&&(u?t.onError(s1(39,d[0].loc)):l.push(e(void 0,d))):l.push(e(void 0,r))}let f=o?2:!function e(t){for(let n=0;n0,f=!1,m=0,g=!1,y=!1,b=!1,_=!1,S=!1,x=!1,k=[],T=e=>{u.length&&(d.push(sF(ap(u),a)),u=[]),e&&d.push(e)},N=()=>{t.scopes.vFor>0&&u.push(sV(sB("ref_for",!0),sB("true")))},w=({key:e,value:n})=>{if(s2(e)){let l=e.content,s=C(l);s&&(!r||i)&&"onclick"!==l.toLowerCase()&&"onUpdate:modelValue"!==l&&!j(l)&&(_=!0),s&&j(l)&&(x=!0),s&&14===n.type&&(n=n.arguments[0]),20===n.type||(4===n.type||8===n.type)&&oW(n,t)>0||("ref"===l?g=!0:"class"===l?y=!0:"style"===l?b=!0:"key"===l||k.includes(l)||k.push(l),r&&("class"===l||"style"===l)&&!k.includes(l)&&k.push(l))}else S=!0};for(let i=0;i"prop"===e.content)&&(m|=32);let x=t.directiveTransforms[n];if(x){let{props:n,needRuntime:r}=x(s,e,t);l||n.forEach(w),_&&i&&!s2(i)?T(sF(n,a)):u.push(...n),r&&(p.push(s),L(r)&&ac.set(s,r))}else!H(n)&&(p.push(s),h&&(f=!0))}}if(d.length?(T(),s=d.length>1?sj(t.helper(sv),d,a):d[0]):u.length&&(s=sF(ap(u),a)),S?m|=16:(y&&!r&&(m|=2),b&&!r&&(m|=4),k.length&&(m|=8),_&&(m|=32)),!f&&(0===m||32===m)&&(g||x||p.length>0)&&(m|=512),!t.inSSR&&s)switch(s.type){case 15:let A=-1,E=-1,I=!1;for(let e=0;e{if(oa(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}=ad(e,t,i,!1,!1);n=r,l.length&&t.onError(s1(36,l[0].loc))}return{slotName:r,slotProps:n}}(e,t),s=[t.prefixIdentifiers?"_ctx.$slots":"$slots",i,"{}","undefined","true"],o=2;l&&(s[2]=l,o=3),n.length&&(s[3]=sH([],n,!1,!1,r),o=4),t.scopeId&&!t.slotted&&(o=5),s.splice(o),e.codegenNode=sj(t.helper(sf),s,r)}},am=(e,t,n,r)=>{let i,{loc:l,modifiers:s,arg:o}=e;if(!e.exp&&!s.length,4===o.type)if(o.isStatic){let e=o.content;e.startsWith("vue:")&&(e=`vnode-${e.slice(4)}`),i=sB(0!==t.tagType||e.startsWith("vnode")||!/[A-Z]/.test(e)?X(K(e)):`on:${e}`,!0,o.loc)}else i=sU([`${n.helperString(sT)}(`,o,")"]);else(i=o).children.unshift(`${n.helperString(sT)}(`),i.children.push(")");let a=e.exp;a&&!a.content.trim()&&(a=void 0);let c=n.cacheHandlers&&!a&&!n.inVOnce;if(a){let e,t=oe(a),n=!(t||(e=a,ot.test(s7(e)))),r=a.content.includes(";");(n||c&&t)&&(a=sU([`${n?"$event":"(...args)"} => ${r?"{":"("}`,a,r?"}":")"]))}let u={props:[sV(i,a||sB("() => {}",!1,l))]};return r&&(u=r(u)),c&&(u.props[0].value=n.cache(u.props[0].value)),u.props.forEach(e=>e.key.isHandlerKey=!0),u},ag=(e,t)=>{if(0===e.type||1===e.type||11===e.type||10===e.type)return()=>{let n,r=e.children,i=!1;for(let e=0;e7===e.type&&!t.directiveTransforms[e.name]))))for(let e=0;e{if(1===e.type&&on(e,"once",!0)&&!av.has(e)&&!t.inVOnce&&!t.inSSR)return av.add(e),t.inVOnce=!0,t.helper(sN),()=>{t.inVOnce=!1;let e=t.currentNode;e.codegenNode&&(e.codegenNode=t.cache(e.codegenNode,!0,!0))}},ab=(e,t,n)=>{let r,{exp:i,arg:l}=e;if(!i)return n.onError(s1(41,e.loc)),a_();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,a_();if(!o.trim()||!oe(i))return n.onError(s1(42,i.loc)),a_();let c=l||sB("modelValue",!0),u=l?s2(l)?`onUpdate:${K(l.content)}`:sU(['"onUpdate:" + ',l]):"onUpdate:modelValue",d=n.isTS?"($event: any)":"$event";r=sU([`${d} => ((`,i,") = $event)"]);let p=[sV(c,e.exp),sV(u,r)];if(e.modifiers.length&&1===t.tagType){let t=e.modifiers.map(e=>e.content).map(e=>(s4(e)?e:JSON.stringify(e))+": true").join(", "),n=l?s2(l)?`${l.content}Modifiers`:sU([l,' + "Modifiers"']):"modelModifiers";p.push(sV(n,sB(`{ ${t} }`,!1,e.loc,2)))}return a_(p)};function a_(e=[]){return{props:e}}let aS=new WeakSet,ax=(e,t)=>{if(1===e.type){let n=on(e,"memo");if(!(!n||aS.has(e)))return aS.add(e),()=>{let r=e.codegenNode||t.currentNode.codegenNode;r&&13===r.type&&(1!==e.tagType&&sW(r,t),e.codegenNode=sj(t.helper(sO),[n.exp,sH(void 0,r),"_cache",String(t.cached.length)]),t.cached.push(null))}}},aC=Symbol(""),ak=Symbol(""),aT=Symbol(""),aN=Symbol(""),aw=Symbol(""),aA=Symbol(""),aE=Symbol(""),aI=Symbol(""),aR=Symbol(""),aO=Symbol("");Object.getOwnPropertySymbols(r={[aC]:"vModelRadio",[ak]:"vModelCheckbox",[aT]:"vModelText",[aN]:"vModelSelect",[aw]:"vModelDynamic",[aA]:"withModifiers",[aE]:"withKeys",[aI]:"vShow",[aR]:"Transition",[aO]:"TransitionGroup"}).forEach(e=>{sM[e]=r[e]});let aP={parseMode:"html",isVoidTag:eh,isNativeTag:e=>eu(e)||ed(e)||ep(e),isPreTag:e=>"pre"===e,isIgnoreNewlineTag:e=>"pre"===e||"textarea"===e,decodeEntities:function(e,t=!1){return(f||(f=document.createElement("div")),t)?(f.innerHTML=`
    `,f.children[0].getAttribute("foo")):(f.innerHTML=e,f.textContent)},isBuiltInComponent:e=>"Transition"===e||"transition"===e?aR:"TransitionGroup"===e||"transition-group"===e?aO: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}},aM=y("passive,once,capture"),aL=y("stop,prevent,self,ctrl,shift,alt,meta,exact,middle"),a$=y("left,right"),aD=y("onkeyup,onkeydown,onkeypress"),aF=(e,t)=>s2(e)&&"onclick"===e.content.toLowerCase()?sB(t,!0):4!==e.type?sU(["(",e,`) === "onClick" ? "${t}" : (`,e,")"]):e,aV=(e,t)=>{1===e.type&&0===e.tagType&&("script"===e.tag||"style"===e.tag)&&t.removeNode()},aB=[e=>{1===e.type&&e.props.forEach((t,n)=>{let r,i;6===t.type&&"style"===t.name&&t.value&&(e.props[n]={type:7,name:"bind",arg:sB("style",!0,t.loc),exp:(r=t.value.content,i=t.loc,sB(JSON.stringify(ea(r)),!1,i,3)),modifiers:[],loc:t.loc})})}],aU={cloak:()=>({props:[]}),html:(e,t,n)=>{let{exp:r,loc:i}=e;return r||n.onError(s1(53,i)),t.children.length&&(n.onError(s1(54,i)),t.children.length=0),{props:[sV(sB("innerHTML",!0,i),r||sB("",!0))]}},text:(e,t,n)=>{let{exp:r,loc:i}=e;return r||n.onError(s1(55,i)),t.children.length&&(n.onError(s1(56,i)),t.children.length=0),{props:[sV(sB("textContent",!0),r?oW(r,n)>0?r:sj(n.helperString(sg),[r],i):sB("",!0))]}},model:(e,t,n)=>{let r=ab(e,t,n);if(!r.props.length||1===t.tagType)return r;e.arg&&n.onError(s1(58,e.arg.loc));let{tag:i}=t,l=n.isCustomElement(i);if("input"===i||"textarea"===i||"select"===i||l){let s=aT,o=!1;if("input"===i||l){let r=or(t,"type");if(r){if(7===r.type)s=aw;else if(r.value)switch(r.value.content){case"radio":s=aC;break;case"checkbox":s=ak;break;case"file":o=!0,n.onError(s1(59,e.loc))}}else t.props.some(e=>7===e.type&&"bind"===e.name&&(!e.arg||4!==e.arg.type||!e.arg.isStatic))&&(s=aw)}else"select"===i&&(s=aN);o||(r.needRuntime=n.helper(s))}else n.onError(s1(57,e.loc));return r.props=r.props.filter(e=>4!==e.key.type||"modelValue"!==e.key.content),r},on:(e,t,n)=>am(e,t,n,t=>{let{modifiers:r}=e;if(!r.length)return t;let{key:i,value:l}=t.props[0],{keyModifiers:s,nonKeyModifiers:o,eventOptionModifiers:a}=((e,t,n,r)=>{let i=[],l=[],s=[];for(let n=0;n{let{exp:r,loc:i}=e;return r||n.onError(s1(61,i)),{props:[],needRuntime:n.helper(aI)}}},aj=Object.create(null);function aH(e,t){if(!M(e))if(!e.nodeType)return S;else e=e.innerHTML;let n=e+JSON.stringify(t,(e,t)=>"function"==typeof t?t.toString():t),r=aj[n];if(r)return r;if("#"===e[0]){let t=document.querySelector(e);e=t?t.innerHTML:""}let i=T({hoistStatic:!0,onError:void 0,onWarn:S},t);i.isCustomElement||"undefined"==typeof customElements||(i.isCustomElement=e=>!!customElements.get(e));let{code:l}=function(e,t={}){return function(e,t={}){let n=t.onError||sY,r="module"===t.mode;!0===t.prefixIdentifiers?n(s1(47)):r&&n(s1(48)),t.cacheHandlers&&n(s1(49)),t.scopeId&&!r&&n(s1(50));let i=T({},t,{prefixIdentifiers:!1}),l=M(e)?function(e,t){if(ow.reset(),oy=null,ob=null,o_="",oS=-1,ox=-1,oN.length=0,ov=e,om=T({},of),t){let e;for(e in t)null!=t[e]&&(om[e]=t[e])}ow.mode="html"===om.parseMode?1:2*("sfc"===om.parseMode),ow.inXML=1===om.ns||2===om.ns;let n=t&&t.delimiters;n&&(ow.delimiterOpen=sQ(n[0]),ow.delimiterClose=sQ(n[1]));let r=og=function(e,t=""){return{type:0,source:t,children:e,helpers:new Set,components:[],directives:[],hoists:[],imports:[],cached:[],temps:0,codegenNode:void 0,loc:sL}}([],e);return ow.parse(ov),r.loc=oB(0,e.length),r.children=oD(r.children),og=null,r}(e,i):e,[s,o]=[[ay,o4,ax,an,af,au,as,ag],{on:am,bind:o7,model:ab}];var a=T({},i,{nodeTransforms:[...s,...t.nodeTransforms||[]],directiveTransforms:T({},o,t.directiveTransforms||{})});let c=function(e,{filename:t="",prefixIdentifiers:n=!1,hoistStatic:r=!1,hmr:i=!1,cacheHandlers:l=!1,nodeTransforms:s=[],directiveTransforms:o={},transformHoist:a=null,isBuiltInComponent:c=S,isCustomElement:u=S,expressionPlugins:d=[],scopeId:p=null,slotted:h=!0,ssr:f=!1,inSSR:m=!1,ssrCssVars:g="",bindingMetadata:y=b,inline:_=!1,isTS:x=!1,onError:C=sY,onWarn:k=s0,compatConfig:T}){let N=t.replace(/\?.*$/,"").match(/([^/\\]+)\.\w+$/),w={filename:t,selfName:N&&G(K(N[1])),prefixIdentifiers:n,hoistStatic:r,hmr:i,cacheHandlers:l,nodeTransforms:s,directiveTransforms:o,transformHoist:a,isBuiltInComponent:c,isCustomElement:u,expressionPlugins:d,scopeId:p,slotted:h,ssr:f,inSSR:m,ssrCssVars:g,bindingMetadata:y,inline:_,isTS:x,onError:C,onWarn:k,compatConfig:T,root:e,helpers:new Map,components:new Set,directives:new Set,hoists:[],imports:[],cached:[],constantCache:new WeakMap,temps:0,identifiers:Object.create(null),scopes:{vFor:0,vSlot:0,vPre:0,vOnce:0},parent:null,grandParent:null,currentNode:e,childIndex:0,inVOnce:!1,helper(e){let t=w.helpers.get(e)||0;return w.helpers.set(e,t+1),e},removeHelper(e){let t=w.helpers.get(e);if(t){let n=t-1;n?w.helpers.set(e,n):w.helpers.delete(e)}},helperString:e=>`_${sM[w.helper(e)]}`,replaceNode(e){w.parent.children[w.childIndex]=w.currentNode=e},removeNode(e){let t=w.parent.children,n=e?t.indexOf(e):w.currentNode?w.childIndex:-1;e&&e!==w.currentNode?w.childIndex>n&&(w.childIndex--,w.onNodeRemoved()):(w.currentNode=null,w.onNodeRemoved()),w.parent.children.splice(n,1)},onNodeRemoved:S,addIdentifiers(e){},removeIdentifiers(e){},hoist(e){M(e)&&(e=sB(e)),w.hoists.push(e);let t=sB(`_hoisted_${w.hoists.length}`,!1,e.loc,2);return t.hoisted=e,t},cache(e,t=!1,n=!1){let r=function(e,t,n=!1,r=!1){return{type:20,index:e,value:t,needPauseTracking:n,inVOnce:r,needArraySpread:!1,loc:sL}}(w.cached.length,e,t,n);return w.cached.push(r),r}};return w}(l,a);return oG(l,c),a.hoistStatic&&function e(t,n,r,i=!1,l=!1){let{children:s}=t,o=[];for(let n=0;n0){if(e>=2){a.codegenNode.patchFlag=-1,o.push(a);continue}}else{let e=a.codegenNode;if(13===e.type){let t=e.patchFlag;if((void 0===t||512===t||1===t)&&oz(a,r)>=2){let t=oJ(a);t&&(e.props=r.hoist(t))}e.dynamicProps&&(e.dynamicProps=r.hoist(e.dynamicProps))}}}else if(12===a.type&&(i?0:oW(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}}c.length&&1===t.type&&1===t.tagType&&t.codegenNode&&13===t.codegenNode.type&&t.codegenNode.children&&!E(t.codegenNode.children)&&15===t.codegenNode.children.type&&t.codegenNode.children.properties.push(sV("__",sB(JSON.stringify(c),!1))),o.length&&r.transformHoist&&r.transformHoist(s,r,t)}(l,void 0,c,!!oq(l)),a.ssr||function(e,t){let{helper:n}=t,{children:r}=e;if(1===r.length){let n=oq(e);if(n&&n.codegenNode){let r=n.codegenNode;13===r.type&&sW(r,t),e.codegenNode=r}else e.codegenNode=r[0]}else r.length>1&&(e.codegenNode=s$(t,n(l4),void 0,e.children,64,void 0,void 0,!0,void 0,!1))}(l,c),l.helpers=new Set([...c.helpers.keys()]),l.components=[...c.components],l.directives=[...c.directives],l.imports=c.imports,l.hoists=c.hoists,l.temps=c.temps,l.cached=c.cached,l.transformed=!0,function(e,t={}){let n=function(e,{mode:t="function",prefixIdentifiers:n="module"===t,sourceMap:r=!1,filename:i="template.vue.html",scopeId:l=null,optimizeImports:s=!1,runtimeGlobalName:o="Vue",runtimeModuleName:a="vue",ssrRuntimeModuleName:c="vue/server-renderer",ssr:u=!1,isTS:d=!1,inSSR:p=!1}){let h={mode:t,prefixIdentifiers:n,sourceMap:r,filename:i,scopeId:l,optimizeImports:s,runtimeGlobalName:o,runtimeModuleName:a,ssrRuntimeModuleName:c,ssr:u,isTS:d,inSSR:p,source:e.source,code:"",column:1,line:1,offset:0,indentLevel:0,pure:!1,map:void 0,helper:e=>`_${sM[e]}`,push(e,t=-2,n){h.code+=e},indent(){f(++h.indentLevel)},deindent(e=!1){e?--h.indentLevel:f(--h.indentLevel)},newline(){f(h.indentLevel)}};function f(e){h.push(` +**/var Vue=function(e){"use strict";var t,n,r;let i,l,s,o,a,c,u,d,p,h,f,m,g;function y(e){let t=Object.create(null);for(let n of e.split(","))t[n]=1;return e=>e in t}let b={},_=[],S=()=>{},x=()=>!1,C=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&(e.charCodeAt(2)>122||97>e.charCodeAt(2)),k=e=>e.startsWith("onUpdate:"),T=Object.assign,N=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)},w=Object.prototype.hasOwnProperty,A=(e,t)=>w.call(e,t),E=Array.isArray,I=e=>"[object Map]"===V(e),R=e=>"[object Set]"===V(e),O=e=>"[object Date]"===V(e),P=e=>"function"==typeof e,M=e=>"string"==typeof e,$=e=>"symbol"==typeof e,L=e=>null!==e&&"object"==typeof e,D=e=>(L(e)||P(e))&&P(e.then)&&P(e.catch),F=Object.prototype.toString,V=e=>F.call(e),B=e=>"[object Object]"===V(e),U=e=>M(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,j=y(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),H=y("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),q=e=>{let t=Object.create(null);return n=>t[n]||(t[n]=e(n))},W=/-(\w)/g,K=q(e=>e.replace(W,(e,t)=>t?t.toUpperCase():"")),z=/\B([A-Z])/g,J=q(e=>e.replace(z,"-$1").toLowerCase()),G=q(e=>e.charAt(0).toUpperCase()+e.slice(1)),X=q(e=>e?`on${G(e)}`:""),Q=(e,t)=>!Object.is(e,t),Z=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},ee=e=>{let t=parseFloat(e);return isNaN(t)?e:t},et=e=>{let t=M(e)?Number(e):NaN;return isNaN(t)?e:t},en=()=>i||(i="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{}),er=y("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol");function ei(e){if(E(e)){let t={};for(let n=0;n{if(e){let n=e.split(es);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function ec(e){let t="";if(M(e))t=e;else if(E(e))for(let n=0;nem(e,t))}let ev=e=>!!(e&&!0===e.__v_isRef),ey=e=>M(e)?e:null==e?"":E(e)||L(e)&&(e.toString===F||!P(e.toString))?ev(e)?ey(e.value):JSON.stringify(e,eb,2):String(e),eb=(e,t)=>{if(ev(t))return eb(e,t.value);if(I(t))return{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],r)=>(e[e_(t,r)+" =>"]=n,e),{})};if(R(t))return{[`Set(${t.size})`]:[...t.values()].map(e=>e_(e))};if($(t))return e_(t);if(L(t)&&!E(t)&&!B(t))return String(t);return t},e_=(e,t="")=>{var n;return $(e)?`Symbol(${null!=(n=e.description)?n:t})`:e};class eS{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=l,!e&&l&&(this.index=(l.scopes||(l.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){let e,t;if(this._isPaused=!0,this.scopes)for(e=0,t=this.scopes.length;e0&&0==--this._on&&(l=this.prevScope,this.prevScope=void 0)}stop(e){if(this._active){let t,n;for(t=0,this._active=!1,n=this.effects.length;t0)){if(a){let e=a;for(a=void 0;e;){let t=e.next;e.next=void 0,e.flags&=-9,e=t}}for(;o;){let t=o;for(o=void 0;t;){let n=t.next;if(t.next=void 0,t.flags&=-9,1&t.flags)try{t.trigger()}catch(t){e||(e=t)}t=n}}if(e)throw e}}function ew(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function eA(e){let t,n=e.depsTail,r=n;for(;r;){let e=r.prevDep;-1===r.version?(r===n&&(n=e),eR(r),function(e){let{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=e}e.deps=t,e.depsTail=n}function eE(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(eI(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function eI(e){if(4&e.flags&&!(16&e.flags)||(e.flags&=-17,e.globalVersion===eD)||(e.globalVersion=eD,!e.isSSR&&128&e.flags&&(!e.deps&&!e._dirty||!eE(e))))return;e.flags|=2;let t=e.dep,n=s,r=eO;s=e,eO=!0;try{ew(e);let n=e.fn(e._value);(0===t.version||Q(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(e){throw t.version++,e}finally{s=n,eO=r,eA(e),e.flags&=-3}}function eR(e,t=!1){let{dep:n,prevSub:r,nextSub:i}=e;if(r&&(r.nextSub=i,e.prevSub=void 0),i&&(i.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let e=n.computed.deps;e;e=e.nextDep)eR(e,!0)}t||--n.sc||!n.map||n.map.delete(n.key)}let eO=!0,eP=[];function eM(){eP.push(eO),eO=!1}function e$(){let e=eP.pop();eO=void 0===e||e}function eL(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let e=s;s=void 0;try{t()}finally{s=e}}}let eD=0;class eF{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class eV{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!s||!eO||s===this.computed)return;let t=this.activeLink;if(void 0===t||t.sub!==s)t=this.activeLink=new eF(s,this),s.deps?(t.prevDep=s.depsTail,s.depsTail.nextDep=t,s.depsTail=t):s.deps=s.depsTail=t,function e(t){if(t.dep.sc++,4&t.sub.flags){let n=t.dep.computed;if(n&&!t.dep.subs){n.flags|=20;for(let t=n.deps;t;t=t.nextDep)e(t)}let r=t.dep.subs;r!==t&&(t.prevSub=r,r&&(r.nextSub=t)),t.dep.subs=t}}(t);else if(-1===t.version&&(t.version=this.version,t.nextDep)){let e=t.nextDep;e.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=e),t.prevDep=s.depsTail,t.nextDep=void 0,s.depsTail.nextDep=t,s.depsTail=t,s.deps===t&&(s.deps=e)}return t}trigger(e){this.version++,eD++,this.notify(e)}notify(e){ek++;try{for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{eN()}}}let eB=new WeakMap,eU=Symbol(""),ej=Symbol(""),eH=Symbol("");function eq(e,t,n){if(eO&&s){let t=eB.get(e);t||eB.set(e,t=new Map);let r=t.get(n);r||(t.set(n,r=new eV),r.map=t,r.key=n),r.track()}}function eW(e,t,n,r,i,l){let s=eB.get(e);if(!s)return void eD++;let o=e=>{e&&e.trigger()};if(ek++,"clear"===t)s.forEach(o);else{let i=E(e),l=i&&U(n);if(i&&"length"===n){let e=Number(r);s.forEach((t,n)=>{("length"===n||n===eH||!$(n)&&n>=e)&&o(t)})}else switch((void 0!==n||s.has(void 0))&&o(s.get(n)),l&&o(s.get(eH)),t){case"add":i?l&&o(s.get("length")):(o(s.get(eU)),I(e)&&o(s.get(ej)));break;case"delete":!i&&(o(s.get(eU)),I(e)&&o(s.get(ej)));break;case"set":I(e)&&o(s.get(eU))}}eN()}function eK(e){let t=tS(e);return t===e?t:(eq(t,"iterate",eH),tb(e)?t:t.map(tC))}function ez(e){return eq(e=tS(e),"iterate",eH),e}let eJ={__proto__:null,[Symbol.iterator](){return eG(this,Symbol.iterator,tC)},concat(...e){return eK(this).concat(...e.map(e=>E(e)?eK(e):e))},entries(){return eG(this,"entries",e=>(e[1]=tC(e[1]),e))},every(e,t){return eQ(this,"every",e,t,void 0,arguments)},filter(e,t){return eQ(this,"filter",e,t,e=>e.map(tC),arguments)},find(e,t){return eQ(this,"find",e,t,tC,arguments)},findIndex(e,t){return eQ(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return eQ(this,"findLast",e,t,tC,arguments)},findLastIndex(e,t){return eQ(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return eQ(this,"forEach",e,t,void 0,arguments)},includes(...e){return eY(this,"includes",e)},indexOf(...e){return eY(this,"indexOf",e)},join(e){return eK(this).join(e)},lastIndexOf(...e){return eY(this,"lastIndexOf",e)},map(e,t){return eQ(this,"map",e,t,void 0,arguments)},pop(){return e0(this,"pop")},push(...e){return e0(this,"push",e)},reduce(e,...t){return eZ(this,"reduce",e,t)},reduceRight(e,...t){return eZ(this,"reduceRight",e,t)},shift(){return e0(this,"shift")},some(e,t){return eQ(this,"some",e,t,void 0,arguments)},splice(...e){return e0(this,"splice",e)},toReversed(){return eK(this).toReversed()},toSorted(e){return eK(this).toSorted(e)},toSpliced(...e){return eK(this).toSpliced(...e)},unshift(...e){return e0(this,"unshift",e)},values(){return eG(this,"values",tC)}};function eG(e,t,n){let r=ez(e),i=r[t]();return r===e||tb(e)||(i._next=i.next,i.next=()=>{let e=i._next();return e.value&&(e.value=n(e.value)),e}),i}let eX=Array.prototype;function eQ(e,t,n,r,i,l){let s=ez(e),o=s!==e&&!tb(e),a=s[t];if(a!==eX[t]){let t=a.apply(e,l);return o?tC(t):t}let c=n;s!==e&&(o?c=function(t,r){return n.call(this,tC(t),r,e)}:n.length>2&&(c=function(t,r){return n.call(this,t,r,e)}));let u=a.call(s,c,r);return o&&i?i(u):u}function eZ(e,t,n,r){let i=ez(e),l=n;return i!==e&&(tb(e)?n.length>3&&(l=function(t,r,i){return n.call(this,t,r,i,e)}):l=function(t,r,i){return n.call(this,t,tC(r),i,e)}),i[t](l,...r)}function eY(e,t,n){let r=tS(e);eq(r,"iterate",eH);let i=r[t](...n);return(-1===i||!1===i)&&t_(n[0])?(n[0]=tS(n[0]),r[t](...n)):i}function e0(e,t,n=[]){eM(),ek++;let r=tS(e)[t].apply(e,n);return eN(),e$(),r}let e1=y("__proto__,__v_isRef,__isVue"),e2=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>"arguments"!==e&&"caller"!==e).map(e=>Symbol[e]).filter($));function e3(e){$(e)||(e=String(e));let t=tS(this);return eq(t,"has",e),t.hasOwnProperty(e)}class e6{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,n){if("__v_skip"===t)return e.__v_skip;let r=this._isReadonly,i=this._isShallow;if("__v_isReactive"===t)return!r;if("__v_isReadonly"===t)return r;if("__v_isShallow"===t)return i;if("__v_raw"===t)return n===(r?i?tp:td:i?tu:tc).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;let l=E(e);if(!r){let e;if(l&&(e=eJ[t]))return e;if("hasOwnProperty"===t)return e3}let s=Reflect.get(e,t,tT(e)?e:n);return($(t)?e2.has(t):e1(t))||(r||eq(e,"get",t),i)?s:tT(s)?l&&U(t)?s:s.value:L(s)?r?tm(s):th(s):s}}class e4 extends e6{constructor(e=!1){super(!1,e)}set(e,t,n,r){let i=e[t];if(!this._isShallow){let t=ty(i);if(tb(n)||ty(n)||(i=tS(i),n=tS(n)),!E(e)&&tT(i)&&!tT(n))if(t)return!1;else return i.value=n,!0}let l=E(e)&&U(t)?Number(t)e,tn=e=>Reflect.getPrototypeOf(e);function tr(e){return function(){return"delete"!==e&&("clear"===e?void 0:this)}}function ti(e,t){let n=function(e,t){let n={get(n){let r=this.__v_raw,i=tS(r),l=tS(n);e||(Q(n,l)&&eq(i,"get",n),eq(i,"get",l));let{has:s}=tn(i),o=t?tt:e?tk:tC;return s.call(i,n)?o(r.get(n)):s.call(i,l)?o(r.get(l)):void(r!==i&&r.get(n))},get size(){let t=this.__v_raw;return e||eq(tS(t),"iterate",eU),Reflect.get(t,"size",t)},has(t){let n=this.__v_raw,r=tS(n),i=tS(t);return e||(Q(t,i)&&eq(r,"has",t),eq(r,"has",i)),t===i?n.has(t):n.has(t)||n.has(i)},forEach(n,r){let i=this,l=i.__v_raw,s=tS(l),o=t?tt:e?tk:tC;return e||eq(s,"iterate",eU),l.forEach((e,t)=>n.call(r,o(e),o(t),i))}};return T(n,e?{add:tr("add"),set:tr("set"),delete:tr("delete"),clear:tr("clear")}:{add(e){t||tb(e)||ty(e)||(e=tS(e));let n=tS(this);return tn(n).has.call(n,e)||(n.add(e),eW(n,"add",e,e)),this},set(e,n){t||tb(n)||ty(n)||(n=tS(n));let r=tS(this),{has:i,get:l}=tn(r),s=i.call(r,e);s||(e=tS(e),s=i.call(r,e));let o=l.call(r,e);return r.set(e,n),s?Q(n,o)&&eW(r,"set",e,n):eW(r,"add",e,n),this},delete(e){let t=tS(this),{has:n,get:r}=tn(t),i=n.call(t,e);i||(e=tS(e),i=n.call(t,e)),r&&r.call(t,e);let l=t.delete(e);return i&&eW(t,"delete",e,void 0),l},clear(){let e=tS(this),t=0!==e.size,n=e.clear();return t&&eW(e,"clear",void 0,void 0),n}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=function(...n){let i=this.__v_raw,l=tS(i),s=I(l),o="entries"===r||r===Symbol.iterator&&s,a=i[r](...n),c=t?tt:e?tk:tC;return e||eq(l,"iterate","keys"===r&&s?ej:eU),{next(){let{value:e,done:t}=a.next();return t?{value:e,done:t}:{value:o?[c(e[0]),c(e[1])]:c(e),done:t}},[Symbol.iterator](){return this}}}}),n}(e,t);return(t,r,i)=>"__v_isReactive"===r?!e:"__v_isReadonly"===r?e:"__v_raw"===r?t:Reflect.get(A(n,r)&&r in t?n:t,r,i)}let tl={get:ti(!1,!1)},ts={get:ti(!1,!0)},to={get:ti(!0,!1)},ta={get:ti(!0,!0)},tc=new WeakMap,tu=new WeakMap,td=new WeakMap,tp=new WeakMap;function th(e){return ty(e)?e:tg(e,!1,e5,tl,tc)}function tf(e){return tg(e,!1,e7,ts,tu)}function tm(e){return tg(e,!0,e9,to,td)}function tg(e,t,n,r,i){var l;if(!L(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;let s=(l=e).__v_skip||!Object.isExtensible(l)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}(V(l).slice(8,-1));if(0===s)return e;let o=i.get(e);if(o)return o;let a=new Proxy(e,2===s?r:n);return i.set(e,a),a}function tv(e){return ty(e)?tv(e.__v_raw):!!(e&&e.__v_isReactive)}function ty(e){return!!(e&&e.__v_isReadonly)}function tb(e){return!!(e&&e.__v_isShallow)}function t_(e){return!!e&&!!e.__v_raw}function tS(e){let t=e&&e.__v_raw;return t?tS(t):e}function tx(e){return!A(e,"__v_skip")&&Object.isExtensible(e)&&Y(e,"__v_skip",!0),e}let tC=e=>L(e)?th(e):e,tk=e=>L(e)?tm(e):e;function tT(e){return!!e&&!0===e.__v_isRef}function tN(e){return tA(e,!1)}function tw(e){return tA(e,!0)}function tA(e,t){return tT(e)?e:new tE(e,t)}class tE{constructor(e,t){this.dep=new eV,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:tS(e),this._value=t?e:tC(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){let t=this._rawValue,n=this.__v_isShallow||tb(e)||ty(e);Q(e=n?e:tS(e),t)&&(this._rawValue=e,this._value=n?e:tC(e),this.dep.trigger())}}function tI(e){return tT(e)?e.value:e}let tR={get:(e,t,n)=>"__v_raw"===t?e:tI(Reflect.get(e,t,n)),set:(e,t,n,r)=>{let i=e[t];return tT(i)&&!tT(n)?(i.value=n,!0):Reflect.set(e,t,n,r)}};function tO(e){return tv(e)?e:new Proxy(e,tR)}class tP{constructor(e){this.__v_isRef=!0,this._value=void 0;let t=this.dep=new eV,{get:n,set:r}=e(t.track.bind(t),t.trigger.bind(t));this._get=n,this._set=r}get value(){return this._value=this._get()}set value(e){this._set(e)}}function tM(e){return new tP(e)}class t${constructor(e,t,n){this._object=e,this._key=t,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0}get value(){let e=this._object[this._key];return this._value=void 0===e?this._defaultValue:e}set value(e){this._object[this._key]=e}get dep(){return function(e,t){let n=eB.get(e);return n&&n.get(t)}(tS(this._object),this._key)}}class tL{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function tD(e,t,n){let r=e[t];return tT(r)?r:new t$(e,t,n)}class tF{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new eV(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=eD-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(8&this.flags)&&s!==this)return eT(this,!0),!0}get value(){let e=this.dep.track();return eI(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}let tV={},tB=new WeakMap;function tU(e,t=!1,n=m){if(n){let t=tB.get(n);t||tB.set(n,t=[]),t.push(e)}}function tj(e,t=1/0,n){if(t<=0||!L(e)||e.__v_skip||(n=n||new Set).has(e))return e;if(n.add(e),t--,tT(e))tj(e.value,t,n);else if(E(e))for(let r=0;r{tj(e,t,n)});else if(B(e)){for(let r in e)tj(e[r],t,n);for(let r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&tj(e[r],t,n)}return e}function tH(e,t,n,r){try{return r?e(...r):e()}catch(e){tW(e,t,n)}}function tq(e,t,n,r){if(P(e)){let i=tH(e,t,n,r);return i&&D(i)&&i.catch(e=>{tW(e,t,n)}),i}if(E(e)){let i=[];for(let l=0;l=t4(n)?tK.push(e):tK.splice(function(e){let t=tz+1,n=tK.length;for(;t>>1,i=tK[r],l=t4(i);lt4(e)-t4(t));if(tJ.length=0,tG)return void tG.push(...e);for(tX=0,tG=e;tXnull==e.id?2&e.flags?-1:1/0:e.id,t8=null,t5=null;function t9(e){let t=t8;return t8=e,t5=e&&e.type.__scopeId||null,t}function t7(e,t=t8,n){if(!t||e._n)return e;let r=(...n)=>{let i;r._d&&ia(-1);let l=t9(t);try{i=e(...n)}finally{t9(l),r._d&&ia(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function ne(e,t,n,r){let i=e.dirs,l=t&&t.dirs;for(let s=0;se&&(e.disabled||""===e.disabled),nr=e=>e&&(e.defer||""===e.defer),ni=e=>"undefined"!=typeof SVGElement&&e instanceof SVGElement,nl=e=>"function"==typeof MathMLElement&&e instanceof MathMLElement,ns=(e,t)=>{let n=e&&e.to;return M(n)?t?t(n):null:n},no={name:"Teleport",__isTeleport:!0,process(e,t,n,r,i,l,s,o,a,c){let{mc:u,pc:d,pbc:p,o:{insert:h,querySelector:f,createText:m,createComment:g}}=c,y=nn(t.props),{shapeFlag:b,children:_,dynamicChildren:S}=t;if(null==e){let e=t.el=m(""),c=t.anchor=m("");h(e,n,r),h(c,n,r);let d=(e,t)=>{16&b&&(i&&i.isCE&&(i.ce._teleportTarget=e),u(_,e,t,i,l,s,o,a))},p=()=>{let e=t.target=ns(t.props,f),n=nu(e,t,m,h);e&&("svg"!==s&&ni(e)?s="svg":"mathml"!==s&&nl(e)&&(s="mathml"),y||(d(e,n),nc(t,!1)))};y&&(d(n,c),nc(t,!0)),nr(t.props)?(t.el.__isMounted=!1,rM(()=>{p(),delete t.el.__isMounted},l)):p()}else{if(nr(t.props)&&!1===e.el.__isMounted)return void rM(()=>{no.process(e,t,n,r,i,l,s,o,a,c)},l);t.el=e.el,t.targetStart=e.targetStart;let u=t.anchor=e.anchor,h=t.target=e.target,m=t.targetAnchor=e.targetAnchor,g=nn(e.props),b=g?n:h,_=g?u:m;if("svg"===s||ni(h)?s="svg":("mathml"===s||nl(h))&&(s="mathml"),S?(p(e.dynamicChildren,S,b,i,l,s,o),rB(e,t,!0)):a||d(e,t,b,_,i,l,s,o,!1),y)g?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):na(t,n,u,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){let e=t.target=ns(t.props,f);e&&na(t,e,null,c,0)}else g&&na(t,h,m,c,1);nc(t,y)}},remove(e,t,n,{um:r,o:{remove:i}},l){let{shapeFlag:s,children:o,anchor:a,targetStart:c,targetAnchor:u,target:d,props:p}=e;if(d&&(i(c),i(u)),l&&i(a),16&s){let e=l||!nn(p);for(let i=0;i{e.isMounted=!0}),nY(()=>{e.isUnmounting=!0}),e}let nf=[Function,Array],nm={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:nf,onEnter:nf,onAfterEnter:nf,onEnterCancelled:nf,onBeforeLeave:nf,onLeave:nf,onAfterLeave:nf,onLeaveCancelled:nf,onBeforeAppear:nf,onAppear:nf,onAfterAppear:nf,onAppearCancelled:nf},ng=e=>{let t=e.subTree;return t.component?ng(t.component):t};function nv(e){let t=e[0];if(e.length>1){for(let n of e)if(n.type!==ie){t=n;break}}return t}let ny={name:"BaseTransition",props:nm,setup(e,{slots:t}){let n=iE(),r=nh();return()=>{let i=t.default&&nk(t.default(),!0);if(!i||!i.length)return;let l=nv(i),s=tS(e),{mode:o}=s;if(r.isLeaving)return nS(l);let a=nx(l);if(!a)return nS(l);let c=n_(a,s,r,n,e=>c=e);a.type!==ie&&nC(a,c);let u=n.subTree&&nx(n.subTree);if(u&&u.type!==ie&&!ip(a,u)&&ng(n).type!==ie){let e=n_(u,s,r,n);if(nC(u,e),"out-in"===o&&a.type!==ie)return r.isLeaving=!0,e.afterLeave=()=>{r.isLeaving=!1,8&n.job.flags||n.update(),delete e.afterLeave,u=void 0},nS(l);"in-out"===o&&a.type!==ie?e.delayLeave=(e,t,n)=>{nb(r,u)[String(u.key)]=u,e[nd]=()=>{t(),e[nd]=void 0,delete c.delayedLeave,u=void 0},c.delayedLeave=()=>{n(),delete c.delayedLeave,u=void 0}}:u=void 0}else u&&(u=void 0);return l}}};function nb(e,t){let{leavingVNodes:n}=e,r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function n_(e,t,n,r,i){let{appear:l,mode:s,persisted:o=!1,onBeforeEnter:a,onEnter:c,onAfterEnter:u,onEnterCancelled:d,onBeforeLeave:p,onLeave:h,onAfterLeave:f,onLeaveCancelled:m,onBeforeAppear:g,onAppear:y,onAfterAppear:b,onAppearCancelled:_}=t,S=String(e.key),x=nb(n,e),C=(e,t)=>{e&&tq(e,r,9,t)},k=(e,t)=>{let n=t[1];C(e,t),E(e)?e.every(e=>e.length<=1)&&n():e.length<=1&&n()},T={mode:s,persisted:o,beforeEnter(t){let r=a;if(!n.isMounted)if(!l)return;else r=g||a;t[nd]&&t[nd](!0);let i=x[S];i&&ip(e,i)&&i.el[nd]&&i.el[nd](),C(r,[t])},enter(e){let t=c,r=u,i=d;if(!n.isMounted)if(!l)return;else t=y||c,r=b||u,i=_||d;let s=!1,o=e[np]=t=>{s||(s=!0,t?C(i,[e]):C(r,[e]),T.delayedLeave&&T.delayedLeave(),e[np]=void 0)};t?k(t,[e,o]):o()},leave(t,r){let i=String(e.key);if(t[np]&&t[np](!0),n.isUnmounting)return r();C(p,[t]);let l=!1,s=t[nd]=n=>{l||(l=!0,r(),n?C(m,[t]):C(f,[t]),t[nd]=void 0,x[i]===e&&delete x[i])};x[i]=e,h?k(h,[t,s]):s()},clone(e){let l=n_(e,t,n,r,i);return i&&i(l),l}};return T}function nS(e){if(nB(e))return(e=ib(e)).children=null,e}function nx(e){if(!nB(e))return e.type.__isTeleport&&e.children?nv(e.children):e;if(e.component)return e.component.subTree;let{shapeFlag:t,children:n}=e;if(n){if(16&t)return n[0];if(32&t&&P(n.default))return n.default()}}function nC(e,t){6&e.shapeFlag&&e.component?(e.transition=t,nC(e.component.subTree,t)):128&e.shapeFlag?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function nk(e,t=!1,n){let r=[],i=0;for(let l=0;l1)for(let e=0;enw(e,t&&(E(t)?t[l]:t),n,r,i));if(nF(r)&&!i){512&r.shapeFlag&&r.type.__asyncResolved&&r.component.subTree.component&&nw(e,t,n,r.component.subTree);return}let l=4&r.shapeFlag?iV(r.component):r.el,s=i?null:l,{i:o,r:a}=e,c=t&&t.r,u=o.refs===b?o.refs={}:o.refs,d=o.setupState,p=tS(d),h=d===b?()=>!1:e=>A(p,e);if(null!=c&&c!==a&&(M(c)?(u[c]=null,h(c)&&(d[c]=null)):tT(c)&&(c.value=null)),P(a))tH(a,o,12,[s,u]);else{let t=M(a),r=tT(a);if(t||r){let o=()=>{if(e.f){let n=t?h(a)?d[a]:u[a]:a.value;i?E(n)&&N(n,l):E(n)?n.includes(l)||n.push(l):t?(u[a]=[l],h(a)&&(d[a]=u[a])):(a.value=[l],e.k&&(u[e.k]=a.value))}else t?(u[a]=s,h(a)&&(d[a]=s)):r&&(a.value=s,e.k&&(u[e.k]=s))};s?(o.id=-1,rM(o,n)):o()}}}let nA=!1,nE=()=>{nA||(console.error("Hydration completed but contains mismatches."),nA=!0)},nI=e=>{if(1===e.nodeType){if(e.namespaceURI.includes("svg")&&"foreignObject"!==e.tagName)return"svg";if(e.namespaceURI.includes("MathML"))return"mathml"}},nR=e=>8===e.nodeType;function nO(e){let{mt:t,p:n,o:{patchProp:r,createText:i,nextSibling:l,parentNode:s,remove:o,insert:a,createComment:c}}=e,u=(n,r,o,c,b,_=!1)=>{_=_||!!r.dynamicChildren;let S=nR(n)&&"["===n.data,x=()=>f(n,r,o,c,b,S),{type:C,ref:k,shapeFlag:T,patchFlag:N}=r,w=n.nodeType;r.el=n,-2===N&&(_=!1,r.dynamicChildren=null);let A=null;switch(C){case r7:3!==w?""===r.children?(a(r.el=i(""),s(n),n),A=n):A=x():(n.data!==r.children&&(nE(),n.data=r.children),A=l(n));break;case ie:y(n)?(A=l(n),g(r.el=n.content.firstChild,n,o)):A=8!==w||S?x():l(n);break;case it:if(S&&(w=(n=l(n)).nodeType),1===w||3===w){A=n;let e=!r.children.length;for(let t=0;t{s=s||!!t.dynamicChildren;let{type:a,props:c,patchFlag:u,shapeFlag:d,dirs:h,transition:f}=t,m="input"===a||"option"===a;if(m||-1!==u){let a;h&&ne(t,null,n,"created");let b=!1;if(y(e)){b=rV(null,f)&&n&&n.vnode.props&&n.vnode.props.appear;let r=e.content.firstChild;if(b){let e=r.getAttribute("class");e&&(r.$cls=e),f.beforeEnter(r)}g(r,e,n),t.el=e=r}if(16&d&&!(c&&(c.innerHTML||c.textContent))){let r=p(e.firstChild,t,e,n,i,l,s);for(;r;){n$(e,1)||nE();let t=r;r=r.nextSibling,o(t)}}else if(8&d){let n=t.children;` +`===n[0]&&("PRE"===e.tagName||"TEXTAREA"===e.tagName)&&(n=n.slice(1)),e.textContent!==n&&(n$(e,0)||nE(),e.textContent=t.children)}if(c){if(m||!s||48&u){let t=e.tagName.includes("-");for(let i in c)(m&&(i.endsWith("value")||"indeterminate"===i)||C(i)&&!j(i)||"."===i[0]||t)&&r(e,i,null,c[i],void 0,n)}else if(c.onClick)r(e,"onClick",null,c.onClick,void 0,n);else if(4&u&&tv(c.style))for(let e in c.style)c.style[e]}(a=c&&c.onVnodeBeforeMount)&&iT(a,n,t),h&&ne(t,null,n,"beforeMount"),((a=c&&c.onVnodeMounted)||h||b)&&r8(()=>{a&&iT(a,n,t),b&&f.enter(e),h&&ne(t,null,n,"mounted")},i)}return e.nextSibling},p=(e,t,r,s,o,c,d)=>{d=d||!!t.dynamicChildren;let p=t.children,h=p.length;for(let t=0;t{let{slotScopeIds:u}=t;u&&(i=i?i.concat(u):u);let d=s(e),h=p(l(e),t,d,n,r,i,o);return h&&nR(h)&&"]"===h.data?l(t.anchor=h):(nE(),a(t.anchor=c("]"),d,h),h)},f=(e,t,r,i,a,c)=>{if(n$(e.parentElement,1)||nE(),t.el=null,c){let t=m(e);for(;;){let n=l(e);if(n&&n!==t)o(n);else break}}let u=l(e),d=s(e);return o(e),n(null,t,d,u,r,i,nI(d),a),r&&(r.vnode.el=t.el,r0(r,t.el)),u},m=(e,t="[",n="]")=>{let r=0;for(;e;)if((e=l(e))&&nR(e)&&(e.data===t&&r++,e.data===n))if(0===r)return l(e);else r--;return e},g=(e,t,n)=>{let r=t.parentNode;r&&r.replaceChild(e,t);let i=n;for(;i;)i.vnode.el===t&&(i.vnode.el=i.subTree.el=e),i=i.parent},y=e=>1===e.nodeType&&"TEMPLATE"===e.tagName;return[(e,t)=>{if(!t.hasChildNodes()){n(null,e,t),t6(),t._vnode=e;return}u(t.firstChild,e,null,null,null),t6(),t._vnode=e},u]}let nP="data-allow-mismatch",nM={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function n$(e,t){if(0===t||1===t)for(;e&&!e.hasAttribute(nP);)e=e.parentElement;let n=e&&e.getAttribute(nP);if(null==n)return!1;{if(""===n)return!0;let e=n.split(",");return!!(0===t&&e.includes("children"))||e.includes(nM[t])}}let nL=en().requestIdleCallback||(e=>setTimeout(e,1)),nD=en().cancelIdleCallback||(e=>clearTimeout(e)),nF=e=>!!e.type.__asyncLoader;function nV(e,t){let{ref:n,props:r,children:i,ce:l}=t.vnode,s=iv(e,r,i);return s.ref=n,s.ce=l,delete t.vnode.ce,s}let nB=e=>e.type.__isKeepAlive;function nU(e,t){return E(e)?e.some(e=>nU(e,t)):M(e)?e.split(",").includes(t):"[object RegExp]"===V(e)&&(e.lastIndex=0,e.test(t))}function nj(e,t){nq(e,"a",t)}function nH(e,t){nq(e,"da",t)}function nq(e,t,n=iA){let r=e.__wdc||(e.__wdc=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()});if(nz(t,r,n),n){let e=n.parent;for(;e&&e.parent;)nB(e.parent.vnode)&&function(e,t,n,r){let i=nz(t,e,r,!0);n0(()=>{N(r[t],i)},n)}(r,t,n,e),e=e.parent}}function nW(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function nK(e){return 128&e.shapeFlag?e.ssContent:e}function nz(e,t,n=iA,r=!1){if(n){let i=n[e]||(n[e]=[]),l=t.__weh||(t.__weh=(...r)=>{eM();let i=iI(n),l=tq(t,n,e,r);return i(),e$(),l});return r?i.unshift(l):i.push(l),l}}let nJ=e=>(t,n=iA)=>{iP&&"sp"!==e||nz(e,(...e)=>t(...e),n)},nG=nJ("bm"),nX=nJ("m"),nQ=nJ("bu"),nZ=nJ("u"),nY=nJ("bum"),n0=nJ("um"),n1=nJ("sp"),n2=nJ("rtg"),n3=nJ("rtc");function n6(e,t=iA){nz("ec",e,t)}let n4="components",n8=Symbol.for("v-ndc");function n5(e,t,n=!0,r=!1){let i=t8||iA;if(i){let n=i.type;if(e===n4){let e=iB(n,!1);if(e&&(e===t||e===K(t)||e===G(K(t))))return n}let l=n9(i[e]||n[e],t)||n9(i.appContext[e],t);return!l&&r?n:l}}function n9(e,t){return e&&(e[t]||e[K(t)]||e[G(K(t))])}let n7=e=>e?iO(e)?iV(e):n7(e.parent):null,re=T(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>n7(e.parent),$root:e=>n7(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>ra(e),$forceUpdate:e=>e.f||(e.f=()=>{t0(e.update)}),$nextTick:e=>e.n||(e.n=tY.bind(e.proxy)),$watch:e=>rW.bind(e)}),rt=(e,t)=>e!==b&&!e.__isScriptSetup&&A(e,t),rn={get({_:e},t){let n,r,i;if("__v_skip"===t)return!0;let{ctx:l,setupState:s,data:o,props:a,accessCache:c,type:u,appContext:d}=e;if("$"!==t[0]){let r=c[t];if(void 0!==r)switch(r){case 1:return s[t];case 2:return o[t];case 4:return l[t];case 3:return a[t]}else{if(rt(s,t))return c[t]=1,s[t];if(o!==b&&A(o,t))return c[t]=2,o[t];if((n=e.propsOptions[0])&&A(n,t))return c[t]=3,a[t];if(l!==b&&A(l,t))return c[t]=4,l[t];rs&&(c[t]=0)}}let p=re[t];return p?("$attrs"===t&&eq(e.attrs,"get",""),p(e)):(r=u.__cssModules)&&(r=r[t])?r:l!==b&&A(l,t)?(c[t]=4,l[t]):A(i=d.config.globalProperties,t)?i[t]:void 0},set({_:e},t,n){let{data:r,setupState:i,ctx:l}=e;return rt(i,t)?(i[t]=n,!0):r!==b&&A(r,t)?(r[t]=n,!0):!A(e.props,t)&&!("$"===t[0]&&t.slice(1)in e)&&(l[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:i,propsOptions:l}},s){let o;return!!n[s]||e!==b&&A(e,s)||rt(t,s)||(o=l[0])&&A(o,s)||A(r,s)||A(re,s)||A(i.config.globalProperties,s)},defineProperty(e,t,n){return null!=n.get?e._.accessCache[t]=0:A(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}},rr=T({},rn,{get(e,t){if(t!==Symbol.unscopables)return rn.get(e,t,e)},has:(e,t)=>"_"!==t[0]&&!er(t)});function ri(e){let t=iE();return t.setupContext||(t.setupContext=iF(t))}function rl(e){return E(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}let rs=!0;function ro(e,t,n){tq(E(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function ra(e){let t,n=e.type,{mixins:r,extends:i}=n,{mixins:l,optionsCache:s,config:{optionMergeStrategies:o}}=e.appContext,a=s.get(n);return a?t=a:l.length||r||i?(t={},l.length&&l.forEach(e=>rc(t,e,o,!0)),rc(t,n,o)):t=n,L(n)&&s.set(n,t),t}function rc(e,t,n,r=!1){let{mixins:i,extends:l}=t;for(let s in l&&rc(e,l,n,!0),i&&i.forEach(t=>rc(e,t,n,!0)),t)if(r&&"expose"===s);else{let r=ru[s]||n&&n[s];e[s]=r?r(e[s],t[s]):t[s]}return e}let ru={data:rd,props:rm,emits:rm,methods:rf,computed:rf,beforeCreate:rh,created:rh,beforeMount:rh,mounted:rh,beforeUpdate:rh,updated:rh,beforeDestroy:rh,beforeUnmount:rh,destroyed:rh,unmounted:rh,activated:rh,deactivated:rh,errorCaptured:rh,serverPrefetch:rh,components:rf,directives:rf,watch:function(e,t){if(!e)return t;if(!t)return e;let n=T(Object.create(null),e);for(let r in t)n[r]=rh(e[r],t[r]);return n},provide:rd,inject:function(e,t){return rf(rp(e),rp(t))}};function rd(e,t){return t?e?function(){return T(P(e)?e.call(this,this):e,P(t)?t.call(this,this):t)}:t:e}function rp(e){if(E(e)){let t={};for(let n=0;n1)return n&&P(t)?t.call(r&&r.proxy):t}}let rS={},rx=()=>Object.create(rS),rC=e=>Object.getPrototypeOf(e)===rS;function rk(e,t,n,r){let i,[l,s]=e.propsOptions,o=!1;if(t)for(let a in t){let c;if(j(a))continue;let u=t[a];l&&A(l,c=K(a))?s&&s.includes(c)?(i||(i={}))[c]=u:n[c]=u:rG(e.emitsOptions,a)||a in r&&u===r[a]||(r[a]=u,o=!0)}if(s){let t=tS(n),r=i||b;for(let i=0;i"_"===e||"__"===e||"_ctx"===e||"$stable"===e,rE=e=>E(e)?e.map(iS):[iS(e)],rI=(e,t,n)=>{if(t._n)return t;let r=t7((...e)=>rE(t(...e)),n);return r._c=!1,r},rR=(e,t,n)=>{let r=e._ctx;for(let n in e){if(rA(n))continue;let i=e[n];if(P(i))t[n]=rI(n,i,r);else if(null!=i){let e=rE(i);t[n]=()=>e}}},rO=(e,t)=>{let n=rE(t);e.slots.default=()=>n},rP=(e,t,n)=>{for(let r in t)(n||!rA(r))&&(e[r]=t[r])},rM=r8;function r$(e){return rL(e,nO)}function rL(e,t){var n;let r,i;en().__VUE__=!0;let{insert:l,remove:s,patchProp:o,createElement:a,createText:c,createComment:d,setText:p,setElementText:h,parentNode:f,nextSibling:m,setScopeId:g=S,insertStaticContent:y}=e,x=(e,t,n,r=null,i=null,l=null,s,o=null,a=!!t.dynamicChildren)=>{if(e===t)return;e&&!ip(e,t)&&(r=es(e),ee(e,i,l,!0),e=null),-2===t.patchFlag&&(a=!1,t.dynamicChildren=null);let{type:c,ref:u,shapeFlag:d}=t;switch(c){case r7:C(e,t,n,r);break;case ie:k(e,t,n,r);break;case it:null==e&&N(t,n,r,s);break;case r9:V(e,t,n,r,i,l,s,o,a);break;default:1&d?w(e,t,n,r,i,l,s,o,a):6&d?B(e,t,n,r,i,l,s,o,a):64&d?c.process(e,t,n,r,i,l,s,o,a,ec):128&d&&c.process(e,t,n,r,i,l,s,o,a,ec)}null!=u&&i?nw(u,e&&e.ref,l,t||e,!t):null==u&&e&&null!=e.ref&&nw(e.ref,null,l,e,!0)},C=(e,t,n,r)=>{if(null==e)l(t.el=c(t.children),n,r);else{let n=t.el=e.el;t.children!==e.children&&p(n,t.children)}},k=(e,t,n,r)=>{null==e?l(t.el=d(t.children||""),n,r):t.el=e.el},N=(e,t,n,r)=>{[e.el,e.anchor]=y(e.children,t,n,r,e.el,e.anchor)},w=(e,t,n,r,i,l,s,o,a)=>{"svg"===t.type?s="svg":"math"===t.type&&(s="mathml"),null==e?I(t,n,r,i,l,s,o,a):M(e,t,i,l,s,o,a)},I=(e,t,n,r,i,s,c,u)=>{let d,p,{props:f,shapeFlag:m,transition:g,dirs:y}=e;if(d=e.el=a(e.type,s,f&&f.is,f),8&m?h(d,e.children):16&m&&O(e.children,d,null,r,i,rD(e,s),c,u),y&&ne(e,null,r,"created"),R(d,e,e.scopeId,c,r),f){for(let e in f)"value"===e||j(e)||o(d,e,null,f[e],s,r);"value"in f&&o(d,"value",null,f.value,s),(p=f.onVnodeBeforeMount)&&iT(p,r,e)}y&&ne(e,null,r,"beforeMount");let b=rV(i,g);b&&g.beforeEnter(d),l(d,t,n),((p=f&&f.onVnodeMounted)||b||y)&&rM(()=>{p&&iT(p,r,e),b&&g.enter(d),y&&ne(e,null,r,"mounted")},i)},R=(e,t,n,r,i)=>{if(n&&g(e,n),r)for(let t=0;t{for(let c=a;c{let a,c=t.el=e.el,{patchFlag:u,dynamicChildren:d,dirs:p}=t;u|=16&e.patchFlag;let f=e.props||b,m=t.props||b;if(n&&rF(n,!1),(a=m.onVnodeBeforeUpdate)&&iT(a,n,t,e),p&&ne(t,e,n,"beforeUpdate"),n&&rF(n,!0),(f.innerHTML&&null==m.innerHTML||f.textContent&&null==m.textContent)&&h(c,""),d?$(e.dynamicChildren,d,c,n,r,rD(t,i),l):s||z(e,t,c,null,n,r,rD(t,i),l,!1),u>0){if(16&u)F(c,f,m,n,i);else if(2&u&&f.class!==m.class&&o(c,"class",null,m.class,i),4&u&&o(c,"style",f.style,m.style,i),8&u){let e=t.dynamicProps;for(let t=0;t{a&&iT(a,n,t,e),p&&ne(t,e,n,"updated")},r)},$=(e,t,n,r,i,l,s)=>{for(let o=0;o{if(t!==n){if(t!==b)for(let l in t)j(l)||l in n||o(e,l,t[l],null,i,r);for(let l in n){if(j(l))continue;let s=n[l],a=t[l];s!==a&&"value"!==l&&o(e,l,a,s,i,r)}"value"in n&&o(e,"value",t.value,n.value,i)}},V=(e,t,n,r,i,s,o,a,u)=>{let d=t.el=e?e.el:c(""),p=t.anchor=e?e.anchor:c(""),{patchFlag:h,dynamicChildren:f,slotScopeIds:m}=t;m&&(a=a?a.concat(m):m),null==e?(l(d,n,r),l(p,n,r),O(t.children||[],n,p,i,s,o,a,u)):h>0&&64&h&&f&&e.dynamicChildren?($(e.dynamicChildren,f,n,i,s,o,a),(null!=t.key||i&&t===i.subTree)&&rB(e,t,!0)):z(e,t,n,p,i,s,o,a,u)},B=(e,t,n,r,i,l,s,o,a)=>{t.slotScopeIds=o,null==e?512&t.shapeFlag?i.ctx.activate(t,n,r,s,a):U(t,n,r,i,l,s,a):H(e,t,a)},U=(e,t,n,r,i,l,s)=>{let o=e.component=function(e,t,n){let r=e.type,i=(t?t.appContext:e.appContext)||iN,l={uid:iw++,vnode:e,type:r,parent:t,appContext:i,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new eS(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(i.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:function e(t,n,r=!1){let i=r?rN:n.propsCache,l=i.get(t);if(l)return l;let s=t.props,o={},a=[],c=!1;if(!P(t)){let i=t=>{c=!0;let[r,i]=e(t,n,!0);T(o,r),i&&a.push(...i)};!r&&n.mixins.length&&n.mixins.forEach(i),t.extends&&i(t.extends),t.mixins&&t.mixins.forEach(i)}if(!s&&!c)return L(t)&&i.set(t,_),_;if(E(s))for(let e=0;e{let r=e(t,n,!0);r&&(a=!0,T(o,r))};!r&&n.mixins.length&&n.mixins.forEach(i),t.extends&&i(t.extends),t.mixins&&t.mixins.forEach(i)}return s||a?(E(s)?s.forEach(e=>o[e]=null):T(o,s),L(t)&&i.set(t,o),o):(L(t)&&i.set(t,null),null)}(r,i),emit:null,emitted:null,propsDefaults:b,inheritAttrs:r.inheritAttrs,ctx:b,data:b,props:b,attrs:b,slots:b,refs:b,setupState:b,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return l.ctx={_:l},l.root=t?t.root:l,l.emit=rJ.bind(null,l),e.ce&&e.ce(l),l}(e,r,i);if(nB(e)&&(o.ctx.renderer=ec),function(e,t=!1,n=!1){t&&u(t);let{props:r,children:i}=e.vnode,l=iO(e);!function(e,t,n,r=!1){let i={},l=rx();for(let n in e.propsDefaults=Object.create(null),rk(e,t,i,l),e.propsOptions[0])n in i||(i[n]=void 0);n?e.props=r?i:tf(i):e.type.props?e.props=i:e.props=l,e.attrs=l}(e,r,l,t),((e,t,n)=>{let r=e.slots=rx();if(32&e.vnode.shapeFlag){let e=t.__;e&&Y(r,"__",e,!0);let i=t._;i?(rP(r,t,n),n&&Y(r,"_",i,!0)):rR(t,r)}else t&&rO(e,t)})(e,i,n||t),l&&function(e,t){let n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,rn);let{setup:r}=n;if(r){eM();let n=e.setupContext=r.length>1?iF(e):null,i=iI(e),l=tH(r,e,0,[e.props,n]),s=D(l);if(e$(),i(),(s||e.sp)&&!nF(e)&&nN(e),s){if(l.then(iR,iR),t)return l.then(n=>{iM(e,n,t)}).catch(t=>{tW(t,e,0)});e.asyncDep=l}else iM(e,l,t)}else iL(e,t)}(e,t),t&&u(!1)}(o,!1,s),o.asyncDep){if(i&&i.registerDep(o,q,s),!e.el){let r=o.subTree=iv(ie);k(null,r,t,n),e.placeholder=r.el}}else q(o,e,t,n,i,l,s)},H=(e,t,n)=>{let r=t.component=e.component;if(function(e,t,n){let{props:r,children:i,component:l}=e,{props:s,children:o,patchFlag:a}=t,c=l.emitsOptions;if(t.dirs||t.transition)return!0;if(!n||!(a>=0))return(!!i||!!o)&&(!o||!o.$stable)||r!==s&&(r?!s||rY(r,s,c):!!s);if(1024&a)return!0;if(16&a)return r?rY(r,s,c):!!s;if(8&a){let e=t.dynamicProps;for(let t=0;t{let a=()=>{if(e.isMounted){let t,{next:n,bu:r,u:i,parent:c,vnode:u}=e;{let t=function e(t){let n=t.subTree.component;if(n)if(n.asyncDep&&!n.asyncResolved)return n;else return e(n)}(e);if(t){n&&(n.el=u.el,W(e,n,o)),t.asyncDep.then(()=>{e.isUnmounted||a()});return}}let d=n;rF(e,!1),n?(n.el=u.el,W(e,n,o)):n=u,r&&Z(r),(t=n.props&&n.props.onVnodeBeforeUpdate)&&iT(t,c,n,u),rF(e,!0);let p=rX(e),h=e.subTree;e.subTree=p,x(h,p,f(h.el),es(h),e,l,s),n.el=p.el,null===d&&r0(e,p.el),i&&rM(i,l),(t=n.props&&n.props.onVnodeUpdated)&&rM(()=>iT(t,c,n,u),l)}else{let o,{el:a,props:c}=t,{bm:u,m:d,parent:p,root:h,type:f}=e,m=nF(t);if(rF(e,!1),u&&Z(u),!m&&(o=c&&c.onVnodeBeforeMount)&&iT(o,p,t),rF(e,!0),a&&i){let t=()=>{e.subTree=rX(e),i(a,e.subTree,e,l,null)};m&&f.__asyncHydrate?f.__asyncHydrate(a,e,t):t()}else{h.ce&&!1!==h.ce._def.shadowRoot&&h.ce._injectChildStyle(f);let i=e.subTree=rX(e);x(null,i,n,r,e,l,s),t.el=i.el}if(d&&rM(d,l),!m&&(o=c&&c.onVnodeMounted)){let e=t;rM(()=>iT(o,p,e),l)}(256&t.shapeFlag||p&&nF(p.vnode)&&256&p.vnode.shapeFlag)&&e.a&&rM(e.a,l),e.isMounted=!0,t=n=r=null}};e.scope.on();let c=e.effect=new eC(a);e.scope.off();let u=e.update=c.run.bind(c),d=e.job=c.runIfDirty.bind(c);d.i=e,d.id=e.uid,c.scheduler=()=>t0(d),rF(e,!0),u()},W=(e,t,n)=>{t.component=e;let r=e.vnode.props;e.vnode=t,e.next=null,function(e,t,n,r){let{props:i,attrs:l,vnode:{patchFlag:s}}=e,o=tS(i),[a]=e.propsOptions,c=!1;if((r||s>0)&&!(16&s)){if(8&s){let n=e.vnode.dynamicProps;for(let r=0;r{let{vnode:r,slots:i}=e,l=!0,s=b;if(32&r.shapeFlag){let e=t._;e?n&&1===e?l=!1:rP(i,t,n):(l=!t.$stable,rR(t,i)),s=t}else t&&(rO(e,t),s={default:1});if(l)for(let e in i)rA(e)||null!=s[e]||delete i[e]})(e,t.children,n),eM(),t3(e),e$()},z=(e,t,n,r,i,l,s,o,a=!1)=>{let c=e&&e.children,u=e?e.shapeFlag:0,d=t.children,{patchFlag:p,shapeFlag:f}=t;if(p>0){if(128&p)return void X(c,d,n,r,i,l,s,o,a);else if(256&p)return void G(c,d,n,r,i,l,s,o,a)}8&f?(16&u&&el(c,i,l),d!==c&&h(n,d)):16&u?16&f?X(c,d,n,r,i,l,s,o,a):el(c,i,l,!0):(8&u&&h(n,""),16&f&&O(d,n,r,i,l,s,o,a))},G=(e,t,n,r,i,l,s,o,a)=>{let c;e=e||_,t=t||_;let u=e.length,d=t.length,p=Math.min(u,d);for(c=0;cd?el(e,i,l,!0,!1,p):O(t,n,r,i,l,s,o,a,p)},X=(e,t,n,r,i,l,s,o,a)=>{let c=0,u=t.length,d=e.length-1,p=u-1;for(;c<=d&&c<=p;){let r=e[c],u=t[c]=a?ix(t[c]):iS(t[c]);if(ip(r,u))x(r,u,n,null,i,l,s,o,a);else break;c++}for(;c<=d&&c<=p;){let r=e[d],c=t[p]=a?ix(t[p]):iS(t[p]);if(ip(r,c))x(r,c,n,null,i,l,s,o,a);else break;d--,p--}if(c>d){if(c<=p){let e=p+1,d=ep)for(;c<=d;)ee(e[c],i,l,!0),c++;else{let h,f=c,m=c,g=new Map;for(c=m;c<=p;c++){let e=t[c]=a?ix(t[c]):iS(t[c]);null!=e.key&&g.set(e.key,c)}let y=0,b=p-m+1,S=!1,C=0,k=Array(b);for(c=0;c=b){ee(u,i,l,!0);continue}if(null!=u.key)r=g.get(u.key);else for(h=m;h<=p;h++)if(0===k[h-m]&&ip(u,t[h])){r=h;break}void 0===r?ee(u,i,l,!0):(k[r-m]=c+1,r>=C?C=r:S=!0,x(u,t[r],n,null,i,l,s,o,a),y++)}let T=S?function(e){let t,n,r,i,l,s=e.slice(),o=[0],a=e.length;for(t=0;t>1]]0&&(s[t]=o[r-1]),o[r]=t)}}for(r=o.length,i=o[r-1];r-- >0;)o[r]=i,i=s[i];return o}(k):_;for(h=T.length-1,c=b-1;c>=0;c--){let e=m+c,d=t[e],p=t[e+1],f=e+1{let{el:o,type:a,transition:c,children:u,shapeFlag:d}=e;if(6&d)return void Q(e.component.subTree,t,n,r);if(128&d)return void e.suspense.move(t,n,r);if(64&d)return void a.move(e,t,n,ec);if(a===r9){l(o,t,n);for(let e=0;e{let i;for(;e&&e!==t;)i=m(e),l(e,n,r),e=i;l(t,n,r)})(e,t,n);if(2!==r&&1&d&&c)if(0===r)c.beforeEnter(o),l(o,t,n),rM(()=>c.enter(o),i);else{let{leave:r,delayLeave:i,afterLeave:a}=c,u=()=>{e.ctx.isUnmounted?s(o):l(o,t,n)},d=()=>{r(o,()=>{u(),a&&a()})};i?i(o,u,d):d()}else l(o,t,n)},ee=(e,t,n,r=!1,i=!1)=>{let l,{type:s,props:o,ref:a,children:c,dynamicChildren:u,shapeFlag:d,patchFlag:p,dirs:h,cacheIndex:f}=e;if(-2===p&&(i=!1),null!=a&&(eM(),nw(a,null,n,e,!0),e$()),null!=f&&(t.renderCache[f]=void 0),256&d)return void t.ctx.deactivate(e);let m=1&d&&h,g=!nF(e);if(g&&(l=o&&o.onVnodeBeforeUnmount)&&iT(l,t,e),6&d)ei(e.component,n,r);else{if(128&d)return void e.suspense.unmount(n,r);m&&ne(e,null,t,"beforeUnmount"),64&d?e.type.remove(e,t,n,ec,r):u&&!u.hasOnce&&(s!==r9||p>0&&64&p)?el(u,t,n,!1,!0):(s===r9&&384&p||!i&&16&d)&&el(c,t,n),r&&et(e)}(g&&(l=o&&o.onVnodeUnmounted)||m)&&rM(()=>{l&&iT(l,t,e),m&&ne(e,null,t,"unmounted")},n)},et=e=>{let{type:t,el:n,anchor:r,transition:i}=e;if(t===r9)return void er(n,r);if(t===it)return void(({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=m(e),s(e),e=n;s(t)})(e);let l=()=>{s(n),i&&!i.persisted&&i.afterLeave&&i.afterLeave()};if(1&e.shapeFlag&&i&&!i.persisted){let{leave:t,delayLeave:r}=i,s=()=>t(n,l);r?r(e.el,l,s):s()}else l()},er=(e,t)=>{let n;for(;e!==t;)n=m(e),s(e),e=n;s(t)},ei=(e,t,n)=>{let{bum:r,scope:i,job:l,subTree:s,um:o,m:a,a:c,parent:u,slots:{__:d}}=e;rU(a),rU(c),r&&Z(r),u&&E(d)&&d.forEach(e=>{u.renderCache[e]=void 0}),i.stop(),l&&(l.flags|=8,ee(s,e,t,n)),o&&rM(o,t),rM(()=>{e.isUnmounted=!0},t),t&&t.pendingBranch&&!t.isUnmounted&&e.asyncDep&&!e.asyncResolved&&e.suspenseId===t.pendingId&&(t.deps--,0===t.deps&&t.resolve())},el=(e,t,n,r=!1,i=!1,l=0)=>{for(let s=l;s{if(6&e.shapeFlag)return es(e.component.subTree);if(128&e.shapeFlag)return e.suspense.next();let t=m(e.anchor||e.el),n=t&&t[nt];return n?m(n):t},eo=!1,ea=(e,t,n)=>{null==e?t._vnode&&ee(t._vnode,null,null,!0):x(t._vnode||null,e,t,null,null,null,n),t._vnode=e,eo||(eo=!0,t3(),t6(),eo=!1)},ec={p:x,um:ee,m:Q,r:et,mt:U,mc:O,pc:z,pbc:$,n:es,o:e};return t&&([r,i]=t(ec)),{render:ea,hydrate:r,createApp:(n=r,function(e,t=null){P(e)||(e=T({},e)),null==t||L(t)||(t=null);let r=rg(),i=new WeakSet,l=[],s=!1,o=r.app={_uid:rv++,_component:e,_props:t,_container:null,_context:r,_instance:null,version:iq,get config(){return r.config},set config(v){},use:(e,...t)=>(i.has(e)||(e&&P(e.install)?(i.add(e),e.install(o,...t)):P(e)&&(i.add(e),e(o,...t))),o),mixin:e=>(r.mixins.includes(e)||r.mixins.push(e),o),component:(e,t)=>t?(r.components[e]=t,o):r.components[e],directive:(e,t)=>t?(r.directives[e]=t,o):r.directives[e],mount(i,l,a){if(!s){let c=o._ceVNode||iv(e,t);return c.appContext=r,!0===a?a="svg":!1===a&&(a=void 0),l&&n?n(c,i):ea(c,i,a),s=!0,o._container=i,i.__vue_app__=o,iV(c.component)}},onUnmount(e){l.push(e)},unmount(){s&&(tq(l,o._instance,16),ea(null,o._container),delete o._container.__vue_app__)},provide:(e,t)=>(r.provides[e]=t,o),runWithContext(e){let t=ry;ry=o;try{return e()}finally{ry=t}}};return o})}}function rD({type:e,props:t},n){return"svg"===n&&"foreignObject"===e||"mathml"===n&&"annotation-xml"===e&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function rF({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function rV(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function rB(e,t,n=!1){let r=e.children,i=t.children;if(E(r)&&E(i))for(let e=0;etq(e,c,t,n);let u=!1;return"post"===s?a.scheduler=e=>{rM(e,c&&c.suspense)}:"sync"!==s&&(u=!0,a.scheduler=(e,t)=>{t?e():t0(e)}),a.augmentJob=e=>{t&&(e.flags|=4),u&&(e.flags|=2,c&&(e.id=c.uid,e.i=c))},function(e,t,n=b){let r,i,s,o,{immediate:a,deep:c,once:u,scheduler:d,augmentJob:p,call:h}=n,f=e=>c?e:tb(e)||!1===c||0===c?tj(e,1):tj(e),g=!1,y=!1;if(tT(e)?(i=()=>e.value,g=tb(e)):tv(e)?(i=()=>f(e),g=!0):E(e)?(y=!0,g=e.some(e=>tv(e)||tb(e)),i=()=>e.map(e=>tT(e)?e.value:tv(e)?f(e):P(e)?h?h(e,2):e():void 0)):i=P(e)?t?h?()=>h(e,2):e:()=>{if(s){eM();try{s()}finally{e$()}}let t=m;m=r;try{return h?h(e,3,[o]):e(o)}finally{m=t}}:S,t&&c){let e=i,t=!0===c?1/0:c;i=()=>tj(e(),t)}let _=l,x=()=>{r.stop(),_&&_.active&&N(_.effects,r)};if(u&&t){let e=t;t=(...t)=>{e(...t),x()}}let C=y?Array(e.length).fill(tV):tV,k=e=>{if(1&r.flags&&(r.dirty||e))if(t){let e=r.run();if(c||g||(y?e.some((e,t)=>Q(e,C[t])):Q(e,C))){s&&s();let n=m;m=r;try{let n=[e,C===tV?void 0:y&&C[0]===tV?[]:C,o];C=e,h?h(t,3,n):t(...n)}finally{m=n}}}else r.run()};return p&&p(k),(r=new eC(i)).scheduler=d?()=>d(k,!1):k,o=e=>tU(e,!1,r),s=r.onStop=()=>{let e=tB.get(r);if(e){if(h)h(e,4);else for(let t of e)t();tB.delete(r)}},t?a?k(!0):C=r.run():d?d(k.bind(null,!0),!0):r.run(),x.pause=r.pause.bind(r),x.resume=r.resume.bind(r),x.stop=x,x}(e,t,a)}function rW(e,t,n){let r,i=this.proxy,l=M(e)?e.includes(".")?rK(i,e):()=>i[e]:e.bind(i,i);P(t)?r=t:(r=t.handler,n=t);let s=iI(this),o=rq(l,r.bind(i),n);return s(),o}function rK(e,t){let n=t.split(".");return()=>{let t=e;for(let e=0;e"modelValue"===t||"model-value"===t?e.modelModifiers:e[`${t}Modifiers`]||e[`${K(t)}Modifiers`]||e[`${J(t)}Modifiers`];function rJ(e,t,...n){let r;if(e.isUnmounted)return;let i=e.vnode.props||b,l=n,s=t.startsWith("update:"),o=s&&rz(i,t.slice(7));o&&(o.trim&&(l=n.map(e=>M(e)?e.trim():e)),o.number&&(l=n.map(ee)));let a=i[r=X(t)]||i[r=X(K(t))];!a&&s&&(a=i[r=X(J(t))]),a&&tq(a,e,6,l);let c=i[r+"Once"];if(c){if(e.emitted){if(e.emitted[r])return}else e.emitted={};e.emitted[r]=!0,tq(c,e,6,l)}}function rG(e,t){return!!e&&!!C(t)&&(A(e,(t=t.slice(2).replace(/Once$/,""))[0].toLowerCase()+t.slice(1))||A(e,J(t))||A(e,t))}function rX(e){let t,n,{type:r,vnode:i,proxy:l,withProxy:s,propsOptions:[o],slots:a,attrs:c,emit:u,render:d,renderCache:p,props:h,data:f,setupState:m,ctx:g,inheritAttrs:y}=e,b=t9(e);try{if(4&i.shapeFlag){let e=s||l;t=iS(d.call(e,e,p,h,m,f,g)),n=c}else t=iS(r.length>1?r(h,{attrs:c,slots:a,emit:u}):r(h,null)),n=r.props?c:rQ(c)}catch(n){ir.length=0,tW(n,e,1),t=iv(ie)}let _=t;if(n&&!1!==y){let e=Object.keys(n),{shapeFlag:t}=_;e.length&&7&t&&(o&&e.some(k)&&(n=rZ(n,o)),_=ib(_,n,!1,!0))}return i.dirs&&((_=ib(_,null,!1,!0)).dirs=_.dirs?_.dirs.concat(i.dirs):i.dirs),i.transition&&nC(_,i.transition),t=_,t9(b),t}let rQ=e=>{let t;for(let n in e)("class"===n||"style"===n||C(n))&&((t||(t={}))[n]=e[n]);return t},rZ=(e,t)=>{let n={};for(let r in e)k(r)&&r.slice(9)in t||(n[r]=e[r]);return n};function rY(e,t,n){let r=Object.keys(t);if(r.length!==Object.keys(e).length)return!0;for(let i=0;ie.__isSuspense,r2=0;function r3(e,t){let n=e.props&&e.props[t];P(n)&&n()}function r6(e,t,n,r,i,l,s,o,a,c,u=!1){let d,{p:p,m:h,um:f,n:m,o:{parentNode:g,remove:y}}=c,b=function(e){let t=e.props&&e.props.suspensible;return null!=t&&!1!==t}(e);b&&t&&t.pendingBranch&&(d=t.pendingId,t.deps++);let _=e.props?et(e.props.timeout):void 0,S=l,x={vnode:e,parent:t,parentComponent:n,namespace:s,container:r,hiddenContainer:i,deps:0,pendingId:r2++,timeout:"number"==typeof _?_:-1,activeBranch:null,pendingBranch:null,isInFallback:!u,isHydrating:u,isUnmounted:!1,effects:[],resolve(e=!1,n=!1){let{vnode:r,activeBranch:i,pendingBranch:s,pendingId:o,effects:a,parentComponent:c,container:u}=x,p=!1;x.isHydrating?x.isHydrating=!1:!e&&((p=i&&s.transition&&"out-in"===s.transition.mode)&&(i.transition.afterLeave=()=>{o===x.pendingId&&(h(s,u,l===S?m(i):l,0),t2(a))}),i&&(g(i.el)===u&&(l=m(i)),f(i,c,x,!0)),p||h(s,u,l,0)),r5(x,s),x.pendingBranch=null,x.isInFallback=!1;let y=x.parent,_=!1;for(;y;){if(y.pendingBranch){y.effects.push(...a),_=!0;break}y=y.parent}_||p||t2(a),x.effects=[],b&&t&&t.pendingBranch&&d===t.pendingId&&(t.deps--,0!==t.deps||n||t.resolve()),r3(r,"onResolve")},fallback(e){if(!x.pendingBranch)return;let{vnode:t,activeBranch:n,parentComponent:r,container:i,namespace:l}=x;r3(t,"onFallback");let s=m(n),c=()=>{x.isInFallback&&(p(null,e,i,s,r,null,l,o,a),r5(x,e))},u=e.transition&&"out-in"===e.transition.mode;u&&(n.transition.afterLeave=c),x.isInFallback=!0,f(n,r,null,!0),u||c()},move(e,t,n){x.activeBranch&&h(x.activeBranch,e,t,n),x.container=e},next:()=>x.activeBranch&&m(x.activeBranch),registerDep(e,t,n){let r=!!x.pendingBranch;r&&x.deps++;let i=e.vnode.el;e.asyncDep.catch(t=>{tW(t,e,0)}).then(l=>{if(e.isUnmounted||x.isUnmounted||x.pendingId!==e.suspenseId)return;e.asyncResolved=!0;let{vnode:o}=e;iM(e,l,!1),i&&(o.el=i);let a=!i&&e.subTree.el;t(e,o,g(i||e.subTree.el),i?null:m(e.subTree),x,s,n),a&&y(a),r0(e,o.el),r&&0==--x.deps&&x.resolve()})},unmount(e,t){x.isUnmounted=!0,x.activeBranch&&f(x.activeBranch,n,e,t),x.pendingBranch&&f(x.pendingBranch,n,e,t)}};return x}function r4(e){let t;if(P(e)){let n=io&&e._c;n&&(e._d=!1,il()),e=e(),n&&(e._d=!0,t=ii,is())}return E(e)&&(e=function(e,t=!0){let n;for(let t=0;tt!==e)),e}function r8(e,t){t&&t.pendingBranch?E(e)?t.effects.push(...e):t.effects.push(e):t2(e)}function r5(e,t){e.activeBranch=t;let{vnode:n,parentComponent:r}=e,i=t.el;for(;!i&&t.component;)i=(t=t.component.subTree).el;n.el=i,r&&r.subTree===n&&(r.vnode.el=i,r0(r,i))}let r9=Symbol.for("v-fgt"),r7=Symbol.for("v-txt"),ie=Symbol.for("v-cmt"),it=Symbol.for("v-stc"),ir=[],ii=null;function il(e=!1){ir.push(ii=e?null:[])}function is(){ir.pop(),ii=ir[ir.length-1]||null}let io=1;function ia(e,t=!1){io+=e,e<0&&ii&&t&&(ii.hasOnce=!0)}function ic(e){return e.dynamicChildren=io>0?ii||_:null,is(),io>0&&ii&&ii.push(e),e}function iu(e,t,n,r,i){return ic(iv(e,t,n,r,i,!0))}function id(e){return!!e&&!0===e.__v_isVNode}function ip(e,t){return e.type===t.type&&e.key===t.key}let ih=({key:e})=>null!=e?e:null,im=({ref:e,ref_key:t,ref_for:n})=>("number"==typeof e&&(e=""+e),null!=e?M(e)||tT(e)||P(e)?{i:t8,r:e,k:t,f:!!n}:e:null);function ig(e,t=null,n=null,r=0,i=null,l=+(e!==r9),s=!1,o=!1){let a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ih(t),ref:t&&im(t),scopeId:t5,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:l,patchFlag:r,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:t8};return o?(iC(a,n),128&l&&e.normalize(a)):n&&(a.shapeFlag|=M(n)?8:16),io>0&&!s&&ii&&(a.patchFlag>0||6&l)&&32!==a.patchFlag&&ii.push(a),a}let iv=function(e,t=null,n=null,r=0,i=null,l=!1){var s;if(e&&e!==n8||(e=ie),id(e)){let r=ib(e,t,!0);return n&&iC(r,n),io>0&&!l&&ii&&(6&r.shapeFlag?ii[ii.indexOf(e)]=r:ii.push(r)),r.patchFlag=-2,r}if(P(s=e)&&"__vccOpts"in s&&(e=e.__vccOpts),t){let{class:e,style:n}=t=iy(t);e&&!M(e)&&(t.class=ec(e)),L(n)&&(t_(n)&&!E(n)&&(n=T({},n)),t.style=ei(n))}let o=M(e)?1:r1(e)?128:e.__isTeleport?64:L(e)?4:2*!!P(e);return ig(e,t,n,r,i,o,l,!0)};function iy(e){return e?t_(e)||rC(e)?T({},e):e:null}function ib(e,t,n=!1,r=!1){let{props:i,ref:l,patchFlag:s,children:o,transition:a}=e,c=t?ik(i||{},t):i,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&ih(c),ref:t&&t.ref?n&&l?E(l)?l.concat(im(t)):[l,im(t)]:im(t):l,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==r9?-1===s?16:16|s:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&ib(e.ssContent),ssFallback:e.ssFallback&&ib(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&r&&nC(u,a.clone(u)),u}function i_(e=" ",t=0){return iv(r7,null,e,t)}function iS(e){return null==e||"boolean"==typeof e?iv(ie):E(e)?iv(r9,null,e.slice()):id(e)?ix(e):iv(r7,null,String(e))}function ix(e){return null===e.el&&-1!==e.patchFlag||e.memo?e:ib(e)}function iC(e,t){let n=0,{shapeFlag:r}=e;if(null==t)t=null;else if(E(t))n=16;else if("object"==typeof t)if(65&r){let n=t.default;n&&(n._c&&(n._d=!1),iC(e,n()),n._c&&(n._d=!0));return}else{n=32;let r=t._;r||rC(t)?3===r&&t8&&(1===t8.slots._?t._=1:(t._=2,e.patchFlag|=1024)):t._ctx=t8}else P(t)?(t={default:t,_ctx:t8},n=32):(t=String(t),64&r?(n=16,t=[i_(t)]):n=8);e.children=t,e.shapeFlag|=n}function ik(...e){let t={};for(let n=0;niA||t8;c=e=>{iA=e},u=e=>{iP=e};let iI=e=>{let t=iA;return c(e),e.scope.on(),()=>{e.scope.off(),c(t)}},iR=()=>{iA&&iA.scope.off(),c(null)};function iO(e){return 4&e.vnode.shapeFlag}let iP=!1;function iM(e,t,n){P(t)?e.render=t:L(t)&&(e.setupState=tO(t)),iL(e,n)}function i$(e){d=e,p=e=>{e.render._rc&&(e.withProxy=new Proxy(e.ctx,rr))}}function iL(e,t,n){let r=e.type;if(!e.render){if(!t&&d&&!r.render){let t=r.template||ra(e).template;if(t){let{isCustomElement:n,compilerOptions:i}=e.appContext.config,{delimiters:l,compilerOptions:s}=r,o=T(T({isCustomElement:n,delimiters:l},i),s);r.render=d(t,o)}}e.render=r.render||S,p&&p(e)}{let t=iI(e);eM();try{!function(e){let t=ra(e),n=e.proxy,r=e.ctx;rs=!1,t.beforeCreate&&ro(t.beforeCreate,e,"bc");let{data:i,computed:l,methods:s,watch:o,provide:a,inject:c,created:u,beforeMount:d,mounted:p,beforeUpdate:h,updated:f,activated:m,deactivated:g,beforeDestroy:y,beforeUnmount:b,destroyed:_,unmounted:x,render:C,renderTracked:k,renderTriggered:T,errorCaptured:N,serverPrefetch:w,expose:A,inheritAttrs:I,components:R,directives:O,filters:$}=t;if(c&&function(e,t,n=S){for(let n in E(e)&&(e=rp(e)),e){let r,i=e[n];tT(r=L(i)?"default"in i?r_(i.from||n,i.default,!0):r_(i.from||n):r_(i))?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>r.value,set:e=>r.value=e}):t[n]=r}}(c,r,null),s)for(let e in s){let t=s[e];P(t)&&(r[e]=t.bind(n))}if(i){let t=i.call(n,n);L(t)&&(e.data=th(t))}if(rs=!0,l)for(let e in l){let t=l[e],i=P(t)?t.bind(n,n):P(t.get)?t.get.bind(n,n):S,s=iU({get:i,set:!P(t)&&P(t.set)?t.set.bind(n):S});Object.defineProperty(r,e,{enumerable:!0,configurable:!0,get:()=>s.value,set:e=>s.value=e})}if(o)for(let e in o)!function e(t,n,r,i){var l,s,o,a,c,u,d;let p=i.includes(".")?rK(r,i):()=>r[i];if(M(t)){let e=n[t];P(e)&&(l=p,s=e,rq(l,s,void 0))}else if(P(t)){o=p,a=t.bind(r),rq(o,a,void 0)}else if(L(t))if(E(t))t.forEach(t=>e(t,n,r,i));else{let e=P(t.handler)?t.handler.bind(r):n[t.handler];P(e)&&(c=p,u=e,d=t,rq(c,u,d))}}(o[e],r,n,e);if(a){let e=P(a)?a.call(n):a;Reflect.ownKeys(e).forEach(t=>{rb(t,e[t])})}function D(e,t){E(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(u&&ro(u,e,"c"),D(nG,d),D(nX,p),D(nQ,h),D(nZ,f),D(nj,m),D(nH,g),D(n6,N),D(n3,k),D(n2,T),D(nY,b),D(n0,x),D(n1,w),E(A))if(A.length){let t=e.exposed||(e.exposed={});A.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t,enumerable:!0})})}else e.exposed||(e.exposed={});C&&e.render===S&&(e.render=C),null!=I&&(e.inheritAttrs=I),R&&(e.components=R),O&&(e.directives=O)}(e)}finally{e$(),t()}}}let iD={get:(e,t)=>(eq(e,"get",""),e[t])};function iF(e){return{attrs:new Proxy(e.attrs,iD),slots:e.slots,emit:e.emit,expose:t=>{e.exposed=t||{}}}}function iV(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(tO(tx(e.exposed)),{get:(t,n)=>n in t?t[n]:n in re?re[n](e):void 0,has:(e,t)=>t in e||t in re})):e.proxy}function iB(e,t=!0){return P(e)?e.displayName||e.name:e.name||t&&e.__name}let iU=(e,t)=>(function(e,t,n=!1){let r,i;return P(e)?r=e:(r=e.get,i=e.set),new tF(r,i,n)})(e,0,iP);function ij(e,t,n){let r=arguments.length;return 2!==r?(r>3?n=Array.prototype.slice.call(arguments,2):3===r&&id(n)&&(n=[n]),iv(e,t,n)):!L(t)||E(t)?iv(e,null,t):id(t)?iv(e,null,[t]):iv(e,t)}function iH(e,t){let n=e.memo;if(n.length!=t.length)return!1;for(let e=0;e0&&ii&&ii.push(e),!0}let iq="3.5.18",iW="undefined"!=typeof window&&window.trustedTypes;if(iW)try{g=iW.createPolicy("vue",{createHTML:e=>e})}catch(e){}let iK=g?e=>g.createHTML(e):e=>e,iz="undefined"!=typeof document?document:null,iJ=iz&&iz.createElement("template"),iG="transition",iX="animation",iQ=Symbol("_vtc"),iZ={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},iY=T({},nm,iZ),i0=((t=(e,{slots:t})=>ij(ny,i3(e),t)).displayName="Transition",t.props=iY,t),i1=(e,t=[])=>{E(e)?e.forEach(e=>e(...t)):e&&e(...t)},i2=e=>!!e&&(E(e)?e.some(e=>e.length>1):e.length>1);function i3(e){let t={};for(let n in e)n in iZ||(t[n]=e[n]);if(!1===e.css)return t;let{name:n="v",type:r,duration:i,enterFromClass:l=`${n}-enter-from`,enterActiveClass:s=`${n}-enter-active`,enterToClass:o=`${n}-enter-to`,appearFromClass:a=l,appearActiveClass:c=s,appearToClass:u=o,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:h=`${n}-leave-to`}=e,f=function(e){if(null==e)return null;{if(L(e))return[function(e){return et(e)}(e.enter),function(e){return et(e)}(e.leave)];let t=function(e){return et(e)}(e);return[t,t]}}(i),m=f&&f[0],g=f&&f[1],{onBeforeEnter:y,onEnter:b,onEnterCancelled:_,onLeave:S,onLeaveCancelled:x,onBeforeAppear:C=y,onAppear:k=b,onAppearCancelled:N=_}=t,w=(e,t,n,r)=>{e._enterCancelled=r,i4(e,t?u:o),i4(e,t?c:s),n&&n()},A=(e,t)=>{e._isLeaving=!1,i4(e,d),i4(e,h),i4(e,p),t&&t()},E=e=>(t,n)=>{let i=e?k:b,s=()=>w(t,e,n);i1(i,[t,s]),i8(()=>{i4(t,e?a:l),i6(t,e?u:o),i2(i)||i9(t,r,m,s)})};return T(t,{onBeforeEnter(e){i1(y,[e]),i6(e,l),i6(e,s)},onBeforeAppear(e){i1(C,[e]),i6(e,a),i6(e,c)},onEnter:E(!1),onAppear:E(!0),onLeave(e,t){e._isLeaving=!0;let n=()=>A(e,t);i6(e,d),e._enterCancelled?(i6(e,p),ln()):(ln(),i6(e,p)),i8(()=>{e._isLeaving&&(i4(e,d),i6(e,h),i2(S)||i9(e,r,g,n))}),i1(S,[e,n])},onEnterCancelled(e){w(e,!1,void 0,!0),i1(_,[e])},onAppearCancelled(e){w(e,!0,void 0,!0),i1(N,[e])},onLeaveCancelled(e){A(e),i1(x,[e])}})}function i6(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.add(t)),(e[iQ]||(e[iQ]=new Set)).add(t)}function i4(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.remove(t));let n=e[iQ];n&&(n.delete(t),n.size||(e[iQ]=void 0))}function i8(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let i5=0;function i9(e,t,n,r){let i=e._endId=++i5,l=()=>{i===e._endId&&r()};if(null!=n)return setTimeout(l,n);let{type:s,timeout:o,propCount:a}=i7(e,t);if(!s)return r();let c=s+"end",u=0,d=()=>{e.removeEventListener(c,p),l()},p=t=>{t.target===e&&++u>=a&&d()};setTimeout(()=>{u(n[e]||"").split(", "),i=r(`${iG}Delay`),l=r(`${iG}Duration`),s=le(i,l),o=r(`${iX}Delay`),a=r(`${iX}Duration`),c=le(o,a),u=null,d=0,p=0;t===iG?s>0&&(u=iG,d=s,p=l.length):t===iX?c>0&&(u=iX,d=c,p=a.length):p=(u=(d=Math.max(s,c))>0?s>c?iG:iX:null)?u===iG?l.length:a.length:0;let h=u===iG&&/\b(transform|all)(,|$)/.test(r(`${iG}Property`).toString());return{type:u,timeout:d,propCount:p,hasTransform:h}}function le(e,t){for(;e.lengthlt(t)+lt(e[n])))}function lt(e){return"auto"===e?0:1e3*Number(e.slice(0,-1).replace(",","."))}function ln(){return document.body.offsetHeight}let lr=Symbol("_vod"),li=Symbol("_vsh");function ll(e,t){e.style.display=t?e[lr]:"none",e[li]=!t}let ls=Symbol("");function lo(e,t){if(1===e.nodeType){let r=e.style,i="";for(let e in t){var n;let l=null==(n=t[e])?"initial":"string"==typeof n?""===n?" ":n:String(n);r.setProperty(`--${e}`,l),i+=`--${e}: ${l};`}r[ls]=i}}let la=/(^|;)\s*display\s*:/,lc=/\s*!important$/;function lu(e,t,n){if(E(n))n.forEach(n=>lu(e,t,n));else if(null==n&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{let r=function(e,t){let n=lp[t];if(n)return n;let r=K(t);if("filter"!==r&&r in e)return lp[t]=r;r=G(r);for(let n=0;n111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)>96&&123>e.charCodeAt(2),lx={};function lC(e,t,n){let r=nT(e,t);B(r)&&T(r,t);class i extends lT{constructor(e){super(r,e,n)}}return i.def=r,i}let lk="undefined"!=typeof HTMLElement?HTMLElement:class{};class lT extends lk{constructor(e,t={},n=l1){super(),this._def=e,this._props=t,this._createApp=n,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._ob=null,this.shadowRoot&&n!==l1?this._root=this.shadowRoot:!1!==e.shadowRoot?(this.attachShadow({mode:"open"}),this._root=this.shadowRoot):this._root=this}connectedCallback(){if(!this.isConnected)return;this.shadowRoot||this._resolved||this._parseSlots(),this._connected=!0;let e=this;for(;e=e&&(e.parentNode||e.host);)if(e instanceof lT){this._parent=e;break}this._instance||(this._resolved?this._mount(this._def):e&&e._pendingResolve?this._pendingResolve=e._pendingResolve.then(()=>{this._pendingResolve=void 0,this._resolveDef()}):this._resolveDef())}_setParent(e=this._parent){e&&(this._instance.parent=e._instance,this._inheritParentContext(e))}_inheritParentContext(e=this._parent){e&&this._app&&Object.setPrototypeOf(this._app._context.provides,e._instance.provides)}disconnectedCallback(){this._connected=!1,tY(()=>{this._connected||(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null)})}_resolveDef(){if(this._pendingResolve)return;for(let e=0;e{for(let t of e)this._setAttr(t.attributeName)}),this._ob.observe(this,{attributes:!0});let e=(e,t=!1)=>{let n;this._resolved=!0,this._pendingResolve=void 0;let{props:r,styles:i}=e;if(r&&!E(r))for(let e in r){let t=r[e];(t===Number||t&&t.type===Number)&&(e in this._props&&(this._props[e]=et(this._props[e])),(n||(n=Object.create(null)))[K(e)]=!0)}this._numberProps=n,this._resolveProps(e),this.shadowRoot&&this._applyStyles(i),this._mount(e)},t=this._def.__asyncLoader;t?this._pendingResolve=t().then(t=>{t.configureApp=this._def.configureApp,e(this._def=t,!0)}):e(this._def)}_mount(e){this._app=this._createApp(e),this._inheritParentContext(),e.configureApp&&e.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);let t=this._instance&&this._instance.exposed;if(t)for(let e in t)A(this,e)||Object.defineProperty(this,e,{get:()=>tI(t[e])})}_resolveProps(e){let{props:t}=e,n=E(t)?t:Object.keys(t||{});for(let e of Object.keys(this))"_"!==e[0]&&n.includes(e)&&this._setProp(e,this[e]);for(let e of n.map(K))Object.defineProperty(this,e,{get(){return this._getProp(e)},set(t){this._setProp(e,t,!0,!0)}})}_setAttr(e){if(e.startsWith("data-v-"))return;let t=this.hasAttribute(e),n=t?this.getAttribute(e):lx,r=K(e);t&&this._numberProps&&this._numberProps[r]&&(n=et(n)),this._setProp(r,n,!1,!0)}_getProp(e){return this._props[e]}_setProp(e,t,n=!0,r=!1){if(t!==this._props[e]&&(t===lx?delete this._props[e]:(this._props[e]=t,"key"===e&&this._app&&(this._app._ceVNode.key=t)),r&&this._instance&&this._update(),n)){let n=this._ob;n&&n.disconnect(),!0===t?this.setAttribute(J(e),""):"string"==typeof t||"number"==typeof t?this.setAttribute(J(e),t+""):t||this.removeAttribute(J(e)),n&&n.observe(this,{attributes:!0})}}_update(){let e=this._createVNode();this._app&&(e.appContext=this._app._context),l0(e,this._root)}_createVNode(){let e={};this.shadowRoot||(e.onVnodeMounted=e.onVnodeUpdated=this._renderSlots.bind(this));let t=iv(this._def,T(e,this._props));return this._instance||(t.ce=e=>{this._instance=e,e.ce=this,e.isCE=!0;let t=(e,t)=>{this.dispatchEvent(new CustomEvent(e,B(t[0])?T({detail:t},t[0]):{detail:t}))};e.emit=(e,...n)=>{t(e,n),J(e)!==e&&t(J(e),n)},this._setParent()}),t}_applyStyles(e,t){if(!e)return;if(t){if(t===this._def||this._styleChildren.has(t))return;this._styleChildren.add(t)}let n=this._nonce;for(let t=e.length-1;t>=0;t--){let r=document.createElement("style");n&&r.setAttribute("nonce",n),r.textContent=e[t],this.shadowRoot.prepend(r)}}_parseSlots(){let e,t=this._slots={};for(;e=this.firstChild;){let n=1===e.nodeType&&e.getAttribute("slot")||"default";(t[n]||(t[n]=[])).push(e),this.removeChild(e)}}_renderSlots(){let e=(this._teleportTarget||this).querySelectorAll("slot"),t=this._instance.type.__scopeId;for(let n=0;n{if(!n.length)return;let t=e.moveClass||`${e.name||"v"}-move`;if(!function(e,t,n){let r=e.cloneNode(),i=e[iQ];i&&i.forEach(e=>{e.split(/\s+/).forEach(e=>e&&r.classList.remove(e))}),n.split(/\s+/).forEach(e=>e&&r.classList.add(e)),r.style.display="none";let l=1===t.nodeType?t:t.parentNode;l.appendChild(r);let{hasTransform:s}=i7(r);return l.removeChild(r),s}(n[0].el,i.vnode.el,t)){n=[];return}n.forEach(lO),n.forEach(lP);let r=n.filter(lM);ln(),r.forEach(e=>{let n=e.el,r=n.style;i6(n,t),r.transform=r.webkitTransform=r.transitionDuration="";let i=n[lE]=e=>{(!e||e.target===n)&&(!e||/transform$/.test(e.propertyName))&&(n.removeEventListener("transitionend",i),n[lE]=null,i4(n,t))};n.addEventListener("transitionend",i)}),n=[]}),()=>{let s=tS(e),o=i3(s),a=s.tag||r9;if(n=[],r)for(let e=0;e{let t=e.props["onUpdate:modelValue"]||!1;return E(t)?e=>Z(t,e):t};function lL(e){e.target.composing=!0}function lD(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}let lF=Symbol("_assign"),lV={created(e,{modifiers:{lazy:t,trim:n,number:r}},i){e[lF]=l$(i);let l=r||i.props&&"number"===i.props.type;lg(e,t?"change":"input",t=>{if(t.target.composing)return;let r=e.value;n&&(r=r.trim()),l&&(r=ee(r)),e[lF](r)}),n&&lg(e,"change",()=>{e.value=e.value.trim()}),t||(lg(e,"compositionstart",lL),lg(e,"compositionend",lD),lg(e,"change",lD))},mounted(e,{value:t}){e.value=null==t?"":t},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:i,number:l}},s){if(e[lF]=l$(s),e.composing)return;let o=(l||"number"===e.type)&&!/^0\d/.test(e.value)?ee(e.value):e.value,a=null==t?"":t;if(o!==a){if(document.activeElement===e&&"range"!==e.type&&(r&&t===n||i&&e.value.trim()===a))return;e.value=a}}},lB={deep:!0,created(e,t,n){e[lF]=l$(n),lg(e,"change",()=>{let t=e._modelValue,n=lW(e),r=e.checked,i=e[lF];if(E(t)){let e=eg(t,n),l=-1!==e;if(r&&!l)i(t.concat(n));else if(!r&&l){let n=[...t];n.splice(e,1),i(n)}}else if(R(t)){let e=new Set(t);r?e.add(n):e.delete(n),i(e)}else i(lK(e,r))})},mounted:lU,beforeUpdate(e,t,n){e[lF]=l$(n),lU(e,t,n)}};function lU(e,{value:t,oldValue:n},r){let i;if(e._modelValue=t,E(t))i=eg(t,r.props.value)>-1;else if(R(t))i=t.has(r.props.value);else{if(t===n)return;i=em(t,lK(e,!0))}e.checked!==i&&(e.checked=i)}let lj={created(e,{value:t},n){e.checked=em(t,n.props.value),e[lF]=l$(n),lg(e,"change",()=>{e[lF](lW(e))})},beforeUpdate(e,{value:t,oldValue:n},r){e[lF]=l$(r),t!==n&&(e.checked=em(t,r.props.value))}},lH={deep:!0,created(e,{value:t,modifiers:{number:n}},r){let i=R(t);lg(e,"change",()=>{let t=Array.prototype.filter.call(e.options,e=>e.selected).map(e=>n?ee(lW(e)):lW(e));e[lF](e.multiple?i?new Set(t):t:t[0]),e._assigning=!0,tY(()=>{e._assigning=!1})}),e[lF]=l$(r)},mounted(e,{value:t}){lq(e,t)},beforeUpdate(e,t,n){e[lF]=l$(n)},updated(e,{value:t}){e._assigning||lq(e,t)}};function lq(e,t){let n=e.multiple,r=E(t);if(!n||r||R(t)){for(let i=0,l=e.options.length;iString(e)===String(s)):l.selected=eg(t,s)>-1}else l.selected=t.has(s);else if(em(lW(l),t)){e.selectedIndex!==i&&(e.selectedIndex=i);return}}n||-1===e.selectedIndex||(e.selectedIndex=-1)}}function lW(e){return"_value"in e?e._value:e.value}function lK(e,t){let n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}function lz(e,t,n,r,i){let l=function(e,t){switch(e){case"SELECT":return lH;case"TEXTAREA":return lV;default:switch(t){case"checkbox":return lB;case"radio":return lj;default:return lV}}}(e.tagName,n.props&&n.props.type)[i];l&&l(e,t,n,r)}let lJ=["ctrl","shift","alt","meta"],lG={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&0!==e.button,middle:e=>"button"in e&&1!==e.button,right:e=>"button"in e&&2!==e.button,exact:(e,t)=>lJ.some(n=>e[`${n}Key`]&&!t.includes(n))},lX={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},lQ=T({patchProp:(e,t,n,r,i,l)=>{let s="svg"===i;if("class"===t){var o=r;let t=e[iQ];t&&(o=(o?[o,...t]:[...t]).join(" ")),null==o?e.removeAttribute("class"):s?e.setAttribute("class",o):e.className=o}else"style"===t?function(e,t,n){let r=e.style,i=M(n),l=!1;if(n&&!i){if(t)if(M(t))for(let e of t.split(";")){let t=e.slice(0,e.indexOf(":")).trim();null==n[t]&&lu(r,t,"")}else for(let e in t)null==n[e]&&lu(r,e,"");for(let e in n)"display"===e&&(l=!0),lu(r,e,n[e])}else if(i){if(t!==n){let e=r[ls];e&&(n+=";"+e),r.cssText=n,l=la.test(n)}}else t&&e.removeAttribute("style");lr in e&&(e[lr]=l?r.display:"",e[li]&&(r.display="none"))}(e,n,r):C(t)?k(t)||function(e,t,n,r,i=null){let l=e[lv]||(e[lv]={}),s=l[t];if(r&&s)s.value=r;else{let[n,o]=function(e){let t;if(ly.test(e)){let n;for(t={};n=e.match(ly);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[":"===e[2]?e.slice(3):J(e.slice(2)),t]}(t);if(r)lg(e,n,l[t]=function(e,t){let n=e=>{if(e._vts){if(e._vts<=n.attached)return}else e._vts=Date.now();tq(function(e,t){if(!E(t))return t;{let n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(e=>t=>!t._stopped&&e&&e(t))}}(e,n.value),t,5,[e])};return n.value=e,n.attached=lb||(l_.then(()=>lb=0),lb=Date.now()),n}(r,i),o);else s&&(e.removeEventListener(n,s,o),l[t]=void 0)}}(e,t,0,r,l):("."===t[0]?(t=t.slice(1),0):"^"===t[0]?(t=t.slice(1),1):!function(e,t,n,r){if(r)return!!("innerHTML"===t||"textContent"===t||t in e&&lS(t)&&P(n));if("spellcheck"===t||"draggable"===t||"translate"===t||"autocorrect"===t||"form"===t||"list"===t&&"INPUT"===e.tagName||"type"===t&&"TEXTAREA"===e.tagName)return!1;if("width"===t||"height"===t){let t=e.tagName;if("IMG"===t||"VIDEO"===t||"CANVAS"===t||"SOURCE"===t)return!1}return!(lS(t)&&M(n))&&t in e}(e,t,r,s))?e._isVueCE&&(/[A-Z]/.test(t)||!M(r))?lm(e,K(t),r,l,t):("true-value"===t?e._trueValue=r:"false-value"===t&&(e._falseValue=r),lf(e,t,r,s)):(lm(e,t,r),e.tagName.includes("-")||"value"!==t&&"checked"!==t&&"selected"!==t||lf(e,t,r,s,l,"value"!==t))}},{insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{let i="svg"===t?iz.createElementNS("http://www.w3.org/2000/svg",e):"mathml"===t?iz.createElementNS("http://www.w3.org/1998/Math/MathML",e):n?iz.createElement(e,{is:n}):iz.createElement(e);return"select"===e&&r&&null!=r.multiple&&i.setAttribute("multiple",r.multiple),i},createText:e=>iz.createTextNode(e),createComment:e=>iz.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>iz.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,i,l){let s=n?n.previousSibling:t.lastChild;if(i&&(i===l||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),i!==l&&(i=i.nextSibling););else{iJ.innerHTML=iK("svg"===r?`${e}`:"mathml"===r?`${e}`:e);let i=iJ.content;if("svg"===r||"mathml"===r){let e=i.firstChild;for(;e.firstChild;)i.appendChild(e.firstChild);i.removeChild(e)}t.insertBefore(i,n)}return[s?s.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}}),lZ=!1;function lY(){return h=lZ?h:r$(lQ),lZ=!0,h}let l0=(...e)=>{(h||(h=rL(lQ))).render(...e)},l1=(...e)=>{let t=(h||(h=rL(lQ))).createApp(...e),{mount:n}=t;return t.mount=e=>{let r=l6(e);if(!r)return;let i=t._component;P(i)||i.render||i.template||(i.template=r.innerHTML),1===r.nodeType&&(r.textContent="");let l=n(r,!1,l3(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),l},t},l2=(...e)=>{let t=lY().createApp(...e),{mount:n}=t;return t.mount=e=>{let t=l6(e);if(t)return n(t,!0,l3(t))},t};function l3(e){return e instanceof SVGElement?"svg":"function"==typeof MathMLElement&&e instanceof MathMLElement?"mathml":void 0}function l6(e){return M(e)?document.querySelector(e):e}let l4=Symbol(""),l8=Symbol(""),l5=Symbol(""),l9=Symbol(""),l7=Symbol(""),se=Symbol(""),st=Symbol(""),sn=Symbol(""),sr=Symbol(""),si=Symbol(""),sl=Symbol(""),ss=Symbol(""),so=Symbol(""),sa=Symbol(""),sc=Symbol(""),su=Symbol(""),sd=Symbol(""),sp=Symbol(""),sh=Symbol(""),sf=Symbol(""),sm=Symbol(""),sg=Symbol(""),sv=Symbol(""),sy=Symbol(""),sb=Symbol(""),s_=Symbol(""),sS=Symbol(""),sx=Symbol(""),sC=Symbol(""),sk=Symbol(""),sT=Symbol(""),sN=Symbol(""),sw=Symbol(""),sA=Symbol(""),sE=Symbol(""),sI=Symbol(""),sR=Symbol(""),sO=Symbol(""),sP=Symbol(""),sM={[l4]:"Fragment",[l8]:"Teleport",[l5]:"Suspense",[l9]:"KeepAlive",[l7]:"BaseTransition",[se]:"openBlock",[st]:"createBlock",[sn]:"createElementBlock",[sr]:"createVNode",[si]:"createElementVNode",[sl]:"createCommentVNode",[ss]:"createTextVNode",[so]:"createStaticVNode",[sa]:"resolveComponent",[sc]:"resolveDynamicComponent",[su]:"resolveDirective",[sd]:"resolveFilter",[sp]:"withDirectives",[sh]:"renderList",[sf]:"renderSlot",[sm]:"createSlots",[sg]:"toDisplayString",[sv]:"mergeProps",[sy]:"normalizeClass",[sb]:"normalizeStyle",[s_]:"normalizeProps",[sS]:"guardReactiveProps",[sx]:"toHandlers",[sC]:"camelize",[sk]:"capitalize",[sT]:"toHandlerKey",[sN]:"setBlockTracking",[sw]:"pushScopeId",[sA]:"popScopeId",[sE]:"withCtx",[sI]:"unref",[sR]:"isRef",[sO]:"withMemo",[sP]:"isMemoSame"},s$={start:{line:1,column:1,offset:0},end:{line:1,column:1,offset:0},source:""};function sL(e,t,n,r,i,l,s,o=!1,a=!1,c=!1,u=s$){var d,p,h,f;return e&&(o?(e.helper(se),e.helper((d=e.inSSR,p=c,d||p?st:sn))):e.helper((h=e.inSSR,f=c,h||f?sr:si)),s&&e.helper(sp)),{type:13,tag:t,props:n,children:r,patchFlag:i,dynamicProps:l,directives:s,isBlock:o,disableTracking:a,isComponent:c,loc:u}}function sD(e,t=s$){return{type:17,loc:t,elements:e}}function sF(e,t=s$){return{type:15,loc:t,properties:e}}function sV(e,t){return{type:16,loc:s$,key:M(e)?sB(e,!0):e,value:t}}function sB(e,t=!1,n=s$,r=0){return{type:4,loc:n,content:e,isStatic:t,constType:t?3:r}}function sU(e,t=s$){return{type:8,loc:t,children:e}}function sj(e,t=[],n=s$){return{type:14,loc:n,callee:e,arguments:t}}function sH(e,t,n=!1,r=!1,i=s$){return{type:18,params:e,returns:t,newline:n,isSlot:r,loc:i}}function sq(e,t,n,r=!0){return{type:19,test:e,consequent:t,alternate:n,newline:r,loc:s$}}function sW(e,{helper:t,removeHelper:n,inSSR:r}){if(!e.isBlock){var i,l;e.isBlock=!0,n((i=e.isComponent,r||i?sr:si)),t(se),t((l=e.isComponent,r||l?st:sn))}}let sK=new Uint8Array([123,123]),sz=new Uint8Array([125,125]);function sJ(e){return e>=97&&e<=122||e>=65&&e<=90}function sG(e){return 32===e||10===e||9===e||12===e||13===e}function sX(e){return 47===e||62===e||sG(e)}function sQ(e){let t=new Uint8Array(e.length);for(let n=0;n4===e.type&&e.isStatic;function s3(e){switch(e){case"Teleport":case"teleport":return l8;case"Suspense":case"suspense":return l5;case"KeepAlive":case"keep-alive":return l9;case"BaseTransition":case"base-transition":return l7}}let s6=/^$|^\d|[^\$\w\xA0-\uFFFF]/,s4=e=>!s6.test(e),s8=/[A-Za-z_$\xA0-\uFFFF]/,s5=/[\.\?\w$\xA0-\uFFFF]/,s9=/\s+[.[]\s*|\s*[.[]\s+/g,s7=e=>4===e.type?e.content:e.loc.source,oe=e=>{let t=s7(e).trim().replace(s9,e=>e.trim()),n=0,r=[],i=0,l=0,s=null;for(let e=0;e|^\s*(async\s+)?function(?:\s+[\w$]+)?\s*\(/;function on(e,t,n=!1){for(let r=0;r4===e.key.type&&e.key.content===r)}return n}function oh(e,t){return`_${t}_${e.replace(/[^\w]/g,(t,n)=>"-"===t?"_":e.charCodeAt(n).toString())}`}let of=/([\s\S]*?)\s+(?:in|of)\s+(\S[\s\S]*)/,om={parseMode:"base",ns:0,delimiters:["{{","}}"],getNamespace:()=>0,isVoidTag:x,isPreTag:x,isIgnoreNewlineTag:x,isCustomElement:x,onError:sY,onWarn:s0,comments:!1,prefixIdentifiers:!1},og=om,ov=null,oy="",ob=null,o_=null,oS="",ox=-1,oC=-1,ok=0,oT=!1,oN=null,ow=[],oA=new class{constructor(e,t){this.stack=e,this.cbs=t,this.state=1,this.buffer="",this.sectionStart=0,this.index=0,this.entityStart=0,this.baseState=1,this.inRCDATA=!1,this.inXML=!1,this.inVPre=!1,this.newlines=[],this.mode=0,this.delimiterOpen=sK,this.delimiterClose=sz,this.delimiterIndex=-1,this.currentSequence=void 0,this.sequenceIndex=0}get inSFCRoot(){return 2===this.mode&&0===this.stack.length}reset(){this.state=1,this.mode=0,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=1,this.inRCDATA=!1,this.currentSequence=void 0,this.newlines.length=0,this.delimiterOpen=sK,this.delimiterClose=sz}getPos(e){let t=1,n=e+1;for(let r=this.newlines.length-1;r>=0;r--){let i=this.newlines[r];if(e>i){t=r+2,n=e-i;break}}return{column:n,line:t,offset:e}}peek(){return this.buffer.charCodeAt(this.index+1)}stateText(e){60===e?(this.index>this.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=5,this.sectionStart=this.index):this.inVPre||e!==this.delimiterOpen[0]||(this.state=2,this.delimiterIndex=0,this.stateInterpolationOpen(e))}stateInterpolationOpen(e){if(e===this.delimiterOpen[this.delimiterIndex])if(this.delimiterIndex===this.delimiterOpen.length-1){let e=this.index+1-this.delimiterOpen.length;e>this.sectionStart&&this.cbs.ontext(this.sectionStart,e),this.state=3,this.sectionStart=e}else this.delimiterIndex++;else this.inRCDATA?(this.state=32,this.stateInRCDATA(e)):(this.state=1,this.stateText(e))}stateInterpolation(e){e===this.delimiterClose[0]&&(this.state=4,this.delimiterIndex=0,this.stateInterpolationClose(e))}stateInterpolationClose(e){e===this.delimiterClose[this.delimiterIndex]?this.delimiterIndex===this.delimiterClose.length-1?(this.cbs.oninterpolation(this.sectionStart,this.index+1),this.inRCDATA?this.state=32:this.state=1,this.sectionStart=this.index+1):this.delimiterIndex++:(this.state=3,this.stateInterpolation(e))}stateSpecialStartSequence(e){let t=this.sequenceIndex===this.currentSequence.length;if(t?sX(e):(32|e)===this.currentSequence[this.sequenceIndex]){if(!t)return void this.sequenceIndex++}else this.inRCDATA=!1;this.sequenceIndex=0,this.state=6,this.stateInTagName(e)}stateInRCDATA(e){if(this.sequenceIndex===this.currentSequence.length){if(62===e||sG(e)){let t=this.index-this.currentSequence.length;if(this.sectionStart=e||(28===this.state?this.currentSequence===sZ.CdataEnd?this.cbs.oncdata(this.sectionStart,e):this.cbs.oncomment(this.sectionStart,e):6===this.state||11===this.state||18===this.state||17===this.state||12===this.state||13===this.state||14===this.state||15===this.state||16===this.state||20===this.state||19===this.state||21===this.state||9===this.state||this.cbs.ontext(this.sectionStart,e))}emitCodePoint(e,t){}}(ow,{onerr:oq,ontext(e,t){oP(oR(e,t),e,t)},ontextentity(e,t,n){oP(e,t,n)},oninterpolation(e,t){if(oT)return oP(oR(e,t),e,t);let n=e+oA.delimiterOpen.length,r=t-oA.delimiterClose.length;for(;sG(oy.charCodeAt(n));)n++;for(;sG(oy.charCodeAt(r-1));)r--;let i=oR(n,r);i.includes("&")&&(i=og.decodeEntities(i,!1)),oB({type:5,content:oH(i,!1,oU(n,r)),loc:oU(e,t)})},onopentagname(e,t){let n=oR(e,t);ob={type:1,tag:n,ns:og.getNamespace(n,ow[0],og.ns),tagType:0,props:[],children:[],loc:oU(e-1,t),codegenNode:void 0}},onopentagend(e){oO(e)},onclosetag(e,t){let n=oR(e,t);if(!og.isVoidTag(n)){let r=!1;for(let e=0;e0&&ow[0].loc.start.offset;for(let n=0;n<=e;n++)oM(ow.shift(),t,n(7===e.type?e.rawName:e.name)===t)},onattribend(e,t){ob&&o_&&(oj(o_.loc,t),0!==e&&(oS.includes("&")&&(oS=og.decodeEntities(oS,!0)),6===o_.type?("class"===o_.name&&(oS=oV(oS).trim()),o_.value={type:2,content:oS,loc:1===e?oU(ox,oC):oU(ox-1,oC+1)},oA.inSFCRoot&&"template"===ob.tag&&"lang"===o_.name&&oS&&"html"!==oS&&oA.enterRCDATA(sQ("{let i=t.start.offset+n,l=i+e.length;return oH(e,!1,oU(i,l),0,+!!r)},o={source:s(l.trim(),n.indexOf(l,i.length)),value:void 0,key:void 0,index:void 0,finalized:!1},a=i.trim().replace(oI,"").trim(),c=i.indexOf(a),u=a.match(oE);if(u){let e;a=a.replace(oE,"").trim();let t=u[1].trim();if(t&&(e=n.indexOf(t,c+a.length),o.key=s(t,e,!0)),u[2]){let r=u[2].trim();r&&(o.index=s(r,n.indexOf(r,o.key?e+t.length:c+a.length),!0))}}return a&&(o.value=s(a,c,!0)),o}(o_.exp)))),(7!==o_.type||"pre"!==o_.name)&&ob.props.push(o_)),oS="",ox=oC=-1},oncomment(e,t){og.comments&&oB({type:3,content:oR(e,t),loc:oU(e-4,t+3)})},onend(){let e=oy.length;for(let t=0;t64&&n<91||s3(e)||og.isBuiltInComponent&&og.isBuiltInComponent(e)||og.isNativeTag&&!og.isNativeTag(e))return!0;for(let e=0;e=0;)n--;return n}let oL=new Set(["if","else","else-if","for","slot"]),oD=/\r\n/g;function oF(e){let t="preserve"!==og.whitespace,n=!1;for(let r=0;r3!==e.type);return 1!==t.length||1!==t[0].type||oc(t[0])?null:t[0]}function oK(e,t){let{constantCache:n}=t;switch(e.type){case 1:if(0!==e.tagType)return 0;let r=n.get(e);if(void 0!==r)return r;let i=e.codegenNode;if(13!==i.type||i.isBlock&&"svg"!==e.tag&&"foreignObject"!==e.tag&&"math"!==e.tag)return 0;if(void 0!==i.patchFlag)return n.set(e,0),0;{let r=3,c=oJ(e,t);if(0===c)return n.set(e,0),0;c1)for(let i=0;i{l--};for(;lt===e:t=>e.test(t);return(e,r)=>{if(1===e.type){let{props:i}=e;if(3===e.tagType&&i.some(oo))return;let l=[];for(let s=0;s`${sM[e]}: _${sM[e]}`;function o0(e,t,{helper:n,push:r,newline:i,isTS:l}){let s=n("component"===t?sa:su);for(let n=0;n3;t.push("["),n&&t.indent(),o2(e,t,n),n&&t.deindent(),t.push("]")}function o2(e,t,n=!1,r=!0){let{push:i,newline:l}=t;for(let s=0;se||"null")}([a,c,u,i,p]),t),l(")"),f&&l(")"),h&&(l(", "),o3(h,t),l(")"))}(e,t);break;case 14:var m=e,g=t;let{push:y,helper:b,pure:_}=g,S=M(m.callee)?m.callee:b(m.callee);_&&y(oZ),y(S+"(",-2,m),o2(m.arguments,g),y(")");break;case 15:!function(e,t){let{push:n,indent:r,deindent:i,newline:l}=t,{properties:s}=e;if(!s.length)return n("{}",-2,e);let o=s.length>1;n(o?"{":"{ "),o&&r();for(let e=0;e "),(R||I)&&(k("{"),T()),A?(R&&k("return "),E(A)?o1(A,C):o3(A,C)):I&&o3(I,C),(R||I)&&(N(),k("}")),O&&k(")");break;case 19:var P=e,L=t;let{test:D,consequent:F,alternate:V,newline:B}=P,{push:U,indent:j,deindent:H,newline:q}=L;if(4===D.type){let e=!s4(D.content);e&&U("("),o6(D,L),e&&U(")")}else U("("),o3(D,L),U(")");B&&j(),L.indentLevel++,B||U(" "),U("? "),o3(F,L),L.indentLevel--,B&&q(),B||U(" "),U(": ");let W=19===V.type;!W&&L.indentLevel++,o3(V,L),!W&&L.indentLevel--,B&&H(!0);break;case 20:var K=e,z=t;let{push:J,helper:G,indent:X,deindent:Q,newline:Z}=z,{needPauseTracking:Y,needArraySpread:ee}=K;ee&&J("[...("),J(`_cache[${K.index}] || (`),Y&&(X(),J(`${G(sN)}(-1`),K.inVOnce&&J(", true"),J("),"),Z(),J("(")),J(`_cache[${K.index}] = `),o3(K.value,z),Y&&(J(`).cacheIndex = ${K.index},`),Z(),J(`${G(sN)}(1),`),Z(),J(`_cache[${K.index}]`),Q()),J(")"),ee&&J(")]");break;case 21:o2(e.body,t,!0,!1)}}function o6(e,t){let{content:n,isStatic:r}=e;t.push(r?JSON.stringify(n):n,-3,e)}function o4(e,t){for(let n=0;n(function(e,t,n,r){if("else"!==t.name&&(!t.exp||!t.exp.content.trim())){let r=t.exp?t.exp.loc:e.loc;n.onError(s1(28,t.loc)),t.exp=sB("true",!1,r)}if("if"===t.name){var i;let l=o5(e,t),s={type:9,loc:oU((i=e.loc).start.offset,i.end.offset),branches:[l]};if(n.replaceNode(s),r)return r(s,l,!0)}else{let i=n.parent.children,l=i.indexOf(e);for(;l-- >=-1;){let s=i[l];if(s&&3===s.type||s&&2===s.type&&!s.content.trim().length){n.removeNode(s);continue}if(s&&9===s.type){"else-if"===t.name&&void 0===s.branches[s.branches.length-1].condition&&n.onError(s1(30,e.loc)),n.removeNode();let i=o5(e,t);s.branches.push(i);let l=r&&r(s,i,!1);oX(i,n),l&&l(),n.currentNode=null}else n.onError(s1(30,e.loc));break}}})(e,t,n,(e,t,r)=>{let i=n.parent.children,l=i.indexOf(e),s=0;for(;l-- >=0;){let e=i[l];e&&9===e.type&&(s+=e.branches.length)}return()=>{r?e.codegenNode=o9(t,s,n):function(e){for(;;)if(19===e.type)if(19!==e.alternate.type)return e;else e=e.alternate;else 20===e.type&&(e=e.value)}(e.codegenNode).alternate=o9(t,s+e.branches.length-1,n)}}));function o5(e,t){let n=3===e.tagType;return{type:10,loc:e.loc,condition:"else"===t.name?void 0:t.exp,children:n&&!on(e,"for")?e.children:[e],userKey:or(e,"key"),isTemplateIf:n}}function o9(e,t,n){return e.condition?sq(e.condition,o7(e,t,n),sj(n.helper(sl),['""',"true"])):o7(e,t,n)}function o7(e,t,n){let{helper:r}=n,i=sV("key",sB(`${t}`,!1,s$,2)),{children:l}=e,s=l[0];if(1!==l.length||1!==s.type)if(1!==l.length||11!==s.type)return sL(n,r(l4),sF([i]),l,64,void 0,void 0,!0,!1,!1,e.loc);else{let e=s.codegenNode;return od(e,i,n),e}{let e=s.codegenNode,t=14===e.type&&e.callee===sO?e.arguments[1].returns:e;return 13===t.type&&sW(t,n),od(t,i,n),e}}let ae=(e,t,n)=>{let{modifiers:r,loc:i}=e,l=e.arg,{exp:s}=e;if(s&&4===s.type&&!s.content.trim()&&(s=void 0),!s){if(4!==l.type||!l.isStatic)return n.onError(s1(52,l.loc)),{props:[sV(l,sB("",!0,i))]};at(e),s=e.exp}return 4!==l.type?(l.children.unshift("("),l.children.push(') || ""')):l.isStatic||(l.content=l.content?`${l.content} || ""`:'""'),r.some(e=>"camel"===e.content)&&(4===l.type?l.isStatic?l.content=K(l.content):l.content=`${n.helperString(sC)}(${l.content})`:(l.children.unshift(`${n.helperString(sC)}(`),l.children.push(")"))),!n.inSSR&&(r.some(e=>"prop"===e.content)&&an(l,"."),r.some(e=>"attr"===e.content)&&an(l,"^")),{props:[sV(l,s)]}},at=(e,t)=>{let n=e.arg;e.exp=sB(K(n.content),!1,n.loc)},an=(e,t)=>{4===e.type?e.isStatic?e.content=t+e.content:e.content=`\`${t}\${${e.content}}\``:(e.children.unshift(`'${t}' + (`),e.children.push(")"))},ar=oQ("for",(e,t,n)=>{let{helper:r,removeHelper:i}=n;return function(e,t,n,r){if(!t.exp)return void n.onError(s1(31,t.loc));let i=t.forParseResult;if(!i)return void n.onError(s1(32,t.loc));ai(i);let{addIdentifiers:l,removeIdentifiers:s,scopes:o}=n,{source:a,value:c,key:u,index:d}=i,p={type:11,loc:t.loc,source:a,valueAlias:c,keyAlias:u,objectIndexAlias:d,parseResult:i,children:oa(e)?e.children:[e]};n.replaceNode(p),o.vFor++;let h=r&&r(p);return()=>{o.vFor--,h&&h()}}(e,t,n,t=>{let l=sj(r(sh),[t.source]),s=oa(e),o=on(e,"memo"),a=or(e,"key",!1,!0);a&&7===a.type&&!a.exp&&at(a);let c=a&&(6===a.type?a.value?sB(a.value.content,!0):void 0:a.exp),u=a&&c?sV("key",c):null,d=4===t.source.type&&t.source.constType>0,p=d?64:a?128:256;return t.codegenNode=sL(n,r(l4),void 0,l,p,void 0,void 0,!0,!d,!1,e.loc),()=>{let a,{children:p}=t,h=1!==p.length||1!==p[0].type,f=oc(e)?e:s&&1===e.children.length&&oc(e.children[0])?e.children[0]:null;if(f)a=f.codegenNode,s&&u&&od(a,u,n);else if(h)a=sL(n,r(l4),u?sF([u]):void 0,e.children,64,void 0,void 0,!0,void 0,!1);else{var m,g,y,b,_,S,x,C;a=p[0].codegenNode,s&&u&&od(a,u,n),!d!==a.isBlock&&(a.isBlock?(i(se),i((m=n.inSSR,g=a.isComponent,m||g?st:sn))):i((y=n.inSSR,b=a.isComponent,y||b?sr:si))),(a.isBlock=!d,a.isBlock)?(r(se),r((_=n.inSSR,S=a.isComponent,_||S?st:sn))):r((x=n.inSSR,C=a.isComponent,x||C?sr:si))}if(o){let e=sH(al(t.parseResult,[sB("_cached")]));e.body={type:21,body:[sU(["const _memo = (",o.exp,")"]),sU(["if (_cached",...c?[" && _cached.key === ",c]:[],` && ${n.helperString(sP)}(_cached, _memo)) return _cached`]),sU(["const _item = ",a]),sB("_item.memo = _memo"),sB("return _item")],loc:s$},l.arguments.push(e,sB("_cache"),sB(String(n.cached.length))),n.cached.push(null)}else l.arguments.push(sH(al(t.parseResult),a,!0))}})});function ai(e,t){e.finalized||(e.finalized=!0)}function al({value:e,key:t,index:n},r=[]){var i=[e,t,n,...r];let l=i.length;for(;l--&&!i[l];);return i.slice(0,l+1).map((e,t)=>e||sB("_".repeat(t+1),!1))}let as=sB("undefined",!1),ao=(e,t)=>{if(1===e.type&&(1===e.tagType||3===e.tagType)){let n=on(e,"slot");if(n)return n.exp,t.scopes.vSlot++,()=>{t.scopes.vSlot--}}};function aa(e,t,n){let r=[sV("name",e),sV("fn",t)];return null!=n&&r.push(sV("key",sB(String(n),!0))),sF(r)}function ac(e){return 2!==e.type&&12!==e.type||(2===e.type?!!e.content.trim():ac(e.content))}let au=new WeakMap,ad=(e,t)=>function(){let n,r,i,l,s;if(1!==(e=t.currentNode).type||0!==e.tagType&&1!==e.tagType)return;let{tag:o,props:a}=e,c=1===e.tagType,u=c?function(e,t,n=!1){let{tag:r}=e,i=af(r),l=or(e,"is",!1,!0);if(l)if(i){let e;if(6===l.type?e=l.value&&sB(l.value.content,!0):(e=l.exp)||(e=sB("is",!1,l.arg.loc)),e)return sj(t.helper(sc),[e])}else 6===l.type&&l.value.content.startsWith("vue:")&&(r=l.value.content.slice(4));let s=s3(r)||t.isBuiltInComponent(r);return s?(n||t.helper(s),s):(t.helper(sa),t.components.add(r),oh(r,"component"))}(e,t):`"${o}"`,d=L(u)&&u.callee===sc,p=0,h=d||u===l8||u===l5||!c&&("svg"===o||"foreignObject"===o||"math"===o);if(a.length>0){let r=ap(e,t,void 0,c,d);n=r.props,p=r.patchFlag,l=r.dynamicPropNames;let i=r.directives;s=i&&i.length?sD(i.map(e=>(function(e,t){let n=[],r=au.get(e);r?n.push(t.helperString(r)):(t.helper(su),t.directives.add(e.name),n.push(oh(e.name,"directive")));let{loc:i}=e;if(e.exp&&n.push(e.exp),e.arg&&(e.exp||n.push("void 0"),n.push(e.arg)),Object.keys(e.modifiers).length){e.arg||(e.exp||n.push("void 0"),n.push("void 0"));let t=sB("true",!1,i);n.push(sF(e.modifiers.map(e=>sV(e,t)),i))}return sD(n,e.loc)})(e,t))):void 0,r.shouldUseBlock&&(h=!0)}if(e.children.length>0)if(u===l9&&(h=!0,p|=1024),c&&u!==l8&&u!==l9){let{slots:n,hasDynamicSlots:i}=function(e,t,n=(e,t,n,r)=>sH(e,n,!1,!0,n.length?n[0].loc:r)){t.helper(sE);let{children:r,loc:i}=e,l=[],s=[],o=t.scopes.vSlot>0||t.scopes.vFor>0,a=on(e,"slot",!0);if(a){let{arg:e,exp:t}=a;e&&!s2(e)&&(o=!0),l.push(sV(e||sB("default",!0),n(t,void 0,r,i)))}let c=!1,u=!1,d=[],p=new Set,h=0;for(let e=0;esV("default",n(e,void 0,t,i));c?d.length&&d.some(e=>ac(e))&&(u?t.onError(s1(39,d[0].loc)):l.push(e(void 0,d))):l.push(e(void 0,r))}let f=o?2:!function e(t){for(let n=0;n0,f=!1,m=0,g=!1,y=!1,b=!1,_=!1,S=!1,x=!1,k=[],T=e=>{u.length&&(d.push(sF(ah(u),a)),u=[]),e&&d.push(e)},N=()=>{t.scopes.vFor>0&&u.push(sV(sB("ref_for",!0),sB("true")))},w=({key:e,value:n})=>{if(s2(e)){let l=e.content,s=C(l);s&&(!r||i)&&"onclick"!==l.toLowerCase()&&"onUpdate:modelValue"!==l&&!j(l)&&(_=!0),s&&j(l)&&(x=!0),s&&14===n.type&&(n=n.arguments[0]),20===n.type||(4===n.type||8===n.type)&&oK(n,t)>0||("ref"===l?g=!0:"class"===l?y=!0:"style"===l?b=!0:"key"===l||k.includes(l)||k.push(l),r&&("class"===l||"style"===l)&&!k.includes(l)&&k.push(l))}else S=!0};for(let i=0;i"prop"===e.content)&&(m|=32);let x=t.directiveTransforms[n];if(x){let{props:n,needRuntime:r}=x(s,e,t);l||n.forEach(w),_&&i&&!s2(i)?T(sF(n,a)):u.push(...n),r&&(p.push(s),$(r)&&au.set(s,r))}else!H(n)&&(p.push(s),h&&(f=!0))}}if(d.length?(T(),s=d.length>1?sj(t.helper(sv),d,a):d[0]):u.length&&(s=sF(ah(u),a)),S?m|=16:(y&&!r&&(m|=2),b&&!r&&(m|=4),k.length&&(m|=8),_&&(m|=32)),!f&&(0===m||32===m)&&(g||x||p.length>0)&&(m|=512),!t.inSSR&&s)switch(s.type){case 15:let A=-1,E=-1,I=!1;for(let e=0;e{if(oc(e)){let{children:n,loc:r}=e,{slotName:i,slotProps:l}=function(e,t){let n,r='"default"',i=[];for(let t=0;t0){let{props:r,directives:l}=ap(e,t,i,!1,!1);n=r,l.length&&t.onError(s1(36,l[0].loc))}return{slotName:r,slotProps:n}}(e,t),s=[t.prefixIdentifiers?"_ctx.$slots":"$slots",i,"{}","undefined","true"],o=2;l&&(s[2]=l,o=3),n.length&&(s[3]=sH([],n,!1,!1,r),o=4),t.scopeId&&!t.slotted&&(o=5),s.splice(o),e.codegenNode=sj(t.helper(sf),s,r)}},ag=(e,t,n,r)=>{let i,{loc:l,modifiers:s,arg:o}=e;if(!e.exp&&!s.length,4===o.type)if(o.isStatic){let e=o.content;e.startsWith("vue:")&&(e=`vnode-${e.slice(4)}`),i=sB(0!==t.tagType||e.startsWith("vnode")||!/[A-Z]/.test(e)?X(K(e)):`on:${e}`,!0,o.loc)}else i=sU([`${n.helperString(sT)}(`,o,")"]);else(i=o).children.unshift(`${n.helperString(sT)}(`),i.children.push(")");let a=e.exp;a&&!a.content.trim()&&(a=void 0);let c=n.cacheHandlers&&!a&&!n.inVOnce;if(a){let e,t=oe(a),n=!(t||(e=a,ot.test(s7(e)))),r=a.content.includes(";");(n||c&&t)&&(a=sU([`${n?"$event":"(...args)"} => ${r?"{":"("}`,a,r?"}":")"]))}let u={props:[sV(i,a||sB("() => {}",!1,l))]};return r&&(u=r(u)),c&&(u.props[0].value=n.cache(u.props[0].value)),u.props.forEach(e=>e.key.isHandlerKey=!0),u},av=(e,t)=>{if(0===e.type||1===e.type||11===e.type||10===e.type)return()=>{let n,r=e.children,i=!1;for(let e=0;e7===e.type&&!t.directiveTransforms[e.name]))))for(let e=0;e{if(1===e.type&&on(e,"once",!0)&&!ay.has(e)&&!t.inVOnce&&!t.inSSR)return ay.add(e),t.inVOnce=!0,t.helper(sN),()=>{t.inVOnce=!1;let e=t.currentNode;e.codegenNode&&(e.codegenNode=t.cache(e.codegenNode,!0,!0))}},a_=(e,t,n)=>{let r,{exp:i,arg:l}=e;if(!i)return n.onError(s1(41,e.loc)),aS();let s=i.loc.source.trim(),o=4===i.type?i.content:s,a=n.bindingMetadata[s];if("props"===a||"props-aliased"===a)return i.loc,aS();if(!o.trim()||!oe(i))return n.onError(s1(42,i.loc)),aS();let c=l||sB("modelValue",!0),u=l?s2(l)?`onUpdate:${K(l.content)}`:sU(['"onUpdate:" + ',l]):"onUpdate:modelValue",d=n.isTS?"($event: any)":"$event";r=sU([`${d} => ((`,i,") = $event)"]);let p=[sV(c,e.exp),sV(u,r)];if(e.modifiers.length&&1===t.tagType){let t=e.modifiers.map(e=>e.content).map(e=>(s4(e)?e:JSON.stringify(e))+": true").join(", "),n=l?s2(l)?`${l.content}Modifiers`:sU([l,' + "Modifiers"']):"modelModifiers";p.push(sV(n,sB(`{ ${t} }`,!1,e.loc,2)))}return aS(p)};function aS(e=[]){return{props:e}}let ax=new WeakSet,aC=(e,t)=>{if(1===e.type){let n=on(e,"memo");if(!(!n||ax.has(e)))return ax.add(e),()=>{let r=e.codegenNode||t.currentNode.codegenNode;r&&13===r.type&&(1!==e.tagType&&sW(r,t),e.codegenNode=sj(t.helper(sO),[n.exp,sH(void 0,r),"_cache",String(t.cached.length)]),t.cached.push(null))}}},ak=Symbol(""),aT=Symbol(""),aN=Symbol(""),aw=Symbol(""),aA=Symbol(""),aE=Symbol(""),aI=Symbol(""),aR=Symbol(""),aO=Symbol(""),aP=Symbol("");Object.getOwnPropertySymbols(r={[ak]:"vModelRadio",[aT]:"vModelCheckbox",[aN]:"vModelText",[aw]:"vModelSelect",[aA]:"vModelDynamic",[aE]:"withModifiers",[aI]:"withKeys",[aR]:"vShow",[aO]:"Transition",[aP]:"TransitionGroup"}).forEach(e=>{sM[e]=r[e]});let aM={parseMode:"html",isVoidTag:eh,isNativeTag:e=>eu(e)||ed(e)||ep(e),isPreTag:e=>"pre"===e,isIgnoreNewlineTag:e=>"pre"===e||"textarea"===e,decodeEntities:function(e,t=!1){return(f||(f=document.createElement("div")),t)?(f.innerHTML=`
    `,f.children[0].getAttribute("foo")):(f.innerHTML=e,f.textContent)},isBuiltInComponent:e=>"Transition"===e||"transition"===e?aO:"TransitionGroup"===e||"transition-group"===e?aP:void 0,getNamespace(e,t,n){let r=t?t.ns:n;if(t&&2===r)if("annotation-xml"===t.tag){if("svg"===e)return 1;t.props.some(e=>6===e.type&&"encoding"===e.name&&null!=e.value&&("text/html"===e.value.content||"application/xhtml+xml"===e.value.content))&&(r=0)}else/^m(?:[ions]|text)$/.test(t.tag)&&"mglyph"!==e&&"malignmark"!==e&&(r=0);else t&&1===r&&("foreignObject"===t.tag||"desc"===t.tag||"title"===t.tag)&&(r=0);if(0===r){if("svg"===e)return 1;if("math"===e)return 2}return r}},a$=y("passive,once,capture"),aL=y("stop,prevent,self,ctrl,shift,alt,meta,exact,middle"),aD=y("left,right"),aF=y("onkeyup,onkeydown,onkeypress"),aV=(e,t)=>s2(e)&&"onclick"===e.content.toLowerCase()?sB(t,!0):4!==e.type?sU(["(",e,`) === "onClick" ? "${t}" : (`,e,")"]):e,aB=(e,t)=>{1===e.type&&0===e.tagType&&("script"===e.tag||"style"===e.tag)&&t.removeNode()},aU=[e=>{1===e.type&&e.props.forEach((t,n)=>{let r,i;6===t.type&&"style"===t.name&&t.value&&(e.props[n]={type:7,name:"bind",arg:sB("style",!0,t.loc),exp:(r=t.value.content,i=t.loc,sB(JSON.stringify(ea(r)),!1,i,3)),modifiers:[],loc:t.loc})})}],aj={cloak:()=>({props:[]}),html:(e,t,n)=>{let{exp:r,loc:i}=e;return r||n.onError(s1(53,i)),t.children.length&&(n.onError(s1(54,i)),t.children.length=0),{props:[sV(sB("innerHTML",!0,i),r||sB("",!0))]}},text:(e,t,n)=>{let{exp:r,loc:i}=e;return r||n.onError(s1(55,i)),t.children.length&&(n.onError(s1(56,i)),t.children.length=0),{props:[sV(sB("textContent",!0),r?oK(r,n)>0?r:sj(n.helperString(sg),[r],i):sB("",!0))]}},model:(e,t,n)=>{let r=a_(e,t,n);if(!r.props.length||1===t.tagType)return r;e.arg&&n.onError(s1(58,e.arg.loc));let{tag:i}=t,l=n.isCustomElement(i);if("input"===i||"textarea"===i||"select"===i||l){let s=aN,o=!1;if("input"===i||l){let r=or(t,"type");if(r){if(7===r.type)s=aA;else if(r.value)switch(r.value.content){case"radio":s=ak;break;case"checkbox":s=aT;break;case"file":o=!0,n.onError(s1(59,e.loc))}}else t.props.some(e=>7===e.type&&"bind"===e.name&&(!e.arg||4!==e.arg.type||!e.arg.isStatic))&&(s=aA)}else"select"===i&&(s=aw);o||(r.needRuntime=n.helper(s))}else n.onError(s1(57,e.loc));return r.props=r.props.filter(e=>4!==e.key.type||"modelValue"!==e.key.content),r},on:(e,t,n)=>ag(e,t,n,t=>{let{modifiers:r}=e;if(!r.length)return t;let{key:i,value:l}=t.props[0],{keyModifiers:s,nonKeyModifiers:o,eventOptionModifiers:a}=((e,t,n,r)=>{let i=[],l=[],s=[];for(let n=0;n{let{exp:r,loc:i}=e;return r||n.onError(s1(61,i)),{props:[],needRuntime:n.helper(aR)}}},aH=Object.create(null);function aq(e,t){if(!M(e))if(!e.nodeType)return S;else e=e.innerHTML;let n=e+JSON.stringify(t,(e,t)=>"function"==typeof t?t.toString():t),r=aH[n];if(r)return r;if("#"===e[0]){let t=document.querySelector(e);e=t?t.innerHTML:""}let i=T({hoistStatic:!0,onError:void 0,onWarn:S},t);i.isCustomElement||"undefined"==typeof customElements||(i.isCustomElement=e=>!!customElements.get(e));let{code:l}=function(e,t={}){return function(e,t={}){let n=t.onError||sY,r="module"===t.mode;!0===t.prefixIdentifiers?n(s1(47)):r&&n(s1(48)),t.cacheHandlers&&n(s1(49)),t.scopeId&&!r&&n(s1(50));let i=T({},t,{prefixIdentifiers:!1}),l=M(e)?function(e,t){if(oA.reset(),ob=null,o_=null,oS="",ox=-1,oC=-1,ow.length=0,oy=e,og=T({},om),t){let e;for(e in t)null!=t[e]&&(og[e]=t[e])}oA.mode="html"===og.parseMode?1:2*("sfc"===og.parseMode),oA.inXML=1===og.ns||2===og.ns;let n=t&&t.delimiters;n&&(oA.delimiterOpen=sQ(n[0]),oA.delimiterClose=sQ(n[1]));let r=ov=function(e,t=""){return{type:0,source:t,children:e,helpers:new Set,components:[],directives:[],hoists:[],imports:[],cached:[],temps:0,codegenNode:void 0,loc:s$}}([],e);return oA.parse(oy),r.loc=oU(0,e.length),r.children=oF(r.children),ov=null,r}(e,i):e,[s,o]=[[ab,o8,aC,ar,am,ad,ao,av],{on:ag,bind:ae,model:a_}];var a=T({},i,{nodeTransforms:[...s,...t.nodeTransforms||[]],directiveTransforms:T({},o,t.directiveTransforms||{})});let c=function(e,{filename:t="",prefixIdentifiers:n=!1,hoistStatic:r=!1,hmr:i=!1,cacheHandlers:l=!1,nodeTransforms:s=[],directiveTransforms:o={},transformHoist:a=null,isBuiltInComponent:c=S,isCustomElement:u=S,expressionPlugins:d=[],scopeId:p=null,slotted:h=!0,ssr:f=!1,inSSR:m=!1,ssrCssVars:g="",bindingMetadata:y=b,inline:_=!1,isTS:x=!1,onError:C=sY,onWarn:k=s0,compatConfig:T}){let N=t.replace(/\?.*$/,"").match(/([^/\\]+)\.\w+$/),w={filename:t,selfName:N&&G(K(N[1])),prefixIdentifiers:n,hoistStatic:r,hmr:i,cacheHandlers:l,nodeTransforms:s,directiveTransforms:o,transformHoist:a,isBuiltInComponent:c,isCustomElement:u,expressionPlugins:d,scopeId:p,slotted:h,ssr:f,inSSR:m,ssrCssVars:g,bindingMetadata:y,inline:_,isTS:x,onError:C,onWarn:k,compatConfig:T,root:e,helpers:new Map,components:new Set,directives:new Set,hoists:[],imports:[],cached:[],constantCache:new WeakMap,temps:0,identifiers:Object.create(null),scopes:{vFor:0,vSlot:0,vPre:0,vOnce:0},parent:null,grandParent:null,currentNode:e,childIndex:0,inVOnce:!1,helper(e){let t=w.helpers.get(e)||0;return w.helpers.set(e,t+1),e},removeHelper(e){let t=w.helpers.get(e);if(t){let n=t-1;n?w.helpers.set(e,n):w.helpers.delete(e)}},helperString:e=>`_${sM[w.helper(e)]}`,replaceNode(e){w.parent.children[w.childIndex]=w.currentNode=e},removeNode(e){let t=w.parent.children,n=e?t.indexOf(e):w.currentNode?w.childIndex:-1;e&&e!==w.currentNode?w.childIndex>n&&(w.childIndex--,w.onNodeRemoved()):(w.currentNode=null,w.onNodeRemoved()),w.parent.children.splice(n,1)},onNodeRemoved:S,addIdentifiers(e){},removeIdentifiers(e){},hoist(e){M(e)&&(e=sB(e)),w.hoists.push(e);let t=sB(`_hoisted_${w.hoists.length}`,!1,e.loc,2);return t.hoisted=e,t},cache(e,t=!1,n=!1){let r=function(e,t,n=!1,r=!1){return{type:20,index:e,value:t,needPauseTracking:n,inVOnce:r,needArraySpread:!1,loc:s$}}(w.cached.length,e,t,n);return w.cached.push(r),r}};return w}(l,a);return oX(l,c),a.hoistStatic&&function e(t,n,r,i=!1,l=!1){let{children:s}=t,o=[];for(let n=0;n0){if(e>=2){a.codegenNode.patchFlag=-1,o.push(a);continue}}else{let e=a.codegenNode;if(13===e.type){let t=e.patchFlag;if((void 0===t||512===t||1===t)&&oJ(a,r)>=2){let t=oG(a);t&&(e.props=r.hoist(t))}e.dynamicProps&&(e.dynamicProps=r.hoist(e.dynamicProps))}}}else if(12===a.type&&(i?0:oK(a,r))>=2){14===a.codegenNode.type&&a.codegenNode.arguments.length>0&&a.codegenNode.arguments.push("-1"),o.push(a);continue}if(1===a.type){let n=1===a.tagType;n&&r.scopes.vSlot++,e(a,t,r,!1,l),n&&r.scopes.vSlot--}else if(11===a.type)e(a,t,r,1===a.children.length,!0);else if(9===a.type)for(let n=0;ne.key===t||e.key.content===t);return n&&n.value}}c.length&&1===t.type&&1===t.tagType&&t.codegenNode&&13===t.codegenNode.type&&t.codegenNode.children&&!E(t.codegenNode.children)&&15===t.codegenNode.children.type&&t.codegenNode.children.properties.push(sV("__",sB(JSON.stringify(c),!1))),o.length&&r.transformHoist&&r.transformHoist(s,r,t)}(l,void 0,c,!!oW(l)),a.ssr||function(e,t){let{helper:n}=t,{children:r}=e;if(1===r.length){let n=oW(e);if(n&&n.codegenNode){let r=n.codegenNode;13===r.type&&sW(r,t),e.codegenNode=r}else e.codegenNode=r[0]}else r.length>1&&(e.codegenNode=sL(t,n(l4),void 0,e.children,64,void 0,void 0,!0,void 0,!1))}(l,c),l.helpers=new Set([...c.helpers.keys()]),l.components=[...c.components],l.directives=[...c.directives],l.imports=c.imports,l.hoists=c.hoists,l.temps=c.temps,l.cached=c.cached,l.transformed=!0,function(e,t={}){let n=function(e,{mode:t="function",prefixIdentifiers:n="module"===t,sourceMap:r=!1,filename:i="template.vue.html",scopeId:l=null,optimizeImports:s=!1,runtimeGlobalName:o="Vue",runtimeModuleName:a="vue",ssrRuntimeModuleName:c="vue/server-renderer",ssr:u=!1,isTS:d=!1,inSSR:p=!1}){let h={mode:t,prefixIdentifiers:n,sourceMap:r,filename:i,scopeId:l,optimizeImports:s,runtimeGlobalName:o,runtimeModuleName:a,ssrRuntimeModuleName:c,ssr:u,isTS:d,inSSR:p,source:e.source,code:"",column:1,line:1,offset:0,indentLevel:0,pure:!1,map:void 0,helper:e=>`_${sM[e]}`,push(e,t=-2,n){h.code+=e},indent(){f(++h.indentLevel)},deindent(e=!1){e?--h.indentLevel:f(--h.indentLevel)},newline(){f(h.indentLevel)}};function f(e){h.push(` `+" ".repeat(e),0)}return h}(e,t);t.onContextCreated&&t.onContextCreated(n);let{mode:r,push:i,prefixIdentifiers:l,indent:s,deindent:o,newline:a,scopeId:c,ssr:u}=n,d=Array.from(e.helpers),p=d.length>0,h=!l&&"module"!==r;var f=e,m=n;let{ssr:g,prefixIdentifiers:y,push:b,newline:_,runtimeModuleName:S,runtimeGlobalName:x,ssrRuntimeModuleName:C}=m,k=Array.from(f.helpers);if(k.length>0&&(b(`const _Vue = ${x} -`,-1),f.hoists.length)){let e=[sr,si,sl,ss,so].filter(e=>k.includes(e)).map(oZ).join(", ");b(`const { ${e} } = _Vue -`,-1)}(function(e,t){if(!e.length)return;t.pure=!0;let{push:n,newline:r}=t;r();for(let i=0;i0)&&a()),e.directives.length&&(oY(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?o2(e.codegenNode,n):i("null"),h&&(o(),i("}")),o(),i("}"),{ast:e,code:n.code,preamble:"",map:n.map?n.map.toJSON():void 0}}(l,i)}(e,T({},aP,t,{nodeTransforms:[aV,...aB,...t.nodeTransforms||[]],directiveTransforms:T({},aU,t.directiveTransforms||{}),transformHoist:null}))}(e,i),s=Function(l)();return s._rc=!0,aj[n]=s}return iL(aH),e.BaseTransition=ny,e.BaseTransitionPropsValidators=nm,e.Comment=ie,e.DeprecationTypes=null,e.EffectScope=eS,e.ErrorCodes={SETUP_FUNCTION:0,0:"SETUP_FUNCTION",RENDER_FUNCTION:1,1:"RENDER_FUNCTION",NATIVE_EVENT_HANDLER:5,5:"NATIVE_EVENT_HANDLER",COMPONENT_EVENT_HANDLER:6,6:"COMPONENT_EVENT_HANDLER",VNODE_HOOK:7,7:"VNODE_HOOK",DIRECTIVE_HOOK:8,8:"DIRECTIVE_HOOK",TRANSITION_HOOK:9,9:"TRANSITION_HOOK",APP_ERROR_HANDLER:10,10:"APP_ERROR_HANDLER",APP_WARN_HANDLER:11,11:"APP_WARN_HANDLER",FUNCTION_REF:12,12:"FUNCTION_REF",ASYNC_COMPONENT_LOADER:13,13:"ASYNC_COMPONENT_LOADER",SCHEDULER:14,14:"SCHEDULER",COMPONENT_UPDATE:15,15:"COMPONENT_UPDATE",APP_UNMOUNT_CLEANUP:16,16:"APP_UNMOUNT_CLEANUP"},e.ErrorTypeStrings=null,e.Fragment=r9,e.KeepAlive={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){let n=iE(),r=n.ctx,i=new Map,l=new Set,s=null,o=n.suspense,{renderer:{p:a,m:c,um:u,o:{createElement:d}}}=r,p=d("div");function h(e){nW(e),u(e,n,o,!0)}function f(e){i.forEach((t,n)=>{let r=iB(t.type);r&&!e(r)&&m(n)})}function m(e){let t=i.get(e);!t||s&&ip(t,s)?s&&nW(s):h(t),i.delete(e),l.delete(e)}r.activate=(e,t,n,r,i)=>{let l=e.component;c(e,t,n,0,o),a(l.vnode,e,t,n,l,o,r,e.slotScopeIds,i),rM(()=>{l.isDeactivated=!1,l.a&&Z(l.a);let t=e.props&&e.props.onVnodeMounted;t&&iT(t,l.parent,e)},o)},r.deactivate=e=>{let t=e.component;rU(t.m),rU(t.a),c(e,p,null,1,o),rM(()=>{t.da&&Z(t.da);let n=e.props&&e.props.onVnodeUnmounted;n&&iT(n,t.parent,e),t.isDeactivated=!0},o)},rq(()=>[e.include,e.exclude],([e,t])=>{e&&f(t=>nU(e,t)),t&&f(e=>!nU(t,e))},{flush:"post",deep:!0});let g=null,y=()=>{null!=g&&(r1(n.subTree.type)?rM(()=>{i.set(g,nK(n.subTree))},n.subTree.suspense):i.set(g,nK(n.subTree)))};return nX(y),nZ(y),nY(()=>{i.forEach(e=>{let{subTree:t,suspense:r}=n,i=nK(t);if(e.type===i.type&&e.key===i.key){nW(i);let e=i.component.da;e&&rM(e,r);return}h(e)})}),()=>{if(g=null,!t.default)return s=null;let n=t.default(),r=n[0];if(n.length>1)return s=null,n;if(!id(r)||!(4&r.shapeFlag)&&!(128&r.shapeFlag))return s=null,r;let o=nK(r);if(o.type===ie)return s=null,o;let a=o.type,c=iB(nF(o)?o.type.__asyncResolved||{}:a),{include:u,exclude:d,max:p}=e;if(u&&(!c||!nU(u,c))||d&&c&&nU(d,c))return o.shapeFlag&=-257,s=o,r;let h=null==o.key?a:o.key,f=i.get(h);return o.el&&(o=ib(o),128&r.shapeFlag&&(r.ssContent=o)),g=h,f?(o.el=f.el,o.component=f.component,o.transition&&nC(o,o.transition),o.shapeFlag|=512,l.delete(h),l.add(h)):(l.add(h),p&&l.size>parseInt(p,10)&&m(l.values().next().value)),o.shapeFlag|=256,s=o,r1(r.type)?r:o}}},e.ReactiveEffect=eC,e.Static=it,e.Suspense={name:"Suspense",__isSuspense:!0,process(e,t,n,r,i,l,s,o,a,c){if(null==e){var u=t,d=n,p=r,h=i,f=l,m=s,g=o,y=a,b=c;let{p:e,o:{createElement:_}}=b,S=_("div"),x=u.suspense=r6(u,f,h,d,S,p,m,g,y,b);e(null,x.pendingBranch=u.ssContent,S,null,h,x,m,g),x.deps>0?(r3(u,"onPending"),r3(u,"onFallback"),e(null,u.ssFallback,d,p,h,null,m,g),r5(x,u.ssFallback)):x.resolve(!1,!0)}else{if(l&&l.deps>0&&!e.suspense.isInFallback){t.suspense=e.suspense,t.suspense.vnode=t,t.el=e.el;return}!function(e,t,n,r,i,l,s,o,{p:a,um:c,o:{createElement:u}}){let d=t.suspense=e.suspense;d.vnode=t,t.el=e.el;let p=t.ssContent,h=t.ssFallback,{activeBranch:f,pendingBranch:m,isInFallback:g,isHydrating:y}=d;if(m)d.pendingBranch=p,ip(p,m)?(a(m,p,d.hiddenContainer,null,i,d,l,s,o),d.deps<=0?d.resolve():g&&!y&&(a(f,h,n,r,i,null,l,s,o),r5(d,h))):(d.pendingId=r2++,y?(d.isHydrating=!1,d.activeBranch=m):c(m,i,d),d.deps=0,d.effects.length=0,d.hiddenContainer=u("div"),g?(a(null,p,d.hiddenContainer,null,i,d,l,s,o),d.deps<=0?d.resolve():(a(f,h,n,r,i,null,l,s,o),r5(d,h))):f&&ip(p,f)?(a(f,p,n,r,i,d,l,s,o),d.resolve(!0)):(a(null,p,d.hiddenContainer,null,i,d,l,s,o),d.deps<=0&&d.resolve()));else if(f&&ip(p,f))a(f,p,n,r,i,d,l,s,o),r5(d,p);else if(r3(t,"onPending"),d.pendingBranch=p,512&p.shapeFlag?d.pendingId=p.component.suspenseId:d.pendingId=r2++,a(null,p,d.hiddenContainer,null,i,d,l,s,o),d.deps<=0)d.resolve();else{let{timeout:e,pendingId:t}=d;e>0?setTimeout(()=>{d.pendingId===t&&d.fallback(h)},e):0===e&&d.fallback(h)}}(e,t,n,r,i,s,o,a,c)}},hydrate:function(e,t,n,r,i,l,s,o,a){let c=t.suspense=r6(t,r,n,e.parentNode,document.createElement("div"),null,i,l,s,o,!0),u=a(e,c.pendingBranch=t.ssContent,n,c,l,s);return 0===c.deps&&c.resolve(!1,!0),u},normalize:function(e){let{shapeFlag:t,children:n}=e,r=32&t;e.ssContent=r4(r?n.default:n),e.ssFallback=r?r4(n.fallback):iv(ie)}},e.Teleport=no,e.Text=r7,e.TrackOpTypes={GET:"get",HAS:"has",ITERATE:"iterate"},e.Transition=i0,e.TransitionGroup=lR,e.TriggerOpTypes={SET:"set",ADD:"add",DELETE:"delete",CLEAR:"clear"},e.VueElement=lT,e.assertNumber=function(e,t){},e.callWithAsyncErrorHandling=tq,e.callWithErrorHandling=tH,e.camelize=K,e.capitalize=G,e.cloneVNode=ib,e.compatUtils=null,e.compile=aH,e.computed=iU,e.createApp=l1,e.createBlock=iu,e.createCommentVNode=function(e="",t=!1){return t?(il(),iu(ie,null,e)):iv(ie,null,e)},e.createElementBlock=function(e,t,n,r,i,l){return ic(ig(e,t,n,r,i,l,!0))},e.createElementVNode=ig,e.createHydrationRenderer=rL,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 r$(e)},e.createSSRApp=l2,e.createSlots=function(e,t){for(let n=0;n{let t=r.fn(...e);return t&&(t.key=r.key),t}:r.fn)}return e},e.createStaticVNode=function(e,t){let n=iv(it,null,e);return n.staticCount=t,n},e.createTextVNode=i_,e.createVNode=iv,e.customRef=tM,e.defineAsyncComponent=function(e){let t;P(e)&&(e={loader:e});let{loader:n,loadingComponent:r,errorComponent:i,delay:l=200,hydrate:s,timeout:o,suspensible:a=!0,onError:c}=e,u=null,d=0,p=()=>{let e;return u||(e=u=n().catch(e=>{if(e=e instanceof Error?e:Error(String(e)),c)return new Promise((t,n)=>{c(e,()=>t((d++,u=null,p())),()=>n(e),d+1)});throw e}).then(n=>e!==u&&u?u:(n&&(n.__esModule||"Module"===n[Symbol.toStringTag])&&(n=n.default),t=n,n)))};return nT({name:"AsyncComponentWrapper",__asyncLoader:p,__asyncHydrate(e,n,r){let i=s?()=>{let t=s(()=>{r()},t=>(function(e,t){if(nR(e)&&"["===e.data){let n=1,r=e.nextSibling;for(;r;){if(1===r.nodeType){if(!1===t(r))break}else if(nR(r))if("]"===r.data){if(0==--n)break}else"["===r.data&&n++;r=r.nextSibling}}else t(e)})(e,t));t&&(n.bum||(n.bum=[])).push(t),(n.u||(n.u=[])).push(()=>!0)}:r;t?i():p().then(()=>!n.isUnmounted&&i())},get __asyncResolved(){return t},setup(){let e=iA;if(nN(e),t)return()=>nV(t,e);let n=t=>{u=null,tW(t,e,13,!i)};if(a&&e.suspense)return p().then(t=>()=>nV(t,e)).catch(e=>(n(e),()=>i?iv(i,{error:e}):null));let s=tN(!1),c=tN(),d=tN(!!l);return l&&setTimeout(()=>{d.value=!1},l),null!=o&&setTimeout(()=>{if(!s.value&&!c.value){let e=Error(`Async component timed out after ${o}ms.`);n(e),c.value=e}},o),p().then(()=>{s.value=!0,e.parent&&nB(e.parent.vnode)&&e.parent.update()}).catch(e=>{n(e),c.value=e}),()=>s.value&&t?nV(t,e):c.value&&i?iv(i,{error:c.value}):r&&!d.value?iv(r):void 0}})},e.defineComponent=nT,e.defineCustomElement=lC,e.defineEmits=function(){return null},e.defineExpose=function(e){},e.defineModel=function(){},e.defineOptions=function(e){},e.defineProps=function(){return null},e.defineSSRCustomElement=(e,t)=>lC(e,t,l2),e.defineSlots=function(){return null},e.devtools=void 0,e.effect=function(e,t){e.effect instanceof eC&&(e=e.effect.fn);let n=new eC(e);t&&T(n,t);try{n.run()}catch(e){throw n.stop(),e}let r=n.run.bind(n);return r.effect=n,r},e.effectScope=function(e){return new eS(e)},e.getCurrentInstance=iE,e.getCurrentScope=function(){return l},e.getCurrentWatcher=function(){return m},e.getTransitionRawChildren=nk,e.guardReactiveProps=iy,e.h=ij,e.handleError=tW,e.hasInjectionContext=function(){return!!(iA||t8||ry)},e.hydrate=(...e)=>{lY().hydrate(...e)},e.hydrateOnIdle=(e=1e4)=>t=>{let n=n$(t,{timeout:e});return()=>nD(n)},e.hydrateOnInteraction=(e=[])=>(t,n)=>{M(e)&&(e=[e]);let r=!1,i=e=>{r||(r=!0,l(),t(),e.target.dispatchEvent(new e.constructor(e.type,e)))},l=()=>{n(t=>{for(let n of e)t.removeEventListener(n,i)})};return n(t=>{for(let n of e)t.addEventListener(n,i,{once:!0})}),l},e.hydrateOnMediaQuery=e=>t=>{if(e){let n=matchMedia(e);if(!n.matches)return n.addEventListener("change",t,{once:!0}),()=>n.removeEventListener("change",t);t()}},e.hydrateOnVisible=e=>(t,n)=>{let r=new IntersectionObserver(e=>{for(let n of e)if(n.isIntersecting){r.disconnect(),t();break}},e);return n(e=>{if(e instanceof Element){if(function(e){let{top:t,left:n,bottom:r,right:i}=e.getBoundingClientRect(),{innerHeight:l,innerWidth:s}=window;return(t>0&&t0&&r0&&n0&&ir.disconnect()},e.initCustomFormatter=function(){},e.initDirectivesForSSR=S,e.inject=r_,e.isMemoSame=iH,e.isProxy=t_,e.isReactive=tv,e.isReadonly=ty,e.isRef=tT,e.isRuntimeOnly=()=>!d,e.isShallow=tb,e.isVNode=id,e.markRaw=tx,e.mergeDefaults=function(e,t){let n=rl(e);for(let e in t){if(e.startsWith("__skip"))continue;let r=n[e];r?E(r)||P(r)?r=n[e]={type:r,default:t[e]}:r.default=t[e]:null===r&&(r=n[e]={default:t[e]}),r&&t[`__skip_${e}`]&&(r.skipFactory=!0)}return n},e.mergeModels=function(e,t){return e&&t?E(e)&&E(t)?e.concat(t):T({},rl(e),rl(t)):e||t},e.mergeProps=ik,e.nextTick=tY,e.normalizeClass=ec,e.normalizeProps=function(e){if(!e)return null;let{class:t,style:n}=e;return t&&!M(t)&&(e.class=ec(t)),n&&(e.style=ei(n)),e},e.normalizeStyle=ei,e.onActivated=nj,e.onBeforeMount=nG,e.onBeforeUnmount=nY,e.onBeforeUpdate=nQ,e.onDeactivated=nH,e.onErrorCaptured=n6,e.onMounted=nX,e.onRenderTracked=n3,e.onRenderTriggered=n2,e.onScopeDispose=function(e,t=!1){l&&l.cleanups.push(e)},e.onServerPrefetch=n1,e.onUnmounted=n0,e.onUpdated=nZ,e.onWatcherCleanup=tU,e.openBlock=il,e.popScopeId=function(){t5=null},e.provide=rb,e.proxyRefs=tO,e.pushScopeId=function(e){t5=e},e.queuePostFlushCb=t2,e.reactive=th,e.readonly=tm,e.ref=tN,e.registerRuntimeCompiler=iL,e.render=l0,e.renderList=function(e,t,n,r){let i,l=n&&n[r],s=E(e);if(s||M(e)){let n=s&&tv(e),r=!1,o=!1;n&&(r=!tb(e),o=ty(e),e=ez(e)),i=Array(e.length);for(let n=0,s=e.length;nt(e,n,void 0,l&&l[n]));else{let n=Object.keys(e);i=Array(n.length);for(let r=0,s=n.length;r!id(t)||t.type!==ie&&(t.type!==r9||!!e(t.children)))?t:null}(l(n)),o=n.key||s&&s.key,a=iu(r9,{key:(o&&!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 n5(n4,e,!0,t)||e},e.resolveDirective=function(e){return n5("directives",e)},e.resolveDynamicComponent=function(e){return M(e)?n5(n4,e,!1)||e:e||n8},e.resolveFilter=null,e.resolveTransitionHooks=n_,e.setBlockTracking=ia,e.setDevtoolsHook=S,e.setTransitionHooks=nC,e.shallowReactive=tf,e.shallowReadonly=function(e){return tg(e,!0,te,ta,tp)},e.shallowRef=tw,e.ssrContextKey=rj,e.ssrUtils=null,e.stop=function(e){e.effect.stop()},e.toDisplayString=ey,e.toHandlerKey=X,e.toHandlers=function(e,t){let n={};for(let r in e)n[t&&/[A-Z]/.test(r)?`on:${r}`:X(r)]=e[r];return n},e.toRaw=tS,e.toRef=function(e,t,n){return tT(e)?e:P(e)?new t$(e):$(e)&&arguments.length>1?tD(e,t,n):tN(e)},e.toRefs=function(e){let t=E(e)?Array(e.length):{};for(let n in e)t[n]=tD(e,n);return t},e.toValue=function(e){return P(e)?e():tI(e)},e.transformVNodeArgs=function(e){},e.triggerRef=function(e){e.dep&&e.dep.trigger()},e.unref=tI,e.useAttrs=function(){return ri().attrs},e.useCssModule=function(e="$style"){return b},e.useCssVars=function(e){let t=iE();if(!t)return;let n=t.ut=(n=e(t.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${t.uid}"]`)).forEach(e=>lo(e,n))},r=()=>{let r=e(t.proxy);t.ce?lo(t.ce,r):function e(t,n){if(128&t.shapeFlag){let r=t.suspense;t=r.activeBranch,r.pendingBranch&&!r.isHydrating&&r.effects.push(()=>{e(r.activeBranch,n)})}for(;t.component;)t=t.component.subTree;if(1&t.shapeFlag&&t.el)lo(t.el,n);else if(t.type===r9)t.children.forEach(t=>e(t,n));else if(t.type===it){let{el:e,anchor:r}=t;for(;e&&(lo(e,n),e!==r);)e=e.nextSibling}}(t.subTree,r),n(r)};nQ(()=>{t2(r)}),nX(()=>{rq(r,S,{flush:"post"});let e=new MutationObserver(r);e.observe(t.subTree.el.parentNode,{childList:!0}),n0(()=>e.disconnect())})},e.useHost=lN,e.useId=function(){let e=iE();return e?(e.appContext.config.idPrefix||"v")+"-"+e.ids[0]+e.ids[1]++:""},e.useModel=function(e,t,n=b){let r=iE(),i=K(t),l=J(t),s=rz(e,i),o=tM((s,o)=>{let a,c,u=b;return rH(()=>{let t=e[i];Q(a,t)&&(a=t,o())}),{get:()=>(s(),n.get?n.get(a):a),set(e){let s=n.set?n.set(e):e;if(!Q(s,a)&&!(u!==b&&Q(e,u)))return;let d=r.vnode.props;d&&(t in d||i in d||l in d)&&(`onUpdate:${t}`in d||`onUpdate:${i}`in d||`onUpdate:${l}`in d)||(a=e,o()),r.emit(`update:${t}`,s),Q(e,s)&&Q(e,u)&&!Q(s,c)&&o(),u=e,c=s}}});return o[Symbol.iterator]=()=>{let e=0;return{next:()=>e<2?{value:e++?s||b:o,done:!1}:{done:!0}}},o},e.useSSRContext=()=>{},e.useShadowRoot=function(){let e=lN();return e&&e.shadowRoot},e.useSlots=function(){return ri().slots},e.useTemplateRef=function(e){let t=iE(),n=tw(null);return t&&Object.defineProperty(t.refs===b?t.refs={}:t.refs,e,{enumerable:!0,get:()=>n.value,set:e=>n.value=e}),n},e.useTransitionState=nh,e.vModelCheckbox=lB,e.vModelDynamic={created(e,t,n){lz(e,t,n,null,"created")},mounted(e,t,n){lz(e,t,n,null,"mounted")},beforeUpdate(e,t,n,r){lz(e,t,n,r,"beforeUpdate")},updated(e,t,n,r){lz(e,t,n,r,"updated")}},e.vModelRadio=lj,e.vModelSelect=lH,e.vModelText=lV,e.vShow={beforeMount(e,{value:t},{transition:n}){e[lr]="none"===e.style.display?"":e.style.display,n&&t?n.beforeEnter(e):ll(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),ll(e,!0),r.enter(e)):r.leave(e,()=>{ll(e,!1)}):ll(e,t))},beforeUnmount(e,{value:t}){ll(e,t)}},e.version=iq,e.warn=S,e.watch=function(e,t,n){return rq(e,t,n)},e.watchEffect=function(e,t){return rq(e,null,t)},e.watchPostEffect=function(e,t){return rq(e,null,{flush:"post"})},e.watchSyncEffect=rH,e.withAsyncContext=function(e){let t=iE(),n=e();return iR(),D(n)&&(n=n.catch(e=>{throw iI(t),e})),[n,()=>iI(t)]},e.withCtx=t7,e.withDefaults=function(e,t){return null},e.withDirectives=function(e,t){if(null===t8)return e;let n=iV(t8),r=e.dirs||(e.dirs=[]);for(let e=0;e{let n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=n=>{if(!("key"in n))return;let r=J(n.key);if(t.some(e=>e===r||lX[e]===r))return e(n)})},e.withMemo=function(e,t,n,r){let i=n[r];if(i&&iH(i,e))return i;let l=t();return l.memo=e.slice(),l.cacheIndex=r,n[r]=l},e.withModifiers=(e,t)=>{let n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=(n,...r)=>{for(let e=0;et7,e}({}); \ No newline at end of file +`,-1),f.hoists.length)){let e=[sr,si,sl,ss,so].filter(e=>k.includes(e)).map(oY).join(", ");b(`const { ${e} } = _Vue +`,-1)}(function(e,t){if(!e.length)return;t.pure=!0;let{push:n,newline:r}=t;r();for(let i=0;i0)&&a()),e.directives.length&&(o0(e.directives,"directive",n),e.temps>0&&a()),e.temps>0){i("let ");for(let t=0;t0?", ":""}_temp${t}`)}return(e.components.length||e.directives.length||e.temps)&&(i(` +`,0),a()),u||i("return "),e.codegenNode?o3(e.codegenNode,n):i("null"),h&&(o(),i("}")),o(),i("}"),{ast:e,code:n.code,preamble:"",map:n.map?n.map.toJSON():void 0}}(l,i)}(e,T({},aM,t,{nodeTransforms:[aB,...aU,...t.nodeTransforms||[]],directiveTransforms:T({},aj,t.directiveTransforms||{}),transformHoist:null}))}(e,i),s=Function(l)();return s._rc=!0,aH[n]=s}return i$(aq),e.BaseTransition=ny,e.BaseTransitionPropsValidators=nm,e.Comment=ie,e.DeprecationTypes=null,e.EffectScope=eS,e.ErrorCodes={SETUP_FUNCTION:0,0:"SETUP_FUNCTION",RENDER_FUNCTION:1,1:"RENDER_FUNCTION",NATIVE_EVENT_HANDLER:5,5:"NATIVE_EVENT_HANDLER",COMPONENT_EVENT_HANDLER:6,6:"COMPONENT_EVENT_HANDLER",VNODE_HOOK:7,7:"VNODE_HOOK",DIRECTIVE_HOOK:8,8:"DIRECTIVE_HOOK",TRANSITION_HOOK:9,9:"TRANSITION_HOOK",APP_ERROR_HANDLER:10,10:"APP_ERROR_HANDLER",APP_WARN_HANDLER:11,11:"APP_WARN_HANDLER",FUNCTION_REF:12,12:"FUNCTION_REF",ASYNC_COMPONENT_LOADER:13,13:"ASYNC_COMPONENT_LOADER",SCHEDULER:14,14:"SCHEDULER",COMPONENT_UPDATE:15,15:"COMPONENT_UPDATE",APP_UNMOUNT_CLEANUP:16,16:"APP_UNMOUNT_CLEANUP"},e.ErrorTypeStrings=null,e.Fragment=r9,e.KeepAlive={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){let n=iE(),r=n.ctx,i=new Map,l=new Set,s=null,o=n.suspense,{renderer:{p:a,m:c,um:u,o:{createElement:d}}}=r,p=d("div");function h(e){nW(e),u(e,n,o,!0)}function f(e){i.forEach((t,n)=>{let r=iB(t.type);r&&!e(r)&&m(n)})}function m(e){let t=i.get(e);!t||s&&ip(t,s)?s&&nW(s):h(t),i.delete(e),l.delete(e)}r.activate=(e,t,n,r,i)=>{let l=e.component;c(e,t,n,0,o),a(l.vnode,e,t,n,l,o,r,e.slotScopeIds,i),rM(()=>{l.isDeactivated=!1,l.a&&Z(l.a);let t=e.props&&e.props.onVnodeMounted;t&&iT(t,l.parent,e)},o)},r.deactivate=e=>{let t=e.component;rU(t.m),rU(t.a),c(e,p,null,1,o),rM(()=>{t.da&&Z(t.da);let n=e.props&&e.props.onVnodeUnmounted;n&&iT(n,t.parent,e),t.isDeactivated=!0},o)},rq(()=>[e.include,e.exclude],([e,t])=>{e&&f(t=>nU(e,t)),t&&f(e=>!nU(t,e))},{flush:"post",deep:!0});let g=null,y=()=>{null!=g&&(r1(n.subTree.type)?rM(()=>{i.set(g,nK(n.subTree))},n.subTree.suspense):i.set(g,nK(n.subTree)))};return nX(y),nZ(y),nY(()=>{i.forEach(e=>{let{subTree:t,suspense:r}=n,i=nK(t);if(e.type===i.type&&e.key===i.key){nW(i);let e=i.component.da;e&&rM(e,r);return}h(e)})}),()=>{if(g=null,!t.default)return s=null;let n=t.default(),r=n[0];if(n.length>1)return s=null,n;if(!id(r)||!(4&r.shapeFlag)&&!(128&r.shapeFlag))return s=null,r;let o=nK(r);if(o.type===ie)return s=null,o;let a=o.type,c=iB(nF(o)?o.type.__asyncResolved||{}:a),{include:u,exclude:d,max:p}=e;if(u&&(!c||!nU(u,c))||d&&c&&nU(d,c))return o.shapeFlag&=-257,s=o,r;let h=null==o.key?a:o.key,f=i.get(h);return o.el&&(o=ib(o),128&r.shapeFlag&&(r.ssContent=o)),g=h,f?(o.el=f.el,o.component=f.component,o.transition&&nC(o,o.transition),o.shapeFlag|=512,l.delete(h),l.add(h)):(l.add(h),p&&l.size>parseInt(p,10)&&m(l.values().next().value)),o.shapeFlag|=256,s=o,r1(r.type)?r:o}}},e.ReactiveEffect=eC,e.Static=it,e.Suspense={name:"Suspense",__isSuspense:!0,process(e,t,n,r,i,l,s,o,a,c){if(null==e){var u=t,d=n,p=r,h=i,f=l,m=s,g=o,y=a,b=c;let{p:e,o:{createElement:_}}=b,S=_("div"),x=u.suspense=r6(u,f,h,d,S,p,m,g,y,b);e(null,x.pendingBranch=u.ssContent,S,null,h,x,m,g),x.deps>0?(r3(u,"onPending"),r3(u,"onFallback"),e(null,u.ssFallback,d,p,h,null,m,g),r5(x,u.ssFallback)):x.resolve(!1,!0)}else{if(l&&l.deps>0&&!e.suspense.isInFallback){t.suspense=e.suspense,t.suspense.vnode=t,t.el=e.el;return}!function(e,t,n,r,i,l,s,o,{p:a,um:c,o:{createElement:u}}){let d=t.suspense=e.suspense;d.vnode=t,t.el=e.el;let p=t.ssContent,h=t.ssFallback,{activeBranch:f,pendingBranch:m,isInFallback:g,isHydrating:y}=d;if(m)d.pendingBranch=p,ip(p,m)?(a(m,p,d.hiddenContainer,null,i,d,l,s,o),d.deps<=0?d.resolve():g&&!y&&(a(f,h,n,r,i,null,l,s,o),r5(d,h))):(d.pendingId=r2++,y?(d.isHydrating=!1,d.activeBranch=m):c(m,i,d),d.deps=0,d.effects.length=0,d.hiddenContainer=u("div"),g?(a(null,p,d.hiddenContainer,null,i,d,l,s,o),d.deps<=0?d.resolve():(a(f,h,n,r,i,null,l,s,o),r5(d,h))):f&&ip(p,f)?(a(f,p,n,r,i,d,l,s,o),d.resolve(!0)):(a(null,p,d.hiddenContainer,null,i,d,l,s,o),d.deps<=0&&d.resolve()));else if(f&&ip(p,f))a(f,p,n,r,i,d,l,s,o),r5(d,p);else if(r3(t,"onPending"),d.pendingBranch=p,512&p.shapeFlag?d.pendingId=p.component.suspenseId:d.pendingId=r2++,a(null,p,d.hiddenContainer,null,i,d,l,s,o),d.deps<=0)d.resolve();else{let{timeout:e,pendingId:t}=d;e>0?setTimeout(()=>{d.pendingId===t&&d.fallback(h)},e):0===e&&d.fallback(h)}}(e,t,n,r,i,s,o,a,c)}},hydrate:function(e,t,n,r,i,l,s,o,a){let c=t.suspense=r6(t,r,n,e.parentNode,document.createElement("div"),null,i,l,s,o,!0),u=a(e,c.pendingBranch=t.ssContent,n,c,l,s);return 0===c.deps&&c.resolve(!1,!0),u},normalize:function(e){let{shapeFlag:t,children:n}=e,r=32&t;e.ssContent=r4(r?n.default:n),e.ssFallback=r?r4(n.fallback):iv(ie)}},e.Teleport=no,e.Text=r7,e.TrackOpTypes={GET:"get",HAS:"has",ITERATE:"iterate"},e.Transition=i0,e.TransitionGroup=lR,e.TriggerOpTypes={SET:"set",ADD:"add",DELETE:"delete",CLEAR:"clear"},e.VueElement=lT,e.assertNumber=function(e,t){},e.callWithAsyncErrorHandling=tq,e.callWithErrorHandling=tH,e.camelize=K,e.capitalize=G,e.cloneVNode=ib,e.compatUtils=null,e.compile=aq,e.computed=iU,e.createApp=l1,e.createBlock=iu,e.createCommentVNode=function(e="",t=!1){return t?(il(),iu(ie,null,e)):iv(ie,null,e)},e.createElementBlock=function(e,t,n,r,i,l){return ic(ig(e,t,n,r,i,l,!0))},e.createElementVNode=ig,e.createHydrationRenderer=r$,e.createPropsRestProxy=function(e,t){let n={};for(let r in e)t.includes(r)||Object.defineProperty(n,r,{enumerable:!0,get:()=>e[r]});return n},e.createRenderer=function(e){return rL(e)},e.createSSRApp=l2,e.createSlots=function(e,t){for(let n=0;n{let t=r.fn(...e);return t&&(t.key=r.key),t}:r.fn)}return e},e.createStaticVNode=function(e,t){let n=iv(it,null,e);return n.staticCount=t,n},e.createTextVNode=i_,e.createVNode=iv,e.customRef=tM,e.defineAsyncComponent=function(e){let t;P(e)&&(e={loader:e});let{loader:n,loadingComponent:r,errorComponent:i,delay:l=200,hydrate:s,timeout:o,suspensible:a=!0,onError:c}=e,u=null,d=0,p=()=>{let e;return u||(e=u=n().catch(e=>{if(e=e instanceof Error?e:Error(String(e)),c)return new Promise((t,n)=>{c(e,()=>t((d++,u=null,p())),()=>n(e),d+1)});throw e}).then(n=>e!==u&&u?u:(n&&(n.__esModule||"Module"===n[Symbol.toStringTag])&&(n=n.default),t=n,n)))};return nT({name:"AsyncComponentWrapper",__asyncLoader:p,__asyncHydrate(e,n,r){let i=!1;(n.bu||(n.bu=[])).push(()=>i=!0);let l=()=>{i||r()},o=s?()=>{let t=s(l,t=>(function(e,t){if(nR(e)&&"["===e.data){let n=1,r=e.nextSibling;for(;r;){if(1===r.nodeType){if(!1===t(r))break}else if(nR(r))if("]"===r.data){if(0==--n)break}else"["===r.data&&n++;r=r.nextSibling}}else t(e)})(e,t));t&&(n.bum||(n.bum=[])).push(t)}:l;t?o():p().then(()=>!n.isUnmounted&&o())},get __asyncResolved(){return t},setup(){let e=iA;if(nN(e),t)return()=>nV(t,e);let n=t=>{u=null,tW(t,e,13,!i)};if(a&&e.suspense)return p().then(t=>()=>nV(t,e)).catch(e=>(n(e),()=>i?iv(i,{error:e}):null));let s=tN(!1),c=tN(),d=tN(!!l);return l&&setTimeout(()=>{d.value=!1},l),null!=o&&setTimeout(()=>{if(!s.value&&!c.value){let e=Error(`Async component timed out after ${o}ms.`);n(e),c.value=e}},o),p().then(()=>{s.value=!0,e.parent&&nB(e.parent.vnode)&&e.parent.update()}).catch(e=>{n(e),c.value=e}),()=>s.value&&t?nV(t,e):c.value&&i?iv(i,{error:c.value}):r&&!d.value?iv(r):void 0}})},e.defineComponent=nT,e.defineCustomElement=lC,e.defineEmits=function(){return null},e.defineExpose=function(e){},e.defineModel=function(){},e.defineOptions=function(e){},e.defineProps=function(){return null},e.defineSSRCustomElement=(e,t)=>lC(e,t,l2),e.defineSlots=function(){return null},e.devtools=void 0,e.effect=function(e,t){e.effect instanceof eC&&(e=e.effect.fn);let n=new eC(e);t&&T(n,t);try{n.run()}catch(e){throw n.stop(),e}let r=n.run.bind(n);return r.effect=n,r},e.effectScope=function(e){return new eS(e)},e.getCurrentInstance=iE,e.getCurrentScope=function(){return l},e.getCurrentWatcher=function(){return m},e.getTransitionRawChildren=nk,e.guardReactiveProps=iy,e.h=ij,e.handleError=tW,e.hasInjectionContext=function(){return!!(iE()||ry)},e.hydrate=(...e)=>{lY().hydrate(...e)},e.hydrateOnIdle=(e=1e4)=>t=>{let n=nL(t,{timeout:e});return()=>nD(n)},e.hydrateOnInteraction=(e=[])=>(t,n)=>{M(e)&&(e=[e]);let r=!1,i=e=>{r||(r=!0,l(),t(),e.target.dispatchEvent(new e.constructor(e.type,e)))},l=()=>{n(t=>{for(let n of e)t.removeEventListener(n,i)})};return n(t=>{for(let n of e)t.addEventListener(n,i,{once:!0})}),l},e.hydrateOnMediaQuery=e=>t=>{if(e){let n=matchMedia(e);if(!n.matches)return n.addEventListener("change",t,{once:!0}),()=>n.removeEventListener("change",t);t()}},e.hydrateOnVisible=e=>(t,n)=>{let r=new IntersectionObserver(e=>{for(let n of e)if(n.isIntersecting){r.disconnect(),t();break}},e);return n(e=>{if(e instanceof Element){if(function(e){let{top:t,left:n,bottom:r,right:i}=e.getBoundingClientRect(),{innerHeight:l,innerWidth:s}=window;return(t>0&&t0&&r0&&n0&&ir.disconnect()},e.initCustomFormatter=function(){},e.initDirectivesForSSR=S,e.inject=r_,e.isMemoSame=iH,e.isProxy=t_,e.isReactive=tv,e.isReadonly=ty,e.isRef=tT,e.isRuntimeOnly=()=>!d,e.isShallow=tb,e.isVNode=id,e.markRaw=tx,e.mergeDefaults=function(e,t){let n=rl(e);for(let e in t){if(e.startsWith("__skip"))continue;let r=n[e];r?E(r)||P(r)?r=n[e]={type:r,default:t[e]}:r.default=t[e]:null===r&&(r=n[e]={default:t[e]}),r&&t[`__skip_${e}`]&&(r.skipFactory=!0)}return n},e.mergeModels=function(e,t){return e&&t?E(e)&&E(t)?e.concat(t):T({},rl(e),rl(t)):e||t},e.mergeProps=ik,e.nextTick=tY,e.normalizeClass=ec,e.normalizeProps=function(e){if(!e)return null;let{class:t,style:n}=e;return t&&!M(t)&&(e.class=ec(t)),n&&(e.style=ei(n)),e},e.normalizeStyle=ei,e.onActivated=nj,e.onBeforeMount=nG,e.onBeforeUnmount=nY,e.onBeforeUpdate=nQ,e.onDeactivated=nH,e.onErrorCaptured=n6,e.onMounted=nX,e.onRenderTracked=n3,e.onRenderTriggered=n2,e.onScopeDispose=function(e,t=!1){l&&l.cleanups.push(e)},e.onServerPrefetch=n1,e.onUnmounted=n0,e.onUpdated=nZ,e.onWatcherCleanup=tU,e.openBlock=il,e.popScopeId=function(){t5=null},e.provide=rb,e.proxyRefs=tO,e.pushScopeId=function(e){t5=e},e.queuePostFlushCb=t2,e.reactive=th,e.readonly=tm,e.ref=tN,e.registerRuntimeCompiler=i$,e.render=l0,e.renderList=function(e,t,n,r){let i,l=n&&n[r],s=E(e);if(s||M(e)){let n=s&&tv(e),r=!1,o=!1;n&&(r=!tb(e),o=ty(e),e=ez(e)),i=Array(e.length);for(let n=0,s=e.length;nt(e,n,void 0,l&&l[n]));else{let n=Object.keys(e);i=Array(n.length);for(let r=0,s=n.length;r!id(t)||t.type!==ie&&(t.type!==r9||!!e(t.children)))?t:null}(l(n)),o=n.key||s&&s.key,a=iu(r9,{key:(o&&!$(o)?o:`_${t}`)+(!s&&r?"_fb":"")},s||(r?r():[]),s&&1===e._?64:-2);return!i&&a.scopeId&&(a.slotScopeIds=[a.scopeId+"-s"]),l&&l._c&&(l._d=!0),a},e.resolveComponent=function(e,t){return n5(n4,e,!0,t)||e},e.resolveDirective=function(e){return n5("directives",e)},e.resolveDynamicComponent=function(e){return M(e)?n5(n4,e,!1)||e:e||n8},e.resolveFilter=null,e.resolveTransitionHooks=n_,e.setBlockTracking=ia,e.setDevtoolsHook=S,e.setTransitionHooks=nC,e.shallowReactive=tf,e.shallowReadonly=function(e){return tg(e,!0,te,ta,tp)},e.shallowRef=tw,e.ssrContextKey=rj,e.ssrUtils=null,e.stop=function(e){e.effect.stop()},e.toDisplayString=ey,e.toHandlerKey=X,e.toHandlers=function(e,t){let n={};for(let r in e)n[t&&/[A-Z]/.test(r)?`on:${r}`:X(r)]=e[r];return n},e.toRaw=tS,e.toRef=function(e,t,n){return tT(e)?e:P(e)?new tL(e):L(e)&&arguments.length>1?tD(e,t,n):tN(e)},e.toRefs=function(e){let t=E(e)?Array(e.length):{};for(let n in e)t[n]=tD(e,n);return t},e.toValue=function(e){return P(e)?e():tI(e)},e.transformVNodeArgs=function(e){},e.triggerRef=function(e){e.dep&&e.dep.trigger()},e.unref=tI,e.useAttrs=function(){return ri().attrs},e.useCssModule=function(e="$style"){return b},e.useCssVars=function(e){let t=iE();if(!t)return;let n=t.ut=(n=e(t.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${t.uid}"]`)).forEach(e=>lo(e,n))},r=()=>{let r=e(t.proxy);t.ce?lo(t.ce,r):function e(t,n){if(128&t.shapeFlag){let r=t.suspense;t=r.activeBranch,r.pendingBranch&&!r.isHydrating&&r.effects.push(()=>{e(r.activeBranch,n)})}for(;t.component;)t=t.component.subTree;if(1&t.shapeFlag&&t.el)lo(t.el,n);else if(t.type===r9)t.children.forEach(t=>e(t,n));else if(t.type===it){let{el:e,anchor:r}=t;for(;e&&(lo(e,n),e!==r);)e=e.nextSibling}}(t.subTree,r),n(r)};nQ(()=>{t2(r)}),nX(()=>{rq(r,S,{flush:"post"});let e=new MutationObserver(r);e.observe(t.subTree.el.parentNode,{childList:!0}),n0(()=>e.disconnect())})},e.useHost=lN,e.useId=function(){let e=iE();return e?(e.appContext.config.idPrefix||"v")+"-"+e.ids[0]+e.ids[1]++:""},e.useModel=function(e,t,n=b){let r=iE(),i=K(t),l=J(t),s=rz(e,i),o=tM((s,o)=>{let a,c,u=b;return rH(()=>{let t=e[i];Q(a,t)&&(a=t,o())}),{get:()=>(s(),n.get?n.get(a):a),set(e){let s=n.set?n.set(e):e;if(!Q(s,a)&&!(u!==b&&Q(e,u)))return;let d=r.vnode.props;d&&(t in d||i in d||l in d)&&(`onUpdate:${t}`in d||`onUpdate:${i}`in d||`onUpdate:${l}`in d)||(a=e,o()),r.emit(`update:${t}`,s),Q(e,s)&&Q(e,u)&&!Q(s,c)&&o(),u=e,c=s}}});return o[Symbol.iterator]=()=>{let e=0;return{next:()=>e<2?{value:e++?s||b:o,done:!1}:{done:!0}}},o},e.useSSRContext=()=>{},e.useShadowRoot=function(){let e=lN();return e&&e.shadowRoot},e.useSlots=function(){return ri().slots},e.useTemplateRef=function(e){let t=iE(),n=tw(null);return t&&Object.defineProperty(t.refs===b?t.refs={}:t.refs,e,{enumerable:!0,get:()=>n.value,set:e=>n.value=e}),n},e.useTransitionState=nh,e.vModelCheckbox=lB,e.vModelDynamic={created(e,t,n){lz(e,t,n,null,"created")},mounted(e,t,n){lz(e,t,n,null,"mounted")},beforeUpdate(e,t,n,r){lz(e,t,n,r,"beforeUpdate")},updated(e,t,n,r){lz(e,t,n,r,"updated")}},e.vModelRadio=lj,e.vModelSelect=lH,e.vModelText=lV,e.vShow={beforeMount(e,{value:t},{transition:n}){e[lr]="none"===e.style.display?"":e.style.display,n&&t?n.beforeEnter(e):ll(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),ll(e,!0),r.enter(e)):r.leave(e,()=>{ll(e,!1)}):ll(e,t))},beforeUnmount(e,{value:t}){ll(e,t)}},e.version=iq,e.warn=S,e.watch=function(e,t,n){return rq(e,t,n)},e.watchEffect=function(e,t){return rq(e,null,t)},e.watchPostEffect=function(e,t){return rq(e,null,{flush:"post"})},e.watchSyncEffect=rH,e.withAsyncContext=function(e){let t=iE(),n=e();return iR(),D(n)&&(n=n.catch(e=>{throw iI(t),e})),[n,()=>iI(t)]},e.withCtx=t7,e.withDefaults=function(e,t){return null},e.withDirectives=function(e,t){if(null===t8)return e;let n=iV(t8),r=e.dirs||(e.dirs=[]);for(let e=0;e{let n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=n=>{if(!("key"in n))return;let r=J(n.key);if(t.some(e=>e===r||lX[e]===r))return e(n)})},e.withMemo=function(e,t,n,r){let i=n[r];if(i&&iH(i,e))return i;let l=t();return l.memo=e.slice(),l.cacheIndex=r,n[r]=l},e.withModifiers=(e,t)=>{let n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=(n,...r)=>{for(let e=0;et7,e}({}); \ No newline at end of file