aboutsummaryrefslogtreecommitdiffstats
path: root/dist/dashboard-main.js
blob: 85889d4baef113b1cef1d5afd4829ab68562ac9c (plain)
1
2
3
/*! For license information please see dashboard-main.js.LICENSE.txt */
(()=>{var e,n={54339:(e,n,o)=>{"use strict";var a=o(20144),i=o(79753),r=o(77958),s=o(43554),l=o(93664),c=o(74628),d=o(9980),u=o.n(d),p=o(25475),h=o(77531);const f={data(){return{isMobile:this._isMobile()}},beforeMount(){window.addEventListener("resize",this._onResize)},beforeDestroy(){window.removeEventListener("resize",this._onResize)},methods:{_onResize(){this.isMobile=this._isMobile()},_isMobile:()=>document.documentElement.clientWidth<768}};var g=o(72155),v=o(66236),m=o(75944),b=o(45157),A=o(26053),y=o(41989),x=o(99313),C=o(20090),w=o(55212),S=o(96204),_=o(16894),k=o(94162),D=o(40874),I=o(27657),E=o(2047),O=o(92870),M=o(26022),N=o(89998),T=o(51235),j=o(36065),L=o(96315),P=o(66845),Z=o(87875),B=o(33429),W=o(56956),R=o(42899),F=o(98445),z=o(13887),H=o(36402),G=o(49231),Y=o(34741),U=o(13607),$=o(73743),V=o(59897),X=o(89241),Q=o(96226),K=o(97947),q=o(26939),J=o(37008),tt=o(74764),et=o(6318),nt=o(78573),ot=o(22175),at=o(93428),it=o(93815),rt=o(40873),st=o(64865),lt=o(3172),ct=o(88175),dt=o(20435),ut=o(6156),pt=o(16972),ht=o(34246),ft=o(34854),gt=o(42213),vt=o(22663),mt=o(98212),bt=o(13372),At=(o(29612),o(86884)),yt=(o(60577),o(49368)),xt=(o(69183),o(74911)),Ct=o(35380),wt=o(56857),St=o(67912),_t=o(13199),kt=o(13888),Dt=o(34509),It=o(70653),Et=(o(52299),o(50279),o(93911),o(85302),o(90318)),Ot=o(17593),Mt=o(79845),Nt=(o(84722),o(76692),o(40946),o(73045));g.Z,v.Z,m.Z,b.Z,A.Z,y.Z,x.Z,C.Z,S.Z,_.Z,k.Z,w.Z,D.Z,I.Z,E.Z,O.Z,M.Z,N.Z,T.Z,j.Z,L.Z,P.Z,Z.Z,B.Z,W.Z,R.Z,F.Z,mt.NcAutoCompleteResult,z.N,H.Z,G.Z,c.Z,Y.Z,U.Z,$.Z,V.Z,X.Z,Q.Z,K.Z,q.Z,J.Z,tt.Z,et.Z,nt.Z,ot.Z,at.Z,it.Z,rt.N,st.Z,lt.Z,ct.Z,dt.Z,vt.N,p.Z,ut.Z,pt.Z,ht.Z,ft.Z,gt.Z,mt.default,bt.N,xt.Z,At.Z,Ct.Z,wt.Z,St.Z,_t.N,It.Z,yt.Z,kt.Z,Dt.Z,Symbol.toStringTag,Et.X,Ot.X,Nt.VTooltip,Symbol.toStringTag;var Tt=o(11734);const jt={name:"ApiDashboardWidget",components:{NcAvatar:z.N,NcDashboardWidget:X.Z,NcDashboardWidgetItem:Q.Z,NcEmptyContent:ot.Z,NcButton:c.Z,CheckIcon:Tt.default},props:{widget:{type:[Object,void 0],default:void 0},data:{type:[Object,void 0],default:void 0},loading:{type:Boolean,required:!0}},computed:{items(){return this.data?.items??[]},emptyContentMessage(){return this.data?.emptyContentMessage??""},halfEmptyContentMessage(){return this.data?.halfEmptyContentMessage??""},newButton(){return this.widget?.buttons?.find((t=>"new"===t.type))},moreButton(){return this.widget?.buttons?.find((t=>"more"===t.type))},setupButton(){return this.widget?.buttons?.find((t=>"setup"===t.type))},showMoreLabel(){return this.moreButton?.text},showMoreUrl(){return this.moreButton?.link}}};var Lt=o(51900);const Pt=(0,Lt.Z)(jt,(function(){var t=this,e=t._self._c;return e("NcDashboardWidget",{attrs:{items:t.items,"show-more-label":t.showMoreLabel,"show-more-url":t.showMoreUrl,loading:t.loading,"show-items-and-empty-content":!!t.halfEmptyContentMessage,"half-empty-content-message":t.halfEmptyContentMessage},scopedSlots:t._u([{key:"default",fn:function(n){let{item:o}=n;return[e("NcDashboardWidgetItem",{attrs:{"target-url":o.link,"overlay-icon-url":o.overlayIconUrl?o.overlayIconUrl:"","main-text":o.title,"sub-text":o.subtitle},scopedSlots:t._u([{key:"avatar",fn:function(){return[o.iconUrl?[e("NcAvatar",{attrs:{size:44,url:o.iconUrl}})]:t._e()]},proxy:!0}],null,!0)})]}},{key:"empty-content",fn:function(){return[0===t.items.length?e("NcEmptyContent",{attrs:{description:t.emptyContentMessage},scopedSlots:t._u([{key:"icon",fn:function(){return[t.emptyContentMessage?e("CheckIcon",{attrs:{size:65}}):t._e()]},proxy:!0},{key:"action",fn:function(){return[t.setupButton?e("NcButton",{attrs:{href:t.setupButton.link}},[t._v("\n\t\t\t\t\t"+t._s(t.setupButton.text)+"\n\t\t\t\t")]):t._e()]},proxy:!0}],null,!1,4172361897)}):t._e()]},proxy:!0}])})}),[],!1,null,"d91c9686",null).exports;var Zt=o(25108);const Bt=(0,s.j)("dashboard","panels"),Wt=(0,s.j)("dashboard","firstRun"),Rt={weather:{text:t("dashboard","Weather"),icon:"icon-weather-status"},status:{text:t("dashboard","Status"),icon:"icon-user-status-online"}},Ft={name:"DashboardApp",components:{ApiDashboardWidget:Pt,NcButton:c.Z,Draggable:u(),NcModal:p.Z,Pencil:h.default},mixins:[f],data:()=>({isAdmin:(0,r.ts)().isAdmin,timer:new Date,registeredStatus:[],callbacks:{},callbacksStatus:{},allCallbacksStatus:{},statusInfo:Rt,enabledStatuses:(0,s.j)("dashboard","statuses"),panels:Bt,firstRun:Wt,displayName:(0,r.ts)()?.displayName,uid:(0,r.ts)()?.uid,layout:(0,s.j)("dashboard","layout").filter((t=>Bt[t])),modal:!1,appStoreUrl:(0,i.generateUrl)("/settings/apps/dashboard"),statuses:{},apiWidgets:[],apiWidgetItems:{},loadingItems:!0}),computed:{greeting(){const e=this.timer.getHours();let n;n=e>=22||e<5?"night":e>=18?"evening":e>=12?"afternoon":"morning";const o={morning:{generic:t("dashboard","Good morning"),withName:t("dashboard","Good morning, {name}",{name:this.displayName},void 0,{escape:!1})},afternoon:{generic:t("dashboard","Good afternoon"),withName:t("dashboard","Good afternoon, {name}",{name:this.displayName},void 0,{escape:!1})},evening:{generic:t("dashboard","Good evening"),withName:t("dashboard","Good evening, {name}",{name:this.displayName},void 0,{escape:!1})},night:{generic:t("dashboard","Hello"),withName:t("dashboard","Hello, {name}",{name:this.displayName},void 0,{escape:!1})}};return{text:this.displayName&&this.uid!==this.displayName?o[n].withName:o[n].generic}},isActive(){return t=>this.layout.indexOf(t.id)>-1},isStatusActive(){return t=>!(t in this.enabledStatuses)||this.enabledStatuses[t]},sortedAllStatuses(){return Object.keys(this.allCallbacksStatus).slice().sort(this.sortStatuses)},sortedPanels(){return Object.values(this.panels).sort(((t,e)=>{const n=this.layout.indexOf(t.id),o=this.layout.indexOf(e.id);return-1===n||-1===o?o-n||t.id-e.id:n-o||t.id-e.id}))},sortedRegisteredStatus(){return this.registeredStatus.slice().sort(this.sortStatuses)}},watch:{callbacks(){this.rerenderPanels()},callbacksStatus(){for(const t in this.callbacksStatus){const e=this.$refs["status-"+t];this.statuses[t]&&this.statuses[t].mounted||(e?(this.callbacksStatus[t](e[0]),a.default.set(this.statuses,t,{mounted:!0})):Zt.error("Failed to register panel in the frontend as no backend data was provided for "+t))}}},async created(){await this.fetchApiWidgets();const t=Object.values(this.apiWidgets).filter((t=>this.isApiWidgetV2(t.id))).map((t=>t.id));await Promise.all(t.map((t=>this.fetchApiWidgetItems([t],!0))));for(const t of Object.values(this.apiWidgets))t.reload_interval>0&&setInterval((async()=>{await this.fetchApiWidgetItems([t.id],!0)}),1e3*t.reload_interval)},mounted(){this.updateSkipLink(),window.addEventListener("scroll",this.handleScroll),setInterval((()=>{this.timer=new Date}),3e4),this.firstRun&&window.addEventListener("scroll",this.disableFirstrunHint)},destroyed(){window.removeEventListener("scroll",this.handleScroll)},methods:{register(t,e){a.default.set(this.callbacks,t,e)},registerStatus(t,e){a.default.set(this.allCallbacksStatus,t,e),this.isStatusActive(t)&&(this.registeredStatus.push(t),this.$nextTick((()=>{a.default.set(this.callbacksStatus,t,e)})))},rerenderPanels(){for(const t in this.callbacks){if(this.isApiWidgetV2(this.panels[t].id))continue;const e=this.$refs[t];-1!==this.layout.indexOf(t)&&(this.panels[t]&&this.panels[t].mounted||(e?(this.callbacks[t](e[0],{widget:this.panels[t]}),a.default.set(this.panels[t],"mounted",!0)):Zt.error("Failed to register panel in the frontend as no backend data was provided for "+t)))}},saveLayout(){l.Z.post((0,i.generateUrl)("/apps/dashboard/layout"),{layout:this.layout.join(",")})},saveStatuses(){l.Z.post((0,i.generateUrl)("/apps/dashboard/statuses"),{statuses:JSON.stringify(this.enabledStatuses)})},showModal(){this.modal=!0,this.firstRun=!1},closeModal(){this.modal=!1},updateCheckbox(t,e){const n=this.layout.indexOf(t.id);!e&&n>-1?this.layout.splice(n,1):this.layout.push(t.id),a.default.set(this.panels[t.id],"mounted",!1),this.saveLayout(),this.$nextTick((()=>this.rerenderPanels()))},disableFirstrunHint(){window.removeEventListener("scroll",this.disableFirstrunHint),setTimeout((()=>{this.firstRun=!1}),1e3)},updateSkipLink(){document.getElementsByClassName("skip-navigation")[0].setAttribute("href","#app-dashboard")},updateStatusCheckbox(t,e){e?this.enableStatus(t):this.disableStatus(t)},enableStatus(t){this.enabledStatuses[t]=!0,this.registerStatus(t,this.allCallbacksStatus[t]),this.saveStatuses()},disableStatus(t){this.enabledStatuses[t]=!1;const e=this.registeredStatus.findIndex((e=>e===t));-1!==e&&(this.registeredStatus.splice(e,1),a.default.set(this.statuses,t,{mounted:!1}),this.$nextTick((()=>{a.default.delete(this.callbacksStatus,t)}))),this.saveStatuses()},sortStatuses(t,e){const n=t.toLowerCase(),o=e.toLowerCase();return n>o?1:n<o?-1:0},handleScroll(){window.scrollY>70?document.body.classList.add("dashboard--scrolled"):document.body.classList.remove("dashboard--scrolled")},async fetchApiWidgets(){const t=await l.Z.get((0,i.generateOcsUrl)("/apps/dashboard/api/v1/widgets"));this.apiWidgets=t.data.ocs.data},async fetchApiWidgetItems(t){let e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];try{const n=(0,i.generateOcsUrl)("/apps/dashboard/api/v2/widget-items"),o=new URLSearchParams(t.map((t=>["widgets[]",t]))),a=(await l.Z.get(`${n}?${o.toString()}`)).data.ocs.data;this.apiWidgetItems=e?Object.assign({},this.apiWidgetItems,a):a}finally{this.loadingItems=!1}},isApiWidgetV2(t){for(const e of Object.values(this.apiWidgets))if(e.id===t&&e.item_api_versions.includes(2))return!0;return!1}}};var zt=o(93379),Ht=o.n(zt),Gt=o(7795),Yt=o.n(Gt),Ut=o(90569),$t=o.n(Ut),Vt=o(3565),Xt=o.n(Vt),Qt=o(19216),Kt=o.n(Qt),qt=o(44589),Jt=o.n(qt),te=o(63500),ee={};ee.styleTagTransform=Jt(),ee.setAttributes=Xt(),ee.insert=$t().bind(null,"head"),ee.domAPI=Yt(),ee.insertStyleElement=Kt(),Ht()(te.Z,ee),te.Z&&te.Z.locals&&te.Z.locals;var ne=o(1725),oe={};oe.styleTagTransform=Jt(),oe.setAttributes=Xt(),oe.insert=$t().bind(null,"head"),oe.domAPI=Yt(),oe.insertStyleElement=Kt(),Ht()(ne.Z,oe),ne.Z&&ne.Z.locals&&ne.Z.locals;const ae=(0,Lt.Z)(Ft,(function(){var t=this,e=t._self._c;return e("div",{attrs:{id:"app-dashboard"}},[e("h2",[t._v(t._s(t.greeting.text))]),t._v(" "),e("ul",{staticClass:"statuses"},t._l(t.sortedRegisteredStatus,(function(t){return e("li",{key:t,attrs:{id:"status-"+t}},[e("div",{ref:"status-"+t,refInFor:!0})])})),0),t._v(" "),e("Draggable",t._b({staticClass:"panels",attrs:{handle:".panel--header"},on:{end:t.saveLayout},model:{value:t.layout,callback:function(e){t.layout=e},expression:"layout"}},"Draggable",{swapThreshold:.3,delay:500,delayOnTouchOnly:!0,touchStartThreshold:3},!1),[t._l(t.layout,(function(n){return[t.isApiWidgetV2(t.panels[n].id)?e("div",{key:`${t.panels[n].id}-v2`,staticClass:"panel"},[e("div",{staticClass:"panel--header"},[e("h2",[e("span",{class:t.apiWidgets[t.panels[n].id].icon_class,attrs:{"aria-labelledby":`panel-${t.panels[n].id}--header--icon--description`,"aria-hidden":"true",role:"img"}}),t._v("\n\t\t\t\t\t\t"+t._s(t.apiWidgets[t.panels[n].id].title)+"\n\t\t\t\t\t")]),t._v(" "),e("span",{staticClass:"hidden-visually",attrs:{id:`panel-${t.panels[n].id}--header--icon--description`}},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("dashboard",'"{title} icon"',{title:t.apiWidgets[t.panels[n].id].title}))+"\n\t\t\t\t\t")])]),t._v(" "),e("div",{staticClass:"panel--content"},[e("ApiDashboardWidget",{attrs:{widget:t.apiWidgets[t.panels[n].id],data:t.apiWidgetItems[t.panels[n].id],loading:t.loadingItems}})],1)]):e("div",{key:t.panels[n].id,staticClass:"panel"},[e("div",{staticClass:"panel--header"},[e("h2",[e("span",{class:t.panels[n].iconClass,attrs:{"aria-labelledby":`panel-${t.panels[n].id}--header--icon--description`,"aria-hidden":"true",role:"img"}}),t._v("\n\t\t\t\t\t\t"+t._s(t.panels[n].title)+"\n\t\t\t\t\t")]),t._v(" "),e("span",{staticClass:"hidden-visually",attrs:{id:`panel-${t.panels[n].id}--header--icon--description`}},[t._v(" "+t._s(t.t("dashboard",'"{title} icon"',{title:t.panels[n].title}))+" ")])]),t._v(" "),e("div",{staticClass:"panel--content",class:{loading:!t.panels[n].mounted}},[e("div",{ref:t.panels[n].id,refInFor:!0,attrs:{"data-id":t.panels[n].id}})])])]}))],2),t._v(" "),e("div",{staticClass:"footer"},[e("NcButton",{on:{click:t.showModal},scopedSlots:t._u([{key:"icon",fn:function(){return[e("Pencil",{attrs:{size:20}})]},proxy:!0}])},[t._v("\n\t\t\t"+t._s(t.t("dashboard","Customize"))+"\n\t\t")])],1),t._v(" "),t.modal?e("NcModal",{attrs:{size:"large"},on:{close:t.closeModal}},[e("div",{staticClass:"modal__content"},[e("h3",[t._v(t._s(t.t("dashboard","Edit widgets")))]),t._v(" "),e("ol",{staticClass:"panels"},t._l(t.sortedAllStatuses,(function(n){return e("li",{key:n,class:"panel-"+n},[e("input",{staticClass:"checkbox",attrs:{id:"status-checkbox-"+n,type:"checkbox"},domProps:{checked:t.isStatusActive(n)},on:{input:function(e){return t.updateStatusCheckbox(n,e.target.checked)}}}),t._v(" "),e("label",{attrs:{for:"status-checkbox-"+n}},[e("span",{class:t.statusInfo[n].icon,attrs:{"aria-hidden":"true"}}),t._v("\n\t\t\t\t\t\t"+t._s(t.statusInfo[n].text)+"\n\t\t\t\t\t")])])})),0),t._v(" "),e("Draggable",t._b({staticClass:"panels",attrs:{tag:"ol",handle:".draggable"},on:{end:t.saveLayout},model:{value:t.layout,callback:function(e){t.layout=e},expression:"layout"}},"Draggable",{swapThreshold:.3,delay:500,delayOnTouchOnly:!0,touchStartThreshold:3},!1),t._l(t.sortedPanels,(function(n){return e("li",{key:n.id,class:"panel-"+n.id},[e("input",{staticClass:"checkbox",attrs:{id:"panel-checkbox-"+n.id,type:"checkbox"},domProps:{checked:t.isActive(n)},on:{input:function(e){return t.updateCheckbox(n,e.target.checked)}}}),t._v(" "),e("label",{class:{draggable:t.isActive(n)},attrs:{for:"panel-checkbox-"+n.id}},[e("span",{class:n.iconClass,attrs:{"aria-hidden":"true"}}),t._v("\n\t\t\t\t\t\t"+t._s(n.title)+"\n\t\t\t\t\t")])])})),0),t._v(" "),t.isAdmin?e("a",{staticClass:"button",attrs:{href:t.appStoreUrl}},[t._v(t._s(t.t("dashboard","Get more widgets from the App Store")))]):t._e(),t._v(" "),t.statuses.weather&&t.isStatusActive("weather")?e("div",[e("h3",[t._v(t._s(t.t("dashboard","Weather service")))]),t._v(" "),e("p",[t._v("\n\t\t\t\t\t"+t._s(t.t("dashboard","For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information."))+"\n\t\t\t\t")]),t._v(" "),e("p",{staticClass:"credits--end"},[e("a",{attrs:{href:"https://api.met.no/doc/TermsOfService",target:"_blank",rel:"noopener"}},[t._v(t._s(t.t("dashboard","Weather data from Met.no")))]),t._v(",\n\t\t\t\t\t"),e("a",{attrs:{href:"https://wiki.osmfoundation.org/wiki/Privacy_Policy",target:"_blank",rel:"noopener"}},[t._v(t._s(t.t("dashboard","geocoding with Nominatim")))]),t._v(",\n\t\t\t\t\t"),e("a",{attrs:{href:"https://www.opentopodata.org/#public-api",target:"_blank",rel:"noopener"}},[t._v(t._s(t.t("dashboard","elevation data from OpenTopoData")))]),t._v(".\n\t\t\t\t")])]):t._e()],1)]):t._e()],1)}),[],!1,null,"9fd44988",null).exports;var ie=o(31352);o.nc=btoa((0,r.IH)()),a.default.directive("Tooltip",Mt.Z),a.default.prototype.t=ie.Iu,window.OCA.Files||(window.OCA.Files={}),Object.assign(window.OCA.Files,{App:{fileList:{filesClient:OC.Files.getClient()}}},window.OCA.Files);const re=new(a.default.extend(ae))({}).$mount("#app-content-vue");window.OCA.Dashboard={register:(t,e)=>re.register(t,e),registerStatus:(t,e)=>re.registerStatus(t,e)}},63500:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var o=n(87537),a=n.n(o),i=n(23645),r=n.n(i)()(a());r.push([t.id,"#app-dashboard[data-v-9fd44988]{width:100%;min-height:100%;background-size:cover;background-position:center center;background-repeat:no-repeat;background-attachment:fixed}#app-dashboard>h2[data-v-9fd44988]{color:var(--color-primary-element-text);text-align:center;font-size:32px;line-height:130%;padding:1rem 0}.panels[data-v-9fd44988]{width:auto;margin:auto;max-width:1800px;display:flex;justify-content:center;flex-direction:row;align-items:flex-start;flex-wrap:wrap}.panel[data-v-9fd44988],.panels>div[data-v-9fd44988]{width:320px;max-width:100%;margin:16px;align-self:stretch;background-color:var(--color-main-background-blur);-webkit-backdrop-filter:var(--filter-background-blur);backdrop-filter:var(--filter-background-blur);border-radius:var(--border-radius-rounded)}#body-user.theme--highcontrast .panel[data-v-9fd44988],#body-user.theme--highcontrast .panels>div[data-v-9fd44988]{border:2px solid var(--color-border)}.panel.sortable-ghost[data-v-9fd44988],.panels>div.sortable-ghost[data-v-9fd44988]{opacity:.1}.panel>.panel--header[data-v-9fd44988],.panels>div>.panel--header[data-v-9fd44988]{display:flex;z-index:1;top:50px;padding:16px;cursor:grab}.panel>.panel--header[data-v-9fd44988],.panel>.panel--header[data-v-9fd44988] *,.panels>div>.panel--header[data-v-9fd44988],.panels>div>.panel--header[data-v-9fd44988] *{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.panel>.panel--header[data-v-9fd44988]:active,.panels>div>.panel--header[data-v-9fd44988]:active{cursor:grabbing}.panel>.panel--header a[data-v-9fd44988],.panels>div>.panel--header a[data-v-9fd44988]{flex-grow:1}.panel>.panel--header>h2[data-v-9fd44988],.panels>div>.panel--header>h2[data-v-9fd44988]{display:block;align-items:center;flex-grow:1;margin:0;font-size:20px;line-height:24px;font-weight:bold;padding:16px 8px;height:56px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:grab}.panel>.panel--header>h2 span[data-v-9fd44988],.panels>div>.panel--header>h2 span[data-v-9fd44988]{background-size:32px;width:32px;height:32px;margin-right:16px;background-position:center;float:left;margin-top:-6px}.panel>.panel--content[data-v-9fd44988],.panels>div>.panel--content[data-v-9fd44988]{margin:0 16px 16px 16px;height:424px;overflow:visible}@media only screen and (max-width: 709px){.panel>.panel--content[data-v-9fd44988],.panels>div>.panel--content[data-v-9fd44988]{height:auto}}.footer[data-v-9fd44988]{display:flex;justify-content:center;transition:bottom var(--animation-slow) ease-in-out;padding:1rem 0}.edit-panels[data-v-9fd44988]{display:inline-block;margin:auto;background-position:16px center;padding:12px 16px;padding-left:36px;border-radius:var(--border-radius-pill);max-width:200px;opacity:1;text-align:center}.button[data-v-9fd44988],.button-vue[data-v-9fd44988],.edit-panels[data-v-9fd44988],.statuses[data-v-9fd44988] .action-item .action-item__menutoggle,.statuses[data-v-9fd44988] .action-item.action-item--open .action-item__menutoggle{background-color:var(--color-main-background-blur);-webkit-backdrop-filter:var(--filter-background-blur);backdrop-filter:var(--filter-background-blur);opacity:1 !important}.button[data-v-9fd44988]:hover,.button[data-v-9fd44988]:focus,.button[data-v-9fd44988]:active,.button-vue[data-v-9fd44988]:hover,.button-vue[data-v-9fd44988]:focus,.button-vue[data-v-9fd44988]:active,.edit-panels[data-v-9fd44988]:hover,.edit-panels[data-v-9fd44988]:focus,.edit-panels[data-v-9fd44988]:active,.statuses[data-v-9fd44988] .action-item .action-item__menutoggle:hover,.statuses[data-v-9fd44988] .action-item .action-item__menutoggle:focus,.statuses[data-v-9fd44988] .action-item .action-item__menutoggle:active,.statuses[data-v-9fd44988] .action-item.action-item--open .action-item__menutoggle:hover,.statuses[data-v-9fd44988] .action-item.action-item--open .action-item__menutoggle:focus,.statuses[data-v-9fd44988] .action-item.action-item--open .action-item__menutoggle:active{background-color:var(--color-background-hover) !important}.button[data-v-9fd44988]:focus-visible,.button-vue[data-v-9fd44988]:focus-visible,.edit-panels[data-v-9fd44988]:focus-visible,.statuses[data-v-9fd44988] .action-item .action-item__menutoggle:focus-visible,.statuses[data-v-9fd44988] .action-item.action-item--open .action-item__menutoggle:focus-visible{box-shadow:0 0 0 4px var(--color-main-background) !important;outline:2px solid var(--color-main-text) !important}.modal__content[data-v-9fd44988]{padding:32px 16px;text-align:center}.modal__content ol[data-v-9fd44988]{display:flex;flex-direction:row;justify-content:center;list-style-type:none;padding-bottom:16px}.modal__content li label[data-v-9fd44988]{position:relative;display:block;padding:48px 16px 14px 16px;margin:8px;width:140px;background-color:var(--color-background-hover);border:2px solid var(--color-main-background);border-radius:var(--border-radius-large);text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal__content li label span[data-v-9fd44988]{position:absolute;top:16px;width:24px;height:24px;background-size:24px}.modal__content li label[data-v-9fd44988]:hover{border-color:var(--color-primary-element)}.modal__content li:not(.panel-status) label span[data-v-9fd44988]{filter:var(--background-invert-if-dark)}.modal__content li input[type=checkbox].checkbox+label[data-v-9fd44988]:before{position:absolute;right:12px;top:16px}.modal__content li input:focus+label[data-v-9fd44988]{border-color:var(--color-primary-element)}.modal__content h3[data-v-9fd44988]{font-weight:bold}.modal__content h3[data-v-9fd44988]:not(:first-of-type){margin-top:64px}.modal__content .button[data-v-9fd44988]{display:inline-block;padding:10px 16px;margin:0}.modal__content p[data-v-9fd44988]{max-width:650px;margin:0 auto}.modal__content p a[data-v-9fd44988]:hover,.modal__content p a[data-v-9fd44988]:focus{border-bottom:2px solid var(--color-border)}.modal__content .credits--end[data-v-9fd44988]{padding-bottom:32px;color:var(--color-text-maxcontrast)}.modal__content .credits--end a[data-v-9fd44988]{color:var(--color-text-maxcontrast)}.flip-list-move[data-v-9fd44988]{transition:transform var(--animation-slow)}.statuses[data-v-9fd44988]{display:flex;flex-direction:row;justify-content:center;flex-wrap:wrap;margin-bottom:36px}.statuses>li[data-v-9fd44988]{margin:8px}","",{version:3,sources:["webpack://./apps/dashboard/src/DashboardApp.vue"],names:[],mappings:"AACA,gCACC,UAAA,CACA,eAAA,CACA,qBAAA,CACA,iCAAA,CACA,2BAAA,CACA,2BAAA,CAEA,mCACC,uCAAA,CACA,iBAAA,CACA,cAAA,CACA,gBAAA,CACA,cAAA,CAIF,yBACC,UAAA,CACA,WAAA,CACA,gBAAA,CACA,YAAA,CACA,sBAAA,CACA,kBAAA,CACA,sBAAA,CACA,cAAA,CAGD,qDACC,WAAA,CACA,cAAA,CACA,WAAA,CACA,kBAAA,CACA,kDAAA,CACA,qDAAA,CACA,6CAAA,CACA,0CAAA,CAEA,mHACC,oCAAA,CAGD,mFACE,UAAA,CAGF,mFACC,YAAA,CACA,SAAA,CACA,QAAA,CACA,YAAA,CACA,WAAA,CAEA,0KACC,0BAAA,CACA,wBAAA,CACA,uBAAA,CACA,qBAAA,CACA,oBAAA,CACA,gBAAA,CAGD,iGACC,eAAA,CAGD,uFACC,WAAA,CAGD,yFACC,aAAA,CACA,kBAAA,CACA,WAAA,CACA,QAAA,CACA,cAAA,CACA,gBAAA,CACA,gBAAA,CACA,gBAAA,CACA,WAAA,CACA,kBAAA,CACA,eAAA,CACA,sBAAA,CACA,WAAA,CACA,mGACC,oBAAA,CACA,UAAA,CACA,WAAA,CACA,iBAAA,CACA,0BAAA,CACA,UAAA,CACA,eAAA,CAKH,qFACC,uBAAA,CACA,YAAA,CAEA,gBAAA,CAID,0CACC,qFACC,WAAA,CAAA,CAKH,yBACC,YAAA,CACA,sBAAA,CACA,mDAAA,CACA,cAAA,CAGD,8BACC,oBAAA,CACA,WAAA,CACA,+BAAA,CACA,iBAAA,CACA,iBAAA,CACA,uCAAA,CACA,eAAA,CACA,SAAA,CACA,iBAAA,CAGD,wOAKC,kDAAA,CACA,qDAAA,CACA,6CAAA,CACA,oBAAA,CAEA,uxBAGC,yDAAA,CAED,8SACC,4DAAA,CACA,mDAAA,CAIF,iCACC,iBAAA,CACA,iBAAA,CAEA,oCACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,oBAAA,CACA,mBAAA,CAGA,0CACC,iBAAA,CACA,aAAA,CACA,2BAAA,CACA,UAAA,CACA,WAAA,CACA,8CAAA,CACA,6CAAA,CACA,wCAAA,CACA,eAAA,CACA,eAAA,CACA,sBAAA,CACA,kBAAA,CAEA,+CACC,iBAAA,CACA,QAAA,CACA,UAAA,CACA,WAAA,CACA,oBAAA,CAGD,gDACC,yCAAA,CAKF,kEACC,uCAAA,CAGD,+EACC,iBAAA,CACA,UAAA,CACA,QAAA,CAGD,sDACC,yCAAA,CAIF,oCACC,gBAAA,CAEA,wDACC,eAAA,CAKF,yCACC,oBAAA,CACA,iBAAA,CACA,QAAA,CAGD,mCACC,eAAA,CACA,aAAA,CAEA,sFAEC,2CAAA,CAIF,+CACC,mBAAA,CACA,mCAAA,CAEA,iDACC,mCAAA,CAKH,iCACC,0CAAA,CAGD,2BACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,cAAA,CACA,kBAAA,CAEA,8BACC,UAAA",sourcesContent:["\n#app-dashboard {\n\twidth: 100%;\n\tmin-height: 100%;\n\tbackground-size: cover;\n\tbackground-position: center center;\n\tbackground-repeat: no-repeat;\n\tbackground-attachment: fixed;\n\n\t> h2 {\n\t\tcolor: var(--color-primary-element-text);\n\t\ttext-align: center;\n\t\tfont-size: 32px;\n\t\tline-height: 130%;\n\t\tpadding: 1rem 0;\n\t}\n}\n\n.panels {\n\twidth: auto;\n\tmargin: auto;\n\tmax-width: 1800px;\n\tdisplay: flex;\n\tjustify-content: center;\n\tflex-direction: row;\n\talign-items: flex-start;\n\tflex-wrap: wrap;\n}\n\n.panel, .panels > div {\n\twidth: 320px;\n\tmax-width: 100%;\n\tmargin: 16px;\n\talign-self: stretch;\n\tbackground-color: var(--color-main-background-blur);\n\t-webkit-backdrop-filter: var(--filter-background-blur);\n\tbackdrop-filter: var(--filter-background-blur);\n\tborder-radius: var(--border-radius-rounded);\n\n\t#body-user.theme--highcontrast & {\n\t\tborder: 2px solid var(--color-border);\n\t}\n\n\t&.sortable-ghost {\n\t\t opacity: 0.1;\n\t}\n\n\t& > .panel--header {\n\t\tdisplay: flex;\n\t\tz-index: 1;\n\t\ttop: 50px;\n\t\tpadding: 16px;\n\t\tcursor: grab;\n\n\t\t&, ::v-deep * {\n\t\t\t-webkit-touch-callout: none;\n\t\t\t-webkit-user-select: none;\n\t\t\t-khtml-user-select: none;\n\t\t\t-moz-user-select: none;\n\t\t\t-ms-user-select: none;\n\t\t\tuser-select: none;\n\t\t}\n\n\t\t&:active {\n\t\t\tcursor: grabbing;\n\t\t}\n\n\t\ta {\n\t\t\tflex-grow: 1;\n\t\t}\n\n\t\t> h2 {\n\t\t\tdisplay: block;\n\t\t\talign-items: center;\n\t\t\tflex-grow: 1;\n\t\t\tmargin: 0;\n\t\t\tfont-size: 20px;\n\t\t\tline-height: 24px;\n\t\t\tfont-weight: bold;\n\t\t\tpadding: 16px 8px;\n\t\t\theight: 56px;\n\t\t\twhite-space: nowrap;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\tcursor: grab;\n\t\t\tspan {\n\t\t\t\tbackground-size: 32px;\n\t\t\t\twidth: 32px;\n\t\t\t\theight: 32px;\n\t\t\t\tmargin-right: 16px;\n\t\t\t\tbackground-position: center;\n\t\t\t\tfloat: left;\n\t\t\t\tmargin-top: -6px;\n\t\t\t}\n\t\t}\n\t}\n\n\t& > .panel--content {\n\t\tmargin: 0 16px 16px 16px;\n\t\theight: 424px;\n\t\t// We specifically do not want scrollbars inside widgets\n\t\toverflow: visible;\n\t}\n\n\t// No need to extend height of widgets if only one column is shown\n\t@media only screen and (max-width: 709px) {\n\t\t& > .panel--content {\n\t\t\theight: auto;\n\t\t}\n\t}\n}\n\n.footer {\n\tdisplay: flex;\n\tjustify-content: center;\n\ttransition: bottom var(--animation-slow) ease-in-out;\n\tpadding: 1rem 0;\n}\n\n.edit-panels {\n\tdisplay: inline-block;\n\tmargin:auto;\n\tbackground-position: 16px center;\n\tpadding: 12px 16px;\n\tpadding-left: 36px;\n\tborder-radius: var(--border-radius-pill);\n\tmax-width: 200px;\n\topacity: 1;\n\ttext-align: center;\n}\n\n.button,\n.button-vue,\n.edit-panels,\n.statuses ::v-deep .action-item .action-item__menutoggle,\n.statuses ::v-deep .action-item.action-item--open .action-item__menutoggle {\n\tbackground-color: var(--color-main-background-blur);\n\t-webkit-backdrop-filter: var(--filter-background-blur);\n\tbackdrop-filter: var(--filter-background-blur);\n\topacity: 1 !important;\n\n\t&:hover,\n\t&:focus,\n\t&:active {\n\t\tbackground-color: var(--color-background-hover)!important;\n\t}\n\t&:focus-visible {\n\t\tbox-shadow: 0 0 0 4px var(--color-main-background) !important;\n\t\toutline: 2px solid var(--color-main-text) !important;\n\t}\n}\n\n.modal__content {\n\tpadding: 32px 16px;\n\ttext-align: center;\n\n\tol {\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t\tjustify-content: center;\n\t\tlist-style-type: none;\n\t\tpadding-bottom: 16px;\n\t}\n\tli {\n\t\tlabel {\n\t\t\tposition: relative;\n\t\t\tdisplay: block;\n\t\t\tpadding: 48px 16px 14px 16px;\n\t\t\tmargin: 8px;\n\t\t\twidth: 140px;\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t\tborder: 2px solid var(--color-main-background);\n\t\t\tborder-radius: var(--border-radius-large);\n\t\t\ttext-align: left;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\twhite-space: nowrap;\n\n\t\t\tspan {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 16px;\n\t\t\t\twidth: 24px;\n\t\t\t\theight: 24px;\n\t\t\t\tbackground-size: 24px;\n\t\t\t}\n\n\t\t\t&:hover {\n\t\t\t\tborder-color: var(--color-primary-element);\n\t\t\t}\n\t\t}\n\n\t\t// Do not invert status icons\n\t\t&:not(.panel-status) label span {\n\t\t\tfilter: var(--background-invert-if-dark);\n\t\t}\n\n\t\tinput[type='checkbox'].checkbox + label:before {\n\t\t\tposition: absolute;\n\t\t\tright: 12px;\n\t\t\ttop: 16px;\n\t\t}\n\n\t\tinput:focus + label {\n\t\t\tborder-color: var(--color-primary-element);\n\t\t}\n\t}\n\n\th3 {\n\t\tfont-weight: bold;\n\n\t\t&:not(:first-of-type) {\n\t\t\tmargin-top: 64px;\n\t\t}\n\t}\n\n\t// Adjust design of 'Get more widgets' button\n\t.button {\n\t\tdisplay: inline-block;\n\t\tpadding: 10px 16px;\n\t\tmargin: 0;\n\t}\n\n\tp {\n\t\tmax-width: 650px;\n\t\tmargin: 0 auto;\n\n\t\ta:hover,\n\t\ta:focus {\n\t\t\tborder-bottom: 2px solid var(--color-border);\n\t\t}\n\t}\n\n\t.credits--end {\n\t\tpadding-bottom: 32px;\n\t\tcolor: var(--color-text-maxcontrast);\n\n\t\ta {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\t}\n}\n\n.flip-list-move {\n\ttransition: transform var(--animation-slow);\n}\n\n.statuses {\n\tdisplay: flex;\n\tflex-direction: row;\n\tjustify-content: center;\n\tflex-wrap: wrap;\n\tmargin-bottom: 36px;\n\n\t& > li {\n\t\tmargin: 8px;\n\t}\n}\n"],sourceRoot:""}]);const s=r},1725:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var o=n(87537),a=n.n(o),i=n(23645),r=n.n(i)()(a());r.push([t.id,"\nhtml, body {\n\tbackground-attachment: fixed;\n}\n#body-user #header {\n\tposition: fixed;\n}\n#content {\n\toverflow: auto;\n}\n","",{version:3,sources:["webpack://./apps/dashboard/src/DashboardApp.vue"],names:[],mappings:";AA4sBA;CACA,4BAAA;AACA;AAEA;CACA,eAAA;AACA;AAEA;CACA,cAAA;AACA",sourcesContent:["<template>\n\t<div id=\"app-dashboard\">\n\t\t<h2>{{ greeting.text }}</h2>\n\t\t<ul class=\"statuses\">\n\t\t\t<li v-for=\"status in sortedRegisteredStatus\"\n\t\t\t\t:id=\"'status-' + status\"\n\t\t\t\t:key=\"status\">\n\t\t\t\t<div :ref=\"'status-' + status\" />\n\t\t\t</li>\n\t\t</ul>\n\n\t\t<Draggable v-model=\"layout\"\n\t\t\tclass=\"panels\"\n\t\t\tv-bind=\"{swapThreshold: 0.30, delay: 500, delayOnTouchOnly: true, touchStartThreshold: 3}\"\n\t\t\thandle=\".panel--header\"\n\t\t\t@end=\"saveLayout\">\n\t\t\t<template v-for=\"panelId in layout\">\n\t\t\t\t<div v-if=\"isApiWidgetV2(panels[panelId].id)\"\n\t\t\t\t\t:key=\"`${panels[panelId].id}-v2`\"\n\t\t\t\t\tclass=\"panel\">\n\t\t\t\t\t<div class=\"panel--header\">\n\t\t\t\t\t\t<h2>\n\t\t\t\t\t\t\t<span :aria-labelledby=\"`panel-${panels[panelId].id}--header--icon--description`\"\n\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t:class=\"apiWidgets[panels[panelId].id].icon_class\"\n\t\t\t\t\t\t\t\trole=\"img\" />\n\t\t\t\t\t\t\t{{ apiWidgets[panels[panelId].id].title }}\n\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t<span :id=\"`panel-${panels[panelId].id}--header--icon--description`\" class=\"hidden-visually\">\n\t\t\t\t\t\t\t{{ t('dashboard', '\"{title} icon\"', { title: apiWidgets[panels[panelId].id].title }) }}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"panel--content\">\n\t\t\t\t\t\t<ApiDashboardWidget :widget=\"apiWidgets[panels[panelId].id]\"\n\t\t\t\t\t\t\t:data=\"apiWidgetItems[panels[panelId].id]\"\n\t\t\t\t\t\t\t:loading=\"loadingItems\" />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div v-else :key=\"panels[panelId].id\" class=\"panel\">\n\t\t\t\t\t<div class=\"panel--header\">\n\t\t\t\t\t\t<h2>\n\t\t\t\t\t\t\t<span :aria-labelledby=\"`panel-${panels[panelId].id}--header--icon--description`\"\n\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t:class=\"panels[panelId].iconClass\"\n\t\t\t\t\t\t\t\trole=\"img\" />\n\t\t\t\t\t\t\t{{ panels[panelId].title }}\n\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t<span :id=\"`panel-${panels[panelId].id}--header--icon--description`\" class=\"hidden-visually\"> {{ t('dashboard', '\"{title} icon\"', { title: panels[panelId].title }) }} </span>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"panel--content\" :class=\"{ loading: !panels[panelId].mounted }\">\n\t\t\t\t\t\t<div :ref=\"panels[panelId].id\" :data-id=\"panels[panelId].id\" />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t</Draggable>\n\n\t\t<div class=\"footer\">\n\t\t\t<NcButton @click=\"showModal\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Pencil :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t{{ t('dashboard', 'Customize') }}\n\t\t\t</NcButton>\n\t\t</div>\n\n\t\t<NcModal v-if=\"modal\" size=\"large\" @close=\"closeModal\">\n\t\t\t<div class=\"modal__content\">\n\t\t\t\t<h3>{{ t('dashboard', 'Edit widgets') }}</h3>\n\t\t\t\t<ol class=\"panels\">\n\t\t\t\t\t<li v-for=\"status in sortedAllStatuses\" :key=\"status\" :class=\"'panel-' + status\">\n\t\t\t\t\t\t<input :id=\"'status-checkbox-' + status\"\n\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\tclass=\"checkbox\"\n\t\t\t\t\t\t\t:checked=\"isStatusActive(status)\"\n\t\t\t\t\t\t\t@input=\"updateStatusCheckbox(status, $event.target.checked)\">\n\t\t\t\t\t\t<label :for=\"'status-checkbox-' + status\">\n\t\t\t\t\t\t\t<span :class=\"statusInfo[status].icon\" aria-hidden=\"true\" />\n\t\t\t\t\t\t\t{{ statusInfo[status].text }}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t</li>\n\t\t\t\t</ol>\n\t\t\t\t<Draggable v-model=\"layout\"\n\t\t\t\t\tclass=\"panels\"\n\t\t\t\t\ttag=\"ol\"\n\t\t\t\t\tv-bind=\"{swapThreshold: 0.30, delay: 500, delayOnTouchOnly: true, touchStartThreshold: 3}\"\n\t\t\t\t\thandle=\".draggable\"\n\t\t\t\t\t@end=\"saveLayout\">\n\t\t\t\t\t<li v-for=\"panel in sortedPanels\" :key=\"panel.id\" :class=\"'panel-' + panel.id\">\n\t\t\t\t\t\t<input :id=\"'panel-checkbox-' + panel.id\"\n\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\tclass=\"checkbox\"\n\t\t\t\t\t\t\t:checked=\"isActive(panel)\"\n\t\t\t\t\t\t\t@input=\"updateCheckbox(panel, $event.target.checked)\">\n\t\t\t\t\t\t<label :for=\"'panel-checkbox-' + panel.id\" :class=\"{ draggable: isActive(panel) }\">\n\t\t\t\t\t\t\t<span :class=\"panel.iconClass\" aria-hidden=\"true\" />\n\t\t\t\t\t\t\t{{ panel.title }}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t</li>\n\t\t\t\t</Draggable>\n\n\t\t\t\t<a v-if=\"isAdmin\" :href=\"appStoreUrl\" class=\"button\">{{ t('dashboard', 'Get more widgets from the App Store') }}</a>\n\n\t\t\t\t<div v-if=\"statuses.weather && isStatusActive('weather')\">\n\t\t\t\t\t<h3>{{ t('dashboard', 'Weather service') }}</h3>\n\t\t\t\t\t<p>\n\t\t\t\t\t\t{{ t('dashboard', 'For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information.') }}\n\t\t\t\t\t</p>\n\t\t\t\t\t<p class=\"credits--end\">\n\t\t\t\t\t\t<a href=\"https://api.met.no/doc/TermsOfService\" target=\"_blank\" rel=\"noopener\">{{ t('dashboard', 'Weather data from Met.no') }}</a>,\n\t\t\t\t\t\t<a href=\"https://wiki.osmfoundation.org/wiki/Privacy_Policy\" target=\"_blank\" rel=\"noopener\">{{ t('dashboard', 'geocoding with Nominatim') }}</a>,\n\t\t\t\t\t\t<a href=\"https://www.opentopodata.org/#public-api\" target=\"_blank\" rel=\"noopener\">{{ t('dashboard', 'elevation data from OpenTopoData') }}</a>.\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</NcModal>\n\t</div>\n</template>\n\n<script>\nimport { generateUrl, generateOcsUrl } from '@nextcloud/router'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { loadState } from '@nextcloud/initial-state'\nimport axios from '@nextcloud/axios'\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport Draggable from 'vuedraggable'\nimport NcModal from '@nextcloud/vue/dist/Components/NcModal.js'\nimport Pencil from 'vue-material-design-icons/Pencil.vue'\nimport Vue from 'vue'\n\nimport isMobile from './mixins/isMobile.js'\nimport ApiDashboardWidget from './components/ApiDashboardWidget.vue'\n\nconst panels = loadState('dashboard', 'panels')\nconst firstRun = loadState('dashboard', 'firstRun')\n\nconst statusInfo = {\n\tweather: {\n\t\ttext: t('dashboard', 'Weather'),\n\t\ticon: 'icon-weather-status',\n\t},\n\tstatus: {\n\t\ttext: t('dashboard', 'Status'),\n\t\ticon: 'icon-user-status-online',\n\t},\n}\n\nexport default {\n\tname: 'DashboardApp',\n\tcomponents: {\n\t\tApiDashboardWidget,\n\t\tNcButton,\n\t\tDraggable,\n\t\tNcModal,\n\t\tPencil,\n\t},\n\tmixins: [\n\t\tisMobile,\n\t],\n\n\tdata() {\n\t\treturn {\n\t\t\tisAdmin: getCurrentUser().isAdmin,\n\t\t\ttimer: new Date(),\n\t\t\tregisteredStatus: [],\n\t\t\tcallbacks: {},\n\t\t\tcallbacksStatus: {},\n\t\t\tallCallbacksStatus: {},\n\t\t\tstatusInfo,\n\t\t\tenabledStatuses: loadState('dashboard', 'statuses'),\n\t\t\tpanels,\n\t\t\tfirstRun,\n\t\t\tdisplayName: getCurrentUser()?.displayName,\n\t\t\tuid: getCurrentUser()?.uid,\n\t\t\tlayout: loadState('dashboard', 'layout').filter((panelId) => panels[panelId]),\n\t\t\tmodal: false,\n\t\t\tappStoreUrl: generateUrl('/settings/apps/dashboard'),\n\t\t\tstatuses: {},\n\t\t\tapiWidgets: [],\n\t\t\tapiWidgetItems: {},\n\t\t\tloadingItems: true,\n\t\t}\n\t},\n\tcomputed: {\n\t\tgreeting() {\n\t\t\tconst time = this.timer.getHours()\n\n\t\t\t// Determine part of the day\n\t\t\tlet partOfDay\n\t\t\tif (time >= 22 || time < 5) {\n\t\t\t\tpartOfDay = 'night'\n\t\t\t} else if (time >= 18) {\n\t\t\t\tpartOfDay = 'evening'\n\t\t\t} else if (time >= 12) {\n\t\t\t\tpartOfDay = 'afternoon'\n\t\t\t} else {\n\t\t\t\tpartOfDay = 'morning'\n\t\t\t}\n\n\t\t\t// Define the greetings\n\t\t\tconst good = {\n\t\t\t\tmorning: {\n\t\t\t\t\tgeneric: t('dashboard', 'Good morning'),\n\t\t\t\t\twithName: t('dashboard', 'Good morning, {name}', { name: this.displayName }, undefined, { escape: false }),\n\t\t\t\t},\n\t\t\t\tafternoon: {\n\t\t\t\t\tgeneric: t('dashboard', 'Good afternoon'),\n\t\t\t\t\twithName: t('dashboard', 'Good afternoon, {name}', { name: this.displayName }, undefined, { escape: false }),\n\t\t\t\t},\n\t\t\t\tevening: {\n\t\t\t\t\tgeneric: t('dashboard', 'Good evening'),\n\t\t\t\t\twithName: t('dashboard', 'Good evening, {name}', { name: this.displayName }, undefined, { escape: false }),\n\t\t\t\t},\n\t\t\t\tnight: {\n\t\t\t\t\t// Don't use \"Good night\" as it's not a greeting\n\t\t\t\t\tgeneric: t('dashboard', 'Hello'),\n\t\t\t\t\twithName: t('dashboard', 'Hello, {name}', { name: this.displayName }, undefined, { escape: false }),\n\t\t\t\t},\n\t\t\t}\n\n\t\t\t// Figure out which greeting to show\n\t\t\tconst shouldShowName = this.displayName && this.uid !== this.displayName\n\t\t\treturn { text: shouldShowName ? good[partOfDay].withName : good[partOfDay].generic }\n\t\t},\n\n\t\tisActive() {\n\t\t\treturn (panel) => this.layout.indexOf(panel.id) > -1\n\t\t},\n\t\tisStatusActive() {\n\t\t\treturn (status) => !(status in this.enabledStatuses) || this.enabledStatuses[status]\n\t\t},\n\n\t\tsortedAllStatuses() {\n\t\t\treturn Object.keys(this.allCallbacksStatus).slice().sort(this.sortStatuses)\n\t\t},\n\t\tsortedPanels() {\n\t\t\treturn Object.values(this.panels).sort((a, b) => {\n\t\t\t\tconst indexA = this.layout.indexOf(a.id)\n\t\t\t\tconst indexB = this.layout.indexOf(b.id)\n\t\t\t\tif (indexA === -1 || indexB === -1) {\n\t\t\t\t\treturn indexB - indexA || a.id - b.id\n\t\t\t\t}\n\t\t\t\treturn indexA - indexB || a.id - b.id\n\t\t\t})\n\t\t},\n\t\tsortedRegisteredStatus() {\n\t\t\treturn this.registeredStatus.slice().sort(this.sortStatuses)\n\t\t},\n\t},\n\n\twatch: {\n\t\tcallbacks() {\n\t\t\tthis.rerenderPanels()\n\t\t},\n\t\tcallbacksStatus() {\n\t\t\tfor (const app in this.callbacksStatus) {\n\t\t\t\tconst element = this.$refs['status-' + app]\n\t\t\t\tif (this.statuses[app] && this.statuses[app].mounted) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tif (element) {\n\t\t\t\t\tthis.callbacksStatus[app](element[0])\n\t\t\t\t\tVue.set(this.statuses, app, { mounted: true })\n\t\t\t\t} else {\n\t\t\t\t\tconsole.error('Failed to register panel in the frontend as no backend data was provided for ' + app)\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t},\n\n\tasync created() {\n\t\tawait this.fetchApiWidgets()\n\n\t\tconst apiWidgetIdsToFetch = Object\n\t\t\t.values(this.apiWidgets)\n\t\t\t.filter(widget => this.isApiWidgetV2(widget.id))\n\t\t\t.map(widget => widget.id)\n\t\tawait Promise.all(apiWidgetIdsToFetch.map(id => this.fetchApiWidgetItems([id], true)))\n\n\t\tfor (const widget of Object.values(this.apiWidgets)) {\n\t\t\tif (widget.reload_interval > 0) {\n\t\t\t\tsetInterval(async () => {\n\t\t\t\t\tawait this.fetchApiWidgetItems([widget.id], true)\n\t\t\t\t}, widget.reload_interval * 1000)\n\t\t\t}\n\t\t}\n\t},\n\tmounted() {\n\t\tthis.updateSkipLink()\n\t\twindow.addEventListener('scroll', this.handleScroll)\n\n\t\tsetInterval(() => {\n\t\t\tthis.timer = new Date()\n\t\t}, 30000)\n\n\t\tif (this.firstRun) {\n\t\t\twindow.addEventListener('scroll', this.disableFirstrunHint)\n\t\t}\n\t},\n\tdestroyed() {\n\t\twindow.removeEventListener('scroll', this.handleScroll)\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Method to register panels that will be called by the integrating apps\n\t\t *\n\t\t * @param {string} app The unique app id for the widget\n\t\t * @param {Function} callback The callback function to register a panel which gets the DOM element passed as parameter\n\t\t */\n\t\tregister(app, callback) {\n\t\t\tVue.set(this.callbacks, app, callback)\n\t\t},\n\t\tregisterStatus(app, callback) {\n\t\t\t// always save callbacks in case user enables the status later\n\t\t\tVue.set(this.allCallbacksStatus, app, callback)\n\t\t\t// register only if status is enabled or missing from config\n\t\t\tif (this.isStatusActive(app)) {\n\t\t\t\tthis.registeredStatus.push(app)\n\t\t\t\tthis.$nextTick(() => {\n\t\t\t\t\tVue.set(this.callbacksStatus, app, callback)\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\t\trerenderPanels() {\n\t\t\tfor (const app in this.callbacks) {\n\t\t\t\t// TODO: Properly rerender v2 widgets\n\t\t\t\tif (this.isApiWidgetV2(this.panels[app].id)) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tconst element = this.$refs[app]\n\t\t\t\tif (this.layout.indexOf(app) === -1) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tif (this.panels[app] && this.panels[app].mounted) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tif (element) {\n\t\t\t\t\tthis.callbacks[app](element[0], {\n\t\t\t\t\t\twidget: this.panels[app],\n\t\t\t\t\t})\n\t\t\t\t\tVue.set(this.panels[app], 'mounted', true)\n\t\t\t\t} else {\n\t\t\t\t\tconsole.error('Failed to register panel in the frontend as no backend data was provided for ' + app)\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tsaveLayout() {\n\t\t\taxios.post(generateUrl('/apps/dashboard/layout'), {\n\t\t\t\tlayout: this.layout.join(','),\n\t\t\t})\n\t\t},\n\t\tsaveStatuses() {\n\t\t\taxios.post(generateUrl('/apps/dashboard/statuses'), {\n\t\t\t\tstatuses: JSON.stringify(this.enabledStatuses),\n\t\t\t})\n\t\t},\n\t\tshowModal() {\n\t\t\tthis.modal = true\n\t\t\tthis.firstRun = false\n\t\t},\n\t\tcloseModal() {\n\t\t\tthis.modal = false\n\t\t},\n\t\tupdateCheckbox(panel, currentValue) {\n\t\t\tconst index = this.layout.indexOf(panel.id)\n\t\t\tif (!currentValue && index > -1) {\n\t\t\t\tthis.layout.splice(index, 1)\n\n\t\t\t} else {\n\t\t\t\tthis.layout.push(panel.id)\n\t\t\t}\n\t\t\tVue.set(this.panels[panel.id], 'mounted', false)\n\t\t\tthis.saveLayout()\n\t\t\tthis.$nextTick(() => this.rerenderPanels())\n\t\t},\n\t\tdisableFirstrunHint() {\n\t\t\twindow.removeEventListener('scroll', this.disableFirstrunHint)\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.firstRun = false\n\t\t\t}, 1000)\n\t\t},\n\t\tupdateSkipLink() {\n\t\t\t// Make sure \"Skip to main content\" link points to the app content\n\t\t\tdocument.getElementsByClassName('skip-navigation')[0].setAttribute('href', '#app-dashboard')\n\t\t},\n\t\tupdateStatusCheckbox(app, checked) {\n\t\t\tif (checked) {\n\t\t\t\tthis.enableStatus(app)\n\t\t\t} else {\n\t\t\t\tthis.disableStatus(app)\n\t\t\t}\n\t\t},\n\t\tenableStatus(app) {\n\t\t\tthis.enabledStatuses[app] = true\n\t\t\tthis.registerStatus(app, this.allCallbacksStatus[app])\n\t\t\tthis.saveStatuses()\n\t\t},\n\t\tdisableStatus(app) {\n\t\t\tthis.enabledStatuses[app] = false\n\t\t\tconst i = this.registeredStatus.findIndex((s) => s === app)\n\t\t\tif (i !== -1) {\n\t\t\t\tthis.registeredStatus.splice(i, 1)\n\t\t\t\tVue.set(this.statuses, app, { mounted: false })\n\t\t\t\tthis.$nextTick(() => {\n\t\t\t\t\tVue.delete(this.callbacksStatus, app)\n\t\t\t\t})\n\t\t\t}\n\t\t\tthis.saveStatuses()\n\t\t},\n\t\tsortStatuses(a, b) {\n\t\t\tconst al = a.toLowerCase()\n\t\t\tconst bl = b.toLowerCase()\n\t\t\treturn al > bl\n\t\t\t\t? 1\n\t\t\t\t: al < bl\n\t\t\t\t\t? -1\n\t\t\t\t\t: 0\n\t\t},\n\t\thandleScroll() {\n\t\t\tif (window.scrollY > 70) {\n\t\t\t\tdocument.body.classList.add('dashboard--scrolled')\n\t\t\t} else {\n\t\t\t\tdocument.body.classList.remove('dashboard--scrolled')\n\t\t\t}\n\t\t},\n\t\tasync fetchApiWidgets() {\n\t\t\tconst response = await axios.get(generateOcsUrl('/apps/dashboard/api/v1/widgets'))\n\t\t\tthis.apiWidgets = response.data.ocs.data\n\t\t},\n\t\tasync fetchApiWidgetItems(widgetIds, merge = false) {\n\t\t\ttry {\n\t\t\t\tconst url = generateOcsUrl('/apps/dashboard/api/v2/widget-items')\n\t\t\t\tconst params = new URLSearchParams(widgetIds.map(id => ['widgets[]', id]))\n\t\t\t\tconst response = await axios.get(`${url}?${params.toString()}`)\n\t\t\t\tconst widgetItems = response.data.ocs.data\n\t\t\t\tif (merge) {\n\t\t\t\t\tthis.apiWidgetItems = Object.assign({}, this.apiWidgetItems, widgetItems)\n\t\t\t\t} else {\n\t\t\t\t\tthis.apiWidgetItems = widgetItems\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tthis.loadingItems = false\n\t\t\t}\n\t\t},\n\t\tisApiWidgetV2(id) {\n\t\t\tfor (const widget of Object.values(this.apiWidgets)) {\n\t\t\t\tif (widget.id === id && widget.item_api_versions.includes(2)) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\t},\n}\n<\/script>\n\n<style lang=\"scss\" scoped>\n#app-dashboard {\n\twidth: 100%;\n\tmin-height: 100%;\n\tbackground-size: cover;\n\tbackground-position: center center;\n\tbackground-repeat: no-repeat;\n\tbackground-attachment: fixed;\n\n\t> h2 {\n\t\tcolor: var(--color-primary-element-text);\n\t\ttext-align: center;\n\t\tfont-size: 32px;\n\t\tline-height: 130%;\n\t\tpadding: 1rem 0;\n\t}\n}\n\n.panels {\n\twidth: auto;\n\tmargin: auto;\n\tmax-width: 1800px;\n\tdisplay: flex;\n\tjustify-content: center;\n\tflex-direction: row;\n\talign-items: flex-start;\n\tflex-wrap: wrap;\n}\n\n.panel, .panels > div {\n\twidth: 320px;\n\tmax-width: 100%;\n\tmargin: 16px;\n\talign-self: stretch;\n\tbackground-color: var(--color-main-background-blur);\n\t-webkit-backdrop-filter: var(--filter-background-blur);\n\tbackdrop-filter: var(--filter-background-blur);\n\tborder-radius: var(--border-radius-rounded);\n\n\t#body-user.theme--highcontrast & {\n\t\tborder: 2px solid var(--color-border);\n\t}\n\n\t&.sortable-ghost {\n\t\t opacity: 0.1;\n\t}\n\n\t& > .panel--header {\n\t\tdisplay: flex;\n\t\tz-index: 1;\n\t\ttop: 50px;\n\t\tpadding: 16px;\n\t\tcursor: grab;\n\n\t\t&, ::v-deep * {\n\t\t\t-webkit-touch-callout: none;\n\t\t\t-webkit-user-select: none;\n\t\t\t-khtml-user-select: none;\n\t\t\t-moz-user-select: none;\n\t\t\t-ms-user-select: none;\n\t\t\tuser-select: none;\n\t\t}\n\n\t\t&:active {\n\t\t\tcursor: grabbing;\n\t\t}\n\n\t\ta {\n\t\t\tflex-grow: 1;\n\t\t}\n\n\t\t> h2 {\n\t\t\tdisplay: block;\n\t\t\talign-items: center;\n\t\t\tflex-grow: 1;\n\t\t\tmargin: 0;\n\t\t\tfont-size: 20px;\n\t\t\tline-height: 24px;\n\t\t\tfont-weight: bold;\n\t\t\tpadding: 16px 8px;\n\t\t\theight: 56px;\n\t\t\twhite-space: nowrap;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\tcursor: grab;\n\t\t\tspan {\n\t\t\t\tbackground-size: 32px;\n\t\t\t\twidth: 32px;\n\t\t\t\theight: 32px;\n\t\t\t\tmargin-right: 16px;\n\t\t\t\tbackground-position: center;\n\t\t\t\tfloat: left;\n\t\t\t\tmargin-top: -6px;\n\t\t\t}\n\t\t}\n\t}\n\n\t& > .panel--content {\n\t\tmargin: 0 16px 16px 16px;\n\t\theight: 424px;\n\t\t// We specifically do not want scrollbars inside widgets\n\t\toverflow: visible;\n\t}\n\n\t// No need to extend height of widgets if only one column is shown\n\t@media only screen and (max-width: 709px) {\n\t\t& > .panel--content {\n\t\t\theight: auto;\n\t\t}\n\t}\n}\n\n.footer {\n\tdisplay: flex;\n\tjustify-content: center;\n\ttransition: bottom var(--animation-slow) ease-in-out;\n\tpadding: 1rem 0;\n}\n\n.edit-panels {\n\tdisplay: inline-block;\n\tmargin:auto;\n\tbackground-position: 16px center;\n\tpadding: 12px 16px;\n\tpadding-left: 36px;\n\tborder-radius: var(--border-radius-pill);\n\tmax-width: 200px;\n\topacity: 1;\n\ttext-align: center;\n}\n\n.button,\n.button-vue,\n.edit-panels,\n.statuses ::v-deep .action-item .action-item__menutoggle,\n.statuses ::v-deep .action-item.action-item--open .action-item__menutoggle {\n\tbackground-color: var(--color-main-background-blur);\n\t-webkit-backdrop-filter: var(--filter-background-blur);\n\tbackdrop-filter: var(--filter-background-blur);\n\topacity: 1 !important;\n\n\t&:hover,\n\t&:focus,\n\t&:active {\n\t\tbackground-color: var(--color-background-hover)!important;\n\t}\n\t&:focus-visible {\n\t\tbox-shadow: 0 0 0 4px var(--color-main-background) !important;\n\t\toutline: 2px solid var(--color-main-text) !important;\n\t}\n}\n\n.modal__content {\n\tpadding: 32px 16px;\n\ttext-align: center;\n\n\tol {\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t\tjustify-content: center;\n\t\tlist-style-type: none;\n\t\tpadding-bottom: 16px;\n\t}\n\tli {\n\t\tlabel {\n\t\t\tposition: relative;\n\t\t\tdisplay: block;\n\t\t\tpadding: 48px 16px 14px 16px;\n\t\t\tmargin: 8px;\n\t\t\twidth: 140px;\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t\tborder: 2px solid var(--color-main-background);\n\t\t\tborder-radius: var(--border-radius-large);\n\t\t\ttext-align: left;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\twhite-space: nowrap;\n\n\t\t\tspan {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 16px;\n\t\t\t\twidth: 24px;\n\t\t\t\theight: 24px;\n\t\t\t\tbackground-size: 24px;\n\t\t\t}\n\n\t\t\t&:hover {\n\t\t\t\tborder-color: var(--color-primary-element);\n\t\t\t}\n\t\t}\n\n\t\t// Do not invert status icons\n\t\t&:not(.panel-status) label span {\n\t\t\tfilter: var(--background-invert-if-dark);\n\t\t}\n\n\t\tinput[type='checkbox'].checkbox + label:before {\n\t\t\tposition: absolute;\n\t\t\tright: 12px;\n\t\t\ttop: 16px;\n\t\t}\n\n\t\tinput:focus + label {\n\t\t\tborder-color: var(--color-primary-element);\n\t\t}\n\t}\n\n\th3 {\n\t\tfont-weight: bold;\n\n\t\t&:not(:first-of-type) {\n\t\t\tmargin-top: 64px;\n\t\t}\n\t}\n\n\t// Adjust design of 'Get more widgets' button\n\t.button {\n\t\tdisplay: inline-block;\n\t\tpadding: 10px 16px;\n\t\tmargin: 0;\n\t}\n\n\tp {\n\t\tmax-width: 650px;\n\t\tmargin: 0 auto;\n\n\t\ta:hover,\n\t\ta:focus {\n\t\t\tborder-bottom: 2px solid var(--color-border);\n\t\t}\n\t}\n\n\t.credits--end {\n\t\tpadding-bottom: 32px;\n\t\tcolor: var(--color-text-maxcontrast);\n\n\t\ta {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\t}\n}\n\n.flip-list-move {\n\ttransition: transform var(--animation-slow);\n}\n\n.statuses {\n\tdisplay: flex;\n\tflex-direction: row;\n\tjustify-content: center;\n\tflex-wrap: wrap;\n\tmargin-bottom: 36px;\n\n\t& > li {\n\t\tmargin: 8px;\n\t}\n}\n</style>\n<style>\nhtml, body {\n\tbackground-attachment: fixed;\n}\n\n#body-user #header {\n\tposition: fixed;\n}\n\n#content {\n\toverflow: auto;\n}\n</style>\n"],sourceRoot:""}]);const s=r},31715:(t,e,n)=>{"use strict";function o(t){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o(t)}function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(){return i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o])}return t},i.apply(this,arguments)}function r(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{},o=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(n).filter((function(t){return Object.getOwnPropertyDescriptor(n,t).enumerable})))),o.forEach((function(e){a(t,e,n[e])}))}return t}function s(t){if("undefined"!=typeof window&&window.navigator)return!!navigator.userAgent.match(t)}n.r(e),n.d(e,{MultiDrag:()=>ve,Sortable:()=>Zt,Swap:()=>ie,default:()=>Ae});var l=s(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),c=s(/Edge/i),d=s(/firefox/i),u=s(/safari/i)&&!s(/chrome/i)&&!s(/android/i),p=s(/iP(ad|od|hone)/i),h=s(/chrome/i)&&s(/android/i),f={capture:!1,passive:!1};function g(t,e,n){t.addEventListener(e,n,!l&&f)}function v(t,e,n){t.removeEventListener(e,n,!l&&f)}function m(t,e){if(e){if(">"===e[0]&&(e=e.substring(1)),t)try{if(t.matches)return t.matches(e);if(t.msMatchesSelector)return t.msMatchesSelector(e);if(t.webkitMatchesSelector)return t.webkitMatchesSelector(e)}catch(t){return!1}return!1}}function b(t){return t.host&&t!==document&&t.host.nodeType?t.host:t.parentNode}function A(t,e,n,o){if(t){n=n||document;do{if(null!=e&&(">"===e[0]?t.parentNode===n&&m(t,e):m(t,e))||o&&t===n)return t;if(t===n)break}while(t=b(t))}return null}var y,x=/\s+/g;function C(t,e,n){if(t&&e)if(t.classList)t.classList[n?"add":"remove"](e);else{var o=(" "+t.className+" ").replace(x," ").replace(" "+e+" "," ");t.className=(o+(n?" "+e:"")).replace(x," ")}}function w(t,e,n){var o=t&&t.style;if(o){if(void 0===n)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(t,""):t.currentStyle&&(n=t.currentStyle),void 0===e?n:n[e];e in o||-1!==e.indexOf("webkit")||(e="-webkit-"+e),o[e]=n+("string"==typeof n?"":"px")}}function S(t,e){var n="";if("string"==typeof t)n=t;else do{var o=w(t,"transform");o&&"none"!==o&&(n=o+" "+n)}while(!e&&(t=t.parentNode));var a=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return a&&new a(n)}function _(t,e,n){if(t){var o=t.getElementsByTagName(e),a=0,i=o.length;if(n)for(;a<i;a++)n(o[a],a);return o}return[]}function k(){return document.scrollingElement||document.documentElement}function D(t,e,n,o,a){if(t.getBoundingClientRect||t===window){var i,r,s,c,d,u,p;if(t!==window&&t!==k()?(r=(i=t.getBoundingClientRect()).top,s=i.left,c=i.bottom,d=i.right,u=i.height,p=i.width):(r=0,s=0,c=window.innerHeight,d=window.innerWidth,u=window.innerHeight,p=window.innerWidth),(e||n)&&t!==window&&(a=a||t.parentNode,!l))do{if(a&&a.getBoundingClientRect&&("none"!==w(a,"transform")||n&&"static"!==w(a,"position"))){var h=a.getBoundingClientRect();r-=h.top+parseInt(w(a,"border-top-width")),s-=h.left+parseInt(w(a,"border-left-width")),c=r+i.height,d=s+i.width;break}}while(a=a.parentNode);if(o&&t!==window){var f=S(a||t),g=f&&f.a,v=f&&f.d;f&&(c=(r/=v)+(u/=v),d=(s/=g)+(p/=g))}return{top:r,left:s,bottom:c,right:d,width:p,height:u}}}function I(t,e,n){for(var o=T(t,!0),a=D(t)[e];o;){var i=D(o)[n];if(!("top"===n||"left"===n?a>=i:a<=i))return o;if(o===k())break;o=T(o,!1)}return!1}function E(t,e,n){for(var o=0,a=0,i=t.children;a<i.length;){if("none"!==i[a].style.display&&i[a]!==Zt.ghost&&i[a]!==Zt.dragged&&A(i[a],n.draggable,t,!1)){if(o===e)return i[a];o++}a++}return null}function O(t,e){for(var n=t.lastElementChild;n&&(n===Zt.ghost||"none"===w(n,"display")||e&&!m(n,e));)n=n.previousElementSibling;return n||null}function M(t,e){var n=0;if(!t||!t.parentNode)return-1;for(;t=t.previousElementSibling;)"TEMPLATE"===t.nodeName.toUpperCase()||t===Zt.clone||e&&!m(t,e)||n++;return n}function N(t){var e=0,n=0,o=k();if(t)do{var a=S(t),i=a.a,r=a.d;e+=t.scrollLeft*i,n+=t.scrollTop*r}while(t!==o&&(t=t.parentNode));return[e,n]}function T(t,e){if(!t||!t.getBoundingClientRect)return k();var n=t,o=!1;do{if(n.clientWidth<n.scrollWidth||n.clientHeight<n.scrollHeight){var a=w(n);if(n.clientWidth<n.scrollWidth&&("auto"==a.overflowX||"scroll"==a.overflowX)||n.clientHeight<n.scrollHeight&&("auto"==a.overflowY||"scroll"==a.overflowY)){if(!n.getBoundingClientRect||n===document.body)return k();if(o||e)return n;o=!0}}}while(n=n.parentNode);return k()}function j(t,e){return Math.round(t.top)===Math.round(e.top)&&Math.round(t.left)===Math.round(e.left)&&Math.round(t.height)===Math.round(e.height)&&Math.round(t.width)===Math.round(e.width)}function L(t,e){return function(){if(!y){var n=arguments;1===n.length?t.call(this,n[0]):t.apply(this,n),y=setTimeout((function(){y=void 0}),e)}}}function P(t,e,n){t.scrollLeft+=e,t.scrollTop+=n}function Z(t){var e=window.Polymer,n=window.jQuery||window.Zepto;return e&&e.dom?e.dom(t).cloneNode(!0):n?n(t).clone(!0)[0]:t.cloneNode(!0)}function B(t,e){w(t,"position","absolute"),w(t,"top",e.top),w(t,"left",e.left),w(t,"width",e.width),w(t,"height",e.height)}function W(t){w(t,"position",""),w(t,"top",""),w(t,"left",""),w(t,"width",""),w(t,"height","")}var R="Sortable"+(new Date).getTime();var F=[],z={initializeByDefault:!0},H={mount:function(t){for(var e in z)z.hasOwnProperty(e)&&!(e in t)&&(t[e]=z[e]);F.push(t)},pluginEvent:function(t,e,n){var o=this;this.eventCanceled=!1,n.cancel=function(){o.eventCanceled=!0};var a=t+"Global";F.forEach((function(o){e[o.pluginName]&&(e[o.pluginName][a]&&e[o.pluginName][a](r({sortable:e},n)),e.options[o.pluginName]&&e[o.pluginName][t]&&e[o.pluginName][t](r({sortable:e},n)))}))},initializePlugins:function(t,e,n,o){for(var a in F.forEach((function(o){var a=o.pluginName;if(t.options[a]||o.initializeByDefault){var r=new o(t,e,t.options);r.sortable=t,r.options=t.options,t[a]=r,i(n,r.defaults)}})),t.options)if(t.options.hasOwnProperty(a)){var r=this.modifyOption(t,a,t.options[a]);void 0!==r&&(t.options[a]=r)}},getEventProperties:function(t,e){var n={};return F.forEach((function(o){"function"==typeof o.eventProperties&&i(n,o.eventProperties.call(e[o.pluginName],t))})),n},modifyOption:function(t,e,n){var o;return F.forEach((function(a){t[a.pluginName]&&a.optionListeners&&"function"==typeof a.optionListeners[e]&&(o=a.optionListeners[e].call(t[a.pluginName],n))})),o}};function G(t){var e=t.sortable,n=t.rootEl,o=t.name,a=t.targetEl,i=t.cloneEl,s=t.toEl,d=t.fromEl,u=t.oldIndex,p=t.newIndex,h=t.oldDraggableIndex,f=t.newDraggableIndex,g=t.originalEvent,v=t.putSortable,m=t.extraEventProperties;if(e=e||n&&n[R]){var b,A=e.options,y="on"+o.charAt(0).toUpperCase()+o.substr(1);!window.CustomEvent||l||c?(b=document.createEvent("Event")).initEvent(o,!0,!0):b=new CustomEvent(o,{bubbles:!0,cancelable:!0}),b.to=s||n,b.from=d||n,b.item=a||n,b.clone=i,b.oldIndex=u,b.newIndex=p,b.oldDraggableIndex=h,b.newDraggableIndex=f,b.originalEvent=g,b.pullMode=v?v.lastPutMode:void 0;var x=r({},m,H.getEventProperties(o,e));for(var C in x)b[C]=x[C];n&&n.dispatchEvent(b),A[y]&&A[y].call(e,b)}}var Y=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=n.evt,a=function(t,e){if(null==t)return{};var n,o,a=function(t,e){if(null==t)return{};var n,o,a={},i=Object.keys(t);for(o=0;o<i.length;o++)n=i[o],e.indexOf(n)>=0||(a[n]=t[n]);return a}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(o=0;o<i.length;o++)n=i[o],e.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(a[n]=t[n])}return a}(n,["evt"]);H.pluginEvent.bind(Zt)(t,e,r({dragEl:$,parentEl:V,ghostEl:X,rootEl:Q,nextEl:K,lastDownEl:q,cloneEl:J,cloneHidden:tt,dragStarted:ht,putSortable:rt,activeSortable:Zt.active,originalEvent:o,oldIndex:et,oldDraggableIndex:ot,newIndex:nt,newDraggableIndex:at,hideGhostForTarget:Tt,unhideGhostForTarget:jt,cloneNowHidden:function(){tt=!0},cloneNowShown:function(){tt=!1},dispatchSortableEvent:function(t){U({sortable:e,name:t,originalEvent:o})}},a))};function U(t){G(r({putSortable:rt,cloneEl:J,targetEl:$,rootEl:Q,oldIndex:et,oldDraggableIndex:ot,newIndex:nt,newDraggableIndex:at},t))}var $,V,X,Q,K,q,J,tt,et,nt,ot,at,it,rt,st,lt,ct,dt,ut,pt,ht,ft,gt,vt,mt,bt=!1,At=!1,yt=[],xt=!1,Ct=!1,wt=[],St=!1,_t=[],kt="undefined"!=typeof document,Dt=p,It=c||l?"cssFloat":"float",Et=kt&&!h&&!p&&"draggable"in document.createElement("div"),Ot=function(){if(kt){if(l)return!1;var t=document.createElement("x");return t.style.cssText="pointer-events:auto","auto"===t.style.pointerEvents}}(),Mt=function(t,e){var n=w(t),o=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),a=E(t,0,e),i=E(t,1,e),r=a&&w(a),s=i&&w(i),l=r&&parseInt(r.marginLeft)+parseInt(r.marginRight)+D(a).width,c=s&&parseInt(s.marginLeft)+parseInt(s.marginRight)+D(i).width;if("flex"===n.display)return"column"===n.flexDirection||"column-reverse"===n.flexDirection?"vertical":"horizontal";if("grid"===n.display)return n.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(a&&r.float&&"none"!==r.float){var d="left"===r.float?"left":"right";return!i||"both"!==s.clear&&s.clear!==d?"horizontal":"vertical"}return a&&("block"===r.display||"flex"===r.display||"table"===r.display||"grid"===r.display||l>=o&&"none"===n[It]||i&&"none"===n[It]&&l+c>o)?"vertical":"horizontal"},Nt=function(t){function e(t,n){return function(o,a,i,r){var s=o.options.group.name&&a.options.group.name&&o.options.group.name===a.options.group.name;if(null==t&&(n||s))return!0;if(null==t||!1===t)return!1;if(n&&"clone"===t)return t;if("function"==typeof t)return e(t(o,a,i,r),n)(o,a,i,r);var l=(n?o:a).options.group.name;return!0===t||"string"==typeof t&&t===l||t.join&&t.indexOf(l)>-1}}var n={},a=t.group;a&&"object"==o(a)||(a={name:a}),n.name=a.name,n.checkPull=e(a.pull,!0),n.checkPut=e(a.put),n.revertClone=a.revertClone,t.group=n},Tt=function(){!Ot&&X&&w(X,"display","none")},jt=function(){!Ot&&X&&w(X,"display","")};kt&&document.addEventListener("click",(function(t){if(At)return t.preventDefault(),t.stopPropagation&&t.stopPropagation(),t.stopImmediatePropagation&&t.stopImmediatePropagation(),At=!1,!1}),!0);var Lt=function(t){if($){t=t.touches?t.touches[0]:t;var e=(a=t.clientX,i=t.clientY,yt.some((function(t){if(!O(t)){var e=D(t),n=t[R].options.emptyInsertThreshold,o=a>=e.left-n&&a<=e.right+n,s=i>=e.top-n&&i<=e.bottom+n;return n&&o&&s?r=t:void 0}})),r);if(e){var n={};for(var o in t)t.hasOwnProperty(o)&&(n[o]=t[o]);n.target=n.rootEl=e,n.preventDefault=void 0,n.stopPropagation=void 0,e[R]._onDragOver(n)}}var a,i,r},Pt=function(t){$&&$.parentNode[R]._isOutsideThisEl(t.target)};function Zt(t,e){if(!t||!t.nodeType||1!==t.nodeType)throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(t));this.el=t,this.options=e=i({},e),t[R]=this;var n,o,a={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(t.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return Mt(t,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(t,e){t.setData("Text",e.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:!1!==Zt.supportPointer&&"PointerEvent"in window,emptyInsertThreshold:5};for(var s in H.initializePlugins(this,t,a),a)!(s in e)&&(e[s]=a[s]);for(var l in Nt(e),this)"_"===l.charAt(0)&&"function"==typeof this[l]&&(this[l]=this[l].bind(this));this.nativeDraggable=!e.forceFallback&&Et,this.nativeDraggable&&(this.options.touchStartThreshold=1),e.supportPointer?g(t,"pointerdown",this._onTapStart):(g(t,"mousedown",this._onTapStart),g(t,"touchstart",this._onTapStart)),this.nativeDraggable&&(g(t,"dragover",this),g(t,"dragenter",this)),yt.push(this.el),e.store&&e.store.get&&this.sort(e.store.get(this)||[]),i(this,(o=[],{captureAnimationState:function(){o=[],this.options.animation&&[].slice.call(this.el.children).forEach((function(t){if("none"!==w(t,"display")&&t!==Zt.ghost){o.push({target:t,rect:D(t)});var e=r({},o[o.length-1].rect);if(t.thisAnimationDuration){var n=S(t,!0);n&&(e.top-=n.f,e.left-=n.e)}t.fromRect=e}}))},addAnimationState:function(t){o.push(t)},removeAnimationState:function(t){o.splice(function(t,e){for(var n in t)if(t.hasOwnProperty(n))for(var o in e)if(e.hasOwnProperty(o)&&e[o]===t[n][o])return Number(n);return-1}(o,{target:t}),1)},animateAll:function(t){var e=this;if(!this.options.animation)return clearTimeout(n),void("function"==typeof t&&t());var a=!1,i=0;o.forEach((function(t){var n=0,o=t.target,r=o.fromRect,s=D(o),l=o.prevFromRect,c=o.prevToRect,d=t.rect,u=S(o,!0);u&&(s.top-=u.f,s.left-=u.e),o.toRect=s,o.thisAnimationDuration&&j(l,s)&&!j(r,s)&&(d.top-s.top)/(d.left-s.left)==(r.top-s.top)/(r.left-s.left)&&(n=function(t,e,n,o){return Math.sqrt(Math.pow(e.top-t.top,2)+Math.pow(e.left-t.left,2))/Math.sqrt(Math.pow(e.top-n.top,2)+Math.pow(e.left-n.left,2))*o.animation}(d,l,c,e.options)),j(s,r)||(o.prevFromRect=r,o.prevToRect=s,n||(n=e.options.animation),e.animate(o,d,s,n)),n&&(a=!0,i=Math.max(i,n),clearTimeout(o.animationResetTimer),o.animationResetTimer=setTimeout((function(){o.animationTime=0,o.prevFromRect=null,o.fromRect=null,o.prevToRect=null,o.thisAnimationDuration=null}),n),o.thisAnimationDuration=n)})),clearTimeout(n),a?n=setTimeout((function(){"function"==typeof t&&t()}),i):"function"==typeof t&&t(),o=[]},animate:function(t,e,n,o){if(o){w(t,"transition",""),w(t,"transform","");var a=S(this.el),i=a&&a.a,r=a&&a.d,s=(e.left-n.left)/(i||1),l=(e.top-n.top)/(r||1);t.animatingX=!!s,t.animatingY=!!l,w(t,"transform","translate3d("+s+"px,"+l+"px,0)"),function(t){t.offsetWidth}(t),w(t,"transition","transform "+o+"ms"+(this.options.easing?" "+this.options.easing:"")),w(t,"transform","translate3d(0,0,0)"),"number"==typeof t.animated&&clearTimeout(t.animated),t.animated=setTimeout((function(){w(t,"transition",""),w(t,"transform",""),t.animated=!1,t.animatingX=!1,t.animatingY=!1}),o)}}}))}function Bt(t,e,n,o,a,i,r,s){var d,u,p=t[R],h=p.options.onMove;return!window.CustomEvent||l||c?(d=document.createEvent("Event")).initEvent("move",!0,!0):d=new CustomEvent("move",{bubbles:!0,cancelable:!0}),d.to=e,d.from=t,d.dragged=n,d.draggedRect=o,d.related=a||e,d.relatedRect=i||D(e),d.willInsertAfter=s,d.originalEvent=r,t.dispatchEvent(d),h&&(u=h.call(p,d,r)),u}function Wt(t){t.draggable=!1}function Rt(){St=!1}function Ft(t){for(var e=t.tagName+t.className+t.src+t.href+t.textContent,n=e.length,o=0;n--;)o+=e.charCodeAt(n);return o.toString(36)}function zt(t){return setTimeout(t,0)}function Ht(t){return clearTimeout(t)}Zt.prototype={constructor:Zt,_isOutsideThisEl:function(t){this.el.contains(t)||t===this.el||(ft=null)},_getDirection:function(t,e){return"function"==typeof this.options.direction?this.options.direction.call(this,t,e,$):this.options.direction},_onTapStart:function(t){if(t.cancelable){var e=this,n=this.el,o=this.options,a=o.preventOnFilter,i=t.type,r=t.touches&&t.touches[0]||t.pointerType&&"touch"===t.pointerType&&t,s=(r||t).target,l=t.target.shadowRoot&&(t.path&&t.path[0]||t.composedPath&&t.composedPath()[0])||s,c=o.filter;if(function(t){_t.length=0;for(var e=t.getElementsByTagName("input"),n=e.length;n--;){var o=e[n];o.checked&&_t.push(o)}}(n),!$&&!(/mousedown|pointerdown/.test(i)&&0!==t.button||o.disabled||l.isContentEditable||(s=A(s,o.draggable,n,!1))&&s.animated||q===s)){if(et=M(s),ot=M(s,o.draggable),"function"==typeof c){if(c.call(this,t,s,this))return U({sortable:e,rootEl:l,name:"filter",targetEl:s,toEl:n,fromEl:n}),Y("filter",e,{evt:t}),void(a&&t.cancelable&&t.preventDefault())}else if(c&&(c=c.split(",").some((function(o){if(o=A(l,o.trim(),n,!1))return U({sortable:e,rootEl:o,name:"filter",targetEl:s,fromEl:n,toEl:n}),Y("filter",e,{evt:t}),!0}))))return void(a&&t.cancelable&&t.preventDefault());o.handle&&!A(l,o.handle,n,!1)||this._prepareDragStart(t,r,s)}}},_prepareDragStart:function(t,e,n){var o,a=this,i=a.el,r=a.options,s=i.ownerDocument;if(n&&!$&&n.parentNode===i){var u=D(n);if(Q=i,V=($=n).parentNode,K=$.nextSibling,q=n,it=r.group,Zt.dragged=$,st={target:$,clientX:(e||t).clientX,clientY:(e||t).clientY},ut=st.clientX-u.left,pt=st.clientY-u.top,this._lastX=(e||t).clientX,this._lastY=(e||t).clientY,$.style["will-change"]="all",o=function(){Y("delayEnded",a,{evt:t}),Zt.eventCanceled?a._onDrop():(a._disableDelayedDragEvents(),!d&&a.nativeDraggable&&($.draggable=!0),a._triggerDragStart(t,e),U({sortable:a,name:"choose",originalEvent:t}),C($,r.chosenClass,!0))},r.ignore.split(",").forEach((function(t){_($,t.trim(),Wt)})),g(s,"dragover",Lt),g(s,"mousemove",Lt),g(s,"touchmove",Lt),g(s,"mouseup",a._onDrop),g(s,"touchend",a._onDrop),g(s,"touchcancel",a._onDrop),d&&this.nativeDraggable&&(this.options.touchStartThreshold=4,$.draggable=!0),Y("delayStart",this,{evt:t}),!r.delay||r.delayOnTouchOnly&&!e||this.nativeDraggable&&(c||l))o();else{if(Zt.eventCanceled)return void this._onDrop();g(s,"mouseup",a._disableDelayedDrag),g(s,"touchend",a._disableDelayedDrag),g(s,"touchcancel",a._disableDelayedDrag),g(s,"mousemove",a._delayedDragTouchMoveHandler),g(s,"touchmove",a._delayedDragTouchMoveHandler),r.supportPointer&&g(s,"pointermove",a._delayedDragTouchMoveHandler),a._dragStartTimer=setTimeout(o,r.delay)}}},_delayedDragTouchMoveHandler:function(t){var e=t.touches?t.touches[0]:t;Math.max(Math.abs(e.clientX-this._lastX),Math.abs(e.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){$&&Wt($),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var t=this.el.ownerDocument;v(t,"mouseup",this._disableDelayedDrag),v(t,"touchend",this._disableDelayedDrag),v(t,"touchcancel",this._disableDelayedDrag),v(t,"mousemove",this._delayedDragTouchMoveHandler),v(t,"touchmove",this._delayedDragTouchMoveHandler),v(t,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(t,e){e=e||"touch"==t.pointerType&&t,!this.nativeDraggable||e?this.options.supportPointer?g(document,"pointermove",this._onTouchMove):g(document,e?"touchmove":"mousemove",this._onTouchMove):(g($,"dragend",this),g(Q,"dragstart",this._onDragStart));try{document.selection?zt((function(){document.selection.empty()})):window.getSelection().removeAllRanges()}catch(t){}},_dragStarted:function(t,e){if(bt=!1,Q&&$){Y("dragStarted",this,{evt:e}),this.nativeDraggable&&g(document,"dragover",Pt);var n=this.options;!t&&C($,n.dragClass,!1),C($,n.ghostClass,!0),Zt.active=this,t&&this._appendGhost(),U({sortable:this,name:"start",originalEvent:e})}else this._nulling()},_emulateDragOver:function(){if(lt){this._lastX=lt.clientX,this._lastY=lt.clientY,Tt();for(var t=document.elementFromPoint(lt.clientX,lt.clientY),e=t;t&&t.shadowRoot&&(t=t.shadowRoot.elementFromPoint(lt.clientX,lt.clientY))!==e;)e=t;if($.parentNode[R]._isOutsideThisEl(t),e)do{if(e[R]&&e[R]._onDragOver({clientX:lt.clientX,clientY:lt.clientY,target:t,rootEl:e})&&!this.options.dragoverBubble)break;t=e}while(e=e.parentNode);jt()}},_onTouchMove:function(t){if(st){var e=this.options,n=e.fallbackTolerance,o=e.fallbackOffset,a=t.touches?t.touches[0]:t,i=X&&S(X,!0),r=X&&i&&i.a,s=X&&i&&i.d,l=Dt&&mt&&N(mt),c=(a.clientX-st.clientX+o.x)/(r||1)+(l?l[0]-wt[0]:0)/(r||1),d=(a.clientY-st.clientY+o.y)/(s||1)+(l?l[1]-wt[1]:0)/(s||1);if(!Zt.active&&!bt){if(n&&Math.max(Math.abs(a.clientX-this._lastX),Math.abs(a.clientY-this._lastY))<n)return;this._onDragStart(t,!0)}if(X){i?(i.e+=c-(ct||0),i.f+=d-(dt||0)):i={a:1,b:0,c:0,d:1,e:c,f:d};var u="matrix(".concat(i.a,",").concat(i.b,",").concat(i.c,",").concat(i.d,",").concat(i.e,",").concat(i.f,")");w(X,"webkitTransform",u),w(X,"mozTransform",u),w(X,"msTransform",u),w(X,"transform",u),ct=c,dt=d,lt=a}t.cancelable&&t.preventDefault()}},_appendGhost:function(){if(!X){var t=this.options.fallbackOnBody?document.body:Q,e=D($,!0,Dt,!0,t),n=this.options;if(Dt){for(mt=t;"static"===w(mt,"position")&&"none"===w(mt,"transform")&&mt!==document;)mt=mt.parentNode;mt!==document.body&&mt!==document.documentElement?(mt===document&&(mt=k()),e.top+=mt.scrollTop,e.left+=mt.scrollLeft):mt=k(),wt=N(mt)}C(X=$.cloneNode(!0),n.ghostClass,!1),C(X,n.fallbackClass,!0),C(X,n.dragClass,!0),w(X,"transition",""),w(X,"transform",""),w(X,"box-sizing","border-box"),w(X,"margin",0),w(X,"top",e.top),w(X,"left",e.left),w(X,"width",e.width),w(X,"height",e.height),w(X,"opacity","0.8"),w(X,"position",Dt?"absolute":"fixed"),w(X,"zIndex","100000"),w(X,"pointerEvents","none"),Zt.ghost=X,t.appendChild(X),w(X,"transform-origin",ut/parseInt(X.style.width)*100+"% "+pt/parseInt(X.style.height)*100+"%")}},_onDragStart:function(t,e){var n=this,o=t.dataTransfer,a=n.options;Y("dragStart",this,{evt:t}),Zt.eventCanceled?this._onDrop():(Y("setupClone",this),Zt.eventCanceled||((J=Z($)).draggable=!1,J.style["will-change"]="",this._hideClone(),C(J,this.options.chosenClass,!1),Zt.clone=J),n.cloneId=zt((function(){Y("clone",n),Zt.eventCanceled||(n.options.removeCloneOnHide||Q.insertBefore(J,$),n._hideClone(),U({sortable:n,name:"clone"}))})),!e&&C($,a.dragClass,!0),e?(At=!0,n._loopId=setInterval(n._emulateDragOver,50)):(v(document,"mouseup",n._onDrop),v(document,"touchend",n._onDrop),v(document,"touchcancel",n._onDrop),o&&(o.effectAllowed="move",a.setData&&a.setData.call(n,o,$)),g(document,"drop",n),w($,"transform","translateZ(0)")),bt=!0,n._dragStartId=zt(n._dragStarted.bind(n,e,t)),g(document,"selectstart",n),ht=!0,u&&w(document.body,"user-select","none"))},_onDragOver:function(t){var e,n,o,a,i=this.el,s=t.target,l=this.options,c=l.group,d=Zt.active,u=it===c,p=l.sort,h=rt||d,f=this,g=!1;if(!St){if(void 0!==t.preventDefault&&t.cancelable&&t.preventDefault(),s=A(s,l.draggable,i,!0),Z("dragOver"),Zt.eventCanceled)return g;if($.contains(t.target)||s.animated&&s.animatingX&&s.animatingY||f._ignoreWhileAnimating===s)return W(!1);if(At=!1,d&&!l.disabled&&(u?p||(o=!Q.contains($)):rt===this||(this.lastPutMode=it.checkPull(this,d,$,t))&&c.checkPut(this,d,$,t))){if(a="vertical"===this._getDirection(t,s),e=D($),Z("dragOverValid"),Zt.eventCanceled)return g;if(o)return V=Q,B(),this._hideClone(),Z("revert"),Zt.eventCanceled||(K?Q.insertBefore($,K):Q.appendChild($)),W(!0);var v=O(i,l.draggable);if(!v||function(t,e,n){var o=D(O(n.el,n.options.draggable));return e?t.clientX>o.right+10||t.clientX<=o.right&&t.clientY>o.bottom&&t.clientX>=o.left:t.clientX>o.right&&t.clientY>o.top||t.clientX<=o.right&&t.clientY>o.bottom+10}(t,a,this)&&!v.animated){if(v===$)return W(!1);if(v&&i===t.target&&(s=v),s&&(n=D(s)),!1!==Bt(Q,i,$,e,s,n,t,!!s))return B(),i.appendChild($),V=i,F(),W(!0)}else if(s.parentNode===i){n=D(s);var m,b,y,x=$.parentNode!==i,S=!function(t,e,n){var o=n?t.left:t.top,a=n?t.right:t.bottom,i=n?t.width:t.height,r=n?e.left:e.top,s=n?e.right:e.bottom,l=n?e.width:e.height;return o===r||a===s||o+i/2===r+l/2}($.animated&&$.toRect||e,s.animated&&s.toRect||n,a),_=a?"top":"left",k=I(s,"top","top")||I($,"top","top"),E=k?k.scrollTop:void 0;if(ft!==s&&(b=n[_],xt=!1,Ct=!S&&l.invertSwap||x),m=function(t,e,n,o,a,i,r,s){var l=o?t.clientY:t.clientX,c=o?n.height:n.width,d=o?n.top:n.left,u=o?n.bottom:n.right,p=!1;if(!r)if(s&&vt<c*a){if(!xt&&(1===gt?l>d+c*i/2:l<u-c*i/2)&&(xt=!0),xt)p=!0;else if(1===gt?l<d+vt:l>u-vt)return-gt}else if(l>d+c*(1-a)/2&&l<u-c*(1-a)/2)return function(t){return M($)<M(t)?1:-1}(e);return(p=p||r)&&(l<d+c*i/2||l>u-c*i/2)?l>d+c/2?1:-1:0}(t,s,n,a,S?1:l.swapThreshold,null==l.invertedSwapThreshold?l.swapThreshold:l.invertedSwapThreshold,Ct,ft===s),0!==m){var N=M($);do{N-=m,y=V.children[N]}while(y&&("none"===w(y,"display")||y===X))}if(0===m||y===s)return W(!1);ft=s,gt=m;var T=s.nextElementSibling,j=!1,L=Bt(Q,i,$,e,s,n,t,j=1===m);if(!1!==L)return 1!==L&&-1!==L||(j=1===L),St=!0,setTimeout(Rt,30),B(),j&&!T?i.appendChild($):s.parentNode.insertBefore($,j?T:s),k&&P(k,0,E-k.scrollTop),V=$.parentNode,void 0===b||Ct||(vt=Math.abs(b-D(s)[_])),F(),W(!0)}if(i.contains($))return W(!1)}return!1}function Z(l,c){Y(l,f,r({evt:t,isOwner:u,axis:a?"vertical":"horizontal",revert:o,dragRect:e,targetRect:n,canSort:p,fromSortable:h,target:s,completed:W,onMove:function(n,o){return Bt(Q,i,$,e,n,D(n),t,o)},changed:F},c))}function B(){Z("dragOverAnimationCapture"),f.captureAnimationState(),f!==h&&h.captureAnimationState()}function W(e){return Z("dragOverCompleted",{insertion:e}),e&&(u?d._hideClone():d._showClone(f),f!==h&&(C($,rt?rt.options.ghostClass:d.options.ghostClass,!1),C($,l.ghostClass,!0)),rt!==f&&f!==Zt.active?rt=f:f===Zt.active&&rt&&(rt=null),h===f&&(f._ignoreWhileAnimating=s),f.animateAll((function(){Z("dragOverAnimationComplete"),f._ignoreWhileAnimating=null})),f!==h&&(h.animateAll(),h._ignoreWhileAnimating=null)),(s===$&&!$.animated||s===i&&!s.animated)&&(ft=null),l.dragoverBubble||t.rootEl||s===document||($.parentNode[R]._isOutsideThisEl(t.target),!e&&Lt(t)),!l.dragoverBubble&&t.stopPropagation&&t.stopPropagation(),g=!0}function F(){nt=M($),at=M($,l.draggable),U({sortable:f,name:"change",toEl:i,newIndex:nt,newDraggableIndex:at,originalEvent:t})}},_ignoreWhileAnimating:null,_offMoveEvents:function(){v(document,"mousemove",this._onTouchMove),v(document,"touchmove",this._onTouchMove),v(document,"pointermove",this._onTouchMove),v(document,"dragover",Lt),v(document,"mousemove",Lt),v(document,"touchmove",Lt)},_offUpEvents:function(){var t=this.el.ownerDocument;v(t,"mouseup",this._onDrop),v(t,"touchend",this._onDrop),v(t,"pointerup",this._onDrop),v(t,"touchcancel",this._onDrop),v(document,"selectstart",this)},_onDrop:function(t){var e=this.el,n=this.options;nt=M($),at=M($,n.draggable),Y("drop",this,{evt:t}),V=$&&$.parentNode,nt=M($),at=M($,n.draggable),Zt.eventCanceled||(bt=!1,Ct=!1,xt=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),Ht(this.cloneId),Ht(this._dragStartId),this.nativeDraggable&&(v(document,"drop",this),v(e,"dragstart",this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),u&&w(document.body,"user-select",""),w($,"transform",""),t&&(ht&&(t.cancelable&&t.preventDefault(),!n.dropBubble&&t.stopPropagation()),X&&X.parentNode&&X.parentNode.removeChild(X),(Q===V||rt&&"clone"!==rt.lastPutMode)&&J&&J.parentNode&&J.parentNode.removeChild(J),$&&(this.nativeDraggable&&v($,"dragend",this),Wt($),$.style["will-change"]="",ht&&!bt&&C($,rt?rt.options.ghostClass:this.options.ghostClass,!1),C($,this.options.chosenClass,!1),U({sortable:this,name:"unchoose",toEl:V,newIndex:null,newDraggableIndex:null,originalEvent:t}),Q!==V?(nt>=0&&(U({rootEl:V,name:"add",toEl:V,fromEl:Q,originalEvent:t}),U({sortable:this,name:"remove",toEl:V,originalEvent:t}),U({rootEl:V,name:"sort",toEl:V,fromEl:Q,originalEvent:t}),U({sortable:this,name:"sort",toEl:V,originalEvent:t})),rt&&rt.save()):nt!==et&&nt>=0&&(U({sortable:this,name:"update",toEl:V,originalEvent:t}),U({sortable:this,name:"sort",toEl:V,originalEvent:t})),Zt.active&&(null!=nt&&-1!==nt||(nt=et,at=ot),U({sortable:this,name:"end",toEl:V,originalEvent:t}),this.save())))),this._nulling()},_nulling:function(){Y("nulling",this),Q=$=V=X=K=J=q=tt=st=lt=ht=nt=at=et=ot=ft=gt=rt=it=Zt.dragged=Zt.ghost=Zt.clone=Zt.active=null,_t.forEach((function(t){t.checked=!0})),_t.length=ct=dt=0},handleEvent:function(t){switch(t.type){case"drop":case"dragend":this._onDrop(t);break;case"dragenter":case"dragover":$&&(this._onDragOver(t),function(t){t.dataTransfer&&(t.dataTransfer.dropEffect="move"),t.cancelable&&t.preventDefault()}(t));break;case"selectstart":t.preventDefault()}},toArray:function(){for(var t,e=[],n=this.el.children,o=0,a=n.length,i=this.options;o<a;o++)A(t=n[o],i.draggable,this.el,!1)&&e.push(t.getAttribute(i.dataIdAttr)||Ft(t));return e},sort:function(t){var e={},n=this.el;this.toArray().forEach((function(t,o){var a=n.children[o];A(a,this.options.draggable,n,!1)&&(e[t]=a)}),this),t.forEach((function(t){e[t]&&(n.removeChild(e[t]),n.appendChild(e[t]))}))},save:function(){var t=this.options.store;t&&t.set&&t.set(this)},closest:function(t,e){return A(t,e||this.options.draggable,this.el,!1)},option:function(t,e){var n=this.options;if(void 0===e)return n[t];var o=H.modifyOption(this,t,e);n[t]=void 0!==o?o:e,"group"===t&&Nt(n)},destroy:function(){Y("destroy",this);var t=this.el;t[R]=null,v(t,"mousedown",this._onTapStart),v(t,"touchstart",this._onTapStart),v(t,"pointerdown",this._onTapStart),this.nativeDraggable&&(v(t,"dragover",this),v(t,"dragenter",this)),Array.prototype.forEach.call(t.querySelectorAll("[draggable]"),(function(t){t.removeAttribute("draggable")})),this._onDrop(),this._disableDelayedDragEvents(),yt.splice(yt.indexOf(this.el),1),this.el=t=null},_hideClone:function(){if(!tt){if(Y("hideClone",this),Zt.eventCanceled)return;w(J,"display","none"),this.options.removeCloneOnHide&&J.parentNode&&J.parentNode.removeChild(J),tt=!0}},_showClone:function(t){if("clone"===t.lastPutMode){if(tt){if(Y("showClone",this),Zt.eventCanceled)return;Q.contains($)&&!this.options.group.revertClone?Q.insertBefore(J,$):K?Q.insertBefore(J,K):Q.appendChild(J),this.options.group.revertClone&&this.animate($,J),w(J,"display",""),tt=!1}}else this._hideClone()}},kt&&g(document,"touchmove",(function(t){(Zt.active||bt)&&t.cancelable&&t.preventDefault()})),Zt.utils={on:g,off:v,css:w,find:_,is:function(t,e){return!!A(t,e,t,!1)},extend:function(t,e){if(t&&e)for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t},throttle:L,closest:A,toggleClass:C,clone:Z,index:M,nextTick:zt,cancelNextTick:Ht,detectDirection:Mt,getChild:E},Zt.get=function(t){return t[R]},Zt.mount=function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];e[0].constructor===Array&&(e=e[0]),e.forEach((function(t){if(!t.prototype||!t.prototype.constructor)throw"Sortable: Mounted plugin must be a constructor function, not ".concat({}.toString.call(t));t.utils&&(Zt.utils=r({},Zt.utils,t.utils)),H.mount(t)}))},Zt.create=function(t,e){return new Zt(t,e)},Zt.version="1.10.2";var Gt,Yt,Ut,$t,Vt,Xt,Qt=[],Kt=!1;function qt(){Qt.forEach((function(t){clearInterval(t.pid)})),Qt=[]}function Jt(){clearInterval(Xt)}var te,ee=L((function(t,e,n,o){if(e.scroll){var a,i=(t.touches?t.touches[0]:t).clientX,r=(t.touches?t.touches[0]:t).clientY,s=e.scrollSensitivity,l=e.scrollSpeed,c=k(),d=!1;Yt!==n&&(Yt=n,qt(),Gt=e.scroll,a=e.scrollFn,!0===Gt&&(Gt=T(n,!0)));var u=0,p=Gt;do{var h=p,f=D(h),g=f.top,v=f.bottom,m=f.left,b=f.right,A=f.width,y=f.height,x=void 0,C=void 0,S=h.scrollWidth,_=h.scrollHeight,I=w(h),E=h.scrollLeft,O=h.scrollTop;h===c?(x=A<S&&("auto"===I.overflowX||"scroll"===I.overflowX||"visible"===I.overflowX),C=y<_&&("auto"===I.overflowY||"scroll"===I.overflowY||"visible"===I.overflowY)):(x=A<S&&("auto"===I.overflowX||"scroll"===I.overflowX),C=y<_&&("auto"===I.overflowY||"scroll"===I.overflowY));var M=x&&(Math.abs(b-i)<=s&&E+A<S)-(Math.abs(m-i)<=s&&!!E),N=C&&(Math.abs(v-r)<=s&&O+y<_)-(Math.abs(g-r)<=s&&!!O);if(!Qt[u])for(var j=0;j<=u;j++)Qt[j]||(Qt[j]={});Qt[u].vx==M&&Qt[u].vy==N&&Qt[u].el===h||(Qt[u].el=h,Qt[u].vx=M,Qt[u].vy=N,clearInterval(Qt[u].pid),0==M&&0==N||(d=!0,Qt[u].pid=setInterval(function(){o&&0===this.layer&&Zt.active._onTouchMove(Vt);var e=Qt[this.layer].vy?Qt[this.layer].vy*l:0,n=Qt[this.layer].vx?Qt[this.layer].vx*l:0;"function"==typeof a&&"continue"!==a.call(Zt.dragged.parentNode[R],n,e,t,Vt,Qt[this.layer].el)||P(Qt[this.layer].el,n,e)}.bind({layer:u}),24))),u++}while(e.bubbleScroll&&p!==c&&(p=T(p,!1)));Kt=d}}),30),ne=function(t){var e=t.originalEvent,n=t.putSortable,o=t.dragEl,a=t.activeSortable,i=t.dispatchSortableEvent,r=t.hideGhostForTarget,s=t.unhideGhostForTarget;if(e){var l=n||a;r();var c=e.changedTouches&&e.changedTouches.length?e.changedTouches[0]:e,d=document.elementFromPoint(c.clientX,c.clientY);s(),l&&!l.el.contains(d)&&(i("spill"),this.onSpill({dragEl:o,putSortable:n}))}};function oe(){}function ae(){}function ie(){function t(){this.defaults={swapClass:"sortable-swap-highlight"}}return t.prototype={dragStart:function(t){var e=t.dragEl;te=e},dragOverValid:function(t){var e=t.completed,n=t.target,o=t.onMove,a=t.activeSortable,i=t.changed,r=t.cancel;if(a.options.swap){var s=this.sortable.el,l=this.options;if(n&&n!==s){var c=te;!1!==o(n)?(C(n,l.swapClass,!0),te=n):te=null,c&&c!==te&&C(c,l.swapClass,!1)}i(),e(!0),r()}},drop:function(t){var e,n,o,a,i,r,s=t.activeSortable,l=t.putSortable,c=t.dragEl,d=l||this.sortable,u=this.options;te&&C(te,u.swapClass,!1),te&&(u.swap||l&&l.options.swap)&&c!==te&&(d.captureAnimationState(),d!==s&&s.captureAnimationState(),n=te,i=(e=c).parentNode,r=n.parentNode,i&&r&&!i.isEqualNode(n)&&!r.isEqualNode(e)&&(o=M(e),a=M(n),i.isEqualNode(r)&&o<a&&a++,i.insertBefore(n,i.children[o]),r.insertBefore(e,r.children[a])),d.animateAll(),d!==s&&s.animateAll())},nulling:function(){te=null}},i(t,{pluginName:"swap",eventProperties:function(){return{swapItem:te}}})}oe.prototype={startIndex:null,dragStart:function(t){var e=t.oldDraggableIndex;this.startIndex=e},onSpill:function(t){var e=t.dragEl,n=t.putSortable;this.sortable.captureAnimationState(),n&&n.captureAnimationState();var o=E(this.sortable.el,this.startIndex,this.options);o?this.sortable.el.insertBefore(e,o):this.sortable.el.appendChild(e),this.sortable.animateAll(),n&&n.animateAll()},drop:ne},i(oe,{pluginName:"revertOnSpill"}),ae.prototype={onSpill:function(t){var e=t.dragEl,n=t.putSortable||this.sortable;n.captureAnimationState(),e.parentNode&&e.parentNode.removeChild(e),n.animateAll()},drop:ne},i(ae,{pluginName:"removeOnSpill"});var re,se,le,ce,de,ue=[],pe=[],he=!1,fe=!1,ge=!1;function ve(){function t(t){for(var e in this)"_"===e.charAt(0)&&"function"==typeof this[e]&&(this[e]=this[e].bind(this));t.options.supportPointer?g(document,"pointerup",this._deselectMultiDrag):(g(document,"mouseup",this._deselectMultiDrag),g(document,"touchend",this._deselectMultiDrag)),g(document,"keydown",this._checkKeyDown),g(document,"keyup",this._checkKeyUp),this.defaults={selectedClass:"sortable-selected",multiDragKey:null,setData:function(e,n){var o="";ue.length&&se===t?ue.forEach((function(t,e){o+=(e?", ":"")+t.textContent})):o=n.textContent,e.setData("Text",o)}}}return t.prototype={multiDragKeyDown:!1,isMultiDrag:!1,delayStartGlobal:function(t){var e=t.dragEl;le=e},delayEnded:function(){this.isMultiDrag=~ue.indexOf(le)},setupClone:function(t){var e=t.sortable,n=t.cancel;if(this.isMultiDrag){for(var o=0;o<ue.length;o++)pe.push(Z(ue[o])),pe[o].sortableIndex=ue[o].sortableIndex,pe[o].draggable=!1,pe[o].style["will-change"]="",C(pe[o],this.options.selectedClass,!1),ue[o]===le&&C(pe[o],this.options.chosenClass,!1);e._hideClone(),n()}},clone:function(t){var e=t.sortable,n=t.rootEl,o=t.dispatchSortableEvent,a=t.cancel;this.isMultiDrag&&(this.options.removeCloneOnHide||ue.length&&se===e&&(me(!0,n),o("clone"),a()))},showClone:function(t){var e=t.cloneNowShown,n=t.rootEl,o=t.cancel;this.isMultiDrag&&(me(!1,n),pe.forEach((function(t){w(t,"display","")})),e(),de=!1,o())},hideClone:function(t){var e=this,n=(t.sortable,t.cloneNowHidden),o=t.cancel;this.isMultiDrag&&(pe.forEach((function(t){w(t,"display","none"),e.options.removeCloneOnHide&&t.parentNode&&t.parentNode.removeChild(t)})),n(),de=!0,o())},dragStartGlobal:function(t){t.sortable,!this.isMultiDrag&&se&&se.multiDrag._deselectMultiDrag(),ue.forEach((function(t){t.sortableIndex=M(t)})),ue=ue.sort((function(t,e){return t.sortableIndex-e.sortableIndex})),ge=!0},dragStarted:function(t){var e=this,n=t.sortable;if(this.isMultiDrag){if(this.options.sort&&(n.captureAnimationState(),this.options.animation)){ue.forEach((function(t){t!==le&&w(t,"position","absolute")}));var o=D(le,!1,!0,!0);ue.forEach((function(t){t!==le&&B(t,o)})),fe=!0,he=!0}n.animateAll((function(){fe=!1,he=!1,e.options.animation&&ue.forEach((function(t){W(t)})),e.options.sort&&be()}))}},dragOver:function(t){var e=t.target,n=t.completed,o=t.cancel;fe&&~ue.indexOf(e)&&(n(!1),o())},revert:function(t){var e=t.fromSortable,n=t.rootEl,o=t.sortable,a=t.dragRect;ue.length>1&&(ue.forEach((function(t){o.addAnimationState({target:t,rect:fe?D(t):a}),W(t),t.fromRect=a,e.removeAnimationState(t)})),fe=!1,function(t,e){ue.forEach((function(n,o){var a=e.children[n.sortableIndex+(t?Number(o):0)];a?e.insertBefore(n,a):e.appendChild(n)}))}(!this.options.removeCloneOnHide,n))},dragOverCompleted:function(t){var e=t.sortable,n=t.isOwner,o=t.insertion,a=t.activeSortable,i=t.parentEl,r=t.putSortable,s=this.options;if(o){if(n&&a._hideClone(),he=!1,s.animation&&ue.length>1&&(fe||!n&&!a.options.sort&&!r)){var l=D(le,!1,!0,!0);ue.forEach((function(t){t!==le&&(B(t,l),i.appendChild(t))})),fe=!0}if(!n)if(fe||be(),ue.length>1){var c=de;a._showClone(e),a.options.animation&&!de&&c&&pe.forEach((function(t){a.addAnimationState({target:t,rect:ce}),t.fromRect=ce,t.thisAnimationDuration=null}))}else a._showClone(e)}},dragOverAnimationCapture:function(t){var e=t.dragRect,n=t.isOwner,o=t.activeSortable;if(ue.forEach((function(t){t.thisAnimationDuration=null})),o.options.animation&&!n&&o.multiDrag.isMultiDrag){ce=i({},e);var a=S(le,!0);ce.top-=a.f,ce.left-=a.e}},dragOverAnimationComplete:function(){fe&&(fe=!1,be())},drop:function(t){var e=t.originalEvent,n=t.rootEl,o=t.parentEl,a=t.sortable,i=t.dispatchSortableEvent,r=t.oldIndex,s=t.putSortable,l=s||this.sortable;if(e){var c=this.options,d=o.children;if(!ge)if(c.multiDragKey&&!this.multiDragKeyDown&&this._deselectMultiDrag(),C(le,c.selectedClass,!~ue.indexOf(le)),~ue.indexOf(le))ue.splice(ue.indexOf(le),1),re=null,G({sortable:a,rootEl:n,name:"deselect",targetEl:le,originalEvt:e});else{if(ue.push(le),G({sortable:a,rootEl:n,name:"select",targetEl:le,originalEvt:e}),e.shiftKey&&re&&a.el.contains(re)){var u,p,h=M(re),f=M(le);if(~h&&~f&&h!==f)for(f>h?(p=h,u=f):(p=f,u=h+1);p<u;p++)~ue.indexOf(d[p])||(C(d[p],c.selectedClass,!0),ue.push(d[p]),G({sortable:a,rootEl:n,name:"select",targetEl:d[p],originalEvt:e}))}else re=le;se=l}if(ge&&this.isMultiDrag){if((o[R].options.sort||o!==n)&&ue.length>1){var g=D(le),v=M(le,":not(."+this.options.selectedClass+")");if(!he&&c.animation&&(le.thisAnimationDuration=null),l.captureAnimationState(),!he&&(c.animation&&(le.fromRect=g,ue.forEach((function(t){if(t.thisAnimationDuration=null,t!==le){var e=fe?D(t):g;t.fromRect=e,l.addAnimationState({target:t,rect:e})}}))),be(),ue.forEach((function(t){d[v]?o.insertBefore(t,d[v]):o.appendChild(t),v++})),r===M(le))){var m=!1;ue.forEach((function(t){t.sortableIndex===M(t)||(m=!0)})),m&&i("update")}ue.forEach((function(t){W(t)})),l.animateAll()}se=l}(n===o||s&&"clone"!==s.lastPutMode)&&pe.forEach((function(t){t.parentNode&&t.parentNode.removeChild(t)}))}},nullingGlobal:function(){this.isMultiDrag=ge=!1,pe.length=0},destroyGlobal:function(){this._deselectMultiDrag(),v(document,"pointerup",this._deselectMultiDrag),v(document,"mouseup",this._deselectMultiDrag),v(document,"touchend",this._deselectMultiDrag),v(document,"keydown",this._checkKeyDown),v(document,"keyup",this._checkKeyUp)},_deselectMultiDrag:function(t){if(!(void 0!==ge&&ge||se!==this.sortable||t&&A(t.target,this.options.draggable,this.sortable.el,!1)||t&&0!==t.button))for(;ue.length;){var e=ue[0];C(e,this.options.selectedClass,!1),ue.shift(),G({sortable:this.sortable,rootEl:this.sortable.el,name:"deselect",targetEl:e,originalEvt:t})}},_checkKeyDown:function(t){t.key===this.options.multiDragKey&&(this.multiDragKeyDown=!0)},_checkKeyUp:function(t){t.key===this.options.multiDragKey&&(this.multiDragKeyDown=!1)}},i(t,{pluginName:"multiDrag",utils:{select:function(t){var e=t.parentNode[R];e&&e.options.multiDrag&&!~ue.indexOf(t)&&(se&&se!==e&&(se.multiDrag._deselectMultiDrag(),se=e),C(t,e.options.selectedClass,!0),ue.push(t))},deselect:function(t){var e=t.parentNode[R],n=ue.indexOf(t);e&&e.options.multiDrag&&~n&&(C(t,e.options.selectedClass,!1),ue.splice(n,1))}},eventProperties:function(){var t,e=this,n=[],o=[];return ue.forEach((function(t){var a;n.push({multiDragElement:t,index:t.sortableIndex}),a=fe&&t!==le?-1:fe?M(t,":not(."+e.options.selectedClass+")"):M(t),o.push({multiDragElement:t,index:a})})),{items:(t=ue,function(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e<t.length;e++)n[e]=t[e];return n}}(t)||function(t){if(Symbol.iterator in Object(t)||"[object Arguments]"===Object.prototype.toString.call(t))return Array.from(t)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()),clones:[].concat(pe),oldIndicies:n,newIndicies:o}},optionListeners:{multiDragKey:function(t){return"ctrl"===(t=t.toLowerCase())?t="Control":t.length>1&&(t=t.charAt(0).toUpperCase()+t.substr(1)),t}}})}function me(t,e){pe.forEach((function(n,o){var a=e.children[n.sortableIndex+(t?Number(o):0)];a?e.insertBefore(n,a):e.appendChild(n)}))}function be(){ue.forEach((function(t){t!==le&&t.parentNode&&t.parentNode.removeChild(t)}))}Zt.mount(new function(){function t(){for(var t in this.defaults={scroll:!0,scrollSensitivity:30,scrollSpeed:10,bubbleScroll:!0},this)"_"===t.charAt(0)&&"function"==typeof this[t]&&(this[t]=this[t].bind(this))}return t.prototype={dragStarted:function(t){var e=t.originalEvent;this.sortable.nativeDraggable?g(document,"dragover",this._handleAutoScroll):this.options.supportPointer?g(document,"pointermove",this._handleFallbackAutoScroll):e.touches?g(document,"touchmove",this._handleFallbackAutoScroll):g(document,"mousemove",this._handleFallbackAutoScroll)},dragOverCompleted:function(t){var e=t.originalEvent;this.options.dragOverBubble||e.rootEl||this._handleAutoScroll(e)},drop:function(){this.sortable.nativeDraggable?v(document,"dragover",this._handleAutoScroll):(v(document,"pointermove",this._handleFallbackAutoScroll),v(document,"touchmove",this._handleFallbackAutoScroll),v(document,"mousemove",this._handleFallbackAutoScroll)),Jt(),qt(),clearTimeout(y),y=void 0},nulling:function(){Vt=Yt=Gt=Kt=Xt=Ut=$t=null,Qt.length=0},_handleFallbackAutoScroll:function(t){this._handleAutoScroll(t,!0)},_handleAutoScroll:function(t,e){var n=this,o=(t.touches?t.touches[0]:t).clientX,a=(t.touches?t.touches[0]:t).clientY,i=document.elementFromPoint(o,a);if(Vt=t,e||c||l||u){ee(t,this.options,i,e);var r=T(i,!0);!Kt||Xt&&o===Ut&&a===$t||(Xt&&Jt(),Xt=setInterval((function(){var i=T(document.elementFromPoint(o,a),!0);i!==r&&(r=i,qt()),ee(t,n.options,i,e)}),10),Ut=o,$t=a)}else{if(!this.options.bubbleScroll||T(i,!0)===k())return void qt();ee(t,this.options,T(i,!1),!1)}}},i(t,{pluginName:"scroll",initializeByDefault:!0})}),Zt.mount(ae,oe);const Ae=Zt},9980:function(t,e,n){var o;"undefined"!=typeof self&&self,o=function(t){return function(t){var e={};function n(o){if(e[o])return e[o].exports;var a=e[o]={i:o,l:!1,exports:{}};return t[o].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=t,n.c=e,n.d=function(t,e,o){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:o})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var a in t)n.d(o,a,function(e){return t[e]}.bind(null,a));return o},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s="fb15")}({"01f9":function(t,e,n){"use strict";var o=n("2d00"),a=n("5ca1"),i=n("2aba"),r=n("32e9"),s=n("84f2"),l=n("41a0"),c=n("7f20"),d=n("38fd"),u=n("2b4c")("iterator"),p=!([].keys&&"next"in[].keys()),h="keys",f="values",g=function(){return this};t.exports=function(t,e,n,v,m,b,A){l(n,e,v);var y,x,C,w=function(t){if(!p&&t in D)return D[t];switch(t){case h:case f:return function(){return new n(this,t)}}return function(){return new n(this,t)}},S=e+" Iterator",_=m==f,k=!1,D=t.prototype,I=D[u]||D["@@iterator"]||m&&D[m],E=I||w(m),O=m?_?w("entries"):E:void 0,M="Array"==e&&D.entries||I;if(M&&(C=d(M.call(new t)))!==Object.prototype&&C.next&&(c(C,S,!0),o||"function"==typeof C[u]||r(C,u,g)),_&&I&&I.name!==f&&(k=!0,E=function(){return I.call(this)}),o&&!A||!p&&!k&&D[u]||r(D,u,E),s[e]=E,s[S]=g,m)if(y={values:_?E:w(f),keys:b?E:w(h),entries:O},A)for(x in y)x in D||i(D,x,y[x]);else a(a.P+a.F*(p||k),e,y);return y}},"02f4":function(t,e,n){var o=n("4588"),a=n("be13");t.exports=function(t){return function(e,n){var i,r,s=String(a(e)),l=o(n),c=s.length;return l<0||l>=c?t?"":void 0:(i=s.charCodeAt(l))<55296||i>56319||l+1===c||(r=s.charCodeAt(l+1))<56320||r>57343?t?s.charAt(l):i:t?s.slice(l,l+2):r-56320+(i-55296<<10)+65536}}},"0390":function(t,e,n){"use strict";var o=n("02f4")(!0);t.exports=function(t,e,n){return e+(n?o(t,e).length:1)}},"0bfb":function(t,e,n){"use strict";var o=n("cb7c");t.exports=function(){var t=o(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},"0d58":function(t,e,n){var o=n("ce10"),a=n("e11e");t.exports=Object.keys||function(t){return o(t,a)}},1495:function(t,e,n){var o=n("86cc"),a=n("cb7c"),i=n("0d58");t.exports=n("9e1e")?Object.defineProperties:function(t,e){a(t);for(var n,r=i(e),s=r.length,l=0;s>l;)o.f(t,n=r[l++],e[n]);return t}},"214f":function(t,e,n){"use strict";n("b0c5");var o=n("2aba"),a=n("32e9"),i=n("79e5"),r=n("be13"),s=n("2b4c"),l=n("520a"),c=s("species"),d=!i((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$<a>")})),u=function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n="ab".split(t);return 2===n.length&&"a"===n[0]&&"b"===n[1]}();t.exports=function(t,e,n){var p=s(t),h=!i((function(){var e={};return e[p]=function(){return 7},7!=""[t](e)})),f=h?!i((function(){var e=!1,n=/a/;return n.exec=function(){return e=!0,null},"split"===t&&(n.constructor={},n.constructor[c]=function(){return n}),n[p](""),!e})):void 0;if(!h||!f||"replace"===t&&!d||"split"===t&&!u){var g=/./[p],v=n(r,p,""[t],(function(t,e,n,o,a){return e.exec===l?h&&!a?{done:!0,value:g.call(e,n,o)}:{done:!0,value:t.call(n,e,o)}:{done:!1}})),m=v[0],b=v[1];o(String.prototype,t,m),a(RegExp.prototype,p,2==e?function(t,e){return b.call(t,this,e)}:function(t){return b.call(t,this)})}}},"230e":function(t,e,n){var o=n("d3f4"),a=n("7726").document,i=o(a)&&o(a.createElement);t.exports=function(t){return i?a.createElement(t):{}}},"23c6":function(t,e,n){var o=n("2d95"),a=n("2b4c")("toStringTag"),i="Arguments"==o(function(){return arguments}());t.exports=function(t){var e,n,r;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),a))?n:i?o(e):"Object"==(r=o(e))&&"function"==typeof e.callee?"Arguments":r}},2621:function(t,e){e.f=Object.getOwnPropertySymbols},"2aba":function(t,e,n){var o=n("7726"),a=n("32e9"),i=n("69a8"),r=n("ca5a")("src"),s=n("fa5b"),l="toString",c=(""+s).split(l);n("8378").inspectSource=function(t){return s.call(t)},(t.exports=function(t,e,n,s){var l="function"==typeof n;l&&(i(n,"name")||a(n,"name",e)),t[e]!==n&&(l&&(i(n,r)||a(n,r,t[e]?""+t[e]:c.join(String(e)))),t===o?t[e]=n:s?t[e]?t[e]=n:a(t,e,n):(delete t[e],a(t,e,n)))})(Function.prototype,l,(function(){return"function"==typeof this&&this[r]||s.call(this)}))},"2aeb":function(t,e,n){var o=n("cb7c"),a=n("1495"),i=n("e11e"),r=n("613b")("IE_PROTO"),s=function(){},l="prototype",c=function(){var t,e=n("230e")("iframe"),o=i.length;for(e.style.display="none",n("fab2").appendChild(e),e.src="javascript:",(t=e.contentWindow.document).open(),t.write("<script>document.F=Object<\/script>"),t.close(),c=t.F;o--;)delete c[l][i[o]];return c()};t.exports=Object.create||function(t,e){var n;return null!==t?(s[l]=o(t),n=new s,s[l]=null,n[r]=t):n=c(),void 0===e?n:a(n,e)}},"2b4c":function(t,e,n){var o=n("5537")("wks"),a=n("ca5a"),i=n("7726").Symbol,r="function"==typeof i;(t.exports=function(t){return o[t]||(o[t]=r&&i[t]||(r?i:a)("Symbol."+t))}).store=o},"2d00":function(t,e){t.exports=!1},"2d95":function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},"2fdb":function(t,e,n){"use strict";var o=n("5ca1"),a=n("d2c8"),i="includes";o(o.P+o.F*n("5147")(i),"String",{includes:function(t){return!!~a(this,t,i).indexOf(t,arguments.length>1?arguments[1]:void 0)}})},"32e9":function(t,e,n){var o=n("86cc"),a=n("4630");t.exports=n("9e1e")?function(t,e,n){return o.f(t,e,a(1,n))}:function(t,e,n){return t[e]=n,t}},"38fd":function(t,e,n){var o=n("69a8"),a=n("4bf8"),i=n("613b")("IE_PROTO"),r=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=a(t),o(t,i)?t[i]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?r:null}},"41a0":function(t,e,n){"use strict";var o=n("2aeb"),a=n("4630"),i=n("7f20"),r={};n("32e9")(r,n("2b4c")("iterator"),(function(){return this})),t.exports=function(t,e,n){t.prototype=o(r,{next:a(1,n)}),i(t,e+" Iterator")}},"456d":function(t,e,n){var o=n("4bf8"),a=n("0d58");n("5eda")("keys",(function(){return function(t){return a(o(t))}}))},4588:function(t,e){var n=Math.ceil,o=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?o:n)(t)}},4630:function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},"4bf8":function(t,e,n){var o=n("be13");t.exports=function(t){return Object(o(t))}},5147:function(t,e,n){var o=n("2b4c")("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[o]=!1,!"/./"[t](e)}catch(t){}}return!0}},"520a":function(t,e,n){"use strict";var o,a,i=n("0bfb"),r=RegExp.prototype.exec,s=String.prototype.replace,l=r,c="lastIndex",d=(o=/a/,a=/b*/g,r.call(o,"a"),r.call(a,"a"),0!==o[c]||0!==a[c]),u=void 0!==/()??/.exec("")[1];(d||u)&&(l=function(t){var e,n,o,a,l=this;return u&&(n=new RegExp("^"+l.source+"$(?!\\s)",i.call(l))),d&&(e=l[c]),o=r.call(l,t),d&&o&&(l[c]=l.global?o.index+o[0].length:e),u&&o&&o.length>1&&s.call(o[0],n,(function(){for(a=1;a<arguments.length-2;a++)void 0===arguments[a]&&(o[a]=void 0)})),o}),t.exports=l},"52a7":function(t,e){e.f={}.propertyIsEnumerable},5537:function(t,e,n){var o=n("8378"),a=n("7726"),i="__core-js_shared__",r=a[i]||(a[i]={});(t.exports=function(t,e){return r[t]||(r[t]=void 0!==e?e:{})})("versions",[]).push({version:o.version,mode:n("2d00")?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},"5ca1":function(t,e,n){var o=n("7726"),a=n("8378"),i=n("32e9"),r=n("2aba"),s=n("9b43"),l="prototype",c=function(t,e,n){var d,u,p,h,f=t&c.F,g=t&c.G,v=t&c.S,m=t&c.P,b=t&c.B,A=g?o:v?o[e]||(o[e]={}):(o[e]||{})[l],y=g?a:a[e]||(a[e]={}),x=y[l]||(y[l]={});for(d in g&&(n=e),n)p=((u=!f&&A&&void 0!==A[d])?A:n)[d],h=b&&u?s(p,o):m&&"function"==typeof p?s(Function.call,p):p,A&&r(A,d,p,t&c.U),y[d]!=p&&i(y,d,h),m&&x[d]!=p&&(x[d]=p)};o.core=a,c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,t.exports=c},"5eda":function(t,e,n){var o=n("5ca1"),a=n("8378"),i=n("79e5");t.exports=function(t,e){var n=(a.Object||{})[t]||Object[t],r={};r[t]=e(n),o(o.S+o.F*i((function(){n(1)})),"Object",r)}},"5f1b":function(t,e,n){"use strict";var o=n("23c6"),a=RegExp.prototype.exec;t.exports=function(t,e){var n=t.exec;if("function"==typeof n){var i=n.call(t,e);if("object"!=typeof i)throw new TypeError("RegExp exec method returned something other than an Object or null");return i}if("RegExp"!==o(t))throw new TypeError("RegExp#exec called on incompatible receiver");return a.call(t,e)}},"613b":function(t,e,n){var o=n("5537")("keys"),a=n("ca5a");t.exports=function(t){return o[t]||(o[t]=a(t))}},"626a":function(t,e,n){var o=n("2d95");t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==o(t)?t.split(""):Object(t)}},6762:function(t,e,n){"use strict";var o=n("5ca1"),a=n("c366")(!0);o(o.P,"Array",{includes:function(t){return a(this,t,arguments.length>1?arguments[1]:void 0)}}),n("9c6c")("includes")},6821:function(t,e,n){var o=n("626a"),a=n("be13");t.exports=function(t){return o(a(t))}},"69a8":function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},"6a99":function(t,e,n){var o=n("d3f4");t.exports=function(t,e){if(!o(t))return t;var n,a;if(e&&"function"==typeof(n=t.toString)&&!o(a=n.call(t)))return a;if("function"==typeof(n=t.valueOf)&&!o(a=n.call(t)))return a;if(!e&&"function"==typeof(n=t.toString)&&!o(a=n.call(t)))return a;throw TypeError("Can't convert object to primitive value")}},7333:function(t,e,n){"use strict";var o=n("0d58"),a=n("2621"),i=n("52a7"),r=n("4bf8"),s=n("626a"),l=Object.assign;t.exports=!l||n("79e5")((function(){var t={},e={},n=Symbol(),o="abcdefghijklmnopqrst";return t[n]=7,o.split("").forEach((function(t){e[t]=t})),7!=l({},t)[n]||Object.keys(l({},e)).join("")!=o}))?function(t,e){for(var n=r(t),l=arguments.length,c=1,d=a.f,u=i.f;l>c;)for(var p,h=s(arguments[c++]),f=d?o(h).concat(d(h)):o(h),g=f.length,v=0;g>v;)u.call(h,p=f[v++])&&(n[p]=h[p]);return n}:l},7726:function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},"77f1":function(t,e,n){var o=n("4588"),a=Math.max,i=Math.min;t.exports=function(t,e){return(t=o(t))<0?a(t+e,0):i(t,e)}},"79e5":function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},"7f20":function(t,e,n){var o=n("86cc").f,a=n("69a8"),i=n("2b4c")("toStringTag");t.exports=function(t,e,n){t&&!a(t=n?t:t.prototype,i)&&o(t,i,{configurable:!0,value:e})}},8378:function(t,e){var n=t.exports={version:"2.6.5"};"number"==typeof __e&&(__e=n)},"84f2":function(t,e){t.exports={}},"86cc":function(t,e,n){var o=n("cb7c"),a=n("c69a"),i=n("6a99"),r=Object.defineProperty;e.f=n("9e1e")?Object.defineProperty:function(t,e,n){if(o(t),e=i(e,!0),o(n),a)try{return r(t,e,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},"9b43":function(t,e,n){var o=n("d8e8");t.exports=function(t,e,n){if(o(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,o){return t.call(e,n,o)};case 3:return function(n,o,a){return t.call(e,n,o,a)}}return function(){return t.apply(e,arguments)}}},"9c6c":function(t,e,n){var o=n("2b4c")("unscopables"),a=Array.prototype;null==a[o]&&n("32e9")(a,o,{}),t.exports=function(t){a[o][t]=!0}},"9def":function(t,e,n){var o=n("4588"),a=Math.min;t.exports=function(t){return t>0?a(o(t),9007199254740991):0}},"9e1e":function(t,e,n){t.exports=!n("79e5")((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},a352:function(e,n){e.exports=t},a481:function(t,e,n){"use strict";var o=n("cb7c"),a=n("4bf8"),i=n("9def"),r=n("4588"),s=n("0390"),l=n("5f1b"),c=Math.max,d=Math.min,u=Math.floor,p=/\$([$&`']|\d\d?|<[^>]*>)/g,h=/\$([$&`']|\d\d?)/g;n("214f")("replace",2,(function(t,e,n,f){return[function(o,a){var i=t(this),r=null==o?void 0:o[e];return void 0!==r?r.call(o,i,a):n.call(String(i),o,a)},function(t,e){var a=f(n,t,this,e);if(a.done)return a.value;var u=o(t),p=String(this),h="function"==typeof e;h||(e=String(e));var v=u.global;if(v){var m=u.unicode;u.lastIndex=0}for(var b=[];;){var A=l(u,p);if(null===A)break;if(b.push(A),!v)break;""===String(A[0])&&(u.lastIndex=s(p,i(u.lastIndex),m))}for(var y,x="",C=0,w=0;w<b.length;w++){A=b[w];for(var S=String(A[0]),_=c(d(r(A.index),p.length),0),k=[],D=1;D<A.length;D++)k.push(void 0===(y=A[D])?y:String(y));var I=A.groups;if(h){var E=[S].concat(k,_,p);void 0!==I&&E.push(I);var O=String(e.apply(void 0,E))}else O=g(S,p,_,k,I,e);_>=C&&(x+=p.slice(C,_)+O,C=_+S.length)}return x+p.slice(C)}];function g(t,e,o,i,r,s){var l=o+t.length,c=i.length,d=h;return void 0!==r&&(r=a(r),d=p),n.call(s,d,(function(n,a){var s;switch(a.charAt(0)){case"$":return"$";case"&":return t;case"`":return e.slice(0,o);case"'":return e.slice(l);case"<":s=r[a.slice(1,-1)];break;default:var d=+a;if(0===d)return n;if(d>c){var p=u(d/10);return 0===p?n:p<=c?void 0===i[p-1]?a.charAt(1):i[p-1]+a.charAt(1):n}s=i[d-1]}return void 0===s?"":s}))}}))},aae3:function(t,e,n){var o=n("d3f4"),a=n("2d95"),i=n("2b4c")("match");t.exports=function(t){var e;return o(t)&&(void 0!==(e=t[i])?!!e:"RegExp"==a(t))}},ac6a:function(t,e,n){for(var o=n("cadf"),a=n("0d58"),i=n("2aba"),r=n("7726"),s=n("32e9"),l=n("84f2"),c=n("2b4c"),d=c("iterator"),u=c("toStringTag"),p=l.Array,h={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},f=a(h),g=0;g<f.length;g++){var v,m=f[g],b=h[m],A=r[m],y=A&&A.prototype;if(y&&(y[d]||s(y,d,p),y[u]||s(y,u,m),l[m]=p,b))for(v in o)y[v]||i(y,v,o[v],!0)}},b0c5:function(t,e,n){"use strict";var o=n("520a");n("5ca1")({target:"RegExp",proto:!0,forced:o!==/./.exec},{exec:o})},be13:function(t,e){t.exports=function(t){if(null==t)throw TypeError("Can't call method on  "+t);return t}},c366:function(t,e,n){var o=n("6821"),a=n("9def"),i=n("77f1");t.exports=function(t){return function(e,n,r){var s,l=o(e),c=a(l.length),d=i(r,c);if(t&&n!=n){for(;c>d;)if((s=l[d++])!=s)return!0}else for(;c>d;d++)if((t||d in l)&&l[d]===n)return t||d||0;return!t&&-1}}},c649:function(t,e,n){"use strict";(function(t){n.d(e,"c",(function(){return c})),n.d(e,"a",(function(){return s})),n.d(e,"b",(function(){return i})),n.d(e,"d",(function(){return l})),n("a481");var o,a,i="undefined"!=typeof window?window.console:t.console,r=/-(\w)/g,s=(o=function(t){return t.replace(r,(function(t,e){return e?e.toUpperCase():""}))},a=Object.create(null),function(t){return a[t]||(a[t]=o(t))});function l(t){null!==t.parentElement&&t.parentElement.removeChild(t)}function c(t,e,n){var o=0===n?t.children[0]:t.children[n-1].nextSibling;t.insertBefore(e,o)}}).call(this,n("c8ba"))},c69a:function(t,e,n){t.exports=!n("9e1e")&&!n("79e5")((function(){return 7!=Object.defineProperty(n("230e")("div"),"a",{get:function(){return 7}}).a}))},c8ba:function(t,e){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(t){"object"==typeof window&&(n=window)}t.exports=n},ca5a:function(t,e){var n=0,o=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+o).toString(36))}},cadf:function(t,e,n){"use strict";var o=n("9c6c"),a=n("d53b"),i=n("84f2"),r=n("6821");t.exports=n("01f9")(Array,"Array",(function(t,e){this._t=r(t),this._i=0,this._k=e}),(function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,a(1)):a(0,"keys"==e?n:"values"==e?t[n]:[n,t[n]])}),"values"),i.Arguments=i.Array,o("keys"),o("values"),o("entries")},cb7c:function(t,e,n){var o=n("d3f4");t.exports=function(t){if(!o(t))throw TypeError(t+" is not an object!");return t}},ce10:function(t,e,n){var o=n("69a8"),a=n("6821"),i=n("c366")(!1),r=n("613b")("IE_PROTO");t.exports=function(t,e){var n,s=a(t),l=0,c=[];for(n in s)n!=r&&o(s,n)&&c.push(n);for(;e.length>l;)o(s,n=e[l++])&&(~i(c,n)||c.push(n));return c}},d2c8:function(t,e,n){var o=n("aae3"),a=n("be13");t.exports=function(t,e,n){if(o(e))throw TypeError("String#"+n+" doesn't accept regex!");return String(a(t))}},d3f4:function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},d53b:function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},d8e8:function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},e11e:function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},f559:function(t,e,n){"use strict";var o=n("5ca1"),a=n("9def"),i=n("d2c8"),r="startsWith",s=""[r];o(o.P+o.F*n("5147")(r),"String",{startsWith:function(t){var e=i(this,t,r),n=a(Math.min(arguments.length>1?arguments[1]:void 0,e.length)),o=String(t);return s?s.call(e,o,n):e.slice(n,n+o.length)===o}})},f6fd:function(t,e){!function(t){var e="currentScript",n=t.getElementsByTagName("script");e in t||Object.defineProperty(t,e,{get:function(){try{throw new Error}catch(o){var t,e=(/.*at [^\(]*\((.*):.+:.+\)$/gi.exec(o.stack)||[!1])[1];for(t in n)if(n[t].src==e||"interactive"==n[t].readyState)return n[t];return null}}})}(document)},f751:function(t,e,n){var o=n("5ca1");o(o.S+o.F,"Object",{assign:n("7333")})},fa5b:function(t,e,n){t.exports=n("5537")("native-function-to-string",Function.toString)},fab2:function(t,e,n){var o=n("7726").document;t.exports=o&&o.documentElement},fb15:function(t,e,n){"use strict";var o;function a(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,o=new Array(e);n<e;n++)o[n]=t[n];return o}function i(t,e){if(t){if("string"==typeof t)return a(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?a(t,e):void 0}}function r(t){return function(t){if(Array.isArray(t))return a(t)}(t)||function(t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t))return Array.from(t)}(t)||i(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}n.r(e),"undefined"!=typeof window&&(n("f6fd"),(o=window.document.currentScript)&&(o=o.src.match(/(.+\/)[^/]+\.js(\?.*)?$/))&&(n.p=o[1])),n("f751"),n("f559"),n("ac6a"),n("cadf"),n("456d"),n("6762"),n("2fdb");var s=n("a352"),l=n.n(s),c=n("c649");function d(t,e){var n=this;this.$nextTick((function(){return n.$emit(t.toLowerCase(),e)}))}function u(t){var e=this;return function(n){null!==e.realList&&e["onDrag"+t](n),d.call(e,t,n)}}function p(t){return["transition-group","TransitionGroup"].includes(t)}function h(t,e,n){return t[n]||(e[n]?e[n]():void 0)}var f=["Start","Add","Remove","Update","End"],g=["Choose","Unchoose","Sort","Filter","Clone"],v=["Move"].concat(f,g).map((function(t){return"on"+t})),m=null,b={name:"draggable",inheritAttrs:!1,props:{options:Object,list:{type:Array,required:!1,default:null},value:{type:Array,required:!1,default:null},noTransitionOnDrag:{type:Boolean,default:!1},clone:{type:Function,default:function(t){return t}},element:{type:String,default:"div"},tag:{type:String,default:null},move:{type:Function,default:null},componentData:{type:Object,required:!1,default:null}},data:function(){return{transitionMode:!1,noneFunctionalComponentMode:!1}},render:function(t){var e=this.$slots.default;this.transitionMode=function(t){if(!t||1!==t.length)return!1;var e,n,o=(e=t,n=1,function(t){if(Array.isArray(t))return t}(e)||function(t,e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t)){var n=[],o=!0,a=!1,i=void 0;try{for(var r,s=t[Symbol.iterator]();!(o=(r=s.next()).done)&&(n.push(r.value),!e||n.length!==e);o=!0);}catch(t){a=!0,i=t}finally{try{o||null==s.return||s.return()}finally{if(a)throw i}}return n}}(e,n)||i(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0].componentOptions;return!!o&&p(o.tag)}(e);var n=function(t,e,n){var o=0,a=0,i=h(e,n,"header");i&&(o=i.length,t=t?[].concat(r(i),r(t)):r(i));var s=h(e,n,"footer");return s&&(a=s.length,t=t?[].concat(r(t),r(s)):r(s)),{children:t,headerOffset:o,footerOffset:a}}(e,this.$slots,this.$scopedSlots),o=n.children,a=n.headerOffset,s=n.footerOffset;this.headerOffset=a,this.footerOffset=s;var l=function(t,e){var n=null,o=function(t,e){n=function(t,e,n){return void 0===n||((t=t||{})[e]=n),t}(n,t,e)};if(o("attrs",Object.keys(t).filter((function(t){return"id"===t||t.startsWith("data-")})).reduce((function(e,n){return e[n]=t[n],e}),{})),!e)return n;var a=e.on,i=e.props,r=e.attrs;return o("on",a),o("props",i),Object.assign(n.attrs,r),n}(this.$attrs,this.componentData);return t(this.getTag(),l,o)},created:function(){null!==this.list&&null!==this.value&&c.b.error("Value and list props are mutually exclusive! Please set one or another."),"div"!==this.element&&c.b.warn("Element props is deprecated please use tag props instead. See https://github.com/SortableJS/Vue.Draggable/blob/master/documentation/migrate.md#element-props"),void 0!==this.options&&c.b.warn("Options props is deprecated, add sortable options directly as vue.draggable item, or use v-bind. See https://github.com/SortableJS/Vue.Draggable/blob/master/documentation/migrate.md#options-props")},mounted:function(){var t=this;if(this.noneFunctionalComponentMode=this.getTag().toLowerCase()!==this.$el.nodeName.toLowerCase()&&!this.getIsFunctional(),this.noneFunctionalComponentMode&&this.transitionMode)throw new Error("Transition-group inside component is not supported. Please alter tag value or remove transition-group. Current tag value: ".concat(this.getTag()));var e={};f.forEach((function(n){e["on"+n]=u.call(t,n)})),g.forEach((function(n){e["on"+n]=d.bind(t,n)}));var n=Object.keys(this.$attrs).reduce((function(e,n){return e[Object(c.a)(n)]=t.$attrs[n],e}),{}),o=Object.assign({},this.options,n,e,{onMove:function(e,n){return t.onDragMove(e,n)}});!("draggable"in o)&&(o.draggable=">*"),this._sortable=new l.a(this.rootContainer,o),this.computeIndexes()},beforeDestroy:function(){void 0!==this._sortable&&this._sortable.destroy()},computed:{rootContainer:function(){return this.transitionMode?this.$el.children[0]:this.$el},realList:function(){return this.list?this.list:this.value}},watch:{options:{handler:function(t){this.updateOptions(t)},deep:!0},$attrs:{handler:function(t){this.updateOptions(t)},deep:!0},realList:function(){this.computeIndexes()}},methods:{getIsFunctional:function(){var t=this._vnode.fnOptions;return t&&t.functional},getTag:function(){return this.tag||this.element},updateOptions:function(t){for(var e in t){var n=Object(c.a)(e);-1===v.indexOf(n)&&this._sortable.option(n,t[e])}},getChildrenNodes:function(){if(this.noneFunctionalComponentMode)return this.$children[0].$slots.default;var t=this.$slots.default;return this.transitionMode?t[0].child.$slots.default:t},computeIndexes:function(){var t=this;this.$nextTick((function(){t.visibleIndexes=function(t,e,n,o){if(!t)return[];var a=t.map((function(t){return t.elm})),i=e.length-o,s=r(e).map((function(t,e){return e>=i?a.length:a.indexOf(t)}));return n?s.filter((function(t){return-1!==t})):s}(t.getChildrenNodes(),t.rootContainer.children,t.transitionMode,t.footerOffset)}))},getUnderlyingVm:function(t){var e,n,o=(e=this.getChildrenNodes()||[],n=t,e.map((function(t){return t.elm})).indexOf(n));return-1===o?null:{index:o,element:this.realList[o]}},getUnderlyingPotencialDraggableComponent:function(t){var e=t.__vue__;return e&&e.$options&&p(e.$options._componentTag)?e.$parent:!("realList"in e)&&1===e.$children.length&&"realList"in e.$children[0]?e.$children[0]:e},emitChanges:function(t){var e=this;this.$nextTick((function(){e.$emit("change",t)}))},alterList:function(t){if(this.list)t(this.list);else{var e=r(this.value);t(e),this.$emit("input",e)}},spliceList:function(){var t=arguments;this.alterList((function(e){return e.splice.apply(e,r(t))}))},updatePosition:function(t,e){this.alterList((function(n){return n.splice(e,0,n.splice(t,1)[0])}))},getRelatedContextFromMoveEvent:function(t){var e=t.to,n=t.related,o=this.getUnderlyingPotencialDraggableComponent(e);if(!o)return{component:o};var a=o.realList,i={list:a,component:o};if(e!==n&&a&&o.getUnderlyingVm){var r=o.getUnderlyingVm(n);if(r)return Object.assign(r,i)}return i},getVmIndex:function(t){var e=this.visibleIndexes,n=e.length;return t>n-1?n:e[t]},getComponent:function(){return this.$slots.default[0].componentInstance},resetTransitionData:function(t){if(this.noTransitionOnDrag&&this.transitionMode){this.getChildrenNodes()[t].data=null;var e=this.getComponent();e.children=[],e.kept=void 0}},onDragStart:function(t){this.context=this.getUnderlyingVm(t.item),t.item._underlying_vm_=this.clone(this.context.element),m=t.item},onDragAdd:function(t){var e=t.item._underlying_vm_;if(void 0!==e){Object(c.d)(t.item);var n=this.getVmIndex(t.newIndex);this.spliceList(n,0,e),this.computeIndexes();var o={element:e,newIndex:n};this.emitChanges({added:o})}},onDragRemove:function(t){if(Object(c.c)(this.rootContainer,t.item,t.oldIndex),"clone"!==t.pullMode){var e=this.context.index;this.spliceList(e,1);var n={element:this.context.element,oldIndex:e};this.resetTransitionData(e),this.emitChanges({removed:n})}else Object(c.d)(t.clone)},onDragUpdate:function(t){Object(c.d)(t.item),Object(c.c)(t.from,t.item,t.oldIndex);var e=this.context.index,n=this.getVmIndex(t.newIndex);this.updatePosition(e,n);var o={element:this.context.element,oldIndex:e,newIndex:n};this.emitChanges({moved:o})},updateProperty:function(t,e){t.hasOwnProperty(e)&&(t[e]+=this.headerOffset)},computeFutureIndex:function(t,e){if(!t.element)return 0;var n=r(e.to.children).filter((function(t){return"none"!==t.style.display})),o=n.indexOf(e.related),a=t.component.getVmIndex(o);return-1===n.indexOf(m)&&e.willInsertAfter?a+1:a},onDragMove:function(t,e){var n=this.move;if(!n||!this.realList)return!0;var o=this.getRelatedContextFromMoveEvent(t),a=this.context,i=this.computeFutureIndex(o,t);return Object.assign(a,{futureIndex:i}),n(Object.assign({},t,{relatedContext:o,draggedContext:a}),e)},onDragEnd:function(){this.computeIndexes(),m=null}}};"undefined"!=typeof window&&"Vue"in window&&window.Vue.component("draggable",b);var A=b;e.default=A}}).default},t.exports=o(n(31715))},42761:t=>{"use strict";t.exports="data:image/svg+xml;base64,PCEtLSBUaGlzIGljb24gaXMgcGFydCBvZiBNYXRlcmlhbCBVSSBJY29ucy4gQ29weXJpZ2h0IDIwMjAgR29vZ2xlIEluYy4sIEFwYWNoZS0yLjAgTGljZW5zZSAtLT4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZD0iTS00LTRoMjR2MjRILTRWLTR6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTggMEMzLjYgMCAwIDMuNiAwIDhzMy42IDggOCA4IDgtMy42IDgtOC0zLjYtOC04LTh6IiBmaWxsPSIjZWQ0ODRjIi8+PHBhdGggZD0iTTUgNi41aDZjLjggMCAxLjUuNyAxLjUgMS41cy0uNyAxLjUtMS41IDEuNUg1Yy0uOCAwLTEuNS0uNy0xLjUtMS41UzQuMiA2LjUgNSA2LjV6IiBmaWxsPSIjZmRmZmZmIi8+PC9zdmc+Cg=="},87210:t=>{"use strict";t.exports="data:image/svg+xml;base64,PCEtLSBUaGlzIGljb24gaXMgcGFydCBvZiBNYXRlcmlhbCBVSSBJY29ucy4gQ29weXJpZ2h0IDIwMjAgR29vZ2xlIEluYy4sIEFwYWNoZS0yLjAgTGljZW5zZSAtLT4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZD0iTTQuOCAxMS4yaDYuNFY0LjhINC44djYuNHpNOCAwQzMuNiAwIDAgMy42IDAgOHMzLjYgOCA4IDggOC0zLjYgOC04LTMuNi04LTgtOHoiIGZpbGw9IiM0OWIzODIiLz48L3N2Zz4K"},94659:t=>{"use strict";t.exports="data:image/svg+xml;base64,PCEtLSBUaGlzIGljb24gaXMgcGFydCBvZiBNYXRlcmlhbCBVSSBJY29ucy4gQ29weXJpZ2h0IDIwMjAgR29vZ2xlIEluYy4sIEFwYWNoZS0yLjAgTGljZW5zZSAtLT4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTS00LTRoMjR2MjRILTR6Ii8+PHBhdGggZD0iTTYuOS4xQzMgLjYtLjEgNC0uMSA4YzAgNC40IDMuNiA4IDggOCA0IDAgNy40LTMgOC02LjktMS4yIDEuMy0yLjkgMi4xLTQuNyAyLjEtMy41IDAtNi40LTIuOS02LjQtNi40IDAtMS45LjgtMy42IDIuMS00Ljd6IiBmaWxsPSIjZjRhMzMxIi8+PC9zdmc+Cg=="},39896:t=>{"use strict";t.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0iIzIyMiI+PHBhdGggZD0iTTE1LjQgMTYuNkwxMC44IDEybDQuNi00LjZMMTQgNmwtNiA2IDYgNiAxLjQtMS40eiIvPjwvc3ZnPg=="},76899:t=>{"use strict";t.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0iIzIyMiI+PHBhdGggZD0iTTE4LjQgNy40TDE3IDZsLTYgNiA2IDYgMS40LTEuNC00LjYtNC42IDQuNi00LjZtLTYgMEwxMSA2bC02IDYgNiA2IDEuNC0xLjRMNy44IDEybDQuNi00LjZ6Ii8+PC9zdmc+"},88931:t=>{"use strict";t.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0iIzIyMiI+PHBhdGggZD0iTTUuNiA3LjRMNyA2bDYgNi02IDYtMS40LTEuNCA0LjYtNC42LTQuNi00LjZtNiAwTDEzIDZsNiA2LTYgNi0xLjQtMS40IDQuNi00LjYtNC42LTQuNnoiLz48L3N2Zz4="},16556:t=>{"use strict";t.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0iIzIyMiI+PHBhdGggZD0iTTguNiAxNi42bDQuNi00LjYtNC42LTQuNkwxMCA2bDYgNi02IDYtMS40LTEuNHoiLz48L3N2Zz4="}},o={};function a(t){var e=o[t];if(void 0!==e)return e.exports;var i=o[t]={id:t,loaded:!1,exports:{}};return n[t].call(i.exports,i,i.exports,a),i.loaded=!0,i.exports}a.m=n,e=[],a.O=(t,n,o,i)=>{if(!n){var r=1/0;for(d=0;d<e.length;d++){n=e[d][0],o=e[d][1],i=e[d][2];for(var s=!0,l=0;l<n.length;l++)(!1&i||r>=i)&&Object.keys(a.O).every((t=>a.O[t](n[l])))?n.splice(l--,1):(s=!1,i<r&&(r=i));if(s){e.splice(d--,1);var c=o();void 0!==c&&(t=c)}}return t}i=i||0;for(var d=e.length;d>0&&e[d-1][2]>i;d--)e[d]=e[d-1];e[d]=[n,o,i]},a.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return a.d(e,{a:e}),e},a.d=(t,e)=>{for(var n in e)a.o(e,n)&&!a.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},a.e=()=>Promise.resolve(),a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),a.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),a.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},a.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),a.j=4773,(()=>{a.b=document.baseURI||self.location.href;var t={4773:0};a.O.j=e=>0===t[e];var e=(e,n)=>{var o,i,r=n[0],s=n[1],l=n[2],c=0;if(r.some((e=>0!==t[e]))){for(o in s)a.o(s,o)&&(a.m[o]=s[o]);if(l)var d=l(a)}for(e&&e(n);c<r.length;c++)i=r[c],a.o(t,i)&&t[i]&&t[i][0](),t[i]=0;return a.O(d)},n=self.webpackChunknextcloud=self.webpackChunknextcloud||[];n.forEach(e.bind(null,0)),n.push=e.bind(null,n.push.bind(n))})(),a.nc=void 0;var i=a.O(void 0,[7874],(()=>a(54339)));i=a.O(i)})();
//# sourceMappingURL=dashboard-main.js.map?v=c36296b8f6c10af3bcce