From 7e2d6f420bca62fa72990c5347b5821b76a67ed3 Mon Sep 17 00:00:00 2001 From: liuzhihang1 Date: Sat, 29 Jun 2024 22:26:47 +0800 Subject: [PATCH] fixed some bugs --- .gitignore | 7 +- README.md | 50 +++++++ route/templates/index.html | 2 +- route/templates/js/about.1b623bf8.js | 2 + route/templates/js/about.1b623bf8.js.map | 1 + route/templates/js/about.e5f85072.js | 2 - route/templates/js/about.e5f85072.js.map | 1 - .../js/{app.eeb57861.js => app.d1a426cf.js} | 4 +- ...pp.eeb57861.js.map => app.d1a426cf.js.map} | 2 +- server_config.json | 128 ++++++++++++++++++ service/es/es.go | 14 +- service/process/process_std.go | 7 +- 12 files changed, 203 insertions(+), 17 deletions(-) create mode 100644 README.md create mode 100644 route/templates/js/about.1b623bf8.js create mode 100644 route/templates/js/about.1b623bf8.js.map delete mode 100644 route/templates/js/about.e5f85072.js delete mode 100644 route/templates/js/about.e5f85072.js.map rename route/templates/js/{app.eeb57861.js => app.d1a426cf.js} (98%) rename route/templates/js/{app.eeb57861.js.map => app.d1a426cf.js.map} (99%) create mode 100644 server_config.json diff --git a/.gitignore b/.gitignore index 2895981..e0dafec 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ info.log -xmp* -data.db \ No newline at end of file +msm* +vue-minecraft/node_modules +data.db +.data* +config.yaml \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..edc6fd4 --- /dev/null +++ b/README.md @@ -0,0 +1,50 @@ +基于golang的进程管理工具 + +# 基础功能 +- 类似screen的进程管理 +- 提供web ui可视化操作 +- 基于Elasticsearch的日志管理 +- 三种角色的权限管理 +- 进程性能监控 +- 进程状态推送 + +# 终端类型 +## pty +基于伪终端实现,支持ansi字符、快捷键,仅支持linux +## std +基于stdin、stdout管道实现,支持所有平台 + +# 角色 + +| 角色 | 角色管理 | 进程创建 | 操控进程 | 日志查看 | +| ----- | -------- | -------- | -------- | ---- | +| root | ✔ | ✔ | ✔ | ✔ | +| admin | × | × | ✔ | ✔ | +| user | × | × | 需配置 | × | + + +# 如何使用 +## 启动进程 +### windows +下载windows版本双击运行 +### linux +下载linux版本 +使用命令 +``` +chmod 777 ./xpm +./xpm +``` +## web界面 +访问http://[ip]:8797 +默认账号密码 root/root + +# 界面 +### 进程 +![image](https://github.com/lzh-1625/x_process_manager/assets/59822923/50f31b99-41d4-4d8c-88fe-20c978385155) + +### 终端 +![image](https://github.com/lzh-1625/x_process_manager/assets/59822923/63eb6bec-353f-4d12-a1d9-95d89fccdac3) + +### 日志 +![image](https://github.com/lzh-1625/x_process_manager/assets/59822923/6af8e228-7709-45c5-aba8-4b61dc825026) + diff --git a/route/templates/index.html b/route/templates/index.html index a185ec6..331f0f7 100644 --- a/route/templates/index.html +++ b/route/templates/index.html @@ -1 +1 @@ -login
\ No newline at end of file +login
\ No newline at end of file diff --git a/route/templates/js/about.1b623bf8.js b/route/templates/js/about.1b623bf8.js new file mode 100644 index 0000000..b0228bb --- /dev/null +++ b/route/templates/js/about.1b623bf8.js @@ -0,0 +1,2 @@ +(self["webpackChunklogin"]=self["webpackChunklogin"]||[]).push([[594],{31315:function(e,t,i){"use strict";i.d(t,{A:function(){return d}});var s=i(27495),r=i(21823),n=i(57889),o=i(21906),a=i(90806),l=i(39748),h=i(3507),c=i(66960),d=(0,h.A)(s.A,a.A,l.A).extend({name:"v-banner",inheritAttrs:!1,props:{app:Boolean,icon:String,iconColor:String,singleLine:Boolean,sticky:Boolean,value:{type:Boolean,default:!0}},computed:{classes(){return{...s.A.options.computed.classes.call(this),"v-banner--has-icon":this.hasIcon,"v-banner--is-mobile":this.isMobile,"v-banner--single-line":this.singleLine,"v-banner--sticky":this.isSticky}},hasIcon(){return Boolean(this.icon||this.$slots.icon||this.$scopedSlots.icon)},isSticky(){return this.sticky||this.app},styles(){const e={...s.A.options.computed.styles.call(this)};if(this.isSticky){const t=this.app?this.$vuetify.application.bar+this.$vuetify.application.top:0;e.top=(0,c.Dg)(t),e.position="sticky",e.zIndex=1}return e}},methods:{toggle(){this.isActive=!this.isActive},iconClick(e){this.$emit("click:icon",e)},genIcon(){if(!this.hasIcon)return;let e;return e=this.icon?this.$createElement(n.A,{props:{color:this.iconColor,size:28}},[this.icon]):(0,c.$c)(this,"icon"),this.$createElement(r.A,{staticClass:"v-banner__icon",props:{color:this.color,size:40},on:{click:this.iconClick}},[e])},genText(){return this.$createElement("div",{staticClass:"v-banner__text"},(0,c.$c)(this))},genActions(){const e=(0,c.$c)(this,"actions",{dismiss:()=>this.isActive=!1});if(e)return this.$createElement("div",{staticClass:"v-banner__actions"},e)},genContent(){return this.$createElement("div",{staticClass:"v-banner__content"},[this.genIcon(),this.genText()])},genWrapper(){return this.$createElement("div",{staticClass:"v-banner__wrapper"},[this.genContent(),this.genActions()])}},render(e){const t={staticClass:"v-banner",attrs:this.attrs$,class:this.classes,style:this.styles,directives:[{name:"show",value:this.isActive}]};return e(o.Qo,[e("div",this.outlined?t:this.setBackgroundColor(this.color,t),[this.genWrapper()])])}})},78246:function(e,t,i){"use strict";i.d(t,{A:function(){return c}});var s=i(91723),r=i(85471),n=i(69456),o=i(68767),a=i(53661),l=i(64961),h=i(66960),c=r["default"].extend({name:"v-simple-checkbox",functional:!0,directives:{Ripple:s.A},props:{...o.A.options.props,...a.A.options.props,disabled:Boolean,ripple:{type:Boolean,default:!0},value:Boolean,indeterminate:Boolean,indeterminateIcon:{type:String,default:"$checkboxIndeterminate"},onIcon:{type:String,default:"$checkboxOn"},offIcon:{type:String,default:"$checkboxOff"}},render(e,{props:t,data:i,listeners:r}){const a=[];let c=t.offIcon;if(t.indeterminate?c=t.indeterminateIcon:t.value&&(c=t.onIcon),a.push(e(n.A,o.A.options.methods.setTextColor(t.value&&t.color,{props:{disabled:t.disabled,dark:t.dark,light:t.light}}),c)),t.ripple&&!t.disabled){const i=e("div",o.A.options.methods.setTextColor(t.color,{staticClass:"v-input--selection-controls__ripple",directives:[{def:s.A,name:"ripple",value:{center:!0}}]}));a.push(i)}return e("div",(0,l.Ay)(i,{class:{"v-simple-checkbox":!0,"v-simple-checkbox--disabled":t.disabled},on:{click:e=>{e.stopPropagation(),i.on&&i.on.input&&!t.disabled&&(0,h.BN)(i.on.input).forEach((e=>e(!t.value)))}}}),[e("div",{staticClass:"v-input--selection-controls__input"},a)])}})},84286:function(e,t,i){"use strict";i.d(t,{A:function(){return _}});var s=i(3507),r=i(21906),n=i(57889),o=i(68767),a=i(74387),l=i(53661),h=i(39748),c=i(78010),d=i(21713),u=i(65604),f=i(66960),p=(0,s.A)(o.A,d.A,c.A,l.A,(0,a.P)("chipGroup"),(0,h.P)("inputValue")).extend({name:"v-chip",props:{active:{type:Boolean,default:!0},activeClass:{type:String,default(){return this.chipGroup?this.chipGroup.activeClass:""}},close:Boolean,closeIcon:{type:String,default:"$delete"},closeLabel:{type:String,default:"$vuetify.close"},disabled:Boolean,draggable:Boolean,filter:Boolean,filterIcon:{type:String,default:"$complete"},label:Boolean,link:Boolean,outlined:Boolean,pill:Boolean,tag:{type:String,default:"span"},textColor:String,value:null},data:()=>({proxyClass:"v-chip--active"}),computed:{classes(){return{"v-chip":!0,...c.A.options.computed.classes.call(this),"v-chip--clickable":this.isClickable,"v-chip--disabled":this.disabled,"v-chip--draggable":this.draggable,"v-chip--label":this.label,"v-chip--link":this.isLink,"v-chip--no-color":!this.color,"v-chip--outlined":this.outlined,"v-chip--pill":this.pill,"v-chip--removable":this.hasClose,...this.themeClasses,...this.sizeableClasses,...this.groupClasses}},hasClose(){return Boolean(this.close)},isClickable(){return Boolean(c.A.options.computed.isClickable.call(this)||this.chipGroup)}},created(){const e=[["outline","outlined"],["selected","input-value"],["value","active"],["@input","@active.sync"]];e.forEach((([e,t])=>{this.$attrs.hasOwnProperty(e)&&(0,u.q4)(e,t,this)}))},methods:{click(e){this.$emit("click",e),this.chipGroup&&this.toggle()},genFilter(){const e=[];return this.isActive&&e.push(this.$createElement(n.A,{staticClass:"v-chip__filter",props:{left:!0}},this.filterIcon)),this.$createElement(r.SM,e)},genClose(){return this.$createElement(n.A,{staticClass:"v-chip__close",props:{right:!0,size:18},attrs:{"aria-label":this.$vuetify.lang.t(this.closeLabel)},on:{click:e=>{e.stopPropagation(),e.preventDefault(),this.$emit("click:close"),this.$emit("update:active",!1)}}},this.closeIcon)},genContent(){return this.$createElement("span",{staticClass:"v-chip__content"},[this.filter&&this.genFilter(),(0,f.$c)(this),this.hasClose&&this.genClose()])}},render(e){const t=[this.genContent()];let{tag:i,data:s}=this.generateRouteLink();s.attrs={...s.attrs,draggable:this.draggable?"true":void 0,tabindex:this.chipGroup&&!this.disabled?0:s.attrs.tabindex},s.directives.push({name:"show",value:this.active}),s=this.setBackgroundColor(this.color,s);const r=this.textColor||this.outlined&&this.color;return e(i,this.setTextColor(r,s),t)}}),_=p},21373:function(e,t,i){"use strict";i.d(t,{A:function(){return R}});var s=i(66960),r=i(85471),n=r["default"].extend({name:"v-data",inheritAttrs:!1,props:{items:{type:Array,default:()=>[]},options:{type:Object,default:()=>({})},sortBy:{type:[String,Array]},sortDesc:{type:[Boolean,Array]},customSort:{type:Function,default:s.Ls},mustSort:Boolean,multiSort:Boolean,page:{type:Number,default:1},itemsPerPage:{type:Number,default:10},groupBy:{type:[String,Array],default:()=>[]},groupDesc:{type:[Boolean,Array],default:()=>[]},customGroup:{type:Function,default:s.Az},locale:{type:String,default:"en-US"},disableSort:Boolean,disablePagination:Boolean,disableFiltering:Boolean,search:String,customFilter:{type:Function,default:s.Ds},serverItemsLength:{type:Number,default:-1}},data(){let e={page:this.page,itemsPerPage:this.itemsPerPage,sortBy:(0,s.BN)(this.sortBy),sortDesc:(0,s.BN)(this.sortDesc),groupBy:(0,s.BN)(this.groupBy),groupDesc:(0,s.BN)(this.groupDesc),mustSort:this.mustSort,multiSort:this.multiSort};this.options&&(e=Object.assign(e,this.options));const{sortBy:t,sortDesc:i,groupBy:r,groupDesc:n}=e,o=t.length-i.length,a=r.length-n.length;return o>0&&e.sortDesc.push(...(0,s.R2)(o,!1)),a>0&&e.groupDesc.push(...(0,s.R2)(a,!1)),{internalOptions:e}},computed:{itemsLength(){return this.serverItemsLength>=0?this.serverItemsLength:this.filteredItems.length},pageCount(){return this.internalOptions.itemsPerPage<=0?1:Math.ceil(this.itemsLength/this.internalOptions.itemsPerPage)},pageStart(){return-1!==this.internalOptions.itemsPerPage&&this.items.length?(this.internalOptions.page-1)*this.internalOptions.itemsPerPage:0},pageStop(){return-1===this.internalOptions.itemsPerPage?this.itemsLength:this.items.length?Math.min(this.itemsLength,this.internalOptions.page*this.internalOptions.itemsPerPage):0},isGrouped(){return!!this.internalOptions.groupBy.length},pagination(){return{page:this.internalOptions.page,itemsPerPage:this.internalOptions.itemsPerPage,pageStart:this.pageStart,pageStop:this.pageStop,pageCount:this.pageCount,itemsLength:this.itemsLength}},filteredItems(){let e=this.items.slice();return!this.disableFiltering&&this.serverItemsLength<=0&&(e=this.customFilter(e,this.search)),e},computedItems(){let e=this.filteredItems.slice();return(!this.disableSort||this.internalOptions.groupBy.length)&&this.serverItemsLength<=0&&(e=this.sortItems(e)),!this.disablePagination&&this.serverItemsLength<=0&&(e=this.paginateItems(e)),e},groupedItems(){return this.isGrouped?this.groupItems(this.computedItems):null},scopedProps(){return{sort:this.sort,sortArray:this.sortArray,group:this.group,items:this.computedItems,options:this.internalOptions,updateOptions:this.updateOptions,pagination:this.pagination,groupedItems:this.groupedItems,originalItemsLength:this.items.length}},computedOptions(){return{...this.options}}},watch:{computedOptions:{handler(e,t){(0,s.bD)(e,t)||this.updateOptions(e)},deep:!0,immediate:!0},internalOptions:{handler(e,t){(0,s.bD)(e,t)||this.$emit("update:options",e)},deep:!0,immediate:!0},page(e){this.updateOptions({page:e})},"internalOptions.page"(e){this.$emit("update:page",e)},itemsPerPage(e){this.updateOptions({itemsPerPage:e})},"internalOptions.itemsPerPage"(e){this.$emit("update:items-per-page",e)},sortBy(e){this.updateOptions({sortBy:(0,s.BN)(e)})},"internalOptions.sortBy"(e,t){!(0,s.bD)(e,t)&&this.$emit("update:sort-by",Array.isArray(this.sortBy)?e:e[0])},sortDesc(e){this.updateOptions({sortDesc:(0,s.BN)(e)})},"internalOptions.sortDesc"(e,t){!(0,s.bD)(e,t)&&this.$emit("update:sort-desc",Array.isArray(this.sortDesc)?e:e[0])},groupBy(e){this.updateOptions({groupBy:(0,s.BN)(e)})},"internalOptions.groupBy"(e,t){!(0,s.bD)(e,t)&&this.$emit("update:group-by",Array.isArray(this.groupBy)?e:e[0])},groupDesc(e){this.updateOptions({groupDesc:(0,s.BN)(e)})},"internalOptions.groupDesc"(e,t){!(0,s.bD)(e,t)&&this.$emit("update:group-desc",Array.isArray(this.groupDesc)?e:e[0])},multiSort(e){this.updateOptions({multiSort:e})},"internalOptions.multiSort"(e){this.$emit("update:multi-sort",e)},mustSort(e){this.updateOptions({mustSort:e})},"internalOptions.mustSort"(e){this.$emit("update:must-sort",e)},pageCount:{handler(e){this.$emit("page-count",e)},immediate:!0},computedItems:{handler(e){this.$emit("current-items",e)},immediate:!0},pagination:{handler(e,t){(0,s.bD)(e,t)||this.$emit("pagination",this.pagination)},immediate:!0}},methods:{toggle(e,t,i,r,n,o){let a=t.slice(),l=i.slice();const h=a.findIndex((t=>t===e));return h<0?(o||(a=[],l=[]),a.push(e),l.push(!1)):h>=0&&!l[h]?l[h]=!0:n?l[h]=!1:(a.splice(h,1),l.splice(h,1)),(0,s.bD)(a,t)&&(0,s.bD)(l,i)||(r=1),{by:a,desc:l,page:r}},group(e){const{by:t,desc:i,page:s}=this.toggle(e,this.internalOptions.groupBy,this.internalOptions.groupDesc,this.internalOptions.page,!0,!1);this.updateOptions({groupBy:t,groupDesc:i,page:s})},sort(e){if(Array.isArray(e))return this.sortArray(e);const{by:t,desc:i,page:s}=this.toggle(e,this.internalOptions.sortBy,this.internalOptions.sortDesc,this.internalOptions.page,this.internalOptions.mustSort,this.internalOptions.multiSort);this.updateOptions({sortBy:t,sortDesc:i,page:s})},sortArray(e){const t=e.map((e=>{const t=this.internalOptions.sortBy.findIndex((t=>t===e));return t>-1&&this.internalOptions.sortDesc[t]}));this.updateOptions({sortBy:e,sortDesc:t})},updateOptions(e){this.internalOptions={...this.internalOptions,...e,page:this.serverItemsLength<0?Math.max(1,Math.min(e.page||this.internalOptions.page,this.pageCount)):e.page||this.internalOptions.page}},sortItems(e){let t=[],i=[];return this.disableSort||(t=this.internalOptions.sortBy,i=this.internalOptions.sortDesc),this.internalOptions.groupBy.length&&(t=[...this.internalOptions.groupBy,...t],i=[...this.internalOptions.groupDesc,...i]),this.customSort(e,t,i,this.locale)},groupItems(e){return this.customGroup(e,this.internalOptions.groupBy,this.internalOptions.groupDesc)},paginateItems(e){return-1===this.serverItemsLength&&e.length<=this.pageStart&&(this.internalOptions.page=Math.max(1,Math.ceil(e.length/this.internalOptions.itemsPerPage))||1),e.slice(this.pageStart,this.pageStop)}},render(){return this.$scopedSlots.default&&this.$scopedSlots.default(this.scopedProps)}}),o=i(81556),a=i(57889),l=i(3536),h=r["default"].extend({name:"v-data-footer",props:{options:{type:Object,required:!0},pagination:{type:Object,required:!0},itemsPerPageOptions:{type:Array,default:()=>[5,10,15,-1]},prevIcon:{type:String,default:"$prev"},nextIcon:{type:String,default:"$next"},firstIcon:{type:String,default:"$first"},lastIcon:{type:String,default:"$last"},itemsPerPageText:{type:String,default:"$vuetify.dataFooter.itemsPerPageText"},itemsPerPageAllText:{type:String,default:"$vuetify.dataFooter.itemsPerPageAll"},showFirstLastPage:Boolean,showCurrentPage:Boolean,disablePagination:Boolean,disableItemsPerPage:Boolean,pageText:{type:String,default:"$vuetify.dataFooter.pageText"}},computed:{disableNextPageIcon(){return this.options.itemsPerPage<=0||this.options.page*this.options.itemsPerPage>=this.pagination.itemsLength||this.pagination.pageStop<0},computedDataItemsPerPageOptions(){return this.itemsPerPageOptions.map((e=>"object"===typeof e?e:this.genDataItemsPerPageOption(e)))}},methods:{updateOptions(e){this.$emit("update:options",Object.assign({},this.options,e))},onFirstPage(){this.updateOptions({page:1})},onPreviousPage(){this.updateOptions({page:this.options.page-1})},onNextPage(){this.updateOptions({page:this.options.page+1})},onLastPage(){this.updateOptions({page:this.pagination.pageCount})},onChangeItemsPerPage(e){this.updateOptions({itemsPerPage:e,page:1})},genDataItemsPerPageOption(e){return{text:-1===e?this.$vuetify.lang.t(this.itemsPerPageAllText):String(e),value:e}},genItemsPerPageSelect(){let e=this.options.itemsPerPage;const t=this.computedDataItemsPerPageOptions;return t.length<=1?null:(t.find((t=>t.value===e))||(e=t[0]),this.$createElement("div",{staticClass:"v-data-footer__select"},[this.$vuetify.lang.t(this.itemsPerPageText),this.$createElement(o.A,{attrs:{"aria-label":this.$vuetify.lang.t(this.itemsPerPageText)},props:{disabled:this.disableItemsPerPage,items:t,value:e,hideDetails:!0,auto:!0,minWidth:"75px"},on:{input:this.onChangeItemsPerPage}})]))},genPaginationInfo(){let e=["–"];const t=this.pagination.itemsLength;let i=this.pagination.pageStart,s=this.pagination.pageStop;return this.pagination.itemsLength&&this.pagination.itemsPerPage?(i=this.pagination.pageStart+1,s=t=this.pagination.pageCount||-1===this.options.itemsPerPage,this.$vuetify.lang.t("$vuetify.dataFooter.lastPage"),this.$vuetify.rtl?this.firstIcon:this.lastIcon))),[this.$createElement("div",{staticClass:"v-data-footer__icons-before"},e),this.showCurrentPage&&this.$createElement("span",[this.options.page.toString()]),this.$createElement("div",{staticClass:"v-data-footer__icons-after"},t)]}},render(){return this.$createElement("div",{staticClass:"v-data-footer"},[(0,s.$c)(this,"prepend"),this.genItemsPerPageSelect(),this.genPaginationInfo(),this.genIcons()])}}),c=i(90806),d=i(53661),u=i(3507),f=i(65604),p=(0,u.A)(c.A,d.A).extend({name:"v-data-iterator",props:{...n.options.props,itemKey:{type:String,default:"id"},value:{type:Array,default:()=>[]},singleSelect:Boolean,expanded:{type:Array,default:()=>[]},mobileBreakpoint:{...c.A.options.props.mobileBreakpoint,default:600},singleExpand:Boolean,loading:[Boolean,String],noResultsText:{type:String,default:"$vuetify.dataIterator.noResultsText"},noDataText:{type:String,default:"$vuetify.noDataText"},loadingText:{type:String,default:"$vuetify.dataIterator.loadingText"},hideDefaultFooter:Boolean,footerProps:Object,selectableKey:{type:String,default:"isSelectable"}},data:()=>({selection:{},expansion:{},internalCurrentItems:[],shiftKeyDown:!1,lastEntry:-1}),computed:{everyItem(){return!!this.selectableItems.length&&this.selectableItems.every((e=>this.isSelected(e)))},someItems(){return this.selectableItems.some((e=>this.isSelected(e)))},sanitizedFooterProps(){return(0,s.CD)(this.footerProps)},selectableItems(){return this.internalCurrentItems.filter((e=>this.isSelectable(e)))}},watch:{value:{handler(e){this.selection=e.reduce(((e,t)=>(e[(0,s.no)(t,this.itemKey)]=t,e)),{})},immediate:!0},selection(e,t){(0,s.bD)(Object.keys(e),Object.keys(t))||this.$emit("input",Object.values(e))},expanded:{handler(e){this.expansion=e.reduce(((e,t)=>(e[(0,s.no)(t,this.itemKey)]=!0,e)),{})},immediate:!0},expansion(e,t){if((0,s.bD)(e,t))return;const i=Object.keys(e).filter((t=>e[t])),r=i.length?this.items.filter((e=>i.includes(String((0,s.no)(e,this.itemKey))))):[];this.$emit("update:expanded",r)}},created(){const e=[["disable-initial-sort","sort-by"],["filter","custom-filter"],["pagination","options"],["total-items","server-items-length"],["hide-actions","hide-default-footer"],["rows-per-page-items","footer-props.items-per-page-options"],["rows-per-page-text","footer-props.items-per-page-text"],["prev-icon","footer-props.prev-icon"],["next-icon","footer-props.next-icon"]];e.forEach((([e,t])=>{this.$attrs.hasOwnProperty(e)&&(0,f.q4)(e,t,this)}));const t=["expand","content-class","content-props","content-tag"];t.forEach((e=>{this.$attrs.hasOwnProperty(e)&&(0,f.rq)(e)}))},mounted(){window.addEventListener("keydown",this.onKeyDown),window.addEventListener("keyup",this.onKeyUp)},beforeDestroy(){window.removeEventListener("keydown",this.onKeyDown),window.removeEventListener("keyup",this.onKeyUp)},methods:{onKeyDown(e){this.shiftKeyDown=e.keyCode===s.uP.shift||e.shiftKey},onKeyUp(e){e.keyCode!==s.uP.shift&&e.shiftKey||(this.shiftKeyDown=!1)},toggleSelectAll(e){const t=Object.assign({},this.selection);for(let i=0;i(0,s.no)(e,this.itemKey)===n));if(-1===this.lastEntry)this.lastEntry=o;else if(this.shiftKeyDown&&!this.singleSelect&&i){const e=(0,s.no)(this.selectableItems[this.lastEntry],this.itemKey),t=Object.keys(this.selection).includes(String(e));this.multipleSelect(t,i,r,o)}if(this.lastEntry=o,this.singleSelect&&i){const e=Object.keys(this.selection),t=e.length&&(0,s.no)(this.selection[e[0]],this.itemKey);t&&t!==n&&this.$emit("item-selected",{item:this.selection[t],value:!1})}this.selection=r,i&&this.$emit("item-selected",{item:e,value:t})},multipleSelect(e=!0,t=!0,i,r){const n=rthis.select(e,t),isSelected:this.isSelected(e),expand:t=>this.expand(e,t),isExpanded:this.isExpanded(e),isMobile:this.isMobile}},genEmptyWrapper(e){return this.$createElement("div",e)},genEmpty(e,t){if(0===e&&this.loading){const e=(0,s.$c)(this,"loading")||this.$vuetify.lang.t(this.loadingText);return this.genEmptyWrapper(e)}if(0===e){const e=(0,s.$c)(this,"noData")||this.$vuetify.lang.t(this.noDataText);return this.genEmptyWrapper(e)}if(0===t){const e=(0,s.$c)(this,"noResults")||this.$vuetify.lang.t(this.noResultsText);return this.genEmptyWrapper(e)}return null},genItems(e){const t=this.genEmpty(e.originalItemsLength,e.pagination.itemsLength);return t?[t]:this.$scopedSlots.default?this.$scopedSlots.default({...e,isSelected:this.isSelected,select:this.select,isExpanded:this.isExpanded,isMobile:this.isMobile,expand:this.expand}):this.$scopedSlots.item?e.items.map(((e,t)=>this.$scopedSlots.item(this.createItemProps(e,t)))):[]},genFooter(e){if(this.hideDefaultFooter)return null;const t={props:{...this.sanitizedFooterProps,options:e.options,pagination:e.pagination},on:{"update:options":t=>e.updateOptions(t)}},i=(0,s.JL)("footer.",this.$scopedSlots);return this.$createElement(h,{scopedSlots:i,...t})},genDefaultScopedSlot(e){const t={...e,someItems:this.someItems,everyItem:this.everyItem,toggleSelectAll:this.toggleSelectAll};return this.$createElement("div",{staticClass:"v-data-iterator"},[(0,s.$c)(this,"header",t,!0),this.genItems(e),this.genFooter(e),(0,s.$c)(this,"footer",t,!0)])}},render(){return this.$createElement(n,{props:this.$props,on:{"update:options":(e,t)=>!(0,s.bD)(e,t)&&this.$emit("update:options",e),"update:page":e=>this.$emit("update:page",e),"update:items-per-page":e=>this.$emit("update:items-per-page",e),"update:sort-by":e=>this.$emit("update:sort-by",e),"update:sort-desc":e=>this.$emit("update:sort-desc",e),"update:group-by":e=>this.$emit("update:group-by",e),"update:group-desc":e=>this.$emit("update:group-desc",e),pagination:(e,t)=>!(0,s.bD)(e,t)&&this.$emit("pagination",e),"current-items":e=>{this.internalCurrentItems=e,this.$emit("current-items",e)},"page-count":e=>this.$emit("page-count",e)},scopedSlots:{default:this.genDefaultScopedSlot}})}}),_=i(84286),v=i(78246),g=i(91723),m=(0,u.A)().extend({directives:{ripple:g.A},props:{headers:{type:Array,default:()=>[]},options:{type:Object,default:()=>({page:1,itemsPerPage:10,sortBy:[],sortDesc:[],groupBy:[],groupDesc:[],multiSort:!1,mustSort:!1})},checkboxColor:String,sortIcon:{type:String,default:"$sort"},everyItem:Boolean,someItems:Boolean,showGroupBy:Boolean,singleSelect:Boolean,disableSort:Boolean},methods:{genSelectAll(){var e;const t={props:{value:this.everyItem,indeterminate:!this.everyItem&&this.someItems,color:null!==(e=this.checkboxColor)&&void 0!==e?e:""},on:{input:e=>this.$emit("toggle-select-all",e)}};return this.$scopedSlots["data-table-select"]?this.$scopedSlots["data-table-select"](t):this.$createElement(v.A,{staticClass:"v-data-table__checkbox",...t})},genSortIcon(){return this.$createElement(a.A,{staticClass:"v-data-table-header__icon",props:{size:18}},[this.sortIcon])}}}),S=(0,u.A)(m).extend({name:"v-data-table-header-mobile",props:{sortByText:{type:String,default:"$vuetify.dataTable.sortBy"}},methods:{genSortChip(e){const t=[e.item.text],i=this.options.sortBy.findIndex((t=>t===e.item.value)),s=i>=0,r=this.options.sortDesc[i];return t.push(this.$createElement("div",{staticClass:"v-chip__close",class:{sortable:!0,active:s,asc:s&&!r,desc:s&&r}},[this.genSortIcon()])),this.$createElement(_.A,{staticClass:"sortable",on:{click:t=>{t.stopPropagation(),this.$emit("sort",e.item.value)}}},t)},genSortSelect(e){return this.$createElement(o.A,{props:{label:this.$vuetify.lang.t(this.sortByText),items:e,hideDetails:!0,multiple:this.options.multiSort,value:this.options.multiSort?this.options.sortBy:this.options.sortBy[0],menuProps:{closeOnContentClick:!0}},on:{change:e=>this.$emit("sort",e)},scopedSlots:{selection:e=>this.genSortChip(e)}})}},render(e){const t=[],i=this.headers.find((e=>"data-table-select"===e.value));i&&!this.singleSelect&&t.push(this.$createElement("div",{class:["v-data-table-header-mobile__select",...(0,s.BN)(i.class)],attrs:{width:i.width}},[this.genSelectAll()]));const r=this.headers.filter((e=>!1!==e.sortable&&"data-table-select"!==e.value)).map((e=>({text:e.text,value:e.value})));!this.disableSort&&r.length&&t.push(this.genSortSelect(r));const n=t.length?e("th",[e("div",{staticClass:"v-data-table-header-mobile__wrapper"},t)]):void 0,o=e("tr",[n]);return e("thead",{staticClass:"v-data-table-header v-data-table-header-mobile"},[o])}}),b=(0,u.A)(m).extend({name:"v-data-table-header-desktop",methods:{genGroupByToggle(e){return this.$createElement("span",{on:{click:t=>{t.stopPropagation(),this.$emit("group",e.value)}}},["group"])},getAria(e,t){const i=e=>this.$vuetify.lang.t(`$vuetify.dataTable.ariaLabel.${e}`);let s="none",r=[i("sortNone"),i("activateAscending")];return e?(t?(s="descending",r=[i("sortDescending"),i(this.options.mustSort?"activateAscending":"activateNone")]):(s="ascending",r=[i("sortAscending"),i("activateDescending")]),{ariaSort:s,ariaLabel:r.join(" ")}):{ariaSort:s,ariaLabel:r.join(" ")}},genHeader(e){const t={attrs:{role:"columnheader",scope:"col","aria-label":e.text||""},style:{width:(0,s.Dg)(e.width),minWidth:(0,s.Dg)(e.width)},class:[`text-${e.align||"start"}`,...(0,s.BN)(e.class),e.divider&&"v-data-table__divider"],on:{}},i=[];if("data-table-select"===e.value&&!this.singleSelect)return this.$createElement("th",t,[this.genSelectAll()]);if(i.push(this.$scopedSlots.hasOwnProperty(e.value)?this.$scopedSlots[e.value]({header:e}):this.$createElement("span",[e.text])),!this.disableSort&&(e.sortable||!e.hasOwnProperty("sortable"))){t.on.click=()=>this.$emit("sort",e.value);const s=this.options.sortBy.findIndex((t=>t===e.value)),r=s>=0,n=this.options.sortDesc[s];t.class.push("sortable");const{ariaLabel:o,ariaSort:a}=this.getAria(r,n);t.attrs["aria-label"]+=`${e.text?": ":""}${o}`,t.attrs["aria-sort"]=a,r&&(t.class.push("active"),t.class.push(n?"desc":"asc")),"end"===e.align?i.unshift(this.genSortIcon()):i.push(this.genSortIcon()),this.options.multiSort&&r&&i.push(this.$createElement("span",{class:"v-data-table-header__sort-badge"},[String(s+1)]))}return this.showGroupBy&&!1!==e.groupable&&i.push(this.genGroupByToggle(e)),this.$createElement("th",t,i)}},render(){return this.$createElement("thead",{staticClass:"v-data-table-header"},[this.$createElement("tr",this.headers.map((e=>this.genHeader(e))))])}});function y(e){if(e.model&&e.on&&e.on.input)if(Array.isArray(e.on.input)){const t=e.on.input.indexOf(e.model.callback);t>-1&&e.on.input.splice(t,1)}else delete e.on.input}var C=i(64961);function w(e,t){const i=[];for(const s in e)e.hasOwnProperty(s)&&i.push(t("template",{slot:s},e[s]));return i}var x=r["default"].extend({name:"v-data-table-header",functional:!0,props:{...m.options.props,mobile:Boolean},render(e,{props:t,data:i,slots:s}){y(i);const r=w(s(),e);return i=(0,C.Ay)(i,{props:t}),t.mobile?e(S,i,r):e(b,i,r)}});function k(e){var t;return 1!==e.length||!["td","th"].includes(null===(t=e[0])||void 0===t?void 0:t.tag)}var E=r["default"].extend({name:"row",functional:!0,props:{headers:Array,index:Number,item:Object,rtl:Boolean},render(e,{props:t,slots:i,data:r}){const n=i(),o=t.headers.map((i=>{const o=[],a=(0,s.no)(t.item,i.value),l=i.value,h=r.scopedSlots&&r.scopedSlots.hasOwnProperty(l)&&r.scopedSlots[l],c=n.hasOwnProperty(l)&&n[l];h?o.push(...(0,s.BN)(h({item:t.item,isMobile:!1,header:i,index:t.index,value:a}))):c?o.push(...(0,s.BN)(c)):o.push(null==a?a:String(a));const d=`text-${i.align||"start"}`;return k(o)?e("td",{class:[d,i.cellClass,{"v-data-table__divider":i.divider}]},o):o}));return e("tr",r,o)}}),A=r["default"].extend({name:"row-group",functional:!0,props:{value:{type:Boolean,default:!0},headerClass:{type:String,default:"v-row-group__header"},contentClass:String,summaryClass:{type:String,default:"v-row-group__summary"}},render(e,{slots:t,props:i}){const s=t(),r=[];return s["column.header"]?r.push(e("tr",{staticClass:i.headerClass},s["column.header"])):s["row.header"]&&r.push(...s["row.header"]),s["row.content"]&&i.value&&r.push(...s["row.content"]),s["column.summary"]?r.push(e("tr",{staticClass:i.summaryClass},s["column.summary"])):s["row.summary"]&&r.push(...s["row.summary"]),r}}),D=(0,u.A)(d.A).extend({name:"v-simple-table",props:{dense:Boolean,fixedHeader:Boolean,height:[Number,String]},computed:{classes(){return{"v-data-table--dense":this.dense,"v-data-table--fixed-height":!!this.height&&!this.fixedHeader,"v-data-table--fixed-header":this.fixedHeader,"v-data-table--has-top":!!this.$slots.top,"v-data-table--has-bottom":!!this.$slots.bottom,...this.themeClasses}}},methods:{genWrapper(){return this.$slots.wrapper||this.$createElement("div",{staticClass:"v-data-table__wrapper",style:{height:(0,s.Dg)(this.height)}},[this.$createElement("table",(0,s.$c)(this))])}},render(e){return e("div",{staticClass:"v-data-table",class:this.classes},[(0,s.$c)(this,"top"),this.genWrapper(),(0,s.$c)(this,"bottom")])}}),L=r["default"].extend({name:"row",functional:!0,props:{headers:Array,hideDefaultHeader:Boolean,index:Number,item:Object,rtl:Boolean},render(e,{props:t,slots:i,data:r}){const n=i(),o=t.headers.map((i=>{const o={"v-data-table__mobile-row":!0},a=[],l=(0,s.no)(t.item,i.value),h=i.value,c=r.scopedSlots&&r.scopedSlots.hasOwnProperty(h)&&r.scopedSlots[h],d=n.hasOwnProperty(h)&&n[h];c?a.push(c({item:t.item,isMobile:!0,header:i,index:t.index,value:l})):d?a.push(d):a.push(null==l?l:String(l));const u=[e("div",{staticClass:"v-data-table__mobile-row__cell"},a)];return"dataTableSelect"===i.value||t.hideDefaultHeader||u.unshift(e("div",{staticClass:"v-data-table__mobile-row__header"},[i.text])),e("td",{class:o},u)}));return e("tr",{...r,staticClass:"v-data-table__mobile-table-row"},o)}}),T=i(37930),B=r["default"].extend({name:"mouse",methods:{getDefaultMouseEventHandlers(e,t,i=!1){const s=Object.keys(this.$listeners).filter((t=>t.endsWith(e))).reduce(((t,i)=>(t[i]={event:i.slice(0,-e.length)},t)),{});return this.getMouseEventHandlers({...s,["contextmenu"+e]:{event:"contextmenu",prevent:!0,result:!1}},t,i)},getMouseEventHandlers(e,t,i=!1){const s={};for(const r in e){const n=e[r];if(!this.$listeners[r])continue;const o=n.passive?"&":(n.once?"~":"")+(n.capture?"!":""),a=o+n.event,l=e=>{var s,o;const a=e;if(void 0===n.button||a.buttons>0&&a.button===n.button){if(n.prevent&&e.preventDefault(),n.stop&&e.stopPropagation(),e&&"touches"in e){const t=" ",i=null===(s=e.currentTarget)||void 0===s?void 0:s.className.split(t),r=document.elementsFromPoint(e.changedTouches[0].clientX,e.changedTouches[0].clientY),n=r.find((e=>e.className.split(t).some((e=>i.includes(e)))));if(n&&!(null===(o=e.target)||void 0===o?void 0:o.isSameNode(n)))return void n.dispatchEvent(new TouchEvent(e.type,{changedTouches:e.changedTouches,targetTouches:e.targetTouches,touches:e.touches}))}i?this.$emit(r,e,t(e)):this.$emit(r,t(e),e)}return n.result};a in s?Array.isArray(s[a])?s[a].push(l):s[a]=[s[a],l]:s[a]=l}return s}}});function P(e,t,i){return r=>{const n=(0,s.no)(e,r.value);return r.filter?r.filter(n,t,e):i(n,t,e)}}function I(e,t,i,r,n,o){return t="string"===typeof t?t.trim():null,"union"===o?t&&r.length||i.length?e.filter((e=>!(!i.length||!i.every(P(e,t,s.kv)))||t&&r.some(P(e,t,n)))):e:"intersection"===o?e.filter((e=>{const o=i.every(P(e,t,s.kv)),a=!t||r.some(P(e,t,n));return o&&a})):e}var R=(0,u.A)(p,T.A,B).extend({name:"v-data-table",directives:{ripple:g.A},props:{headers:{type:Array,default:()=>[]},showSelect:Boolean,checkboxColor:String,showExpand:Boolean,showGroupBy:Boolean,height:[Number,String],hideDefaultHeader:Boolean,caption:String,dense:Boolean,headerProps:Object,calculateWidths:Boolean,fixedHeader:Boolean,headersLength:Number,expandIcon:{type:String,default:"$expand"},customFilter:{type:Function,default:s.kv},filterMode:{type:String,default:"intersection"},itemClass:{type:[String,Function],default:()=>""},itemStyle:{type:[String,Function],default:()=>""},loaderHeight:{type:[Number,String],default:4}},data(){return{internalGroupBy:[],openCache:{},widths:[]}},computed:{computedHeaders(){if(!this.headers)return[];const e=this.headers.filter((e=>void 0===e.value||!this.internalGroupBy.find((t=>t===e.value)))),t={text:"",sortable:!1,width:"1px"};if(this.showSelect){const i=e.findIndex((e=>"data-table-select"===e.value));i<0?e.unshift({...t,value:"data-table-select"}):e.splice(i,1,{...t,...e[i]})}if(this.showExpand){const i=e.findIndex((e=>"data-table-expand"===e.value));i<0?e.unshift({...t,value:"data-table-expand"}):e.splice(i,1,{...t,...e[i]})}return e},colspanAttrs(){return this.isMobile?void 0:{colspan:this.headersLength||this.computedHeaders.length}},columnSorters(){return this.computedHeaders.reduce(((e,t)=>(t.sort&&(e[t.value]=t.sort),e)),{})},headersWithCustomFilters(){return this.headers.filter((e=>e.filter&&(!e.hasOwnProperty("filterable")||!0===e.filterable)))},headersWithoutCustomFilters(){return this.headers.filter((e=>!e.filter&&(!e.hasOwnProperty("filterable")||!0===e.filterable)))},sanitizedHeaderProps(){return(0,s.CD)(this.headerProps)},computedItemsPerPage(){const e=this.options&&this.options.itemsPerPage?this.options.itemsPerPage:this.itemsPerPage,t=this.sanitizedFooterProps.itemsPerPageOptions;if(t&&!t.find((t=>"number"===typeof t?t===e:t.value===e))){const e=t[0];return"object"===typeof e?e.value:e}return e},groupByText(){var e,t,i;return null!==(i=null===(t=null===(e=this.headers)||void 0===e?void 0:e.find((e=>{var t;return e.value===(null===(t=this.internalGroupBy)||void 0===t?void 0:t[0])})))||void 0===t?void 0:t.text)&&void 0!==i?i:""}},created(){const e=[["sort-icon","header-props.sort-icon"],["hide-headers","hide-default-header"],["select-all","show-select"]];e.forEach((([e,t])=>{this.$attrs.hasOwnProperty(e)&&(0,f.q4)(e,t,this)}))},mounted(){this.calculateWidths&&(window.addEventListener("resize",this.calcWidths),this.calcWidths())},beforeDestroy(){this.calculateWidths&&window.removeEventListener("resize",this.calcWidths)},methods:{calcWidths(){this.widths=Array.from(this.$el.querySelectorAll("th")).map((e=>e.clientWidth))},customFilterWithColumns(e,t){return I(e,t,this.headersWithCustomFilters,this.headersWithoutCustomFilters,this.customFilter,this.filterMode)},customSortWithHeaders(e,t,i,s){return this.customSort(e,t,i,s,this.columnSorters)},createItemProps(e,t){const i={...p.options.methods.createItemProps.call(this,e,t),headers:this.computedHeaders};return{...i,attrs:{class:{"v-data-table__selected":i.isSelected}},on:{...this.getDefaultMouseEventHandlers(":row",(()=>i),!0),click:t=>this.$emit("click:row",e,i,t)}}},genCaption(e){return this.caption?[this.$createElement("caption",[this.caption])]:(0,s.$c)(this,"caption",e,!0)},genColgroup(e){return this.$createElement("colgroup",this.computedHeaders.map((e=>this.$createElement("col",{class:{divider:e.divider}}))))},genLoading(){const e=this.$createElement("th",{staticClass:"column",attrs:this.colspanAttrs},[this.genProgress()]),t=this.$createElement("tr",{staticClass:"v-data-table__progress"},[e]);return this.$createElement("thead",[t])},genHeaders(e){const t={props:{...this.sanitizedHeaderProps,headers:this.computedHeaders,options:e.options,mobile:this.isMobile,showGroupBy:this.showGroupBy,checkboxColor:this.checkboxColor,someItems:this.someItems,everyItem:this.everyItem,singleSelect:this.singleSelect,disableSort:this.disableSort},on:{sort:e.sort,group:e.group,"toggle-select-all":this.toggleSelectAll}},i=[(0,s.$c)(this,"header",{...t,isMobile:this.isMobile})];if(!this.hideDefaultHeader){const e=(0,s.JL)("header.",this.$scopedSlots);i.push(this.$createElement(x,{...t,scopedSlots:e}))}return this.loading&&i.push(this.genLoading()),i},genEmptyWrapper(e){return this.$createElement("tr",{staticClass:"v-data-table__empty-wrapper"},[this.$createElement("td",{attrs:this.colspanAttrs},e)])},genItems(e,t){const i=this.genEmpty(t.originalItemsLength,t.pagination.itemsLength);return i?[i]:t.groupedItems?this.genGroupedRows(t.groupedItems,t):this.genRows(e,t)},genGroupedRows(e,t){return e.map((e=>(this.openCache.hasOwnProperty(e.name)||this.$set(this.openCache,e.name,!0),this.$scopedSlots.group?this.$scopedSlots.group({group:e.name,options:t.options,isMobile:this.isMobile,items:e.items,headers:this.computedHeaders}):this.genDefaultGroupedRow(e.name,e.items,t))))},genDefaultGroupedRow(e,t,i){const s=!!this.openCache[e],r=[this.$createElement("template",{slot:"row.content"},this.genRows(t,i))],n=()=>this.$set(this.openCache,e,!this.openCache[e]),o=()=>i.updateOptions({groupBy:[],groupDesc:[]});if(this.$scopedSlots["group.header"])r.unshift(this.$createElement("template",{slot:"column.header"},[this.$scopedSlots["group.header"]({group:e,groupBy:i.options.groupBy,isMobile:this.isMobile,items:t,headers:this.computedHeaders,isOpen:s,toggle:n,remove:o})]));else{const t=this.$createElement(l.A,{staticClass:"ma-0",props:{icon:!0,small:!0},on:{click:n}},[this.$createElement(a.A,[s?"$minus":"$plus"])]),i=this.$createElement(l.A,{staticClass:"ma-0",props:{icon:!0,small:!0},on:{click:o}},[this.$createElement(a.A,["$close"])]),h=this.$createElement("td",{staticClass:"text-start",attrs:this.colspanAttrs},[t,`${this.groupByText}: ${e}`,i]);r.unshift(this.$createElement("template",{slot:"column.header"},[h]))}return this.$scopedSlots["group.summary"]&&r.push(this.$createElement("template",{slot:"column.summary"},[this.$scopedSlots["group.summary"]({group:e,groupBy:i.options.groupBy,isMobile:this.isMobile,items:t,headers:this.computedHeaders,isOpen:s,toggle:n})])),this.$createElement(A,{key:e,props:{value:s}},r)},genRows(e,t){return this.$scopedSlots.item?this.genScopedRows(e,t):this.genDefaultRows(e,t)},genScopedRows(e,t){const i=[];for(let s=0;sthis.genDefaultExpandedRow(e,t))):e.map(((e,t)=>this.genDefaultSimpleRow(e,t)))},genDefaultExpandedRow(e,t){const i=this.isExpanded(e),s={"v-data-table__expanded v-data-table__expanded__row":i},r=this.genDefaultSimpleRow(e,t,s),n=this.$createElement("tr",{staticClass:"v-data-table__expanded v-data-table__expanded__content"},[this.$scopedSlots["expanded-item"]({headers:this.computedHeaders,isMobile:this.isMobile,item:e})]);return this.$createElement(A,{props:{value:i}},[this.$createElement("template",{slot:"row.header"},[r]),this.$createElement("template",{slot:"row.content"},[n])])},genDefaultSimpleRow(e,t,i={}){const r=(0,s.JL)("item.",this.$scopedSlots),n=this.createItemProps(e,t);if(this.showSelect){const t=r["data-table-select"];r["data-table-select"]=t?()=>t({...n,isMobile:this.isMobile}):()=>{var t;return this.$createElement(v.A,{staticClass:"v-data-table__checkbox",props:{value:n.isSelected,disabled:!this.isSelectable(e),color:null!==(t=this.checkboxColor)&&void 0!==t?t:""},on:{input:e=>n.select(e)}})}}if(this.showExpand){const e=r["data-table-expand"];r["data-table-expand"]=e?()=>e(n):()=>this.$createElement(a.A,{staticClass:"v-data-table__expand-icon",class:{"v-data-table__expand-icon--active":n.isExpanded},on:{click:e=>{e.stopPropagation(),n.expand(!n.isExpanded)}}},[this.expandIcon])}return this.$createElement(this.isMobile?L:E,{key:(0,s.no)(e,this.itemKey),class:(0,C.zP)({...i,"v-data-table__selected":n.isSelected},(0,s.TD)(e,this.itemClass)),style:(0,C.Zq)({},(0,s.TD)(e,this.itemStyle)),props:{headers:this.computedHeaders,hideDefaultHeader:this.hideDefaultHeader,index:t,item:e,rtl:this.$vuetify.rtl},scopedSlots:r,on:n.on})},genBody(e){const t={...e,expand:this.expand,headers:this.computedHeaders,isExpanded:this.isExpanded,isMobile:this.isMobile,isSelected:this.isSelected,select:this.select};return this.$scopedSlots.body?this.$scopedSlots.body(t):this.$createElement("tbody",[(0,s.$c)(this,"body.prepend",t,!0),this.genItems(e.items,e),(0,s.$c)(this,"body.append",t,!0)])},genFoot(e){var t,i;return null===(i=(t=this.$scopedSlots).foot)||void 0===i?void 0:i.call(t,e)},genFooters(e){const t={props:{options:e.options,pagination:e.pagination,itemsPerPageText:"$vuetify.dataTable.itemsPerPageText",...this.sanitizedFooterProps},on:{"update:options":t=>e.updateOptions(t)},widths:this.widths,headers:this.computedHeaders},i=[(0,s.$c)(this,"footer",t,!0)];return this.hideDefaultFooter||i.push(this.$createElement(h,{...t,scopedSlots:(0,s.JL)("footer.",this.$scopedSlots)})),i},genDefaultScopedSlot(e){const t={height:this.height,fixedHeader:this.fixedHeader,dense:this.dense};return this.$createElement(D,{props:t,class:{"v-data-table--mobile":this.isMobile,"v-data-table--selectable":this.showSelect}},[this.proxySlot("top",(0,s.$c)(this,"top",{...e,isMobile:this.isMobile},!0)),this.genCaption(e),this.genColgroup(e),this.genHeaders(e),this.genBody(e),this.genFoot(e),this.proxySlot("bottom",this.genFooters(e))])},proxySlot(e,t){return this.$createElement("template",{slot:e},t)}},render(){return this.$createElement(n,{props:{...this.$props,customFilter:this.customFilterWithColumns,customSort:this.customSortWithHeaders,itemsPerPage:this.computedItemsPerPage},on:{"update:options":(e,t)=>{this.internalGroupBy=e.groupBy||[],!(0,s.bD)(e,t)&&this.$emit("update:options",e)},"update:page":e=>this.$emit("update:page",e),"update:items-per-page":e=>this.$emit("update:items-per-page",e),"update:sort-by":e=>this.$emit("update:sort-by",e),"update:sort-desc":e=>this.$emit("update:sort-desc",e),"update:group-by":e=>this.$emit("update:group-by",e),"update:group-desc":e=>this.$emit("update:group-desc",e),pagination:(e,t)=>!(0,s.bD)(e,t)&&this.$emit("pagination",e),"current-items":e=>{this.internalCurrentItems=e,this.$emit("current-items",e)},"page-count":e=>this.$emit("page-count",e)},scopedSlots:{default:this.genDefaultScopedSlot}})}})},76536:function(e,t,i){"use strict";i.d(t,{A:function(){return _}});var s=i(99084),r=i(24462),n=i(79623),o=i(60103),a=i(9499),l=i(50326),h=i(37768),c=i(48734),d=i(3507),u=i(65604),f=i(66960);const p=(0,d.A)(n.A,o.A,a.A,l.A,h.A,r.A);var _=p.extend({name:"v-dialog",directives:{ClickOutside:c.A},props:{dark:Boolean,disabled:Boolean,fullscreen:Boolean,light:Boolean,maxWidth:[String,Number],noClickAnimation:Boolean,origin:{type:String,default:"center center"},persistent:Boolean,retainFocus:{type:Boolean,default:!0},scrollable:Boolean,transition:{type:[String,Boolean],default:"dialog-transition"},width:[String,Number]},data(){return{activatedBy:null,animate:!1,animateTimeout:-1,stackMinZIndex:200,previousActiveElement:null}},computed:{classes(){return{[`v-dialog ${this.contentClass}`.trim()]:!0,"v-dialog--active":this.isActive,"v-dialog--persistent":this.persistent,"v-dialog--fullscreen":this.fullscreen,"v-dialog--scrollable":this.scrollable,"v-dialog--animated":this.animate}},contentClasses(){return{"v-dialog__content":!0,"v-dialog__content--active":this.isActive}},hasActivator(){return Boolean(!!this.$slots.activator||!!this.$scopedSlots.activator)}},watch:{isActive(e){var t;e?(this.show(),this.hideScroll()):(this.removeOverlay(),this.unbind(),null===(t=this.previousActiveElement)||void 0===t||t.focus())},fullscreen(e){this.isActive&&(e?(this.hideScroll(),this.removeOverlay(!1)):(this.showScroll(),this.genOverlay()))}},created(){this.$attrs.hasOwnProperty("full-width")&&(0,u.rq)("full-width",this)},beforeMount(){this.$nextTick((()=>{this.isBooted=this.isActive,this.isActive&&this.show()}))},beforeDestroy(){"undefined"!==typeof window&&this.unbind()},methods:{animateClick(){this.animate=!1,this.$nextTick((()=>{this.animate=!0,window.clearTimeout(this.animateTimeout),this.animateTimeout=window.setTimeout((()=>this.animate=!1),150)}))},closeConditional(e){const t=e.target;return!(this._isDestroyed||!this.isActive||this.$refs.content.contains(t)||this.overlay&&t&&!this.overlay.$el.contains(t))&&this.activeZIndex>=this.getMaxZIndex()},hideScroll(){this.fullscreen?document.documentElement.classList.add("overflow-y-hidden"):a.A.options.methods.hideScroll.call(this)},show(){!this.fullscreen&&!this.hideOverlay&&this.genOverlay(),this.$nextTick((()=>{this.$nextTick((()=>{var e,t;(null===(e=this.$refs.dialog)||void 0===e?void 0:e.contains(document.activeElement))||(this.previousActiveElement=document.activeElement,null===(t=this.$refs.dialog)||void 0===t||t.focus()),this.bind()}))}))},bind(){window.addEventListener("focusin",this.onFocusin)},unbind(){window.removeEventListener("focusin",this.onFocusin)},onClickOutside(e){this.$emit("click:outside",e),this.persistent?this.noClickAnimation||this.animateClick():this.isActive=!1},onKeydown(e){if(e.keyCode===f.uP.esc&&!this.getOpenDependents().length)if(this.persistent)this.noClickAnimation||this.animateClick();else{this.isActive=!1;const e=this.getActivator();this.$nextTick((()=>e&&e.focus()))}this.$emit("keydown",e)},onFocusin(e){if(!e||!this.retainFocus)return;const t=e.target;if(t&&this.$refs.dialog&&![document,this.$refs.dialog].includes(t)&&!this.$refs.dialog.contains(t)&&this.activeZIndex>=this.getMaxZIndex()&&!this.getOpenDependentElements().some((e=>e.contains(t)))){const e=this.$refs.dialog.querySelectorAll('button, [href], input:not([type="hidden"]), select, textarea, [tabindex]:not([tabindex="-1"])'),t=[...e].find((e=>!e.hasAttribute("disabled")&&!e.matches('[tabindex="-1"]')));t&&t.focus()}},genContent(){return this.showLazyContent((()=>[this.$createElement(s.A,{props:{root:!0,light:this.light,dark:this.dark}},[this.$createElement("div",{class:this.contentClasses,attrs:{role:"dialog","aria-modal":this.hideOverlay?void 0:"true",...this.getScopeIdAttrs()},on:{keydown:this.onKeydown},style:{zIndex:this.activeZIndex},ref:"content"},[this.genTransition()])])]))},genTransition(){const e=this.genInnerContent();return this.transition?this.$createElement("transition",{props:{name:this.transition,origin:this.origin,appear:!0}},[e]):e},genInnerContent(){const e={class:this.classes,attrs:{tabindex:this.isActive?0:void 0},ref:"dialog",directives:[{name:"click-outside",value:{handler:this.onClickOutside,closeConditional:this.closeConditional,include:this.getOpenDependentElements}},{name:"show",value:this.isActive}],style:{transformOrigin:this.origin}};return this.fullscreen||(e.style={...e.style,maxWidth:(0,f.Dg)(this.maxWidth),width:(0,f.Dg)(this.width)}),this.$createElement("div",e,this.getContentSlot())}},render(e){return e("div",{staticClass:"v-dialog__container",class:{"v-dialog__container--attached":""===this.attach||!0===this.attach||"attach"===this.attach}},[this.genActivator(),this.genContent()])}})},67410:function(e,t,i){"use strict";i(158);var s=i(66960);t.A=(0,s.Gn)("spacer","div","v-spacer")},56160:function(e,t,i){"use strict";i.d(t,{A:function(){return m}});var s=i(99084),r=i(24462),n=i(45063),o=i(79623),a=i(4815),l=i(50326),h=i(6256),c=i(53661),d=i(48734),u=i(42136),f=i(3507),p=i(65604),_=i(66960),v=i(29683);const g=(0,f.A)(o.A,n.A,l.A,h.A,c.A,a.A);var m=g.extend({name:"v-menu",directives:{ClickOutside:d.A,Resize:u.A},provide(){return{isInMenu:!0,theme:this.theme}},props:{auto:Boolean,closeOnClick:{type:Boolean,default:!0},closeOnContentClick:{type:Boolean,default:!0},disabled:Boolean,disableKeys:Boolean,maxHeight:{type:[Number,String],default:"auto"},offsetX:Boolean,offsetY:Boolean,openOnHover:Boolean,origin:{type:String,default:"top left"},transition:{type:[Boolean,String],default:"v-menu-transition"},contentProps:{type:Object,default:()=>({})}},data(){return{calculatedTopAuto:0,defaultOffset:8,hasJustFocused:!1,listIndex:-1,resizeTimeout:0,selectedIndex:null,tiles:[]}},computed:{activeTile(){return this.tiles[this.listIndex]},calculatedLeft(){const e=Math.max(this.dimensions.content.width,parseFloat(this.calculatedMinWidth));return this.auto?(0,_.Dg)(this.calcXOverflow(this.calcLeftAuto(),e))||"0":this.calcLeft(e)||"0"},calculatedMaxHeight(){const e=this.auto?"200px":(0,_.Dg)(this.maxHeight);return e||"0"},calculatedMaxWidth(){return(0,_.Dg)(this.maxWidth)||"0"},calculatedMinWidth(){if(this.minWidth)return(0,_.Dg)(this.minWidth)||"0";const e=Math.min(this.dimensions.activator.width+Number(this.nudgeWidth)+(this.auto?16:0),Math.max(this.pageWidth-24,0)),t=isNaN(parseInt(this.calculatedMaxWidth))?e:parseInt(this.calculatedMaxWidth);return(0,_.Dg)(Math.min(t,e))||"0"},calculatedTop(){const e=this.auto?(0,_.Dg)(this.calcYOverflow(this.calculatedTopAuto)):this.calcTop();return e||"0"},hasClickableTiles(){return Boolean(this.tiles.find((e=>e.tabIndex>-1)))},styles(){return{maxHeight:this.calculatedMaxHeight,minWidth:this.calculatedMinWidth,maxWidth:this.calculatedMaxWidth,top:this.calculatedTop,left:this.calculatedLeft,transformOrigin:this.origin,zIndex:this.zIndex||this.activeZIndex}}},watch:{isActive(e){e||(this.listIndex=-1)},isContentActive(e){this.hasJustFocused=e},listIndex(e,t){if(e in this.tiles){const t=this.tiles[e];t.classList.add("v-list-item--highlighted");const i=this.$refs.content.scrollTop,s=this.$refs.content.clientHeight;i>t.offsetTop-8?(0,v.A)(t.offsetTop-t.clientHeight,{appOffset:!1,duration:300,container:this.$refs.content}):i+s{this.startTransition().then((()=>{this.$refs.content&&(this.calculatedTopAuto=this.calcTopAuto(),this.auto&&(this.$refs.content.scrollTop=this.calcScrollPosition()))}))}))},calcScrollPosition(){const e=this.$refs.content,t=e.querySelector(".v-list-item--active"),i=e.scrollHeight-e.offsetHeight;return t?Math.min(i,Math.max(0,t.offsetTop-e.offsetHeight/2+t.offsetHeight/2)):e.scrollTop},calcLeftAuto(){return parseInt(this.dimensions.activator.left-2*this.defaultOffset)},calcTopAuto(){const e=this.$refs.content,t=e.querySelector(".v-list-item--active");if(t||(this.selectedIndex=null),this.offsetY||!t)return this.computedTop;this.selectedIndex=Array.from(this.tiles).indexOf(t);const i=t.offsetTop-this.calcScrollPosition(),s=e.querySelector(".v-list-item").offsetTop;return this.computedTop-i-s-1},changeListIndex(e){if(this.getTiles(),this.isActive&&this.hasClickableTiles)if(e.keyCode!==_.uP.tab){if(e.keyCode===_.uP.down)this.nextTile();else if(e.keyCode===_.uP.up)this.prevTile();else if(e.keyCode===_.uP.end)this.lastTile();else if(e.keyCode===_.uP.home)this.firstTile();else{if(e.keyCode!==_.uP.enter||-1===this.listIndex)return;this.tiles[this.listIndex].click()}e.preventDefault()}else this.isActive=!1},closeConditional(e){const t=e.target;return this.isActive&&!this._isDestroyed&&this.closeOnClick&&!this.$refs.content.contains(t)},genActivatorAttributes(){const e=r.A.options.methods.genActivatorAttributes.call(this);return this.activeTile&&this.activeTile.id?{...e,"aria-activedescendant":this.activeTile.id}:e},genActivatorListeners(){const e=a.A.options.methods.genActivatorListeners.call(this);return this.disableKeys||(e.keydown=this.onKeyDown),e},genTransition(){const e=this.genContent();return this.transition?this.$createElement("transition",{props:{name:this.transition}},[e]):e},genDirectives(){const e=[{name:"show",value:this.isContentActive}];return!this.openOnHover&&this.closeOnClick&&e.push({name:"click-outside",value:{handler:()=>{this.isActive=!1},closeConditional:this.closeConditional,include:()=>[this.$el,...this.getOpenDependentElements()]}}),e},genContent(){const e={attrs:{...this.getScopeIdAttrs(),...this.contentProps,role:"role"in this.$attrs?this.$attrs.role:"menu"},staticClass:"v-menu__content",class:{...this.rootThemeClasses,...this.roundedClasses,"v-menu__content--auto":this.auto,"v-menu__content--fixed":this.activatorFixed,menuable__content__active:this.isActive,[this.contentClass.trim()]:!0},style:this.styles,directives:this.genDirectives(),ref:"content",on:{click:e=>{const t=e.target;t.getAttribute("disabled")||this.closeOnContentClick&&(this.isActive=!1)},keydown:this.onKeyDown}};return this.$listeners.scroll&&(e.on=e.on||{},e.on.scroll=this.$listeners.scroll),!this.disabled&&this.openOnHover&&(e.on=e.on||{},e.on.mouseenter=this.mouseEnterHandler),this.openOnHover&&(e.on=e.on||{},e.on.mouseleave=this.mouseLeaveHandler),this.$createElement("div",e,this.getContentSlot())},getTiles(){this.$refs.content&&(this.tiles=Array.from(this.$refs.content.querySelectorAll(".v-list-item, .v-divider, .v-subheader")))},mouseEnterHandler(){this.runDelay("open",(()=>{this.hasJustFocused||(this.hasJustFocused=!0)}))},mouseLeaveHandler(e){this.runDelay("close",(()=>{var t;(null===(t=this.$refs.content)||void 0===t?void 0:t.contains(e.relatedTarget))||requestAnimationFrame((()=>{this.isActive=!1,this.callDeactivate()}))}))},nextTile(){const e=this.tiles[this.listIndex+1];if(!e){if(!this.tiles.length)return;return this.listIndex=-1,void this.nextTile()}this.listIndex++,-1===e.tabIndex&&this.nextTile()},prevTile(){const e=this.tiles[this.listIndex-1];if(!e){if(!this.tiles.length)return;return this.listIndex=this.tiles.length,void this.prevTile()}this.listIndex--,-1===e.tabIndex&&this.prevTile()},lastTile(){const e=this.tiles[this.tiles.length-1];e&&(this.listIndex=this.tiles.length-1,-1===e.tabIndex&&this.prevTile())},firstTile(){const e=this.tiles[0];e&&(this.listIndex=0,-1===e.tabIndex&&this.nextTile())},onKeyDown(e){if(!this.disableKeys){if(e.keyCode===_.uP.esc){setTimeout((()=>{this.isActive=!1}));const e=this.getActivator();this.$nextTick((()=>e&&e.focus()))}else!this.isActive&&[_.uP.up,_.uP.down].includes(e.keyCode)&&(this.isActive=!0);this.$nextTick((()=>this.changeListIndex(e)))}},onResize(){this.isActive&&(this.$refs.content.offsetWidth,this.updateDimensions(),clearTimeout(this.resizeTimeout),this.resizeTimeout=window.setTimeout(this.updateDimensions,100))}},render(e){const t={staticClass:"v-menu",class:{"v-menu--attached":""===this.attach||!0===this.attach||"attach"===this.attach},directives:[{arg:"500",name:"resize",value:this.onResize}]};return e("div",t,[!this.activator&&this.genActivator(),this.showLazyContent((()=>[this.$createElement(s.A,{props:{root:!0,light:this.light,dark:this.dark}},[this.genTransition()])]))])}})},81556:function(e,t,i){"use strict";i.d(t,{A:function(){return P}});i(8245);var s=i(84286),r=i(56160),n=r.A,o=i(78246),a=i(1770),l=a.A,h=i(52006),c=h.A,d=i(81075),u=i(66315),f=i(57382),p=i(72987),_=i(91723),v=i(68767),g=i(53661),m=i(66960),S=i(3507),b=(0,S.A)(v.A,g.A).extend({name:"v-select-list",directives:{ripple:_.A},props:{action:Boolean,dense:Boolean,hideSelected:Boolean,items:{type:Array,default:()=>[]},itemDisabled:{type:[String,Array,Function],default:"disabled"},itemText:{type:[String,Array,Function],default:"text"},itemValue:{type:[String,Array,Function],default:"value"},noDataText:String,noFilter:Boolean,searchInput:null,selectedItems:{type:Array,default:()=>[]}},computed:{parsedItems(){return this.selectedItems.map((e=>this.getValue(e)))},tileActiveClass(){return Object.keys(this.setTextColor(this.color).class||{}).join(" ")},staticNoDataTile(){const e={attrs:{role:void 0},on:{mousedown:e=>e.preventDefault()}};return this.$createElement(d.A,e,[this.genTileContent(this.noDataText)])}},methods:{genAction(e,t){return this.$createElement(u.A,[this.$createElement(o.A,{props:{color:this.color,value:t,ripple:!1},on:{input:()=>this.$emit("select",e)}})])},genDivider(e){return this.$createElement(l,{props:e})},genFilteredText(e){if(e=e||"",!this.searchInput||this.noFilter)return e;const{start:t,middle:i,end:s}=this.getMaskedCharacters(e);return[t,this.genHighlight(i),s]},genHeader(e){return this.$createElement(c,{props:e},e.header)},genHighlight(e){return this.$createElement("span",{staticClass:"v-list-item__mask"},e)},getMaskedCharacters(e){const t=(this.searchInput||"").toString().toLocaleLowerCase(),i=e.toLocaleLowerCase().indexOf(t);if(i<0)return{start:e,middle:"",end:""};const s=e.slice(0,i),r=e.slice(i,i+t.length),n=e.slice(i+t.length);return{start:s,middle:r,end:n}},genTile({item:e,index:t,disabled:i=null,value:s=!1}){s||(s=this.hasItem(e)),e===Object(e)&&(i=null!==i?i:this.getDisabled(e));const r={attrs:{"aria-selected":String(s),id:`list-item-${this._uid}-${t}`,role:"option"},on:{mousedown:e=>{e.preventDefault()},click:()=>i||this.$emit("select",e)},props:{activeClass:this.tileActiveClass,disabled:i,ripple:!0,inputValue:s}};if(!this.$scopedSlots.item)return this.$createElement(d.A,r,[this.action&&!this.hideSelected&&this.items.length>0?this.genAction(e,s):null,this.genTileContent(e,t)]);const n=this,o=this.$scopedSlots.item({parent:n,item:e,attrs:{...r.attrs,...r.props},on:r.on});return this.needsTile(o)?this.$createElement(d.A,r,o):o},genTileContent(e,t=0){return this.$createElement(f.pr,[this.$createElement(f.UZ,[this.genFilteredText(this.getText(e))])])},hasItem(e){return this.parsedItems.indexOf(this.getValue(e))>-1},needsTile(e){return 1!==e.length||null==e[0].componentOptions||"v-list-item"!==e[0].componentOptions.Ctor.options.name},getDisabled(e){return Boolean((0,m.TD)(e,this.itemDisabled,!1))},getText(e){return String((0,m.TD)(e,this.itemText,e))},getValue(e){return(0,m.TD)(e,this.itemValue,this.getText(e))}},render(){const e=[],t=this.items.length;for(let i=0;i{e.preventDefault()}},props:{dense:this.dense}},e)}}),y=i(73960),C=i(83406),w=i(45088),x=i(79623),k=i(85471),E=k["default"].extend({name:"filterable",props:{noDataText:{type:String,default:"$vuetify.noDataText"}}}),A=i(48734),D=i(64961),L=i(65604);const T={closeOnClick:!1,closeOnContentClick:!1,disableKeys:!0,openOnClick:!1,maxHeight:304},B=(0,S.A)(C.A,w.A,x.A,E);var P=B.extend().extend({name:"v-select",directives:{ClickOutside:A.A},props:{appendIcon:{type:String,default:"$dropdown"},attach:{type:null,default:!1},cacheItems:Boolean,chips:Boolean,clearable:Boolean,deletableChips:Boolean,disableLookup:Boolean,eager:Boolean,hideSelected:Boolean,items:{type:Array,default:()=>[]},itemColor:{type:String,default:"primary"},itemDisabled:{type:[String,Array,Function],default:"disabled"},itemText:{type:[String,Array,Function],default:"text"},itemValue:{type:[String,Array,Function],default:"value"},menuProps:{type:[String,Array,Object],default:()=>T},multiple:Boolean,openOnClear:Boolean,returnObject:Boolean,smallChips:Boolean},data(){return{cachedItems:this.cacheItems?this.items:[],menuIsBooted:!1,isMenuActive:!1,lastItem:20,lazyValue:void 0!==this.value?this.value:this.multiple?[]:void 0,selectedIndex:-1,selectedItems:[],keyboardLookupPrefix:"",keyboardLookupLastTime:0}},computed:{allItems(){return this.filterDuplicates(this.cachedItems.concat(this.items))},classes(){return{...C.A.options.computed.classes.call(this),"v-select":!0,"v-select--chips":this.hasChips,"v-select--chips--small":this.smallChips,"v-select--is-menu-active":this.isMenuActive,"v-select--is-multi":this.multiple}},computedItems(){return this.allItems},computedOwns(){return`list-${this._uid}`},computedCounterValue(){var e;const t=this.multiple?this.selectedItems:(null!==(e=this.getText(this.selectedItems[0]))&&void 0!==e?e:"").toString();return"function"===typeof this.counterValue?this.counterValue(t):t.length},directives(){return this.isFocused?[{name:"click-outside",value:{handler:this.blur,closeConditional:this.closeConditional,include:()=>this.getOpenDependentElements()}}]:void 0},dynamicHeight(){return"auto"},hasChips(){return this.chips||this.smallChips},hasSlot(){return Boolean(this.hasChips||this.$scopedSlots.selection)},isDirty(){return this.selectedItems.length>0},listData(){const e=this.$vnode&&this.$vnode.context.$options._scopeId,t=e?{[e]:!0}:{};return{attrs:{...t,id:this.computedOwns},props:{action:this.multiple,color:this.itemColor,dense:this.dense,hideSelected:this.hideSelected,items:this.virtualizedItems,itemDisabled:this.itemDisabled,itemText:this.itemText,itemValue:this.itemValue,noDataText:this.$vuetify.lang.t(this.noDataText),selectedItems:this.selectedItems},on:{select:this.selectItem},scopedSlots:{item:this.$scopedSlots.item}}},staticList(){return(this.$slots["no-data"]||this.$slots["prepend-item"]||this.$slots["append-item"])&&(0,L.yA)("assert: staticList should not be called if slots are used"),this.$createElement(b,this.listData)},virtualizedItems(){return this.$_menuProps.auto?this.computedItems:this.computedItems.slice(0,this.lastItem)},menuCanShow:()=>!0,$_menuProps(){let e="string"===typeof this.menuProps?this.menuProps.split(","):this.menuProps;return Array.isArray(e)&&(e=e.reduce(((e,t)=>(e[t.trim()]=!0,e)),{})),{...T,eager:this.eager,value:this.menuCanShow&&this.isMenuActive,nudgeBottom:e.offsetY?1:0,...e}}},watch:{internalValue(e){this.initialValue=e,this.setSelectedItems(),this.multiple&&this.$nextTick((()=>{var e;null===(e=this.$refs.menu)||void 0===e||e.updateDimensions()})),this.hideSelected&&this.$nextTick((()=>{this.onScroll()}))},isMenuActive(e){window.setTimeout((()=>this.onMenuActiveChange(e)))},items:{immediate:!0,handler(e){this.cacheItems&&this.$nextTick((()=>{this.cachedItems=this.filterDuplicates(this.cachedItems.concat(e))})),this.setSelectedItems()}}},methods:{blur(e){C.A.options.methods.blur.call(this,e),this.isMenuActive=!1,this.isFocused=!1,this.selectedIndex=-1,this.setMenuIndex(-1)},activateMenu(){this.isInteractive&&!this.isMenuActive&&(this.isMenuActive=!0)},clearableCallback(){this.setValue(this.multiple?[]:null),this.setMenuIndex(-1),this.$nextTick((()=>this.$refs.input&&this.$refs.input.focus())),this.openOnClear&&(this.isMenuActive=!0)},closeConditional(e){return!this.isMenuActive||!this._isDestroyed&&(!this.getContent()||!this.getContent().contains(e.target))&&this.$el&&!this.$el.contains(e.target)&&e.target!==this.$el},filterDuplicates(e){const t=new Map;for(let i=0;ithis.valueComparator(this.getValue(e),t)))},getContent(){return this.$refs.menu&&this.$refs.menu.$refs.content},genChipSelection(e,t){const i=this.isDisabled||this.getDisabled(e),r=!i&&this.isInteractive;return this.$createElement(s.A,{staticClass:"v-chip--select",attrs:{tabindex:-1},props:{close:this.deletableChips&&r,disabled:i,inputValue:t===this.selectedIndex,small:this.smallChips},on:{click:e=>{r&&(e.stopPropagation(),this.selectedIndex=t)},"click:close":()=>this.onChipInput(e)},key:JSON.stringify(this.getValue(e))},this.getText(e))},genCommaSelection(e,t,i){const s=t===this.selectedIndex&&this.computedColor,r=this.isDisabled||this.getDisabled(e);return this.$createElement("div",this.setTextColor(s,{staticClass:"v-select__selection v-select__selection--comma",class:{"v-select__selection--disabled":r},key:JSON.stringify(this.getValue(e))}),`${this.getText(e)}${i?"":", "}`)},genDefaultSlot(){const e=this.genSelections(),t=this.genInput();return Array.isArray(e)?e.push(t):(e.children=e.children||[],e.children.push(t)),[this.genFieldset(),this.$createElement("div",{staticClass:"v-select__slot",directives:this.directives},[this.genLabel(),this.prefix?this.genAffix("prefix"):null,e,this.suffix?this.genAffix("suffix"):null,this.genClearIcon(),this.genIconSlot(),this.genHiddenInput()]),this.genMenu(),this.genProgress()]},genIcon(e,t,i){const s=y.A.options.methods.genIcon.call(this,e,t,i);return"append"===e&&(s.children[0].data=(0,D.Ay)(s.children[0].data,{attrs:{tabindex:s.children[0].componentOptions.listeners&&"-1","aria-hidden":"true","aria-label":void 0}})),s},genInput(){const e=C.A.options.methods.genInput.call(this);return delete e.data.attrs.name,e.data=(0,D.Ay)(e.data,{domProps:{value:null},attrs:{readonly:!0,type:"text","aria-readonly":String(this.isReadonly),"aria-activedescendant":(0,m.no)(this.$refs.menu,"activeTile.id"),autocomplete:(0,m.no)(e.data,"attrs.autocomplete","off"),placeholder:this.isDirty||!this.persistentPlaceholder&&!this.isFocused&&this.hasLabel?void 0:this.placeholder},on:{keypress:this.onKeyPress}}),e},genHiddenInput(){return this.$createElement("input",{domProps:{value:this.lazyValue},attrs:{type:"hidden",name:this.attrs$.name}})},genInputSlot(){const e=C.A.options.methods.genInputSlot.call(this);return e.data.attrs={...e.data.attrs,role:"button","aria-haspopup":"listbox","aria-expanded":String(this.isMenuActive),"aria-owns":this.computedOwns},e},genList(){return this.$slots["no-data"]||this.$slots["prepend-item"]||this.$slots["append-item"]?this.genListWithSlot():this.staticList},genListWithSlot(){const e=["prepend-item","no-data","append-item"].filter((e=>this.$slots[e])).map((e=>this.$createElement("template",{slot:e},this.$slots[e])));return this.$createElement(b,{...this.listData},e)},genMenu(){const e=this.$_menuProps;return e.activator=this.$refs["input-slot"],"attach"in e||(""===this.attach||!0===this.attach||"attach"===this.attach?e.attach=this.$el:e.attach=this.attach),this.$createElement(n,{attrs:{role:void 0},props:e,on:{input:e=>{this.isMenuActive=e,this.isFocused=e},scroll:this.onScroll},ref:"menu"},[this.genList()])},genSelections(){let e=this.selectedItems.length;const t=new Array(e);let i;i=this.$scopedSlots.selection?this.genSlotSelection:this.hasChips?this.genChipSelection:this.genCommaSelection;while(e--)t[e]=i(this.selectedItems[e],e,e===t.length-1);return this.$createElement("div",{staticClass:"v-select__selections"},t)},genSlotSelection(e,t){return this.$scopedSlots.selection({attrs:{class:"v-chip--select"},parent:this,item:e,index:t,select:e=>{e.stopPropagation(),this.selectedIndex=t},selected:t===this.selectedIndex,disabled:!this.isInteractive})},getMenuIndex(){return this.$refs.menu?this.$refs.menu.listIndex:-1},getDisabled(e){return(0,m.TD)(e,this.itemDisabled,!1)},getText(e){return(0,m.TD)(e,this.itemText,e)},getValue(e){return(0,m.TD)(e,this.itemValue,this.getText(e))},onBlur(e){e&&this.$emit("blur",e)},onChipInput(e){this.multiple?this.selectItem(e):this.setValue(null),0===this.selectedItems.length?this.isMenuActive=!0:this.isMenuActive=!1,this.selectedIndex=-1},onClick(e){this.isInteractive&&(this.isAppendInner(e.target)||(this.isMenuActive=!0),this.isFocused||(this.isFocused=!0,this.$emit("focus")),this.$emit("click",e))},onEscDown(e){e.preventDefault(),this.isMenuActive&&(e.stopPropagation(),this.isMenuActive=!1)},onKeyPress(e){if(this.multiple||!this.isInteractive||this.disableLookup||e.key.length>1||e.ctrlKey||e.metaKey||e.altKey)return;const t=1e3,i=performance.now();i-this.keyboardLookupLastTime>t&&(this.keyboardLookupPrefix=""),this.keyboardLookupPrefix+=e.key.toLowerCase(),this.keyboardLookupLastTime=i;const s=this.allItems.findIndex((e=>{var t;const i=(null!==(t=this.getText(e))&&void 0!==t?t:"").toString();return i.toLowerCase().startsWith(this.keyboardLookupPrefix)})),r=this.allItems[s];-1!==s&&(this.lastItem=Math.max(this.lastItem,s+5),this.setValue(this.returnObject?r:this.getValue(r)),this.$nextTick((()=>this.$refs.menu.getTiles())),setTimeout((()=>this.setMenuIndex(s))))},onKeyDown(e){if(this.isReadonly&&e.keyCode!==m.uP.tab)return;const t=e.keyCode,i=this.$refs.menu;return this.$emit("keydown",e),i?(this.isMenuActive&&[m.uP.up,m.uP.down,m.uP.home,m.uP.end,m.uP.enter].includes(t)&&this.$nextTick((()=>{i.changeListIndex(e),this.$emit("update:list-index",i.listIndex)})),[m.uP.enter,m.uP.space].includes(t)&&this.activateMenu(),!this.isMenuActive&&[m.uP.up,m.uP.down,m.uP.home,m.uP.end].includes(t)?this.onUpDown(e):t===m.uP.esc?this.onEscDown(e):t===m.uP.tab?this.onTabDown(e):t===m.uP.space?this.onSpaceDown(e):void 0):void 0},onMenuActiveChange(e){if(this.multiple&&!e||this.getMenuIndex()>-1)return;const t=this.$refs.menu;if(t&&this.isDirty){this.$refs.menu.getTiles();for(let e=0;ethis.isMenuActive=!this.isMenuActive)),C.A.options.methods.onMouseUp.call(this,e)},onScroll(){if(this.isMenuActive){if(this.lastItem>this.computedItems.length)return;const e=this.getContent().scrollHeight-(this.getContent().scrollTop+this.getContent().clientHeight)<200;e&&(this.lastItem+=20)}else requestAnimationFrame((()=>{const e=this.getContent();e&&(e.scrollTop=0)}))},onSpaceDown(e){e.preventDefault()},onTabDown(e){const t=this.$refs.menu;if(!t)return;const i=t.activeTile;!this.multiple&&i&&this.isMenuActive?(e.preventDefault(),e.stopPropagation(),i.click()):this.blur(e)},onUpDown(e){const t=this.$refs.menu;if(!t)return;if(e.preventDefault(),this.multiple)return this.activateMenu();const i=e.keyCode;t.isBooted=!0,window.requestAnimationFrame((()=>{if(t.getTiles(),!t.hasClickableTiles)return this.activateMenu();switch(i){case m.uP.up:t.prevTile();break;case m.uP.down:t.nextTile();break;case m.uP.home:t.firstTile();break;case m.uP.end:t.lastTile();break}this.selectItem(this.allItems[this.getMenuIndex()])}))},selectItem(e){if(this.multiple){const t=(this.internalValue||[]).slice(),i=this.findExistingIndex(e);if(-1!==i?t.splice(i,1):t.push(e),this.setValue(t.map((e=>this.returnObject?e:this.getValue(e)))),this.hideSelected)this.setMenuIndex(-1);else{const t=this.computedItems.indexOf(e);~t&&(this.$nextTick((()=>this.$refs.menu.getTiles())),setTimeout((()=>this.setMenuIndex(t))))}}else this.setValue(this.returnObject?e:this.getValue(e)),this.isMenuActive=!1},setMenuIndex(e){this.$refs.menu&&(this.$refs.menu.listIndex=e)},setSelectedItems(){const e=[],t=this.multiple&&Array.isArray(this.internalValue)?this.internalValue:[this.internalValue];for(const i of t){const t=this.allItems.findIndex((e=>this.valueComparator(this.getValue(e),this.getValue(i))));t>-1&&e.push(this.allItems[t])}this.selectedItems=e},setValue(e){this.valueComparator(e,this.internalValue)||(this.internalValue=e,this.$emit("change",e))},isAppendInner(e){const t=this.$refs["append-inner"];return t&&(t===e||t.contains(e))}}})},52006:function(e,t,i){"use strict";i.d(t,{A:function(){return o}});var s=i(53661),r=i(3507),n=i(66960),o=(0,r.A)(s.A).extend({name:"v-subheader",props:{inset:Boolean},render(e){return e("div",{staticClass:"v-subheader",class:{"v-subheader--inset":this.inset,...this.themeClasses},attrs:this.$attrs,on:this.$listeners},(0,n.$c)(this))}})},45779:function(e,t,i){"use strict";i.d(t,{A:function(){return _}});var s=i(73960),r=i(91723),n=i(85471),o=n["default"].extend({name:"rippleable",directives:{ripple:r.A},props:{ripple:{type:[Boolean,Object],default:!0}},methods:{genRipple(e={}){return this.ripple?(e.staticClass="v-input--selection-controls__ripple",e.directives=e.directives||[],e.directives.push({name:"ripple",value:{center:!0}}),this.$createElement("div",e)):null}}}),a=i(45088),l=i(3507);function h(e){e.preventDefault()}var c=(0,l.A)(s.A,o,a.A).extend({name:"selectable",model:{prop:"inputValue",event:"change"},props:{id:String,inputValue:null,falseValue:null,trueValue:null,multiple:{type:Boolean,default:null},label:String},data(){return{hasColor:this.inputValue,lazyValue:this.inputValue}},computed:{computedColor(){if(this.isActive)return this.color?this.color:this.isDark&&!this.appIsDark?"white":"primary"},isMultiple(){return!0===this.multiple||null===this.multiple&&Array.isArray(this.internalValue)},isActive(){const e=this.value,t=this.internalValue;return this.isMultiple?!!Array.isArray(t)&&t.some((t=>this.valueComparator(t,e))):void 0===this.trueValue||void 0===this.falseValue?e?this.valueComparator(e,t):Boolean(t):this.valueComparator(t,this.trueValue)},isDirty(){return this.isActive},rippleState(){return this.isDisabled||this.validationState?this.validationState:void 0}},watch:{inputValue(e){this.lazyValue=e,this.hasColor=e}},methods:{genLabel(){const e=s.A.options.methods.genLabel.call(this);return e?(e.data.on={click:h},e):e},genInput(e,t){return this.$createElement("input",{attrs:Object.assign({"aria-checked":this.isActive.toString(),disabled:this.isDisabled,id:this.computedId,role:e,type:e},t),domProps:{value:this.value,checked:this.isActive},on:{blur:this.onBlur,change:this.onChange,focus:this.onFocus,keydown:this.onKeydown,click:h},ref:"input"})},onClick(e){this.onChange(),this.$emit("click",e)},onChange(){if(!this.isInteractive)return;const e=this.value;let t=this.internalValue;if(this.isMultiple){Array.isArray(t)||(t=[]);const i=t.length;t=t.filter((t=>!this.valueComparator(t,e))),t.length===i&&t.push(e)}else t=void 0!==this.trueValue&&void 0!==this.falseValue?this.valueComparator(t,this.trueValue)?this.falseValue:this.trueValue:e?this.valueComparator(t,e)?null:e:!t;this.validate(!0,t),this.internalValue=t,this.hasColor=t},onFocus(e){this.isFocused=!0,this.$emit("focus",e)},onBlur(e){this.isFocused=!1,this.$emit("blur",e)},onKeydown(e){}}}),d=i(70499),u=i(21906),f=i(12585),p=i(66960),_=c.extend({name:"v-switch",directives:{Touch:d.A},props:{inset:Boolean,loading:{type:[Boolean,String],default:!1},flat:{type:Boolean,default:!1}},computed:{classes(){return{...s.A.options.computed.classes.call(this),"v-input--selection-controls v-input--switch":!0,"v-input--switch--flat":this.flat,"v-input--switch--inset":this.inset}},attrs(){return{"aria-checked":String(this.isActive),"aria-disabled":String(this.isDisabled),role:"switch"}},validationState(){return this.hasError&&this.shouldValidate?"error":this.hasSuccess?"success":null!==this.hasColor?this.computedColor:void 0},switchData(){return this.setTextColor(this.loading?void 0:this.validationState,{class:this.themeClasses})}},methods:{genDefaultSlot(){return[this.genSwitch(),this.genLabel()]},genSwitch(){const{title:e,...t}=this.attrs$;return this.$createElement("div",{staticClass:"v-input--selection-controls__input"},[this.genInput("checkbox",{...this.attrs,...t}),this.genRipple(this.setTextColor(this.validationState,{directives:[{name:"touch",value:{left:this.onSwipeLeft,right:this.onSwipeRight}}]})),this.$createElement("div",{staticClass:"v-input--switch__track",...this.switchData}),this.$createElement("div",{staticClass:"v-input--switch__thumb",...this.switchData},[this.genProgress()])])},genProgress(){return this.$createElement(u.Z,{},[!1===this.loading?null:(0,p.$c)(this,"progress")||this.$createElement(f.A,{props:{color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,size:16,width:2,indeterminate:!0}})])},onSwipeLeft(){this.isActive&&this.onChange()},onSwipeRight(){this.isActive||this.onChange()},onKeydown(e){(e.keyCode===p.uP.left&&this.isActive||e.keyCode===p.uP.right&&!this.isActive)&&this.onChange()}}})},99084:function(e,t,i){"use strict";var s=i(53661);t.A=s.A.extend({name:"v-theme-provider",props:{root:Boolean},computed:{isDark(){return this.root?this.rootIsDark:s.A.options.computed.isDark.call(this)}},render(){return this.$slots.default&&this.$slots.default.find((e=>!e.isComment&&" "!==e.text))}})},24462:function(e,t,i){"use strict";var s=i(45063),r=i(39748),n=i(3507),o=i(66960),a=i(65604);const l=(0,n.A)(s.A,r.A);t.A=l.extend({name:"activatable",props:{activator:{default:null,validator:e=>["string","object"].includes(typeof e)},disabled:Boolean,internalActivator:Boolean,openOnClick:{type:Boolean,default:!0},openOnHover:Boolean,openOnFocus:Boolean},data:()=>({activatorElement:null,activatorNode:[],events:["click","mouseenter","mouseleave","focus"],listeners:{}}),watch:{activator:"resetActivator",openOnFocus:"resetActivator",openOnHover:"resetActivator"},mounted(){const e=(0,o.fo)(this,"activator",!0);e&&["v-slot","normal"].includes(e)&&(0,a.yA)('The activator slot must be bound, try \'