// ==UserScript==
// @name B站美化壁纸屏蔽插件[水果玉米]
// @description 删除推送, 专心学习, 设置B站壁纸
// @namespace npm/vite-plugin-monkey
// @version 2.0.1
// @author QQ2402398917
// @icon https://i0.hdslb.com/bfs/static/jinkela/long/images/favicon.ico
// @match https://www.bilibili.com/*
// @exclude https://www.bilibili.com/*/*
// @require https://cdn.jsdelivr.net/npm/vue@3.5.12/dist/vue.global.prod.js
// @grant GM_addStyle
// @grant GM_getValue
// @grant GM_registerMenuCommand
// @grant GM_setValue
// ==/UserScript==
(e=>{if(typeof GM_addStyle=="function"){GM_addStyle(e);return}const l=document.createElement("style");l.textContent=e,document.head.append(l)})(` @charset "UTF-8";.wallpaper-item[data-v-0166ab8b]{height:100vh;width:100%;position:absolute;top:0;z-index:23;background-repeat:no-repeat;background-color:var(--wallpaper-bg-color);background-size:var(--wallpaper-size);background-position:var(--wallpaper-pos-x) var(--wallpaper-pos-y);transition:translate var(--scroll-duration) var(--scroll-timing-function)}.wallpaper-item.hidden[data-v-0166ab8b]{translate:0 -100vh}:root{--el-color-white:#ffffff;--el-color-black:#000000;--el-color-primary-rgb:64,158,255;--el-color-success-rgb:103,194,58;--el-color-warning-rgb:230,162,60;--el-color-danger-rgb:245,108,108;--el-color-error-rgb:245,108,108;--el-color-info-rgb:144,147,153;--el-font-size-extra-large:20px;--el-font-size-large:18px;--el-font-size-medium:16px;--el-font-size-base:14px;--el-font-size-small:13px;--el-font-size-extra-small:12px;--el-font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","\u5FAE\u8F6F\u96C5\u9ED1",Arial,sans-serif;--el-font-weight-primary:500;--el-font-line-height-primary:24px;--el-index-normal:1;--el-index-top:1000;--el-index-popper:2000;--el-border-radius-base:4px;--el-border-radius-small:2px;--el-border-radius-round:20px;--el-border-radius-circle:100%;--el-transition-duration:.3s;--el-transition-duration-fast:.2s;--el-transition-function-ease-in-out-bezier:cubic-bezier(.645,.045,.355,1);--el-transition-function-fast-bezier:cubic-bezier(.23,1,.32,1);--el-transition-all:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);--el-transition-fade:opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-md-fade:transform var(--el-transition-duration) var(--el-transition-function-fast-bezier),opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-fade-linear:opacity var(--el-transition-duration-fast) linear;--el-transition-border:border-color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-box-shadow:box-shadow var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-color:color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-component-size-large:40px;--el-component-size:32px;--el-component-size-small:24px;color-scheme:light;--el-color-primary:#409eff;--el-color-primary-light-3:rgb(121.3,187.1,255);--el-color-primary-light-5:rgb(159.5,206.5,255);--el-color-primary-light-7:rgb(197.7,225.9,255);--el-color-primary-light-8:rgb(216.8,235.6,255);--el-color-primary-light-9:rgb(235.9,245.3,255);--el-color-primary-dark-2:rgb(51.2,126.4,204);--el-color-success:#67c23a;--el-color-success-light-3:rgb(148.6,212.3,117.1);--el-color-success-light-5:rgb(179,224.5,156.5);--el-color-success-light-7:rgb(209.4,236.7,195.9);--el-color-success-light-8:rgb(224.6,242.8,215.6);--el-color-success-light-9:rgb(239.8,248.9,235.3);--el-color-success-dark-2:rgb(82.4,155.2,46.4);--el-color-warning:#e6a23c;--el-color-warning-light-3:rgb(237.5,189.9,118.5);--el-color-warning-light-5:rgb(242.5,208.5,157.5);--el-color-warning-light-7:rgb(247.5,227.1,196.5);--el-color-warning-light-8:rgb(250,236.4,216);--el-color-warning-light-9:rgb(252.5,245.7,235.5);--el-color-warning-dark-2:rgb(184,129.6,48);--el-color-danger:#f56c6c;--el-color-danger-light-3:rgb(248,152.1,152.1);--el-color-danger-light-5:rgb(250,181.5,181.5);--el-color-danger-light-7:rgb(252,210.9,210.9);--el-color-danger-light-8:rgb(253,225.6,225.6);--el-color-danger-light-9:rgb(254,240.3,240.3);--el-color-danger-dark-2:rgb(196,86.4,86.4);--el-color-error:#f56c6c;--el-color-error-light-3:rgb(248,152.1,152.1);--el-color-error-light-5:rgb(250,181.5,181.5);--el-color-error-light-7:rgb(252,210.9,210.9);--el-color-error-light-8:rgb(253,225.6,225.6);--el-color-error-light-9:rgb(254,240.3,240.3);--el-color-error-dark-2:rgb(196,86.4,86.4);--el-color-info:#909399;--el-color-info-light-3:rgb(177.3,179.4,183.6);--el-color-info-light-5:rgb(199.5,201,204);--el-color-info-light-7:rgb(221.7,222.6,224.4);--el-color-info-light-8:rgb(232.8,233.4,234.6);--el-color-info-light-9:rgb(243.9,244.2,244.8);--el-color-info-dark-2:rgb(115.2,117.6,122.4);--el-bg-color:#ffffff;--el-bg-color-page:#f2f3f5;--el-bg-color-overlay:#ffffff;--el-text-color-primary:#303133;--el-text-color-regular:#606266;--el-text-color-secondary:#909399;--el-text-color-placeholder:#a8abb2;--el-text-color-disabled:#c0c4cc;--el-border-color:#dcdfe6;--el-border-color-light:#e4e7ed;--el-border-color-lighter:#ebeef5;--el-border-color-extra-light:#f2f6fc;--el-border-color-dark:#d4d7de;--el-border-color-darker:#cdd0d6;--el-fill-color:#f0f2f5;--el-fill-color-light:#f5f7fa;--el-fill-color-lighter:#fafafa;--el-fill-color-extra-light:#fafcff;--el-fill-color-dark:#ebedf0;--el-fill-color-darker:#e6e8eb;--el-fill-color-blank:#ffffff;--el-box-shadow:0px 12px 32px 4px rgba(0,0,0,.04),0px 8px 20px rgba(0,0,0,.08);--el-box-shadow-light:0px 0px 12px rgba(0,0,0,.12);--el-box-shadow-lighter:0px 0px 6px rgba(0,0,0,.12);--el-box-shadow-dark:0px 16px 48px 16px rgba(0,0,0,.08),0px 12px 32px rgba(0,0,0,.12),0px 8px 16px -8px rgba(0,0,0,.16);--el-disabled-bg-color:var(--el-fill-color-light);--el-disabled-text-color:var(--el-text-color-placeholder);--el-disabled-border-color:var(--el-border-color-light);--el-overlay-color:rgba(0,0,0,.8);--el-overlay-color-light:rgba(0,0,0,.7);--el-overlay-color-lighter:rgba(0,0,0,.5);--el-mask-color:rgba(255,255,255,.9);--el-mask-color-extra-light:rgba(255,255,255,.3);--el-border-width:1px;--el-border-style:solid;--el-border-color-hover:var(--el-text-color-disabled);--el-border:var(--el-border-width) var(--el-border-style) var(--el-border-color);--el-svg-monochrome-grey:var(--el-border-color)}.el-icon-loading{animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.el-icon{--color:inherit;align-items:center;display:inline-flex;height:1em;justify-content:center;line-height:1em;position:relative;width:1em;fill:currentColor;color:var(--color);font-size:inherit}.el-icon.is-loading{animation:rotating 2s linear infinite}.el-icon svg{height:1em;width:1em}.el-dialog{--el-dialog-width:50%;--el-dialog-margin-top:15vh;--el-dialog-bg-color:var(--el-bg-color);--el-dialog-box-shadow:var(--el-box-shadow);--el-dialog-title-font-size:var(--el-font-size-large);--el-dialog-content-font-size:14px;--el-dialog-font-line-height:var(--el-font-line-height-primary);--el-dialog-padding-primary:16px;--el-dialog-border-radius:var(--el-border-radius-base);background:var(--el-dialog-bg-color);border-radius:var(--el-dialog-border-radius);box-shadow:var(--el-dialog-box-shadow);box-sizing:border-box;margin:var(--el-dialog-margin-top,15vh) auto 50px;overflow-wrap:break-word;padding:var(--el-dialog-padding-primary);position:relative;width:var(--el-dialog-width,50%)}.el-dialog:focus{outline:none!important}.el-dialog.is-align-center{margin:auto}.el-dialog.is-fullscreen{--el-dialog-width:100%;--el-dialog-margin-top:0;height:100%;margin-bottom:0;overflow:auto}.el-dialog__wrapper{bottom:0;left:0;margin:0;overflow:auto;position:fixed;right:0;top:0}.el-dialog.is-draggable .el-dialog__header{cursor:move;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-dialog__header{padding-bottom:var(--el-dialog-padding-primary)}.el-dialog__header.show-close{padding-right:calc(var(--el-dialog-padding-primary) + var(--el-message-close-size, 16px))}.el-dialog__headerbtn{background:transparent;border:none;cursor:pointer;font-size:var(--el-message-close-size,16px);height:48px;outline:none;padding:0;position:absolute;right:0;top:0;width:48px}.el-dialog__headerbtn .el-dialog__close{color:var(--el-color-info);font-size:inherit}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:var(--el-color-primary)}.el-dialog__title{color:var(--el-text-color-primary);font-size:var(--el-dialog-title-font-size);line-height:var(--el-dialog-font-line-height)}.el-dialog__body{color:var(--el-text-color-regular);font-size:var(--el-dialog-content-font-size)}.el-dialog__footer{box-sizing:border-box;padding-top:var(--el-dialog-padding-primary);text-align:right}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial}.el-dialog--center .el-dialog__footer{text-align:inherit}.el-overlay-dialog{bottom:0;left:0;overflow:auto;position:fixed;right:0;top:0}.dialog-fade-enter-active{animation:modal-fade-in var(--el-transition-duration)}.dialog-fade-enter-active .el-overlay-dialog{animation:dialog-fade-in var(--el-transition-duration)}.dialog-fade-leave-active{animation:modal-fade-out var(--el-transition-duration)}.dialog-fade-leave-active .el-overlay-dialog{animation:dialog-fade-out var(--el-transition-duration)}@keyframes dialog-fade-in{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes dialog-fade-out{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(0,-20px,0)}}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-fade-out{0%{opacity:1}to{opacity:0}}.el-overlay{background-color:var(--el-overlay-color-lighter);bottom:0;height:100%;left:0;overflow:auto;position:fixed;right:0;top:0;z-index:2000}.el-overlay .el-overlay-root{height:0}.el-tabs{--el-tabs-header-height:40px;display:flex}.el-tabs__header{align-items:center;display:flex;justify-content:space-between;margin:0 0 15px;padding:0;position:relative}.el-tabs__header-vertical{flex-direction:column}.el-tabs__active-bar{background-color:var(--el-color-primary);bottom:0;height:2px;left:0;list-style:none;position:absolute;transition:width var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier),transform var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);z-index:1}.el-tabs__new-tab{align-items:center;border:1px solid var(--el-border-color);border-radius:3px;color:var(--el-text-color-primary);cursor:pointer;display:flex;font-size:12px;height:20px;justify-content:center;line-height:20px;margin:10px 0 10px 10px;text-align:center;transition:all .15s;width:20px}.el-tabs__new-tab .is-icon-plus{height:inherit;transform:scale(.8);width:inherit}.el-tabs__new-tab .is-icon-plus svg{vertical-align:middle}.el-tabs__new-tab:hover{color:var(--el-color-primary)}.el-tabs__new-tab-vertical{margin-left:0}.el-tabs__nav-wrap{flex:1 auto;margin-bottom:-1px;overflow:hidden;position:relative}.el-tabs__nav-wrap:after{background-color:var(--el-border-color-light);bottom:0;content:"";height:2px;left:0;position:absolute;width:100%;z-index:var(--el-index-normal)}.el-tabs__nav-wrap.is-scrollable{box-sizing:border-box;padding:0 20px}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{color:var(--el-text-color-secondary);cursor:pointer;font-size:12px;line-height:44px;position:absolute;text-align:center;width:20px}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{display:flex;float:left;position:relative;transition:transform var(--el-transition-duration);white-space:nowrap;z-index:calc(var(--el-index-normal) + 1)}.el-tabs__nav.is-stretch{display:flex;min-width:100%}.el-tabs__nav.is-stretch>*{flex:1;text-align:center}.el-tabs__item{align-items:center;box-sizing:border-box;color:var(--el-text-color-primary);display:flex;font-size:var(--el-font-size-base);font-weight:500;height:var(--el-tabs-header-height);justify-content:center;list-style:none;padding:0 20px;position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:none}.el-tabs__item:focus-visible{border-radius:3px;box-shadow:0 0 2px 2px var(--el-color-primary) inset}.el-tabs__item .is-icon-close{border-radius:50%;margin-left:5px;text-align:center;transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier)}.el-tabs__item .is-icon-close:before{display:inline-block;transform:scale(.9)}.el-tabs__item .is-icon-close:hover{background-color:var(--el-text-color-placeholder);color:#fff}.el-tabs__item.is-active,.el-tabs__item:hover{color:var(--el-color-primary)}.el-tabs__item:hover{cursor:pointer}.el-tabs__item.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-tabs__content{flex-grow:1;overflow:hidden;position:relative}.el-tabs--bottom>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:0}.el-tabs--bottom>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top>.el-tabs__header .el-tabs__item:last-child{padding-right:0}.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:20px}.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child{padding-right:20px}.el-tabs--card>.el-tabs__header{border-bottom:1px solid var(--el-border-color-light);height:var(--el-tabs-header-height)}.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid var(--el-border-color-light);border-bottom:none;border-radius:4px 4px 0 0;box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tabs--card>.el-tabs__header .el-tabs__item .is-icon-close{font-size:12px;height:14px;overflow:hidden;position:relative;right:-2px;transform-origin:100% 50%;width:0}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;border-left:1px solid var(--el-border-color-light);transition:color var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier),padding var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier)}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .is-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:var(--el-bg-color)}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .is-icon-close{width:14px}.el-tabs--border-card{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:var(--el-fill-color-light);border-bottom:1px solid var(--el-border-color-light);margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--border-card>.el-tabs__header .el-tabs__item{border:1px solid transparent;color:var(--el-text-color-secondary);margin-top:-1px;transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier)}.el-tabs--border-card>.el-tabs__header .el-tabs__item+.el-tabs__item,.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{background-color:var(--el-bg-color-overlay);border-left-color:var(--el-border-color);border-right-color:var(--el-border-color);color:var(--el-color-primary)}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:var(--el-color-primary)}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:var(--el-disabled-text-color)}.el-tabs--border-card>.el-tabs__header .is-scrollable .el-tabs__item:first-child{margin-left:0}.el-tabs--bottom{flex-direction:column}.el-tabs--bottom .el-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid var(--el-border-color)}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-bottom:0;margin-top:-1px}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid transparent}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-scroll,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{bottom:auto;height:auto;top:0;width:2px}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{cursor:pointer;height:30px;line-height:30px;text-align:center;width:100%}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i{transform:rotate(90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{left:auto;top:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{bottom:0;right:auto}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left:after,.el-tabs--left .el-tabs__nav-wrap.is-right:after,.el-tabs--right .el-tabs__nav-wrap.is-left:after,.el-tabs--right .el-tabs__nav-wrap.is-right:after{bottom:auto;height:100%;top:0;width:2px}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{flex-direction:column}.el-tabs--left .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-left{justify-content:flex-end}.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-right{justify-content:flex-start}.el-tabs--left{flex-direction:row-reverse}.el-tabs--left .el-tabs__header.is-left{margin-bottom:0;margin-right:10px}.el-tabs--left .el-tabs__nav-wrap.is-left{margin-right:-1px}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__nav-wrap.is-left:after{left:auto;right:0}.el-tabs--left .el-tabs__item.is-left{text-align:right}.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left{display:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border-bottom:none;border-left:none;border-right:1px solid var(--el-border-color-light);border-top:1px solid var(--el-border-color-light);text-align:left}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-right:1px solid var(--el-border-color-light);border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:1px solid var(--el-border-color-light);border-bottom:none;border-left:none;border-right:1px solid #fff}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-bottom:1px solid var(--el-border-color-light);border-radius:4px 0 0 4px;border-right:none}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-right:1px solid var(--el-border-color)}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid transparent;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:rgb(209,219,229) transparent}.el-tabs--right .el-tabs__header.is-right{margin-bottom:0;margin-left:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-left:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right:after{left:0;right:auto}.el-tabs--right .el-tabs__active-bar.is-right{left:0}.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid var(--el-border-color-light)}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-left:1px solid var(--el-border-color-light);border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:1px solid var(--el-border-color-light);border-bottom:none;border-left:1px solid #fff;border-right:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-bottom:1px solid var(--el-border-color-light);border-left:none;border-radius:0 4px 4px 0}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-left:1px solid var(--el-border-color)}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid transparent;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:rgb(209,219,229) transparent}.el-tabs--top{flex-direction:column-reverse}.slideInLeft-transition,.slideInRight-transition{display:inline-block}.slideInRight-enter{animation:slideInRight-enter var(--el-transition-duration)}.slideInRight-leave{animation:slideInRight-leave var(--el-transition-duration);left:0;position:absolute;right:0}.slideInLeft-enter{animation:slideInLeft-enter var(--el-transition-duration)}.slideInLeft-leave{animation:slideInLeft-leave var(--el-transition-duration);left:0;position:absolute;right:0}@keyframes slideInRight-enter{0%{opacity:0;transform:translate(100%);transform-origin:0 0}to{opacity:1;transform:translate(0);transform-origin:0 0}}@keyframes slideInRight-leave{0%{opacity:1;transform:translate(0);transform-origin:0 0}to{opacity:0;transform:translate(100%);transform-origin:0 0}}@keyframes slideInLeft-enter{0%{opacity:0;transform:translate(-100%);transform-origin:0 0}to{opacity:1;transform:translate(0);transform-origin:0 0}}@keyframes slideInLeft-leave{0%{opacity:1;transform:translate(0);transform-origin:0 0}to{opacity:0;transform:translate(-100%);transform-origin:0 0}}.el-upload{--el-upload-dragger-padding-horizontal:40px;--el-upload-dragger-padding-vertical:10px;align-items:center;cursor:pointer;display:inline-flex;justify-content:center;outline:none}.el-upload.is-disabled{cursor:not-allowed}.el-upload.is-disabled:focus{color:inherit}.el-upload.is-disabled:focus,.el-upload.is-disabled:focus .el-upload-dragger{border-color:var(--el-border-color-darker)}.el-upload.is-disabled .el-upload-dragger{background-color:var(--el-disabled-bg-color);cursor:not-allowed}.el-upload.is-disabled .el-upload-dragger .el-upload__text{color:var(--el-text-color-placeholder)}.el-upload.is-disabled .el-upload-dragger .el-upload__text em{color:var(--el-disabled-text-color)}.el-upload.is-disabled .el-upload-dragger:hover{border-color:var(--el-border-color-darker)}.el-upload__input{display:none}.el-upload__tip{color:var(--el-text-color-regular);font-size:12px;margin-top:7px}.el-upload iframe{filter:alpha(opacity=0);left:0;opacity:0;position:absolute;top:0;z-index:-1}.el-upload--picture-card{--el-upload-picture-card-size:148px;align-items:center;background-color:var(--el-fill-color-lighter);border:1px dashed var(--el-border-color-darker);border-radius:6px;box-sizing:border-box;cursor:pointer;display:inline-flex;height:var(--el-upload-picture-card-size);justify-content:center;vertical-align:top;width:var(--el-upload-picture-card-size)}.el-upload--picture-card>i{color:var(--el-text-color-secondary);font-size:28px}.el-upload--picture-card:hover{border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-upload.is-drag{display:block}.el-upload:focus{color:var(--el-color-primary)}.el-upload:focus,.el-upload:focus .el-upload-dragger{border-color:var(--el-color-primary)}.el-upload-dragger{background-color:var(--el-fill-color-blank);border:1px dashed var(--el-border-color);border-radius:6px;box-sizing:border-box;cursor:pointer;overflow:hidden;padding:var(--el-upload-dragger-padding-horizontal) var(--el-upload-dragger-padding-vertical);position:relative;text-align:center}.el-upload-dragger .el-icon--upload{color:var(--el-text-color-placeholder);font-size:67px;line-height:50px;margin-bottom:16px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:var(--el-border);margin-top:7px;padding-top:5px}.el-upload-dragger .el-upload__text{color:var(--el-text-color-regular);font-size:14px;text-align:center}.el-upload-dragger .el-upload__text em{color:var(--el-color-primary);font-style:normal}.el-upload-dragger:hover{border-color:var(--el-color-primary)}.el-upload-dragger.is-dragover{background-color:var(--el-color-primary-light-9);border:2px dashed var(--el-color-primary);padding:calc(var(--el-upload-dragger-padding-horizontal) - 1px) calc(var(--el-upload-dragger-padding-vertical) - 1px)}.el-upload-list{list-style:none;margin:10px 0 0;padding:0;position:relative}.el-upload-list__item{border-radius:4px;box-sizing:border-box;color:var(--el-text-color-regular);font-size:14px;margin-bottom:5px;position:relative;transition:all .5s cubic-bezier(.55,0,.1,1);width:100%}.el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.el-upload-list__item .el-progress__text{position:absolute;right:0;top:-13px}.el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.el-upload-list__item .el-icon--upload-success{color:var(--el-color-success)}.el-upload-list__item .el-icon--close{color:var(--el-text-color-regular);cursor:pointer;display:none;opacity:.75;position:absolute;right:5px;top:50%;transform:translateY(-50%);transition:opacity var(--el-transition-duration)}.el-upload-list__item .el-icon--close:hover{color:var(--el-color-primary);opacity:1}.el-upload-list__item .el-icon--close-tip{color:var(--el-color-primary);cursor:pointer;display:none;font-size:12px;font-style:normal;opacity:1;position:absolute;right:5px;top:1px}.el-upload-list__item:hover{background-color:var(--el-fill-color-light)}.el-upload-list__item:hover .el-icon--close{display:inline-flex}.el-upload-list__item:hover .el-progress__text{display:none}.el-upload-list__item .el-upload-list__item-info{display:inline-flex;flex-direction:column;justify-content:center;margin-left:4px;width:calc(100% - 30px)}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:inline-flex}.el-upload-list__item.is-success .el-upload-list__item-name:focus,.el-upload-list__item.is-success .el-upload-list__item-name:hover{color:var(--el-color-primary);cursor:pointer}.el-upload-list__item.is-success:focus:not(:hover) .el-icon--close-tip{display:inline-block}.el-upload-list__item.is-success:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}.el-upload-list__item.is-success:active .el-icon--close-tip,.el-upload-list__item.is-success:not(.focusing):focus .el-icon--close-tip{display:none}.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:hover .el-upload-list__item-status-label{display:none;opacity:0}.el-upload-list__item-name{align-items:center;color:var(--el-text-color-regular);display:inline-flex;font-size:var(--el-font-size-base);padding:0 4px;text-align:center;transition:color var(--el-transition-duration)}.el-upload-list__item-name .el-icon{color:var(--el-text-color-secondary);margin-right:6px}.el-upload-list__item-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-upload-list__item-status-label{align-items:center;display:none;height:100%;justify-content:center;line-height:inherit;position:absolute;right:5px;top:0;transition:opacity var(--el-transition-duration)}.el-upload-list__item-delete{color:var(--el-text-color-regular);display:none;font-size:12px;position:absolute;right:10px;top:0}.el-upload-list__item-delete:hover{color:var(--el-color-primary)}.el-upload-list--picture-card{--el-upload-list-picture-card-size:148px;display:inline-flex;flex-wrap:wrap;margin:0}.el-upload-list--picture-card .el-upload-list__item{background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;display:inline-flex;height:var(--el-upload-list-picture-card-size);margin:0 8px 8px 0;overflow:hidden;padding:0;width:var(--el-upload-list-picture-card-size)}.el-upload-list--picture-card .el-upload-list__item .el-icon--check,.el-upload-list--picture-card .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture-card .el-upload-list__item .el-icon--close{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{display:block;opacity:0}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{height:100%;-o-object-fit:contain;object-fit:contain;width:100%}.el-upload-list--picture-card .el-upload-list__item-status-label{background:var(--el-color-success);height:24px;right:-15px;text-align:center;top:-6px;transform:rotate(45deg);width:40px}.el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{align-items:center;background-color:var(--el-overlay-color-lighter);color:#fff;cursor:default;display:inline-flex;font-size:20px;height:100%;justify-content:center;left:0;opacity:0;position:absolute;top:0;transition:opacity var(--el-transition-duration);width:100%}.el-upload-list--picture-card .el-upload-list__item-actions span{cursor:pointer;display:none}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:16px}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{color:inherit;font-size:inherit;position:static}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-flex}.el-upload-list--picture-card .el-progress{bottom:auto;left:50%;top:50%;transform:translate(-50%,-50%);width:126px}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{align-items:center;background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;display:flex;margin-top:10px;overflow:hidden;padding:10px;z-index:0}.el-upload-list--picture .el-upload-list__item .el-icon--check,.el-upload-list--picture .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{display:inline-flex;opacity:0}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item .el-icon--close{top:5px;transform:translateY(0)}.el-upload-list--picture .el-upload-list__item-thumbnail{align-items:center;background-color:var(--el-color-white);display:inline-flex;height:70px;justify-content:center;-o-object-fit:contain;object-fit:contain;position:relative;width:70px;z-index:1}.el-upload-list--picture .el-upload-list__item-status-label{background:var(--el-color-success);height:26px;position:absolute;right:-17px;text-align:center;top:-7px;transform:rotate(45deg);width:46px}.el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{cursor:default;height:100%;left:0;overflow:hidden;position:absolute;top:0;width:100%;z-index:10}.el-upload-cover:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-upload-cover img{display:block;height:100%;width:100%}.el-upload-cover__label{background:var(--el-color-success);height:24px;right:-15px;text-align:center;top:-6px;transform:rotate(45deg);width:40px}.el-upload-cover__label i{color:#fff;font-size:12px;margin-top:11px;transform:rotate(-45deg)}.el-upload-cover__progress{display:inline-block;position:static;vertical-align:middle;width:243px}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{height:100%;left:0;position:absolute;top:0;width:100%}.el-upload-cover__interact{background-color:var(--el-overlay-color-light);bottom:0;height:100%;left:0;position:absolute;text-align:center;width:100%}.el-upload-cover__interact .btn{color:#fff;cursor:pointer;display:inline-block;font-size:14px;margin-top:60px;transition:var(--el-transition-md-fade);vertical-align:middle}.el-upload-cover__interact .btn i{margin-top:0}.el-upload-cover__interact .btn span{opacity:0;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.el-upload-cover__interact .btn:hover{transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#fff;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.el-upload-cover__title{background-color:#fff;bottom:0;color:var(--el-text-color-primary);font-size:14px;font-weight:400;height:36px;left:0;line-height:36px;margin:0;overflow:hidden;padding:0 10px;position:absolute;text-align:left;text-overflow:ellipsis;white-space:nowrap;width:100%}.el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}.el-progress{align-items:center;display:flex;line-height:1;position:relative}.el-progress__text{color:var(--el-text-color-regular);font-size:14px;line-height:1;margin-left:5px;min-width:50px}.el-progress__text i{display:block;vertical-align:middle}.el-progress--circle,.el-progress--dashboard{display:inline-block}.el-progress--circle .el-progress__text,.el-progress--dashboard .el-progress__text{left:0;margin:0;position:absolute;text-align:center;top:50%;transform:translateY(-50%);width:100%}.el-progress--circle .el-progress__text i,.el-progress--dashboard .el-progress__text i{display:inline-block;vertical-align:middle}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{display:block;margin-right:0;padding-right:0}.el-progress--text-inside .el-progress-bar{margin-right:0;padding-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:var(--el-color-success)}.el-progress.is-success .el-progress__text{color:var(--el-color-success)}.el-progress.is-warning .el-progress-bar__inner{background-color:var(--el-color-warning)}.el-progress.is-warning .el-progress__text{color:var(--el-color-warning)}.el-progress.is-exception .el-progress-bar__inner{background-color:var(--el-color-danger)}.el-progress.is-exception .el-progress__text{color:var(--el-color-danger)}.el-progress-bar{box-sizing:border-box;flex-grow:1}.el-progress-bar__outer{background-color:var(--el-border-color-lighter);border-radius:100px;height:6px;overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{background-color:var(--el-color-primary);border-radius:100px;height:100%;left:0;line-height:1;position:absolute;text-align:right;top:0;transition:width .6s ease;white-space:nowrap}.el-progress-bar__inner:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-progress-bar__inner--indeterminate{animation:indeterminate 3s infinite;transform:translateZ(0)}.el-progress-bar__inner--striped{background-image:linear-gradient(45deg,rgba(0,0,0,.1) 25%,transparent 0,transparent 50%,rgba(0,0,0,.1) 0,rgba(0,0,0,.1) 75%,transparent 0,transparent);background-size:1.25em 1.25em}.el-progress-bar__inner--striped.el-progress-bar__inner--striped-flow{animation:striped-flow 3s linear infinite}.el-progress-bar__innerText{color:#fff;display:inline-block;font-size:12px;margin:0 5px;vertical-align:middle}@keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}@keyframes indeterminate{0%{left:-100%}to{left:100%}}@keyframes striped-flow{0%{background-position:-100%}to{background-position:100%}}.el-textarea{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;display:inline-block;font-size:var(--el-font-size-base);position:relative;vertical-align:bottom;width:100%}.el-textarea__inner{-webkit-appearance:none;background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;border:none;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;box-sizing:border-box;color:var(--el-input-text-color,var(--el-text-color-regular));display:block;font-family:inherit;font-size:inherit;line-height:1.5;padding:5px 11px;position:relative;resize:vertical;transition:var(--el-transition-box-shadow);width:100%}.el-textarea__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-textarea__inner:focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset;outline:none}.el-textarea .el-input__count{background:var(--el-fill-color-blank);bottom:5px;color:var(--el-color-info);font-size:12px;line-height:14px;position:absolute;right:10px}.el-textarea.is-disabled .el-textarea__inner{background-color:var(--el-disabled-bg-color);box-shadow:0 0 0 1px var(--el-disabled-border-color) inset;color:var(--el-disabled-text-color);cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-exceed .el-textarea__inner{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-textarea.is-exceed .el-input__count{color:var(--el-color-danger)}.el-input{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;--el-input-height:var(--el-component-size);box-sizing:border-box;display:inline-flex;font-size:var(--el-font-size-base);line-height:var(--el-input-height);position:relative;vertical-align:middle;width:var(--el-input-width)}.el-input::-webkit-scrollbar{width:6px;z-index:11}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{background:var(--el-text-color-disabled);border-radius:5px;width:6px}.el-input::-webkit-scrollbar-corner,.el-input::-webkit-scrollbar-track{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track-piece{background:var(--el-fill-color-blank);width:6px}.el-input .el-input__clear,.el-input .el-input__password{color:var(--el-input-icon-color);cursor:pointer;font-size:14px}.el-input .el-input__clear:hover,.el-input .el-input__password:hover{color:var(--el-input-clear-hover-color)}.el-input .el-input__count{align-items:center;color:var(--el-color-info);display:inline-flex;font-size:12px;height:100%}.el-input .el-input__count .el-input__count-inner{background:var(--el-fill-color-blank);display:inline-block;line-height:normal;padding-left:8px}.el-input__wrapper{align-items:center;background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;cursor:text;display:inline-flex;flex-grow:1;justify-content:center;padding:1px 11px;transform:translateZ(0);transition:var(--el-transition-box-shadow)}.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 32px) - 2px);-webkit-appearance:none;background:none;border:none;box-sizing:border-box;color:var(--el-input-text-color,var(--el-text-color-regular));flex-grow:1;font-size:inherit;height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);outline:none;padding:0;width:100%}.el-input__inner:focus{outline:none}.el-input__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner[type=password]::-ms-reveal{display:none}.el-input__inner[type=number]{line-height:1}.el-input__prefix{color:var(--el-input-icon-color,var(--el-text-color-placeholder));display:inline-flex;flex-shrink:0;flex-wrap:nowrap;height:100%;pointer-events:none;text-align:center;transition:all var(--el-transition-duration);white-space:nowrap}.el-input__prefix-inner{align-items:center;display:inline-flex;justify-content:center;pointer-events:all}.el-input__prefix-inner>:last-child{margin-right:8px}.el-input__prefix-inner>:first-child,.el-input__prefix-inner>:first-child.el-input__icon{margin-left:0}.el-input__suffix{color:var(--el-input-icon-color,var(--el-text-color-placeholder));display:inline-flex;flex-shrink:0;flex-wrap:nowrap;height:100%;pointer-events:none;text-align:center;transition:all var(--el-transition-duration);white-space:nowrap}.el-input__suffix-inner{align-items:center;display:inline-flex;justify-content:center;pointer-events:all}.el-input__suffix-inner>:first-child{margin-left:8px}.el-input .el-input__icon{align-items:center;display:flex;height:inherit;justify-content:center;line-height:inherit;margin-left:8px;transition:all var(--el-transition-duration)}.el-input__validateIcon{pointer-events:none}.el-input.is-active .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-color, ) inset}.el-input.is-disabled{cursor:not-allowed}.el-input.is-disabled .el-input__wrapper{background-color:var(--el-disabled-bg-color);box-shadow:0 0 0 1px var(--el-disabled-border-color) inset}.el-input.is-disabled .el-input__inner{color:var(--el-disabled-text-color);-webkit-text-fill-color:var(--el-disabled-text-color);cursor:not-allowed}.el-input.is-disabled .el-input__inner::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__inner::placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-exceed .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-input.is-exceed .el-input__suffix .el-input__count{color:var(--el-color-danger)}.el-input--large{--el-input-height:var(--el-component-size-large);font-size:14px}.el-input--large .el-input__wrapper{padding:1px 15px}.el-input--large .el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 40px) - 2px)}.el-input--small{--el-input-height:var(--el-component-size-small);font-size:12px}.el-input--small .el-input__wrapper{padding:1px 7px}.el-input--small .el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 24px) - 2px)}.el-input-group{align-items:stretch;display:inline-flex;width:100%}.el-input-group__append,.el-input-group__prepend{align-items:center;background-color:var(--el-fill-color-light);border-radius:var(--el-input-border-radius);color:var(--el-color-info);display:inline-flex;justify-content:center;min-height:100%;padding:0 20px;position:relative;white-space:nowrap}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:none}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:0 -20px}.el-input-group__append button.el-button,.el-input-group__append button.el-button:hover,.el-input-group__append div.el-select .el-select__wrapper,.el-input-group__append div.el-select:hover .el-select__wrapper,.el-input-group__prepend button.el-button,.el-input-group__prepend button.el-button:hover,.el-input-group__prepend div.el-select .el-select__wrapper,.el-input-group__prepend div.el-select:hover .el-select__wrapper{background-color:transparent;border-color:transparent;color:inherit}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-bottom-right-radius:0;border-right:0;border-top-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group__append{border-left:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-group--prepend>.el-input__wrapper,.el-input-group__append{border-bottom-left-radius:0;border-top-left-radius:0}.el-input-group--prepend .el-input-group__prepend .el-select .el-select__wrapper{border-bottom-right-radius:0;border-top-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group--append>.el-input__wrapper{border-bottom-right-radius:0;border-top-right-radius:0}.el-input-group--append .el-input-group__append .el-select .el-select__wrapper{border-bottom-left-radius:0;border-top-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-hidden{display:none!important}.el-input-number{display:inline-flex;line-height:30px;position:relative;vertical-align:middle;width:150px}.el-input-number .el-input__wrapper{padding-left:42px;padding-right:42px}.el-input-number .el-input__inner{-webkit-appearance:none;-moz-appearance:textfield;line-height:1;text-align:center}.el-input-number .el-input__inner::-webkit-inner-spin-button,.el-input-number .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-input-number__decrease,.el-input-number__increase{align-items:center;background:var(--el-fill-color-light);bottom:1px;color:var(--el-text-color-regular);cursor:pointer;display:flex;font-size:13px;height:auto;justify-content:center;position:absolute;top:1px;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:32px;z-index:1}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:var(--el-color-primary)}.el-input-number__decrease:hover~.el-input:not(.is-disabled) .el-input__wrapper,.el-input-number__increase:hover~.el-input:not(.is-disabled) .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color,var(--el-color-primary)) inset}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-input-number__increase{border-left:var(--el-border);border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0;right:1px}.el-input-number__decrease{border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);border-right:var(--el-border);left:1px}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:var(--el-disabled-border-color);color:var(--el-disabled-border-color)}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:var(--el-disabled-border-color);cursor:not-allowed}.el-input-number--large{line-height:38px;width:180px}.el-input-number--large .el-input-number__decrease,.el-input-number--large .el-input-number__increase{font-size:14px;width:40px}.el-input-number--large .el-input--large .el-input__wrapper{padding-left:47px;padding-right:47px}.el-input-number--small{line-height:22px;width:120px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{font-size:12px;width:24px}.el-input-number--small .el-input--small .el-input__wrapper{padding-left:31px;padding-right:31px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [class*=el-icon]{transform:scale(.9)}.el-input-number.is-without-controls .el-input__wrapper{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__wrapper{padding-left:15px;padding-right:42px}.el-input-number.is-controls-right .el-input-number__decrease,.el-input-number.is-controls-right .el-input-number__increase{--el-input-number-controls-height:15px;height:var(--el-input-number-controls-height);line-height:var(--el-input-number-controls-height)}.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{border-bottom:var(--el-border);border-radius:0 var(--el-border-radius-base) 0 0;bottom:auto;left:auto}.el-input-number.is-controls-right .el-input-number__decrease{border-left:var(--el-border);border-radius:0 0 var(--el-border-radius-base) 0;border-right:none;left:auto;right:1px;top:auto}.el-input-number.is-controls-right[class*=large] [class*=decrease],.el-input-number.is-controls-right[class*=large] [class*=increase]{--el-input-number-controls-height:19px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{--el-input-number-controls-height:11px}.el-popper{--el-popper-border-radius:var(--el-popover-border-radius,4px);border-radius:var(--el-popper-border-radius);font-size:12px;line-height:20px;min-width:10px;overflow-wrap:break-word;padding:5px 11px;position:absolute;visibility:visible;z-index:2000}.el-popper.is-dark{color:var(--el-bg-color)}.el-popper.is-dark,.el-popper.is-dark>.el-popper__arrow:before{background:var(--el-text-color-primary);border:1px solid var(--el-text-color-primary)}.el-popper.is-dark>.el-popper__arrow:before{right:0}.el-popper.is-light,.el-popper.is-light>.el-popper__arrow:before{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light)}.el-popper.is-light>.el-popper__arrow:before{right:0}.el-popper.is-pure{padding:0}.el-popper__arrow,.el-popper__arrow:before{height:10px;position:absolute;width:10px;z-index:-1}.el-popper__arrow:before{background:var(--el-text-color-primary);box-sizing:border-box;content:" ";transform:rotate(45deg)}.el-popper[data-popper-placement^=top]>.el-popper__arrow{bottom:-5px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-bottom-right-radius:2px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow{top:-5px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-top-left-radius:2px}.el-popper[data-popper-placement^=left]>.el-popper__arrow{right:-5px}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-top-right-radius:2px}.el-popper[data-popper-placement^=right]>.el-popper__arrow{left:-5px}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-bottom-left-radius:2px}.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-left-color:transparent!important;border-top-color:transparent!important}.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent!important;border-right-color:transparent!important}.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:transparent!important;border-left-color:transparent!important}.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent!important;border-top-color:transparent!important}.el-checkbox{--el-checkbox-font-size:14px;--el-checkbox-font-weight:var(--el-font-weight-primary);--el-checkbox-text-color:var(--el-text-color-regular);--el-checkbox-input-height:14px;--el-checkbox-input-width:14px;--el-checkbox-border-radius:var(--el-border-radius-small);--el-checkbox-bg-color:var(--el-fill-color-blank);--el-checkbox-input-border:var(--el-border);--el-checkbox-disabled-border-color:var(--el-border-color);--el-checkbox-disabled-input-fill:var(--el-fill-color-light);--el-checkbox-disabled-icon-color:var(--el-text-color-placeholder);--el-checkbox-disabled-checked-input-fill:var(--el-border-color-extra-light);--el-checkbox-disabled-checked-input-border-color:var(--el-border-color);--el-checkbox-disabled-checked-icon-color:var(--el-text-color-placeholder);--el-checkbox-checked-text-color:var(--el-color-primary);--el-checkbox-checked-input-border-color:var(--el-color-primary);--el-checkbox-checked-bg-color:var(--el-color-primary);--el-checkbox-checked-icon-color:var(--el-color-white);--el-checkbox-input-border-color-hover:var(--el-color-primary);align-items:center;color:var(--el-checkbox-text-color);cursor:pointer;display:inline-flex;font-size:var(--el-font-size-base);font-weight:var(--el-checkbox-font-weight);height:var(--el-checkbox-height,32px);margin-right:30px;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.el-checkbox.is-disabled{cursor:not-allowed}.el-checkbox.is-bordered{border:var(--el-border);border-radius:var(--el-border-radius-base);box-sizing:border-box;padding:0 15px 0 9px}.el-checkbox.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-checkbox.is-bordered.is-disabled{border-color:var(--el-border-color-lighter)}.el-checkbox.is-bordered.el-checkbox--large{border-radius:var(--el-border-radius-base);padding:0 19px 0 11px}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__label{font-size:var(--el-font-size-base)}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{border-radius:calc(var(--el-border-radius-base) - 1px);padding:0 11px 0 7px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox input:focus-visible+.el-checkbox__inner{border-radius:var(--el-checkbox-border-radius);outline:2px solid var(--el-checkbox-input-border-color-hover);outline-offset:1px}.el-checkbox__input{cursor:pointer;display:inline-flex;outline:none;position:relative;white-space:nowrap}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:var(--el-checkbox-disabled-input-fill);border-color:var(--el-checkbox-disabled-border-color);cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{border-color:var(--el-checkbox-disabled-icon-color);cursor:not-allowed}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{background-color:var(--el-checkbox-disabled-checked-icon-color);border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:var(--el-disabled-text-color);cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-checked .el-checkbox__inner:after{border-color:var(--el-checkbox-checked-icon-color);transform:rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:var(--el-checkbox-checked-text-color)}.el-checkbox__input.is-focus:not(.is-checked) .el-checkbox__original:not(:focus-visible){border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{background-color:var(--el-checkbox-checked-icon-color);content:"";display:block;height:2px;left:0;position:absolute;right:0;top:5px;transform:scale(.5)}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__inner{background-color:var(--el-checkbox-bg-color);border:var(--el-checkbox-input-border);border-radius:var(--el-checkbox-border-radius);box-sizing:border-box;display:inline-block;height:var(--el-checkbox-input-height);position:relative;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46),outline .25s cubic-bezier(.71,-.46,.29,1.46);width:var(--el-checkbox-input-width);z-index:var(--el-index-normal)}.el-checkbox__inner:hover{border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__inner:after{border:1px solid transparent;border-left:0;border-top:0;box-sizing:content-box;content:"";height:7px;left:4px;position:absolute;top:1px;transform:rotate(45deg) scaleY(0);transform-origin:center;transition:transform .15s ease-in .05s;width:3px}.el-checkbox__original{height:0;margin:0;opacity:0;outline:none;position:absolute;width:0;z-index:-1}.el-checkbox__label{display:inline-block;font-size:var(--el-checkbox-font-size);line-height:1;padding-left:8px}.el-checkbox.el-checkbox--large{height:40px}.el-checkbox.el-checkbox--large .el-checkbox__label{font-size:14px}.el-checkbox.el-checkbox--large .el-checkbox__inner{height:14px;width:14px}.el-checkbox.el-checkbox--small{height:24px}.el-checkbox.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.el-checkbox--small .el-checkbox__input.is-indeterminate .el-checkbox__inner:before{top:4px}.el-checkbox.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox:last-of-type{margin-right:0}.upload-item .cell[data-v-b8caab98]{margin-bottom:10px;display:flex;align-items:center;justify-content:space-between}.upload-item .cell .right[data-v-b8caab98]{display:flex;align-items:center}.upload-item .label[data-v-b8caab98]{margin-right:10px}.upload-item .input[data-v-b8caab98]{flex:1}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transform-origin:center top;transition:var(--el-transition-md-fade)}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transform-origin:center bottom;transition:var(--el-transition-md-fade)}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transform-origin:top left;transition:var(--el-transition-md-fade)}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-enter-active,.el-collapse-transition-leave-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-collapse{--el-collapse-border-color:var(--el-border-color-lighter);--el-collapse-header-height:48px;--el-collapse-header-bg-color:var(--el-fill-color-blank);--el-collapse-header-text-color:var(--el-text-color-primary);--el-collapse-header-font-size:13px;--el-collapse-content-bg-color:var(--el-fill-color-blank);--el-collapse-content-font-size:13px;--el-collapse-content-text-color:var(--el-text-color-primary);border-bottom:1px solid var(--el-collapse-border-color);border-top:1px solid var(--el-collapse-border-color)}.el-collapse-item.is-disabled .el-collapse-item__header{color:var(--el-text-color-disabled);cursor:not-allowed}.el-collapse-item__header{align-items:center;background-color:var(--el-collapse-header-bg-color);border:none;border-bottom:1px solid var(--el-collapse-border-color);color:var(--el-collapse-header-text-color);cursor:pointer;display:flex;font-size:var(--el-collapse-header-font-size);font-weight:500;height:var(--el-collapse-header-height);line-height:var(--el-collapse-header-height);outline:none;padding:0;transition:border-bottom-color var(--el-transition-duration);width:100%}.el-collapse-item__arrow{font-weight:300;margin:0 8px 0 auto;transition:transform var(--el-transition-duration)}.el-collapse-item__arrow.is-active{transform:rotate(90deg)}.el-collapse-item__header.focusing:focus:not(:hover){color:var(--el-color-primary)}.el-collapse-item__header.is-active{border-bottom-color:transparent}.el-collapse-item__wrap{background-color:var(--el-collapse-content-bg-color);border-bottom:1px solid var(--el-collapse-border-color);box-sizing:border-box;overflow:hidden;will-change:height}.el-collapse-item__content{color:var(--el-collapse-content-text-color);font-size:var(--el-collapse-content-font-size);line-height:1.7692307692;padding-bottom:25px}.el-collapse-item:last-child{margin-bottom:-1px}.el-scrollbar{--el-scrollbar-opacity:.3;--el-scrollbar-bg-color:var(--el-text-color-secondary);--el-scrollbar-hover-opacity:.5;--el-scrollbar-hover-bg-color:var(--el-text-color-secondary);height:100%;overflow:hidden;position:relative}.el-scrollbar__wrap{height:100%;overflow:auto}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{display:none}.el-scrollbar__thumb{background-color:var(--el-scrollbar-bg-color,var(--el-text-color-secondary));border-radius:inherit;cursor:pointer;display:block;height:0;opacity:var(--el-scrollbar-opacity,.3);position:relative;transition:var(--el-transition-duration) background-color;width:0}.el-scrollbar__thumb:hover{background-color:var(--el-scrollbar-hover-bg-color,var(--el-text-color-secondary));opacity:var(--el-scrollbar-hover-opacity,.5)}.el-scrollbar__bar{border-radius:4px;bottom:2px;position:absolute;right:2px;z-index:1}.el-scrollbar__bar.is-vertical{top:2px;width:6px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-scrollbar-fade-enter-active{transition:opacity .34s ease-out}.el-scrollbar-fade-leave-active{transition:opacity .12s ease-out}.el-scrollbar-fade-enter-from,.el-scrollbar-fade-leave-active{opacity:0}.el-empty{--el-empty-padding:40px 0;--el-empty-image-width:160px;--el-empty-description-margin-top:20px;--el-empty-bottom-margin-top:20px;--el-empty-fill-color-0:var(--el-color-white);--el-empty-fill-color-1:#fcfcfd;--el-empty-fill-color-2:#f8f9fb;--el-empty-fill-color-3:#f7f8fc;--el-empty-fill-color-4:#eeeff3;--el-empty-fill-color-5:#edeef2;--el-empty-fill-color-6:#e9ebef;--el-empty-fill-color-7:#e5e7e9;--el-empty-fill-color-8:#e0e3e9;--el-empty-fill-color-9:#d5d7de;align-items:center;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;padding:var(--el-empty-padding);text-align:center}.el-empty__image{width:var(--el-empty-image-width)}.el-empty__image img{height:100%;-o-object-fit:contain;object-fit:contain;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:top;width:100%}.el-empty__image svg{color:var(--el-svg-monochrome-grey);fill:currentColor;height:100%;vertical-align:top;width:100%}.el-empty__description{margin-top:var(--el-empty-description-margin-top)}.el-empty__description p{color:var(--el-text-color-secondary);font-size:var(--el-font-size-base);margin:0}.el-empty__bottom{margin-top:var(--el-empty-bottom-margin-top)}.el-button{--el-button-font-weight:var(--el-font-weight-primary);--el-button-border-color:var(--el-border-color);--el-button-bg-color:var(--el-fill-color-blank);--el-button-text-color:var(--el-text-color-regular);--el-button-disabled-text-color:var(--el-disabled-text-color);--el-button-disabled-bg-color:var(--el-fill-color-blank);--el-button-disabled-border-color:var(--el-border-color-light);--el-button-divide-border-color:rgba(255,255,255,.5);--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-color-primary-light-9);--el-button-hover-border-color:var(--el-color-primary-light-7);--el-button-active-text-color:var(--el-button-hover-text-color);--el-button-active-border-color:var(--el-color-primary);--el-button-active-bg-color:var(--el-button-hover-bg-color);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-hover-link-text-color:var(--el-color-info);--el-button-active-color:var(--el-text-color-primary);align-items:center;-webkit-appearance:none;background-color:var(--el-button-bg-color);border:var(--el-border);border-color:var(--el-button-border-color);box-sizing:border-box;color:var(--el-button-text-color);cursor:pointer;display:inline-flex;font-weight:var(--el-button-font-weight);height:32px;justify-content:center;line-height:1;outline:none;text-align:center;transition:.1s;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.el-button:hover{background-color:var(--el-button-hover-bg-color);border-color:var(--el-button-hover-border-color);color:var(--el-button-hover-text-color);outline:none}.el-button:active{background-color:var(--el-button-active-bg-color);border-color:var(--el-button-active-border-color);color:var(--el-button-active-text-color);outline:none}.el-button:focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px;transition:outline-offset 0s,outline 0s}.el-button>span{align-items:center;display:inline-flex}.el-button+.el-button{margin-left:12px}.el-button{border-radius:var(--el-border-radius-base);font-size:var(--el-font-size-base)}.el-button,.el-button.is-round{padding:8px 15px}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon]+span{margin-left:6px}.el-button [class*=el-icon] svg{vertical-align:bottom}.el-button.is-plain{--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-fill-color-blank);--el-button-hover-border-color:var(--el-color-primary)}.el-button.is-active{background-color:var(--el-button-active-bg-color);border-color:var(--el-button-active-border-color);color:var(--el-button-active-text-color);outline:none}.el-button.is-disabled,.el-button.is-disabled:hover{background-color:var(--el-button-disabled-bg-color);background-image:none;border-color:var(--el-button-disabled-border-color);color:var(--el-button-disabled-text-color);cursor:not-allowed}.el-button.is-loading{pointer-events:none;position:relative}.el-button.is-loading:before{background-color:var(--el-mask-color-extra-light);border-radius:inherit;bottom:-1px;content:"";left:-1px;pointer-events:none;position:absolute;right:-1px;top:-1px;z-index:1}.el-button.is-round{border-radius:var(--el-border-radius-round)}.el-button.is-circle{border-radius:50%;padding:8px;width:32px}.el-button.is-text{background-color:transparent;border:0 solid transparent;color:var(--el-button-text-color)}.el-button.is-text.is-disabled{background-color:transparent!important;color:var(--el-button-disabled-text-color)}.el-button.is-text:not(.is-disabled):hover{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled):focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px;transition:outline-offset 0s,outline 0s}.el-button.is-text:not(.is-disabled):active{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled).is-has-bg:hover{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg:active{background-color:var(--el-fill-color-dark)}.el-button__text--expand{letter-spacing:.3em;margin-right:-.3em}.el-button.is-link{background:transparent;border-color:transparent;color:var(--el-button-text-color);height:auto;padding:2px}.el-button.is-link:hover{color:var(--el-button-hover-link-text-color)}.el-button.is-link.is-disabled{background-color:transparent!important;border-color:transparent!important;color:var(--el-button-disabled-text-color)}.el-button.is-link:not(.is-disabled):active,.el-button.is-link:not(.is-disabled):hover{background-color:transparent;border-color:transparent}.el-button.is-link:not(.is-disabled):active{color:var(--el-button-active-color)}.el-button--text{background:transparent;border-color:transparent;color:var(--el-color-primary);padding-left:0;padding-right:0}.el-button--text.is-disabled{background-color:transparent!important;border-color:transparent!important;color:var(--el-button-disabled-text-color)}.el-button--text:not(.is-disabled):hover{background-color:transparent;border-color:transparent;color:var(--el-color-primary-light-3)}.el-button--text:not(.is-disabled):active{background-color:transparent;border-color:transparent;color:var(--el-color-primary-dark-2)}.el-button__link--expand{letter-spacing:.3em;margin-right:-.3em}.el-button--primary{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-primary);--el-button-border-color:var(--el-color-primary);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-active-color:var(--el-color-primary-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-primary-light-5);--el-button-hover-bg-color:var(--el-color-primary-light-3);--el-button-hover-border-color:var(--el-color-primary-light-3);--el-button-active-bg-color:var(--el-color-primary-dark-2);--el-button-active-border-color:var(--el-color-primary-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-primary-light-5);--el-button-disabled-border-color:var(--el-color-primary-light-5)}.el-button--primary.is-link,.el-button--primary.is-plain,.el-button--primary.is-text{--el-button-text-color:var(--el-color-primary);--el-button-bg-color:var(--el-color-primary-light-9);--el-button-border-color:var(--el-color-primary-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-primary);--el-button-hover-border-color:var(--el-color-primary);--el-button-active-text-color:var(--el-color-white)}.el-button--primary.is-link.is-disabled,.el-button--primary.is-link.is-disabled:active,.el-button--primary.is-link.is-disabled:focus,.el-button--primary.is-link.is-disabled:hover,.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover,.el-button--primary.is-text.is-disabled,.el-button--primary.is-text.is-disabled:active,.el-button--primary.is-text.is-disabled:focus,.el-button--primary.is-text.is-disabled:hover{background-color:var(--el-color-primary-light-9);border-color:var(--el-color-primary-light-8);color:var(--el-color-primary-light-5)}.el-button--success{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-success);--el-button-border-color:var(--el-color-success);--el-button-outline-color:var(--el-color-success-light-5);--el-button-active-color:var(--el-color-success-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-success-light-5);--el-button-hover-bg-color:var(--el-color-success-light-3);--el-button-hover-border-color:var(--el-color-success-light-3);--el-button-active-bg-color:var(--el-color-success-dark-2);--el-button-active-border-color:var(--el-color-success-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-success-light-5);--el-button-disabled-border-color:var(--el-color-success-light-5)}.el-button--success.is-link,.el-button--success.is-plain,.el-button--success.is-text{--el-button-text-color:var(--el-color-success);--el-button-bg-color:var(--el-color-success-light-9);--el-button-border-color:var(--el-color-success-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-success);--el-button-hover-border-color:var(--el-color-success);--el-button-active-text-color:var(--el-color-white)}.el-button--success.is-link.is-disabled,.el-button--success.is-link.is-disabled:active,.el-button--success.is-link.is-disabled:focus,.el-button--success.is-link.is-disabled:hover,.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover,.el-button--success.is-text.is-disabled,.el-button--success.is-text.is-disabled:active,.el-button--success.is-text.is-disabled:focus,.el-button--success.is-text.is-disabled:hover{background-color:var(--el-color-success-light-9);border-color:var(--el-color-success-light-8);color:var(--el-color-success-light-5)}.el-button--warning{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-warning);--el-button-border-color:var(--el-color-warning);--el-button-outline-color:var(--el-color-warning-light-5);--el-button-active-color:var(--el-color-warning-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-warning-light-5);--el-button-hover-bg-color:var(--el-color-warning-light-3);--el-button-hover-border-color:var(--el-color-warning-light-3);--el-button-active-bg-color:var(--el-color-warning-dark-2);--el-button-active-border-color:var(--el-color-warning-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-warning-light-5);--el-button-disabled-border-color:var(--el-color-warning-light-5)}.el-button--warning.is-link,.el-button--warning.is-plain,.el-button--warning.is-text{--el-button-text-color:var(--el-color-warning);--el-button-bg-color:var(--el-color-warning-light-9);--el-button-border-color:var(--el-color-warning-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-warning);--el-button-hover-border-color:var(--el-color-warning);--el-button-active-text-color:var(--el-color-white)}.el-button--warning.is-link.is-disabled,.el-button--warning.is-link.is-disabled:active,.el-button--warning.is-link.is-disabled:focus,.el-button--warning.is-link.is-disabled:hover,.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover,.el-button--warning.is-text.is-disabled,.el-button--warning.is-text.is-disabled:active,.el-button--warning.is-text.is-disabled:focus,.el-button--warning.is-text.is-disabled:hover{background-color:var(--el-color-warning-light-9);border-color:var(--el-color-warning-light-8);color:var(--el-color-warning-light-5)}.el-button--danger{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-danger);--el-button-border-color:var(--el-color-danger);--el-button-outline-color:var(--el-color-danger-light-5);--el-button-active-color:var(--el-color-danger-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-danger-light-5);--el-button-hover-bg-color:var(--el-color-danger-light-3);--el-button-hover-border-color:var(--el-color-danger-light-3);--el-button-active-bg-color:var(--el-color-danger-dark-2);--el-button-active-border-color:var(--el-color-danger-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-danger-light-5);--el-button-disabled-border-color:var(--el-color-danger-light-5)}.el-button--danger.is-link,.el-button--danger.is-plain,.el-button--danger.is-text{--el-button-text-color:var(--el-color-danger);--el-button-bg-color:var(--el-color-danger-light-9);--el-button-border-color:var(--el-color-danger-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-danger);--el-button-hover-border-color:var(--el-color-danger);--el-button-active-text-color:var(--el-color-white)}.el-button--danger.is-link.is-disabled,.el-button--danger.is-link.is-disabled:active,.el-button--danger.is-link.is-disabled:focus,.el-button--danger.is-link.is-disabled:hover,.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover,.el-button--danger.is-text.is-disabled,.el-button--danger.is-text.is-disabled:active,.el-button--danger.is-text.is-disabled:focus,.el-button--danger.is-text.is-disabled:hover{background-color:var(--el-color-danger-light-9);border-color:var(--el-color-danger-light-8);color:var(--el-color-danger-light-5)}.el-button--info{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-info);--el-button-border-color:var(--el-color-info);--el-button-outline-color:var(--el-color-info-light-5);--el-button-active-color:var(--el-color-info-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-info-light-5);--el-button-hover-bg-color:var(--el-color-info-light-3);--el-button-hover-border-color:var(--el-color-info-light-3);--el-button-active-bg-color:var(--el-color-info-dark-2);--el-button-active-border-color:var(--el-color-info-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-info-light-5);--el-button-disabled-border-color:var(--el-color-info-light-5)}.el-button--info.is-link,.el-button--info.is-plain,.el-button--info.is-text{--el-button-text-color:var(--el-color-info);--el-button-bg-color:var(--el-color-info-light-9);--el-button-border-color:var(--el-color-info-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-info);--el-button-hover-border-color:var(--el-color-info);--el-button-active-text-color:var(--el-color-white)}.el-button--info.is-link.is-disabled,.el-button--info.is-link.is-disabled:active,.el-button--info.is-link.is-disabled:focus,.el-button--info.is-link.is-disabled:hover,.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover,.el-button--info.is-text.is-disabled,.el-button--info.is-text.is-disabled:active,.el-button--info.is-text.is-disabled:focus,.el-button--info.is-text.is-disabled:hover{background-color:var(--el-color-info-light-9);border-color:var(--el-color-info-light-8);color:var(--el-color-info-light-5)}.el-button--large{--el-button-size:40px;height:var(--el-button-size)}.el-button--large [class*=el-icon]+span{margin-left:8px}.el-button--large{border-radius:var(--el-border-radius-base);font-size:var(--el-font-size-base);padding:12px 19px}.el-button--large.is-round{padding:12px 19px}.el-button--large.is-circle{padding:12px;width:var(--el-button-size)}.el-button--small{--el-button-size:24px;height:var(--el-button-size)}.el-button--small [class*=el-icon]+span{margin-left:4px}.el-button--small{border-radius:calc(var(--el-border-radius-base) - 1px);font-size:12px;padding:5px 11px}.el-button--small.is-round{padding:5px 11px}.el-button--small.is-circle{padding:5px;width:var(--el-button-size)}:root{--el-loading-spinner-size:42px;--el-loading-fullscreen-spinner-size:50px}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{background-color:var(--el-mask-color);bottom:0;left:0;margin:0;position:absolute;right:0;top:0;transition:opacity var(--el-transition-duration);z-index:2000}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:calc((0px - var(--el-loading-fullscreen-spinner-size))/2)}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:var(--el-loading-fullscreen-spinner-size);width:var(--el-loading-fullscreen-spinner-size)}.el-loading-spinner{margin-top:calc((0px - var(--el-loading-spinner-size))/2);position:absolute;text-align:center;top:50%;width:100%}.el-loading-spinner .el-loading-text{color:var(--el-color-primary);font-size:14px;margin:3px 0}.el-loading-spinner .circular{animation:loading-rotate 2s linear infinite;display:inline;height:var(--el-loading-spinner-size);width:var(--el-loading-spinner-size)}.el-loading-spinner .path{animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:var(--el-color-primary);stroke-linecap:round}.el-loading-spinner i{color:var(--el-color-primary)}.el-loading-fade-enter-from,.el-loading-fade-leave-to{opacity:0}@keyframes loading-rotate{to{transform:rotate(1turn)}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-card{--el-card-border-color:var(--el-border-color-light);--el-card-border-radius:4px;--el-card-padding:20px;--el-card-bg-color:var(--el-fill-color-blank);background-color:var(--el-card-bg-color);border:1px solid var(--el-card-border-color);border-radius:var(--el-card-border-radius);color:var(--el-text-color-primary);overflow:hidden;transition:var(--el-transition-duration)}.el-card.is-always-shadow,.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{box-shadow:var(--el-box-shadow-light)}.el-card__header{border-bottom:1px solid var(--el-card-border-color);box-sizing:border-box;padding:calc(var(--el-card-padding) - 2px) var(--el-card-padding)}.el-card__body{padding:var(--el-card-padding)}.el-card__footer{border-top:1px solid var(--el-card-border-color);box-sizing:border-box;padding:calc(var(--el-card-padding) - 2px) var(--el-card-padding)}.el-image__error,.el-image__inner,.el-image__placeholder,.el-image__wrapper{height:100%;width:100%}.el-image{display:inline-block;overflow:hidden;position:relative}.el-image__inner{opacity:1;vertical-align:top}.el-image__inner.is-loading{opacity:0}.el-image__wrapper{left:0;position:absolute;top:0}.el-image__error,.el-image__placeholder{background:var(--el-fill-color-light)}.el-image__error{align-items:center;color:var(--el-text-color-placeholder);display:flex;font-size:14px;justify-content:center;vertical-align:middle}.el-image__preview{cursor:pointer}.el-image-viewer__wrapper{bottom:0;left:0;position:fixed;right:0;top:0}.el-image-viewer__btn{align-items:center;border-radius:50%;box-sizing:border-box;cursor:pointer;display:flex;justify-content:center;opacity:.8;position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:1}.el-image-viewer__btn .el-icon{cursor:pointer;font-size:inherit}.el-image-viewer__close{font-size:40px;height:40px;right:40px;top:40px;width:40px}.el-image-viewer__canvas{align-items:center;display:flex;height:100%;justify-content:center;position:static;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.el-image-viewer__actions{background-color:var(--el-text-color-regular);border-color:#fff;border-radius:22px;bottom:30px;height:44px;left:50%;padding:0 23px;transform:translate(-50%);width:282px}.el-image-viewer__actions__inner{align-items:center;color:#fff;cursor:default;display:flex;font-size:23px;height:100%;justify-content:space-around;width:100%}.el-image-viewer__prev{left:40px}.el-image-viewer__next,.el-image-viewer__prev{background-color:var(--el-text-color-regular);border-color:#fff;color:#fff;font-size:24px;height:44px;top:50%;transform:translateY(-50%);width:44px}.el-image-viewer__next{right:40px;text-indent:2px}.el-image-viewer__close{background-color:var(--el-text-color-regular);border-color:#fff;color:#fff;font-size:24px;height:44px;width:44px}.el-image-viewer__mask{background:#000;height:100%;left:0;opacity:.5;position:absolute;top:0;width:100%}.viewer-fade-enter-active{animation:viewer-fade-in var(--el-transition-duration)}.viewer-fade-leave-active{animation:viewer-fade-out var(--el-transition-duration)}@keyframes viewer-fade-in{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes viewer-fade-out{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(0,-20px,0)}}.PictureItem[data-v-016ce612]{width:50%}.PictureItem .card[data-v-016ce612]{margin:3px}.PictureItem .card .card-header[data-v-016ce612],.PictureItem .card .card-footer[data-v-016ce612]{display:flex;justify-content:space-between}.PictureItem .card .header-btn[data-v-016ce612]{margin-left:10px}.PictureItem .card[data-v-016ce612]:nth-child(odd){margin-right:0}.PictureItem .card .img[data-v-016ce612]{height:100px}.collapse-item .clear-all-btn[data-v-97a3db87]{margin-left:10px}[data-v-97a3db87] .el-scrollbar__view{display:flex;flex-wrap:wrap;width:100%}:root{--el-popup-modal-bg-color:var(--el-color-black);--el-popup-modal-opacity:.5}.v-modal-enter{animation:v-modal-in var(--el-transition-duration-fast) ease}.v-modal-leave{animation:v-modal-out var(--el-transition-duration-fast) ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{background:var(--el-popup-modal-bg-color);height:100%;left:0;opacity:var(--el-popup-modal-opacity);position:fixed;top:0;width:100%}.el-popup-parent--hidden{overflow:hidden}.el-message-box{--el-messagebox-title-color:var(--el-text-color-primary);--el-messagebox-width:420px;--el-messagebox-border-radius:4px;--el-messagebox-box-shadow:var(--el-box-shadow);--el-messagebox-font-size:var(--el-font-size-large);--el-messagebox-content-font-size:var(--el-font-size-base);--el-messagebox-content-color:var(--el-text-color-regular);--el-messagebox-error-font-size:12px;--el-messagebox-padding-primary:12px;--el-messagebox-font-line-height:var(--el-font-line-height-primary);backface-visibility:hidden;background-color:var(--el-bg-color);border-radius:var(--el-messagebox-border-radius);box-shadow:var(--el-messagebox-box-shadow);box-sizing:border-box;display:inline-block;font-size:var(--el-messagebox-font-size);max-width:var(--el-messagebox-width);overflow:hidden;overflow-wrap:break-word;padding:var(--el-messagebox-padding-primary);position:relative;text-align:left;vertical-align:middle;width:100%}.el-message-box:focus{outline:none!important}.el-overlay.is-message-box .el-overlay-message-box{bottom:0;left:0;overflow:auto;padding:16px;position:fixed;right:0;text-align:center;top:0}.el-overlay.is-message-box .el-overlay-message-box:after{content:"";display:inline-block;height:100%;vertical-align:middle;width:0}.el-message-box.is-draggable .el-message-box__header{cursor:move;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-message-box__header{padding-bottom:var(--el-messagebox-padding-primary)}.el-message-box__header.show-close{padding-right:calc(var(--el-messagebox-padding-primary) + var(--el-message-close-size, 16px))}.el-message-box__title{color:var(--el-messagebox-title-color);font-size:var(--el-messagebox-font-size);line-height:var(--el-messagebox-font-line-height)}.el-message-box__headerbtn{background:transparent;border:none;cursor:pointer;font-size:var(--el-message-close-size,16px);height:40px;outline:none;padding:0;position:absolute;right:0;top:0;width:40px}.el-message-box__headerbtn .el-message-box__close{color:var(--el-color-info);font-size:inherit}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:var(--el-color-primary)}.el-message-box__content{color:var(--el-messagebox-content-color);font-size:var(--el-messagebox-content-font-size)}.el-message-box__container{align-items:center;display:flex;gap:12px}.el-message-box__input{padding-top:12px}.el-message-box__input div.invalid>input,.el-message-box__input div.invalid>input:focus{border-color:var(--el-color-error)}.el-message-box__status{font-size:24px}.el-message-box__status.el-message-box-icon--success{--el-messagebox-color:var(--el-color-success);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--info{--el-messagebox-color:var(--el-color-info);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--warning{--el-messagebox-color:var(--el-color-warning);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--error{--el-messagebox-color:var(--el-color-error);color:var(--el-messagebox-color)}.el-message-box__message{margin:0}.el-message-box__message p{line-height:var(--el-messagebox-font-line-height);margin:0}.el-message-box__errormsg{color:var(--el-color-error);font-size:var(--el-messagebox-error-font-size);line-height:var(--el-messagebox-font-line-height)}.el-message-box__btns{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-end;padding-top:var(--el-messagebox-padding-primary)}.el-message-box--center .el-message-box__title{align-items:center;display:flex;gap:6px;justify-content:center}.el-message-box--center .el-message-box__status{font-size:inherit}.el-message-box--center .el-message-box__btns,.el-message-box--center .el-message-box__container{justify-content:center}.fade-in-linear-enter-active .el-overlay-message-box{animation:msgbox-fade-in var(--el-transition-duration)}.fade-in-linear-leave-active .el-overlay-message-box{animation:msgbox-fade-in var(--el-transition-duration) reverse}@keyframes msgbox-fade-in{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}.el-color-predefine{display:flex;font-size:12px;margin-top:8px;width:280px}.el-color-predefine__colors{display:flex;flex:1;flex-wrap:wrap}.el-color-predefine__color-selector{border-radius:4px;cursor:pointer;height:20px;margin:0 0 8px 8px;width:20px}.el-color-predefine__color-selector:nth-child(10n+1){margin-left:0}.el-color-predefine__color-selector.selected{box-shadow:0 0 3px 2px var(--el-color-primary)}.el-color-predefine__color-selector>div{border-radius:3px;display:flex;height:100%}.el-color-predefine__color-selector.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-hue-slider{background-color:red;box-sizing:border-box;float:right;height:12px;padding:0 2px;position:relative;width:280px}.el-color-hue-slider__bar{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff,#00f 67%,#f0f 83%,red);height:100%;position:relative}.el-color-hue-slider__thumb{background:#fff;border:1px solid var(--el-border-color-lighter);border-radius:1px;box-shadow:0 0 2px #0009;box-sizing:border-box;cursor:pointer;height:100%;left:0;position:absolute;top:0;width:4px;z-index:1}.el-color-hue-slider__thumb:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:1px}.el-color-hue-slider.is-vertical{height:180px;padding:2px 0;width:12px}.el-color-hue-slider.is-vertical .el-color-hue-slider__bar{background:linear-gradient(180deg,red 0,#ff0 17%,#0f0 33%,#0ff,#00f 67%,#f0f 83%,red)}.el-color-hue-slider.is-vertical .el-color-hue-slider__thumb{height:4px;left:0;top:0;width:100%}.el-color-svpanel{height:180px;position:relative;width:280px}.el-color-svpanel__black,.el-color-svpanel__white{bottom:0;left:0;position:absolute;right:0;top:0}.el-color-svpanel__white{background:linear-gradient(90deg,#fff,#fff0)}.el-color-svpanel__black{background:linear-gradient(0deg,#000,#0000)}.el-color-svpanel__cursor{position:absolute}.el-color-svpanel__cursor>div{border-radius:50%;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px #0000004d,0 0 1px 2px #0006;cursor:head;height:4px;transform:translate(-2px,-2px);width:4px}.el-color-alpha-slider{background-image:linear-gradient(45deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(45deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%);background-position:0 0,6px 0,6px -6px,0 6px;background-size:12px 12px;box-sizing:border-box;height:12px;position:relative;width:280px}.el-color-alpha-slider__bar{background:linear-gradient(to right,rgba(255,255,255,0) 0,var(--el-bg-color) 100%);height:100%;position:relative}.el-color-alpha-slider__thumb{background:#fff;border:1px solid var(--el-border-color-lighter);border-radius:1px;box-shadow:0 0 2px #0009;box-sizing:border-box;cursor:pointer;height:100%;left:0;position:absolute;top:0;width:4px;z-index:1}.el-color-alpha-slider__thumb:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:1px}.el-color-alpha-slider.is-vertical{height:180px;width:20px}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar{background:linear-gradient(180deg,#fff0 0,#fff)}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb{height:4px;left:0;top:0;width:100%}.el-color-dropdown{width:300px}.el-color-dropdown__main-wrapper{margin-bottom:6px}.el-color-dropdown__main-wrapper:after{clear:both;content:"";display:table}.el-color-dropdown__btns{margin-top:12px;text-align:right}.el-color-dropdown__value{color:#000;float:left;font-size:12px;line-height:26px;width:160px}.el-color-picker{display:inline-block;line-height:normal;outline:none;position:relative}.el-color-picker:hover:not(.is-disabled,.is-focused) .el-color-picker__trigger{border-color:var(--el-border-color-hover)}.el-color-picker:focus-visible:not(.is-disabled) .el-color-picker__trigger{outline:2px solid var(--el-color-primary);outline-offset:1px}.el-color-picker.is-focused .el-color-picker__trigger{border-color:var(--el-color-primary)}.el-color-picker.is-disabled .el-color-picker__trigger{cursor:not-allowed}.el-color-picker--large{height:40px}.el-color-picker--large .el-color-picker__trigger{height:40px;width:40px}.el-color-picker--large .el-color-picker__mask{height:38px;width:38px}.el-color-picker--small{height:24px}.el-color-picker--small .el-color-picker__trigger{height:24px;width:24px}.el-color-picker--small .el-color-picker__mask{height:22px;width:22px}.el-color-picker--small .el-color-picker__empty,.el-color-picker--small .el-color-picker__icon{transform:scale(.8)}.el-color-picker__mask{background-color:#ffffffb3;border-radius:4px;cursor:not-allowed;height:30px;left:1px;position:absolute;top:1px;width:30px;z-index:1}.el-color-picker__trigger{align-items:center;border:1px solid var(--el-border-color);border-radius:4px;box-sizing:border-box;cursor:pointer;display:inline-flex;font-size:0;height:32px;justify-content:center;padding:4px;position:relative;width:32px}.el-color-picker__color{border:1px solid var(--el-text-color-secondary);border-radius:var(--el-border-radius-small);box-sizing:border-box;display:block;height:100%;position:relative;text-align:center;width:100%}.el-color-picker__color.is-alpha{background-image:linear-gradient(45deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(45deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%);background-position:0 0,6px 0,6px -6px,0 6px;background-size:12px 12px}.el-color-picker__color-inner{align-items:center;display:inline-flex;height:100%;justify-content:center;width:100%}.el-color-picker .el-color-picker__empty{color:var(--el-text-color-secondary);font-size:12px}.el-color-picker .el-color-picker__icon{align-items:center;color:#fff;display:inline-flex;font-size:12px;justify-content:center}.el-color-picker__panel{background-color:#fff;border-radius:var(--el-border-radius-base);box-shadow:var(--el-box-shadow-light);box-sizing:content-box;padding:6px;position:absolute;z-index:10}.el-color-picker__panel.el-popper{border:1px solid var(--el-border-color-lighter)}.el-color-picker,.el-color-picker__panel{--el-color-picker-alpha-bg-a:#ccc;--el-color-picker-alpha-bg-b:transparent}.dark .el-color-picker,.dark .el-color-picker__panel{--el-color-picker-alpha-bg-a:#333333}.el-row{box-sizing:border-box;display:flex;flex-wrap:wrap;position:relative}.el-row.is-justify-center{justify-content:center}.el-row.is-justify-end{justify-content:flex-end}.el-row.is-justify-space-between{justify-content:space-between}.el-row.is-justify-space-around{justify-content:space-around}.el-row.is-justify-space-evenly{justify-content:space-evenly}.el-row.is-align-top{align-items:flex-start}.el-row.is-align-middle{align-items:center}.el-row.is-align-bottom{align-items:flex-end}[class*=el-col-]{box-sizing:border-box}[class*=el-col-].is-guttered{display:block;min-height:1px}.el-col-0{flex:0 0 0%;max-width:0}.el-col-0,.el-col-0.is-guttered{display:none}.el-col-offset-0{margin-left:0}.el-col-pull-0{position:relative;right:0}.el-col-push-0{left:0;position:relative}.el-col-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-1,.el-col-1.is-guttered{display:block}.el-col-offset-1{margin-left:4.1666666667%}.el-col-pull-1{position:relative;right:4.1666666667%}.el-col-push-1{left:4.1666666667%;position:relative}.el-col-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-2,.el-col-2.is-guttered{display:block}.el-col-offset-2{margin-left:8.3333333333%}.el-col-pull-2{position:relative;right:8.3333333333%}.el-col-push-2{left:8.3333333333%;position:relative}.el-col-3{flex:0 0 12.5%;max-width:12.5%}.el-col-3,.el-col-3.is-guttered{display:block}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{position:relative;right:12.5%}.el-col-push-3{left:12.5%;position:relative}.el-col-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-4,.el-col-4.is-guttered{display:block}.el-col-offset-4{margin-left:16.6666666667%}.el-col-pull-4{position:relative;right:16.6666666667%}.el-col-push-4{left:16.6666666667%;position:relative}.el-col-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-5,.el-col-5.is-guttered{display:block}.el-col-offset-5{margin-left:20.8333333333%}.el-col-pull-5{position:relative;right:20.8333333333%}.el-col-push-5{left:20.8333333333%;position:relative}.el-col-6{flex:0 0 25%;max-width:25%}.el-col-6,.el-col-6.is-guttered{display:block}.el-col-offset-6{margin-left:25%}.el-col-pull-6{position:relative;right:25%}.el-col-push-6{left:25%;position:relative}.el-col-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-7,.el-col-7.is-guttered{display:block}.el-col-offset-7{margin-left:29.1666666667%}.el-col-pull-7{position:relative;right:29.1666666667%}.el-col-push-7{left:29.1666666667%;position:relative}.el-col-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-8,.el-col-8.is-guttered{display:block}.el-col-offset-8{margin-left:33.3333333333%}.el-col-pull-8{position:relative;right:33.3333333333%}.el-col-push-8{left:33.3333333333%;position:relative}.el-col-9{flex:0 0 37.5%;max-width:37.5%}.el-col-9,.el-col-9.is-guttered{display:block}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{position:relative;right:37.5%}.el-col-push-9{left:37.5%;position:relative}.el-col-10{flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-10,.el-col-10.is-guttered{display:block}.el-col-offset-10{margin-left:41.6666666667%}.el-col-pull-10{position:relative;right:41.6666666667%}.el-col-push-10{left:41.6666666667%;position:relative}.el-col-11{flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-11,.el-col-11.is-guttered{display:block}.el-col-offset-11{margin-left:45.8333333333%}.el-col-pull-11{position:relative;right:45.8333333333%}.el-col-push-11{left:45.8333333333%;position:relative}.el-col-12{flex:0 0 50%;max-width:50%}.el-col-12,.el-col-12.is-guttered{display:block}.el-col-offset-12{margin-left:50%}.el-col-pull-12{position:relative;right:50%}.el-col-push-12{left:50%;position:relative}.el-col-13{flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-13,.el-col-13.is-guttered{display:block}.el-col-offset-13{margin-left:54.1666666667%}.el-col-pull-13{position:relative;right:54.1666666667%}.el-col-push-13{left:54.1666666667%;position:relative}.el-col-14{flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-14,.el-col-14.is-guttered{display:block}.el-col-offset-14{margin-left:58.3333333333%}.el-col-pull-14{position:relative;right:58.3333333333%}.el-col-push-14{left:58.3333333333%;position:relative}.el-col-15{flex:0 0 62.5%;max-width:62.5%}.el-col-15,.el-col-15.is-guttered{display:block}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{position:relative;right:62.5%}.el-col-push-15{left:62.5%;position:relative}.el-col-16{flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-16,.el-col-16.is-guttered{display:block}.el-col-offset-16{margin-left:66.6666666667%}.el-col-pull-16{position:relative;right:66.6666666667%}.el-col-push-16{left:66.6666666667%;position:relative}.el-col-17{flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-17,.el-col-17.is-guttered{display:block}.el-col-offset-17{margin-left:70.8333333333%}.el-col-pull-17{position:relative;right:70.8333333333%}.el-col-push-17{left:70.8333333333%;position:relative}.el-col-18{flex:0 0 75%;max-width:75%}.el-col-18,.el-col-18.is-guttered{display:block}.el-col-offset-18{margin-left:75%}.el-col-pull-18{position:relative;right:75%}.el-col-push-18{left:75%;position:relative}.el-col-19{flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-19,.el-col-19.is-guttered{display:block}.el-col-offset-19{margin-left:79.1666666667%}.el-col-pull-19{position:relative;right:79.1666666667%}.el-col-push-19{left:79.1666666667%;position:relative}.el-col-20{flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-20,.el-col-20.is-guttered{display:block}.el-col-offset-20{margin-left:83.3333333333%}.el-col-pull-20{position:relative;right:83.3333333333%}.el-col-push-20{left:83.3333333333%;position:relative}.el-col-21{flex:0 0 87.5%;max-width:87.5%}.el-col-21,.el-col-21.is-guttered{display:block}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{position:relative;right:87.5%}.el-col-push-21{left:87.5%;position:relative}.el-col-22{flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-22,.el-col-22.is-guttered{display:block}.el-col-offset-22{margin-left:91.6666666667%}.el-col-pull-22{position:relative;right:91.6666666667%}.el-col-push-22{left:91.6666666667%;position:relative}.el-col-23{flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-23,.el-col-23.is-guttered{display:block}.el-col-offset-23{margin-left:95.8333333333%}.el-col-pull-23{position:relative;right:95.8333333333%}.el-col-push-23{left:95.8333333333%;position:relative}.el-col-24{flex:0 0 100%;max-width:100%}.el-col-24,.el-col-24.is-guttered{display:block}.el-col-offset-24{margin-left:100%}.el-col-pull-24{position:relative;right:100%}.el-col-push-24{left:100%;position:relative}@media only screen and (max-width:767px){.el-col-xs-0{display:none;flex:0 0 0%;max-width:0}.el-col-xs-0.is-guttered{display:none}.el-col-xs-offset-0{margin-left:0}.el-col-xs-pull-0{position:relative;right:0}.el-col-xs-push-0{left:0;position:relative}.el-col-xs-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-xs-1,.el-col-xs-1.is-guttered{display:block}.el-col-xs-offset-1{margin-left:4.1666666667%}.el-col-xs-pull-1{position:relative;right:4.1666666667%}.el-col-xs-push-1{left:4.1666666667%;position:relative}.el-col-xs-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-xs-2,.el-col-xs-2.is-guttered{display:block}.el-col-xs-offset-2{margin-left:8.3333333333%}.el-col-xs-pull-2{position:relative;right:8.3333333333%}.el-col-xs-push-2{left:8.3333333333%;position:relative}.el-col-xs-3{flex:0 0 12.5%;max-width:12.5%}.el-col-xs-3,.el-col-xs-3.is-guttered{display:block}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{left:12.5%;position:relative}.el-col-xs-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-xs-4,.el-col-xs-4.is-guttered{display:block}.el-col-xs-offset-4{margin-left:16.6666666667%}.el-col-xs-pull-4{position:relative;right:16.6666666667%}.el-col-xs-push-4{left:16.6666666667%;position:relative}.el-col-xs-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-xs-5,.el-col-xs-5.is-guttered{display:block}.el-col-xs-offset-5{margin-left:20.8333333333%}.el-col-xs-pull-5{position:relative;right:20.8333333333%}.el-col-xs-push-5{left:20.8333333333%;position:relative}.el-col-xs-6{flex:0 0 25%;max-width:25%}.el-col-xs-6,.el-col-xs-6.is-guttered{display:block}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{left:25%;position:relative}.el-col-xs-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-xs-7,.el-col-xs-7.is-guttered{display:block}.el-col-xs-offset-7{margin-left:29.1666666667%}.el-col-xs-pull-7{position:relative;right:29.1666666667%}.el-col-xs-push-7{left:29.1666666667%;position:relative}.el-col-xs-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-xs-8,.el-col-xs-8.is-guttered{display:block}.el-col-xs-offset-8{margin-left:33.3333333333%}.el-col-xs-pull-8{position:relative;right:33.3333333333%}.el-col-xs-push-8{left:33.3333333333%;position:relative}.el-col-xs-9{flex:0 0 37.5%;max-width:37.5%}.el-col-xs-9,.el-col-xs-9.is-guttered{display:block}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{left:37.5%;position:relative}.el-col-xs-10{display:block;flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-xs-10.is-guttered{display:block}.el-col-xs-offset-10{margin-left:41.6666666667%}.el-col-xs-pull-10{position:relative;right:41.6666666667%}.el-col-xs-push-10{left:41.6666666667%;position:relative}.el-col-xs-11{display:block;flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-xs-11.is-guttered{display:block}.el-col-xs-offset-11{margin-left:45.8333333333%}.el-col-xs-pull-11{position:relative;right:45.8333333333%}.el-col-xs-push-11{left:45.8333333333%;position:relative}.el-col-xs-12{display:block;flex:0 0 50%;max-width:50%}.el-col-xs-12.is-guttered{display:block}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{left:50%;position:relative}.el-col-xs-13{display:block;flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-xs-13.is-guttered{display:block}.el-col-xs-offset-13{margin-left:54.1666666667%}.el-col-xs-pull-13{position:relative;right:54.1666666667%}.el-col-xs-push-13{left:54.1666666667%;position:relative}.el-col-xs-14{display:block;flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-xs-14.is-guttered{display:block}.el-col-xs-offset-14{margin-left:58.3333333333%}.el-col-xs-pull-14{position:relative;right:58.3333333333%}.el-col-xs-push-14{left:58.3333333333%;position:relative}.el-col-xs-15{display:block;flex:0 0 62.5%;max-width:62.5%}.el-col-xs-15.is-guttered{display:block}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{left:62.5%;position:relative}.el-col-xs-16{display:block;flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-xs-16.is-guttered{display:block}.el-col-xs-offset-16{margin-left:66.6666666667%}.el-col-xs-pull-16{position:relative;right:66.6666666667%}.el-col-xs-push-16{left:66.6666666667%;position:relative}.el-col-xs-17{display:block;flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-xs-17.is-guttered{display:block}.el-col-xs-offset-17{margin-left:70.8333333333%}.el-col-xs-pull-17{position:relative;right:70.8333333333%}.el-col-xs-push-17{left:70.8333333333%;position:relative}.el-col-xs-18{display:block;flex:0 0 75%;max-width:75%}.el-col-xs-18.is-guttered{display:block}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{left:75%;position:relative}.el-col-xs-19{display:block;flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-xs-19.is-guttered{display:block}.el-col-xs-offset-19{margin-left:79.1666666667%}.el-col-xs-pull-19{position:relative;right:79.1666666667%}.el-col-xs-push-19{left:79.1666666667%;position:relative}.el-col-xs-20{display:block;flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-xs-20.is-guttered{display:block}.el-col-xs-offset-20{margin-left:83.3333333333%}.el-col-xs-pull-20{position:relative;right:83.3333333333%}.el-col-xs-push-20{left:83.3333333333%;position:relative}.el-col-xs-21{display:block;flex:0 0 87.5%;max-width:87.5%}.el-col-xs-21.is-guttered{display:block}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{left:87.5%;position:relative}.el-col-xs-22{display:block;flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-xs-22.is-guttered{display:block}.el-col-xs-offset-22{margin-left:91.6666666667%}.el-col-xs-pull-22{position:relative;right:91.6666666667%}.el-col-xs-push-22{left:91.6666666667%;position:relative}.el-col-xs-23{display:block;flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-xs-23.is-guttered{display:block}.el-col-xs-offset-23{margin-left:95.8333333333%}.el-col-xs-pull-23{position:relative;right:95.8333333333%}.el-col-xs-push-23{left:95.8333333333%;position:relative}.el-col-xs-24{display:block;flex:0 0 100%;max-width:100%}.el-col-xs-24.is-guttered{display:block}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{left:100%;position:relative}}@media only screen and (min-width:768px){.el-col-sm-0{display:none;flex:0 0 0%;max-width:0}.el-col-sm-0.is-guttered{display:none}.el-col-sm-offset-0{margin-left:0}.el-col-sm-pull-0{position:relative;right:0}.el-col-sm-push-0{left:0;position:relative}.el-col-sm-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-sm-1,.el-col-sm-1.is-guttered{display:block}.el-col-sm-offset-1{margin-left:4.1666666667%}.el-col-sm-pull-1{position:relative;right:4.1666666667%}.el-col-sm-push-1{left:4.1666666667%;position:relative}.el-col-sm-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-sm-2,.el-col-sm-2.is-guttered{display:block}.el-col-sm-offset-2{margin-left:8.3333333333%}.el-col-sm-pull-2{position:relative;right:8.3333333333%}.el-col-sm-push-2{left:8.3333333333%;position:relative}.el-col-sm-3{flex:0 0 12.5%;max-width:12.5%}.el-col-sm-3,.el-col-sm-3.is-guttered{display:block}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{left:12.5%;position:relative}.el-col-sm-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-sm-4,.el-col-sm-4.is-guttered{display:block}.el-col-sm-offset-4{margin-left:16.6666666667%}.el-col-sm-pull-4{position:relative;right:16.6666666667%}.el-col-sm-push-4{left:16.6666666667%;position:relative}.el-col-sm-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-sm-5,.el-col-sm-5.is-guttered{display:block}.el-col-sm-offset-5{margin-left:20.8333333333%}.el-col-sm-pull-5{position:relative;right:20.8333333333%}.el-col-sm-push-5{left:20.8333333333%;position:relative}.el-col-sm-6{flex:0 0 25%;max-width:25%}.el-col-sm-6,.el-col-sm-6.is-guttered{display:block}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{left:25%;position:relative}.el-col-sm-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-sm-7,.el-col-sm-7.is-guttered{display:block}.el-col-sm-offset-7{margin-left:29.1666666667%}.el-col-sm-pull-7{position:relative;right:29.1666666667%}.el-col-sm-push-7{left:29.1666666667%;position:relative}.el-col-sm-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-sm-8,.el-col-sm-8.is-guttered{display:block}.el-col-sm-offset-8{margin-left:33.3333333333%}.el-col-sm-pull-8{position:relative;right:33.3333333333%}.el-col-sm-push-8{left:33.3333333333%;position:relative}.el-col-sm-9{flex:0 0 37.5%;max-width:37.5%}.el-col-sm-9,.el-col-sm-9.is-guttered{display:block}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{left:37.5%;position:relative}.el-col-sm-10{display:block;flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-sm-10.is-guttered{display:block}.el-col-sm-offset-10{margin-left:41.6666666667%}.el-col-sm-pull-10{position:relative;right:41.6666666667%}.el-col-sm-push-10{left:41.6666666667%;position:relative}.el-col-sm-11{display:block;flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-sm-11.is-guttered{display:block}.el-col-sm-offset-11{margin-left:45.8333333333%}.el-col-sm-pull-11{position:relative;right:45.8333333333%}.el-col-sm-push-11{left:45.8333333333%;position:relative}.el-col-sm-12{display:block;flex:0 0 50%;max-width:50%}.el-col-sm-12.is-guttered{display:block}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{left:50%;position:relative}.el-col-sm-13{display:block;flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-sm-13.is-guttered{display:block}.el-col-sm-offset-13{margin-left:54.1666666667%}.el-col-sm-pull-13{position:relative;right:54.1666666667%}.el-col-sm-push-13{left:54.1666666667%;position:relative}.el-col-sm-14{display:block;flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-sm-14.is-guttered{display:block}.el-col-sm-offset-14{margin-left:58.3333333333%}.el-col-sm-pull-14{position:relative;right:58.3333333333%}.el-col-sm-push-14{left:58.3333333333%;position:relative}.el-col-sm-15{display:block;flex:0 0 62.5%;max-width:62.5%}.el-col-sm-15.is-guttered{display:block}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{left:62.5%;position:relative}.el-col-sm-16{display:block;flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-sm-16.is-guttered{display:block}.el-col-sm-offset-16{margin-left:66.6666666667%}.el-col-sm-pull-16{position:relative;right:66.6666666667%}.el-col-sm-push-16{left:66.6666666667%;position:relative}.el-col-sm-17{display:block;flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-sm-17.is-guttered{display:block}.el-col-sm-offset-17{margin-left:70.8333333333%}.el-col-sm-pull-17{position:relative;right:70.8333333333%}.el-col-sm-push-17{left:70.8333333333%;position:relative}.el-col-sm-18{display:block;flex:0 0 75%;max-width:75%}.el-col-sm-18.is-guttered{display:block}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{left:75%;position:relative}.el-col-sm-19{display:block;flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-sm-19.is-guttered{display:block}.el-col-sm-offset-19{margin-left:79.1666666667%}.el-col-sm-pull-19{position:relative;right:79.1666666667%}.el-col-sm-push-19{left:79.1666666667%;position:relative}.el-col-sm-20{display:block;flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-sm-20.is-guttered{display:block}.el-col-sm-offset-20{margin-left:83.3333333333%}.el-col-sm-pull-20{position:relative;right:83.3333333333%}.el-col-sm-push-20{left:83.3333333333%;position:relative}.el-col-sm-21{display:block;flex:0 0 87.5%;max-width:87.5%}.el-col-sm-21.is-guttered{display:block}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{left:87.5%;position:relative}.el-col-sm-22{display:block;flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-sm-22.is-guttered{display:block}.el-col-sm-offset-22{margin-left:91.6666666667%}.el-col-sm-pull-22{position:relative;right:91.6666666667%}.el-col-sm-push-22{left:91.6666666667%;position:relative}.el-col-sm-23{display:block;flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-sm-23.is-guttered{display:block}.el-col-sm-offset-23{margin-left:95.8333333333%}.el-col-sm-pull-23{position:relative;right:95.8333333333%}.el-col-sm-push-23{left:95.8333333333%;position:relative}.el-col-sm-24{display:block;flex:0 0 100%;max-width:100%}.el-col-sm-24.is-guttered{display:block}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{left:100%;position:relative}}@media only screen and (min-width:992px){.el-col-md-0{display:none;flex:0 0 0%;max-width:0}.el-col-md-0.is-guttered{display:none}.el-col-md-offset-0{margin-left:0}.el-col-md-pull-0{position:relative;right:0}.el-col-md-push-0{left:0;position:relative}.el-col-md-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-md-1,.el-col-md-1.is-guttered{display:block}.el-col-md-offset-1{margin-left:4.1666666667%}.el-col-md-pull-1{position:relative;right:4.1666666667%}.el-col-md-push-1{left:4.1666666667%;position:relative}.el-col-md-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-md-2,.el-col-md-2.is-guttered{display:block}.el-col-md-offset-2{margin-left:8.3333333333%}.el-col-md-pull-2{position:relative;right:8.3333333333%}.el-col-md-push-2{left:8.3333333333%;position:relative}.el-col-md-3{flex:0 0 12.5%;max-width:12.5%}.el-col-md-3,.el-col-md-3.is-guttered{display:block}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{left:12.5%;position:relative}.el-col-md-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-md-4,.el-col-md-4.is-guttered{display:block}.el-col-md-offset-4{margin-left:16.6666666667%}.el-col-md-pull-4{position:relative;right:16.6666666667%}.el-col-md-push-4{left:16.6666666667%;position:relative}.el-col-md-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-md-5,.el-col-md-5.is-guttered{display:block}.el-col-md-offset-5{margin-left:20.8333333333%}.el-col-md-pull-5{position:relative;right:20.8333333333%}.el-col-md-push-5{left:20.8333333333%;position:relative}.el-col-md-6{flex:0 0 25%;max-width:25%}.el-col-md-6,.el-col-md-6.is-guttered{display:block}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{left:25%;position:relative}.el-col-md-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-md-7,.el-col-md-7.is-guttered{display:block}.el-col-md-offset-7{margin-left:29.1666666667%}.el-col-md-pull-7{position:relative;right:29.1666666667%}.el-col-md-push-7{left:29.1666666667%;position:relative}.el-col-md-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-md-8,.el-col-md-8.is-guttered{display:block}.el-col-md-offset-8{margin-left:33.3333333333%}.el-col-md-pull-8{position:relative;right:33.3333333333%}.el-col-md-push-8{left:33.3333333333%;position:relative}.el-col-md-9{flex:0 0 37.5%;max-width:37.5%}.el-col-md-9,.el-col-md-9.is-guttered{display:block}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{left:37.5%;position:relative}.el-col-md-10{display:block;flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-md-10.is-guttered{display:block}.el-col-md-offset-10{margin-left:41.6666666667%}.el-col-md-pull-10{position:relative;right:41.6666666667%}.el-col-md-push-10{left:41.6666666667%;position:relative}.el-col-md-11{display:block;flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-md-11.is-guttered{display:block}.el-col-md-offset-11{margin-left:45.8333333333%}.el-col-md-pull-11{position:relative;right:45.8333333333%}.el-col-md-push-11{left:45.8333333333%;position:relative}.el-col-md-12{display:block;flex:0 0 50%;max-width:50%}.el-col-md-12.is-guttered{display:block}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{left:50%;position:relative}.el-col-md-13{display:block;flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-md-13.is-guttered{display:block}.el-col-md-offset-13{margin-left:54.1666666667%}.el-col-md-pull-13{position:relative;right:54.1666666667%}.el-col-md-push-13{left:54.1666666667%;position:relative}.el-col-md-14{display:block;flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-md-14.is-guttered{display:block}.el-col-md-offset-14{margin-left:58.3333333333%}.el-col-md-pull-14{position:relative;right:58.3333333333%}.el-col-md-push-14{left:58.3333333333%;position:relative}.el-col-md-15{display:block;flex:0 0 62.5%;max-width:62.5%}.el-col-md-15.is-guttered{display:block}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{left:62.5%;position:relative}.el-col-md-16{display:block;flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-md-16.is-guttered{display:block}.el-col-md-offset-16{margin-left:66.6666666667%}.el-col-md-pull-16{position:relative;right:66.6666666667%}.el-col-md-push-16{left:66.6666666667%;position:relative}.el-col-md-17{display:block;flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-md-17.is-guttered{display:block}.el-col-md-offset-17{margin-left:70.8333333333%}.el-col-md-pull-17{position:relative;right:70.8333333333%}.el-col-md-push-17{left:70.8333333333%;position:relative}.el-col-md-18{display:block;flex:0 0 75%;max-width:75%}.el-col-md-18.is-guttered{display:block}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{left:75%;position:relative}.el-col-md-19{display:block;flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-md-19.is-guttered{display:block}.el-col-md-offset-19{margin-left:79.1666666667%}.el-col-md-pull-19{position:relative;right:79.1666666667%}.el-col-md-push-19{left:79.1666666667%;position:relative}.el-col-md-20{display:block;flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-md-20.is-guttered{display:block}.el-col-md-offset-20{margin-left:83.3333333333%}.el-col-md-pull-20{position:relative;right:83.3333333333%}.el-col-md-push-20{left:83.3333333333%;position:relative}.el-col-md-21{display:block;flex:0 0 87.5%;max-width:87.5%}.el-col-md-21.is-guttered{display:block}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{left:87.5%;position:relative}.el-col-md-22{display:block;flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-md-22.is-guttered{display:block}.el-col-md-offset-22{margin-left:91.6666666667%}.el-col-md-pull-22{position:relative;right:91.6666666667%}.el-col-md-push-22{left:91.6666666667%;position:relative}.el-col-md-23{display:block;flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-md-23.is-guttered{display:block}.el-col-md-offset-23{margin-left:95.8333333333%}.el-col-md-pull-23{position:relative;right:95.8333333333%}.el-col-md-push-23{left:95.8333333333%;position:relative}.el-col-md-24{display:block;flex:0 0 100%;max-width:100%}.el-col-md-24.is-guttered{display:block}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{left:100%;position:relative}}@media only screen and (min-width:1200px){.el-col-lg-0{display:none;flex:0 0 0%;max-width:0}.el-col-lg-0.is-guttered{display:none}.el-col-lg-offset-0{margin-left:0}.el-col-lg-pull-0{position:relative;right:0}.el-col-lg-push-0{left:0;position:relative}.el-col-lg-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-lg-1,.el-col-lg-1.is-guttered{display:block}.el-col-lg-offset-1{margin-left:4.1666666667%}.el-col-lg-pull-1{position:relative;right:4.1666666667%}.el-col-lg-push-1{left:4.1666666667%;position:relative}.el-col-lg-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-lg-2,.el-col-lg-2.is-guttered{display:block}.el-col-lg-offset-2{margin-left:8.3333333333%}.el-col-lg-pull-2{position:relative;right:8.3333333333%}.el-col-lg-push-2{left:8.3333333333%;position:relative}.el-col-lg-3{flex:0 0 12.5%;max-width:12.5%}.el-col-lg-3,.el-col-lg-3.is-guttered{display:block}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{left:12.5%;position:relative}.el-col-lg-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-lg-4,.el-col-lg-4.is-guttered{display:block}.el-col-lg-offset-4{margin-left:16.6666666667%}.el-col-lg-pull-4{position:relative;right:16.6666666667%}.el-col-lg-push-4{left:16.6666666667%;position:relative}.el-col-lg-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-lg-5,.el-col-lg-5.is-guttered{display:block}.el-col-lg-offset-5{margin-left:20.8333333333%}.el-col-lg-pull-5{position:relative;right:20.8333333333%}.el-col-lg-push-5{left:20.8333333333%;position:relative}.el-col-lg-6{flex:0 0 25%;max-width:25%}.el-col-lg-6,.el-col-lg-6.is-guttered{display:block}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{left:25%;position:relative}.el-col-lg-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-lg-7,.el-col-lg-7.is-guttered{display:block}.el-col-lg-offset-7{margin-left:29.1666666667%}.el-col-lg-pull-7{position:relative;right:29.1666666667%}.el-col-lg-push-7{left:29.1666666667%;position:relative}.el-col-lg-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-lg-8,.el-col-lg-8.is-guttered{display:block}.el-col-lg-offset-8{margin-left:33.3333333333%}.el-col-lg-pull-8{position:relative;right:33.3333333333%}.el-col-lg-push-8{left:33.3333333333%;position:relative}.el-col-lg-9{flex:0 0 37.5%;max-width:37.5%}.el-col-lg-9,.el-col-lg-9.is-guttered{display:block}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{left:37.5%;position:relative}.el-col-lg-10{display:block;flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-lg-10.is-guttered{display:block}.el-col-lg-offset-10{margin-left:41.6666666667%}.el-col-lg-pull-10{position:relative;right:41.6666666667%}.el-col-lg-push-10{left:41.6666666667%;position:relative}.el-col-lg-11{display:block;flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-lg-11.is-guttered{display:block}.el-col-lg-offset-11{margin-left:45.8333333333%}.el-col-lg-pull-11{position:relative;right:45.8333333333%}.el-col-lg-push-11{left:45.8333333333%;position:relative}.el-col-lg-12{display:block;flex:0 0 50%;max-width:50%}.el-col-lg-12.is-guttered{display:block}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{left:50%;position:relative}.el-col-lg-13{display:block;flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-lg-13.is-guttered{display:block}.el-col-lg-offset-13{margin-left:54.1666666667%}.el-col-lg-pull-13{position:relative;right:54.1666666667%}.el-col-lg-push-13{left:54.1666666667%;position:relative}.el-col-lg-14{display:block;flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-lg-14.is-guttered{display:block}.el-col-lg-offset-14{margin-left:58.3333333333%}.el-col-lg-pull-14{position:relative;right:58.3333333333%}.el-col-lg-push-14{left:58.3333333333%;position:relative}.el-col-lg-15{display:block;flex:0 0 62.5%;max-width:62.5%}.el-col-lg-15.is-guttered{display:block}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{left:62.5%;position:relative}.el-col-lg-16{display:block;flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-lg-16.is-guttered{display:block}.el-col-lg-offset-16{margin-left:66.6666666667%}.el-col-lg-pull-16{position:relative;right:66.6666666667%}.el-col-lg-push-16{left:66.6666666667%;position:relative}.el-col-lg-17{display:block;flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-lg-17.is-guttered{display:block}.el-col-lg-offset-17{margin-left:70.8333333333%}.el-col-lg-pull-17{position:relative;right:70.8333333333%}.el-col-lg-push-17{left:70.8333333333%;position:relative}.el-col-lg-18{display:block;flex:0 0 75%;max-width:75%}.el-col-lg-18.is-guttered{display:block}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{left:75%;position:relative}.el-col-lg-19{display:block;flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-lg-19.is-guttered{display:block}.el-col-lg-offset-19{margin-left:79.1666666667%}.el-col-lg-pull-19{position:relative;right:79.1666666667%}.el-col-lg-push-19{left:79.1666666667%;position:relative}.el-col-lg-20{display:block;flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-lg-20.is-guttered{display:block}.el-col-lg-offset-20{margin-left:83.3333333333%}.el-col-lg-pull-20{position:relative;right:83.3333333333%}.el-col-lg-push-20{left:83.3333333333%;position:relative}.el-col-lg-21{display:block;flex:0 0 87.5%;max-width:87.5%}.el-col-lg-21.is-guttered{display:block}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{left:87.5%;position:relative}.el-col-lg-22{display:block;flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-lg-22.is-guttered{display:block}.el-col-lg-offset-22{margin-left:91.6666666667%}.el-col-lg-pull-22{position:relative;right:91.6666666667%}.el-col-lg-push-22{left:91.6666666667%;position:relative}.el-col-lg-23{display:block;flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-lg-23.is-guttered{display:block}.el-col-lg-offset-23{margin-left:95.8333333333%}.el-col-lg-pull-23{position:relative;right:95.8333333333%}.el-col-lg-push-23{left:95.8333333333%;position:relative}.el-col-lg-24{display:block;flex:0 0 100%;max-width:100%}.el-col-lg-24.is-guttered{display:block}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{left:100%;position:relative}}@media only screen and (min-width:1920px){.el-col-xl-0{display:none;flex:0 0 0%;max-width:0}.el-col-xl-0.is-guttered{display:none}.el-col-xl-offset-0{margin-left:0}.el-col-xl-pull-0{position:relative;right:0}.el-col-xl-push-0{left:0;position:relative}.el-col-xl-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-xl-1,.el-col-xl-1.is-guttered{display:block}.el-col-xl-offset-1{margin-left:4.1666666667%}.el-col-xl-pull-1{position:relative;right:4.1666666667%}.el-col-xl-push-1{left:4.1666666667%;position:relative}.el-col-xl-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-xl-2,.el-col-xl-2.is-guttered{display:block}.el-col-xl-offset-2{margin-left:8.3333333333%}.el-col-xl-pull-2{position:relative;right:8.3333333333%}.el-col-xl-push-2{left:8.3333333333%;position:relative}.el-col-xl-3{flex:0 0 12.5%;max-width:12.5%}.el-col-xl-3,.el-col-xl-3.is-guttered{display:block}.el-col-xl-offset-3{margin-left:12.5%}.el-col-xl-pull-3{position:relative;right:12.5%}.el-col-xl-push-3{left:12.5%;position:relative}.el-col-xl-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-xl-4,.el-col-xl-4.is-guttered{display:block}.el-col-xl-offset-4{margin-left:16.6666666667%}.el-col-xl-pull-4{position:relative;right:16.6666666667%}.el-col-xl-push-4{left:16.6666666667%;position:relative}.el-col-xl-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-xl-5,.el-col-xl-5.is-guttered{display:block}.el-col-xl-offset-5{margin-left:20.8333333333%}.el-col-xl-pull-5{position:relative;right:20.8333333333%}.el-col-xl-push-5{left:20.8333333333%;position:relative}.el-col-xl-6{flex:0 0 25%;max-width:25%}.el-col-xl-6,.el-col-xl-6.is-guttered{display:block}.el-col-xl-offset-6{margin-left:25%}.el-col-xl-pull-6{position:relative;right:25%}.el-col-xl-push-6{left:25%;position:relative}.el-col-xl-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-xl-7,.el-col-xl-7.is-guttered{display:block}.el-col-xl-offset-7{margin-left:29.1666666667%}.el-col-xl-pull-7{position:relative;right:29.1666666667%}.el-col-xl-push-7{left:29.1666666667%;position:relative}.el-col-xl-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-xl-8,.el-col-xl-8.is-guttered{display:block}.el-col-xl-offset-8{margin-left:33.3333333333%}.el-col-xl-pull-8{position:relative;right:33.3333333333%}.el-col-xl-push-8{left:33.3333333333%;position:relative}.el-col-xl-9{flex:0 0 37.5%;max-width:37.5%}.el-col-xl-9,.el-col-xl-9.is-guttered{display:block}.el-col-xl-offset-9{margin-left:37.5%}.el-col-xl-pull-9{position:relative;right:37.5%}.el-col-xl-push-9{left:37.5%;position:relative}.el-col-xl-10{display:block;flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-xl-10.is-guttered{display:block}.el-col-xl-offset-10{margin-left:41.6666666667%}.el-col-xl-pull-10{position:relative;right:41.6666666667%}.el-col-xl-push-10{left:41.6666666667%;position:relative}.el-col-xl-11{display:block;flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-xl-11.is-guttered{display:block}.el-col-xl-offset-11{margin-left:45.8333333333%}.el-col-xl-pull-11{position:relative;right:45.8333333333%}.el-col-xl-push-11{left:45.8333333333%;position:relative}.el-col-xl-12{display:block;flex:0 0 50%;max-width:50%}.el-col-xl-12.is-guttered{display:block}.el-col-xl-offset-12{margin-left:50%}.el-col-xl-pull-12{position:relative;right:50%}.el-col-xl-push-12{left:50%;position:relative}.el-col-xl-13{display:block;flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-xl-13.is-guttered{display:block}.el-col-xl-offset-13{margin-left:54.1666666667%}.el-col-xl-pull-13{position:relative;right:54.1666666667%}.el-col-xl-push-13{left:54.1666666667%;position:relative}.el-col-xl-14{display:block;flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-xl-14.is-guttered{display:block}.el-col-xl-offset-14{margin-left:58.3333333333%}.el-col-xl-pull-14{position:relative;right:58.3333333333%}.el-col-xl-push-14{left:58.3333333333%;position:relative}.el-col-xl-15{display:block;flex:0 0 62.5%;max-width:62.5%}.el-col-xl-15.is-guttered{display:block}.el-col-xl-offset-15{margin-left:62.5%}.el-col-xl-pull-15{position:relative;right:62.5%}.el-col-xl-push-15{left:62.5%;position:relative}.el-col-xl-16{display:block;flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-xl-16.is-guttered{display:block}.el-col-xl-offset-16{margin-left:66.6666666667%}.el-col-xl-pull-16{position:relative;right:66.6666666667%}.el-col-xl-push-16{left:66.6666666667%;position:relative}.el-col-xl-17{display:block;flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-xl-17.is-guttered{display:block}.el-col-xl-offset-17{margin-left:70.8333333333%}.el-col-xl-pull-17{position:relative;right:70.8333333333%}.el-col-xl-push-17{left:70.8333333333%;position:relative}.el-col-xl-18{display:block;flex:0 0 75%;max-width:75%}.el-col-xl-18.is-guttered{display:block}.el-col-xl-offset-18{margin-left:75%}.el-col-xl-pull-18{position:relative;right:75%}.el-col-xl-push-18{left:75%;position:relative}.el-col-xl-19{display:block;flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-xl-19.is-guttered{display:block}.el-col-xl-offset-19{margin-left:79.1666666667%}.el-col-xl-pull-19{position:relative;right:79.1666666667%}.el-col-xl-push-19{left:79.1666666667%;position:relative}.el-col-xl-20{display:block;flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-xl-20.is-guttered{display:block}.el-col-xl-offset-20{margin-left:83.3333333333%}.el-col-xl-pull-20{position:relative;right:83.3333333333%}.el-col-xl-push-20{left:83.3333333333%;position:relative}.el-col-xl-21{display:block;flex:0 0 87.5%;max-width:87.5%}.el-col-xl-21.is-guttered{display:block}.el-col-xl-offset-21{margin-left:87.5%}.el-col-xl-pull-21{position:relative;right:87.5%}.el-col-xl-push-21{left:87.5%;position:relative}.el-col-xl-22{display:block;flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-xl-22.is-guttered{display:block}.el-col-xl-offset-22{margin-left:91.6666666667%}.el-col-xl-pull-22{position:relative;right:91.6666666667%}.el-col-xl-push-22{left:91.6666666667%;position:relative}.el-col-xl-23{display:block;flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-xl-23.is-guttered{display:block}.el-col-xl-offset-23{margin-left:95.8333333333%}.el-col-xl-pull-23{position:relative;right:95.8333333333%}.el-col-xl-push-23{left:95.8333333333%;position:relative}.el-col-xl-24{display:block;flex:0 0 100%;max-width:100%}.el-col-xl-24.is-guttered{display:block}.el-col-xl-offset-24{margin-left:100%}.el-col-xl-pull-24{position:relative;right:100%}.el-col-xl-push-24{left:100%;position:relative}}.el-text{--el-text-font-size:var(--el-font-size-base);--el-text-color:var(--el-text-color-regular);align-self:center;color:var(--el-text-color);font-size:var(--el-text-font-size);margin:0;overflow-wrap:break-word;padding:0}.el-text.is-truncated{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-text.is-line-clamp{display:-webkit-inline-box;-webkit-box-orient:vertical;overflow:hidden}.el-text--large{--el-text-font-size:var(--el-font-size-medium)}.el-text--default{--el-text-font-size:var(--el-font-size-base)}.el-text--small{--el-text-font-size:var(--el-font-size-extra-small)}.el-text.el-text--primary{--el-text-color:var(--el-color-primary)}.el-text.el-text--success{--el-text-color:var(--el-color-success)}.el-text.el-text--warning{--el-text-color:var(--el-color-warning)}.el-text.el-text--danger{--el-text-color:var(--el-color-danger)}.el-text.el-text--error{--el-text-color:var(--el-color-error)}.el-text.el-text--info{--el-text-color:var(--el-color-info)}.el-text>.el-icon{vertical-align:-2px}.el-tag{--el-tag-font-size:12px;--el-tag-border-radius:4px;--el-tag-border-radius-rounded:9999px;align-items:center;background-color:var(--el-tag-bg-color);border-color:var(--el-tag-border-color);border-radius:var(--el-tag-border-radius);border-style:solid;border-width:1px;box-sizing:border-box;color:var(--el-tag-text-color);display:inline-flex;font-size:var(--el-tag-font-size);height:24px;justify-content:center;line-height:1;padding:0 9px;vertical-align:middle;white-space:nowrap;--el-icon-size:14px}.el-tag,.el-tag.el-tag--primary{--el-tag-bg-color:var(--el-color-primary-light-9);--el-tag-border-color:var(--el-color-primary-light-8);--el-tag-hover-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-bg-color:var(--el-color-success-light-9);--el-tag-border-color:var(--el-color-success-light-8);--el-tag-hover-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-bg-color:var(--el-color-warning-light-9);--el-tag-border-color:var(--el-color-warning-light-8);--el-tag-hover-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-bg-color:var(--el-color-danger-light-9);--el-tag-border-color:var(--el-color-danger-light-8);--el-tag-hover-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-bg-color:var(--el-color-error-light-9);--el-tag-border-color:var(--el-color-error-light-8);--el-tag-hover-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-bg-color:var(--el-color-info-light-9);--el-tag-border-color:var(--el-color-info-light-8);--el-tag-hover-color:var(--el-color-info)}.el-tag.is-hit{border-color:var(--el-color-primary)}.el-tag.is-round{border-radius:var(--el-tag-border-radius-rounded)}.el-tag .el-tag__close{color:var(--el-tag-text-color);flex-shrink:0}.el-tag .el-tag__close:hover{background-color:var(--el-tag-hover-color);color:var(--el-color-white)}.el-tag.el-tag--primary{--el-tag-text-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-text-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-text-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-text-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-text-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-text-color:var(--el-color-info)}.el-tag .el-icon{border-radius:50%;cursor:pointer;font-size:calc(var(--el-icon-size) - 2px);height:var(--el-icon-size);width:var(--el-icon-size)}.el-tag .el-tag__close{margin-left:6px}.el-tag--dark{--el-tag-text-color:var(--el-color-white)}.el-tag--dark,.el-tag--dark.el-tag--primary{--el-tag-bg-color:var(--el-color-primary);--el-tag-border-color:var(--el-color-primary);--el-tag-hover-color:var(--el-color-primary-light-3)}.el-tag--dark.el-tag--success{--el-tag-bg-color:var(--el-color-success);--el-tag-border-color:var(--el-color-success);--el-tag-hover-color:var(--el-color-success-light-3)}.el-tag--dark.el-tag--warning{--el-tag-bg-color:var(--el-color-warning);--el-tag-border-color:var(--el-color-warning);--el-tag-hover-color:var(--el-color-warning-light-3)}.el-tag--dark.el-tag--danger{--el-tag-bg-color:var(--el-color-danger);--el-tag-border-color:var(--el-color-danger);--el-tag-hover-color:var(--el-color-danger-light-3)}.el-tag--dark.el-tag--error{--el-tag-bg-color:var(--el-color-error);--el-tag-border-color:var(--el-color-error);--el-tag-hover-color:var(--el-color-error-light-3)}.el-tag--dark.el-tag--info{--el-tag-bg-color:var(--el-color-info);--el-tag-border-color:var(--el-color-info);--el-tag-hover-color:var(--el-color-info-light-3)}.el-tag--dark.el-tag--danger,.el-tag--dark.el-tag--error,.el-tag--dark.el-tag--info,.el-tag--dark.el-tag--primary,.el-tag--dark.el-tag--success,.el-tag--dark.el-tag--warning{--el-tag-text-color:var(--el-color-white)}.el-tag--plain,.el-tag--plain.el-tag--primary{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-primary-light-5);--el-tag-hover-color:var(--el-color-primary)}.el-tag--plain.el-tag--success{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-success-light-5);--el-tag-hover-color:var(--el-color-success)}.el-tag--plain.el-tag--warning{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-warning-light-5);--el-tag-hover-color:var(--el-color-warning)}.el-tag--plain.el-tag--danger{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-danger-light-5);--el-tag-hover-color:var(--el-color-danger)}.el-tag--plain.el-tag--error{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-error-light-5);--el-tag-hover-color:var(--el-color-error)}.el-tag--plain.el-tag--info{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-info-light-5);--el-tag-hover-color:var(--el-color-info)}.el-tag.is-closable{padding-right:5px}.el-tag--large{height:32px;padding:0 11px;--el-icon-size:16px}.el-tag--large .el-tag__close{margin-left:8px}.el-tag--large.is-closable{padding-right:7px}.el-tag--small{height:20px;padding:0 7px;--el-icon-size:12px}.el-tag--small .el-tag__close{margin-left:4px}.el-tag--small.is-closable{padding-right:3px}.el-tag--small .el-icon-close{transform:scale(.8)}.el-tag.el-tag--primary.is-hit{border-color:var(--el-color-primary)}.el-tag.el-tag--success.is-hit{border-color:var(--el-color-success)}.el-tag.el-tag--warning.is-hit{border-color:var(--el-color-warning)}.el-tag.el-tag--danger.is-hit{border-color:var(--el-color-danger)}.el-tag.el-tag--error.is-hit{border-color:var(--el-color-error)}.el-tag.el-tag--info.is-hit{border-color:var(--el-color-info)}.el-select-dropdown.is-multiple .el-select-dropdown__item.is-selected:after{background-color:var(--el-color-primary);background-position:50%;background-repeat:no-repeat;border-right:none;border-top:none;content:"";height:12px;mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask-size:100% 100%;-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;-webkit-mask-size:100% 100%;position:absolute;right:20px;top:50%;transform:translateY(-50%);width:12px}.el-select-dropdown{border-radius:var(--el-border-radius-base);box-sizing:border-box;z-index:calc(var(--el-index-top) + 1)}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown__empty,.el-select-dropdown__loading{color:var(--el-text-color-secondary);font-size:var(--el-select-font-size);margin:0;padding:10px 0;text-align:center}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{box-sizing:border-box;list-style:none;margin:0;padding:6px 0}.el-select-dropdown__list.el-vl__window{margin:6px 0;padding:0}.el-select-dropdown__header{border-bottom:1px solid var(--el-border-color-light);padding:10px}.el-select-dropdown__footer{border-top:1px solid var(--el-border-color-light);padding:10px}.el-select-dropdown__item{box-sizing:border-box;color:var(--el-text-color-regular);cursor:pointer;font-size:var(--el-font-size-base);height:34px;line-height:34px;overflow:hidden;padding:0 32px 0 20px;position:relative;text-overflow:ellipsis;white-space:nowrap}.el-select-dropdown__item.is-hovering{background-color:var(--el-fill-color-light)}.el-select-dropdown__item.is-selected{color:var(--el-color-primary);font-weight:700}.el-select-dropdown__item.is-disabled{background-color:unset;color:var(--el-text-color-placeholder);cursor:not-allowed}.el-select-dropdown.is-multiple .el-select-dropdown__item.is-selected:after{background-color:var(--el-color-primary);background-position:50%;background-repeat:no-repeat;border-right:none;border-top:none;content:"";height:12px;mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask-size:100% 100%;-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;-webkit-mask-size:100% 100%;position:absolute;right:20px;top:50%;transform:translateY(-50%);width:12px}.el-select-dropdown.is-multiple .el-select-dropdown__item.is-disabled:after{background-color:var(--el-text-color-placeholder)}.el-select-group{margin:0;padding:0}.el-select-group__wrap{list-style:none;margin:0;padding:0;position:relative}.el-select-group__title{color:var(--el-color-info);font-size:12px;line-height:34px;padding-left:20px}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-select{--el-select-border-color-hover:var(--el-border-color-hover);--el-select-disabled-color:var(--el-disabled-text-color);--el-select-disabled-border:var(--el-disabled-border-color);--el-select-font-size:var(--el-font-size-base);--el-select-close-hover-color:var(--el-text-color-secondary);--el-select-input-color:var(--el-text-color-placeholder);--el-select-multiple-input-color:var(--el-text-color-regular);--el-select-input-focus-border-color:var(--el-color-primary);--el-select-input-font-size:14px;--el-select-width:100%;display:inline-block;position:relative;vertical-align:middle;width:var(--el-select-width)}.el-select__wrapper{align-items:center;background-color:var(--el-fill-color-blank);border-radius:var(--el-border-radius-base);box-shadow:0 0 0 1px var(--el-border-color) inset;box-sizing:border-box;cursor:pointer;display:flex;font-size:14px;gap:6px;line-height:24px;min-height:32px;padding:4px 12px;position:relative;text-align:left;transform:translateZ(0);transition:var(--el-transition-duration)}.el-select__wrapper.is-filterable{cursor:text}.el-select__wrapper.is-focused{box-shadow:0 0 0 1px var(--el-color-primary) inset}.el-select__wrapper.is-hovering:not(.is-focused){box-shadow:0 0 0 1px var(--el-border-color-hover) inset}.el-select__wrapper.is-disabled{background-color:var(--el-fill-color-light);color:var(--el-text-color-placeholder);cursor:not-allowed}.el-select__wrapper.is-disabled,.el-select__wrapper.is-disabled:hover{box-shadow:0 0 0 1px var(--el-select-disabled-border) inset}.el-select__wrapper.is-disabled.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-select__wrapper.is-disabled .el-select__selected-item{color:var(--el-select-disabled-color)}.el-select__wrapper.is-disabled .el-select__caret,.el-select__wrapper.is-disabled .el-tag{cursor:not-allowed}.el-select__prefix,.el-select__suffix{align-items:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));display:flex;flex-shrink:0;gap:6px}.el-select__caret{color:var(--el-select-input-color);cursor:pointer;font-size:var(--el-select-input-font-size);transform:rotate(0);transition:var(--el-transition-duration)}.el-select__caret.is-reverse{transform:rotate(180deg)}.el-select__selection{align-items:center;display:flex;flex:1;flex-wrap:wrap;gap:6px;min-width:0;position:relative}.el-select__selection.is-near{margin-left:-8px}.el-select__selection .el-tag{border-color:transparent;cursor:pointer}.el-select__selection .el-tag.el-tag--plain{border-color:var(--el-tag-border-color)}.el-select__selection .el-tag .el-tag__content{min-width:0}.el-select__selected-item{display:flex;flex-wrap:wrap;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-select__tags-text{line-height:normal}.el-select__placeholder,.el-select__tags-text{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-select__placeholder{color:var(--el-input-text-color,var(--el-text-color-regular));position:absolute;top:50%;transform:translateY(-50%);width:100%}.el-select__placeholder.is-transparent{color:var(--el-text-color-placeholder);-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-select__popper.el-popper{background:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-select__popper.el-popper,.el-select__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-select__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-left-color:transparent;border-top-color:transparent}.el-select__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-select__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:transparent;border-left-color:transparent}.el-select__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-select__input-wrapper{max-width:100%}.el-select__input-wrapper.is-hidden{opacity:0;position:absolute}.el-select__input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;color:var(--el-select-multiple-input-color);font-family:inherit;font-size:inherit;height:24px;max-width:100%;outline:none;padding:0}.el-select__input.is-disabled{cursor:not-allowed}.el-select__input-calculator{left:0;max-width:100%;overflow:hidden;position:absolute;top:0;visibility:hidden;white-space:pre}.el-select--large .el-select__wrapper{font-size:14px;gap:6px;line-height:24px;min-height:40px;padding:8px 16px}.el-select--large .el-select__selection{gap:6px}.el-select--large .el-select__selection.is-near{margin-left:-8px}.el-select--large .el-select__prefix,.el-select--large .el-select__suffix{gap:6px}.el-select--large .el-select__input{height:24px}.el-select--small .el-select__wrapper{font-size:12px;gap:4px;line-height:20px;min-height:24px;padding:2px 8px}.el-select--small .el-select__selection{gap:4px}.el-select--small .el-select__selection.is-near{margin-left:-6px}.el-select--small .el-select__prefix,.el-select--small .el-select__suffix{gap:4px}.el-select--small .el-select__input{height:20px}.setting-row .setting-container[data-v-e82e761f]{display:flex;justify-content:space-between;align-items:center}.setting-row .setting-container .input-label[data-v-e82e761f]{margin-right:10px}.setting-row .setting-container .default-btn[data-v-e82e761f]{margin-left:10px}.el-row[data-v-46a70e80]{margin-bottom:20px}.el-row[data-v-46a70e80]:last-child{margin-bottom:0}.bili-config .wide-row[data-v-46a70e80]{margin-right:calc(var(--el-dialog-padding-primary) * -2)}.bili-config .setting-row .setting-container[data-v-46a70e80]{display:flex;justify-content:space-between;align-items:center}.bili-config .setting-row .setting-container .input-label[data-v-46a70e80]{margin-right:10px}.bili-config .setting-row .setting-container .default-btn[data-v-46a70e80]{margin-left:10px}[data-v-46a70e80] .is-vertical,[data-v-46a70e80] .is-horizontal{display:none!important}.el-link{--el-link-font-size:var(--el-font-size-base);--el-link-font-weight:var(--el-font-weight-primary);--el-link-text-color:var(--el-text-color-regular);--el-link-hover-text-color:var(--el-color-primary);--el-link-disabled-text-color:var(--el-text-color-placeholder);align-items:center;color:var(--el-link-text-color);cursor:pointer;display:inline-flex;flex-direction:row;font-size:var(--el-link-font-size);font-weight:var(--el-link-font-weight);justify-content:center;outline:none;padding:0;position:relative;text-decoration:none;vertical-align:middle}.el-link:hover{color:var(--el-link-hover-text-color)}.el-link.is-underline:hover:after{border-bottom:1px solid var(--el-link-hover-text-color);bottom:0;content:"";height:0;left:0;position:absolute;right:0}.el-link.is-disabled{color:var(--el-link-disabled-text-color);cursor:not-allowed}.el-link [class*=el-icon-]+span{margin-left:5px}.el-link.el-link--default:after{border-color:var(--el-link-hover-text-color)}.el-link__inner{align-items:center;display:inline-flex;justify-content:center}.el-link.el-link--primary{--el-link-text-color:var(--el-color-primary);--el-link-hover-text-color:var(--el-color-primary-light-3);--el-link-disabled-text-color:var(--el-color-primary-light-5)}.el-link.el-link--primary.is-underline:hover:after,.el-link.el-link--primary:after{border-color:var(--el-link-text-color)}.el-link.el-link--success{--el-link-text-color:var(--el-color-success);--el-link-hover-text-color:var(--el-color-success-light-3);--el-link-disabled-text-color:var(--el-color-success-light-5)}.el-link.el-link--success.is-underline:hover:after,.el-link.el-link--success:after{border-color:var(--el-link-text-color)}.el-link.el-link--warning{--el-link-text-color:var(--el-color-warning);--el-link-hover-text-color:var(--el-color-warning-light-3);--el-link-disabled-text-color:var(--el-color-warning-light-5)}.el-link.el-link--warning.is-underline:hover:after,.el-link.el-link--warning:after{border-color:var(--el-link-text-color)}.el-link.el-link--danger{--el-link-text-color:var(--el-color-danger);--el-link-hover-text-color:var(--el-color-danger-light-3);--el-link-disabled-text-color:var(--el-color-danger-light-5)}.el-link.el-link--danger.is-underline:hover:after,.el-link.el-link--danger:after{border-color:var(--el-link-text-color)}.el-link.el-link--error{--el-link-text-color:var(--el-color-error);--el-link-hover-text-color:var(--el-color-error-light-3);--el-link-disabled-text-color:var(--el-color-error-light-5)}.el-link.el-link--error.is-underline:hover:after,.el-link.el-link--error:after{border-color:var(--el-link-text-color)}.el-link.el-link--info{--el-link-text-color:var(--el-color-info);--el-link-hover-text-color:var(--el-color-info-light-3);--el-link-disabled-text-color:var(--el-color-info-light-5)}.el-link.el-link--info.is-underline:hover:after,.el-link.el-link--info:after{border-color:var(--el-link-text-color)}.el-notification{--el-notification-width:330px;--el-notification-padding:14px 26px 14px 13px;--el-notification-radius:8px;--el-notification-shadow:var(--el-box-shadow-light);--el-notification-border-color:var(--el-border-color-lighter);--el-notification-icon-size:24px;--el-notification-close-font-size:var(--el-message-close-size,16px);--el-notification-group-margin-left:13px;--el-notification-group-margin-right:8px;--el-notification-content-font-size:var(--el-font-size-base);--el-notification-content-color:var(--el-text-color-regular);--el-notification-title-font-size:16px;--el-notification-title-color:var(--el-text-color-primary);--el-notification-close-color:var(--el-text-color-secondary);--el-notification-close-hover-color:var(--el-text-color-regular);background-color:var(--el-bg-color-overlay);border:1px solid var(--el-notification-border-color);border-radius:var(--el-notification-radius);box-shadow:var(--el-notification-shadow);box-sizing:border-box;display:flex;overflow:hidden;overflow-wrap:break-word;padding:var(--el-notification-padding);position:fixed;transition:opacity var(--el-transition-duration),transform var(--el-transition-duration),left var(--el-transition-duration),right var(--el-transition-duration),top .4s,bottom var(--el-transition-duration);width:var(--el-notification-width);z-index:9999}.el-notification.right{right:16px}.el-notification.left{left:16px}.el-notification__group{margin-left:var(--el-notification-group-margin-left);margin-right:var(--el-notification-group-margin-right)}.el-notification__title{color:var(--el-notification-title-color);font-size:var(--el-notification-title-font-size);font-weight:700;line-height:var(--el-notification-icon-size);margin:0}.el-notification__content{color:var(--el-notification-content-color);font-size:var(--el-notification-content-font-size);line-height:24px;margin:6px 0 0}.el-notification__content p{margin:0}.el-notification .el-notification__icon{font-size:var(--el-notification-icon-size);height:var(--el-notification-icon-size);width:var(--el-notification-icon-size)}.el-notification .el-notification__closeBtn{color:var(--el-notification-close-color);cursor:pointer;font-size:var(--el-notification-close-font-size);position:absolute;right:15px;top:18px}.el-notification .el-notification__closeBtn:hover{color:var(--el-notification-close-hover-color)}.el-notification .el-notification--success{--el-notification-icon-color:var(--el-color-success);color:var(--el-notification-icon-color)}.el-notification .el-notification--info{--el-notification-icon-color:var(--el-color-info);color:var(--el-notification-icon-color)}.el-notification .el-notification--warning{--el-notification-icon-color:var(--el-color-warning);color:var(--el-notification-icon-color)}.el-notification .el-notification--error{--el-notification-icon-color:var(--el-color-error);color:var(--el-notification-icon-color)}.el-notification-fade-enter-from.right{right:0;transform:translate(100%)}.el-notification-fade-enter-from.left{left:0;transform:translate(-100%)}.el-notification-fade-leave-to{opacity:0}.container[data-v-cc398a05]{margin-top:10px;display:flex;gap:5px}.tabs-item[data-v-180e731c]{margin-top:calc(var(--el-dialog-padding-primary) * -2 + 8px)}[data-v-180e731c] .el-tabs__nav-wrap:after{background-color:transparent}.upload-dialog[data-v-053f12e5]{--el-message-close-size: 20px}[data-v-053f12e5] .el-dialog__headerbtn{z-index:300}[data-v-053f12e5] .el-dialog__headerbtn:after{content:"";display:block;position:absolute;top:0;left:0;width:100%;height:100%;transform:scale(1.5)}:root{--scroll-duration: .5s;--scroll-timing-function: ease;--search-bar-top-gap: 35vh;--wallpaper-pos-x: center;--wallpaper-pos-y: center;--wallpaper-size: cover;--wallpaper-bg-color: whitesmoke}.adblock-tips{display:none!important}.el-message-box .el-button.el-button--primary{background-color:#409eff}.monkey-hidden,.adcard{display:none!important}/*!* \u6E38\u620F\u4E2D\u5FC3 *!*//*!* \u4F1A\u5458\u8D2D *!*//*!* \u79D1\u5B66\u665A *!*//*!* \u4E0A\u4F20\u6309\u94AE: \u4E3A\u4E86\u8BA9\u6574\u4F53\u66F4\u52A0\u7F8E\u89C2 *!*/.center-search__bar{translate:0 var(--search-bar-top-gap)}.bili-header__banner,.bili-header__channel,.bili-feed4-layout{transition:translate var(--scroll-duration) var(--scroll-timing-function);translate:0 100vh}.header-channel{transition:translate .2s var(--scroll-timing-function) var(--scroll-duration);translate:0 100vh!important}#header-channel-show{translate:0 0!important} `);
(function (vue) {
'use strict';
var __getOwnPropNames = Object.getOwnPropertyNames;
var __commonJS = (cb, mod) => function __require() {
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
};
var require_main_001 = __commonJS({
"main-CwxJ-UKk.js"(exports, module) {
var isVue2 = false;
/*!
* pinia v2.2.5
* (c) 2024 Eduardo San Martin Morote
* @license MIT
*/
let activePinia;
const setActivePinia = (pinia2) => activePinia = pinia2;
const piniaSymbol = (
/* istanbul ignore next */
Symbol()
);
function isPlainObject$1(o) {
return o && typeof o === "object" && Object.prototype.toString.call(o) === "[object Object]" && typeof o.toJSON !== "function";
}
var MutationType;
(function(MutationType2) {
MutationType2["direct"] = "direct";
MutationType2["patchObject"] = "patch object";
MutationType2["patchFunction"] = "patch function";
})(MutationType || (MutationType = {}));
function createPinia() {
const scope = vue.effectScope(true);
const state = scope.run(() => vue.ref({}));
let _p = [];
let toBeInstalled = [];
const pinia2 = vue.markRaw({
install(app2) {
setActivePinia(pinia2);
{
pinia2._a = app2;
app2.provide(piniaSymbol, pinia2);
app2.config.globalProperties.$pinia = pinia2;
toBeInstalled.forEach((plugin) => _p.push(plugin));
toBeInstalled = [];
}
},
use(plugin) {
if (!this._a && !isVue2) {
toBeInstalled.push(plugin);
} else {
_p.push(plugin);
}
return this;
},
_p,
// it's actually undefined here
// @ts-expect-error
_a: null,
_e: scope,
_s: /* @__PURE__ */ new Map(),
state
});
return pinia2;
}
const noop$3 = () => {
};
function addSubscription(subscriptions, callback, detached, onCleanup = noop$3) {
subscriptions.push(callback);
const removeSubscription = () => {
const idx = subscriptions.indexOf(callback);
if (idx > -1) {
subscriptions.splice(idx, 1);
onCleanup();
}
};
if (!detached && vue.getCurrentScope()) {
vue.onScopeDispose(removeSubscription);
}
return removeSubscription;
}
function triggerSubscriptions(subscriptions, ...args) {
subscriptions.slice().forEach((callback) => {
callback(...args);
});
}
const fallbackRunWithContext = (fn2) => fn2();
const ACTION_MARKER = Symbol();
const ACTION_NAME = Symbol();
function mergeReactiveObjects(target, patchToApply) {
if (target instanceof Map && patchToApply instanceof Map) {
patchToApply.forEach((value, key) => target.set(key, value));
} else if (target instanceof Set && patchToApply instanceof Set) {
patchToApply.forEach(target.add, target);
}
for (const key in patchToApply) {
if (!patchToApply.hasOwnProperty(key))
continue;
const subPatch = patchToApply[key];
const targetValue = target[key];
if (isPlainObject$1(targetValue) && isPlainObject$1(subPatch) && target.hasOwnProperty(key) && !vue.isRef(subPatch) && !vue.isReactive(subPatch)) {
target[key] = mergeReactiveObjects(targetValue, subPatch);
} else {
target[key] = subPatch;
}
}
return target;
}
const skipHydrateSymbol = (
/* istanbul ignore next */
Symbol()
);
function shouldHydrate(obj) {
return !isPlainObject$1(obj) || !obj.hasOwnProperty(skipHydrateSymbol);
}
const { assign } = Object;
function isComputed(o) {
return !!(vue.isRef(o) && o.effect);
}
function createOptionsStore(id, options, pinia2, hot) {
const { state, actions, getters } = options;
const initialState = pinia2.state.value[id];
let store;
function setup() {
if (!initialState && true) {
{
pinia2.state.value[id] = state ? state() : {};
}
}
const localState = vue.toRefs(pinia2.state.value[id]);
return assign(localState, actions, Object.keys(getters || {}).reduce((computedGetters, name) => {
computedGetters[name] = vue.markRaw(vue.computed(() => {
setActivePinia(pinia2);
const store2 = pinia2._s.get(id);
return getters[name].call(store2, store2);
}));
return computedGetters;
}, {}));
}
store = createSetupStore(id, setup, options, pinia2, hot, true);
return store;
}
function createSetupStore($id, setup, options = {}, pinia2, hot, isOptionsStore) {
let scope;
const optionsForPlugin = assign({ actions: {} }, options);
const $subscribeOptions = { deep: true };
let isListening;
let isSyncListening;
let subscriptions = [];
let actionSubscriptions = [];
let debuggerEvents;
const initialState = pinia2.state.value[$id];
if (!isOptionsStore && !initialState && true) {
{
pinia2.state.value[$id] = {};
}
}
vue.ref({});
let activeListener;
function $patch(partialStateOrMutator) {
let subscriptionMutation;
isListening = isSyncListening = false;
if (typeof partialStateOrMutator === "function") {
partialStateOrMutator(pinia2.state.value[$id]);
subscriptionMutation = {
type: MutationType.patchFunction,
storeId: $id,
events: debuggerEvents
};
} else {
mergeReactiveObjects(pinia2.state.value[$id], partialStateOrMutator);
subscriptionMutation = {
type: MutationType.patchObject,
payload: partialStateOrMutator,
storeId: $id,
events: debuggerEvents
};
}
const myListenerId = activeListener = Symbol();
vue.nextTick().then(() => {
if (activeListener === myListenerId) {
isListening = true;
}
});
isSyncListening = true;
triggerSubscriptions(subscriptions, subscriptionMutation, pinia2.state.value[$id]);
}
const $reset = isOptionsStore ? function $reset2() {
const { state } = options;
const newState = state ? state() : {};
this.$patch(($state) => {
assign($state, newState);
});
} : (
/* istanbul ignore next */
noop$3
);
function $dispose() {
scope.stop();
subscriptions = [];
actionSubscriptions = [];
pinia2._s.delete($id);
}
const action = (fn2, name = "") => {
if (ACTION_MARKER in fn2) {
fn2[ACTION_NAME] = name;
return fn2;
}
const wrappedAction = function() {
setActivePinia(pinia2);
const args = Array.from(arguments);
const afterCallbackList = [];
const onErrorCallbackList = [];
function after2(callback) {
afterCallbackList.push(callback);
}
function onError(callback) {
onErrorCallbackList.push(callback);
}
triggerSubscriptions(actionSubscriptions, {
args,
name: wrappedAction[ACTION_NAME],
store,
after: after2,
onError
});
let ret;
try {
ret = fn2.apply(this && this.$id === $id ? this : store, args);
} catch (error) {
triggerSubscriptions(onErrorCallbackList, error);
throw error;
}
if (ret instanceof Promise) {
return ret.then((value) => {
triggerSubscriptions(afterCallbackList, value);
return value;
}).catch((error) => {
triggerSubscriptions(onErrorCallbackList, error);
return Promise.reject(error);
});
}
triggerSubscriptions(afterCallbackList, ret);
return ret;
};
wrappedAction[ACTION_MARKER] = true;
wrappedAction[ACTION_NAME] = name;
return wrappedAction;
};
const partialStore = {
_p: pinia2,
// _s: scope,
$id,
$onAction: addSubscription.bind(null, actionSubscriptions),
$patch,
$reset,
$subscribe(callback, options2 = {}) {
const removeSubscription = addSubscription(subscriptions, callback, options2.detached, () => stopWatcher());
const stopWatcher = scope.run(() => vue.watch(() => pinia2.state.value[$id], (state) => {
if (options2.flush === "sync" ? isSyncListening : isListening) {
callback({
storeId: $id,
type: MutationType.direct,
events: debuggerEvents
}, state);
}
}, assign({}, $subscribeOptions, options2)));
return removeSubscription;
},
$dispose
};
const store = vue.reactive(partialStore);
pinia2._s.set($id, store);
const runWithContext = pinia2._a && pinia2._a.runWithContext || fallbackRunWithContext;
const setupStore = runWithContext(() => pinia2._e.run(() => (scope = vue.effectScope()).run(() => setup({ action }))));
for (const key in setupStore) {
const prop = setupStore[key];
if (vue.isRef(prop) && !isComputed(prop) || vue.isReactive(prop)) {
if (!isOptionsStore) {
if (initialState && shouldHydrate(prop)) {
if (vue.isRef(prop)) {
prop.value = initialState[key];
} else {
mergeReactiveObjects(prop, initialState[key]);
}
}
{
pinia2.state.value[$id][key] = prop;
}
}
} else if (typeof prop === "function") {
const actionValue = action(prop, key);
{
setupStore[key] = actionValue;
}
optionsForPlugin.actions[key] = prop;
} else ;
}
{
assign(store, setupStore);
assign(vue.toRaw(store), setupStore);
}
Object.defineProperty(store, "$state", {
get: () => pinia2.state.value[$id],
set: (state) => {
$patch(($state) => {
assign($state, state);
});
}
});
pinia2._p.forEach((extender) => {
{
assign(store, scope.run(() => extender({
store,
app: pinia2._a,
pinia: pinia2,
options: optionsForPlugin
})));
}
});
if (initialState && isOptionsStore && options.hydrate) {
options.hydrate(store.$state, initialState);
}
isListening = true;
isSyncListening = true;
return store;
}
/*! #__NO_SIDE_EFFECTS__ */
// @__NO_SIDE_EFFECTS__
function defineStore(idOrOptions, setup, setupOptions) {
let id;
let options;
const isSetupStore = typeof setup === "function";
if (typeof idOrOptions === "string") {
id = idOrOptions;
options = isSetupStore ? setupOptions : setup;
} else {
options = idOrOptions;
id = idOrOptions.id;
}
function useStore(pinia2, hot) {
const hasContext = vue.hasInjectionContext();
pinia2 = // in test mode, ignore the argument provided as we can always retrieve a
// pinia instance with getActivePinia()
pinia2 || (hasContext ? vue.inject(piniaSymbol, null) : null);
if (pinia2)
setActivePinia(pinia2);
pinia2 = activePinia;
if (!pinia2._s.has(id)) {
if (isSetupStore) {
createSetupStore(id, setup, options, pinia2);
} else {
createOptionsStore(id, options, pinia2);
}
}
const store = pinia2._s.get(id);
return store;
}
useStore.$id = id;
return useStore;
}
function storeToRefs(store) {
{
const rawStore = vue.toRaw(store);
const refs = {};
for (const key in rawStore) {
const value = rawStore[key];
if (vue.isRef(value) || vue.isReactive(value)) {
refs[key] = // ---
vue.toRef(store, key);
}
}
return refs;
}
}
var _GM_getValue = /* @__PURE__ */ (() => typeof GM_getValue != "undefined" ? GM_getValue : void 0)();
var _GM_registerMenuCommand = /* @__PURE__ */ (() => typeof GM_registerMenuCommand != "undefined" ? GM_registerMenuCommand : void 0)();
var _GM_setValue = /* @__PURE__ */ (() => typeof GM_setValue != "undefined" ? GM_setValue : void 0)();
const errEl = document.createElement("div");
errEl.classList.add("no-found");
function $Q(selector) {
let ele = document.querySelector(selector);
if (ele == null) {
return errEl;
} else {
return ele;
}
}
function DisplayNone(queryArr) {
for (const query of queryArr) {
$Q(query).style.display = "none";
$Q(query).classList.add("monkey-hidden");
}
}
function applyDisplayState(queryArr, isNone) {
if (isNone) {
for (const query of queryArr) {
$Q(query).style.display = "";
$Q(query).classList.remove("monkey-hidden");
}
} else {
DisplayNone(queryArr);
}
}
function useConfig(key, defaultValue) {
const isObjOrArr = typeof defaultValue === "object" || Array.isArray(defaultValue);
let storeValue = _GM_getValue(key, defaultValue);
if (isObjOrArr) {
if (storeValue !== defaultValue) {
storeValue = JSON.parse(storeValue);
}
if (storeValue === null) {
storeValue = defaultValue;
}
}
const config = vue.ref(storeValue);
vue.watch(config, () => {
if (isObjOrArr) {
let jsonString = JSON.stringify(config.value);
_GM_setValue(key, jsonString);
} else {
_GM_setValue(key, config.value);
}
}, { deep: true });
return config;
}
function applyOriginalShowState(isShow) {
if (isShow) {
$Q(".bili-header__banner").style.translate = "0 0";
$Q(".bili-header__channel").style.translate = "0 0";
$Q(".bili-feed4-layout").style.translate = "0 0";
$Q(".center-search__bar").style.translate = "0 0";
$Q(".center-search__bar").style.transition = "var(--scroll-duration) var(--scroll-timing-function)";
$Q(".header-channel").id = "header-channel-show";
} else {
$Q(".bili-header__banner").style.translate = "";
$Q(".bili-header__channel").style.translate = "";
$Q(".bili-feed4-layout").style.translate = "";
$Q(".center-search__bar").style.translate = "";
$Q(".header-channel").id = "";
}
}
function useDisplayConfig(key, defaultValue, query) {
const config = useConfig(key, defaultValue);
vue.watch(config, () => {
applyDisplayState([query], config.value);
}, { immediate: true });
return config;
}
function useCssVar(varName, defaultValue) {
let cssVar = useConfig(varName, defaultValue);
vue.watch(cssVar, () => {
document.documentElement.style.setProperty(varName, cssVar.value);
}, { immediate: true });
return cssVar;
}
function useCssVarFormat(varName, defaultValue, format) {
const cssVar = useCssVar(varName, defaultValue);
let initValue = parseInt(cssVar.value);
if (Object.is(initValue, NaN)) {
initValue = cssVar.value;
}
const cssVarFormat = vue.ref(initValue);
vue.watch(cssVarFormat, () => {
if (typeof cssVarFormat.value === "number") {
cssVar.value = cssVarFormat.value + format;
} else if (cssVarFormat.value === null) {
cssVar.value = 0;
} else if (typeof cssVarFormat.value === "string") {
cssVar.value = cssVarFormat.value;
}
});
return cssVarFormat;
}
function useIsShowPlaceholder() {
const isShowPlaceholder = useConfig("isClearPlaceholder", false);
let placeholder = $Q(".nav-search-content > input").placeholder;
vue.watch(isShowPlaceholder, () => {
if (isShowPlaceholder.value) {
$Q(".nav-search-content > input").placeholder = placeholder;
} else {
$Q(".nav-search-content > input").placeholder = "";
}
}, { immediate: true });
return isShowPlaceholder;
}
function useStyleConfig(key, defaultValue, cssContent) {
const isApplied = useConfig(key, defaultValue);
const style = document.createElement("style");
style.innerHTML = cssContent;
vue.watch(isApplied, () => {
if (isApplied.value) {
document.head.appendChild(style);
} else {
if (style.parentNode === document.head) {
document.head.removeChild(style);
}
}
}, { immediate: true });
return isApplied;
}
const useBiliStore = /* @__PURE__ */ defineStore("bilibili", () => {
const isShowOriginal = vue.ref(false);
vue.watch(isShowOriginal, () => {
applyOriginalShowState(isShowOriginal.value);
});
const displayConfigObj = vue.ref({
"下载客户端": useDisplayConfig("display-status-download", false, "div.bili-header__bar > ul.left-entry > li:nth-child(8)"),
"会员购": useDisplayConfig("display-status-huiyuangou", true, "div.bili-header__bar > ul.left-entry > li:nth-child(5)"),
"游戏中心": useDisplayConfig("display-status-game-center", true, " div.bili-header__bar > ul.left-entry > li:nth-child(4)"),
"上传按钮": useDisplayConfig("display-status-upload-video", false, ".right-entry-item--upload"),
"隐藏热搜": useStyleConfig(
"hot-search-recommend",
true,
`
.search-panel .trending {
display: none !important;
}
`
),
"热门搜索词": useIsShowPlaceholder()
});
const displayConfigCount = vue.computed(() => {
return Object.values(displayConfigObj.value).length;
});
const displayConfigDescs = vue.computed(() => {
return Object.keys(displayConfigObj.value);
});
const searchBarTopGap = useCssVarFormat("--search-bar-top-gap", "35vh", "vh");
const wallpaperPosX = useCssVarFormat("--wallpaper-pos-x", "center", "px");
const wallpaperPosY = useCssVarFormat("--wallpaper-pos-y", "center", "px");
const wallpaperSize = useCssVarFormat("--wallpaper-size", "cover", "%");
const wallpaperBgColor = useCssVar("--wallpaper-bg-color", "#fff");
return {
isShowOriginal,
displayConfigObj,
displayConfigCount,
displayConfigDescs,
// displayConfigs,
searchBarTopGap,
wallpaperPosX,
wallpaperPosY,
wallpaperSize,
wallpaperBgColor
};
});
const wallpaperBase64 = {
"蓝山": "data:image/jpg;base64,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"
};
const useMainStore = /* @__PURE__ */ defineStore("main", () => {
const extendWallpaperBase64Obj = useConfig("extendWallpaperBase64Obj", {});
const wallpaperBase64Obj = vue.computed(() => ({
...wallpaperBase64,
...extendWallpaperBase64Obj.value
}));
const currWallpaperName = useConfig("currWallpaperName", "蓝山");
function deleteWallpaper(name) {
if (currWallpaperName.value == name) {
currWallpaperName.value = "蓝山";
}
delete extendWallpaperBase64Obj.value[name];
}
function renameWallpaper(oldName, newName) {
let wallpaperBase642 = extendWallpaperBase64Obj.value[oldName];
extendWallpaperBase64Obj.value[newName] = wallpaperBase642;
if (currWallpaperName.value == oldName) {
currWallpaperName.value = newName;
}
delete extendWallpaperBase64Obj.value[oldName];
}
function applyWallpaper(name) {
if (!(name in wallpaperBase64Obj.value)) {
return false;
}
currWallpaperName.value = name;
return true;
}
function appendWallpaper(name, base64) {
extendWallpaperBase64Obj.value[name] = base64;
}
function emptyWallpaper() {
extendWallpaperBase64Obj.value = {};
currWallpaperName.value = "蓝山";
}
if (!(currWallpaperName.value in wallpaperBase64Obj.value)) {
currWallpaperName.value = "蓝山";
}
const isShowDialog2 = useConfig("isShowDialog", false);
const tabsCurrSel = useConfig("tabs-item-currSel", "0");
const collapseCurrSel = useConfig("wallpaper-config-currSel", "1");
const currWallpaperBase64Url = vue.computed(() => {
return `url(${wallpaperBase64Obj.value[currWallpaperName.value]})`;
});
const isShowContact = useConfig("isShowContact", true);
return {
deleteWallpaper,
renameWallpaper,
applyWallpaper,
appendWallpaper,
emptyWallpaper,
currWallpaperName,
extendWallpaperBase64Obj,
wallpaperBase64Obj,
isShowDialog: isShowDialog2,
tabsCurrSel,
collapseCurrSel,
currWallpaperBase64Url,
isShowContact
};
});
function tryOnScopeDispose$1(fn2) {
if (vue.getCurrentScope()) {
vue.onScopeDispose(fn2);
return true;
}
return false;
}
function toValue(r) {
return typeof r === "function" ? r() : vue.unref(r);
}
const isClient$1 = typeof window !== "undefined" && typeof document !== "undefined";
typeof WorkerGlobalScope !== "undefined" && globalThis instanceof WorkerGlobalScope;
const toString$2 = Object.prototype.toString;
const isObject$3 = (val) => toString$2.call(val) === "[object Object]";
const noop$2 = () => {
};
function createFilterWrapper$1(filter2, fn2) {
function wrapper(...args) {
return new Promise((resolve, reject2) => {
Promise.resolve(filter2(() => fn2.apply(this, args), { fn: fn2, thisArg: this, args })).then(resolve).catch(reject2);
});
}
return wrapper;
}
function debounceFilter(ms, options = {}) {
let timer;
let maxTimer;
let lastRejector = noop$2;
const _clearTimeout = (timer2) => {
clearTimeout(timer2);
lastRejector();
lastRejector = noop$2;
};
const filter2 = (invoke2) => {
const duration = toValue(ms);
const maxDuration = toValue(options.maxWait);
if (timer)
_clearTimeout(timer);
if (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {
if (maxTimer) {
_clearTimeout(maxTimer);
maxTimer = null;
}
return Promise.resolve(invoke2());
}
return new Promise((resolve, reject2) => {
lastRejector = options.rejectOnCancel ? reject2 : resolve;
if (maxDuration && !maxTimer) {
maxTimer = setTimeout(() => {
if (timer)
_clearTimeout(timer);
maxTimer = null;
resolve(invoke2());
}, maxDuration);
}
timer = setTimeout(() => {
if (maxTimer)
_clearTimeout(maxTimer);
maxTimer = null;
resolve(invoke2());
}, duration);
});
};
return filter2;
}
function throttleFilter$1(...args) {
let lastExec = 0;
let timer;
let isLeading = true;
let lastRejector = noop$2;
let lastValue;
let ms;
let trailing;
let leading;
let rejectOnCancel;
if (!vue.isRef(args[0]) && typeof args[0] === "object")
({ delay: ms, trailing = true, leading = true, rejectOnCancel = false } = args[0]);
else
[ms, trailing = true, leading = true, rejectOnCancel = false] = args;
const clear = () => {
if (timer) {
clearTimeout(timer);
timer = void 0;
lastRejector();
lastRejector = noop$2;
}
};
const filter2 = (_invoke) => {
const duration = toValue(ms);
const elapsed = Date.now() - lastExec;
const invoke2 = () => {
return lastValue = _invoke();
};
clear();
if (duration <= 0) {
lastExec = Date.now();
return invoke2();
}
if (elapsed > duration && (leading || !isLeading)) {
lastExec = Date.now();
invoke2();
} else if (trailing) {
lastValue = new Promise((resolve, reject2) => {
lastRejector = rejectOnCancel ? reject2 : resolve;
timer = setTimeout(() => {
lastExec = Date.now();
isLeading = true;
resolve(invoke2());
clear();
}, Math.max(0, duration - elapsed));
});
}
if (!leading && !timer)
timer = setTimeout(() => isLeading = true, duration);
isLeading = false;
return lastValue;
};
return filter2;
}
function getLifeCycleTarget(target) {
return vue.getCurrentInstance();
}
function useDebounceFn(fn2, ms = 200, options = {}) {
return createFilterWrapper$1(
debounceFilter(ms, options),
fn2
);
}
function useThrottleFn$1(fn2, ms = 200, trailing = false, leading = true, rejectOnCancel = false) {
return createFilterWrapper$1(
throttleFilter$1(ms, trailing, leading, rejectOnCancel),
fn2
);
}
function tryOnMounted$1(fn2, sync = true, target) {
const instance = getLifeCycleTarget();
if (instance)
vue.onMounted(fn2, target);
else if (sync)
fn2();
else
vue.nextTick(fn2);
}
const defaultWindow$1 = isClient$1 ? window : void 0;
function unrefElement$1(elRef) {
var _a2;
const plain = toValue(elRef);
return (_a2 = plain == null ? void 0 : plain.$el) != null ? _a2 : plain;
}
function useEventListener$1(...args) {
let target;
let events2;
let listeners;
let options;
if (typeof args[0] === "string" || Array.isArray(args[0])) {
[events2, listeners, options] = args;
target = defaultWindow$1;
} else {
[target, events2, listeners, options] = args;
}
if (!target)
return noop$2;
if (!Array.isArray(events2))
events2 = [events2];
if (!Array.isArray(listeners))
listeners = [listeners];
const cleanups = [];
const cleanup = () => {
cleanups.forEach((fn2) => fn2());
cleanups.length = 0;
};
const register = (el, event, listener, options2) => {
el.addEventListener(event, listener, options2);
return () => el.removeEventListener(event, listener, options2);
};
const stopWatch = vue.watch(
() => [unrefElement$1(target), toValue(options)],
([el, options2]) => {
cleanup();
if (!el)
return;
const optionsClone = isObject$3(options2) ? { ...options2 } : options2;
cleanups.push(
...events2.flatMap((event) => {
return listeners.map((listener) => register(el, event, listener, optionsClone));
})
);
},
{ immediate: true, flush: "post" }
);
const stop = () => {
stopWatch();
cleanup();
};
tryOnScopeDispose$1(stop);
return stop;
}
const ARRIVED_STATE_THRESHOLD_PIXELS = 1;
function useScroll(element, options = {}) {
const {
throttle: throttle2 = 0,
idle = 200,
onStop = noop$2,
onScroll = noop$2,
offset = {
left: 0,
right: 0,
top: 0,
bottom: 0
},
eventListenerOptions = {
capture: false,
passive: true
},
behavior = "auto",
window: window2 = defaultWindow$1,
onError = (e) => {
console.error(e);
}
} = options;
const internalX = vue.ref(0);
const internalY = vue.ref(0);
const x = vue.computed({
get() {
return internalX.value;
},
set(x2) {
scrollTo2(x2, void 0);
}
});
const y = vue.computed({
get() {
return internalY.value;
},
set(y2) {
scrollTo2(void 0, y2);
}
});
function scrollTo2(_x, _y) {
var _a2, _b, _c, _d;
if (!window2)
return;
const _element = toValue(element);
if (!_element)
return;
(_c = _element instanceof Document ? window2.document.body : _element) == null ? void 0 : _c.scrollTo({
top: (_a2 = toValue(_y)) != null ? _a2 : y.value,
left: (_b = toValue(_x)) != null ? _b : x.value,
behavior: toValue(behavior)
});
const scrollContainer = ((_d = _element == null ? void 0 : _element.document) == null ? void 0 : _d.documentElement) || (_element == null ? void 0 : _element.documentElement) || _element;
if (x != null)
internalX.value = scrollContainer.scrollLeft;
if (y != null)
internalY.value = scrollContainer.scrollTop;
}
const isScrolling = vue.ref(false);
const arrivedState = vue.reactive({
left: true,
right: false,
top: true,
bottom: false
});
const directions = vue.reactive({
left: false,
right: false,
top: false,
bottom: false
});
const onScrollEnd = (e) => {
if (!isScrolling.value)
return;
isScrolling.value = false;
directions.left = false;
directions.right = false;
directions.top = false;
directions.bottom = false;
onStop(e);
};
const onScrollEndDebounced = useDebounceFn(onScrollEnd, throttle2 + idle);
const setArrivedState = (target) => {
var _a2;
if (!window2)
return;
const el = ((_a2 = target == null ? void 0 : target.document) == null ? void 0 : _a2.documentElement) || (target == null ? void 0 : target.documentElement) || unrefElement$1(target);
const { display, flexDirection } = getComputedStyle(el);
const scrollLeft = el.scrollLeft;
directions.left = scrollLeft < internalX.value;
directions.right = scrollLeft > internalX.value;
const left = Math.abs(scrollLeft) <= (offset.left || 0);
const right = Math.abs(scrollLeft) + el.clientWidth >= el.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;
if (display === "flex" && flexDirection === "row-reverse") {
arrivedState.left = right;
arrivedState.right = left;
} else {
arrivedState.left = left;
arrivedState.right = right;
}
internalX.value = scrollLeft;
let scrollTop = el.scrollTop;
if (target === window2.document && !scrollTop)
scrollTop = window2.document.body.scrollTop;
directions.top = scrollTop < internalY.value;
directions.bottom = scrollTop > internalY.value;
const top = Math.abs(scrollTop) <= (offset.top || 0);
const bottom = Math.abs(scrollTop) + el.clientHeight >= el.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;
if (display === "flex" && flexDirection === "column-reverse") {
arrivedState.top = bottom;
arrivedState.bottom = top;
} else {
arrivedState.top = top;
arrivedState.bottom = bottom;
}
internalY.value = scrollTop;
};
const onScrollHandler = (e) => {
var _a2;
if (!window2)
return;
const eventTarget = (_a2 = e.target.documentElement) != null ? _a2 : e.target;
setArrivedState(eventTarget);
isScrolling.value = true;
onScrollEndDebounced(e);
onScroll(e);
};
useEventListener$1(
element,
"scroll",
throttle2 ? useThrottleFn$1(onScrollHandler, throttle2, true, false) : onScrollHandler,
eventListenerOptions
);
tryOnMounted$1(() => {
try {
const _element = toValue(element);
if (!_element)
return;
setArrivedState(_element);
} catch (e) {
onError(e);
}
});
useEventListener$1(
element,
"scrollend",
onScrollEnd,
eventListenerOptions
);
return {
x,
y,
isScrolling,
arrivedState,
directions,
measure() {
const _element = toValue(element);
if (window2 && _element)
setArrivedState(_element);
}
};
}
var VERSION = "1.13.7";
var root$1 = typeof self == "object" && self.self === self && self || typeof global == "object" && global.global === global && global || Function("return this")() || {};
var ArrayProto = Array.prototype, ObjProto = Object.prototype;
var SymbolProto = typeof Symbol !== "undefined" ? Symbol.prototype : null;
var push = ArrayProto.push, slice$1 = ArrayProto.slice, toString$1 = ObjProto.toString, hasOwnProperty$d = ObjProto.hasOwnProperty;
var supportsArrayBuffer = typeof ArrayBuffer !== "undefined", supportsDataView = typeof DataView !== "undefined";
var nativeIsArray = Array.isArray, nativeKeys$1 = Object.keys, nativeCreate$1 = Object.create, nativeIsView = supportsArrayBuffer && ArrayBuffer.isView;
var _isNaN = isNaN, _isFinite = isFinite;
var hasEnumBug = !{ toString: null }.propertyIsEnumerable("toString");
var nonEnumerableProps = [
"valueOf",
"isPrototypeOf",
"toString",
"propertyIsEnumerable",
"hasOwnProperty",
"toLocaleString"
];
var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1;
function restArguments(func, startIndex) {
startIndex = startIndex == null ? func.length - 1 : +startIndex;
return function() {
var length = Math.max(arguments.length - startIndex, 0), rest2 = Array(length), index = 0;
for (; index < length; index++) {
rest2[index] = arguments[index + startIndex];
}
switch (startIndex) {
case 0:
return func.call(this, rest2);
case 1:
return func.call(this, arguments[0], rest2);
case 2:
return func.call(this, arguments[0], arguments[1], rest2);
}
var args = Array(startIndex + 1);
for (index = 0; index < startIndex; index++) {
args[index] = arguments[index];
}
args[startIndex] = rest2;
return func.apply(this, args);
};
}
function isObject$2(obj) {
var type = typeof obj;
return type === "function" || type === "object" && !!obj;
}
function isNull(obj) {
return obj === null;
}
function isUndefined$2(obj) {
return obj === void 0;
}
function isBoolean$1(obj) {
return obj === true || obj === false || toString$1.call(obj) === "[object Boolean]";
}
function isElement$1(obj) {
return !!(obj && obj.nodeType === 1);
}
function tagTester(name) {
var tag = "[object " + name + "]";
return function(obj) {
return toString$1.call(obj) === tag;
};
}
const isString$2 = tagTester("String");
const isNumber$1 = tagTester("Number");
const isDate = tagTester("Date");
const isRegExp = tagTester("RegExp");
const isError = tagTester("Error");
const isSymbol$1 = tagTester("Symbol");
const isArrayBuffer = tagTester("ArrayBuffer");
var isFunction$3 = tagTester("Function");
var nodelist = root$1.document && root$1.document.childNodes;
if (typeof /./ != "function" && typeof Int8Array != "object" && typeof nodelist != "function") {
isFunction$3 = function(obj) {
return typeof obj == "function" || false;
};
}
const isFunction$4 = isFunction$3;
const hasObjectTag = tagTester("Object");
var hasDataViewBug = supportsDataView && (!/\[native code\]/.test(String(DataView)) || hasObjectTag(new DataView(new ArrayBuffer(8)))), isIE11 = typeof Map !== "undefined" && hasObjectTag(/* @__PURE__ */ new Map());
var isDataView = tagTester("DataView");
function alternateIsDataView(obj) {
return obj != null && isFunction$4(obj.getInt8) && isArrayBuffer(obj.buffer);
}
const isDataView$1 = hasDataViewBug ? alternateIsDataView : isDataView;
const isArray$2 = nativeIsArray || tagTester("Array");
function has$1(obj, key) {
return obj != null && hasOwnProperty$d.call(obj, key);
}
var isArguments$1 = tagTester("Arguments");
(function() {
if (!isArguments$1(arguments)) {
isArguments$1 = function(obj) {
return has$1(obj, "callee");
};
}
})();
const isArguments$2 = isArguments$1;
function isFinite$1(obj) {
return !isSymbol$1(obj) && _isFinite(obj) && !isNaN(parseFloat(obj));
}
function isNaN$1(obj) {
return isNumber$1(obj) && _isNaN(obj);
}
function constant$1(value) {
return function() {
return value;
};
}
function createSizePropertyCheck(getSizeProperty) {
return function(collection) {
var sizeProperty = getSizeProperty(collection);
return typeof sizeProperty == "number" && sizeProperty >= 0 && sizeProperty <= MAX_ARRAY_INDEX;
};
}
function shallowProperty(key) {
return function(obj) {
return obj == null ? void 0 : obj[key];
};
}
const getByteLength = shallowProperty("byteLength");
const isBufferLike = createSizePropertyCheck(getByteLength);
var typedArrayPattern = /\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/;
function isTypedArray$1(obj) {
return nativeIsView ? nativeIsView(obj) && !isDataView$1(obj) : isBufferLike(obj) && typedArrayPattern.test(toString$1.call(obj));
}
const isTypedArray$2 = supportsArrayBuffer ? isTypedArray$1 : constant$1(false);
const getLength = shallowProperty("length");
function emulatedSet(keys2) {
var hash = {};
for (var l = keys2.length, i = 0; i < l; ++i) hash[keys2[i]] = true;
return {
contains: function(key) {
return hash[key] === true;
},
push: function(key) {
hash[key] = true;
return keys2.push(key);
}
};
}
function collectNonEnumProps(obj, keys2) {
keys2 = emulatedSet(keys2);
var nonEnumIdx = nonEnumerableProps.length;
var constructor = obj.constructor;
var proto = isFunction$4(constructor) && constructor.prototype || ObjProto;
var prop = "constructor";
if (has$1(obj, prop) && !keys2.contains(prop)) keys2.push(prop);
while (nonEnumIdx--) {
prop = nonEnumerableProps[nonEnumIdx];
if (prop in obj && obj[prop] !== proto[prop] && !keys2.contains(prop)) {
keys2.push(prop);
}
}
}
function keys$1(obj) {
if (!isObject$2(obj)) return [];
if (nativeKeys$1) return nativeKeys$1(obj);
var keys2 = [];
for (var key in obj) if (has$1(obj, key)) keys2.push(key);
if (hasEnumBug) collectNonEnumProps(obj, keys2);
return keys2;
}
function isEmpty(obj) {
if (obj == null) return true;
var length = getLength(obj);
if (typeof length == "number" && (isArray$2(obj) || isString$2(obj) || isArguments$2(obj))) return length === 0;
return getLength(keys$1(obj)) === 0;
}
function isMatch(object2, attrs) {
var _keys = keys$1(attrs), length = _keys.length;
if (object2 == null) return !length;
var obj = Object(object2);
for (var i = 0; i < length; i++) {
var key = _keys[i];
if (attrs[key] !== obj[key] || !(key in obj)) return false;
}
return true;
}
function _$1(obj) {
if (obj instanceof _$1) return obj;
if (!(this instanceof _$1)) return new _$1(obj);
this._wrapped = obj;
}
_$1.VERSION = VERSION;
_$1.prototype.value = function() {
return this._wrapped;
};
_$1.prototype.valueOf = _$1.prototype.toJSON = _$1.prototype.value;
_$1.prototype.toString = function() {
return String(this._wrapped);
};
function toBufferView(bufferSource) {
return new Uint8Array(
bufferSource.buffer || bufferSource,
bufferSource.byteOffset || 0,
getByteLength(bufferSource)
);
}
var tagDataView = "[object DataView]";
function eq$1(a, b, aStack, bStack) {
if (a === b) return a !== 0 || 1 / a === 1 / b;
if (a == null || b == null) return false;
if (a !== a) return b !== b;
var type = typeof a;
if (type !== "function" && type !== "object" && typeof b != "object") return false;
return deepEq(a, b, aStack, bStack);
}
function deepEq(a, b, aStack, bStack) {
if (a instanceof _$1) a = a._wrapped;
if (b instanceof _$1) b = b._wrapped;
var className = toString$1.call(a);
if (className !== toString$1.call(b)) return false;
if (hasDataViewBug && className == "[object Object]" && isDataView$1(a)) {
if (!isDataView$1(b)) return false;
className = tagDataView;
}
switch (className) {
case "[object RegExp]":
case "[object String]":
return "" + a === "" + b;
case "[object Number]":
if (+a !== +a) return +b !== +b;
return +a === 0 ? 1 / +a === 1 / b : +a === +b;
case "[object Date]":
case "[object Boolean]":
return +a === +b;
case "[object Symbol]":
return SymbolProto.valueOf.call(a) === SymbolProto.valueOf.call(b);
case "[object ArrayBuffer]":
case tagDataView:
return deepEq(toBufferView(a), toBufferView(b), aStack, bStack);
}
var areArrays = className === "[object Array]";
if (!areArrays && isTypedArray$2(a)) {
var byteLength = getByteLength(a);
if (byteLength !== getByteLength(b)) return false;
if (a.buffer === b.buffer && a.byteOffset === b.byteOffset) return true;
areArrays = true;
}
if (!areArrays) {
if (typeof a != "object" || typeof b != "object") return false;
var aCtor = a.constructor, bCtor = b.constructor;
if (aCtor !== bCtor && !(isFunction$4(aCtor) && aCtor instanceof aCtor && isFunction$4(bCtor) && bCtor instanceof bCtor) && ("constructor" in a && "constructor" in b)) {
return false;
}
}
aStack = aStack || [];
bStack = bStack || [];
var length = aStack.length;
while (length--) {
if (aStack[length] === a) return bStack[length] === b;
}
aStack.push(a);
bStack.push(b);
if (areArrays) {
length = a.length;
if (length !== b.length) return false;
while (length--) {
if (!eq$1(a[length], b[length], aStack, bStack)) return false;
}
} else {
var _keys = keys$1(a), key;
length = _keys.length;
if (keys$1(b).length !== length) return false;
while (length--) {
key = _keys[length];
if (!(has$1(b, key) && eq$1(a[key], b[key], aStack, bStack))) return false;
}
}
aStack.pop();
bStack.pop();
return true;
}
function isEqual$1(a, b) {
return eq$1(a, b);
}
function allKeys(obj) {
if (!isObject$2(obj)) return [];
var keys2 = [];
for (var key in obj) keys2.push(key);
if (hasEnumBug) collectNonEnumProps(obj, keys2);
return keys2;
}
function ie11fingerprint(methods) {
var length = getLength(methods);
return function(obj) {
if (obj == null) return false;
var keys2 = allKeys(obj);
if (getLength(keys2)) return false;
for (var i = 0; i < length; i++) {
if (!isFunction$4(obj[methods[i]])) return false;
}
return methods !== weakMapMethods || !isFunction$4(obj[forEachName]);
};
}
var forEachName = "forEach", hasName = "has", commonInit = ["clear", "delete"], mapTail = ["get", hasName, "set"];
var mapMethods = commonInit.concat(forEachName, mapTail), weakMapMethods = commonInit.concat(mapTail), setMethods = ["add"].concat(commonInit, forEachName, hasName);
const isMap$1 = isIE11 ? ie11fingerprint(mapMethods) : tagTester("Map");
const isWeakMap = isIE11 ? ie11fingerprint(weakMapMethods) : tagTester("WeakMap");
const isSet$1 = isIE11 ? ie11fingerprint(setMethods) : tagTester("Set");
const isWeakSet = tagTester("WeakSet");
function values(obj) {
var _keys = keys$1(obj);
var length = _keys.length;
var values2 = Array(length);
for (var i = 0; i < length; i++) {
values2[i] = obj[_keys[i]];
}
return values2;
}
function pairs(obj) {
var _keys = keys$1(obj);
var length = _keys.length;
var pairs2 = Array(length);
for (var i = 0; i < length; i++) {
pairs2[i] = [_keys[i], obj[_keys[i]]];
}
return pairs2;
}
function invert(obj) {
var result2 = {};
var _keys = keys$1(obj);
for (var i = 0, length = _keys.length; i < length; i++) {
result2[obj[_keys[i]]] = _keys[i];
}
return result2;
}
function functions(obj) {
var names2 = [];
for (var key in obj) {
if (isFunction$4(obj[key])) names2.push(key);
}
return names2.sort();
}
function createAssigner(keysFunc, defaults2) {
return function(obj) {
var length = arguments.length;
if (defaults2) obj = Object(obj);
if (length < 2 || obj == null) return obj;
for (var index = 1; index < length; index++) {
var source = arguments[index], keys2 = keysFunc(source), l = keys2.length;
for (var i = 0; i < l; i++) {
var key = keys2[i];
if (!defaults2 || obj[key] === void 0) obj[key] = source[key];
}
}
return obj;
};
}
const extend = createAssigner(allKeys);
const extendOwn = createAssigner(keys$1);
const defaults = createAssigner(allKeys, true);
function ctor() {
return function() {
};
}
function baseCreate$1(prototype) {
if (!isObject$2(prototype)) return {};
if (nativeCreate$1) return nativeCreate$1(prototype);
var Ctor = ctor();
Ctor.prototype = prototype;
var result2 = new Ctor();
Ctor.prototype = null;
return result2;
}
function create(prototype, props) {
var result2 = baseCreate$1(prototype);
if (props) extendOwn(result2, props);
return result2;
}
function clone(obj) {
if (!isObject$2(obj)) return obj;
return isArray$2(obj) ? obj.slice() : extend({}, obj);
}
function tap(obj, interceptor) {
interceptor(obj);
return obj;
}
function toPath$1(path) {
return isArray$2(path) ? path : [path];
}
_$1.toPath = toPath$1;
function toPath(path) {
return _$1.toPath(path);
}
function deepGet(obj, path) {
var length = path.length;
for (var i = 0; i < length; i++) {
if (obj == null) return void 0;
obj = obj[path[i]];
}
return length ? obj : void 0;
}
function get$1(object2, path, defaultValue) {
var value = deepGet(object2, toPath(path));
return isUndefined$2(value) ? defaultValue : value;
}
function has(obj, path) {
path = toPath(path);
var length = path.length;
for (var i = 0; i < length; i++) {
var key = path[i];
if (!has$1(obj, key)) return false;
obj = obj[key];
}
return !!length;
}
function identity$2(value) {
return value;
}
function matcher(attrs) {
attrs = extendOwn({}, attrs);
return function(obj) {
return isMatch(obj, attrs);
};
}
function property$1(path) {
path = toPath(path);
return function(obj) {
return deepGet(obj, path);
};
}
function optimizeCb(func, context, argCount) {
if (context === void 0) return func;
switch (argCount == null ? 3 : argCount) {
case 1:
return function(value) {
return func.call(context, value);
};
case 3:
return function(value, index, collection) {
return func.call(context, value, index, collection);
};
case 4:
return function(accumulator, value, index, collection) {
return func.call(context, accumulator, value, index, collection);
};
}
return function() {
return func.apply(context, arguments);
};
}
function baseIteratee$1(value, context, argCount) {
if (value == null) return identity$2;
if (isFunction$4(value)) return optimizeCb(value, context, argCount);
if (isObject$2(value) && !isArray$2(value)) return matcher(value);
return property$1(value);
}
function iteratee(value, context) {
return baseIteratee$1(value, context, Infinity);
}
_$1.iteratee = iteratee;
function cb(value, context, argCount) {
if (_$1.iteratee !== iteratee) return _$1.iteratee(value, context);
return baseIteratee$1(value, context, argCount);
}
function mapObject(obj, iteratee2, context) {
iteratee2 = cb(iteratee2, context);
var _keys = keys$1(obj), length = _keys.length, results = {};
for (var index = 0; index < length; index++) {
var currentKey = _keys[index];
results[currentKey] = iteratee2(obj[currentKey], currentKey, obj);
}
return results;
}
function noop$1() {
}
function propertyOf(obj) {
if (obj == null) return noop$1;
return function(path) {
return get$1(obj, path);
};
}
function times(n, iteratee2, context) {
var accum = Array(Math.max(0, n));
iteratee2 = optimizeCb(iteratee2, context, 1);
for (var i = 0; i < n; i++) accum[i] = iteratee2(i);
return accum;
}
function random(min2, max2) {
if (max2 == null) {
max2 = min2;
min2 = 0;
}
return min2 + Math.floor(Math.random() * (max2 - min2 + 1));
}
const now$1 = Date.now || function() {
return (/* @__PURE__ */ new Date()).getTime();
};
function createEscaper(map2) {
var escaper = function(match) {
return map2[match];
};
var source = "(?:" + keys$1(map2).join("|") + ")";
var testRegexp = RegExp(source);
var replaceRegexp = RegExp(source, "g");
return function(string) {
string = string == null ? "" : "" + string;
return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;
};
}
const escapeMap = {
"&": "&",
"<": "<",
">": ">",
'"': """,
"'": "'",
"`": "`"
};
const escape = createEscaper(escapeMap);
const unescapeMap = invert(escapeMap);
const unescape = createEscaper(unescapeMap);
const templateSettings = _$1.templateSettings = {
evaluate: /<%([\s\S]+?)%>/g,
interpolate: /<%=([\s\S]+?)%>/g,
escape: /<%-([\s\S]+?)%>/g
};
var noMatch = /(.)^/;
var escapes = {
"'": "'",
"\\": "\\",
"\r": "r",
"\n": "n",
"\u2028": "u2028",
"\u2029": "u2029"
};
var escapeRegExp = /\\|'|\r|\n|\u2028|\u2029/g;
function escapeChar(match) {
return "\\" + escapes[match];
}
var bareIdentifier = /^\s*(\w|\$)+\s*$/;
function template(text, settings, oldSettings) {
if (!settings && oldSettings) settings = oldSettings;
settings = defaults({}, settings, _$1.templateSettings);
var matcher2 = RegExp([
(settings.escape || noMatch).source,
(settings.interpolate || noMatch).source,
(settings.evaluate || noMatch).source
].join("|") + "|$", "g");
var index = 0;
var source = "__p+='";
text.replace(matcher2, function(match, escape2, interpolate, evaluate, offset) {
source += text.slice(index, offset).replace(escapeRegExp, escapeChar);
index = offset + match.length;
if (escape2) {
source += "'+\n((__t=(" + escape2 + "))==null?'':_.escape(__t))+\n'";
} else if (interpolate) {
source += "'+\n((__t=(" + interpolate + "))==null?'':__t)+\n'";
} else if (evaluate) {
source += "';\n" + evaluate + "\n__p+='";
}
return match;
});
source += "';\n";
var argument = settings.variable;
if (argument) {
if (!bareIdentifier.test(argument)) throw new Error(
"variable is not a bare identifier: " + argument
);
} else {
source = "with(obj||{}){\n" + source + "}\n";
argument = "obj";
}
source = "var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n" + source + "return __p;\n";
var render2;
try {
render2 = new Function(argument, "_", source);
} catch (e) {
e.source = source;
throw e;
}
var template2 = function(data) {
return render2.call(this, data, _$1);
};
template2.source = "function(" + argument + "){\n" + source + "}";
return template2;
}
function result(obj, path, fallback) {
path = toPath(path);
var length = path.length;
if (!length) {
return isFunction$4(fallback) ? fallback.call(obj) : fallback;
}
for (var i = 0; i < length; i++) {
var prop = obj == null ? void 0 : obj[path[i]];
if (prop === void 0) {
prop = fallback;
i = length;
}
obj = isFunction$4(prop) ? prop.call(obj) : prop;
}
return obj;
}
var idCounter = 0;
function uniqueId(prefix) {
var id = ++idCounter + "";
return prefix ? prefix + id : id;
}
function chain(obj) {
var instance = _$1(obj);
instance._chain = true;
return instance;
}
function executeBound(sourceFunc, boundFunc, context, callingContext, args) {
if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args);
var self2 = baseCreate$1(sourceFunc.prototype);
var result2 = sourceFunc.apply(self2, args);
if (isObject$2(result2)) return result2;
return self2;
}
var partial = restArguments(function(func, boundArgs) {
var placeholder = partial.placeholder;
var bound = function() {
var position = 0, length = boundArgs.length;
var args = Array(length);
for (var i = 0; i < length; i++) {
args[i] = boundArgs[i] === placeholder ? arguments[position++] : boundArgs[i];
}
while (position < arguments.length) args.push(arguments[position++]);
return executeBound(func, bound, this, this, args);
};
return bound;
});
partial.placeholder = _$1;
const bind = restArguments(function(func, context, args) {
if (!isFunction$4(func)) throw new TypeError("Bind must be called on a function");
var bound = restArguments(function(callArgs) {
return executeBound(func, bound, context, this, args.concat(callArgs));
});
return bound;
});
const isArrayLike$1 = createSizePropertyCheck(getLength);
function flatten$2(input, depth, strict, output) {
output = output || [];
if (!depth && depth !== 0) {
depth = Infinity;
} else if (depth <= 0) {
return output.concat(input);
}
var idx = output.length;
for (var i = 0, length = getLength(input); i < length; i++) {
var value = input[i];
if (isArrayLike$1(value) && (isArray$2(value) || isArguments$2(value))) {
if (depth > 1) {
flatten$2(value, depth - 1, strict, output);
idx = output.length;
} else {
var j = 0, len = value.length;
while (j < len) output[idx++] = value[j++];
}
} else if (!strict) {
output[idx++] = value;
}
}
return output;
}
const bindAll = restArguments(function(obj, keys2) {
keys2 = flatten$2(keys2, false, false);
var index = keys2.length;
if (index < 1) throw new Error("bindAll must be passed function names");
while (index--) {
var key = keys2[index];
obj[key] = bind(obj[key], obj);
}
return obj;
});
function memoize$1(func, hasher) {
var memoize2 = function(key) {
var cache = memoize2.cache;
var address = "" + (hasher ? hasher.apply(this, arguments) : key);
if (!has$1(cache, address)) cache[address] = func.apply(this, arguments);
return cache[address];
};
memoize2.cache = {};
return memoize2;
}
const delay = restArguments(function(func, wait, args) {
return setTimeout(function() {
return func.apply(null, args);
}, wait);
});
const defer = partial(delay, _$1, 1);
function throttle$1(func, wait, options) {
var timeout, context, args, result2;
var previous = 0;
if (!options) options = {};
var later = function() {
previous = options.leading === false ? 0 : now$1();
timeout = null;
result2 = func.apply(context, args);
if (!timeout) context = args = null;
};
var throttled = function() {
var _now = now$1();
if (!previous && options.leading === false) previous = _now;
var remaining = wait - (_now - previous);
context = this;
args = arguments;
if (remaining <= 0 || remaining > wait) {
if (timeout) {
clearTimeout(timeout);
timeout = null;
}
previous = _now;
result2 = func.apply(context, args);
if (!timeout) context = args = null;
} else if (!timeout && options.trailing !== false) {
timeout = setTimeout(later, remaining);
}
return result2;
};
throttled.cancel = function() {
clearTimeout(timeout);
previous = 0;
timeout = context = args = null;
};
return throttled;
}
function debounce$1(func, wait, immediate) {
var timeout, previous, args, result2, context;
var later = function() {
var passed = now$1() - previous;
if (wait > passed) {
timeout = setTimeout(later, wait - passed);
} else {
timeout = null;
if (!immediate) result2 = func.apply(context, args);
if (!timeout) args = context = null;
}
};
var debounced = restArguments(function(_args) {
context = this;
args = _args;
previous = now$1();
if (!timeout) {
timeout = setTimeout(later, wait);
if (immediate) result2 = func.apply(context, args);
}
return result2;
});
debounced.cancel = function() {
clearTimeout(timeout);
timeout = args = context = null;
};
return debounced;
}
function wrap(func, wrapper) {
return partial(wrapper, func);
}
function negate(predicate) {
return function() {
return !predicate.apply(this, arguments);
};
}
function compose() {
var args = arguments;
var start = args.length - 1;
return function() {
var i = start;
var result2 = args[start].apply(this, arguments);
while (i--) result2 = args[i].call(this, result2);
return result2;
};
}
function after(times2, func) {
return function() {
if (--times2 < 1) {
return func.apply(this, arguments);
}
};
}
function before(times2, func) {
var memo;
return function() {
if (--times2 > 0) {
memo = func.apply(this, arguments);
}
if (times2 <= 1) func = null;
return memo;
};
}
const once = partial(before, 2);
function findKey(obj, predicate, context) {
predicate = cb(predicate, context);
var _keys = keys$1(obj), key;
for (var i = 0, length = _keys.length; i < length; i++) {
key = _keys[i];
if (predicate(obj[key], key, obj)) return key;
}
}
function createPredicateIndexFinder(dir) {
return function(array, predicate, context) {
predicate = cb(predicate, context);
var length = getLength(array);
var index = dir > 0 ? 0 : length - 1;
for (; index >= 0 && index < length; index += dir) {
if (predicate(array[index], index, array)) return index;
}
return -1;
};
}
const findIndex = createPredicateIndexFinder(1);
const findLastIndex$1 = createPredicateIndexFinder(-1);
function sortedIndex(array, obj, iteratee2, context) {
iteratee2 = cb(iteratee2, context, 1);
var value = iteratee2(obj);
var low = 0, high = getLength(array);
while (low < high) {
var mid = Math.floor((low + high) / 2);
if (iteratee2(array[mid]) < value) low = mid + 1;
else high = mid;
}
return low;
}
function createIndexFinder(dir, predicateFind, sortedIndex2) {
return function(array, item, idx) {
var i = 0, length = getLength(array);
if (typeof idx == "number") {
if (dir > 0) {
i = idx >= 0 ? idx : Math.max(idx + length, i);
} else {
length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1;
}
} else if (sortedIndex2 && idx && length) {
idx = sortedIndex2(array, item);
return array[idx] === item ? idx : -1;
}
if (item !== item) {
idx = predicateFind(slice$1.call(array, i, length), isNaN$1);
return idx >= 0 ? idx + i : -1;
}
for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) {
if (array[idx] === item) return idx;
}
return -1;
};
}
const indexOf = createIndexFinder(1, findIndex, sortedIndex);
const lastIndexOf = createIndexFinder(-1, findLastIndex$1);
function find(obj, predicate, context) {
var keyFinder = isArrayLike$1(obj) ? findIndex : findKey;
var key = keyFinder(obj, predicate, context);
if (key !== void 0 && key !== -1) return obj[key];
}
function findWhere(obj, attrs) {
return find(obj, matcher(attrs));
}
function each(obj, iteratee2, context) {
iteratee2 = optimizeCb(iteratee2, context);
var i, length;
if (isArrayLike$1(obj)) {
for (i = 0, length = obj.length; i < length; i++) {
iteratee2(obj[i], i, obj);
}
} else {
var _keys = keys$1(obj);
for (i = 0, length = _keys.length; i < length; i++) {
iteratee2(obj[_keys[i]], _keys[i], obj);
}
}
return obj;
}
function map(obj, iteratee2, context) {
iteratee2 = cb(iteratee2, context);
var _keys = !isArrayLike$1(obj) && keys$1(obj), length = (_keys || obj).length, results = Array(length);
for (var index = 0; index < length; index++) {
var currentKey = _keys ? _keys[index] : index;
results[index] = iteratee2(obj[currentKey], currentKey, obj);
}
return results;
}
function createReduce(dir) {
var reducer = function(obj, iteratee2, memo, initial2) {
var _keys = !isArrayLike$1(obj) && keys$1(obj), length = (_keys || obj).length, index = dir > 0 ? 0 : length - 1;
if (!initial2) {
memo = obj[_keys ? _keys[index] : index];
index += dir;
}
for (; index >= 0 && index < length; index += dir) {
var currentKey = _keys ? _keys[index] : index;
memo = iteratee2(memo, obj[currentKey], currentKey, obj);
}
return memo;
};
return function(obj, iteratee2, memo, context) {
var initial2 = arguments.length >= 3;
return reducer(obj, optimizeCb(iteratee2, context, 4), memo, initial2);
};
}
const reduce = createReduce(1);
const reduceRight = createReduce(-1);
function filter(obj, predicate, context) {
var results = [];
predicate = cb(predicate, context);
each(obj, function(value, index, list) {
if (predicate(value, index, list)) results.push(value);
});
return results;
}
function reject(obj, predicate, context) {
return filter(obj, negate(cb(predicate)), context);
}
function every(obj, predicate, context) {
predicate = cb(predicate, context);
var _keys = !isArrayLike$1(obj) && keys$1(obj), length = (_keys || obj).length;
for (var index = 0; index < length; index++) {
var currentKey = _keys ? _keys[index] : index;
if (!predicate(obj[currentKey], currentKey, obj)) return false;
}
return true;
}
function some(obj, predicate, context) {
predicate = cb(predicate, context);
var _keys = !isArrayLike$1(obj) && keys$1(obj), length = (_keys || obj).length;
for (var index = 0; index < length; index++) {
var currentKey = _keys ? _keys[index] : index;
if (predicate(obj[currentKey], currentKey, obj)) return true;
}
return false;
}
function contains(obj, item, fromIndex, guard) {
if (!isArrayLike$1(obj)) obj = values(obj);
if (typeof fromIndex != "number" || guard) fromIndex = 0;
return indexOf(obj, item, fromIndex) >= 0;
}
const invoke = restArguments(function(obj, path, args) {
var contextPath, func;
if (isFunction$4(path)) {
func = path;
} else {
path = toPath(path);
contextPath = path.slice(0, -1);
path = path[path.length - 1];
}
return map(obj, function(context) {
var method = func;
if (!method) {
if (contextPath && contextPath.length) {
context = deepGet(context, contextPath);
}
if (context == null) return void 0;
method = context[path];
}
return method == null ? method : method.apply(context, args);
});
});
function pluck(obj, key) {
return map(obj, property$1(key));
}
function where(obj, attrs) {
return filter(obj, matcher(attrs));
}
function max(obj, iteratee2, context) {
var result2 = -Infinity, lastComputed = -Infinity, value, computed2;
if (iteratee2 == null || typeof iteratee2 == "number" && typeof obj[0] != "object" && obj != null) {
obj = isArrayLike$1(obj) ? obj : values(obj);
for (var i = 0, length = obj.length; i < length; i++) {
value = obj[i];
if (value != null && value > result2) {
result2 = value;
}
}
} else {
iteratee2 = cb(iteratee2, context);
each(obj, function(v, index, list) {
computed2 = iteratee2(v, index, list);
if (computed2 > lastComputed || computed2 === -Infinity && result2 === -Infinity) {
result2 = v;
lastComputed = computed2;
}
});
}
return result2;
}
function min(obj, iteratee2, context) {
var result2 = Infinity, lastComputed = Infinity, value, computed2;
if (iteratee2 == null || typeof iteratee2 == "number" && typeof obj[0] != "object" && obj != null) {
obj = isArrayLike$1(obj) ? obj : values(obj);
for (var i = 0, length = obj.length; i < length; i++) {
value = obj[i];
if (value != null && value < result2) {
result2 = value;
}
}
} else {
iteratee2 = cb(iteratee2, context);
each(obj, function(v, index, list) {
computed2 = iteratee2(v, index, list);
if (computed2 < lastComputed || computed2 === Infinity && result2 === Infinity) {
result2 = v;
lastComputed = computed2;
}
});
}
return result2;
}
var reStrSymbol = /[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g;
function toArray$1(obj) {
if (!obj) return [];
if (isArray$2(obj)) return slice$1.call(obj);
if (isString$2(obj)) {
return obj.match(reStrSymbol);
}
if (isArrayLike$1(obj)) return map(obj, identity$2);
return values(obj);
}
function sample(obj, n, guard) {
if (n == null || guard) {
if (!isArrayLike$1(obj)) obj = values(obj);
return obj[random(obj.length - 1)];
}
var sample2 = toArray$1(obj);
var length = getLength(sample2);
n = Math.max(Math.min(n, length), 0);
var last2 = length - 1;
for (var index = 0; index < n; index++) {
var rand = random(index, last2);
var temp = sample2[index];
sample2[index] = sample2[rand];
sample2[rand] = temp;
}
return sample2.slice(0, n);
}
function shuffle(obj) {
return sample(obj, Infinity);
}
function sortBy(obj, iteratee2, context) {
var index = 0;
iteratee2 = cb(iteratee2, context);
return pluck(map(obj, function(value, key, list) {
return {
value,
index: index++,
criteria: iteratee2(value, key, list)
};
}).sort(function(left, right) {
var a = left.criteria;
var b = right.criteria;
if (a !== b) {
if (a > b || a === void 0) return 1;
if (a < b || b === void 0) return -1;
}
return left.index - right.index;
}), "value");
}
function group(behavior, partition2) {
return function(obj, iteratee2, context) {
var result2 = partition2 ? [[], []] : {};
iteratee2 = cb(iteratee2, context);
each(obj, function(value, index) {
var key = iteratee2(value, index, obj);
behavior(result2, value, key);
});
return result2;
};
}
const groupBy = group(function(result2, value, key) {
if (has$1(result2, key)) result2[key].push(value);
else result2[key] = [value];
});
const indexBy = group(function(result2, value, key) {
result2[key] = value;
});
const countBy = group(function(result2, value, key) {
if (has$1(result2, key)) result2[key]++;
else result2[key] = 1;
});
const partition = group(function(result2, value, pass) {
result2[pass ? 0 : 1].push(value);
}, true);
function size(obj) {
if (obj == null) return 0;
return isArrayLike$1(obj) ? obj.length : keys$1(obj).length;
}
function keyInObj(value, key, obj) {
return key in obj;
}
const pick$1 = restArguments(function(obj, keys2) {
var result2 = {}, iteratee2 = keys2[0];
if (obj == null) return result2;
if (isFunction$4(iteratee2)) {
if (keys2.length > 1) iteratee2 = optimizeCb(iteratee2, keys2[1]);
keys2 = allKeys(obj);
} else {
iteratee2 = keyInObj;
keys2 = flatten$2(keys2, false, false);
obj = Object(obj);
}
for (var i = 0, length = keys2.length; i < length; i++) {
var key = keys2[i];
var value = obj[key];
if (iteratee2(value, key, obj)) result2[key] = value;
}
return result2;
});
const omit = restArguments(function(obj, keys2) {
var iteratee2 = keys2[0], context;
if (isFunction$4(iteratee2)) {
iteratee2 = negate(iteratee2);
if (keys2.length > 1) context = keys2[1];
} else {
keys2 = map(flatten$2(keys2, false, false), String);
iteratee2 = function(value, key) {
return !contains(keys2, key);
};
}
return pick$1(obj, iteratee2, context);
});
function initial$1(array, n, guard) {
return slice$1.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n)));
}
function first(array, n, guard) {
if (array == null || array.length < 1) return n == null || guard ? void 0 : [];
if (n == null || guard) return array[0];
return initial$1(array, array.length - n);
}
function rest(array, n, guard) {
return slice$1.call(array, n == null || guard ? 1 : n);
}
function last(array, n, guard) {
if (array == null || array.length < 1) return n == null || guard ? void 0 : [];
if (n == null || guard) return array[array.length - 1];
return rest(array, Math.max(0, array.length - n));
}
function compact(array) {
return filter(array, Boolean);
}
function flatten$1(array, depth) {
return flatten$2(array, depth, false);
}
const difference = restArguments(function(array, rest2) {
rest2 = flatten$2(rest2, true, true);
return filter(array, function(value) {
return !contains(rest2, value);
});
});
const without = restArguments(function(array, otherArrays) {
return difference(array, otherArrays);
});
function uniq(array, isSorted, iteratee2, context) {
if (!isBoolean$1(isSorted)) {
context = iteratee2;
iteratee2 = isSorted;
isSorted = false;
}
if (iteratee2 != null) iteratee2 = cb(iteratee2, context);
var result2 = [];
var seen = [];
for (var i = 0, length = getLength(array); i < length; i++) {
var value = array[i], computed2 = iteratee2 ? iteratee2(value, i, array) : value;
if (isSorted && !iteratee2) {
if (!i || seen !== computed2) result2.push(value);
seen = computed2;
} else if (iteratee2) {
if (!contains(seen, computed2)) {
seen.push(computed2);
result2.push(value);
}
} else if (!contains(result2, value)) {
result2.push(value);
}
}
return result2;
}
const union = restArguments(function(arrays) {
return uniq(flatten$2(arrays, true, true));
});
function intersection(array) {
var result2 = [];
var argsLength = arguments.length;
for (var i = 0, length = getLength(array); i < length; i++) {
var item = array[i];
if (contains(result2, item)) continue;
var j;
for (j = 1; j < argsLength; j++) {
if (!contains(arguments[j], item)) break;
}
if (j === argsLength) result2.push(item);
}
return result2;
}
function unzip(array) {
var length = array && max(array, getLength).length || 0;
var result2 = Array(length);
for (var index = 0; index < length; index++) {
result2[index] = pluck(array, index);
}
return result2;
}
const zip = restArguments(unzip);
function object(list, values2) {
var result2 = {};
for (var i = 0, length = getLength(list); i < length; i++) {
if (values2) {
result2[list[i]] = values2[i];
} else {
result2[list[i][0]] = list[i][1];
}
}
return result2;
}
function range(start, stop, step) {
if (stop == null) {
stop = start || 0;
start = 0;
}
if (!step) {
step = stop < start ? -1 : 1;
}
var length = Math.max(Math.ceil((stop - start) / step), 0);
var range2 = Array(length);
for (var idx = 0; idx < length; idx++, start += step) {
range2[idx] = start;
}
return range2;
}
function chunk(array, count) {
if (count == null || count < 1) return [];
var result2 = [];
var i = 0, length = array.length;
while (i < length) {
result2.push(slice$1.call(array, i, i += count));
}
return result2;
}
function chainResult(instance, obj) {
return instance._chain ? _$1(obj).chain() : obj;
}
function mixin(obj) {
each(functions(obj), function(name) {
var func = _$1[name] = obj[name];
_$1.prototype[name] = function() {
var args = [this._wrapped];
push.apply(args, arguments);
return chainResult(this, func.apply(_$1, args));
};
});
return _$1;
}
each(["pop", "push", "reverse", "shift", "sort", "splice", "unshift"], function(name) {
var method = ArrayProto[name];
_$1.prototype[name] = function() {
var obj = this._wrapped;
if (obj != null) {
method.apply(obj, arguments);
if ((name === "shift" || name === "splice") && obj.length === 0) {
delete obj[0];
}
}
return chainResult(this, obj);
};
});
each(["concat", "join", "slice"], function(name) {
var method = ArrayProto[name];
_$1.prototype[name] = function() {
var obj = this._wrapped;
if (obj != null) obj = method.apply(obj, arguments);
return chainResult(this, obj);
};
});
const allExports = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
__proto__: null,
VERSION,
after,
all: every,
allKeys,
any: some,
assign: extendOwn,
before,
bind,
bindAll,
chain,
chunk,
clone,
collect: map,
compact,
compose,
constant: constant$1,
contains,
countBy,
create,
debounce: debounce$1,
default: _$1,
defaults,
defer,
delay,
detect: find,
difference,
drop: rest,
each,
escape,
every,
extend,
extendOwn,
filter,
find,
findIndex,
findKey,
findLastIndex: findLastIndex$1,
findWhere,
first,
flatten: flatten$1,
foldl: reduce,
foldr: reduceRight,
forEach: each,
functions,
get: get$1,
groupBy,
has,
head: first,
identity: identity$2,
include: contains,
includes: contains,
indexBy,
indexOf,
initial: initial$1,
inject: reduce,
intersection,
invert,
invoke,
isArguments: isArguments$2,
isArray: isArray$2,
isArrayBuffer,
isBoolean: isBoolean$1,
isDataView: isDataView$1,
isDate,
isElement: isElement$1,
isEmpty,
isEqual: isEqual$1,
isError,
isFinite: isFinite$1,
isFunction: isFunction$4,
isMap: isMap$1,
isMatch,
isNaN: isNaN$1,
isNull,
isNumber: isNumber$1,
isObject: isObject$2,
isRegExp,
isSet: isSet$1,
isString: isString$2,
isSymbol: isSymbol$1,
isTypedArray: isTypedArray$2,
isUndefined: isUndefined$2,
isWeakMap,
isWeakSet,
iteratee,
keys: keys$1,
last,
lastIndexOf,
map,
mapObject,
matcher,
matches: matcher,
max,
memoize: memoize$1,
methods: functions,
min,
mixin,
negate,
noop: noop$1,
now: now$1,
object,
omit,
once,
pairs,
partial,
partition,
pick: pick$1,
pluck,
property: property$1,
propertyOf,
random,
range,
reduce,
reduceRight,
reject,
rest,
restArguments,
result,
sample,
select: filter,
shuffle,
size,
some,
sortBy,
sortedIndex,
tail: rest,
take: first,
tap,
template,
templateSettings,
throttle: throttle$1,
times,
toArray: toArray$1,
toPath: toPath$1,
transpose: unzip,
unescape,
union,
uniq,
unique: uniq,
uniqueId,
unzip,
values,
where,
without,
wrap,
zip
}, Symbol.toStringTag, { value: "Module" }));
var _ = mixin(allExports);
_._ = _;
const _export_sfc$1 = (sfc, props) => {
const target = sfc.__vccOpts || sfc;
for (const [key, val] of props) {
target[key] = val;
}
return target;
};
const _sfc_main$10 = {
__name: "WallpaperItem",
setup(__props) {
const wallpaperRef = vue.ref();
const biliStore = useBiliStore();
const { isShowOriginal } = storeToRefs(biliStore);
function onWallpaperMheelScroll(event) {
if (event.deltaY > 0) {
isShowOriginal.value = true;
}
event.preventDefault();
}
const { arrivedState, y: topOffset } = useScroll(window);
vue.watch(topOffset, () => {
if (topOffset.value > 3 && !isShowOriginal.value) {
isShowOriginal.value = true;
}
});
const { top: isTop } = vue.toRefs(arrivedState);
const onWindowMhellScroll = throttle$1((event) => {
if (event.deltaY > 0) {
return;
}
if (!isTop.value) {
return;
}
isShowOriginal.value = false;
}, 100);
vue.onMounted(() => {
wallpaperRef.value.addEventListener("wheel", onWallpaperMheelScroll);
window.addEventListener("wheel", onWindowMhellScroll, { passive: false });
});
vue.onUnmounted(() => {
window.removeEventListener("wheel", onWindowMhellScroll);
});
const mainStore2 = useMainStore();
const { currWallpaperBase64Url } = storeToRefs(mainStore2);
vue.onMounted(() => {
vue.watch(currWallpaperBase64Url, () => {
wallpaperRef.value.style.backgroundImage = `${currWallpaperBase64Url.value} `;
}, { immediate: true });
});
return (_ctx, _cache) => {
return vue.openBlock(), vue.createElementBlock("div", {
class: vue.normalizeClass(["wallpaper-item", { hidden: vue.unref(isShowOriginal) }]),
ref_key: "wallpaperRef",
ref: wallpaperRef
}, null, 2);
};
}
};
const WallpaperItem = /* @__PURE__ */ _export_sfc$1(_sfc_main$10, [["__scopeId", "data-v-0166ab8b"]]);
const FOCUSABLE_ELEMENT_SELECTORS = `a[href],button:not([disabled]),button:not([hidden]),:not([tabindex="-1"]),input:not([disabled]),input:not([type="hidden"]),select:not([disabled]),textarea:not([disabled])`;
const isVisible = (element) => {
const computed2 = getComputedStyle(element);
return computed2.position === "fixed" ? false : element.offsetParent !== null;
};
const obtainAllFocusableElements$1 = (element) => {
return Array.from(element.querySelectorAll(FOCUSABLE_ELEMENT_SELECTORS)).filter((item) => isFocusable(item) && isVisible(item));
};
const isFocusable = (element) => {
if (element.tabIndex > 0 || element.tabIndex === 0 && element.getAttribute("tabIndex") !== null) {
return true;
}
if (element.disabled) {
return false;
}
switch (element.nodeName) {
case "A": {
return !!element.href && element.rel !== "ignore";
}
case "INPUT": {
return !(element.type === "hidden" || element.type === "file");
}
case "BUTTON":
case "SELECT":
case "TEXTAREA": {
return true;
}
default: {
return false;
}
}
};
const composeEventHandlers = (theirsHandler, oursHandler, { checkForDefaultPrevented = true } = {}) => {
const handleEvent = (event) => {
const shouldPrevent = theirsHandler == null ? void 0 : theirsHandler(event);
if (checkForDefaultPrevented === false || !shouldPrevent) {
return oursHandler == null ? void 0 : oursHandler(event);
}
};
return handleEvent;
};
var __defProp$9 = Object.defineProperty;
var __defProps$6 = Object.defineProperties;
var __getOwnPropDescs$6 = Object.getOwnPropertyDescriptors;
var __getOwnPropSymbols$b = Object.getOwnPropertySymbols;
var __hasOwnProp$b = Object.prototype.hasOwnProperty;
var __propIsEnum$b = Object.prototype.propertyIsEnumerable;
var __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues$9 = (a, b) => {
for (var prop in b || (b = {}))
if (__hasOwnProp$b.call(b, prop))
__defNormalProp$9(a, prop, b[prop]);
if (__getOwnPropSymbols$b)
for (var prop of __getOwnPropSymbols$b(b)) {
if (__propIsEnum$b.call(b, prop))
__defNormalProp$9(a, prop, b[prop]);
}
return a;
};
var __spreadProps$6 = (a, b) => __defProps$6(a, __getOwnPropDescs$6(b));
function computedEager(fn2, options) {
var _a2;
const result2 = vue.shallowRef();
vue.watchEffect(() => {
result2.value = fn2();
}, __spreadProps$6(__spreadValues$9({}, options), {
flush: (_a2 = void 0) != null ? _a2 : "sync"
}));
return vue.readonly(result2);
}
var _a;
const isClient = typeof window !== "undefined";
const isDef = (val) => typeof val !== "undefined";
const isFunction$2 = (val) => typeof val === "function";
const isString$1 = (val) => typeof val === "string";
const noop = () => {
};
const isIOS = isClient && ((_a = window == null ? void 0 : window.navigator) == null ? void 0 : _a.userAgent) && /iP(ad|hone|od)/.test(window.navigator.userAgent);
function resolveUnref(r) {
return typeof r === "function" ? r() : vue.unref(r);
}
function createFilterWrapper(filter2, fn2) {
function wrapper(...args) {
return new Promise((resolve, reject2) => {
Promise.resolve(filter2(() => fn2.apply(this, args), { fn: fn2, thisArg: this, args })).then(resolve).catch(reject2);
});
}
return wrapper;
}
function throttleFilter(ms, trailing = true, leading = true, rejectOnCancel = false) {
let lastExec = 0;
let timer;
let isLeading = true;
let lastRejector = noop;
let lastValue;
const clear = () => {
if (timer) {
clearTimeout(timer);
timer = void 0;
lastRejector();
lastRejector = noop;
}
};
const filter2 = (_invoke) => {
const duration = resolveUnref(ms);
const elapsed = Date.now() - lastExec;
const invoke2 = () => {
return lastValue = _invoke();
};
clear();
if (duration <= 0) {
lastExec = Date.now();
return invoke2();
}
if (elapsed > duration && (leading || !isLeading)) {
lastExec = Date.now();
invoke2();
} else if (trailing) {
lastValue = new Promise((resolve, reject2) => {
lastRejector = rejectOnCancel ? reject2 : resolve;
timer = setTimeout(() => {
lastExec = Date.now();
isLeading = true;
resolve(invoke2());
clear();
}, Math.max(0, duration - elapsed));
});
}
if (!leading && !timer)
timer = setTimeout(() => isLeading = true, duration);
isLeading = false;
return lastValue;
};
return filter2;
}
function identity$1(arg) {
return arg;
}
function tryOnScopeDispose(fn2) {
if (vue.getCurrentScope()) {
vue.onScopeDispose(fn2);
return true;
}
return false;
}
function useThrottleFn(fn2, ms = 200, trailing = false, leading = true, rejectOnCancel = false) {
return createFilterWrapper(throttleFilter(ms, trailing, leading, rejectOnCancel), fn2);
}
function tryOnMounted(fn2, sync = true) {
if (vue.getCurrentInstance())
vue.onMounted(fn2);
else if (sync)
fn2();
else
vue.nextTick(fn2);
}
function useTimeoutFn(cb2, interval, options = {}) {
const {
immediate = true
} = options;
const isPending = vue.ref(false);
let timer = null;
function clear() {
if (timer) {
clearTimeout(timer);
timer = null;
}
}
function stop() {
isPending.value = false;
clear();
}
function start(...args) {
clear();
isPending.value = true;
timer = setTimeout(() => {
isPending.value = false;
timer = null;
cb2(...args);
}, resolveUnref(interval));
}
if (immediate) {
isPending.value = true;
if (isClient)
start();
}
tryOnScopeDispose(stop);
return {
isPending: vue.readonly(isPending),
start,
stop
};
}
function unrefElement(elRef) {
var _a2;
const plain = resolveUnref(elRef);
return (_a2 = plain == null ? void 0 : plain.$el) != null ? _a2 : plain;
}
const defaultWindow = isClient ? window : void 0;
const defaultDocument = isClient ? window.document : void 0;
function useEventListener(...args) {
let target;
let events;
let listeners;
let options;
if (isString$1(args[0]) || Array.isArray(args[0])) {
[events, listeners, options] = args;
target = defaultWindow;
} else {
[target, events, listeners, options] = args;
}
if (!target)
return noop;
if (!Array.isArray(events))
events = [events];
if (!Array.isArray(listeners))
listeners = [listeners];
const cleanups = [];
const cleanup = () => {
cleanups.forEach((fn2) => fn2());
cleanups.length = 0;
};
const register = (el, event, listener, options2) => {
el.addEventListener(event, listener, options2);
return () => el.removeEventListener(event, listener, options2);
};
const stopWatch = vue.watch(() => [unrefElement(target), resolveUnref(options)], ([el, options2]) => {
cleanup();
if (!el)
return;
cleanups.push(...events.flatMap((event) => {
return listeners.map((listener) => register(el, event, listener, options2));
}));
}, { immediate: true, flush: "post" });
const stop = () => {
stopWatch();
cleanup();
};
tryOnScopeDispose(stop);
return stop;
}
let _iOSWorkaround = false;
function onClickOutside(target, handler, options = {}) {
const { window: window2 = defaultWindow, ignore = [], capture = true, detectIframe = false } = options;
if (!window2)
return;
if (isIOS && !_iOSWorkaround) {
_iOSWorkaround = true;
Array.from(window2.document.body.children).forEach((el) => el.addEventListener("click", noop));
}
let shouldListen = true;
const shouldIgnore = (event) => {
return ignore.some((target2) => {
if (typeof target2 === "string") {
return Array.from(window2.document.querySelectorAll(target2)).some((el) => el === event.target || event.composedPath().includes(el));
} else {
const el = unrefElement(target2);
return el && (event.target === el || event.composedPath().includes(el));
}
});
};
const listener = (event) => {
const el = unrefElement(target);
if (!el || el === event.target || event.composedPath().includes(el))
return;
if (event.detail === 0)
shouldListen = !shouldIgnore(event);
if (!shouldListen) {
shouldListen = true;
return;
}
handler(event);
};
const cleanup = [
useEventListener(window2, "click", listener, { passive: true, capture }),
useEventListener(window2, "pointerdown", (e) => {
const el = unrefElement(target);
if (el)
shouldListen = !e.composedPath().includes(el) && !shouldIgnore(e);
}, { passive: true }),
detectIframe && useEventListener(window2, "blur", (event) => {
var _a2;
const el = unrefElement(target);
if (((_a2 = window2.document.activeElement) == null ? void 0 : _a2.tagName) === "IFRAME" && !(el == null ? void 0 : el.contains(window2.document.activeElement)))
handler(event);
})
].filter(Boolean);
const stop = () => cleanup.forEach((fn2) => fn2());
return stop;
}
function useSupported(callback, sync = false) {
const isSupported = vue.ref();
const update = () => isSupported.value = Boolean(callback());
update();
tryOnMounted(update, sync);
return isSupported;
}
function cloneFnJSON(source) {
return JSON.parse(JSON.stringify(source));
}
const _global = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
const globalKey = "__vueuse_ssr_handlers__";
_global[globalKey] = _global[globalKey] || {};
function useDocumentVisibility({ document: document2 = defaultDocument } = {}) {
if (!document2)
return vue.ref("visible");
const visibility = vue.ref(document2.visibilityState);
useEventListener(document2, "visibilitychange", () => {
visibility.value = document2.visibilityState;
});
return visibility;
}
var __getOwnPropSymbols$g = Object.getOwnPropertySymbols;
var __hasOwnProp$g = Object.prototype.hasOwnProperty;
var __propIsEnum$g = Object.prototype.propertyIsEnumerable;
var __objRest$2 = (source, exclude) => {
var target = {};
for (var prop in source)
if (__hasOwnProp$g.call(source, prop) && exclude.indexOf(prop) < 0)
target[prop] = source[prop];
if (source != null && __getOwnPropSymbols$g)
for (var prop of __getOwnPropSymbols$g(source)) {
if (exclude.indexOf(prop) < 0 && __propIsEnum$g.call(source, prop))
target[prop] = source[prop];
}
return target;
};
function useResizeObserver(target, callback, options = {}) {
const _a2 = options, { window: window2 = defaultWindow } = _a2, observerOptions = __objRest$2(_a2, ["window"]);
let observer;
const isSupported = useSupported(() => window2 && "ResizeObserver" in window2);
const cleanup = () => {
if (observer) {
observer.disconnect();
observer = void 0;
}
};
const stopWatch = vue.watch(() => unrefElement(target), (el) => {
cleanup();
if (isSupported.value && window2 && el) {
observer = new ResizeObserver(callback);
observer.observe(el, observerOptions);
}
}, { immediate: true, flush: "post" });
const stop = () => {
cleanup();
stopWatch();
};
tryOnScopeDispose(stop);
return {
isSupported,
stop
};
}
var __getOwnPropSymbols$8 = Object.getOwnPropertySymbols;
var __hasOwnProp$8 = Object.prototype.hasOwnProperty;
var __propIsEnum$8 = Object.prototype.propertyIsEnumerable;
var __objRest$1 = (source, exclude) => {
var target = {};
for (var prop in source)
if (__hasOwnProp$8.call(source, prop) && exclude.indexOf(prop) < 0)
target[prop] = source[prop];
if (source != null && __getOwnPropSymbols$8)
for (var prop of __getOwnPropSymbols$8(source)) {
if (exclude.indexOf(prop) < 0 && __propIsEnum$8.call(source, prop))
target[prop] = source[prop];
}
return target;
};
function useMutationObserver(target, callback, options = {}) {
const _a2 = options, { window: window2 = defaultWindow } = _a2, mutationOptions = __objRest$1(_a2, ["window"]);
let observer;
const isSupported = useSupported(() => window2 && "MutationObserver" in window2);
const cleanup = () => {
if (observer) {
observer.disconnect();
observer = void 0;
}
};
const stopWatch = vue.watch(() => unrefElement(target), (el) => {
cleanup();
if (isSupported.value && window2 && el) {
observer = new MutationObserver(callback);
observer.observe(el, mutationOptions);
}
}, { immediate: true });
const stop = () => {
cleanup();
stopWatch();
};
tryOnScopeDispose(stop);
return {
isSupported,
stop
};
}
var SwipeDirection;
(function(SwipeDirection2) {
SwipeDirection2["UP"] = "UP";
SwipeDirection2["RIGHT"] = "RIGHT";
SwipeDirection2["DOWN"] = "DOWN";
SwipeDirection2["LEFT"] = "LEFT";
SwipeDirection2["NONE"] = "NONE";
})(SwipeDirection || (SwipeDirection = {}));
var __defProp = Object.defineProperty;
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __propIsEnum = Object.prototype.propertyIsEnumerable;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues = (a, b) => {
for (var prop in b || (b = {}))
if (__hasOwnProp.call(b, prop))
__defNormalProp(a, prop, b[prop]);
if (__getOwnPropSymbols)
for (var prop of __getOwnPropSymbols(b)) {
if (__propIsEnum.call(b, prop))
__defNormalProp(a, prop, b[prop]);
}
return a;
};
const _TransitionPresets = {
easeInSine: [0.12, 0, 0.39, 0],
easeOutSine: [0.61, 1, 0.88, 1],
easeInOutSine: [0.37, 0, 0.63, 1],
easeInQuad: [0.11, 0, 0.5, 0],
easeOutQuad: [0.5, 1, 0.89, 1],
easeInOutQuad: [0.45, 0, 0.55, 1],
easeInCubic: [0.32, 0, 0.67, 0],
easeOutCubic: [0.33, 1, 0.68, 1],
easeInOutCubic: [0.65, 0, 0.35, 1],
easeInQuart: [0.5, 0, 0.75, 0],
easeOutQuart: [0.25, 1, 0.5, 1],
easeInOutQuart: [0.76, 0, 0.24, 1],
easeInQuint: [0.64, 0, 0.78, 0],
easeOutQuint: [0.22, 1, 0.36, 1],
easeInOutQuint: [0.83, 0, 0.17, 1],
easeInExpo: [0.7, 0, 0.84, 0],
easeOutExpo: [0.16, 1, 0.3, 1],
easeInOutExpo: [0.87, 0, 0.13, 1],
easeInCirc: [0.55, 0, 1, 0.45],
easeOutCirc: [0, 0.55, 0.45, 1],
easeInOutCirc: [0.85, 0, 0.15, 1],
easeInBack: [0.36, 0, 0.66, -0.56],
easeOutBack: [0.34, 1.56, 0.64, 1],
easeInOutBack: [0.68, -0.6, 0.32, 1.6]
};
__spreadValues({
linear: identity$1
}, _TransitionPresets);
function useVModel(props, key, emit, options = {}) {
var _a2, _b, _c;
const {
clone: clone2 = false,
passive = false,
eventName,
deep = false,
defaultValue
} = options;
const vm = vue.getCurrentInstance();
const _emit = (vm == null ? void 0 : vm.emit) || ((_a2 = vm == null ? void 0 : vm.$emit) == null ? void 0 : _a2.bind(vm)) || ((_c = (_b = vm == null ? void 0 : vm.proxy) == null ? void 0 : _b.$emit) == null ? void 0 : _c.bind(vm == null ? void 0 : vm.proxy));
let event = eventName;
event = eventName || event || `update:${key.toString()}`;
const cloneFn = (val) => !clone2 ? val : isFunction$2(clone2) ? clone2(val) : cloneFnJSON(val);
const getValue2 = () => isDef(props[key]) ? cloneFn(props[key]) : defaultValue;
if (passive) {
const initialValue = getValue2();
const proxy = vue.ref(initialValue);
vue.watch(() => props[key], (v) => proxy.value = cloneFn(v));
vue.watch(proxy, (v) => {
if (v !== props[key] || deep)
_emit(event, v);
}, { deep });
return proxy;
} else {
return vue.computed({
get() {
return getValue2();
},
set(value) {
_emit(event, value);
}
});
}
}
function useWindowFocus({ window: window2 = defaultWindow } = {}) {
if (!window2)
return vue.ref(false);
const focused = vue.ref(window2.document.hasFocus());
useEventListener(window2, "blur", () => {
focused.value = false;
});
useEventListener(window2, "focus", () => {
focused.value = true;
});
return focused;
}
const isFirefox = () => isClient && /firefox/i.test(window.navigator.userAgent);
const isInContainer = (el, container) => {
if (!isClient || !el || !container)
return false;
const elRect = el.getBoundingClientRect();
let containerRect;
if (container instanceof Element) {
containerRect = container.getBoundingClientRect();
} else {
containerRect = {
top: 0,
right: window.innerWidth,
bottom: window.innerHeight,
left: 0
};
}
return elRect.top < containerRect.bottom && elRect.bottom > containerRect.top && elRect.right > containerRect.left && elRect.left < containerRect.right;
};
const getClientXY = (event) => {
let clientX;
let clientY;
if (event.type === "touchend") {
clientY = event.changedTouches[0].clientY;
clientX = event.changedTouches[0].clientX;
} else if (event.type.startsWith("touch")) {
clientY = event.touches[0].clientY;
clientX = event.touches[0].clientX;
} else {
clientY = event.clientY;
clientX = event.clientX;
}
return {
clientX,
clientY
};
};
/**
* @vue/shared v3.5.12
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
const NOOP = () => {
};
const hasOwnProperty$c = Object.prototype.hasOwnProperty;
const hasOwn = (val, key) => hasOwnProperty$c.call(val, key);
const isArray$1 = Array.isArray;
const isFunction$1 = (val) => typeof val === "function";
const isString = (val) => typeof val === "string";
const isObject$1 = (val) => val !== null && typeof val === "object";
const objectToString$1 = Object.prototype.toString;
const toTypeString = (value) => objectToString$1.call(value);
const toRawType = (value) => {
return toTypeString(value).slice(8, -1);
};
const isPlainObject = (val) => toTypeString(val) === "[object Object]";
const cacheStringFunction = (fn2) => {
const cache = /* @__PURE__ */ Object.create(null);
return (str) => {
const hit = cache[str];
return hit || (cache[str] = fn2(str));
};
};
const camelizeRE = /-(\w)/g;
const camelize = cacheStringFunction(
(str) => {
return str.replace(camelizeRE, (_2, c) => c ? c.toUpperCase() : "");
}
);
const hyphenateRE = /\B([A-Z])/g;
const hyphenate = cacheStringFunction(
(str) => str.replace(hyphenateRE, "-$1").toLowerCase()
);
const capitalize$1 = cacheStringFunction((str) => {
return str.charAt(0).toUpperCase() + str.slice(1);
});
var freeGlobal = typeof global == "object" && global && global.Object === Object && global;
var freeSelf = typeof self == "object" && self && self.Object === Object && self;
var root = freeGlobal || freeSelf || Function("return this")();
var Symbol$1 = root.Symbol;
var objectProto$e = Object.prototype;
var hasOwnProperty$b = objectProto$e.hasOwnProperty;
var nativeObjectToString$1 = objectProto$e.toString;
var symToStringTag$1 = Symbol$1 ? Symbol$1.toStringTag : void 0;
function getRawTag(value) {
var isOwn = hasOwnProperty$b.call(value, symToStringTag$1), tag = value[symToStringTag$1];
try {
value[symToStringTag$1] = void 0;
var unmasked = true;
} catch (e) {
}
var result2 = nativeObjectToString$1.call(value);
if (unmasked) {
if (isOwn) {
value[symToStringTag$1] = tag;
} else {
delete value[symToStringTag$1];
}
}
return result2;
}
var objectProto$d = Object.prototype;
var nativeObjectToString = objectProto$d.toString;
function objectToString(value) {
return nativeObjectToString.call(value);
}
var nullTag = "[object Null]", undefinedTag = "[object Undefined]";
var symToStringTag = Symbol$1 ? Symbol$1.toStringTag : void 0;
function baseGetTag(value) {
if (value == null) {
return value === void 0 ? undefinedTag : nullTag;
}
return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);
}
function isObjectLike(value) {
return value != null && typeof value == "object";
}
var symbolTag$3 = "[object Symbol]";
function isSymbol(value) {
return typeof value == "symbol" || isObjectLike(value) && baseGetTag(value) == symbolTag$3;
}
function arrayMap(array, iteratee2) {
var index = -1, length = array == null ? 0 : array.length, result2 = Array(length);
while (++index < length) {
result2[index] = iteratee2(array[index], index, array);
}
return result2;
}
var isArray = Array.isArray;
var INFINITY$1 = 1 / 0;
var symbolProto$2 = Symbol$1 ? Symbol$1.prototype : void 0, symbolToString = symbolProto$2 ? symbolProto$2.toString : void 0;
function baseToString(value) {
if (typeof value == "string") {
return value;
}
if (isArray(value)) {
return arrayMap(value, baseToString) + "";
}
if (isSymbol(value)) {
return symbolToString ? symbolToString.call(value) : "";
}
var result2 = value + "";
return result2 == "0" && 1 / value == -INFINITY$1 ? "-0" : result2;
}
var reWhitespace = /\s/;
function trimmedEndIndex(string) {
var index = string.length;
while (index-- && reWhitespace.test(string.charAt(index))) {
}
return index;
}
var reTrimStart = /^\s+/;
function baseTrim(string) {
return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, "") : string;
}
function isObject(value) {
var type = typeof value;
return value != null && (type == "object" || type == "function");
}
var NAN = 0 / 0;
var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
var reIsBinary = /^0b[01]+$/i;
var reIsOctal = /^0o[0-7]+$/i;
var freeParseInt = parseInt;
function toNumber(value) {
if (typeof value == "number") {
return value;
}
if (isSymbol(value)) {
return NAN;
}
if (isObject(value)) {
var other = typeof value.valueOf == "function" ? value.valueOf() : value;
value = isObject(other) ? other + "" : other;
}
if (typeof value != "string") {
return value === 0 ? value : +value;
}
value = baseTrim(value);
var isBinary = reIsBinary.test(value);
return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;
}
function identity(value) {
return value;
}
var asyncTag = "[object AsyncFunction]", funcTag$2 = "[object Function]", genTag$1 = "[object GeneratorFunction]", proxyTag = "[object Proxy]";
function isFunction(value) {
if (!isObject(value)) {
return false;
}
var tag = baseGetTag(value);
return tag == funcTag$2 || tag == genTag$1 || tag == asyncTag || tag == proxyTag;
}
var coreJsData = root["__core-js_shared__"];
var maskSrcKey = function() {
var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || "");
return uid ? "Symbol(src)_1." + uid : "";
}();
function isMasked(func) {
return !!maskSrcKey && maskSrcKey in func;
}
var funcProto$1 = Function.prototype;
var funcToString$1 = funcProto$1.toString;
function toSource(func) {
if (func != null) {
try {
return funcToString$1.call(func);
} catch (e) {
}
try {
return func + "";
} catch (e) {
}
}
return "";
}
var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
var reIsHostCtor = /^\[object .+?Constructor\]$/;
var funcProto = Function.prototype, objectProto$c = Object.prototype;
var funcToString = funcProto.toString;
var hasOwnProperty$a = objectProto$c.hasOwnProperty;
var reIsNative = RegExp(
"^" + funcToString.call(hasOwnProperty$a).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
);
function baseIsNative(value) {
if (!isObject(value) || isMasked(value)) {
return false;
}
var pattern = isFunction(value) ? reIsNative : reIsHostCtor;
return pattern.test(toSource(value));
}
function getValue(object2, key) {
return object2 == null ? void 0 : object2[key];
}
function getNative(object2, key) {
var value = getValue(object2, key);
return baseIsNative(value) ? value : void 0;
}
var WeakMap = getNative(root, "WeakMap");
var objectCreate = Object.create;
var baseCreate = /* @__PURE__ */ function() {
function object2() {
}
return function(proto) {
if (!isObject(proto)) {
return {};
}
if (objectCreate) {
return objectCreate(proto);
}
object2.prototype = proto;
var result2 = new object2();
object2.prototype = void 0;
return result2;
};
}();
function apply(func, thisArg, args) {
switch (args.length) {
case 0:
return func.call(thisArg);
case 1:
return func.call(thisArg, args[0]);
case 2:
return func.call(thisArg, args[0], args[1]);
case 3:
return func.call(thisArg, args[0], args[1], args[2]);
}
return func.apply(thisArg, args);
}
var HOT_COUNT = 800, HOT_SPAN = 16;
var nativeNow = Date.now;
function shortOut(func) {
var count = 0, lastCalled = 0;
return function() {
var stamp = nativeNow(), remaining = HOT_SPAN - (stamp - lastCalled);
lastCalled = stamp;
if (remaining > 0) {
if (++count >= HOT_COUNT) {
return arguments[0];
}
} else {
count = 0;
}
return func.apply(void 0, arguments);
};
}
function constant(value) {
return function() {
return value;
};
}
var defineProperty = function() {
try {
var func = getNative(Object, "defineProperty");
func({}, "", {});
return func;
} catch (e) {
}
}();
var baseSetToString = !defineProperty ? identity : function(func, string) {
return defineProperty(func, "toString", {
"configurable": true,
"enumerable": false,
"value": constant(string),
"writable": true
});
};
var setToString = shortOut(baseSetToString);
function arrayEach(array, iteratee2) {
var index = -1, length = array == null ? 0 : array.length;
while (++index < length) {
if (iteratee2(array[index], index, array) === false) {
break;
}
}
return array;
}
function baseFindIndex(array, predicate, fromIndex, fromRight) {
array.length;
var index = fromIndex + 1;
while (index--) {
if (predicate(array[index], index, array)) {
return index;
}
}
return -1;
}
var MAX_SAFE_INTEGER$1 = 9007199254740991;
var reIsUint = /^(?:0|[1-9]\d*)$/;
function isIndex(value, length) {
var type = typeof value;
length = length == null ? MAX_SAFE_INTEGER$1 : length;
return !!length && (type == "number" || type != "symbol" && reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length);
}
function baseAssignValue(object2, key, value) {
if (key == "__proto__" && defineProperty) {
defineProperty(object2, key, {
"configurable": true,
"enumerable": true,
"value": value,
"writable": true
});
} else {
object2[key] = value;
}
}
function eq(value, other) {
return value === other || value !== value && other !== other;
}
var objectProto$b = Object.prototype;
var hasOwnProperty$9 = objectProto$b.hasOwnProperty;
function assignValue(object2, key, value) {
var objValue = object2[key];
if (!(hasOwnProperty$9.call(object2, key) && eq(objValue, value)) || value === void 0 && !(key in object2)) {
baseAssignValue(object2, key, value);
}
}
var nativeMax$1 = Math.max;
function overRest(func, start, transform) {
start = nativeMax$1(start === void 0 ? func.length - 1 : start, 0);
return function() {
var args = arguments, index = -1, length = nativeMax$1(args.length - start, 0), array = Array(length);
while (++index < length) {
array[index] = args[start + index];
}
index = -1;
var otherArgs = Array(start + 1);
while (++index < start) {
otherArgs[index] = args[index];
}
otherArgs[start] = transform(array);
return apply(func, this, otherArgs);
};
}
var MAX_SAFE_INTEGER = 9007199254740991;
function isLength(value) {
return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
}
function isArrayLike(value) {
return value != null && isLength(value.length) && !isFunction(value);
}
var objectProto$a = Object.prototype;
function isPrototype(value) {
var Ctor = value && value.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto$a;
return value === proto;
}
function baseTimes(n, iteratee2) {
var index = -1, result2 = Array(n);
while (++index < n) {
result2[index] = iteratee2(index);
}
return result2;
}
var argsTag$3 = "[object Arguments]";
function baseIsArguments(value) {
return isObjectLike(value) && baseGetTag(value) == argsTag$3;
}
var objectProto$9 = Object.prototype;
var hasOwnProperty$8 = objectProto$9.hasOwnProperty;
var propertyIsEnumerable$1 = objectProto$9.propertyIsEnumerable;
var isArguments = baseIsArguments(/* @__PURE__ */ function() {
return arguments;
}()) ? baseIsArguments : function(value) {
return isObjectLike(value) && hasOwnProperty$8.call(value, "callee") && !propertyIsEnumerable$1.call(value, "callee");
};
function stubFalse() {
return false;
}
var freeExports$2 = typeof exports == "object" && exports && !exports.nodeType && exports;
var freeModule$2 = freeExports$2 && typeof module == "object" && module && !module.nodeType && module;
var moduleExports$2 = freeModule$2 && freeModule$2.exports === freeExports$2;
var Buffer$1 = moduleExports$2 ? root.Buffer : void 0;
var nativeIsBuffer = Buffer$1 ? Buffer$1.isBuffer : void 0;
var isBuffer = nativeIsBuffer || stubFalse;
var argsTag$2 = "[object Arguments]", arrayTag$2 = "[object Array]", boolTag$3 = "[object Boolean]", dateTag$3 = "[object Date]", errorTag$2 = "[object Error]", funcTag$1 = "[object Function]", mapTag$5 = "[object Map]", numberTag$3 = "[object Number]", objectTag$3 = "[object Object]", regexpTag$3 = "[object RegExp]", setTag$5 = "[object Set]", stringTag$3 = "[object String]", weakMapTag$2 = "[object WeakMap]";
var arrayBufferTag$3 = "[object ArrayBuffer]", dataViewTag$4 = "[object DataView]", float32Tag$2 = "[object Float32Array]", float64Tag$2 = "[object Float64Array]", int8Tag$2 = "[object Int8Array]", int16Tag$2 = "[object Int16Array]", int32Tag$2 = "[object Int32Array]", uint8Tag$2 = "[object Uint8Array]", uint8ClampedTag$2 = "[object Uint8ClampedArray]", uint16Tag$2 = "[object Uint16Array]", uint32Tag$2 = "[object Uint32Array]";
var typedArrayTags = {};
typedArrayTags[float32Tag$2] = typedArrayTags[float64Tag$2] = typedArrayTags[int8Tag$2] = typedArrayTags[int16Tag$2] = typedArrayTags[int32Tag$2] = typedArrayTags[uint8Tag$2] = typedArrayTags[uint8ClampedTag$2] = typedArrayTags[uint16Tag$2] = typedArrayTags[uint32Tag$2] = true;
typedArrayTags[argsTag$2] = typedArrayTags[arrayTag$2] = typedArrayTags[arrayBufferTag$3] = typedArrayTags[boolTag$3] = typedArrayTags[dataViewTag$4] = typedArrayTags[dateTag$3] = typedArrayTags[errorTag$2] = typedArrayTags[funcTag$1] = typedArrayTags[mapTag$5] = typedArrayTags[numberTag$3] = typedArrayTags[objectTag$3] = typedArrayTags[regexpTag$3] = typedArrayTags[setTag$5] = typedArrayTags[stringTag$3] = typedArrayTags[weakMapTag$2] = false;
function baseIsTypedArray(value) {
return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
}
function baseUnary(func) {
return function(value) {
return func(value);
};
}
var freeExports$1 = typeof exports == "object" && exports && !exports.nodeType && exports;
var freeModule$1 = freeExports$1 && typeof module == "object" && module && !module.nodeType && module;
var moduleExports$1 = freeModule$1 && freeModule$1.exports === freeExports$1;
var freeProcess = moduleExports$1 && freeGlobal.process;
var nodeUtil = function() {
try {
var types = freeModule$1 && freeModule$1.require && freeModule$1.require("util").types;
if (types) {
return types;
}
return freeProcess && freeProcess.binding && freeProcess.binding("util");
} catch (e) {
}
}();
var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;
var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
var objectProto$8 = Object.prototype;
var hasOwnProperty$7 = objectProto$8.hasOwnProperty;
function arrayLikeKeys(value, inherited) {
var isArr = isArray(value), isArg = !isArr && isArguments(value), isBuff = !isArr && !isArg && isBuffer(value), isType = !isArr && !isArg && !isBuff && isTypedArray(value), skipIndexes = isArr || isArg || isBuff || isType, result2 = skipIndexes ? baseTimes(value.length, String) : [], length = result2.length;
for (var key in value) {
if ((hasOwnProperty$7.call(value, key)) && !(skipIndexes && // Safari 9 has enumerable `arguments.length` in strict mode.
(key == "length" || // Node.js 0.10 has enumerable non-index properties on buffers.
isBuff && (key == "offset" || key == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays.
isType && (key == "buffer" || key == "byteLength" || key == "byteOffset") || // Skip index properties.
isIndex(key, length)))) {
result2.push(key);
}
}
return result2;
}
function overArg(func, transform) {
return function(arg) {
return func(transform(arg));
};
}
var nativeKeys = overArg(Object.keys, Object);
var objectProto$7 = Object.prototype;
var hasOwnProperty$6 = objectProto$7.hasOwnProperty;
function baseKeys(object2) {
if (!isPrototype(object2)) {
return nativeKeys(object2);
}
var result2 = [];
for (var key in Object(object2)) {
if (hasOwnProperty$6.call(object2, key) && key != "constructor") {
result2.push(key);
}
}
return result2;
}
function keys(object2) {
return isArrayLike(object2) ? arrayLikeKeys(object2) : baseKeys(object2);
}
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, reIsPlainProp = /^\w*$/;
function isKey(value, object2) {
if (isArray(value)) {
return false;
}
var type = typeof value;
if (type == "number" || type == "symbol" || type == "boolean" || value == null || isSymbol(value)) {
return true;
}
return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object2 != null && value in Object(object2);
}
var nativeCreate = getNative(Object, "create");
function hashClear() {
this.__data__ = nativeCreate ? nativeCreate(null) : {};
this.size = 0;
}
function hashDelete(key) {
var result2 = this.has(key) && delete this.__data__[key];
this.size -= result2 ? 1 : 0;
return result2;
}
var HASH_UNDEFINED$2 = "__lodash_hash_undefined__";
var objectProto$5 = Object.prototype;
var hasOwnProperty$4 = objectProto$5.hasOwnProperty;
function hashGet(key) {
var data = this.__data__;
if (nativeCreate) {
var result2 = data[key];
return result2 === HASH_UNDEFINED$2 ? void 0 : result2;
}
return hasOwnProperty$4.call(data, key) ? data[key] : void 0;
}
var objectProto$4 = Object.prototype;
var hasOwnProperty$3 = objectProto$4.hasOwnProperty;
function hashHas(key) {
var data = this.__data__;
return nativeCreate ? data[key] !== void 0 : hasOwnProperty$3.call(data, key);
}
var HASH_UNDEFINED$1 = "__lodash_hash_undefined__";
function hashSet(key, value) {
var data = this.__data__;
this.size += this.has(key) ? 0 : 1;
data[key] = nativeCreate && value === void 0 ? HASH_UNDEFINED$1 : value;
return this;
}
function Hash(entries) {
var index = -1, length = entries == null ? 0 : entries.length;
this.clear();
while (++index < length) {
var entry = entries[index];
this.set(entry[0], entry[1]);
}
}
Hash.prototype.clear = hashClear;
Hash.prototype["delete"] = hashDelete;
Hash.prototype.get = hashGet;
Hash.prototype.has = hashHas;
Hash.prototype.set = hashSet;
function listCacheClear() {
this.__data__ = [];
this.size = 0;
}
function assocIndexOf(array, key) {
var length = array.length;
while (length--) {
if (eq(array[length][0], key)) {
return length;
}
}
return -1;
}
var arrayProto = Array.prototype;
var splice = arrayProto.splice;
function listCacheDelete(key) {
var data = this.__data__, index = assocIndexOf(data, key);
if (index < 0) {
return false;
}
var lastIndex = data.length - 1;
if (index == lastIndex) {
data.pop();
} else {
splice.call(data, index, 1);
}
--this.size;
return true;
}
function listCacheGet(key) {
var data = this.__data__, index = assocIndexOf(data, key);
return index < 0 ? void 0 : data[index][1];
}
function listCacheHas(key) {
return assocIndexOf(this.__data__, key) > -1;
}
function listCacheSet(key, value) {
var data = this.__data__, index = assocIndexOf(data, key);
if (index < 0) {
++this.size;
data.push([key, value]);
} else {
data[index][1] = value;
}
return this;
}
function ListCache(entries) {
var index = -1, length = entries == null ? 0 : entries.length;
this.clear();
while (++index < length) {
var entry = entries[index];
this.set(entry[0], entry[1]);
}
}
ListCache.prototype.clear = listCacheClear;
ListCache.prototype["delete"] = listCacheDelete;
ListCache.prototype.get = listCacheGet;
ListCache.prototype.has = listCacheHas;
ListCache.prototype.set = listCacheSet;
var Map$1 = getNative(root, "Map");
function mapCacheClear() {
this.size = 0;
this.__data__ = {
"hash": new Hash(),
"map": new (Map$1 || ListCache)(),
"string": new Hash()
};
}
function isKeyable(value) {
var type = typeof value;
return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value !== "__proto__" : value === null;
}
function getMapData(map2, key) {
var data = map2.__data__;
return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map;
}
function mapCacheDelete(key) {
var result2 = getMapData(this, key)["delete"](key);
this.size -= result2 ? 1 : 0;
return result2;
}
function mapCacheGet(key) {
return getMapData(this, key).get(key);
}
function mapCacheHas(key) {
return getMapData(this, key).has(key);
}
function mapCacheSet(key, value) {
var data = getMapData(this, key), size2 = data.size;
data.set(key, value);
this.size += data.size == size2 ? 0 : 1;
return this;
}
function MapCache(entries) {
var index = -1, length = entries == null ? 0 : entries.length;
this.clear();
while (++index < length) {
var entry = entries[index];
this.set(entry[0], entry[1]);
}
}
MapCache.prototype.clear = mapCacheClear;
MapCache.prototype["delete"] = mapCacheDelete;
MapCache.prototype.get = mapCacheGet;
MapCache.prototype.has = mapCacheHas;
MapCache.prototype.set = mapCacheSet;
var FUNC_ERROR_TEXT$2 = "Expected a function";
function memoize(func, resolver) {
if (typeof func != "function" || resolver != null && typeof resolver != "function") {
throw new TypeError(FUNC_ERROR_TEXT$2);
}
var memoized = function() {
var args = arguments, key = resolver ? resolver.apply(this, args) : args[0], cache = memoized.cache;
if (cache.has(key)) {
return cache.get(key);
}
var result2 = func.apply(this, args);
memoized.cache = cache.set(key, result2) || cache;
return result2;
};
memoized.cache = new (memoize.Cache || MapCache)();
return memoized;
}
memoize.Cache = MapCache;
var MAX_MEMOIZE_SIZE = 500;
function memoizeCapped(func) {
var result2 = memoize(func, function(key) {
if (cache.size === MAX_MEMOIZE_SIZE) {
cache.clear();
}
return key;
});
var cache = result2.cache;
return result2;
}
var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
var reEscapeChar = /\\(\\)?/g;
var stringToPath = memoizeCapped(function(string) {
var result2 = [];
if (string.charCodeAt(0) === 46) {
result2.push("");
}
string.replace(rePropName, function(match, number, quote, subString) {
result2.push(quote ? subString.replace(reEscapeChar, "$1") : number || match);
});
return result2;
});
function toString(value) {
return value == null ? "" : baseToString(value);
}
function castPath(value, object2) {
if (isArray(value)) {
return value;
}
return isKey(value, object2) ? [value] : stringToPath(toString(value));
}
var INFINITY = 1 / 0;
function toKey(value) {
if (typeof value == "string" || isSymbol(value)) {
return value;
}
var result2 = value + "";
return result2 == "0" && 1 / value == -INFINITY ? "-0" : result2;
}
function baseGet(object2, path) {
path = castPath(path, object2);
var index = 0, length = path.length;
while (object2 != null && index < length) {
object2 = object2[toKey(path[index++])];
}
return index && index == length ? object2 : void 0;
}
function get(object2, path, defaultValue) {
var result2 = object2 == null ? void 0 : baseGet(object2, path);
return result2 === void 0 ? defaultValue : result2;
}
function arrayPush(array, values2) {
var index = -1, length = values2.length, offset = array.length;
while (++index < length) {
array[offset + index] = values2[index];
}
return array;
}
var spreadableSymbol = Symbol$1 ? Symbol$1.isConcatSpreadable : void 0;
function isFlattenable(value) {
return isArray(value) || isArguments(value) || !!(spreadableSymbol && value && value[spreadableSymbol]);
}
function baseFlatten(array, depth, predicate, isStrict, result2) {
var index = -1, length = array.length;
predicate || (predicate = isFlattenable);
result2 || (result2 = []);
while (++index < length) {
var value = array[index];
if (predicate(value)) {
{
arrayPush(result2, value);
}
} else {
result2[result2.length] = value;
}
}
return result2;
}
function flatten(array) {
var length = array == null ? 0 : array.length;
return length ? baseFlatten(array) : [];
}
function flatRest(func) {
return setToString(overRest(func, void 0, flatten), func + "");
}
var getPrototype = overArg(Object.getPrototypeOf, Object);
function castArray() {
if (!arguments.length) {
return [];
}
var value = arguments[0];
return isArray(value) ? value : [value];
}
function stackClear() {
this.__data__ = new ListCache();
this.size = 0;
}
function stackDelete(key) {
var data = this.__data__, result2 = data["delete"](key);
this.size = data.size;
return result2;
}
function stackGet(key) {
return this.__data__.get(key);
}
function stackHas(key) {
return this.__data__.has(key);
}
var LARGE_ARRAY_SIZE = 200;
function stackSet(key, value) {
var data = this.__data__;
if (data instanceof ListCache) {
var pairs2 = data.__data__;
if (!Map$1 || pairs2.length < LARGE_ARRAY_SIZE - 1) {
pairs2.push([key, value]);
this.size = ++data.size;
return this;
}
data = this.__data__ = new MapCache(pairs2);
}
data.set(key, value);
this.size = data.size;
return this;
}
function Stack(entries) {
var data = this.__data__ = new ListCache(entries);
this.size = data.size;
}
Stack.prototype.clear = stackClear;
Stack.prototype["delete"] = stackDelete;
Stack.prototype.get = stackGet;
Stack.prototype.has = stackHas;
Stack.prototype.set = stackSet;
var freeExports = typeof exports == "object" && exports && !exports.nodeType && exports;
var freeModule = freeExports && typeof module == "object" && module && !module.nodeType && module;
var moduleExports = freeModule && freeModule.exports === freeExports;
var Buffer2 = moduleExports ? root.Buffer : void 0; Buffer2 ? Buffer2.allocUnsafe : void 0;
function cloneBuffer(buffer, isDeep) {
{
return buffer.slice();
}
}
function arrayFilter(array, predicate) {
var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result2 = [];
while (++index < length) {
var value = array[index];
if (predicate(value, index, array)) {
result2[resIndex++] = value;
}
}
return result2;
}
function stubArray() {
return [];
}
var objectProto$3 = Object.prototype;
var propertyIsEnumerable = objectProto$3.propertyIsEnumerable;
var nativeGetSymbols$1 = Object.getOwnPropertySymbols;
var getSymbols = !nativeGetSymbols$1 ? stubArray : function(object2) {
if (object2 == null) {
return [];
}
object2 = Object(object2);
return arrayFilter(nativeGetSymbols$1(object2), function(symbol) {
return propertyIsEnumerable.call(object2, symbol);
});
};
function baseGetAllKeys(object2, keysFunc, symbolsFunc) {
var result2 = keysFunc(object2);
return isArray(object2) ? result2 : arrayPush(result2, symbolsFunc(object2));
}
function getAllKeys(object2) {
return baseGetAllKeys(object2, keys, getSymbols);
}
var DataView$1 = getNative(root, "DataView");
var Promise$1 = getNative(root, "Promise");
var Set$1 = getNative(root, "Set");
var mapTag$4 = "[object Map]", objectTag$2 = "[object Object]", promiseTag = "[object Promise]", setTag$4 = "[object Set]", weakMapTag$1 = "[object WeakMap]";
var dataViewTag$3 = "[object DataView]";
var dataViewCtorString = toSource(DataView$1), mapCtorString = toSource(Map$1), promiseCtorString = toSource(Promise$1), setCtorString = toSource(Set$1), weakMapCtorString = toSource(WeakMap);
var getTag = baseGetTag;
if (DataView$1 && getTag(new DataView$1(new ArrayBuffer(1))) != dataViewTag$3 || Map$1 && getTag(new Map$1()) != mapTag$4 || Promise$1 && getTag(Promise$1.resolve()) != promiseTag || Set$1 && getTag(new Set$1()) != setTag$4 || WeakMap && getTag(new WeakMap()) != weakMapTag$1) {
getTag = function(value) {
var result2 = baseGetTag(value), Ctor = result2 == objectTag$2 ? value.constructor : void 0, ctorString = Ctor ? toSource(Ctor) : "";
if (ctorString) {
switch (ctorString) {
case dataViewCtorString:
return dataViewTag$3;
case mapCtorString:
return mapTag$4;
case promiseCtorString:
return promiseTag;
case setCtorString:
return setTag$4;
case weakMapCtorString:
return weakMapTag$1;
}
}
return result2;
};
}
var objectProto$2 = Object.prototype;
var hasOwnProperty$2 = objectProto$2.hasOwnProperty;
function initCloneArray(array) {
var length = array.length, result2 = new array.constructor(length);
if (length && typeof array[0] == "string" && hasOwnProperty$2.call(array, "index")) {
result2.index = array.index;
result2.input = array.input;
}
return result2;
}
var Uint8Array$1 = root.Uint8Array;
function cloneArrayBuffer(arrayBuffer) {
var result2 = new arrayBuffer.constructor(arrayBuffer.byteLength);
new Uint8Array$1(result2).set(new Uint8Array$1(arrayBuffer));
return result2;
}
function cloneDataView(dataView, isDeep) {
var buffer = cloneArrayBuffer(dataView.buffer) ;
return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);
}
var reFlags = /\w*$/;
function cloneRegExp(regexp) {
var result2 = new regexp.constructor(regexp.source, reFlags.exec(regexp));
result2.lastIndex = regexp.lastIndex;
return result2;
}
var symbolProto$1 = Symbol$1 ? Symbol$1.prototype : void 0, symbolValueOf$1 = symbolProto$1 ? symbolProto$1.valueOf : void 0;
function cloneSymbol(symbol) {
return symbolValueOf$1 ? Object(symbolValueOf$1.call(symbol)) : {};
}
function cloneTypedArray(typedArray, isDeep) {
var buffer = cloneArrayBuffer(typedArray.buffer) ;
return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
}
var boolTag$2 = "[object Boolean]", dateTag$2 = "[object Date]", mapTag$3 = "[object Map]", numberTag$2 = "[object Number]", regexpTag$2 = "[object RegExp]", setTag$3 = "[object Set]", stringTag$2 = "[object String]", symbolTag$2 = "[object Symbol]";
var arrayBufferTag$2 = "[object ArrayBuffer]", dataViewTag$2 = "[object DataView]", float32Tag$1 = "[object Float32Array]", float64Tag$1 = "[object Float64Array]", int8Tag$1 = "[object Int8Array]", int16Tag$1 = "[object Int16Array]", int32Tag$1 = "[object Int32Array]", uint8Tag$1 = "[object Uint8Array]", uint8ClampedTag$1 = "[object Uint8ClampedArray]", uint16Tag$1 = "[object Uint16Array]", uint32Tag$1 = "[object Uint32Array]";
function initCloneByTag(object2, tag, isDeep) {
var Ctor = object2.constructor;
switch (tag) {
case arrayBufferTag$2:
return cloneArrayBuffer(object2);
case boolTag$2:
case dateTag$2:
return new Ctor(+object2);
case dataViewTag$2:
return cloneDataView(object2);
case float32Tag$1:
case float64Tag$1:
case int8Tag$1:
case int16Tag$1:
case int32Tag$1:
case uint8Tag$1:
case uint8ClampedTag$1:
case uint16Tag$1:
case uint32Tag$1:
return cloneTypedArray(object2);
case mapTag$3:
return new Ctor();
case numberTag$2:
case stringTag$2:
return new Ctor(object2);
case regexpTag$2:
return cloneRegExp(object2);
case setTag$3:
return new Ctor();
case symbolTag$2:
return cloneSymbol(object2);
}
}
function initCloneObject(object2) {
return typeof object2.constructor == "function" && !isPrototype(object2) ? baseCreate(getPrototype(object2)) : {};
}
var mapTag$2 = "[object Map]";
function baseIsMap(value) {
return isObjectLike(value) && getTag(value) == mapTag$2;
}
var nodeIsMap = nodeUtil && nodeUtil.isMap;
var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;
var setTag$2 = "[object Set]";
function baseIsSet(value) {
return isObjectLike(value) && getTag(value) == setTag$2;
}
var nodeIsSet = nodeUtil && nodeUtil.isSet;
var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;
var argsTag$1 = "[object Arguments]", arrayTag$1 = "[object Array]", boolTag$1 = "[object Boolean]", dateTag$1 = "[object Date]", errorTag$1 = "[object Error]", funcTag = "[object Function]", genTag = "[object GeneratorFunction]", mapTag$1 = "[object Map]", numberTag$1 = "[object Number]", objectTag$1 = "[object Object]", regexpTag$1 = "[object RegExp]", setTag$1 = "[object Set]", stringTag$1 = "[object String]", symbolTag$1 = "[object Symbol]", weakMapTag = "[object WeakMap]";
var arrayBufferTag$1 = "[object ArrayBuffer]", dataViewTag$1 = "[object DataView]", float32Tag = "[object Float32Array]", float64Tag = "[object Float64Array]", int8Tag = "[object Int8Array]", int16Tag = "[object Int16Array]", int32Tag = "[object Int32Array]", uint8Tag = "[object Uint8Array]", uint8ClampedTag = "[object Uint8ClampedArray]", uint16Tag = "[object Uint16Array]", uint32Tag = "[object Uint32Array]";
var cloneableTags = {};
cloneableTags[argsTag$1] = cloneableTags[arrayTag$1] = cloneableTags[arrayBufferTag$1] = cloneableTags[dataViewTag$1] = cloneableTags[boolTag$1] = cloneableTags[dateTag$1] = cloneableTags[float32Tag] = cloneableTags[float64Tag] = cloneableTags[int8Tag] = cloneableTags[int16Tag] = cloneableTags[int32Tag] = cloneableTags[mapTag$1] = cloneableTags[numberTag$1] = cloneableTags[objectTag$1] = cloneableTags[regexpTag$1] = cloneableTags[setTag$1] = cloneableTags[stringTag$1] = cloneableTags[symbolTag$1] = cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;
cloneableTags[errorTag$1] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = false;
function baseClone(value, bitmask, customizer, key, object2, stack) {
var result2;
if (result2 !== void 0) {
return result2;
}
if (!isObject(value)) {
return value;
}
var isArr = isArray(value);
if (isArr) {
result2 = initCloneArray(value);
} else {
var tag = getTag(value), isFunc = tag == funcTag || tag == genTag;
if (isBuffer(value)) {
return cloneBuffer(value);
}
if (tag == objectTag$1 || tag == argsTag$1 || isFunc && !object2) {
result2 = isFunc ? {} : initCloneObject(value);
} else {
if (!cloneableTags[tag]) {
return object2 ? value : {};
}
result2 = initCloneByTag(value, tag);
}
}
stack || (stack = new Stack());
var stacked = stack.get(value);
if (stacked) {
return stacked;
}
stack.set(value, result2);
if (isSet(value)) {
value.forEach(function(subValue) {
result2.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));
});
} else if (isMap(value)) {
value.forEach(function(subValue, key2) {
result2.set(key2, baseClone(subValue, bitmask, customizer, key2, value, stack));
});
}
var keysFunc = getAllKeys ;
var props = isArr ? void 0 : keysFunc(value);
arrayEach(props || value, function(subValue, key2) {
if (props) {
key2 = subValue;
subValue = value[key2];
}
assignValue(result2, key2, baseClone(subValue, bitmask, customizer, key2, value, stack));
});
return result2;
}
var CLONE_DEEP_FLAG = 1, CLONE_SYMBOLS_FLAG = 4;
function cloneDeep(value) {
return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);
}
var HASH_UNDEFINED = "__lodash_hash_undefined__";
function setCacheAdd(value) {
this.__data__.set(value, HASH_UNDEFINED);
return this;
}
function setCacheHas(value) {
return this.__data__.has(value);
}
function SetCache(values2) {
var index = -1, length = values2 == null ? 0 : values2.length;
this.__data__ = new MapCache();
while (++index < length) {
this.add(values2[index]);
}
}
SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;
SetCache.prototype.has = setCacheHas;
function arraySome(array, predicate) {
var index = -1, length = array == null ? 0 : array.length;
while (++index < length) {
if (predicate(array[index], index, array)) {
return true;
}
}
return false;
}
function cacheHas(cache, key) {
return cache.has(key);
}
var COMPARE_PARTIAL_FLAG$5 = 1, COMPARE_UNORDERED_FLAG$3 = 2;
function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {
var isPartial = bitmask & COMPARE_PARTIAL_FLAG$5, arrLength = array.length, othLength = other.length;
if (arrLength != othLength && !(isPartial && othLength > arrLength)) {
return false;
}
var arrStacked = stack.get(array);
var othStacked = stack.get(other);
if (arrStacked && othStacked) {
return arrStacked == other && othStacked == array;
}
var index = -1, result2 = true, seen = bitmask & COMPARE_UNORDERED_FLAG$3 ? new SetCache() : void 0;
stack.set(array, other);
stack.set(other, array);
while (++index < arrLength) {
var arrValue = array[index], othValue = other[index];
if (customizer) {
var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack);
}
if (compared !== void 0) {
if (compared) {
continue;
}
result2 = false;
break;
}
if (seen) {
if (!arraySome(other, function(othValue2, othIndex) {
if (!cacheHas(seen, othIndex) && (arrValue === othValue2 || equalFunc(arrValue, othValue2, bitmask, customizer, stack))) {
return seen.push(othIndex);
}
})) {
result2 = false;
break;
}
} else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {
result2 = false;
break;
}
}
stack["delete"](array);
stack["delete"](other);
return result2;
}
function mapToArray(map2) {
var index = -1, result2 = Array(map2.size);
map2.forEach(function(value, key) {
result2[++index] = [key, value];
});
return result2;
}
function setToArray(set) {
var index = -1, result2 = Array(set.size);
set.forEach(function(value) {
result2[++index] = value;
});
return result2;
}
var COMPARE_PARTIAL_FLAG$4 = 1, COMPARE_UNORDERED_FLAG$2 = 2;
var boolTag = "[object Boolean]", dateTag = "[object Date]", errorTag = "[object Error]", mapTag = "[object Map]", numberTag = "[object Number]", regexpTag = "[object RegExp]", setTag = "[object Set]", stringTag = "[object String]", symbolTag = "[object Symbol]";
var arrayBufferTag = "[object ArrayBuffer]", dataViewTag = "[object DataView]";
var symbolProto = Symbol$1 ? Symbol$1.prototype : void 0, symbolValueOf = symbolProto ? symbolProto.valueOf : void 0;
function equalByTag(object2, other, tag, bitmask, customizer, equalFunc, stack) {
switch (tag) {
case dataViewTag:
if (object2.byteLength != other.byteLength || object2.byteOffset != other.byteOffset) {
return false;
}
object2 = object2.buffer;
other = other.buffer;
case arrayBufferTag:
if (object2.byteLength != other.byteLength || !equalFunc(new Uint8Array$1(object2), new Uint8Array$1(other))) {
return false;
}
return true;
case boolTag:
case dateTag:
case numberTag:
return eq(+object2, +other);
case errorTag:
return object2.name == other.name && object2.message == other.message;
case regexpTag:
case stringTag:
return object2 == other + "";
case mapTag:
var convert = mapToArray;
case setTag:
var isPartial = bitmask & COMPARE_PARTIAL_FLAG$4;
convert || (convert = setToArray);
if (object2.size != other.size && !isPartial) {
return false;
}
var stacked = stack.get(object2);
if (stacked) {
return stacked == other;
}
bitmask |= COMPARE_UNORDERED_FLAG$2;
stack.set(object2, other);
var result2 = equalArrays(convert(object2), convert(other), bitmask, customizer, equalFunc, stack);
stack["delete"](object2);
return result2;
case symbolTag:
if (symbolValueOf) {
return symbolValueOf.call(object2) == symbolValueOf.call(other);
}
}
return false;
}
var COMPARE_PARTIAL_FLAG$3 = 1;
var objectProto$1 = Object.prototype;
var hasOwnProperty$1 = objectProto$1.hasOwnProperty;
function equalObjects(object2, other, bitmask, customizer, equalFunc, stack) {
var isPartial = bitmask & COMPARE_PARTIAL_FLAG$3, objProps = getAllKeys(object2), objLength = objProps.length, othProps = getAllKeys(other), othLength = othProps.length;
if (objLength != othLength && !isPartial) {
return false;
}
var index = objLength;
while (index--) {
var key = objProps[index];
if (!(isPartial ? key in other : hasOwnProperty$1.call(other, key))) {
return false;
}
}
var objStacked = stack.get(object2);
var othStacked = stack.get(other);
if (objStacked && othStacked) {
return objStacked == other && othStacked == object2;
}
var result2 = true;
stack.set(object2, other);
stack.set(other, object2);
var skipCtor = isPartial;
while (++index < objLength) {
key = objProps[index];
var objValue = object2[key], othValue = other[key];
if (customizer) {
var compared = isPartial ? customizer(othValue, objValue, key, other, object2, stack) : customizer(objValue, othValue, key, object2, other, stack);
}
if (!(compared === void 0 ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) {
result2 = false;
break;
}
skipCtor || (skipCtor = key == "constructor");
}
if (result2 && !skipCtor) {
var objCtor = object2.constructor, othCtor = other.constructor;
if (objCtor != othCtor && ("constructor" in object2 && "constructor" in other) && !(typeof objCtor == "function" && objCtor instanceof objCtor && typeof othCtor == "function" && othCtor instanceof othCtor)) {
result2 = false;
}
}
stack["delete"](object2);
stack["delete"](other);
return result2;
}
var COMPARE_PARTIAL_FLAG$2 = 1;
var argsTag = "[object Arguments]", arrayTag = "[object Array]", objectTag = "[object Object]";
var objectProto = Object.prototype;
var hasOwnProperty = objectProto.hasOwnProperty;
function baseIsEqualDeep(object2, other, bitmask, customizer, equalFunc, stack) {
var objIsArr = isArray(object2), othIsArr = isArray(other), objTag = objIsArr ? arrayTag : getTag(object2), othTag = othIsArr ? arrayTag : getTag(other);
objTag = objTag == argsTag ? objectTag : objTag;
othTag = othTag == argsTag ? objectTag : othTag;
var objIsObj = objTag == objectTag, othIsObj = othTag == objectTag, isSameTag = objTag == othTag;
if (isSameTag && isBuffer(object2)) {
if (!isBuffer(other)) {
return false;
}
objIsArr = true;
objIsObj = false;
}
if (isSameTag && !objIsObj) {
stack || (stack = new Stack());
return objIsArr || isTypedArray(object2) ? equalArrays(object2, other, bitmask, customizer, equalFunc, stack) : equalByTag(object2, other, objTag, bitmask, customizer, equalFunc, stack);
}
if (!(bitmask & COMPARE_PARTIAL_FLAG$2)) {
var objIsWrapped = objIsObj && hasOwnProperty.call(object2, "__wrapped__"), othIsWrapped = othIsObj && hasOwnProperty.call(other, "__wrapped__");
if (objIsWrapped || othIsWrapped) {
var objUnwrapped = objIsWrapped ? object2.value() : object2, othUnwrapped = othIsWrapped ? other.value() : other;
stack || (stack = new Stack());
return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);
}
}
if (!isSameTag) {
return false;
}
stack || (stack = new Stack());
return equalObjects(object2, other, bitmask, customizer, equalFunc, stack);
}
function baseIsEqual(value, other, bitmask, customizer, stack) {
if (value === other) {
return true;
}
if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) {
return value !== value && other !== other;
}
return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);
}
var COMPARE_PARTIAL_FLAG$1 = 1, COMPARE_UNORDERED_FLAG$1 = 2;
function baseIsMatch(object2, source, matchData, customizer) {
var index = matchData.length, length = index;
if (object2 == null) {
return !length;
}
object2 = Object(object2);
while (index--) {
var data = matchData[index];
if (data[2] ? data[1] !== object2[data[0]] : !(data[0] in object2)) {
return false;
}
}
while (++index < length) {
data = matchData[index];
var key = data[0], objValue = object2[key], srcValue = data[1];
if (data[2]) {
if (objValue === void 0 && !(key in object2)) {
return false;
}
} else {
var stack = new Stack();
var result2;
if (!(result2 === void 0 ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG$1 | COMPARE_UNORDERED_FLAG$1, customizer, stack) : result2)) {
return false;
}
}
}
return true;
}
function isStrictComparable(value) {
return value === value && !isObject(value);
}
function getMatchData(object2) {
var result2 = keys(object2), length = result2.length;
while (length--) {
var key = result2[length], value = object2[key];
result2[length] = [key, value, isStrictComparable(value)];
}
return result2;
}
function matchesStrictComparable(key, srcValue) {
return function(object2) {
if (object2 == null) {
return false;
}
return object2[key] === srcValue && (srcValue !== void 0 || key in Object(object2));
};
}
function baseMatches(source) {
var matchData = getMatchData(source);
if (matchData.length == 1 && matchData[0][2]) {
return matchesStrictComparable(matchData[0][0], matchData[0][1]);
}
return function(object2) {
return object2 === source || baseIsMatch(object2, source, matchData);
};
}
function baseHasIn(object2, key) {
return object2 != null && key in Object(object2);
}
function hasPath(object2, path, hasFunc) {
path = castPath(path, object2);
var index = -1, length = path.length, result2 = false;
while (++index < length) {
var key = toKey(path[index]);
if (!(result2 = object2 != null && hasFunc(object2, key))) {
break;
}
object2 = object2[key];
}
if (result2 || ++index != length) {
return result2;
}
length = object2 == null ? 0 : object2.length;
return !!length && isLength(length) && isIndex(key, length) && (isArray(object2) || isArguments(object2));
}
function hasIn(object2, path) {
return object2 != null && hasPath(object2, path, baseHasIn);
}
var COMPARE_PARTIAL_FLAG = 1, COMPARE_UNORDERED_FLAG = 2;
function baseMatchesProperty(path, srcValue) {
if (isKey(path) && isStrictComparable(srcValue)) {
return matchesStrictComparable(toKey(path), srcValue);
}
return function(object2) {
var objValue = get(object2, path);
return objValue === void 0 && objValue === srcValue ? hasIn(object2, path) : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);
};
}
function baseProperty(key) {
return function(object2) {
return object2 == null ? void 0 : object2[key];
};
}
function basePropertyDeep(path) {
return function(object2) {
return baseGet(object2, path);
};
}
function property(path) {
return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);
}
function baseIteratee(value) {
if (typeof value == "function") {
return value;
}
if (value == null) {
return identity;
}
if (typeof value == "object") {
return isArray(value) ? baseMatchesProperty(value[0], value[1]) : baseMatches(value);
}
return property(value);
}
var now = function() {
return root.Date.now();
};
var FUNC_ERROR_TEXT$1 = "Expected a function";
var nativeMax = Math.max, nativeMin = Math.min;
function debounce(func, wait, options) {
var lastArgs, lastThis, maxWait, result2, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true;
if (typeof func != "function") {
throw new TypeError(FUNC_ERROR_TEXT$1);
}
wait = toNumber(wait) || 0;
if (isObject(options)) {
leading = !!options.leading;
maxing = "maxWait" in options;
maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;
trailing = "trailing" in options ? !!options.trailing : trailing;
}
function invokeFunc(time) {
var args = lastArgs, thisArg = lastThis;
lastArgs = lastThis = void 0;
lastInvokeTime = time;
result2 = func.apply(thisArg, args);
return result2;
}
function leadingEdge(time) {
lastInvokeTime = time;
timerId = setTimeout(timerExpired, wait);
return leading ? invokeFunc(time) : result2;
}
function remainingWait(time) {
var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, timeWaiting = wait - timeSinceLastCall;
return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;
}
function shouldInvoke(time) {
var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime;
return lastCallTime === void 0 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;
}
function timerExpired() {
var time = now();
if (shouldInvoke(time)) {
return trailingEdge(time);
}
timerId = setTimeout(timerExpired, remainingWait(time));
}
function trailingEdge(time) {
timerId = void 0;
if (trailing && lastArgs) {
return invokeFunc(time);
}
lastArgs = lastThis = void 0;
return result2;
}
function cancel() {
if (timerId !== void 0) {
clearTimeout(timerId);
}
lastInvokeTime = 0;
lastArgs = lastCallTime = lastThis = timerId = void 0;
}
function flush() {
return timerId === void 0 ? result2 : trailingEdge(now());
}
function debounced() {
var time = now(), isInvoking = shouldInvoke(time);
lastArgs = arguments;
lastThis = this;
lastCallTime = time;
if (isInvoking) {
if (timerId === void 0) {
return leadingEdge(lastCallTime);
}
if (maxing) {
clearTimeout(timerId);
timerId = setTimeout(timerExpired, wait);
return invokeFunc(lastCallTime);
}
}
if (timerId === void 0) {
timerId = setTimeout(timerExpired, wait);
}
return result2;
}
debounced.cancel = cancel;
debounced.flush = flush;
return debounced;
}
function findLastIndex(array, predicate, fromIndex) {
var length = array == null ? 0 : array.length;
if (!length) {
return -1;
}
var index = length - 1;
return baseFindIndex(array, baseIteratee(predicate), index);
}
function fromPairs(pairs2) {
var index = -1, length = pairs2 == null ? 0 : pairs2.length, result2 = {};
while (++index < length) {
var pair = pairs2[index];
result2[pair[0]] = pair[1];
}
return result2;
}
function isEqual(value, other) {
return baseIsEqual(value, other);
}
function isNil(value) {
return value == null;
}
function isUndefined$1(value) {
return value === void 0;
}
function baseSet(object2, path, value, customizer) {
if (!isObject(object2)) {
return object2;
}
path = castPath(path, object2);
var index = -1, length = path.length, lastIndex = length - 1, nested = object2;
while (nested != null && ++index < length) {
var key = toKey(path[index]), newValue = value;
if (key === "__proto__" || key === "constructor" || key === "prototype") {
return object2;
}
if (index != lastIndex) {
var objValue = nested[key];
newValue = void 0;
if (newValue === void 0) {
newValue = isObject(objValue) ? objValue : isIndex(path[index + 1]) ? [] : {};
}
}
assignValue(nested, key, newValue);
nested = nested[key];
}
return object2;
}
function basePickBy(object2, paths, predicate) {
var index = -1, length = paths.length, result2 = {};
while (++index < length) {
var path = paths[index], value = baseGet(object2, path);
if (predicate(value, path)) {
baseSet(result2, castPath(path, object2), value);
}
}
return result2;
}
function basePick(object2, paths) {
return basePickBy(object2, paths, function(value, path) {
return hasIn(object2, path);
});
}
var pick = flatRest(function(object2, paths) {
return object2 == null ? {} : basePick(object2, paths);
});
var FUNC_ERROR_TEXT = "Expected a function";
function throttle(func, wait, options) {
var leading = true, trailing = true;
if (typeof func != "function") {
throw new TypeError(FUNC_ERROR_TEXT);
}
if (isObject(options)) {
leading = "leading" in options ? !!options.leading : leading;
trailing = "trailing" in options ? !!options.trailing : trailing;
}
return debounce(func, wait, {
"leading": leading,
"maxWait": wait,
"trailing": trailing
});
}
const isUndefined = (val) => val === void 0;
const isBoolean = (val) => typeof val === "boolean";
const isNumber = (val) => typeof val === "number";
const isElement = (e) => {
if (typeof Element === "undefined")
return false;
return e instanceof Element;
};
const isPropAbsent = (prop) => {
return isNil(prop);
};
const isStringNumber = (val) => {
if (!isString(val)) {
return false;
}
return !Number.isNaN(Number(val));
};
const escapeStringRegexp = (string = "") => string.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d");
const capitalize = (str) => capitalize$1(str);
const keysOf = (arr) => Object.keys(arr);
const entriesOf = (arr) => Object.entries(arr);
class ElementPlusError extends Error {
constructor(m) {
super(m);
this.name = "ElementPlusError";
}
}
function throwError(scope, m) {
throw new ElementPlusError(`[${scope}] ${m}`);
}
function debugWarn(scope, message) {
}
const classNameToArray = (cls = "") => cls.split(" ").filter((item) => !!item.trim());
const hasClass = (el, cls) => {
if (!el || !cls)
return false;
if (cls.includes(" "))
throw new Error("className should not contain space.");
return el.classList.contains(cls);
};
const addClass = (el, cls) => {
if (!el || !cls.trim())
return;
el.classList.add(...classNameToArray(cls));
};
const removeClass = (el, cls) => {
if (!el || !cls.trim())
return;
el.classList.remove(...classNameToArray(cls));
};
const getStyle = (element, styleName) => {
var _a2;
if (!isClient || !element || !styleName)
return "";
let key = camelize(styleName);
if (key === "float")
key = "cssFloat";
try {
const style = element.style[key];
if (style)
return style;
const computed2 = (_a2 = document.defaultView) == null ? void 0 : _a2.getComputedStyle(element, "");
return computed2 ? computed2[key] : "";
} catch (e) {
return element.style[key];
}
};
function addUnit(value, defaultUnit = "px") {
if (!value)
return "";
if (isNumber(value) || isStringNumber(value)) {
return `${value}${defaultUnit}`;
} else if (isString(value)) {
return value;
}
}
const isScroll = (el, isVertical) => {
if (!isClient)
return false;
const key = {
undefined: "overflow",
true: "overflow-y",
false: "overflow-x"
}[String(isVertical)];
const overflow = getStyle(el, key);
return ["scroll", "auto", "overlay"].some((s) => overflow.includes(s));
};
const getScrollContainer = (el, isVertical) => {
if (!isClient)
return;
let parent = el;
while (parent) {
if ([window, document, document.documentElement].includes(parent))
return window;
if (isScroll(parent, isVertical))
return parent;
parent = parent.parentNode;
}
return parent;
};
let scrollBarWidth;
const getScrollBarWidth = (namespace) => {
var _a2;
if (!isClient)
return 0;
if (scrollBarWidth !== void 0)
return scrollBarWidth;
const outer = document.createElement("div");
outer.className = `${namespace}-scrollbar__wrap`;
outer.style.visibility = "hidden";
outer.style.width = "100px";
outer.style.position = "absolute";
outer.style.top = "-9999px";
document.body.appendChild(outer);
const widthNoScroll = outer.offsetWidth;
outer.style.overflow = "scroll";
const inner = document.createElement("div");
inner.style.width = "100%";
outer.appendChild(inner);
const widthWithScroll = inner.offsetWidth;
(_a2 = outer.parentNode) == null ? void 0 : _a2.removeChild(outer);
scrollBarWidth = widthNoScroll - widthWithScroll;
return scrollBarWidth;
};
function scrollIntoView(container, selected) {
if (!isClient)
return;
if (!selected) {
container.scrollTop = 0;
return;
}
const offsetParents = [];
let pointer = selected.offsetParent;
while (pointer !== null && container !== pointer && container.contains(pointer)) {
offsetParents.push(pointer);
pointer = pointer.offsetParent;
}
const top = selected.offsetTop + offsetParents.reduce((prev, curr) => prev + curr.offsetTop, 0);
const bottom = top + selected.offsetHeight;
const viewRectTop = container.scrollTop;
const viewRectBottom = viewRectTop + container.clientHeight;
if (top < viewRectTop) {
container.scrollTop = top;
} else if (bottom > viewRectBottom) {
container.scrollTop = bottom - container.clientHeight;
}
}
/*! Element Plus Icons Vue v2.3.1 */
var arrow_down_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "ArrowDown",
__name: "arrow-down",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "M831.872 340.864 512 652.672 192.128 340.864a30.592 30.592 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.592 30.592 0 0 0-42.752 0z"
})
]));
}
});
var arrow_down_default = arrow_down_vue_vue_type_script_setup_true_lang_default;
var arrow_left_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "ArrowLeft",
__name: "arrow-left",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "M609.408 149.376 277.76 489.6a32 32 0 0 0 0 44.672l331.648 340.352a29.12 29.12 0 0 0 41.728 0 30.592 30.592 0 0 0 0-42.752L339.264 511.936l311.872-319.872a30.592 30.592 0 0 0 0-42.688 29.12 29.12 0 0 0-41.728 0z"
})
]));
}
});
var arrow_left_default = arrow_left_vue_vue_type_script_setup_true_lang_default;
var arrow_right_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "ArrowRight",
__name: "arrow-right",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "M340.864 149.312a30.592 30.592 0 0 0 0 42.752L652.736 512 340.864 831.872a30.592 30.592 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z"
})
]));
}
});
var arrow_right_default = arrow_right_vue_vue_type_script_setup_true_lang_default;
var arrow_up_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "ArrowUp",
__name: "arrow-up",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "m488.832 344.32-339.84 356.672a32 32 0 0 0 0 44.16l.384.384a29.44 29.44 0 0 0 42.688 0l320-335.872 319.872 335.872a29.44 29.44 0 0 0 42.688 0l.384-.384a32 32 0 0 0 0-44.16L535.168 344.32a32 32 0 0 0-46.336 0"
})
]));
}
});
var arrow_up_default = arrow_up_vue_vue_type_script_setup_true_lang_default;
var check_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "Check",
__name: "check",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "M406.656 706.944 195.84 496.256a32 32 0 1 0-45.248 45.248l256 256 512-512a32 32 0 0 0-45.248-45.248L406.592 706.944z"
})
]));
}
});
var check_default = check_vue_vue_type_script_setup_true_lang_default;
var circle_check_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "CircleCheck",
__name: "circle-check",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"
}),
vue.createElementVNode("path", {
fill: "currentColor",
d: "M745.344 361.344a32 32 0 0 1 45.312 45.312l-288 288a32 32 0 0 1-45.312 0l-160-160a32 32 0 1 1 45.312-45.312L480 626.752l265.344-265.408z"
})
]));
}
});
var circle_check_default = circle_check_vue_vue_type_script_setup_true_lang_default;
var circle_close_filled_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "CircleCloseFilled",
__name: "circle-close-filled",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336z"
})
]));
}
});
var circle_close_filled_default = circle_close_filled_vue_vue_type_script_setup_true_lang_default;
var circle_close_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "CircleClose",
__name: "circle-close",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "m466.752 512-90.496-90.496a32 32 0 0 1 45.248-45.248L512 466.752l90.496-90.496a32 32 0 1 1 45.248 45.248L557.248 512l90.496 90.496a32 32 0 1 1-45.248 45.248L512 557.248l-90.496 90.496a32 32 0 0 1-45.248-45.248z"
}),
vue.createElementVNode("path", {
fill: "currentColor",
d: "M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"
})
]));
}
});
var circle_close_default = circle_close_vue_vue_type_script_setup_true_lang_default;
var close_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "Close",
__name: "close",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"
})
]));
}
});
var close_default = close_vue_vue_type_script_setup_true_lang_default;
var delete_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "Delete",
__name: "delete",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "M160 256H96a32 32 0 0 1 0-64h256V95.936a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32V192h256a32 32 0 1 1 0 64h-64v672a32 32 0 0 1-32 32H192a32 32 0 0 1-32-32zm448-64v-64H416v64zM224 896h576V256H224zm192-128a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32m192 0a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32"
})
]));
}
});
var delete_default = delete_vue_vue_type_script_setup_true_lang_default;
var document_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "Document",
__name: "document",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "M832 384H576V128H192v768h640zm-26.496-64L640 154.496V320zM160 64h480l256 256v608a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32m160 448h384v64H320zm0-192h160v64H320zm0 384h384v64H320z"
})
]));
}
});
var document_default = document_vue_vue_type_script_setup_true_lang_default;
var full_screen_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "FullScreen",
__name: "full-screen",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "m160 96.064 192 .192a32 32 0 0 1 0 64l-192-.192V352a32 32 0 0 1-64 0V96h64zm0 831.872V928H96V672a32 32 0 1 1 64 0v191.936l192-.192a32 32 0 1 1 0 64zM864 96.064V96h64v256a32 32 0 1 1-64 0V160.064l-192 .192a32 32 0 1 1 0-64l192-.192zm0 831.872-192-.192a32 32 0 0 1 0-64l192 .192V672a32 32 0 1 1 64 0v256h-64z"
})
]));
}
});
var full_screen_default = full_screen_vue_vue_type_script_setup_true_lang_default;
var hide_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "Hide",
__name: "hide",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "M876.8 156.8c0-9.6-3.2-16-9.6-22.4-6.4-6.4-12.8-9.6-22.4-9.6-9.6 0-16 3.2-22.4 9.6L736 220.8c-64-32-137.6-51.2-224-60.8-160 16-288 73.6-377.6 176C44.8 438.4 0 496 0 512s48 73.6 134.4 176c22.4 25.6 44.8 48 73.6 67.2l-86.4 89.6c-6.4 6.4-9.6 12.8-9.6 22.4 0 9.6 3.2 16 9.6 22.4 6.4 6.4 12.8 9.6 22.4 9.6 9.6 0 16-3.2 22.4-9.6l704-710.4c3.2-6.4 6.4-12.8 6.4-22.4Zm-646.4 528c-76.8-70.4-128-128-153.6-172.8 28.8-48 80-105.6 153.6-172.8C304 272 400 230.4 512 224c64 3.2 124.8 19.2 176 44.8l-54.4 54.4C598.4 300.8 560 288 512 288c-64 0-115.2 22.4-160 64s-64 96-64 160c0 48 12.8 89.6 35.2 124.8L256 707.2c-9.6-6.4-19.2-16-25.6-22.4Zm140.8-96c-12.8-22.4-19.2-48-19.2-76.8 0-44.8 16-83.2 48-112 32-28.8 67.2-48 112-48 28.8 0 54.4 6.4 73.6 19.2zM889.599 336c-12.8-16-28.8-28.8-41.6-41.6l-48 48c73.6 67.2 124.8 124.8 150.4 169.6-28.8 48-80 105.6-153.6 172.8-73.6 67.2-172.8 108.8-284.8 115.2-51.2-3.2-99.2-12.8-140.8-28.8l-48 48c57.6 22.4 118.4 38.4 188.8 44.8 160-16 288-73.6 377.6-176C979.199 585.6 1024 528 1024 512s-48.001-73.6-134.401-176Z"
}),
vue.createElementVNode("path", {
fill: "currentColor",
d: "M511.998 672c-12.8 0-25.6-3.2-38.4-6.4l-51.2 51.2c28.8 12.8 57.6 19.2 89.6 19.2 64 0 115.2-22.4 160-64 41.6-41.6 64-96 64-160 0-32-6.4-64-19.2-89.6l-51.2 51.2c3.2 12.8 6.4 25.6 6.4 38.4 0 44.8-16 83.2-48 112-32 28.8-67.2 48-112 48Z"
})
]));
}
});
var hide_default = hide_vue_vue_type_script_setup_true_lang_default;
var info_filled_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "InfoFilled",
__name: "info-filled",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64m67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344M590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.992 12.992 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z"
})
]));
}
});
var info_filled_default = info_filled_vue_vue_type_script_setup_true_lang_default;
var loading_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "Loading",
__name: "loading",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32m0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32m448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32m-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32M195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248zm452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248zM828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0m-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0z"
})
]));
}
});
var loading_default = loading_vue_vue_type_script_setup_true_lang_default;
var minus_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "Minus",
__name: "minus",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "M128 544h768a32 32 0 1 0 0-64H128a32 32 0 0 0 0 64"
})
]));
}
});
var minus_default = minus_vue_vue_type_script_setup_true_lang_default;
var plus_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "Plus",
__name: "plus",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "M480 480V128a32 32 0 0 1 64 0v352h352a32 32 0 1 1 0 64H544v352a32 32 0 1 1-64 0V544H128a32 32 0 0 1 0-64z"
})
]));
}
});
var plus_default = plus_vue_vue_type_script_setup_true_lang_default;
var refresh_left_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "RefreshLeft",
__name: "refresh-left",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "M289.088 296.704h92.992a32 32 0 0 1 0 64H232.96a32 32 0 0 1-32-32V179.712a32 32 0 0 1 64 0v50.56a384 384 0 0 1 643.84 282.88 384 384 0 0 1-383.936 384 384 384 0 0 1-384-384h64a320 320 0 1 0 640 0 320 320 0 0 0-555.712-216.448z"
})
]));
}
});
var refresh_left_default = refresh_left_vue_vue_type_script_setup_true_lang_default;
var refresh_right_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "RefreshRight",
__name: "refresh-right",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "M784.512 230.272v-50.56a32 32 0 1 1 64 0v149.056a32 32 0 0 1-32 32H667.52a32 32 0 1 1 0-64h92.992A320 320 0 1 0 524.8 833.152a320 320 0 0 0 320-320h64a384 384 0 0 1-384 384 384 384 0 0 1-384-384 384 384 0 0 1 643.712-282.88z"
})
]));
}
});
var refresh_right_default = refresh_right_vue_vue_type_script_setup_true_lang_default;
var scale_to_original_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "ScaleToOriginal",
__name: "scale-to-original",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "M813.176 180.706a60.235 60.235 0 0 1 60.236 60.235v481.883a60.235 60.235 0 0 1-60.236 60.235H210.824a60.235 60.235 0 0 1-60.236-60.235V240.94a60.235 60.235 0 0 1 60.236-60.235h602.352zm0-60.235H210.824A120.47 120.47 0 0 0 90.353 240.94v481.883a120.47 120.47 0 0 0 120.47 120.47h602.353a120.47 120.47 0 0 0 120.471-120.47V240.94a120.47 120.47 0 0 0-120.47-120.47zm-120.47 180.705a30.118 30.118 0 0 0-30.118 30.118v301.177a30.118 30.118 0 0 0 60.236 0V331.294a30.118 30.118 0 0 0-30.118-30.118zm-361.412 0a30.118 30.118 0 0 0-30.118 30.118v301.177a30.118 30.118 0 1 0 60.236 0V331.294a30.118 30.118 0 0 0-30.118-30.118M512 361.412a30.118 30.118 0 0 0-30.118 30.117v30.118a30.118 30.118 0 0 0 60.236 0V391.53A30.118 30.118 0 0 0 512 361.412M512 512a30.118 30.118 0 0 0-30.118 30.118v30.117a30.118 30.118 0 0 0 60.236 0v-30.117A30.118 30.118 0 0 0 512 512"
})
]));
}
});
var scale_to_original_default = scale_to_original_vue_vue_type_script_setup_true_lang_default;
var success_filled_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "SuccessFilled",
__name: "success-filled",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.272 38.272 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336z"
})
]));
}
});
var success_filled_default = success_filled_vue_vue_type_script_setup_true_lang_default;
var view_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "View",
__name: "view",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "M512 160c320 0 512 352 512 352S832 864 512 864 0 512 0 512s192-352 512-352m0 64c-225.28 0-384.128 208.064-436.8 288 52.608 79.872 211.456 288 436.8 288 225.28 0 384.128-208.064 436.8-288-52.608-79.872-211.456-288-436.8-288zm0 64a224 224 0 1 1 0 448 224 224 0 0 1 0-448m0 64a160.192 160.192 0 0 0-160 160c0 88.192 71.744 160 160 160s160-71.808 160-160-71.744-160-160-160"
})
]));
}
});
var view_default = view_vue_vue_type_script_setup_true_lang_default;
var warning_filled_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "WarningFilled",
__name: "warning-filled",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 192a58.432 58.432 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.432 58.432 0 0 0 512 256m0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4"
})
]));
}
});
var warning_filled_default = warning_filled_vue_vue_type_script_setup_true_lang_default;
var zoom_in_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "ZoomIn",
__name: "zoom-in",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704m-32-384v-96a32 32 0 0 1 64 0v96h96a32 32 0 0 1 0 64h-96v96a32 32 0 0 1-64 0v-96h-96a32 32 0 0 1 0-64z"
})
]));
}
});
var zoom_in_default = zoom_in_vue_vue_type_script_setup_true_lang_default;
var zoom_out_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "ZoomOut",
__name: "zoom-out",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704M352 448h256a32 32 0 0 1 0 64H352a32 32 0 0 1 0-64"
})
]));
}
});
var zoom_out_default = zoom_out_vue_vue_type_script_setup_true_lang_default;
const epPropKey = "__epPropKey";
const definePropType = (val) => val;
const isEpProp = (val) => isObject$1(val) && !!val[epPropKey];
const buildProp = (prop, key) => {
if (!isObject$1(prop) || isEpProp(prop))
return prop;
const { values: values2, required, default: defaultValue, type, validator } = prop;
const _validator = values2 || validator ? (val) => {
let valid = false;
let allowedValues = [];
if (values2) {
allowedValues = Array.from(values2);
if (hasOwn(prop, "default")) {
allowedValues.push(defaultValue);
}
valid || (valid = allowedValues.includes(val));
}
if (validator)
valid || (valid = validator(val));
if (!valid && allowedValues.length > 0) {
const allowValuesText = [...new Set(allowedValues)].map((value) => JSON.stringify(value)).join(", ");
vue.warn(`Invalid prop: validation failed${key ? ` for prop "${key}"` : ""}. Expected one of [${allowValuesText}], got value ${JSON.stringify(val)}.`);
}
return valid;
} : void 0;
const epProp = {
type,
required: !!required,
validator: _validator,
[epPropKey]: true
};
if (hasOwn(prop, "default"))
epProp.default = defaultValue;
return epProp;
};
const buildProps = (props) => fromPairs(Object.entries(props).map(([key, option]) => [
key,
buildProp(option, key)
]));
const iconPropType = definePropType([
String,
Object,
Function
]);
const CloseComponents = {
Close: close_default
};
const TypeComponents = {
Close: close_default,
SuccessFilled: success_filled_default,
InfoFilled: info_filled_default,
WarningFilled: warning_filled_default,
CircleCloseFilled: circle_close_filled_default
};
const TypeComponentsMap = {
success: success_filled_default,
warning: warning_filled_default,
error: circle_close_filled_default,
info: info_filled_default
};
const ValidateComponentsMap = {
validating: loading_default,
success: circle_check_default,
error: circle_close_default
};
const withInstall = (main, extra) => {
main.install = (app2) => {
for (const comp of [main, ...Object.values(extra != null ? extra : {})]) {
app2.component(comp.name, comp);
}
};
if (extra) {
for (const [key, comp] of Object.entries(extra)) {
main[key] = comp;
}
}
return main;
};
const withInstallFunction = (fn2, name) => {
fn2.install = (app2) => {
fn2._context = app2._context;
app2.config.globalProperties[name] = fn2;
};
return fn2;
};
const withNoopInstall = (component) => {
component.install = NOOP;
return component;
};
const composeRefs = (...refs) => {
return (el) => {
refs.forEach((ref2) => {
if (isFunction$1(ref2)) {
ref2(el);
} else {
ref2.value = el;
}
});
};
};
const EVENT_CODE = {
tab: "Tab",
enter: "Enter",
space: "Space",
left: "ArrowLeft",
up: "ArrowUp",
right: "ArrowRight",
down: "ArrowDown",
esc: "Escape",
delete: "Delete",
backspace: "Backspace",
numpadEnter: "NumpadEnter",
pageUp: "PageUp",
pageDown: "PageDown",
home: "Home",
end: "End"
};
const UPDATE_MODEL_EVENT = "update:modelValue";
const CHANGE_EVENT = "change";
const INPUT_EVENT = "input";
const componentSizes = ["", "default", "small", "large"];
const isValidComponentSize = (val) => ["", ...componentSizes].includes(val);
var PatchFlags = /* @__PURE__ */ ((PatchFlags2) => {
PatchFlags2[PatchFlags2["TEXT"] = 1] = "TEXT";
PatchFlags2[PatchFlags2["CLASS"] = 2] = "CLASS";
PatchFlags2[PatchFlags2["STYLE"] = 4] = "STYLE";
PatchFlags2[PatchFlags2["PROPS"] = 8] = "PROPS";
PatchFlags2[PatchFlags2["FULL_PROPS"] = 16] = "FULL_PROPS";
PatchFlags2[PatchFlags2["HYDRATE_EVENTS"] = 32] = "HYDRATE_EVENTS";
PatchFlags2[PatchFlags2["STABLE_FRAGMENT"] = 64] = "STABLE_FRAGMENT";
PatchFlags2[PatchFlags2["KEYED_FRAGMENT"] = 128] = "KEYED_FRAGMENT";
PatchFlags2[PatchFlags2["UNKEYED_FRAGMENT"] = 256] = "UNKEYED_FRAGMENT";
PatchFlags2[PatchFlags2["NEED_PATCH"] = 512] = "NEED_PATCH";
PatchFlags2[PatchFlags2["DYNAMIC_SLOTS"] = 1024] = "DYNAMIC_SLOTS";
PatchFlags2[PatchFlags2["HOISTED"] = -1] = "HOISTED";
PatchFlags2[PatchFlags2["BAIL"] = -2] = "BAIL";
return PatchFlags2;
})(PatchFlags || {});
const flattedChildren = (children) => {
const vNodes = isArray$1(children) ? children : [children];
const result2 = [];
vNodes.forEach((child) => {
var _a2;
if (isArray$1(child)) {
result2.push(...flattedChildren(child));
} else if (vue.isVNode(child) && isArray$1(child.children)) {
result2.push(...flattedChildren(child.children));
} else {
result2.push(child);
if (vue.isVNode(child) && ((_a2 = child.component) == null ? void 0 : _a2.subTree)) {
result2.push(...flattedChildren(child.component.subTree));
}
}
});
return result2;
};
const isKorean = (text) => /([\uAC00-\uD7AF\u3130-\u318F])+/gi.test(text);
const mutable = (val) => val;
const DEFAULT_EXCLUDE_KEYS = ["class", "style"];
const LISTENER_PREFIX = /^on[A-Z]/;
const useAttrs = (params = {}) => {
const { excludeListeners = false, excludeKeys } = params;
const allExcludeKeys = vue.computed(() => {
return ((excludeKeys == null ? void 0 : excludeKeys.value) || []).concat(DEFAULT_EXCLUDE_KEYS);
});
const instance = vue.getCurrentInstance();
if (!instance) {
return vue.computed(() => ({}));
}
return vue.computed(() => {
var _a2;
return fromPairs(Object.entries((_a2 = instance.proxy) == null ? void 0 : _a2.$attrs).filter(([key]) => !allExcludeKeys.value.includes(key) && !(excludeListeners && LISTENER_PREFIX.test(key))));
});
};
const useDeprecated = ({ from, replacement, scope, version, ref: ref2, type = "API" }, condition) => {
vue.watch(() => vue.unref(condition), (val) => {
}, {
immediate: true
});
};
const useDraggable = (targetRef, dragRef, draggable2, overflow) => {
let transform = {
offsetX: 0,
offsetY: 0
};
const onMousedown = (e) => {
const downX = e.clientX;
const downY = e.clientY;
const { offsetX, offsetY } = transform;
const targetRect = targetRef.value.getBoundingClientRect();
const targetLeft = targetRect.left;
const targetTop = targetRect.top;
const targetWidth = targetRect.width;
const targetHeight = targetRect.height;
const clientWidth = document.documentElement.clientWidth;
const clientHeight = document.documentElement.clientHeight;
const minLeft = -targetLeft + offsetX;
const minTop = -targetTop + offsetY;
const maxLeft = clientWidth - targetLeft - targetWidth + offsetX;
const maxTop = clientHeight - targetTop - targetHeight + offsetY;
const onMousemove = (e2) => {
let moveX = offsetX + e2.clientX - downX;
let moveY = offsetY + e2.clientY - downY;
if (!(overflow == null ? void 0 : overflow.value)) {
moveX = Math.min(Math.max(moveX, minLeft), maxLeft);
moveY = Math.min(Math.max(moveY, minTop), maxTop);
}
transform = {
offsetX: moveX,
offsetY: moveY
};
if (targetRef.value) {
targetRef.value.style.transform = `translate(${addUnit(moveX)}, ${addUnit(moveY)})`;
}
};
const onMouseup = () => {
document.removeEventListener("mousemove", onMousemove);
document.removeEventListener("mouseup", onMouseup);
};
document.addEventListener("mousemove", onMousemove);
document.addEventListener("mouseup", onMouseup);
};
const onDraggable = () => {
if (dragRef.value && targetRef.value) {
dragRef.value.addEventListener("mousedown", onMousedown);
}
};
const offDraggable = () => {
if (dragRef.value && targetRef.value) {
dragRef.value.removeEventListener("mousedown", onMousedown);
}
};
const resetPosition = () => {
transform = {
offsetX: 0,
offsetY: 0
};
if (targetRef.value) {
targetRef.value.style.transform = "none";
}
};
vue.onMounted(() => {
vue.watchEffect(() => {
if (draggable2.value) {
onDraggable();
} else {
offDraggable();
}
});
});
vue.onBeforeUnmount(() => {
offDraggable();
});
return {
resetPosition
};
};
var English = {
name: "en",
el: {
breadcrumb: {
label: "Breadcrumb"
},
colorpicker: {
confirm: "OK",
clear: "Clear",
defaultLabel: "color picker",
description: "current color is {color}. press enter to select a new color.",
alphaLabel: "pick alpha value"
},
datepicker: {
now: "Now",
today: "Today",
cancel: "Cancel",
clear: "Clear",
confirm: "OK",
dateTablePrompt: "Use the arrow keys and enter to select the day of the month",
monthTablePrompt: "Use the arrow keys and enter to select the month",
yearTablePrompt: "Use the arrow keys and enter to select the year",
selectedDate: "Selected date",
selectDate: "Select date",
selectTime: "Select time",
startDate: "Start Date",
startTime: "Start Time",
endDate: "End Date",
endTime: "End Time",
prevYear: "Previous Year",
nextYear: "Next Year",
prevMonth: "Previous Month",
nextMonth: "Next Month",
year: "",
month1: "January",
month2: "February",
month3: "March",
month4: "April",
month5: "May",
month6: "June",
month7: "July",
month8: "August",
month9: "September",
month10: "October",
month11: "November",
month12: "December",
week: "week",
weeks: {
sun: "Sun",
mon: "Mon",
tue: "Tue",
wed: "Wed",
thu: "Thu",
fri: "Fri",
sat: "Sat"
},
weeksFull: {
sun: "Sunday",
mon: "Monday",
tue: "Tuesday",
wed: "Wednesday",
thu: "Thursday",
fri: "Friday",
sat: "Saturday"
},
months: {
jan: "Jan",
feb: "Feb",
mar: "Mar",
apr: "Apr",
may: "May",
jun: "Jun",
jul: "Jul",
aug: "Aug",
sep: "Sep",
oct: "Oct",
nov: "Nov",
dec: "Dec"
}
},
inputNumber: {
decrease: "decrease number",
increase: "increase number"
},
select: {
loading: "Loading",
noMatch: "No matching data",
noData: "No data",
placeholder: "Select"
},
mention: {
loading: "Loading"
},
dropdown: {
toggleDropdown: "Toggle Dropdown"
},
cascader: {
noMatch: "No matching data",
loading: "Loading",
placeholder: "Select",
noData: "No data"
},
pagination: {
goto: "Go to",
pagesize: "/page",
total: "Total {total}",
pageClassifier: "",
page: "Page",
prev: "Go to previous page",
next: "Go to next page",
currentPage: "page {pager}",
prevPages: "Previous {pager} pages",
nextPages: "Next {pager} pages",
deprecationWarning: "Deprecated usages detected, please refer to the el-pagination documentation for more details"
},
dialog: {
close: "Close this dialog"
},
drawer: {
close: "Close this dialog"
},
messagebox: {
title: "Message",
confirm: "OK",
cancel: "Cancel",
error: "Illegal input",
close: "Close this dialog"
},
upload: {
deleteTip: "press delete to remove",
delete: "Delete",
preview: "Preview",
continue: "Continue"
},
slider: {
defaultLabel: "slider between {min} and {max}",
defaultRangeStartLabel: "pick start value",
defaultRangeEndLabel: "pick end value"
},
table: {
emptyText: "No Data",
confirmFilter: "Confirm",
resetFilter: "Reset",
clearFilter: "All",
sumText: "Sum"
},
tour: {
next: "Next",
previous: "Previous",
finish: "Finish"
},
tree: {
emptyText: "No Data"
},
transfer: {
noMatch: "No matching data",
noData: "No data",
titles: ["List 1", "List 2"],
filterPlaceholder: "Enter keyword",
noCheckedFormat: "{total} items",
hasCheckedFormat: "{checked}/{total} checked"
},
image: {
error: "FAILED"
},
pageHeader: {
title: "Back"
},
popconfirm: {
confirmButtonText: "Yes",
cancelButtonText: "No"
},
carousel: {
leftArrow: "Carousel arrow left",
rightArrow: "Carousel arrow right",
indicator: "Carousel switch to index {index}"
}
}
};
const buildTranslator = (locale) => (path, option) => translate(path, option, vue.unref(locale));
const translate = (path, option, locale) => get(locale, path, path).replace(/\{(\w+)\}/g, (_2, key) => {
var _a2;
return `${(_a2 = option == null ? void 0 : option[key]) != null ? _a2 : `{${key}}`}`;
});
const buildLocaleContext = (locale) => {
const lang = vue.computed(() => vue.unref(locale).name);
const localeRef = vue.isRef(locale) ? locale : vue.ref(locale);
return {
lang,
locale: localeRef,
t: buildTranslator(locale)
};
};
const localeContextKey = Symbol("localeContextKey");
const useLocale = (localeOverrides) => {
const locale = localeOverrides || vue.inject(localeContextKey, vue.ref());
return buildLocaleContext(vue.computed(() => locale.value || English));
};
const defaultNamespace = "el";
const statePrefix = "is-";
const _bem = (namespace, block, blockSuffix, element, modifier) => {
let cls = `${namespace}-${block}`;
if (blockSuffix) {
cls += `-${blockSuffix}`;
}
if (element) {
cls += `__${element}`;
}
if (modifier) {
cls += `--${modifier}`;
}
return cls;
};
const namespaceContextKey = Symbol("namespaceContextKey");
const useGetDerivedNamespace = (namespaceOverrides) => {
const derivedNamespace = namespaceOverrides || (vue.getCurrentInstance() ? vue.inject(namespaceContextKey, vue.ref(defaultNamespace)) : vue.ref(defaultNamespace));
const namespace = vue.computed(() => {
return vue.unref(derivedNamespace) || defaultNamespace;
});
return namespace;
};
const useNamespace = (block, namespaceOverrides) => {
const namespace = useGetDerivedNamespace(namespaceOverrides);
const b = (blockSuffix = "") => _bem(namespace.value, block, blockSuffix, "", "");
const e = (element) => element ? _bem(namespace.value, block, "", element, "") : "";
const m = (modifier) => modifier ? _bem(namespace.value, block, "", "", modifier) : "";
const be2 = (blockSuffix, element) => blockSuffix && element ? _bem(namespace.value, block, blockSuffix, element, "") : "";
const em = (element, modifier) => element && modifier ? _bem(namespace.value, block, "", element, modifier) : "";
const bm = (blockSuffix, modifier) => blockSuffix && modifier ? _bem(namespace.value, block, blockSuffix, "", modifier) : "";
const bem = (blockSuffix, element, modifier) => blockSuffix && element && modifier ? _bem(namespace.value, block, blockSuffix, element, modifier) : "";
const is = (name, ...args) => {
const state = args.length >= 1 ? args[0] : true;
return name && state ? `${statePrefix}${name}` : "";
};
const cssVar = (object2) => {
const styles = {};
for (const key in object2) {
if (object2[key]) {
styles[`--${namespace.value}-${key}`] = object2[key];
}
}
return styles;
};
const cssVarBlock = (object2) => {
const styles = {};
for (const key in object2) {
if (object2[key]) {
styles[`--${namespace.value}-${block}-${key}`] = object2[key];
}
}
return styles;
};
const cssVarName = (name) => `--${namespace.value}-${name}`;
const cssVarBlockName = (name) => `--${namespace.value}-${block}-${name}`;
return {
namespace,
b,
e,
m,
be: be2,
em,
bm,
bem,
is,
cssVar,
cssVarName,
cssVarBlock,
cssVarBlockName
};
};
const useLockscreen = (trigger, options = {}) => {
if (!vue.isRef(trigger)) {
throwError("[useLockscreen]", "You need to pass a ref param to this function");
}
const ns = options.ns || useNamespace("popup");
const hiddenCls = vue.computed(() => ns.bm("parent", "hidden"));
if (!isClient || hasClass(document.body, hiddenCls.value)) {
return;
}
let scrollBarWidth2 = 0;
let withoutHiddenClass = false;
let bodyWidth = "0";
const cleanup = () => {
setTimeout(() => {
if (typeof document === "undefined")
return;
removeClass(document == null ? void 0 : document.body, hiddenCls.value);
if (withoutHiddenClass && document) {
document.body.style.width = bodyWidth;
}
}, 200);
};
vue.watch(trigger, (val) => {
if (!val) {
cleanup();
return;
}
withoutHiddenClass = !hasClass(document.body, hiddenCls.value);
if (withoutHiddenClass) {
bodyWidth = document.body.style.width;
}
scrollBarWidth2 = getScrollBarWidth(ns.namespace.value);
const bodyHasOverflow = document.documentElement.clientHeight < document.body.scrollHeight;
const bodyOverflowY = getStyle(document.body, "overflowY");
if (scrollBarWidth2 > 0 && (bodyHasOverflow || bodyOverflowY === "scroll") && withoutHiddenClass) {
document.body.style.width = `calc(100% - ${scrollBarWidth2}px)`;
}
addClass(document.body, hiddenCls.value);
});
vue.onScopeDispose(() => cleanup());
};
const _prop = buildProp({
type: definePropType(Boolean),
default: null
});
const _event = buildProp({
type: definePropType(Function)
});
const createModelToggleComposable = (name) => {
const updateEventKey = `update:${name}`;
const updateEventKeyRaw = `onUpdate:${name}`;
const useModelToggleEmits2 = [updateEventKey];
const useModelToggleProps2 = {
[name]: _prop,
[updateEventKeyRaw]: _event
};
const useModelToggle2 = ({
indicator,
toggleReason,
shouldHideWhenRouteChanges,
shouldProceed,
onShow,
onHide
}) => {
const instance = vue.getCurrentInstance();
const { emit } = instance;
const props = instance.props;
const hasUpdateHandler = vue.computed(() => isFunction$1(props[updateEventKeyRaw]));
const isModelBindingAbsent = vue.computed(() => props[name] === null);
const doShow = (event) => {
if (indicator.value === true) {
return;
}
indicator.value = true;
if (toggleReason) {
toggleReason.value = event;
}
if (isFunction$1(onShow)) {
onShow(event);
}
};
const doHide = (event) => {
if (indicator.value === false) {
return;
}
indicator.value = false;
if (toggleReason) {
toggleReason.value = event;
}
if (isFunction$1(onHide)) {
onHide(event);
}
};
const show = (event) => {
if (props.disabled === true || isFunction$1(shouldProceed) && !shouldProceed())
return;
const shouldEmit = hasUpdateHandler.value && isClient;
if (shouldEmit) {
emit(updateEventKey, true);
}
if (isModelBindingAbsent.value || !shouldEmit) {
doShow(event);
}
};
const hide = (event) => {
if (props.disabled === true || !isClient)
return;
const shouldEmit = hasUpdateHandler.value && isClient;
if (shouldEmit) {
emit(updateEventKey, false);
}
if (isModelBindingAbsent.value || !shouldEmit) {
doHide(event);
}
};
const onChange = (val) => {
if (!isBoolean(val))
return;
if (props.disabled && val) {
if (hasUpdateHandler.value) {
emit(updateEventKey, false);
}
} else if (indicator.value !== val) {
if (val) {
doShow();
} else {
doHide();
}
}
};
const toggle = () => {
if (indicator.value) {
hide();
} else {
show();
}
};
vue.watch(() => props[name], onChange);
if (shouldHideWhenRouteChanges && instance.appContext.config.globalProperties.$route !== void 0) {
vue.watch(() => ({
...instance.proxy.$route
}), () => {
if (shouldHideWhenRouteChanges.value && indicator.value) {
hide();
}
});
}
vue.onMounted(() => {
onChange(props[name]);
});
return {
hide,
show,
toggle,
hasUpdateHandler
};
};
return {
useModelToggle: useModelToggle2,
useModelToggleProps: useModelToggleProps2,
useModelToggleEmits: useModelToggleEmits2
};
};
const useProp = (name) => {
const vm = vue.getCurrentInstance();
return vue.computed(() => {
var _a2, _b;
return (_b = (_a2 = vm == null ? void 0 : vm.proxy) == null ? void 0 : _a2.$props) == null ? void 0 : _b[name];
});
};
var E = "top", R = "bottom", W = "right", P = "left", me = "auto", G = [E, R, W, P], U = "start", J = "end", Xe = "clippingParents", je = "viewport", K = "popper", Ye = "reference", De = G.reduce(function(t, e) {
return t.concat([e + "-" + U, e + "-" + J]);
}, []), Ee = [].concat(G, [me]).reduce(function(t, e) {
return t.concat([e, e + "-" + U, e + "-" + J]);
}, []), Ge = "beforeRead", Je = "read", Ke = "afterRead", Qe = "beforeMain", Ze = "main", et = "afterMain", tt = "beforeWrite", nt = "write", rt = "afterWrite", ot = [Ge, Je, Ke, Qe, Ze, et, tt, nt, rt];
function C(t) {
return t ? (t.nodeName || "").toLowerCase() : null;
}
function H(t) {
if (t == null) return window;
if (t.toString() !== "[object Window]") {
var e = t.ownerDocument;
return e && e.defaultView || window;
}
return t;
}
function Q(t) {
var e = H(t).Element;
return t instanceof e || t instanceof Element;
}
function B(t) {
var e = H(t).HTMLElement;
return t instanceof e || t instanceof HTMLElement;
}
function Pe(t) {
if (typeof ShadowRoot == "undefined") return false;
var e = H(t).ShadowRoot;
return t instanceof e || t instanceof ShadowRoot;
}
function Mt(t) {
var e = t.state;
Object.keys(e.elements).forEach(function(n) {
var r = e.styles[n] || {}, o = e.attributes[n] || {}, i = e.elements[n];
!B(i) || !C(i) || (Object.assign(i.style, r), Object.keys(o).forEach(function(a) {
var s = o[a];
s === false ? i.removeAttribute(a) : i.setAttribute(a, s === true ? "" : s);
}));
});
}
function Rt(t) {
var e = t.state, n = { popper: { position: e.options.strategy, left: "0", top: "0", margin: "0" }, arrow: { position: "absolute" }, reference: {} };
return Object.assign(e.elements.popper.style, n.popper), e.styles = n, e.elements.arrow && Object.assign(e.elements.arrow.style, n.arrow), function() {
Object.keys(e.elements).forEach(function(r) {
var o = e.elements[r], i = e.attributes[r] || {}, a = Object.keys(e.styles.hasOwnProperty(r) ? e.styles[r] : n[r]), s = a.reduce(function(f, c) {
return f[c] = "", f;
}, {});
!B(o) || !C(o) || (Object.assign(o.style, s), Object.keys(i).forEach(function(f) {
o.removeAttribute(f);
}));
});
};
}
var Ae = { name: "applyStyles", enabled: true, phase: "write", fn: Mt, effect: Rt, requires: ["computeStyles"] };
function q(t) {
return t.split("-")[0];
}
var X = Math.max, ve = Math.min, Z = Math.round;
function ee(t, e) {
e === void 0 && (e = false);
var n = t.getBoundingClientRect(), r = 1, o = 1;
if (B(t) && e) {
var i = t.offsetHeight, a = t.offsetWidth;
a > 0 && (r = Z(n.width) / a || 1), i > 0 && (o = Z(n.height) / i || 1);
}
return { width: n.width / r, height: n.height / o, top: n.top / o, right: n.right / r, bottom: n.bottom / o, left: n.left / r, x: n.left / r, y: n.top / o };
}
function ke(t) {
var e = ee(t), n = t.offsetWidth, r = t.offsetHeight;
return Math.abs(e.width - n) <= 1 && (n = e.width), Math.abs(e.height - r) <= 1 && (r = e.height), { x: t.offsetLeft, y: t.offsetTop, width: n, height: r };
}
function it(t, e) {
var n = e.getRootNode && e.getRootNode();
if (t.contains(e)) return true;
if (n && Pe(n)) {
var r = e;
do {
if (r && t.isSameNode(r)) return true;
r = r.parentNode || r.host;
} while (r);
}
return false;
}
function N(t) {
return H(t).getComputedStyle(t);
}
function Wt(t) {
return ["table", "td", "th"].indexOf(C(t)) >= 0;
}
function I(t) {
return ((Q(t) ? t.ownerDocument : t.document) || window.document).documentElement;
}
function ge(t) {
return C(t) === "html" ? t : t.assignedSlot || t.parentNode || (Pe(t) ? t.host : null) || I(t);
}
function at(t) {
return !B(t) || N(t).position === "fixed" ? null : t.offsetParent;
}
function Bt(t) {
var e = navigator.userAgent.toLowerCase().indexOf("firefox") !== -1, n = navigator.userAgent.indexOf("Trident") !== -1;
if (n && B(t)) {
var r = N(t);
if (r.position === "fixed") return null;
}
var o = ge(t);
for (Pe(o) && (o = o.host); B(o) && ["html", "body"].indexOf(C(o)) < 0; ) {
var i = N(o);
if (i.transform !== "none" || i.perspective !== "none" || i.contain === "paint" || ["transform", "perspective"].indexOf(i.willChange) !== -1 || e && i.willChange === "filter" || e && i.filter && i.filter !== "none") return o;
o = o.parentNode;
}
return null;
}
function se(t) {
for (var e = H(t), n = at(t); n && Wt(n) && N(n).position === "static"; ) n = at(n);
return n && (C(n) === "html" || C(n) === "body" && N(n).position === "static") ? e : n || Bt(t) || e;
}
function Le(t) {
return ["top", "bottom"].indexOf(t) >= 0 ? "x" : "y";
}
function fe(t, e, n) {
return X(t, ve(e, n));
}
function St(t, e, n) {
var r = fe(t, e, n);
return r > n ? n : r;
}
function st() {
return { top: 0, right: 0, bottom: 0, left: 0 };
}
function ft(t) {
return Object.assign({}, st(), t);
}
function ct(t, e) {
return e.reduce(function(n, r) {
return n[r] = t, n;
}, {});
}
var Tt = function(t, e) {
return t = typeof t == "function" ? t(Object.assign({}, e.rects, { placement: e.placement })) : t, ft(typeof t != "number" ? t : ct(t, G));
};
function Ht(t) {
var e, n = t.state, r = t.name, o = t.options, i = n.elements.arrow, a = n.modifiersData.popperOffsets, s = q(n.placement), f = Le(s), c = [P, W].indexOf(s) >= 0, u = c ? "height" : "width";
if (!(!i || !a)) {
var m = Tt(o.padding, n), v = ke(i), l = f === "y" ? E : P, h2 = f === "y" ? R : W, p = n.rects.reference[u] + n.rects.reference[f] - a[f] - n.rects.popper[u], g = a[f] - n.rects.reference[f], x = se(i), y = x ? f === "y" ? x.clientHeight || 0 : x.clientWidth || 0 : 0, $ = p / 2 - g / 2, d = m[l], b = y - v[u] - m[h2], w = y / 2 - v[u] / 2 + $, O = fe(d, w, b), j = f;
n.modifiersData[r] = (e = {}, e[j] = O, e.centerOffset = O - w, e);
}
}
function Ct(t) {
var e = t.state, n = t.options, r = n.element, o = r === void 0 ? "[data-popper-arrow]" : r;
o != null && (typeof o == "string" && (o = e.elements.popper.querySelector(o), !o) || !it(e.elements.popper, o) || (e.elements.arrow = o));
}
var pt = { name: "arrow", enabled: true, phase: "main", fn: Ht, effect: Ct, requires: ["popperOffsets"], requiresIfExists: ["preventOverflow"] };
function te(t) {
return t.split("-")[1];
}
var qt = { top: "auto", right: "auto", bottom: "auto", left: "auto" };
function Vt(t) {
var e = t.x, n = t.y, r = window, o = r.devicePixelRatio || 1;
return { x: Z(e * o) / o || 0, y: Z(n * o) / o || 0 };
}
function ut(t) {
var e, n = t.popper, r = t.popperRect, o = t.placement, i = t.variation, a = t.offsets, s = t.position, f = t.gpuAcceleration, c = t.adaptive, u = t.roundOffsets, m = t.isFixed, v = a.x, l = v === void 0 ? 0 : v, h2 = a.y, p = h2 === void 0 ? 0 : h2, g = typeof u == "function" ? u({ x: l, y: p }) : { x: l, y: p };
l = g.x, p = g.y;
var x = a.hasOwnProperty("x"), y = a.hasOwnProperty("y"), $ = P, d = E, b = window;
if (c) {
var w = se(n), O = "clientHeight", j = "clientWidth";
if (w === H(n) && (w = I(n), N(w).position !== "static" && s === "absolute" && (O = "scrollHeight", j = "scrollWidth")), w = w, o === E || (o === P || o === W) && i === J) {
d = R;
var A = m && w === b && b.visualViewport ? b.visualViewport.height : w[O];
p -= A - r.height, p *= f ? 1 : -1;
}
if (o === P || (o === E || o === R) && i === J) {
$ = W;
var k = m && w === b && b.visualViewport ? b.visualViewport.width : w[j];
l -= k - r.width, l *= f ? 1 : -1;
}
}
var D = Object.assign({ position: s }, c && qt), S = u === true ? Vt({ x: l, y: p }) : { x: l, y: p };
if (l = S.x, p = S.y, f) {
var L;
return Object.assign({}, D, (L = {}, L[d] = y ? "0" : "", L[$] = x ? "0" : "", L.transform = (b.devicePixelRatio || 1) <= 1 ? "translate(" + l + "px, " + p + "px)" : "translate3d(" + l + "px, " + p + "px, 0)", L));
}
return Object.assign({}, D, (e = {}, e[d] = y ? p + "px" : "", e[$] = x ? l + "px" : "", e.transform = "", e));
}
function Nt(t) {
var e = t.state, n = t.options, r = n.gpuAcceleration, o = r === void 0 ? true : r, i = n.adaptive, a = i === void 0 ? true : i, s = n.roundOffsets, f = s === void 0 ? true : s, c = { placement: q(e.placement), variation: te(e.placement), popper: e.elements.popper, popperRect: e.rects.popper, gpuAcceleration: o, isFixed: e.options.strategy === "fixed" };
e.modifiersData.popperOffsets != null && (e.styles.popper = Object.assign({}, e.styles.popper, ut(Object.assign({}, c, { offsets: e.modifiersData.popperOffsets, position: e.options.strategy, adaptive: a, roundOffsets: f })))), e.modifiersData.arrow != null && (e.styles.arrow = Object.assign({}, e.styles.arrow, ut(Object.assign({}, c, { offsets: e.modifiersData.arrow, position: "absolute", adaptive: false, roundOffsets: f })))), e.attributes.popper = Object.assign({}, e.attributes.popper, { "data-popper-placement": e.placement });
}
var Me = { name: "computeStyles", enabled: true, phase: "beforeWrite", fn: Nt, data: {} }, ye = { passive: true };
function It(t) {
var e = t.state, n = t.instance, r = t.options, o = r.scroll, i = o === void 0 ? true : o, a = r.resize, s = a === void 0 ? true : a, f = H(e.elements.popper), c = [].concat(e.scrollParents.reference, e.scrollParents.popper);
return i && c.forEach(function(u) {
u.addEventListener("scroll", n.update, ye);
}), s && f.addEventListener("resize", n.update, ye), function() {
i && c.forEach(function(u) {
u.removeEventListener("scroll", n.update, ye);
}), s && f.removeEventListener("resize", n.update, ye);
};
}
var Re = { name: "eventListeners", enabled: true, phase: "write", fn: function() {
}, effect: It, data: {} }, _t = { left: "right", right: "left", bottom: "top", top: "bottom" };
function be(t) {
return t.replace(/left|right|bottom|top/g, function(e) {
return _t[e];
});
}
var zt = { start: "end", end: "start" };
function lt(t) {
return t.replace(/start|end/g, function(e) {
return zt[e];
});
}
function We(t) {
var e = H(t), n = e.pageXOffset, r = e.pageYOffset;
return { scrollLeft: n, scrollTop: r };
}
function Be(t) {
return ee(I(t)).left + We(t).scrollLeft;
}
function Ft(t) {
var e = H(t), n = I(t), r = e.visualViewport, o = n.clientWidth, i = n.clientHeight, a = 0, s = 0;
return r && (o = r.width, i = r.height, /^((?!chrome|android).)*safari/i.test(navigator.userAgent) || (a = r.offsetLeft, s = r.offsetTop)), { width: o, height: i, x: a + Be(t), y: s };
}
function Ut(t) {
var e, n = I(t), r = We(t), o = (e = t.ownerDocument) == null ? void 0 : e.body, i = X(n.scrollWidth, n.clientWidth, o ? o.scrollWidth : 0, o ? o.clientWidth : 0), a = X(n.scrollHeight, n.clientHeight, o ? o.scrollHeight : 0, o ? o.clientHeight : 0), s = -r.scrollLeft + Be(t), f = -r.scrollTop;
return N(o || n).direction === "rtl" && (s += X(n.clientWidth, o ? o.clientWidth : 0) - i), { width: i, height: a, x: s, y: f };
}
function Se(t) {
var e = N(t), n = e.overflow, r = e.overflowX, o = e.overflowY;
return /auto|scroll|overlay|hidden/.test(n + o + r);
}
function dt(t) {
return ["html", "body", "#document"].indexOf(C(t)) >= 0 ? t.ownerDocument.body : B(t) && Se(t) ? t : dt(ge(t));
}
function ce(t, e) {
var n;
e === void 0 && (e = []);
var r = dt(t), o = r === ((n = t.ownerDocument) == null ? void 0 : n.body), i = H(r), a = o ? [i].concat(i.visualViewport || [], Se(r) ? r : []) : r, s = e.concat(a);
return o ? s : s.concat(ce(ge(a)));
}
function Te(t) {
return Object.assign({}, t, { left: t.x, top: t.y, right: t.x + t.width, bottom: t.y + t.height });
}
function Xt(t) {
var e = ee(t);
return e.top = e.top + t.clientTop, e.left = e.left + t.clientLeft, e.bottom = e.top + t.clientHeight, e.right = e.left + t.clientWidth, e.width = t.clientWidth, e.height = t.clientHeight, e.x = e.left, e.y = e.top, e;
}
function ht(t, e) {
return e === je ? Te(Ft(t)) : Q(e) ? Xt(e) : Te(Ut(I(t)));
}
function Yt(t) {
var e = ce(ge(t)), n = ["absolute", "fixed"].indexOf(N(t).position) >= 0, r = n && B(t) ? se(t) : t;
return Q(r) ? e.filter(function(o) {
return Q(o) && it(o, r) && C(o) !== "body";
}) : [];
}
function Gt(t, e, n) {
var r = e === "clippingParents" ? Yt(t) : [].concat(e), o = [].concat(r, [n]), i = o[0], a = o.reduce(function(s, f) {
var c = ht(t, f);
return s.top = X(c.top, s.top), s.right = ve(c.right, s.right), s.bottom = ve(c.bottom, s.bottom), s.left = X(c.left, s.left), s;
}, ht(t, i));
return a.width = a.right - a.left, a.height = a.bottom - a.top, a.x = a.left, a.y = a.top, a;
}
function mt(t) {
var e = t.reference, n = t.element, r = t.placement, o = r ? q(r) : null, i = r ? te(r) : null, a = e.x + e.width / 2 - n.width / 2, s = e.y + e.height / 2 - n.height / 2, f;
switch (o) {
case E:
f = { x: a, y: e.y - n.height };
break;
case R:
f = { x: a, y: e.y + e.height };
break;
case W:
f = { x: e.x + e.width, y: s };
break;
case P:
f = { x: e.x - n.width, y: s };
break;
default:
f = { x: e.x, y: e.y };
}
var c = o ? Le(o) : null;
if (c != null) {
var u = c === "y" ? "height" : "width";
switch (i) {
case U:
f[c] = f[c] - (e[u] / 2 - n[u] / 2);
break;
case J:
f[c] = f[c] + (e[u] / 2 - n[u] / 2);
break;
}
}
return f;
}
function ne(t, e) {
e === void 0 && (e = {});
var n = e, r = n.placement, o = r === void 0 ? t.placement : r, i = n.boundary, a = i === void 0 ? Xe : i, s = n.rootBoundary, f = s === void 0 ? je : s, c = n.elementContext, u = c === void 0 ? K : c, m = n.altBoundary, v = m === void 0 ? false : m, l = n.padding, h2 = l === void 0 ? 0 : l, p = ft(typeof h2 != "number" ? h2 : ct(h2, G)), g = u === K ? Ye : K, x = t.rects.popper, y = t.elements[v ? g : u], $ = Gt(Q(y) ? y : y.contextElement || I(t.elements.popper), a, f), d = ee(t.elements.reference), b = mt({ reference: d, element: x, strategy: "absolute", placement: o }), w = Te(Object.assign({}, x, b)), O = u === K ? w : d, j = { top: $.top - O.top + p.top, bottom: O.bottom - $.bottom + p.bottom, left: $.left - O.left + p.left, right: O.right - $.right + p.right }, A = t.modifiersData.offset;
if (u === K && A) {
var k = A[o];
Object.keys(j).forEach(function(D) {
var S = [W, R].indexOf(D) >= 0 ? 1 : -1, L = [E, R].indexOf(D) >= 0 ? "y" : "x";
j[D] += k[L] * S;
});
}
return j;
}
function Jt(t, e) {
e === void 0 && (e = {});
var n = e, r = n.placement, o = n.boundary, i = n.rootBoundary, a = n.padding, s = n.flipVariations, f = n.allowedAutoPlacements, c = f === void 0 ? Ee : f, u = te(r), m = u ? s ? De : De.filter(function(h2) {
return te(h2) === u;
}) : G, v = m.filter(function(h2) {
return c.indexOf(h2) >= 0;
});
v.length === 0 && (v = m);
var l = v.reduce(function(h2, p) {
return h2[p] = ne(t, { placement: p, boundary: o, rootBoundary: i, padding: a })[q(p)], h2;
}, {});
return Object.keys(l).sort(function(h2, p) {
return l[h2] - l[p];
});
}
function Kt(t) {
if (q(t) === me) return [];
var e = be(t);
return [lt(t), e, lt(e)];
}
function Qt(t) {
var e = t.state, n = t.options, r = t.name;
if (!e.modifiersData[r]._skip) {
for (var o = n.mainAxis, i = o === void 0 ? true : o, a = n.altAxis, s = a === void 0 ? true : a, f = n.fallbackPlacements, c = n.padding, u = n.boundary, m = n.rootBoundary, v = n.altBoundary, l = n.flipVariations, h2 = l === void 0 ? true : l, p = n.allowedAutoPlacements, g = e.options.placement, x = q(g), y = x === g, $ = f || (y || !h2 ? [be(g)] : Kt(g)), d = [g].concat($).reduce(function(z, V) {
return z.concat(q(V) === me ? Jt(e, { placement: V, boundary: u, rootBoundary: m, padding: c, flipVariations: h2, allowedAutoPlacements: p }) : V);
}, []), b = e.rects.reference, w = e.rects.popper, O = /* @__PURE__ */ new Map(), j = true, A = d[0], k = 0; k < d.length; k++) {
var D = d[k], S = q(D), L = te(D) === U, re = [E, R].indexOf(S) >= 0, oe = re ? "width" : "height", M = ne(e, { placement: D, boundary: u, rootBoundary: m, altBoundary: v, padding: c }), T = re ? L ? W : P : L ? R : E;
b[oe] > w[oe] && (T = be(T));
var pe = be(T), _2 = [];
if (i && _2.push(M[S] <= 0), s && _2.push(M[T] <= 0, M[pe] <= 0), _2.every(function(z) {
return z;
})) {
A = D, j = false;
break;
}
O.set(D, _2);
}
if (j) for (var ue = h2 ? 3 : 1, xe = function(z) {
var V = d.find(function(de) {
var ae = O.get(de);
if (ae) return ae.slice(0, z).every(function(Y) {
return Y;
});
});
if (V) return A = V, "break";
}, ie = ue; ie > 0; ie--) {
var le = xe(ie);
if (le === "break") break;
}
e.placement !== A && (e.modifiersData[r]._skip = true, e.placement = A, e.reset = true);
}
}
var vt = { name: "flip", enabled: true, phase: "main", fn: Qt, requiresIfExists: ["offset"], data: { _skip: false } };
function gt(t, e, n) {
return n === void 0 && (n = { x: 0, y: 0 }), { top: t.top - e.height - n.y, right: t.right - e.width + n.x, bottom: t.bottom - e.height + n.y, left: t.left - e.width - n.x };
}
function yt(t) {
return [E, W, R, P].some(function(e) {
return t[e] >= 0;
});
}
function Zt(t) {
var e = t.state, n = t.name, r = e.rects.reference, o = e.rects.popper, i = e.modifiersData.preventOverflow, a = ne(e, { elementContext: "reference" }), s = ne(e, { altBoundary: true }), f = gt(a, r), c = gt(s, o, i), u = yt(f), m = yt(c);
e.modifiersData[n] = { referenceClippingOffsets: f, popperEscapeOffsets: c, isReferenceHidden: u, hasPopperEscaped: m }, e.attributes.popper = Object.assign({}, e.attributes.popper, { "data-popper-reference-hidden": u, "data-popper-escaped": m });
}
var bt = { name: "hide", enabled: true, phase: "main", requiresIfExists: ["preventOverflow"], fn: Zt };
function en(t, e, n) {
var r = q(t), o = [P, E].indexOf(r) >= 0 ? -1 : 1, i = typeof n == "function" ? n(Object.assign({}, e, { placement: t })) : n, a = i[0], s = i[1];
return a = a || 0, s = (s || 0) * o, [P, W].indexOf(r) >= 0 ? { x: s, y: a } : { x: a, y: s };
}
function tn(t) {
var e = t.state, n = t.options, r = t.name, o = n.offset, i = o === void 0 ? [0, 0] : o, a = Ee.reduce(function(u, m) {
return u[m] = en(m, e.rects, i), u;
}, {}), s = a[e.placement], f = s.x, c = s.y;
e.modifiersData.popperOffsets != null && (e.modifiersData.popperOffsets.x += f, e.modifiersData.popperOffsets.y += c), e.modifiersData[r] = a;
}
var wt = { name: "offset", enabled: true, phase: "main", requires: ["popperOffsets"], fn: tn };
function nn(t) {
var e = t.state, n = t.name;
e.modifiersData[n] = mt({ reference: e.rects.reference, element: e.rects.popper, strategy: "absolute", placement: e.placement });
}
var He = { name: "popperOffsets", enabled: true, phase: "read", fn: nn, data: {} };
function rn(t) {
return t === "x" ? "y" : "x";
}
function on(t) {
var e = t.state, n = t.options, r = t.name, o = n.mainAxis, i = o === void 0 ? true : o, a = n.altAxis, s = a === void 0 ? false : a, f = n.boundary, c = n.rootBoundary, u = n.altBoundary, m = n.padding, v = n.tether, l = v === void 0 ? true : v, h2 = n.tetherOffset, p = h2 === void 0 ? 0 : h2, g = ne(e, { boundary: f, rootBoundary: c, padding: m, altBoundary: u }), x = q(e.placement), y = te(e.placement), $ = !y, d = Le(x), b = rn(d), w = e.modifiersData.popperOffsets, O = e.rects.reference, j = e.rects.popper, A = typeof p == "function" ? p(Object.assign({}, e.rects, { placement: e.placement })) : p, k = typeof A == "number" ? { mainAxis: A, altAxis: A } : Object.assign({ mainAxis: 0, altAxis: 0 }, A), D = e.modifiersData.offset ? e.modifiersData.offset[e.placement] : null, S = { x: 0, y: 0 };
if (w) {
if (i) {
var L, re = d === "y" ? E : P, oe = d === "y" ? R : W, M = d === "y" ? "height" : "width", T = w[d], pe = T + g[re], _2 = T - g[oe], ue = l ? -j[M] / 2 : 0, xe = y === U ? O[M] : j[M], ie = y === U ? -j[M] : -O[M], le = e.elements.arrow, z = l && le ? ke(le) : { width: 0, height: 0 }, V = e.modifiersData["arrow#persistent"] ? e.modifiersData["arrow#persistent"].padding : st(), de = V[re], ae = V[oe], Y = fe(0, O[M], z[M]), jt = $ ? O[M] / 2 - ue - Y - de - k.mainAxis : xe - Y - de - k.mainAxis, Dt = $ ? -O[M] / 2 + ue + Y + ae + k.mainAxis : ie + Y + ae + k.mainAxis, Oe = e.elements.arrow && se(e.elements.arrow), Et = Oe ? d === "y" ? Oe.clientTop || 0 : Oe.clientLeft || 0 : 0, Ce = (L = D == null ? void 0 : D[d]) != null ? L : 0, Pt = T + jt - Ce - Et, At = T + Dt - Ce, qe = fe(l ? ve(pe, Pt) : pe, T, l ? X(_2, At) : _2);
w[d] = qe, S[d] = qe - T;
}
if (s) {
var Ve, kt = d === "x" ? E : P, Lt = d === "x" ? R : W, F = w[b], he = b === "y" ? "height" : "width", Ne = F + g[kt], Ie = F - g[Lt], $e = [E, P].indexOf(x) !== -1, _e = (Ve = D == null ? void 0 : D[b]) != null ? Ve : 0, ze = $e ? Ne : F - O[he] - j[he] - _e + k.altAxis, Fe = $e ? F + O[he] + j[he] - _e - k.altAxis : Ie, Ue = l && $e ? St(ze, F, Fe) : fe(l ? ze : Ne, F, l ? Fe : Ie);
w[b] = Ue, S[b] = Ue - F;
}
e.modifiersData[r] = S;
}
}
var xt = { name: "preventOverflow", enabled: true, phase: "main", fn: on, requiresIfExists: ["offset"] };
function an(t) {
return { scrollLeft: t.scrollLeft, scrollTop: t.scrollTop };
}
function sn(t) {
return t === H(t) || !B(t) ? We(t) : an(t);
}
function fn(t) {
var e = t.getBoundingClientRect(), n = Z(e.width) / t.offsetWidth || 1, r = Z(e.height) / t.offsetHeight || 1;
return n !== 1 || r !== 1;
}
function cn(t, e, n) {
n === void 0 && (n = false);
var r = B(e), o = B(e) && fn(e), i = I(e), a = ee(t, o), s = { scrollLeft: 0, scrollTop: 0 }, f = { x: 0, y: 0 };
return (r || !r && !n) && ((C(e) !== "body" || Se(i)) && (s = sn(e)), B(e) ? (f = ee(e, true), f.x += e.clientLeft, f.y += e.clientTop) : i && (f.x = Be(i))), { x: a.left + s.scrollLeft - f.x, y: a.top + s.scrollTop - f.y, width: a.width, height: a.height };
}
function pn(t) {
var e = /* @__PURE__ */ new Map(), n = /* @__PURE__ */ new Set(), r = [];
t.forEach(function(i) {
e.set(i.name, i);
});
function o(i) {
n.add(i.name);
var a = [].concat(i.requires || [], i.requiresIfExists || []);
a.forEach(function(s) {
if (!n.has(s)) {
var f = e.get(s);
f && o(f);
}
}), r.push(i);
}
return t.forEach(function(i) {
n.has(i.name) || o(i);
}), r;
}
function un(t) {
var e = pn(t);
return ot.reduce(function(n, r) {
return n.concat(e.filter(function(o) {
return o.phase === r;
}));
}, []);
}
function ln(t) {
var e;
return function() {
return e || (e = new Promise(function(n) {
Promise.resolve().then(function() {
e = void 0, n(t());
});
})), e;
};
}
function dn(t) {
var e = t.reduce(function(n, r) {
var o = n[r.name];
return n[r.name] = o ? Object.assign({}, o, r, { options: Object.assign({}, o.options, r.options), data: Object.assign({}, o.data, r.data) }) : r, n;
}, {});
return Object.keys(e).map(function(n) {
return e[n];
});
}
var Ot = { placement: "bottom", modifiers: [], strategy: "absolute" };
function $t() {
for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++) e[n] = arguments[n];
return !e.some(function(r) {
return !(r && typeof r.getBoundingClientRect == "function");
});
}
function we(t) {
t === void 0 && (t = {});
var e = t, n = e.defaultModifiers, r = n === void 0 ? [] : n, o = e.defaultOptions, i = o === void 0 ? Ot : o;
return function(a, s, f) {
f === void 0 && (f = i);
var c = { placement: "bottom", orderedModifiers: [], options: Object.assign({}, Ot, i), modifiersData: {}, elements: { reference: a, popper: s }, attributes: {}, styles: {} }, u = [], m = false, v = { state: c, setOptions: function(p) {
var g = typeof p == "function" ? p(c.options) : p;
h2(), c.options = Object.assign({}, i, c.options, g), c.scrollParents = { reference: Q(a) ? ce(a) : a.contextElement ? ce(a.contextElement) : [], popper: ce(s) };
var x = un(dn([].concat(r, c.options.modifiers)));
return c.orderedModifiers = x.filter(function(y) {
return y.enabled;
}), l(), v.update();
}, forceUpdate: function() {
if (!m) {
var p = c.elements, g = p.reference, x = p.popper;
if ($t(g, x)) {
c.rects = { reference: cn(g, se(x), c.options.strategy === "fixed"), popper: ke(x) }, c.reset = false, c.placement = c.options.placement, c.orderedModifiers.forEach(function(j) {
return c.modifiersData[j.name] = Object.assign({}, j.data);
});
for (var y = 0; y < c.orderedModifiers.length; y++) {
if (c.reset === true) {
c.reset = false, y = -1;
continue;
}
var $ = c.orderedModifiers[y], d = $.fn, b = $.options, w = b === void 0 ? {} : b, O = $.name;
typeof d == "function" && (c = d({ state: c, options: w, name: O, instance: v }) || c);
}
}
}
}, update: ln(function() {
return new Promise(function(p) {
v.forceUpdate(), p(c);
});
}), destroy: function() {
h2(), m = true;
} };
if (!$t(a, s)) return v;
v.setOptions(f).then(function(p) {
!m && f.onFirstUpdate && f.onFirstUpdate(p);
});
function l() {
c.orderedModifiers.forEach(function(p) {
var g = p.name, x = p.options, y = x === void 0 ? {} : x, $ = p.effect;
if (typeof $ == "function") {
var d = $({ state: c, name: g, instance: v, options: y }), b = function() {
};
u.push(d || b);
}
});
}
function h2() {
u.forEach(function(p) {
return p();
}), u = [];
}
return v;
};
}
we();
var mn = [Re, He, Me, Ae];
we({ defaultModifiers: mn });
var gn = [Re, He, Me, Ae, wt, vt, xt, pt, bt], yn = we({ defaultModifiers: gn });
const usePopper = (referenceElementRef, popperElementRef, opts = {}) => {
const stateUpdater = {
name: "updateState",
enabled: true,
phase: "write",
fn: ({ state }) => {
const derivedState = deriveState(state);
Object.assign(states.value, derivedState);
},
requires: ["computeStyles"]
};
const options = vue.computed(() => {
const { onFirstUpdate, placement, strategy, modifiers } = vue.unref(opts);
return {
onFirstUpdate,
placement: placement || "bottom",
strategy: strategy || "absolute",
modifiers: [
...modifiers || [],
stateUpdater,
{ name: "applyStyles", enabled: false }
]
};
});
const instanceRef = vue.shallowRef();
const states = vue.ref({
styles: {
popper: {
position: vue.unref(options).strategy,
left: "0",
top: "0"
},
arrow: {
position: "absolute"
}
},
attributes: {}
});
const destroy = () => {
if (!instanceRef.value)
return;
instanceRef.value.destroy();
instanceRef.value = void 0;
};
vue.watch(options, (newOptions) => {
const instance = vue.unref(instanceRef);
if (instance) {
instance.setOptions(newOptions);
}
}, {
deep: true
});
vue.watch([referenceElementRef, popperElementRef], ([referenceElement, popperElement]) => {
destroy();
if (!referenceElement || !popperElement)
return;
instanceRef.value = yn(referenceElement, popperElement, vue.unref(options));
});
vue.onBeforeUnmount(() => {
destroy();
});
return {
state: vue.computed(() => {
var _a2;
return { ...((_a2 = vue.unref(instanceRef)) == null ? void 0 : _a2.state) || {} };
}),
styles: vue.computed(() => vue.unref(states).styles),
attributes: vue.computed(() => vue.unref(states).attributes),
update: () => {
var _a2;
return (_a2 = vue.unref(instanceRef)) == null ? void 0 : _a2.update();
},
forceUpdate: () => {
var _a2;
return (_a2 = vue.unref(instanceRef)) == null ? void 0 : _a2.forceUpdate();
},
instanceRef: vue.computed(() => vue.unref(instanceRef))
};
};
function deriveState(state) {
const elements = Object.keys(state.elements);
const styles = fromPairs(elements.map((element) => [element, state.styles[element] || {}]));
const attributes = fromPairs(elements.map((element) => [element, state.attributes[element]]));
return {
styles,
attributes
};
}
const useSameTarget = (handleClick) => {
if (!handleClick) {
return { onClick: NOOP, onMousedown: NOOP, onMouseup: NOOP };
}
let mousedownTarget = false;
let mouseupTarget = false;
const onClick = (e) => {
if (mousedownTarget && mouseupTarget) {
handleClick(e);
}
mousedownTarget = mouseupTarget = false;
};
const onMousedown = (e) => {
mousedownTarget = e.target === e.currentTarget;
};
const onMouseup = (e) => {
mouseupTarget = e.target === e.currentTarget;
};
return { onClick, onMousedown, onMouseup };
};
function useTimeout() {
let timeoutHandle;
const registerTimeout = (fn2, delay2) => {
cancelTimeout();
timeoutHandle = window.setTimeout(fn2, delay2);
};
const cancelTimeout = () => window.clearTimeout(timeoutHandle);
tryOnScopeDispose(() => cancelTimeout());
return {
registerTimeout,
cancelTimeout
};
}
const defaultIdInjection = {
prefix: Math.floor(Math.random() * 1e4),
current: 0
};
const ID_INJECTION_KEY = Symbol("elIdInjection");
const useIdInjection = () => {
return vue.getCurrentInstance() ? vue.inject(ID_INJECTION_KEY, defaultIdInjection) : defaultIdInjection;
};
const useId = (deterministicId) => {
const idInjection = useIdInjection();
const namespace = useGetDerivedNamespace();
const idRef = vue.computed(() => vue.unref(deterministicId) || `${namespace.value}-id-${idInjection.prefix}-${idInjection.current++}`);
return idRef;
};
let registeredEscapeHandlers = [];
const cachedHandler = (e) => {
const event = e;
if (event.key === EVENT_CODE.esc) {
registeredEscapeHandlers.forEach((registeredHandler) => registeredHandler(event));
}
};
const useEscapeKeydown = (handler) => {
vue.onMounted(() => {
if (registeredEscapeHandlers.length === 0) {
document.addEventListener("keydown", cachedHandler);
}
if (isClient)
registeredEscapeHandlers.push(handler);
});
vue.onBeforeUnmount(() => {
registeredEscapeHandlers = registeredEscapeHandlers.filter((registeredHandler) => registeredHandler !== handler);
if (registeredEscapeHandlers.length === 0) {
if (isClient)
document.removeEventListener("keydown", cachedHandler);
}
});
};
const usePopperContainerId = () => {
const namespace = useGetDerivedNamespace();
const idInjection = useIdInjection();
const id = vue.computed(() => {
return `${namespace.value}-popper-container-${idInjection.prefix}`;
});
const selector = vue.computed(() => `#${id.value}`);
return {
id,
selector
};
};
const createContainer = (id) => {
const container = document.createElement("div");
container.id = id;
document.body.appendChild(container);
return container;
};
const usePopperContainer = () => {
const { id, selector } = usePopperContainerId();
vue.onBeforeMount(() => {
if (!isClient)
return;
if (!document.body.querySelector(selector.value)) {
createContainer(id.value);
}
});
return {
id,
selector
};
};
const useDelayedToggleProps = buildProps({
showAfter: {
type: Number,
default: 0
},
hideAfter: {
type: Number,
default: 200
},
autoClose: {
type: Number,
default: 0
}
});
const useDelayedToggle = ({
showAfter,
hideAfter,
autoClose,
open,
close: close2
}) => {
const { registerTimeout } = useTimeout();
const {
registerTimeout: registerTimeoutForAutoClose,
cancelTimeout: cancelTimeoutForAutoClose
} = useTimeout();
const onOpen = (event) => {
registerTimeout(() => {
open(event);
const _autoClose = vue.unref(autoClose);
if (isNumber(_autoClose) && _autoClose > 0) {
registerTimeoutForAutoClose(() => {
close2(event);
}, _autoClose);
}
}, vue.unref(showAfter));
};
const onClose = (event) => {
cancelTimeoutForAutoClose();
registerTimeout(() => {
close2(event);
}, vue.unref(hideAfter));
};
return {
onOpen,
onClose
};
};
const FORWARD_REF_INJECTION_KEY = Symbol("elForwardRef");
const useForwardRef = (forwardRef) => {
const setForwardRef = (el) => {
forwardRef.value = el;
};
vue.provide(FORWARD_REF_INJECTION_KEY, {
setForwardRef
});
};
const useForwardRefDirective = (setForwardRef) => {
return {
mounted(el) {
setForwardRef(el);
},
updated(el) {
setForwardRef(el);
},
unmounted() {
setForwardRef(null);
}
};
};
const initial = {
current: 0
};
const zIndex = vue.ref(0);
const defaultInitialZIndex = 2e3;
const ZINDEX_INJECTION_KEY = Symbol("elZIndexContextKey");
const zIndexContextKey = Symbol("zIndexContextKey");
const useZIndex = (zIndexOverrides) => {
const increasingInjection = vue.getCurrentInstance() ? vue.inject(ZINDEX_INJECTION_KEY, initial) : initial;
const zIndexInjection = zIndexOverrides || (vue.getCurrentInstance() ? vue.inject(zIndexContextKey, void 0) : void 0);
const initialZIndex = vue.computed(() => {
const zIndexFromInjection = vue.unref(zIndexInjection);
return isNumber(zIndexFromInjection) ? zIndexFromInjection : defaultInitialZIndex;
});
const currentZIndex = vue.computed(() => initialZIndex.value + zIndex.value);
const nextZIndex = () => {
increasingInjection.current++;
zIndex.value = increasingInjection.current;
return currentZIndex.value;
};
if (!isClient && !vue.inject(ZINDEX_INJECTION_KEY)) ;
return {
initialZIndex,
currentZIndex,
nextZIndex
};
};
function useCursor(input) {
let selectionInfo;
function recordCursor() {
if (input.value == void 0)
return;
const { selectionStart, selectionEnd, value } = input.value;
if (selectionStart == null || selectionEnd == null)
return;
const beforeTxt = value.slice(0, Math.max(0, selectionStart));
const afterTxt = value.slice(Math.max(0, selectionEnd));
selectionInfo = {
selectionStart,
selectionEnd,
value,
beforeTxt,
afterTxt
};
}
function setCursor() {
if (input.value == void 0 || selectionInfo == void 0)
return;
const { value } = input.value;
const { beforeTxt, afterTxt, selectionStart } = selectionInfo;
if (beforeTxt == void 0 || afterTxt == void 0 || selectionStart == void 0)
return;
let startPos = value.length;
if (value.endsWith(afterTxt)) {
startPos = value.length - afterTxt.length;
} else if (value.startsWith(beforeTxt)) {
startPos = beforeTxt.length;
} else {
const beforeLastChar = beforeTxt[selectionStart - 1];
const newIndex = value.indexOf(beforeLastChar, selectionStart - 1);
if (newIndex !== -1) {
startPos = newIndex + 1;
}
}
input.value.setSelectionRange(startPos, startPos);
}
return [recordCursor, setCursor];
}
const getOrderedChildren = (vm, childComponentName, children) => {
const nodes = flattedChildren(vm.subTree).filter((n) => {
var _a2;
return vue.isVNode(n) && ((_a2 = n.type) == null ? void 0 : _a2.name) === childComponentName && !!n.component;
});
const uids = nodes.map((n) => n.component.uid);
return uids.map((uid) => children[uid]).filter((p) => !!p);
};
const useOrderedChildren = (vm, childComponentName) => {
const children = {};
const orderedChildren = vue.shallowRef([]);
const addChild = (child) => {
children[child.uid] = child;
orderedChildren.value = getOrderedChildren(vm, childComponentName, children);
};
const removeChild = (uid) => {
delete children[uid];
orderedChildren.value = orderedChildren.value.filter((children2) => children2.uid !== uid);
};
return {
children: orderedChildren,
addChild,
removeChild
};
};
const useSizeProp = buildProp({
type: String,
values: componentSizes,
required: false
});
const SIZE_INJECTION_KEY = Symbol("size");
const useGlobalSize = () => {
const injectedSize = vue.inject(SIZE_INJECTION_KEY, {});
return vue.computed(() => {
return vue.unref(injectedSize.size) || "";
});
};
function useFocusController(target, {
beforeFocus,
afterFocus,
beforeBlur,
afterBlur
} = {}) {
const instance = vue.getCurrentInstance();
const { emit } = instance;
const wrapperRef = vue.shallowRef();
const isFocused = vue.ref(false);
const handleFocus = (event) => {
const cancelFocus = isFunction$1(beforeFocus) ? beforeFocus(event) : false;
if (cancelFocus || isFocused.value)
return;
isFocused.value = true;
emit("focus", event);
afterFocus == null ? void 0 : afterFocus();
};
const handleBlur = (event) => {
var _a2;
const cancelBlur = isFunction$1(beforeBlur) ? beforeBlur(event) : false;
if (cancelBlur || event.relatedTarget && ((_a2 = wrapperRef.value) == null ? void 0 : _a2.contains(event.relatedTarget)))
return;
isFocused.value = false;
emit("blur", event);
afterBlur == null ? void 0 : afterBlur();
};
const handleClick = () => {
var _a2, _b;
if (((_a2 = wrapperRef.value) == null ? void 0 : _a2.contains(document.activeElement)) && wrapperRef.value !== document.activeElement)
return;
(_b = target.value) == null ? void 0 : _b.focus();
};
vue.watch(wrapperRef, (el) => {
if (el) {
el.setAttribute("tabindex", "-1");
}
});
useEventListener(wrapperRef, "focus", handleFocus, true);
useEventListener(wrapperRef, "blur", handleBlur, true);
useEventListener(wrapperRef, "click", handleClick, true);
return {
isFocused,
wrapperRef,
handleFocus,
handleBlur
};
}
function useComposition({
afterComposition,
emit
}) {
const isComposing = vue.ref(false);
const handleCompositionStart = (event) => {
emit == null ? void 0 : emit("compositionstart", event);
isComposing.value = true;
};
const handleCompositionUpdate = (event) => {
var _a2;
emit == null ? void 0 : emit("compositionupdate", event);
const text = (_a2 = event.target) == null ? void 0 : _a2.value;
const lastCharacter = text[text.length - 1] || "";
isComposing.value = !isKorean(lastCharacter);
};
const handleCompositionEnd = (event) => {
emit == null ? void 0 : emit("compositionend", event);
if (isComposing.value) {
isComposing.value = false;
vue.nextTick(() => afterComposition(event));
}
};
const handleComposition = (event) => {
event.type === "compositionend" ? handleCompositionEnd(event) : handleCompositionUpdate(event);
};
return {
isComposing,
handleComposition,
handleCompositionStart,
handleCompositionUpdate,
handleCompositionEnd
};
}
const emptyValuesContextKey = Symbol("emptyValuesContextKey");
const DEFAULT_EMPTY_VALUES = ["", void 0, null];
const DEFAULT_VALUE_ON_CLEAR = void 0;
const useEmptyValuesProps = buildProps({
emptyValues: Array,
valueOnClear: {
type: [String, Number, Boolean, Function],
default: void 0,
validator: (val) => isFunction$1(val) ? !val() : !val
}
});
const useEmptyValues = (props, defaultValue) => {
const config = vue.getCurrentInstance() ? vue.inject(emptyValuesContextKey, vue.ref({})) : vue.ref({});
const emptyValues = vue.computed(() => props.emptyValues || config.value.emptyValues || DEFAULT_EMPTY_VALUES);
const valueOnClear = vue.computed(() => {
if (isFunction$1(props.valueOnClear)) {
return props.valueOnClear();
} else if (props.valueOnClear !== void 0) {
return props.valueOnClear;
} else if (isFunction$1(config.value.valueOnClear)) {
return config.value.valueOnClear();
} else if (config.value.valueOnClear !== void 0) {
return config.value.valueOnClear;
}
return DEFAULT_VALUE_ON_CLEAR;
});
const isEmptyValue = (value) => {
return emptyValues.value.includes(value);
};
if (!emptyValues.value.includes(valueOnClear.value)) ;
return {
emptyValues,
valueOnClear,
isEmptyValue
};
};
const ariaProps = buildProps({
ariaLabel: String,
ariaOrientation: {
type: String,
values: ["horizontal", "vertical", "undefined"]
},
ariaControls: String
});
const useAriaProps = (arias) => {
return pick(ariaProps, arias);
};
const configProviderContextKey = Symbol();
const globalConfig = vue.ref();
function useGlobalConfig(key, defaultValue = void 0) {
const config = vue.getCurrentInstance() ? vue.inject(configProviderContextKey, globalConfig) : globalConfig;
if (key) {
return vue.computed(() => {
var _a2, _b;
return (_b = (_a2 = config.value) == null ? void 0 : _a2[key]) != null ? _b : defaultValue;
});
} else {
return config;
}
}
function useGlobalComponentSettings(block, sizeFallback) {
const config = useGlobalConfig();
const ns = useNamespace(block, vue.computed(() => {
var _a2;
return ((_a2 = config.value) == null ? void 0 : _a2.namespace) || defaultNamespace;
}));
const locale = useLocale(vue.computed(() => {
var _a2;
return (_a2 = config.value) == null ? void 0 : _a2.locale;
}));
const zIndex2 = useZIndex(vue.computed(() => {
var _a2;
return ((_a2 = config.value) == null ? void 0 : _a2.zIndex) || defaultInitialZIndex;
}));
const size2 = vue.computed(() => {
var _a2;
return vue.unref(sizeFallback) || ((_a2 = config.value) == null ? void 0 : _a2.size) || "";
});
provideGlobalConfig(vue.computed(() => vue.unref(config) || {}));
return {
ns,
locale,
zIndex: zIndex2,
size: size2
};
}
const provideGlobalConfig = (config, app2, global2 = false) => {
var _a2;
const inSetup = !!vue.getCurrentInstance();
const oldConfig = inSetup ? useGlobalConfig() : void 0;
const provideFn = (_a2 = void 0) != null ? _a2 : inSetup ? vue.provide : void 0;
if (!provideFn) {
return;
}
const context = vue.computed(() => {
const cfg = vue.unref(config);
if (!(oldConfig == null ? void 0 : oldConfig.value))
return cfg;
return mergeConfig(oldConfig.value, cfg);
});
provideFn(configProviderContextKey, context);
provideFn(localeContextKey, vue.computed(() => context.value.locale));
provideFn(namespaceContextKey, vue.computed(() => context.value.namespace));
provideFn(zIndexContextKey, vue.computed(() => context.value.zIndex));
provideFn(SIZE_INJECTION_KEY, {
size: vue.computed(() => context.value.size || "")
});
provideFn(emptyValuesContextKey, vue.computed(() => ({
emptyValues: context.value.emptyValues,
valueOnClear: context.value.valueOnClear
})));
if (global2 || !globalConfig.value) {
globalConfig.value = context.value;
}
return context;
};
const mergeConfig = (a, b) => {
const keys2 = [.../* @__PURE__ */ new Set([...keysOf(a), ...keysOf(b)])];
const obj = {};
for (const key of keys2) {
obj[key] = b[key] !== void 0 ? b[key] : a[key];
}
return obj;
};
var _export_sfc = (sfc, props) => {
const target = sfc.__vccOpts || sfc;
for (const [key, val] of props) {
target[key] = val;
}
return target;
};
const iconProps = buildProps({
size: {
type: definePropType([Number, String])
},
color: {
type: String
}
});
const __default__$E = vue.defineComponent({
name: "ElIcon",
inheritAttrs: false
});
const _sfc_main$$ = /* @__PURE__ */ vue.defineComponent({
...__default__$E,
props: iconProps,
setup(__props) {
const props = __props;
const ns = useNamespace("icon");
const style = vue.computed(() => {
const { size: size2, color } = props;
if (!size2 && !color)
return {};
return {
fontSize: isUndefined(size2) ? void 0 : addUnit(size2),
"--color": color
};
});
return (_ctx, _cache) => {
return vue.openBlock(), vue.createElementBlock("i", vue.mergeProps({
class: vue.unref(ns).b(),
style: vue.unref(style)
}, _ctx.$attrs), [
vue.renderSlot(_ctx.$slots, "default")
], 16);
};
}
});
var Icon = /* @__PURE__ */ _export_sfc(_sfc_main$$, [["__file", "icon.vue"]]);
const ElIcon = withInstall(Icon);
const formContextKey = Symbol("formContextKey");
const formItemContextKey = Symbol("formItemContextKey");
const useFormSize = (fallback, ignore = {}) => {
const emptyRef = vue.ref(void 0);
const size2 = ignore.prop ? emptyRef : useProp("size");
const globalConfig2 = ignore.global ? emptyRef : useGlobalSize();
const form = ignore.form ? { size: void 0 } : vue.inject(formContextKey, void 0);
const formItem = ignore.formItem ? { size: void 0 } : vue.inject(formItemContextKey, void 0);
return vue.computed(() => size2.value || vue.unref(fallback) || (formItem == null ? void 0 : formItem.size) || (form == null ? void 0 : form.size) || globalConfig2.value || "");
};
const useFormDisabled = (fallback) => {
const disabled = useProp("disabled");
const form = vue.inject(formContextKey, void 0);
return vue.computed(() => disabled.value || vue.unref(fallback) || (form == null ? void 0 : form.disabled) || false);
};
const useFormItem = () => {
const form = vue.inject(formContextKey, void 0);
const formItem = vue.inject(formItemContextKey, void 0);
return {
form,
formItem
};
};
const useFormItemInputId = (props, {
formItemContext,
disableIdGeneration,
disableIdManagement
}) => {
if (!disableIdGeneration) {
disableIdGeneration = vue.ref(false);
}
if (!disableIdManagement) {
disableIdManagement = vue.ref(false);
}
const inputId = vue.ref();
let idUnwatch = void 0;
const isLabeledByFormItem = vue.computed(() => {
var _a2;
return !!(!(props.label || props.ariaLabel) && formItemContext && formItemContext.inputIds && ((_a2 = formItemContext.inputIds) == null ? void 0 : _a2.length) <= 1);
});
vue.onMounted(() => {
idUnwatch = vue.watch([vue.toRef(props, "id"), disableIdGeneration], ([id, disableIdGeneration2]) => {
const newId = id != null ? id : !disableIdGeneration2 ? useId().value : void 0;
if (newId !== inputId.value) {
if (formItemContext == null ? void 0 : formItemContext.removeInputId) {
inputId.value && formItemContext.removeInputId(inputId.value);
if (!(disableIdManagement == null ? void 0 : disableIdManagement.value) && !disableIdGeneration2 && newId) {
formItemContext.addInputId(newId);
}
}
inputId.value = newId;
}
}, { immediate: true });
});
vue.onUnmounted(() => {
idUnwatch && idUnwatch();
if (formItemContext == null ? void 0 : formItemContext.removeInputId) {
inputId.value && formItemContext.removeInputId(inputId.value);
}
});
return {
isLabeledByFormItem,
inputId
};
};
let hiddenTextarea = void 0;
const HIDDEN_STYLE = `
height:0 !important;
visibility:hidden !important;
${isFirefox() ? "" : "overflow:hidden !important;"}
position:absolute !important;
z-index:-1000 !important;
top:0 !important;
right:0 !important;
`;
const CONTEXT_STYLE = [
"letter-spacing",
"line-height",
"padding-top",
"padding-bottom",
"font-family",
"font-weight",
"font-size",
"text-rendering",
"text-transform",
"width",
"text-indent",
"padding-left",
"padding-right",
"border-width",
"box-sizing"
];
function calculateNodeStyling(targetElement) {
const style = window.getComputedStyle(targetElement);
const boxSizing = style.getPropertyValue("box-sizing");
const paddingSize = Number.parseFloat(style.getPropertyValue("padding-bottom")) + Number.parseFloat(style.getPropertyValue("padding-top"));
const borderSize = Number.parseFloat(style.getPropertyValue("border-bottom-width")) + Number.parseFloat(style.getPropertyValue("border-top-width"));
const contextStyle = CONTEXT_STYLE.map((name) => `${name}:${style.getPropertyValue(name)}`).join(";");
return { contextStyle, paddingSize, borderSize, boxSizing };
}
function calcTextareaHeight(targetElement, minRows = 1, maxRows) {
var _a2;
if (!hiddenTextarea) {
hiddenTextarea = document.createElement("textarea");
document.body.appendChild(hiddenTextarea);
}
const { paddingSize, borderSize, boxSizing, contextStyle } = calculateNodeStyling(targetElement);
hiddenTextarea.setAttribute("style", `${contextStyle};${HIDDEN_STYLE}`);
hiddenTextarea.value = targetElement.value || targetElement.placeholder || "";
let height = hiddenTextarea.scrollHeight;
const result2 = {};
if (boxSizing === "border-box") {
height = height + borderSize;
} else if (boxSizing === "content-box") {
height = height - paddingSize;
}
hiddenTextarea.value = "";
const singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;
if (isNumber(minRows)) {
let minHeight = singleRowHeight * minRows;
if (boxSizing === "border-box") {
minHeight = minHeight + paddingSize + borderSize;
}
height = Math.max(minHeight, height);
result2.minHeight = `${minHeight}px`;
}
if (isNumber(maxRows)) {
let maxHeight = singleRowHeight * maxRows;
if (boxSizing === "border-box") {
maxHeight = maxHeight + paddingSize + borderSize;
}
height = Math.min(maxHeight, height);
}
result2.height = `${height}px`;
(_a2 = hiddenTextarea.parentNode) == null ? void 0 : _a2.removeChild(hiddenTextarea);
hiddenTextarea = void 0;
return result2;
}
const inputProps = buildProps({
id: {
type: String,
default: void 0
},
size: useSizeProp,
disabled: Boolean,
modelValue: {
type: definePropType([
String,
Number,
Object
]),
default: ""
},
maxlength: {
type: [String, Number]
},
minlength: {
type: [String, Number]
},
type: {
type: String,
default: "text"
},
resize: {
type: String,
values: ["none", "both", "horizontal", "vertical"]
},
autosize: {
type: definePropType([Boolean, Object]),
default: false
},
autocomplete: {
type: String,
default: "off"
},
formatter: {
type: Function
},
parser: {
type: Function
},
placeholder: {
type: String
},
form: {
type: String
},
readonly: Boolean,
clearable: Boolean,
showPassword: Boolean,
showWordLimit: Boolean,
suffixIcon: {
type: iconPropType
},
prefixIcon: {
type: iconPropType
},
containerRole: {
type: String,
default: void 0
},
tabindex: {
type: [String, Number],
default: 0
},
validateEvent: {
type: Boolean,
default: true
},
inputStyle: {
type: definePropType([Object, Array, String]),
default: () => mutable({})
},
autofocus: Boolean,
rows: {
type: Number,
default: 2
},
...useAriaProps(["ariaLabel"])
});
const inputEmits = {
[UPDATE_MODEL_EVENT]: (value) => isString(value),
input: (value) => isString(value),
change: (value) => isString(value),
focus: (evt) => evt instanceof FocusEvent,
blur: (evt) => evt instanceof FocusEvent,
clear: () => true,
mouseleave: (evt) => evt instanceof MouseEvent,
mouseenter: (evt) => evt instanceof MouseEvent,
keydown: (evt) => evt instanceof Event,
compositionstart: (evt) => evt instanceof CompositionEvent,
compositionupdate: (evt) => evt instanceof CompositionEvent,
compositionend: (evt) => evt instanceof CompositionEvent
};
const __default__$D = vue.defineComponent({
name: "ElInput",
inheritAttrs: false
});
const _sfc_main$_ = /* @__PURE__ */ vue.defineComponent({
...__default__$D,
props: inputProps,
emits: inputEmits,
setup(__props, { expose, emit }) {
const props = __props;
const rawAttrs = vue.useAttrs();
const slots = vue.useSlots();
const containerAttrs = vue.computed(() => {
const comboBoxAttrs = {};
if (props.containerRole === "combobox") {
comboBoxAttrs["aria-haspopup"] = rawAttrs["aria-haspopup"];
comboBoxAttrs["aria-owns"] = rawAttrs["aria-owns"];
comboBoxAttrs["aria-expanded"] = rawAttrs["aria-expanded"];
}
return comboBoxAttrs;
});
const containerKls = vue.computed(() => [
props.type === "textarea" ? nsTextarea.b() : nsInput.b(),
nsInput.m(inputSize.value),
nsInput.is("disabled", inputDisabled.value),
nsInput.is("exceed", inputExceed.value),
{
[nsInput.b("group")]: slots.prepend || slots.append,
[nsInput.m("prefix")]: slots.prefix || props.prefixIcon,
[nsInput.m("suffix")]: slots.suffix || props.suffixIcon || props.clearable || props.showPassword,
[nsInput.bm("suffix", "password-clear")]: showClear.value && showPwdVisible.value,
[nsInput.b("hidden")]: props.type === "hidden"
},
rawAttrs.class
]);
const wrapperKls = vue.computed(() => [
nsInput.e("wrapper"),
nsInput.is("focus", isFocused.value)
]);
const attrs = useAttrs({
excludeKeys: vue.computed(() => {
return Object.keys(containerAttrs.value);
})
});
const { form: elForm, formItem: elFormItem } = useFormItem();
const { inputId } = useFormItemInputId(props, {
formItemContext: elFormItem
});
const inputSize = useFormSize();
const inputDisabled = useFormDisabled();
const nsInput = useNamespace("input");
const nsTextarea = useNamespace("textarea");
const input = vue.shallowRef();
const textarea = vue.shallowRef();
const hovering = vue.ref(false);
const passwordVisible = vue.ref(false);
const countStyle = vue.ref();
const textareaCalcStyle = vue.shallowRef(props.inputStyle);
const _ref = vue.computed(() => input.value || textarea.value);
const { wrapperRef, isFocused, handleFocus, handleBlur } = useFocusController(_ref, {
beforeFocus() {
return inputDisabled.value;
},
afterBlur() {
var _a2;
if (props.validateEvent) {
(_a2 = elFormItem == null ? void 0 : elFormItem.validate) == null ? void 0 : _a2.call(elFormItem, "blur").catch((err) => debugWarn());
}
}
});
const needStatusIcon = vue.computed(() => {
var _a2;
return (_a2 = elForm == null ? void 0 : elForm.statusIcon) != null ? _a2 : false;
});
const validateState = vue.computed(() => (elFormItem == null ? void 0 : elFormItem.validateState) || "");
const validateIcon = vue.computed(() => validateState.value && ValidateComponentsMap[validateState.value]);
const passwordIcon = vue.computed(() => passwordVisible.value ? view_default : hide_default);
const containerStyle = vue.computed(() => [
rawAttrs.style
]);
const textareaStyle = vue.computed(() => [
props.inputStyle,
textareaCalcStyle.value,
{ resize: props.resize }
]);
const nativeInputValue = vue.computed(() => isNil(props.modelValue) ? "" : String(props.modelValue));
const showClear = vue.computed(() => props.clearable && !inputDisabled.value && !props.readonly && !!nativeInputValue.value && (isFocused.value || hovering.value));
const showPwdVisible = vue.computed(() => props.showPassword && !inputDisabled.value && !!nativeInputValue.value && (!!nativeInputValue.value || isFocused.value));
const isWordLimitVisible = vue.computed(() => props.showWordLimit && !!props.maxlength && (props.type === "text" || props.type === "textarea") && !inputDisabled.value && !props.readonly && !props.showPassword);
const textLength = vue.computed(() => nativeInputValue.value.length);
const inputExceed = vue.computed(() => !!isWordLimitVisible.value && textLength.value > Number(props.maxlength));
const suffixVisible = vue.computed(() => !!slots.suffix || !!props.suffixIcon || showClear.value || props.showPassword || isWordLimitVisible.value || !!validateState.value && needStatusIcon.value);
const [recordCursor, setCursor] = useCursor(input);
useResizeObserver(textarea, (entries) => {
onceInitSizeTextarea();
if (!isWordLimitVisible.value || props.resize !== "both")
return;
const entry = entries[0];
const { width } = entry.contentRect;
countStyle.value = {
right: `calc(100% - ${width + 15 + 6}px)`
};
});
const resizeTextarea = () => {
const { type, autosize } = props;
if (!isClient || type !== "textarea" || !textarea.value)
return;
if (autosize) {
const minRows = isObject$1(autosize) ? autosize.minRows : void 0;
const maxRows = isObject$1(autosize) ? autosize.maxRows : void 0;
const textareaStyle2 = calcTextareaHeight(textarea.value, minRows, maxRows);
textareaCalcStyle.value = {
overflowY: "hidden",
...textareaStyle2
};
vue.nextTick(() => {
textarea.value.offsetHeight;
textareaCalcStyle.value = textareaStyle2;
});
} else {
textareaCalcStyle.value = {
minHeight: calcTextareaHeight(textarea.value).minHeight
};
}
};
const createOnceInitResize = (resizeTextarea2) => {
let isInit = false;
return () => {
var _a2;
if (isInit || !props.autosize)
return;
const isElHidden = ((_a2 = textarea.value) == null ? void 0 : _a2.offsetParent) === null;
if (!isElHidden) {
resizeTextarea2();
isInit = true;
}
};
};
const onceInitSizeTextarea = createOnceInitResize(resizeTextarea);
const setNativeInputValue = () => {
const input2 = _ref.value;
const formatterValue = props.formatter ? props.formatter(nativeInputValue.value) : nativeInputValue.value;
if (!input2 || input2.value === formatterValue)
return;
input2.value = formatterValue;
};
const handleInput = async (event) => {
recordCursor();
let { value } = event.target;
if (props.formatter) {
value = props.parser ? props.parser(value) : value;
}
if (isComposing.value)
return;
if (value === nativeInputValue.value) {
setNativeInputValue();
return;
}
emit(UPDATE_MODEL_EVENT, value);
emit("input", value);
await vue.nextTick();
setNativeInputValue();
setCursor();
};
const handleChange = (event) => {
emit("change", event.target.value);
};
const {
isComposing,
handleCompositionStart,
handleCompositionUpdate,
handleCompositionEnd
} = useComposition({ emit, afterComposition: handleInput });
const handlePasswordVisible = () => {
passwordVisible.value = !passwordVisible.value;
focus();
};
const focus = async () => {
var _a2;
await vue.nextTick();
(_a2 = _ref.value) == null ? void 0 : _a2.focus();
};
const blur = () => {
var _a2;
return (_a2 = _ref.value) == null ? void 0 : _a2.blur();
};
const handleMouseLeave = (evt) => {
hovering.value = false;
emit("mouseleave", evt);
};
const handleMouseEnter = (evt) => {
hovering.value = true;
emit("mouseenter", evt);
};
const handleKeydown = (evt) => {
emit("keydown", evt);
};
const select = () => {
var _a2;
(_a2 = _ref.value) == null ? void 0 : _a2.select();
};
const clear = () => {
emit(UPDATE_MODEL_EVENT, "");
emit("change", "");
emit("clear");
emit("input", "");
};
vue.watch(() => props.modelValue, () => {
var _a2;
vue.nextTick(() => resizeTextarea());
if (props.validateEvent) {
(_a2 = elFormItem == null ? void 0 : elFormItem.validate) == null ? void 0 : _a2.call(elFormItem, "change").catch((err) => debugWarn());
}
});
vue.watch(nativeInputValue, () => setNativeInputValue());
vue.watch(() => props.type, async () => {
await vue.nextTick();
setNativeInputValue();
resizeTextarea();
});
vue.onMounted(() => {
if (!props.formatter && props.parser) ;
setNativeInputValue();
vue.nextTick(resizeTextarea);
});
expose({
input,
textarea,
ref: _ref,
textareaStyle,
autosize: vue.toRef(props, "autosize"),
isComposing,
focus,
blur,
select,
clear,
resizeTextarea
});
return (_ctx, _cache) => {
return vue.openBlock(), vue.createElementBlock("div", vue.mergeProps(vue.unref(containerAttrs), {
class: [
vue.unref(containerKls),
{
[vue.unref(nsInput).bm("group", "append")]: _ctx.$slots.append,
[vue.unref(nsInput).bm("group", "prepend")]: _ctx.$slots.prepend
}
],
style: vue.unref(containerStyle),
role: _ctx.containerRole,
onMouseenter: handleMouseEnter,
onMouseleave: handleMouseLeave
}), [
vue.createCommentVNode(" input "),
_ctx.type !== "textarea" ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
vue.createCommentVNode(" prepend slot "),
_ctx.$slots.prepend ? (vue.openBlock(), vue.createElementBlock("div", {
key: 0,
class: vue.normalizeClass(vue.unref(nsInput).be("group", "prepend"))
}, [
vue.renderSlot(_ctx.$slots, "prepend")
], 2)) : vue.createCommentVNode("v-if", true),
vue.createElementVNode("div", {
ref_key: "wrapperRef",
ref: wrapperRef,
class: vue.normalizeClass(vue.unref(wrapperKls))
}, [
vue.createCommentVNode(" prefix slot "),
_ctx.$slots.prefix || _ctx.prefixIcon ? (vue.openBlock(), vue.createElementBlock("span", {
key: 0,
class: vue.normalizeClass(vue.unref(nsInput).e("prefix"))
}, [
vue.createElementVNode("span", {
class: vue.normalizeClass(vue.unref(nsInput).e("prefix-inner"))
}, [
vue.renderSlot(_ctx.$slots, "prefix"),
_ctx.prefixIcon ? (vue.openBlock(), vue.createBlock(vue.unref(ElIcon), {
key: 0,
class: vue.normalizeClass(vue.unref(nsInput).e("icon"))
}, {
default: vue.withCtx(() => [
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.prefixIcon)))
]),
_: 1
}, 8, ["class"])) : vue.createCommentVNode("v-if", true)
], 2)
], 2)) : vue.createCommentVNode("v-if", true),
vue.createElementVNode("input", vue.mergeProps({
id: vue.unref(inputId),
ref_key: "input",
ref: input,
class: vue.unref(nsInput).e("inner")
}, vue.unref(attrs), {
minlength: _ctx.minlength,
maxlength: _ctx.maxlength,
type: _ctx.showPassword ? passwordVisible.value ? "text" : "password" : _ctx.type,
disabled: vue.unref(inputDisabled),
readonly: _ctx.readonly,
autocomplete: _ctx.autocomplete,
tabindex: _ctx.tabindex,
"aria-label": _ctx.ariaLabel,
placeholder: _ctx.placeholder,
style: _ctx.inputStyle,
form: _ctx.form,
autofocus: _ctx.autofocus,
onCompositionstart: vue.unref(handleCompositionStart),
onCompositionupdate: vue.unref(handleCompositionUpdate),
onCompositionend: vue.unref(handleCompositionEnd),
onInput: handleInput,
onChange: handleChange,
onKeydown: handleKeydown
}), null, 16, ["id", "minlength", "maxlength", "type", "disabled", "readonly", "autocomplete", "tabindex", "aria-label", "placeholder", "form", "autofocus", "onCompositionstart", "onCompositionupdate", "onCompositionend"]),
vue.createCommentVNode(" suffix slot "),
vue.unref(suffixVisible) ? (vue.openBlock(), vue.createElementBlock("span", {
key: 1,
class: vue.normalizeClass(vue.unref(nsInput).e("suffix"))
}, [
vue.createElementVNode("span", {
class: vue.normalizeClass(vue.unref(nsInput).e("suffix-inner"))
}, [
!vue.unref(showClear) || !vue.unref(showPwdVisible) || !vue.unref(isWordLimitVisible) ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
vue.renderSlot(_ctx.$slots, "suffix"),
_ctx.suffixIcon ? (vue.openBlock(), vue.createBlock(vue.unref(ElIcon), {
key: 0,
class: vue.normalizeClass(vue.unref(nsInput).e("icon"))
}, {
default: vue.withCtx(() => [
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.suffixIcon)))
]),
_: 1
}, 8, ["class"])) : vue.createCommentVNode("v-if", true)
], 64)) : vue.createCommentVNode("v-if", true),
vue.unref(showClear) ? (vue.openBlock(), vue.createBlock(vue.unref(ElIcon), {
key: 1,
class: vue.normalizeClass([vue.unref(nsInput).e("icon"), vue.unref(nsInput).e("clear")]),
onMousedown: vue.withModifiers(vue.unref(NOOP), ["prevent"]),
onClick: clear
}, {
default: vue.withCtx(() => [
vue.createVNode(vue.unref(circle_close_default))
]),
_: 1
}, 8, ["class", "onMousedown"])) : vue.createCommentVNode("v-if", true),
vue.unref(showPwdVisible) ? (vue.openBlock(), vue.createBlock(vue.unref(ElIcon), {
key: 2,
class: vue.normalizeClass([vue.unref(nsInput).e("icon"), vue.unref(nsInput).e("password")]),
onClick: handlePasswordVisible
}, {
default: vue.withCtx(() => [
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(vue.unref(passwordIcon))))
]),
_: 1
}, 8, ["class"])) : vue.createCommentVNode("v-if", true),
vue.unref(isWordLimitVisible) ? (vue.openBlock(), vue.createElementBlock("span", {
key: 3,
class: vue.normalizeClass(vue.unref(nsInput).e("count"))
}, [
vue.createElementVNode("span", {
class: vue.normalizeClass(vue.unref(nsInput).e("count-inner"))
}, vue.toDisplayString(vue.unref(textLength)) + " / " + vue.toDisplayString(_ctx.maxlength), 3)
], 2)) : vue.createCommentVNode("v-if", true),
vue.unref(validateState) && vue.unref(validateIcon) && vue.unref(needStatusIcon) ? (vue.openBlock(), vue.createBlock(vue.unref(ElIcon), {
key: 4,
class: vue.normalizeClass([
vue.unref(nsInput).e("icon"),
vue.unref(nsInput).e("validateIcon"),
vue.unref(nsInput).is("loading", vue.unref(validateState) === "validating")
])
}, {
default: vue.withCtx(() => [
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(vue.unref(validateIcon))))
]),
_: 1
}, 8, ["class"])) : vue.createCommentVNode("v-if", true)
], 2)
], 2)) : vue.createCommentVNode("v-if", true)
], 2),
vue.createCommentVNode(" append slot "),
_ctx.$slots.append ? (vue.openBlock(), vue.createElementBlock("div", {
key: 1,
class: vue.normalizeClass(vue.unref(nsInput).be("group", "append"))
}, [
vue.renderSlot(_ctx.$slots, "append")
], 2)) : vue.createCommentVNode("v-if", true)
], 64)) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
vue.createCommentVNode(" textarea "),
vue.createElementVNode("textarea", vue.mergeProps({
id: vue.unref(inputId),
ref_key: "textarea",
ref: textarea,
class: [vue.unref(nsTextarea).e("inner"), vue.unref(nsInput).is("focus", vue.unref(isFocused))]
}, vue.unref(attrs), {
minlength: _ctx.minlength,
maxlength: _ctx.maxlength,
tabindex: _ctx.tabindex,
disabled: vue.unref(inputDisabled),
readonly: _ctx.readonly,
autocomplete: _ctx.autocomplete,
style: vue.unref(textareaStyle),
"aria-label": _ctx.ariaLabel,
placeholder: _ctx.placeholder,
form: _ctx.form,
autofocus: _ctx.autofocus,
rows: _ctx.rows,
onCompositionstart: vue.unref(handleCompositionStart),
onCompositionupdate: vue.unref(handleCompositionUpdate),
onCompositionend: vue.unref(handleCompositionEnd),
onInput: handleInput,
onFocus: vue.unref(handleFocus),
onBlur: vue.unref(handleBlur),
onChange: handleChange,
onKeydown: handleKeydown
}), null, 16, ["id", "minlength", "maxlength", "tabindex", "disabled", "readonly", "autocomplete", "aria-label", "placeholder", "form", "autofocus", "rows", "onCompositionstart", "onCompositionupdate", "onCompositionend", "onFocus", "onBlur"]),
vue.unref(isWordLimitVisible) ? (vue.openBlock(), vue.createElementBlock("span", {
key: 0,
style: vue.normalizeStyle(countStyle.value),
class: vue.normalizeClass(vue.unref(nsInput).e("count"))
}, vue.toDisplayString(vue.unref(textLength)) + " / " + vue.toDisplayString(_ctx.maxlength), 7)) : vue.createCommentVNode("v-if", true)
], 64))
], 16, ["role"]);
};
}
});
var Input = /* @__PURE__ */ _export_sfc(_sfc_main$_, [["__file", "input.vue"]]);
const ElInput = withInstall(Input);
const GAP = 4;
const BAR_MAP = {
vertical: {
offset: "offsetHeight",
scroll: "scrollTop",
scrollSize: "scrollHeight",
size: "height",
key: "vertical",
axis: "Y",
client: "clientY",
direction: "top"
},
horizontal: {
offset: "offsetWidth",
scroll: "scrollLeft",
scrollSize: "scrollWidth",
size: "width",
key: "horizontal",
axis: "X",
client: "clientX",
direction: "left"
}
};
const renderThumbStyle = ({
move,
size: size2,
bar
}) => ({
[bar.size]: size2,
transform: `translate${bar.axis}(${move}%)`
});
const scrollbarContextKey = Symbol("scrollbarContextKey");
const thumbProps = buildProps({
vertical: Boolean,
size: String,
move: Number,
ratio: {
type: Number,
required: true
},
always: Boolean
});
const COMPONENT_NAME$7 = "Thumb";
const _sfc_main$Z = /* @__PURE__ */ vue.defineComponent({
__name: "thumb",
props: thumbProps,
setup(__props) {
const props = __props;
const scrollbar = vue.inject(scrollbarContextKey);
const ns = useNamespace("scrollbar");
if (!scrollbar)
throwError(COMPONENT_NAME$7, "can not inject scrollbar context");
const instance = vue.ref();
const thumb = vue.ref();
const thumbState = vue.ref({});
const visible = vue.ref(false);
let cursorDown = false;
let cursorLeave = false;
let originalOnSelectStart = isClient ? document.onselectstart : null;
const bar = vue.computed(() => BAR_MAP[props.vertical ? "vertical" : "horizontal"]);
const thumbStyle = vue.computed(() => renderThumbStyle({
size: props.size,
move: props.move,
bar: bar.value
}));
const offsetRatio = vue.computed(() => instance.value[bar.value.offset] ** 2 / scrollbar.wrapElement[bar.value.scrollSize] / props.ratio / thumb.value[bar.value.offset]);
const clickThumbHandler = (e) => {
var _a2;
e.stopPropagation();
if (e.ctrlKey || [1, 2].includes(e.button))
return;
(_a2 = window.getSelection()) == null ? void 0 : _a2.removeAllRanges();
startDrag(e);
const el = e.currentTarget;
if (!el)
return;
thumbState.value[bar.value.axis] = el[bar.value.offset] - (e[bar.value.client] - el.getBoundingClientRect()[bar.value.direction]);
};
const clickTrackHandler = (e) => {
if (!thumb.value || !instance.value || !scrollbar.wrapElement)
return;
const offset = Math.abs(e.target.getBoundingClientRect()[bar.value.direction] - e[bar.value.client]);
const thumbHalf = thumb.value[bar.value.offset] / 2;
const thumbPositionPercentage = (offset - thumbHalf) * 100 * offsetRatio.value / instance.value[bar.value.offset];
scrollbar.wrapElement[bar.value.scroll] = thumbPositionPercentage * scrollbar.wrapElement[bar.value.scrollSize] / 100;
};
const startDrag = (e) => {
e.stopImmediatePropagation();
cursorDown = true;
document.addEventListener("mousemove", mouseMoveDocumentHandler);
document.addEventListener("mouseup", mouseUpDocumentHandler);
originalOnSelectStart = document.onselectstart;
document.onselectstart = () => false;
};
const mouseMoveDocumentHandler = (e) => {
if (!instance.value || !thumb.value)
return;
if (cursorDown === false)
return;
const prevPage = thumbState.value[bar.value.axis];
if (!prevPage)
return;
const offset = (instance.value.getBoundingClientRect()[bar.value.direction] - e[bar.value.client]) * -1;
const thumbClickPosition = thumb.value[bar.value.offset] - prevPage;
const thumbPositionPercentage = (offset - thumbClickPosition) * 100 * offsetRatio.value / instance.value[bar.value.offset];
scrollbar.wrapElement[bar.value.scroll] = thumbPositionPercentage * scrollbar.wrapElement[bar.value.scrollSize] / 100;
};
const mouseUpDocumentHandler = () => {
cursorDown = false;
thumbState.value[bar.value.axis] = 0;
document.removeEventListener("mousemove", mouseMoveDocumentHandler);
document.removeEventListener("mouseup", mouseUpDocumentHandler);
restoreOnselectstart();
if (cursorLeave)
visible.value = false;
};
const mouseMoveScrollbarHandler = () => {
cursorLeave = false;
visible.value = !!props.size;
};
const mouseLeaveScrollbarHandler = () => {
cursorLeave = true;
visible.value = cursorDown;
};
vue.onBeforeUnmount(() => {
restoreOnselectstart();
document.removeEventListener("mouseup", mouseUpDocumentHandler);
});
const restoreOnselectstart = () => {
if (document.onselectstart !== originalOnSelectStart)
document.onselectstart = originalOnSelectStart;
};
useEventListener(vue.toRef(scrollbar, "scrollbarElement"), "mousemove", mouseMoveScrollbarHandler);
useEventListener(vue.toRef(scrollbar, "scrollbarElement"), "mouseleave", mouseLeaveScrollbarHandler);
return (_ctx, _cache) => {
return vue.openBlock(), vue.createBlock(vue.Transition, {
name: vue.unref(ns).b("fade"),
persisted: ""
}, {
default: vue.withCtx(() => [
vue.withDirectives(vue.createElementVNode("div", {
ref_key: "instance",
ref: instance,
class: vue.normalizeClass([vue.unref(ns).e("bar"), vue.unref(ns).is(vue.unref(bar).key)]),
onMousedown: clickTrackHandler
}, [
vue.createElementVNode("div", {
ref_key: "thumb",
ref: thumb,
class: vue.normalizeClass(vue.unref(ns).e("thumb")),
style: vue.normalizeStyle(vue.unref(thumbStyle)),
onMousedown: clickThumbHandler
}, null, 38)
], 34), [
[vue.vShow, _ctx.always || visible.value]
])
]),
_: 1
}, 8, ["name"]);
};
}
});
var Thumb = /* @__PURE__ */ _export_sfc(_sfc_main$Z, [["__file", "thumb.vue"]]);
const barProps = buildProps({
always: {
type: Boolean,
default: true
},
minSize: {
type: Number,
required: true
}
});
const _sfc_main$Y = /* @__PURE__ */ vue.defineComponent({
__name: "bar",
props: barProps,
setup(__props, { expose }) {
const props = __props;
const scrollbar = vue.inject(scrollbarContextKey);
const moveX = vue.ref(0);
const moveY = vue.ref(0);
const sizeWidth = vue.ref("");
const sizeHeight = vue.ref("");
const ratioY = vue.ref(1);
const ratioX = vue.ref(1);
const handleScroll = (wrap2) => {
if (wrap2) {
const offsetHeight = wrap2.offsetHeight - GAP;
const offsetWidth = wrap2.offsetWidth - GAP;
moveY.value = wrap2.scrollTop * 100 / offsetHeight * ratioY.value;
moveX.value = wrap2.scrollLeft * 100 / offsetWidth * ratioX.value;
}
};
const update = () => {
const wrap2 = scrollbar == null ? void 0 : scrollbar.wrapElement;
if (!wrap2)
return;
const offsetHeight = wrap2.offsetHeight - GAP;
const offsetWidth = wrap2.offsetWidth - GAP;
const originalHeight = offsetHeight ** 2 / wrap2.scrollHeight;
const originalWidth = offsetWidth ** 2 / wrap2.scrollWidth;
const height = Math.max(originalHeight, props.minSize);
const width = Math.max(originalWidth, props.minSize);
ratioY.value = originalHeight / (offsetHeight - originalHeight) / (height / (offsetHeight - height));
ratioX.value = originalWidth / (offsetWidth - originalWidth) / (width / (offsetWidth - width));
sizeHeight.value = height + GAP < offsetHeight ? `${height}px` : "";
sizeWidth.value = width + GAP < offsetWidth ? `${width}px` : "";
};
expose({
handleScroll,
update
});
return (_ctx, _cache) => {
return vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [
vue.createVNode(Thumb, {
move: moveX.value,
ratio: ratioX.value,
size: sizeWidth.value,
always: _ctx.always
}, null, 8, ["move", "ratio", "size", "always"]),
vue.createVNode(Thumb, {
move: moveY.value,
ratio: ratioY.value,
size: sizeHeight.value,
vertical: "",
always: _ctx.always
}, null, 8, ["move", "ratio", "size", "always"])
], 64);
};
}
});
var Bar = /* @__PURE__ */ _export_sfc(_sfc_main$Y, [["__file", "bar.vue"]]);
const scrollbarProps = buildProps({
height: {
type: [String, Number],
default: ""
},
maxHeight: {
type: [String, Number],
default: ""
},
native: {
type: Boolean,
default: false
},
wrapStyle: {
type: definePropType([String, Object, Array]),
default: ""
},
wrapClass: {
type: [String, Array],
default: ""
},
viewClass: {
type: [String, Array],
default: ""
},
viewStyle: {
type: [String, Array, Object],
default: ""
},
noresize: Boolean,
tag: {
type: String,
default: "div"
},
always: Boolean,
minSize: {
type: Number,
default: 20
},
tabindex: {
type: [String, Number],
default: void 0
},
id: String,
role: String,
...useAriaProps(["ariaLabel", "ariaOrientation"])
});
const scrollbarEmits = {
scroll: ({
scrollTop,
scrollLeft
}) => [scrollTop, scrollLeft].every(isNumber)
};
const COMPONENT_NAME$6 = "ElScrollbar";
const __default__$C = vue.defineComponent({
name: COMPONENT_NAME$6
});
const _sfc_main$X = /* @__PURE__ */ vue.defineComponent({
...__default__$C,
props: scrollbarProps,
emits: scrollbarEmits,
setup(__props, { expose, emit }) {
const props = __props;
const ns = useNamespace("scrollbar");
let stopResizeObserver = void 0;
let stopResizeListener = void 0;
let wrapScrollTop = 0;
let wrapScrollLeft = 0;
const scrollbarRef = vue.ref();
const wrapRef = vue.ref();
const resizeRef = vue.ref();
const barRef = vue.ref();
const wrapStyle = vue.computed(() => {
const style = {};
if (props.height)
style.height = addUnit(props.height);
if (props.maxHeight)
style.maxHeight = addUnit(props.maxHeight);
return [props.wrapStyle, style];
});
const wrapKls = vue.computed(() => {
return [
props.wrapClass,
ns.e("wrap"),
{ [ns.em("wrap", "hidden-default")]: !props.native }
];
});
const resizeKls = vue.computed(() => {
return [ns.e("view"), props.viewClass];
});
const handleScroll = () => {
var _a2;
if (wrapRef.value) {
(_a2 = barRef.value) == null ? void 0 : _a2.handleScroll(wrapRef.value);
wrapScrollTop = wrapRef.value.scrollTop;
wrapScrollLeft = wrapRef.value.scrollLeft;
emit("scroll", {
scrollTop: wrapRef.value.scrollTop,
scrollLeft: wrapRef.value.scrollLeft
});
}
};
function scrollTo(arg1, arg2) {
if (isObject$1(arg1)) {
wrapRef.value.scrollTo(arg1);
} else if (isNumber(arg1) && isNumber(arg2)) {
wrapRef.value.scrollTo(arg1, arg2);
}
}
const setScrollTop = (value) => {
if (!isNumber(value)) {
return;
}
wrapRef.value.scrollTop = value;
};
const setScrollLeft = (value) => {
if (!isNumber(value)) {
return;
}
wrapRef.value.scrollLeft = value;
};
const update = () => {
var _a2;
(_a2 = barRef.value) == null ? void 0 : _a2.update();
};
vue.watch(() => props.noresize, (noresize) => {
if (noresize) {
stopResizeObserver == null ? void 0 : stopResizeObserver();
stopResizeListener == null ? void 0 : stopResizeListener();
} else {
({ stop: stopResizeObserver } = useResizeObserver(resizeRef, update));
stopResizeListener = useEventListener("resize", update);
}
}, { immediate: true });
vue.watch(() => [props.maxHeight, props.height], () => {
if (!props.native)
vue.nextTick(() => {
var _a2;
update();
if (wrapRef.value) {
(_a2 = barRef.value) == null ? void 0 : _a2.handleScroll(wrapRef.value);
}
});
});
vue.provide(scrollbarContextKey, vue.reactive({
scrollbarElement: scrollbarRef,
wrapElement: wrapRef
}));
vue.onActivated(() => {
if (wrapRef.value) {
wrapRef.value.scrollTop = wrapScrollTop;
wrapRef.value.scrollLeft = wrapScrollLeft;
}
});
vue.onMounted(() => {
if (!props.native)
vue.nextTick(() => {
update();
});
});
vue.onUpdated(() => update());
expose({
wrapRef,
update,
scrollTo,
setScrollTop,
setScrollLeft,
handleScroll
});
return (_ctx, _cache) => {
return vue.openBlock(), vue.createElementBlock("div", {
ref_key: "scrollbarRef",
ref: scrollbarRef,
class: vue.normalizeClass(vue.unref(ns).b())
}, [
vue.createElementVNode("div", {
ref_key: "wrapRef",
ref: wrapRef,
class: vue.normalizeClass(vue.unref(wrapKls)),
style: vue.normalizeStyle(vue.unref(wrapStyle)),
tabindex: _ctx.tabindex,
onScroll: handleScroll
}, [
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.tag), {
id: _ctx.id,
ref_key: "resizeRef",
ref: resizeRef,
class: vue.normalizeClass(vue.unref(resizeKls)),
style: vue.normalizeStyle(_ctx.viewStyle),
role: _ctx.role,
"aria-label": _ctx.ariaLabel,
"aria-orientation": _ctx.ariaOrientation
}, {
default: vue.withCtx(() => [
vue.renderSlot(_ctx.$slots, "default")
]),
_: 3
}, 8, ["id", "class", "style", "role", "aria-label", "aria-orientation"]))
], 46, ["tabindex"]),
!_ctx.native ? (vue.openBlock(), vue.createBlock(Bar, {
key: 0,
ref_key: "barRef",
ref: barRef,
always: _ctx.always,
"min-size": _ctx.minSize
}, null, 8, ["always", "min-size"])) : vue.createCommentVNode("v-if", true)
], 2);
};
}
});
var Scrollbar = /* @__PURE__ */ _export_sfc(_sfc_main$X, [["__file", "scrollbar.vue"]]);
const ElScrollbar = withInstall(Scrollbar);
const POPPER_INJECTION_KEY = Symbol("popper");
const POPPER_CONTENT_INJECTION_KEY = Symbol("popperContent");
const roleTypes = [
"dialog",
"grid",
"group",
"listbox",
"menu",
"navigation",
"tooltip",
"tree"
];
const popperProps = buildProps({
role: {
type: String,
values: roleTypes,
default: "tooltip"
}
});
const __default__$B = vue.defineComponent({
name: "ElPopper",
inheritAttrs: false
});
const _sfc_main$W = /* @__PURE__ */ vue.defineComponent({
...__default__$B,
props: popperProps,
setup(__props, { expose }) {
const props = __props;
const triggerRef = vue.ref();
const popperInstanceRef = vue.ref();
const contentRef = vue.ref();
const referenceRef = vue.ref();
const role = vue.computed(() => props.role);
const popperProvides = {
triggerRef,
popperInstanceRef,
contentRef,
referenceRef,
role
};
expose(popperProvides);
vue.provide(POPPER_INJECTION_KEY, popperProvides);
return (_ctx, _cache) => {
return vue.renderSlot(_ctx.$slots, "default");
};
}
});
var Popper = /* @__PURE__ */ _export_sfc(_sfc_main$W, [["__file", "popper.vue"]]);
const popperArrowProps = buildProps({
arrowOffset: {
type: Number,
default: 5
}
});
const __default__$A = vue.defineComponent({
name: "ElPopperArrow",
inheritAttrs: false
});
const _sfc_main$V = /* @__PURE__ */ vue.defineComponent({
...__default__$A,
props: popperArrowProps,
setup(__props, { expose }) {
const props = __props;
const ns = useNamespace("popper");
const { arrowOffset, arrowRef, arrowStyle } = vue.inject(POPPER_CONTENT_INJECTION_KEY, void 0);
vue.watch(() => props.arrowOffset, (val) => {
arrowOffset.value = val;
});
vue.onBeforeUnmount(() => {
arrowRef.value = void 0;
});
expose({
arrowRef
});
return (_ctx, _cache) => {
return vue.openBlock(), vue.createElementBlock("span", {
ref_key: "arrowRef",
ref: arrowRef,
class: vue.normalizeClass(vue.unref(ns).e("arrow")),
style: vue.normalizeStyle(vue.unref(arrowStyle)),
"data-popper-arrow": ""
}, null, 6);
};
}
});
var ElPopperArrow = /* @__PURE__ */ _export_sfc(_sfc_main$V, [["__file", "arrow.vue"]]);
const NAME = "ElOnlyChild";
const OnlyChild = vue.defineComponent({
name: NAME,
setup(_2, {
slots,
attrs
}) {
var _a2;
const forwardRefInjection = vue.inject(FORWARD_REF_INJECTION_KEY);
const forwardRefDirective = useForwardRefDirective((_a2 = forwardRefInjection == null ? void 0 : forwardRefInjection.setForwardRef) != null ? _a2 : NOOP);
return () => {
var _a22;
const defaultSlot = (_a22 = slots.default) == null ? void 0 : _a22.call(slots, attrs);
if (!defaultSlot)
return null;
if (defaultSlot.length > 1) {
return null;
}
const firstLegitNode = findFirstLegitChild(defaultSlot);
if (!firstLegitNode) {
return null;
}
return vue.withDirectives(vue.cloneVNode(firstLegitNode, attrs), [[forwardRefDirective]]);
};
}
});
function findFirstLegitChild(node) {
if (!node)
return null;
const children = node;
for (const child of children) {
if (isObject$1(child)) {
switch (child.type) {
case vue.Comment:
continue;
case vue.Text:
case "svg":
return wrapTextContent(child);
case vue.Fragment:
return findFirstLegitChild(child.children);
default:
return child;
}
}
return wrapTextContent(child);
}
return null;
}
function wrapTextContent(s) {
const ns = useNamespace("only-child");
return vue.createVNode("span", {
"class": ns.e("content")
}, [s]);
}
const popperTriggerProps = buildProps({
virtualRef: {
type: definePropType(Object)
},
virtualTriggering: Boolean,
onMouseenter: {
type: definePropType(Function)
},
onMouseleave: {
type: definePropType(Function)
},
onClick: {
type: definePropType(Function)
},
onKeydown: {
type: definePropType(Function)
},
onFocus: {
type: definePropType(Function)
},
onBlur: {
type: definePropType(Function)
},
onContextmenu: {
type: definePropType(Function)
},
id: String,
open: Boolean
});
const __default__$z = vue.defineComponent({
name: "ElPopperTrigger",
inheritAttrs: false
});
const _sfc_main$U = /* @__PURE__ */ vue.defineComponent({
...__default__$z,
props: popperTriggerProps,
setup(__props, { expose }) {
const props = __props;
const { role, triggerRef } = vue.inject(POPPER_INJECTION_KEY, void 0);
useForwardRef(triggerRef);
const ariaControls = vue.computed(() => {
return ariaHaspopup.value ? props.id : void 0;
});
const ariaDescribedby = vue.computed(() => {
if (role && role.value === "tooltip") {
return props.open && props.id ? props.id : void 0;
}
return void 0;
});
const ariaHaspopup = vue.computed(() => {
if (role && role.value !== "tooltip") {
return role.value;
}
return void 0;
});
const ariaExpanded = vue.computed(() => {
return ariaHaspopup.value ? `${props.open}` : void 0;
});
let virtualTriggerAriaStopWatch = void 0;
const TRIGGER_ELE_EVENTS = [
"onMouseenter",
"onMouseleave",
"onClick",
"onKeydown",
"onFocus",
"onBlur",
"onContextmenu"
];
vue.onMounted(() => {
vue.watch(() => props.virtualRef, (virtualEl) => {
if (virtualEl) {
triggerRef.value = unrefElement(virtualEl);
}
}, {
immediate: true
});
vue.watch(triggerRef, (el, prevEl) => {
virtualTriggerAriaStopWatch == null ? void 0 : virtualTriggerAriaStopWatch();
virtualTriggerAriaStopWatch = void 0;
if (isElement(el)) {
TRIGGER_ELE_EVENTS.forEach((eventName) => {
var _a2;
const handler = props[eventName];
if (handler) {
el.addEventListener(eventName.slice(2).toLowerCase(), handler);
(_a2 = prevEl == null ? void 0 : prevEl.removeEventListener) == null ? void 0 : _a2.call(prevEl, eventName.slice(2).toLowerCase(), handler);
}
});
virtualTriggerAriaStopWatch = vue.watch([ariaControls, ariaDescribedby, ariaHaspopup, ariaExpanded], (watches) => {
[
"aria-controls",
"aria-describedby",
"aria-haspopup",
"aria-expanded"
].forEach((key, idx) => {
isNil(watches[idx]) ? el.removeAttribute(key) : el.setAttribute(key, watches[idx]);
});
}, { immediate: true });
}
if (isElement(prevEl)) {
[
"aria-controls",
"aria-describedby",
"aria-haspopup",
"aria-expanded"
].forEach((key) => prevEl.removeAttribute(key));
}
}, {
immediate: true
});
});
vue.onBeforeUnmount(() => {
virtualTriggerAriaStopWatch == null ? void 0 : virtualTriggerAriaStopWatch();
virtualTriggerAriaStopWatch = void 0;
if (triggerRef.value && isElement(triggerRef.value)) {
const el = triggerRef.value;
TRIGGER_ELE_EVENTS.forEach((eventName) => {
const handler = props[eventName];
if (handler) {
el.removeEventListener(eventName.slice(2).toLowerCase(), handler);
}
});
triggerRef.value = void 0;
}
});
expose({
triggerRef
});
return (_ctx, _cache) => {
return !_ctx.virtualTriggering ? (vue.openBlock(), vue.createBlock(vue.unref(OnlyChild), vue.mergeProps({ key: 0 }, _ctx.$attrs, {
"aria-controls": vue.unref(ariaControls),
"aria-describedby": vue.unref(ariaDescribedby),
"aria-expanded": vue.unref(ariaExpanded),
"aria-haspopup": vue.unref(ariaHaspopup)
}), {
default: vue.withCtx(() => [
vue.renderSlot(_ctx.$slots, "default")
]),
_: 3
}, 16, ["aria-controls", "aria-describedby", "aria-expanded", "aria-haspopup"])) : vue.createCommentVNode("v-if", true);
};
}
});
var ElPopperTrigger = /* @__PURE__ */ _export_sfc(_sfc_main$U, [["__file", "trigger.vue"]]);
const FOCUS_AFTER_TRAPPED = "focus-trap.focus-after-trapped";
const FOCUS_AFTER_RELEASED = "focus-trap.focus-after-released";
const FOCUSOUT_PREVENTED = "focus-trap.focusout-prevented";
const FOCUS_AFTER_TRAPPED_OPTS = {
cancelable: true,
bubbles: false
};
const FOCUSOUT_PREVENTED_OPTS = {
cancelable: true,
bubbles: false
};
const ON_TRAP_FOCUS_EVT = "focusAfterTrapped";
const ON_RELEASE_FOCUS_EVT = "focusAfterReleased";
const FOCUS_TRAP_INJECTION_KEY = Symbol("elFocusTrap");
const focusReason = vue.ref();
const lastUserFocusTimestamp = vue.ref(0);
const lastAutomatedFocusTimestamp = vue.ref(0);
let focusReasonUserCount = 0;
const obtainAllFocusableElements = (element) => {
const nodes = [];
const walker = document.createTreeWalker(element, NodeFilter.SHOW_ELEMENT, {
acceptNode: (node) => {
const isHiddenInput = node.tagName === "INPUT" && node.type === "hidden";
if (node.disabled || node.hidden || isHiddenInput)
return NodeFilter.FILTER_SKIP;
return node.tabIndex >= 0 || node === document.activeElement ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;
}
});
while (walker.nextNode())
nodes.push(walker.currentNode);
return nodes;
};
const getVisibleElement = (elements, container) => {
for (const element of elements) {
if (!isHidden(element, container))
return element;
}
};
const isHidden = (element, container) => {
if (getComputedStyle(element).visibility === "hidden")
return true;
while (element) {
if (container && element === container)
return false;
if (getComputedStyle(element).display === "none")
return true;
element = element.parentElement;
}
return false;
};
const getEdges = (container) => {
const focusable = obtainAllFocusableElements(container);
const first2 = getVisibleElement(focusable, container);
const last2 = getVisibleElement(focusable.reverse(), container);
return [first2, last2];
};
const isSelectable = (element) => {
return element instanceof HTMLInputElement && "select" in element;
};
const tryFocus = (element, shouldSelect) => {
if (element && element.focus) {
const prevFocusedElement = document.activeElement;
element.focus({ preventScroll: true });
lastAutomatedFocusTimestamp.value = window.performance.now();
if (element !== prevFocusedElement && isSelectable(element) && shouldSelect) {
element.select();
}
}
};
function removeFromStack(list, item) {
const copy = [...list];
const idx = list.indexOf(item);
if (idx !== -1) {
copy.splice(idx, 1);
}
return copy;
}
const createFocusableStack = () => {
let stack = [];
const push2 = (layer) => {
const currentLayer = stack[0];
if (currentLayer && layer !== currentLayer) {
currentLayer.pause();
}
stack = removeFromStack(stack, layer);
stack.unshift(layer);
};
const remove = (layer) => {
var _a2, _b;
stack = removeFromStack(stack, layer);
(_b = (_a2 = stack[0]) == null ? void 0 : _a2.resume) == null ? void 0 : _b.call(_a2);
};
return {
push: push2,
remove
};
};
const focusFirstDescendant = (elements, shouldSelect = false) => {
const prevFocusedElement = document.activeElement;
for (const element of elements) {
tryFocus(element, shouldSelect);
if (document.activeElement !== prevFocusedElement)
return;
}
};
const focusableStack = createFocusableStack();
const isFocusCausedByUserEvent = () => {
return lastUserFocusTimestamp.value > lastAutomatedFocusTimestamp.value;
};
const notifyFocusReasonPointer = () => {
focusReason.value = "pointer";
lastUserFocusTimestamp.value = window.performance.now();
};
const notifyFocusReasonKeydown = () => {
focusReason.value = "keyboard";
lastUserFocusTimestamp.value = window.performance.now();
};
const useFocusReason = () => {
vue.onMounted(() => {
if (focusReasonUserCount === 0) {
document.addEventListener("mousedown", notifyFocusReasonPointer);
document.addEventListener("touchstart", notifyFocusReasonPointer);
document.addEventListener("keydown", notifyFocusReasonKeydown);
}
focusReasonUserCount++;
});
vue.onBeforeUnmount(() => {
focusReasonUserCount--;
if (focusReasonUserCount <= 0) {
document.removeEventListener("mousedown", notifyFocusReasonPointer);
document.removeEventListener("touchstart", notifyFocusReasonPointer);
document.removeEventListener("keydown", notifyFocusReasonKeydown);
}
});
return {
focusReason,
lastUserFocusTimestamp,
lastAutomatedFocusTimestamp
};
};
const createFocusOutPreventedEvent = (detail) => {
return new CustomEvent(FOCUSOUT_PREVENTED, {
...FOCUSOUT_PREVENTED_OPTS,
detail
});
};
const _sfc_main$T = vue.defineComponent({
name: "ElFocusTrap",
inheritAttrs: false,
props: {
loop: Boolean,
trapped: Boolean,
focusTrapEl: Object,
focusStartEl: {
type: [Object, String],
default: "first"
}
},
emits: [
ON_TRAP_FOCUS_EVT,
ON_RELEASE_FOCUS_EVT,
"focusin",
"focusout",
"focusout-prevented",
"release-requested"
],
setup(props, { emit }) {
const forwardRef = vue.ref();
let lastFocusBeforeTrapped;
let lastFocusAfterTrapped;
const { focusReason: focusReason2 } = useFocusReason();
useEscapeKeydown((event) => {
if (props.trapped && !focusLayer.paused) {
emit("release-requested", event);
}
});
const focusLayer = {
paused: false,
pause() {
this.paused = true;
},
resume() {
this.paused = false;
}
};
const onKeydown = (e) => {
if (!props.loop && !props.trapped)
return;
if (focusLayer.paused)
return;
const { key, altKey, ctrlKey, metaKey, currentTarget, shiftKey } = e;
const { loop } = props;
const isTabbing = key === EVENT_CODE.tab && !altKey && !ctrlKey && !metaKey;
const currentFocusingEl = document.activeElement;
if (isTabbing && currentFocusingEl) {
const container = currentTarget;
const [first2, last2] = getEdges(container);
const isTabbable = first2 && last2;
if (!isTabbable) {
if (currentFocusingEl === container) {
const focusoutPreventedEvent = createFocusOutPreventedEvent({
focusReason: focusReason2.value
});
emit("focusout-prevented", focusoutPreventedEvent);
if (!focusoutPreventedEvent.defaultPrevented) {
e.preventDefault();
}
}
} else {
if (!shiftKey && currentFocusingEl === last2) {
const focusoutPreventedEvent = createFocusOutPreventedEvent({
focusReason: focusReason2.value
});
emit("focusout-prevented", focusoutPreventedEvent);
if (!focusoutPreventedEvent.defaultPrevented) {
e.preventDefault();
if (loop)
tryFocus(first2, true);
}
} else if (shiftKey && [first2, container].includes(currentFocusingEl)) {
const focusoutPreventedEvent = createFocusOutPreventedEvent({
focusReason: focusReason2.value
});
emit("focusout-prevented", focusoutPreventedEvent);
if (!focusoutPreventedEvent.defaultPrevented) {
e.preventDefault();
if (loop)
tryFocus(last2, true);
}
}
}
}
};
vue.provide(FOCUS_TRAP_INJECTION_KEY, {
focusTrapRef: forwardRef,
onKeydown
});
vue.watch(() => props.focusTrapEl, (focusTrapEl) => {
if (focusTrapEl) {
forwardRef.value = focusTrapEl;
}
}, { immediate: true });
vue.watch([forwardRef], ([forwardRef2], [oldForwardRef]) => {
if (forwardRef2) {
forwardRef2.addEventListener("keydown", onKeydown);
forwardRef2.addEventListener("focusin", onFocusIn);
forwardRef2.addEventListener("focusout", onFocusOut);
}
if (oldForwardRef) {
oldForwardRef.removeEventListener("keydown", onKeydown);
oldForwardRef.removeEventListener("focusin", onFocusIn);
oldForwardRef.removeEventListener("focusout", onFocusOut);
}
});
const trapOnFocus = (e) => {
emit(ON_TRAP_FOCUS_EVT, e);
};
const releaseOnFocus = (e) => emit(ON_RELEASE_FOCUS_EVT, e);
const onFocusIn = (e) => {
const trapContainer = vue.unref(forwardRef);
if (!trapContainer)
return;
const target = e.target;
const relatedTarget = e.relatedTarget;
const isFocusedInTrap = target && trapContainer.contains(target);
if (!props.trapped) {
const isPrevFocusedInTrap = relatedTarget && trapContainer.contains(relatedTarget);
if (!isPrevFocusedInTrap) {
lastFocusBeforeTrapped = relatedTarget;
}
}
if (isFocusedInTrap)
emit("focusin", e);
if (focusLayer.paused)
return;
if (props.trapped) {
if (isFocusedInTrap) {
lastFocusAfterTrapped = target;
} else {
tryFocus(lastFocusAfterTrapped, true);
}
}
};
const onFocusOut = (e) => {
const trapContainer = vue.unref(forwardRef);
if (focusLayer.paused || !trapContainer)
return;
if (props.trapped) {
const relatedTarget = e.relatedTarget;
if (!isNil(relatedTarget) && !trapContainer.contains(relatedTarget)) {
setTimeout(() => {
if (!focusLayer.paused && props.trapped) {
const focusoutPreventedEvent = createFocusOutPreventedEvent({
focusReason: focusReason2.value
});
emit("focusout-prevented", focusoutPreventedEvent);
if (!focusoutPreventedEvent.defaultPrevented) {
tryFocus(lastFocusAfterTrapped, true);
}
}
}, 0);
}
} else {
const target = e.target;
const isFocusedInTrap = target && trapContainer.contains(target);
if (!isFocusedInTrap)
emit("focusout", e);
}
};
async function startTrap() {
await vue.nextTick();
const trapContainer = vue.unref(forwardRef);
if (trapContainer) {
focusableStack.push(focusLayer);
const prevFocusedElement = trapContainer.contains(document.activeElement) ? lastFocusBeforeTrapped : document.activeElement;
lastFocusBeforeTrapped = prevFocusedElement;
const isPrevFocusContained = trapContainer.contains(prevFocusedElement);
if (!isPrevFocusContained) {
const focusEvent = new Event(FOCUS_AFTER_TRAPPED, FOCUS_AFTER_TRAPPED_OPTS);
trapContainer.addEventListener(FOCUS_AFTER_TRAPPED, trapOnFocus);
trapContainer.dispatchEvent(focusEvent);
if (!focusEvent.defaultPrevented) {
vue.nextTick(() => {
let focusStartEl = props.focusStartEl;
if (!isString(focusStartEl)) {
tryFocus(focusStartEl);
if (document.activeElement !== focusStartEl) {
focusStartEl = "first";
}
}
if (focusStartEl === "first") {
focusFirstDescendant(obtainAllFocusableElements(trapContainer), true);
}
if (document.activeElement === prevFocusedElement || focusStartEl === "container") {
tryFocus(trapContainer);
}
});
}
}
}
}
function stopTrap() {
const trapContainer = vue.unref(forwardRef);
if (trapContainer) {
trapContainer.removeEventListener(FOCUS_AFTER_TRAPPED, trapOnFocus);
const releasedEvent = new CustomEvent(FOCUS_AFTER_RELEASED, {
...FOCUS_AFTER_TRAPPED_OPTS,
detail: {
focusReason: focusReason2.value
}
});
trapContainer.addEventListener(FOCUS_AFTER_RELEASED, releaseOnFocus);
trapContainer.dispatchEvent(releasedEvent);
if (!releasedEvent.defaultPrevented && (focusReason2.value == "keyboard" || !isFocusCausedByUserEvent() || trapContainer.contains(document.activeElement))) {
tryFocus(lastFocusBeforeTrapped != null ? lastFocusBeforeTrapped : document.body);
}
trapContainer.removeEventListener(FOCUS_AFTER_RELEASED, releaseOnFocus);
focusableStack.remove(focusLayer);
}
}
vue.onMounted(() => {
if (props.trapped) {
startTrap();
}
vue.watch(() => props.trapped, (trapped) => {
if (trapped) {
startTrap();
} else {
stopTrap();
}
});
});
vue.onBeforeUnmount(() => {
if (props.trapped) {
stopTrap();
}
if (forwardRef.value) {
forwardRef.value.removeEventListener("keydown", onKeydown);
forwardRef.value.removeEventListener("focusin", onFocusIn);
forwardRef.value.removeEventListener("focusout", onFocusOut);
forwardRef.value = void 0;
}
});
return {
onKeydown
};
}
});
function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
return vue.renderSlot(_ctx.$slots, "default", { handleKeydown: _ctx.onKeydown });
}
var ElFocusTrap = /* @__PURE__ */ _export_sfc(_sfc_main$T, [["render", _sfc_render$8], ["__file", "focus-trap.vue"]]);
const POSITIONING_STRATEGIES = ["fixed", "absolute"];
const popperCoreConfigProps = buildProps({
boundariesPadding: {
type: Number,
default: 0
},
fallbackPlacements: {
type: definePropType(Array),
default: void 0
},
gpuAcceleration: {
type: Boolean,
default: true
},
offset: {
type: Number,
default: 12
},
placement: {
type: String,
values: Ee,
default: "bottom"
},
popperOptions: {
type: definePropType(Object),
default: () => ({})
},
strategy: {
type: String,
values: POSITIONING_STRATEGIES,
default: "absolute"
}
});
const popperContentProps = buildProps({
...popperCoreConfigProps,
id: String,
style: {
type: definePropType([String, Array, Object])
},
className: {
type: definePropType([String, Array, Object])
},
effect: {
type: definePropType(String),
default: "dark"
},
visible: Boolean,
enterable: {
type: Boolean,
default: true
},
pure: Boolean,
focusOnShow: {
type: Boolean,
default: false
},
trapping: {
type: Boolean,
default: false
},
popperClass: {
type: definePropType([String, Array, Object])
},
popperStyle: {
type: definePropType([String, Array, Object])
},
referenceEl: {
type: definePropType(Object)
},
triggerTargetEl: {
type: definePropType(Object)
},
stopPopperMouseEvent: {
type: Boolean,
default: true
},
virtualTriggering: Boolean,
zIndex: Number,
...useAriaProps(["ariaLabel"])
});
const popperContentEmits = {
mouseenter: (evt) => evt instanceof MouseEvent,
mouseleave: (evt) => evt instanceof MouseEvent,
focus: () => true,
blur: () => true,
close: () => true
};
const buildPopperOptions = (props, modifiers = []) => {
const { placement, strategy, popperOptions } = props;
const options = {
placement,
strategy,
...popperOptions,
modifiers: [...genModifiers(props), ...modifiers]
};
deriveExtraModifiers(options, popperOptions == null ? void 0 : popperOptions.modifiers);
return options;
};
const unwrapMeasurableEl = ($el) => {
if (!isClient)
return;
return unrefElement($el);
};
function genModifiers(options) {
const { offset, gpuAcceleration, fallbackPlacements } = options;
return [
{
name: "offset",
options: {
offset: [0, offset != null ? offset : 12]
}
},
{
name: "preventOverflow",
options: {
padding: {
top: 2,
bottom: 2,
left: 5,
right: 5
}
}
},
{
name: "flip",
options: {
padding: 5,
fallbackPlacements
}
},
{
name: "computeStyles",
options: {
gpuAcceleration
}
}
];
}
function deriveExtraModifiers(options, modifiers) {
if (modifiers) {
options.modifiers = [...options.modifiers, ...modifiers != null ? modifiers : []];
}
}
const DEFAULT_ARROW_OFFSET = 0;
const usePopperContent = (props) => {
const { popperInstanceRef, contentRef, triggerRef, role } = vue.inject(POPPER_INJECTION_KEY, void 0);
const arrowRef = vue.ref();
const arrowOffset = vue.ref();
const eventListenerModifier = vue.computed(() => {
return {
name: "eventListeners",
enabled: !!props.visible
};
});
const arrowModifier = vue.computed(() => {
var _a2;
const arrowEl = vue.unref(arrowRef);
const offset = (_a2 = vue.unref(arrowOffset)) != null ? _a2 : DEFAULT_ARROW_OFFSET;
return {
name: "arrow",
enabled: !isUndefined$1(arrowEl),
options: {
element: arrowEl,
padding: offset
}
};
});
const options = vue.computed(() => {
return {
onFirstUpdate: () => {
update();
},
...buildPopperOptions(props, [
vue.unref(arrowModifier),
vue.unref(eventListenerModifier)
])
};
});
const computedReference = vue.computed(() => unwrapMeasurableEl(props.referenceEl) || vue.unref(triggerRef));
const { attributes, state, styles, update, forceUpdate, instanceRef } = usePopper(computedReference, contentRef, options);
vue.watch(instanceRef, (instance) => popperInstanceRef.value = instance);
vue.onMounted(() => {
vue.watch(() => {
var _a2;
return (_a2 = vue.unref(computedReference)) == null ? void 0 : _a2.getBoundingClientRect();
}, () => {
update();
});
});
return {
attributes,
arrowRef,
contentRef,
instanceRef,
state,
styles,
role,
forceUpdate,
update
};
};
const usePopperContentDOM = (props, {
attributes,
styles,
role
}) => {
const { nextZIndex } = useZIndex();
const ns = useNamespace("popper");
const contentAttrs = vue.computed(() => vue.unref(attributes).popper);
const contentZIndex = vue.ref(isNumber(props.zIndex) ? props.zIndex : nextZIndex());
const contentClass = vue.computed(() => [
ns.b(),
ns.is("pure", props.pure),
ns.is(props.effect),
props.popperClass
]);
const contentStyle = vue.computed(() => {
return [
{ zIndex: vue.unref(contentZIndex) },
vue.unref(styles).popper,
props.popperStyle || {}
];
});
const ariaModal = vue.computed(() => role.value === "dialog" ? "false" : void 0);
const arrowStyle = vue.computed(() => vue.unref(styles).arrow || {});
const updateZIndex = () => {
contentZIndex.value = isNumber(props.zIndex) ? props.zIndex : nextZIndex();
};
return {
ariaModal,
arrowStyle,
contentAttrs,
contentClass,
contentStyle,
contentZIndex,
updateZIndex
};
};
const usePopperContentFocusTrap = (props, emit) => {
const trapped = vue.ref(false);
const focusStartRef = vue.ref();
const onFocusAfterTrapped = () => {
emit("focus");
};
const onFocusAfterReleased = (event) => {
var _a2;
if (((_a2 = event.detail) == null ? void 0 : _a2.focusReason) !== "pointer") {
focusStartRef.value = "first";
emit("blur");
}
};
const onFocusInTrap = (event) => {
if (props.visible && !trapped.value) {
if (event.target) {
focusStartRef.value = event.target;
}
trapped.value = true;
}
};
const onFocusoutPrevented = (event) => {
if (!props.trapping) {
if (event.detail.focusReason === "pointer") {
event.preventDefault();
}
trapped.value = false;
}
};
const onReleaseRequested = () => {
trapped.value = false;
emit("close");
};
return {
focusStartRef,
trapped,
onFocusAfterReleased,
onFocusAfterTrapped,
onFocusInTrap,
onFocusoutPrevented,
onReleaseRequested
};
};
const __default__$y = vue.defineComponent({
name: "ElPopperContent"
});
const _sfc_main$S = /* @__PURE__ */ vue.defineComponent({
...__default__$y,
props: popperContentProps,
emits: popperContentEmits,
setup(__props, { expose, emit }) {
const props = __props;
const {
focusStartRef,
trapped,
onFocusAfterReleased,
onFocusAfterTrapped,
onFocusInTrap,
onFocusoutPrevented,
onReleaseRequested
} = usePopperContentFocusTrap(props, emit);
const { attributes, arrowRef, contentRef, styles, instanceRef, role, update } = usePopperContent(props);
const {
ariaModal,
arrowStyle,
contentAttrs,
contentClass,
contentStyle,
updateZIndex
} = usePopperContentDOM(props, {
styles,
attributes,
role
});
const formItemContext = vue.inject(formItemContextKey, void 0);
const arrowOffset = vue.ref();
vue.provide(POPPER_CONTENT_INJECTION_KEY, {
arrowStyle,
arrowRef,
arrowOffset
});
if (formItemContext) {
vue.provide(formItemContextKey, {
...formItemContext,
addInputId: NOOP,
removeInputId: NOOP
});
}
let triggerTargetAriaStopWatch = void 0;
const updatePopper = (shouldUpdateZIndex = true) => {
update();
shouldUpdateZIndex && updateZIndex();
};
const togglePopperAlive = () => {
updatePopper(false);
if (props.visible && props.focusOnShow) {
trapped.value = true;
} else if (props.visible === false) {
trapped.value = false;
}
};
vue.onMounted(() => {
vue.watch(() => props.triggerTargetEl, (triggerTargetEl, prevTriggerTargetEl) => {
triggerTargetAriaStopWatch == null ? void 0 : triggerTargetAriaStopWatch();
triggerTargetAriaStopWatch = void 0;
const el = vue.unref(triggerTargetEl || contentRef.value);
const prevEl = vue.unref(prevTriggerTargetEl || contentRef.value);
if (isElement(el)) {
triggerTargetAriaStopWatch = vue.watch([role, () => props.ariaLabel, ariaModal, () => props.id], (watches) => {
["role", "aria-label", "aria-modal", "id"].forEach((key, idx) => {
isNil(watches[idx]) ? el.removeAttribute(key) : el.setAttribute(key, watches[idx]);
});
}, { immediate: true });
}
if (prevEl !== el && isElement(prevEl)) {
["role", "aria-label", "aria-modal", "id"].forEach((key) => {
prevEl.removeAttribute(key);
});
}
}, { immediate: true });
vue.watch(() => props.visible, togglePopperAlive, { immediate: true });
});
vue.onBeforeUnmount(() => {
triggerTargetAriaStopWatch == null ? void 0 : triggerTargetAriaStopWatch();
triggerTargetAriaStopWatch = void 0;
});
expose({
popperContentRef: contentRef,
popperInstanceRef: instanceRef,
updatePopper,
contentStyle
});
return (_ctx, _cache) => {
return vue.openBlock(), vue.createElementBlock("div", vue.mergeProps({
ref_key: "contentRef",
ref: contentRef
}, vue.unref(contentAttrs), {
style: vue.unref(contentStyle),
class: vue.unref(contentClass),
tabindex: "-1",
onMouseenter: (e) => _ctx.$emit("mouseenter", e),
onMouseleave: (e) => _ctx.$emit("mouseleave", e)
}), [
vue.createVNode(vue.unref(ElFocusTrap), {
trapped: vue.unref(trapped),
"trap-on-focus-in": true,
"focus-trap-el": vue.unref(contentRef),
"focus-start-el": vue.unref(focusStartRef),
onFocusAfterTrapped: vue.unref(onFocusAfterTrapped),
onFocusAfterReleased: vue.unref(onFocusAfterReleased),
onFocusin: vue.unref(onFocusInTrap),
onFocusoutPrevented: vue.unref(onFocusoutPrevented),
onReleaseRequested: vue.unref(onReleaseRequested)
}, {
default: vue.withCtx(() => [
vue.renderSlot(_ctx.$slots, "default")
]),
_: 3
}, 8, ["trapped", "focus-trap-el", "focus-start-el", "onFocusAfterTrapped", "onFocusAfterReleased", "onFocusin", "onFocusoutPrevented", "onReleaseRequested"])
], 16, ["onMouseenter", "onMouseleave"]);
};
}
});
var ElPopperContent = /* @__PURE__ */ _export_sfc(_sfc_main$S, [["__file", "content.vue"]]);
const ElPopper = withInstall(Popper);
const TOOLTIP_INJECTION_KEY = Symbol("elTooltip");
const useTooltipContentProps = buildProps({
...useDelayedToggleProps,
...popperContentProps,
appendTo: {
type: definePropType([String, Object])
},
content: {
type: String,
default: ""
},
rawContent: Boolean,
persistent: Boolean,
visible: {
type: definePropType(Boolean),
default: null
},
transition: String,
teleported: {
type: Boolean,
default: true
},
disabled: Boolean,
...useAriaProps(["ariaLabel"])
});
const useTooltipTriggerProps = buildProps({
...popperTriggerProps,
disabled: Boolean,
trigger: {
type: definePropType([String, Array]),
default: "hover"
},
triggerKeys: {
type: definePropType(Array),
default: () => [EVENT_CODE.enter, EVENT_CODE.space]
}
});
const {
useModelToggleProps: useTooltipModelToggleProps,
useModelToggleEmits: useTooltipModelToggleEmits,
useModelToggle: useTooltipModelToggle
} = createModelToggleComposable("visible");
const useTooltipProps = buildProps({
...popperProps,
...useTooltipModelToggleProps,
...useTooltipContentProps,
...useTooltipTriggerProps,
...popperArrowProps,
showArrow: {
type: Boolean,
default: true
}
});
const tooltipEmits = [
...useTooltipModelToggleEmits,
"before-show",
"before-hide",
"show",
"hide",
"open",
"close"
];
const isTriggerType = (trigger, type) => {
if (isArray$1(trigger)) {
return trigger.includes(type);
}
return trigger === type;
};
const whenTrigger = (trigger, type, handler) => {
return (e) => {
isTriggerType(vue.unref(trigger), type) && handler(e);
};
};
const __default__$x = vue.defineComponent({
name: "ElTooltipTrigger"
});
const _sfc_main$R = /* @__PURE__ */ vue.defineComponent({
...__default__$x,
props: useTooltipTriggerProps,
setup(__props, { expose }) {
const props = __props;
const ns = useNamespace("tooltip");
const { controlled, id, open, onOpen, onClose, onToggle } = vue.inject(TOOLTIP_INJECTION_KEY, void 0);
const triggerRef = vue.ref(null);
const stopWhenControlledOrDisabled = () => {
if (vue.unref(controlled) || props.disabled) {
return true;
}
};
const trigger = vue.toRef(props, "trigger");
const onMouseenter = composeEventHandlers(stopWhenControlledOrDisabled, whenTrigger(trigger, "hover", onOpen));
const onMouseleave = composeEventHandlers(stopWhenControlledOrDisabled, whenTrigger(trigger, "hover", onClose));
const onClick = composeEventHandlers(stopWhenControlledOrDisabled, whenTrigger(trigger, "click", (e) => {
if (e.button === 0) {
onToggle(e);
}
}));
const onFocus = composeEventHandlers(stopWhenControlledOrDisabled, whenTrigger(trigger, "focus", onOpen));
const onBlur = composeEventHandlers(stopWhenControlledOrDisabled, whenTrigger(trigger, "focus", onClose));
const onContextMenu = composeEventHandlers(stopWhenControlledOrDisabled, whenTrigger(trigger, "contextmenu", (e) => {
e.preventDefault();
onToggle(e);
}));
const onKeydown = composeEventHandlers(stopWhenControlledOrDisabled, (e) => {
const { code } = e;
if (props.triggerKeys.includes(code)) {
e.preventDefault();
onToggle(e);
}
});
expose({
triggerRef
});
return (_ctx, _cache) => {
return vue.openBlock(), vue.createBlock(vue.unref(ElPopperTrigger), {
id: vue.unref(id),
"virtual-ref": _ctx.virtualRef,
open: vue.unref(open),
"virtual-triggering": _ctx.virtualTriggering,
class: vue.normalizeClass(vue.unref(ns).e("trigger")),
onBlur: vue.unref(onBlur),
onClick: vue.unref(onClick),
onContextmenu: vue.unref(onContextMenu),
onFocus: vue.unref(onFocus),
onMouseenter: vue.unref(onMouseenter),
onMouseleave: vue.unref(onMouseleave),
onKeydown: vue.unref(onKeydown)
}, {
default: vue.withCtx(() => [
vue.renderSlot(_ctx.$slots, "default")
]),
_: 3
}, 8, ["id", "virtual-ref", "open", "virtual-triggering", "class", "onBlur", "onClick", "onContextmenu", "onFocus", "onMouseenter", "onMouseleave", "onKeydown"]);
};
}
});
var ElTooltipTrigger = /* @__PURE__ */ _export_sfc(_sfc_main$R, [["__file", "trigger.vue"]]);
const teleportProps = buildProps({
to: {
type: definePropType([String, Object]),
required: true
},
disabled: Boolean
});
const _sfc_main$Q = /* @__PURE__ */ vue.defineComponent({
__name: "teleport",
props: teleportProps,
setup(__props) {
return (_ctx, _cache) => {
return _ctx.disabled ? vue.renderSlot(_ctx.$slots, "default", { key: 0 }) : (vue.openBlock(), vue.createBlock(vue.Teleport, {
key: 1,
to: _ctx.to
}, [
vue.renderSlot(_ctx.$slots, "default")
], 8, ["to"]));
};
}
});
var Teleport = /* @__PURE__ */ _export_sfc(_sfc_main$Q, [["__file", "teleport.vue"]]);
const ElTeleport = withInstall(Teleport);
const __default__$w = vue.defineComponent({
name: "ElTooltipContent",
inheritAttrs: false
});
const _sfc_main$P = /* @__PURE__ */ vue.defineComponent({
...__default__$w,
props: useTooltipContentProps,
setup(__props, { expose }) {
const props = __props;
const { selector } = usePopperContainerId();
const ns = useNamespace("tooltip");
const contentRef = vue.ref(null);
let stopHandle;
const {
controlled,
id,
open,
trigger,
onClose,
onOpen,
onShow,
onHide,
onBeforeShow,
onBeforeHide
} = vue.inject(TOOLTIP_INJECTION_KEY, void 0);
const transitionClass = vue.computed(() => {
return props.transition || `${ns.namespace.value}-fade-in-linear`;
});
const persistentRef = vue.computed(() => {
return props.persistent;
});
vue.onBeforeUnmount(() => {
stopHandle == null ? void 0 : stopHandle();
});
const shouldRender = vue.computed(() => {
return vue.unref(persistentRef) ? true : vue.unref(open);
});
const shouldShow = vue.computed(() => {
return props.disabled ? false : vue.unref(open);
});
const appendTo = vue.computed(() => {
return props.appendTo || selector.value;
});
const contentStyle = vue.computed(() => {
var _a2;
return (_a2 = props.style) != null ? _a2 : {};
});
const ariaHidden = vue.ref(true);
const onTransitionLeave = () => {
onHide();
ariaHidden.value = true;
};
const stopWhenControlled = () => {
if (vue.unref(controlled))
return true;
};
const onContentEnter = composeEventHandlers(stopWhenControlled, () => {
if (props.enterable && vue.unref(trigger) === "hover") {
onOpen();
}
});
const onContentLeave = composeEventHandlers(stopWhenControlled, () => {
if (vue.unref(trigger) === "hover") {
onClose();
}
});
const onBeforeEnter = () => {
var _a2, _b;
(_b = (_a2 = contentRef.value) == null ? void 0 : _a2.updatePopper) == null ? void 0 : _b.call(_a2);
onBeforeShow == null ? void 0 : onBeforeShow();
};
const onBeforeLeave = () => {
onBeforeHide == null ? void 0 : onBeforeHide();
};
const onAfterShow = () => {
onShow();
stopHandle = onClickOutside(vue.computed(() => {
var _a2;
return (_a2 = contentRef.value) == null ? void 0 : _a2.popperContentRef;
}), () => {
if (vue.unref(controlled))
return;
const $trigger = vue.unref(trigger);
if ($trigger !== "hover") {
onClose();
}
});
};
const onBlur = () => {
if (!props.virtualTriggering) {
onClose();
}
};
vue.watch(() => vue.unref(open), (val) => {
if (!val) {
stopHandle == null ? void 0 : stopHandle();
} else {
ariaHidden.value = false;
}
}, {
flush: "post"
});
vue.watch(() => props.content, () => {
var _a2, _b;
(_b = (_a2 = contentRef.value) == null ? void 0 : _a2.updatePopper) == null ? void 0 : _b.call(_a2);
});
expose({
contentRef
});
return (_ctx, _cache) => {
return vue.openBlock(), vue.createBlock(vue.unref(ElTeleport), {
disabled: !_ctx.teleported,
to: vue.unref(appendTo)
}, {
default: vue.withCtx(() => [
vue.createVNode(vue.Transition, {
name: vue.unref(transitionClass),
onAfterLeave: onTransitionLeave,
onBeforeEnter,
onAfterEnter: onAfterShow,
onBeforeLeave
}, {
default: vue.withCtx(() => [
vue.unref(shouldRender) ? vue.withDirectives((vue.openBlock(), vue.createBlock(vue.unref(ElPopperContent), vue.mergeProps({
key: 0,
id: vue.unref(id),
ref_key: "contentRef",
ref: contentRef
}, _ctx.$attrs, {
"aria-label": _ctx.ariaLabel,
"aria-hidden": ariaHidden.value,
"boundaries-padding": _ctx.boundariesPadding,
"fallback-placements": _ctx.fallbackPlacements,
"gpu-acceleration": _ctx.gpuAcceleration,
offset: _ctx.offset,
placement: _ctx.placement,
"popper-options": _ctx.popperOptions,
strategy: _ctx.strategy,
effect: _ctx.effect,
enterable: _ctx.enterable,
pure: _ctx.pure,
"popper-class": _ctx.popperClass,
"popper-style": [_ctx.popperStyle, vue.unref(contentStyle)],
"reference-el": _ctx.referenceEl,
"trigger-target-el": _ctx.triggerTargetEl,
visible: vue.unref(shouldShow),
"z-index": _ctx.zIndex,
onMouseenter: vue.unref(onContentEnter),
onMouseleave: vue.unref(onContentLeave),
onBlur,
onClose: vue.unref(onClose)
}), {
default: vue.withCtx(() => [
vue.renderSlot(_ctx.$slots, "default")
]),
_: 3
}, 16, ["id", "aria-label", "aria-hidden", "boundaries-padding", "fallback-placements", "gpu-acceleration", "offset", "placement", "popper-options", "strategy", "effect", "enterable", "pure", "popper-class", "popper-style", "reference-el", "trigger-target-el", "visible", "z-index", "onMouseenter", "onMouseleave", "onClose"])), [
[vue.vShow, vue.unref(shouldShow)]
]) : vue.createCommentVNode("v-if", true)
]),
_: 3
}, 8, ["name"])
]),
_: 3
}, 8, ["disabled", "to"]);
};
}
});
var ElTooltipContent = /* @__PURE__ */ _export_sfc(_sfc_main$P, [["__file", "content.vue"]]);
const __default__$v = vue.defineComponent({
name: "ElTooltip"
});
const _sfc_main$O = /* @__PURE__ */ vue.defineComponent({
...__default__$v,
props: useTooltipProps,
emits: tooltipEmits,
setup(__props, { expose, emit }) {
const props = __props;
usePopperContainer();
const id = useId();
const popperRef = vue.ref();
const contentRef = vue.ref();
const updatePopper = () => {
var _a2;
const popperComponent = vue.unref(popperRef);
if (popperComponent) {
(_a2 = popperComponent.popperInstanceRef) == null ? void 0 : _a2.update();
}
};
const open = vue.ref(false);
const toggleReason = vue.ref();
const { show, hide, hasUpdateHandler } = useTooltipModelToggle({
indicator: open,
toggleReason
});
const { onOpen, onClose } = useDelayedToggle({
showAfter: vue.toRef(props, "showAfter"),
hideAfter: vue.toRef(props, "hideAfter"),
autoClose: vue.toRef(props, "autoClose"),
open: show,
close: hide
});
const controlled = vue.computed(() => isBoolean(props.visible) && !hasUpdateHandler.value);
vue.provide(TOOLTIP_INJECTION_KEY, {
controlled,
id,
open: vue.readonly(open),
trigger: vue.toRef(props, "trigger"),
onOpen: (event) => {
onOpen(event);
},
onClose: (event) => {
onClose(event);
},
onToggle: (event) => {
if (vue.unref(open)) {
onClose(event);
} else {
onOpen(event);
}
},
onShow: () => {
emit("show", toggleReason.value);
},
onHide: () => {
emit("hide", toggleReason.value);
},
onBeforeShow: () => {
emit("before-show", toggleReason.value);
},
onBeforeHide: () => {
emit("before-hide", toggleReason.value);
},
updatePopper
});
vue.watch(() => props.disabled, (disabled) => {
if (disabled && open.value) {
open.value = false;
}
});
const isFocusInsideContent = (event) => {
var _a2, _b;
const popperContent = (_b = (_a2 = contentRef.value) == null ? void 0 : _a2.contentRef) == null ? void 0 : _b.popperContentRef;
const activeElement = (event == null ? void 0 : event.relatedTarget) || document.activeElement;
return popperContent && popperContent.contains(activeElement);
};
vue.onDeactivated(() => open.value && hide());
expose({
popperRef,
contentRef,
isFocusInsideContent,
updatePopper,
onOpen,
onClose,
hide
});
return (_ctx, _cache) => {
return vue.openBlock(), vue.createBlock(vue.unref(ElPopper), {
ref_key: "popperRef",
ref: popperRef,
role: _ctx.role
}, {
default: vue.withCtx(() => [
vue.createVNode(ElTooltipTrigger, {
disabled: _ctx.disabled,
trigger: _ctx.trigger,
"trigger-keys": _ctx.triggerKeys,
"virtual-ref": _ctx.virtualRef,
"virtual-triggering": _ctx.virtualTriggering
}, {
default: vue.withCtx(() => [
_ctx.$slots.default ? vue.renderSlot(_ctx.$slots, "default", { key: 0 }) : vue.createCommentVNode("v-if", true)
]),
_: 3
}, 8, ["disabled", "trigger", "trigger-keys", "virtual-ref", "virtual-triggering"]),
vue.createVNode(ElTooltipContent, {
ref_key: "contentRef",
ref: contentRef,
"aria-label": _ctx.ariaLabel,
"boundaries-padding": _ctx.boundariesPadding,
content: _ctx.content,
disabled: _ctx.disabled,
effect: _ctx.effect,
enterable: _ctx.enterable,
"fallback-placements": _ctx.fallbackPlacements,
"hide-after": _ctx.hideAfter,
"gpu-acceleration": _ctx.gpuAcceleration,
offset: _ctx.offset,
persistent: _ctx.persistent,
"popper-class": _ctx.popperClass,
"popper-style": _ctx.popperStyle,
placement: _ctx.placement,
"popper-options": _ctx.popperOptions,
pure: _ctx.pure,
"raw-content": _ctx.rawContent,
"reference-el": _ctx.referenceEl,
"trigger-target-el": _ctx.triggerTargetEl,
"show-after": _ctx.showAfter,
strategy: _ctx.strategy,
teleported: _ctx.teleported,
transition: _ctx.transition,
"virtual-triggering": _ctx.virtualTriggering,
"z-index": _ctx.zIndex,
"append-to": _ctx.appendTo
}, {
default: vue.withCtx(() => [
vue.renderSlot(_ctx.$slots, "content", {}, () => [
_ctx.rawContent ? (vue.openBlock(), vue.createElementBlock("span", {
key: 0,
innerHTML: _ctx.content
}, null, 8, ["innerHTML"])) : (vue.openBlock(), vue.createElementBlock("span", { key: 1 }, vue.toDisplayString(_ctx.content), 1))
]),
_ctx.showArrow ? (vue.openBlock(), vue.createBlock(vue.unref(ElPopperArrow), {
key: 0,
"arrow-offset": _ctx.arrowOffset
}, null, 8, ["arrow-offset"])) : vue.createCommentVNode("v-if", true)
]),
_: 3
}, 8, ["aria-label", "boundaries-padding", "content", "disabled", "effect", "enterable", "fallback-placements", "hide-after", "gpu-acceleration", "offset", "persistent", "popper-class", "popper-style", "placement", "popper-options", "pure", "raw-content", "reference-el", "trigger-target-el", "show-after", "strategy", "teleported", "transition", "virtual-triggering", "z-index", "append-to"])
]),
_: 3
}, 8, ["role"]);
};
}
});
var Tooltip = /* @__PURE__ */ _export_sfc(_sfc_main$O, [["__file", "tooltip.vue"]]);
const ElTooltip = withInstall(Tooltip);
const buttonGroupContextKey = Symbol("buttonGroupContextKey");
const useButton = (props, emit) => {
useDeprecated({
from: "type.text",
replacement: "link",
version: "3.0.0",
scope: "props",
ref: "https://element-plus.org/en-US/component/button.html#button-attributes"
}, vue.computed(() => props.type === "text"));
const buttonGroupContext = vue.inject(buttonGroupContextKey, void 0);
const globalConfig2 = useGlobalConfig("button");
const { form } = useFormItem();
const _size = useFormSize(vue.computed(() => buttonGroupContext == null ? void 0 : buttonGroupContext.size));
const _disabled = useFormDisabled();
const _ref = vue.ref();
const slots = vue.useSlots();
const _type = vue.computed(() => props.type || (buttonGroupContext == null ? void 0 : buttonGroupContext.type) || "");
const autoInsertSpace = vue.computed(() => {
var _a2, _b, _c;
return (_c = (_b = props.autoInsertSpace) != null ? _b : (_a2 = globalConfig2.value) == null ? void 0 : _a2.autoInsertSpace) != null ? _c : false;
});
const _props = vue.computed(() => {
if (props.tag === "button") {
return {
ariaDisabled: _disabled.value || props.loading,
disabled: _disabled.value || props.loading,
autofocus: props.autofocus,
type: props.nativeType
};
}
return {};
});
const shouldAddSpace = vue.computed(() => {
var _a2;
const defaultSlot = (_a2 = slots.default) == null ? void 0 : _a2.call(slots);
if (autoInsertSpace.value && (defaultSlot == null ? void 0 : defaultSlot.length) === 1) {
const slot = defaultSlot[0];
if ((slot == null ? void 0 : slot.type) === vue.Text) {
const text = slot.children;
return new RegExp("^\\p{Unified_Ideograph}{2}$", "u").test(text.trim());
}
}
return false;
});
const handleClick = (evt) => {
if (_disabled.value || props.loading) {
evt.stopPropagation();
return;
}
if (props.nativeType === "reset") {
form == null ? void 0 : form.resetFields();
}
emit("click", evt);
};
return {
_disabled,
_size,
_type,
_ref,
_props,
shouldAddSpace,
handleClick
};
};
const buttonTypes = [
"default",
"primary",
"success",
"warning",
"info",
"danger",
"text",
""
];
const buttonNativeTypes = ["button", "submit", "reset"];
const buttonProps = buildProps({
size: useSizeProp,
disabled: Boolean,
type: {
type: String,
values: buttonTypes,
default: ""
},
icon: {
type: iconPropType
},
nativeType: {
type: String,
values: buttonNativeTypes,
default: "button"
},
loading: Boolean,
loadingIcon: {
type: iconPropType,
default: () => loading_default
},
plain: Boolean,
text: Boolean,
link: Boolean,
bg: Boolean,
autofocus: Boolean,
round: Boolean,
circle: Boolean,
color: String,
dark: Boolean,
autoInsertSpace: {
type: Boolean,
default: void 0
},
tag: {
type: definePropType([String, Object]),
default: "button"
}
});
const buttonEmits = {
click: (evt) => evt instanceof MouseEvent
};
function bound01$1(n, max2) {
if (isOnePointZero$1(n)) {
n = "100%";
}
var isPercent = isPercentage$1(n);
n = max2 === 360 ? n : Math.min(max2, Math.max(0, parseFloat(n)));
if (isPercent) {
n = parseInt(String(n * max2), 10) / 100;
}
if (Math.abs(n - max2) < 1e-6) {
return 1;
}
if (max2 === 360) {
n = (n < 0 ? n % max2 + max2 : n % max2) / parseFloat(String(max2));
} else {
n = n % max2 / parseFloat(String(max2));
}
return n;
}
function clamp01(val) {
return Math.min(1, Math.max(0, val));
}
function isOnePointZero$1(n) {
return typeof n === "string" && n.indexOf(".") !== -1 && parseFloat(n) === 1;
}
function isPercentage$1(n) {
return typeof n === "string" && n.indexOf("%") !== -1;
}
function boundAlpha(a) {
a = parseFloat(a);
if (isNaN(a) || a < 0 || a > 1) {
a = 1;
}
return a;
}
function convertToPercentage(n) {
if (n <= 1) {
return "".concat(Number(n) * 100, "%");
}
return n;
}
function pad2(c) {
return c.length === 1 ? "0" + c : String(c);
}
function rgbToRgb(r, g, b) {
return {
r: bound01$1(r, 255) * 255,
g: bound01$1(g, 255) * 255,
b: bound01$1(b, 255) * 255
};
}
function rgbToHsl(r, g, b) {
r = bound01$1(r, 255);
g = bound01$1(g, 255);
b = bound01$1(b, 255);
var max2 = Math.max(r, g, b);
var min2 = Math.min(r, g, b);
var h2 = 0;
var s = 0;
var l = (max2 + min2) / 2;
if (max2 === min2) {
s = 0;
h2 = 0;
} else {
var d = max2 - min2;
s = l > 0.5 ? d / (2 - max2 - min2) : d / (max2 + min2);
switch (max2) {
case r:
h2 = (g - b) / d + (g < b ? 6 : 0);
break;
case g:
h2 = (b - r) / d + 2;
break;
case b:
h2 = (r - g) / d + 4;
break;
}
h2 /= 6;
}
return { h: h2, s, l };
}
function hue2rgb(p, q2, t) {
if (t < 0) {
t += 1;
}
if (t > 1) {
t -= 1;
}
if (t < 1 / 6) {
return p + (q2 - p) * (6 * t);
}
if (t < 1 / 2) {
return q2;
}
if (t < 2 / 3) {
return p + (q2 - p) * (2 / 3 - t) * 6;
}
return p;
}
function hslToRgb(h2, s, l) {
var r;
var g;
var b;
h2 = bound01$1(h2, 360);
s = bound01$1(s, 100);
l = bound01$1(l, 100);
if (s === 0) {
g = l;
b = l;
r = l;
} else {
var q2 = l < 0.5 ? l * (1 + s) : l + s - l * s;
var p = 2 * l - q2;
r = hue2rgb(p, q2, h2 + 1 / 3);
g = hue2rgb(p, q2, h2);
b = hue2rgb(p, q2, h2 - 1 / 3);
}
return { r: r * 255, g: g * 255, b: b * 255 };
}
function rgbToHsv(r, g, b) {
r = bound01$1(r, 255);
g = bound01$1(g, 255);
b = bound01$1(b, 255);
var max2 = Math.max(r, g, b);
var min2 = Math.min(r, g, b);
var h2 = 0;
var v = max2;
var d = max2 - min2;
var s = max2 === 0 ? 0 : d / max2;
if (max2 === min2) {
h2 = 0;
} else {
switch (max2) {
case r:
h2 = (g - b) / d + (g < b ? 6 : 0);
break;
case g:
h2 = (b - r) / d + 2;
break;
case b:
h2 = (r - g) / d + 4;
break;
}
h2 /= 6;
}
return { h: h2, s, v };
}
function hsvToRgb(h2, s, v) {
h2 = bound01$1(h2, 360) * 6;
s = bound01$1(s, 100);
v = bound01$1(v, 100);
var i = Math.floor(h2);
var f = h2 - i;
var p = v * (1 - s);
var q2 = v * (1 - f * s);
var t = v * (1 - (1 - f) * s);
var mod = i % 6;
var r = [v, q2, p, p, t, v][mod];
var g = [t, v, v, q2, p, p][mod];
var b = [p, p, t, v, v, q2][mod];
return { r: r * 255, g: g * 255, b: b * 255 };
}
function rgbToHex(r, g, b, allow3Char) {
var hex = [
pad2(Math.round(r).toString(16)),
pad2(Math.round(g).toString(16)),
pad2(Math.round(b).toString(16))
];
if (allow3Char && hex[0].startsWith(hex[0].charAt(1)) && hex[1].startsWith(hex[1].charAt(1)) && hex[2].startsWith(hex[2].charAt(1))) {
return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);
}
return hex.join("");
}
function rgbaToHex(r, g, b, a, allow4Char) {
var hex = [
pad2(Math.round(r).toString(16)),
pad2(Math.round(g).toString(16)),
pad2(Math.round(b).toString(16)),
pad2(convertDecimalToHex(a))
];
if (allow4Char && hex[0].startsWith(hex[0].charAt(1)) && hex[1].startsWith(hex[1].charAt(1)) && hex[2].startsWith(hex[2].charAt(1)) && hex[3].startsWith(hex[3].charAt(1))) {
return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);
}
return hex.join("");
}
function convertDecimalToHex(d) {
return Math.round(parseFloat(d) * 255).toString(16);
}
function convertHexToDecimal(h2) {
return parseIntFromHex(h2) / 255;
}
function parseIntFromHex(val) {
return parseInt(val, 16);
}
function numberInputToObject(color) {
return {
r: color >> 16,
g: (color & 65280) >> 8,
b: color & 255
};
}
var names = {
aliceblue: "#f0f8ff",
antiquewhite: "#faebd7",
aqua: "#00ffff",
aquamarine: "#7fffd4",
azure: "#f0ffff",
beige: "#f5f5dc",
bisque: "#ffe4c4",
black: "#000000",
blanchedalmond: "#ffebcd",
blue: "#0000ff",
blueviolet: "#8a2be2",
brown: "#a52a2a",
burlywood: "#deb887",
cadetblue: "#5f9ea0",
chartreuse: "#7fff00",
chocolate: "#d2691e",
coral: "#ff7f50",
cornflowerblue: "#6495ed",
cornsilk: "#fff8dc",
crimson: "#dc143c",
cyan: "#00ffff",
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: "#ff00ff",
gainsboro: "#dcdcdc",
ghostwhite: "#f8f8ff",
goldenrod: "#daa520",
gold: "#ffd700",
gray: "#808080",
green: "#008000",
greenyellow: "#adff2f",
grey: "#808080",
honeydew: "#f0fff0",
hotpink: "#ff69b4",
indianred: "#cd5c5c",
indigo: "#4b0082",
ivory: "#fffff0",
khaki: "#f0e68c",
lavenderblush: "#fff0f5",
lavender: "#e6e6fa",
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: "#778899",
lightslategrey: "#778899",
lightsteelblue: "#b0c4de",
lightyellow: "#ffffe0",
lime: "#00ff00",
limegreen: "#32cd32",
linen: "#faf0e6",
magenta: "#ff00ff",
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: "#ff0000",
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: "#ffffff",
whitesmoke: "#f5f5f5",
yellow: "#ffff00",
yellowgreen: "#9acd32"
};
function inputToRGB(color) {
var rgb = { r: 0, g: 0, b: 0 };
var a = 1;
var s = null;
var v = null;
var l = null;
var ok = false;
var format = false;
if (typeof color === "string") {
color = stringInputToObject(color);
}
if (typeof color === "object") {
if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {
rgb = rgbToRgb(color.r, color.g, color.b);
ok = true;
format = String(color.r).substr(-1) === "%" ? "prgb" : "rgb";
} else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {
s = convertToPercentage(color.s);
v = convertToPercentage(color.v);
rgb = hsvToRgb(color.h, s, v);
ok = true;
format = "hsv";
} else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {
s = convertToPercentage(color.s);
l = convertToPercentage(color.l);
rgb = hslToRgb(color.h, s, l);
ok = true;
format = "hsl";
}
if (Object.prototype.hasOwnProperty.call(color, "a")) {
a = color.a;
}
}
a = boundAlpha(a);
return {
ok,
format: color.format || format,
r: Math.min(255, Math.max(rgb.r, 0)),
g: Math.min(255, Math.max(rgb.g, 0)),
b: Math.min(255, Math.max(rgb.b, 0)),
a
};
}
var CSS_INTEGER = "[-\\+]?\\d+%?";
var CSS_NUMBER = "[-\\+]?\\d*\\.\\d+%?";
var CSS_UNIT = "(?:".concat(CSS_NUMBER, ")|(?:").concat(CSS_INTEGER, ")");
var PERMISSIVE_MATCH3 = "[\\s|\\(]+(".concat(CSS_UNIT, ")[,|\\s]+(").concat(CSS_UNIT, ")[,|\\s]+(").concat(CSS_UNIT, ")\\s*\\)?");
var PERMISSIVE_MATCH4 = "[\\s|\\(]+(".concat(CSS_UNIT, ")[,|\\s]+(").concat(CSS_UNIT, ")[,|\\s]+(").concat(CSS_UNIT, ")[,|\\s]+(").concat(CSS_UNIT, ")\\s*\\)?");
var matchers = {
CSS_UNIT: new RegExp(CSS_UNIT),
rgb: new RegExp("rgb" + PERMISSIVE_MATCH3),
rgba: new RegExp("rgba" + PERMISSIVE_MATCH4),
hsl: new RegExp("hsl" + PERMISSIVE_MATCH3),
hsla: new RegExp("hsla" + PERMISSIVE_MATCH4),
hsv: new RegExp("hsv" + PERMISSIVE_MATCH3),
hsva: new RegExp("hsva" + PERMISSIVE_MATCH4),
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 stringInputToObject(color) {
color = color.trim().toLowerCase();
if (color.length === 0) {
return false;
}
var named = false;
if (names[color]) {
color = names[color];
named = true;
} else if (color === "transparent") {
return { r: 0, g: 0, b: 0, a: 0, format: "name" };
}
var match = matchers.rgb.exec(color);
if (match) {
return { r: match[1], g: match[2], b: match[3] };
}
match = matchers.rgba.exec(color);
if (match) {
return { r: match[1], g: match[2], b: match[3], a: match[4] };
}
match = matchers.hsl.exec(color);
if (match) {
return { h: match[1], s: match[2], l: match[3] };
}
match = matchers.hsla.exec(color);
if (match) {
return { h: match[1], s: match[2], l: match[3], a: match[4] };
}
match = matchers.hsv.exec(color);
if (match) {
return { h: match[1], s: match[2], v: match[3] };
}
match = matchers.hsva.exec(color);
if (match) {
return { h: match[1], s: match[2], v: match[3], a: match[4] };
}
match = matchers.hex8.exec(color);
if (match) {
return {
r: parseIntFromHex(match[1]),
g: parseIntFromHex(match[2]),
b: parseIntFromHex(match[3]),
a: convertHexToDecimal(match[4]),
format: named ? "name" : "hex8"
};
}
match = matchers.hex6.exec(color);
if (match) {
return {
r: parseIntFromHex(match[1]),
g: parseIntFromHex(match[2]),
b: parseIntFromHex(match[3]),
format: named ? "name" : "hex"
};
}
match = matchers.hex4.exec(color);
if (match) {
return {
r: parseIntFromHex(match[1] + match[1]),
g: parseIntFromHex(match[2] + match[2]),
b: parseIntFromHex(match[3] + match[3]),
a: convertHexToDecimal(match[4] + match[4]),
format: named ? "name" : "hex8"
};
}
match = matchers.hex3.exec(color);
if (match) {
return {
r: parseIntFromHex(match[1] + match[1]),
g: parseIntFromHex(match[2] + match[2]),
b: parseIntFromHex(match[3] + match[3]),
format: named ? "name" : "hex"
};
}
return false;
}
function isValidCSSUnit(color) {
return Boolean(matchers.CSS_UNIT.exec(String(color)));
}
var TinyColor = (
/** @class */
function() {
function TinyColor2(color, opts) {
if (color === void 0) {
color = "";
}
if (opts === void 0) {
opts = {};
}
var _a2;
if (color instanceof TinyColor2) {
return color;
}
if (typeof color === "number") {
color = numberInputToObject(color);
}
this.originalInput = color;
var rgb = inputToRGB(color);
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 = (_a2 = opts.format) !== null && _a2 !== void 0 ? _a2 : rgb.format;
this.gradientType = opts.gradientType;
if (this.r < 1) {
this.r = Math.round(this.r);
}
if (this.g < 1) {
this.g = Math.round(this.g);
}
if (this.b < 1) {
this.b = Math.round(this.b);
}
this.isValid = rgb.ok;
}
TinyColor2.prototype.isDark = function() {
return this.getBrightness() < 128;
};
TinyColor2.prototype.isLight = function() {
return !this.isDark();
};
TinyColor2.prototype.getBrightness = function() {
var rgb = this.toRgb();
return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1e3;
};
TinyColor2.prototype.getLuminance = function() {
var rgb = this.toRgb();
var R2;
var G2;
var B2;
var RsRGB = rgb.r / 255;
var GsRGB = rgb.g / 255;
var BsRGB = rgb.b / 255;
if (RsRGB <= 0.03928) {
R2 = RsRGB / 12.92;
} else {
R2 = Math.pow((RsRGB + 0.055) / 1.055, 2.4);
}
if (GsRGB <= 0.03928) {
G2 = GsRGB / 12.92;
} else {
G2 = Math.pow((GsRGB + 0.055) / 1.055, 2.4);
}
if (BsRGB <= 0.03928) {
B2 = BsRGB / 12.92;
} else {
B2 = Math.pow((BsRGB + 0.055) / 1.055, 2.4);
}
return 0.2126 * R2 + 0.7152 * G2 + 0.0722 * B2;
};
TinyColor2.prototype.getAlpha = function() {
return this.a;
};
TinyColor2.prototype.setAlpha = function(alpha) {
this.a = boundAlpha(alpha);
this.roundA = Math.round(100 * this.a) / 100;
return this;
};
TinyColor2.prototype.isMonochrome = function() {
var s = this.toHsl().s;
return s === 0;
};
TinyColor2.prototype.toHsv = function() {
var hsv = rgbToHsv(this.r, this.g, this.b);
return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this.a };
};
TinyColor2.prototype.toHsvString = function() {
var hsv = rgbToHsv(this.r, this.g, this.b);
var h2 = Math.round(hsv.h * 360);
var s = Math.round(hsv.s * 100);
var v = Math.round(hsv.v * 100);
return this.a === 1 ? "hsv(".concat(h2, ", ").concat(s, "%, ").concat(v, "%)") : "hsva(".concat(h2, ", ").concat(s, "%, ").concat(v, "%, ").concat(this.roundA, ")");
};
TinyColor2.prototype.toHsl = function() {
var hsl = rgbToHsl(this.r, this.g, this.b);
return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this.a };
};
TinyColor2.prototype.toHslString = function() {
var hsl = rgbToHsl(this.r, this.g, this.b);
var h2 = Math.round(hsl.h * 360);
var s = Math.round(hsl.s * 100);
var l = Math.round(hsl.l * 100);
return this.a === 1 ? "hsl(".concat(h2, ", ").concat(s, "%, ").concat(l, "%)") : "hsla(".concat(h2, ", ").concat(s, "%, ").concat(l, "%, ").concat(this.roundA, ")");
};
TinyColor2.prototype.toHex = function(allow3Char) {
if (allow3Char === void 0) {
allow3Char = false;
}
return rgbToHex(this.r, this.g, this.b, allow3Char);
};
TinyColor2.prototype.toHexString = function(allow3Char) {
if (allow3Char === void 0) {
allow3Char = false;
}
return "#" + this.toHex(allow3Char);
};
TinyColor2.prototype.toHex8 = function(allow4Char) {
if (allow4Char === void 0) {
allow4Char = false;
}
return rgbaToHex(this.r, this.g, this.b, this.a, allow4Char);
};
TinyColor2.prototype.toHex8String = function(allow4Char) {
if (allow4Char === void 0) {
allow4Char = false;
}
return "#" + this.toHex8(allow4Char);
};
TinyColor2.prototype.toHexShortString = function(allowShortChar) {
if (allowShortChar === void 0) {
allowShortChar = false;
}
return this.a === 1 ? this.toHexString(allowShortChar) : this.toHex8String(allowShortChar);
};
TinyColor2.prototype.toRgb = function() {
return {
r: Math.round(this.r),
g: Math.round(this.g),
b: Math.round(this.b),
a: this.a
};
};
TinyColor2.prototype.toRgbString = function() {
var r = Math.round(this.r);
var g = Math.round(this.g);
var b = Math.round(this.b);
return this.a === 1 ? "rgb(".concat(r, ", ").concat(g, ", ").concat(b, ")") : "rgba(".concat(r, ", ").concat(g, ", ").concat(b, ", ").concat(this.roundA, ")");
};
TinyColor2.prototype.toPercentageRgb = function() {
var fmt = function(x) {
return "".concat(Math.round(bound01$1(x, 255) * 100), "%");
};
return {
r: fmt(this.r),
g: fmt(this.g),
b: fmt(this.b),
a: this.a
};
};
TinyColor2.prototype.toPercentageRgbString = function() {
var rnd = function(x) {
return Math.round(bound01$1(x, 255) * 100);
};
return this.a === 1 ? "rgb(".concat(rnd(this.r), "%, ").concat(rnd(this.g), "%, ").concat(rnd(this.b), "%)") : "rgba(".concat(rnd(this.r), "%, ").concat(rnd(this.g), "%, ").concat(rnd(this.b), "%, ").concat(this.roundA, ")");
};
TinyColor2.prototype.toName = function() {
if (this.a === 0) {
return "transparent";
}
if (this.a < 1) {
return false;
}
var hex = "#" + rgbToHex(this.r, this.g, this.b, false);
for (var _i = 0, _a2 = Object.entries(names); _i < _a2.length; _i++) {
var _b = _a2[_i], key = _b[0], value = _b[1];
if (hex === value) {
return key;
}
}
return false;
};
TinyColor2.prototype.toString = function(format) {
var formatSet = Boolean(format);
format = format !== null && format !== void 0 ? format : this.format;
var formattedString = false;
var hasAlpha = this.a < 1 && this.a >= 0;
var needsAlphaFormat = !formatSet && hasAlpha && (format.startsWith("hex") || format === "name");
if (needsAlphaFormat) {
if (format === "name" && this.a === 0) {
return this.toName();
}
return this.toRgbString();
}
if (format === "rgb") {
formattedString = this.toRgbString();
}
if (format === "prgb") {
formattedString = this.toPercentageRgbString();
}
if (format === "hex" || format === "hex6") {
formattedString = this.toHexString();
}
if (format === "hex3") {
formattedString = this.toHexString(true);
}
if (format === "hex4") {
formattedString = this.toHex8String(true);
}
if (format === "hex8") {
formattedString = this.toHex8String();
}
if (format === "name") {
formattedString = this.toName();
}
if (format === "hsl") {
formattedString = this.toHslString();
}
if (format === "hsv") {
formattedString = this.toHsvString();
}
return formattedString || this.toHexString();
};
TinyColor2.prototype.toNumber = function() {
return (Math.round(this.r) << 16) + (Math.round(this.g) << 8) + Math.round(this.b);
};
TinyColor2.prototype.clone = function() {
return new TinyColor2(this.toString());
};
TinyColor2.prototype.lighten = function(amount) {
if (amount === void 0) {
amount = 10;
}
var hsl = this.toHsl();
hsl.l += amount / 100;
hsl.l = clamp01(hsl.l);
return new TinyColor2(hsl);
};
TinyColor2.prototype.brighten = function(amount) {
if (amount === void 0) {
amount = 10;
}
var rgb = this.toRgb();
rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));
rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));
rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));
return new TinyColor2(rgb);
};
TinyColor2.prototype.darken = function(amount) {
if (amount === void 0) {
amount = 10;
}
var hsl = this.toHsl();
hsl.l -= amount / 100;
hsl.l = clamp01(hsl.l);
return new TinyColor2(hsl);
};
TinyColor2.prototype.tint = function(amount) {
if (amount === void 0) {
amount = 10;
}
return this.mix("white", amount);
};
TinyColor2.prototype.shade = function(amount) {
if (amount === void 0) {
amount = 10;
}
return this.mix("black", amount);
};
TinyColor2.prototype.desaturate = function(amount) {
if (amount === void 0) {
amount = 10;
}
var hsl = this.toHsl();
hsl.s -= amount / 100;
hsl.s = clamp01(hsl.s);
return new TinyColor2(hsl);
};
TinyColor2.prototype.saturate = function(amount) {
if (amount === void 0) {
amount = 10;
}
var hsl = this.toHsl();
hsl.s += amount / 100;
hsl.s = clamp01(hsl.s);
return new TinyColor2(hsl);
};
TinyColor2.prototype.greyscale = function() {
return this.desaturate(100);
};
TinyColor2.prototype.spin = function(amount) {
var hsl = this.toHsl();
var hue = (hsl.h + amount) % 360;
hsl.h = hue < 0 ? 360 + hue : hue;
return new TinyColor2(hsl);
};
TinyColor2.prototype.mix = function(color, amount) {
if (amount === void 0) {
amount = 50;
}
var rgb1 = this.toRgb();
var rgb2 = new TinyColor2(color).toRgb();
var p = amount / 100;
var rgba = {
r: (rgb2.r - rgb1.r) * p + rgb1.r,
g: (rgb2.g - rgb1.g) * p + rgb1.g,
b: (rgb2.b - rgb1.b) * p + rgb1.b,
a: (rgb2.a - rgb1.a) * p + rgb1.a
};
return new TinyColor2(rgba);
};
TinyColor2.prototype.analogous = function(results, slices) {
if (results === void 0) {
results = 6;
}
if (slices === void 0) {
slices = 30;
}
var hsl = this.toHsl();
var part = 360 / slices;
var ret = [this];
for (hsl.h = (hsl.h - (part * results >> 1) + 720) % 360; --results; ) {
hsl.h = (hsl.h + part) % 360;
ret.push(new TinyColor2(hsl));
}
return ret;
};
TinyColor2.prototype.complement = function() {
var hsl = this.toHsl();
hsl.h = (hsl.h + 180) % 360;
return new TinyColor2(hsl);
};
TinyColor2.prototype.monochromatic = function(results) {
if (results === void 0) {
results = 6;
}
var hsv = this.toHsv();
var h2 = hsv.h;
var s = hsv.s;
var v = hsv.v;
var res = [];
var modification = 1 / results;
while (results--) {
res.push(new TinyColor2({ h: h2, s, v }));
v = (v + modification) % 1;
}
return res;
};
TinyColor2.prototype.splitcomplement = function() {
var hsl = this.toHsl();
var h2 = hsl.h;
return [
this,
new TinyColor2({ h: (h2 + 72) % 360, s: hsl.s, l: hsl.l }),
new TinyColor2({ h: (h2 + 216) % 360, s: hsl.s, l: hsl.l })
];
};
TinyColor2.prototype.onBackground = function(background) {
var fg = this.toRgb();
var bg = new TinyColor2(background).toRgb();
var alpha = fg.a + bg.a * (1 - fg.a);
return new TinyColor2({
r: (fg.r * fg.a + bg.r * bg.a * (1 - fg.a)) / alpha,
g: (fg.g * fg.a + bg.g * bg.a * (1 - fg.a)) / alpha,
b: (fg.b * fg.a + bg.b * bg.a * (1 - fg.a)) / alpha,
a: alpha
});
};
TinyColor2.prototype.triad = function() {
return this.polyad(3);
};
TinyColor2.prototype.tetrad = function() {
return this.polyad(4);
};
TinyColor2.prototype.polyad = function(n) {
var hsl = this.toHsl();
var h2 = hsl.h;
var result2 = [this];
var increment = 360 / n;
for (var i = 1; i < n; i++) {
result2.push(new TinyColor2({ h: (h2 + i * increment) % 360, s: hsl.s, l: hsl.l }));
}
return result2;
};
TinyColor2.prototype.equals = function(color) {
return this.toRgbString() === new TinyColor2(color).toRgbString();
};
return TinyColor2;
}()
);
function darken(color, amount = 20) {
return color.mix("#141414", amount).toString();
}
function useButtonCustomStyle(props) {
const _disabled = useFormDisabled();
const ns = useNamespace("button");
return vue.computed(() => {
let styles = {};
let buttonColor = props.color;
if (buttonColor) {
const match = buttonColor.match(/var\((.*?)\)/);
if (match) {
buttonColor = window.getComputedStyle(window.document.documentElement).getPropertyValue(match[1]);
}
const color = new TinyColor(buttonColor);
const activeBgColor = props.dark ? color.tint(20).toString() : darken(color, 20);
if (props.plain) {
styles = ns.cssVarBlock({
"bg-color": props.dark ? darken(color, 90) : color.tint(90).toString(),
"text-color": buttonColor,
"border-color": props.dark ? darken(color, 50) : color.tint(50).toString(),
"hover-text-color": `var(${ns.cssVarName("color-white")})`,
"hover-bg-color": buttonColor,
"hover-border-color": buttonColor,
"active-bg-color": activeBgColor,
"active-text-color": `var(${ns.cssVarName("color-white")})`,
"active-border-color": activeBgColor
});
if (_disabled.value) {
styles[ns.cssVarBlockName("disabled-bg-color")] = props.dark ? darken(color, 90) : color.tint(90).toString();
styles[ns.cssVarBlockName("disabled-text-color")] = props.dark ? darken(color, 50) : color.tint(50).toString();
styles[ns.cssVarBlockName("disabled-border-color")] = props.dark ? darken(color, 80) : color.tint(80).toString();
}
} else {
const hoverBgColor = props.dark ? darken(color, 30) : color.tint(30).toString();
const textColor = color.isDark() ? `var(${ns.cssVarName("color-white")})` : `var(${ns.cssVarName("color-black")})`;
styles = ns.cssVarBlock({
"bg-color": buttonColor,
"text-color": textColor,
"border-color": buttonColor,
"hover-bg-color": hoverBgColor,
"hover-text-color": textColor,
"hover-border-color": hoverBgColor,
"active-bg-color": activeBgColor,
"active-border-color": activeBgColor
});
if (_disabled.value) {
const disabledButtonColor = props.dark ? darken(color, 50) : color.tint(50).toString();
styles[ns.cssVarBlockName("disabled-bg-color")] = disabledButtonColor;
styles[ns.cssVarBlockName("disabled-text-color")] = props.dark ? "rgba(255, 255, 255, 0.5)" : `var(${ns.cssVarName("color-white")})`;
styles[ns.cssVarBlockName("disabled-border-color")] = disabledButtonColor;
}
}
}
return styles;
});
}
const __default__$u = vue.defineComponent({
name: "ElButton"
});
const _sfc_main$N = /* @__PURE__ */ vue.defineComponent({
...__default__$u,
props: buttonProps,
emits: buttonEmits,
setup(__props, { expose, emit }) {
const props = __props;
const buttonStyle = useButtonCustomStyle(props);
const ns = useNamespace("button");
const { _ref, _size, _type, _disabled, _props, shouldAddSpace, handleClick } = useButton(props, emit);
const buttonKls = vue.computed(() => [
ns.b(),
ns.m(_type.value),
ns.m(_size.value),
ns.is("disabled", _disabled.value),
ns.is("loading", props.loading),
ns.is("plain", props.plain),
ns.is("round", props.round),
ns.is("circle", props.circle),
ns.is("text", props.text),
ns.is("link", props.link),
ns.is("has-bg", props.bg)
]);
expose({
ref: _ref,
size: _size,
type: _type,
disabled: _disabled,
shouldAddSpace
});
return (_ctx, _cache) => {
return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.tag), vue.mergeProps({
ref_key: "_ref",
ref: _ref
}, vue.unref(_props), {
class: vue.unref(buttonKls),
style: vue.unref(buttonStyle),
onClick: vue.unref(handleClick)
}), {
default: vue.withCtx(() => [
_ctx.loading ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
_ctx.$slots.loading ? vue.renderSlot(_ctx.$slots, "loading", { key: 0 }) : (vue.openBlock(), vue.createBlock(vue.unref(ElIcon), {
key: 1,
class: vue.normalizeClass(vue.unref(ns).is("loading"))
}, {
default: vue.withCtx(() => [
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.loadingIcon)))
]),
_: 1
}, 8, ["class"]))
], 64)) : _ctx.icon || _ctx.$slots.icon ? (vue.openBlock(), vue.createBlock(vue.unref(ElIcon), { key: 1 }, {
default: vue.withCtx(() => [
_ctx.icon ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.icon), { key: 0 })) : vue.renderSlot(_ctx.$slots, "icon", { key: 1 })
]),
_: 3
})) : vue.createCommentVNode("v-if", true),
_ctx.$slots.default ? (vue.openBlock(), vue.createElementBlock("span", {
key: 2,
class: vue.normalizeClass({ [vue.unref(ns).em("text", "expand")]: vue.unref(shouldAddSpace) })
}, [
vue.renderSlot(_ctx.$slots, "default")
], 2)) : vue.createCommentVNode("v-if", true)
]),
_: 3
}, 16, ["class", "style", "onClick"]);
};
}
});
var Button = /* @__PURE__ */ _export_sfc(_sfc_main$N, [["__file", "button.vue"]]);
const buttonGroupProps = {
size: buttonProps.size,
type: buttonProps.type
};
const __default__$t = vue.defineComponent({
name: "ElButtonGroup"
});
const _sfc_main$M = /* @__PURE__ */ vue.defineComponent({
...__default__$t,
props: buttonGroupProps,
setup(__props) {
const props = __props;
vue.provide(buttonGroupContextKey, vue.reactive({
size: vue.toRef(props, "size"),
type: vue.toRef(props, "type")
}));
const ns = useNamespace("button");
return (_ctx, _cache) => {
return vue.openBlock(), vue.createElementBlock("div", {
class: vue.normalizeClass(vue.unref(ns).b("group"))
}, [
vue.renderSlot(_ctx.$slots, "default")
], 2);
};
}
});
var ButtonGroup = /* @__PURE__ */ _export_sfc(_sfc_main$M, [["__file", "button-group.vue"]]);
const ElButton = withInstall(Button, {
ButtonGroup
});
withNoopInstall(ButtonGroup);
const nodeList = /* @__PURE__ */ new Map();
if (isClient) {
let startClick;
document.addEventListener("mousedown", (e) => startClick = e);
document.addEventListener("mouseup", (e) => {
if (startClick) {
for (const handlers of nodeList.values()) {
for (const { documentHandler } of handlers) {
documentHandler(e, startClick);
}
}
startClick = void 0;
}
});
}
function createDocumentHandler(el, binding) {
let excludes = [];
if (Array.isArray(binding.arg)) {
excludes = binding.arg;
} else if (isElement(binding.arg)) {
excludes.push(binding.arg);
}
return function(mouseup, mousedown) {
const popperRef = binding.instance.popperRef;
const mouseUpTarget = mouseup.target;
const mouseDownTarget = mousedown == null ? void 0 : mousedown.target;
const isBound = !binding || !binding.instance;
const isTargetExists = !mouseUpTarget || !mouseDownTarget;
const isContainedByEl = el.contains(mouseUpTarget) || el.contains(mouseDownTarget);
const isSelf = el === mouseUpTarget;
const isTargetExcluded = excludes.length && excludes.some((item) => item == null ? void 0 : item.contains(mouseUpTarget)) || excludes.length && excludes.includes(mouseDownTarget);
const isContainedByPopper = popperRef && (popperRef.contains(mouseUpTarget) || popperRef.contains(mouseDownTarget));
if (isBound || isTargetExists || isContainedByEl || isSelf || isTargetExcluded || isContainedByPopper) {
return;
}
binding.value(mouseup, mousedown);
};
}
const ClickOutside = {
beforeMount(el, binding) {
if (!nodeList.has(el)) {
nodeList.set(el, []);
}
nodeList.get(el).push({
documentHandler: createDocumentHandler(el, binding),
bindingFn: binding.value
});
},
updated(el, binding) {
if (!nodeList.has(el)) {
nodeList.set(el, []);
}
const handlers = nodeList.get(el);
const oldHandlerIndex = handlers.findIndex((item) => item.bindingFn === binding.oldValue);
const newHandler = {
documentHandler: createDocumentHandler(el, binding),
bindingFn: binding.value
};
if (oldHandlerIndex >= 0) {
handlers.splice(oldHandlerIndex, 1, newHandler);
} else {
handlers.push(newHandler);
}
},
unmounted(el) {
nodeList.delete(el);
}
};
const REPEAT_INTERVAL = 100;
const REPEAT_DELAY = 600;
const vRepeatClick = {
beforeMount(el, binding) {
const value = binding.value;
const { interval = REPEAT_INTERVAL, delay: delay2 = REPEAT_DELAY } = isFunction$1(value) ? {} : value;
let intervalId;
let delayId;
const handler = () => isFunction$1(value) ? value() : value.handler();
const clear = () => {
if (delayId) {
clearTimeout(delayId);
delayId = void 0;
}
if (intervalId) {
clearInterval(intervalId);
intervalId = void 0;
}
};
el.addEventListener("mousedown", (evt) => {
if (evt.button !== 0)
return;
clear();
handler();
document.addEventListener("mouseup", () => clear(), {
once: true
});
delayId = setTimeout(() => {
intervalId = setInterval(() => {
handler();
}, interval);
}, delay2);
});
}
};
const FOCUSABLE_CHILDREN = "_trap-focus-children";
const FOCUS_STACK = [];
const FOCUS_HANDLER = (e) => {
if (FOCUS_STACK.length === 0)
return;
const focusableElement = FOCUS_STACK[FOCUS_STACK.length - 1][FOCUSABLE_CHILDREN];
if (focusableElement.length > 0 && e.code === EVENT_CODE.tab) {
if (focusableElement.length === 1) {
e.preventDefault();
if (document.activeElement !== focusableElement[0]) {
focusableElement[0].focus();
}
return;
}
const goingBackward = e.shiftKey;
const isFirst = e.target === focusableElement[0];
const isLast = e.target === focusableElement[focusableElement.length - 1];
if (isFirst && goingBackward) {
e.preventDefault();
focusableElement[focusableElement.length - 1].focus();
}
if (isLast && !goingBackward) {
e.preventDefault();
focusableElement[0].focus();
}
}
};
const TrapFocus = {
beforeMount(el) {
el[FOCUSABLE_CHILDREN] = obtainAllFocusableElements$1(el);
FOCUS_STACK.push(el);
if (FOCUS_STACK.length <= 1) {
document.addEventListener("keydown", FOCUS_HANDLER);
}
},
updated(el) {
vue.nextTick(() => {
el[FOCUSABLE_CHILDREN] = obtainAllFocusableElements$1(el);
});
},
unmounted() {
FOCUS_STACK.shift();
if (FOCUS_STACK.length === 0) {
document.removeEventListener("keydown", FOCUS_HANDLER);
}
}
};
const cardProps = buildProps({
header: {
type: String,
default: ""
},
footer: {
type: String,
default: ""
},
bodyStyle: {
type: definePropType([String, Object, Array]),
default: ""
},
bodyClass: String,
shadow: {
type: String,
values: ["always", "hover", "never"],
default: "always"
}
});
const __default__$s = vue.defineComponent({
name: "ElCard"
});
const _sfc_main$L = /* @__PURE__ */ vue.defineComponent({
...__default__$s,
props: cardProps,
setup(__props) {
const ns = useNamespace("card");
return (_ctx, _cache) => {
return vue.openBlock(), vue.createElementBlock("div", {
class: vue.normalizeClass([vue.unref(ns).b(), vue.unref(ns).is(`${_ctx.shadow}-shadow`)])
}, [
_ctx.$slots.header || _ctx.header ? (vue.openBlock(), vue.createElementBlock("div", {
key: 0,
class: vue.normalizeClass(vue.unref(ns).e("header"))
}, [
vue.renderSlot(_ctx.$slots, "header", {}, () => [
vue.createTextVNode(vue.toDisplayString(_ctx.header), 1)
])
], 2)) : vue.createCommentVNode("v-if", true),
vue.createElementVNode("div", {
class: vue.normalizeClass([vue.unref(ns).e("body"), _ctx.bodyClass]),
style: vue.normalizeStyle(_ctx.bodyStyle)
}, [
vue.renderSlot(_ctx.$slots, "default")
], 6),
_ctx.$slots.footer || _ctx.footer ? (vue.openBlock(), vue.createElementBlock("div", {
key: 1,
class: vue.normalizeClass(vue.unref(ns).e("footer"))
}, [
vue.renderSlot(_ctx.$slots, "footer", {}, () => [
vue.createTextVNode(vue.toDisplayString(_ctx.footer), 1)
])
], 2)) : vue.createCommentVNode("v-if", true)
], 2);
};
}
});
var Card = /* @__PURE__ */ _export_sfc(_sfc_main$L, [["__file", "card.vue"]]);
const ElCard = withInstall(Card);
const checkboxProps = {
modelValue: {
type: [Number, String, Boolean],
default: void 0
},
label: {
type: [String, Boolean, Number, Object],
default: void 0
},
value: {
type: [String, Boolean, Number, Object],
default: void 0
},
indeterminate: Boolean,
disabled: Boolean,
checked: Boolean,
name: {
type: String,
default: void 0
},
trueValue: {
type: [String, Number],
default: void 0
},
falseValue: {
type: [String, Number],
default: void 0
},
trueLabel: {
type: [String, Number],
default: void 0
},
falseLabel: {
type: [String, Number],
default: void 0
},
id: {
type: String,
default: void 0
},
border: Boolean,
size: useSizeProp,
tabindex: [String, Number],
validateEvent: {
type: Boolean,
default: true
},
...useAriaProps(["ariaControls"])
};
const checkboxEmits = {
[UPDATE_MODEL_EVENT]: (val) => isString(val) || isNumber(val) || isBoolean(val),
change: (val) => isString(val) || isNumber(val) || isBoolean(val)
};
const checkboxGroupContextKey = Symbol("checkboxGroupContextKey");
const useCheckboxDisabled = ({
model,
isChecked
}) => {
const checkboxGroup = vue.inject(checkboxGroupContextKey, void 0);
const isLimitDisabled = vue.computed(() => {
var _a2, _b;
const max2 = (_a2 = checkboxGroup == null ? void 0 : checkboxGroup.max) == null ? void 0 : _a2.value;
const min2 = (_b = checkboxGroup == null ? void 0 : checkboxGroup.min) == null ? void 0 : _b.value;
return !isUndefined(max2) && model.value.length >= max2 && !isChecked.value || !isUndefined(min2) && model.value.length <= min2 && isChecked.value;
});
const isDisabled = useFormDisabled(vue.computed(() => (checkboxGroup == null ? void 0 : checkboxGroup.disabled.value) || isLimitDisabled.value));
return {
isDisabled,
isLimitDisabled
};
};
const useCheckboxEvent = (props, {
model,
isLimitExceeded,
hasOwnLabel,
isDisabled,
isLabeledByFormItem
}) => {
const checkboxGroup = vue.inject(checkboxGroupContextKey, void 0);
const { formItem } = useFormItem();
const { emit } = vue.getCurrentInstance();
function getLabeledValue(value) {
var _a2, _b, _c, _d;
return [true, props.trueValue, props.trueLabel].includes(value) ? (_b = (_a2 = props.trueValue) != null ? _a2 : props.trueLabel) != null ? _b : true : (_d = (_c = props.falseValue) != null ? _c : props.falseLabel) != null ? _d : false;
}
function emitChangeEvent(checked, e) {
emit("change", getLabeledValue(checked), e);
}
function handleChange(e) {
if (isLimitExceeded.value)
return;
const target = e.target;
emit("change", getLabeledValue(target.checked), e);
}
async function onClickRoot(e) {
if (isLimitExceeded.value)
return;
if (!hasOwnLabel.value && !isDisabled.value && isLabeledByFormItem.value) {
const eventTargets = e.composedPath();
const hasLabel = eventTargets.some((item) => item.tagName === "LABEL");
if (!hasLabel) {
model.value = getLabeledValue([false, props.falseValue, props.falseLabel].includes(model.value));
await vue.nextTick();
emitChangeEvent(model.value, e);
}
}
}
const validateEvent = vue.computed(() => (checkboxGroup == null ? void 0 : checkboxGroup.validateEvent) || props.validateEvent);
vue.watch(() => props.modelValue, () => {
if (validateEvent.value) {
formItem == null ? void 0 : formItem.validate("change").catch((err) => debugWarn());
}
});
return {
handleChange,
onClickRoot
};
};
const useCheckboxModel = (props) => {
const selfModel = vue.ref(false);
const { emit } = vue.getCurrentInstance();
const checkboxGroup = vue.inject(checkboxGroupContextKey, void 0);
const isGroup = vue.computed(() => isUndefined(checkboxGroup) === false);
const isLimitExceeded = vue.ref(false);
const model = vue.computed({
get() {
var _a2, _b;
return isGroup.value ? (_a2 = checkboxGroup == null ? void 0 : checkboxGroup.modelValue) == null ? void 0 : _a2.value : (_b = props.modelValue) != null ? _b : selfModel.value;
},
set(val) {
var _a2, _b;
if (isGroup.value && isArray$1(val)) {
isLimitExceeded.value = ((_a2 = checkboxGroup == null ? void 0 : checkboxGroup.max) == null ? void 0 : _a2.value) !== void 0 && val.length > (checkboxGroup == null ? void 0 : checkboxGroup.max.value) && val.length > model.value.length;
isLimitExceeded.value === false && ((_b = checkboxGroup == null ? void 0 : checkboxGroup.changeEvent) == null ? void 0 : _b.call(checkboxGroup, val));
} else {
emit(UPDATE_MODEL_EVENT, val);
selfModel.value = val;
}
}
});
return {
model,
isGroup,
isLimitExceeded
};
};
const useCheckboxStatus = (props, slots, { model }) => {
const checkboxGroup = vue.inject(checkboxGroupContextKey, void 0);
const isFocused = vue.ref(false);
const actualValue = vue.computed(() => {
if (!isPropAbsent(props.value)) {
return props.value;
}
return props.label;
});
const isChecked = vue.computed(() => {
const value = model.value;
if (isBoolean(value)) {
return value;
} else if (isArray$1(value)) {
if (isObject$1(actualValue.value)) {
return value.map(vue.toRaw).some((o) => isEqual(o, actualValue.value));
} else {
return value.map(vue.toRaw).includes(actualValue.value);
}
} else if (value !== null && value !== void 0) {
return value === props.trueValue || value === props.trueLabel;
} else {
return !!value;
}
});
const checkboxButtonSize = useFormSize(vue.computed(() => {
var _a2;
return (_a2 = checkboxGroup == null ? void 0 : checkboxGroup.size) == null ? void 0 : _a2.value;
}), {
prop: true
});
const checkboxSize = useFormSize(vue.computed(() => {
var _a2;
return (_a2 = checkboxGroup == null ? void 0 : checkboxGroup.size) == null ? void 0 : _a2.value;
}));
const hasOwnLabel = vue.computed(() => {
return !!slots.default || !isPropAbsent(actualValue.value);
});
return {
checkboxButtonSize,
isChecked,
isFocused,
checkboxSize,
hasOwnLabel,
actualValue
};
};
const useCheckbox = (props, slots) => {
const { formItem: elFormItem } = useFormItem();
const { model, isGroup, isLimitExceeded } = useCheckboxModel(props);
const {
isFocused,
isChecked,
checkboxButtonSize,
checkboxSize,
hasOwnLabel,
actualValue
} = useCheckboxStatus(props, slots, { model });
const { isDisabled } = useCheckboxDisabled({ model, isChecked });
const { inputId, isLabeledByFormItem } = useFormItemInputId(props, {
formItemContext: elFormItem,
disableIdGeneration: hasOwnLabel,
disableIdManagement: isGroup
});
const { handleChange, onClickRoot } = useCheckboxEvent(props, {
model,
isLimitExceeded,
hasOwnLabel,
isDisabled,
isLabeledByFormItem
});
const setStoreValue = () => {
function addToStore() {
var _a2, _b;
if (isArray$1(model.value) && !model.value.includes(actualValue.value)) {
model.value.push(actualValue.value);
} else {
model.value = (_b = (_a2 = props.trueValue) != null ? _a2 : props.trueLabel) != null ? _b : true;
}
}
props.checked && addToStore();
};
setStoreValue();
useDeprecated({
from: "label act as value",
replacement: "value",
version: "3.0.0",
scope: "el-checkbox",
ref: "https://element-plus.org/en-US/component/checkbox.html"
}, vue.computed(() => isGroup.value && isPropAbsent(props.value)));
useDeprecated({
from: "true-label",
replacement: "true-value",
version: "3.0.0",
scope: "el-checkbox",
ref: "https://element-plus.org/en-US/component/checkbox.html"
}, vue.computed(() => !!props.trueLabel));
useDeprecated({
from: "false-label",
replacement: "false-value",
version: "3.0.0",
scope: "el-checkbox",
ref: "https://element-plus.org/en-US/component/checkbox.html"
}, vue.computed(() => !!props.falseLabel));
return {
inputId,
isLabeledByFormItem,
isChecked,
isDisabled,
isFocused,
checkboxButtonSize,
checkboxSize,
hasOwnLabel,
model,
actualValue,
handleChange,
onClickRoot
};
};
const __default__$r = vue.defineComponent({
name: "ElCheckbox"
});
const _sfc_main$K = /* @__PURE__ */ vue.defineComponent({
...__default__$r,
props: checkboxProps,
emits: checkboxEmits,
setup(__props) {
const props = __props;
const slots = vue.useSlots();
const {
inputId,
isLabeledByFormItem,
isChecked,
isDisabled,
isFocused,
checkboxSize,
hasOwnLabel,
model,
actualValue,
handleChange,
onClickRoot
} = useCheckbox(props, slots);
const ns = useNamespace("checkbox");
const compKls = vue.computed(() => {
return [
ns.b(),
ns.m(checkboxSize.value),
ns.is("disabled", isDisabled.value),
ns.is("bordered", props.border),
ns.is("checked", isChecked.value)
];
});
const spanKls = vue.computed(() => {
return [
ns.e("input"),
ns.is("disabled", isDisabled.value),
ns.is("checked", isChecked.value),
ns.is("indeterminate", props.indeterminate),
ns.is("focus", isFocused.value)
];
});
return (_ctx, _cache) => {
return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(!vue.unref(hasOwnLabel) && vue.unref(isLabeledByFormItem) ? "span" : "label"), {
class: vue.normalizeClass(vue.unref(compKls)),
"aria-controls": _ctx.indeterminate ? _ctx.ariaControls : null,
onClick: vue.unref(onClickRoot)
}, {
default: vue.withCtx(() => {
var _a2, _b, _c, _d;
return [
vue.createElementVNode("span", {
class: vue.normalizeClass(vue.unref(spanKls))
}, [
_ctx.trueValue || _ctx.falseValue || _ctx.trueLabel || _ctx.falseLabel ? vue.withDirectives((vue.openBlock(), vue.createElementBlock("input", {
key: 0,
id: vue.unref(inputId),
"onUpdate:modelValue": ($event) => vue.isRef(model) ? model.value = $event : null,
class: vue.normalizeClass(vue.unref(ns).e("original")),
type: "checkbox",
indeterminate: _ctx.indeterminate,
name: _ctx.name,
tabindex: _ctx.tabindex,
disabled: vue.unref(isDisabled),
"true-value": (_b = (_a2 = _ctx.trueValue) != null ? _a2 : _ctx.trueLabel) != null ? _b : true,
"false-value": (_d = (_c = _ctx.falseValue) != null ? _c : _ctx.falseLabel) != null ? _d : false,
onChange: vue.unref(handleChange),
onFocus: ($event) => isFocused.value = true,
onBlur: ($event) => isFocused.value = false,
onClick: vue.withModifiers(() => {
}, ["stop"])
}, null, 42, ["id", "onUpdate:modelValue", "indeterminate", "name", "tabindex", "disabled", "true-value", "false-value", "onChange", "onFocus", "onBlur", "onClick"])), [
[vue.vModelCheckbox, vue.unref(model)]
]) : vue.withDirectives((vue.openBlock(), vue.createElementBlock("input", {
key: 1,
id: vue.unref(inputId),
"onUpdate:modelValue": ($event) => vue.isRef(model) ? model.value = $event : null,
class: vue.normalizeClass(vue.unref(ns).e("original")),
type: "checkbox",
indeterminate: _ctx.indeterminate,
disabled: vue.unref(isDisabled),
value: vue.unref(actualValue),
name: _ctx.name,
tabindex: _ctx.tabindex,
onChange: vue.unref(handleChange),
onFocus: ($event) => isFocused.value = true,
onBlur: ($event) => isFocused.value = false,
onClick: vue.withModifiers(() => {
}, ["stop"])
}, null, 42, ["id", "onUpdate:modelValue", "indeterminate", "disabled", "value", "name", "tabindex", "onChange", "onFocus", "onBlur", "onClick"])), [
[vue.vModelCheckbox, vue.unref(model)]
]),
vue.createElementVNode("span", {
class: vue.normalizeClass(vue.unref(ns).e("inner"))
}, null, 2)
], 2),
vue.unref(hasOwnLabel) ? (vue.openBlock(), vue.createElementBlock("span", {
key: 0,
class: vue.normalizeClass(vue.unref(ns).e("label"))
}, [
vue.renderSlot(_ctx.$slots, "default"),
!_ctx.$slots.default ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
vue.createTextVNode(vue.toDisplayString(_ctx.label), 1)
], 64)) : vue.createCommentVNode("v-if", true)
], 2)) : vue.createCommentVNode("v-if", true)
];
}),
_: 3
}, 8, ["class", "aria-controls", "onClick"]);
};
}
});
var Checkbox = /* @__PURE__ */ _export_sfc(_sfc_main$K, [["__file", "checkbox.vue"]]);
const __default__$q = vue.defineComponent({
name: "ElCheckboxButton"
});
const _sfc_main$J = /* @__PURE__ */ vue.defineComponent({
...__default__$q,
props: checkboxProps,
emits: checkboxEmits,
setup(__props) {
const props = __props;
const slots = vue.useSlots();
const {
isFocused,
isChecked,
isDisabled,
checkboxButtonSize,
model,
actualValue,
handleChange
} = useCheckbox(props, slots);
const checkboxGroup = vue.inject(checkboxGroupContextKey, void 0);
const ns = useNamespace("checkbox");
const activeStyle = vue.computed(() => {
var _a2, _b, _c, _d;
const fillValue = (_b = (_a2 = checkboxGroup == null ? void 0 : checkboxGroup.fill) == null ? void 0 : _a2.value) != null ? _b : "";
return {
backgroundColor: fillValue,
borderColor: fillValue,
color: (_d = (_c = checkboxGroup == null ? void 0 : checkboxGroup.textColor) == null ? void 0 : _c.value) != null ? _d : "",
boxShadow: fillValue ? `-1px 0 0 0 ${fillValue}` : void 0
};
});
const labelKls = vue.computed(() => {
return [
ns.b("button"),
ns.bm("button", checkboxButtonSize.value),
ns.is("disabled", isDisabled.value),
ns.is("checked", isChecked.value),
ns.is("focus", isFocused.value)
];
});
return (_ctx, _cache) => {
var _a2, _b, _c, _d;
return vue.openBlock(), vue.createElementBlock("label", {
class: vue.normalizeClass(vue.unref(labelKls))
}, [
_ctx.trueValue || _ctx.falseValue || _ctx.trueLabel || _ctx.falseLabel ? vue.withDirectives((vue.openBlock(), vue.createElementBlock("input", {
key: 0,
"onUpdate:modelValue": ($event) => vue.isRef(model) ? model.value = $event : null,
class: vue.normalizeClass(vue.unref(ns).be("button", "original")),
type: "checkbox",
name: _ctx.name,
tabindex: _ctx.tabindex,
disabled: vue.unref(isDisabled),
"true-value": (_b = (_a2 = _ctx.trueValue) != null ? _a2 : _ctx.trueLabel) != null ? _b : true,
"false-value": (_d = (_c = _ctx.falseValue) != null ? _c : _ctx.falseLabel) != null ? _d : false,
onChange: vue.unref(handleChange),
onFocus: ($event) => isFocused.value = true,
onBlur: ($event) => isFocused.value = false,
onClick: vue.withModifiers(() => {
}, ["stop"])
}, null, 42, ["onUpdate:modelValue", "name", "tabindex", "disabled", "true-value", "false-value", "onChange", "onFocus", "onBlur", "onClick"])), [
[vue.vModelCheckbox, vue.unref(model)]
]) : vue.withDirectives((vue.openBlock(), vue.createElementBlock("input", {
key: 1,
"onUpdate:modelValue": ($event) => vue.isRef(model) ? model.value = $event : null,
class: vue.normalizeClass(vue.unref(ns).be("button", "original")),
type: "checkbox",
name: _ctx.name,
tabindex: _ctx.tabindex,
disabled: vue.unref(isDisabled),
value: vue.unref(actualValue),
onChange: vue.unref(handleChange),
onFocus: ($event) => isFocused.value = true,
onBlur: ($event) => isFocused.value = false,
onClick: vue.withModifiers(() => {
}, ["stop"])
}, null, 42, ["onUpdate:modelValue", "name", "tabindex", "disabled", "value", "onChange", "onFocus", "onBlur", "onClick"])), [
[vue.vModelCheckbox, vue.unref(model)]
]),
_ctx.$slots.default || _ctx.label ? (vue.openBlock(), vue.createElementBlock("span", {
key: 2,
class: vue.normalizeClass(vue.unref(ns).be("button", "inner")),
style: vue.normalizeStyle(vue.unref(isChecked) ? vue.unref(activeStyle) : void 0)
}, [
vue.renderSlot(_ctx.$slots, "default", {}, () => [
vue.createTextVNode(vue.toDisplayString(_ctx.label), 1)
])
], 6)) : vue.createCommentVNode("v-if", true)
], 2);
};
}
});
var CheckboxButton = /* @__PURE__ */ _export_sfc(_sfc_main$J, [["__file", "checkbox-button.vue"]]);
const checkboxGroupProps = buildProps({
modelValue: {
type: definePropType(Array),
default: () => []
},
disabled: Boolean,
min: Number,
max: Number,
size: useSizeProp,
fill: String,
textColor: String,
tag: {
type: String,
default: "div"
},
validateEvent: {
type: Boolean,
default: true
},
...useAriaProps(["ariaLabel"])
});
const checkboxGroupEmits = {
[UPDATE_MODEL_EVENT]: (val) => isArray$1(val),
change: (val) => isArray$1(val)
};
const __default__$p = vue.defineComponent({
name: "ElCheckboxGroup"
});
const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
...__default__$p,
props: checkboxGroupProps,
emits: checkboxGroupEmits,
setup(__props, { emit }) {
const props = __props;
const ns = useNamespace("checkbox");
const { formItem } = useFormItem();
const { inputId: groupId, isLabeledByFormItem } = useFormItemInputId(props, {
formItemContext: formItem
});
const changeEvent = async (value) => {
emit(UPDATE_MODEL_EVENT, value);
await vue.nextTick();
emit("change", value);
};
const modelValue = vue.computed({
get() {
return props.modelValue;
},
set(val) {
changeEvent(val);
}
});
vue.provide(checkboxGroupContextKey, {
...pick(vue.toRefs(props), [
"size",
"min",
"max",
"disabled",
"validateEvent",
"fill",
"textColor"
]),
modelValue,
changeEvent
});
vue.watch(() => props.modelValue, () => {
if (props.validateEvent) {
formItem == null ? void 0 : formItem.validate("change").catch((err) => debugWarn());
}
});
return (_ctx, _cache) => {
var _a2;
return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.tag), {
id: vue.unref(groupId),
class: vue.normalizeClass(vue.unref(ns).b("group")),
role: "group",
"aria-label": !vue.unref(isLabeledByFormItem) ? _ctx.ariaLabel || "checkbox-group" : void 0,
"aria-labelledby": vue.unref(isLabeledByFormItem) ? (_a2 = vue.unref(formItem)) == null ? void 0 : _a2.labelId : void 0
}, {
default: vue.withCtx(() => [
vue.renderSlot(_ctx.$slots, "default")
]),
_: 3
}, 8, ["id", "class", "aria-label", "aria-labelledby"]);
};
}
});
var CheckboxGroup = /* @__PURE__ */ _export_sfc(_sfc_main$I, [["__file", "checkbox-group.vue"]]);
const ElCheckbox = withInstall(Checkbox, {
CheckboxButton,
CheckboxGroup
});
withNoopInstall(CheckboxButton);
withNoopInstall(CheckboxGroup);
const tagProps = buildProps({
type: {
type: String,
values: ["primary", "success", "info", "warning", "danger"],
default: "primary"
},
closable: Boolean,
disableTransitions: Boolean,
hit: Boolean,
color: String,
size: {
type: String,
values: componentSizes
},
effect: {
type: String,
values: ["dark", "light", "plain"],
default: "light"
},
round: Boolean
});
const tagEmits = {
close: (evt) => evt instanceof MouseEvent,
click: (evt) => evt instanceof MouseEvent
};
const __default__$o = vue.defineComponent({
name: "ElTag"
});
const _sfc_main$H = /* @__PURE__ */ vue.defineComponent({
...__default__$o,
props: tagProps,
emits: tagEmits,
setup(__props, { emit }) {
const props = __props;
const tagSize = useFormSize();
const ns = useNamespace("tag");
const containerKls = vue.computed(() => {
const { type, hit, effect, closable, round } = props;
return [
ns.b(),
ns.is("closable", closable),
ns.m(type || "primary"),
ns.m(tagSize.value),
ns.m(effect),
ns.is("hit", hit),
ns.is("round", round)
];
});
const handleClose = (event) => {
emit("close", event);
};
const handleClick = (event) => {
emit("click", event);
};
const handleVNodeMounted = (vnode) => {
vnode.component.subTree.component.bum = null;
};
return (_ctx, _cache) => {
return _ctx.disableTransitions ? (vue.openBlock(), vue.createElementBlock("span", {
key: 0,
class: vue.normalizeClass(vue.unref(containerKls)),
style: vue.normalizeStyle({ backgroundColor: _ctx.color }),
onClick: handleClick
}, [
vue.createElementVNode("span", {
class: vue.normalizeClass(vue.unref(ns).e("content"))
}, [
vue.renderSlot(_ctx.$slots, "default")
], 2),
_ctx.closable ? (vue.openBlock(), vue.createBlock(vue.unref(ElIcon), {
key: 0,
class: vue.normalizeClass(vue.unref(ns).e("close")),
onClick: vue.withModifiers(handleClose, ["stop"])
}, {
default: vue.withCtx(() => [
vue.createVNode(vue.unref(close_default))
]),
_: 1
}, 8, ["class", "onClick"])) : vue.createCommentVNode("v-if", true)
], 6)) : (vue.openBlock(), vue.createBlock(vue.Transition, {
key: 1,
name: `${vue.unref(ns).namespace.value}-zoom-in-center`,
appear: "",
onVnodeMounted: handleVNodeMounted
}, {
default: vue.withCtx(() => [
vue.createElementVNode("span", {
class: vue.normalizeClass(vue.unref(containerKls)),
style: vue.normalizeStyle({ backgroundColor: _ctx.color }),
onClick: handleClick
}, [
vue.createElementVNode("span", {
class: vue.normalizeClass(vue.unref(ns).e("content"))
}, [
vue.renderSlot(_ctx.$slots, "default")
], 2),
_ctx.closable ? (vue.openBlock(), vue.createBlock(vue.unref(ElIcon), {
key: 0,
class: vue.normalizeClass(vue.unref(ns).e("close")),
onClick: vue.withModifiers(handleClose, ["stop"])
}, {
default: vue.withCtx(() => [
vue.createVNode(vue.unref(close_default))
]),
_: 1
}, 8, ["class", "onClick"])) : vue.createCommentVNode("v-if", true)
], 6)
]),
_: 3
}, 8, ["name"]));
};
}
});
var Tag = /* @__PURE__ */ _export_sfc(_sfc_main$H, [["__file", "tag.vue"]]);
const ElTag = withInstall(Tag);
const rowContextKey = Symbol("rowContextKey");
const RowJustify = [
"start",
"center",
"end",
"space-around",
"space-between",
"space-evenly"
];
const RowAlign = ["top", "middle", "bottom"];
const rowProps = buildProps({
tag: {
type: String,
default: "div"
},
gutter: {
type: Number,
default: 0
},
justify: {
type: String,
values: RowJustify,
default: "start"
},
align: {
type: String,
values: RowAlign
}
});
const __default__$n = vue.defineComponent({
name: "ElRow"
});
const _sfc_main$G = /* @__PURE__ */ vue.defineComponent({
...__default__$n,
props: rowProps,
setup(__props) {
const props = __props;
const ns = useNamespace("row");
const gutter = vue.computed(() => props.gutter);
vue.provide(rowContextKey, {
gutter
});
const style = vue.computed(() => {
const styles = {};
if (!props.gutter) {
return styles;
}
styles.marginRight = styles.marginLeft = `-${props.gutter / 2}px`;
return styles;
});
const rowKls = vue.computed(() => [
ns.b(),
ns.is(`justify-${props.justify}`, props.justify !== "start"),
ns.is(`align-${props.align}`, !!props.align)
]);
return (_ctx, _cache) => {
return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.tag), {
class: vue.normalizeClass(vue.unref(rowKls)),
style: vue.normalizeStyle(vue.unref(style))
}, {
default: vue.withCtx(() => [
vue.renderSlot(_ctx.$slots, "default")
]),
_: 3
}, 8, ["class", "style"]);
};
}
});
var Row = /* @__PURE__ */ _export_sfc(_sfc_main$G, [["__file", "row.vue"]]);
const ElRow = withInstall(Row);
const colProps = buildProps({
tag: {
type: String,
default: "div"
},
span: {
type: Number,
default: 24
},
offset: {
type: Number,
default: 0
},
pull: {
type: Number,
default: 0
},
push: {
type: Number,
default: 0
},
xs: {
type: definePropType([Number, Object]),
default: () => mutable({})
},
sm: {
type: definePropType([Number, Object]),
default: () => mutable({})
},
md: {
type: definePropType([Number, Object]),
default: () => mutable({})
},
lg: {
type: definePropType([Number, Object]),
default: () => mutable({})
},
xl: {
type: definePropType([Number, Object]),
default: () => mutable({})
}
});
const __default__$m = vue.defineComponent({
name: "ElCol"
});
const _sfc_main$F = /* @__PURE__ */ vue.defineComponent({
...__default__$m,
props: colProps,
setup(__props) {
const props = __props;
const { gutter } = vue.inject(rowContextKey, { gutter: vue.computed(() => 0) });
const ns = useNamespace("col");
const style = vue.computed(() => {
const styles = {};
if (gutter.value) {
styles.paddingLeft = styles.paddingRight = `${gutter.value / 2}px`;
}
return styles;
});
const colKls = vue.computed(() => {
const classes = [];
const pos = ["span", "offset", "pull", "push"];
pos.forEach((prop) => {
const size2 = props[prop];
if (isNumber(size2)) {
if (prop === "span")
classes.push(ns.b(`${props[prop]}`));
else if (size2 > 0)
classes.push(ns.b(`${prop}-${props[prop]}`));
}
});
const sizes = ["xs", "sm", "md", "lg", "xl"];
sizes.forEach((size2) => {
if (isNumber(props[size2])) {
classes.push(ns.b(`${size2}-${props[size2]}`));
} else if (isObject$1(props[size2])) {
Object.entries(props[size2]).forEach(([prop, sizeProp]) => {
classes.push(prop !== "span" ? ns.b(`${size2}-${prop}-${sizeProp}`) : ns.b(`${size2}-${sizeProp}`));
});
}
});
if (gutter.value) {
classes.push(ns.is("guttered"));
}
return [ns.b(), classes];
});
return (_ctx, _cache) => {
return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.tag), {
class: vue.normalizeClass(vue.unref(colKls)),
style: vue.normalizeStyle(vue.unref(style))
}, {
default: vue.withCtx(() => [
vue.renderSlot(_ctx.$slots, "default")
]),
_: 3
}, 8, ["class", "style"]);
};
}
});
var Col = /* @__PURE__ */ _export_sfc(_sfc_main$F, [["__file", "col.vue"]]);
const ElCol = withInstall(Col);
const emitChangeFn = (value) => isNumber(value) || isString(value) || isArray$1(value);
const collapseProps = buildProps({
accordion: Boolean,
modelValue: {
type: definePropType([Array, String, Number]),
default: () => mutable([])
}
});
const collapseEmits = {
[UPDATE_MODEL_EVENT]: emitChangeFn,
[CHANGE_EVENT]: emitChangeFn
};
const collapseContextKey = Symbol("collapseContextKey");
const useCollapse = (props, emit) => {
const activeNames = vue.ref(castArray(props.modelValue));
const setActiveNames = (_activeNames) => {
activeNames.value = _activeNames;
const value = props.accordion ? activeNames.value[0] : activeNames.value;
emit(UPDATE_MODEL_EVENT, value);
emit(CHANGE_EVENT, value);
};
const handleItemClick = (name) => {
if (props.accordion) {
setActiveNames([activeNames.value[0] === name ? "" : name]);
} else {
const _activeNames = [...activeNames.value];
const index = _activeNames.indexOf(name);
if (index > -1) {
_activeNames.splice(index, 1);
} else {
_activeNames.push(name);
}
setActiveNames(_activeNames);
}
};
vue.watch(() => props.modelValue, () => activeNames.value = castArray(props.modelValue), { deep: true });
vue.provide(collapseContextKey, {
activeNames,
handleItemClick
});
return {
activeNames,
setActiveNames
};
};
const useCollapseDOM = () => {
const ns = useNamespace("collapse");
const rootKls = vue.computed(() => ns.b());
return {
rootKls
};
};
const __default__$l = vue.defineComponent({
name: "ElCollapse"
});
const _sfc_main$E = /* @__PURE__ */ vue.defineComponent({
...__default__$l,
props: collapseProps,
emits: collapseEmits,
setup(__props, { expose, emit }) {
const props = __props;
const { activeNames, setActiveNames } = useCollapse(props, emit);
const { rootKls } = useCollapseDOM();
expose({
activeNames,
setActiveNames
});
return (_ctx, _cache) => {
return vue.openBlock(), vue.createElementBlock("div", {
class: vue.normalizeClass(vue.unref(rootKls))
}, [
vue.renderSlot(_ctx.$slots, "default")
], 2);
};
}
});
var Collapse = /* @__PURE__ */ _export_sfc(_sfc_main$E, [["__file", "collapse.vue"]]);
const __default__$k = vue.defineComponent({
name: "ElCollapseTransition"
});
const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
...__default__$k,
setup(__props) {
const ns = useNamespace("collapse-transition");
const reset = (el) => {
el.style.maxHeight = "";
el.style.overflow = el.dataset.oldOverflow;
el.style.paddingTop = el.dataset.oldPaddingTop;
el.style.paddingBottom = el.dataset.oldPaddingBottom;
};
const on2 = {
beforeEnter(el) {
if (!el.dataset)
el.dataset = {};
el.dataset.oldPaddingTop = el.style.paddingTop;
el.dataset.oldPaddingBottom = el.style.paddingBottom;
if (el.style.height)
el.dataset.elExistsHeight = el.style.height;
el.style.maxHeight = 0;
el.style.paddingTop = 0;
el.style.paddingBottom = 0;
},
enter(el) {
requestAnimationFrame(() => {
el.dataset.oldOverflow = el.style.overflow;
if (el.dataset.elExistsHeight) {
el.style.maxHeight = el.dataset.elExistsHeight;
} else if (el.scrollHeight !== 0) {
el.style.maxHeight = `${el.scrollHeight}px`;
} else {
el.style.maxHeight = 0;
}
el.style.paddingTop = el.dataset.oldPaddingTop;
el.style.paddingBottom = el.dataset.oldPaddingBottom;
el.style.overflow = "hidden";
});
},
afterEnter(el) {
el.style.maxHeight = "";
el.style.overflow = el.dataset.oldOverflow;
},
enterCancelled(el) {
reset(el);
},
beforeLeave(el) {
if (!el.dataset)
el.dataset = {};
el.dataset.oldPaddingTop = el.style.paddingTop;
el.dataset.oldPaddingBottom = el.style.paddingBottom;
el.dataset.oldOverflow = el.style.overflow;
el.style.maxHeight = `${el.scrollHeight}px`;
el.style.overflow = "hidden";
},
leave(el) {
if (el.scrollHeight !== 0) {
el.style.maxHeight = 0;
el.style.paddingTop = 0;
el.style.paddingBottom = 0;
}
},
afterLeave(el) {
reset(el);
},
leaveCancelled(el) {
reset(el);
}
};
return (_ctx, _cache) => {
return vue.openBlock(), vue.createBlock(vue.Transition, vue.mergeProps({
name: vue.unref(ns).b()
}, vue.toHandlers(on2)), {
default: vue.withCtx(() => [
vue.renderSlot(_ctx.$slots, "default")
]),
_: 3
}, 16, ["name"]);
};
}
});
var CollapseTransition = /* @__PURE__ */ _export_sfc(_sfc_main$D, [["__file", "collapse-transition.vue"]]);
const ElCollapseTransition = withInstall(CollapseTransition);
const collapseItemProps = buildProps({
title: {
type: String,
default: ""
},
name: {
type: definePropType([String, Number]),
default: void 0
},
icon: {
type: iconPropType,
default: arrow_right_default
},
disabled: Boolean
});
const useCollapseItem = (props) => {
const collapse = vue.inject(collapseContextKey);
const { namespace } = useNamespace("collapse");
const focusing = vue.ref(false);
const isClick = vue.ref(false);
const idInjection = useIdInjection();
const id = vue.computed(() => idInjection.current++);
const name = vue.computed(() => {
var _a2;
return (_a2 = props.name) != null ? _a2 : `${namespace.value}-id-${idInjection.prefix}-${vue.unref(id)}`;
});
const isActive = vue.computed(() => collapse == null ? void 0 : collapse.activeNames.value.includes(vue.unref(name)));
const handleFocus = () => {
setTimeout(() => {
if (!isClick.value) {
focusing.value = true;
} else {
isClick.value = false;
}
}, 50);
};
const handleHeaderClick = () => {
if (props.disabled)
return;
collapse == null ? void 0 : collapse.handleItemClick(vue.unref(name));
focusing.value = false;
isClick.value = true;
};
const handleEnterClick = () => {
collapse == null ? void 0 : collapse.handleItemClick(vue.unref(name));
};
return {
focusing,
id,
isActive,
handleFocus,
handleHeaderClick,
handleEnterClick
};
};
const useCollapseItemDOM = (props, { focusing, isActive, id }) => {
const ns = useNamespace("collapse");
const rootKls = vue.computed(() => [
ns.b("item"),
ns.is("active", vue.unref(isActive)),
ns.is("disabled", props.disabled)
]);
const headKls = vue.computed(() => [
ns.be("item", "header"),
ns.is("active", vue.unref(isActive)),
{ focusing: vue.unref(focusing) && !props.disabled }
]);
const arrowKls = vue.computed(() => [
ns.be("item", "arrow"),
ns.is("active", vue.unref(isActive))
]);
const itemWrapperKls = vue.computed(() => ns.be("item", "wrap"));
const itemContentKls = vue.computed(() => ns.be("item", "content"));
const scopedContentId = vue.computed(() => ns.b(`content-${vue.unref(id)}`));
const scopedHeadId = vue.computed(() => ns.b(`head-${vue.unref(id)}`));
return {
arrowKls,
headKls,
rootKls,
itemWrapperKls,
itemContentKls,
scopedContentId,
scopedHeadId
};
};
const __default__$j = vue.defineComponent({
name: "ElCollapseItem"
});
const _sfc_main$C = /* @__PURE__ */ vue.defineComponent({
...__default__$j,
props: collapseItemProps,
setup(__props, { expose }) {
const props = __props;
const {
focusing,
id,
isActive,
handleFocus,
handleHeaderClick,
handleEnterClick
} = useCollapseItem(props);
const {
arrowKls,
headKls,
rootKls,
itemWrapperKls,
itemContentKls,
scopedContentId,
scopedHeadId
} = useCollapseItemDOM(props, { focusing, isActive, id });
expose({
isActive
});
return (_ctx, _cache) => {
return vue.openBlock(), vue.createElementBlock("div", {
class: vue.normalizeClass(vue.unref(rootKls))
}, [
vue.createElementVNode("button", {
id: vue.unref(scopedHeadId),
class: vue.normalizeClass(vue.unref(headKls)),
"aria-expanded": vue.unref(isActive),
"aria-controls": vue.unref(scopedContentId),
"aria-describedby": vue.unref(scopedContentId),
tabindex: _ctx.disabled ? -1 : 0,
type: "button",
onClick: vue.unref(handleHeaderClick),
onKeydown: vue.withKeys(vue.withModifiers(vue.unref(handleEnterClick), ["stop", "prevent"]), ["space", "enter"]),
onFocus: vue.unref(handleFocus),
onBlur: ($event) => focusing.value = false
}, [
vue.renderSlot(_ctx.$slots, "title", {}, () => [
vue.createTextVNode(vue.toDisplayString(_ctx.title), 1)
]),
vue.renderSlot(_ctx.$slots, "icon", { isActive: vue.unref(isActive) }, () => [
vue.createVNode(vue.unref(ElIcon), {
class: vue.normalizeClass(vue.unref(arrowKls))
}, {
default: vue.withCtx(() => [
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.icon)))
]),
_: 1
}, 8, ["class"])
])
], 42, ["id", "aria-expanded", "aria-controls", "aria-describedby", "tabindex", "onClick", "onKeydown", "onFocus", "onBlur"]),
vue.createVNode(vue.unref(ElCollapseTransition), null, {
default: vue.withCtx(() => [
vue.withDirectives(vue.createElementVNode("div", {
id: vue.unref(scopedContentId),
role: "region",
class: vue.normalizeClass(vue.unref(itemWrapperKls)),
"aria-hidden": !vue.unref(isActive),
"aria-labelledby": vue.unref(scopedHeadId)
}, [
vue.createElementVNode("div", {
class: vue.normalizeClass(vue.unref(itemContentKls))
}, [
vue.renderSlot(_ctx.$slots, "default")
], 2)
], 10, ["id", "aria-hidden", "aria-labelledby"]), [
[vue.vShow, vue.unref(isActive)]
])
]),
_: 3
})
], 2);
};
}
});
var CollapseItem$1 = /* @__PURE__ */ _export_sfc(_sfc_main$C, [["__file", "collapse-item.vue"]]);
const ElCollapse = withInstall(Collapse, {
CollapseItem: CollapseItem$1
});
const ElCollapseItem = withNoopInstall(CollapseItem$1);
const alphaSliderProps = buildProps({
color: {
type: definePropType(Object),
required: true
},
vertical: {
type: Boolean,
default: false
}
});
let isDragging = false;
function draggable(element, options) {
if (!isClient)
return;
const moveFn = function(event) {
var _a2;
(_a2 = options.drag) == null ? void 0 : _a2.call(options, event);
};
const upFn = function(event) {
var _a2;
document.removeEventListener("mousemove", moveFn);
document.removeEventListener("mouseup", upFn);
document.removeEventListener("touchmove", moveFn);
document.removeEventListener("touchend", upFn);
document.onselectstart = null;
document.ondragstart = null;
isDragging = false;
(_a2 = options.end) == null ? void 0 : _a2.call(options, event);
};
const downFn = function(event) {
var _a2;
if (isDragging)
return;
event.preventDefault();
document.onselectstart = () => false;
document.ondragstart = () => false;
document.addEventListener("mousemove", moveFn);
document.addEventListener("mouseup", upFn);
document.addEventListener("touchmove", moveFn);
document.addEventListener("touchend", upFn);
isDragging = true;
(_a2 = options.start) == null ? void 0 : _a2.call(options, event);
};
element.addEventListener("mousedown", downFn);
element.addEventListener("touchstart", downFn, { passive: false });
}
const useAlphaSlider = (props) => {
const instance = vue.getCurrentInstance();
const { t } = useLocale();
const thumb = vue.shallowRef();
const bar = vue.shallowRef();
const alpha = vue.computed(() => props.color.get("alpha"));
const alphaLabel = vue.computed(() => t("el.colorpicker.alphaLabel"));
function handleClick(event) {
var _a2;
const target = event.target;
if (target !== thumb.value) {
handleDrag(event);
}
(_a2 = thumb.value) == null ? void 0 : _a2.focus();
}
function handleDrag(event) {
if (!bar.value || !thumb.value)
return;
const el = instance.vnode.el;
const rect = el.getBoundingClientRect();
const { clientX, clientY } = getClientXY(event);
if (!props.vertical) {
let left = clientX - rect.left;
left = Math.max(thumb.value.offsetWidth / 2, left);
left = Math.min(left, rect.width - thumb.value.offsetWidth / 2);
props.color.set("alpha", Math.round((left - thumb.value.offsetWidth / 2) / (rect.width - thumb.value.offsetWidth) * 100));
} else {
let top = clientY - rect.top;
top = Math.max(thumb.value.offsetHeight / 2, top);
top = Math.min(top, rect.height - thumb.value.offsetHeight / 2);
props.color.set("alpha", Math.round((top - thumb.value.offsetHeight / 2) / (rect.height - thumb.value.offsetHeight) * 100));
}
}
function handleKeydown(event) {
const { code, shiftKey } = event;
const step = shiftKey ? 10 : 1;
switch (code) {
case EVENT_CODE.left:
case EVENT_CODE.down:
event.preventDefault();
event.stopPropagation();
incrementPosition(-step);
break;
case EVENT_CODE.right:
case EVENT_CODE.up:
event.preventDefault();
event.stopPropagation();
incrementPosition(step);
break;
}
}
function incrementPosition(step) {
let next = alpha.value + step;
next = next < 0 ? 0 : next > 100 ? 100 : next;
props.color.set("alpha", next);
}
return {
thumb,
bar,
alpha,
alphaLabel,
handleDrag,
handleClick,
handleKeydown
};
};
const useAlphaSliderDOM = (props, {
bar,
thumb,
handleDrag
}) => {
const instance = vue.getCurrentInstance();
const ns = useNamespace("color-alpha-slider");
const thumbLeft = vue.ref(0);
const thumbTop = vue.ref(0);
const background = vue.ref();
function getThumbLeft() {
if (!thumb.value)
return 0;
if (props.vertical)
return 0;
const el = instance.vnode.el;
const alpha = props.color.get("alpha");
if (!el)
return 0;
return Math.round(alpha * (el.offsetWidth - thumb.value.offsetWidth / 2) / 100);
}
function getThumbTop() {
if (!thumb.value)
return 0;
const el = instance.vnode.el;
if (!props.vertical)
return 0;
const alpha = props.color.get("alpha");
if (!el)
return 0;
return Math.round(alpha * (el.offsetHeight - thumb.value.offsetHeight / 2) / 100);
}
function getBackground() {
if (props.color && props.color.value) {
const { r, g, b } = props.color.toRgb();
return `linear-gradient(to right, rgba(${r}, ${g}, ${b}, 0) 0%, rgba(${r}, ${g}, ${b}, 1) 100%)`;
}
return "";
}
function update() {
thumbLeft.value = getThumbLeft();
thumbTop.value = getThumbTop();
background.value = getBackground();
}
vue.onMounted(() => {
if (!bar.value || !thumb.value)
return;
const dragConfig = {
drag: (event) => {
handleDrag(event);
},
end: (event) => {
handleDrag(event);
}
};
draggable(bar.value, dragConfig);
draggable(thumb.value, dragConfig);
update();
});
vue.watch(() => props.color.get("alpha"), () => update());
vue.watch(() => props.color.value, () => update());
const rootKls = vue.computed(() => [ns.b(), ns.is("vertical", props.vertical)]);
const barKls = vue.computed(() => ns.e("bar"));
const thumbKls = vue.computed(() => ns.e("thumb"));
const barStyle = vue.computed(() => ({ background: background.value }));
const thumbStyle = vue.computed(() => ({
left: addUnit(thumbLeft.value),
top: addUnit(thumbTop.value)
}));
return { rootKls, barKls, barStyle, thumbKls, thumbStyle, update };
};
const COMPONENT_NAME$5 = "ElColorAlphaSlider";
const __default__$i = vue.defineComponent({
name: COMPONENT_NAME$5
});
const _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
...__default__$i,
props: alphaSliderProps,
setup(__props, { expose }) {
const props = __props;
const {
alpha,
alphaLabel,
bar,
thumb,
handleDrag,
handleClick,
handleKeydown
} = useAlphaSlider(props);
const { rootKls, barKls, barStyle, thumbKls, thumbStyle, update } = useAlphaSliderDOM(props, {
bar,
thumb,
handleDrag
});
expose({
update,
bar,
thumb
});
return (_ctx, _cache) => {
return vue.openBlock(), vue.createElementBlock("div", {
class: vue.normalizeClass(vue.unref(rootKls))
}, [
vue.createElementVNode("div", {
ref_key: "bar",
ref: bar,
class: vue.normalizeClass(vue.unref(barKls)),
style: vue.normalizeStyle(vue.unref(barStyle)),
onClick: vue.unref(handleClick)
}, null, 14, ["onClick"]),
vue.createElementVNode("div", {
ref_key: "thumb",
ref: thumb,
class: vue.normalizeClass(vue.unref(thumbKls)),
style: vue.normalizeStyle(vue.unref(thumbStyle)),
"aria-label": vue.unref(alphaLabel),
"aria-valuenow": vue.unref(alpha),
"aria-orientation": _ctx.vertical ? "vertical" : "horizontal",
"aria-valuemin": "0",
"aria-valuemax": "100",
role: "slider",
tabindex: "0",
onKeydown: vue.unref(handleKeydown)
}, null, 46, ["aria-label", "aria-valuenow", "aria-orientation", "onKeydown"])
], 2);
};
}
});
var AlphaSlider = /* @__PURE__ */ _export_sfc(_sfc_main$B, [["__file", "alpha-slider.vue"]]);
const _sfc_main$A = vue.defineComponent({
name: "ElColorHueSlider",
props: {
color: {
type: Object,
required: true
},
vertical: Boolean
},
setup(props) {
const ns = useNamespace("color-hue-slider");
const instance = vue.getCurrentInstance();
const thumb = vue.ref();
const bar = vue.ref();
const thumbLeft = vue.ref(0);
const thumbTop = vue.ref(0);
const hueValue = vue.computed(() => {
return props.color.get("hue");
});
vue.watch(() => hueValue.value, () => {
update();
});
function handleClick(event) {
const target = event.target;
if (target !== thumb.value) {
handleDrag(event);
}
}
function handleDrag(event) {
if (!bar.value || !thumb.value)
return;
const el = instance.vnode.el;
const rect = el.getBoundingClientRect();
const { clientX, clientY } = getClientXY(event);
let hue;
if (!props.vertical) {
let left = clientX - rect.left;
left = Math.min(left, rect.width - thumb.value.offsetWidth / 2);
left = Math.max(thumb.value.offsetWidth / 2, left);
hue = Math.round((left - thumb.value.offsetWidth / 2) / (rect.width - thumb.value.offsetWidth) * 360);
} else {
let top = clientY - rect.top;
top = Math.min(top, rect.height - thumb.value.offsetHeight / 2);
top = Math.max(thumb.value.offsetHeight / 2, top);
hue = Math.round((top - thumb.value.offsetHeight / 2) / (rect.height - thumb.value.offsetHeight) * 360);
}
props.color.set("hue", hue);
}
function getThumbLeft() {
if (!thumb.value)
return 0;
const el = instance.vnode.el;
if (props.vertical)
return 0;
const hue = props.color.get("hue");
if (!el)
return 0;
return Math.round(hue * (el.offsetWidth - thumb.value.offsetWidth / 2) / 360);
}
function getThumbTop() {
if (!thumb.value)
return 0;
const el = instance.vnode.el;
if (!props.vertical)
return 0;
const hue = props.color.get("hue");
if (!el)
return 0;
return Math.round(hue * (el.offsetHeight - thumb.value.offsetHeight / 2) / 360);
}
function update() {
thumbLeft.value = getThumbLeft();
thumbTop.value = getThumbTop();
}
vue.onMounted(() => {
if (!bar.value || !thumb.value)
return;
const dragConfig = {
drag: (event) => {
handleDrag(event);
},
end: (event) => {
handleDrag(event);
}
};
draggable(bar.value, dragConfig);
draggable(thumb.value, dragConfig);
update();
});
return {
bar,
thumb,
thumbLeft,
thumbTop,
hueValue,
handleClick,
update,
ns
};
}
});
function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
return vue.openBlock(), vue.createElementBlock("div", {
class: vue.normalizeClass([_ctx.ns.b(), _ctx.ns.is("vertical", _ctx.vertical)])
}, [
vue.createElementVNode("div", {
ref: "bar",
class: vue.normalizeClass(_ctx.ns.e("bar")),
onClick: _ctx.handleClick
}, null, 10, ["onClick"]),
vue.createElementVNode("div", {
ref: "thumb",
class: vue.normalizeClass(_ctx.ns.e("thumb")),
style: vue.normalizeStyle({
left: _ctx.thumbLeft + "px",
top: _ctx.thumbTop + "px"
})
}, null, 6)
], 2);
}
var HueSlider = /* @__PURE__ */ _export_sfc(_sfc_main$A, [["render", _sfc_render$7], ["__file", "hue-slider.vue"]]);
const colorPickerProps = buildProps({
modelValue: String,
id: String,
showAlpha: Boolean,
colorFormat: String,
disabled: Boolean,
size: useSizeProp,
popperClass: {
type: String,
default: ""
},
tabindex: {
type: [String, Number],
default: 0
},
teleported: useTooltipContentProps.teleported,
predefine: {
type: definePropType(Array)
},
validateEvent: {
type: Boolean,
default: true
},
...useAriaProps(["ariaLabel"])
});
const colorPickerEmits = {
[UPDATE_MODEL_EVENT]: (val) => isString(val) || isNil(val),
[CHANGE_EVENT]: (val) => isString(val) || isNil(val),
activeChange: (val) => isString(val) || isNil(val),
focus: (evt) => evt instanceof FocusEvent,
blur: (evt) => evt instanceof FocusEvent
};
const colorPickerContextKey = Symbol("colorPickerContextKey");
const hsv2hsl = function(hue, sat, val) {
return [
hue,
sat * val / ((hue = (2 - sat) * val) < 1 ? hue : 2 - hue) || 0,
hue / 2
];
};
const isOnePointZero = function(n) {
return typeof n === "string" && n.includes(".") && Number.parseFloat(n) === 1;
};
const isPercentage = function(n) {
return typeof n === "string" && n.includes("%");
};
const bound01 = function(value, max2) {
if (isOnePointZero(value))
value = "100%";
const processPercent = isPercentage(value);
value = Math.min(max2, Math.max(0, Number.parseFloat(`${value}`)));
if (processPercent) {
value = Number.parseInt(`${value * max2}`, 10) / 100;
}
if (Math.abs(value - max2) < 1e-6) {
return 1;
}
return value % max2 / Number.parseFloat(max2);
};
const INT_HEX_MAP = {
10: "A",
11: "B",
12: "C",
13: "D",
14: "E",
15: "F"
};
const hexOne = (value) => {
value = Math.min(Math.round(value), 255);
const high = Math.floor(value / 16);
const low = value % 16;
return `${INT_HEX_MAP[high] || high}${INT_HEX_MAP[low] || low}`;
};
const toHex = function({ r, g, b }) {
if (Number.isNaN(+r) || Number.isNaN(+g) || Number.isNaN(+b))
return "";
return `#${hexOne(r)}${hexOne(g)}${hexOne(b)}`;
};
const HEX_INT_MAP = {
A: 10,
B: 11,
C: 12,
D: 13,
E: 14,
F: 15
};
const parseHexChannel = function(hex) {
if (hex.length === 2) {
return (HEX_INT_MAP[hex[0].toUpperCase()] || +hex[0]) * 16 + (HEX_INT_MAP[hex[1].toUpperCase()] || +hex[1]);
}
return HEX_INT_MAP[hex[1].toUpperCase()] || +hex[1];
};
const hsl2hsv = function(hue, sat, light) {
sat = sat / 100;
light = light / 100;
let smin = sat;
const lmin = Math.max(light, 0.01);
light *= 2;
sat *= light <= 1 ? light : 2 - light;
smin *= lmin <= 1 ? lmin : 2 - lmin;
const v = (light + sat) / 2;
const sv = light === 0 ? 2 * smin / (lmin + smin) : 2 * sat / (light + sat);
return {
h: hue,
s: sv * 100,
v: v * 100
};
};
const rgb2hsv = (r, g, b) => {
r = bound01(r, 255);
g = bound01(g, 255);
b = bound01(b, 255);
const max2 = Math.max(r, g, b);
const min2 = Math.min(r, g, b);
let h2;
const v = max2;
const d = max2 - min2;
const s = max2 === 0 ? 0 : d / max2;
if (max2 === min2) {
h2 = 0;
} else {
switch (max2) {
case r: {
h2 = (g - b) / d + (g < b ? 6 : 0);
break;
}
case g: {
h2 = (b - r) / d + 2;
break;
}
case b: {
h2 = (r - g) / d + 4;
break;
}
}
h2 /= 6;
}
return { h: h2 * 360, s: s * 100, v: v * 100 };
};
const hsv2rgb = function(h2, s, v) {
h2 = bound01(h2, 360) * 6;
s = bound01(s, 100);
v = bound01(v, 100);
const i = Math.floor(h2);
const f = h2 - i;
const p = v * (1 - s);
const q2 = v * (1 - f * s);
const t = v * (1 - (1 - f) * s);
const mod = i % 6;
const r = [v, q2, p, p, t, v][mod];
const g = [t, v, v, q2, p, p][mod];
const b = [p, p, t, v, v, q2][mod];
return {
r: Math.round(r * 255),
g: Math.round(g * 255),
b: Math.round(b * 255)
};
};
class Color {
constructor(options = {}) {
this._hue = 0;
this._saturation = 100;
this._value = 100;
this._alpha = 100;
this.enableAlpha = false;
this.format = "hex";
this.value = "";
for (const option in options) {
if (hasOwn(options, option)) {
this[option] = options[option];
}
}
if (options.value) {
this.fromString(options.value);
} else {
this.doOnChange();
}
}
set(prop, value) {
if (arguments.length === 1 && typeof prop === "object") {
for (const p in prop) {
if (hasOwn(prop, p)) {
this.set(p, prop[p]);
}
}
return;
}
this[`_${prop}`] = value;
this.doOnChange();
}
get(prop) {
if (prop === "alpha") {
return Math.floor(this[`_${prop}`]);
}
return this[`_${prop}`];
}
toRgb() {
return hsv2rgb(this._hue, this._saturation, this._value);
}
fromString(value) {
if (!value) {
this._hue = 0;
this._saturation = 100;
this._value = 100;
this.doOnChange();
return;
}
const fromHSV = (h2, s, v) => {
this._hue = Math.max(0, Math.min(360, h2));
this._saturation = Math.max(0, Math.min(100, s));
this._value = Math.max(0, Math.min(100, v));
this.doOnChange();
};
if (value.includes("hsl")) {
const parts = value.replace(/hsla|hsl|\(|\)/gm, "").split(/\s|,/g).filter((val) => val !== "").map((val, index) => index > 2 ? Number.parseFloat(val) : Number.parseInt(val, 10));
if (parts.length === 4) {
this._alpha = Number.parseFloat(parts[3]) * 100;
} else if (parts.length === 3) {
this._alpha = 100;
}
if (parts.length >= 3) {
const { h: h2, s, v } = hsl2hsv(parts[0], parts[1], parts[2]);
fromHSV(h2, s, v);
}
} else if (value.includes("hsv")) {
const parts = value.replace(/hsva|hsv|\(|\)/gm, "").split(/\s|,/g).filter((val) => val !== "").map((val, index) => index > 2 ? Number.parseFloat(val) : Number.parseInt(val, 10));
if (parts.length === 4) {
this._alpha = Number.parseFloat(parts[3]) * 100;
} else if (parts.length === 3) {
this._alpha = 100;
}
if (parts.length >= 3) {
fromHSV(parts[0], parts[1], parts[2]);
}
} else if (value.includes("rgb")) {
const parts = value.replace(/rgba|rgb|\(|\)/gm, "").split(/\s|,/g).filter((val) => val !== "").map((val, index) => index > 2 ? Number.parseFloat(val) : Number.parseInt(val, 10));
if (parts.length === 4) {
this._alpha = Number.parseFloat(parts[3]) * 100;
} else if (parts.length === 3) {
this._alpha = 100;
}
if (parts.length >= 3) {
const { h: h2, s, v } = rgb2hsv(parts[0], parts[1], parts[2]);
fromHSV(h2, s, v);
}
} else if (value.includes("#")) {
const hex = value.replace("#", "").trim();
if (!/^[0-9a-fA-F]{3}$|^[0-9a-fA-F]{6}$|^[0-9a-fA-F]{8}$/.test(hex))
return;
let r, g, b;
if (hex.length === 3) {
r = parseHexChannel(hex[0] + hex[0]);
g = parseHexChannel(hex[1] + hex[1]);
b = parseHexChannel(hex[2] + hex[2]);
} else if (hex.length === 6 || hex.length === 8) {
r = parseHexChannel(hex.slice(0, 2));
g = parseHexChannel(hex.slice(2, 4));
b = parseHexChannel(hex.slice(4, 6));
}
if (hex.length === 8) {
this._alpha = parseHexChannel(hex.slice(6)) / 255 * 100;
} else if (hex.length === 3 || hex.length === 6) {
this._alpha = 100;
}
const { h: h2, s, v } = rgb2hsv(r, g, b);
fromHSV(h2, s, v);
}
}
compare(color) {
return Math.abs(color._hue - this._hue) < 2 && Math.abs(color._saturation - this._saturation) < 1 && Math.abs(color._value - this._value) < 1 && Math.abs(color._alpha - this._alpha) < 1;
}
doOnChange() {
const { _hue, _saturation, _value, _alpha, format } = this;
if (this.enableAlpha) {
switch (format) {
case "hsl": {
const hsl = hsv2hsl(_hue, _saturation / 100, _value / 100);
this.value = `hsla(${_hue}, ${Math.round(hsl[1] * 100)}%, ${Math.round(hsl[2] * 100)}%, ${this.get("alpha") / 100})`;
break;
}
case "hsv": {
this.value = `hsva(${_hue}, ${Math.round(_saturation)}%, ${Math.round(_value)}%, ${this.get("alpha") / 100})`;
break;
}
case "hex": {
this.value = `${toHex(hsv2rgb(_hue, _saturation, _value))}${hexOne(_alpha * 255 / 100)}`;
break;
}
default: {
const { r, g, b } = hsv2rgb(_hue, _saturation, _value);
this.value = `rgba(${r}, ${g}, ${b}, ${this.get("alpha") / 100})`;
}
}
} else {
switch (format) {
case "hsl": {
const hsl = hsv2hsl(_hue, _saturation / 100, _value / 100);
this.value = `hsl(${_hue}, ${Math.round(hsl[1] * 100)}%, ${Math.round(hsl[2] * 100)}%)`;
break;
}
case "hsv": {
this.value = `hsv(${_hue}, ${Math.round(_saturation)}%, ${Math.round(_value)}%)`;
break;
}
case "rgb": {
const { r, g, b } = hsv2rgb(_hue, _saturation, _value);
this.value = `rgb(${r}, ${g}, ${b})`;
break;
}
default: {
this.value = toHex(hsv2rgb(_hue, _saturation, _value));
}
}
}
}
}
const _sfc_main$z = vue.defineComponent({
props: {
colors: {
type: Array,
required: true
},
color: {
type: Object,
required: true
},
enableAlpha: {
type: Boolean,
required: true
}
},
setup(props) {
const ns = useNamespace("color-predefine");
const { currentColor } = vue.inject(colorPickerContextKey);
const rgbaColors = vue.ref(parseColors(props.colors, props.color));
vue.watch(() => currentColor.value, (val) => {
const color = new Color();
color.fromString(val);
rgbaColors.value.forEach((item) => {
item.selected = color.compare(item);
});
});
vue.watchEffect(() => {
rgbaColors.value = parseColors(props.colors, props.color);
});
function handleSelect(index) {
props.color.fromString(props.colors[index]);
}
function parseColors(colors, color) {
return colors.map((value) => {
const c = new Color();
c.enableAlpha = props.enableAlpha;
c.format = "rgba";
c.fromString(value);
c.selected = c.value === color.value;
return c;
});
}
return {
rgbaColors,
handleSelect,
ns
};
}
});
function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {
return vue.openBlock(), vue.createElementBlock("div", {
class: vue.normalizeClass(_ctx.ns.b())
}, [
vue.createElementVNode("div", {
class: vue.normalizeClass(_ctx.ns.e("colors"))
}, [
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.rgbaColors, (item, index) => {
return vue.openBlock(), vue.createElementBlock("div", {
key: _ctx.colors[index],
class: vue.normalizeClass([
_ctx.ns.e("color-selector"),
_ctx.ns.is("alpha", item._alpha < 100),
{ selected: item.selected }
]),
onClick: ($event) => _ctx.handleSelect(index)
}, [
vue.createElementVNode("div", {
style: vue.normalizeStyle({ backgroundColor: item.value })
}, null, 4)
], 10, ["onClick"]);
}), 128))
], 2)
], 2);
}
var Predefine = /* @__PURE__ */ _export_sfc(_sfc_main$z, [["render", _sfc_render$6], ["__file", "predefine.vue"]]);
const _sfc_main$y = vue.defineComponent({
name: "ElSlPanel",
props: {
color: {
type: Object,
required: true
}
},
setup(props) {
const ns = useNamespace("color-svpanel");
const instance = vue.getCurrentInstance();
const cursorTop = vue.ref(0);
const cursorLeft = vue.ref(0);
const background = vue.ref("hsl(0, 100%, 50%)");
const colorValue = vue.computed(() => {
const hue = props.color.get("hue");
const value = props.color.get("value");
return { hue, value };
});
function update() {
const saturation = props.color.get("saturation");
const value = props.color.get("value");
const el = instance.vnode.el;
const { clientWidth: width, clientHeight: height } = el;
cursorLeft.value = saturation * width / 100;
cursorTop.value = (100 - value) * height / 100;
background.value = `hsl(${props.color.get("hue")}, 100%, 50%)`;
}
function handleDrag(event) {
const el = instance.vnode.el;
const rect = el.getBoundingClientRect();
const { clientX, clientY } = getClientXY(event);
let left = clientX - rect.left;
let top = clientY - rect.top;
left = Math.max(0, left);
left = Math.min(left, rect.width);
top = Math.max(0, top);
top = Math.min(top, rect.height);
cursorLeft.value = left;
cursorTop.value = top;
props.color.set({
saturation: left / rect.width * 100,
value: 100 - top / rect.height * 100
});
}
vue.watch(() => colorValue.value, () => {
update();
});
vue.onMounted(() => {
draggable(instance.vnode.el, {
drag: (event) => {
handleDrag(event);
},
end: (event) => {
handleDrag(event);
}
});
update();
});
return {
cursorTop,
cursorLeft,
background,
colorValue,
handleDrag,
update,
ns
};
}
});
function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
return vue.openBlock(), vue.createElementBlock("div", {
class: vue.normalizeClass(_ctx.ns.b()),
style: vue.normalizeStyle({
backgroundColor: _ctx.background
})
}, [
vue.createElementVNode("div", {
class: vue.normalizeClass(_ctx.ns.e("white"))
}, null, 2),
vue.createElementVNode("div", {
class: vue.normalizeClass(_ctx.ns.e("black"))
}, null, 2),
vue.createElementVNode("div", {
class: vue.normalizeClass(_ctx.ns.e("cursor")),
style: vue.normalizeStyle({
top: _ctx.cursorTop + "px",
left: _ctx.cursorLeft + "px"
})
}, [
vue.createElementVNode("div")
], 6)
], 6);
}
var SvPanel = /* @__PURE__ */ _export_sfc(_sfc_main$y, [["render", _sfc_render$5], ["__file", "sv-panel.vue"]]);
const __default__$h = vue.defineComponent({
name: "ElColorPicker"
});
const _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
...__default__$h,
props: colorPickerProps,
emits: colorPickerEmits,
setup(__props, { expose, emit }) {
const props = __props;
const { t } = useLocale();
const ns = useNamespace("color");
const { formItem } = useFormItem();
const colorSize = useFormSize();
const colorDisabled = useFormDisabled();
const { inputId: buttonId, isLabeledByFormItem } = useFormItemInputId(props, {
formItemContext: formItem
});
const hue = vue.ref();
const sv = vue.ref();
const alpha = vue.ref();
const popper = vue.ref();
const triggerRef = vue.ref();
const inputRef = vue.ref();
const { isFocused, handleFocus, handleBlur } = useFocusController(triggerRef, {
beforeFocus() {
return colorDisabled.value;
},
beforeBlur(event) {
var _a2;
return (_a2 = popper.value) == null ? void 0 : _a2.isFocusInsideContent(event);
},
afterBlur() {
setShowPicker(false);
resetColor();
}
});
let shouldActiveChange = true;
const color = vue.reactive(new Color({
enableAlpha: props.showAlpha,
format: props.colorFormat || "",
value: props.modelValue
}));
const showPicker = vue.ref(false);
const showPanelColor = vue.ref(false);
const customInput = vue.ref("");
const displayedColor = vue.computed(() => {
if (!props.modelValue && !showPanelColor.value) {
return "transparent";
}
return displayedRgb(color, props.showAlpha);
});
const currentColor = vue.computed(() => {
return !props.modelValue && !showPanelColor.value ? "" : color.value;
});
const buttonAriaLabel = vue.computed(() => {
return !isLabeledByFormItem.value ? props.ariaLabel || t("el.colorpicker.defaultLabel") : void 0;
});
const buttonAriaLabelledby = vue.computed(() => {
return isLabeledByFormItem.value ? formItem == null ? void 0 : formItem.labelId : void 0;
});
const btnKls = vue.computed(() => {
return [
ns.b("picker"),
ns.is("disabled", colorDisabled.value),
ns.bm("picker", colorSize.value),
ns.is("focused", isFocused.value)
];
});
function displayedRgb(color2, showAlpha) {
if (!(color2 instanceof Color)) {
throw new TypeError("color should be instance of _color Class");
}
const { r, g, b } = color2.toRgb();
return showAlpha ? `rgba(${r}, ${g}, ${b}, ${color2.get("alpha") / 100})` : `rgb(${r}, ${g}, ${b})`;
}
function setShowPicker(value) {
showPicker.value = value;
}
const debounceSetShowPicker = debounce(setShowPicker, 100, { leading: true });
function show() {
if (colorDisabled.value)
return;
setShowPicker(true);
}
function hide() {
debounceSetShowPicker(false);
resetColor();
}
function resetColor() {
vue.nextTick(() => {
if (props.modelValue) {
color.fromString(props.modelValue);
} else {
color.value = "";
vue.nextTick(() => {
showPanelColor.value = false;
});
}
});
}
function handleTrigger() {
if (colorDisabled.value)
return;
debounceSetShowPicker(!showPicker.value);
}
function handleConfirm() {
color.fromString(customInput.value);
}
function confirmValue() {
const value = color.value;
emit(UPDATE_MODEL_EVENT, value);
emit("change", value);
if (props.validateEvent) {
formItem == null ? void 0 : formItem.validate("change").catch((err) => debugWarn());
}
debounceSetShowPicker(false);
vue.nextTick(() => {
const newColor = new Color({
enableAlpha: props.showAlpha,
format: props.colorFormat || "",
value: props.modelValue
});
if (!color.compare(newColor)) {
resetColor();
}
});
}
function clear() {
debounceSetShowPicker(false);
emit(UPDATE_MODEL_EVENT, null);
emit("change", null);
if (props.modelValue !== null && props.validateEvent) {
formItem == null ? void 0 : formItem.validate("change").catch((err) => debugWarn());
}
resetColor();
}
function handleClickOutside() {
if (!showPicker.value)
return;
hide();
isFocused.value && focus();
}
function handleEsc(event) {
event.preventDefault();
event.stopPropagation();
setShowPicker(false);
resetColor();
}
function handleKeyDown(event) {
switch (event.code) {
case EVENT_CODE.enter:
case EVENT_CODE.space:
event.preventDefault();
event.stopPropagation();
show();
inputRef.value.focus();
break;
case EVENT_CODE.esc:
handleEsc(event);
break;
}
}
function focus() {
triggerRef.value.focus();
}
function blur() {
triggerRef.value.blur();
}
vue.onMounted(() => {
if (props.modelValue) {
customInput.value = currentColor.value;
}
});
vue.watch(() => props.modelValue, (newVal) => {
if (!newVal) {
showPanelColor.value = false;
} else if (newVal && newVal !== color.value) {
shouldActiveChange = false;
color.fromString(newVal);
}
});
vue.watch(() => [props.colorFormat, props.showAlpha], () => {
color.enableAlpha = props.showAlpha;
color.format = props.colorFormat || color.format;
color.doOnChange();
emit(UPDATE_MODEL_EVENT, color.value);
});
vue.watch(() => currentColor.value, (val) => {
customInput.value = val;
shouldActiveChange && emit("activeChange", val);
shouldActiveChange = true;
});
vue.watch(() => color.value, () => {
if (!props.modelValue && !showPanelColor.value) {
showPanelColor.value = true;
}
});
vue.watch(() => showPicker.value, () => {
vue.nextTick(() => {
var _a2, _b, _c;
(_a2 = hue.value) == null ? void 0 : _a2.update();
(_b = sv.value) == null ? void 0 : _b.update();
(_c = alpha.value) == null ? void 0 : _c.update();
});
});
vue.provide(colorPickerContextKey, {
currentColor
});
expose({
color,
show,
hide,
focus,
blur
});
return (_ctx, _cache) => {
return vue.openBlock(), vue.createBlock(vue.unref(ElTooltip), {
ref_key: "popper",
ref: popper,
visible: showPicker.value,
"show-arrow": false,
"fallback-placements": ["bottom", "top", "right", "left"],
offset: 0,
"gpu-acceleration": false,
"popper-class": [vue.unref(ns).be("picker", "panel"), vue.unref(ns).b("dropdown"), _ctx.popperClass],
"stop-popper-mouse-event": false,
effect: "light",
trigger: "click",
teleported: _ctx.teleported,
transition: `${vue.unref(ns).namespace.value}-zoom-in-top`,
persistent: "",
onHide: ($event) => setShowPicker(false)
}, {
content: vue.withCtx(() => [
vue.withDirectives((vue.openBlock(), vue.createElementBlock("div", {
onKeydown: vue.withKeys(handleEsc, ["esc"])
}, [
vue.createElementVNode("div", {
class: vue.normalizeClass(vue.unref(ns).be("dropdown", "main-wrapper"))
}, [
vue.createVNode(HueSlider, {
ref_key: "hue",
ref: hue,
class: "hue-slider",
color: vue.unref(color),
vertical: ""
}, null, 8, ["color"]),
vue.createVNode(SvPanel, {
ref_key: "sv",
ref: sv,
color: vue.unref(color)
}, null, 8, ["color"])
], 2),
_ctx.showAlpha ? (vue.openBlock(), vue.createBlock(AlphaSlider, {
key: 0,
ref_key: "alpha",
ref: alpha,
color: vue.unref(color)
}, null, 8, ["color"])) : vue.createCommentVNode("v-if", true),
_ctx.predefine ? (vue.openBlock(), vue.createBlock(Predefine, {
key: 1,
ref: "predefine",
"enable-alpha": _ctx.showAlpha,
color: vue.unref(color),
colors: _ctx.predefine
}, null, 8, ["enable-alpha", "color", "colors"])) : vue.createCommentVNode("v-if", true),
vue.createElementVNode("div", {
class: vue.normalizeClass(vue.unref(ns).be("dropdown", "btns"))
}, [
vue.createElementVNode("span", {
class: vue.normalizeClass(vue.unref(ns).be("dropdown", "value"))
}, [
vue.createVNode(vue.unref(ElInput), {
ref_key: "inputRef",
ref: inputRef,
modelValue: customInput.value,
"onUpdate:modelValue": ($event) => customInput.value = $event,
"validate-event": false,
size: "small",
onKeyup: vue.withKeys(handleConfirm, ["enter"]),
onBlur: handleConfirm
}, null, 8, ["modelValue", "onUpdate:modelValue", "onKeyup"])
], 2),
vue.createVNode(vue.unref(ElButton), {
class: vue.normalizeClass(vue.unref(ns).be("dropdown", "link-btn")),
text: "",
size: "small",
onClick: clear
}, {
default: vue.withCtx(() => [
vue.createTextVNode(vue.toDisplayString(vue.unref(t)("el.colorpicker.clear")), 1)
]),
_: 1
}, 8, ["class"]),
vue.createVNode(vue.unref(ElButton), {
plain: "",
size: "small",
class: vue.normalizeClass(vue.unref(ns).be("dropdown", "btn")),
onClick: confirmValue
}, {
default: vue.withCtx(() => [
vue.createTextVNode(vue.toDisplayString(vue.unref(t)("el.colorpicker.confirm")), 1)
]),
_: 1
}, 8, ["class"])
], 2)
], 40, ["onKeydown"])), [
[vue.unref(ClickOutside), handleClickOutside]
])
]),
default: vue.withCtx(() => [
vue.createElementVNode("div", vue.mergeProps({
id: vue.unref(buttonId),
ref_key: "triggerRef",
ref: triggerRef
}, _ctx.$attrs, {
class: vue.unref(btnKls),
role: "button",
"aria-label": vue.unref(buttonAriaLabel),
"aria-labelledby": vue.unref(buttonAriaLabelledby),
"aria-description": vue.unref(t)("el.colorpicker.description", { color: _ctx.modelValue || "" }),
"aria-disabled": vue.unref(colorDisabled),
tabindex: vue.unref(colorDisabled) ? -1 : _ctx.tabindex,
onKeydown: handleKeyDown,
onFocus: vue.unref(handleFocus),
onBlur: vue.unref(handleBlur)
}), [
vue.unref(colorDisabled) ? (vue.openBlock(), vue.createElementBlock("div", {
key: 0,
class: vue.normalizeClass(vue.unref(ns).be("picker", "mask"))
}, null, 2)) : vue.createCommentVNode("v-if", true),
vue.createElementVNode("div", {
class: vue.normalizeClass(vue.unref(ns).be("picker", "trigger")),
onClick: handleTrigger
}, [
vue.createElementVNode("span", {
class: vue.normalizeClass([vue.unref(ns).be("picker", "color"), vue.unref(ns).is("alpha", _ctx.showAlpha)])
}, [
vue.createElementVNode("span", {
class: vue.normalizeClass(vue.unref(ns).be("picker", "color-inner")),
style: vue.normalizeStyle({
backgroundColor: vue.unref(displayedColor)
})
}, [
vue.withDirectives(vue.createVNode(vue.unref(ElIcon), {
class: vue.normalizeClass([vue.unref(ns).be("picker", "icon"), vue.unref(ns).is("icon-arrow-down")])
}, {
default: vue.withCtx(() => [
vue.createVNode(vue.unref(arrow_down_default))
]),
_: 1
}, 8, ["class"]), [
[vue.vShow, _ctx.modelValue || showPanelColor.value]
]),
vue.withDirectives(vue.createVNode(vue.unref(ElIcon), {
class: vue.normalizeClass([vue.unref(ns).be("picker", "empty"), vue.unref(ns).is("icon-close")])
}, {
default: vue.withCtx(() => [
vue.createVNode(vue.unref(close_default))
]),
_: 1
}, 8, ["class"]), [
[vue.vShow, !_ctx.modelValue && !showPanelColor.value]
])
], 6)
], 2)
], 2)
], 16, ["id", "aria-label", "aria-labelledby", "aria-description", "aria-disabled", "tabindex", "onFocus", "onBlur"])
]),
_: 1
}, 8, ["visible", "popper-class", "teleported", "transition", "onHide"]);
};
}
});
var ColorPicker = /* @__PURE__ */ _export_sfc(_sfc_main$x, [["__file", "color-picker.vue"]]);
const ElColorPicker = withInstall(ColorPicker);
const overlayProps = buildProps({
mask: {
type: Boolean,
default: true
},
customMaskEvent: Boolean,
overlayClass: {
type: definePropType([
String,
Array,
Object
])
},
zIndex: {
type: definePropType([String, Number])
}
});
const overlayEmits = {
click: (evt) => evt instanceof MouseEvent
};
const BLOCK = "overlay";
var Overlay = vue.defineComponent({
name: "ElOverlay",
props: overlayProps,
emits: overlayEmits,
setup(props, { slots, emit }) {
const ns = useNamespace(BLOCK);
const onMaskClick = (e) => {
emit("click", e);
};
const { onClick, onMousedown, onMouseup } = useSameTarget(props.customMaskEvent ? void 0 : onMaskClick);
return () => {
return props.mask ? vue.createVNode("div", {
class: [ns.b(), props.overlayClass],
style: {
zIndex: props.zIndex
},
onClick,
onMousedown,
onMouseup
}, [vue.renderSlot(slots, "default")], PatchFlags.STYLE | PatchFlags.CLASS | PatchFlags.PROPS, ["onClick", "onMouseup", "onMousedown"]) : vue.h("div", {
class: props.overlayClass,
style: {
zIndex: props.zIndex,
position: "fixed",
top: "0px",
right: "0px",
bottom: "0px",
left: "0px"
}
}, [vue.renderSlot(slots, "default")]);
};
}
});
const ElOverlay = Overlay;
const dialogInjectionKey = Symbol("dialogInjectionKey");
const dialogContentProps = buildProps({
center: Boolean,
alignCenter: Boolean,
closeIcon: {
type: iconPropType
},
draggable: Boolean,
overflow: Boolean,
fullscreen: Boolean,
showClose: {
type: Boolean,
default: true
},
title: {
type: String,
default: ""
},
ariaLevel: {
type: String,
default: "2"
}
});
const dialogContentEmits = {
close: () => true
};
const __default__$g = vue.defineComponent({ name: "ElDialogContent" });
const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
...__default__$g,
props: dialogContentProps,
emits: dialogContentEmits,
setup(__props, { expose }) {
const props = __props;
const { t } = useLocale();
const { Close } = CloseComponents;
const { dialogRef, headerRef, bodyId, ns, style } = vue.inject(dialogInjectionKey);
const { focusTrapRef } = vue.inject(FOCUS_TRAP_INJECTION_KEY);
const dialogKls = vue.computed(() => [
ns.b(),
ns.is("fullscreen", props.fullscreen),
ns.is("draggable", props.draggable),
ns.is("align-center", props.alignCenter),
{ [ns.m("center")]: props.center }
]);
const composedDialogRef = composeRefs(focusTrapRef, dialogRef);
const draggable2 = vue.computed(() => props.draggable);
const overflow = vue.computed(() => props.overflow);
const { resetPosition } = useDraggable(dialogRef, headerRef, draggable2, overflow);
expose({
resetPosition
});
return (_ctx, _cache) => {
return vue.openBlock(), vue.createElementBlock("div", {
ref: vue.unref(composedDialogRef),
class: vue.normalizeClass(vue.unref(dialogKls)),
style: vue.normalizeStyle(vue.unref(style)),
tabindex: "-1"
}, [
vue.createElementVNode("header", {
ref_key: "headerRef",
ref: headerRef,
class: vue.normalizeClass([vue.unref(ns).e("header"), { "show-close": _ctx.showClose }])
}, [
vue.renderSlot(_ctx.$slots, "header", {}, () => [
vue.createElementVNode("span", {
role: "heading",
"aria-level": _ctx.ariaLevel,
class: vue.normalizeClass(vue.unref(ns).e("title"))
}, vue.toDisplayString(_ctx.title), 11, ["aria-level"])
]),
_ctx.showClose ? (vue.openBlock(), vue.createElementBlock("button", {
key: 0,
"aria-label": vue.unref(t)("el.dialog.close"),
class: vue.normalizeClass(vue.unref(ns).e("headerbtn")),
type: "button",
onClick: ($event) => _ctx.$emit("close")
}, [
vue.createVNode(vue.unref(ElIcon), {
class: vue.normalizeClass(vue.unref(ns).e("close"))
}, {
default: vue.withCtx(() => [
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.closeIcon || vue.unref(Close))))
]),
_: 1
}, 8, ["class"])
], 10, ["aria-label", "onClick"])) : vue.createCommentVNode("v-if", true)
], 2),
vue.createElementVNode("div", {
id: vue.unref(bodyId),
class: vue.normalizeClass(vue.unref(ns).e("body"))
}, [
vue.renderSlot(_ctx.$slots, "default")
], 10, ["id"]),
_ctx.$slots.footer ? (vue.openBlock(), vue.createElementBlock("footer", {
key: 0,
class: vue.normalizeClass(vue.unref(ns).e("footer"))
}, [
vue.renderSlot(_ctx.$slots, "footer")
], 2)) : vue.createCommentVNode("v-if", true)
], 6);
};
}
});
var ElDialogContent = /* @__PURE__ */ _export_sfc(_sfc_main$w, [["__file", "dialog-content.vue"]]);
const dialogProps = buildProps({
...dialogContentProps,
appendToBody: Boolean,
appendTo: {
type: definePropType([String, Object]),
default: "body"
},
beforeClose: {
type: definePropType(Function)
},
destroyOnClose: Boolean,
closeOnClickModal: {
type: Boolean,
default: true
},
closeOnPressEscape: {
type: Boolean,
default: true
},
lockScroll: {
type: Boolean,
default: true
},
modal: {
type: Boolean,
default: true
},
openDelay: {
type: Number,
default: 0
},
closeDelay: {
type: Number,
default: 0
},
top: {
type: String
},
modelValue: Boolean,
modalClass: String,
width: {
type: [String, Number]
},
zIndex: {
type: Number
},
trapFocus: Boolean,
headerAriaLevel: {
type: String,
default: "2"
}
});
const dialogEmits = {
open: () => true,
opened: () => true,
close: () => true,
closed: () => true,
[UPDATE_MODEL_EVENT]: (value) => isBoolean(value),
openAutoFocus: () => true,
closeAutoFocus: () => true
};
const useDialog = (props, targetRef) => {
var _a2;
const instance = vue.getCurrentInstance();
const emit = instance.emit;
const { nextZIndex } = useZIndex();
let lastPosition = "";
const titleId = useId();
const bodyId = useId();
const visible = vue.ref(false);
const closed = vue.ref(false);
const rendered = vue.ref(false);
const zIndex2 = vue.ref((_a2 = props.zIndex) != null ? _a2 : nextZIndex());
let openTimer = void 0;
let closeTimer = void 0;
const namespace = useGlobalConfig("namespace", defaultNamespace);
const style = vue.computed(() => {
const style2 = {};
const varPrefix = `--${namespace.value}-dialog`;
if (!props.fullscreen) {
if (props.top) {
style2[`${varPrefix}-margin-top`] = props.top;
}
if (props.width) {
style2[`${varPrefix}-width`] = addUnit(props.width);
}
}
return style2;
});
const overlayDialogStyle = vue.computed(() => {
if (props.alignCenter) {
return { display: "flex" };
}
return {};
});
function afterEnter() {
emit("opened");
}
function afterLeave() {
emit("closed");
emit(UPDATE_MODEL_EVENT, false);
if (props.destroyOnClose) {
rendered.value = false;
}
}
function beforeLeave() {
emit("close");
}
function open() {
closeTimer == null ? void 0 : closeTimer();
openTimer == null ? void 0 : openTimer();
if (props.openDelay && props.openDelay > 0) {
({ stop: openTimer } = useTimeoutFn(() => doOpen(), props.openDelay));
} else {
doOpen();
}
}
function close2() {
openTimer == null ? void 0 : openTimer();
closeTimer == null ? void 0 : closeTimer();
if (props.closeDelay && props.closeDelay > 0) {
({ stop: closeTimer } = useTimeoutFn(() => doClose(), props.closeDelay));
} else {
doClose();
}
}
function handleClose() {
function hide(shouldCancel) {
if (shouldCancel)
return;
closed.value = true;
visible.value = false;
}
if (props.beforeClose) {
props.beforeClose(hide);
} else {
close2();
}
}
function onModalClick() {
if (props.closeOnClickModal) {
handleClose();
}
}
function doOpen() {
if (!isClient)
return;
visible.value = true;
}
function doClose() {
visible.value = false;
}
function onOpenAutoFocus() {
emit("openAutoFocus");
}
function onCloseAutoFocus() {
emit("closeAutoFocus");
}
function onFocusoutPrevented(event) {
var _a22;
if (((_a22 = event.detail) == null ? void 0 : _a22.focusReason) === "pointer") {
event.preventDefault();
}
}
if (props.lockScroll) {
useLockscreen(visible);
}
function onCloseRequested() {
if (props.closeOnPressEscape) {
handleClose();
}
}
vue.watch(() => props.modelValue, (val) => {
if (val) {
closed.value = false;
open();
rendered.value = true;
zIndex2.value = isUndefined$1(props.zIndex) ? nextZIndex() : zIndex2.value++;
vue.nextTick(() => {
emit("open");
if (targetRef.value) {
targetRef.value.scrollTop = 0;
}
});
} else {
if (visible.value) {
close2();
}
}
});
vue.watch(() => props.fullscreen, (val) => {
if (!targetRef.value)
return;
if (val) {
lastPosition = targetRef.value.style.transform;
targetRef.value.style.transform = "";
} else {
targetRef.value.style.transform = lastPosition;
}
});
vue.onMounted(() => {
if (props.modelValue) {
visible.value = true;
rendered.value = true;
open();
}
});
return {
afterEnter,
afterLeave,
beforeLeave,
handleClose,
onModalClick,
close: close2,
doClose,
onOpenAutoFocus,
onCloseAutoFocus,
onCloseRequested,
onFocusoutPrevented,
titleId,
bodyId,
closed,
style,
overlayDialogStyle,
rendered,
visible,
zIndex: zIndex2
};
};
const __default__$f = vue.defineComponent({
name: "ElDialog",
inheritAttrs: false
});
const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
...__default__$f,
props: dialogProps,
emits: dialogEmits,
setup(__props, { expose }) {
const props = __props;
const slots = vue.useSlots();
useDeprecated({
scope: "el-dialog",
from: "the title slot",
replacement: "the header slot",
version: "3.0.0",
ref: "https://element-plus.org/en-US/component/dialog.html#slots"
}, vue.computed(() => !!slots.title));
const ns = useNamespace("dialog");
const dialogRef = vue.ref();
const headerRef = vue.ref();
const dialogContentRef = vue.ref();
const {
visible,
titleId,
bodyId,
style,
overlayDialogStyle,
rendered,
zIndex: zIndex2,
afterEnter,
afterLeave,
beforeLeave,
handleClose,
onModalClick,
onOpenAutoFocus,
onCloseAutoFocus,
onCloseRequested,
onFocusoutPrevented
} = useDialog(props, dialogRef);
vue.provide(dialogInjectionKey, {
dialogRef,
headerRef,
bodyId,
ns,
rendered,
style
});
const overlayEvent = useSameTarget(onModalClick);
const draggable2 = vue.computed(() => props.draggable && !props.fullscreen);
const resetPosition = () => {
var _a2;
(_a2 = dialogContentRef.value) == null ? void 0 : _a2.resetPosition();
};
expose({
visible,
dialogContentRef,
resetPosition
});
return (_ctx, _cache) => {
return vue.openBlock(), vue.createBlock(vue.unref(ElTeleport), {
to: _ctx.appendTo,
disabled: _ctx.appendTo !== "body" ? false : !_ctx.appendToBody
}, {
default: vue.withCtx(() => [
vue.createVNode(vue.Transition, {
name: "dialog-fade",
onAfterEnter: vue.unref(afterEnter),
onAfterLeave: vue.unref(afterLeave),
onBeforeLeave: vue.unref(beforeLeave),
persisted: ""
}, {
default: vue.withCtx(() => [
vue.withDirectives(vue.createVNode(vue.unref(ElOverlay), {
"custom-mask-event": "",
mask: _ctx.modal,
"overlay-class": _ctx.modalClass,
"z-index": vue.unref(zIndex2)
}, {
default: vue.withCtx(() => [
vue.createElementVNode("div", {
role: "dialog",
"aria-modal": "true",
"aria-label": _ctx.title || void 0,
"aria-labelledby": !_ctx.title ? vue.unref(titleId) : void 0,
"aria-describedby": vue.unref(bodyId),
class: vue.normalizeClass(`${vue.unref(ns).namespace.value}-overlay-dialog`),
style: vue.normalizeStyle(vue.unref(overlayDialogStyle)),
onClick: vue.unref(overlayEvent).onClick,
onMousedown: vue.unref(overlayEvent).onMousedown,
onMouseup: vue.unref(overlayEvent).onMouseup
}, [
vue.createVNode(vue.unref(ElFocusTrap), {
loop: "",
trapped: vue.unref(visible),
"focus-start-el": "container",
onFocusAfterTrapped: vue.unref(onOpenAutoFocus),
onFocusAfterReleased: vue.unref(onCloseAutoFocus),
onFocusoutPrevented: vue.unref(onFocusoutPrevented),
onReleaseRequested: vue.unref(onCloseRequested)
}, {
default: vue.withCtx(() => [
vue.unref(rendered) ? (vue.openBlock(), vue.createBlock(ElDialogContent, vue.mergeProps({
key: 0,
ref_key: "dialogContentRef",
ref: dialogContentRef
}, _ctx.$attrs, {
center: _ctx.center,
"align-center": _ctx.alignCenter,
"close-icon": _ctx.closeIcon,
draggable: vue.unref(draggable2),
overflow: _ctx.overflow,
fullscreen: _ctx.fullscreen,
"show-close": _ctx.showClose,
title: _ctx.title,
"aria-level": _ctx.headerAriaLevel,
onClose: vue.unref(handleClose)
}), vue.createSlots({
header: vue.withCtx(() => [
!_ctx.$slots.title ? vue.renderSlot(_ctx.$slots, "header", {
key: 0,
close: vue.unref(handleClose),
titleId: vue.unref(titleId),
titleClass: vue.unref(ns).e("title")
}) : vue.renderSlot(_ctx.$slots, "title", { key: 1 })
]),
default: vue.withCtx(() => [
vue.renderSlot(_ctx.$slots, "default")
]),
_: 2
}, [
_ctx.$slots.footer ? {
name: "footer",
fn: vue.withCtx(() => [
vue.renderSlot(_ctx.$slots, "footer")
])
} : void 0
]), 1040, ["center", "align-center", "close-icon", "draggable", "overflow", "fullscreen", "show-close", "title", "aria-level", "onClose"])) : vue.createCommentVNode("v-if", true)
]),
_: 3
}, 8, ["trapped", "onFocusAfterTrapped", "onFocusAfterReleased", "onFocusoutPrevented", "onReleaseRequested"])
], 46, ["aria-label", "aria-labelledby", "aria-describedby", "onClick", "onMousedown", "onMouseup"])
]),
_: 3
}, 8, ["mask", "overlay-class", "z-index"]), [
[vue.vShow, vue.unref(visible)]
])
]),
_: 3
}, 8, ["onAfterEnter", "onAfterLeave", "onBeforeLeave"])
]),
_: 3
}, 8, ["to", "disabled"]);
};
}
});
var Dialog = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["__file", "dialog.vue"]]);
const ElDialog = withInstall(Dialog);
const __default__$e = vue.defineComponent({
name: "ImgEmpty"
});
const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
...__default__$e,
setup(__props) {
const ns = useNamespace("empty");
const id = useId();
return (_ctx, _cache) => {
return vue.openBlock(), vue.createElementBlock("svg", {
viewBox: "0 0 79 86",
version: "1.1",
xmlns: "http://www.w3.org/2000/svg",
"xmlns:xlink": "http://www.w3.org/1999/xlink"
}, [
vue.createElementVNode("defs", null, [
vue.createElementVNode("linearGradient", {
id: `linearGradient-1-${vue.unref(id)}`,
x1: "38.8503086%",
y1: "0%",
x2: "61.1496914%",
y2: "100%"
}, [
vue.createElementVNode("stop", {
"stop-color": `var(${vue.unref(ns).cssVarBlockName("fill-color-1")})`,
offset: "0%"
}, null, 8, ["stop-color"]),
vue.createElementVNode("stop", {
"stop-color": `var(${vue.unref(ns).cssVarBlockName("fill-color-4")})`,
offset: "100%"
}, null, 8, ["stop-color"])
], 8, ["id"]),
vue.createElementVNode("linearGradient", {
id: `linearGradient-2-${vue.unref(id)}`,
x1: "0%",
y1: "9.5%",
x2: "100%",
y2: "90.5%"
}, [
vue.createElementVNode("stop", {
"stop-color": `var(${vue.unref(ns).cssVarBlockName("fill-color-1")})`,
offset: "0%"
}, null, 8, ["stop-color"]),
vue.createElementVNode("stop", {
"stop-color": `var(${vue.unref(ns).cssVarBlockName("fill-color-6")})`,
offset: "100%"
}, null, 8, ["stop-color"])
], 8, ["id"]),
vue.createElementVNode("rect", {
id: `path-3-${vue.unref(id)}`,
x: "0",
y: "0",
width: "17",
height: "36"
}, null, 8, ["id"])
]),
vue.createElementVNode("g", {
id: "Illustrations",
stroke: "none",
"stroke-width": "1",
fill: "none",
"fill-rule": "evenodd"
}, [
vue.createElementVNode("g", {
id: "B-type",
transform: "translate(-1268.000000, -535.000000)"
}, [
vue.createElementVNode("g", {
id: "Group-2",
transform: "translate(1268.000000, 535.000000)"
}, [
vue.createElementVNode("path", {
id: "Oval-Copy-2",
d: "M39.5,86 C61.3152476,86 79,83.9106622 79,81.3333333 C79,78.7560045 57.3152476,78 35.5,78 C13.6847524,78 0,78.7560045 0,81.3333333 C0,83.9106622 17.6847524,86 39.5,86 Z",
fill: `var(${vue.unref(ns).cssVarBlockName("fill-color-3")})`
}, null, 8, ["fill"]),
vue.createElementVNode("polygon", {
id: "Rectangle-Copy-14",
fill: `var(${vue.unref(ns).cssVarBlockName("fill-color-7")})`,
transform: "translate(27.500000, 51.500000) scale(1, -1) translate(-27.500000, -51.500000) ",
points: "13 58 53 58 42 45 2 45"
}, null, 8, ["fill"]),
vue.createElementVNode("g", {
id: "Group-Copy",
transform: "translate(34.500000, 31.500000) scale(-1, 1) rotate(-25.000000) translate(-34.500000, -31.500000) translate(7.000000, 10.000000)"
}, [
vue.createElementVNode("polygon", {
id: "Rectangle-Copy-10",
fill: `var(${vue.unref(ns).cssVarBlockName("fill-color-7")})`,
transform: "translate(11.500000, 5.000000) scale(1, -1) translate(-11.500000, -5.000000) ",
points: "2.84078316e-14 3 18 3 23 7 5 7"
}, null, 8, ["fill"]),
vue.createElementVNode("polygon", {
id: "Rectangle-Copy-11",
fill: `var(${vue.unref(ns).cssVarBlockName("fill-color-5")})`,
points: "-3.69149156e-15 7 38 7 38 43 -3.69149156e-15 43"
}, null, 8, ["fill"]),
vue.createElementVNode("rect", {
id: "Rectangle-Copy-12",
fill: `url(#linearGradient-1-${vue.unref(id)})`,
transform: "translate(46.500000, 25.000000) scale(-1, 1) translate(-46.500000, -25.000000) ",
x: "38",
y: "7",
width: "17",
height: "36"
}, null, 8, ["fill"]),
vue.createElementVNode("polygon", {
id: "Rectangle-Copy-13",
fill: `var(${vue.unref(ns).cssVarBlockName("fill-color-2")})`,
transform: "translate(39.500000, 3.500000) scale(-1, 1) translate(-39.500000, -3.500000) ",
points: "24 7 41 7 55 -3.63806207e-12 38 -3.63806207e-12"
}, null, 8, ["fill"])
]),
vue.createElementVNode("rect", {
id: "Rectangle-Copy-15",
fill: `url(#linearGradient-2-${vue.unref(id)})`,
x: "13",
y: "45",
width: "40",
height: "36"
}, null, 8, ["fill"]),
vue.createElementVNode("g", {
id: "Rectangle-Copy-17",
transform: "translate(53.000000, 45.000000)"
}, [
vue.createElementVNode("use", {
id: "Mask",
fill: `var(${vue.unref(ns).cssVarBlockName("fill-color-8")})`,
transform: "translate(8.500000, 18.000000) scale(-1, 1) translate(-8.500000, -18.000000) ",
"xlink:href": `#path-3-${vue.unref(id)}`
}, null, 8, ["fill", "xlink:href"]),
vue.createElementVNode("polygon", {
id: "Rectangle-Copy",
fill: `var(${vue.unref(ns).cssVarBlockName("fill-color-9")})`,
mask: `url(#mask-4-${vue.unref(id)})`,
transform: "translate(12.000000, 9.000000) scale(-1, 1) translate(-12.000000, -9.000000) ",
points: "7 0 24 0 20 18 7 16.5"
}, null, 8, ["fill", "mask"])
]),
vue.createElementVNode("polygon", {
id: "Rectangle-Copy-18",
fill: `var(${vue.unref(ns).cssVarBlockName("fill-color-2")})`,
transform: "translate(66.000000, 51.500000) scale(-1, 1) translate(-66.000000, -51.500000) ",
points: "62 45 79 45 70 58 53 58"
}, null, 8, ["fill"])
])
])
])
]);
};
}
});
var ImgEmpty = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["__file", "img-empty.vue"]]);
const emptyProps = buildProps({
image: {
type: String,
default: ""
},
imageSize: Number,
description: {
type: String,
default: ""
}
});
const __default__$d = vue.defineComponent({
name: "ElEmpty"
});
const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
...__default__$d,
props: emptyProps,
setup(__props) {
const props = __props;
const { t } = useLocale();
const ns = useNamespace("empty");
const emptyDescription = vue.computed(() => props.description || t("el.table.emptyText"));
const imageStyle = vue.computed(() => ({
width: addUnit(props.imageSize)
}));
return (_ctx, _cache) => {
return vue.openBlock(), vue.createElementBlock("div", {
class: vue.normalizeClass(vue.unref(ns).b())
}, [
vue.createElementVNode("div", {
class: vue.normalizeClass(vue.unref(ns).e("image")),
style: vue.normalizeStyle(vue.unref(imageStyle))
}, [
_ctx.image ? (vue.openBlock(), vue.createElementBlock("img", {
key: 0,
src: _ctx.image,
ondragstart: "return false"
}, null, 8, ["src"])) : vue.renderSlot(_ctx.$slots, "image", { key: 1 }, () => [
vue.createVNode(ImgEmpty)
])
], 6),
vue.createElementVNode("div", {
class: vue.normalizeClass(vue.unref(ns).e("description"))
}, [
_ctx.$slots.description ? vue.renderSlot(_ctx.$slots, "description", { key: 0 }) : (vue.openBlock(), vue.createElementBlock("p", { key: 1 }, vue.toDisplayString(vue.unref(emptyDescription)), 1))
], 2),
_ctx.$slots.default ? (vue.openBlock(), vue.createElementBlock("div", {
key: 0,
class: vue.normalizeClass(vue.unref(ns).e("bottom"))
}, [
vue.renderSlot(_ctx.$slots, "default")
], 2)) : vue.createCommentVNode("v-if", true)
], 2);
};
}
});
var Empty = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__file", "empty.vue"]]);
const ElEmpty = withInstall(Empty);
const imageViewerProps = buildProps({
urlList: {
type: definePropType(Array),
default: () => mutable([])
},
zIndex: {
type: Number
},
initialIndex: {
type: Number,
default: 0
},
infinite: {
type: Boolean,
default: true
},
hideOnClickModal: Boolean,
teleported: Boolean,
closeOnPressEscape: {
type: Boolean,
default: true
},
zoomRate: {
type: Number,
default: 1.2
},
minScale: {
type: Number,
default: 0.2
},
maxScale: {
type: Number,
default: 7
},
crossorigin: {
type: definePropType(String)
}
});
const imageViewerEmits = {
close: () => true,
switch: (index) => isNumber(index),
rotate: (deg) => isNumber(deg)
};
const __default__$c = vue.defineComponent({
name: "ElImageViewer"
});
const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
...__default__$c,
props: imageViewerProps,
emits: imageViewerEmits,
setup(__props, { expose, emit }) {
var _a2;
const props = __props;
const modes = {
CONTAIN: {
name: "contain",
icon: vue.markRaw(full_screen_default)
},
ORIGINAL: {
name: "original",
icon: vue.markRaw(scale_to_original_default)
}
};
const { t } = useLocale();
const ns = useNamespace("image-viewer");
const { nextZIndex } = useZIndex();
const wrapper = vue.ref();
const imgRefs = vue.ref([]);
const scopeEventListener = vue.effectScope();
const loading = vue.ref(true);
const activeIndex = vue.ref(props.initialIndex);
const mode = vue.shallowRef(modes.CONTAIN);
const transform = vue.ref({
scale: 1,
deg: 0,
offsetX: 0,
offsetY: 0,
enableTransition: false
});
const zIndex2 = vue.ref((_a2 = props.zIndex) != null ? _a2 : nextZIndex());
const isSingle = vue.computed(() => {
const { urlList } = props;
return urlList.length <= 1;
});
const isFirst = vue.computed(() => {
return activeIndex.value === 0;
});
const isLast = vue.computed(() => {
return activeIndex.value === props.urlList.length - 1;
});
const currentImg = vue.computed(() => {
return props.urlList[activeIndex.value];
});
const arrowPrevKls = vue.computed(() => [
ns.e("btn"),
ns.e("prev"),
ns.is("disabled", !props.infinite && isFirst.value)
]);
const arrowNextKls = vue.computed(() => [
ns.e("btn"),
ns.e("next"),
ns.is("disabled", !props.infinite && isLast.value)
]);
const imgStyle = vue.computed(() => {
const { scale, deg, offsetX, offsetY, enableTransition } = transform.value;
let translateX = offsetX / scale;
let translateY = offsetY / scale;
const radian = deg * Math.PI / 180;
const cosRadian = Math.cos(radian);
const sinRadian = Math.sin(radian);
translateX = translateX * cosRadian + translateY * sinRadian;
translateY = translateY * cosRadian - offsetX / scale * sinRadian;
const style = {
transform: `scale(${scale}) rotate(${deg}deg) translate(${translateX}px, ${translateY}px)`,
transition: enableTransition ? "transform .3s" : ""
};
if (mode.value.name === modes.CONTAIN.name) {
style.maxWidth = style.maxHeight = "100%";
}
return style;
});
function hide() {
unregisterEventListener();
emit("close");
}
function registerEventListener() {
const keydownHandler = throttle((e) => {
switch (e.code) {
case EVENT_CODE.esc:
props.closeOnPressEscape && hide();
break;
case EVENT_CODE.space:
toggleMode();
break;
case EVENT_CODE.left:
prev();
break;
case EVENT_CODE.up:
handleActions("zoomIn");
break;
case EVENT_CODE.right:
next();
break;
case EVENT_CODE.down:
handleActions("zoomOut");
break;
}
});
const mousewheelHandler = throttle((e) => {
const delta = e.deltaY || e.deltaX;
handleActions(delta < 0 ? "zoomIn" : "zoomOut", {
zoomRate: props.zoomRate,
enableTransition: false
});
});
scopeEventListener.run(() => {
useEventListener(document, "keydown", keydownHandler);
useEventListener(document, "wheel", mousewheelHandler);
});
}
function unregisterEventListener() {
scopeEventListener.stop();
}
function handleImgLoad() {
loading.value = false;
}
function handleImgError(e) {
loading.value = false;
e.target.alt = t("el.image.error");
}
function handleMouseDown(e) {
if (loading.value || e.button !== 0 || !wrapper.value)
return;
transform.value.enableTransition = false;
const { offsetX, offsetY } = transform.value;
const startX = e.pageX;
const startY = e.pageY;
const dragHandler = throttle((ev) => {
transform.value = {
...transform.value,
offsetX: offsetX + ev.pageX - startX,
offsetY: offsetY + ev.pageY - startY
};
});
const removeMousemove = useEventListener(document, "mousemove", dragHandler);
useEventListener(document, "mouseup", () => {
removeMousemove();
});
e.preventDefault();
}
function reset() {
transform.value = {
scale: 1,
deg: 0,
offsetX: 0,
offsetY: 0,
enableTransition: false
};
}
function toggleMode() {
if (loading.value)
return;
const modeNames = keysOf(modes);
const modeValues = Object.values(modes);
const currentMode = mode.value.name;
const index = modeValues.findIndex((i) => i.name === currentMode);
const nextIndex = (index + 1) % modeNames.length;
mode.value = modes[modeNames[nextIndex]];
reset();
}
function setActiveItem(index) {
const len = props.urlList.length;
activeIndex.value = (index + len) % len;
}
function prev() {
if (isFirst.value && !props.infinite)
return;
setActiveItem(activeIndex.value - 1);
}
function next() {
if (isLast.value && !props.infinite)
return;
setActiveItem(activeIndex.value + 1);
}
function handleActions(action, options = {}) {
if (loading.value)
return;
const { minScale, maxScale } = props;
const { zoomRate, rotateDeg, enableTransition } = {
zoomRate: props.zoomRate,
rotateDeg: 90,
enableTransition: true,
...options
};
switch (action) {
case "zoomOut":
if (transform.value.scale > minScale) {
transform.value.scale = Number.parseFloat((transform.value.scale / zoomRate).toFixed(3));
}
break;
case "zoomIn":
if (transform.value.scale < maxScale) {
transform.value.scale = Number.parseFloat((transform.value.scale * zoomRate).toFixed(3));
}
break;
case "clockwise":
transform.value.deg += rotateDeg;
emit("rotate", transform.value.deg);
break;
case "anticlockwise":
transform.value.deg -= rotateDeg;
emit("rotate", transform.value.deg);
break;
}
transform.value.enableTransition = enableTransition;
}
vue.watch(currentImg, () => {
vue.nextTick(() => {
const $img = imgRefs.value[0];
if (!($img == null ? void 0 : $img.complete)) {
loading.value = true;
}
});
});
vue.watch(activeIndex, (val) => {
reset();
emit("switch", val);
});
vue.onMounted(() => {
var _a22, _b;
registerEventListener();
(_b = (_a22 = wrapper.value) == null ? void 0 : _a22.focus) == null ? void 0 : _b.call(_a22);
});
expose({
setActiveItem
});
return (_ctx, _cache) => {
return vue.openBlock(), vue.createBlock(vue.unref(ElTeleport), {
to: "body",
disabled: !_ctx.teleported
}, {
default: vue.withCtx(() => [
vue.createVNode(vue.Transition, {
name: "viewer-fade",
appear: ""
}, {
default: vue.withCtx(() => [
vue.createElementVNode("div", {
ref_key: "wrapper",
ref: wrapper,
tabindex: -1,
class: vue.normalizeClass(vue.unref(ns).e("wrapper")),
style: vue.normalizeStyle({ zIndex: zIndex2.value })
}, [
vue.createElementVNode("div", {
class: vue.normalizeClass(vue.unref(ns).e("mask")),
onClick: vue.withModifiers(($event) => _ctx.hideOnClickModal && hide(), ["self"])
}, null, 10, ["onClick"]),
vue.createCommentVNode(" CLOSE "),
vue.createElementVNode("span", {
class: vue.normalizeClass([vue.unref(ns).e("btn"), vue.unref(ns).e("close")]),
onClick: hide
}, [
vue.createVNode(vue.unref(ElIcon), null, {
default: vue.withCtx(() => [
vue.createVNode(vue.unref(close_default))
]),
_: 1
})
], 2),
vue.createCommentVNode(" ARROW "),
!vue.unref(isSingle) ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
vue.createElementVNode("span", {
class: vue.normalizeClass(vue.unref(arrowPrevKls)),
onClick: prev
}, [
vue.createVNode(vue.unref(ElIcon), null, {
default: vue.withCtx(() => [
vue.createVNode(vue.unref(arrow_left_default))
]),
_: 1
})
], 2),
vue.createElementVNode("span", {
class: vue.normalizeClass(vue.unref(arrowNextKls)),
onClick: next
}, [
vue.createVNode(vue.unref(ElIcon), null, {
default: vue.withCtx(() => [
vue.createVNode(vue.unref(arrow_right_default))
]),
_: 1
})
], 2)
], 64)) : vue.createCommentVNode("v-if", true),
vue.createCommentVNode(" ACTIONS "),
vue.createElementVNode("div", {
class: vue.normalizeClass([vue.unref(ns).e("btn"), vue.unref(ns).e("actions")])
}, [
vue.createElementVNode("div", {
class: vue.normalizeClass(vue.unref(ns).e("actions__inner"))
}, [
vue.createVNode(vue.unref(ElIcon), {
onClick: ($event) => handleActions("zoomOut")
}, {
default: vue.withCtx(() => [
vue.createVNode(vue.unref(zoom_out_default))
]),
_: 1
}, 8, ["onClick"]),
vue.createVNode(vue.unref(ElIcon), {
onClick: ($event) => handleActions("zoomIn")
}, {
default: vue.withCtx(() => [
vue.createVNode(vue.unref(zoom_in_default))
]),
_: 1
}, 8, ["onClick"]),
vue.createElementVNode("i", {
class: vue.normalizeClass(vue.unref(ns).e("actions__divider"))
}, null, 2),
vue.createVNode(vue.unref(ElIcon), { onClick: toggleMode }, {
default: vue.withCtx(() => [
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(vue.unref(mode).icon)))
]),
_: 1
}),
vue.createElementVNode("i", {
class: vue.normalizeClass(vue.unref(ns).e("actions__divider"))
}, null, 2),
vue.createVNode(vue.unref(ElIcon), {
onClick: ($event) => handleActions("anticlockwise")
}, {
default: vue.withCtx(() => [
vue.createVNode(vue.unref(refresh_left_default))
]),
_: 1
}, 8, ["onClick"]),
vue.createVNode(vue.unref(ElIcon), {
onClick: ($event) => handleActions("clockwise")
}, {
default: vue.withCtx(() => [
vue.createVNode(vue.unref(refresh_right_default))
]),
_: 1
}, 8, ["onClick"])
], 2)
], 2),
vue.createCommentVNode(" CANVAS "),
vue.createElementVNode("div", {
class: vue.normalizeClass(vue.unref(ns).e("canvas"))
}, [
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.urlList, (url, i) => {
return vue.withDirectives((vue.openBlock(), vue.createElementBlock("img", {
ref_for: true,
ref: (el) => imgRefs.value[i] = el,
key: url,
src: url,
style: vue.normalizeStyle(vue.unref(imgStyle)),
class: vue.normalizeClass(vue.unref(ns).e("img")),
crossorigin: _ctx.crossorigin,
onLoad: handleImgLoad,
onError: handleImgError,
onMousedown: handleMouseDown
}, null, 46, ["src", "crossorigin"])), [
[vue.vShow, i === activeIndex.value]
]);
}), 128))
], 2),
vue.renderSlot(_ctx.$slots, "default")
], 6)
]),
_: 3
})
]),
_: 3
}, 8, ["disabled"]);
};
}
});
var ImageViewer = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["__file", "image-viewer.vue"]]);
const ElImageViewer = withInstall(ImageViewer);
const imageProps = buildProps({
hideOnClickModal: Boolean,
src: {
type: String,
default: ""
},
fit: {
type: String,
values: ["", "contain", "cover", "fill", "none", "scale-down"],
default: ""
},
loading: {
type: String,
values: ["eager", "lazy"]
},
lazy: Boolean,
scrollContainer: {
type: definePropType([String, Object])
},
previewSrcList: {
type: definePropType(Array),
default: () => mutable([])
},
previewTeleported: Boolean,
zIndex: {
type: Number
},
initialIndex: {
type: Number,
default: 0
},
infinite: {
type: Boolean,
default: true
},
closeOnPressEscape: {
type: Boolean,
default: true
},
zoomRate: {
type: Number,
default: 1.2
},
minScale: {
type: Number,
default: 0.2
},
maxScale: {
type: Number,
default: 7
},
crossorigin: {
type: definePropType(String)
}
});
const imageEmits = {
load: (evt) => evt instanceof Event,
error: (evt) => evt instanceof Event,
switch: (val) => isNumber(val),
close: () => true,
show: () => true
};
const __default__$b = vue.defineComponent({
name: "ElImage",
inheritAttrs: false
});
const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
...__default__$b,
props: imageProps,
emits: imageEmits,
setup(__props, { emit }) {
const props = __props;
let prevOverflow = "";
const { t } = useLocale();
const ns = useNamespace("image");
const rawAttrs = vue.useAttrs();
const containerAttrs = vue.computed(() => {
return fromPairs(Object.entries(rawAttrs).filter(([key]) => /^(data-|on[A-Z])/i.test(key) || ["id", "style"].includes(key)));
});
const imgAttrs = useAttrs({
excludeListeners: true,
excludeKeys: vue.computed(() => {
return Object.keys(containerAttrs.value);
})
});
const imageSrc = vue.ref();
const hasLoadError = vue.ref(false);
const isLoading = vue.ref(true);
const showViewer = vue.ref(false);
const container = vue.ref();
const _scrollContainer = vue.ref();
const supportLoading = isClient && "loading" in HTMLImageElement.prototype;
let stopScrollListener;
let stopWheelListener;
const imageKls = vue.computed(() => [
ns.e("inner"),
preview.value && ns.e("preview"),
isLoading.value && ns.is("loading")
]);
const imageStyle = vue.computed(() => {
const { fit } = props;
if (isClient && fit) {
return { objectFit: fit };
}
return {};
});
const preview = vue.computed(() => {
const { previewSrcList } = props;
return Array.isArray(previewSrcList) && previewSrcList.length > 0;
});
const imageIndex = vue.computed(() => {
const { previewSrcList, initialIndex } = props;
let previewIndex = initialIndex;
if (initialIndex > previewSrcList.length - 1) {
previewIndex = 0;
}
return previewIndex;
});
const isManual = vue.computed(() => {
if (props.loading === "eager")
return false;
return !supportLoading && props.loading === "lazy" || props.lazy;
});
const loadImage = () => {
if (!isClient)
return;
isLoading.value = true;
hasLoadError.value = false;
imageSrc.value = props.src;
};
function handleLoad(event) {
isLoading.value = false;
hasLoadError.value = false;
emit("load", event);
}
function handleError(event) {
isLoading.value = false;
hasLoadError.value = true;
emit("error", event);
}
function handleLazyLoad() {
if (isInContainer(container.value, _scrollContainer.value)) {
loadImage();
removeLazyLoadListener();
}
}
const lazyLoadHandler = useThrottleFn(handleLazyLoad, 200, true);
async function addLazyLoadListener() {
var _a2;
if (!isClient)
return;
await vue.nextTick();
const { scrollContainer } = props;
if (isElement(scrollContainer)) {
_scrollContainer.value = scrollContainer;
} else if (isString(scrollContainer) && scrollContainer !== "") {
_scrollContainer.value = (_a2 = document.querySelector(scrollContainer)) != null ? _a2 : void 0;
} else if (container.value) {
_scrollContainer.value = getScrollContainer(container.value);
}
if (_scrollContainer.value) {
stopScrollListener = useEventListener(_scrollContainer, "scroll", lazyLoadHandler);
setTimeout(() => handleLazyLoad(), 100);
}
}
function removeLazyLoadListener() {
if (!isClient || !_scrollContainer.value || !lazyLoadHandler)
return;
stopScrollListener == null ? void 0 : stopScrollListener();
_scrollContainer.value = void 0;
}
function wheelHandler(e) {
if (!e.ctrlKey)
return;
if (e.deltaY < 0) {
e.preventDefault();
return false;
} else if (e.deltaY > 0) {
e.preventDefault();
return false;
}
}
function clickHandler() {
if (!preview.value)
return;
stopWheelListener = useEventListener("wheel", wheelHandler, {
passive: false
});
prevOverflow = document.body.style.overflow;
document.body.style.overflow = "hidden";
showViewer.value = true;
emit("show");
}
function closeViewer() {
stopWheelListener == null ? void 0 : stopWheelListener();
document.body.style.overflow = prevOverflow;
showViewer.value = false;
emit("close");
}
function switchViewer(val) {
emit("switch", val);
}
vue.watch(() => props.src, () => {
if (isManual.value) {
isLoading.value = true;
hasLoadError.value = false;
removeLazyLoadListener();
addLazyLoadListener();
} else {
loadImage();
}
});
vue.onMounted(() => {
if (isManual.value) {
addLazyLoadListener();
} else {
loadImage();
}
});
return (_ctx, _cache) => {
return vue.openBlock(), vue.createElementBlock("div", vue.mergeProps({
ref_key: "container",
ref: container
}, vue.unref(containerAttrs), {
class: [vue.unref(ns).b(), _ctx.$attrs.class]
}), [
hasLoadError.value ? vue.renderSlot(_ctx.$slots, "error", { key: 0 }, () => [
vue.createElementVNode("div", {
class: vue.normalizeClass(vue.unref(ns).e("error"))
}, vue.toDisplayString(vue.unref(t)("el.image.error")), 3)
]) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
imageSrc.value !== void 0 ? (vue.openBlock(), vue.createElementBlock("img", vue.mergeProps({ key: 0 }, vue.unref(imgAttrs), {
src: imageSrc.value,
loading: _ctx.loading,
style: vue.unref(imageStyle),
class: vue.unref(imageKls),
crossorigin: _ctx.crossorigin,
onClick: clickHandler,
onLoad: handleLoad,
onError: handleError
}), null, 16, ["src", "loading", "crossorigin"])) : vue.createCommentVNode("v-if", true),
isLoading.value ? (vue.openBlock(), vue.createElementBlock("div", {
key: 1,
class: vue.normalizeClass(vue.unref(ns).e("wrapper"))
}, [
vue.renderSlot(_ctx.$slots, "placeholder", {}, () => [
vue.createElementVNode("div", {
class: vue.normalizeClass(vue.unref(ns).e("placeholder"))
}, null, 2)
])
], 2)) : vue.createCommentVNode("v-if", true)
], 64)),
vue.unref(preview) ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 2 }, [
showViewer.value ? (vue.openBlock(), vue.createBlock(vue.unref(ElImageViewer), {
key: 0,
"z-index": _ctx.zIndex,
"initial-index": vue.unref(imageIndex),
infinite: _ctx.infinite,
"zoom-rate": _ctx.zoomRate,
"min-scale": _ctx.minScale,
"max-scale": _ctx.maxScale,
"url-list": _ctx.previewSrcList,
crossorigin: _ctx.crossorigin,
"hide-on-click-modal": _ctx.hideOnClickModal,
teleported: _ctx.previewTeleported,
"close-on-press-escape": _ctx.closeOnPressEscape,
onClose: closeViewer,
onSwitch: switchViewer
}, {
default: vue.withCtx(() => [
_ctx.$slots.viewer ? (vue.openBlock(), vue.createElementBlock("div", { key: 0 }, [
vue.renderSlot(_ctx.$slots, "viewer")
])) : vue.createCommentVNode("v-if", true)
]),
_: 3
}, 8, ["z-index", "initial-index", "infinite", "zoom-rate", "min-scale", "max-scale", "url-list", "crossorigin", "hide-on-click-modal", "teleported", "close-on-press-escape"])) : vue.createCommentVNode("v-if", true)
], 64)) : vue.createCommentVNode("v-if", true)
], 16);
};
}
});
var Image$1 = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["__file", "image.vue"]]);
const ElImage = withInstall(Image$1);
const inputNumberProps = buildProps({
id: {
type: String,
default: void 0
},
step: {
type: Number,
default: 1
},
stepStrictly: Boolean,
max: {
type: Number,
default: Number.POSITIVE_INFINITY
},
min: {
type: Number,
default: Number.NEGATIVE_INFINITY
},
modelValue: Number,
readonly: Boolean,
disabled: Boolean,
size: useSizeProp,
controls: {
type: Boolean,
default: true
},
controlsPosition: {
type: String,
default: "",
values: ["", "right"]
},
valueOnClear: {
type: [String, Number, null],
validator: (val) => val === null || isNumber(val) || ["min", "max"].includes(val),
default: null
},
name: String,
placeholder: String,
precision: {
type: Number,
validator: (val) => val >= 0 && val === Number.parseInt(`${val}`, 10)
},
validateEvent: {
type: Boolean,
default: true
},
...useAriaProps(["ariaLabel"])
});
const inputNumberEmits = {
[CHANGE_EVENT]: (cur, prev) => prev !== cur,
blur: (e) => e instanceof FocusEvent,
focus: (e) => e instanceof FocusEvent,
[INPUT_EVENT]: (val) => isNumber(val) || isNil(val),
[UPDATE_MODEL_EVENT]: (val) => isNumber(val) || isNil(val)
};
const __default__$a = vue.defineComponent({
name: "ElInputNumber"
});
const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
...__default__$a,
props: inputNumberProps,
emits: inputNumberEmits,
setup(__props, { expose, emit }) {
const props = __props;
const { t } = useLocale();
const ns = useNamespace("input-number");
const input = vue.ref();
const data = vue.reactive({
currentValue: props.modelValue,
userInput: null
});
const { formItem } = useFormItem();
const minDisabled = vue.computed(() => isNumber(props.modelValue) && props.modelValue <= props.min);
const maxDisabled = vue.computed(() => isNumber(props.modelValue) && props.modelValue >= props.max);
const numPrecision = vue.computed(() => {
const stepPrecision = getPrecision(props.step);
if (!isUndefined(props.precision)) {
if (stepPrecision > props.precision) ;
return props.precision;
} else {
return Math.max(getPrecision(props.modelValue), stepPrecision);
}
});
const controlsAtRight = vue.computed(() => {
return props.controls && props.controlsPosition === "right";
});
const inputNumberSize = useFormSize();
const inputNumberDisabled = useFormDisabled();
const displayValue = vue.computed(() => {
if (data.userInput !== null) {
return data.userInput;
}
let currentValue = data.currentValue;
if (isNil(currentValue))
return "";
if (isNumber(currentValue)) {
if (Number.isNaN(currentValue))
return "";
if (!isUndefined(props.precision)) {
currentValue = currentValue.toFixed(props.precision);
}
}
return currentValue;
});
const toPrecision = (num, pre) => {
if (isUndefined(pre))
pre = numPrecision.value;
if (pre === 0)
return Math.round(num);
let snum = String(num);
const pointPos = snum.indexOf(".");
if (pointPos === -1)
return num;
const nums = snum.replace(".", "").split("");
const datum = nums[pointPos + pre];
if (!datum)
return num;
const length = snum.length;
if (snum.charAt(length - 1) === "5") {
snum = `${snum.slice(0, Math.max(0, length - 1))}6`;
}
return Number.parseFloat(Number(snum).toFixed(pre));
};
const getPrecision = (value) => {
if (isNil(value))
return 0;
const valueString = value.toString();
const dotPosition = valueString.indexOf(".");
let precision = 0;
if (dotPosition !== -1) {
precision = valueString.length - dotPosition - 1;
}
return precision;
};
const ensurePrecision = (val, coefficient = 1) => {
if (!isNumber(val))
return data.currentValue;
return toPrecision(val + props.step * coefficient);
};
const increase = () => {
if (props.readonly || inputNumberDisabled.value || maxDisabled.value)
return;
const value = Number(displayValue.value) || 0;
const newVal = ensurePrecision(value);
setCurrentValue(newVal);
emit(INPUT_EVENT, data.currentValue);
setCurrentValueToModelValue();
};
const decrease = () => {
if (props.readonly || inputNumberDisabled.value || minDisabled.value)
return;
const value = Number(displayValue.value) || 0;
const newVal = ensurePrecision(value, -1);
setCurrentValue(newVal);
emit(INPUT_EVENT, data.currentValue);
setCurrentValueToModelValue();
};
const verifyValue = (value, update) => {
const { max: max2, min: min2, step, precision, stepStrictly, valueOnClear } = props;
if (max2 < min2) {
throwError("InputNumber", "min should not be greater than max.");
}
let newVal = Number(value);
if (isNil(value) || Number.isNaN(newVal)) {
return null;
}
if (value === "") {
if (valueOnClear === null) {
return null;
}
newVal = isString(valueOnClear) ? { min: min2, max: max2 }[valueOnClear] : valueOnClear;
}
if (stepStrictly) {
newVal = toPrecision(Math.round(newVal / step) * step, precision);
if (newVal !== value) {
update && emit(UPDATE_MODEL_EVENT, newVal);
}
}
if (!isUndefined(precision)) {
newVal = toPrecision(newVal, precision);
}
if (newVal > max2 || newVal < min2) {
newVal = newVal > max2 ? max2 : min2;
update && emit(UPDATE_MODEL_EVENT, newVal);
}
return newVal;
};
const setCurrentValue = (value, emitChange = true) => {
var _a2;
const oldVal = data.currentValue;
const newVal = verifyValue(value);
if (!emitChange) {
emit(UPDATE_MODEL_EVENT, newVal);
return;
}
if (oldVal === newVal && value)
return;
data.userInput = null;
emit(UPDATE_MODEL_EVENT, newVal);
if (oldVal !== newVal) {
emit(CHANGE_EVENT, newVal, oldVal);
}
if (props.validateEvent) {
(_a2 = formItem == null ? void 0 : formItem.validate) == null ? void 0 : _a2.call(formItem, "change").catch((err) => debugWarn());
}
data.currentValue = newVal;
};
const handleInput = (value) => {
data.userInput = value;
const newVal = value === "" ? null : Number(value);
emit(INPUT_EVENT, newVal);
setCurrentValue(newVal, false);
};
const handleInputChange = (value) => {
const newVal = value !== "" ? Number(value) : "";
if (isNumber(newVal) && !Number.isNaN(newVal) || value === "") {
setCurrentValue(newVal);
}
setCurrentValueToModelValue();
data.userInput = null;
};
const focus = () => {
var _a2, _b;
(_b = (_a2 = input.value) == null ? void 0 : _a2.focus) == null ? void 0 : _b.call(_a2);
};
const blur = () => {
var _a2, _b;
(_b = (_a2 = input.value) == null ? void 0 : _a2.blur) == null ? void 0 : _b.call(_a2);
};
const handleFocus = (event) => {
emit("focus", event);
};
const handleBlur = (event) => {
var _a2;
data.userInput = null;
emit("blur", event);
if (props.validateEvent) {
(_a2 = formItem == null ? void 0 : formItem.validate) == null ? void 0 : _a2.call(formItem, "blur").catch((err) => debugWarn());
}
};
const setCurrentValueToModelValue = () => {
if (data.currentValue !== props.modelValue) {
data.currentValue = props.modelValue;
}
};
const handleWheel = (e) => {
if (document.activeElement === e.target)
e.preventDefault();
};
vue.watch(() => props.modelValue, (value, oldValue) => {
const newValue = verifyValue(value, true);
if (data.userInput === null && newValue !== oldValue) {
data.currentValue = newValue;
}
}, { immediate: true });
vue.onMounted(() => {
var _a2;
const { min: min2, max: max2, modelValue } = props;
const innerInput = (_a2 = input.value) == null ? void 0 : _a2.input;
innerInput.setAttribute("role", "spinbutton");
if (Number.isFinite(max2)) {
innerInput.setAttribute("aria-valuemax", String(max2));
} else {
innerInput.removeAttribute("aria-valuemax");
}
if (Number.isFinite(min2)) {
innerInput.setAttribute("aria-valuemin", String(min2));
} else {
innerInput.removeAttribute("aria-valuemin");
}
innerInput.setAttribute("aria-valuenow", data.currentValue || data.currentValue === 0 ? String(data.currentValue) : "");
innerInput.setAttribute("aria-disabled", String(inputNumberDisabled.value));
if (!isNumber(modelValue) && modelValue != null) {
let val = Number(modelValue);
if (Number.isNaN(val)) {
val = null;
}
emit(UPDATE_MODEL_EVENT, val);
}
innerInput.addEventListener("wheel", handleWheel, { passive: false });
});
vue.onUpdated(() => {
var _a2, _b;
const innerInput = (_a2 = input.value) == null ? void 0 : _a2.input;
innerInput == null ? void 0 : innerInput.setAttribute("aria-valuenow", `${(_b = data.currentValue) != null ? _b : ""}`);
});
expose({
focus,
blur
});
return (_ctx, _cache) => {
return vue.openBlock(), vue.createElementBlock("div", {
class: vue.normalizeClass([
vue.unref(ns).b(),
vue.unref(ns).m(vue.unref(inputNumberSize)),
vue.unref(ns).is("disabled", vue.unref(inputNumberDisabled)),
vue.unref(ns).is("without-controls", !_ctx.controls),
vue.unref(ns).is("controls-right", vue.unref(controlsAtRight))
]),
onDragstart: vue.withModifiers(() => {
}, ["prevent"])
}, [
_ctx.controls ? vue.withDirectives((vue.openBlock(), vue.createElementBlock("span", {
key: 0,
role: "button",
"aria-label": vue.unref(t)("el.inputNumber.decrease"),
class: vue.normalizeClass([vue.unref(ns).e("decrease"), vue.unref(ns).is("disabled", vue.unref(minDisabled))]),
onKeydown: vue.withKeys(decrease, ["enter"])
}, [
vue.renderSlot(_ctx.$slots, "decrease-icon", {}, () => [
vue.createVNode(vue.unref(ElIcon), null, {
default: vue.withCtx(() => [
vue.unref(controlsAtRight) ? (vue.openBlock(), vue.createBlock(vue.unref(arrow_down_default), { key: 0 })) : (vue.openBlock(), vue.createBlock(vue.unref(minus_default), { key: 1 }))
]),
_: 1
})
])
], 42, ["aria-label", "onKeydown"])), [
[vue.unref(vRepeatClick), decrease]
]) : vue.createCommentVNode("v-if", true),
_ctx.controls ? vue.withDirectives((vue.openBlock(), vue.createElementBlock("span", {
key: 1,
role: "button",
"aria-label": vue.unref(t)("el.inputNumber.increase"),
class: vue.normalizeClass([vue.unref(ns).e("increase"), vue.unref(ns).is("disabled", vue.unref(maxDisabled))]),
onKeydown: vue.withKeys(increase, ["enter"])
}, [
vue.renderSlot(_ctx.$slots, "increase-icon", {}, () => [
vue.createVNode(vue.unref(ElIcon), null, {
default: vue.withCtx(() => [
vue.unref(controlsAtRight) ? (vue.openBlock(), vue.createBlock(vue.unref(arrow_up_default), { key: 0 })) : (vue.openBlock(), vue.createBlock(vue.unref(plus_default), { key: 1 }))
]),
_: 1
})
])
], 42, ["aria-label", "onKeydown"])), [
[vue.unref(vRepeatClick), increase]
]) : vue.createCommentVNode("v-if", true),
vue.createVNode(vue.unref(ElInput), {
id: _ctx.id,
ref_key: "input",
ref: input,
type: "number",
step: _ctx.step,
"model-value": vue.unref(displayValue),
placeholder: _ctx.placeholder,
readonly: _ctx.readonly,
disabled: vue.unref(inputNumberDisabled),
size: vue.unref(inputNumberSize),
max: _ctx.max,
min: _ctx.min,
name: _ctx.name,
"aria-label": _ctx.ariaLabel,
"validate-event": false,
onKeydown: [
vue.withKeys(vue.withModifiers(increase, ["prevent"]), ["up"]),
vue.withKeys(vue.withModifiers(decrease, ["prevent"]), ["down"])
],
onBlur: handleBlur,
onFocus: handleFocus,
onInput: handleInput,
onChange: handleInputChange
}, vue.createSlots({
_: 2
}, [
_ctx.$slots.prefix ? {
name: "prefix",
fn: vue.withCtx(() => [
vue.renderSlot(_ctx.$slots, "prefix")
])
} : void 0,
_ctx.$slots.suffix ? {
name: "suffix",
fn: vue.withCtx(() => [
vue.renderSlot(_ctx.$slots, "suffix")
])
} : void 0
]), 1032, ["id", "step", "model-value", "placeholder", "readonly", "disabled", "size", "max", "min", "name", "aria-label", "onKeydown"])
], 42, ["onDragstart"]);
};
}
});
var InputNumber = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["__file", "input-number.vue"]]);
const ElInputNumber = withInstall(InputNumber);
const linkProps = buildProps({
type: {
type: String,
values: ["primary", "success", "warning", "info", "danger", "default"],
default: "default"
},
underline: {
type: Boolean,
default: true
},
disabled: Boolean,
href: { type: String, default: "" },
target: {
type: String,
default: "_self"
},
icon: {
type: iconPropType
}
});
const linkEmits = {
click: (evt) => evt instanceof MouseEvent
};
const __default__$9 = vue.defineComponent({
name: "ElLink"
});
const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
...__default__$9,
props: linkProps,
emits: linkEmits,
setup(__props, { emit }) {
const props = __props;
const ns = useNamespace("link");
const linkKls = vue.computed(() => [
ns.b(),
ns.m(props.type),
ns.is("disabled", props.disabled),
ns.is("underline", props.underline && !props.disabled)
]);
function handleClick(event) {
if (!props.disabled)
emit("click", event);
}
return (_ctx, _cache) => {
return vue.openBlock(), vue.createElementBlock("a", {
class: vue.normalizeClass(vue.unref(linkKls)),
href: _ctx.disabled || !_ctx.href ? void 0 : _ctx.href,
target: _ctx.disabled || !_ctx.href ? void 0 : _ctx.target,
onClick: handleClick
}, [
_ctx.icon ? (vue.openBlock(), vue.createBlock(vue.unref(ElIcon), { key: 0 }, {
default: vue.withCtx(() => [
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.icon)))
]),
_: 1
})) : vue.createCommentVNode("v-if", true),
_ctx.$slots.default ? (vue.openBlock(), vue.createElementBlock("span", {
key: 1,
class: vue.normalizeClass(vue.unref(ns).e("inner"))
}, [
vue.renderSlot(_ctx.$slots, "default")
], 2)) : vue.createCommentVNode("v-if", true),
_ctx.$slots.icon ? vue.renderSlot(_ctx.$slots, "icon", { key: 2 }) : vue.createCommentVNode("v-if", true)
], 10, ["href", "target"]);
};
}
});
var Link = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["__file", "link.vue"]]);
const ElLink = withInstall(Link);
const selectGroupKey = Symbol("ElSelectGroup");
const selectKey = Symbol("ElSelect");
function useOption(props, states) {
const select = vue.inject(selectKey);
const selectGroup = vue.inject(selectGroupKey, { disabled: false });
const itemSelected = vue.computed(() => {
return contains2(castArray(select.props.modelValue), props.value);
});
const limitReached = vue.computed(() => {
var _a2;
if (select.props.multiple) {
const modelValue = castArray((_a2 = select.props.modelValue) != null ? _a2 : []);
return !itemSelected.value && modelValue.length >= select.props.multipleLimit && select.props.multipleLimit > 0;
} else {
return false;
}
});
const currentLabel = vue.computed(() => {
return props.label || (isObject$1(props.value) ? "" : props.value);
});
const currentValue = vue.computed(() => {
return props.value || props.label || "";
});
const isDisabled = vue.computed(() => {
return props.disabled || states.groupDisabled || limitReached.value;
});
const instance = vue.getCurrentInstance();
const contains2 = (arr = [], target) => {
if (!isObject$1(props.value)) {
return arr && arr.includes(target);
} else {
const valueKey = select.props.valueKey;
return arr && arr.some((item) => {
return vue.toRaw(get(item, valueKey)) === get(target, valueKey);
});
}
};
const hoverItem = () => {
if (!props.disabled && !selectGroup.disabled) {
select.states.hoveringIndex = select.optionsArray.indexOf(instance.proxy);
}
};
const updateOption = (query) => {
const regexp = new RegExp(escapeStringRegexp(query), "i");
states.visible = regexp.test(currentLabel.value) || props.created;
};
vue.watch(() => currentLabel.value, () => {
if (!props.created && !select.props.remote)
select.setSelected();
});
vue.watch(() => props.value, (val, oldVal) => {
const { remote, valueKey } = select.props;
if (val !== oldVal) {
select.onOptionDestroy(oldVal, instance.proxy);
select.onOptionCreate(instance.proxy);
}
if (!props.created && !remote) {
if (valueKey && isObject$1(val) && isObject$1(oldVal) && val[valueKey] === oldVal[valueKey]) {
return;
}
select.setSelected();
}
});
vue.watch(() => selectGroup.disabled, () => {
states.groupDisabled = selectGroup.disabled;
}, { immediate: true });
return {
select,
currentLabel,
currentValue,
itemSelected,
isDisabled,
hoverItem,
updateOption
};
}
const _sfc_main$o = vue.defineComponent({
name: "ElOption",
componentName: "ElOption",
props: {
value: {
required: true,
type: [String, Number, Boolean, Object]
},
label: [String, Number],
created: Boolean,
disabled: Boolean
},
setup(props) {
const ns = useNamespace("select");
const id = useId();
const containerKls = vue.computed(() => [
ns.be("dropdown", "item"),
ns.is("disabled", vue.unref(isDisabled)),
ns.is("selected", vue.unref(itemSelected)),
ns.is("hovering", vue.unref(hover))
]);
const states = vue.reactive({
index: -1,
groupDisabled: false,
visible: true,
hover: false
});
const {
currentLabel,
itemSelected,
isDisabled,
select,
hoverItem,
updateOption
} = useOption(props, states);
const { visible, hover } = vue.toRefs(states);
const vm = vue.getCurrentInstance().proxy;
select.onOptionCreate(vm);
vue.onBeforeUnmount(() => {
const key = vm.value;
const { selected } = select.states;
const selectedOptions = select.props.multiple ? selected : [selected];
const doesSelected = selectedOptions.some((item) => {
return item.value === vm.value;
});
vue.nextTick(() => {
if (select.states.cachedOptions.get(key) === vm && !doesSelected) {
select.states.cachedOptions.delete(key);
}
});
select.onOptionDestroy(key, vm);
});
function selectOptionClick() {
if (!isDisabled.value) {
select.handleOptionSelect(vm);
}
}
return {
ns,
id,
containerKls,
currentLabel,
itemSelected,
isDisabled,
select,
hoverItem,
updateOption,
visible,
hover,
selectOptionClick,
states
};
}
});
function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
return vue.withDirectives((vue.openBlock(), vue.createElementBlock("li", {
id: _ctx.id,
class: vue.normalizeClass(_ctx.containerKls),
role: "option",
"aria-disabled": _ctx.isDisabled || void 0,
"aria-selected": _ctx.itemSelected,
onMouseenter: _ctx.hoverItem,
onClick: vue.withModifiers(_ctx.selectOptionClick, ["stop"])
}, [
vue.renderSlot(_ctx.$slots, "default", {}, () => [
vue.createElementVNode("span", null, vue.toDisplayString(_ctx.currentLabel), 1)
])
], 42, ["id", "aria-disabled", "aria-selected", "onMouseenter", "onClick"])), [
[vue.vShow, _ctx.visible]
]);
}
var Option = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["render", _sfc_render$4], ["__file", "option.vue"]]);
const _sfc_main$n = vue.defineComponent({
name: "ElSelectDropdown",
componentName: "ElSelectDropdown",
setup() {
const select = vue.inject(selectKey);
const ns = useNamespace("select");
const popperClass = vue.computed(() => select.props.popperClass);
const isMultiple = vue.computed(() => select.props.multiple);
const isFitInputWidth = vue.computed(() => select.props.fitInputWidth);
const minWidth = vue.ref("");
function updateMinWidth() {
var _a2;
minWidth.value = `${(_a2 = select.selectRef) == null ? void 0 : _a2.offsetWidth}px`;
}
vue.onMounted(() => {
updateMinWidth();
useResizeObserver(select.selectRef, updateMinWidth);
});
return {
ns,
minWidth,
popperClass,
isMultiple,
isFitInputWidth
};
}
});
function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
return vue.openBlock(), vue.createElementBlock("div", {
class: vue.normalizeClass([_ctx.ns.b("dropdown"), _ctx.ns.is("multiple", _ctx.isMultiple), _ctx.popperClass]),
style: vue.normalizeStyle({ [_ctx.isFitInputWidth ? "width" : "minWidth"]: _ctx.minWidth })
}, [
_ctx.$slots.header ? (vue.openBlock(), vue.createElementBlock("div", {
key: 0,
class: vue.normalizeClass(_ctx.ns.be("dropdown", "header"))
}, [
vue.renderSlot(_ctx.$slots, "header")
], 2)) : vue.createCommentVNode("v-if", true),
vue.renderSlot(_ctx.$slots, "default"),
_ctx.$slots.footer ? (vue.openBlock(), vue.createElementBlock("div", {
key: 1,
class: vue.normalizeClass(_ctx.ns.be("dropdown", "footer"))
}, [
vue.renderSlot(_ctx.$slots, "footer")
], 2)) : vue.createCommentVNode("v-if", true)
], 6);
}
var ElSelectMenu = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["render", _sfc_render$3], ["__file", "select-dropdown.vue"]]);
const MINIMUM_INPUT_WIDTH = 11;
const useSelect = (props, emit) => {
const { t } = useLocale();
const contentId = useId();
const nsSelect = useNamespace("select");
const nsInput = useNamespace("input");
const states = vue.reactive({
inputValue: "",
options: /* @__PURE__ */ new Map(),
cachedOptions: /* @__PURE__ */ new Map(),
disabledOptions: /* @__PURE__ */ new Map(),
optionValues: [],
selected: [],
selectionWidth: 0,
calculatorWidth: 0,
collapseItemWidth: 0,
selectedLabel: "",
hoveringIndex: -1,
previousQuery: null,
inputHovering: false,
menuVisibleOnFocus: false,
isBeforeHide: false
});
const selectRef = vue.ref(null);
const selectionRef = vue.ref(null);
const tooltipRef = vue.ref(null);
const tagTooltipRef = vue.ref(null);
const inputRef = vue.ref(null);
const calculatorRef = vue.ref(null);
const prefixRef = vue.ref(null);
const suffixRef = vue.ref(null);
const menuRef = vue.ref(null);
const tagMenuRef = vue.ref(null);
const collapseItemRef = vue.ref(null);
const scrollbarRef = vue.ref(null);
const {
isComposing,
handleCompositionStart,
handleCompositionUpdate,
handleCompositionEnd
} = useComposition({
afterComposition: (e) => onInput(e)
});
const { wrapperRef, isFocused, handleBlur } = useFocusController(inputRef, {
beforeFocus() {
return selectDisabled.value;
},
afterFocus() {
if (props.automaticDropdown && !expanded.value) {
expanded.value = true;
states.menuVisibleOnFocus = true;
}
},
beforeBlur(event) {
var _a2, _b;
return ((_a2 = tooltipRef.value) == null ? void 0 : _a2.isFocusInsideContent(event)) || ((_b = tagTooltipRef.value) == null ? void 0 : _b.isFocusInsideContent(event));
},
afterBlur() {
expanded.value = false;
states.menuVisibleOnFocus = false;
}
});
const expanded = vue.ref(false);
const hoverOption = vue.ref();
const { form, formItem } = useFormItem();
const { inputId } = useFormItemInputId(props, {
formItemContext: formItem
});
const { valueOnClear, isEmptyValue } = useEmptyValues(props);
const selectDisabled = vue.computed(() => props.disabled || (form == null ? void 0 : form.disabled));
const hasModelValue = vue.computed(() => {
return isArray$1(props.modelValue) ? props.modelValue.length > 0 : !isEmptyValue(props.modelValue);
});
const showClose = vue.computed(() => {
return props.clearable && !selectDisabled.value && states.inputHovering && hasModelValue.value;
});
const iconComponent = vue.computed(() => props.remote && props.filterable && !props.remoteShowSuffix ? "" : props.suffixIcon);
const iconReverse = vue.computed(() => nsSelect.is("reverse", iconComponent.value && expanded.value));
const validateState = vue.computed(() => (formItem == null ? void 0 : formItem.validateState) || "");
const validateIcon = vue.computed(() => ValidateComponentsMap[validateState.value]);
const debounce$12 = vue.computed(() => props.remote ? 300 : 0);
const emptyText = vue.computed(() => {
if (props.loading) {
return props.loadingText || t("el.select.loading");
} else {
if (props.remote && !states.inputValue && states.options.size === 0)
return false;
if (props.filterable && states.inputValue && states.options.size > 0 && filteredOptionsCount.value === 0) {
return props.noMatchText || t("el.select.noMatch");
}
if (states.options.size === 0) {
return props.noDataText || t("el.select.noData");
}
}
return null;
});
const filteredOptionsCount = vue.computed(() => optionsArray.value.filter((option) => option.visible).length);
const optionsArray = vue.computed(() => {
const list = Array.from(states.options.values());
const newList = [];
states.optionValues.forEach((item) => {
const index = list.findIndex((i) => i.value === item);
if (index > -1) {
newList.push(list[index]);
}
});
return newList.length >= list.length ? newList : list;
});
const cachedOptionsArray = vue.computed(() => Array.from(states.cachedOptions.values()));
const showNewOption = vue.computed(() => {
const hasExistingOption = optionsArray.value.filter((option) => {
return !option.created;
}).some((option) => {
return option.currentLabel === states.inputValue;
});
return props.filterable && props.allowCreate && states.inputValue !== "" && !hasExistingOption;
});
const updateOptions2 = () => {
if (props.filterable && isFunction$1(props.filterMethod))
return;
if (props.filterable && props.remote && isFunction$1(props.remoteMethod))
return;
optionsArray.value.forEach((option) => {
var _a2;
(_a2 = option.updateOption) == null ? void 0 : _a2.call(option, states.inputValue);
});
};
const selectSize = useFormSize();
const collapseTagSize = vue.computed(() => ["small"].includes(selectSize.value) ? "small" : "default");
const dropdownMenuVisible = vue.computed({
get() {
return expanded.value && emptyText.value !== false;
},
set(val) {
expanded.value = val;
}
});
const shouldShowPlaceholder = vue.computed(() => {
if (props.multiple && !isUndefined(props.modelValue)) {
return castArray(props.modelValue).length === 0 && !states.inputValue;
}
const value = isArray$1(props.modelValue) ? props.modelValue[0] : props.modelValue;
return props.filterable || isUndefined(value) ? !states.inputValue : true;
});
const currentPlaceholder = vue.computed(() => {
var _a2;
const _placeholder = (_a2 = props.placeholder) != null ? _a2 : t("el.select.placeholder");
return props.multiple || !hasModelValue.value ? _placeholder : states.selectedLabel;
});
const mouseEnterEventName = vue.computed(() => isIOS ? null : "mouseenter");
vue.watch(() => props.modelValue, (val, oldVal) => {
if (props.multiple) {
if (props.filterable && !props.reserveKeyword) {
states.inputValue = "";
handleQueryChange("");
}
}
setSelected();
if (!isEqual(val, oldVal) && props.validateEvent) {
formItem == null ? void 0 : formItem.validate("change").catch((err) => debugWarn());
}
}, {
flush: "post",
deep: true
});
vue.watch(() => expanded.value, (val) => {
if (val) {
handleQueryChange(states.inputValue);
} else {
states.inputValue = "";
states.previousQuery = null;
states.isBeforeHide = true;
}
emit("visible-change", val);
});
vue.watch(() => states.options.entries(), () => {
var _a2;
if (!isClient)
return;
const inputs = ((_a2 = selectRef.value) == null ? void 0 : _a2.querySelectorAll("input")) || [];
if (!props.filterable && !props.defaultFirstOption && !isUndefined(props.modelValue) || !Array.from(inputs).includes(document.activeElement)) {
setSelected();
}
if (props.defaultFirstOption && (props.filterable || props.remote) && filteredOptionsCount.value) {
checkDefaultFirstOption();
}
}, {
flush: "post"
});
vue.watch(() => states.hoveringIndex, (val) => {
if (isNumber(val) && val > -1) {
hoverOption.value = optionsArray.value[val] || {};
} else {
hoverOption.value = {};
}
optionsArray.value.forEach((option) => {
option.hover = hoverOption.value === option;
});
});
vue.watchEffect(() => {
if (states.isBeforeHide)
return;
updateOptions2();
});
const handleQueryChange = (val) => {
if (states.previousQuery === val || isComposing.value) {
return;
}
states.previousQuery = val;
if (props.filterable && isFunction$1(props.filterMethod)) {
props.filterMethod(val);
} else if (props.filterable && props.remote && isFunction$1(props.remoteMethod)) {
props.remoteMethod(val);
}
if (props.defaultFirstOption && (props.filterable || props.remote) && filteredOptionsCount.value) {
vue.nextTick(checkDefaultFirstOption);
} else {
vue.nextTick(updateHoveringIndex);
}
};
const checkDefaultFirstOption = () => {
const optionsInDropdown = optionsArray.value.filter((n) => n.visible && !n.disabled && !n.states.groupDisabled);
const userCreatedOption = optionsInDropdown.find((n) => n.created);
const firstOriginOption = optionsInDropdown[0];
states.hoveringIndex = getValueIndex(optionsArray.value, userCreatedOption || firstOriginOption);
};
const setSelected = () => {
if (!props.multiple) {
const value = isArray$1(props.modelValue) ? props.modelValue[0] : props.modelValue;
const option = getOption(value);
states.selectedLabel = option.currentLabel;
states.selected = [option];
return;
} else {
states.selectedLabel = "";
}
const result2 = [];
if (!isUndefined(props.modelValue)) {
castArray(props.modelValue).forEach((value) => {
result2.push(getOption(value));
});
}
states.selected = result2;
};
const getOption = (value) => {
let option;
const isObjectValue = toRawType(value).toLowerCase() === "object";
const isNull2 = toRawType(value).toLowerCase() === "null";
const isUndefined2 = toRawType(value).toLowerCase() === "undefined";
for (let i = states.cachedOptions.size - 1; i >= 0; i--) {
const cachedOption = cachedOptionsArray.value[i];
const isEqualValue = isObjectValue ? get(cachedOption.value, props.valueKey) === get(value, props.valueKey) : cachedOption.value === value;
if (isEqualValue) {
option = {
value,
currentLabel: cachedOption.currentLabel,
get isDisabled() {
return cachedOption.isDisabled;
}
};
break;
}
}
if (option)
return option;
const label = isObjectValue ? value.label : !isNull2 && !isUndefined2 ? value : "";
const newOption = {
value,
currentLabel: label
};
return newOption;
};
const updateHoveringIndex = () => {
states.hoveringIndex = optionsArray.value.findIndex((item) => states.selected.some((selected) => getValueKey(selected) === getValueKey(item)));
};
const resetSelectionWidth = () => {
states.selectionWidth = selectionRef.value.getBoundingClientRect().width;
};
const resetCalculatorWidth = () => {
states.calculatorWidth = calculatorRef.value.getBoundingClientRect().width;
};
const resetCollapseItemWidth = () => {
states.collapseItemWidth = collapseItemRef.value.getBoundingClientRect().width;
};
const updateTooltip = () => {
var _a2, _b;
(_b = (_a2 = tooltipRef.value) == null ? void 0 : _a2.updatePopper) == null ? void 0 : _b.call(_a2);
};
const updateTagTooltip = () => {
var _a2, _b;
(_b = (_a2 = tagTooltipRef.value) == null ? void 0 : _a2.updatePopper) == null ? void 0 : _b.call(_a2);
};
const onInputChange = () => {
if (states.inputValue.length > 0 && !expanded.value) {
expanded.value = true;
}
handleQueryChange(states.inputValue);
};
const onInput = (event) => {
states.inputValue = event.target.value;
if (props.remote) {
debouncedOnInputChange();
} else {
return onInputChange();
}
};
const debouncedOnInputChange = debounce(() => {
onInputChange();
}, debounce$12.value);
const emitChange = (val) => {
if (!isEqual(props.modelValue, val)) {
emit(CHANGE_EVENT, val);
}
};
const getLastNotDisabledIndex = (value) => findLastIndex(value, (it2) => !states.disabledOptions.has(it2));
const deletePrevTag = (e) => {
if (!props.multiple)
return;
if (e.code === EVENT_CODE.delete)
return;
if (e.target.value.length <= 0) {
const value = castArray(props.modelValue).slice();
const lastNotDisabledIndex = getLastNotDisabledIndex(value);
if (lastNotDisabledIndex < 0)
return;
const removeTagValue = value[lastNotDisabledIndex];
value.splice(lastNotDisabledIndex, 1);
emit(UPDATE_MODEL_EVENT, value);
emitChange(value);
emit("remove-tag", removeTagValue);
}
};
const deleteTag = (event, tag) => {
const index = states.selected.indexOf(tag);
if (index > -1 && !selectDisabled.value) {
const value = castArray(props.modelValue).slice();
value.splice(index, 1);
emit(UPDATE_MODEL_EVENT, value);
emitChange(value);
emit("remove-tag", tag.value);
}
event.stopPropagation();
focus();
};
const deleteSelected = (event) => {
event.stopPropagation();
const value = props.multiple ? [] : valueOnClear.value;
if (props.multiple) {
for (const item of states.selected) {
if (item.isDisabled)
value.push(item.value);
}
}
emit(UPDATE_MODEL_EVENT, value);
emitChange(value);
states.hoveringIndex = -1;
expanded.value = false;
emit("clear");
focus();
};
const handleOptionSelect = (option) => {
var _a2;
if (props.multiple) {
const value = castArray((_a2 = props.modelValue) != null ? _a2 : []).slice();
const optionIndex = getValueIndex(value, option.value);
if (optionIndex > -1) {
value.splice(optionIndex, 1);
} else if (props.multipleLimit <= 0 || value.length < props.multipleLimit) {
value.push(option.value);
}
emit(UPDATE_MODEL_EVENT, value);
emitChange(value);
if (option.created) {
handleQueryChange("");
}
if (props.filterable && !props.reserveKeyword) {
states.inputValue = "";
}
} else {
emit(UPDATE_MODEL_EVENT, option.value);
emitChange(option.value);
expanded.value = false;
}
focus();
if (expanded.value)
return;
vue.nextTick(() => {
scrollToOption(option);
});
};
const getValueIndex = (arr = [], value) => {
if (!isObject$1(value))
return arr.indexOf(value);
const valueKey = props.valueKey;
let index = -1;
arr.some((item, i) => {
if (vue.toRaw(get(item, valueKey)) === get(value, valueKey)) {
index = i;
return true;
}
return false;
});
return index;
};
const scrollToOption = (option) => {
var _a2, _b, _c, _d, _e;
const targetOption = isArray$1(option) ? option[0] : option;
let target = null;
if (targetOption == null ? void 0 : targetOption.value) {
const options = optionsArray.value.filter((item) => item.value === targetOption.value);
if (options.length > 0) {
target = options[0].$el;
}
}
if (tooltipRef.value && target) {
const menu = (_d = (_c = (_b = (_a2 = tooltipRef.value) == null ? void 0 : _a2.popperRef) == null ? void 0 : _b.contentRef) == null ? void 0 : _c.querySelector) == null ? void 0 : _d.call(_c, `.${nsSelect.be("dropdown", "wrap")}`);
if (menu) {
scrollIntoView(menu, target);
}
}
(_e = scrollbarRef.value) == null ? void 0 : _e.handleScroll();
};
const onOptionCreate = (vm) => {
states.options.set(vm.value, vm);
states.cachedOptions.set(vm.value, vm);
vm.disabled && states.disabledOptions.set(vm.value, vm);
};
const onOptionDestroy = (key, vm) => {
if (states.options.get(key) === vm) {
states.options.delete(key);
}
};
const popperRef = vue.computed(() => {
var _a2, _b;
return (_b = (_a2 = tooltipRef.value) == null ? void 0 : _a2.popperRef) == null ? void 0 : _b.contentRef;
});
const handleMenuEnter = () => {
states.isBeforeHide = false;
vue.nextTick(() => scrollToOption(states.selected));
};
const focus = () => {
var _a2;
(_a2 = inputRef.value) == null ? void 0 : _a2.focus();
};
const blur = () => {
var _a2;
if (expanded.value) {
expanded.value = false;
vue.nextTick(() => {
var _a22;
return (_a22 = inputRef.value) == null ? void 0 : _a22.blur();
});
return;
}
(_a2 = inputRef.value) == null ? void 0 : _a2.blur();
};
const handleClearClick = (event) => {
deleteSelected(event);
};
const handleClickOutside = (event) => {
expanded.value = false;
if (isFocused.value) {
const _event2 = new FocusEvent("focus", event);
vue.nextTick(() => handleBlur(_event2));
}
};
const handleEsc = () => {
if (states.inputValue.length > 0) {
states.inputValue = "";
} else {
expanded.value = false;
}
};
const toggleMenu = () => {
if (selectDisabled.value)
return;
if (isIOS)
states.inputHovering = true;
if (states.menuVisibleOnFocus) {
states.menuVisibleOnFocus = false;
} else {
expanded.value = !expanded.value;
}
};
const selectOption = () => {
if (!expanded.value) {
toggleMenu();
} else {
if (optionsArray.value[states.hoveringIndex]) {
handleOptionSelect(optionsArray.value[states.hoveringIndex]);
}
}
};
const getValueKey = (item) => {
return isObject$1(item.value) ? get(item.value, props.valueKey) : item.value;
};
const optionsAllDisabled = vue.computed(() => optionsArray.value.filter((option) => option.visible).every((option) => option.disabled));
const showTagList = vue.computed(() => {
if (!props.multiple) {
return [];
}
return props.collapseTags ? states.selected.slice(0, props.maxCollapseTags) : states.selected;
});
const collapseTagList = vue.computed(() => {
if (!props.multiple) {
return [];
}
return props.collapseTags ? states.selected.slice(props.maxCollapseTags) : [];
});
const navigateOptions = (direction) => {
if (!expanded.value) {
expanded.value = true;
return;
}
if (states.options.size === 0 || states.filteredOptionsCount === 0 || isComposing.value)
return;
if (!optionsAllDisabled.value) {
if (direction === "next") {
states.hoveringIndex++;
if (states.hoveringIndex === states.options.size) {
states.hoveringIndex = 0;
}
} else if (direction === "prev") {
states.hoveringIndex--;
if (states.hoveringIndex < 0) {
states.hoveringIndex = states.options.size - 1;
}
}
const option = optionsArray.value[states.hoveringIndex];
if (option.disabled === true || option.states.groupDisabled === true || !option.visible) {
navigateOptions(direction);
}
vue.nextTick(() => scrollToOption(hoverOption.value));
}
};
const getGapWidth = () => {
if (!selectionRef.value)
return 0;
const style = window.getComputedStyle(selectionRef.value);
return Number.parseFloat(style.gap || "6px");
};
const tagStyle = vue.computed(() => {
const gapWidth = getGapWidth();
const maxWidth = collapseItemRef.value && props.maxCollapseTags === 1 ? states.selectionWidth - states.collapseItemWidth - gapWidth : states.selectionWidth;
return { maxWidth: `${maxWidth}px` };
});
const collapseTagStyle = vue.computed(() => {
return { maxWidth: `${states.selectionWidth}px` };
});
const inputStyle = vue.computed(() => ({
width: `${Math.max(states.calculatorWidth, MINIMUM_INPUT_WIDTH)}px`
}));
useResizeObserver(selectionRef, resetSelectionWidth);
useResizeObserver(calculatorRef, resetCalculatorWidth);
useResizeObserver(menuRef, updateTooltip);
useResizeObserver(wrapperRef, updateTooltip);
useResizeObserver(tagMenuRef, updateTagTooltip);
useResizeObserver(collapseItemRef, resetCollapseItemWidth);
vue.onMounted(() => {
setSelected();
});
return {
inputId,
contentId,
nsSelect,
nsInput,
states,
isFocused,
expanded,
optionsArray,
hoverOption,
selectSize,
filteredOptionsCount,
resetCalculatorWidth,
updateTooltip,
updateTagTooltip,
debouncedOnInputChange,
onInput,
deletePrevTag,
deleteTag,
deleteSelected,
handleOptionSelect,
scrollToOption,
hasModelValue,
shouldShowPlaceholder,
currentPlaceholder,
mouseEnterEventName,
showClose,
iconComponent,
iconReverse,
validateState,
validateIcon,
showNewOption,
updateOptions: updateOptions2,
collapseTagSize,
setSelected,
selectDisabled,
emptyText,
handleCompositionStart,
handleCompositionUpdate,
handleCompositionEnd,
onOptionCreate,
onOptionDestroy,
handleMenuEnter,
focus,
blur,
handleClearClick,
handleClickOutside,
handleEsc,
toggleMenu,
selectOption,
getValueKey,
navigateOptions,
dropdownMenuVisible,
showTagList,
collapseTagList,
tagStyle,
collapseTagStyle,
inputStyle,
popperRef,
inputRef,
tooltipRef,
tagTooltipRef,
calculatorRef,
prefixRef,
suffixRef,
selectRef,
wrapperRef,
selectionRef,
scrollbarRef,
menuRef,
tagMenuRef,
collapseItemRef
};
};
var ElOptions = vue.defineComponent({
name: "ElOptions",
setup(_2, { slots }) {
const select = vue.inject(selectKey);
let cachedValueList = [];
return () => {
var _a2, _b;
const children = (_a2 = slots.default) == null ? void 0 : _a2.call(slots);
const valueList = [];
function filterOptions(children2) {
if (!isArray$1(children2))
return;
children2.forEach((item) => {
var _a22, _b2, _c, _d;
const name = (_a22 = (item == null ? void 0 : item.type) || {}) == null ? void 0 : _a22.name;
if (name === "ElOptionGroup") {
filterOptions(!isString(item.children) && !isArray$1(item.children) && isFunction$1((_b2 = item.children) == null ? void 0 : _b2.default) ? (_c = item.children) == null ? void 0 : _c.default() : item.children);
} else if (name === "ElOption") {
valueList.push((_d = item.props) == null ? void 0 : _d.value);
} else if (isArray$1(item.children)) {
filterOptions(item.children);
}
});
}
if (children.length) {
filterOptions((_b = children[0]) == null ? void 0 : _b.children);
}
if (!isEqual(valueList, cachedValueList)) {
cachedValueList = valueList;
if (select) {
select.states.optionValues = valueList;
}
}
return children;
};
}
});
const SelectProps = buildProps({
name: String,
id: String,
modelValue: {
type: [Array, String, Number, Boolean, Object],
default: void 0
},
autocomplete: {
type: String,
default: "off"
},
automaticDropdown: Boolean,
size: useSizeProp,
effect: {
type: definePropType(String),
default: "light"
},
disabled: Boolean,
clearable: Boolean,
filterable: Boolean,
allowCreate: Boolean,
loading: Boolean,
popperClass: {
type: String,
default: ""
},
popperOptions: {
type: definePropType(Object),
default: () => ({})
},
remote: Boolean,
loadingText: String,
noMatchText: String,
noDataText: String,
remoteMethod: Function,
filterMethod: Function,
multiple: Boolean,
multipleLimit: {
type: Number,
default: 0
},
placeholder: {
type: String
},
defaultFirstOption: Boolean,
reserveKeyword: {
type: Boolean,
default: true
},
valueKey: {
type: String,
default: "value"
},
collapseTags: Boolean,
collapseTagsTooltip: Boolean,
maxCollapseTags: {
type: Number,
default: 1
},
teleported: useTooltipContentProps.teleported,
persistent: {
type: Boolean,
default: true
},
clearIcon: {
type: iconPropType,
default: circle_close_default
},
fitInputWidth: Boolean,
suffixIcon: {
type: iconPropType,
default: arrow_down_default
},
tagType: { ...tagProps.type, default: "info" },
tagEffect: { ...tagProps.effect, default: "light" },
validateEvent: {
type: Boolean,
default: true
},
remoteShowSuffix: Boolean,
placement: {
type: definePropType(String),
values: Ee,
default: "bottom-start"
},
fallbackPlacements: {
type: definePropType(Array),
default: ["bottom-start", "top-start", "right", "left"]
},
appendTo: String,
...useEmptyValuesProps,
...useAriaProps(["ariaLabel"])
});
const COMPONENT_NAME$4 = "ElSelect";
const _sfc_main$m = vue.defineComponent({
name: COMPONENT_NAME$4,
componentName: COMPONENT_NAME$4,
components: {
ElSelectMenu,
ElOption: Option,
ElOptions,
ElTag,
ElScrollbar,
ElTooltip,
ElIcon
},
directives: { ClickOutside },
props: SelectProps,
emits: [
UPDATE_MODEL_EVENT,
CHANGE_EVENT,
"remove-tag",
"clear",
"visible-change",
"focus",
"blur"
],
setup(props, { emit }) {
const modelValue = vue.computed(() => {
const { modelValue: rawModelValue, multiple } = props;
const fallback = multiple ? [] : void 0;
if (isArray$1(rawModelValue)) {
return multiple ? rawModelValue : fallback;
}
return multiple ? fallback : rawModelValue;
});
const _props = vue.reactive({
...vue.toRefs(props),
modelValue
});
const API = useSelect(_props, emit);
vue.provide(selectKey, vue.reactive({
props: _props,
states: API.states,
optionsArray: API.optionsArray,
handleOptionSelect: API.handleOptionSelect,
onOptionCreate: API.onOptionCreate,
onOptionDestroy: API.onOptionDestroy,
selectRef: API.selectRef,
setSelected: API.setSelected
}));
const selectedLabel = vue.computed(() => {
if (!props.multiple) {
return API.states.selectedLabel;
}
return API.states.selected.map((i) => i.currentLabel);
});
return {
...API,
modelValue,
selectedLabel
};
}
});
function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
const _component_el_tag = vue.resolveComponent("el-tag");
const _component_el_tooltip = vue.resolveComponent("el-tooltip");
const _component_el_icon = vue.resolveComponent("el-icon");
const _component_el_option = vue.resolveComponent("el-option");
const _component_el_options = vue.resolveComponent("el-options");
const _component_el_scrollbar = vue.resolveComponent("el-scrollbar");
const _component_el_select_menu = vue.resolveComponent("el-select-menu");
const _directive_click_outside = vue.resolveDirective("click-outside");
return vue.withDirectives((vue.openBlock(), vue.createElementBlock("div", {
ref: "selectRef",
class: vue.normalizeClass([_ctx.nsSelect.b(), _ctx.nsSelect.m(_ctx.selectSize)]),
[vue.toHandlerKey(_ctx.mouseEnterEventName)]: ($event) => _ctx.states.inputHovering = true,
onMouseleave: ($event) => _ctx.states.inputHovering = false
}, [
vue.createVNode(_component_el_tooltip, {
ref: "tooltipRef",
visible: _ctx.dropdownMenuVisible,
placement: _ctx.placement,
teleported: _ctx.teleported,
"popper-class": [_ctx.nsSelect.e("popper"), _ctx.popperClass],
"popper-options": _ctx.popperOptions,
"fallback-placements": _ctx.fallbackPlacements,
effect: _ctx.effect,
pure: "",
trigger: "click",
transition: `${_ctx.nsSelect.namespace.value}-zoom-in-top`,
"stop-popper-mouse-event": false,
"gpu-acceleration": false,
persistent: _ctx.persistent,
"append-to": _ctx.appendTo,
onBeforeShow: _ctx.handleMenuEnter,
onHide: ($event) => _ctx.states.isBeforeHide = false
}, {
default: vue.withCtx(() => {
var _a2;
return [
vue.createElementVNode("div", {
ref: "wrapperRef",
class: vue.normalizeClass([
_ctx.nsSelect.e("wrapper"),
_ctx.nsSelect.is("focused", _ctx.isFocused),
_ctx.nsSelect.is("hovering", _ctx.states.inputHovering),
_ctx.nsSelect.is("filterable", _ctx.filterable),
_ctx.nsSelect.is("disabled", _ctx.selectDisabled)
]),
onClick: vue.withModifiers(_ctx.toggleMenu, ["prevent"])
}, [
_ctx.$slots.prefix ? (vue.openBlock(), vue.createElementBlock("div", {
key: 0,
ref: "prefixRef",
class: vue.normalizeClass(_ctx.nsSelect.e("prefix"))
}, [
vue.renderSlot(_ctx.$slots, "prefix")
], 2)) : vue.createCommentVNode("v-if", true),
vue.createElementVNode("div", {
ref: "selectionRef",
class: vue.normalizeClass([
_ctx.nsSelect.e("selection"),
_ctx.nsSelect.is("near", _ctx.multiple && !_ctx.$slots.prefix && !!_ctx.states.selected.length)
])
}, [
_ctx.multiple ? vue.renderSlot(_ctx.$slots, "tag", { key: 0 }, () => [
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.showTagList, (item) => {
return vue.openBlock(), vue.createElementBlock("div", {
key: _ctx.getValueKey(item),
class: vue.normalizeClass(_ctx.nsSelect.e("selected-item"))
}, [
vue.createVNode(_component_el_tag, {
closable: !_ctx.selectDisabled && !item.isDisabled,
size: _ctx.collapseTagSize,
type: _ctx.tagType,
effect: _ctx.tagEffect,
"disable-transitions": "",
style: vue.normalizeStyle(_ctx.tagStyle),
onClose: ($event) => _ctx.deleteTag($event, item)
}, {
default: vue.withCtx(() => [
vue.createElementVNode("span", {
class: vue.normalizeClass(_ctx.nsSelect.e("tags-text"))
}, [
vue.renderSlot(_ctx.$slots, "label", {
label: item.currentLabel,
value: item.value
}, () => [
vue.createTextVNode(vue.toDisplayString(item.currentLabel), 1)
])
], 2)
]),
_: 2
}, 1032, ["closable", "size", "type", "effect", "style", "onClose"])
], 2);
}), 128)),
_ctx.collapseTags && _ctx.states.selected.length > _ctx.maxCollapseTags ? (vue.openBlock(), vue.createBlock(_component_el_tooltip, {
key: 0,
ref: "tagTooltipRef",
disabled: _ctx.dropdownMenuVisible || !_ctx.collapseTagsTooltip,
"fallback-placements": ["bottom", "top", "right", "left"],
effect: _ctx.effect,
placement: "bottom",
teleported: _ctx.teleported
}, {
default: vue.withCtx(() => [
vue.createElementVNode("div", {
ref: "collapseItemRef",
class: vue.normalizeClass(_ctx.nsSelect.e("selected-item"))
}, [
vue.createVNode(_component_el_tag, {
closable: false,
size: _ctx.collapseTagSize,
type: _ctx.tagType,
effect: _ctx.tagEffect,
"disable-transitions": "",
style: vue.normalizeStyle(_ctx.collapseTagStyle)
}, {
default: vue.withCtx(() => [
vue.createElementVNode("span", {
class: vue.normalizeClass(_ctx.nsSelect.e("tags-text"))
}, " + " + vue.toDisplayString(_ctx.states.selected.length - _ctx.maxCollapseTags), 3)
]),
_: 1
}, 8, ["size", "type", "effect", "style"])
], 2)
]),
content: vue.withCtx(() => [
vue.createElementVNode("div", {
ref: "tagMenuRef",
class: vue.normalizeClass(_ctx.nsSelect.e("selection"))
}, [
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.collapseTagList, (item) => {
return vue.openBlock(), vue.createElementBlock("div", {
key: _ctx.getValueKey(item),
class: vue.normalizeClass(_ctx.nsSelect.e("selected-item"))
}, [
vue.createVNode(_component_el_tag, {
class: "in-tooltip",
closable: !_ctx.selectDisabled && !item.isDisabled,
size: _ctx.collapseTagSize,
type: _ctx.tagType,
effect: _ctx.tagEffect,
"disable-transitions": "",
onClose: ($event) => _ctx.deleteTag($event, item)
}, {
default: vue.withCtx(() => [
vue.createElementVNode("span", {
class: vue.normalizeClass(_ctx.nsSelect.e("tags-text"))
}, [
vue.renderSlot(_ctx.$slots, "label", {
label: item.currentLabel,
value: item.value
}, () => [
vue.createTextVNode(vue.toDisplayString(item.currentLabel), 1)
])
], 2)
]),
_: 2
}, 1032, ["closable", "size", "type", "effect", "onClose"])
], 2);
}), 128))
], 2)
]),
_: 3
}, 8, ["disabled", "effect", "teleported"])) : vue.createCommentVNode("v-if", true)
]) : vue.createCommentVNode("v-if", true),
!_ctx.selectDisabled ? (vue.openBlock(), vue.createElementBlock("div", {
key: 1,
class: vue.normalizeClass([
_ctx.nsSelect.e("selected-item"),
_ctx.nsSelect.e("input-wrapper"),
_ctx.nsSelect.is("hidden", !_ctx.filterable)
])
}, [
vue.withDirectives(vue.createElementVNode("input", {
id: _ctx.inputId,
ref: "inputRef",
"onUpdate:modelValue": ($event) => _ctx.states.inputValue = $event,
type: "text",
name: _ctx.name,
class: vue.normalizeClass([_ctx.nsSelect.e("input"), _ctx.nsSelect.is(_ctx.selectSize)]),
disabled: _ctx.selectDisabled,
autocomplete: _ctx.autocomplete,
style: vue.normalizeStyle(_ctx.inputStyle),
role: "combobox",
readonly: !_ctx.filterable,
spellcheck: "false",
"aria-activedescendant": ((_a2 = _ctx.hoverOption) == null ? void 0 : _a2.id) || "",
"aria-controls": _ctx.contentId,
"aria-expanded": _ctx.dropdownMenuVisible,
"aria-label": _ctx.ariaLabel,
"aria-autocomplete": "none",
"aria-haspopup": "listbox",
onKeydown: [
vue.withKeys(vue.withModifiers(($event) => _ctx.navigateOptions("next"), ["stop", "prevent"]), ["down"]),
vue.withKeys(vue.withModifiers(($event) => _ctx.navigateOptions("prev"), ["stop", "prevent"]), ["up"]),
vue.withKeys(vue.withModifiers(_ctx.handleEsc, ["stop", "prevent"]), ["esc"]),
vue.withKeys(vue.withModifiers(_ctx.selectOption, ["stop", "prevent"]), ["enter"]),
vue.withKeys(vue.withModifiers(_ctx.deletePrevTag, ["stop"]), ["delete"])
],
onCompositionstart: _ctx.handleCompositionStart,
onCompositionupdate: _ctx.handleCompositionUpdate,
onCompositionend: _ctx.handleCompositionEnd,
onInput: _ctx.onInput,
onClick: vue.withModifiers(_ctx.toggleMenu, ["stop"])
}, null, 46, ["id", "onUpdate:modelValue", "name", "disabled", "autocomplete", "readonly", "aria-activedescendant", "aria-controls", "aria-expanded", "aria-label", "onKeydown", "onCompositionstart", "onCompositionupdate", "onCompositionend", "onInput", "onClick"]), [
[vue.vModelText, _ctx.states.inputValue]
]),
_ctx.filterable ? (vue.openBlock(), vue.createElementBlock("span", {
key: 0,
ref: "calculatorRef",
"aria-hidden": "true",
class: vue.normalizeClass(_ctx.nsSelect.e("input-calculator")),
textContent: vue.toDisplayString(_ctx.states.inputValue)
}, null, 10, ["textContent"])) : vue.createCommentVNode("v-if", true)
], 2)) : vue.createCommentVNode("v-if", true),
_ctx.shouldShowPlaceholder ? (vue.openBlock(), vue.createElementBlock("div", {
key: 2,
class: vue.normalizeClass([
_ctx.nsSelect.e("selected-item"),
_ctx.nsSelect.e("placeholder"),
_ctx.nsSelect.is("transparent", !_ctx.hasModelValue || _ctx.expanded && !_ctx.states.inputValue)
])
}, [
_ctx.hasModelValue ? vue.renderSlot(_ctx.$slots, "label", {
key: 0,
label: _ctx.currentPlaceholder,
value: _ctx.modelValue
}, () => [
vue.createElementVNode("span", null, vue.toDisplayString(_ctx.currentPlaceholder), 1)
]) : (vue.openBlock(), vue.createElementBlock("span", { key: 1 }, vue.toDisplayString(_ctx.currentPlaceholder), 1))
], 2)) : vue.createCommentVNode("v-if", true)
], 2),
vue.createElementVNode("div", {
ref: "suffixRef",
class: vue.normalizeClass(_ctx.nsSelect.e("suffix"))
}, [
_ctx.iconComponent && !_ctx.showClose ? (vue.openBlock(), vue.createBlock(_component_el_icon, {
key: 0,
class: vue.normalizeClass([_ctx.nsSelect.e("caret"), _ctx.nsSelect.e("icon"), _ctx.iconReverse])
}, {
default: vue.withCtx(() => [
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.iconComponent)))
]),
_: 1
}, 8, ["class"])) : vue.createCommentVNode("v-if", true),
_ctx.showClose && _ctx.clearIcon ? (vue.openBlock(), vue.createBlock(_component_el_icon, {
key: 1,
class: vue.normalizeClass([
_ctx.nsSelect.e("caret"),
_ctx.nsSelect.e("icon"),
_ctx.nsSelect.e("clear")
]),
onClick: _ctx.handleClearClick
}, {
default: vue.withCtx(() => [
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.clearIcon)))
]),
_: 1
}, 8, ["class", "onClick"])) : vue.createCommentVNode("v-if", true),
_ctx.validateState && _ctx.validateIcon ? (vue.openBlock(), vue.createBlock(_component_el_icon, {
key: 2,
class: vue.normalizeClass([_ctx.nsInput.e("icon"), _ctx.nsInput.e("validateIcon")])
}, {
default: vue.withCtx(() => [
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.validateIcon)))
]),
_: 1
}, 8, ["class"])) : vue.createCommentVNode("v-if", true)
], 2)
], 10, ["onClick"])
];
}),
content: vue.withCtx(() => [
vue.createVNode(_component_el_select_menu, { ref: "menuRef" }, {
default: vue.withCtx(() => [
_ctx.$slots.header ? (vue.openBlock(), vue.createElementBlock("div", {
key: 0,
class: vue.normalizeClass(_ctx.nsSelect.be("dropdown", "header")),
onClick: vue.withModifiers(() => {
}, ["stop"])
}, [
vue.renderSlot(_ctx.$slots, "header")
], 10, ["onClick"])) : vue.createCommentVNode("v-if", true),
vue.withDirectives(vue.createVNode(_component_el_scrollbar, {
id: _ctx.contentId,
ref: "scrollbarRef",
tag: "ul",
"wrap-class": _ctx.nsSelect.be("dropdown", "wrap"),
"view-class": _ctx.nsSelect.be("dropdown", "list"),
class: vue.normalizeClass([_ctx.nsSelect.is("empty", _ctx.filteredOptionsCount === 0)]),
role: "listbox",
"aria-label": _ctx.ariaLabel,
"aria-orientation": "vertical"
}, {
default: vue.withCtx(() => [
_ctx.showNewOption ? (vue.openBlock(), vue.createBlock(_component_el_option, {
key: 0,
value: _ctx.states.inputValue,
created: true
}, null, 8, ["value"])) : vue.createCommentVNode("v-if", true),
vue.createVNode(_component_el_options, null, {
default: vue.withCtx(() => [
vue.renderSlot(_ctx.$slots, "default")
]),
_: 3
})
]),
_: 3
}, 8, ["id", "wrap-class", "view-class", "class", "aria-label"]), [
[vue.vShow, _ctx.states.options.size > 0 && !_ctx.loading]
]),
_ctx.$slots.loading && _ctx.loading ? (vue.openBlock(), vue.createElementBlock("div", {
key: 1,
class: vue.normalizeClass(_ctx.nsSelect.be("dropdown", "loading"))
}, [
vue.renderSlot(_ctx.$slots, "loading")
], 2)) : _ctx.loading || _ctx.filteredOptionsCount === 0 ? (vue.openBlock(), vue.createElementBlock("div", {
key: 2,
class: vue.normalizeClass(_ctx.nsSelect.be("dropdown", "empty"))
}, [
vue.renderSlot(_ctx.$slots, "empty", {}, () => [
vue.createElementVNode("span", null, vue.toDisplayString(_ctx.emptyText), 1)
])
], 2)) : vue.createCommentVNode("v-if", true),
_ctx.$slots.footer ? (vue.openBlock(), vue.createElementBlock("div", {
key: 3,
class: vue.normalizeClass(_ctx.nsSelect.be("dropdown", "footer")),
onClick: vue.withModifiers(() => {
}, ["stop"])
}, [
vue.renderSlot(_ctx.$slots, "footer")
], 10, ["onClick"])) : vue.createCommentVNode("v-if", true)
]),
_: 3
}, 512)
]),
_: 3
}, 8, ["visible", "placement", "teleported", "popper-class", "popper-options", "fallback-placements", "effect", "transition", "persistent", "append-to", "onBeforeShow", "onHide"])
], 16, ["onMouseleave"])), [
[_directive_click_outside, _ctx.handleClickOutside, _ctx.popperRef]
]);
}
var Select = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["render", _sfc_render$2], ["__file", "select.vue"]]);
const _sfc_main$l = vue.defineComponent({
name: "ElOptionGroup",
componentName: "ElOptionGroup",
props: {
label: String,
disabled: Boolean
},
setup(props) {
const ns = useNamespace("select");
const groupRef = vue.ref(null);
const instance = vue.getCurrentInstance();
const children = vue.ref([]);
vue.provide(selectGroupKey, vue.reactive({
...vue.toRefs(props)
}));
const visible = vue.computed(() => children.value.some((option) => option.visible === true));
const isOption = (node) => {
var _a2, _b;
return ((_a2 = node.type) == null ? void 0 : _a2.name) === "ElOption" && !!((_b = node.component) == null ? void 0 : _b.proxy);
};
const flattedChildren2 = (node) => {
const Nodes = castArray(node);
const children2 = [];
Nodes.forEach((child) => {
var _a2, _b;
if (isOption(child)) {
children2.push(child.component.proxy);
} else if ((_a2 = child.children) == null ? void 0 : _a2.length) {
children2.push(...flattedChildren2(child.children));
} else if ((_b = child.component) == null ? void 0 : _b.subTree) {
children2.push(...flattedChildren2(child.component.subTree));
}
});
return children2;
};
const updateChildren = () => {
children.value = flattedChildren2(instance.subTree);
};
vue.onMounted(() => {
updateChildren();
});
useMutationObserver(groupRef, updateChildren, {
attributes: true,
subtree: true,
childList: true
});
return {
groupRef,
visible,
ns
};
}
});
function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
return vue.withDirectives((vue.openBlock(), vue.createElementBlock("ul", {
ref: "groupRef",
class: vue.normalizeClass(_ctx.ns.be("group", "wrap"))
}, [
vue.createElementVNode("li", {
class: vue.normalizeClass(_ctx.ns.be("group", "title"))
}, vue.toDisplayString(_ctx.label), 3),
vue.createElementVNode("li", null, [
vue.createElementVNode("ul", {
class: vue.normalizeClass(_ctx.ns.b("group"))
}, [
vue.renderSlot(_ctx.$slots, "default")
], 2)
])
], 2)), [
[vue.vShow, _ctx.visible]
]);
}
var OptionGroup = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["render", _sfc_render$1], ["__file", "option-group.vue"]]);
const ElSelect = withInstall(Select, {
Option,
OptionGroup
});
const ElOption = withNoopInstall(Option);
withNoopInstall(OptionGroup);
const progressProps = buildProps({
type: {
type: String,
default: "line",
values: ["line", "circle", "dashboard"]
},
percentage: {
type: Number,
default: 0,
validator: (val) => val >= 0 && val <= 100
},
status: {
type: String,
default: "",
values: ["", "success", "exception", "warning"]
},
indeterminate: Boolean,
duration: {
type: Number,
default: 3
},
strokeWidth: {
type: Number,
default: 6
},
strokeLinecap: {
type: definePropType(String),
default: "round"
},
textInside: Boolean,
width: {
type: Number,
default: 126
},
showText: {
type: Boolean,
default: true
},
color: {
type: definePropType([
String,
Array,
Function
]),
default: ""
},
striped: Boolean,
stripedFlow: Boolean,
format: {
type: definePropType(Function),
default: (percentage) => `${percentage}%`
}
});
const __default__$8 = vue.defineComponent({
name: "ElProgress"
});
const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
...__default__$8,
props: progressProps,
setup(__props) {
const props = __props;
const STATUS_COLOR_MAP = {
success: "#13ce66",
exception: "#ff4949",
warning: "#e6a23c",
default: "#20a0ff"
};
const ns = useNamespace("progress");
const barStyle = vue.computed(() => {
const barStyle2 = {
width: `${props.percentage}%`,
animationDuration: `${props.duration}s`
};
const color = getCurrentColor(props.percentage);
if (color.includes("gradient")) {
barStyle2.background = color;
} else {
barStyle2.backgroundColor = color;
}
return barStyle2;
});
const relativeStrokeWidth = vue.computed(() => (props.strokeWidth / props.width * 100).toFixed(1));
const radius = vue.computed(() => {
if (["circle", "dashboard"].includes(props.type)) {
return Number.parseInt(`${50 - Number.parseFloat(relativeStrokeWidth.value) / 2}`, 10);
}
return 0;
});
const trackPath = vue.computed(() => {
const r = radius.value;
const isDashboard = props.type === "dashboard";
return `
M 50 50
m 0 ${isDashboard ? "" : "-"}${r}
a ${r} ${r} 0 1 1 0 ${isDashboard ? "-" : ""}${r * 2}
a ${r} ${r} 0 1 1 0 ${isDashboard ? "" : "-"}${r * 2}
`;
});
const perimeter = vue.computed(() => 2 * Math.PI * radius.value);
const rate = vue.computed(() => props.type === "dashboard" ? 0.75 : 1);
const strokeDashoffset = vue.computed(() => {
const offset = -1 * perimeter.value * (1 - rate.value) / 2;
return `${offset}px`;
});
const trailPathStyle = vue.computed(() => ({
strokeDasharray: `${perimeter.value * rate.value}px, ${perimeter.value}px`,
strokeDashoffset: strokeDashoffset.value
}));
const circlePathStyle = vue.computed(() => ({
strokeDasharray: `${perimeter.value * rate.value * (props.percentage / 100)}px, ${perimeter.value}px`,
strokeDashoffset: strokeDashoffset.value,
transition: "stroke-dasharray 0.6s ease 0s, stroke 0.6s ease, opacity ease 0.6s"
}));
const stroke = vue.computed(() => {
let ret;
if (props.color) {
ret = getCurrentColor(props.percentage);
} else {
ret = STATUS_COLOR_MAP[props.status] || STATUS_COLOR_MAP.default;
}
return ret;
});
const statusIcon = vue.computed(() => {
if (props.status === "warning") {
return warning_filled_default;
}
if (props.type === "line") {
return props.status === "success" ? circle_check_default : circle_close_default;
} else {
return props.status === "success" ? check_default : close_default;
}
});
const progressTextSize = vue.computed(() => {
return props.type === "line" ? 12 + props.strokeWidth * 0.4 : props.width * 0.111111 + 2;
});
const content = vue.computed(() => props.format(props.percentage));
function getColors(color) {
const span = 100 / color.length;
const seriesColors = color.map((seriesColor, index) => {
if (isString(seriesColor)) {
return {
color: seriesColor,
percentage: (index + 1) * span
};
}
return seriesColor;
});
return seriesColors.sort((a, b) => a.percentage - b.percentage);
}
const getCurrentColor = (percentage) => {
var _a2;
const { color } = props;
if (isFunction$1(color)) {
return color(percentage);
} else if (isString(color)) {
return color;
} else {
const colors = getColors(color);
for (const color2 of colors) {
if (color2.percentage > percentage)
return color2.color;
}
return (_a2 = colors[colors.length - 1]) == null ? void 0 : _a2.color;
}
};
return (_ctx, _cache) => {
return vue.openBlock(), vue.createElementBlock("div", {
class: vue.normalizeClass([
vue.unref(ns).b(),
vue.unref(ns).m(_ctx.type),
vue.unref(ns).is(_ctx.status),
{
[vue.unref(ns).m("without-text")]: !_ctx.showText,
[vue.unref(ns).m("text-inside")]: _ctx.textInside
}
]),
role: "progressbar",
"aria-valuenow": _ctx.percentage,
"aria-valuemin": "0",
"aria-valuemax": "100"
}, [
_ctx.type === "line" ? (vue.openBlock(), vue.createElementBlock("div", {
key: 0,
class: vue.normalizeClass(vue.unref(ns).b("bar"))
}, [
vue.createElementVNode("div", {
class: vue.normalizeClass(vue.unref(ns).be("bar", "outer")),
style: vue.normalizeStyle({ height: `${_ctx.strokeWidth}px` })
}, [
vue.createElementVNode("div", {
class: vue.normalizeClass([
vue.unref(ns).be("bar", "inner"),
{ [vue.unref(ns).bem("bar", "inner", "indeterminate")]: _ctx.indeterminate },
{ [vue.unref(ns).bem("bar", "inner", "striped")]: _ctx.striped },
{ [vue.unref(ns).bem("bar", "inner", "striped-flow")]: _ctx.stripedFlow }
]),
style: vue.normalizeStyle(vue.unref(barStyle))
}, [
(_ctx.showText || _ctx.$slots.default) && _ctx.textInside ? (vue.openBlock(), vue.createElementBlock("div", {
key: 0,
class: vue.normalizeClass(vue.unref(ns).be("bar", "innerText"))
}, [
vue.renderSlot(_ctx.$slots, "default", { percentage: _ctx.percentage }, () => [
vue.createElementVNode("span", null, vue.toDisplayString(vue.unref(content)), 1)
])
], 2)) : vue.createCommentVNode("v-if", true)
], 6)
], 6)
], 2)) : (vue.openBlock(), vue.createElementBlock("div", {
key: 1,
class: vue.normalizeClass(vue.unref(ns).b("circle")),
style: vue.normalizeStyle({ height: `${_ctx.width}px`, width: `${_ctx.width}px` })
}, [
(vue.openBlock(), vue.createElementBlock("svg", { viewBox: "0 0 100 100" }, [
vue.createElementVNode("path", {
class: vue.normalizeClass(vue.unref(ns).be("circle", "track")),
d: vue.unref(trackPath),
stroke: `var(${vue.unref(ns).cssVarName("fill-color-light")}, #e5e9f2)`,
"stroke-linecap": _ctx.strokeLinecap,
"stroke-width": vue.unref(relativeStrokeWidth),
fill: "none",
style: vue.normalizeStyle(vue.unref(trailPathStyle))
}, null, 14, ["d", "stroke", "stroke-linecap", "stroke-width"]),
vue.createElementVNode("path", {
class: vue.normalizeClass(vue.unref(ns).be("circle", "path")),
d: vue.unref(trackPath),
stroke: vue.unref(stroke),
fill: "none",
opacity: _ctx.percentage ? 1 : 0,
"stroke-linecap": _ctx.strokeLinecap,
"stroke-width": vue.unref(relativeStrokeWidth),
style: vue.normalizeStyle(vue.unref(circlePathStyle))
}, null, 14, ["d", "stroke", "opacity", "stroke-linecap", "stroke-width"])
]))
], 6)),
(_ctx.showText || _ctx.$slots.default) && !_ctx.textInside ? (vue.openBlock(), vue.createElementBlock("div", {
key: 2,
class: vue.normalizeClass(vue.unref(ns).e("text")),
style: vue.normalizeStyle({ fontSize: `${vue.unref(progressTextSize)}px` })
}, [
vue.renderSlot(_ctx.$slots, "default", { percentage: _ctx.percentage }, () => [
!_ctx.status ? (vue.openBlock(), vue.createElementBlock("span", { key: 0 }, vue.toDisplayString(vue.unref(content)), 1)) : (vue.openBlock(), vue.createBlock(vue.unref(ElIcon), { key: 1 }, {
default: vue.withCtx(() => [
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(vue.unref(statusIcon))))
]),
_: 1
}))
])
], 6)) : vue.createCommentVNode("v-if", true)
], 10, ["aria-valuenow"]);
};
}
});
var Progress = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["__file", "progress.vue"]]);
const ElProgress = withInstall(Progress);
const tabsRootContextKey = Symbol("tabsRootContextKey");
const tabBarProps = buildProps({
tabs: {
type: definePropType(Array),
default: () => mutable([])
}
});
const COMPONENT_NAME$3 = "ElTabBar";
const __default__$7 = vue.defineComponent({
name: COMPONENT_NAME$3
});
const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
...__default__$7,
props: tabBarProps,
setup(__props, { expose }) {
const props = __props;
const instance = vue.getCurrentInstance();
const rootTabs = vue.inject(tabsRootContextKey);
if (!rootTabs)
throwError(COMPONENT_NAME$3, "");
const ns = useNamespace("tabs");
const barRef = vue.ref();
const barStyle = vue.ref();
const getBarStyle = () => {
let offset = 0;
let tabSize = 0;
const sizeName = ["top", "bottom"].includes(rootTabs.props.tabPosition) ? "width" : "height";
const sizeDir = sizeName === "width" ? "x" : "y";
const position = sizeDir === "x" ? "left" : "top";
props.tabs.every((tab) => {
var _a2, _b;
const $el = (_b = (_a2 = instance.parent) == null ? void 0 : _a2.refs) == null ? void 0 : _b[`tab-${tab.uid}`];
if (!$el)
return false;
if (!tab.active) {
return true;
}
offset = $el[`offset${capitalize(position)}`];
tabSize = $el[`client${capitalize(sizeName)}`];
const tabStyles = window.getComputedStyle($el);
if (sizeName === "width") {
tabSize -= Number.parseFloat(tabStyles.paddingLeft) + Number.parseFloat(tabStyles.paddingRight);
offset += Number.parseFloat(tabStyles.paddingLeft);
}
return false;
});
return {
[sizeName]: `${tabSize}px`,
transform: `translate${capitalize(sizeDir)}(${offset}px)`
};
};
const update = () => barStyle.value = getBarStyle();
const saveObserver = [];
const observerTabs = () => {
var _a2;
saveObserver.forEach((observer) => observer.stop());
saveObserver.length = 0;
const list = (_a2 = instance.parent) == null ? void 0 : _a2.refs;
if (!list)
return;
for (const key in list) {
if (key.startsWith("tab-")) {
const _el = list[key];
if (_el) {
saveObserver.push(useResizeObserver(_el, update));
}
}
}
};
vue.watch(() => props.tabs, async () => {
await vue.nextTick();
update();
observerTabs();
}, { immediate: true });
const barObserever = useResizeObserver(barRef, () => update());
vue.onBeforeUnmount(() => {
saveObserver.forEach((observer) => observer.stop());
saveObserver.length = 0;
barObserever.stop();
});
expose({
ref: barRef,
update
});
return (_ctx, _cache) => {
return vue.openBlock(), vue.createElementBlock("div", {
ref_key: "barRef",
ref: barRef,
class: vue.normalizeClass([vue.unref(ns).e("active-bar"), vue.unref(ns).is(vue.unref(rootTabs).props.tabPosition)]),
style: vue.normalizeStyle(barStyle.value)
}, null, 6);
};
}
});
var TabBar = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__file", "tab-bar.vue"]]);
const tabNavProps = buildProps({
panes: {
type: definePropType(Array),
default: () => mutable([])
},
currentName: {
type: [String, Number],
default: ""
},
editable: Boolean,
type: {
type: String,
values: ["card", "border-card", ""],
default: ""
},
stretch: Boolean
});
const tabNavEmits = {
tabClick: (tab, tabName, ev) => ev instanceof Event,
tabRemove: (tab, ev) => ev instanceof Event
};
const COMPONENT_NAME$2 = "ElTabNav";
const TabNav = vue.defineComponent({
name: COMPONENT_NAME$2,
props: tabNavProps,
emits: tabNavEmits,
setup(props, {
expose,
emit
}) {
const rootTabs = vue.inject(tabsRootContextKey);
if (!rootTabs)
throwError(COMPONENT_NAME$2, ``);
const ns = useNamespace("tabs");
const visibility = useDocumentVisibility();
const focused = useWindowFocus();
const navScroll$ = vue.ref();
const nav$ = vue.ref();
const el$ = vue.ref();
const tabBarRef = vue.ref();
const scrollable = vue.ref(false);
const navOffset = vue.ref(0);
const isFocus = vue.ref(false);
const focusable = vue.ref(true);
const sizeName = vue.computed(() => ["top", "bottom"].includes(rootTabs.props.tabPosition) ? "width" : "height");
const navStyle = vue.computed(() => {
const dir = sizeName.value === "width" ? "X" : "Y";
return {
transform: `translate${dir}(-${navOffset.value}px)`
};
});
const scrollPrev = () => {
if (!navScroll$.value)
return;
const containerSize = navScroll$.value[`offset${capitalize(sizeName.value)}`];
const currentOffset = navOffset.value;
if (!currentOffset)
return;
const newOffset = currentOffset > containerSize ? currentOffset - containerSize : 0;
navOffset.value = newOffset;
};
const scrollNext = () => {
if (!navScroll$.value || !nav$.value)
return;
const navSize = nav$.value[`offset${capitalize(sizeName.value)}`];
const containerSize = navScroll$.value[`offset${capitalize(sizeName.value)}`];
const currentOffset = navOffset.value;
if (navSize - currentOffset <= containerSize)
return;
const newOffset = navSize - currentOffset > containerSize * 2 ? currentOffset + containerSize : navSize - containerSize;
navOffset.value = newOffset;
};
const scrollToActiveTab = async () => {
const nav = nav$.value;
if (!scrollable.value || !el$.value || !navScroll$.value || !nav)
return;
await vue.nextTick();
const activeTab = el$.value.querySelector(".is-active");
if (!activeTab)
return;
const navScroll = navScroll$.value;
const isHorizontal = ["top", "bottom"].includes(rootTabs.props.tabPosition);
const activeTabBounding = activeTab.getBoundingClientRect();
const navScrollBounding = navScroll.getBoundingClientRect();
const maxOffset = isHorizontal ? nav.offsetWidth - navScrollBounding.width : nav.offsetHeight - navScrollBounding.height;
const currentOffset = navOffset.value;
let newOffset = currentOffset;
if (isHorizontal) {
if (activeTabBounding.left < navScrollBounding.left) {
newOffset = currentOffset - (navScrollBounding.left - activeTabBounding.left);
}
if (activeTabBounding.right > navScrollBounding.right) {
newOffset = currentOffset + activeTabBounding.right - navScrollBounding.right;
}
} else {
if (activeTabBounding.top < navScrollBounding.top) {
newOffset = currentOffset - (navScrollBounding.top - activeTabBounding.top);
}
if (activeTabBounding.bottom > navScrollBounding.bottom) {
newOffset = currentOffset + (activeTabBounding.bottom - navScrollBounding.bottom);
}
}
newOffset = Math.max(newOffset, 0);
navOffset.value = Math.min(newOffset, maxOffset);
};
const update = () => {
var _a2;
if (!nav$.value || !navScroll$.value)
return;
props.stretch && ((_a2 = tabBarRef.value) == null ? void 0 : _a2.update());
const navSize = nav$.value[`offset${capitalize(sizeName.value)}`];
const containerSize = navScroll$.value[`offset${capitalize(sizeName.value)}`];
const currentOffset = navOffset.value;
if (containerSize < navSize) {
scrollable.value = scrollable.value || {};
scrollable.value.prev = currentOffset;
scrollable.value.next = currentOffset + containerSize < navSize;
if (navSize - currentOffset < containerSize) {
navOffset.value = navSize - containerSize;
}
} else {
scrollable.value = false;
if (currentOffset > 0) {
navOffset.value = 0;
}
}
};
const changeTab = (e) => {
const code = e.code;
const {
up,
down,
left,
right
} = EVENT_CODE;
if (![up, down, left, right].includes(code))
return;
const tabList = Array.from(e.currentTarget.querySelectorAll("[role=tab]:not(.is-disabled)"));
const currentIndex = tabList.indexOf(e.target);
let nextIndex;
if (code === left || code === up) {
if (currentIndex === 0) {
nextIndex = tabList.length - 1;
} else {
nextIndex = currentIndex - 1;
}
} else {
if (currentIndex < tabList.length - 1) {
nextIndex = currentIndex + 1;
} else {
nextIndex = 0;
}
}
tabList[nextIndex].focus({
preventScroll: true
});
tabList[nextIndex].click();
setFocus();
};
const setFocus = () => {
if (focusable.value)
isFocus.value = true;
};
const removeFocus = () => isFocus.value = false;
vue.watch(visibility, (visibility2) => {
if (visibility2 === "hidden") {
focusable.value = false;
} else if (visibility2 === "visible") {
setTimeout(() => focusable.value = true, 50);
}
});
vue.watch(focused, (focused2) => {
if (focused2) {
setTimeout(() => focusable.value = true, 50);
} else {
focusable.value = false;
}
});
useResizeObserver(el$, update);
vue.onMounted(() => setTimeout(() => scrollToActiveTab(), 0));
vue.onUpdated(() => update());
expose({
scrollToActiveTab,
removeFocus
});
return () => {
const scrollBtn = scrollable.value ? [vue.createVNode("span", {
"class": [ns.e("nav-prev"), ns.is("disabled", !scrollable.value.prev)],
"onClick": scrollPrev
}, [vue.createVNode(ElIcon, null, {
default: () => [vue.createVNode(arrow_left_default, null, null)]
})]), vue.createVNode("span", {
"class": [ns.e("nav-next"), ns.is("disabled", !scrollable.value.next)],
"onClick": scrollNext
}, [vue.createVNode(ElIcon, null, {
default: () => [vue.createVNode(arrow_right_default, null, null)]
})])] : null;
const tabs = props.panes.map((pane, index) => {
var _a2, _b, _c, _d;
const uid = pane.uid;
const disabled = pane.props.disabled;
const tabName = (_b = (_a2 = pane.props.name) != null ? _a2 : pane.index) != null ? _b : `${index}`;
const closable = !disabled && (pane.isClosable || props.editable);
pane.index = `${index}`;
const btnClose = closable ? vue.createVNode(ElIcon, {
"class": "is-icon-close",
"onClick": (ev) => emit("tabRemove", pane, ev)
}, {
default: () => [vue.createVNode(close_default, null, null)]
}) : null;
const tabLabelContent = ((_d = (_c = pane.slots).label) == null ? void 0 : _d.call(_c)) || pane.props.label;
const tabindex = !disabled && pane.active ? 0 : -1;
return vue.createVNode("div", {
"ref": `tab-${uid}`,
"class": [ns.e("item"), ns.is(rootTabs.props.tabPosition), ns.is("active", pane.active), ns.is("disabled", disabled), ns.is("closable", closable), ns.is("focus", isFocus.value)],
"id": `tab-${tabName}`,
"key": `tab-${uid}`,
"aria-controls": `pane-${tabName}`,
"role": "tab",
"aria-selected": pane.active,
"tabindex": tabindex,
"onFocus": () => setFocus(),
"onBlur": () => removeFocus(),
"onClick": (ev) => {
removeFocus();
emit("tabClick", pane, tabName, ev);
},
"onKeydown": (ev) => {
if (closable && (ev.code === EVENT_CODE.delete || ev.code === EVENT_CODE.backspace)) {
emit("tabRemove", pane, ev);
}
}
}, [...[tabLabelContent, btnClose]]);
});
return vue.createVNode("div", {
"ref": el$,
"class": [ns.e("nav-wrap"), ns.is("scrollable", !!scrollable.value), ns.is(rootTabs.props.tabPosition)]
}, [scrollBtn, vue.createVNode("div", {
"class": ns.e("nav-scroll"),
"ref": navScroll$
}, [vue.createVNode("div", {
"class": [ns.e("nav"), ns.is(rootTabs.props.tabPosition), ns.is("stretch", props.stretch && ["top", "bottom"].includes(rootTabs.props.tabPosition))],
"ref": nav$,
"style": navStyle.value,
"role": "tablist",
"onKeydown": changeTab
}, [...[!props.type ? vue.createVNode(TabBar, {
"ref": tabBarRef,
"tabs": [...props.panes]
}, null) : null, tabs]])])]);
};
}
});
const tabsProps = buildProps({
type: {
type: String,
values: ["card", "border-card", ""],
default: ""
},
closable: Boolean,
addable: Boolean,
modelValue: {
type: [String, Number]
},
editable: Boolean,
tabPosition: {
type: String,
values: ["top", "right", "bottom", "left"],
default: "top"
},
beforeLeave: {
type: definePropType(Function),
default: () => true
},
stretch: Boolean
});
const isPaneName = (value) => isString(value) || isNumber(value);
const tabsEmits = {
[UPDATE_MODEL_EVENT]: (name) => isPaneName(name),
tabClick: (pane, ev) => ev instanceof Event,
tabChange: (name) => isPaneName(name),
edit: (paneName, action) => ["remove", "add"].includes(action),
tabRemove: (name) => isPaneName(name),
tabAdd: () => true
};
const Tabs = vue.defineComponent({
name: "ElTabs",
props: tabsProps,
emits: tabsEmits,
setup(props, {
emit,
slots,
expose
}) {
var _a2;
const ns = useNamespace("tabs");
const isVertical = vue.computed(() => ["left", "right"].includes(props.tabPosition));
const {
children: panes,
addChild: sortPane,
removeChild: unregisterPane
} = useOrderedChildren(vue.getCurrentInstance(), "ElTabPane");
const nav$ = vue.ref();
const currentName = vue.ref((_a2 = props.modelValue) != null ? _a2 : "0");
const setCurrentName = async (value, trigger = false) => {
var _a22, _b, _c;
if (currentName.value === value || isUndefined(value))
return;
try {
const canLeave = await ((_a22 = props.beforeLeave) == null ? void 0 : _a22.call(props, value, currentName.value));
if (canLeave !== false) {
currentName.value = value;
if (trigger) {
emit(UPDATE_MODEL_EVENT, value);
emit("tabChange", value);
}
(_c = (_b = nav$.value) == null ? void 0 : _b.removeFocus) == null ? void 0 : _c.call(_b);
}
} catch (e) {
}
};
const handleTabClick = (tab, tabName, event) => {
if (tab.props.disabled)
return;
setCurrentName(tabName, true);
emit("tabClick", tab, event);
};
const handleTabRemove = (pane, ev) => {
if (pane.props.disabled || isUndefined(pane.props.name))
return;
ev.stopPropagation();
emit("edit", pane.props.name, "remove");
emit("tabRemove", pane.props.name);
};
const handleTabAdd = () => {
emit("edit", void 0, "add");
emit("tabAdd");
};
vue.watch(() => props.modelValue, (modelValue) => setCurrentName(modelValue));
vue.watch(currentName, async () => {
var _a22;
await vue.nextTick();
(_a22 = nav$.value) == null ? void 0 : _a22.scrollToActiveTab();
});
vue.provide(tabsRootContextKey, {
props,
currentName,
registerPane: (pane) => {
panes.value.push(pane);
},
sortPane,
unregisterPane
});
expose({
currentName
});
const TabNavRenderer = ({
render: render2
}) => {
return render2();
};
return () => {
const addSlot = slots["add-icon"];
const newButton = props.editable || props.addable ? vue.createVNode("div", {
"class": [ns.e("new-tab"), isVertical.value && ns.e("new-tab-vertical")],
"tabindex": "0",
"onClick": handleTabAdd,
"onKeydown": (ev) => {
if (ev.code === EVENT_CODE.enter)
handleTabAdd();
}
}, [addSlot ? vue.renderSlot(slots, "add-icon") : vue.createVNode(ElIcon, {
"class": ns.is("icon-plus")
}, {
default: () => [vue.createVNode(plus_default, null, null)]
})]) : null;
const header = vue.createVNode("div", {
"class": [ns.e("header"), isVertical.value && ns.e("header-vertical"), ns.is(props.tabPosition)]
}, [vue.createVNode(TabNavRenderer, {
"render": () => {
const hasLabelSlot = panes.value.some((pane) => pane.slots.label);
return vue.createVNode(TabNav, {
ref: nav$,
currentName: currentName.value,
editable: props.editable,
type: props.type,
panes: panes.value,
stretch: props.stretch,
onTabClick: handleTabClick,
onTabRemove: handleTabRemove
}, {
$stable: !hasLabelSlot
});
}
}, null), newButton]);
const panels = vue.createVNode("div", {
"class": ns.e("content")
}, [vue.renderSlot(slots, "default")]);
return vue.createVNode("div", {
"class": [ns.b(), ns.m(props.tabPosition), {
[ns.m("card")]: props.type === "card",
[ns.m("border-card")]: props.type === "border-card"
}]
}, [panels, header]);
};
}
});
const tabPaneProps = buildProps({
label: {
type: String,
default: ""
},
name: {
type: [String, Number]
},
closable: Boolean,
disabled: Boolean,
lazy: Boolean
});
const COMPONENT_NAME$1 = "ElTabPane";
const __default__$6 = vue.defineComponent({
name: COMPONENT_NAME$1
});
const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
...__default__$6,
props: tabPaneProps,
setup(__props) {
const props = __props;
const instance = vue.getCurrentInstance();
const slots = vue.useSlots();
const tabsRoot = vue.inject(tabsRootContextKey);
if (!tabsRoot)
throwError(COMPONENT_NAME$1, "usage: ");
const ns = useNamespace("tab-pane");
const index = vue.ref();
const isClosable = vue.computed(() => props.closable || tabsRoot.props.closable);
const active = computedEager(() => {
var _a2;
return tabsRoot.currentName.value === ((_a2 = props.name) != null ? _a2 : index.value);
});
const loaded = vue.ref(active.value);
const paneName = vue.computed(() => {
var _a2;
return (_a2 = props.name) != null ? _a2 : index.value;
});
const shouldBeRender = computedEager(() => !props.lazy || loaded.value || active.value);
vue.watch(active, (val) => {
if (val)
loaded.value = true;
});
const pane = vue.reactive({
uid: instance.uid,
slots,
props,
paneName,
active,
index,
isClosable
});
tabsRoot.registerPane(pane);
vue.onMounted(() => {
tabsRoot.sortPane(pane);
});
vue.onUnmounted(() => {
tabsRoot.unregisterPane(pane.uid);
});
return (_ctx, _cache) => {
return vue.unref(shouldBeRender) ? vue.withDirectives((vue.openBlock(), vue.createElementBlock("div", {
key: 0,
id: `pane-${vue.unref(paneName)}`,
class: vue.normalizeClass(vue.unref(ns).b()),
role: "tabpanel",
"aria-hidden": !vue.unref(active),
"aria-labelledby": `tab-${vue.unref(paneName)}`
}, [
vue.renderSlot(_ctx.$slots, "default")
], 10, ["id", "aria-hidden", "aria-labelledby"])), [
[vue.vShow, vue.unref(active)]
]) : vue.createCommentVNode("v-if", true);
};
}
});
var TabPane = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__file", "tab-pane.vue"]]);
const ElTabs = withInstall(Tabs, {
TabPane
});
const ElTabPane = withNoopInstall(TabPane);
const textProps = buildProps({
type: {
type: String,
values: ["primary", "success", "info", "warning", "danger", ""],
default: ""
},
size: {
type: String,
values: componentSizes,
default: ""
},
truncated: Boolean,
lineClamp: {
type: [String, Number]
},
tag: {
type: String,
default: "span"
}
});
const __default__$5 = vue.defineComponent({
name: "ElText"
});
const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
...__default__$5,
props: textProps,
setup(__props) {
const props = __props;
const textSize = useFormSize();
const ns = useNamespace("text");
const textKls = vue.computed(() => [
ns.b(),
ns.m(props.type),
ns.m(textSize.value),
ns.is("truncated", props.truncated),
ns.is("line-clamp", !isUndefined(props.lineClamp))
]);
return (_ctx, _cache) => {
return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.tag), {
class: vue.normalizeClass(vue.unref(textKls)),
style: vue.normalizeStyle({ "-webkit-line-clamp": _ctx.lineClamp })
}, {
default: vue.withCtx(() => [
vue.renderSlot(_ctx.$slots, "default")
]),
_: 3
}, 8, ["class", "style"]);
};
}
});
var Text = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__file", "text.vue"]]);
const ElText = withInstall(Text);
const uploadContextKey = Symbol("uploadContextKey");
const SCOPE$1 = "ElUpload";
class UploadAjaxError extends Error {
constructor(message, status, method, url) {
super(message);
this.name = "UploadAjaxError";
this.status = status;
this.method = method;
this.url = url;
}
}
function getError(action, option, xhr) {
let msg;
if (xhr.response) {
msg = `${xhr.response.error || xhr.response}`;
} else if (xhr.responseText) {
msg = `${xhr.responseText}`;
} else {
msg = `fail to ${option.method} ${action} ${xhr.status}`;
}
return new UploadAjaxError(msg, xhr.status, option.method, action);
}
function getBody(xhr) {
const text = xhr.responseText || xhr.response;
if (!text) {
return text;
}
try {
return JSON.parse(text);
} catch (e) {
return text;
}
}
const ajaxUpload = (option) => {
if (typeof XMLHttpRequest === "undefined")
throwError(SCOPE$1, "XMLHttpRequest is undefined");
const xhr = new XMLHttpRequest();
const action = option.action;
if (xhr.upload) {
xhr.upload.addEventListener("progress", (evt) => {
const progressEvt = evt;
progressEvt.percent = evt.total > 0 ? evt.loaded / evt.total * 100 : 0;
option.onProgress(progressEvt);
});
}
const formData = new FormData();
if (option.data) {
for (const [key, value] of Object.entries(option.data)) {
if (isArray$1(value) && value.length)
formData.append(key, ...value);
else
formData.append(key, value);
}
}
formData.append(option.filename, option.file, option.file.name);
xhr.addEventListener("error", () => {
option.onError(getError(action, option, xhr));
});
xhr.addEventListener("load", () => {
if (xhr.status < 200 || xhr.status >= 300) {
return option.onError(getError(action, option, xhr));
}
option.onSuccess(getBody(xhr));
});
xhr.open(option.method, action, true);
if (option.withCredentials && "withCredentials" in xhr) {
xhr.withCredentials = true;
}
const headers = option.headers || {};
if (headers instanceof Headers) {
headers.forEach((value, key) => xhr.setRequestHeader(key, value));
} else {
for (const [key, value] of Object.entries(headers)) {
if (isNil(value))
continue;
xhr.setRequestHeader(key, String(value));
}
}
xhr.send(formData);
return xhr;
};
const uploadListTypes = ["text", "picture", "picture-card"];
let fileId = 1;
const genFileId = () => Date.now() + fileId++;
const uploadBaseProps = buildProps({
action: {
type: String,
default: "#"
},
headers: {
type: definePropType(Object)
},
method: {
type: String,
default: "post"
},
data: {
type: definePropType([Object, Function, Promise]),
default: () => mutable({})
},
multiple: Boolean,
name: {
type: String,
default: "file"
},
drag: Boolean,
withCredentials: Boolean,
showFileList: {
type: Boolean,
default: true
},
accept: {
type: String,
default: ""
},
fileList: {
type: definePropType(Array),
default: () => mutable([])
},
autoUpload: {
type: Boolean,
default: true
},
listType: {
type: String,
values: uploadListTypes,
default: "text"
},
httpRequest: {
type: definePropType(Function),
default: ajaxUpload
},
disabled: Boolean,
limit: Number
});
const uploadProps = buildProps({
...uploadBaseProps,
beforeUpload: {
type: definePropType(Function),
default: NOOP
},
beforeRemove: {
type: definePropType(Function)
},
onRemove: {
type: definePropType(Function),
default: NOOP
},
onChange: {
type: definePropType(Function),
default: NOOP
},
onPreview: {
type: definePropType(Function),
default: NOOP
},
onSuccess: {
type: definePropType(Function),
default: NOOP
},
onProgress: {
type: definePropType(Function),
default: NOOP
},
onError: {
type: definePropType(Function),
default: NOOP
},
onExceed: {
type: definePropType(Function),
default: NOOP
},
crossorigin: {
type: definePropType(String)
}
});
const uploadListProps = buildProps({
files: {
type: definePropType(Array),
default: () => mutable([])
},
disabled: {
type: Boolean,
default: false
},
handlePreview: {
type: definePropType(Function),
default: NOOP
},
listType: {
type: String,
values: uploadListTypes,
default: "text"
},
crossorigin: {
type: definePropType(String)
}
});
const uploadListEmits = {
remove: (file) => !!file
};
const __default__$4 = vue.defineComponent({
name: "ElUploadList"
});
const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
...__default__$4,
props: uploadListProps,
emits: uploadListEmits,
setup(__props, { emit }) {
const props = __props;
const { t } = useLocale();
const nsUpload = useNamespace("upload");
const nsIcon = useNamespace("icon");
const nsList = useNamespace("list");
const disabled = useFormDisabled();
const focusing = vue.ref(false);
const containerKls = vue.computed(() => [
nsUpload.b("list"),
nsUpload.bm("list", props.listType),
nsUpload.is("disabled", props.disabled)
]);
const handleRemove = (file) => {
emit("remove", file);
};
return (_ctx, _cache) => {
return vue.openBlock(), vue.createBlock(vue.TransitionGroup, {
tag: "ul",
class: vue.normalizeClass(vue.unref(containerKls)),
name: vue.unref(nsList).b()
}, {
default: vue.withCtx(() => [
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.files, (file, index) => {
return vue.openBlock(), vue.createElementBlock("li", {
key: file.uid || file.name,
class: vue.normalizeClass([
vue.unref(nsUpload).be("list", "item"),
vue.unref(nsUpload).is(file.status),
{ focusing: focusing.value }
]),
tabindex: "0",
onKeydown: vue.withKeys(($event) => !vue.unref(disabled) && handleRemove(file), ["delete"]),
onFocus: ($event) => focusing.value = true,
onBlur: ($event) => focusing.value = false,
onClick: ($event) => focusing.value = false
}, [
vue.renderSlot(_ctx.$slots, "default", {
file,
index
}, () => [
_ctx.listType === "picture" || file.status !== "uploading" && _ctx.listType === "picture-card" ? (vue.openBlock(), vue.createElementBlock("img", {
key: 0,
class: vue.normalizeClass(vue.unref(nsUpload).be("list", "item-thumbnail")),
src: file.url,
crossorigin: _ctx.crossorigin,
alt: ""
}, null, 10, ["src", "crossorigin"])) : vue.createCommentVNode("v-if", true),
file.status === "uploading" || _ctx.listType !== "picture-card" ? (vue.openBlock(), vue.createElementBlock("div", {
key: 1,
class: vue.normalizeClass(vue.unref(nsUpload).be("list", "item-info"))
}, [
vue.createElementVNode("a", {
class: vue.normalizeClass(vue.unref(nsUpload).be("list", "item-name")),
onClick: vue.withModifiers(($event) => _ctx.handlePreview(file), ["prevent"])
}, [
vue.createVNode(vue.unref(ElIcon), {
class: vue.normalizeClass(vue.unref(nsIcon).m("document"))
}, {
default: vue.withCtx(() => [
vue.createVNode(vue.unref(document_default))
]),
_: 1
}, 8, ["class"]),
vue.createElementVNode("span", {
class: vue.normalizeClass(vue.unref(nsUpload).be("list", "item-file-name")),
title: file.name
}, vue.toDisplayString(file.name), 11, ["title"])
], 10, ["onClick"]),
file.status === "uploading" ? (vue.openBlock(), vue.createBlock(vue.unref(ElProgress), {
key: 0,
type: _ctx.listType === "picture-card" ? "circle" : "line",
"stroke-width": _ctx.listType === "picture-card" ? 6 : 2,
percentage: Number(file.percentage),
style: vue.normalizeStyle(_ctx.listType === "picture-card" ? "" : "margin-top: 0.5rem")
}, null, 8, ["type", "stroke-width", "percentage", "style"])) : vue.createCommentVNode("v-if", true)
], 2)) : vue.createCommentVNode("v-if", true),
vue.createElementVNode("label", {
class: vue.normalizeClass(vue.unref(nsUpload).be("list", "item-status-label"))
}, [
_ctx.listType === "text" ? (vue.openBlock(), vue.createBlock(vue.unref(ElIcon), {
key: 0,
class: vue.normalizeClass([vue.unref(nsIcon).m("upload-success"), vue.unref(nsIcon).m("circle-check")])
}, {
default: vue.withCtx(() => [
vue.createVNode(vue.unref(circle_check_default))
]),
_: 1
}, 8, ["class"])) : ["picture-card", "picture"].includes(_ctx.listType) ? (vue.openBlock(), vue.createBlock(vue.unref(ElIcon), {
key: 1,
class: vue.normalizeClass([vue.unref(nsIcon).m("upload-success"), vue.unref(nsIcon).m("check")])
}, {
default: vue.withCtx(() => [
vue.createVNode(vue.unref(check_default))
]),
_: 1
}, 8, ["class"])) : vue.createCommentVNode("v-if", true)
], 2),
!vue.unref(disabled) ? (vue.openBlock(), vue.createBlock(vue.unref(ElIcon), {
key: 2,
class: vue.normalizeClass(vue.unref(nsIcon).m("close")),
onClick: ($event) => handleRemove(file)
}, {
default: vue.withCtx(() => [
vue.createVNode(vue.unref(close_default))
]),
_: 2
}, 1032, ["class", "onClick"])) : vue.createCommentVNode("v-if", true),
vue.createCommentVNode(" Due to close btn only appears when li gets focused disappears after li gets blurred, thus keyboard navigation can never reach close btn"),
vue.createCommentVNode(" This is a bug which needs to be fixed "),
vue.createCommentVNode(" TODO: Fix the incorrect navigation interaction "),
!vue.unref(disabled) ? (vue.openBlock(), vue.createElementBlock("i", {
key: 3,
class: vue.normalizeClass(vue.unref(nsIcon).m("close-tip"))
}, vue.toDisplayString(vue.unref(t)("el.upload.deleteTip")), 3)) : vue.createCommentVNode("v-if", true),
_ctx.listType === "picture-card" ? (vue.openBlock(), vue.createElementBlock("span", {
key: 4,
class: vue.normalizeClass(vue.unref(nsUpload).be("list", "item-actions"))
}, [
vue.createElementVNode("span", {
class: vue.normalizeClass(vue.unref(nsUpload).be("list", "item-preview")),
onClick: ($event) => _ctx.handlePreview(file)
}, [
vue.createVNode(vue.unref(ElIcon), {
class: vue.normalizeClass(vue.unref(nsIcon).m("zoom-in"))
}, {
default: vue.withCtx(() => [
vue.createVNode(vue.unref(zoom_in_default))
]),
_: 1
}, 8, ["class"])
], 10, ["onClick"]),
!vue.unref(disabled) ? (vue.openBlock(), vue.createElementBlock("span", {
key: 0,
class: vue.normalizeClass(vue.unref(nsUpload).be("list", "item-delete")),
onClick: ($event) => handleRemove(file)
}, [
vue.createVNode(vue.unref(ElIcon), {
class: vue.normalizeClass(vue.unref(nsIcon).m("delete"))
}, {
default: vue.withCtx(() => [
vue.createVNode(vue.unref(delete_default))
]),
_: 1
}, 8, ["class"])
], 10, ["onClick"])) : vue.createCommentVNode("v-if", true)
], 2)) : vue.createCommentVNode("v-if", true)
])
], 42, ["onKeydown", "onFocus", "onBlur", "onClick"]);
}), 128)),
vue.renderSlot(_ctx.$slots, "append")
]),
_: 3
}, 8, ["class", "name"]);
};
}
});
var UploadList = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["__file", "upload-list.vue"]]);
const uploadDraggerProps = buildProps({
disabled: {
type: Boolean,
default: false
}
});
const uploadDraggerEmits = {
file: (file) => isArray$1(file)
};
const COMPONENT_NAME = "ElUploadDrag";
const __default__$3 = vue.defineComponent({
name: COMPONENT_NAME
});
const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
...__default__$3,
props: uploadDraggerProps,
emits: uploadDraggerEmits,
setup(__props, { emit }) {
const uploaderContext = vue.inject(uploadContextKey);
if (!uploaderContext) {
throwError(COMPONENT_NAME, "usage: ");
}
const ns = useNamespace("upload");
const dragover = vue.ref(false);
const disabled = useFormDisabled();
const onDrop = (e) => {
if (disabled.value)
return;
dragover.value = false;
e.stopPropagation();
const files = Array.from(e.dataTransfer.files);
emit("file", files);
};
const onDragover = () => {
if (!disabled.value)
dragover.value = true;
};
return (_ctx, _cache) => {
return vue.openBlock(), vue.createElementBlock("div", {
class: vue.normalizeClass([vue.unref(ns).b("dragger"), vue.unref(ns).is("dragover", dragover.value)]),
onDrop: vue.withModifiers(onDrop, ["prevent"]),
onDragover: vue.withModifiers(onDragover, ["prevent"]),
onDragleave: vue.withModifiers(($event) => dragover.value = false, ["prevent"])
}, [
vue.renderSlot(_ctx.$slots, "default")
], 42, ["onDrop", "onDragover", "onDragleave"]);
};
}
});
var UploadDragger = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__file", "upload-dragger.vue"]]);
const uploadContentProps = buildProps({
...uploadBaseProps,
beforeUpload: {
type: definePropType(Function),
default: NOOP
},
onRemove: {
type: definePropType(Function),
default: NOOP
},
onStart: {
type: definePropType(Function),
default: NOOP
},
onSuccess: {
type: definePropType(Function),
default: NOOP
},
onProgress: {
type: definePropType(Function),
default: NOOP
},
onError: {
type: definePropType(Function),
default: NOOP
},
onExceed: {
type: definePropType(Function),
default: NOOP
}
});
const __default__$2 = vue.defineComponent({
name: "ElUploadContent",
inheritAttrs: false
});
const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
...__default__$2,
props: uploadContentProps,
setup(__props, { expose }) {
const props = __props;
const ns = useNamespace("upload");
const disabled = useFormDisabled();
const requests = vue.shallowRef({});
const inputRef = vue.shallowRef();
const uploadFiles = (files) => {
if (files.length === 0)
return;
const { autoUpload, limit, fileList, multiple, onStart, onExceed } = props;
if (limit && fileList.length + files.length > limit) {
onExceed(files, fileList);
return;
}
if (!multiple) {
files = files.slice(0, 1);
}
for (const file of files) {
const rawFile = file;
rawFile.uid = genFileId();
onStart(rawFile);
if (autoUpload)
upload(rawFile);
}
};
const upload = async (rawFile) => {
inputRef.value.value = "";
if (!props.beforeUpload) {
return doUpload(rawFile);
}
let hookResult;
let beforeData = {};
try {
const originData = props.data;
const beforeUploadPromise = props.beforeUpload(rawFile);
beforeData = isPlainObject(props.data) ? cloneDeep(props.data) : props.data;
hookResult = await beforeUploadPromise;
if (isPlainObject(props.data) && isEqual(originData, beforeData)) {
beforeData = cloneDeep(props.data);
}
} catch (e) {
hookResult = false;
}
if (hookResult === false) {
props.onRemove(rawFile);
return;
}
let file = rawFile;
if (hookResult instanceof Blob) {
if (hookResult instanceof File) {
file = hookResult;
} else {
file = new File([hookResult], rawFile.name, {
type: rawFile.type
});
}
}
doUpload(Object.assign(file, {
uid: rawFile.uid
}), beforeData);
};
const resolveData = async (data, rawFile) => {
if (isFunction$1(data)) {
return data(rawFile);
}
return data;
};
const doUpload = async (rawFile, beforeData) => {
const {
headers,
data,
method,
withCredentials,
name: filename,
action,
onProgress,
onSuccess,
onError,
httpRequest
} = props;
try {
beforeData = await resolveData(beforeData != null ? beforeData : data, rawFile);
} catch (e) {
props.onRemove(rawFile);
return;
}
const { uid } = rawFile;
const options = {
headers: headers || {},
withCredentials,
file: rawFile,
data: beforeData,
method,
filename,
action,
onProgress: (evt) => {
onProgress(evt, rawFile);
},
onSuccess: (res) => {
onSuccess(res, rawFile);
delete requests.value[uid];
},
onError: (err) => {
onError(err, rawFile);
delete requests.value[uid];
}
};
const request = httpRequest(options);
requests.value[uid] = request;
if (request instanceof Promise) {
request.then(options.onSuccess, options.onError);
}
};
const handleChange = (e) => {
const files = e.target.files;
if (!files)
return;
uploadFiles(Array.from(files));
};
const handleClick = () => {
if (!disabled.value) {
inputRef.value.value = "";
inputRef.value.click();
}
};
const handleKeydown = () => {
handleClick();
};
const abort = (file) => {
const _reqs = entriesOf(requests.value).filter(file ? ([uid]) => String(file.uid) === uid : () => true);
_reqs.forEach(([uid, req]) => {
if (req instanceof XMLHttpRequest)
req.abort();
delete requests.value[uid];
});
};
expose({
abort,
upload
});
return (_ctx, _cache) => {
return vue.openBlock(), vue.createElementBlock("div", {
class: vue.normalizeClass([
vue.unref(ns).b(),
vue.unref(ns).m(_ctx.listType),
vue.unref(ns).is("drag", _ctx.drag),
vue.unref(ns).is("disabled", vue.unref(disabled))
]),
tabindex: vue.unref(disabled) ? "-1" : "0",
onClick: handleClick,
onKeydown: vue.withKeys(vue.withModifiers(handleKeydown, ["self"]), ["enter", "space"])
}, [
_ctx.drag ? (vue.openBlock(), vue.createBlock(UploadDragger, {
key: 0,
disabled: vue.unref(disabled),
onFile: uploadFiles
}, {
default: vue.withCtx(() => [
vue.renderSlot(_ctx.$slots, "default")
]),
_: 3
}, 8, ["disabled"])) : vue.renderSlot(_ctx.$slots, "default", { key: 1 }),
vue.createElementVNode("input", {
ref_key: "inputRef",
ref: inputRef,
class: vue.normalizeClass(vue.unref(ns).e("input")),
name: _ctx.name,
disabled: vue.unref(disabled),
multiple: _ctx.multiple,
accept: _ctx.accept,
type: "file",
onChange: handleChange,
onClick: vue.withModifiers(() => {
}, ["stop"])
}, null, 42, ["name", "disabled", "multiple", "accept", "onClick"])
], 42, ["tabindex", "onKeydown"]);
};
}
});
var UploadContent = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__file", "upload-content.vue"]]);
const SCOPE = "ElUpload";
const revokeFileObjectURL = (file) => {
var _a2;
if ((_a2 = file.url) == null ? void 0 : _a2.startsWith("blob:")) {
URL.revokeObjectURL(file.url);
}
};
const useHandlers = (props, uploadRef) => {
const uploadFiles = useVModel(props, "fileList", void 0, { passive: true });
const getFile = (rawFile) => uploadFiles.value.find((file) => file.uid === rawFile.uid);
function abort(file) {
var _a2;
(_a2 = uploadRef.value) == null ? void 0 : _a2.abort(file);
}
function clearFiles(states = ["ready", "uploading", "success", "fail"]) {
uploadFiles.value = uploadFiles.value.filter((row) => !states.includes(row.status));
}
function removeFile(file) {
uploadFiles.value = uploadFiles.value.filter((uploadFile) => uploadFile !== file);
}
const handleError = (err, rawFile) => {
const file = getFile(rawFile);
if (!file)
return;
console.error(err);
file.status = "fail";
removeFile(file);
props.onError(err, file, uploadFiles.value);
props.onChange(file, uploadFiles.value);
};
const handleProgress = (evt, rawFile) => {
const file = getFile(rawFile);
if (!file)
return;
props.onProgress(evt, file, uploadFiles.value);
file.status = "uploading";
file.percentage = Math.round(evt.percent);
};
const handleSuccess = (response, rawFile) => {
const file = getFile(rawFile);
if (!file)
return;
file.status = "success";
file.response = response;
props.onSuccess(response, file, uploadFiles.value);
props.onChange(file, uploadFiles.value);
};
const handleStart = (file) => {
if (isNil(file.uid))
file.uid = genFileId();
const uploadFile = {
name: file.name,
percentage: 0,
status: "ready",
size: file.size,
raw: file,
uid: file.uid
};
if (props.listType === "picture-card" || props.listType === "picture") {
try {
uploadFile.url = URL.createObjectURL(file);
} catch (err) {
debugWarn(SCOPE, err.message);
props.onError(err, uploadFile, uploadFiles.value);
}
}
uploadFiles.value = [...uploadFiles.value, uploadFile];
props.onChange(uploadFile, uploadFiles.value);
};
const handleRemove = async (file) => {
const uploadFile = file instanceof File ? getFile(file) : file;
if (!uploadFile)
throwError(SCOPE, "file to be removed not found");
const doRemove = (file2) => {
abort(file2);
removeFile(file2);
props.onRemove(file2, uploadFiles.value);
revokeFileObjectURL(file2);
};
if (props.beforeRemove) {
const before2 = await props.beforeRemove(uploadFile, uploadFiles.value);
if (before2 !== false)
doRemove(uploadFile);
} else {
doRemove(uploadFile);
}
};
function submit() {
uploadFiles.value.filter(({ status }) => status === "ready").forEach(({ raw }) => {
var _a2;
return raw && ((_a2 = uploadRef.value) == null ? void 0 : _a2.upload(raw));
});
}
vue.watch(() => props.listType, (val) => {
if (val !== "picture-card" && val !== "picture") {
return;
}
uploadFiles.value = uploadFiles.value.map((file) => {
const { raw, url } = file;
if (!url && raw) {
try {
file.url = URL.createObjectURL(raw);
} catch (err) {
props.onError(err, file, uploadFiles.value);
}
}
return file;
});
});
vue.watch(uploadFiles, (files) => {
for (const file of files) {
file.uid || (file.uid = genFileId());
file.status || (file.status = "success");
}
}, { immediate: true, deep: true });
return {
uploadFiles,
abort,
clearFiles,
handleError,
handleProgress,
handleStart,
handleSuccess,
handleRemove,
submit,
revokeFileObjectURL
};
};
const __default__$1 = vue.defineComponent({
name: "ElUpload"
});
const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
...__default__$1,
props: uploadProps,
setup(__props, { expose }) {
const props = __props;
const disabled = useFormDisabled();
const uploadRef = vue.shallowRef();
const {
abort,
submit,
clearFiles,
uploadFiles,
handleStart,
handleError,
handleRemove,
handleSuccess,
handleProgress,
revokeFileObjectURL: revokeFileObjectURL2
} = useHandlers(props, uploadRef);
const isPictureCard = vue.computed(() => props.listType === "picture-card");
const uploadContentProps2 = vue.computed(() => ({
...props,
fileList: uploadFiles.value,
onStart: handleStart,
onProgress: handleProgress,
onSuccess: handleSuccess,
onError: handleError,
onRemove: handleRemove
}));
vue.onBeforeUnmount(() => {
uploadFiles.value.forEach(revokeFileObjectURL2);
});
vue.provide(uploadContextKey, {
accept: vue.toRef(props, "accept")
});
expose({
abort,
submit,
clearFiles,
handleStart,
handleRemove
});
return (_ctx, _cache) => {
return vue.openBlock(), vue.createElementBlock("div", null, [
vue.unref(isPictureCard) && _ctx.showFileList ? (vue.openBlock(), vue.createBlock(UploadList, {
key: 0,
disabled: vue.unref(disabled),
"list-type": _ctx.listType,
files: vue.unref(uploadFiles),
crossorigin: _ctx.crossorigin,
"handle-preview": _ctx.onPreview,
onRemove: vue.unref(handleRemove)
}, vue.createSlots({
append: vue.withCtx(() => [
vue.createVNode(UploadContent, vue.mergeProps({
ref_key: "uploadRef",
ref: uploadRef
}, vue.unref(uploadContentProps2)), {
default: vue.withCtx(() => [
_ctx.$slots.trigger ? vue.renderSlot(_ctx.$slots, "trigger", { key: 0 }) : vue.createCommentVNode("v-if", true),
!_ctx.$slots.trigger && _ctx.$slots.default ? vue.renderSlot(_ctx.$slots, "default", { key: 1 }) : vue.createCommentVNode("v-if", true)
]),
_: 3
}, 16)
]),
_: 2
}, [
_ctx.$slots.file ? {
name: "default",
fn: vue.withCtx(({ file, index }) => [
vue.renderSlot(_ctx.$slots, "file", {
file,
index
})
])
} : void 0
]), 1032, ["disabled", "list-type", "files", "crossorigin", "handle-preview", "onRemove"])) : vue.createCommentVNode("v-if", true),
!vue.unref(isPictureCard) || vue.unref(isPictureCard) && !_ctx.showFileList ? (vue.openBlock(), vue.createBlock(UploadContent, vue.mergeProps({
key: 1,
ref_key: "uploadRef",
ref: uploadRef
}, vue.unref(uploadContentProps2)), {
default: vue.withCtx(() => [
_ctx.$slots.trigger ? vue.renderSlot(_ctx.$slots, "trigger", { key: 0 }) : vue.createCommentVNode("v-if", true),
!_ctx.$slots.trigger && _ctx.$slots.default ? vue.renderSlot(_ctx.$slots, "default", { key: 1 }) : vue.createCommentVNode("v-if", true)
]),
_: 3
}, 16)) : vue.createCommentVNode("v-if", true),
_ctx.$slots.trigger ? vue.renderSlot(_ctx.$slots, "default", { key: 2 }) : vue.createCommentVNode("v-if", true),
vue.renderSlot(_ctx.$slots, "tip"),
!vue.unref(isPictureCard) && _ctx.showFileList ? (vue.openBlock(), vue.createBlock(UploadList, {
key: 3,
disabled: vue.unref(disabled),
"list-type": _ctx.listType,
files: vue.unref(uploadFiles),
crossorigin: _ctx.crossorigin,
"handle-preview": _ctx.onPreview,
onRemove: vue.unref(handleRemove)
}, vue.createSlots({
_: 2
}, [
_ctx.$slots.file ? {
name: "default",
fn: vue.withCtx(({ file, index }) => [
vue.renderSlot(_ctx.$slots, "file", {
file,
index
})
])
} : void 0
]), 1032, ["disabled", "list-type", "files", "crossorigin", "handle-preview", "onRemove"])) : vue.createCommentVNode("v-if", true)
]);
};
}
});
var Upload = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["__file", "upload.vue"]]);
const ElUpload = withInstall(Upload);
function createLoadingComponent(options) {
let afterLeaveTimer;
const afterLeaveFlag = vue.ref(false);
const data = vue.reactive({
...options,
originalPosition: "",
originalOverflow: "",
visible: false
});
function setText(text) {
data.text = text;
}
function destroySelf() {
const target = data.parent;
const ns = vm.ns;
if (!target.vLoadingAddClassList) {
let loadingNumber = target.getAttribute("loading-number");
loadingNumber = Number.parseInt(loadingNumber) - 1;
if (!loadingNumber) {
removeClass(target, ns.bm("parent", "relative"));
target.removeAttribute("loading-number");
} else {
target.setAttribute("loading-number", loadingNumber.toString());
}
removeClass(target, ns.bm("parent", "hidden"));
}
removeElLoadingChild();
loadingInstance.unmount();
}
function removeElLoadingChild() {
var _a2, _b;
(_b = (_a2 = vm.$el) == null ? void 0 : _a2.parentNode) == null ? void 0 : _b.removeChild(vm.$el);
}
function close2() {
var _a2;
if (options.beforeClose && !options.beforeClose())
return;
afterLeaveFlag.value = true;
clearTimeout(afterLeaveTimer);
afterLeaveTimer = setTimeout(handleAfterLeave, 400);
data.visible = false;
(_a2 = options.closed) == null ? void 0 : _a2.call(options);
}
function handleAfterLeave() {
if (!afterLeaveFlag.value)
return;
const target = data.parent;
afterLeaveFlag.value = false;
target.vLoadingAddClassList = void 0;
destroySelf();
}
const elLoadingComponent = vue.defineComponent({
name: "ElLoading",
setup(_2, { expose }) {
const { ns, zIndex: zIndex2 } = useGlobalComponentSettings("loading");
expose({
ns,
zIndex: zIndex2
});
return () => {
const svg = data.spinner || data.svg;
const spinner = vue.h("svg", {
class: "circular",
viewBox: data.svgViewBox ? data.svgViewBox : "0 0 50 50",
...svg ? { innerHTML: svg } : {}
}, [
vue.h("circle", {
class: "path",
cx: "25",
cy: "25",
r: "20",
fill: "none"
})
]);
const spinnerText = data.text ? vue.h("p", { class: ns.b("text") }, [data.text]) : void 0;
return vue.h(vue.Transition, {
name: ns.b("fade"),
onAfterLeave: handleAfterLeave
}, {
default: vue.withCtx(() => [
vue.withDirectives(vue.createVNode("div", {
style: {
backgroundColor: data.background || ""
},
class: [
ns.b("mask"),
data.customClass,
data.fullscreen ? "is-fullscreen" : ""
]
}, [
vue.h("div", {
class: ns.b("spinner")
}, [spinner, spinnerText])
]), [[vue.vShow, data.visible]])
])
});
};
}
});
const loadingInstance = vue.createApp(elLoadingComponent);
const vm = loadingInstance.mount(document.createElement("div"));
return {
...vue.toRefs(data),
setText,
removeElLoadingChild,
close: close2,
handleAfterLeave,
vm,
get $el() {
return vm.$el;
}
};
}
let fullscreenInstance = void 0;
const Loading = function(options = {}) {
if (!isClient)
return void 0;
const resolved = resolveOptions(options);
if (resolved.fullscreen && fullscreenInstance) {
return fullscreenInstance;
}
const instance = createLoadingComponent({
...resolved,
closed: () => {
var _a2;
(_a2 = resolved.closed) == null ? void 0 : _a2.call(resolved);
if (resolved.fullscreen)
fullscreenInstance = void 0;
}
});
addStyle(resolved, resolved.parent, instance);
addClassList(resolved, resolved.parent, instance);
resolved.parent.vLoadingAddClassList = () => addClassList(resolved, resolved.parent, instance);
let loadingNumber = resolved.parent.getAttribute("loading-number");
if (!loadingNumber) {
loadingNumber = "1";
} else {
loadingNumber = `${Number.parseInt(loadingNumber) + 1}`;
}
resolved.parent.setAttribute("loading-number", loadingNumber);
resolved.parent.appendChild(instance.$el);
vue.nextTick(() => instance.visible.value = resolved.visible);
if (resolved.fullscreen) {
fullscreenInstance = instance;
}
return instance;
};
const resolveOptions = (options) => {
var _a2, _b, _c, _d;
let target;
if (isString(options.target)) {
target = (_a2 = document.querySelector(options.target)) != null ? _a2 : document.body;
} else {
target = options.target || document.body;
}
return {
parent: target === document.body || options.body ? document.body : target,
background: options.background || "",
svg: options.svg || "",
svgViewBox: options.svgViewBox || "",
spinner: options.spinner || false,
text: options.text || "",
fullscreen: target === document.body && ((_b = options.fullscreen) != null ? _b : true),
lock: (_c = options.lock) != null ? _c : false,
customClass: options.customClass || "",
visible: (_d = options.visible) != null ? _d : true,
beforeClose: options.beforeClose,
closed: options.closed,
target
};
};
const addStyle = async (options, parent, instance) => {
const { nextZIndex } = instance.vm.zIndex || instance.vm._.exposed.zIndex;
const maskStyle = {};
if (options.fullscreen) {
instance.originalPosition.value = getStyle(document.body, "position");
instance.originalOverflow.value = getStyle(document.body, "overflow");
maskStyle.zIndex = nextZIndex();
} else if (options.parent === document.body) {
instance.originalPosition.value = getStyle(document.body, "position");
await vue.nextTick();
for (const property2 of ["top", "left"]) {
const scroll = property2 === "top" ? "scrollTop" : "scrollLeft";
maskStyle[property2] = `${options.target.getBoundingClientRect()[property2] + document.body[scroll] + document.documentElement[scroll] - Number.parseInt(getStyle(document.body, `margin-${property2}`), 10)}px`;
}
for (const property2 of ["height", "width"]) {
maskStyle[property2] = `${options.target.getBoundingClientRect()[property2]}px`;
}
} else {
instance.originalPosition.value = getStyle(parent, "position");
}
for (const [key, value] of Object.entries(maskStyle)) {
instance.$el.style[key] = value;
}
};
const addClassList = (options, parent, instance) => {
const ns = instance.vm.ns || instance.vm._.exposed.ns;
if (!["absolute", "fixed", "sticky"].includes(instance.originalPosition.value)) {
addClass(parent, ns.bm("parent", "relative"));
} else {
removeClass(parent, ns.bm("parent", "relative"));
}
if (options.fullscreen && options.lock) {
addClass(parent, ns.bm("parent", "hidden"));
} else {
removeClass(parent, ns.bm("parent", "hidden"));
}
};
const INSTANCE_KEY = Symbol("ElLoading");
const createInstance = (el, binding) => {
var _a2, _b, _c, _d;
const vm = binding.instance;
const getBindingProp = (key) => isObject$1(binding.value) ? binding.value[key] : void 0;
const resolveExpression = (key) => {
const data = isString(key) && (vm == null ? void 0 : vm[key]) || key;
if (data)
return vue.ref(data);
else
return data;
};
const getProp = (name) => resolveExpression(getBindingProp(name) || el.getAttribute(`element-loading-${hyphenate(name)}`));
const fullscreen = (_a2 = getBindingProp("fullscreen")) != null ? _a2 : binding.modifiers.fullscreen;
const options = {
text: getProp("text"),
svg: getProp("svg"),
svgViewBox: getProp("svgViewBox"),
spinner: getProp("spinner"),
background: getProp("background"),
customClass: getProp("customClass"),
fullscreen,
target: (_b = getBindingProp("target")) != null ? _b : fullscreen ? void 0 : el,
body: (_c = getBindingProp("body")) != null ? _c : binding.modifiers.body,
lock: (_d = getBindingProp("lock")) != null ? _d : binding.modifiers.lock
};
el[INSTANCE_KEY] = {
options,
instance: Loading(options)
};
};
const updateOptions = (newOptions, originalOptions) => {
for (const key of Object.keys(originalOptions)) {
if (vue.isRef(originalOptions[key]))
originalOptions[key].value = newOptions[key];
}
};
const vLoading = {
mounted(el, binding) {
if (binding.value) {
createInstance(el, binding);
}
},
updated(el, binding) {
const instance = el[INSTANCE_KEY];
if (binding.oldValue !== binding.value) {
if (binding.value && !binding.oldValue) {
createInstance(el, binding);
} else if (binding.value && binding.oldValue) {
if (isObject$1(binding.value))
updateOptions(binding.value, instance.options);
} else {
instance == null ? void 0 : instance.instance.close();
}
}
},
unmounted(el) {
var _a2;
(_a2 = el[INSTANCE_KEY]) == null ? void 0 : _a2.instance.close();
el[INSTANCE_KEY] = null;
}
};
const _sfc_main$c = vue.defineComponent({
name: "ElMessageBox",
directives: {
TrapFocus
},
components: {
ElButton,
ElFocusTrap,
ElInput,
ElOverlay,
ElIcon,
...TypeComponents
},
inheritAttrs: false,
props: {
buttonSize: {
type: String,
validator: isValidComponentSize
},
modal: {
type: Boolean,
default: true
},
lockScroll: {
type: Boolean,
default: true
},
showClose: {
type: Boolean,
default: true
},
closeOnClickModal: {
type: Boolean,
default: true
},
closeOnPressEscape: {
type: Boolean,
default: true
},
closeOnHashChange: {
type: Boolean,
default: true
},
center: Boolean,
draggable: Boolean,
overflow: Boolean,
roundButton: {
default: false,
type: Boolean
},
container: {
type: String,
default: "body"
},
boxType: {
type: String,
default: ""
}
},
emits: ["vanish", "action"],
setup(props, { emit }) {
const {
locale,
zIndex: zIndex2,
ns,
size: btnSize
} = useGlobalComponentSettings("message-box", vue.computed(() => props.buttonSize));
const { t } = locale;
const { nextZIndex } = zIndex2;
const visible = vue.ref(false);
const state = vue.reactive({
autofocus: true,
beforeClose: null,
callback: null,
cancelButtonText: "",
cancelButtonClass: "",
confirmButtonText: "",
confirmButtonClass: "",
customClass: "",
customStyle: {},
dangerouslyUseHTMLString: false,
distinguishCancelAndClose: false,
icon: "",
inputPattern: null,
inputPlaceholder: "",
inputType: "text",
inputValue: null,
inputValidator: null,
inputErrorMessage: "",
message: null,
modalFade: true,
modalClass: "",
showCancelButton: false,
showConfirmButton: true,
type: "",
title: void 0,
showInput: false,
action: "",
confirmButtonLoading: false,
cancelButtonLoading: false,
confirmButtonLoadingIcon: vue.markRaw(loading_default),
cancelButtonLoadingIcon: vue.markRaw(loading_default),
confirmButtonDisabled: false,
editorErrorMessage: "",
validateError: false,
zIndex: nextZIndex()
});
const typeClass = vue.computed(() => {
const type = state.type;
return { [ns.bm("icon", type)]: type && TypeComponentsMap[type] };
});
const contentId = useId();
const inputId = useId();
const iconComponent = vue.computed(() => state.icon || TypeComponentsMap[state.type] || "");
const hasMessage = vue.computed(() => !!state.message);
const rootRef = vue.ref();
const headerRef = vue.ref();
const focusStartRef = vue.ref();
const inputRef = vue.ref();
const confirmRef = vue.ref();
const confirmButtonClasses = vue.computed(() => state.confirmButtonClass);
vue.watch(() => state.inputValue, async (val) => {
await vue.nextTick();
if (props.boxType === "prompt" && val !== null) {
validate();
}
}, { immediate: true });
vue.watch(() => visible.value, (val) => {
var _a2, _b;
if (val) {
if (props.boxType !== "prompt") {
if (state.autofocus) {
focusStartRef.value = (_b = (_a2 = confirmRef.value) == null ? void 0 : _a2.$el) != null ? _b : rootRef.value;
} else {
focusStartRef.value = rootRef.value;
}
}
state.zIndex = nextZIndex();
}
if (props.boxType !== "prompt")
return;
if (val) {
vue.nextTick().then(() => {
var _a22;
if (inputRef.value && inputRef.value.$el) {
if (state.autofocus) {
focusStartRef.value = (_a22 = getInputElement()) != null ? _a22 : rootRef.value;
} else {
focusStartRef.value = rootRef.value;
}
}
});
} else {
state.editorErrorMessage = "";
state.validateError = false;
}
});
const draggable2 = vue.computed(() => props.draggable);
const overflow = vue.computed(() => props.overflow);
useDraggable(rootRef, headerRef, draggable2, overflow);
vue.onMounted(async () => {
await vue.nextTick();
if (props.closeOnHashChange) {
window.addEventListener("hashchange", doClose);
}
});
vue.onBeforeUnmount(() => {
if (props.closeOnHashChange) {
window.removeEventListener("hashchange", doClose);
}
});
function doClose() {
if (!visible.value)
return;
visible.value = false;
vue.nextTick(() => {
if (state.action)
emit("action", state.action);
});
}
const handleWrapperClick = () => {
if (props.closeOnClickModal) {
handleAction(state.distinguishCancelAndClose ? "close" : "cancel");
}
};
const overlayEvent = useSameTarget(handleWrapperClick);
const handleInputEnter = (e) => {
if (state.inputType !== "textarea") {
e.preventDefault();
return handleAction("confirm");
}
};
const handleAction = (action) => {
var _a2;
if (props.boxType === "prompt" && action === "confirm" && !validate()) {
return;
}
state.action = action;
if (state.beforeClose) {
(_a2 = state.beforeClose) == null ? void 0 : _a2.call(state, action, state, doClose);
} else {
doClose();
}
};
const validate = () => {
if (props.boxType === "prompt") {
const inputPattern = state.inputPattern;
if (inputPattern && !inputPattern.test(state.inputValue || "")) {
state.editorErrorMessage = state.inputErrorMessage || t("el.messagebox.error");
state.validateError = true;
return false;
}
const inputValidator = state.inputValidator;
if (typeof inputValidator === "function") {
const validateResult = inputValidator(state.inputValue);
if (validateResult === false) {
state.editorErrorMessage = state.inputErrorMessage || t("el.messagebox.error");
state.validateError = true;
return false;
}
if (typeof validateResult === "string") {
state.editorErrorMessage = validateResult;
state.validateError = true;
return false;
}
}
}
state.editorErrorMessage = "";
state.validateError = false;
return true;
};
const getInputElement = () => {
const inputRefs = inputRef.value.$refs;
return inputRefs.input || inputRefs.textarea;
};
const handleClose = () => {
handleAction("close");
};
const onCloseRequested = () => {
if (props.closeOnPressEscape) {
handleClose();
}
};
if (props.lockScroll) {
useLockscreen(visible);
}
return {
...vue.toRefs(state),
ns,
overlayEvent,
visible,
hasMessage,
typeClass,
contentId,
inputId,
btnSize,
iconComponent,
confirmButtonClasses,
rootRef,
focusStartRef,
headerRef,
inputRef,
confirmRef,
doClose,
handleClose,
onCloseRequested,
handleWrapperClick,
handleInputEnter,
handleAction,
t
};
}
});
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
const _component_el_icon = vue.resolveComponent("el-icon");
const _component_close = vue.resolveComponent("close");
const _component_el_input = vue.resolveComponent("el-input");
const _component_el_button = vue.resolveComponent("el-button");
const _component_el_focus_trap = vue.resolveComponent("el-focus-trap");
const _component_el_overlay = vue.resolveComponent("el-overlay");
return vue.openBlock(), vue.createBlock(vue.Transition, {
name: "fade-in-linear",
onAfterLeave: ($event) => _ctx.$emit("vanish"),
persisted: ""
}, {
default: vue.withCtx(() => [
vue.withDirectives(vue.createVNode(_component_el_overlay, {
"z-index": _ctx.zIndex,
"overlay-class": [_ctx.ns.is("message-box"), _ctx.modalClass],
mask: _ctx.modal
}, {
default: vue.withCtx(() => [
vue.createElementVNode("div", {
role: "dialog",
"aria-label": _ctx.title,
"aria-modal": "true",
"aria-describedby": !_ctx.showInput ? _ctx.contentId : void 0,
class: vue.normalizeClass(`${_ctx.ns.namespace.value}-overlay-message-box`),
onClick: _ctx.overlayEvent.onClick,
onMousedown: _ctx.overlayEvent.onMousedown,
onMouseup: _ctx.overlayEvent.onMouseup
}, [
vue.createVNode(_component_el_focus_trap, {
loop: "",
trapped: _ctx.visible,
"focus-trap-el": _ctx.rootRef,
"focus-start-el": _ctx.focusStartRef,
onReleaseRequested: _ctx.onCloseRequested
}, {
default: vue.withCtx(() => [
vue.createElementVNode("div", {
ref: "rootRef",
class: vue.normalizeClass([
_ctx.ns.b(),
_ctx.customClass,
_ctx.ns.is("draggable", _ctx.draggable),
{ [_ctx.ns.m("center")]: _ctx.center }
]),
style: vue.normalizeStyle(_ctx.customStyle),
tabindex: "-1",
onClick: vue.withModifiers(() => {
}, ["stop"])
}, [
_ctx.title !== null && _ctx.title !== void 0 ? (vue.openBlock(), vue.createElementBlock("div", {
key: 0,
ref: "headerRef",
class: vue.normalizeClass([_ctx.ns.e("header"), { "show-close": _ctx.showClose }])
}, [
vue.createElementVNode("div", {
class: vue.normalizeClass(_ctx.ns.e("title"))
}, [
_ctx.iconComponent && _ctx.center ? (vue.openBlock(), vue.createBlock(_component_el_icon, {
key: 0,
class: vue.normalizeClass([_ctx.ns.e("status"), _ctx.typeClass])
}, {
default: vue.withCtx(() => [
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.iconComponent)))
]),
_: 1
}, 8, ["class"])) : vue.createCommentVNode("v-if", true),
vue.createElementVNode("span", null, vue.toDisplayString(_ctx.title), 1)
], 2),
_ctx.showClose ? (vue.openBlock(), vue.createElementBlock("button", {
key: 0,
type: "button",
class: vue.normalizeClass(_ctx.ns.e("headerbtn")),
"aria-label": _ctx.t("el.messagebox.close"),
onClick: ($event) => _ctx.handleAction(_ctx.distinguishCancelAndClose ? "close" : "cancel"),
onKeydown: vue.withKeys(vue.withModifiers(($event) => _ctx.handleAction(_ctx.distinguishCancelAndClose ? "close" : "cancel"), ["prevent"]), ["enter"])
}, [
vue.createVNode(_component_el_icon, {
class: vue.normalizeClass(_ctx.ns.e("close"))
}, {
default: vue.withCtx(() => [
vue.createVNode(_component_close)
]),
_: 1
}, 8, ["class"])
], 42, ["aria-label", "onClick", "onKeydown"])) : vue.createCommentVNode("v-if", true)
], 2)) : vue.createCommentVNode("v-if", true),
vue.createElementVNode("div", {
id: _ctx.contentId,
class: vue.normalizeClass(_ctx.ns.e("content"))
}, [
vue.createElementVNode("div", {
class: vue.normalizeClass(_ctx.ns.e("container"))
}, [
_ctx.iconComponent && !_ctx.center && _ctx.hasMessage ? (vue.openBlock(), vue.createBlock(_component_el_icon, {
key: 0,
class: vue.normalizeClass([_ctx.ns.e("status"), _ctx.typeClass])
}, {
default: vue.withCtx(() => [
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.iconComponent)))
]),
_: 1
}, 8, ["class"])) : vue.createCommentVNode("v-if", true),
_ctx.hasMessage ? (vue.openBlock(), vue.createElementBlock("div", {
key: 1,
class: vue.normalizeClass(_ctx.ns.e("message"))
}, [
vue.renderSlot(_ctx.$slots, "default", {}, () => [
!_ctx.dangerouslyUseHTMLString ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.showInput ? "label" : "p"), {
key: 0,
for: _ctx.showInput ? _ctx.inputId : void 0
}, {
default: vue.withCtx(() => [
vue.createTextVNode(vue.toDisplayString(!_ctx.dangerouslyUseHTMLString ? _ctx.message : ""), 1)
]),
_: 1
}, 8, ["for"])) : (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.showInput ? "label" : "p"), {
key: 1,
for: _ctx.showInput ? _ctx.inputId : void 0,
innerHTML: _ctx.message
}, null, 8, ["for", "innerHTML"]))
])
], 2)) : vue.createCommentVNode("v-if", true)
], 2),
vue.withDirectives(vue.createElementVNode("div", {
class: vue.normalizeClass(_ctx.ns.e("input"))
}, [
vue.createVNode(_component_el_input, {
id: _ctx.inputId,
ref: "inputRef",
modelValue: _ctx.inputValue,
"onUpdate:modelValue": ($event) => _ctx.inputValue = $event,
type: _ctx.inputType,
placeholder: _ctx.inputPlaceholder,
"aria-invalid": _ctx.validateError,
class: vue.normalizeClass({ invalid: _ctx.validateError }),
onKeydown: vue.withKeys(_ctx.handleInputEnter, ["enter"])
}, null, 8, ["id", "modelValue", "onUpdate:modelValue", "type", "placeholder", "aria-invalid", "class", "onKeydown"]),
vue.createElementVNode("div", {
class: vue.normalizeClass(_ctx.ns.e("errormsg")),
style: vue.normalizeStyle({
visibility: !!_ctx.editorErrorMessage ? "visible" : "hidden"
})
}, vue.toDisplayString(_ctx.editorErrorMessage), 7)
], 2), [
[vue.vShow, _ctx.showInput]
])
], 10, ["id"]),
vue.createElementVNode("div", {
class: vue.normalizeClass(_ctx.ns.e("btns"))
}, [
_ctx.showCancelButton ? (vue.openBlock(), vue.createBlock(_component_el_button, {
key: 0,
loading: _ctx.cancelButtonLoading,
"loading-icon": _ctx.cancelButtonLoadingIcon,
class: vue.normalizeClass([_ctx.cancelButtonClass]),
round: _ctx.roundButton,
size: _ctx.btnSize,
onClick: ($event) => _ctx.handleAction("cancel"),
onKeydown: vue.withKeys(vue.withModifiers(($event) => _ctx.handleAction("cancel"), ["prevent"]), ["enter"])
}, {
default: vue.withCtx(() => [
vue.createTextVNode(vue.toDisplayString(_ctx.cancelButtonText || _ctx.t("el.messagebox.cancel")), 1)
]),
_: 1
}, 8, ["loading", "loading-icon", "class", "round", "size", "onClick", "onKeydown"])) : vue.createCommentVNode("v-if", true),
vue.withDirectives(vue.createVNode(_component_el_button, {
ref: "confirmRef",
type: "primary",
loading: _ctx.confirmButtonLoading,
"loading-icon": _ctx.confirmButtonLoadingIcon,
class: vue.normalizeClass([_ctx.confirmButtonClasses]),
round: _ctx.roundButton,
disabled: _ctx.confirmButtonDisabled,
size: _ctx.btnSize,
onClick: ($event) => _ctx.handleAction("confirm"),
onKeydown: vue.withKeys(vue.withModifiers(($event) => _ctx.handleAction("confirm"), ["prevent"]), ["enter"])
}, {
default: vue.withCtx(() => [
vue.createTextVNode(vue.toDisplayString(_ctx.confirmButtonText || _ctx.t("el.messagebox.confirm")), 1)
]),
_: 1
}, 8, ["loading", "loading-icon", "class", "round", "disabled", "size", "onClick", "onKeydown"]), [
[vue.vShow, _ctx.showConfirmButton]
])
], 2)
], 14, ["onClick"])
]),
_: 3
}, 8, ["trapped", "focus-trap-el", "focus-start-el", "onReleaseRequested"])
], 42, ["aria-label", "aria-describedby", "onClick", "onMousedown", "onMouseup"])
]),
_: 3
}, 8, ["z-index", "overlay-class", "mask"]), [
[vue.vShow, _ctx.visible]
])
]),
_: 3
}, 8, ["onAfterLeave"]);
}
var MessageBoxConstructor = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["render", _sfc_render], ["__file", "index.vue"]]);
const messageInstance = /* @__PURE__ */ new Map();
const getAppendToElement = (props) => {
let appendTo = document.body;
if (props.appendTo) {
if (isString(props.appendTo)) {
appendTo = document.querySelector(props.appendTo);
}
if (isElement(props.appendTo)) {
appendTo = props.appendTo;
}
if (!isElement(appendTo)) {
appendTo = document.body;
}
}
return appendTo;
};
const initInstance = (props, container, appContext = null) => {
const vnode = vue.createVNode(MessageBoxConstructor, props, isFunction$1(props.message) || vue.isVNode(props.message) ? {
default: isFunction$1(props.message) ? props.message : () => props.message
} : null);
vnode.appContext = appContext;
vue.render(vnode, container);
getAppendToElement(props).appendChild(container.firstElementChild);
return vnode.component;
};
const genContainer = () => {
return document.createElement("div");
};
const showMessage = (options, appContext) => {
const container = genContainer();
options.onVanish = () => {
vue.render(null, container);
messageInstance.delete(vm);
};
options.onAction = (action) => {
const currentMsg = messageInstance.get(vm);
let resolve;
if (options.showInput) {
resolve = { value: vm.inputValue, action };
} else {
resolve = action;
}
if (options.callback) {
options.callback(resolve, instance.proxy);
} else {
if (action === "cancel" || action === "close") {
if (options.distinguishCancelAndClose && action !== "cancel") {
currentMsg.reject("close");
} else {
currentMsg.reject("cancel");
}
} else {
currentMsg.resolve(resolve);
}
}
};
const instance = initInstance(options, container, appContext);
const vm = instance.proxy;
for (const prop in options) {
if (hasOwn(options, prop) && !hasOwn(vm.$props, prop)) {
vm[prop] = options[prop];
}
}
vm.visible = true;
return vm;
};
function MessageBox(options, appContext = null) {
if (!isClient)
return Promise.reject();
let callback;
if (isString(options) || vue.isVNode(options)) {
options = {
message: options
};
} else {
callback = options.callback;
}
return new Promise((resolve, reject2) => {
const vm = showMessage(options, appContext != null ? appContext : MessageBox._context);
messageInstance.set(vm, {
options,
callback,
resolve,
reject: reject2
});
});
}
const MESSAGE_BOX_VARIANTS = ["alert", "confirm", "prompt"];
const MESSAGE_BOX_DEFAULT_OPTS = {
alert: { closeOnPressEscape: false, closeOnClickModal: false },
confirm: { showCancelButton: true },
prompt: { showCancelButton: true, showInput: true }
};
MESSAGE_BOX_VARIANTS.forEach((boxType) => {
MessageBox[boxType] = messageBoxFactory(boxType);
});
function messageBoxFactory(boxType) {
return (message, title, options, appContext) => {
let titleOrOpts = "";
if (isObject$1(title)) {
options = title;
titleOrOpts = "";
} else if (isUndefined(title)) {
titleOrOpts = "";
} else {
titleOrOpts = title;
}
return MessageBox(Object.assign({
title: titleOrOpts,
message,
type: "",
...MESSAGE_BOX_DEFAULT_OPTS[boxType]
}, options, {
boxType
}), appContext);
};
}
MessageBox.close = () => {
messageInstance.forEach((_2, vm) => {
vm.doClose();
});
messageInstance.clear();
};
MessageBox._context = null;
const _MessageBox = MessageBox;
_MessageBox.install = (app2) => {
_MessageBox._context = app2._context;
app2.config.globalProperties.$msgbox = _MessageBox;
app2.config.globalProperties.$messageBox = _MessageBox;
app2.config.globalProperties.$alert = _MessageBox.alert;
app2.config.globalProperties.$confirm = _MessageBox.confirm;
app2.config.globalProperties.$prompt = _MessageBox.prompt;
};
const ElMessageBox = _MessageBox;
const notificationTypes = [
"success",
"info",
"warning",
"error"
];
const notificationProps = buildProps({
customClass: {
type: String,
default: ""
},
dangerouslyUseHTMLString: Boolean,
duration: {
type: Number,
default: 4500
},
icon: {
type: iconPropType
},
id: {
type: String,
default: ""
},
message: {
type: definePropType([String, Object]),
default: ""
},
offset: {
type: Number,
default: 0
},
onClick: {
type: definePropType(Function),
default: () => void 0
},
onClose: {
type: definePropType(Function),
required: true
},
position: {
type: String,
values: ["top-right", "top-left", "bottom-right", "bottom-left"],
default: "top-right"
},
showClose: {
type: Boolean,
default: true
},
title: {
type: String,
default: ""
},
type: {
type: String,
values: [...notificationTypes, ""],
default: ""
},
zIndex: Number
});
const notificationEmits = {
destroy: () => true
};
const __default__ = vue.defineComponent({
name: "ElNotification"
});
const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
...__default__,
props: notificationProps,
emits: notificationEmits,
setup(__props, { expose }) {
const props = __props;
const { ns, zIndex: zIndex2 } = useGlobalComponentSettings("notification");
const { nextZIndex, currentZIndex } = zIndex2;
const { Close } = CloseComponents;
const visible = vue.ref(false);
let timer = void 0;
const typeClass = vue.computed(() => {
const type = props.type;
return type && TypeComponentsMap[props.type] ? ns.m(type) : "";
});
const iconComponent = vue.computed(() => {
if (!props.type)
return props.icon;
return TypeComponentsMap[props.type] || props.icon;
});
const horizontalClass = vue.computed(() => props.position.endsWith("right") ? "right" : "left");
const verticalProperty = vue.computed(() => props.position.startsWith("top") ? "top" : "bottom");
const positionStyle = vue.computed(() => {
var _a2;
return {
[verticalProperty.value]: `${props.offset}px`,
zIndex: (_a2 = props.zIndex) != null ? _a2 : currentZIndex.value
};
});
function startTimer() {
if (props.duration > 0) {
({ stop: timer } = useTimeoutFn(() => {
if (visible.value)
close2();
}, props.duration));
}
}
function clearTimer() {
timer == null ? void 0 : timer();
}
function close2() {
visible.value = false;
}
function onKeydown({ code }) {
if (code === EVENT_CODE.delete || code === EVENT_CODE.backspace) {
clearTimer();
} else if (code === EVENT_CODE.esc) {
if (visible.value) {
close2();
}
} else {
startTimer();
}
}
vue.onMounted(() => {
startTimer();
nextZIndex();
visible.value = true;
});
useEventListener(document, "keydown", onKeydown);
expose({
visible,
close: close2
});
return (_ctx, _cache) => {
return vue.openBlock(), vue.createBlock(vue.Transition, {
name: vue.unref(ns).b("fade"),
onBeforeLeave: _ctx.onClose,
onAfterLeave: ($event) => _ctx.$emit("destroy"),
persisted: ""
}, {
default: vue.withCtx(() => [
vue.withDirectives(vue.createElementVNode("div", {
id: _ctx.id,
class: vue.normalizeClass([vue.unref(ns).b(), _ctx.customClass, vue.unref(horizontalClass)]),
style: vue.normalizeStyle(vue.unref(positionStyle)),
role: "alert",
onMouseenter: clearTimer,
onMouseleave: startTimer,
onClick: _ctx.onClick
}, [
vue.unref(iconComponent) ? (vue.openBlock(), vue.createBlock(vue.unref(ElIcon), {
key: 0,
class: vue.normalizeClass([vue.unref(ns).e("icon"), vue.unref(typeClass)])
}, {
default: vue.withCtx(() => [
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(vue.unref(iconComponent))))
]),
_: 1
}, 8, ["class"])) : vue.createCommentVNode("v-if", true),
vue.createElementVNode("div", {
class: vue.normalizeClass(vue.unref(ns).e("group"))
}, [
vue.createElementVNode("h2", {
class: vue.normalizeClass(vue.unref(ns).e("title")),
textContent: vue.toDisplayString(_ctx.title)
}, null, 10, ["textContent"]),
vue.withDirectives(vue.createElementVNode("div", {
class: vue.normalizeClass(vue.unref(ns).e("content")),
style: vue.normalizeStyle(!!_ctx.title ? void 0 : { margin: 0 })
}, [
vue.renderSlot(_ctx.$slots, "default", {}, () => [
!_ctx.dangerouslyUseHTMLString ? (vue.openBlock(), vue.createElementBlock("p", { key: 0 }, vue.toDisplayString(_ctx.message), 1)) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
vue.createCommentVNode(" Caution here, message could've been compromised, never use user's input as message "),
vue.createElementVNode("p", { innerHTML: _ctx.message }, null, 8, ["innerHTML"])
], 2112))
])
], 6), [
[vue.vShow, _ctx.message]
]),
_ctx.showClose ? (vue.openBlock(), vue.createBlock(vue.unref(ElIcon), {
key: 0,
class: vue.normalizeClass(vue.unref(ns).e("closeBtn")),
onClick: vue.withModifiers(close2, ["stop"])
}, {
default: vue.withCtx(() => [
vue.createVNode(vue.unref(Close))
]),
_: 1
}, 8, ["class", "onClick"])) : vue.createCommentVNode("v-if", true)
], 2)
], 46, ["id", "onClick"]), [
[vue.vShow, visible.value]
])
]),
_: 3
}, 8, ["name", "onBeforeLeave", "onAfterLeave"]);
};
}
});
var NotificationConstructor = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__file", "notification.vue"]]);
const notifications = {
"top-left": [],
"top-right": [],
"bottom-left": [],
"bottom-right": []
};
const GAP_SIZE = 16;
let seed = 1;
const notify = function(options = {}, context = null) {
if (!isClient)
return { close: () => void 0 };
if (typeof options === "string" || vue.isVNode(options)) {
options = { message: options };
}
const position = options.position || "top-right";
let verticalOffset = options.offset || 0;
notifications[position].forEach(({ vm: vm2 }) => {
var _a2;
verticalOffset += (((_a2 = vm2.el) == null ? void 0 : _a2.offsetHeight) || 0) + GAP_SIZE;
});
verticalOffset += GAP_SIZE;
const id = `notification_${seed++}`;
const userOnClose = options.onClose;
const props = {
...options,
offset: verticalOffset,
id,
onClose: () => {
close(id, position, userOnClose);
}
};
let appendTo = document.body;
if (isElement(options.appendTo)) {
appendTo = options.appendTo;
} else if (isString(options.appendTo)) {
appendTo = document.querySelector(options.appendTo);
}
if (!isElement(appendTo)) {
appendTo = document.body;
}
const container = document.createElement("div");
const vm = vue.createVNode(NotificationConstructor, props, vue.isVNode(props.message) ? {
default: () => props.message
} : null);
vm.appContext = context != null ? context : notify._context;
vm.props.onDestroy = () => {
vue.render(null, container);
};
vue.render(vm, container);
notifications[position].push({ vm });
appendTo.appendChild(container.firstElementChild);
return {
close: () => {
vm.component.exposed.visible.value = false;
}
};
};
notificationTypes.forEach((type) => {
notify[type] = (options = {}) => {
if (typeof options === "string" || vue.isVNode(options)) {
options = {
message: options
};
}
return notify({
...options,
type
});
};
});
function close(id, position, userOnClose) {
const orientedNotifications = notifications[position];
const idx = orientedNotifications.findIndex(({ vm: vm2 }) => {
var _a2;
return ((_a2 = vm2.component) == null ? void 0 : _a2.props.id) === id;
});
if (idx === -1)
return;
const { vm } = orientedNotifications[idx];
if (!vm)
return;
userOnClose == null ? void 0 : userOnClose(vm);
const removedHeight = vm.el.offsetHeight;
const verticalPos = position.split("-")[0];
orientedNotifications.splice(idx, 1);
const len = orientedNotifications.length;
if (len < 1)
return;
for (let i = idx; i < len; i++) {
const { el, component } = orientedNotifications[i].vm;
const pos = Number.parseInt(el.style[verticalPos], 10) - removedHeight - GAP_SIZE;
component.props.offset = pos;
}
}
function closeAll() {
for (const orientedNotifications of Object.values(notifications)) {
orientedNotifications.forEach(({ vm }) => {
vm.component.exposed.visible.value = false;
});
}
}
notify.closeAll = closeAll;
notify._context = null;
const ElNotification = withInstallFunction(notify, "$notify");
const _hoisted_1$8 = {
viewBox: "0 0 1024 1024",
width: "1.2em",
height: "1.2em"
};
function render(_ctx, _cache) {
return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$8, _cache[0] || (_cache[0] = [
vue.createElementVNode("path", {
fill: "currentColor",
d: "M544 864V672h128L512 480L352 672h128v192H320v-1.6c-5.376.32-10.496 1.6-16 1.6A240 240 0 0 1 64 624c0-123.136 93.12-223.488 212.608-237.248A239.81 239.81 0 0 1 512 192a239.87 239.87 0 0 1 235.456 194.752c119.488 13.76 212.48 114.112 212.48 237.248a240 240 0 0 1-240 240c-5.376 0-10.56-1.28-16-1.6v1.6z"
}, null, -1)
]));
}
const __unplugin_components_4 = vue.markRaw({ name: "ep-upload-filled", render });
/*!
* Compressor.js v1.2.1
* https://fengyuanchen.github.io/compressorjs
*
* Copyright 2018-present Chen Fengyuan
* Released under the MIT license
*
* Date: 2023-02-28T14:09:41.732Z
*/
function ownKeys(object2, enumerableOnly) {
var keys2 = Object.keys(object2);
if (Object.getOwnPropertySymbols) {
var symbols = Object.getOwnPropertySymbols(object2);
enumerableOnly && (symbols = symbols.filter(function(sym) {
return Object.getOwnPropertyDescriptor(object2, sym).enumerable;
})), keys2.push.apply(keys2, symbols);
}
return keys2;
}
function _objectSpread2(target) {
for (var i = 1; i < arguments.length; i++) {
var source = null != arguments[i] ? arguments[i] : {};
i % 2 ? ownKeys(Object(source), true).forEach(function(key) {
_defineProperty(target, key, source[key]);
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function(key) {
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
});
}
return target;
}
function _classCallCheck(instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
}
function _defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor) descriptor.writable = true;
Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);
}
}
function _createClass(Constructor, protoProps, staticProps) {
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
if (staticProps) _defineProperties(Constructor, staticProps);
Object.defineProperty(Constructor, "prototype", {
writable: false
});
return Constructor;
}
function _defineProperty(obj, key, value) {
key = _toPropertyKey(key);
if (key in obj) {
Object.defineProperty(obj, key, {
value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
}
function _extends() {
_extends = Object.assign ? Object.assign.bind() : function(target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i];
for (var key in source) {
if (Object.prototype.hasOwnProperty.call(source, key)) {
target[key] = source[key];
}
}
}
return target;
};
return _extends.apply(this, arguments);
}
function _toPrimitive(input, hint) {
if (typeof input !== "object" || input === null) return input;
var prim = input[Symbol.toPrimitive];
if (prim !== void 0) {
var res = prim.call(input, hint || "default");
if (typeof res !== "object") return res;
throw new TypeError("@@toPrimitive must return a primitive value.");
}
return (hint === "string" ? String : Number)(input);
}
function _toPropertyKey(arg) {
var key = _toPrimitive(arg, "string");
return typeof key === "symbol" ? key : String(key);
}
var canvasToBlob = { exports: {} };
(function(module2) {
if (typeof window === "undefined") {
return;
}
(function(window2) {
var CanvasPrototype = window2.HTMLCanvasElement && window2.HTMLCanvasElement.prototype;
var hasBlobConstructor = window2.Blob && function() {
try {
return Boolean(new Blob());
} catch (e) {
return false;
}
}();
var hasArrayBufferViewSupport = hasBlobConstructor && window2.Uint8Array && function() {
try {
return new Blob([new Uint8Array(100)]).size === 100;
} catch (e) {
return false;
}
}();
var BlobBuilder = window2.BlobBuilder || window2.WebKitBlobBuilder || window2.MozBlobBuilder || window2.MSBlobBuilder;
var dataURIPattern = /^data:((.*?)(;charset=.*?)?)(;base64)?,/;
var dataURLtoBlob = (hasBlobConstructor || BlobBuilder) && window2.atob && window2.ArrayBuffer && window2.Uint8Array && function(dataURI) {
var matches, mediaType, isBase64, dataString, byteString, arrayBuffer, intArray, i, bb;
matches = dataURI.match(dataURIPattern);
if (!matches) {
throw new Error("invalid data URI");
}
mediaType = matches[2] ? matches[1] : "text/plain" + (matches[3] || ";charset=US-ASCII");
isBase64 = !!matches[4];
dataString = dataURI.slice(matches[0].length);
if (isBase64) {
byteString = atob(dataString);
} else {
byteString = decodeURIComponent(dataString);
}
arrayBuffer = new ArrayBuffer(byteString.length);
intArray = new Uint8Array(arrayBuffer);
for (i = 0; i < byteString.length; i += 1) {
intArray[i] = byteString.charCodeAt(i);
}
if (hasBlobConstructor) {
return new Blob([hasArrayBufferViewSupport ? intArray : arrayBuffer], {
type: mediaType
});
}
bb = new BlobBuilder();
bb.append(arrayBuffer);
return bb.getBlob(mediaType);
};
if (window2.HTMLCanvasElement && !CanvasPrototype.toBlob) {
if (CanvasPrototype.mozGetAsFile) {
CanvasPrototype.toBlob = function(callback, type, quality) {
var self2 = this;
setTimeout(function() {
if (quality && CanvasPrototype.toDataURL && dataURLtoBlob) {
callback(dataURLtoBlob(self2.toDataURL(type, quality)));
} else {
callback(self2.mozGetAsFile("blob", type));
}
});
};
} else if (CanvasPrototype.toDataURL && dataURLtoBlob) {
if (CanvasPrototype.msToBlob) {
CanvasPrototype.toBlob = function(callback, type, quality) {
var self2 = this;
setTimeout(function() {
if ((type && type !== "image/png" || quality) && CanvasPrototype.toDataURL && dataURLtoBlob) {
callback(dataURLtoBlob(self2.toDataURL(type, quality)));
} else {
callback(self2.msToBlob(type));
}
});
};
} else {
CanvasPrototype.toBlob = function(callback, type, quality) {
var self2 = this;
setTimeout(function() {
callback(dataURLtoBlob(self2.toDataURL(type, quality)));
});
};
}
}
}
if (module2.exports) {
module2.exports = dataURLtoBlob;
} else {
window2.dataURLtoBlob = dataURLtoBlob;
}
})(window);
})(canvasToBlob);
var toBlob = canvasToBlob.exports;
var isBlob = function isBlob2(value) {
if (typeof Blob === "undefined") {
return false;
}
return value instanceof Blob || Object.prototype.toString.call(value) === "[object Blob]";
};
var DEFAULTS = {
/**
* Indicates if output the original image instead of the compressed one
* when the size of the compressed image is greater than the original one's
* @type {boolean}
*/
strict: true,
/**
* Indicates if read the image's Exif Orientation information,
* and then rotate or flip the image automatically.
* @type {boolean}
*/
checkOrientation: true,
/**
* Indicates if retain the image's Exif information after compressed.
* @type {boolean}
*/
retainExif: false,
/**
* The max width of the output image.
* @type {number}
*/
maxWidth: Infinity,
/**
* The max height of the output image.
* @type {number}
*/
maxHeight: Infinity,
/**
* The min width of the output image.
* @type {number}
*/
minWidth: 0,
/**
* The min height of the output image.
* @type {number}
*/
minHeight: 0,
/**
* The width of the output image.
* If not specified, the natural width of the source image will be used.
* @type {number}
*/
width: void 0,
/**
* The height of the output image.
* If not specified, the natural height of the source image will be used.
* @type {number}
*/
height: void 0,
/**
* Sets how the size of the image should be resized to the container
* specified by the `width` and `height` options.
* @type {string}
*/
resize: "none",
/**
* The quality of the output image.
* It must be a number between `0` and `1`,
* and only available for `image/jpeg` and `image/webp` images.
* Check out {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob canvas.toBlob}.
* @type {number}
*/
quality: 0.8,
/**
* The mime type of the output image.
* By default, the original mime type of the source image file will be used.
* @type {string}
*/
mimeType: "auto",
/**
* Files whose file type is included in this list,
* and whose file size exceeds the `convertSize` value will be converted to JPEGs.
* @type {string|Array}
*/
convertTypes: ["image/png"],
/**
* PNG files over this size (5 MB by default) will be converted to JPEGs.
* To disable this, just set the value to `Infinity`.
* @type {number}
*/
convertSize: 5e6,
/**
* The hook function to execute before draw the image into the canvas for compression.
* @type {Function}
* @param {CanvasRenderingContext2D} context - The 2d rendering context of the canvas.
* @param {HTMLCanvasElement} canvas - The canvas for compression.
* @example
* function (context, canvas) {
* context.fillStyle = '#fff';
* }
*/
beforeDraw: null,
/**
* The hook function to execute after drew the image into the canvas for compression.
* @type {Function}
* @param {CanvasRenderingContext2D} context - The 2d rendering context of the canvas.
* @param {HTMLCanvasElement} canvas - The canvas for compression.
* @example
* function (context, canvas) {
* context.filter = 'grayscale(100%)';
* }
*/
drew: null,
/**
* The hook function to execute when success to compress the image.
* @type {Function}
* @param {File} file - The compressed image File object.
* @example
* function (file) {
* console.log(file);
* }
*/
success: null,
/**
* The hook function to execute when fail to compress the image.
* @type {Function}
* @param {Error} err - An Error object.
* @example
* function (err) {
* console.log(err.message);
* }
*/
error: null
};
var IS_BROWSER = typeof window !== "undefined" && typeof window.document !== "undefined";
var WINDOW = IS_BROWSER ? window : {};
var isPositiveNumber = function isPositiveNumber2(value) {
return value > 0 && value < Infinity;
};
var slice = Array.prototype.slice;
function toArray(value) {
return Array.from ? Array.from(value) : slice.call(value);
}
var REGEXP_IMAGE_TYPE = /^image\/.+$/;
function isImageType(value) {
return REGEXP_IMAGE_TYPE.test(value);
}
function imageTypeToExtension(value) {
var extension = isImageType(value) ? value.substr(6) : "";
if (extension === "jpeg") {
extension = "jpg";
}
return ".".concat(extension);
}
var fromCharCode = String.fromCharCode;
function getStringFromCharCode(dataView, start, length) {
var str = "";
var i;
length += start;
for (i = start; i < length; i += 1) {
str += fromCharCode(dataView.getUint8(i));
}
return str;
}
var btoa = WINDOW.btoa;
function arrayBufferToDataURL(arrayBuffer, mimeType) {
var chunks = [];
var chunkSize = 8192;
var uint8 = new Uint8Array(arrayBuffer);
while (uint8.length > 0) {
chunks.push(fromCharCode.apply(null, toArray(uint8.subarray(0, chunkSize))));
uint8 = uint8.subarray(chunkSize);
}
return "data:".concat(mimeType, ";base64,").concat(btoa(chunks.join("")));
}
function resetAndGetOrientation(arrayBuffer) {
var dataView = new DataView(arrayBuffer);
var orientation;
try {
var littleEndian;
var app1Start;
var ifdStart;
if (dataView.getUint8(0) === 255 && dataView.getUint8(1) === 216) {
var length = dataView.byteLength;
var offset = 2;
while (offset + 1 < length) {
if (dataView.getUint8(offset) === 255 && dataView.getUint8(offset + 1) === 225) {
app1Start = offset;
break;
}
offset += 1;
}
}
if (app1Start) {
var exifIDCode = app1Start + 4;
var tiffOffset = app1Start + 10;
if (getStringFromCharCode(dataView, exifIDCode, 4) === "Exif") {
var endianness = dataView.getUint16(tiffOffset);
littleEndian = endianness === 18761;
if (littleEndian || endianness === 19789) {
if (dataView.getUint16(tiffOffset + 2, littleEndian) === 42) {
var firstIFDOffset = dataView.getUint32(tiffOffset + 4, littleEndian);
if (firstIFDOffset >= 8) {
ifdStart = tiffOffset + firstIFDOffset;
}
}
}
}
}
if (ifdStart) {
var _length = dataView.getUint16(ifdStart, littleEndian);
var _offset;
var i;
for (i = 0; i < _length; i += 1) {
_offset = ifdStart + i * 12 + 2;
if (dataView.getUint16(_offset, littleEndian) === 274) {
_offset += 8;
orientation = dataView.getUint16(_offset, littleEndian);
dataView.setUint16(_offset, 1, littleEndian);
break;
}
}
}
} catch (e) {
orientation = 1;
}
return orientation;
}
function parseOrientation(orientation) {
var rotate = 0;
var scaleX = 1;
var scaleY = 1;
switch (orientation) {
case 2:
scaleX = -1;
break;
case 3:
rotate = -180;
break;
case 4:
scaleY = -1;
break;
case 5:
rotate = 90;
scaleY = -1;
break;
case 6:
rotate = 90;
break;
case 7:
rotate = 90;
scaleX = -1;
break;
case 8:
rotate = -90;
break;
}
return {
rotate,
scaleX,
scaleY
};
}
var REGEXP_DECIMALS = /\.\d*(?:0|9){12}\d*$/;
function normalizeDecimalNumber(value) {
var times2 = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 1e11;
return REGEXP_DECIMALS.test(value) ? Math.round(value * times2) / times2 : value;
}
function getAdjustedSizes(_ref) {
var aspectRatio = _ref.aspectRatio, height = _ref.height, width = _ref.width;
var type = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "none";
var isValidWidth = isPositiveNumber(width);
var isValidHeight = isPositiveNumber(height);
if (isValidWidth && isValidHeight) {
var adjustedWidth = height * aspectRatio;
if ((type === "contain" || type === "none") && adjustedWidth > width || type === "cover" && adjustedWidth < width) {
height = width / aspectRatio;
} else {
width = height * aspectRatio;
}
} else if (isValidWidth) {
height = width / aspectRatio;
} else if (isValidHeight) {
width = height * aspectRatio;
}
return {
width,
height
};
}
function getExif(arrayBuffer) {
var array = toArray(new Uint8Array(arrayBuffer));
var length = array.length;
var segments = [];
var start = 0;
while (start + 3 < length) {
var value = array[start];
var next = array[start + 1];
if (value === 255 && next === 218) {
break;
}
if (value === 255 && next === 216) {
start += 2;
} else {
var offset = array[start + 2] * 256 + array[start + 3];
var end = start + offset + 2;
var segment = array.slice(start, end);
segments.push(segment);
start = end;
}
}
return segments.reduce(function(exifArray, current) {
if (current[0] === 255 && current[1] === 225) {
return exifArray.concat(current);
}
return exifArray;
}, []);
}
function insertExif(arrayBuffer, exifArray) {
var array = toArray(new Uint8Array(arrayBuffer));
if (array[2] !== 255 || array[3] !== 224) {
return arrayBuffer;
}
var app0Length = array[4] * 256 + array[5];
var newArrayBuffer = [255, 216].concat(exifArray, array.slice(4 + app0Length));
return new Uint8Array(newArrayBuffer);
}
var ArrayBuffer$1 = WINDOW.ArrayBuffer, FileReader$1 = WINDOW.FileReader;
var URL$1 = WINDOW.URL || WINDOW.webkitURL;
var REGEXP_EXTENSION = /\.\w+$/;
var AnotherCompressor = WINDOW.Compressor;
var Compressor = /* @__PURE__ */ function() {
function Compressor2(file, options) {
_classCallCheck(this, Compressor2);
this.file = file;
this.exif = [];
this.image = new Image();
this.options = _objectSpread2(_objectSpread2({}, DEFAULTS), options);
this.aborted = false;
this.result = null;
this.init();
}
_createClass(Compressor2, [{
key: "init",
value: function init() {
var _this = this;
var file = this.file, options = this.options;
if (!isBlob(file)) {
this.fail(new Error("The first argument must be a File or Blob object."));
return;
}
var mimeType = file.type;
if (!isImageType(mimeType)) {
this.fail(new Error("The first argument must be an image File or Blob object."));
return;
}
if (!URL$1 || !FileReader$1) {
this.fail(new Error("The current browser does not support image compression."));
return;
}
if (!ArrayBuffer$1) {
options.checkOrientation = false;
options.retainExif = false;
}
var isJPEGImage = mimeType === "image/jpeg";
var checkOrientation = isJPEGImage && options.checkOrientation;
var retainExif = isJPEGImage && options.retainExif;
if (URL$1 && !checkOrientation && !retainExif) {
this.load({
url: URL$1.createObjectURL(file)
});
} else {
var reader = new FileReader$1();
this.reader = reader;
reader.onload = function(_ref) {
var target = _ref.target;
var result2 = target.result;
var data = {};
var orientation = 1;
if (checkOrientation) {
orientation = resetAndGetOrientation(result2);
if (orientation > 1) {
_extends(data, parseOrientation(orientation));
}
}
if (retainExif) {
_this.exif = getExif(result2);
}
if (checkOrientation || retainExif) {
if (!URL$1 || orientation > 1) {
data.url = arrayBufferToDataURL(result2, mimeType);
} else {
data.url = URL$1.createObjectURL(file);
}
} else {
data.url = result2;
}
_this.load(data);
};
reader.onabort = function() {
_this.fail(new Error("Aborted to read the image with FileReader."));
};
reader.onerror = function() {
_this.fail(new Error("Failed to read the image with FileReader."));
};
reader.onloadend = function() {
_this.reader = null;
};
if (checkOrientation || retainExif) {
reader.readAsArrayBuffer(file);
} else {
reader.readAsDataURL(file);
}
}
}
}, {
key: "load",
value: function load(data) {
var _this2 = this;
var file = this.file, image = this.image;
image.onload = function() {
_this2.draw(_objectSpread2(_objectSpread2({}, data), {}, {
naturalWidth: image.naturalWidth,
naturalHeight: image.naturalHeight
}));
};
image.onabort = function() {
_this2.fail(new Error("Aborted to load the image."));
};
image.onerror = function() {
_this2.fail(new Error("Failed to load the image."));
};
if (WINDOW.navigator && /(?:iPad|iPhone|iPod).*?AppleWebKit/i.test(WINDOW.navigator.userAgent)) {
image.crossOrigin = "anonymous";
}
image.alt = file.name;
image.src = data.url;
}
}, {
key: "draw",
value: function draw(_ref2) {
var _this3 = this;
var naturalWidth = _ref2.naturalWidth, naturalHeight = _ref2.naturalHeight, _ref2$rotate = _ref2.rotate, rotate = _ref2$rotate === void 0 ? 0 : _ref2$rotate, _ref2$scaleX = _ref2.scaleX, scaleX = _ref2$scaleX === void 0 ? 1 : _ref2$scaleX, _ref2$scaleY = _ref2.scaleY, scaleY = _ref2$scaleY === void 0 ? 1 : _ref2$scaleY;
var file = this.file, image = this.image, options = this.options;
var canvas = document.createElement("canvas");
var context = canvas.getContext("2d");
var is90DegreesRotated = Math.abs(rotate) % 180 === 90;
var resizable = (options.resize === "contain" || options.resize === "cover") && isPositiveNumber(options.width) && isPositiveNumber(options.height);
var maxWidth = Math.max(options.maxWidth, 0) || Infinity;
var maxHeight = Math.max(options.maxHeight, 0) || Infinity;
var minWidth = Math.max(options.minWidth, 0) || 0;
var minHeight = Math.max(options.minHeight, 0) || 0;
var aspectRatio = naturalWidth / naturalHeight;
var width = options.width, height = options.height;
if (is90DegreesRotated) {
var _ref3 = [maxHeight, maxWidth];
maxWidth = _ref3[0];
maxHeight = _ref3[1];
var _ref4 = [minHeight, minWidth];
minWidth = _ref4[0];
minHeight = _ref4[1];
var _ref5 = [height, width];
width = _ref5[0];
height = _ref5[1];
}
if (resizable) {
aspectRatio = width / height;
}
var _getAdjustedSizes = getAdjustedSizes({
aspectRatio,
width: maxWidth,
height: maxHeight
}, "contain");
maxWidth = _getAdjustedSizes.width;
maxHeight = _getAdjustedSizes.height;
var _getAdjustedSizes2 = getAdjustedSizes({
aspectRatio,
width: minWidth,
height: minHeight
}, "cover");
minWidth = _getAdjustedSizes2.width;
minHeight = _getAdjustedSizes2.height;
if (resizable) {
var _getAdjustedSizes3 = getAdjustedSizes({
aspectRatio,
width,
height
}, options.resize);
width = _getAdjustedSizes3.width;
height = _getAdjustedSizes3.height;
} else {
var _getAdjustedSizes4 = getAdjustedSizes({
aspectRatio,
width,
height
});
var _getAdjustedSizes4$wi = _getAdjustedSizes4.width;
width = _getAdjustedSizes4$wi === void 0 ? naturalWidth : _getAdjustedSizes4$wi;
var _getAdjustedSizes4$he = _getAdjustedSizes4.height;
height = _getAdjustedSizes4$he === void 0 ? naturalHeight : _getAdjustedSizes4$he;
}
width = Math.floor(normalizeDecimalNumber(Math.min(Math.max(width, minWidth), maxWidth)));
height = Math.floor(normalizeDecimalNumber(Math.min(Math.max(height, minHeight), maxHeight)));
var destX = -width / 2;
var destY = -height / 2;
var destWidth = width;
var destHeight = height;
var params = [];
if (resizable) {
var srcX = 0;
var srcY = 0;
var srcWidth = naturalWidth;
var srcHeight = naturalHeight;
var _getAdjustedSizes5 = getAdjustedSizes({
aspectRatio,
width: naturalWidth,
height: naturalHeight
}, {
contain: "cover",
cover: "contain"
}[options.resize]);
srcWidth = _getAdjustedSizes5.width;
srcHeight = _getAdjustedSizes5.height;
srcX = (naturalWidth - srcWidth) / 2;
srcY = (naturalHeight - srcHeight) / 2;
params.push(srcX, srcY, srcWidth, srcHeight);
}
params.push(destX, destY, destWidth, destHeight);
if (is90DegreesRotated) {
var _ref6 = [height, width];
width = _ref6[0];
height = _ref6[1];
}
canvas.width = width;
canvas.height = height;
if (!isImageType(options.mimeType)) {
options.mimeType = file.type;
}
var fillStyle = "transparent";
if (file.size > options.convertSize && options.convertTypes.indexOf(options.mimeType) >= 0) {
options.mimeType = "image/jpeg";
}
var isJPEGImage = options.mimeType === "image/jpeg";
if (isJPEGImage) {
fillStyle = "#fff";
}
context.fillStyle = fillStyle;
context.fillRect(0, 0, width, height);
if (options.beforeDraw) {
options.beforeDraw.call(this, context, canvas);
}
if (this.aborted) {
return;
}
context.save();
context.translate(width / 2, height / 2);
context.rotate(rotate * Math.PI / 180);
context.scale(scaleX, scaleY);
context.drawImage.apply(context, [image].concat(params));
context.restore();
if (options.drew) {
options.drew.call(this, context, canvas);
}
if (this.aborted) {
return;
}
var callback = function callback2(blob) {
if (!_this3.aborted) {
var done = function done2(result2) {
return _this3.done({
naturalWidth,
naturalHeight,
result: result2
});
};
if (blob && isJPEGImage && options.retainExif && _this3.exif && _this3.exif.length > 0) {
var next = function next2(arrayBuffer) {
return done(toBlob(arrayBufferToDataURL(insertExif(arrayBuffer, _this3.exif), options.mimeType)));
};
if (blob.arrayBuffer) {
blob.arrayBuffer().then(next).catch(function() {
_this3.fail(new Error("Failed to read the compressed image with Blob.arrayBuffer()."));
});
} else {
var reader = new FileReader$1();
_this3.reader = reader;
reader.onload = function(_ref7) {
var target = _ref7.target;
next(target.result);
};
reader.onabort = function() {
_this3.fail(new Error("Aborted to read the compressed image with FileReader."));
};
reader.onerror = function() {
_this3.fail(new Error("Failed to read the compressed image with FileReader."));
};
reader.onloadend = function() {
_this3.reader = null;
};
reader.readAsArrayBuffer(blob);
}
} else {
done(blob);
}
}
};
if (canvas.toBlob) {
canvas.toBlob(callback, options.mimeType, options.quality);
} else {
callback(toBlob(canvas.toDataURL(options.mimeType, options.quality)));
}
}
}, {
key: "done",
value: function done(_ref8) {
var naturalWidth = _ref8.naturalWidth, naturalHeight = _ref8.naturalHeight, result2 = _ref8.result;
var file = this.file, image = this.image, options = this.options;
if (URL$1 && image.src.indexOf("blob:") === 0) {
URL$1.revokeObjectURL(image.src);
}
if (result2) {
if (options.strict && !options.retainExif && result2.size > file.size && options.mimeType === file.type && !(options.width > naturalWidth || options.height > naturalHeight || options.minWidth > naturalWidth || options.minHeight > naturalHeight || options.maxWidth < naturalWidth || options.maxHeight < naturalHeight)) {
result2 = file;
} else {
var date = /* @__PURE__ */ new Date();
result2.lastModified = date.getTime();
result2.lastModifiedDate = date;
result2.name = file.name;
if (result2.name && result2.type !== file.type) {
result2.name = result2.name.replace(REGEXP_EXTENSION, imageTypeToExtension(result2.type));
}
}
} else {
result2 = file;
}
this.result = result2;
if (options.success) {
options.success.call(this, result2);
}
}
}, {
key: "fail",
value: function fail(err) {
var options = this.options;
if (options.error) {
options.error.call(this, err);
} else {
throw err;
}
}
}, {
key: "abort",
value: function abort() {
if (!this.aborted) {
this.aborted = true;
if (this.reader) {
this.reader.abort();
} else if (!this.image.complete) {
this.image.onload = null;
this.image.onabort();
} else {
this.fail(new Error("The compression process has been aborted."));
}
}
}
/**
* Get the no conflict compressor class.
* @returns {Compressor} The compressor class.
*/
}], [{
key: "noConflict",
value: function noConflict() {
window.Compressor = AnotherCompressor;
return Compressor2;
}
/**
* Change the default options.
* @param {Object} options - The new default options.
*/
}, {
key: "setDefaults",
value: function setDefaults(options) {
_extends(DEFAULTS, options);
}
}]);
return Compressor2;
}();
const _hoisted_1$7 = { class: "upload-item" };
const _hoisted_2$2 = { class: "cell" };
const _hoisted_3$1 = { class: "cell" };
const _hoisted_4 = { class: "right" };
const _sfc_main$a = {
__name: "UploadItem",
setup(__props) {
const mainStore2 = useMainStore();
const { extendWallpaperBase64Obj } = storeToRefs(mainStore2);
const wallpaperName = vue.ref(generateUniqueDefaultName());
const isCompressor = useConfig("isCompressor", false);
const rate = useConfig("compressorRate", 0.8);
function storeFile(rawFile) {
const reader = new FileReader();
reader.readAsDataURL(rawFile);
reader.onloadend = () => {
mainStore2.appendWallpaper(wallpaperName.value, reader.result);
mainStore2.applyWallpaper(wallpaperName.value);
wallpaperName.value = generateUniqueDefaultName();
};
}
function storeFileCompressor(rawFile) {
new Compressor(rawFile, {
quality: rate.value,
// 压缩质量,0.8 代表 80% 的质量
success(compressedFile) {
storeFile(compressedFile);
}
});
}
function onBeforeUpload(rawFile) {
if (isCompressor.value) {
storeFileCompressor(rawFile);
} else {
storeFile(rawFile);
}
return false;
}
function generateUniqueDefaultName() {
const defaultWallpaperName = "默认壁纸名";
let counter = 0;
while (defaultWallpaperName + counter in extendWallpaperBase64Obj.value) {
counter++;
}
return defaultWallpaperName + counter;
}
return (_ctx, _cache) => {
const _component_el_input = ElInput;
const _component_el_checkbox = ElCheckbox;
const _component_el_tooltip = ElTooltip;
const _component_el_input_number = ElInputNumber;
const _component_i_ep_upload_filled = __unplugin_components_4;
const _component_el_icon = ElIcon;
const _component_el_upload = ElUpload;
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$7, [
vue.createElementVNode("div", _hoisted_2$2, [
_cache[3] || (_cache[3] = vue.createElementVNode("span", { class: "label" }, " 壁纸名: ", -1)),
vue.createVNode(_component_el_input, {
modelValue: wallpaperName.value,
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => wallpaperName.value = $event),
class: "input",
placeholder: "请给壁纸取个名字"
}, null, 8, ["modelValue"])
]),
vue.createElementVNode("div", _hoisted_3$1, [
vue.createVNode(_component_el_checkbox, {
class: "checkbox",
modelValue: vue.unref(isCompressor),
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => vue.isRef(isCompressor) ? isCompressor.value = $event : null),
label: "是否压缩"
}, null, 8, ["modelValue"]),
vue.createElementVNode("div", _hoisted_4, [
vue.createVNode(_component_el_tooltip, {
class: "box-item",
effect: "light",
content: "压缩比越接近1, 越是无损压缩, 但存储时, 图片体积会更大",
placement: "bottom"
}, {
default: vue.withCtx(() => _cache[4] || (_cache[4] = [
vue.createElementVNode("span", { class: "label" }, " 压缩比: ", -1)
])),
_: 1
}),
vue.createVNode(_component_el_input_number, {
modelValue: vue.unref(rate),
"onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => vue.isRef(rate) ? rate.value = $event : null),
min: 0.5,
max: 1,
step: 0.1
}, null, 8, ["modelValue"])
])
]),
vue.createVNode(_component_el_upload, {
multiple: "",
drag: "",
"before-upload": onBeforeUpload
}, {
tip: vue.withCtx(() => _cache[5] || (_cache[5] = [
vue.createElementVNode("div", { class: "el-upload__tip" }, " 正常不需要压缩图片, 支持点击上传多张图片 ", -1)
])),
default: vue.withCtx(() => [
vue.createVNode(_component_el_icon, { class: "el-icon--upload" }, {
default: vue.withCtx(() => [
vue.createVNode(_component_i_ep_upload_filled)
]),
_: 1
}),
_cache[6] || (_cache[6] = vue.createElementVNode("div", { class: "el-upload__text" }, [
vue.createTextVNode(" 将图片拖入框内, 或者"),
vue.createElementVNode("em", null, "点击上传")
], -1))
]),
_: 1
})
]);
};
}
};
const UploadItem = /* @__PURE__ */ _export_sfc$1(_sfc_main$a, [["__scopeId", "data-v-b8caab98"]]);
const _hoisted_1$6 = { class: "wallpaper-pane" };
const _sfc_main$9 = {
__name: "UploadPane",
setup(__props) {
return (_ctx, _cache) => {
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$6, [
vue.createVNode(UploadItem)
]);
};
}
};
const _hoisted_1$5 = { class: "PictureItem" };
const _hoisted_2$1 = { class: "card-header" };
const _hoisted_3 = { class: "card-footer" };
const _sfc_main$8 = {
__name: "PictureItem",
props: {
imgName: {
type: String,
default: ""
},
imgSrc: {
type: String,
default: ""
},
deletable: {
type: Boolean,
default: false
},
lazy: {
type: Boolean,
default: false
}
},
setup(__props) {
const props = __props;
const mainStore2 = useMainStore();
function applyWallpaper() {
mainStore2.applyWallpaper(props.imgName);
}
function renameWallpaper() {
ElMessageBox.prompt("", "修改壁纸名", {
confirmButtonText: "确定",
cancelButtonText: "取消"
}).then(({ value: newName }) => {
mainStore2.renameWallpaper(props.imgName, newName);
ElNotification({
title: "消息",
message: "已修改",
type: "success"
});
}).catch(() => {
});
}
function deleteWallpaper() {
mainStore2.deleteWallpaper(props.imgName);
}
const loading = vue.ref(true);
function onLoadSuccess() {
loading.value = false;
}
return (_ctx, _cache) => {
const _component_el_button = ElButton;
const _component_el_image = ElImage;
const _component_el_card = ElCard;
const _directive_loading = vLoading;
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$5, [
vue.createVNode(_component_el_card, {
class: "card",
shadow: "hover"
}, {
header: vue.withCtx(() => [
vue.createElementVNode("div", _hoisted_2$1, [
vue.createElementVNode("span", null, vue.toDisplayString(__props.imgName), 1),
__props.deletable ? (vue.openBlock(), vue.createBlock(_component_el_button, {
key: 0,
type: "primary",
onClick: renameWallpaper,
class: "header-btn",
plain: ""
}, {
default: vue.withCtx(() => _cache[0] || (_cache[0] = [
vue.createTextVNode("修改")
])),
_: 1
})) : vue.createCommentVNode("", true)
])
]),
footer: vue.withCtx(() => [
vue.createElementVNode("div", _hoisted_3, [
vue.createVNode(_component_el_button, {
type: "primary",
onClick: applyWallpaper,
plain: ""
}, {
default: vue.withCtx(() => _cache[1] || (_cache[1] = [
vue.createTextVNode("应用壁纸")
])),
_: 1
}),
__props.deletable ? (vue.openBlock(), vue.createBlock(_component_el_button, {
key: 0,
type: "danger",
onClick: deleteWallpaper,
plain: ""
}, {
default: vue.withCtx(() => _cache[2] || (_cache[2] = [
vue.createTextVNode("删除")
])),
_: 1
})) : vue.createCommentVNode("", true)
])
]),
default: vue.withCtx(() => [
vue.withDirectives(vue.createVNode(_component_el_image, {
class: "img",
"preview-src-list": [__props.imgSrc],
src: __props.imgSrc,
fit: "cover",
lazy: __props.lazy,
onLoad: onLoadSuccess
}, null, 8, ["preview-src-list", "src", "lazy"]), [
[_directive_loading, loading.value]
])
]),
_: 1
})
]);
};
}
};
const PictureItem = /* @__PURE__ */ _export_sfc$1(_sfc_main$8, [["__scopeId", "data-v-016ce612"]]);
function isObjEmpty(obj) {
return Object.keys(obj).length === 0;
}
const _sfc_main$7 = {
__name: "CollapseItem",
props: {
name: {
type: String,
default: ""
},
height: {
type: String,
default: "40vh"
},
imgObj: {
type: Object,
default: () => ({})
},
deletable: {
type: Boolean,
default: false
},
title: {
type: String,
default: ""
}
},
setup(__props) {
const mainStore2 = useMainStore();
const { tabsCurrSel } = storeToRefs(mainStore2);
function toImportPane() {
tabsCurrSel.value = "0";
}
function clearAll(event) {
event.stopPropagation();
ElMessageBox.confirm("是否要清除所有自定义背景图?", "", {
confirmButtonText: "确定",
cancelButtonText: "取消"
}).then(() => {
mainStore2.emptyWallpaper();
}).catch(() => {
});
}
storeToRefs(mainStore2);
return (_ctx, _cache) => {
const _component_el_button = ElButton;
const _component_el_empty = ElEmpty;
const _component_el_scrollbar = ElScrollbar;
const _component_el_collapse_item = ElCollapseItem;
return vue.openBlock(), vue.createBlock(_component_el_collapse_item, {
class: "collapse-item",
title: __props.title,
name: __props.name
}, vue.createSlots({
default: vue.withCtx(() => [
vue.unref(isObjEmpty)(__props.imgObj) ? (vue.openBlock(), vue.createBlock(_component_el_empty, {
key: 0,
description: "没有自定义壁纸, 请导入壁纸"
}, {
default: vue.withCtx(() => [
vue.createVNode(_component_el_button, {
type: "primary",
onClick: toImportPane
}, {
default: vue.withCtx(() => _cache[1] || (_cache[1] = [
vue.createTextVNode("导入壁纸")
])),
_: 1
})
]),
_: 1
})) : (vue.openBlock(), vue.createBlock(_component_el_scrollbar, {
key: 1,
ref: "scrollRef",
class: "scroll",
"max-height": __props.height
}, {
default: vue.withCtx(() => [
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.imgObj, (imgSrc, imgName, index) => {
return vue.openBlock(), vue.createBlock(PictureItem, {
imgSrc,
imgName,
deletable: __props.deletable,
lazy: index > 1
}, null, 8, ["imgSrc", "imgName", "deletable", "lazy"]);
}), 256))
]),
_: 1
}, 8, ["max-height"]))
]),
_: 2
}, [
__props.deletable ? {
name: "title",
fn: vue.withCtx(() => [
vue.createTextVNode(vue.toDisplayString(__props.title) + " ", 1),
vue.createVNode(_component_el_button, {
class: "clear-all-btn",
onClick: clearAll,
text: "",
type: "danger"
}, {
default: vue.withCtx(() => _cache[0] || (_cache[0] = [
vue.createTextVNode("删除全部")
])),
_: 1
})
]),
key: "0"
} : void 0
]), 1032, ["title", "name"]);
};
}
};
const CollapseItem = /* @__PURE__ */ _export_sfc$1(_sfc_main$7, [["__scopeId", "data-v-97a3db87"]]);
const _hoisted_1$4 = { class: "wallpaper-config" };
const _sfc_main$6 = {
__name: "WallpaperConfig",
setup(__props) {
const mainStore2 = useMainStore();
const { extendWallpaperBase64Obj, collapseCurrSel } = storeToRefs(mainStore2);
return (_ctx, _cache) => {
const _component_el_collapse = ElCollapse;
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$4, [
vue.createVNode(_component_el_collapse, {
modelValue: vue.unref(collapseCurrSel),
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.isRef(collapseCurrSel) ? collapseCurrSel.value = $event : null),
accordion: ""
}, {
default: vue.withCtx(() => [
vue.createVNode(CollapseItem, {
name: "1",
title: "默认壁纸",
imgObj: vue.unref(wallpaperBase64)
}, null, 8, ["imgObj"]),
vue.createVNode(CollapseItem, {
name: "2",
title: "自定义壁纸",
imgObj: vue.unref(extendWallpaperBase64Obj),
deletable: true
}, null, 8, ["imgObj"])
]),
_: 1
}, 8, ["modelValue"])
]);
};
}
};
const _sfc_main$5 = {
__name: "CssVarConfig",
props: /* @__PURE__ */ vue.mergeModels({
default: {
type: [String, Number],
default: 0
},
options: {
type: Array,
default: () => []
},
tip: {
type: String,
default: ""
},
mode: {
type: String,
default: "number"
},
suffix: {
type: String,
default: ""
}
}, {
"modelValue": {},
"modelModifiers": {}
}),
emits: ["update:modelValue"],
setup(__props) {
const props = __props;
const cssVar = vue.useModel(__props, "modelValue");
function setPosDefault() {
cssVar.value = props.default;
}
return (_ctx, _cache) => {
const _component_el_text = ElText;
const _component_el_tooltip = ElTooltip;
const _component_el_option = ElOption;
const _component_el_select = ElSelect;
const _component_el_input_number = ElInputNumber;
const _component_el_button = ElButton;
const _component_el_col = ElCol;
const _component_el_row = ElRow;
return vue.openBlock(), vue.createBlock(_component_el_row, { class: "setting-row" }, {
default: vue.withCtx(() => [
vue.createVNode(_component_el_col, {
class: "setting-container",
span: 24
}, {
default: vue.withCtx(() => [
vue.createVNode(_component_el_tooltip, {
effect: "light",
content: __props.tip,
placement: "bottom",
disabled: __props.tip.length === 0
}, {
default: vue.withCtx(() => [
vue.createVNode(_component_el_text, { class: "input-label" }, {
default: vue.withCtx(() => [
vue.renderSlot(_ctx.$slots, "default", {}, void 0, true)
]),
_: 3
})
]),
_: 3
}, 8, ["content", "disabled"]),
typeof cssVar.value === __props.mode || cssVar.value === null && __props.mode === "number" ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
__props.mode === "string" ? (vue.openBlock(), vue.createBlock(_component_el_select, {
key: 0,
modelValue: cssVar.value,
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => cssVar.value = $event),
placeholder: "Select",
style: { "width": "220px" }
}, {
default: vue.withCtx(() => [
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.options, (item) => {
return vue.openBlock(), vue.createBlock(_component_el_option, {
key: item.value,
label: item.label,
value: item.value
}, null, 8, ["label", "value"]);
}), 128))
]),
_: 1
}, 8, ["modelValue"])) : (vue.openBlock(), vue.createBlock(_component_el_input_number, {
key: 1,
modelValue: cssVar.value,
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => cssVar.value = $event),
step: 10,
style: { "width": "200px" }
}, vue.createSlots({ _: 2 }, [
__props.suffix.length !== 0 ? {
name: "suffix",
fn: vue.withCtx(() => [
vue.createElementVNode("span", null, vue.toDisplayString(__props.suffix), 1)
]),
key: "0"
} : void 0
]), 1032, ["modelValue"]))
], 64)) : (vue.openBlock(), vue.createBlock(_component_el_button, {
key: 1,
type: "primary",
plain: "",
onClick: setPosDefault
}, {
default: vue.withCtx(() => _cache[2] || (_cache[2] = [
vue.createTextVNode("切换设置方式")
])),
_: 1
})),
vue.createVNode(_component_el_button, {
class: "default-btn",
type: "primary",
plain: "",
onClick: setPosDefault
}, {
default: vue.withCtx(() => _cache[3] || (_cache[3] = [
vue.createTextVNode("设为默认值")
])),
_: 1
})
]),
_: 3
})
]),
_: 3
});
};
}
};
const CssVarConfig = /* @__PURE__ */ _export_sfc$1(_sfc_main$5, [["__scopeId", "data-v-e82e761f"]]);
const _sfc_main$4 = {
__name: "BiliConfig",
setup(__props) {
const biliStore = useBiliStore();
const {
displayConfigObj,
displayConfigDescs,
displayConfigCount,
searchBarTopGap,
wallpaperPosX,
wallpaperPosY,
wallpaperSize,
wallpaperBgColor
} = storeToRefs(biliStore);
vue.watch(wallpaperBgColor, () => {
console.log(wallpaperBgColor.value);
});
let COL_COUNT = 4;
const rowCount = vue.computed(() => {
return Math.ceil(displayConfigCount.value / COL_COUNT);
});
function setTopGapDefault() {
searchBarTopGap.value = 35;
}
const mainStore2 = useMainStore();
const { isShowContact } = storeToRefs(mainStore2);
let optionsX = [
{
value: "left",
label: "左"
},
{
value: "center",
label: "中"
},
{
value: "right",
label: "右"
}
];
let optionsY = [
{
value: "top",
label: "上"
},
{
value: "center",
label: "中"
},
{
value: "bottom",
label: "下"
}
];
let optionsSize = [
{
value: "contain",
label: "包含"
},
{
value: "cover",
label: "覆盖"
}
];
const posTip = vue.ref("壁纸如果很长, 设置效果就会很明显");
const posNumTip = vue.ref("可以输入负值");
const activeName = useConfig("bili-config-active-name", false);
return (_ctx, _cache) => {
const _component_el_text = ElText;
const _component_el_col = ElCol;
const _component_el_row = ElRow;
const _component_el_checkbox = ElCheckbox;
const _component_el_input_number = ElInputNumber;
const _component_el_button = ElButton;
const _component_el_color_picker = ElColorPicker;
const _component_el_collapse_item = ElCollapseItem;
const _component_el_collapse = ElCollapse;
const _component_el_scrollbar = ElScrollbar;
return vue.openBlock(), vue.createBlock(_component_el_scrollbar, {
"max-height": "60vh",
class: "bili-config"
}, {
default: vue.withCtx(() => [
vue.createVNode(_component_el_row, null, {
default: vue.withCtx(() => [
vue.createVNode(_component_el_col, { span: 24 }, {
default: vue.withCtx(() => [
vue.createVNode(_component_el_text, { size: "large" }, {
default: vue.withCtx(() => _cache[10] || (_cache[10] = [
vue.createTextVNode("自定义导航条")
])),
_: 1
})
]),
_: 1
})
]),
_: 1
}),
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(rowCount), (_2, rowIndex) => {
return vue.openBlock(), vue.createBlock(_component_el_row, { class: "wide-row" }, {
default: vue.withCtx(() => [
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(COL_COUNT), (_3, colIndex) => {
return vue.openBlock(), vue.createBlock(_component_el_col, {
class: "checkbox-wrapper",
span: 24 / vue.unref(COL_COUNT)
}, {
default: vue.withCtx(() => [
rowIndex * vue.unref(COL_COUNT) + colIndex < vue.unref(displayConfigCount) ? (vue.openBlock(), vue.createBlock(_component_el_checkbox, {
key: 0,
label: vue.unref(displayConfigDescs)[rowIndex * vue.unref(COL_COUNT) + colIndex],
modelValue: vue.unref(displayConfigObj)[vue.unref(displayConfigDescs)[rowIndex * vue.unref(COL_COUNT) + colIndex]],
"onUpdate:modelValue": ($event) => vue.unref(displayConfigObj)[vue.unref(displayConfigDescs)[rowIndex * vue.unref(COL_COUNT) + colIndex]] = $event
}, null, 8, ["label", "modelValue", "onUpdate:modelValue"])) : vue.createCommentVNode("", true)
]),
_: 2
}, 1032, ["span"]);
}), 256))
]),
_: 2
}, 1024);
}), 256)),
vue.createVNode(_component_el_row, { class: "setting-row" }, {
default: vue.withCtx(() => [
vue.createVNode(_component_el_col, {
class: "setting-container",
span: 24
}, {
default: vue.withCtx(() => [
vue.createVNode(_component_el_text, { class: "input-label" }, {
default: vue.withCtx(() => _cache[11] || (_cache[11] = [
vue.createTextVNode("搜索框离顶部高度, 单位vh:")
])),
_: 1
}),
vue.createVNode(_component_el_input_number, {
modelValue: vue.unref(searchBarTopGap),
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.isRef(searchBarTopGap) ? searchBarTopGap.value = $event : null),
min: 0,
max: 100
}, null, 8, ["modelValue"]),
vue.createVNode(_component_el_button, {
class: "default-btn",
type: "primary",
plain: "",
onClick: setTopGapDefault
}, {
default: vue.withCtx(() => _cache[12] || (_cache[12] = [
vue.createTextVNode("距顶设为默认值")
])),
_: 1
})
]),
_: 1
})
]),
_: 1
}),
vue.createVNode(CssVarConfig, {
tip: posTip.value,
modelValue: vue.unref(wallpaperPosX),
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => vue.isRef(wallpaperPosX) ? wallpaperPosX.value = $event : null),
default: "center",
mode: "string",
options: vue.unref(optionsX)
}, {
default: vue.withCtx(() => _cache[13] || (_cache[13] = [
vue.createTextVNode(" 壁纸X轴显示位置 ")
])),
_: 1
}, 8, ["tip", "modelValue", "options"]),
vue.createVNode(CssVarConfig, {
tip: posTip.value,
modelValue: vue.unref(wallpaperPosY),
"onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => vue.isRef(wallpaperPosY) ? wallpaperPosY.value = $event : null),
default: "center",
mode: "string",
options: vue.unref(optionsY)
}, {
default: vue.withCtx(() => _cache[14] || (_cache[14] = [
vue.createTextVNode(" 壁纸Y轴显示位置 ")
])),
_: 1
}, 8, ["tip", "modelValue", "options"]),
vue.createVNode(CssVarConfig, {
modelValue: vue.unref(wallpaperSize),
"onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => vue.isRef(wallpaperSize) ? wallpaperSize.value = $event : null),
default: "cover",
mode: "string",
options: vue.unref(optionsSize)
}, {
default: vue.withCtx(() => _cache[15] || (_cache[15] = [
vue.createTextVNode(" 壁纸显示模式 ")
])),
_: 1
}, 8, ["modelValue", "options"]),
vue.createVNode(_component_el_row, { class: "gap-setting-row" }, {
default: vue.withCtx(() => [
vue.createVNode(_component_el_col, {
class: "gap-setting-container",
span: 24
}, {
default: vue.withCtx(() => [
vue.createVNode(_component_el_text, { style: { "margin-right": "20px" } }, {
default: vue.withCtx(() => _cache[16] || (_cache[16] = [
vue.createTextVNode("壁纸背景颜色:")
])),
_: 1
}),
vue.createVNode(_component_el_color_picker, {
modelValue: vue.unref(wallpaperBgColor),
"onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => vue.isRef(wallpaperBgColor) ? wallpaperBgColor.value = $event : null),
"show-alpha": ""
}, null, 8, ["modelValue"])
]),
_: 1
})
]),
_: 1
}),
vue.createVNode(_component_el_row, { class: "gap-setting-row" }, {
default: vue.withCtx(() => [
vue.createVNode(_component_el_col, {
class: "gap-setting-container",
span: 24
}, {
default: vue.withCtx(() => [
vue.createVNode(_component_el_checkbox, {
label: "是否显示联系面板",
modelValue: vue.unref(isShowContact),
"onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => vue.isRef(isShowContact) ? isShowContact.value = $event : null)
}, null, 8, ["modelValue"])
]),
_: 1
})
]),
_: 1
}),
vue.createVNode(_component_el_collapse, {
modelValue: vue.unref(activeName),
"onUpdate:modelValue": _cache[9] || (_cache[9] = ($event) => vue.isRef(activeName) ? activeName.value = $event : null),
accordion: ""
}, {
default: vue.withCtx(() => [
vue.createVNode(_component_el_collapse_item, {
title: "高级壁纸设置",
name: "1"
}, {
default: vue.withCtx(() => [
vue.createVNode(CssVarConfig, {
tip: posNumTip.value,
modelValue: vue.unref(wallpaperPosX),
"onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => vue.isRef(wallpaperPosX) ? wallpaperPosX.value = $event : null),
default: 0,
mode: "number",
suffix: "px"
}, {
default: vue.withCtx(() => _cache[17] || (_cache[17] = [
vue.createTextVNode(" 壁纸X轴显示位置(px) ")
])),
_: 1
}, 8, ["tip", "modelValue"]),
vue.createVNode(CssVarConfig, {
tip: posNumTip.value,
modelValue: vue.unref(wallpaperPosY),
"onUpdate:modelValue": _cache[7] || (_cache[7] = ($event) => vue.isRef(wallpaperPosY) ? wallpaperPosY.value = $event : null),
default: 0,
mode: "number",
suffix: "px"
}, {
default: vue.withCtx(() => _cache[18] || (_cache[18] = [
vue.createTextVNode(" 壁纸Y轴显示位置(px) ")
])),
_: 1
}, 8, ["tip", "modelValue"]),
vue.createVNode(CssVarConfig, {
modelValue: vue.unref(wallpaperSize),
"onUpdate:modelValue": _cache[8] || (_cache[8] = ($event) => vue.isRef(wallpaperSize) ? wallpaperSize.value = $event : null),
default: 100,
mode: "number",
suffix: "%"
}, {
default: vue.withCtx(() => _cache[19] || (_cache[19] = [
vue.createTextVNode(" 壁纸显示大小 ")
])),
_: 1
}, 8, ["modelValue"])
]),
_: 1
})
]),
_: 1
}, 8, ["modelValue"])
]),
_: 1
});
};
}
};
const BiliConfig = /* @__PURE__ */ _export_sfc$1(_sfc_main$4, [["__scopeId", "data-v-46a70e80"]]);
const weixing = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAX0BF4DASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwBlFFFeYfjoUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF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RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRVqx0+81CTZY2s057+WhOPr6VvR+AvE0igppjAf7U0a/zamot7I3p4SvVV6cG/RNnL0V1f8Awr3xP/0DP/JiL/4ql/4V74n/AOgZ/wCR4v8A4qn7OXZmv9m4z/n1L/wFnJ0ZrrP+Fe+J/wDoGf8AkeL/AOKo/wCFe+J/+gZ/5Hi/+Kp8kuzH/Z2L/wCfUv8AwF/5HJ5ozXWf8K98T/8AQM/8jxf/ABVH/CvfE/8A0DP/ACPF/wDFUckuzD+zsX/z5l/4C/8AI5PNGa6z/hXvif8A6Bn/AJHi/wDiqP8AhXvif/oGf+R4v/iqOSXZh/Z2L/58y/8AAX/kcnmjNdZ/wr3xP/0DP/I8X/xVH/CvfE//AEDP/I8X/wAVRyS7MP7Oxf8Az5l/4C/8jk80ZrrP+Fe+J/8AoGf+R4v/AIqj/hXvif8A6Bn/AJHi/wDiqOSXZh/Z2L/58y/8Bf8AkcnmjNdZ/wAK98T/APQM/wDI8X/xVH/CvfE//QM/8jxf/FUckuzD+zsX/wA+Zf8AgL/yOTzRmus/4V74n/6Bn/keL/4qj/hXvif/AKBn/keL/wCKo5JdmH9nYv8A58y/8Bf+RyeaM11n/CvfE/8A0DP/ACPF/wDFUf8ACvfE/wD0DP8AyPF/8VRyS7MP7Oxf/PmX/gL/AMjk80ZrrP8AhXvif/oGf+R4v/iqP+Fe+J/+gZ/5Hi/+Ko5JdmH9nYv/AJ8y/wDAX/kcnmjNdZ/wr3xP/wBAz/yPF/8AFUf8K98T/wDQM/8AI8X/AMVRyS7MP7Oxf/PmX/gL/wAjk80ZrrP+Fe+J/wDoGf8AkeL/AOKo/wCFe+J/+gZ/5Hi/+Ko5JdmH9nYv/nzL/wABf+RyeaM11n/CvfE//QM/8jxf/FUf8K98T/8AQM/8jxf/ABVHJLsw/s7F/wDPmX/gL/yOTzRmus/4V74n/wCgZ/5Hi/8AiqP+Fe+J/wDoGf8AkeL/AOKo5JdmH9nYv/nzL/wF/wCRyeaM11n/AAr3xP8A9Az/AMjxf/FUf8K98T/9Az/yPF/8VRyS7MP7Oxf/AD5l/wCAv/I5PNGa6z/hXvif/oGf+R4v/iqP+Fe+J/8AoGf+R4v/AIqjkl2Yf2di/wDnzL/wF/5HJ5ozXWf8K98T/wDQM/8AI8X/AMVR/wAK98T/APQM/wDI8X/xVHJLsw/s7F/8+Zf+Av8AyOTzRmus/wCFe+J/+gZ/5Hi/+Ko/4V74n/6Bn/keL/4qjkl2Yf2di/8AnzL/AMBf+RyeaM11n/CvfE//AEDP/I8X/wAVR/wr3xP/ANAz/wAjxf8AxVHJLsw/s7F/8+Zf+Av/ACOTzRmus/4V74n/AOgZ/wCR4v8A4qj/AIV74n/6Bn/keL/4qjkl2Yf2di/+fMv/AAF/5HJ5ozXWf8K98T/9Az/yPF/8VR/wr3xP/wBAz/yPF/8AFUckuzD+zsX/AM+Zf+Av/I5PNGa6z/hXvif/AKBn/keL/wCKo/4V74n/AOgZ/wCR4v8A4qjkl2Yf2di/+fMv/AX/AJHJ5ozXWf8ACvfE/wD0DP8AyPF/8VR/wr3xP/0DP/I8X/xVHJLsw/s7F/8APmX/AIC/8jk80ZrrP+Fe+J/+gZ/5Hi/+Ko/4V74n/wCgZ/5Hi/8AiqOSXZh/Z2L/AOfMv/AX/kcnmjNdZ/wr3xP/ANAz/wAjxf8AxVH/AAr3xP8A9Az/AMjxf/FUckuzD+zsX/z5l/4C/wDI5PNGa6z/AIV74n/6Bn/keL/4qj/hXvif/oGf+R4v/iqOSXZh/Z2L/wCfMv8AwF/5HJ5ozXWf8K98T/8AQM/8jxf/ABVH/CvfE/8A0DP/ACPF/wDFUckuzD+zsX/z5l/4C/8AI5PNGa6z/hXvif8A6Bn/AJHi/wDiqP8AhXvif/oGf+R4v/iqOSXZh/Z2L/58y/8AAX/kcnmjNdZ/wr3xP/0DP/I8X/xVH/CvfE//AEDP/I8X/wAVRyS7MP7Oxf8Az5l/4C/8jk80ZrrP+Fe+J/8AoGf+R4v/AIqj/hXvif8A6Bn/AJHi/wDiqOSXZh/Z2L/58y/8Bf8AkcnmjNdZ/wAK98T/APQM/wDI8X/xVH/CvfE//QM/8jxf/FUckuzD+zsX/wA+Zf8AgL/yOTzRmus/4V74n/6Bn/keL/4qj/hXvif/AKBn/keL/wCKo5JdmH9nYv8A58y/8Bf+RyeaM11n/CvfE/8A0DP/ACPF/wDFUf8ACvfE/wD0DP8AyPF/8VRyS7MP7Oxf/PmX/gL/AMjk80ZrrP8AhXvif/oGf+R4v/iqP+Fe+J/+gZ/5Hi/+Ko5JdmH9nYv/AJ8y/wDAX/kcnmjNdZ/wr3xP/wBAz/yPF/8AFUf8K98T/wDQM/8AI8X/AMVRyS7MP7Oxf/PmX/gL/wAjk80ZrrP+Fe+J/wDoGf8AkeL/AOKo/wCFe+J/+gZ/5Hi/+Ko5JdmH9nYv/nzL/wABf+RyeaM11n/CvfE//QM/8jxf/FUf8K98T/8AQM/8jxf/ABVHJLsw/s7F/wDPmX/gL/yOTzRmus/4V74n/wCgZ/5Hi/8AiqP+Fe+J/wDoGf8AkeL/AOKo5JdmH9nYv/nzL/wF/wCRyeaM11n/AAr3xP8A9Az/AMjxf/FUf8K98T/9Az/yPF/8VRyS7MP7Oxf/AD5l/wCAv/I5PNGa6z/hXvif/oGf+R4v/iqT/hXvif8A6Bn/AJHi/wDiqOSXZh/Z2L/59S/8Bf8AkcpmjNdDeeDPENmhabS5iB18srJ/6CTXPurRuUkVkdTgqwwRUuLW6MKuHq0f4kGvVNCUUUUjEKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigArvPh54J/tvF/qYdNPU/Ig4Mx789lrj9Hsm1HVbSzXOZ5FQkdgTyfwHNfTFnbRWdrDbW6BIolCKo7AVvQgpO7Po+H8shi5utVV4x6d3/wBLGytrC3WGzhSGFeiIMCrOKKK7LH3ySirIKKKKBhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABijFFFABijFFFABijFFFABisDxR4W03xFbut1EqXOMJcKPnX/ABHsa36KTSe5nVpQrRcKiumfMviHRrrQtUlsrxfnXlWHR17EVm17j8XtIW+8Nm9Rf39kd+R1KEgMP5H8K8Orhqw5JH5pm+A+o4h018L1Xp/wAooorM8wKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKD0pAdT8MED+ONMDdjIfyjavoLvXz98LP+R70z/tp/6KavoI12Yf4D73hdWwkv8T/JBRRRXQfShRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAYvjQA+EdYz/z6yH/x018219J+NP8AkUdZ/wCvSX/0E182Vy4jofEcV/xafo/zCiiiuY+UCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigDqvhZ/yPemf9tf/AEU9fQVfPvws/wCR70z/ALa/+inr6Crrw3wH33C/+6S/xP8AJBRRRXQfSBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAY3jT/kUdZ/69Jf8A0E182V9J+NP+RR1n/r0l/wDQTXzZXLiOh8RxX/Fp+j/MKKKK5j5QKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAOq+Fn/I96Z/21/9FPX0FXz78LP+R70z/tr/AOinr6Crrw3wn33C/wDukv8AE/yQUUUV0H0gUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAGN40/5FHWf+vSX/wBBNfNlfSfjT/kUdZ/69Jf/AEE182Vy4jofEcV/xafo/wAwooormPlAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA6r4Wf8AI96Z/wBtf/RT19BV8+/Cz/ke9M/7a/8Aop6+gq68N8J99wv/ALpL/E/yQUUUV0H0gUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAGN40/5FHWf+vSX/0E182V9J+NP+RR1n/r0l/9BNfNlcuI6HxHFf8AFp+j/MKKKK5j5QKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAOq+Fn/I96Z/21/wDRT19BV8+/Cz/ke9M/7a/+inr6Crrw3wn33C/+6S/xP8kFFFFdB9IFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBjeNP8AkUdZ/wCvSX/0E182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oA+Kv+GVfHH/AEFPDf8A4ET/APxmva/2bvhVrnwy/wCEi/t66024/tH7P5X2KR32+X5u7duRcffGMZ717VRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBjeNP+RR1n/r0l/9BNfNlfSfjT/kUdZ/69Jf/QTXzZXLiOh8RxX/ABafo/zCiiiuY+UCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigDqvhZ/yPemf9tf8A0U9fQVfPvws/5HvTP+2v/op6+gq68N8J99wv/ukv8T/JBRRRXQfSBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUGig0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAY3jT/kUdZ/69Jf8A0E182V9J+NP+RR1n/r0l/wDQTXzZXLiOh8RxX/Fp+j/MKKKK5j5QKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAOq+Fn/I96Z/21/9FPX0FXz78LP+R70z/tr/AOinr6Crrw3wn33C/wDukv8AE/yQUUUV0H0gUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFBooNABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAGN40/5FHWf+vSX/0E182V9J+NP+RR1n/r0l/9BNfNlcuI6HxHFf8AFp+j/MKKKK5j5QKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC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9BNfNlfSfjT/AJFHWf8Ar0l/9BNfNlcuI6HxHFf8Wn6P8wooormPlAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA6r4Wf8j3pn/bX/wBFPX0FXz78LP8Ake9M/wC2v/op6+gq68N8J99wv/ukv8T/ACQUUUV0H0gUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAGN40/5FHWf+vSX/ANBNfNlfSfjT/kUdZ/69Jf8A0E182Vy4jofEcV/xafo/zCiiiuY+UCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigDqvhZ/yPemf9tf/RT19BV86fD+5Fp4z0uVjgGQx/8AfSlR/OvouuvD/Cz7zhaV8LJf3v0QUUUV0H0wUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAGN40/5FHWf+vSX/wBBNfNlfRnj2dbbwdqzuQA0BQfVvlH86+c65MTuj4fiqSdamvL9QooornPlQooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAfDK8MySxttdGDKR2I6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tvuCOmccL+HU/hXmFKzNI7PIxZmOSSckn1NJXDUnzu5+dY/GSxtd1pddvJBRRRUnGFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAGKMUUUAGKMUUUAGKMUUUAGKMUUUAGKMUUUAGKMUUUAGKMUUUAGKMUUUAGKMUUUAGKMUUUAGKMUUUAGKMUUUAGKMUUUAGKMUUUAGKMUUUAGKMUUUAGKMUUUAGKMUUUAGKMUUUAGKMUUUAGKMUUUAGKMUUUAGKMUUUAGKMUUUAGKMUUUAGKMUUUAGKMUUUAGKMUUUAGKMUUUAGKMUUUAGKMUUUAGKMUUUAGKMUUUAGKMUUUAGKMUUUAGKMUUUAGKMUUUAGKMUUUAGKMUUUAGKMUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR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FGKKKADFGKKKADFGKKKADFGKKKADFGKKKADFGKKKADFGKKKADFGKKKADFGKKKACiiigAooooAMUUUUAFFFFABiiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoozRQAUUZooAKKM0UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRQaACiq1/e22nWr3N7MkECfedzgCvKfFPxOnld4NBTyohkG4cZZvdR2/GpnNQV2cGNzGhgo3qvXstz1DVdWsNKh83UbqK3Ttvbk/QdTXD6t8VdOtyy6faTXRHR2Plqf6/pXkF1dT3kzS3UryyN1Z2JJ/Goa5ZYhv4T5PFcT16jtQSivvf+X4HdX3xN124Y/Z/s9snbbHuP5n/Csa58Z+ILj/AFmpzD/cwv8AIVz1FZOpJ9TxamZ4uo/eqP72vyNRvEetMf8AkK32fadh/Wp7fxZr0BBj1a54/vtu/nWLSUvaS7maxmIW1SX3s7K0+I/iK3I33EM49JIh/TFdNpfxYiO1dT051Pd4HyP++T/jXk9FXGtNHZRzrG0XpUb9dfzPpHRPE+kayQun3kby4z5TZV/yPNbdfKqsykFSQR0IrtfDHxE1PSWjhvSb2zHGHP7xfo3f8a3hiE9z6HB8UQlaOKjbzW33b/me60Vk+HtfsNetPP0+UNgDfGeGQnsRWtW6aex9TTqRqRU4O6YUUUUywooooAKKKKACiiigAooqCzvLa9R3tLiKdUdo2MbhgrKcFTjuD2oAnooooAKKyPEHiXR/DogOtX0VoJ93l7wTuxjPQe4/OpNA1/S/EFtJcaNeR3cMb+W7ICMNgHHI9CKANOiiigAooooAKKKKACiiigAooooAKKq3mo2VlNbxXl1BBJcMUhWRwpkYdlz1NWqACiiigAooqC+vLawtJbq9njt7aIbnkkYKqj3JoAnoqK1uIbu1hubaRZYJkEkciHIZSMgj2xUtABRRRQAUUUUAFFFFABRRRQAUUUUAFFc9qnjXw5pV9LZ6jrFrb3UWN8btyuRnn8DWloms6drlo11pF3Fd26uYzJGcgMACR+RH50AX6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKDQAVj+Jdfs/D+nNdXrcniOMfekPoKtavqNvpOnz3t44SGJcn1PsPc187+KNeuvEOqPd3RwvSOMHhF9P8A6/esqtRQXmeNnGbLAU7R1m9vLzY7xT4kv/Ed55t2+2FSfLhX7qD+p96xhS0VwNtu7PzurVnWm6lR3bCiiimZBRRRQAUUUUAFFFFIAooooAt6ZqF1pl4l1YzNDMnQr39j6j2r3DwJ4zt/EcAgn2w6ii5ZOz+rL7e3avCba2mu51htonllboqAk16H4S+HOrC6t728uDp2xg6hMNJ/gP1+lbUXJPRHv5FXxdOry0IuUeq6et9kz2QUUCiu4/QwooooAKKKKACiiqWs6naaNplxqGozLDawKXdif0HqT0A7mgDkvi/4wHhPwxJ9mdf7UvMxWynqv95/wB/Mivn34WPr03jGztvDt7LbTTPmd/vJ5Y+8XU8EY/XFZ/jzxRdeL/Ek+oXAZYydlvDnPlxg8L9e59zX0H8FfBR8M6ALy+jC6rfKHlBHMSfwp9e59+O1AHfapqNppVjJeajOlvax43yP0XJx/Os/Q/FWh67dPb6RqUF3OieYyRkkhcgZ/Miuf+OH/JM9X/7Zf+jFryv9mj/kcdS/68D/AOjEoA2v2n/ueHP964/9p1q/sz/8ilqf/X9/7TSsr9qD7nhz/euP/ada37NH/Io6p/1/H/0WlAHoOseMfD+jXrWeqarbWtyoDGOQkEA9D0rV06+ttSsorywmWe2lG5JF6MPavmL9oEf8XIuf+veL/wBBr3f4Rf8AJN9B/wCuH/sxoA4X9o/WdT0keHhpWoXdmZftHmfZ5mj3Y8rGdpGcZNan7POp3+qeGtSk1O9uryRLvar3ErSMBsXjLE1yv7T0u7UvD8OfuRTP+ZQf+y1k/CL4jaV4M0K8tNRtruWWa4MoMKqRjaB3I9DQB9K0V5H/AML38O/8+Gp/98p/8VR/wvfw7/z4an/3yn/xVAHrlFUtF1GLV9HstRt1dIbqFJkVx8wDDOD781doAKKKjuZ4rW3lnuHWOGJC7u3RVAySfwoA+cf2j9YN54ts9MVsxWEAZl9Hk5P/AI6Ers/2cF1Cbw7qF3e3txNbNMsMEUjllTaMsRnpncB/wGvAvE2qya54i1HU5SSbmdpBnspPyj8BgfhX0pBq+n/Cv4f6HDqVtcOZF2usIBPmsN7ZyR3JH4UAekUV5D/wvnw7/wA+Gp/98p/8VR/wvnw7/wA+Gp/98p/8VQB69XzB8fTrcXjF4dVu5ZdOdfMskHEYTuMD+IHIJPJ4r0H/AIXz4d/58NT/AO+U/wDiq4v4p/Ebw54z0Bbe3sr6LUbdxJbzSKmB/eUkNnBH6gUAdd+zv4r+3aTN4fu5Mz2WZLfJ5aInkf8AASfyI9K9kr4o8J67P4c8RWWq2ud1vJllz99Dwy/iM170vx48PHH/ABLtUz/uJ/8AFUAeu0V5J/wvbw//ANA/VP8AvhP/AIqj/he3h/8A6B+qf98J/wDFUAet0VwHgz4paR4r1tNLsbS+inZGkDTKoXC9ehrv6ACisDxn4r0/wjpsd9qqztDJIIh5KBjnBPQkelcYPjj4UIz5ep/9+F/+KoA9Sory7/heHhT/AJ56n/34X/4qj/heHhT/AJ56n/34X/4qgD1GivLv+F4eFP8Annqf/fhf/iqP+F4eFP8Annqf/fhf/iqAPG/jX/yUvWv95P8A0Wtev/s2/wDIg3P/AF/yf+gR14b8R9btfEPjLUNU08SfZrgqUEi7W4QA5H1Fd98HviRonhLwtNp+qpeG4a6eYeTEGXaVQDnI/umgD6Kory7/AIXh4U/556n/AOA4/wDiqP8AheHhT/nnqf8A4Dj/AOKoA9Rory7/AIXh4U/556n/AOA4/wDiqP8AheHhT/nnqf8A4Dj/AOKoA9RorzCL42+FZJERY9S3MQozAO//AAKvT6ACiiigArM8T6tFoPh/UNUnxstYWkx/eIHC/icD8a068W/aS8Q/Z9LsdBgceZdHz5wDyI1OFB9i2T/wGgDxjTPFmv6detc6fq17FK7lyFkJVmJycqeD17ivsHQRerotiNVk82/8lDO+0Ll8DdwOBzXy38GdAbXfHdkHiD2ln/pU2Rx8pG0e+Wx+tfWdABRRmjNABRRRQB4B+0dqV9ZeIdJSzvLi3RrUkrFKygneeuDV79mq/vL2bxCLy7uLgILfb5shfbnzOmTxWP8AtM/8jFo//Xof/QzWh+y9/rvEn0t//alAHvNFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFZviLUBpOh3t8cZhjLKD0J6Afnik3bUmc1CLlLZHk3xb8RG+1MaXbP8A6Nan58fxPjn8un1zXn1OmkeaZ5JGLO7FmY9ST3ptefOXM7n5VjcVPF1pVp9fwXYKKKfBFJPKI4Y3kkPRUUkn8BUWOXVuyGUUrAqSGBBHUGkpiCiiigAooooAKK3NB8K6vrbr9itGER5M0nyoB9T1/CvSvD/wwsLXZLq8rXko5MY+WP8AxP8AnitIUpSPTwWUYrGWcI2j3ei/4PyPJtK0m+1WYRafayztnBKj5R9T0FekeH/hb0k1y647QQ/1b/D869QtLWCzgWG1iSKJeioMAU2/vLawt2uL2aOGFerucCuiNFLVn1eE4cw2H9+u+Z+ei/r1INK0bT9Jh8vTrWK3XGCVHJ+p6moPEHiHTtAt/N1GcIxHyxjl3+g/yK878U/E8vvt/DylV6G5kXk/7qn+Z/KvNLq4mupnnupmllY5Luck0p11HSJljeIqGGXssIk2vuX+f9anolx8UbuTW7d4oRDpqyYeM4LuvTOe3rgV69FIksaSRsGjcBlYdCDXyvXuvwk1Q3/hgW8jbprNvKPrt6r/AIfhSoVHJtMyyDNquIrSpYiV3LVfqjtxRRRXSfXBRRRQAjsqKWchVAySTgAV8wfGnx9/wk+o/wBm6VKf7ItWPzA8XEnTd9B2/Pvx7z8SNF1PX/Cd3p+jXn2W5kGT2Eq94yewPr/SvnXwD8OtR8Q+J5bHUIJrO0sXxesy4Kn+4PVj6joOfTIB0fwI8A/2pfL4g1aLNhbt/o0brxNIP4vdV/U/Q19HVSAstD0c7VjtrCzhJwowqIo/wFfMsXxW8RReMLvUbCZpLa6mwthN88ZXgKoHY4xyO9AHtnxw/wCSZ6t/2y/9GLXlf7NH/I46l/14N/6MSvVfirb32p/DG8ijs3e/lSEtbwAyENvUkDAycc847V8znwj4kB/5AOp/+Az/AOFAHrn7UH3PDn1uP/ada/7NH/Io6p/1/H/0WleF/wDCJeJf+gDqf4Wrn+lH/CI+JP8AoA6r/wCAkn+FAHW/tAf8lIuf+veL/wBBr3f4Rf8AJN9B/wCuH/sxr5b/AOER8Sf9AHVf/AST/Cvqn4W209n8P9Ft7uGSCeOHDxyKVZTuPUGgDxX9pG48zxrZQZ/1Vkp/Nm/wqj4Z+D2r+I/D9nqtvf2MMV0pdY5N+4DJHOB7VjfGDUv7T+I2syhspFIIE9ggCn9Qfzr6d8C2Lad4N0S0kXbJFaRhh6HaCR+ZNAHzX44+FupeD9FGpX97ZzRGVYgsO7dkgnuB6VT+Hnw/vvGq3rWN1bW4tSgbzt3O7OMYB9K9j/aVmCeB7KLPzSagn5COT/EVl/swp/xLteb/AKaxL+QY/wBaAPW/CunSaR4b0vTp3V5bS2jgZkzhiqgEjP0rUoooAK8y+P8A4i/sfwZ9giJFzqjGEEdoxguf1A/4FXptfIfxZ8T/APCU+MLm5hcmxt/9HthnjYDy3/Ajk/THpQA74PeHv+Eh8c2MTJutbU/ap89Nq4wPxbaPzr334veDL3xpo9naafcW8DwTGQmYkAjaR2B9a8y/Zj/5GPV/+vQf+hivoqgD5t/4UNr/AP0EdN/77f8A+Jpf+FDa/wD9BHTf++3/APia+gtb1nT9CsvterXSWttuCeY+cbj0HH0rn/8AhZXg/wD6D1p/49/hQB47/wAKG1//AKCOm/8Afb//ABNH/Chtf/6COm/99v8A/E17F/wsrwf/ANB60/8AHv8ACj/hZXg//oPWn/j3+FAHjn/Chtf/AOgjpn/fT/8AxNA+A3iAdNR0z/vp/wD4mvY/+FleD/8AoPWn/j3+FH/CyvB//QetP/Hv8KAPHf8AhRHiD/oJaZ/30/8A8TR/wojxB/0EtM/76f8A+Jr2L/hZXg//AKD1p/49/hWhonjHw/rt79k0nVILq52F/LTOdo6nke4oA86+F/ws1bwn4sj1S+vLKaFYnjKxMxbLD3Ar2SiigDgPjP4Y1LxV4ZtrLR445J0uRIwdwg2hWHU/UV4t/wAKY8Zf8+dr/wCBK19UUUAfK/8Awpnxl/z52v8A4ErR/wAKZ8Zf8+dr/wCBK19UUUAfK/8Awpnxl/z52v8A4ErR/wAKZ8Zf8+dr/wCBK19UUUAfEPiDR7zQNXuNN1JFS6gIDhWDDkAjkexrd8KeANf8U6c99o1vDJbpKYSXlCHcACeD7MKufGz/AJKZrH1j/wDRa16/+zd/yINz/wBhCT/0COgDy7/hTPjL/n0tf/AlaP8AhTPjL/n1tf8AwJWvqeigD5Y/4Uz4y/59bX/wJWj/AIUz4y/59bX/AMCVr6nooA+XrT4OeMIrqJ3tbXargn/SV6Zr6hoooAKKKKAGTSpBDJLMwSONSzMegA5Jr428eeIH8T+K7/UyCIpH2wqf4Yxwv6cn3Jr3X9oDxUNK8Nro1q5F5qPDkH7sI+9/30ePpmvmmgD6W+AehRaH4Nn1q8Hly32ZS7D7sKZx/U/Qiul/4Wd4N/6DsH/fD/8AxNXNNiaT4a2sMCMzPpCqiqMkkwgAAV8s/wDCF+J/+he1X/wEf/CgD6a/4Wd4N/6DsH/fD/8AxNH/AAs7wb/0HYP++H/+Jr5l/wCEJ8T/APQvar/4Cv8A4Uf8IR4n/wChe1X/AMBX/wAKAPpr/hZ3g3/oOwf98P8A/E0f8LO8G/8AQdg/74f/AOJr5j/4QjxP/wBC9qv/AICP/hR/whHif/oXtV/8BX/woA7D48+IdK8Ra3pk2i3iXcUVuUdkBGDuJxyBVz4A+J9H8OS64dbvo7T7QIfK3hju2789AemR+deY6rpGo6RKkeq2NzZyONyrPGULD1ANP0nRdT1gyjStPur0xY3/AGeJn25zjOBxnB/KgD6r/wCFneDv+g7b/wDfD/4Vb0rx74Y1bUIbHTtXhnu5iRHGqsCxAJ7j0Br5Z/4QnxT/ANC7q3/gI/8AhXW/Cfwrr+n/ABC0a6vtF1G3to5HLyy2zqq/Iw5JHHJFAH1BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFef/Ge6MXhqCFTgTzgMPUAE/zAr0CvLfjixEGjp/CWlJ/AJ/iazqu0Gzy86m4YGo12t97SPJaKWkrzz8xDvXW/C/UYdO8WQfaMBLhDBuPYnGP1AH41yVKrMjBlJDA5BHY1UXZpm2Gryw9WNWPR3PePGPgax14PPb4ttQwcSqOHPbcP69a8W1vR77RL1rbUITG46N1Vh6g969/8GawuueHrW8yDKRtlA7OOD/j+NXdY0my1i0NtqNuksZ6Z6g+oPY12TpKauj7nH5PRzGmq9DSTV/J+v+Z8x0oBJAHJNetv8JLc3O5NWlEP9wwgt/31n+ldhoHhDSNECNa2yvcL/wAt5PmfPrnt+GKwVCT3PCocNYupK1S0V33/AAX/AADx/wAPeA9Z1gLI0P2S2J/1k3Bx7L1P44r03QPh5o2lgPPH9un/AL844H0Xp+ea7KiuiNGMT6fB5FhMLZ25pd3+i2EVQqhVAAHAA7UpIUEsQB1JPaub8UeMdM8PqyTyedd44t4+W/H0/GvHvE/jTVNfZo5JPs9p0EER4I/2j3/lTnUjArMM6w+C91vml2X69j0fxX8R7DTd9vpeL26HBYHEafU9/oPzryXXdc1DW7kzahcNKwPyr0VPoKzKK5J1ZTPh8fm2Ixr992j2W3/BEA70uKKKzPLCvRPgpdmPXru1zxNDv/FT/wDZGvO6674UOyeOLAKeHWRT9NhP9Kuk7TR6OUzdPG0pLul9+h79RQKK9A/UgooooAKAACSAATyfeiub+IHiu18IeHZtQuMNOfkt4s8ySEcD6dyfSgDzP9onxj5VsnhiwcebLiW8IPKr1VPx6n2A9a5L4A+EzrfiX+17tA1lprBlDDh5v4R+H3vy9a831O+udTv7i9vpTLczuZJJD1JNfSX7Of8AyIEv/X7J/wCgpQB3HiXxVovhdLdtcvRaLOSI8xu+7GM/dB9RWD/wtjwT/wBBxP8AwGm/+IrH+N/g3V/F0WkDRkhc2zSGQSSBPvbcdfpXlP8Awpfxf/z62n/gStAHt3/C2PBP/QcT/wABpv8A4ij/AIWx4J/6Dif+A03/AMRXiX/Cl/F//Pvaf+BK0f8ACl/F/wDz72n/AIErQB7fH8VfBckiomtqWYhQPs83JP8AwCur1m/j0vSby/n/ANVbQvK3uFBNfNdl8G/FsV5BI9vabEkVj/pC9Aa9I/aI8QjT/CkekQSAXOothlB5ESkEn8TgfnQB8821yl1ry3epEuk1yJZyO4LZb+tfbikFQQQQehFfCuDtBwcdM9s96+wfhdqy6z4D0e5375FhEMh77k+U5/LP40Aea/tP3WIPD9qDwzTSt+AQD+ZrV/Znt9nhTVLjH+svSn/fKL/8VXG/tK3qzeLbC0Q5+zWgLezMxP8AIL+depfAmxFl8N9Pb+K5eSdvxYgfoooA9AoorN8Sa3Z+HtFutT1F9lvAuSB1Y9Ao9yeKAOA+O/i8aH4dOlWcmNQ1FSjbTzHF/Efx6D8fSvmKtfxXr134k1671S+b97O3C9o0H3VHsBXUeM/Bn/CLeA9CuL2MLqt9O8k3rGm0bU/qfc+1AHTfsyf8jJrH/XoP/QxX0TXzt+zJ/wAjJrH/AF6L/wChivomgDh/jD4c1DxT4RGnaSqNcfaUkIdwo2gNnk/UV4j/AMKW8X/8+1p/4Eivp3UL+z02Dz9Ru7e0hyF8yeRY1z6ZJxms3/hLfDf/AEMGkf8AgbH/APFUAfOn/ClvF/8Az7Wn/gSKP+FLeL/+fa0/8CRX0X/wlvhv/oYNI/8AA2P/AOKo/wCEt8N/9DBpH/gbH/8AFUAfOn/ClvF//Ptaf+BIo/4Ut4v/AOfa0/8AAkV9F/8ACW+G/wDoYNI/8DY//iqP+Et8N/8AQwaR/wCBsf8A8VQB86f8KW8X/wDPtaf+BIruPg/8OvEHhbxcdQ1WCBLY27xZSYMckjHH4V6n/wAJb4b/AOhg0j/wNj/+Kqzp+v6PqNx5Gn6tp91Pgt5cFyjtgdTgHOKANKiiigAooooAxPGPiS08KaHJql/FPLAjKhWEAtknA6kCvPv+F8+G/wDoH6x/36j/APjlbnx1sri9+G+oC1Qu0TJM4HXarAk/gOfwr5TT5mUFgoJ6noKAPpD/AIXz4b/6B+sf9+o//jlH/C+fDf8A0D9Y/wC/Uf8A8crgIPgj4kuIY5oL7RZIZFDo63DkMDyCDsqT/hRnif8A5/NH/wC/8n/xFAHFfELXbbxL4vv9Vso5o7ecqVWYAMMKBzgkdvWu8+EvxM0fwd4Ym07UrW/lme6aYNbohXBVRjlgc/Kag/4UV4o/5/NH/wC/8n/xuk/4UT4n/wCfvR/+/wDJ/wDG6AO9/wCF8eGf+fDWP+/UX/xyj/hfHhn/AJ8NY/79Rf8AxyuB/wCFE+KP+fvR/wDv9J/8brl/HPgDUvBcFrJq11p8jXLFY47d2ZsAck5Uccj86APbLP44eHLu8gto7HVw8zrGpaKPAJOBn569Vr4p8F2M2o+LNJtbVN8r3MeB7A5J+gAJ/CvtagAooooAKrapf22l6dc319IIra3jMkjnsAKs188ftA+ODf3R8NaXLm2gbN4y/wAcg6Jn0Hf3+lAHmvjTxDceKPEd3qtzlfNbEceciNBwqj/PXNYVdh8L/CMni7xGlu4YWFuPOunHZey/Vjx+Z7VydyoW4lVegYgfnQB9p+Dv+RR0T/rxg/8ARa1rAD0FZPg7/kUdE/68YP8A0WtO8Utqq+Hr9vD4iOqCImASDILfyz6Z4zjNAF83Fut0tsZYhcMpdYiw3lRwSB1x71Ngegr4vtvE+s2vimPXZruWXVYZNzPMSSccFSPTGVxxxX1t4O8RWfinw/bapYMNkgw6ZyY3H3lP0P5jBoA2sCiiigD52/aa/wCRj0f/AK9W/wDQzV/9l/8A13iP/dt/5yVQ/aa/5GPR/wDr1b/0M1f/AGX/APXeI/8Adt/5yUAe9UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAV5n8b4c6Zpk/wDcmdP++gP/AImvTK5P4m6d/aPhK628yW+JlHrg8/pmoqK8Gjz82pOtg6kV2v8AdqfP9FFFeefloUUUUAeh/B3WvsesS6bMf3N2NyEno6g/zH8hXtFfLVrO9tcxTwnbLE4dT6EHNfSnh7U4tY0a1v4eFmQMRnO09x+BzXZRldcp9zwzjPaUpYeT1jt6P/J/maNLUN1cQ20DzXEqRRIMs7nAA9zXmvin4nQxb7bw+omkHH2lx8o+gPX8f1rSU1BXZ72Lx1DBx5q0rfm/kd/rWsWOi2v2jUbhIY/4c9WPoB3NeS+KviVfX++DRlaztzx5p5kb/wCJ/wA81xOo311qNy1xfTyTynu5zj2HpVSuWddy20Pisx4hr4i8KPuR/H7+ny+8UksxdyWdjkknJNJRRWNz51u4UUUUAFFFFABXbfCC383xjHJ/zxhd/wAxt/8AZq4mvWPglpxEeoagw+VisKHHpy381rSirzR6uS0XWxtNdnf7v+CeqCiiiu8/TQooooAp6vqVppGmz3+ozLDawLud2P6D1J6AV8j/ABH8YXXjLX3u5sx2kWUtoP8Anmnqfc9T/wDWr6v8T6DY+JNHm03VIy8EnIIOGRh0YH1FeReC/gxJp/i2a512WO5020YNbBf+Xg9QWHYDuO59uoB43r/h+80K30yTUF8uS+t/tKREYZELEDPucZx7ivoT9nP/AJECX/r9k/8AQUrg/wBpfjxTpQ/6cv8A2o1d5+zl/wAiDL/1/Sf+gpQB6ZeXMdnZT3M5IihjaR8DJwBk/wAq88/4XT4P/wCfi7/8BzXbeKf+RY1f/rzm/wDQDXxl4f0qfXNas9MtXjSe6kEaNISFBPrgE/pQB9L/APC6PB//AD8Xf/gOaP8AhdHg/wD5+Lv/AMBzXmn/AAofxN/0EdI/7+Sf/G6p6x8FvEOlaVeahPfaU8VrC8zqkkm4hQSQMp14oA9k0X4q+GNZ1W206xmuWubh9kYaAqCfrXAfHjwPrN9q39vWDS39uyrCYFXLW46DAHVSck+mfSvN/hSP+LjaCP8Ap5H8jX2HQB4B4+8BLoXwd0/bEDf2UwuLl17mT5WH0B2D/gNTfs0a+oTU9BlJ3E/a4B69Fcf+g/rXtmuabFq+j3mn3H+quYmiY4zjIxn8OtfHel3+peCfFUksOI7+zeSF1PQ8FWHuP/rUAXfijqP9r/ELWriImRDceSmOchAE49vlr6t8IaadH8L6Vpzj95bW0cb/AO8FGf1zXyj8MtGbX/HWk2hyYxMJ5iefkT5mz9cY/GvsWgArO8Q6NY6/pU2napAs1tKOQeqnswPYj1rRooA8U8FfB5tI8bvealKlzplmRJacDMr9tw7bevucfSk/ac/5A+h/9d5P/QRXtdeK/tOf8gfQ/wDrvJ/6CKAMH9mT/kZNY/69F/8AQxX0TXzt+zJ/yMmsf9ei/wDoYr6JoA4H416FqXiHwatno9s1zci6jkKB1X5QGycsQO4rwX/hVfjT/oCTf9/4/wD4qvraSRIl3SOqL6scCovtlr/z8w/99igD5O/4VX40/wCgJN/3/j/+Ko/4VX40/wCgJN/3/j/+Kr6x+2Wv/PzD/wB9ij7Za/8APzD/AN9igD5O/wCFV+NP+gJN/wB/4/8A4qj/AIVX40/6Ak3/AH/j/wDiq+sftlr/AM/MP/fYo+2Wv/PzD/32KAPk7/hVfjT/AKAk3/f+P/4qu9+CvgfxH4e8Zm91jTJLa2+zPHvaRGG4lcDgk9jXun2y1/5+Yf8AvsU6O5gkbbHNG7eisCaAJaKKKACiiigBk8Uc8MkUyK8cilWVhkMDwQa+R/ip4Rfwj4olt41P9n3GZrVic/JnlT7g8fke9fXdcz8Q/Cdt4w8OzWE2EuF/eW02OY5B0/A9D7UAec/s+eNRc2h8M6lL/pEILWbN/FH1KZ9R1Ht9K9sxXxDdRaj4d1to232uo2U3UHlHU8EGvqT4V+PrbxnpAWUpFrEC4uIBxn/bX/ZP6HigDuqKKbLIkMTySuqRoCzMxwAPUmgCDUr620ywuL2+mWG1gQySSN0UCvj74h+KJvF3ii51KUFIf9Vbx/3Ix0H1PJPuTXXfGX4jnxNcnStHkZdHhb5nBI+0sO/+6O3r19KxvhN4Fm8Ya4GuEZNJtWDXL8jee0YPqe/oPwoA9M/Z68GtY2T+Ir+Mi4ul2WqMv3Y+7/8AAug9h717TTIIUghSKJQkaAKqjoB6U+gAooooAhvYWuLOeFJXhaSNkEqfeQkY3D3FfHOt+E9V0zxdJoEkLzXzShIiqnEwb7rj2P6c56GvsyqVxplnNqdvqElvG17AjRRzEfMqtjIH5fz9TQBgfD/wpB4P8MJZQhXumUyXMwH+skI/kOgr5Buf+PiX/eP86+55f9U/+6a+GLn/AI+Jf94/zoA+0/B3/Io6J/14wf8Aota1xWR4O/5FHRP+vGD/ANFrWuKAPnf4/eB/7Pvf+Ek0uLFpcNi7RF4jkP8AH9G7+/1rmPg542PhLX1hvJCNKvSEnyeI27Sfh39voK+ptTsbbU9PuLK+iEttcIY5EP8AEpr48+IPhWfwl4kn0+cM0P34JD/y0jPQ/UdD75oA+y0ZXRWQhlYZBHQilrxr4AeNzqNkfDupS5urZc2jMeXjHVfqv8vpXstAHzt+01/yMej/APXqf/QzV/8AZf8A9d4j/wB23/nJVD9pr/kY9H/69T/6Gav/ALL/APrvEf8Au2/85KAPeqKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKZIiyRtHIAUYYIPcU+igD5r8WaQ+h67dWTqQitujJ5yh5H+H1FY9e7fE3wudc0wXVomb+2BKgdZF7r9fT/69eFHg4NcFSHJI/Ms4y94LEOP2Xqv8vkJRRRWZ5QldL4Y8Zap4dge3tDFLbsd2yVScH2IIxXNGlp3a1RvRr1KE1OlKzNnX/Eup69IG1Cfci/diQbUX8P6msaiik7vVk1ak6sueo7vzFNJRRQZBRRRQAUUUUAFFFFAD4YnnmSKFS8jsFVR1JPQV9I+E9JXRNBtLEY3ouZD/eY8k1518I/C7STjW7xMRpkWyn+I9C34dB/9avXQPSuuhTsuZn3XDeXujTeJmtZben/BCiiiug+oCiiigAooooA+cv2mf+Rs0v8A68v/AGo1d1+zj/yT+X/r+k/9BSuF/aZ/5GzS/wDry/8AajV3P7OH/JP5v+v6T/0FKAPQPFP/ACLGr/8AXnN/6Aa+T/hX/wAlE8P/APX0tfUfxDuls/AmvzMcf6FKgP8AtMpUfqRXzD8Io/N+JGgr6T7vyUn+lAH1/WF48/5EjxB/2D5//RbVu1g+PTjwRr5/6cJx/wCQ2oA+WvhP/wAlJ0D/AK+B/I17949+KuleFNUg09Izf3IcfalicfuF/q3t+eK+XdOv7nTL+G8sZTDcxEmOReqnBGR7811HgHwTqnjfVW8otHaK+bm9kG4KTyQP7zH0/PFAH1jouq2WtabDf6ZcJcWswyrr/I+hHpXzN8f49OT4gznT2BnaFDdgdBL/AI7duf8A9de63n9jfDLwLO1nEI4YFOxScvPMemT3JP5Aegr5b0+z1Hxh4pSCM+dqGoTFnc9ATyzH0AGT9BQB6p+zNDpzanq8sjqdVWJREh6iIn5iPx25/D1r6Cr4w0XUNS8DeMUuNhjvbCYxzQnow6Mp9iO/0Ir7B0PVbXW9ItdS0999rcoHQnr9D7g8UAXqKKKACvFP2nP+QPof/XeT/wBBFe114p+05/yB9D/67yf+gigDB/Zk/wCRk1j/AK9F/wDQxX0TXzt+zJ/yMmsf9ei/+hivomgDy/8AaL/5J6v/AF+R/wAnr5nsbK6v7hbextp7mdgSI4Yy7EDrwOa+mP2i/wDknq/9fkf8nryX4B/8lL0//rlN/wCgGgDlf+ET8Rf9ADVv/AOT/Cj/AIRPxF/0ANW/8A5P8K+1KKAPiv8A4RPxF/0ANW/8A5P8KP8AhE/EX/QA1b/wDk/wr7UooA+INR0TVdNhWXUdMvrSJm2K88Dxgt1wCR1wD+Vehfs6/wDJQD/15y/zWvQP2lx/xRmnHuL9f/Rcleffs6HPxBP/AF5y/wA1oA+nqKKKACiiigAooooA81+L/wAO08V2X2/TFRNbt0+U9BOg/gPv6H8Pp82adeal4b1xbi2aWz1G0kIIIwykcFWB/Ig19qalqFnpdm91qN1Da2yfekmcKo9snv7V80/GnxJ4W8Ragsmh2sr6ghCyXy4SOVfQqRliPXj8RigD0/wb8YdE1TRpJddmTTr+3TMqHJWX3j7n/d6/XrXlPxN+J994rZ7KwD2ejg/6vOHm93I7f7P86836Ve0Uae2rWo1prhNO3jzzbgGTb7Z4oA2/h/4M1DxlqnkWitFaRnM90y5WMf1J7CvrHw1oll4e0eDTtMhEVvEOO7Me7Me5NZ/gSbw6+hQw+EprZ9PiGNsJ5U/7YPOT7810lABRRRQAUUUUAFFFFADJf9U/0NfDFz/x8S/75/nX3PL/AKp/oa+GLn/j4l/3z/OgD7T8Hf8AIo6J/wBeMH/ota16yPB3/Io6J/14wf8Aota16ACuJ+LHg1PF/hx44VA1O2zJatwMnuhPof54rtqKAPJPhh8I4fD80Gra7L5+qph44o2IjgP1H3j+n1r1uiigD52/aa/5GPR/+vU/+hmr/wCy/wD67xH/ALtv/OSqH7TX/Ix6P/16n/0M1f8A2X/9d4j/AN23/nJQB71RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAV5T8S/A5LS6vo8eSfmuIF7/7S+/qK9WoqZxUlZnHjsFSxtJ0qq9PJnynRXsXxF8DW09rcarpaCG4iUySxjhZAOp9jjP1rx2uGcHB2Z+b5hl9XAVPZ1Ouz7hRRRUHCFFFFABRRRSAKKKKYBRRSorO6oilnY4CgZJPpQAldn8P/Bs2v3K3V2rR6ZGfmPQyn0Ht6mtjwX8N5bhkvNfBig4Zbb+Jv970Ht1+leu28EVvCkUCLHEgwqqMACumlR6yPq8oyCU2q2KVo9F39fIIIY4IUihQJGgwqgYAFSUUV1H2yVgooooGFFFFABRRRQB85ftM/wDI2aX/ANeX/tRq7n9nD/kn83/X9J/6ClcP+0x/yNOlf9eX/s7V3H7OP/JP5/8Ar+k/9ASgCr+0X4jSx8OQ6HE4+037h5ADysSnP6sB+Rrhf2ddFa+8Zy6k6nydPhJB7eY/ygflvP4Vi/E3w/4nbx3ImrRvd3d9Ji1khU7JV6BVHbHGR2/Wvof4aeE4/CHhmGyO17uQ+bcyAfec9voOg+nvQB1dVdUsINU065sbtS1vcRtFIASCVYYPIq1RQB88w/A69/4TBreS5/4kC4kFyCPMZc/6vH973xjv7V7xo2lWejadBY6bAsFrCoVUUfqfUnue9Xq8f+PXjmTR7P8A4R/TWZL27j3TS4+5EcjAPqcEewoA86+Nnjb/AISbXfsdjITpViSkZDZEr95Pp2Htk967/wDZ68HGw01/EV/FturtSlsGHKxd2/4ER+Q968r+FXg2Xxj4lWOUMNMtiJLp8dRnhAfU/wAsmvreGJIIkihRUjRQqqowFA6AD0oA8M/aI8GAonifT41BG2K9VRyeyyfyU/hWB8CvHH9h6p/YupS4028f927HiGXt9Aen1x719H3ttDeWk1tcxrJDMhjdGGQykYIr5A+I/hWfwh4lmsiHNq3721lP8cZPHTuOh+nvQB9i0V5p8C/Fl74k8NyQajFK01gViF03ImGOMn+8O/4HvXpdABXin7Tn/IH0P/rvJ/6CK9rrxT9pz/kD6H/13k/9BFAGD+zJ/wAjJrH/AF6L/wChivomvnb9mT/kZNY/69F/9DFfRNAHl/7Rf/JPV/6/I/5PXkvwD/5KXp//AFym/wDQDXrX7Rf/ACT1f+vyP+T187+F9fvfDWsRanpnli6jVlUyLuHzAg8fQ0AfbFFfLv8Awuzxd/esP+/H/wBej/hdni7+9Yf9+P8A69AH1FRXy7/wuzxd/esP+/H/ANej/hdni7+9Yf8Afj/69AHo37S//Il6f/1/r/6Lkrzz9nP/AJKCf+vOT+a1z3jH4ha54t06Ky1g2xhilEy+VHtO4Aj19GNdD+zn/wAlBP8A15y/zWgD6fooooAKR2VEZnYKqjJJOABXmXxv8U6/4V0/T59DeGOC4ZopZGjDsjYyuM8cjd1B6V86a14j1rW2J1XU7u5UnOx5DsH0XoPyoA+ovEPxR8KaIjb9SW8nHSGzHmk/j90fia8t8TfHXU7rMfh6xjsYjx50/wC8kP0H3R+Oa8k0zTb3U7jyNOtLi6mP8ESFz+lel+G/gl4g1EJJqssGlwnkhz5kuP8AdU4/M0Aeda1rWp61cm41W+nupScgyMSB7AdAPpW54Q+H/iDxU6NY2bRWjf8AL1OCkWPY9W/DNfQnhb4U+GNAZJhafb7of8tbz58H2X7o/LNd6qhVAUAAcADtQB5RoPwQ0C10x4tXlnvr2RcGZGMYjP8AsKP65rzXxv8ACDXNBZ59KU6rYDJHlL++Qf7Sd/qPyFfUVFAHw3YX97pV2JrC6uLO6Q43xOUYexxXqvhb446vZbYtftotRhAx5kf7qQe/HB/IfWvZfFfgHw94nUtqVii3Pa4g/dyZ9yOv45rxzxN8DNVtHkm0C7iv4uqwy4jkx6Z+6fzFAHqfh34qeFdaRf8ATxYzHgxXg8vB/wB77p/Ou3hljniWSGRJI2GVZDkEexr4m1nQtV0SXy9W0+5tGJwDLGQG+h6H8KbpWtanpL7tM1C7tTnP7mVl/kaAPt6ivl7QPjB4wingtmlttRd3EaLPCAWJOAMrivqBN2xd+C+OcdM+1AC0UUUANl/1b/Q18L3X/HxL/vn+dfdEv+rf6Gvhe6/4+Jf98/zoA+0/B3/Io6J/14wf+i1rXrI8Hf8AIo6J/wBeMH/ota16ACiivMfj5qOq6R4Zsb7Rr64s2W58uQwtt3BlJGfxWgD06ivjj/hYXiz/AKD+of8Af2mXHjrxTcJsl1/Uip7Cdh/KgDtv2kr6C58YWVtDIryW1qBKFOdpZiQD6HGD+Irb/ZeXMniRuwFsP/RteGyySTys8rvJK5yWY5LE19OfALwxdaB4XnutQjMNzqMiyCNhhljUYXI7E5Y49xQB6fRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAcz8RNQOneEdQkH35E8lfqxA/kSa+ea9a+N2obbfTtPU/fZpn/DAH8z+VcB4d8M6lr8u2wgPlD70z8IPx7/hXJXvKfKj4PiBzxWNVGmruK2X3mJViSyu44hLJbTrEejtGQD+Ne5+FfAOmaKFlnUXt2OfMkXhT/sr2rsCAwIIBHvQsO3uzXDcLVJw5q0+V9kr/AKnypRX0hdeFNCu8/aNKtifVV2n8xisS8+Gfh+4yYkuLf2SUn/0LNJ4d9GZVOFsTH4JJ/ejwqivaf+FVaP8A8/V9/wB9L/hU9v8AC/Qo2zK11MPRpAB+gFL2EjFcNY1u2n3/APAPD6sWdldXrlLO3mnYdRGhbH5V9AWngrw9a48vSoSR3ky5/wDHia3ra3htohHbxJFGOioMAfhVLDvqzto8K1L3rVEvTX87Hi2hfDLVb3ZJqTpZQHnHDyfkOn516b4b8I6ToCq1pAHuR1nk+Zz/AIfhXRUVvClGOx9Dg8nwuD96Eby7vV/8D5CAUtFFaHqBRRRQAUUUUAFFFFABRRRQB5V8XPhxqfjPWbK7066s4Y4bfyWE5YEncTkYB45rovhR4VvPB/hmTTdQmgmma5eYNCSVwVUY5A5+WuzooAZJDHI8byRozRnchZQSpxjI9OCR+NPoooAKKKKACua8c+DdM8Y6Z9l1FNkyZMNyg+eI+3qPUf8A666WigDA8D+GLTwl4fg02zwzL8002MGVz1Y/yA7ACt+iigArl/H/AILsPGmmQ2t8xikhlEkc6KCyj+JR7Ecfke1dRRQBS0XSrLRdMg0/TIEgtYV2oi/zPqT3NXaKKACvPvjB4JvvGthp0GnXFtA1tI7sZywBBAHGAfSvQaKAPK/hD8OtS8F6rfXWo3VpOlxAIlEBYkHcDzkCvVKKKAMrxJoGm+JNPFjrNt9ptRIJNm9k+YZwcqQe5rmP+FS+CP8AoC/+TU//AMXXeUUAcH/wqXwR/wBAX/yan/8Ai6P+FS+CP+gL/wCTU/8A8XXeUUAcH/wqXwR/0Bf/ACan/wDi6P8AhUvgj/oC/wDk1P8A/F13lFAHB/8ACpfBH/QF/wDJqf8A+LrU8OeA/DfhzUft2i6b9muthj3+fK/ynqMMxHYV1FFABRRRQBz3jzwxB4v8OT6VPL5BdldJtm8xsDnOMjPGR171ynh/4MeF9MKyXiT6lMOczvhM/wC6uM/Q5r0yigCrp2n2em24g0+1gtoR/BCgQfkKtUUUAFFFFABRRRQAUUUUAR3NvDdQPDcxRzQuMMkihlP1Bridf+FXhPWNzHThZTH/AJaWZ8v/AMd+7+ld1RQB5Bo/wUtdI8U6dqdvqrzWltMJWt5oRuO3lfmBx97HavX6KKACiiigBGGQR615I/wK0B5Gb+0NS+Y5+8n/AMTXrlFAFbTLNNP061s4mZo7eJIVLdSFAAz+VWaKKACs3xFolh4h0qXTtWh860kKsyhipyCCORyORWlRQB5//wAKf8Gf9AyX/wACpf8A4qj/AIU/4L/6Bch/7epf/iq9AooA5nRfAfhjRZVl0/RrVJVOVkcGRlPqCxJFdNRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAGVrHh7S9Zkhk1OzS4eHOwsSMfkeR9a0YIY7eFYoUVI1GFVRgCpKKmyvchU4Rk5pK73YUUUVRYUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH/9m4Svc/AAAAAJXgoqG7W1EGVR0MrUFS2Lk=";
const zhifubao = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAaQBDgDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD6pooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKM0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAJVLVNRtdMs3ur6dIIE+87nAFW3YKuTXzT8SPFsviXWSI3K6dbsVgTPDern3P6D8c+hluXyx9XkTslu/66nFjsYsJDm3b2O08QfGH53h0Oy3L0FxOcZ9wo/qfwrm/+Fq+Jf8Anra/9+RXBUV9xRyPBUo8vJf11PmJ5jiaju5W9NDvP+FreJv+ett/35FH/C1vE3/PW2/78iuDorb+ycH/AM+l9xn9exH87O8/4Wr4l/562v8A35FH/C1vEv8Az1tf+/Irg6KP7Jwf/PpB9fxH87O8/wCFreJf+etr/wB+RR/wtbxL/wA9bX/vyK4Oij+ycH/z6QfX8R/OzvP+FreJf+etr/35FH/C1vEv/PW1/wC/Irg6KP7Jwf8Az6QfX8R/OzvP+FreJf8Anra/9+RR/wALV8S/89bX/vyK4Oij+ycH/wA+kH1/Efzs9J034vaxby5v7e3uo/7qjyz+fP8AKvUvCPjbS/E6bLOQ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Ib/4ik/4UJ4u/wCeulf+BDf/ABFAHktb/wAP7mCy8caBc3UixW8N9DJJI5wqKHBJJ9K7v/hQni7/AJ66V/4EN/8AEUv/AAoXxf8A89dK/wDAhv8A4igdz3//AIWH4R/6GTS//Aha534heJvCHiPwVrGljxFpbyTQExD7Qv8ArF+ZP/HgK8h/4UJ4u/566V/4EN/8RR/woTxd/wA9dK/8CG/+IoEeSMMZxg/jWv4P1d9B8TaXqqZ/0S4SRgO65+YfiMj8a9E/4UJ4u/566V/4EN/8RR/woTxd/wA9dK/8CG/+IoHc+p4pEljWSNgysAwI7g9KkrnfAtjqOmeEtK0/WTE1/aQCF2iYspC8LyQM/KBn3roqCQooooADQKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooNAGZ4g09dV0i8sHO1biJo8+hI4P4GvlK+tZbK7mtrhSksTlGB7EHBr6/rzf4n+AB4hb+0dM8uPUlXDq3CzqOgJ7MOx/A9se7keYxwdR06nwy69meRm2CliIqVP4keBU2rWoWF1pt09ve20kEwPKOMH/wCuPeqtffQnGa5oO6PlZQlB2Y6iiitLhyhRRRRcLBRRRSAKKKKoVgooopaBYKbTq77wN8Ob/Wp47jVI3tNPU87xteX2Udh7n8M1x4nGUcLDnqOxrRw868uWCOx+BOiPa6Zd6pOpX7UwSIH+4ucn8Scf8Br1YVXs7aO0to7e3RY4Y1CoqjAAHQCrAr81xeIeJrSrS6n2uGoKhTjTXQWoFgiWZpVjQSHq4Ubj+NT0YrmOgQClxRRQAYooooAKKKKACiiigAoxRRQBHDBFAhWCNI1JLEIoAJPepKKKACiiigAooooAKKKKACjFFFABiiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAM0UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUGig0AFBoFFIChqGnWepQmG+gjnjP8LjIrG/4QTw1/0Cofzb/Gun70vatYV6tNWhJr0ZnKjTk7yivuOX/wCED8M/9AmD82/xo/4QPwz/ANAmD82/xrpqOav63X/nf3sX1al/KvuOZ/4QPwz/ANAmD82/xo/4QPwz/wBAmD82/wAa6bmjmj63X/nf3sPq1L+Vfccz/wAIH4Z/6BMP5t/jR/wgfhn/AKBMP5t/jXT0Yp/W6/8Az8f3sn6vS/kX3HMf8IH4Z/6BMP5t/jR/wgfhn/oEw/m3+NdPiij63X/5+P72Cw9L+Rfccx/wgfhn/oEw/m3+NH/CB+Gf+gTD+bf410+KMUfW6/8Az8f3sPq9L+RfcYem+FtG06bzbLT4IpOzAEkfnW2qgDilorGU5VHebbfmawhGCtFWClFFFSUFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAAaBRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABQaKDQAlKKSigBaKKKQBRRRQAUUUUAFFFFMAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAM0UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQIKKKKQwooopgFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUABoFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUCCiiigYUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAZooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAA0CiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo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RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQIKKKKACiiigAooooCwUUUUAFFFFAgooooAKKKKBoKKKKB3CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKQBRRRTAKKKKBBRRRQIKKKKVhhRRRTGFFFFAIKSlopoAooopMAooopAFFFFMAooooAKKKKACiiigAooooEFFFFABRRRQMKKKKBBRRRQMKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKBBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQIKKKKACiiigYUUUUDCiiigQUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAgooooGFFFFABRRRQAUUUUAFFFFMAooopAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAwooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK9p+HPgfw/rHg2wvtR04y3cnmbn8+Rc4kZRwGA6AV04+GfhP8A6BZ3f9fMv/xdfPVeJMPSnKnKMrptdOnzPWp5PWqRUotWav1Pm+ivpL/hWfhT/oFn/wACZf8A4uj/AIVn4T/6BZ/8CZf/AIus/wDWjC/yy/D/ADL/ALDr91+J820V9Jf8Kz8J/wDQLP8A4Ey//F0f8Kz8J/8AQLP/AIEy/wDxdH+tGF/ll+H+Yf2HX7r8T5tor6S/4Vl4T/6BZ/8AAiX/AOLo/wCFZeE/+gWf/AiX/wCLo/1owv8ALL8P8w/sOv3X4nzbRX0l/wAKy8J/9As/+BEv/wAXR/wrLwn/ANAs/wDgRL/8XR/rRhf5Zfh/mH9h1+6/E+baK+kv+FZeE/8AoFn/AMCJf/i6P+FZeE/+gWf/AAIl/wDi6P8AWjC/yy/D/MX9h4juvxPm2ivp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jXrtK4v4P/8AJPdK+s3/AKNeu0r8rx/+81P8T/M+7wf8CHovyFooorkOkKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoNFBoA4v4wf8k81b6w/+jUr5tr6S+MH/ACTzVvrD/wCjUr5tr7nhj/dpf4v0R8rnn+8L0/VhRRRX0x4oUUUUDCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKBH0j8H/+Se6V9Zv/AEa9dpXF/B//AJJ7pX1m/wDRr12lfleP/wB5qf4n+Z93g/4EPRfkLRRRXIdIUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABQaKDQBxfxg/5J5q31h/8ARqV8219JfGD/AJJ5q31h/wDRqV8219zwx/u0v8X6I+Vzz/eF6fqwooor6Y8UKKKKBhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAj6R+D//ACT3SvrN/wCjXrtK4v4P/wDJPdK+s3/o167SvyvH/wC81P8AE/zPu8H/AAIei/IWiiiuQ6QooooADX5WHpX6pmvyt7UANooooAKKKKAFopKKAFopKKAHZozQO3NH40AJSUUo60AdX8J/+SoeD/8AsNWX/o9K/SevzY+E3/JUvB3/AGGrL/0elfpRQAUUUUAeVftQf8kN8Tf9uv8A6VRV8BV9+ftRf8kM8Tf9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+s3/AKNeu0r8rx/+81P8T/M+7wf8CHovyFooorkOkKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoNFBoA4v4wf8k81b6w/+jUr5tr6S+MH/ACTzVvrD/wCjUr5tr7nhn/dpf4v0R8rnn+8L0/VhRRRX0x4oUUUUDCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKBH0j8H/+Se6V9Zv/AEa9dpXF/B//AJJ7pX1m/wDRr12lfleP/wB5qf4n+Z93g/4EPRfkLRRRXIdIUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABQaKDQBxfxg/5J5q31h/8ARqV8219JfGD/AJJ5q31h/wDRqV8219zwz/u0v8X6I+Vzz/eF6fqwooor6Y8UKKKKBhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAj6R+D//ACT3SvrN/wCjXrtK4v4P/wDJPdK+s3/o167SvyvH/wC9Vf8AE/zPu8H/AAIei/IWiiiuQ6QooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiuF1L4q+DtM1SSxutZjNxG21xFFJIqn/eVSOO/PFdnYXlvf2kV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OMyNP9vRJXkZiD18s8dfzrkj8JPG58P3Ghr4h0hNKnk82W3jg2B23BskiPPUDv2A6UAZZ0jV/D3ww0/xBL4+1a1tpLeP7PYxKerDKxofM7D24APFezfDfTNQ03w4h1XVr/U5bki4DXybJYVZV/dkbm6Y9epNeZzfC3x3NaaRaz+I9Ikh0pleyR7YN5JXGMEx5PQcHPQV3ngnRvG9hqs03izxDa6nYtAVSGGIIVkyuG4ReMBh170Ad8OgooXoKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACg0UGgDi/jB/yTzVvrD/6NSvm2vpL4wf8k81b6w/+jUr5tr7nhn/dpf4v0R8rnn+8L0/VhRRRX0x4oUUUUDCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKBH0j8H/APknulfWb/0a9dpXF/B//knulfWb/wBGvXaV+V4//eqv+J/mfd4P+BD0X5C0UUVyHSFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUGig0AcX8YP+Seat9Yf/RqV8219JfGD/knmrfWH/wBGpXzbX3PDH+7S/wAX6I+Vzz/eF6fqwooor6Y8UKKKKBhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAj6R+D/APyT3SvrN/6Neu0ri/g//wAk90r6zf8Ao167SvyvH/71V/xP8z7vB/wIei/IWiiiuQ6QooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi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ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUDCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAEpatPpOoLafa2sbsWmA3nGFvLwe+7GMVTrKFSM78jvYcouO46ikyKM1qIWikzRQAtFFFABRRSUCFopM0ZoAWikpaBhRRRQIKKKu3WkalaW/n3Wn3cMHH7ySFlXnpyRis51YU2lJ7lKLeyKVFGDRg1oIKKKKACiilkjeJisqMjjqDSugEooopgFFPSKSQExxs4HXaM4plJST2G0FFFFMkKKKdDFJPIsUMbPI3CogySfQCk5KOrGNoq9qmjalpUcD6jZy2yTg+X5gCliMZ46jqOtUainVhUXNB3RUoSg7SVgooorQgKKKKACiiigAoroPDPhDVvEtvNNpUUTxxvsJdwvOM96peItBvvD2oLZ6kqLOYxJhWBGCSOv4GuWOMouq6PMubt1NvYVVH2ji+XuZlFFFdJiFFFFMAooooGFFFFABRRRQAUUUUAFFIa6Hwz4R1XxJbzTaXHG8cb7CXcLzjNY1sRToR5qjsioU5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fhf8KP8AhaHin/n9i/78L/hXEUUv7Mwn/PqP3B9dxH87+87f/haPin/n8h/78L/hWP4l8X6x4itooNUnSSON96hY1XnGO31rApKqGXYanJThTSa8iKmLrTXLKTa9RK98+J3/ACSqH/dg/pXgte1WXxX0SPTYLafT7+QRxqh/doQSMDu1eVndOs6tGpShzcru/wADty2dPkqQqS5bqx4nXZ/DrxivhOW9MttJcJcBBtRguCufX61ofEXxrpPiPSYbTTbGe3lSdZC0kaqCArDGVJPUivPa9CC/tGg44im436HI39Uqp0ZXt1PZZ/jNEEPk6PJv7b5wB+imvMNU8QX2pa8+rmZoronKtGSNgxgBfoKycUtPDZVhcK26cNXp3HXx1aurTexu/wDCWeIf+gzf/wDf9v8AGj/hLPEP/QZv/wDv+3+NYVFb/UcN/wA+19yMvrFX+d/ebn/CXeIM/wDIZv8A/v8AN/jXosXxmjW2VH0aVnAClvtA5OOv3a8eornr5ThK9uamlbtp+RrTx+IpX5Zb/MKKKK9M4wooooGFFFFABRRRQI7H4c+M08IzXrTW0lwlwqAKrhcFc88/U12dx8aIhGfI0eQt23zgfyU14zRXk18mwuIqurUjdvzZ3Ucxr0oKEHZLyRr6p4g1DUtffV2maK7YgqY2I2ADAC+mBU3/AAl3iH/oM3//AH+P+NYVFdTweHaSdNNLRadDD29RNvmevmbv/CXeIf8AoNX/AP3+b/Gj/hLvEP8A0Gr/AP7/ADf41hUYp/UML/z7X3IFiaq+0/vPYY/jIotwjaPK52hS32gcnHX7teP9jSDpWp4W1CDS9es727jaSCF9zIBktwegPFYUMFSwMJzw8dX0u9beppUxNTEyjGrLRfqbvwl/5KDpP1l/9FPWt8eP+Rzg/wCvJP8A0OSuoi+LHh6Igx6VeqR0IjjB/wDQq87+JHiO18T67DfWUU8UawLCVmUBshmPYnj5hXj4d4jE5jCvOk4pK35/5nfWVKjhHSjNNt3OVFLRRX1R4oUUUUDCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooEwooooEFFFFBQUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUCCiiigYUUUUAFFFFABRRRQAUUUUAFFFFAgooooGFFFFAgooooGFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUCCiiigAooooGFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUCCiiigAooooGFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFK4BRRRQAUUUUwCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAortfBHhOy1/QdYv7uW5SSzUlBEygHCFucg9x7VxNclHGU6tSdNbx3+ZrUoyhGMntLYWiiiukzCiuk1Dwff2nhe21wPFPby8uIju8sHo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FFABRRRQAUUUUCCiiigAooooGFFFFABRRRQAUUUUAFFFFABRRRQAUUUUCCiiigAooooGFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH//2bhK9z8AAAAAq2qqkWwbRe9Jdtb2hho2aA==";
const _hoisted_1$3 = { class: "contact-support" };
const _hoisted_2 = { class: "container" };
const _sfc_main$3 = {
__name: "ContactSupport",
setup(__props) {
const qq = vue.ref("2402398917");
async function copyQQ() {
await navigator.clipboard.writeText(qq.value);
ElNotification({
title: "消息",
message: "已复制",
type: "success"
});
}
return (_ctx, _cache) => {
const _component_el_text = ElText;
const _component_el_button = ElButton;
const _component_el_link = ElLink;
const _component_el_row = ElRow;
const _component_el_image = ElImage;
const _component_el_card = ElCard;
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$3, [
vue.createVNode(_component_el_text, {
size: "large",
type: "primary"
}, {
default: vue.withCtx(() => _cache[0] || (_cache[0] = [
vue.createTextVNode(" 联系 & 捐助 ♥ ")
])),
_: 1
}),
vue.createVNode(_component_el_row, null, {
default: vue.withCtx(() => [
vue.createVNode(_component_el_text, null, {
default: vue.withCtx(() => [
_cache[3] || (_cache[3] = vue.createTextVNode(" 作者的 QQ 号码是 ")),
vue.createVNode(_component_el_button, {
type: "primary",
onClick: copyQQ,
style: { "padding": "0 0" },
text: ""
}, {
default: vue.withCtx(() => [
vue.createTextVNode(vue.toDisplayString(vue.unref(qq)), 1)
]),
_: 1
}),
_cache[4] || (_cache[4] = vue.createTextVNode(", 下面是捐助二维码。项目已 ")),
vue.createVNode(_component_el_link, {
style: { "margin-bottom": "2px" },
type: "primary",
href: "https://github.com/HHsomeHand/BiliWallpaper",
target: "_blank"
}, {
default: vue.withCtx(() => _cache[1] || (_cache[1] = [
vue.createTextVNode("开源")
])),
_: 1
}),
_cache[5] || (_cache[5] = vue.createTextVNode(" ,若您愿意捐助,请在备注中注明")),
vue.createVNode(_component_el_text, { type: "primary" }, {
default: vue.withCtx(() => _cache[2] || (_cache[2] = [
vue.createTextVNode("您的名称、 网名或联系方式。")
])),
_: 1
})
]),
_: 1
})
]),
_: 1
}),
vue.createVNode(_component_el_row, null, {
default: vue.withCtx(() => [
vue.createVNode(_component_el_text, null, {
default: vue.withCtx(() => [
_cache[8] || (_cache[8] = vue.createTextVNode(" 未来我会建立一个网站,专门记录所有曾帮助过我的朋友,衷心感谢您的支持! 在使用脚本过程中如果遇到 ")),
vue.createVNode(_component_el_text, { type: "primary" }, {
default: vue.withCtx(() => _cache[6] || (_cache[6] = [
vue.createTextVNode("任何问题")
])),
_: 1
}),
_cache[9] || (_cache[9] = vue.createTextVNode(",欢迎随时联系我, ")),
vue.createVNode(_component_el_text, { type: "primary" }, {
default: vue.withCtx(() => _cache[7] || (_cache[7] = [
vue.createTextVNode("脚本定制")
])),
_: 1
}),
_cache[10] || (_cache[10] = vue.createTextVNode("也可以通过 QQ 进一步交流。 "))
]),
_: 1
})
]),
_: 1
}),
vue.createElementVNode("div", _hoisted_2, [
vue.createVNode(_component_el_card, { class: "qr-img" }, {
default: vue.withCtx(() => [
vue.createVNode(_component_el_image, {
"preview-src-list": [vue.unref(weixing)],
src: vue.unref(weixing)
}, null, 8, ["preview-src-list", "src"])
]),
_: 1
}),
vue.createVNode(_component_el_card, { class: "qr-img" }, {
default: vue.withCtx(() => [
vue.createVNode(_component_el_image, {
"preview-src-list": [vue.unref(zhifubao)],
src: vue.unref(zhifubao)
}, null, 8, ["preview-src-list", "src"])
]),
_: 1
})
])
]);
};
}
};
const ContactSupport = /* @__PURE__ */ _export_sfc$1(_sfc_main$3, [["__scopeId", "data-v-cc398a05"]]);
const _hoisted_1$2 = { class: "tabs-item" };
const _sfc_main$2 = {
__name: "TabsItem",
setup(__props) {
const mainStore2 = useMainStore();
const { tabsCurrSel } = storeToRefs(mainStore2);
const uploadPaneRef = vue.ref();
vue.onMounted(() => {
uploadPaneRef.value.$el.style.height = "300px";
});
const { isShowContact } = storeToRefs(mainStore2);
return (_ctx, _cache) => {
const _component_el_tab_pane = ElTabPane;
const _component_el_collapse_transition = ElCollapseTransition;
const _component_el_tabs = ElTabs;
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$2, [
vue.createVNode(_component_el_tabs, {
modelValue: vue.unref(tabsCurrSel),
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.isRef(tabsCurrSel) ? tabsCurrSel.value = $event : null)
}, {
default: vue.withCtx(() => [
vue.createVNode(_component_el_collapse_transition, null, {
default: vue.withCtx(() => [
vue.createVNode(_component_el_tab_pane, {
ref_key: "uploadPaneRef",
ref: uploadPaneRef,
label: "上传壁纸",
name: "0"
}, {
default: vue.withCtx(() => [
vue.createVNode(_sfc_main$9)
]),
_: 1
}, 512)
]),
_: 1
}),
vue.createVNode(_component_el_collapse_transition, null, {
default: vue.withCtx(() => [
vue.createVNode(_component_el_tab_pane, {
label: "管理壁纸",
name: "1"
}, {
default: vue.withCtx(() => [
vue.createVNode(_sfc_main$6)
]),
_: 1
})
]),
_: 1
}),
vue.createVNode(_component_el_collapse_transition, null, {
default: vue.withCtx(() => [
vue.createVNode(_component_el_tab_pane, {
label: "屏蔽设置",
name: "2"
}, {
default: vue.withCtx(() => [
vue.createVNode(BiliConfig)
]),
_: 1
})
]),
_: 1
}),
vue.unref(isShowContact) ? (vue.openBlock(), vue.createBlock(_component_el_collapse_transition, { key: 0 }, {
default: vue.withCtx(() => [
vue.createVNode(_component_el_tab_pane, {
label: "联系作者",
name: "3"
}, {
default: vue.withCtx(() => [
vue.createVNode(ContactSupport)
]),
_: 1
})
]),
_: 1
})) : vue.createCommentVNode("", true)
]),
_: 1
}, 8, ["modelValue"])
]);
};
}
};
const TabsItem = /* @__PURE__ */ _export_sfc$1(_sfc_main$2, [["__scopeId", "data-v-180e731c"]]);
const _hoisted_1$1 = { class: "upload-dialog" };
const _sfc_main$1 = {
__name: "DialogItem",
setup(__props) {
const mainStore2 = useMainStore();
const { isShowDialog: isShowDialog2 } = storeToRefs(mainStore2);
return (_ctx, _cache) => {
const _component_el_dialog = ElDialog;
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$1, [
vue.createVNode(_component_el_dialog, {
modelValue: vue.unref(isShowDialog2),
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.isRef(isShowDialog2) ? isShowDialog2.value = $event : null),
width: "500",
"align-center": ""
}, {
default: vue.withCtx(() => [
vue.createVNode(TabsItem)
]),
_: 1
}, 8, ["modelValue"])
]);
};
}
};
const DialogItem = /* @__PURE__ */ _export_sfc$1(_sfc_main$1, [["__scopeId", "data-v-053f12e5"]]);
const _hoisted_1 = { class: "app" };
const _sfc_main = {
__name: "App",
setup(__props) {
return (_ctx, _cache) => {
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
vue.createVNode(WallpaperItem),
(vue.openBlock(), vue.createBlock(vue.Teleport, { to: "body" }, [
vue.createVNode(DialogItem)
]))
]);
};
}
};
const pinia = createPinia();
const app = vue.createApp(_sfc_main).use(pinia);
const mainStore = useMainStore();
const { isShowDialog } = storeToRefs(mainStore);
_GM_registerMenuCommand("设置 (点我切换背景图片)", () => {
isShowDialog.value = true;
});
app.mount(
(() => {
const app2 = document.createElement("div");
let parent = document.querySelector(".bili-header");
if (parent.firstChild) {
parent.insertBefore(app2, parent.firstChild);
} else {
parent.appendChild(app2);
}
return app2;
})()
);
}
});
require_main_001();
})(Vue);