From ff88c7b235b746ae41f917c363ddb25348f0da66 Mon Sep 17 00:00:00 2001 From: Kristian Zendato Date: Thu, 16 Jul 2026 22:00:23 +0800 Subject: [PATCH] fix(themeing): update scrollbar contrast on background Signed-off-by: Kristian Zendato --- apps/dashboard/src/DashboardApp.vue | 2 ++ dist/dashboard-main.js | 4 ++-- dist/dashboard-main.js.map | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/apps/dashboard/src/DashboardApp.vue b/apps/dashboard/src/DashboardApp.vue index a73e082a001dc..7814afda2bba1 100644 --- a/apps/dashboard/src/DashboardApp.vue +++ b/apps/dashboard/src/DashboardApp.vue @@ -800,5 +800,7 @@ html, body { #content { overflow: auto; + /* Scrollbar sits on the background image — use plain-text color for contrast */ + scrollbar-color: var(--color-background-plain-text) transparent; } diff --git a/dist/dashboard-main.js b/dist/dashboard-main.js index 9e55002153acd..7ff579cd7e2ab 100644 --- a/dist/dashboard-main.js +++ b/dist/dashboard-main.js @@ -1,2 +1,2 @@ -(()=>{var e,n={90111(e,n,a){"use strict";var o=a(21777),i=a(53334),r=a(85471),s=a(44368),l=a(81222),c=a(63814),d=a(432),u=a.n(d),p=a(74095),h=a(83947),f=a(99835);const g={name:"PencilIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var m=a(14486);const b=(0,m.A)(g,function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon pencil-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},[],!1,null,null,null).exports;var v=a(65889),A=a(42507),y=a(54373),x=a(41944),C=a(6537),w=a(60557);const S=(0,r.pM)({__name:"ApiDashboardWidgetItem",props:{item:{type:Object,required:!0},iconSize:{type:Number,required:!0},roundedIcons:{type:Boolean,default:!0}},setup:t=>({__sfc:!0,imageLoaded:(0,r.KR)(!1),loadingImageFailed:(0,r.KR)(!1),NcAvatar:x.A,NcDashboardWidgetItem:C.N,IconFile:w.A})});var k=a(85072),_=a.n(k),D=a(97825),E=a.n(D),O=a(77659),I=a.n(O),T=a(55056),N=a.n(T),M=a(10540),P=a.n(M),B=a(41113),j=a.n(B),L=a(8949),W={};W.styleTagTransform=j(),W.setAttributes=N(),W.insert=I().bind(null,"head"),W.domAPI=E(),W.insertStyleElement=P(),_()(L.A,W),L.A&&L.A.locals&&L.A.locals;const F={name:"ApiDashboardWidget",components:{ApiDashboardWidgetItem:(0,m.A)(S,function(){var t=this,e=t._self._c,n=t._self._setupProxy;return e(n.NcDashboardWidgetItem,{attrs:{"target-url":t.item.link,"overlay-icon-url":t.item.overlayIconUrl?t.item.overlayIconUrl:"","main-text":t.item.title,"sub-text":t.item.subtitle},scopedSlots:t._u([{key:"avatar",fn:function(){return[t.item.iconUrl?[t.roundedIcons?e(n.NcAvatar,{attrs:{size:t.iconSize,url:t.item.iconUrl}}):[e("img",{directives:[{name:"show",rawName:"v-show",value:!n.loadingImageFailed,expression:"!loadingImageFailed"}],staticClass:"api-dashboard-widget-item__icon",class:{"hidden-visually":!n.imageLoaded},attrs:{alt:"",src:t.item.iconUrl},on:{error:function(t){n.loadingImageFailed=!0},load:function(t){n.imageLoaded=!0}}}),t._v(" "),n.imageLoaded?t._e():e(n.IconFile,{attrs:{size:t.iconSize}})]]:t._e()]},proxy:!0}])})},[],!1,null,"bffdb06a",null).exports,CheckIcon:y.A,NcDashboardWidget:v.N,NcEmptyContent:A.A,NcButton:p.A},props:{widget:{type:[Object,void 0],default:void 0},data:{type:[Object,void 0],default:void 0},loading:{type:Boolean,required:!0}},data:()=>({iconSize:44}),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}},mounted(){const t=window.getComputedStyle(document.body).getPropertyValue("--default-clickable-area"),e=Number.parseFloat(t);this.iconSize=Number.isNaN(e)?44:e}},R=(0,m.A)(F,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({item:n}){return[e("ApiDashboardWidgetItem",{attrs:{item:n,"icon-size":t.iconSize,"rounded-icons":t.widget.item_icons_round}})]}},{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,null,null).exports,U=(0,a(35947).YK)().detectLogLevel().setApp("dashboard").build(),z={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}},G=(0,l.C)("dashboard","panels"),$=(0,l.C)("dashboard","firstRun"),H=new Date((0,l.C)("dashboard","birthdate")),V={weather:{text:t("dashboard","Weather"),icon:"icon-weather-status"},status:{text:t("dashboard","Status")}},Y={name:"DashboardApp",components:{ApiDashboardWidget:R,NcButton:p.A,Draggable:u(),NcModal:h.A,Pencil:b,NcUserStatusIcon:f.N},mixins:[z],setup:()=>({productName:window.OC.theme.productName}),data:()=>({isAdmin:(0,o.HW)().isAdmin,timer:new Date,registeredStatus:[],callbacks:{},callbacksStatus:{},allCallbacksStatus:{},statusInfo:V,enabledStatuses:(0,l.C)("dashboard","statuses"),panels:G,firstRun:$,displayName:(0,o.HW)()?.displayName,uid:(0,o.HW)()?.uid,layout:(0,l.C)("dashboard","layout").filter(t=>G[t]),modal:!1,appStoreUrl:(0,c.Jv)("/settings/apps/dashboard"),appStoreEnabled:(0,l.C)("dashboard","appStoreEnabled",!0),statuses:{},apiWidgets:[],apiWidgetItems:{},loadingItems:!0,birthdate:H}),computed:{greeting(){const e=this.timer.getHours();let n;n=this.birthdate instanceof Date&&this.birthdate.getMonth()===this.timer.getMonth()&&this.birthdate.getDate()===this.timer.getDate()?"birthday":e>=22||e<5?"night":e>=18?"evening":e>=12?"afternoon":"morning";const a={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})},birthday:{generic:t("dashboard","Happy birthday 🥳🤩🎂🎉"),withName:t("dashboard","Happy birthday, {name} 🥳🤩🎂🎉",{name:this.displayName},void 0,{escape:!1})}};return{text:this.displayName&&this.uid!==this.displayName?a[n].withName:a[n].generic}},isActive(){return t=>this.layout.indexOf(t.id)>-1},isStatusActive(){return t=>-1!==this.enabledStatuses.findIndex(e=>e===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),a=this.layout.indexOf(e.id);return-1===n||-1===a?a-n||t.id-e.id:n-a||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]),r.Ay.set(this.statuses,t,{mounted:!0})):U.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)&&this.layout.includes(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()=>{this.layout.includes(t.id)&&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){r.Ay.set(this.callbacks,t,e)},registerStatus(t,e){r.Ay.set(this.allCallbacksStatus,t,e),this.isStatusActive(t)&&(this.registeredStatus.push(t),this.$nextTick(()=>{r.Ay.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]}),r.Ay.set(this.panels[t],"mounted",!0)):U.error("Failed to register panel in the frontend as no backend data was provided for "+t)))}},saveLayout(){s.Ay.post((0,c.KT)("/apps/dashboard/api/v3/layout"),{layout:this.layout})},saveStatuses(){s.Ay.post((0,c.KT)("/apps/dashboard/api/v3/statuses"),{statuses: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),this.isApiWidgetV2(t.id)&&this.fetchApiWidgetItems([t.id],!0)),r.Ay.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.push(t),this.registerStatus(t,this.allCallbacksStatus[t]),this.saveStatuses()},disableStatus(t){const e=this.enabledStatuses.findIndex(e=>e===t);-1!==e&&this.enabledStatuses.splice(e,1);const n=this.registeredStatus.findIndex(e=>e===t);-1!==n&&(this.registeredStatus.splice(n,1),r.Ay.set(this.statuses,t,{mounted:!1}),this.$nextTick(()=>{r.Ay.delete(this.callbacksStatus,t)})),this.saveStatuses()},sortStatuses(t,e){const n=t.toLowerCase(),a=e.toLowerCase();return n>a?1:n70?document.body.classList.add("dashboard--scrolled"):document.body.classList.remove("dashboard--scrolled")},async fetchApiWidgets(){const{data:t}=await s.Ay.get((0,c.KT)("/apps/dashboard/api/v1/widgets"));this.apiWidgets=t.ocs.data},async fetchApiWidgetItems(t,e=!1){try{const n=(0,c.KT)("/apps/dashboard/api/v2/widget-items"),a=new URLSearchParams(t.map(t=>["widgets[]",t])),o=(await s.Ay.get(`${n}?${a.toString()}`)).data.ocs.data;this.apiWidgetItems=e?{...this.apiWidgetItems,...o}:o}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 X=a(58690),K={};K.styleTagTransform=j(),K.setAttributes=N(),K.insert=I().bind(null,"head"),K.domAPI=E(),K.insertStyleElement=P(),_()(X.A,K),X.A&&X.A.locals&&X.A.locals;var q=a(73731),Q={};Q.styleTagTransform=j(),Q.setAttributes=N(),Q.insert=I().bind(null,"head"),Q.domAPI=E(),Q.insertStyleElement=P(),_()(q.A,Q),q.A&&q.A.locals&&q.A.locals;const J=(0,m.A)(Y,function(){var t=this,e=t._self._c;return e("main",{attrs:{id:"app-dashboard"}},[e("h2",[t._v(t._s(t.greeting.text))]),t._v(" "),t.sortedRegisteredStatus.length>0?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._e(),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",[t.apiWidgets[t.panels[n].id].icon_url?e("img",{attrs:{src:t.apiWidgets[t.panels[n].id].icon_url,alt:""}}):e("span",{class:t.apiWidgets[t.panels[n].id].icon_class,attrs:{"aria-hidden":"true"}}),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("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-hidden":"true"}}),t._v("\n\t\t\t\t\t\t"+t._s(t.panels[n].title)+"\n\t\t\t\t\t")])]),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("h2",[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}},["status"===n?e("NcUserStatusIcon",{attrs:{status:"online","aria-hidden":"true"}}):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")],1)])}),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}},[n.iconUrl?e("img",{attrs:{alt:"",src:n.iconUrl}}):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&&t.appStoreEnabled?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("h2",[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 {productName} server on your behalf so the weather service receives no personal information.",{productName:t.productName}))+"\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,"4bfb0c4a",null).exports;a.nc=(0,o.aV)(),r.Ay.prototype.t=i.t;const Z=new(r.Ay.extend(J))({}).$mount("#app-content-vue");window.OCA.Dashboard={register:(t,e)=>Z.register(t,e),registerStatus:(t,e)=>Z.registerStatus(t,e)}},58690(t,e,n){"use strict";n.d(e,{A:()=>s});var a=n(71354),o=n.n(a),i=n(76314),r=n.n(i)()(o());r.push([t.id,"#app-dashboard[data-v-4bfb0c4a]{width:100%;min-height:100%;background-size:cover;background-position:center center;background-repeat:no-repeat;background-attachment:fixed}#app-dashboard>h2[data-v-4bfb0c4a]{color:var(--color-background-plain-text);text-align:center;font-size:32px;line-height:130%;padding:1rem 0}.panels[data-v-4bfb0c4a]{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-4bfb0c4a],.panels>div[data-v-4bfb0c4a]{--color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-main-text));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-container-large)}#body-user.theme--highcontrast .panel[data-v-4bfb0c4a],#body-user.theme--highcontrast .panels>div[data-v-4bfb0c4a]{border:2px solid var(--color-border)}.panel.sortable-ghost[data-v-4bfb0c4a],.panels>div.sortable-ghost[data-v-4bfb0c4a]{opacity:.1}.panel>.panel--header[data-v-4bfb0c4a],.panels>div>.panel--header[data-v-4bfb0c4a]{display:flex;z-index:1;top:50px;padding:16px;cursor:grab}.panel>.panel--header[data-v-4bfb0c4a],.panel>.panel--header[data-v-4bfb0c4a] *,.panels>div>.panel--header[data-v-4bfb0c4a],.panels>div>.panel--header[data-v-4bfb0c4a] *{-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-4bfb0c4a]:active,.panels>div>.panel--header[data-v-4bfb0c4a]:active{cursor:grabbing}.panel>.panel--header a[data-v-4bfb0c4a],.panels>div>.panel--header a[data-v-4bfb0c4a]{flex-grow:1}.panel>.panel--header>h2[data-v-4bfb0c4a],.panels>div>.panel--header>h2[data-v-4bfb0c4a]{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 img[data-v-4bfb0c4a],.panel>.panel--header>h2 span[data-v-4bfb0c4a],.panels>div>.panel--header>h2 img[data-v-4bfb0c4a],.panels>div>.panel--header>h2 span[data-v-4bfb0c4a]{background-size:32px;width:32px;height:32px;background-position:center;float:left;margin-top:-6px;margin-inline:6px 16px}.panel>.panel--header>h2 img[data-v-4bfb0c4a],.panels>div>.panel--header>h2 img[data-v-4bfb0c4a]{filter:var(--background-invert-if-dark)}.panel>.panel--content[data-v-4bfb0c4a],.panels>div>.panel--content[data-v-4bfb0c4a]{margin:0 16px 16px 16px;height:424px;overflow:visible}@media only screen and (max-width: 709px){.panel>.panel--content[data-v-4bfb0c4a],.panels>div>.panel--content[data-v-4bfb0c4a]{height:auto}}.footer[data-v-4bfb0c4a]{display:flex;justify-content:center;transition:bottom var(--animation-slow) ease-in-out;padding:1rem 0}.edit-panels[data-v-4bfb0c4a]{display:inline-block;margin:auto;background-position:16px center;padding:12px 16px;padding-inline-start:36px;border-radius:var(--border-radius-pill);max-width:200px;opacity:1;text-align:center}.button[data-v-4bfb0c4a],.button-vue[data-v-4bfb0c4a],.edit-panels[data-v-4bfb0c4a],.statuses[data-v-4bfb0c4a] .action-item .action-item__menutoggle,.statuses[data-v-4bfb0c4a] .action-item.action-item--open .action-item__menutoggle{--color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-main-text));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-4bfb0c4a]:hover,.button[data-v-4bfb0c4a]:focus,.button[data-v-4bfb0c4a]:active,.button-vue[data-v-4bfb0c4a]:hover,.button-vue[data-v-4bfb0c4a]:focus,.button-vue[data-v-4bfb0c4a]:active,.edit-panels[data-v-4bfb0c4a]:hover,.edit-panels[data-v-4bfb0c4a]:focus,.edit-panels[data-v-4bfb0c4a]:active,.statuses[data-v-4bfb0c4a] .action-item .action-item__menutoggle:hover,.statuses[data-v-4bfb0c4a] .action-item .action-item__menutoggle:focus,.statuses[data-v-4bfb0c4a] .action-item .action-item__menutoggle:active,.statuses[data-v-4bfb0c4a] .action-item.action-item--open .action-item__menutoggle:hover,.statuses[data-v-4bfb0c4a] .action-item.action-item--open .action-item__menutoggle:focus,.statuses[data-v-4bfb0c4a] .action-item.action-item--open .action-item__menutoggle:active{background-color:var(--color-background-hover) !important}.button[data-v-4bfb0c4a]:focus-visible,.button-vue[data-v-4bfb0c4a]:focus-visible,.edit-panels[data-v-4bfb0c4a]:focus-visible,.statuses[data-v-4bfb0c4a] .action-item .action-item__menutoggle:focus-visible,.statuses[data-v-4bfb0c4a] .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-4bfb0c4a]{padding:32px 16px;text-align:center}.modal__content ol[data-v-4bfb0c4a]{display:flex;flex-direction:row;justify-content:center;list-style-type:none;padding-bottom:16px}.modal__content li label[data-v-4bfb0c4a]{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:start;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal__content li label img[data-v-4bfb0c4a],.modal__content li label span[data-v-4bfb0c4a]{position:absolute;top:16px;width:24px;height:24px;background-size:24px}.modal__content li label img[data-v-4bfb0c4a]{filter:var(--background-invert-if-dark)}.modal__content li label[data-v-4bfb0c4a]:hover{border-color:var(--color-primary-element)}.modal__content li:not(.panel-status) label span[data-v-4bfb0c4a]{filter:var(--background-invert-if-dark)}.modal__content li input[type=checkbox].checkbox+label[data-v-4bfb0c4a]:before{position:absolute;inset-inline-end:12px;top:16px}.modal__content li input:focus+label[data-v-4bfb0c4a]{border-color:var(--color-primary-element)}.modal__content h2[data-v-4bfb0c4a]{font-weight:bold;margin-top:12px}.modal__content .button[data-v-4bfb0c4a]{display:inline-block;padding:10px 16px;margin:0}.modal__content p[data-v-4bfb0c4a]{max-width:650px;margin:0 auto}.modal__content p a[data-v-4bfb0c4a]:hover,.modal__content p a[data-v-4bfb0c4a]:focus{border-bottom:2px solid var(--color-border)}.modal__content .credits--end[data-v-4bfb0c4a]{padding-bottom:32px;color:var(--color-text-maxcontrast)}.modal__content .credits--end a[data-v-4bfb0c4a]{color:var(--color-text-maxcontrast)}.flip-list-move[data-v-4bfb0c4a]{transition:transform var(--animation-slow)}.statuses[data-v-4bfb0c4a]{display:flex;flex-direction:row;justify-content:center;flex-wrap:wrap;margin-bottom:36px}.statuses>li[data-v-4bfb0c4a]{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,mCAEC,wCAAA,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,qDAEC,+FAAA,CACA,WAAA,CACA,cAAA,CACA,WAAA,CACA,kBAAA,CACA,kDAAA,CACA,qDAAA,CACA,6CAAA,CACA,kDAAA,CAEA,mHACC,oCAAA,CAGD,mFACE,UAAA,CAGF,mFACC,YAAA,CACA,SAAA,CACA,QAAA,CACA,YAAA,CACA,WAAA,CAEA,0KAEC,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,CAEA,oMAEC,oBAAA,CACA,UAAA,CACA,WAAA,CACA,0BAAA,CACA,UAAA,CACA,eAAA,CACA,sBAAA,CAGD,iGACC,uCAAA,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,yBAAA,CACA,uCAAA,CACA,eAAA,CACA,SAAA,CACA,iBAAA,CAGD,wOAMC,+FAAA,CACA,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,gBAAA,CACA,eAAA,CACA,sBAAA,CACA,kBAAA,CAEA,6FAEC,iBAAA,CACA,QAAA,CACA,UAAA,CACA,WAAA,CACA,oBAAA,CAGD,8CACC,uCAAA,CAGD,gDACC,yCAAA,CAKF,kEACC,uCAAA,CAGD,+EACC,iBAAA,CACA,qBAAA,CACA,QAAA,CAGD,sDACC,yCAAA,CAIF,oCACC,gBAAA,CACA,eAAA,CAID,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\t// this is shown directly on the background image / color\n\t\tcolor: var(--color-background-plain-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\t// Ensure the maxcontrast color is set for the background\n\t--color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-main-text));\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-container-large);\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&,\n\t\t: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\n\t\t\timg,\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\tbackground-position: center;\n\t\t\t\tfloat: left;\n\t\t\t\tmargin-top: -6px;\n\t\t\t\tmargin-inline: 6px 16px;\n\t\t\t}\n\n\t\t\timg {\n\t\t\t\tfilter: var(--background-invert-if-dark);\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-inline-start: 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 :deep(.action-item .action-item__menutoggle),\n.statuses :deep(.action-item.action-item--open .action-item__menutoggle) {\n\t// Ensure the maxcontrast color is set for the background\n\t--color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-main-text));\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: start;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\twhite-space: nowrap;\n\n\t\t\timg,\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\timg {\n\t\t\t\tfilter: var(--background-invert-if-dark);\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\tinset-inline-end: 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\th2 {\n\t\tfont-weight: bold;\n\t\tmargin-top: 12px;\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},73731(t,e,n){"use strict";n.d(e,{A:()=>s});var a=n(71354),o=n.n(a),i=n(76314),r=n.n(i)()(o());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:";AAwxBA;CACA,4BAAA;AACA;AAEA;CACA,eAAA;AACA;AAEA;CACA,cAAA;AACA",sourcesContent:["\x3c!--\n - SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n --\x3e\n\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Pencil.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Pencil.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Pencil.vue?vue&type=template&id=7adfde2b\"\nimport script from \"./Pencil.vue?vue&type=script&lang=js\"\nexport * from \"./Pencil.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon pencil-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcDashboardWidget',{attrs:{\"items\":_vm.items,\"show-more-label\":_vm.showMoreLabel,\"show-more-url\":_vm.showMoreUrl,\"loading\":_vm.loading,\"show-items-and-empty-content\":!!_vm.halfEmptyContentMessage,\"half-empty-content-message\":_vm.halfEmptyContentMessage},scopedSlots:_vm._u([{key:\"default\",fn:function({ item }){return [_c('ApiDashboardWidgetItem',{attrs:{\"item\":item,\"icon-size\":_vm.iconSize,\"rounded-icons\":_vm.widget.item_icons_round}})]}},{key:\"empty-content\",fn:function(){return [(_vm.items.length === 0)?_c('NcEmptyContent',{attrs:{\"description\":_vm.emptyContentMessage},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.emptyContentMessage)?_c('CheckIcon',{attrs:{\"size\":65}}):_vm._e()]},proxy:true},{key:\"action\",fn:function(){return [(_vm.setupButton)?_c('NcButton',{attrs:{\"href\":_vm.setupButton.link}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.setupButton.text)+\"\\n\\t\\t\\t\\t\")]):_vm._e()]},proxy:true}],null,false,4172361897)}):_vm._e()]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.NcDashboardWidgetItem,{attrs:{\"target-url\":_vm.item.link,\"overlay-icon-url\":_vm.item.overlayIconUrl ? _vm.item.overlayIconUrl : '',\"main-text\":_vm.item.title,\"sub-text\":_vm.item.subtitle},scopedSlots:_vm._u([{key:\"avatar\",fn:function(){return [(_vm.item.iconUrl)?[(_vm.roundedIcons)?_c(_setup.NcAvatar,{attrs:{\"size\":_vm.iconSize,\"url\":_vm.item.iconUrl}}):[_c('img',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_setup.loadingImageFailed),expression:\"!loadingImageFailed\"}],staticClass:\"api-dashboard-widget-item__icon\",class:{ 'hidden-visually': !_setup.imageLoaded },attrs:{\"alt\":\"\",\"src\":_vm.item.iconUrl},on:{\"error\":function($event){_setup.loadingImageFailed = true},\"load\":function($event){_setup.imageLoaded = true}}}),_vm._v(\" \"),(!_setup.imageLoaded)?_c(_setup.IconFile,{attrs:{\"size\":_vm.iconSize}}):_vm._e()]]:_vm._e()]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ApiDashboardWidgetItem.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ApiDashboardWidgetItem.vue?vue&type=script&setup=true&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ApiDashboardWidgetItem.vue?vue&type=style&index=0&id=bffdb06a&prod&scoped=true&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ApiDashboardWidgetItem.vue?vue&type=style&index=0&id=bffdb06a&prod&scoped=true&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ApiDashboardWidgetItem.vue?vue&type=template&id=bffdb06a&scoped=true\"\nimport script from \"./ApiDashboardWidgetItem.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ApiDashboardWidgetItem.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./ApiDashboardWidgetItem.vue?vue&type=style&index=0&id=bffdb06a&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bffdb06a\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ApiDashboardWidget.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ApiDashboardWidget.vue?vue&type=script&lang=js\"","\n\n\n\n","import { render, staticRenderFns } from \"./ApiDashboardWidget.vue?vue&type=template&id=0c401fa9\"\nimport script from \"./ApiDashboardWidget.vue?vue&type=script&lang=js\"\nexport * from \"./ApiDashboardWidget.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getLoggerBuilder } from '@nextcloud/logger';\nexport const logger = getLoggerBuilder()\n .detectLogLevel()\n .setApp('dashboard')\n .build();\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tisMobile: this._isMobile(),\n\t\t}\n\t},\n\tbeforeMount() {\n\t\twindow.addEventListener('resize', this._onResize)\n\t},\n\tbeforeDestroy() {\n\t\twindow.removeEventListener('resize', this._onResize)\n\t},\n\tmethods: {\n\t\t_onResize() {\n\t\t\t// Update mobile mode\n\t\t\tthis.isMobile = this._isMobile()\n\t\t},\n\t\t_isMobile() {\n\t\t\t// check if content width is under 768px\n\t\t\treturn document.documentElement.clientWidth < 768\n\t\t},\n\t},\n}\n","\n\n\n\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardApp.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardApp.vue?vue&type=script&lang=js\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardApp.vue?vue&type=style&index=0&id=4bfb0c4a&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardApp.vue?vue&type=style&index=0&id=4bfb0c4a&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardApp.vue?vue&type=style&index=1&id=4bfb0c4a&prod&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardApp.vue?vue&type=style&index=1&id=4bfb0c4a&prod&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./DashboardApp.vue?vue&type=template&id=4bfb0c4a&scoped=true\"\nimport script from \"./DashboardApp.vue?vue&type=script&lang=js\"\nexport * from \"./DashboardApp.vue?vue&type=script&lang=js\"\nimport style0 from \"./DashboardApp.vue?vue&type=style&index=0&id=4bfb0c4a&prod&lang=scss&scoped=true\"\nimport style1 from \"./DashboardApp.vue?vue&type=style&index=1&id=4bfb0c4a&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4bfb0c4a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('main',{attrs:{\"id\":\"app-dashboard\"}},[_c('h2',[_vm._v(_vm._s(_vm.greeting.text))]),_vm._v(\" \"),(_vm.sortedRegisteredStatus.length > 0)?_c('ul',{staticClass:\"statuses\"},_vm._l((_vm.sortedRegisteredStatus),function(status){return _c('li',{key:status,attrs:{\"id\":'status-' + status}},[_c('div',{ref:'status-' + status,refInFor:true})])}),0):_vm._e(),_vm._v(\" \"),_c('Draggable',_vm._b({staticClass:\"panels\",attrs:{\"handle\":\".panel--header\"},on:{\"end\":_vm.saveLayout},model:{value:(_vm.layout),callback:function ($$v) {_vm.layout=$$v},expression:\"layout\"}},'Draggable',{ swapThreshold: 0.30, delay: 500, delayOnTouchOnly: true, touchStartThreshold: 3 },false),[_vm._l((_vm.layout),function(panelId){return [(_vm.isApiWidgetV2(_vm.panels[panelId].id))?_c('div',{key:`${_vm.panels[panelId].id}-v2`,staticClass:\"panel\"},[_c('div',{staticClass:\"panel--header\"},[_c('h2',[(_vm.apiWidgets[_vm.panels[panelId].id].icon_url)?_c('img',{attrs:{\"src\":_vm.apiWidgets[_vm.panels[panelId].id].icon_url,\"alt\":\"\"}}):_c('span',{class:_vm.apiWidgets[_vm.panels[panelId].id].icon_class,attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.apiWidgets[_vm.panels[panelId].id].title)+\"\\n\\t\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',{staticClass:\"panel--content\"},[_c('ApiDashboardWidget',{attrs:{\"widget\":_vm.apiWidgets[_vm.panels[panelId].id],\"data\":_vm.apiWidgetItems[_vm.panels[panelId].id],\"loading\":_vm.loadingItems}})],1)]):_c('div',{key:_vm.panels[panelId].id,staticClass:\"panel\"},[_c('div',{staticClass:\"panel--header\"},[_c('h2',[_c('span',{class:_vm.panels[panelId].iconClass,attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.panels[panelId].title)+\"\\n\\t\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',{staticClass:\"panel--content\",class:{ loading: !_vm.panels[panelId].mounted }},[_c('div',{ref:_vm.panels[panelId].id,refInFor:true,attrs:{\"data-id\":_vm.panels[panelId].id}})])])]})],2),_vm._v(\" \"),_c('div',{staticClass:\"footer\"},[_c('NcButton',{on:{\"click\":_vm.showModal},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Pencil',{attrs:{\"size\":20}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('dashboard', 'Customize'))+\"\\n\\t\\t\")])],1),_vm._v(\" \"),(_vm.modal)?_c('NcModal',{attrs:{\"size\":\"large\"},on:{\"close\":_vm.closeModal}},[_c('div',{staticClass:\"modal__content\"},[_c('h2',[_vm._v(_vm._s(_vm.t('dashboard', 'Edit widgets')))]),_vm._v(\" \"),_c('ol',{staticClass:\"panels\"},_vm._l((_vm.sortedAllStatuses),function(status){return _c('li',{key:status,class:'panel-' + status},[_c('input',{staticClass:\"checkbox\",attrs:{\"id\":'status-checkbox-' + status,\"type\":\"checkbox\"},domProps:{\"checked\":_vm.isStatusActive(status)},on:{\"input\":function($event){return _vm.updateStatusCheckbox(status, $event.target.checked)}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":'status-checkbox-' + status}},[(status === 'status')?_c('NcUserStatusIcon',{attrs:{\"status\":\"online\",\"aria-hidden\":\"true\"}}):_c('span',{class:_vm.statusInfo[status].icon,attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.statusInfo[status].text)+\"\\n\\t\\t\\t\\t\\t\")],1)])}),0),_vm._v(\" \"),_c('Draggable',_vm._b({staticClass:\"panels\",attrs:{\"tag\":\"ol\",\"handle\":\".draggable\"},on:{\"end\":_vm.saveLayout},model:{value:(_vm.layout),callback:function ($$v) {_vm.layout=$$v},expression:\"layout\"}},'Draggable',{ swapThreshold: 0.30, delay: 500, delayOnTouchOnly: true, touchStartThreshold: 3 },false),_vm._l((_vm.sortedPanels),function(panel){return _c('li',{key:panel.id,class:'panel-' + panel.id},[_c('input',{staticClass:\"checkbox\",attrs:{\"id\":'panel-checkbox-' + panel.id,\"type\":\"checkbox\"},domProps:{\"checked\":_vm.isActive(panel)},on:{\"input\":function($event){return _vm.updateCheckbox(panel, $event.target.checked)}}}),_vm._v(\" \"),_c('label',{class:{ draggable: _vm.isActive(panel) },attrs:{\"for\":'panel-checkbox-' + panel.id}},[(panel.iconUrl)?_c('img',{attrs:{\"alt\":\"\",\"src\":panel.iconUrl}}):_c('span',{class:panel.iconClass,attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(panel.title)+\"\\n\\t\\t\\t\\t\\t\")])])}),0),_vm._v(\" \"),(_vm.isAdmin && _vm.appStoreEnabled)?_c('a',{staticClass:\"button\",attrs:{\"href\":_vm.appStoreUrl}},[_vm._v(_vm._s(_vm.t('dashboard', 'Get more widgets from the App Store')))]):_vm._e(),_vm._v(\" \"),(_vm.statuses.weather && _vm.isStatusActive('weather'))?_c('div',[_c('h2',[_vm._v(_vm._s(_vm.t('dashboard', 'Weather service')))]),_vm._v(\" \"),_c('p',[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('dashboard', 'For your privacy, the weather data is requested by your {productName} server on your behalf so the weather service receives no personal information.', { productName: _vm.productName }))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('p',{staticClass:\"credits--end\"},[_c('a',{attrs:{\"href\":\"https://api.met.no/doc/TermsOfService\",\"target\":\"_blank\",\"rel\":\"noopener\"}},[_vm._v(_vm._s(_vm.t('dashboard', 'Weather data from Met.no')))]),_vm._v(\",\\n\\t\\t\\t\\t\\t\"),_c('a',{attrs:{\"href\":\"https://wiki.osmfoundation.org/wiki/Privacy_Policy\",\"target\":\"_blank\",\"rel\":\"noopener\"}},[_vm._v(_vm._s(_vm.t('dashboard', 'geocoding with Nominatim')))]),_vm._v(\",\\n\\t\\t\\t\\t\\t\"),_c('a',{attrs:{\"href\":\"https://www.opentopodata.org/#public-api\",\"target\":\"_blank\",\"rel\":\"noopener\"}},[_vm._v(_vm._s(_vm.t('dashboard', 'elevation data from OpenTopoData')))]),_vm._v(\".\\n\\t\\t\\t\\t\")])]):_vm._e()],1)]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCSPNonce } from '@nextcloud/auth'\nimport { t } from '@nextcloud/l10n'\nimport Vue from 'vue'\nimport DashboardApp from './DashboardApp.vue'\n\n__webpack_nonce__ = getCSPNonce()\n\nVue.prototype.t = t\n\nconst Dashboard = Vue.extend(DashboardApp)\nconst Instance = new Dashboard({}).$mount('#app-content-vue')\n\nwindow.OCA.Dashboard = {\n\tregister: (app, callback) => Instance.register(app, callback),\n\tregisterStatus: (app, callback) => Instance.registerStatus(app, callback),\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `#app-dashboard[data-v-4bfb0c4a]{width:100%;min-height:100%;background-size:cover;background-position:center center;background-repeat:no-repeat;background-attachment:fixed}#app-dashboard>h2[data-v-4bfb0c4a]{color:var(--color-background-plain-text);text-align:center;font-size:32px;line-height:130%;padding:1rem 0}.panels[data-v-4bfb0c4a]{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-4bfb0c4a],.panels>div[data-v-4bfb0c4a]{--color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-main-text));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-container-large)}#body-user.theme--highcontrast .panel[data-v-4bfb0c4a],#body-user.theme--highcontrast .panels>div[data-v-4bfb0c4a]{border:2px solid var(--color-border)}.panel.sortable-ghost[data-v-4bfb0c4a],.panels>div.sortable-ghost[data-v-4bfb0c4a]{opacity:.1}.panel>.panel--header[data-v-4bfb0c4a],.panels>div>.panel--header[data-v-4bfb0c4a]{display:flex;z-index:1;top:50px;padding:16px;cursor:grab}.panel>.panel--header[data-v-4bfb0c4a],.panel>.panel--header[data-v-4bfb0c4a] *,.panels>div>.panel--header[data-v-4bfb0c4a],.panels>div>.panel--header[data-v-4bfb0c4a] *{-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-4bfb0c4a]:active,.panels>div>.panel--header[data-v-4bfb0c4a]:active{cursor:grabbing}.panel>.panel--header a[data-v-4bfb0c4a],.panels>div>.panel--header a[data-v-4bfb0c4a]{flex-grow:1}.panel>.panel--header>h2[data-v-4bfb0c4a],.panels>div>.panel--header>h2[data-v-4bfb0c4a]{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 img[data-v-4bfb0c4a],.panel>.panel--header>h2 span[data-v-4bfb0c4a],.panels>div>.panel--header>h2 img[data-v-4bfb0c4a],.panels>div>.panel--header>h2 span[data-v-4bfb0c4a]{background-size:32px;width:32px;height:32px;background-position:center;float:left;margin-top:-6px;margin-inline:6px 16px}.panel>.panel--header>h2 img[data-v-4bfb0c4a],.panels>div>.panel--header>h2 img[data-v-4bfb0c4a]{filter:var(--background-invert-if-dark)}.panel>.panel--content[data-v-4bfb0c4a],.panels>div>.panel--content[data-v-4bfb0c4a]{margin:0 16px 16px 16px;height:424px;overflow:visible}@media only screen and (max-width: 709px){.panel>.panel--content[data-v-4bfb0c4a],.panels>div>.panel--content[data-v-4bfb0c4a]{height:auto}}.footer[data-v-4bfb0c4a]{display:flex;justify-content:center;transition:bottom var(--animation-slow) ease-in-out;padding:1rem 0}.edit-panels[data-v-4bfb0c4a]{display:inline-block;margin:auto;background-position:16px center;padding:12px 16px;padding-inline-start:36px;border-radius:var(--border-radius-pill);max-width:200px;opacity:1;text-align:center}.button[data-v-4bfb0c4a],.button-vue[data-v-4bfb0c4a],.edit-panels[data-v-4bfb0c4a],.statuses[data-v-4bfb0c4a] .action-item .action-item__menutoggle,.statuses[data-v-4bfb0c4a] .action-item.action-item--open .action-item__menutoggle{--color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-main-text));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-4bfb0c4a]:hover,.button[data-v-4bfb0c4a]:focus,.button[data-v-4bfb0c4a]:active,.button-vue[data-v-4bfb0c4a]:hover,.button-vue[data-v-4bfb0c4a]:focus,.button-vue[data-v-4bfb0c4a]:active,.edit-panels[data-v-4bfb0c4a]:hover,.edit-panels[data-v-4bfb0c4a]:focus,.edit-panels[data-v-4bfb0c4a]:active,.statuses[data-v-4bfb0c4a] .action-item .action-item__menutoggle:hover,.statuses[data-v-4bfb0c4a] .action-item .action-item__menutoggle:focus,.statuses[data-v-4bfb0c4a] .action-item .action-item__menutoggle:active,.statuses[data-v-4bfb0c4a] .action-item.action-item--open .action-item__menutoggle:hover,.statuses[data-v-4bfb0c4a] .action-item.action-item--open .action-item__menutoggle:focus,.statuses[data-v-4bfb0c4a] .action-item.action-item--open .action-item__menutoggle:active{background-color:var(--color-background-hover) !important}.button[data-v-4bfb0c4a]:focus-visible,.button-vue[data-v-4bfb0c4a]:focus-visible,.edit-panels[data-v-4bfb0c4a]:focus-visible,.statuses[data-v-4bfb0c4a] .action-item .action-item__menutoggle:focus-visible,.statuses[data-v-4bfb0c4a] .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-4bfb0c4a]{padding:32px 16px;text-align:center}.modal__content ol[data-v-4bfb0c4a]{display:flex;flex-direction:row;justify-content:center;list-style-type:none;padding-bottom:16px}.modal__content li label[data-v-4bfb0c4a]{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:start;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal__content li label img[data-v-4bfb0c4a],.modal__content li label span[data-v-4bfb0c4a]{position:absolute;top:16px;width:24px;height:24px;background-size:24px}.modal__content li label img[data-v-4bfb0c4a]{filter:var(--background-invert-if-dark)}.modal__content li label[data-v-4bfb0c4a]:hover{border-color:var(--color-primary-element)}.modal__content li:not(.panel-status) label span[data-v-4bfb0c4a]{filter:var(--background-invert-if-dark)}.modal__content li input[type=checkbox].checkbox+label[data-v-4bfb0c4a]:before{position:absolute;inset-inline-end:12px;top:16px}.modal__content li input:focus+label[data-v-4bfb0c4a]{border-color:var(--color-primary-element)}.modal__content h2[data-v-4bfb0c4a]{font-weight:bold;margin-top:12px}.modal__content .button[data-v-4bfb0c4a]{display:inline-block;padding:10px 16px;margin:0}.modal__content p[data-v-4bfb0c4a]{max-width:650px;margin:0 auto}.modal__content p a[data-v-4bfb0c4a]:hover,.modal__content p a[data-v-4bfb0c4a]:focus{border-bottom:2px solid var(--color-border)}.modal__content .credits--end[data-v-4bfb0c4a]{padding-bottom:32px;color:var(--color-text-maxcontrast)}.modal__content .credits--end a[data-v-4bfb0c4a]{color:var(--color-text-maxcontrast)}.flip-list-move[data-v-4bfb0c4a]{transition:transform var(--animation-slow)}.statuses[data-v-4bfb0c4a]{display:flex;flex-direction:row;justify-content:center;flex-wrap:wrap;margin-bottom:36px}.statuses>li[data-v-4bfb0c4a]{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,mCAEC,wCAAA,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,qDAEC,+FAAA,CACA,WAAA,CACA,cAAA,CACA,WAAA,CACA,kBAAA,CACA,kDAAA,CACA,qDAAA,CACA,6CAAA,CACA,kDAAA,CAEA,mHACC,oCAAA,CAGD,mFACE,UAAA,CAGF,mFACC,YAAA,CACA,SAAA,CACA,QAAA,CACA,YAAA,CACA,WAAA,CAEA,0KAEC,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,CAEA,oMAEC,oBAAA,CACA,UAAA,CACA,WAAA,CACA,0BAAA,CACA,UAAA,CACA,eAAA,CACA,sBAAA,CAGD,iGACC,uCAAA,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,yBAAA,CACA,uCAAA,CACA,eAAA,CACA,SAAA,CACA,iBAAA,CAGD,wOAMC,+FAAA,CACA,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,gBAAA,CACA,eAAA,CACA,sBAAA,CACA,kBAAA,CAEA,6FAEC,iBAAA,CACA,QAAA,CACA,UAAA,CACA,WAAA,CACA,oBAAA,CAGD,8CACC,uCAAA,CAGD,gDACC,yCAAA,CAKF,kEACC,uCAAA,CAGD,+EACC,iBAAA,CACA,qBAAA,CACA,QAAA,CAGD,sDACC,yCAAA,CAIF,oCACC,gBAAA,CACA,eAAA,CAID,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\\t// this is shown directly on the background image / color\\n\\t\\tcolor: var(--color-background-plain-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\\t// Ensure the maxcontrast color is set for the background\\n\\t--color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-main-text));\\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-container-large);\\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&,\\n\\t\\t: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\\n\\t\\t\\timg,\\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\\tbackground-position: center;\\n\\t\\t\\t\\tfloat: left;\\n\\t\\t\\t\\tmargin-top: -6px;\\n\\t\\t\\t\\tmargin-inline: 6px 16px;\\n\\t\\t\\t}\\n\\n\\t\\t\\timg {\\n\\t\\t\\t\\tfilter: var(--background-invert-if-dark);\\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-inline-start: 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 :deep(.action-item .action-item__menutoggle),\\n.statuses :deep(.action-item.action-item--open .action-item__menutoggle) {\\n\\t// Ensure the maxcontrast color is set for the background\\n\\t--color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-main-text));\\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: start;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\twhite-space: nowrap;\\n\\n\\t\\t\\timg,\\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\\timg {\\n\\t\\t\\t\\tfilter: var(--background-invert-if-dark);\\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\\tinset-inline-end: 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\\th2 {\\n\\t\\tfont-weight: bold;\\n\\t\\tmargin-top: 12px;\\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\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.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\":\";AAwxBA;CACA,4BAAA;AACA;AAEA;CACA,eAAA;AACA;AAEA;CACA,cAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\n.api-dashboard-widget-item__icon[data-v-bffdb06a] {\n\theight: var(--default-clickable-area);\n\twidth: var(--default-clickable-area);\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/dashboard/src/components/ApiDashboardWidgetItem.vue\"],\"names\":[],\"mappings\":\";AAmEA;CACA,qCAAA;CACA,oCAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/**!\n * Sortable 1.10.2\n * @author\tRubaXa \n * @author\towenm \n * @license MIT\n */\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nvar version = \"1.10.2\";\n\nfunction userAgent(pattern) {\n if (typeof window !== 'undefined' && window.navigator) {\n return !!\n /*@__PURE__*/\n navigator.userAgent.match(pattern);\n }\n}\n\nvar IE11OrLess = userAgent(/(?:Trident.*rv[ :]?11\\.|msie|iemobile|Windows Phone)/i);\nvar Edge = userAgent(/Edge/i);\nvar FireFox = userAgent(/firefox/i);\nvar Safari = userAgent(/safari/i) && !userAgent(/chrome/i) && !userAgent(/android/i);\nvar IOS = userAgent(/iP(ad|od|hone)/i);\nvar ChromeForAndroid = userAgent(/chrome/i) && userAgent(/android/i);\n\nvar captureMode = {\n capture: false,\n passive: false\n};\n\nfunction on(el, event, fn) {\n el.addEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction off(el, event, fn) {\n el.removeEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction matches(\n/**HTMLElement*/\nel,\n/**String*/\nselector) {\n if (!selector) return;\n selector[0] === '>' && (selector = selector.substring(1));\n\n if (el) {\n try {\n if (el.matches) {\n return el.matches(selector);\n } else if (el.msMatchesSelector) {\n return el.msMatchesSelector(selector);\n } else if (el.webkitMatchesSelector) {\n return el.webkitMatchesSelector(selector);\n }\n } catch (_) {\n return false;\n }\n }\n\n return false;\n}\n\nfunction getParentOrHost(el) {\n return el.host && el !== document && el.host.nodeType ? el.host : el.parentNode;\n}\n\nfunction closest(\n/**HTMLElement*/\nel,\n/**String*/\nselector,\n/**HTMLElement*/\nctx, includeCTX) {\n if (el) {\n ctx = ctx || document;\n\n do {\n if (selector != null && (selector[0] === '>' ? el.parentNode === ctx && matches(el, selector) : matches(el, selector)) || includeCTX && el === ctx) {\n return el;\n }\n\n if (el === ctx) break;\n /* jshint boss:true */\n } while (el = getParentOrHost(el));\n }\n\n return null;\n}\n\nvar R_SPACE = /\\s+/g;\n\nfunction toggleClass(el, name, state) {\n if (el && name) {\n if (el.classList) {\n el.classList[state ? 'add' : 'remove'](name);\n } else {\n var className = (' ' + el.className + ' ').replace(R_SPACE, ' ').replace(' ' + name + ' ', ' ');\n el.className = (className + (state ? ' ' + name : '')).replace(R_SPACE, ' ');\n }\n }\n}\n\nfunction css(el, prop, val) {\n var style = el && el.style;\n\n if (style) {\n if (val === void 0) {\n if (document.defaultView && document.defaultView.getComputedStyle) {\n val = document.defaultView.getComputedStyle(el, '');\n } else if (el.currentStyle) {\n val = el.currentStyle;\n }\n\n return prop === void 0 ? val : val[prop];\n } else {\n if (!(prop in style) && prop.indexOf('webkit') === -1) {\n prop = '-webkit-' + prop;\n }\n\n style[prop] = val + (typeof val === 'string' ? '' : 'px');\n }\n }\n}\n\nfunction matrix(el, selfOnly) {\n var appliedTransforms = '';\n\n if (typeof el === 'string') {\n appliedTransforms = el;\n } else {\n do {\n var transform = css(el, 'transform');\n\n if (transform && transform !== 'none') {\n appliedTransforms = transform + ' ' + appliedTransforms;\n }\n /* jshint boss:true */\n\n } while (!selfOnly && (el = el.parentNode));\n }\n\n var matrixFn = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix;\n /*jshint -W056 */\n\n return matrixFn && new matrixFn(appliedTransforms);\n}\n\nfunction find(ctx, tagName, iterator) {\n if (ctx) {\n var list = ctx.getElementsByTagName(tagName),\n i = 0,\n n = list.length;\n\n if (iterator) {\n for (; i < n; i++) {\n iterator(list[i], i);\n }\n }\n\n return list;\n }\n\n return [];\n}\n\nfunction getWindowScrollingElement() {\n var scrollingElement = document.scrollingElement;\n\n if (scrollingElement) {\n return scrollingElement;\n } else {\n return document.documentElement;\n }\n}\n/**\r\n * Returns the \"bounding client rect\" of given element\r\n * @param {HTMLElement} el The element whose boundingClientRect is wanted\r\n * @param {[Boolean]} relativeToContainingBlock Whether the rect should be relative to the containing block of (including) the container\r\n * @param {[Boolean]} relativeToNonStaticParent Whether the rect should be relative to the relative parent of (including) the contaienr\r\n * @param {[Boolean]} undoScale Whether the container's scale() should be undone\r\n * @param {[HTMLElement]} container The parent the element will be placed in\r\n * @return {Object} The boundingClientRect of el, with specified adjustments\r\n */\n\n\nfunction getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoScale, container) {\n if (!el.getBoundingClientRect && el !== window) return;\n var elRect, top, left, bottom, right, height, width;\n\n if (el !== window && el !== getWindowScrollingElement()) {\n elRect = el.getBoundingClientRect();\n top = elRect.top;\n left = elRect.left;\n bottom = elRect.bottom;\n right = elRect.right;\n height = elRect.height;\n width = elRect.width;\n } else {\n top = 0;\n left = 0;\n bottom = window.innerHeight;\n right = window.innerWidth;\n height = window.innerHeight;\n width = window.innerWidth;\n }\n\n if ((relativeToContainingBlock || relativeToNonStaticParent) && el !== window) {\n // Adjust for translate()\n container = container || el.parentNode; // solves #1123 (see: https://stackoverflow.com/a/37953806/6088312)\n // Not needed on <= IE11\n\n if (!IE11OrLess) {\n do {\n if (container && container.getBoundingClientRect && (css(container, 'transform') !== 'none' || relativeToNonStaticParent && css(container, 'position') !== 'static')) {\n var containerRect = container.getBoundingClientRect(); // Set relative to edges of padding box of container\n\n top -= containerRect.top + parseInt(css(container, 'border-top-width'));\n left -= containerRect.left + parseInt(css(container, 'border-left-width'));\n bottom = top + elRect.height;\n right = left + elRect.width;\n break;\n }\n /* jshint boss:true */\n\n } while (container = container.parentNode);\n }\n }\n\n if (undoScale && el !== window) {\n // Adjust for scale()\n var elMatrix = matrix(container || el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d;\n\n if (elMatrix) {\n top /= scaleY;\n left /= scaleX;\n width /= scaleX;\n height /= scaleY;\n bottom = top + height;\n right = left + width;\n }\n }\n\n return {\n top: top,\n left: left,\n bottom: bottom,\n right: right,\n width: width,\n height: height\n };\n}\n/**\r\n * Checks if a side of an element is scrolled past a side of its parents\r\n * @param {HTMLElement} el The element who's side being scrolled out of view is in question\r\n * @param {String} elSide Side of the element in question ('top', 'left', 'right', 'bottom')\r\n * @param {String} parentSide Side of the parent in question ('top', 'left', 'right', 'bottom')\r\n * @return {HTMLElement} The parent scroll element that the el's side is scrolled past, or null if there is no such element\r\n */\n\n\nfunction isScrolledPast(el, elSide, parentSide) {\n var parent = getParentAutoScrollElement(el, true),\n elSideVal = getRect(el)[elSide];\n /* jshint boss:true */\n\n while (parent) {\n var parentSideVal = getRect(parent)[parentSide],\n visible = void 0;\n\n if (parentSide === 'top' || parentSide === 'left') {\n visible = elSideVal >= parentSideVal;\n } else {\n visible = elSideVal <= parentSideVal;\n }\n\n if (!visible) return parent;\n if (parent === getWindowScrollingElement()) break;\n parent = getParentAutoScrollElement(parent, false);\n }\n\n return false;\n}\n/**\r\n * Gets nth child of el, ignoring hidden children, sortable's elements (does not ignore clone if it's visible)\r\n * and non-draggable elements\r\n * @param {HTMLElement} el The parent element\r\n * @param {Number} childNum The index of the child\r\n * @param {Object} options Parent Sortable's options\r\n * @return {HTMLElement} The child at index childNum, or null if not found\r\n */\n\n\nfunction getChild(el, childNum, options) {\n var currentChild = 0,\n i = 0,\n children = el.children;\n\n while (i < children.length) {\n if (children[i].style.display !== 'none' && children[i] !== Sortable.ghost && children[i] !== Sortable.dragged && closest(children[i], options.draggable, el, false)) {\n if (currentChild === childNum) {\n return children[i];\n }\n\n currentChild++;\n }\n\n i++;\n }\n\n return null;\n}\n/**\r\n * Gets the last child in the el, ignoring ghostEl or invisible elements (clones)\r\n * @param {HTMLElement} el Parent element\r\n * @param {selector} selector Any other elements that should be ignored\r\n * @return {HTMLElement} The last child, ignoring ghostEl\r\n */\n\n\nfunction lastChild(el, selector) {\n var last = el.lastElementChild;\n\n while (last && (last === Sortable.ghost || css(last, 'display') === 'none' || selector && !matches(last, selector))) {\n last = last.previousElementSibling;\n }\n\n return last || null;\n}\n/**\r\n * Returns the index of an element within its parent for a selected set of\r\n * elements\r\n * @param {HTMLElement} el\r\n * @param {selector} selector\r\n * @return {number}\r\n */\n\n\nfunction index(el, selector) {\n var index = 0;\n\n if (!el || !el.parentNode) {\n return -1;\n }\n /* jshint boss:true */\n\n\n while (el = el.previousElementSibling) {\n if (el.nodeName.toUpperCase() !== 'TEMPLATE' && el !== Sortable.clone && (!selector || matches(el, selector))) {\n index++;\n }\n }\n\n return index;\n}\n/**\r\n * Returns the scroll offset of the given element, added with all the scroll offsets of parent elements.\r\n * The value is returned in real pixels.\r\n * @param {HTMLElement} el\r\n * @return {Array} Offsets in the format of [left, top]\r\n */\n\n\nfunction getRelativeScrollOffset(el) {\n var offsetLeft = 0,\n offsetTop = 0,\n winScroller = getWindowScrollingElement();\n\n if (el) {\n do {\n var elMatrix = matrix(el),\n scaleX = elMatrix.a,\n scaleY = elMatrix.d;\n offsetLeft += el.scrollLeft * scaleX;\n offsetTop += el.scrollTop * scaleY;\n } while (el !== winScroller && (el = el.parentNode));\n }\n\n return [offsetLeft, offsetTop];\n}\n/**\r\n * Returns the index of the object within the given array\r\n * @param {Array} arr Array that may or may not hold the object\r\n * @param {Object} obj An object that has a key-value pair unique to and identical to a key-value pair in the object you want to find\r\n * @return {Number} The index of the object in the array, or -1\r\n */\n\n\nfunction indexOfObject(arr, obj) {\n for (var i in arr) {\n if (!arr.hasOwnProperty(i)) continue;\n\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && obj[key] === arr[i][key]) return Number(i);\n }\n }\n\n return -1;\n}\n\nfunction getParentAutoScrollElement(el, includeSelf) {\n // skip to window\n if (!el || !el.getBoundingClientRect) return getWindowScrollingElement();\n var elem = el;\n var gotSelf = false;\n\n do {\n // we don't need to get elem css if it isn't even overflowing in the first place (performance)\n if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) {\n var elemCSS = css(elem);\n\n if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == 'auto' || elemCSS.overflowX == 'scroll') || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == 'auto' || elemCSS.overflowY == 'scroll')) {\n if (!elem.getBoundingClientRect || elem === document.body) return getWindowScrollingElement();\n if (gotSelf || includeSelf) return elem;\n gotSelf = true;\n }\n }\n /* jshint boss:true */\n\n } while (elem = elem.parentNode);\n\n return getWindowScrollingElement();\n}\n\nfunction extend(dst, src) {\n if (dst && src) {\n for (var key in src) {\n if (src.hasOwnProperty(key)) {\n dst[key] = src[key];\n }\n }\n }\n\n return dst;\n}\n\nfunction isRectEqual(rect1, rect2) {\n return Math.round(rect1.top) === Math.round(rect2.top) && Math.round(rect1.left) === Math.round(rect2.left) && Math.round(rect1.height) === Math.round(rect2.height) && Math.round(rect1.width) === Math.round(rect2.width);\n}\n\nvar _throttleTimeout;\n\nfunction throttle(callback, ms) {\n return function () {\n if (!_throttleTimeout) {\n var args = arguments,\n _this = this;\n\n if (args.length === 1) {\n callback.call(_this, args[0]);\n } else {\n callback.apply(_this, args);\n }\n\n _throttleTimeout = setTimeout(function () {\n _throttleTimeout = void 0;\n }, ms);\n }\n };\n}\n\nfunction cancelThrottle() {\n clearTimeout(_throttleTimeout);\n _throttleTimeout = void 0;\n}\n\nfunction scrollBy(el, x, y) {\n el.scrollLeft += x;\n el.scrollTop += y;\n}\n\nfunction clone(el) {\n var Polymer = window.Polymer;\n var $ = window.jQuery || window.Zepto;\n\n if (Polymer && Polymer.dom) {\n return Polymer.dom(el).cloneNode(true);\n } else if ($) {\n return $(el).clone(true)[0];\n } else {\n return el.cloneNode(true);\n }\n}\n\nfunction setRect(el, rect) {\n css(el, 'position', 'absolute');\n css(el, 'top', rect.top);\n css(el, 'left', rect.left);\n css(el, 'width', rect.width);\n css(el, 'height', rect.height);\n}\n\nfunction unsetRect(el) {\n css(el, 'position', '');\n css(el, 'top', '');\n css(el, 'left', '');\n css(el, 'width', '');\n css(el, 'height', '');\n}\n\nvar expando = 'Sortable' + new Date().getTime();\n\nfunction AnimationStateManager() {\n var animationStates = [],\n animationCallbackId;\n return {\n captureAnimationState: function captureAnimationState() {\n animationStates = [];\n if (!this.options.animation) return;\n var children = [].slice.call(this.el.children);\n children.forEach(function (child) {\n if (css(child, 'display') === 'none' || child === Sortable.ghost) return;\n animationStates.push({\n target: child,\n rect: getRect(child)\n });\n\n var fromRect = _objectSpread({}, animationStates[animationStates.length - 1].rect); // If animating: compensate for current animation\n\n\n if (child.thisAnimationDuration) {\n var childMatrix = matrix(child, true);\n\n if (childMatrix) {\n fromRect.top -= childMatrix.f;\n fromRect.left -= childMatrix.e;\n }\n }\n\n child.fromRect = fromRect;\n });\n },\n addAnimationState: function addAnimationState(state) {\n animationStates.push(state);\n },\n removeAnimationState: function removeAnimationState(target) {\n animationStates.splice(indexOfObject(animationStates, {\n target: target\n }), 1);\n },\n animateAll: function animateAll(callback) {\n var _this = this;\n\n if (!this.options.animation) {\n clearTimeout(animationCallbackId);\n if (typeof callback === 'function') callback();\n return;\n }\n\n var animating = false,\n animationTime = 0;\n animationStates.forEach(function (state) {\n var time = 0,\n target = state.target,\n fromRect = target.fromRect,\n toRect = getRect(target),\n prevFromRect = target.prevFromRect,\n prevToRect = target.prevToRect,\n animatingRect = state.rect,\n targetMatrix = matrix(target, true);\n\n if (targetMatrix) {\n // Compensate for current animation\n toRect.top -= targetMatrix.f;\n toRect.left -= targetMatrix.e;\n }\n\n target.toRect = toRect;\n\n if (target.thisAnimationDuration) {\n // Could also check if animatingRect is between fromRect and toRect\n if (isRectEqual(prevFromRect, toRect) && !isRectEqual(fromRect, toRect) && // Make sure animatingRect is on line between toRect & fromRect\n (animatingRect.top - toRect.top) / (animatingRect.left - toRect.left) === (fromRect.top - toRect.top) / (fromRect.left - toRect.left)) {\n // If returning to same place as started from animation and on same axis\n time = calculateRealTime(animatingRect, prevFromRect, prevToRect, _this.options);\n }\n } // if fromRect != toRect: animate\n\n\n if (!isRectEqual(toRect, fromRect)) {\n target.prevFromRect = fromRect;\n target.prevToRect = toRect;\n\n if (!time) {\n time = _this.options.animation;\n }\n\n _this.animate(target, animatingRect, toRect, time);\n }\n\n if (time) {\n animating = true;\n animationTime = Math.max(animationTime, time);\n clearTimeout(target.animationResetTimer);\n target.animationResetTimer = setTimeout(function () {\n target.animationTime = 0;\n target.prevFromRect = null;\n target.fromRect = null;\n target.prevToRect = null;\n target.thisAnimationDuration = null;\n }, time);\n target.thisAnimationDuration = time;\n }\n });\n clearTimeout(animationCallbackId);\n\n if (!animating) {\n if (typeof callback === 'function') callback();\n } else {\n animationCallbackId = setTimeout(function () {\n if (typeof callback === 'function') callback();\n }, animationTime);\n }\n\n animationStates = [];\n },\n animate: function animate(target, currentRect, toRect, duration) {\n if (duration) {\n css(target, 'transition', '');\n css(target, 'transform', '');\n var elMatrix = matrix(this.el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d,\n translateX = (currentRect.left - toRect.left) / (scaleX || 1),\n translateY = (currentRect.top - toRect.top) / (scaleY || 1);\n target.animatingX = !!translateX;\n target.animatingY = !!translateY;\n css(target, 'transform', 'translate3d(' + translateX + 'px,' + translateY + 'px,0)');\n repaint(target); // repaint\n\n css(target, 'transition', 'transform ' + duration + 'ms' + (this.options.easing ? ' ' + this.options.easing : ''));\n css(target, 'transform', 'translate3d(0,0,0)');\n typeof target.animated === 'number' && clearTimeout(target.animated);\n target.animated = setTimeout(function () {\n css(target, 'transition', '');\n css(target, 'transform', '');\n target.animated = false;\n target.animatingX = false;\n target.animatingY = false;\n }, duration);\n }\n }\n };\n}\n\nfunction repaint(target) {\n return target.offsetWidth;\n}\n\nfunction calculateRealTime(animatingRect, fromRect, toRect, options) {\n return Math.sqrt(Math.pow(fromRect.top - animatingRect.top, 2) + Math.pow(fromRect.left - animatingRect.left, 2)) / Math.sqrt(Math.pow(fromRect.top - toRect.top, 2) + Math.pow(fromRect.left - toRect.left, 2)) * options.animation;\n}\n\nvar plugins = [];\nvar defaults = {\n initializeByDefault: true\n};\nvar PluginManager = {\n mount: function mount(plugin) {\n // Set default static properties\n for (var option in defaults) {\n if (defaults.hasOwnProperty(option) && !(option in plugin)) {\n plugin[option] = defaults[option];\n }\n }\n\n plugins.push(plugin);\n },\n pluginEvent: function pluginEvent(eventName, sortable, evt) {\n var _this = this;\n\n this.eventCanceled = false;\n\n evt.cancel = function () {\n _this.eventCanceled = true;\n };\n\n var eventNameGlobal = eventName + 'Global';\n plugins.forEach(function (plugin) {\n if (!sortable[plugin.pluginName]) return; // Fire global events if it exists in this sortable\n\n if (sortable[plugin.pluginName][eventNameGlobal]) {\n sortable[plugin.pluginName][eventNameGlobal](_objectSpread({\n sortable: sortable\n }, evt));\n } // Only fire plugin event if plugin is enabled in this sortable,\n // and plugin has event defined\n\n\n if (sortable.options[plugin.pluginName] && sortable[plugin.pluginName][eventName]) {\n sortable[plugin.pluginName][eventName](_objectSpread({\n sortable: sortable\n }, evt));\n }\n });\n },\n initializePlugins: function initializePlugins(sortable, el, defaults, options) {\n plugins.forEach(function (plugin) {\n var pluginName = plugin.pluginName;\n if (!sortable.options[pluginName] && !plugin.initializeByDefault) return;\n var initialized = new plugin(sortable, el, sortable.options);\n initialized.sortable = sortable;\n initialized.options = sortable.options;\n sortable[pluginName] = initialized; // Add default options from plugin\n\n _extends(defaults, initialized.defaults);\n });\n\n for (var option in sortable.options) {\n if (!sortable.options.hasOwnProperty(option)) continue;\n var modified = this.modifyOption(sortable, option, sortable.options[option]);\n\n if (typeof modified !== 'undefined') {\n sortable.options[option] = modified;\n }\n }\n },\n getEventProperties: function getEventProperties(name, sortable) {\n var eventProperties = {};\n plugins.forEach(function (plugin) {\n if (typeof plugin.eventProperties !== 'function') return;\n\n _extends(eventProperties, plugin.eventProperties.call(sortable[plugin.pluginName], name));\n });\n return eventProperties;\n },\n modifyOption: function modifyOption(sortable, name, value) {\n var modifiedValue;\n plugins.forEach(function (plugin) {\n // Plugin must exist on the Sortable\n if (!sortable[plugin.pluginName]) return; // If static option listener exists for this option, call in the context of the Sortable's instance of this plugin\n\n if (plugin.optionListeners && typeof plugin.optionListeners[name] === 'function') {\n modifiedValue = plugin.optionListeners[name].call(sortable[plugin.pluginName], value);\n }\n });\n return modifiedValue;\n }\n};\n\nfunction dispatchEvent(_ref) {\n var sortable = _ref.sortable,\n rootEl = _ref.rootEl,\n name = _ref.name,\n targetEl = _ref.targetEl,\n cloneEl = _ref.cloneEl,\n toEl = _ref.toEl,\n fromEl = _ref.fromEl,\n oldIndex = _ref.oldIndex,\n newIndex = _ref.newIndex,\n oldDraggableIndex = _ref.oldDraggableIndex,\n newDraggableIndex = _ref.newDraggableIndex,\n originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n extraEventProperties = _ref.extraEventProperties;\n sortable = sortable || rootEl && rootEl[expando];\n if (!sortable) return;\n var evt,\n options = sortable.options,\n onName = 'on' + name.charAt(0).toUpperCase() + name.substr(1); // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent(name, {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent(name, true, true);\n }\n\n evt.to = toEl || rootEl;\n evt.from = fromEl || rootEl;\n evt.item = targetEl || rootEl;\n evt.clone = cloneEl;\n evt.oldIndex = oldIndex;\n evt.newIndex = newIndex;\n evt.oldDraggableIndex = oldDraggableIndex;\n evt.newDraggableIndex = newDraggableIndex;\n evt.originalEvent = originalEvent;\n evt.pullMode = putSortable ? putSortable.lastPutMode : undefined;\n\n var allEventProperties = _objectSpread({}, extraEventProperties, PluginManager.getEventProperties(name, sortable));\n\n for (var option in allEventProperties) {\n evt[option] = allEventProperties[option];\n }\n\n if (rootEl) {\n rootEl.dispatchEvent(evt);\n }\n\n if (options[onName]) {\n options[onName].call(sortable, evt);\n }\n}\n\nvar pluginEvent = function pluginEvent(eventName, sortable) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n originalEvent = _ref.evt,\n data = _objectWithoutProperties(_ref, [\"evt\"]);\n\n PluginManager.pluginEvent.bind(Sortable)(eventName, sortable, _objectSpread({\n dragEl: dragEl,\n parentEl: parentEl,\n ghostEl: ghostEl,\n rootEl: rootEl,\n nextEl: nextEl,\n lastDownEl: lastDownEl,\n cloneEl: cloneEl,\n cloneHidden: cloneHidden,\n dragStarted: moved,\n putSortable: putSortable,\n activeSortable: Sortable.active,\n originalEvent: originalEvent,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n hideGhostForTarget: _hideGhostForTarget,\n unhideGhostForTarget: _unhideGhostForTarget,\n cloneNowHidden: function cloneNowHidden() {\n cloneHidden = true;\n },\n cloneNowShown: function cloneNowShown() {\n cloneHidden = false;\n },\n dispatchSortableEvent: function dispatchSortableEvent(name) {\n _dispatchEvent({\n sortable: sortable,\n name: name,\n originalEvent: originalEvent\n });\n }\n }, data));\n};\n\nfunction _dispatchEvent(info) {\n dispatchEvent(_objectSpread({\n putSortable: putSortable,\n cloneEl: cloneEl,\n targetEl: dragEl,\n rootEl: rootEl,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex\n }, info));\n}\n\nvar dragEl,\n parentEl,\n ghostEl,\n rootEl,\n nextEl,\n lastDownEl,\n cloneEl,\n cloneHidden,\n oldIndex,\n newIndex,\n oldDraggableIndex,\n newDraggableIndex,\n activeGroup,\n putSortable,\n awaitingDragStarted = false,\n ignoreNextClick = false,\n sortables = [],\n tapEvt,\n touchEvt,\n lastDx,\n lastDy,\n tapDistanceLeft,\n tapDistanceTop,\n moved,\n lastTarget,\n lastDirection,\n pastFirstInvertThresh = false,\n isCircumstantialInvert = false,\n targetMoveDistance,\n // For positioning ghost absolutely\nghostRelativeParent,\n ghostRelativeParentInitialScroll = [],\n // (left, top)\n_silent = false,\n savedInputChecked = [];\n/** @const */\n\nvar documentExists = typeof document !== 'undefined',\n PositionGhostAbsolutely = IOS,\n CSSFloatProperty = Edge || IE11OrLess ? 'cssFloat' : 'float',\n // This will not pass for IE9, because IE9 DnD only works on anchors\nsupportDraggable = documentExists && !ChromeForAndroid && !IOS && 'draggable' in document.createElement('div'),\n supportCssPointerEvents = function () {\n if (!documentExists) return; // false when <= IE11\n\n if (IE11OrLess) {\n return false;\n }\n\n var el = document.createElement('x');\n el.style.cssText = 'pointer-events:auto';\n return el.style.pointerEvents === 'auto';\n}(),\n _detectDirection = function _detectDirection(el, options) {\n var elCSS = css(el),\n elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth),\n child1 = getChild(el, 0, options),\n child2 = getChild(el, 1, options),\n firstChildCSS = child1 && css(child1),\n secondChildCSS = child2 && css(child2),\n firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width,\n secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width;\n\n if (elCSS.display === 'flex') {\n return elCSS.flexDirection === 'column' || elCSS.flexDirection === 'column-reverse' ? 'vertical' : 'horizontal';\n }\n\n if (elCSS.display === 'grid') {\n return elCSS.gridTemplateColumns.split(' ').length <= 1 ? 'vertical' : 'horizontal';\n }\n\n if (child1 && firstChildCSS[\"float\"] && firstChildCSS[\"float\"] !== 'none') {\n var touchingSideChild2 = firstChildCSS[\"float\"] === 'left' ? 'left' : 'right';\n return child2 && (secondChildCSS.clear === 'both' || secondChildCSS.clear === touchingSideChild2) ? 'vertical' : 'horizontal';\n }\n\n return child1 && (firstChildCSS.display === 'block' || firstChildCSS.display === 'flex' || firstChildCSS.display === 'table' || firstChildCSS.display === 'grid' || firstChildWidth >= elWidth && elCSS[CSSFloatProperty] === 'none' || child2 && elCSS[CSSFloatProperty] === 'none' && firstChildWidth + secondChildWidth > elWidth) ? 'vertical' : 'horizontal';\n},\n _dragElInRowColumn = function _dragElInRowColumn(dragRect, targetRect, vertical) {\n var dragElS1Opp = vertical ? dragRect.left : dragRect.top,\n dragElS2Opp = vertical ? dragRect.right : dragRect.bottom,\n dragElOppLength = vertical ? dragRect.width : dragRect.height,\n targetS1Opp = vertical ? targetRect.left : targetRect.top,\n targetS2Opp = vertical ? targetRect.right : targetRect.bottom,\n targetOppLength = vertical ? targetRect.width : targetRect.height;\n return dragElS1Opp === targetS1Opp || dragElS2Opp === targetS2Opp || dragElS1Opp + dragElOppLength / 2 === targetS1Opp + targetOppLength / 2;\n},\n\n/**\n * Detects first nearest empty sortable to X and Y position using emptyInsertThreshold.\n * @param {Number} x X position\n * @param {Number} y Y position\n * @return {HTMLElement} Element of the first found nearest Sortable\n */\n_detectNearestEmptySortable = function _detectNearestEmptySortable(x, y) {\n var ret;\n sortables.some(function (sortable) {\n if (lastChild(sortable)) return;\n var rect = getRect(sortable),\n threshold = sortable[expando].options.emptyInsertThreshold,\n insideHorizontally = x >= rect.left - threshold && x <= rect.right + threshold,\n insideVertically = y >= rect.top - threshold && y <= rect.bottom + threshold;\n\n if (threshold && insideHorizontally && insideVertically) {\n return ret = sortable;\n }\n });\n return ret;\n},\n _prepareGroup = function _prepareGroup(options) {\n function toFn(value, pull) {\n return function (to, from, dragEl, evt) {\n var sameGroup = to.options.group.name && from.options.group.name && to.options.group.name === from.options.group.name;\n\n if (value == null && (pull || sameGroup)) {\n // Default pull value\n // Default pull and put value if same group\n return true;\n } else if (value == null || value === false) {\n return false;\n } else if (pull && value === 'clone') {\n return value;\n } else if (typeof value === 'function') {\n return toFn(value(to, from, dragEl, evt), pull)(to, from, dragEl, evt);\n } else {\n var otherGroup = (pull ? to : from).options.group.name;\n return value === true || typeof value === 'string' && value === otherGroup || value.join && value.indexOf(otherGroup) > -1;\n }\n };\n }\n\n var group = {};\n var originalGroup = options.group;\n\n if (!originalGroup || _typeof(originalGroup) != 'object') {\n originalGroup = {\n name: originalGroup\n };\n }\n\n group.name = originalGroup.name;\n group.checkPull = toFn(originalGroup.pull, true);\n group.checkPut = toFn(originalGroup.put);\n group.revertClone = originalGroup.revertClone;\n options.group = group;\n},\n _hideGhostForTarget = function _hideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', 'none');\n }\n},\n _unhideGhostForTarget = function _unhideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', '');\n }\n}; // #1184 fix - Prevent click event on fallback if dragged but item not changed position\n\n\nif (documentExists) {\n document.addEventListener('click', function (evt) {\n if (ignoreNextClick) {\n evt.preventDefault();\n evt.stopPropagation && evt.stopPropagation();\n evt.stopImmediatePropagation && evt.stopImmediatePropagation();\n ignoreNextClick = false;\n return false;\n }\n }, true);\n}\n\nvar nearestEmptyInsertDetectEvent = function nearestEmptyInsertDetectEvent(evt) {\n if (dragEl) {\n evt = evt.touches ? evt.touches[0] : evt;\n\n var nearest = _detectNearestEmptySortable(evt.clientX, evt.clientY);\n\n if (nearest) {\n // Create imitation event\n var event = {};\n\n for (var i in evt) {\n if (evt.hasOwnProperty(i)) {\n event[i] = evt[i];\n }\n }\n\n event.target = event.rootEl = nearest;\n event.preventDefault = void 0;\n event.stopPropagation = void 0;\n\n nearest[expando]._onDragOver(event);\n }\n }\n};\n\nvar _checkOutsideTargetEl = function _checkOutsideTargetEl(evt) {\n if (dragEl) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target);\n }\n};\n/**\n * @class Sortable\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nfunction Sortable(el, options) {\n if (!(el && el.nodeType && el.nodeType === 1)) {\n throw \"Sortable: `el` must be an HTMLElement, not \".concat({}.toString.call(el));\n }\n\n this.el = el; // root element\n\n this.options = options = _extends({}, options); // Export instance\n\n el[expando] = this;\n var defaults = {\n group: null,\n sort: true,\n disabled: false,\n store: null,\n handle: null,\n draggable: /^[uo]l$/i.test(el.nodeName) ? '>li' : '>*',\n swapThreshold: 1,\n // percentage; 0 <= x <= 1\n invertSwap: false,\n // invert always\n invertedSwapThreshold: null,\n // will be set to same as swapThreshold if default\n removeCloneOnHide: true,\n direction: function direction() {\n return _detectDirection(el, this.options);\n },\n ghostClass: 'sortable-ghost',\n chosenClass: 'sortable-chosen',\n dragClass: 'sortable-drag',\n ignore: 'a, img',\n filter: null,\n preventOnFilter: true,\n animation: 0,\n easing: null,\n setData: function setData(dataTransfer, dragEl) {\n dataTransfer.setData('Text', dragEl.textContent);\n },\n dropBubble: false,\n dragoverBubble: false,\n dataIdAttr: 'data-id',\n delay: 0,\n delayOnTouchOnly: false,\n touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1,\n forceFallback: false,\n fallbackClass: 'sortable-fallback',\n fallbackOnBody: false,\n fallbackTolerance: 0,\n fallbackOffset: {\n x: 0,\n y: 0\n },\n supportPointer: Sortable.supportPointer !== false && 'PointerEvent' in window,\n emptyInsertThreshold: 5\n };\n PluginManager.initializePlugins(this, el, defaults); // Set default options\n\n for (var name in defaults) {\n !(name in options) && (options[name] = defaults[name]);\n }\n\n _prepareGroup(options); // Bind all private methods\n\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n } // Setup drag mode\n\n\n this.nativeDraggable = options.forceFallback ? false : supportDraggable;\n\n if (this.nativeDraggable) {\n // Touch start threshold cannot be greater than the native dragstart threshold\n this.options.touchStartThreshold = 1;\n } // Bind events\n\n\n if (options.supportPointer) {\n on(el, 'pointerdown', this._onTapStart);\n } else {\n on(el, 'mousedown', this._onTapStart);\n on(el, 'touchstart', this._onTapStart);\n }\n\n if (this.nativeDraggable) {\n on(el, 'dragover', this);\n on(el, 'dragenter', this);\n }\n\n sortables.push(this.el); // Restore sorting\n\n options.store && options.store.get && this.sort(options.store.get(this) || []); // Add animation state manager\n\n _extends(this, AnimationStateManager());\n}\n\nSortable.prototype =\n/** @lends Sortable.prototype */\n{\n constructor: Sortable,\n _isOutsideThisEl: function _isOutsideThisEl(target) {\n if (!this.el.contains(target) && target !== this.el) {\n lastTarget = null;\n }\n },\n _getDirection: function _getDirection(evt, target) {\n return typeof this.options.direction === 'function' ? this.options.direction.call(this, evt, target, dragEl) : this.options.direction;\n },\n _onTapStart: function _onTapStart(\n /** Event|TouchEvent */\n evt) {\n if (!evt.cancelable) return;\n\n var _this = this,\n el = this.el,\n options = this.options,\n preventOnFilter = options.preventOnFilter,\n type = evt.type,\n touch = evt.touches && evt.touches[0] || evt.pointerType && evt.pointerType === 'touch' && evt,\n target = (touch || evt).target,\n originalTarget = evt.target.shadowRoot && (evt.path && evt.path[0] || evt.composedPath && evt.composedPath()[0]) || target,\n filter = options.filter;\n\n _saveInputCheckedState(el); // Don't trigger start event when an element is been dragged, otherwise the evt.oldindex always wrong when set option.group.\n\n\n if (dragEl) {\n return;\n }\n\n if (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) {\n return; // only left button and enabled\n } // cancel dnd if original target is content editable\n\n\n if (originalTarget.isContentEditable) {\n return;\n }\n\n target = closest(target, options.draggable, el, false);\n\n if (target && target.animated) {\n return;\n }\n\n if (lastDownEl === target) {\n // Ignoring duplicate `down`\n return;\n } // Get the index of the dragged element within its parent\n\n\n oldIndex = index(target);\n oldDraggableIndex = index(target, options.draggable); // Check filter\n\n if (typeof filter === 'function') {\n if (filter.call(this, evt, target, this)) {\n _dispatchEvent({\n sortable: _this,\n rootEl: originalTarget,\n name: 'filter',\n targetEl: target,\n toEl: el,\n fromEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n } else if (filter) {\n filter = filter.split(',').some(function (criteria) {\n criteria = closest(originalTarget, criteria.trim(), el, false);\n\n if (criteria) {\n _dispatchEvent({\n sortable: _this,\n rootEl: criteria,\n name: 'filter',\n targetEl: target,\n fromEl: el,\n toEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n return true;\n }\n });\n\n if (filter) {\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n }\n\n if (options.handle && !closest(originalTarget, options.handle, el, false)) {\n return;\n } // Prepare `dragstart`\n\n\n this._prepareDragStart(evt, touch, target);\n },\n _prepareDragStart: function _prepareDragStart(\n /** Event */\n evt,\n /** Touch */\n touch,\n /** HTMLElement */\n target) {\n var _this = this,\n el = _this.el,\n options = _this.options,\n ownerDocument = el.ownerDocument,\n dragStartFn;\n\n if (target && !dragEl && target.parentNode === el) {\n var dragRect = getRect(target);\n rootEl = el;\n dragEl = target;\n parentEl = dragEl.parentNode;\n nextEl = dragEl.nextSibling;\n lastDownEl = target;\n activeGroup = options.group;\n Sortable.dragged = dragEl;\n tapEvt = {\n target: dragEl,\n clientX: (touch || evt).clientX,\n clientY: (touch || evt).clientY\n };\n tapDistanceLeft = tapEvt.clientX - dragRect.left;\n tapDistanceTop = tapEvt.clientY - dragRect.top;\n this._lastX = (touch || evt).clientX;\n this._lastY = (touch || evt).clientY;\n dragEl.style['will-change'] = 'all';\n\n dragStartFn = function dragStartFn() {\n pluginEvent('delayEnded', _this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n _this._onDrop();\n\n return;\n } // Delayed drag has been triggered\n // we can re-enable the events: touchmove/mousemove\n\n\n _this._disableDelayedDragEvents();\n\n if (!FireFox && _this.nativeDraggable) {\n dragEl.draggable = true;\n } // Bind the events: dragstart/dragend\n\n\n _this._triggerDragStart(evt, touch); // Drag start event\n\n\n _dispatchEvent({\n sortable: _this,\n name: 'choose',\n originalEvent: evt\n }); // Chosen item\n\n\n toggleClass(dragEl, options.chosenClass, true);\n }; // Disable \"draggable\"\n\n\n options.ignore.split(',').forEach(function (criteria) {\n find(dragEl, criteria.trim(), _disableDraggable);\n });\n on(ownerDocument, 'dragover', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mousemove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'touchmove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mouseup', _this._onDrop);\n on(ownerDocument, 'touchend', _this._onDrop);\n on(ownerDocument, 'touchcancel', _this._onDrop); // Make dragEl draggable (must be before delay for FireFox)\n\n if (FireFox && this.nativeDraggable) {\n this.options.touchStartThreshold = 4;\n dragEl.draggable = true;\n }\n\n pluginEvent('delayStart', this, {\n evt: evt\n }); // Delay is impossible for native DnD in Edge or IE\n\n if (options.delay && (!options.delayOnTouchOnly || touch) && (!this.nativeDraggable || !(Edge || IE11OrLess))) {\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n } // If the user moves the pointer or let go the click or touch\n // before the delay has been reached:\n // disable the delayed drag\n\n\n on(ownerDocument, 'mouseup', _this._disableDelayedDrag);\n on(ownerDocument, 'touchend', _this._disableDelayedDrag);\n on(ownerDocument, 'touchcancel', _this._disableDelayedDrag);\n on(ownerDocument, 'mousemove', _this._delayedDragTouchMoveHandler);\n on(ownerDocument, 'touchmove', _this._delayedDragTouchMoveHandler);\n options.supportPointer && on(ownerDocument, 'pointermove', _this._delayedDragTouchMoveHandler);\n _this._dragStartTimer = setTimeout(dragStartFn, options.delay);\n } else {\n dragStartFn();\n }\n }\n },\n _delayedDragTouchMoveHandler: function _delayedDragTouchMoveHandler(\n /** TouchEvent|PointerEvent **/\n e) {\n var touch = e.touches ? e.touches[0] : e;\n\n if (Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1))) {\n this._disableDelayedDrag();\n }\n },\n _disableDelayedDrag: function _disableDelayedDrag() {\n dragEl && _disableDraggable(dragEl);\n clearTimeout(this._dragStartTimer);\n\n this._disableDelayedDragEvents();\n },\n _disableDelayedDragEvents: function _disableDelayedDragEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._disableDelayedDrag);\n off(ownerDocument, 'touchend', this._disableDelayedDrag);\n off(ownerDocument, 'touchcancel', this._disableDelayedDrag);\n off(ownerDocument, 'mousemove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'touchmove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'pointermove', this._delayedDragTouchMoveHandler);\n },\n _triggerDragStart: function _triggerDragStart(\n /** Event */\n evt,\n /** Touch */\n touch) {\n touch = touch || evt.pointerType == 'touch' && evt;\n\n if (!this.nativeDraggable || touch) {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._onTouchMove);\n } else if (touch) {\n on(document, 'touchmove', this._onTouchMove);\n } else {\n on(document, 'mousemove', this._onTouchMove);\n }\n } else {\n on(dragEl, 'dragend', this);\n on(rootEl, 'dragstart', this._onDragStart);\n }\n\n try {\n if (document.selection) {\n // Timeout neccessary for IE9\n _nextTick(function () {\n document.selection.empty();\n });\n } else {\n window.getSelection().removeAllRanges();\n }\n } catch (err) {}\n },\n _dragStarted: function _dragStarted(fallback, evt) {\n\n awaitingDragStarted = false;\n\n if (rootEl && dragEl) {\n pluginEvent('dragStarted', this, {\n evt: evt\n });\n\n if (this.nativeDraggable) {\n on(document, 'dragover', _checkOutsideTargetEl);\n }\n\n var options = this.options; // Apply effect\n\n !fallback && toggleClass(dragEl, options.dragClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n Sortable.active = this;\n fallback && this._appendGhost(); // Drag start event\n\n _dispatchEvent({\n sortable: this,\n name: 'start',\n originalEvent: evt\n });\n } else {\n this._nulling();\n }\n },\n _emulateDragOver: function _emulateDragOver() {\n if (touchEvt) {\n this._lastX = touchEvt.clientX;\n this._lastY = touchEvt.clientY;\n\n _hideGhostForTarget();\n\n var target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n var parent = target;\n\n while (target && target.shadowRoot) {\n target = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n if (target === parent) break;\n parent = target;\n }\n\n dragEl.parentNode[expando]._isOutsideThisEl(target);\n\n if (parent) {\n do {\n if (parent[expando]) {\n var inserted = void 0;\n inserted = parent[expando]._onDragOver({\n clientX: touchEvt.clientX,\n clientY: touchEvt.clientY,\n target: target,\n rootEl: parent\n });\n\n if (inserted && !this.options.dragoverBubble) {\n break;\n }\n }\n\n target = parent; // store last element\n }\n /* jshint boss:true */\n while (parent = parent.parentNode);\n }\n\n _unhideGhostForTarget();\n }\n },\n _onTouchMove: function _onTouchMove(\n /**TouchEvent*/\n evt) {\n if (tapEvt) {\n var options = this.options,\n fallbackTolerance = options.fallbackTolerance,\n fallbackOffset = options.fallbackOffset,\n touch = evt.touches ? evt.touches[0] : evt,\n ghostMatrix = ghostEl && matrix(ghostEl, true),\n scaleX = ghostEl && ghostMatrix && ghostMatrix.a,\n scaleY = ghostEl && ghostMatrix && ghostMatrix.d,\n relativeScrollOffset = PositionGhostAbsolutely && ghostRelativeParent && getRelativeScrollOffset(ghostRelativeParent),\n dx = (touch.clientX - tapEvt.clientX + fallbackOffset.x) / (scaleX || 1) + (relativeScrollOffset ? relativeScrollOffset[0] - ghostRelativeParentInitialScroll[0] : 0) / (scaleX || 1),\n dy = (touch.clientY - tapEvt.clientY + fallbackOffset.y) / (scaleY || 1) + (relativeScrollOffset ? relativeScrollOffset[1] - ghostRelativeParentInitialScroll[1] : 0) / (scaleY || 1); // only set the status to dragging, when we are actually dragging\n\n if (!Sortable.active && !awaitingDragStarted) {\n if (fallbackTolerance && Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) < fallbackTolerance) {\n return;\n }\n\n this._onDragStart(evt, true);\n }\n\n if (ghostEl) {\n if (ghostMatrix) {\n ghostMatrix.e += dx - (lastDx || 0);\n ghostMatrix.f += dy - (lastDy || 0);\n } else {\n ghostMatrix = {\n a: 1,\n b: 0,\n c: 0,\n d: 1,\n e: dx,\n f: dy\n };\n }\n\n var cssMatrix = \"matrix(\".concat(ghostMatrix.a, \",\").concat(ghostMatrix.b, \",\").concat(ghostMatrix.c, \",\").concat(ghostMatrix.d, \",\").concat(ghostMatrix.e, \",\").concat(ghostMatrix.f, \")\");\n css(ghostEl, 'webkitTransform', cssMatrix);\n css(ghostEl, 'mozTransform', cssMatrix);\n css(ghostEl, 'msTransform', cssMatrix);\n css(ghostEl, 'transform', cssMatrix);\n lastDx = dx;\n lastDy = dy;\n touchEvt = touch;\n }\n\n evt.cancelable && evt.preventDefault();\n }\n },\n _appendGhost: function _appendGhost() {\n // Bug if using scale(): https://stackoverflow.com/questions/2637058\n // Not being adjusted for\n if (!ghostEl) {\n var container = this.options.fallbackOnBody ? document.body : rootEl,\n rect = getRect(dragEl, true, PositionGhostAbsolutely, true, container),\n options = this.options; // Position absolutely\n\n if (PositionGhostAbsolutely) {\n // Get relatively positioned parent\n ghostRelativeParent = container;\n\n while (css(ghostRelativeParent, 'position') === 'static' && css(ghostRelativeParent, 'transform') === 'none' && ghostRelativeParent !== document) {\n ghostRelativeParent = ghostRelativeParent.parentNode;\n }\n\n if (ghostRelativeParent !== document.body && ghostRelativeParent !== document.documentElement) {\n if (ghostRelativeParent === document) ghostRelativeParent = getWindowScrollingElement();\n rect.top += ghostRelativeParent.scrollTop;\n rect.left += ghostRelativeParent.scrollLeft;\n } else {\n ghostRelativeParent = getWindowScrollingElement();\n }\n\n ghostRelativeParentInitialScroll = getRelativeScrollOffset(ghostRelativeParent);\n }\n\n ghostEl = dragEl.cloneNode(true);\n toggleClass(ghostEl, options.ghostClass, false);\n toggleClass(ghostEl, options.fallbackClass, true);\n toggleClass(ghostEl, options.dragClass, true);\n css(ghostEl, 'transition', '');\n css(ghostEl, 'transform', '');\n css(ghostEl, 'box-sizing', 'border-box');\n css(ghostEl, 'margin', 0);\n css(ghostEl, 'top', rect.top);\n css(ghostEl, 'left', rect.left);\n css(ghostEl, 'width', rect.width);\n css(ghostEl, 'height', rect.height);\n css(ghostEl, 'opacity', '0.8');\n css(ghostEl, 'position', PositionGhostAbsolutely ? 'absolute' : 'fixed');\n css(ghostEl, 'zIndex', '100000');\n css(ghostEl, 'pointerEvents', 'none');\n Sortable.ghost = ghostEl;\n container.appendChild(ghostEl); // Set transform-origin\n\n css(ghostEl, 'transform-origin', tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + '% ' + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + '%');\n }\n },\n _onDragStart: function _onDragStart(\n /**Event*/\n evt,\n /**boolean*/\n fallback) {\n var _this = this;\n\n var dataTransfer = evt.dataTransfer;\n var options = _this.options;\n pluginEvent('dragStart', this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n }\n\n pluginEvent('setupClone', this);\n\n if (!Sortable.eventCanceled) {\n cloneEl = clone(dragEl);\n cloneEl.draggable = false;\n cloneEl.style['will-change'] = '';\n\n this._hideClone();\n\n toggleClass(cloneEl, this.options.chosenClass, false);\n Sortable.clone = cloneEl;\n } // #1143: IFrame support workaround\n\n\n _this.cloneId = _nextTick(function () {\n pluginEvent('clone', _this);\n if (Sortable.eventCanceled) return;\n\n if (!_this.options.removeCloneOnHide) {\n rootEl.insertBefore(cloneEl, dragEl);\n }\n\n _this._hideClone();\n\n _dispatchEvent({\n sortable: _this,\n name: 'clone'\n });\n });\n !fallback && toggleClass(dragEl, options.dragClass, true); // Set proper drop events\n\n if (fallback) {\n ignoreNextClick = true;\n _this._loopId = setInterval(_this._emulateDragOver, 50);\n } else {\n // Undo what was set in _prepareDragStart before drag started\n off(document, 'mouseup', _this._onDrop);\n off(document, 'touchend', _this._onDrop);\n off(document, 'touchcancel', _this._onDrop);\n\n if (dataTransfer) {\n dataTransfer.effectAllowed = 'move';\n options.setData && options.setData.call(_this, dataTransfer, dragEl);\n }\n\n on(document, 'drop', _this); // #1276 fix:\n\n css(dragEl, 'transform', 'translateZ(0)');\n }\n\n awaitingDragStarted = true;\n _this._dragStartId = _nextTick(_this._dragStarted.bind(_this, fallback, evt));\n on(document, 'selectstart', _this);\n moved = true;\n\n if (Safari) {\n css(document.body, 'user-select', 'none');\n }\n },\n // Returns true - if no further action is needed (either inserted or another condition)\n _onDragOver: function _onDragOver(\n /**Event*/\n evt) {\n var el = this.el,\n target = evt.target,\n dragRect,\n targetRect,\n revert,\n options = this.options,\n group = options.group,\n activeSortable = Sortable.active,\n isOwner = activeGroup === group,\n canSort = options.sort,\n fromSortable = putSortable || activeSortable,\n vertical,\n _this = this,\n completedFired = false;\n\n if (_silent) return;\n\n function dragOverEvent(name, extra) {\n pluginEvent(name, _this, _objectSpread({\n evt: evt,\n isOwner: isOwner,\n axis: vertical ? 'vertical' : 'horizontal',\n revert: revert,\n dragRect: dragRect,\n targetRect: targetRect,\n canSort: canSort,\n fromSortable: fromSortable,\n target: target,\n completed: completed,\n onMove: function onMove(target, after) {\n return _onMove(rootEl, el, dragEl, dragRect, target, getRect(target), evt, after);\n },\n changed: changed\n }, extra));\n } // Capture animation state\n\n\n function capture() {\n dragOverEvent('dragOverAnimationCapture');\n\n _this.captureAnimationState();\n\n if (_this !== fromSortable) {\n fromSortable.captureAnimationState();\n }\n } // Return invocation when dragEl is inserted (or completed)\n\n\n function completed(insertion) {\n dragOverEvent('dragOverCompleted', {\n insertion: insertion\n });\n\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n } else {\n activeSortable._showClone(_this);\n }\n\n if (_this !== fromSortable) {\n // Set ghost class to new sortable's ghost class\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : activeSortable.options.ghostClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n }\n\n if (putSortable !== _this && _this !== Sortable.active) {\n putSortable = _this;\n } else if (_this === Sortable.active && putSortable) {\n putSortable = null;\n } // Animation\n\n\n if (fromSortable === _this) {\n _this._ignoreWhileAnimating = target;\n }\n\n _this.animateAll(function () {\n dragOverEvent('dragOverAnimationComplete');\n _this._ignoreWhileAnimating = null;\n });\n\n if (_this !== fromSortable) {\n fromSortable.animateAll();\n fromSortable._ignoreWhileAnimating = null;\n }\n } // Null lastTarget if it is not inside a previously swapped element\n\n\n if (target === dragEl && !dragEl.animated || target === el && !target.animated) {\n lastTarget = null;\n } // no bubbling and not fallback\n\n\n if (!options.dragoverBubble && !evt.rootEl && target !== document) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target); // Do not detect for empty insert if already inserted\n\n\n !insertion && nearestEmptyInsertDetectEvent(evt);\n }\n\n !options.dragoverBubble && evt.stopPropagation && evt.stopPropagation();\n return completedFired = true;\n } // Call when dragEl has been inserted\n\n\n function changed() {\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n _dispatchEvent({\n sortable: _this,\n name: 'change',\n toEl: el,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n originalEvent: evt\n });\n }\n\n if (evt.preventDefault !== void 0) {\n evt.cancelable && evt.preventDefault();\n }\n\n target = closest(target, options.draggable, el, true);\n dragOverEvent('dragOver');\n if (Sortable.eventCanceled) return completedFired;\n\n if (dragEl.contains(evt.target) || target.animated && target.animatingX && target.animatingY || _this._ignoreWhileAnimating === target) {\n return completed(false);\n }\n\n ignoreNextClick = false;\n\n if (activeSortable && !options.disabled && (isOwner ? canSort || (revert = !rootEl.contains(dragEl)) // Reverting item into the original list\n : putSortable === this || (this.lastPutMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) && group.checkPut(this, activeSortable, dragEl, evt))) {\n vertical = this._getDirection(evt, target) === 'vertical';\n dragRect = getRect(dragEl);\n dragOverEvent('dragOverValid');\n if (Sortable.eventCanceled) return completedFired;\n\n if (revert) {\n parentEl = rootEl; // actualization\n\n capture();\n\n this._hideClone();\n\n dragOverEvent('revert');\n\n if (!Sortable.eventCanceled) {\n if (nextEl) {\n rootEl.insertBefore(dragEl, nextEl);\n } else {\n rootEl.appendChild(dragEl);\n }\n }\n\n return completed(true);\n }\n\n var elLastChild = lastChild(el, options.draggable);\n\n if (!elLastChild || _ghostIsLast(evt, vertical, this) && !elLastChild.animated) {\n // If already at end of list: Do not insert\n if (elLastChild === dragEl) {\n return completed(false);\n } // assign target only if condition is true\n\n\n if (elLastChild && el === evt.target) {\n target = elLastChild;\n }\n\n if (target) {\n targetRect = getRect(target);\n }\n\n if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, !!target) !== false) {\n capture();\n el.appendChild(dragEl);\n parentEl = el; // actualization\n\n changed();\n return completed(true);\n }\n } else if (target.parentNode === el) {\n targetRect = getRect(target);\n var direction = 0,\n targetBeforeFirstSwap,\n differentLevel = dragEl.parentNode !== el,\n differentRowCol = !_dragElInRowColumn(dragEl.animated && dragEl.toRect || dragRect, target.animated && target.toRect || targetRect, vertical),\n side1 = vertical ? 'top' : 'left',\n scrolledPastTop = isScrolledPast(target, 'top', 'top') || isScrolledPast(dragEl, 'top', 'top'),\n scrollBefore = scrolledPastTop ? scrolledPastTop.scrollTop : void 0;\n\n if (lastTarget !== target) {\n targetBeforeFirstSwap = targetRect[side1];\n pastFirstInvertThresh = false;\n isCircumstantialInvert = !differentRowCol && options.invertSwap || differentLevel;\n }\n\n direction = _getSwapDirection(evt, target, targetRect, vertical, differentRowCol ? 1 : options.swapThreshold, options.invertedSwapThreshold == null ? options.swapThreshold : options.invertedSwapThreshold, isCircumstantialInvert, lastTarget === target);\n var sibling;\n\n if (direction !== 0) {\n // Check if target is beside dragEl in respective direction (ignoring hidden elements)\n var dragIndex = index(dragEl);\n\n do {\n dragIndex -= direction;\n sibling = parentEl.children[dragIndex];\n } while (sibling && (css(sibling, 'display') === 'none' || sibling === ghostEl));\n } // If dragEl is already beside target: Do not insert\n\n\n if (direction === 0 || sibling === target) {\n return completed(false);\n }\n\n lastTarget = target;\n lastDirection = direction;\n var nextSibling = target.nextElementSibling,\n after = false;\n after = direction === 1;\n\n var moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after);\n\n if (moveVector !== false) {\n if (moveVector === 1 || moveVector === -1) {\n after = moveVector === 1;\n }\n\n _silent = true;\n setTimeout(_unsilent, 30);\n capture();\n\n if (after && !nextSibling) {\n el.appendChild(dragEl);\n } else {\n target.parentNode.insertBefore(dragEl, after ? nextSibling : target);\n } // Undo chrome's scroll adjustment (has no effect on other browsers)\n\n\n if (scrolledPastTop) {\n scrollBy(scrolledPastTop, 0, scrollBefore - scrolledPastTop.scrollTop);\n }\n\n parentEl = dragEl.parentNode; // actualization\n // must be done before animation\n\n if (targetBeforeFirstSwap !== undefined && !isCircumstantialInvert) {\n targetMoveDistance = Math.abs(targetBeforeFirstSwap - getRect(target)[side1]);\n }\n\n changed();\n return completed(true);\n }\n }\n\n if (el.contains(dragEl)) {\n return completed(false);\n }\n }\n\n return false;\n },\n _ignoreWhileAnimating: null,\n _offMoveEvents: function _offMoveEvents() {\n off(document, 'mousemove', this._onTouchMove);\n off(document, 'touchmove', this._onTouchMove);\n off(document, 'pointermove', this._onTouchMove);\n off(document, 'dragover', nearestEmptyInsertDetectEvent);\n off(document, 'mousemove', nearestEmptyInsertDetectEvent);\n off(document, 'touchmove', nearestEmptyInsertDetectEvent);\n },\n _offUpEvents: function _offUpEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._onDrop);\n off(ownerDocument, 'touchend', this._onDrop);\n off(ownerDocument, 'pointerup', this._onDrop);\n off(ownerDocument, 'touchcancel', this._onDrop);\n off(document, 'selectstart', this);\n },\n _onDrop: function _onDrop(\n /**Event*/\n evt) {\n var el = this.el,\n options = this.options; // Get the index of the dragged element within its parent\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n pluginEvent('drop', this, {\n evt: evt\n });\n parentEl = dragEl && dragEl.parentNode; // Get again after plugin event\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n if (Sortable.eventCanceled) {\n this._nulling();\n\n return;\n }\n\n awaitingDragStarted = false;\n isCircumstantialInvert = false;\n pastFirstInvertThresh = false;\n clearInterval(this._loopId);\n clearTimeout(this._dragStartTimer);\n\n _cancelNextTick(this.cloneId);\n\n _cancelNextTick(this._dragStartId); // Unbind events\n\n\n if (this.nativeDraggable) {\n off(document, 'drop', this);\n off(el, 'dragstart', this._onDragStart);\n }\n\n this._offMoveEvents();\n\n this._offUpEvents();\n\n if (Safari) {\n css(document.body, 'user-select', '');\n }\n\n css(dragEl, 'transform', '');\n\n if (evt) {\n if (moved) {\n evt.cancelable && evt.preventDefault();\n !options.dropBubble && evt.stopPropagation();\n }\n\n ghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl);\n\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n // Remove clone(s)\n cloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl);\n }\n\n if (dragEl) {\n if (this.nativeDraggable) {\n off(dragEl, 'dragend', this);\n }\n\n _disableDraggable(dragEl);\n\n dragEl.style['will-change'] = ''; // Remove classes\n // ghostClass is added in dragStarted\n\n if (moved && !awaitingDragStarted) {\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : this.options.ghostClass, false);\n }\n\n toggleClass(dragEl, this.options.chosenClass, false); // Drag stop event\n\n _dispatchEvent({\n sortable: this,\n name: 'unchoose',\n toEl: parentEl,\n newIndex: null,\n newDraggableIndex: null,\n originalEvent: evt\n });\n\n if (rootEl !== parentEl) {\n if (newIndex >= 0) {\n // Add event\n _dispatchEvent({\n rootEl: parentEl,\n name: 'add',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n }); // Remove event\n\n\n _dispatchEvent({\n sortable: this,\n name: 'remove',\n toEl: parentEl,\n originalEvent: evt\n }); // drag from one list and drop into another\n\n\n _dispatchEvent({\n rootEl: parentEl,\n name: 'sort',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n\n putSortable && putSortable.save();\n } else {\n if (newIndex !== oldIndex) {\n if (newIndex >= 0) {\n // drag & drop within the same list\n _dispatchEvent({\n sortable: this,\n name: 'update',\n toEl: parentEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n }\n }\n\n if (Sortable.active) {\n /* jshint eqnull:true */\n if (newIndex == null || newIndex === -1) {\n newIndex = oldIndex;\n newDraggableIndex = oldDraggableIndex;\n }\n\n _dispatchEvent({\n sortable: this,\n name: 'end',\n toEl: parentEl,\n originalEvent: evt\n }); // Save sorting\n\n\n this.save();\n }\n }\n }\n\n this._nulling();\n },\n _nulling: function _nulling() {\n pluginEvent('nulling', this);\n rootEl = dragEl = parentEl = ghostEl = nextEl = cloneEl = lastDownEl = cloneHidden = tapEvt = touchEvt = moved = newIndex = newDraggableIndex = oldIndex = oldDraggableIndex = lastTarget = lastDirection = putSortable = activeGroup = Sortable.dragged = Sortable.ghost = Sortable.clone = Sortable.active = null;\n savedInputChecked.forEach(function (el) {\n el.checked = true;\n });\n savedInputChecked.length = lastDx = lastDy = 0;\n },\n handleEvent: function handleEvent(\n /**Event*/\n evt) {\n switch (evt.type) {\n case 'drop':\n case 'dragend':\n this._onDrop(evt);\n\n break;\n\n case 'dragenter':\n case 'dragover':\n if (dragEl) {\n this._onDragOver(evt);\n\n _globalDragOver(evt);\n }\n\n break;\n\n case 'selectstart':\n evt.preventDefault();\n break;\n }\n },\n\n /**\n * Serializes the item into an array of string.\n * @returns {String[]}\n */\n toArray: function toArray() {\n var order = [],\n el,\n children = this.el.children,\n i = 0,\n n = children.length,\n options = this.options;\n\n for (; i < n; i++) {\n el = children[i];\n\n if (closest(el, options.draggable, this.el, false)) {\n order.push(el.getAttribute(options.dataIdAttr) || _generateId(el));\n }\n }\n\n return order;\n },\n\n /**\n * Sorts the elements according to the array.\n * @param {String[]} order order of the items\n */\n sort: function sort(order) {\n var items = {},\n rootEl = this.el;\n this.toArray().forEach(function (id, i) {\n var el = rootEl.children[i];\n\n if (closest(el, this.options.draggable, rootEl, false)) {\n items[id] = el;\n }\n }, this);\n order.forEach(function (id) {\n if (items[id]) {\n rootEl.removeChild(items[id]);\n rootEl.appendChild(items[id]);\n }\n });\n },\n\n /**\n * Save the current sorting\n */\n save: function save() {\n var store = this.options.store;\n store && store.set && store.set(this);\n },\n\n /**\n * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.\n * @param {HTMLElement} el\n * @param {String} [selector] default: `options.draggable`\n * @returns {HTMLElement|null}\n */\n closest: function closest$1(el, selector) {\n return closest(el, selector || this.options.draggable, this.el, false);\n },\n\n /**\n * Set/get option\n * @param {string} name\n * @param {*} [value]\n * @returns {*}\n */\n option: function option(name, value) {\n var options = this.options;\n\n if (value === void 0) {\n return options[name];\n } else {\n var modifiedValue = PluginManager.modifyOption(this, name, value);\n\n if (typeof modifiedValue !== 'undefined') {\n options[name] = modifiedValue;\n } else {\n options[name] = value;\n }\n\n if (name === 'group') {\n _prepareGroup(options);\n }\n }\n },\n\n /**\n * Destroy\n */\n destroy: function destroy() {\n pluginEvent('destroy', this);\n var el = this.el;\n el[expando] = null;\n off(el, 'mousedown', this._onTapStart);\n off(el, 'touchstart', this._onTapStart);\n off(el, 'pointerdown', this._onTapStart);\n\n if (this.nativeDraggable) {\n off(el, 'dragover', this);\n off(el, 'dragenter', this);\n } // Remove draggable attributes\n\n\n Array.prototype.forEach.call(el.querySelectorAll('[draggable]'), function (el) {\n el.removeAttribute('draggable');\n });\n\n this._onDrop();\n\n this._disableDelayedDragEvents();\n\n sortables.splice(sortables.indexOf(this.el), 1);\n this.el = el = null;\n },\n _hideClone: function _hideClone() {\n if (!cloneHidden) {\n pluginEvent('hideClone', this);\n if (Sortable.eventCanceled) return;\n css(cloneEl, 'display', 'none');\n\n if (this.options.removeCloneOnHide && cloneEl.parentNode) {\n cloneEl.parentNode.removeChild(cloneEl);\n }\n\n cloneHidden = true;\n }\n },\n _showClone: function _showClone(putSortable) {\n if (putSortable.lastPutMode !== 'clone') {\n this._hideClone();\n\n return;\n }\n\n if (cloneHidden) {\n pluginEvent('showClone', this);\n if (Sortable.eventCanceled) return; // show clone at dragEl or original position\n\n if (rootEl.contains(dragEl) && !this.options.group.revertClone) {\n rootEl.insertBefore(cloneEl, dragEl);\n } else if (nextEl) {\n rootEl.insertBefore(cloneEl, nextEl);\n } else {\n rootEl.appendChild(cloneEl);\n }\n\n if (this.options.group.revertClone) {\n this.animate(dragEl, cloneEl);\n }\n\n css(cloneEl, 'display', '');\n cloneHidden = false;\n }\n }\n};\n\nfunction _globalDragOver(\n/**Event*/\nevt) {\n if (evt.dataTransfer) {\n evt.dataTransfer.dropEffect = 'move';\n }\n\n evt.cancelable && evt.preventDefault();\n}\n\nfunction _onMove(fromEl, toEl, dragEl, dragRect, targetEl, targetRect, originalEvent, willInsertAfter) {\n var evt,\n sortable = fromEl[expando],\n onMoveFn = sortable.options.onMove,\n retVal; // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent('move', {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent('move', true, true);\n }\n\n evt.to = toEl;\n evt.from = fromEl;\n evt.dragged = dragEl;\n evt.draggedRect = dragRect;\n evt.related = targetEl || toEl;\n evt.relatedRect = targetRect || getRect(toEl);\n evt.willInsertAfter = willInsertAfter;\n evt.originalEvent = originalEvent;\n fromEl.dispatchEvent(evt);\n\n if (onMoveFn) {\n retVal = onMoveFn.call(sortable, evt, originalEvent);\n }\n\n return retVal;\n}\n\nfunction _disableDraggable(el) {\n el.draggable = false;\n}\n\nfunction _unsilent() {\n _silent = false;\n}\n\nfunction _ghostIsLast(evt, vertical, sortable) {\n var rect = getRect(lastChild(sortable.el, sortable.options.draggable));\n var spacer = 10;\n return vertical ? evt.clientX > rect.right + spacer || evt.clientX <= rect.right && evt.clientY > rect.bottom && evt.clientX >= rect.left : evt.clientX > rect.right && evt.clientY > rect.top || evt.clientX <= rect.right && evt.clientY > rect.bottom + spacer;\n}\n\nfunction _getSwapDirection(evt, target, targetRect, vertical, swapThreshold, invertedSwapThreshold, invertSwap, isLastTarget) {\n var mouseOnAxis = vertical ? evt.clientY : evt.clientX,\n targetLength = vertical ? targetRect.height : targetRect.width,\n targetS1 = vertical ? targetRect.top : targetRect.left,\n targetS2 = vertical ? targetRect.bottom : targetRect.right,\n invert = false;\n\n if (!invertSwap) {\n // Never invert or create dragEl shadow when target movemenet causes mouse to move past the end of regular swapThreshold\n if (isLastTarget && targetMoveDistance < targetLength * swapThreshold) {\n // multiplied only by swapThreshold because mouse will already be inside target by (1 - threshold) * targetLength / 2\n // check if past first invert threshold on side opposite of lastDirection\n if (!pastFirstInvertThresh && (lastDirection === 1 ? mouseOnAxis > targetS1 + targetLength * invertedSwapThreshold / 2 : mouseOnAxis < targetS2 - targetLength * invertedSwapThreshold / 2)) {\n // past first invert threshold, do not restrict inverted threshold to dragEl shadow\n pastFirstInvertThresh = true;\n }\n\n if (!pastFirstInvertThresh) {\n // dragEl shadow (target move distance shadow)\n if (lastDirection === 1 ? mouseOnAxis < targetS1 + targetMoveDistance // over dragEl shadow\n : mouseOnAxis > targetS2 - targetMoveDistance) {\n return -lastDirection;\n }\n } else {\n invert = true;\n }\n } else {\n // Regular\n if (mouseOnAxis > targetS1 + targetLength * (1 - swapThreshold) / 2 && mouseOnAxis < targetS2 - targetLength * (1 - swapThreshold) / 2) {\n return _getInsertDirection(target);\n }\n }\n }\n\n invert = invert || invertSwap;\n\n if (invert) {\n // Invert of regular\n if (mouseOnAxis < targetS1 + targetLength * invertedSwapThreshold / 2 || mouseOnAxis > targetS2 - targetLength * invertedSwapThreshold / 2) {\n return mouseOnAxis > targetS1 + targetLength / 2 ? 1 : -1;\n }\n }\n\n return 0;\n}\n/**\n * Gets the direction dragEl must be swapped relative to target in order to make it\n * seem that dragEl has been \"inserted\" into that element's position\n * @param {HTMLElement} target The target whose position dragEl is being inserted at\n * @return {Number} Direction dragEl must be swapped\n */\n\n\nfunction _getInsertDirection(target) {\n if (index(dragEl) < index(target)) {\n return 1;\n } else {\n return -1;\n }\n}\n/**\n * Generate id\n * @param {HTMLElement} el\n * @returns {String}\n * @private\n */\n\n\nfunction _generateId(el) {\n var str = el.tagName + el.className + el.src + el.href + el.textContent,\n i = str.length,\n sum = 0;\n\n while (i--) {\n sum += str.charCodeAt(i);\n }\n\n return sum.toString(36);\n}\n\nfunction _saveInputCheckedState(root) {\n savedInputChecked.length = 0;\n var inputs = root.getElementsByTagName('input');\n var idx = inputs.length;\n\n while (idx--) {\n var el = inputs[idx];\n el.checked && savedInputChecked.push(el);\n }\n}\n\nfunction _nextTick(fn) {\n return setTimeout(fn, 0);\n}\n\nfunction _cancelNextTick(id) {\n return clearTimeout(id);\n} // Fixed #973:\n\n\nif (documentExists) {\n on(document, 'touchmove', function (evt) {\n if ((Sortable.active || awaitingDragStarted) && evt.cancelable) {\n evt.preventDefault();\n }\n });\n} // Export utils\n\n\nSortable.utils = {\n on: on,\n off: off,\n css: css,\n find: find,\n is: function is(el, selector) {\n return !!closest(el, selector, el, false);\n },\n extend: extend,\n throttle: throttle,\n closest: closest,\n toggleClass: toggleClass,\n clone: clone,\n index: index,\n nextTick: _nextTick,\n cancelNextTick: _cancelNextTick,\n detectDirection: _detectDirection,\n getChild: getChild\n};\n/**\n * Get the Sortable instance of an element\n * @param {HTMLElement} element The element\n * @return {Sortable|undefined} The instance of Sortable\n */\n\nSortable.get = function (element) {\n return element[expando];\n};\n/**\n * Mount a plugin to Sortable\n * @param {...SortablePlugin|SortablePlugin[]} plugins Plugins being mounted\n */\n\n\nSortable.mount = function () {\n for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins[_key] = arguments[_key];\n }\n\n if (plugins[0].constructor === Array) plugins = plugins[0];\n plugins.forEach(function (plugin) {\n if (!plugin.prototype || !plugin.prototype.constructor) {\n throw \"Sortable: Mounted plugin must be a constructor function, not \".concat({}.toString.call(plugin));\n }\n\n if (plugin.utils) Sortable.utils = _objectSpread({}, Sortable.utils, plugin.utils);\n PluginManager.mount(plugin);\n });\n};\n/**\n * Create sortable instance\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nSortable.create = function (el, options) {\n return new Sortable(el, options);\n}; // Export\n\n\nSortable.version = version;\n\nvar autoScrolls = [],\n scrollEl,\n scrollRootEl,\n scrolling = false,\n lastAutoScrollX,\n lastAutoScrollY,\n touchEvt$1,\n pointerElemChangedInterval;\n\nfunction AutoScrollPlugin() {\n function AutoScroll() {\n this.defaults = {\n scroll: true,\n scrollSensitivity: 30,\n scrollSpeed: 10,\n bubbleScroll: true\n }; // Bind all private methods\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n }\n\n AutoScroll.prototype = {\n dragStarted: function dragStarted(_ref) {\n var originalEvent = _ref.originalEvent;\n\n if (this.sortable.nativeDraggable) {\n on(document, 'dragover', this._handleAutoScroll);\n } else {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._handleFallbackAutoScroll);\n } else if (originalEvent.touches) {\n on(document, 'touchmove', this._handleFallbackAutoScroll);\n } else {\n on(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref2) {\n var originalEvent = _ref2.originalEvent;\n\n // For when bubbling is canceled and using fallback (fallback 'touchmove' always reached)\n if (!this.options.dragOverBubble && !originalEvent.rootEl) {\n this._handleAutoScroll(originalEvent);\n }\n },\n drop: function drop() {\n if (this.sortable.nativeDraggable) {\n off(document, 'dragover', this._handleAutoScroll);\n } else {\n off(document, 'pointermove', this._handleFallbackAutoScroll);\n off(document, 'touchmove', this._handleFallbackAutoScroll);\n off(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n\n clearPointerElemChangedInterval();\n clearAutoScrolls();\n cancelThrottle();\n },\n nulling: function nulling() {\n touchEvt$1 = scrollRootEl = scrollEl = scrolling = pointerElemChangedInterval = lastAutoScrollX = lastAutoScrollY = null;\n autoScrolls.length = 0;\n },\n _handleFallbackAutoScroll: function _handleFallbackAutoScroll(evt) {\n this._handleAutoScroll(evt, true);\n },\n _handleAutoScroll: function _handleAutoScroll(evt, fallback) {\n var _this = this;\n\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n elem = document.elementFromPoint(x, y);\n touchEvt$1 = evt; // IE does not seem to have native autoscroll,\n // Edge's autoscroll seems too conditional,\n // MACOS Safari does not have autoscroll,\n // Firefox and Chrome are good\n\n if (fallback || Edge || IE11OrLess || Safari) {\n autoScroll(evt, this.options, elem, fallback); // Listener for pointer element change\n\n var ogElemScroller = getParentAutoScrollElement(elem, true);\n\n if (scrolling && (!pointerElemChangedInterval || x !== lastAutoScrollX || y !== lastAutoScrollY)) {\n pointerElemChangedInterval && clearPointerElemChangedInterval(); // Detect for pointer elem change, emulating native DnD behaviour\n\n pointerElemChangedInterval = setInterval(function () {\n var newElem = getParentAutoScrollElement(document.elementFromPoint(x, y), true);\n\n if (newElem !== ogElemScroller) {\n ogElemScroller = newElem;\n clearAutoScrolls();\n }\n\n autoScroll(evt, _this.options, newElem, fallback);\n }, 10);\n lastAutoScrollX = x;\n lastAutoScrollY = y;\n }\n } else {\n // if DnD is enabled (and browser has good autoscrolling), first autoscroll will already scroll, so get parent autoscroll of first autoscroll\n if (!this.options.bubbleScroll || getParentAutoScrollElement(elem, true) === getWindowScrollingElement()) {\n clearAutoScrolls();\n return;\n }\n\n autoScroll(evt, this.options, getParentAutoScrollElement(elem, false), false);\n }\n }\n };\n return _extends(AutoScroll, {\n pluginName: 'scroll',\n initializeByDefault: true\n });\n}\n\nfunction clearAutoScrolls() {\n autoScrolls.forEach(function (autoScroll) {\n clearInterval(autoScroll.pid);\n });\n autoScrolls = [];\n}\n\nfunction clearPointerElemChangedInterval() {\n clearInterval(pointerElemChangedInterval);\n}\n\nvar autoScroll = throttle(function (evt, options, rootEl, isFallback) {\n // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=505521\n if (!options.scroll) return;\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n sens = options.scrollSensitivity,\n speed = options.scrollSpeed,\n winScroller = getWindowScrollingElement();\n var scrollThisInstance = false,\n scrollCustomFn; // New scroll root, set scrollEl\n\n if (scrollRootEl !== rootEl) {\n scrollRootEl = rootEl;\n clearAutoScrolls();\n scrollEl = options.scroll;\n scrollCustomFn = options.scrollFn;\n\n if (scrollEl === true) {\n scrollEl = getParentAutoScrollElement(rootEl, true);\n }\n }\n\n var layersOut = 0;\n var currentParent = scrollEl;\n\n do {\n var el = currentParent,\n rect = getRect(el),\n top = rect.top,\n bottom = rect.bottom,\n left = rect.left,\n right = rect.right,\n width = rect.width,\n height = rect.height,\n canScrollX = void 0,\n canScrollY = void 0,\n scrollWidth = el.scrollWidth,\n scrollHeight = el.scrollHeight,\n elCSS = css(el),\n scrollPosX = el.scrollLeft,\n scrollPosY = el.scrollTop;\n\n if (el === winScroller) {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll' || elCSS.overflowX === 'visible');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll' || elCSS.overflowY === 'visible');\n } else {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll');\n }\n\n var vx = canScrollX && (Math.abs(right - x) <= sens && scrollPosX + width < scrollWidth) - (Math.abs(left - x) <= sens && !!scrollPosX);\n var vy = canScrollY && (Math.abs(bottom - y) <= sens && scrollPosY + height < scrollHeight) - (Math.abs(top - y) <= sens && !!scrollPosY);\n\n if (!autoScrolls[layersOut]) {\n for (var i = 0; i <= layersOut; i++) {\n if (!autoScrolls[i]) {\n autoScrolls[i] = {};\n }\n }\n }\n\n if (autoScrolls[layersOut].vx != vx || autoScrolls[layersOut].vy != vy || autoScrolls[layersOut].el !== el) {\n autoScrolls[layersOut].el = el;\n autoScrolls[layersOut].vx = vx;\n autoScrolls[layersOut].vy = vy;\n clearInterval(autoScrolls[layersOut].pid);\n\n if (vx != 0 || vy != 0) {\n scrollThisInstance = true;\n /* jshint loopfunc:true */\n\n autoScrolls[layersOut].pid = setInterval(function () {\n // emulate drag over during autoscroll (fallback), emulating native DnD behaviour\n if (isFallback && this.layer === 0) {\n Sortable.active._onTouchMove(touchEvt$1); // To move ghost if it is positioned absolutely\n\n }\n\n var scrollOffsetY = autoScrolls[this.layer].vy ? autoScrolls[this.layer].vy * speed : 0;\n var scrollOffsetX = autoScrolls[this.layer].vx ? autoScrolls[this.layer].vx * speed : 0;\n\n if (typeof scrollCustomFn === 'function') {\n if (scrollCustomFn.call(Sortable.dragged.parentNode[expando], scrollOffsetX, scrollOffsetY, evt, touchEvt$1, autoScrolls[this.layer].el) !== 'continue') {\n return;\n }\n }\n\n scrollBy(autoScrolls[this.layer].el, scrollOffsetX, scrollOffsetY);\n }.bind({\n layer: layersOut\n }), 24);\n }\n }\n\n layersOut++;\n } while (options.bubbleScroll && currentParent !== winScroller && (currentParent = getParentAutoScrollElement(currentParent, false)));\n\n scrolling = scrollThisInstance; // in case another function catches scrolling as false in between when it is not\n}, 30);\n\nvar drop = function drop(_ref) {\n var originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n dragEl = _ref.dragEl,\n activeSortable = _ref.activeSortable,\n dispatchSortableEvent = _ref.dispatchSortableEvent,\n hideGhostForTarget = _ref.hideGhostForTarget,\n unhideGhostForTarget = _ref.unhideGhostForTarget;\n if (!originalEvent) return;\n var toSortable = putSortable || activeSortable;\n hideGhostForTarget();\n var touch = originalEvent.changedTouches && originalEvent.changedTouches.length ? originalEvent.changedTouches[0] : originalEvent;\n var target = document.elementFromPoint(touch.clientX, touch.clientY);\n unhideGhostForTarget();\n\n if (toSortable && !toSortable.el.contains(target)) {\n dispatchSortableEvent('spill');\n this.onSpill({\n dragEl: dragEl,\n putSortable: putSortable\n });\n }\n};\n\nfunction Revert() {}\n\nRevert.prototype = {\n startIndex: null,\n dragStart: function dragStart(_ref2) {\n var oldDraggableIndex = _ref2.oldDraggableIndex;\n this.startIndex = oldDraggableIndex;\n },\n onSpill: function onSpill(_ref3) {\n var dragEl = _ref3.dragEl,\n putSortable = _ref3.putSortable;\n this.sortable.captureAnimationState();\n\n if (putSortable) {\n putSortable.captureAnimationState();\n }\n\n var nextSibling = getChild(this.sortable.el, this.startIndex, this.options);\n\n if (nextSibling) {\n this.sortable.el.insertBefore(dragEl, nextSibling);\n } else {\n this.sortable.el.appendChild(dragEl);\n }\n\n this.sortable.animateAll();\n\n if (putSortable) {\n putSortable.animateAll();\n }\n },\n drop: drop\n};\n\n_extends(Revert, {\n pluginName: 'revertOnSpill'\n});\n\nfunction Remove() {}\n\nRemove.prototype = {\n onSpill: function onSpill(_ref4) {\n var dragEl = _ref4.dragEl,\n putSortable = _ref4.putSortable;\n var parentSortable = putSortable || this.sortable;\n parentSortable.captureAnimationState();\n dragEl.parentNode && dragEl.parentNode.removeChild(dragEl);\n parentSortable.animateAll();\n },\n drop: drop\n};\n\n_extends(Remove, {\n pluginName: 'removeOnSpill'\n});\n\nvar lastSwapEl;\n\nfunction SwapPlugin() {\n function Swap() {\n this.defaults = {\n swapClass: 'sortable-swap-highlight'\n };\n }\n\n Swap.prototype = {\n dragStart: function dragStart(_ref) {\n var dragEl = _ref.dragEl;\n lastSwapEl = dragEl;\n },\n dragOverValid: function dragOverValid(_ref2) {\n var completed = _ref2.completed,\n target = _ref2.target,\n onMove = _ref2.onMove,\n activeSortable = _ref2.activeSortable,\n changed = _ref2.changed,\n cancel = _ref2.cancel;\n if (!activeSortable.options.swap) return;\n var el = this.sortable.el,\n options = this.options;\n\n if (target && target !== el) {\n var prevSwapEl = lastSwapEl;\n\n if (onMove(target) !== false) {\n toggleClass(target, options.swapClass, true);\n lastSwapEl = target;\n } else {\n lastSwapEl = null;\n }\n\n if (prevSwapEl && prevSwapEl !== lastSwapEl) {\n toggleClass(prevSwapEl, options.swapClass, false);\n }\n }\n\n changed();\n completed(true);\n cancel();\n },\n drop: function drop(_ref3) {\n var activeSortable = _ref3.activeSortable,\n putSortable = _ref3.putSortable,\n dragEl = _ref3.dragEl;\n var toSortable = putSortable || this.sortable;\n var options = this.options;\n lastSwapEl && toggleClass(lastSwapEl, options.swapClass, false);\n\n if (lastSwapEl && (options.swap || putSortable && putSortable.options.swap)) {\n if (dragEl !== lastSwapEl) {\n toSortable.captureAnimationState();\n if (toSortable !== activeSortable) activeSortable.captureAnimationState();\n swapNodes(dragEl, lastSwapEl);\n toSortable.animateAll();\n if (toSortable !== activeSortable) activeSortable.animateAll();\n }\n }\n },\n nulling: function nulling() {\n lastSwapEl = null;\n }\n };\n return _extends(Swap, {\n pluginName: 'swap',\n eventProperties: function eventProperties() {\n return {\n swapItem: lastSwapEl\n };\n }\n });\n}\n\nfunction swapNodes(n1, n2) {\n var p1 = n1.parentNode,\n p2 = n2.parentNode,\n i1,\n i2;\n if (!p1 || !p2 || p1.isEqualNode(n2) || p2.isEqualNode(n1)) return;\n i1 = index(n1);\n i2 = index(n2);\n\n if (p1.isEqualNode(p2) && i1 < i2) {\n i2++;\n }\n\n p1.insertBefore(n2, p1.children[i1]);\n p2.insertBefore(n1, p2.children[i2]);\n}\n\nvar multiDragElements = [],\n multiDragClones = [],\n lastMultiDragSelect,\n // for selection with modifier key down (SHIFT)\nmultiDragSortable,\n initialFolding = false,\n // Initial multi-drag fold when drag started\nfolding = false,\n // Folding any other time\ndragStarted = false,\n dragEl$1,\n clonesFromRect,\n clonesHidden;\n\nfunction MultiDragPlugin() {\n function MultiDrag(sortable) {\n // Bind all private methods\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n\n if (sortable.options.supportPointer) {\n on(document, 'pointerup', this._deselectMultiDrag);\n } else {\n on(document, 'mouseup', this._deselectMultiDrag);\n on(document, 'touchend', this._deselectMultiDrag);\n }\n\n on(document, 'keydown', this._checkKeyDown);\n on(document, 'keyup', this._checkKeyUp);\n this.defaults = {\n selectedClass: 'sortable-selected',\n multiDragKey: null,\n setData: function setData(dataTransfer, dragEl) {\n var data = '';\n\n if (multiDragElements.length && multiDragSortable === sortable) {\n multiDragElements.forEach(function (multiDragElement, i) {\n data += (!i ? '' : ', ') + multiDragElement.textContent;\n });\n } else {\n data = dragEl.textContent;\n }\n\n dataTransfer.setData('Text', data);\n }\n };\n }\n\n MultiDrag.prototype = {\n multiDragKeyDown: false,\n isMultiDrag: false,\n delayStartGlobal: function delayStartGlobal(_ref) {\n var dragged = _ref.dragEl;\n dragEl$1 = dragged;\n },\n delayEnded: function delayEnded() {\n this.isMultiDrag = ~multiDragElements.indexOf(dragEl$1);\n },\n setupClone: function setupClone(_ref2) {\n var sortable = _ref2.sortable,\n cancel = _ref2.cancel;\n if (!this.isMultiDrag) return;\n\n for (var i = 0; i < multiDragElements.length; i++) {\n multiDragClones.push(clone(multiDragElements[i]));\n multiDragClones[i].sortableIndex = multiDragElements[i].sortableIndex;\n multiDragClones[i].draggable = false;\n multiDragClones[i].style['will-change'] = '';\n toggleClass(multiDragClones[i], this.options.selectedClass, false);\n multiDragElements[i] === dragEl$1 && toggleClass(multiDragClones[i], this.options.chosenClass, false);\n }\n\n sortable._hideClone();\n\n cancel();\n },\n clone: function clone(_ref3) {\n var sortable = _ref3.sortable,\n rootEl = _ref3.rootEl,\n dispatchSortableEvent = _ref3.dispatchSortableEvent,\n cancel = _ref3.cancel;\n if (!this.isMultiDrag) return;\n\n if (!this.options.removeCloneOnHide) {\n if (multiDragElements.length && multiDragSortable === sortable) {\n insertMultiDragClones(true, rootEl);\n dispatchSortableEvent('clone');\n cancel();\n }\n }\n },\n showClone: function showClone(_ref4) {\n var cloneNowShown = _ref4.cloneNowShown,\n rootEl = _ref4.rootEl,\n cancel = _ref4.cancel;\n if (!this.isMultiDrag) return;\n insertMultiDragClones(false, rootEl);\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', '');\n });\n cloneNowShown();\n clonesHidden = false;\n cancel();\n },\n hideClone: function hideClone(_ref5) {\n var _this = this;\n\n var sortable = _ref5.sortable,\n cloneNowHidden = _ref5.cloneNowHidden,\n cancel = _ref5.cancel;\n if (!this.isMultiDrag) return;\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', 'none');\n\n if (_this.options.removeCloneOnHide && clone.parentNode) {\n clone.parentNode.removeChild(clone);\n }\n });\n cloneNowHidden();\n clonesHidden = true;\n cancel();\n },\n dragStartGlobal: function dragStartGlobal(_ref6) {\n var sortable = _ref6.sortable;\n\n if (!this.isMultiDrag && multiDragSortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n }\n\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.sortableIndex = index(multiDragElement);\n }); // Sort multi-drag elements\n\n multiDragElements = multiDragElements.sort(function (a, b) {\n return a.sortableIndex - b.sortableIndex;\n });\n dragStarted = true;\n },\n dragStarted: function dragStarted(_ref7) {\n var _this2 = this;\n\n var sortable = _ref7.sortable;\n if (!this.isMultiDrag) return;\n\n if (this.options.sort) {\n // Capture rects,\n // hide multi drag elements (by positioning them absolute),\n // set multi drag elements rects to dragRect,\n // show multi drag elements,\n // animate to rects,\n // unset rects & remove from DOM\n sortable.captureAnimationState();\n\n if (this.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n css(multiDragElement, 'position', 'absolute');\n });\n var dragRect = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRect);\n });\n folding = true;\n initialFolding = true;\n }\n }\n\n sortable.animateAll(function () {\n folding = false;\n initialFolding = false;\n\n if (_this2.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n } // Remove all auxiliary multidrag items from el, if sorting enabled\n\n\n if (_this2.options.sort) {\n removeMultiDragElements();\n }\n });\n },\n dragOver: function dragOver(_ref8) {\n var target = _ref8.target,\n completed = _ref8.completed,\n cancel = _ref8.cancel;\n\n if (folding && ~multiDragElements.indexOf(target)) {\n completed(false);\n cancel();\n }\n },\n revert: function revert(_ref9) {\n var fromSortable = _ref9.fromSortable,\n rootEl = _ref9.rootEl,\n sortable = _ref9.sortable,\n dragRect = _ref9.dragRect;\n\n if (multiDragElements.length > 1) {\n // Setup unfold animation\n multiDragElements.forEach(function (multiDragElement) {\n sortable.addAnimationState({\n target: multiDragElement,\n rect: folding ? getRect(multiDragElement) : dragRect\n });\n unsetRect(multiDragElement);\n multiDragElement.fromRect = dragRect;\n fromSortable.removeAnimationState(multiDragElement);\n });\n folding = false;\n insertMultiDragElements(!this.options.removeCloneOnHide, rootEl);\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref10) {\n var sortable = _ref10.sortable,\n isOwner = _ref10.isOwner,\n insertion = _ref10.insertion,\n activeSortable = _ref10.activeSortable,\n parentEl = _ref10.parentEl,\n putSortable = _ref10.putSortable;\n var options = this.options;\n\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n }\n\n initialFolding = false; // If leaving sort:false root, or already folding - Fold to new location\n\n if (options.animation && multiDragElements.length > 1 && (folding || !isOwner && !activeSortable.options.sort && !putSortable)) {\n // Fold: Set all multi drag elements's rects to dragEl's rect when multi-drag elements are invisible\n var dragRectAbsolute = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRectAbsolute); // Move element(s) to end of parentEl so that it does not interfere with multi-drag clones insertion if they are inserted\n // while folding, and so that we can capture them again because old sortable will no longer be fromSortable\n\n parentEl.appendChild(multiDragElement);\n });\n folding = true;\n } // Clones must be shown (and check to remove multi drags) after folding when interfering multiDragElements are moved out\n\n\n if (!isOwner) {\n // Only remove if not folding (folding will remove them anyways)\n if (!folding) {\n removeMultiDragElements();\n }\n\n if (multiDragElements.length > 1) {\n var clonesHiddenBefore = clonesHidden;\n\n activeSortable._showClone(sortable); // Unfold animation for clones if showing from hidden\n\n\n if (activeSortable.options.animation && !clonesHidden && clonesHiddenBefore) {\n multiDragClones.forEach(function (clone) {\n activeSortable.addAnimationState({\n target: clone,\n rect: clonesFromRect\n });\n clone.fromRect = clonesFromRect;\n clone.thisAnimationDuration = null;\n });\n }\n } else {\n activeSortable._showClone(sortable);\n }\n }\n }\n },\n dragOverAnimationCapture: function dragOverAnimationCapture(_ref11) {\n var dragRect = _ref11.dragRect,\n isOwner = _ref11.isOwner,\n activeSortable = _ref11.activeSortable;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n });\n\n if (activeSortable.options.animation && !isOwner && activeSortable.multiDrag.isMultiDrag) {\n clonesFromRect = _extends({}, dragRect);\n var dragMatrix = matrix(dragEl$1, true);\n clonesFromRect.top -= dragMatrix.f;\n clonesFromRect.left -= dragMatrix.e;\n }\n },\n dragOverAnimationComplete: function dragOverAnimationComplete() {\n if (folding) {\n folding = false;\n removeMultiDragElements();\n }\n },\n drop: function drop(_ref12) {\n var evt = _ref12.originalEvent,\n rootEl = _ref12.rootEl,\n parentEl = _ref12.parentEl,\n sortable = _ref12.sortable,\n dispatchSortableEvent = _ref12.dispatchSortableEvent,\n oldIndex = _ref12.oldIndex,\n putSortable = _ref12.putSortable;\n var toSortable = putSortable || this.sortable;\n if (!evt) return;\n var options = this.options,\n children = parentEl.children; // Multi-drag selection\n\n if (!dragStarted) {\n if (options.multiDragKey && !this.multiDragKeyDown) {\n this._deselectMultiDrag();\n }\n\n toggleClass(dragEl$1, options.selectedClass, !~multiDragElements.indexOf(dragEl$1));\n\n if (!~multiDragElements.indexOf(dragEl$1)) {\n multiDragElements.push(dragEl$1);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: dragEl$1,\n originalEvt: evt\n }); // Modifier activated, select from last to dragEl\n\n if (evt.shiftKey && lastMultiDragSelect && sortable.el.contains(lastMultiDragSelect)) {\n var lastIndex = index(lastMultiDragSelect),\n currentIndex = index(dragEl$1);\n\n if (~lastIndex && ~currentIndex && lastIndex !== currentIndex) {\n // Must include lastMultiDragSelect (select it), in case modified selection from no selection\n // (but previous selection existed)\n var n, i;\n\n if (currentIndex > lastIndex) {\n i = lastIndex;\n n = currentIndex;\n } else {\n i = currentIndex;\n n = lastIndex + 1;\n }\n\n for (; i < n; i++) {\n if (~multiDragElements.indexOf(children[i])) continue;\n toggleClass(children[i], options.selectedClass, true);\n multiDragElements.push(children[i]);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: children[i],\n originalEvt: evt\n });\n }\n }\n } else {\n lastMultiDragSelect = dragEl$1;\n }\n\n multiDragSortable = toSortable;\n } else {\n multiDragElements.splice(multiDragElements.indexOf(dragEl$1), 1);\n lastMultiDragSelect = null;\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'deselect',\n targetEl: dragEl$1,\n originalEvt: evt\n });\n }\n } // Multi-drag drop\n\n\n if (dragStarted && this.isMultiDrag) {\n // Do not \"unfold\" after around dragEl if reverted\n if ((parentEl[expando].options.sort || parentEl !== rootEl) && multiDragElements.length > 1) {\n var dragRect = getRect(dragEl$1),\n multiDragIndex = index(dragEl$1, ':not(.' + this.options.selectedClass + ')');\n if (!initialFolding && options.animation) dragEl$1.thisAnimationDuration = null;\n toSortable.captureAnimationState();\n\n if (!initialFolding) {\n if (options.animation) {\n dragEl$1.fromRect = dragRect;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n\n if (multiDragElement !== dragEl$1) {\n var rect = folding ? getRect(multiDragElement) : dragRect;\n multiDragElement.fromRect = rect; // Prepare unfold animation\n\n toSortable.addAnimationState({\n target: multiDragElement,\n rect: rect\n });\n }\n });\n } // Multi drag elements are not necessarily removed from the DOM on drop, so to reinsert\n // properly they must all be removed\n\n\n removeMultiDragElements();\n multiDragElements.forEach(function (multiDragElement) {\n if (children[multiDragIndex]) {\n parentEl.insertBefore(multiDragElement, children[multiDragIndex]);\n } else {\n parentEl.appendChild(multiDragElement);\n }\n\n multiDragIndex++;\n }); // If initial folding is done, the elements may have changed position because they are now\n // unfolding around dragEl, even though dragEl may not have his index changed, so update event\n // must be fired here as Sortable will not.\n\n if (oldIndex === index(dragEl$1)) {\n var update = false;\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement.sortableIndex !== index(multiDragElement)) {\n update = true;\n return;\n }\n });\n\n if (update) {\n dispatchSortableEvent('update');\n }\n }\n } // Must be done after capturing individual rects (scroll bar)\n\n\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n toSortable.animateAll();\n }\n\n multiDragSortable = toSortable;\n } // Remove clones if necessary\n\n\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n multiDragClones.forEach(function (clone) {\n clone.parentNode && clone.parentNode.removeChild(clone);\n });\n }\n },\n nullingGlobal: function nullingGlobal() {\n this.isMultiDrag = dragStarted = false;\n multiDragClones.length = 0;\n },\n destroyGlobal: function destroyGlobal() {\n this._deselectMultiDrag();\n\n off(document, 'pointerup', this._deselectMultiDrag);\n off(document, 'mouseup', this._deselectMultiDrag);\n off(document, 'touchend', this._deselectMultiDrag);\n off(document, 'keydown', this._checkKeyDown);\n off(document, 'keyup', this._checkKeyUp);\n },\n _deselectMultiDrag: function _deselectMultiDrag(evt) {\n if (typeof dragStarted !== \"undefined\" && dragStarted) return; // Only deselect if selection is in this sortable\n\n if (multiDragSortable !== this.sortable) return; // Only deselect if target is not item in this sortable\n\n if (evt && closest(evt.target, this.options.draggable, this.sortable.el, false)) return; // Only deselect if left click\n\n if (evt && evt.button !== 0) return;\n\n while (multiDragElements.length) {\n var el = multiDragElements[0];\n toggleClass(el, this.options.selectedClass, false);\n multiDragElements.shift();\n dispatchEvent({\n sortable: this.sortable,\n rootEl: this.sortable.el,\n name: 'deselect',\n targetEl: el,\n originalEvt: evt\n });\n }\n },\n _checkKeyDown: function _checkKeyDown(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = true;\n }\n },\n _checkKeyUp: function _checkKeyUp(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = false;\n }\n }\n };\n return _extends(MultiDrag, {\n // Static methods & properties\n pluginName: 'multiDrag',\n utils: {\n /**\r\n * Selects the provided multi-drag item\r\n * @param {HTMLElement} el The element to be selected\r\n */\n select: function select(el) {\n var sortable = el.parentNode[expando];\n if (!sortable || !sortable.options.multiDrag || ~multiDragElements.indexOf(el)) return;\n\n if (multiDragSortable && multiDragSortable !== sortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n\n multiDragSortable = sortable;\n }\n\n toggleClass(el, sortable.options.selectedClass, true);\n multiDragElements.push(el);\n },\n\n /**\r\n * Deselects the provided multi-drag item\r\n * @param {HTMLElement} el The element to be deselected\r\n */\n deselect: function deselect(el) {\n var sortable = el.parentNode[expando],\n index = multiDragElements.indexOf(el);\n if (!sortable || !sortable.options.multiDrag || !~index) return;\n toggleClass(el, sortable.options.selectedClass, false);\n multiDragElements.splice(index, 1);\n }\n },\n eventProperties: function eventProperties() {\n var _this3 = this;\n\n var oldIndicies = [],\n newIndicies = [];\n multiDragElements.forEach(function (multiDragElement) {\n oldIndicies.push({\n multiDragElement: multiDragElement,\n index: multiDragElement.sortableIndex\n }); // multiDragElements will already be sorted if folding\n\n var newIndex;\n\n if (folding && multiDragElement !== dragEl$1) {\n newIndex = -1;\n } else if (folding) {\n newIndex = index(multiDragElement, ':not(.' + _this3.options.selectedClass + ')');\n } else {\n newIndex = index(multiDragElement);\n }\n\n newIndicies.push({\n multiDragElement: multiDragElement,\n index: newIndex\n });\n });\n return {\n items: _toConsumableArray(multiDragElements),\n clones: [].concat(multiDragClones),\n oldIndicies: oldIndicies,\n newIndicies: newIndicies\n };\n },\n optionListeners: {\n multiDragKey: function multiDragKey(key) {\n key = key.toLowerCase();\n\n if (key === 'ctrl') {\n key = 'Control';\n } else if (key.length > 1) {\n key = key.charAt(0).toUpperCase() + key.substr(1);\n }\n\n return key;\n }\n }\n });\n}\n\nfunction insertMultiDragElements(clonesInserted, rootEl) {\n multiDragElements.forEach(function (multiDragElement, i) {\n var target = rootEl.children[multiDragElement.sortableIndex + (clonesInserted ? Number(i) : 0)];\n\n if (target) {\n rootEl.insertBefore(multiDragElement, target);\n } else {\n rootEl.appendChild(multiDragElement);\n }\n });\n}\n/**\r\n * Insert multi-drag clones\r\n * @param {[Boolean]} elementsInserted Whether the multi-drag elements are inserted\r\n * @param {HTMLElement} rootEl\r\n */\n\n\nfunction insertMultiDragClones(elementsInserted, rootEl) {\n multiDragClones.forEach(function (clone, i) {\n var target = rootEl.children[clone.sortableIndex + (elementsInserted ? Number(i) : 0)];\n\n if (target) {\n rootEl.insertBefore(clone, target);\n } else {\n rootEl.appendChild(clone);\n }\n });\n}\n\nfunction removeMultiDragElements() {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n multiDragElement.parentNode && multiDragElement.parentNode.removeChild(multiDragElement);\n });\n}\n\nSortable.mount(new AutoScrollPlugin());\nSortable.mount(Remove, Revert);\n\nexport default Sortable;\nexport { MultiDragPlugin as MultiDrag, Sortable, SwapPlugin as Swap };\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"sortablejs\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"sortablejs\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"vuedraggable\"] = factory(require(\"sortablejs\"));\n\telse\n\t\troot[\"vuedraggable\"] = factory(root[\"Sortable\"]);\n})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE_a352__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = \"fb15\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"01f9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar LIBRARY = __webpack_require__(\"2d00\");\nvar $export = __webpack_require__(\"5ca1\");\nvar redefine = __webpack_require__(\"2aba\");\nvar hide = __webpack_require__(\"32e9\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar $iterCreate = __webpack_require__(\"41a0\");\nvar setToStringTag = __webpack_require__(\"7f20\");\nvar getPrototypeOf = __webpack_require__(\"38fd\");\nvar ITERATOR = __webpack_require__(\"2b4c\")('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n/***/ }),\n\n/***/ \"02f4\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"4588\");\nvar defined = __webpack_require__(\"be13\");\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n/***/ }),\n\n/***/ \"0390\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar at = __webpack_require__(\"02f4\")(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n\n\n/***/ }),\n\n/***/ \"0bfb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = __webpack_require__(\"cb7c\");\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"0d58\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = __webpack_require__(\"ce10\");\nvar enumBugKeys = __webpack_require__(\"e11e\");\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n\n\n/***/ }),\n\n/***/ \"1495\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(\"86cc\");\nvar anObject = __webpack_require__(\"cb7c\");\nvar getKeys = __webpack_require__(\"0d58\");\n\nmodule.exports = __webpack_require__(\"9e1e\") ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n/***/ }),\n\n/***/ \"214f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n__webpack_require__(\"b0c5\");\nvar redefine = __webpack_require__(\"2aba\");\nvar hide = __webpack_require__(\"32e9\");\nvar fails = __webpack_require__(\"79e5\");\nvar defined = __webpack_require__(\"be13\");\nvar wks = __webpack_require__(\"2b4c\");\nvar regexpExec = __webpack_require__(\"520a\");\n\nvar SPECIES = wks('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$') !== '7';\n});\n\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {\n // Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length === 2 && result[0] === 'a' && result[1] === 'b';\n})();\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n re.exec = function () { execCalled = true; return null; };\n if (KEY === 'split') {\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n }\n re[SYMBOL]('');\n return !execCalled;\n }) : undefined;\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var fns = exec(\n defined,\n SYMBOL,\n ''[KEY],\n function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }\n );\n var strfn = fns[0];\n var rxfn = fns[1];\n\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n\n\n/***/ }),\n\n/***/ \"230e\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"d3f4\");\nvar document = __webpack_require__(\"7726\").document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n\n/***/ \"23c6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = __webpack_require__(\"2d95\");\nvar TAG = __webpack_require__(\"2b4c\")('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n/***/ }),\n\n/***/ \"2621\":\n/***/ (function(module, exports) {\n\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n\n/***/ \"2aba\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"7726\");\nvar hide = __webpack_require__(\"32e9\");\nvar has = __webpack_require__(\"69a8\");\nvar SRC = __webpack_require__(\"ca5a\")('src');\nvar $toString = __webpack_require__(\"fa5b\");\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\n__webpack_require__(\"8378\").inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n\n\n/***/ }),\n\n/***/ \"2aeb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = __webpack_require__(\"cb7c\");\nvar dPs = __webpack_require__(\"1495\");\nvar enumBugKeys = __webpack_require__(\"e11e\");\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = __webpack_require__(\"230e\")('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n __webpack_require__(\"fab2\").appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n/***/ }),\n\n/***/ \"2b4c\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar store = __webpack_require__(\"5537\")('wks');\nvar uid = __webpack_require__(\"ca5a\");\nvar Symbol = __webpack_require__(\"7726\").Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n/***/ }),\n\n/***/ \"2d00\":\n/***/ (function(module, exports) {\n\nmodule.exports = false;\n\n\n/***/ }),\n\n/***/ \"2d95\":\n/***/ (function(module, exports) {\n\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n/***/ }),\n\n/***/ \"2fdb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n\nvar $export = __webpack_require__(\"5ca1\");\nvar context = __webpack_require__(\"d2c8\");\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * __webpack_require__(\"5147\")(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n/***/ }),\n\n/***/ \"32e9\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(\"86cc\");\nvar createDesc = __webpack_require__(\"4630\");\nmodule.exports = __webpack_require__(\"9e1e\") ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n/***/ }),\n\n/***/ \"38fd\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = __webpack_require__(\"69a8\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n\n/***/ }),\n\n/***/ \"41a0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar create = __webpack_require__(\"2aeb\");\nvar descriptor = __webpack_require__(\"4630\");\nvar setToStringTag = __webpack_require__(\"7f20\");\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n__webpack_require__(\"32e9\")(IteratorPrototype, __webpack_require__(\"2b4c\")('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n/***/ }),\n\n/***/ \"456d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 Object.keys(O)\nvar toObject = __webpack_require__(\"4bf8\");\nvar $keys = __webpack_require__(\"0d58\");\n\n__webpack_require__(\"5eda\")('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n\n\n/***/ }),\n\n/***/ \"4588\":\n/***/ (function(module, exports) {\n\n// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n/***/ }),\n\n/***/ \"4630\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n/***/ }),\n\n/***/ \"4bf8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.13 ToObject(argument)\nvar defined = __webpack_require__(\"be13\");\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n\n\n/***/ }),\n\n/***/ \"5147\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar MATCH = __webpack_require__(\"2b4c\")('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) { /* empty */ }\n } return true;\n};\n\n\n/***/ }),\n\n/***/ \"520a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar regexpFlags = __webpack_require__(\"0bfb\");\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar LAST_INDEX = 'lastIndex';\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/,\n re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;\n})();\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + re.source + '$(?!\\\\s)', regexpFlags.call(re));\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];\n\n match = nativeExec.call(re, str);\n\n if (UPDATES_LAST_INDEX_WRONG && match) {\n re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n // eslint-disable-next-line no-loop-func\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n\n\n/***/ }),\n\n/***/ \"52a7\":\n/***/ (function(module, exports) {\n\nexports.f = {}.propertyIsEnumerable;\n\n\n/***/ }),\n\n/***/ \"5537\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar core = __webpack_require__(\"8378\");\nvar global = __webpack_require__(\"7726\");\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: __webpack_require__(\"2d00\") ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n\n/***/ \"5ca1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"7726\");\nvar core = __webpack_require__(\"8378\");\nvar hide = __webpack_require__(\"32e9\");\nvar redefine = __webpack_require__(\"2aba\");\nvar ctx = __webpack_require__(\"9b43\");\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n/***/ }),\n\n/***/ \"5eda\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// most Object methods by ES6 should accept primitives\nvar $export = __webpack_require__(\"5ca1\");\nvar core = __webpack_require__(\"8378\");\nvar fails = __webpack_require__(\"79e5\");\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n\n\n/***/ }),\n\n/***/ \"5f1b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar classof = __webpack_require__(\"23c6\");\nvar builtinExec = RegExp.prototype.exec;\n\n // `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw new TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n if (classof(R) !== 'RegExp') {\n throw new TypeError('RegExp#exec called on incompatible receiver');\n }\n return builtinExec.call(R, S);\n};\n\n\n/***/ }),\n\n/***/ \"613b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar shared = __webpack_require__(\"5537\")('keys');\nvar uid = __webpack_require__(\"ca5a\");\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n\n/***/ }),\n\n/***/ \"626a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = __webpack_require__(\"2d95\");\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n/***/ }),\n\n/***/ \"6762\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// https://github.com/tc39/Array.prototype.includes\nvar $export = __webpack_require__(\"5ca1\");\nvar $includes = __webpack_require__(\"c366\")(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n__webpack_require__(\"9c6c\")('includes');\n\n\n/***/ }),\n\n/***/ \"6821\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = __webpack_require__(\"626a\");\nvar defined = __webpack_require__(\"be13\");\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n\n\n/***/ }),\n\n/***/ \"69a8\":\n/***/ (function(module, exports) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n/***/ }),\n\n/***/ \"6a99\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = __webpack_require__(\"d3f4\");\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n\n/***/ \"7333\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = __webpack_require__(\"0d58\");\nvar gOPS = __webpack_require__(\"2621\");\nvar pIE = __webpack_require__(\"52a7\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar IObject = __webpack_require__(\"626a\");\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || __webpack_require__(\"79e5\")(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n\n\n/***/ }),\n\n/***/ \"7726\":\n/***/ (function(module, exports) {\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n/***/ }),\n\n/***/ \"77f1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"4588\");\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n/***/ }),\n\n/***/ \"79e5\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n\n/***/ }),\n\n/***/ \"7f20\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar def = __webpack_require__(\"86cc\").f;\nvar has = __webpack_require__(\"69a8\");\nvar TAG = __webpack_require__(\"2b4c\")('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n\n\n/***/ }),\n\n/***/ \"8378\":\n/***/ (function(module, exports) {\n\nvar core = module.exports = { version: '2.6.5' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n/***/ }),\n\n/***/ \"84f2\":\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n\n/***/ \"86cc\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(\"cb7c\");\nvar IE8_DOM_DEFINE = __webpack_require__(\"c69a\");\nvar toPrimitive = __webpack_require__(\"6a99\");\nvar dP = Object.defineProperty;\n\nexports.f = __webpack_require__(\"9e1e\") ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n/***/ }),\n\n/***/ \"9b43\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// optional / simple context binding\nvar aFunction = __webpack_require__(\"d8e8\");\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n/***/ }),\n\n/***/ \"9c6c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = __webpack_require__(\"2b4c\")('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) __webpack_require__(\"32e9\")(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n\n\n/***/ }),\n\n/***/ \"9def\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.15 ToLength\nvar toInteger = __webpack_require__(\"4588\");\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n/***/ }),\n\n/***/ \"9e1e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !__webpack_require__(\"79e5\")(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"a352\":\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_a352__;\n\n/***/ }),\n\n/***/ \"a481\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar anObject = __webpack_require__(\"cb7c\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar toLength = __webpack_require__(\"9def\");\nvar toInteger = __webpack_require__(\"4588\");\nvar advanceStringIndex = __webpack_require__(\"0390\");\nvar regExpExec = __webpack_require__(\"5f1b\");\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&`']|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&`']|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\n__webpack_require__(\"214f\")('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = defined(this);\n var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n return fn !== undefined\n ? fn.call(searchValue, O, replaceValue)\n : $replace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n var res = maybeCallNative($replace, regexp, this, replaceValue);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n results.push(result);\n if (!global) break;\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return $replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n\n\n/***/ }),\n\n/***/ \"aae3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.2.8 IsRegExp(argument)\nvar isObject = __webpack_require__(\"d3f4\");\nvar cof = __webpack_require__(\"2d95\");\nvar MATCH = __webpack_require__(\"2b4c\")('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n\n\n/***/ }),\n\n/***/ \"ac6a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $iterators = __webpack_require__(\"cadf\");\nvar getKeys = __webpack_require__(\"0d58\");\nvar redefine = __webpack_require__(\"2aba\");\nvar global = __webpack_require__(\"7726\");\nvar hide = __webpack_require__(\"32e9\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar wks = __webpack_require__(\"2b4c\");\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n\n\n/***/ }),\n\n/***/ \"b0c5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar regexpExec = __webpack_require__(\"520a\");\n__webpack_require__(\"5ca1\")({\n target: 'RegExp',\n proto: true,\n forced: regexpExec !== /./.exec\n}, {\n exec: regexpExec\n});\n\n\n/***/ }),\n\n/***/ \"be13\":\n/***/ (function(module, exports) {\n\n// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"c366\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = __webpack_require__(\"6821\");\nvar toLength = __webpack_require__(\"9def\");\nvar toAbsoluteIndex = __webpack_require__(\"77f1\");\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n/***/ }),\n\n/***/ \"c649\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return insertNodeAt; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return camelize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return console; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return removeNode; });\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"a481\");\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0__);\n\n\nfunction getConsole() {\n if (typeof window !== \"undefined\") {\n return window.console;\n }\n\n return global.console;\n}\n\nvar console = getConsole();\n\nfunction cached(fn) {\n var cache = Object.create(null);\n return function cachedFn(str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n}\n\nvar regex = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(regex, function (_, c) {\n return c ? c.toUpperCase() : \"\";\n });\n});\n\nfunction removeNode(node) {\n if (node.parentElement !== null) {\n node.parentElement.removeChild(node);\n }\n}\n\nfunction insertNodeAt(fatherNode, node, position) {\n var refNode = position === 0 ? fatherNode.children[0] : fatherNode.children[position - 1].nextSibling;\n fatherNode.insertBefore(node, refNode);\n}\n\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(\"c8ba\")))\n\n/***/ }),\n\n/***/ \"c69a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = !__webpack_require__(\"9e1e\") && !__webpack_require__(\"79e5\")(function () {\n return Object.defineProperty(__webpack_require__(\"230e\")('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"c8ba\":\n/***/ (function(module, exports) {\n\nvar g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n/***/ }),\n\n/***/ \"ca5a\":\n/***/ (function(module, exports) {\n\nvar id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n/***/ }),\n\n/***/ \"cadf\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar addToUnscopables = __webpack_require__(\"9c6c\");\nvar step = __webpack_require__(\"d53b\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar toIObject = __webpack_require__(\"6821\");\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = __webpack_require__(\"01f9\")(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n/***/ }),\n\n/***/ \"cb7c\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"d3f4\");\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"ce10\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(\"69a8\");\nvar toIObject = __webpack_require__(\"6821\");\nvar arrayIndexOf = __webpack_require__(\"c366\")(false);\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"d2c8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = __webpack_require__(\"aae3\");\nvar defined = __webpack_require__(\"be13\");\n\nmodule.exports = function (that, searchString, NAME) {\n if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};\n\n\n/***/ }),\n\n/***/ \"d3f4\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n\n/***/ \"d53b\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n\n\n/***/ }),\n\n/***/ \"d8e8\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"e11e\":\n/***/ (function(module, exports) {\n\n// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n/***/ }),\n\n/***/ \"f559\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n\nvar $export = __webpack_require__(\"5ca1\");\nvar toLength = __webpack_require__(\"9def\");\nvar context = __webpack_require__(\"d2c8\");\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * __webpack_require__(\"5147\")(STARTS_WITH), 'String', {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = context(this, searchString, STARTS_WITH);\n var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n\n\n/***/ }),\n\n/***/ \"f6fd\":\n/***/ (function(module, exports) {\n\n// document.currentScript polyfill by Adam Miller\n\n// MIT license\n\n(function(document){\n var currentScript = \"currentScript\",\n scripts = document.getElementsByTagName('script'); // Live NodeList collection\n\n // If browser needs currentScript polyfill, add get currentScript() to the document object\n if (!(currentScript in document)) {\n Object.defineProperty(document, currentScript, {\n get: function(){\n\n // IE 6-10 supports script readyState\n // IE 10+ support stack trace\n try { throw new Error(); }\n catch (err) {\n\n // Find the second match for the \"at\" string to get file src url from stack.\n // Specifically works with the format of stack traces in IE.\n var i, res = ((/.*at [^\\(]*\\((.*):.+:.+\\)$/ig).exec(err.stack) || [false])[1];\n\n // For all scripts on the page, if src matches or if ready state is interactive, return the script tag\n for(i in scripts){\n if(scripts[i].src == res || scripts[i].readyState == \"interactive\"){\n return scripts[i];\n }\n }\n\n // If no match, return null\n return null;\n }\n }\n });\n }\n})(document);\n\n\n/***/ }),\n\n/***/ \"f751\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.3.1 Object.assign(target, source)\nvar $export = __webpack_require__(\"5ca1\");\n\n$export($export.S + $export.F, 'Object', { assign: __webpack_require__(\"7333\") });\n\n\n/***/ }),\n\n/***/ \"fa5b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"5537\")('native-function-to-string', Function.toString);\n\n\n/***/ }),\n\n/***/ \"fab2\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar document = __webpack_require__(\"7726\").document;\nmodule.exports = document && document.documentElement;\n\n\n/***/ }),\n\n/***/ \"fb15\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js\n// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n if (true) {\n __webpack_require__(\"f6fd\")\n }\n\n var setPublicPath_i\n if ((setPublicPath_i = window.document.currentScript) && (setPublicPath_i = setPublicPath_i.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/))) {\n __webpack_require__.p = setPublicPath_i[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\n/* harmony default export */ var setPublicPath = (null);\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.object.assign.js\nvar es6_object_assign = __webpack_require__(\"f751\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.string.starts-with.js\nvar es6_string_starts_with = __webpack_require__(\"f559\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom.iterable.js\nvar web_dom_iterable = __webpack_require__(\"ac6a\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.array.iterator.js\nvar es6_array_iterator = __webpack_require__(\"cadf\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.object.keys.js\nvar es6_object_keys = __webpack_require__(\"456d\");\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\n\n\n\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es7.array.includes.js\nvar es7_array_includes = __webpack_require__(\"6762\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.string.includes.js\nvar es6_string_includes = __webpack_require__(\"2fdb\");\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\n\n\n\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n// EXTERNAL MODULE: external {\"commonjs\":\"sortablejs\",\"commonjs2\":\"sortablejs\",\"amd\":\"sortablejs\",\"root\":\"Sortable\"}\nvar external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_ = __webpack_require__(\"a352\");\nvar external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default = /*#__PURE__*/__webpack_require__.n(external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_);\n\n// EXTERNAL MODULE: ./src/util/helper.js\nvar helper = __webpack_require__(\"c649\");\n\n// CONCATENATED MODULE: ./src/vuedraggable.js\n\n\n\n\n\n\n\n\n\n\n\n\nfunction buildAttribute(object, propName, value) {\n if (value === undefined) {\n return object;\n }\n\n object = object || {};\n object[propName] = value;\n return object;\n}\n\nfunction computeVmIndex(vnodes, element) {\n return vnodes.map(function (elt) {\n return elt.elm;\n }).indexOf(element);\n}\n\nfunction _computeIndexes(slots, children, isTransition, footerOffset) {\n if (!slots) {\n return [];\n }\n\n var elmFromNodes = slots.map(function (elt) {\n return elt.elm;\n });\n var footerIndex = children.length - footerOffset;\n\n var rawIndexes = _toConsumableArray(children).map(function (elt, idx) {\n return idx >= footerIndex ? elmFromNodes.length : elmFromNodes.indexOf(elt);\n });\n\n return isTransition ? rawIndexes.filter(function (ind) {\n return ind !== -1;\n }) : rawIndexes;\n}\n\nfunction emit(evtName, evtData) {\n var _this = this;\n\n this.$nextTick(function () {\n return _this.$emit(evtName.toLowerCase(), evtData);\n });\n}\n\nfunction delegateAndEmit(evtName) {\n var _this2 = this;\n\n return function (evtData) {\n if (_this2.realList !== null) {\n _this2[\"onDrag\" + evtName](evtData);\n }\n\n emit.call(_this2, evtName, evtData);\n };\n}\n\nfunction isTransitionName(name) {\n return [\"transition-group\", \"TransitionGroup\"].includes(name);\n}\n\nfunction vuedraggable_isTransition(slots) {\n if (!slots || slots.length !== 1) {\n return false;\n }\n\n var _slots = _slicedToArray(slots, 1),\n componentOptions = _slots[0].componentOptions;\n\n if (!componentOptions) {\n return false;\n }\n\n return isTransitionName(componentOptions.tag);\n}\n\nfunction getSlot(slot, scopedSlot, key) {\n return slot[key] || (scopedSlot[key] ? scopedSlot[key]() : undefined);\n}\n\nfunction computeChildrenAndOffsets(children, slot, scopedSlot) {\n var headerOffset = 0;\n var footerOffset = 0;\n var header = getSlot(slot, scopedSlot, \"header\");\n\n if (header) {\n headerOffset = header.length;\n children = children ? [].concat(_toConsumableArray(header), _toConsumableArray(children)) : _toConsumableArray(header);\n }\n\n var footer = getSlot(slot, scopedSlot, \"footer\");\n\n if (footer) {\n footerOffset = footer.length;\n children = children ? [].concat(_toConsumableArray(children), _toConsumableArray(footer)) : _toConsumableArray(footer);\n }\n\n return {\n children: children,\n headerOffset: headerOffset,\n footerOffset: footerOffset\n };\n}\n\nfunction getComponentAttributes($attrs, componentData) {\n var attributes = null;\n\n var update = function update(name, value) {\n attributes = buildAttribute(attributes, name, value);\n };\n\n var attrs = Object.keys($attrs).filter(function (key) {\n return key === \"id\" || key.startsWith(\"data-\");\n }).reduce(function (res, key) {\n res[key] = $attrs[key];\n return res;\n }, {});\n update(\"attrs\", attrs);\n\n if (!componentData) {\n return attributes;\n }\n\n var on = componentData.on,\n props = componentData.props,\n componentDataAttrs = componentData.attrs;\n update(\"on\", on);\n update(\"props\", props);\n Object.assign(attributes.attrs, componentDataAttrs);\n return attributes;\n}\n\nvar eventsListened = [\"Start\", \"Add\", \"Remove\", \"Update\", \"End\"];\nvar eventsToEmit = [\"Choose\", \"Unchoose\", \"Sort\", \"Filter\", \"Clone\"];\nvar readonlyProperties = [\"Move\"].concat(eventsListened, eventsToEmit).map(function (evt) {\n return \"on\" + evt;\n});\nvar draggingElement = null;\nvar props = {\n options: Object,\n list: {\n type: Array,\n required: false,\n default: null\n },\n value: {\n type: Array,\n required: false,\n default: null\n },\n noTransitionOnDrag: {\n type: Boolean,\n default: false\n },\n clone: {\n type: Function,\n default: function _default(original) {\n return original;\n }\n },\n element: {\n type: String,\n default: \"div\"\n },\n tag: {\n type: String,\n default: null\n },\n move: {\n type: Function,\n default: null\n },\n componentData: {\n type: Object,\n required: false,\n default: null\n }\n};\nvar draggableComponent = {\n name: \"draggable\",\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n transitionMode: false,\n noneFunctionalComponentMode: false\n };\n },\n render: function render(h) {\n var slots = this.$slots.default;\n this.transitionMode = vuedraggable_isTransition(slots);\n\n var _computeChildrenAndOf = computeChildrenAndOffsets(slots, this.$slots, this.$scopedSlots),\n children = _computeChildrenAndOf.children,\n headerOffset = _computeChildrenAndOf.headerOffset,\n footerOffset = _computeChildrenAndOf.footerOffset;\n\n this.headerOffset = headerOffset;\n this.footerOffset = footerOffset;\n var attributes = getComponentAttributes(this.$attrs, this.componentData);\n return h(this.getTag(), attributes, children);\n },\n created: function created() {\n if (this.list !== null && this.value !== null) {\n helper[\"b\" /* console */].error(\"Value and list props are mutually exclusive! Please set one or another.\");\n }\n\n if (this.element !== \"div\") {\n helper[\"b\" /* console */].warn(\"Element props is deprecated please use tag props instead. See https://github.com/SortableJS/Vue.Draggable/blob/master/documentation/migrate.md#element-props\");\n }\n\n if (this.options !== undefined) {\n helper[\"b\" /* console */].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\");\n }\n },\n mounted: function mounted() {\n var _this3 = this;\n\n this.noneFunctionalComponentMode = this.getTag().toLowerCase() !== this.$el.nodeName.toLowerCase() && !this.getIsFunctional();\n\n if (this.noneFunctionalComponentMode && this.transitionMode) {\n throw new Error(\"Transition-group inside component is not supported. Please alter tag value or remove transition-group. Current tag value: \".concat(this.getTag()));\n }\n\n var optionsAdded = {};\n eventsListened.forEach(function (elt) {\n optionsAdded[\"on\" + elt] = delegateAndEmit.call(_this3, elt);\n });\n eventsToEmit.forEach(function (elt) {\n optionsAdded[\"on\" + elt] = emit.bind(_this3, elt);\n });\n var attributes = Object.keys(this.$attrs).reduce(function (res, key) {\n res[Object(helper[\"a\" /* camelize */])(key)] = _this3.$attrs[key];\n return res;\n }, {});\n var options = Object.assign({}, this.options, attributes, optionsAdded, {\n onMove: function onMove(evt, originalEvent) {\n return _this3.onDragMove(evt, originalEvent);\n }\n });\n !(\"draggable\" in options) && (options.draggable = \">*\");\n this._sortable = new external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default.a(this.rootContainer, options);\n this.computeIndexes();\n },\n beforeDestroy: function beforeDestroy() {\n if (this._sortable !== undefined) this._sortable.destroy();\n },\n computed: {\n rootContainer: function rootContainer() {\n return this.transitionMode ? this.$el.children[0] : this.$el;\n },\n realList: function realList() {\n return this.list ? this.list : this.value;\n }\n },\n watch: {\n options: {\n handler: function handler(newOptionValue) {\n this.updateOptions(newOptionValue);\n },\n deep: true\n },\n $attrs: {\n handler: function handler(newOptionValue) {\n this.updateOptions(newOptionValue);\n },\n deep: true\n },\n realList: function realList() {\n this.computeIndexes();\n }\n },\n methods: {\n getIsFunctional: function getIsFunctional() {\n var fnOptions = this._vnode.fnOptions;\n return fnOptions && fnOptions.functional;\n },\n getTag: function getTag() {\n return this.tag || this.element;\n },\n updateOptions: function updateOptions(newOptionValue) {\n for (var property in newOptionValue) {\n var value = Object(helper[\"a\" /* camelize */])(property);\n\n if (readonlyProperties.indexOf(value) === -1) {\n this._sortable.option(value, newOptionValue[property]);\n }\n }\n },\n getChildrenNodes: function getChildrenNodes() {\n if (this.noneFunctionalComponentMode) {\n return this.$children[0].$slots.default;\n }\n\n var rawNodes = this.$slots.default;\n return this.transitionMode ? rawNodes[0].child.$slots.default : rawNodes;\n },\n computeIndexes: function computeIndexes() {\n var _this4 = this;\n\n this.$nextTick(function () {\n _this4.visibleIndexes = _computeIndexes(_this4.getChildrenNodes(), _this4.rootContainer.children, _this4.transitionMode, _this4.footerOffset);\n });\n },\n getUnderlyingVm: function getUnderlyingVm(htmlElt) {\n var index = computeVmIndex(this.getChildrenNodes() || [], htmlElt);\n\n if (index === -1) {\n //Edge case during move callback: related element might be\n //an element different from collection\n return null;\n }\n\n var element = this.realList[index];\n return {\n index: index,\n element: element\n };\n },\n getUnderlyingPotencialDraggableComponent: function getUnderlyingPotencialDraggableComponent(_ref) {\n var vue = _ref.__vue__;\n\n if (!vue || !vue.$options || !isTransitionName(vue.$options._componentTag)) {\n if (!(\"realList\" in vue) && vue.$children.length === 1 && \"realList\" in vue.$children[0]) return vue.$children[0];\n return vue;\n }\n\n return vue.$parent;\n },\n emitChanges: function emitChanges(evt) {\n var _this5 = this;\n\n this.$nextTick(function () {\n _this5.$emit(\"change\", evt);\n });\n },\n alterList: function alterList(onList) {\n if (this.list) {\n onList(this.list);\n return;\n }\n\n var newList = _toConsumableArray(this.value);\n\n onList(newList);\n this.$emit(\"input\", newList);\n },\n spliceList: function spliceList() {\n var _arguments = arguments;\n\n var spliceList = function spliceList(list) {\n return list.splice.apply(list, _toConsumableArray(_arguments));\n };\n\n this.alterList(spliceList);\n },\n updatePosition: function updatePosition(oldIndex, newIndex) {\n var updatePosition = function updatePosition(list) {\n return list.splice(newIndex, 0, list.splice(oldIndex, 1)[0]);\n };\n\n this.alterList(updatePosition);\n },\n getRelatedContextFromMoveEvent: function getRelatedContextFromMoveEvent(_ref2) {\n var to = _ref2.to,\n related = _ref2.related;\n var component = this.getUnderlyingPotencialDraggableComponent(to);\n\n if (!component) {\n return {\n component: component\n };\n }\n\n var list = component.realList;\n var context = {\n list: list,\n component: component\n };\n\n if (to !== related && list && component.getUnderlyingVm) {\n var destination = component.getUnderlyingVm(related);\n\n if (destination) {\n return Object.assign(destination, context);\n }\n }\n\n return context;\n },\n getVmIndex: function getVmIndex(domIndex) {\n var indexes = this.visibleIndexes;\n var numberIndexes = indexes.length;\n return domIndex > numberIndexes - 1 ? numberIndexes : indexes[domIndex];\n },\n getComponent: function getComponent() {\n return this.$slots.default[0].componentInstance;\n },\n resetTransitionData: function resetTransitionData(index) {\n if (!this.noTransitionOnDrag || !this.transitionMode) {\n return;\n }\n\n var nodes = this.getChildrenNodes();\n nodes[index].data = null;\n var transitionContainer = this.getComponent();\n transitionContainer.children = [];\n transitionContainer.kept = undefined;\n },\n onDragStart: function onDragStart(evt) {\n this.context = this.getUnderlyingVm(evt.item);\n evt.item._underlying_vm_ = this.clone(this.context.element);\n draggingElement = evt.item;\n },\n onDragAdd: function onDragAdd(evt) {\n var element = evt.item._underlying_vm_;\n\n if (element === undefined) {\n return;\n }\n\n Object(helper[\"d\" /* removeNode */])(evt.item);\n var newIndex = this.getVmIndex(evt.newIndex);\n this.spliceList(newIndex, 0, element);\n this.computeIndexes();\n var added = {\n element: element,\n newIndex: newIndex\n };\n this.emitChanges({\n added: added\n });\n },\n onDragRemove: function onDragRemove(evt) {\n Object(helper[\"c\" /* insertNodeAt */])(this.rootContainer, evt.item, evt.oldIndex);\n\n if (evt.pullMode === \"clone\") {\n Object(helper[\"d\" /* removeNode */])(evt.clone);\n return;\n }\n\n var oldIndex = this.context.index;\n this.spliceList(oldIndex, 1);\n var removed = {\n element: this.context.element,\n oldIndex: oldIndex\n };\n this.resetTransitionData(oldIndex);\n this.emitChanges({\n removed: removed\n });\n },\n onDragUpdate: function onDragUpdate(evt) {\n Object(helper[\"d\" /* removeNode */])(evt.item);\n Object(helper[\"c\" /* insertNodeAt */])(evt.from, evt.item, evt.oldIndex);\n var oldIndex = this.context.index;\n var newIndex = this.getVmIndex(evt.newIndex);\n this.updatePosition(oldIndex, newIndex);\n var moved = {\n element: this.context.element,\n oldIndex: oldIndex,\n newIndex: newIndex\n };\n this.emitChanges({\n moved: moved\n });\n },\n updateProperty: function updateProperty(evt, propertyName) {\n evt.hasOwnProperty(propertyName) && (evt[propertyName] += this.headerOffset);\n },\n computeFutureIndex: function computeFutureIndex(relatedContext, evt) {\n if (!relatedContext.element) {\n return 0;\n }\n\n var domChildren = _toConsumableArray(evt.to.children).filter(function (el) {\n return el.style[\"display\"] !== \"none\";\n });\n\n var currentDOMIndex = domChildren.indexOf(evt.related);\n var currentIndex = relatedContext.component.getVmIndex(currentDOMIndex);\n var draggedInList = domChildren.indexOf(draggingElement) !== -1;\n return draggedInList || !evt.willInsertAfter ? currentIndex : currentIndex + 1;\n },\n onDragMove: function onDragMove(evt, originalEvent) {\n var onMove = this.move;\n\n if (!onMove || !this.realList) {\n return true;\n }\n\n var relatedContext = this.getRelatedContextFromMoveEvent(evt);\n var draggedContext = this.context;\n var futureIndex = this.computeFutureIndex(relatedContext, evt);\n Object.assign(draggedContext, {\n futureIndex: futureIndex\n });\n var sendEvt = Object.assign({}, evt, {\n relatedContext: relatedContext,\n draggedContext: draggedContext\n });\n return onMove(sendEvt, originalEvent);\n },\n onDragEnd: function onDragEnd() {\n this.computeIndexes();\n draggingElement = null;\n }\n }\n};\n\nif (typeof window !== \"undefined\" && \"Vue\" in window) {\n window.Vue.component(\"draggable\", draggableComponent);\n}\n\n/* harmony default export */ var vuedraggable = (draggableComponent);\n// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js\n\n\n/* harmony default export */ var entry_lib = __webpack_exports__[\"default\"] = (vuedraggable);\n\n\n\n/***/ })\n\n/******/ })[\"default\"];\n});\n//# sourceMappingURL=vuedraggable.umd.js.map","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","// The chunk loading function for additional chunks\n// Since all referenced chunks are already included\n// in this file, this function is empty here.\n__webpack_require__.e = () => (Promise.resolve());","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 4193;","__webpack_require__.b = (typeof document !== 'undefined' && document.baseURI) || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t4193: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = globalThis[\"webpackChunknextcloud_ui_legacy\"] = globalThis[\"webpackChunknextcloud_ui_legacy\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(90111)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","vue_material_design_icons_Pencilvue_type_script_lang_js","name","emits","props","title","type","String","fillColor","default","size","Number","Pencil","componentNormalizer","A","_vm","this","_c","_self","_b","staticClass","attrs","role","on","click","$event","$emit","$attrs","fill","width","height","viewBox","d","_v","_s","_e","components_ApiDashboardWidgetItemvue_type_script_setup_true_lang_ts","_defineComponent","__name","item","Object","required","iconSize","roundedIcons","Boolean","setup","__props","__sfc","imageLoaded","ref","loadingImageFailed","NcAvatar","NcDashboardWidgetItem","NcDashboardWidgetItem_2VgB9qj2","N","IconFile","options","styleTagTransform","styleTagTransform_default","setAttributes","setAttributesWithoutAttributes_default","insert","insertBySelector_default","bind","domAPI","styleDomAPI_default","insertStyleElement","insertStyleElement_default","injectStylesIntoStyleTag_default","ApiDashboardWidgetItemvue_type_style_index_0_id_bffdb06a_prod_scoped_true_lang_css","locals","components_ApiDashboardWidgetvue_type_script_lang_js","components","ApiDashboardWidgetItem","_setup","_setupProxy","link","overlayIconUrl","subtitle","scopedSlots","_u","key","fn","iconUrl","url","directives","rawName","value","expression","class","alt","src","error","load","proxy","CheckIcon","Check","NcDashboardWidget","NcDashboardWidget_CO1z9VUN","NcEmptyContent","NcButton","widget","undefined","data","loading","computed","items","emptyContentMessage","halfEmptyContentMessage","newButton","buttons","find","button","moreButton","setupButton","showMoreLabel","text","showMoreUrl","mounted","window","getComputedStyle","document","body","getPropertyValue","numeric","parseFloat","isNaN","ApiDashboardWidget","item_icons_round","length","description","href","logger","getLoggerBuilder","detectLogLevel","setApp","build","isMobile","_isMobile","beforeMount","addEventListener","_onResize","beforeDestroy","removeEventListener","methods","documentElement","clientWidth","panels","loadState","firstRun","birthdate","Date","statusInfo","weather","t","icon","status","src_DashboardAppvue_type_script_lang_js","Draggable","vuedraggable_umd_default","NcModal","NcUserStatusIcon","mixins","productName","OC","theme","isAdmin","getCurrentUser","timer","registeredStatus","callbacks","callbacksStatus","allCallbacksStatus","enabledStatuses","displayName","uid","layout","filter","panelId","modal","appStoreUrl","generateUrl","appStoreEnabled","statuses","apiWidgets","apiWidgetItems","loadingItems","greeting","time","getHours","partOfDay","getMonth","getDate","good","morning","generic","withName","escape","afternoon","evening","night","birthday","isActive","panel","indexOf","id","isStatusActive","findIndex","s","sortedAllStatuses","keys","slice","sort","sortStatuses","sortedPanels","values","a","b","indexA","indexB","sortedRegisteredStatus","watch","rerenderPanels","app","element","$refs","Vue","created","fetchApiWidgets","apiWidgetIdsToFetch","isApiWidgetV2","includes","map","Promise","all","fetchApiWidgetItems","reload_interval","setInterval","async","updateSkipLink","handleScroll","disableFirstrunHint","destroyed","register","callback","registerStatus","push","$nextTick","saveLayout","axios","post","generateOcsUrl","saveStatuses","showModal","closeModal","updateCheckbox","currentValue","index","splice","setTimeout","getElementsByClassName","setAttribute","updateStatusCheckbox","checked","enableStatus","disableStatus","i","j","delete","al","toLowerCase","bl","scrollY","classList","add","remove","get","ocs","widgetIds","merge","params","URLSearchParams","widgetItems","toString","item_api_versions","DashboardAppvue_type_style_index_0_id_4bfb0c4a_prod_lang_scss_scoped_true_options","DashboardAppvue_type_style_index_0_id_4bfb0c4a_prod_lang_scss_scoped_true","DashboardAppvue_type_style_index_1_id_4bfb0c4a_prod_lang_css_options","DashboardAppvue_type_style_index_1_id_4bfb0c4a_prod_lang_css","DashboardApp","_l","refInFor","handle","end","model","$$v","swapThreshold","delay","delayOnTouchOnly","touchStartThreshold","icon_url","icon_class","iconClass","close","domProps","input","target","for","tag","draggable","rel","__webpack_nonce__","getCSPNonce","prototype","Instance","extend","$mount","OCA","Dashboard","___CSS_LOADER_EXPORT___","_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default","_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default","module","version","sources","names","mappings","sourcesContent","sourceRoot","__WEBPACK_DEFAULT_EXPORT__","_typeof","obj","Symbol","iterator","constructor","_defineProperty","defineProperty","enumerable","configurable","writable","_extends","assign","arguments","source","hasOwnProperty","call","apply","_objectSpread","ownKeys","getOwnPropertySymbols","concat","sym","getOwnPropertyDescriptor","forEach","userAgent","pattern","navigator","match","IE11OrLess","Edge","FireFox","Safari","IOS","ChromeForAndroid","captureMode","capture","passive","el","event","off","matches","selector","substring","msMatchesSelector","webkitMatchesSelector","_","getParentOrHost","host","nodeType","parentNode","closest","ctx","includeCTX","_throttleTimeout","R_SPACE","toggleClass","state","className","replace","css","prop","val","style","defaultView","currentStyle","matrix","selfOnly","appliedTransforms","transform","matrixFn","DOMMatrix","WebKitCSSMatrix","CSSMatrix","MSCSSMatrix","tagName","list","getElementsByTagName","n","getWindowScrollingElement","scrollingElement","getRect","relativeToContainingBlock","relativeToNonStaticParent","undoScale","container","getBoundingClientRect","elRect","top","left","bottom","right","innerHeight","innerWidth","containerRect","parseInt","elMatrix","scaleX","scaleY","isScrolledPast","elSide","parentSide","parent","getParentAutoScrollElement","elSideVal","parentSideVal","getChild","childNum","currentChild","children","display","Sortable","ghost","dragged","lastChild","last","lastElementChild","previousElementSibling","nodeName","toUpperCase","clone","getRelativeScrollOffset","offsetLeft","offsetTop","winScroller","scrollLeft","scrollTop","includeSelf","elem","gotSelf","scrollWidth","clientHeight","scrollHeight","elemCSS","overflowX","overflowY","isRectEqual","rect1","rect2","Math","round","throttle","ms","args","scrollBy","x","y","Polymer","$","jQuery","Zepto","dom","cloneNode","setRect","rect","unsetRect","expando","getTime","plugins","defaults","initializeByDefault","PluginManager","mount","plugin","option","pluginEvent","eventName","sortable","evt","_this","eventCanceled","cancel","eventNameGlobal","pluginName","initializePlugins","initialized","modified","modifyOption","getEventProperties","eventProperties","modifiedValue","optionListeners","dispatchEvent","_ref","rootEl","targetEl","cloneEl","toEl","fromEl","oldIndex","newIndex","oldDraggableIndex","newDraggableIndex","originalEvent","putSortable","extraEventProperties","onName","charAt","substr","CustomEvent","createEvent","initEvent","bubbles","cancelable","to","from","pullMode","lastPutMode","allEventProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_objectWithoutProperties","dragEl","parentEl","ghostEl","nextEl","lastDownEl","cloneHidden","dragStarted","moved","activeSortable","active","hideGhostForTarget","_hideGhostForTarget","unhideGhostForTarget","_unhideGhostForTarget","cloneNowHidden","cloneNowShown","dispatchSortableEvent","_dispatchEvent","info","activeGroup","tapEvt","touchEvt","lastDx","lastDy","tapDistanceLeft","tapDistanceTop","lastTarget","lastDirection","targetMoveDistance","ghostRelativeParent","awaitingDragStarted","ignoreNextClick","sortables","pastFirstInvertThresh","isCircumstantialInvert","ghostRelativeParentInitialScroll","_silent","savedInputChecked","documentExists","PositionGhostAbsolutely","CSSFloatProperty","supportDraggable","createElement","supportCssPointerEvents","cssText","pointerEvents","_detectDirection","elCSS","elWidth","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","child1","child2","firstChildCSS","secondChildCSS","firstChildWidth","marginLeft","marginRight","secondChildWidth","flexDirection","gridTemplateColumns","split","touchingSideChild2","clear","_prepareGroup","toFn","pull","sameGroup","group","otherGroup","join","originalGroup","checkPull","checkPut","put","revertClone","preventDefault","stopPropagation","stopImmediatePropagation","nearestEmptyInsertDetectEvent","touches","nearest","clientX","clientY","some","threshold","emptyInsertThreshold","insideHorizontally","insideVertically","ret","_onDragOver","_checkOutsideTargetEl","_isOutsideThisEl","animationCallbackId","animationStates","disabled","store","test","invertSwap","invertedSwapThreshold","removeCloneOnHide","direction","ghostClass","chosenClass","dragClass","ignore","preventOnFilter","animation","easing","setData","dataTransfer","textContent","dropBubble","dragoverBubble","dataIdAttr","devicePixelRatio","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","nativeDraggable","_onTapStart","captureAnimationState","child","fromRect","thisAnimationDuration","childMatrix","f","e","addAnimationState","removeAnimationState","arr","indexOfObject","animateAll","clearTimeout","animating","animationTime","toRect","prevFromRect","prevToRect","animatingRect","targetMatrix","sqrt","pow","calculateRealTime","animate","max","animationResetTimer","currentRect","duration","translateX","translateY","animatingX","animatingY","offsetWidth","repaint","animated","_onMove","dragRect","targetRect","willInsertAfter","retVal","onMoveFn","onMove","draggedRect","related","relatedRect","_disableDraggable","_unsilent","_generateId","str","sum","charCodeAt","_nextTick","_cancelNextTick","contains","_getDirection","touch","pointerType","originalTarget","shadowRoot","path","composedPath","root","inputs","idx","_saveInputCheckedState","isContentEditable","criteria","trim","_prepareDragStart","dragStartFn","ownerDocument","nextSibling","_lastX","_lastY","_onDrop","_disableDelayedDragEvents","_triggerDragStart","_disableDelayedDrag","_delayedDragTouchMoveHandler","_dragStartTimer","abs","floor","_onTouchMove","_onDragStart","selection","empty","getSelection","removeAllRanges","err","_dragStarted","fallback","_appendGhost","_nulling","_emulateDragOver","elementFromPoint","ghostMatrix","relativeScrollOffset","dx","dy","c","cssMatrix","appendChild","_hideClone","cloneId","insertBefore","_loopId","effectAllowed","_dragStartId","revert","vertical","isOwner","canSort","fromSortable","completedFired","dragOverEvent","_ignoreWhileAnimating","completed","elLastChild","_ghostIsLast","changed","targetBeforeFirstSwap","sibling","differentLevel","differentRowCol","dragElS1Opp","dragElS2Opp","dragElOppLength","targetS1Opp","targetS2Opp","targetOppLength","_dragElInRowColumn","side1","scrolledPastTop","scrollBefore","isLastTarget","mouseOnAxis","targetLength","targetS1","targetS2","invert","_getInsertDirection","_getSwapDirection","dragIndex","nextElementSibling","after","moveVector","extra","axis","insertion","_showClone","_offMoveEvents","_offUpEvents","clearInterval","removeChild","save","handleEvent","dropEffect","_globalDragOver","toArray","order","getAttribute","set","destroy","Array","querySelectorAll","removeAttribute","utils","is","dst","nextTick","cancelNextTick","detectDirection","_len","_key","create","scrollEl","scrollRootEl","lastAutoScrollX","lastAutoScrollY","touchEvt$1","pointerElemChangedInterval","autoScrolls","scrolling","clearAutoScrolls","autoScroll","pid","clearPointerElemChangedInterval","lastSwapEl","isFallback","scroll","scrollCustomFn","sens","scrollSensitivity","speed","scrollSpeed","scrollThisInstance","scrollFn","layersOut","currentParent","canScrollX","canScrollY","scrollPosX","scrollPosY","vx","vy","layer","scrollOffsetY","scrollOffsetX","bubbleScroll","drop","toSortable","changedTouches","onSpill","Revert","Remove","SwapPlugin","Swap","swapClass","dragStart","dragOverValid","_ref2","swap","prevSwapEl","_ref3","n1","n2","i1","i2","p1","p2","isEqualNode","nulling","swapItem","startIndex","_ref4","parentSortable","lastMultiDragSelect","multiDragSortable","dragEl$1","clonesFromRect","clonesHidden","multiDragElements","multiDragClones","initialFolding","folding","MultiDragPlugin","MultiDrag","_deselectMultiDrag","_checkKeyDown","_checkKeyUp","selectedClass","multiDragKey","multiDragElement","multiDragKeyDown","isMultiDrag","delayStartGlobal","delayEnded","setupClone","sortableIndex","insertMultiDragClones","showClone","hideClone","_ref5","dragStartGlobal","_ref6","multiDrag","_ref7","_this2","removeMultiDragElements","dragOver","_ref8","_ref9","clonesInserted","insertMultiDragElements","dragOverCompleted","_ref10","dragRectAbsolute","clonesHiddenBefore","dragOverAnimationCapture","_ref11","dragMatrix","dragOverAnimationComplete","_ref12","originalEvt","shiftKey","lastIndex","currentIndex","multiDragIndex","update","nullingGlobal","destroyGlobal","shift","select","deselect","_this3","oldIndicies","newIndicies","isArray","arr2","_arrayWithoutHoles","iter","_iterableToArray","TypeError","_nonIterableSpread","clones","elementsInserted","AutoScroll","_handleAutoScroll","_handleFallbackAutoScroll","dragOverBubble","ogElemScroller","newElem","factory","self","__WEBPACK_EXTERNAL_MODULE_a352__","modules","installedModules","__nested_webpack_require_688__","moduleId","exports","l","m","getter","o","r","toStringTag","mode","__esModule","ns","object","property","p","__nested_webpack_require_4164__","LIBRARY","$export","redefine","hide","Iterators","$iterCreate","setToStringTag","getPrototypeOf","ITERATOR","BUGGY","KEYS","VALUES","returnThis","Base","NAME","Constructor","next","DEFAULT","IS_SET","FORCED","IteratorPrototype","getMethod","kind","proto","TAG","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","P","F","__nested_webpack_require_7070__","toInteger","defined","TO_STRING","that","pos","__nested_webpack_require_7783__","at","S","unicode","__nested_webpack_require_8134__","anObject","result","global","ignoreCase","multiline","sticky","__nested_webpack_require_8593__","$keys","enumBugKeys","O","__nested_webpack_require_8892__","dP","getKeys","defineProperties","Properties","__nested_webpack_require_9392__","fails","wks","regexpExec","SPECIES","REPLACE_SUPPORTS_NAMED_GROUPS","re","exec","groups","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","KEY","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","fns","nativeMethod","regexp","arg2","forceStringMethod","done","strfn","rxfn","RegExp","string","arg","__nested_webpack_require_12849__","isObject","it","__nested_webpack_require_13233__","cof","ARG","T","B","tryGet","callee","__nested_webpack_require_14160__","has","SRC","$toString","TPL","inspectSource","safe","isFunction","Function","__nested_webpack_require_15334__","dPs","IE_PROTO","Empty","PROTOTYPE","createDict","iframeDocument","iframe","contentWindow","open","write","lt","__nested_webpack_require_16945__","USE_SYMBOL","__nested_webpack_require_17667__","context","INCLUDES","searchString","__nested_webpack_require_18235__","createDesc","__nested_webpack_require_18611__","toObject","ObjectProto","__nested_webpack_require_19205__","descriptor","__nested_webpack_require_19831__","ceil","bitmap","__nested_webpack_require_20609__","__nested_webpack_require_20831__","MATCH","__nested_webpack_require_21176__","re1","re2","regexpFlags","nativeExec","nativeReplace","patchedExec","LAST_INDEX","UPDATES_LAST_INDEX_WRONG","NPCG_INCLUDED","reCopy","__nested_webpack_require_23109__","core","SHARED","copyright","__nested_webpack_require_23642__","own","out","exp","IS_FORCED","IS_GLOBAL","G","IS_STATIC","IS_PROTO","IS_BIND","expProto","U","W","R","__nested_webpack_require_25367__","__nested_webpack_require_25845__","classof","builtinExec","__nested_webpack_require_26551__","shared","__nested_webpack_require_26811__","__nested_webpack_require_27194__","$includes","__nested_webpack_require_27659__","IObject","__nested_webpack_require_28155__","valueOf","__nested_webpack_require_28898__","gOPS","pIE","$assign","K","k","aLen","getSymbols","isEnum","__g","__nested_webpack_require_30635__","min","__nested_webpack_require_31112__","def","stat","__e","__nested_webpack_require_31751__","IE8_DOM_DEFINE","toPrimitive","Attributes","__nested_webpack_require_32441__","aFunction","__nested_webpack_require_33048__","UNSCOPABLES","ArrayProto","__nested_webpack_require_33448__","__nested_webpack_require_33750__","a352","a481","__nested_webpack_require_34139__","toLength","advanceStringIndex","regExpExec","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","maybeToString","REPLACE","$replace","maybeCallNative","searchValue","replaceValue","res","rx","functionalReplace","fullUnicode","results","accumulatedResult","nextSourcePosition","matched","position","captures","namedCaptures","replacerArgs","replacement","getSubstitution","tailPos","symbols","ch","aae3","__nested_webpack_require_38885__","isRegExp","ac6a","__nested_webpack_require_39282__","$iterators","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Collection","b0c5","__nested_webpack_require_41209__","forced","be13","c366","__nested_webpack_require_41706__","toIObject","toAbsoluteIndex","IS_INCLUDES","$this","fromIndex","c649","__nested_webpack_exports__","__nested_webpack_require_42729__","insertNodeAt","camelize","console","removeNode","cache","regex","node","parentElement","fatherNode","refNode","c69a","__nested_webpack_require_44512__","c8ba","g","ca5a","px","random","cadf","__nested_webpack_require_45568__","addToUnscopables","step","iterated","_t","_i","_k","Arguments","cb7c","__nested_webpack_require_46777__","ce10","__nested_webpack_require_47019__","arrayIndexOf","d2c8","__nested_webpack_require_47655__","d3f4","d53b","d8e8","e11e","f559","__nested_webpack_require_48796__","STARTS_WITH","$startsWith","startsWith","search","f6fd","currentScript","scripts","Error","stack","readyState","f751","__nested_webpack_require_50913__","fa5b","__nested_webpack_require_51166__","fab2","__nested_webpack_require_51344__","fb15","__nested_webpack_require_51548__","setPublicPath_i","_arrayLikeToArray","len","_unsupportedIterableToArray","minLen","_toConsumableArray","external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_","external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default","helper","emit","evtName","evtData","delegateAndEmit","realList","isTransitionName","getSlot","slot","scopedSlot","eventsListened","eventsToEmit","readonlyProperties","draggingElement","draggableComponent","inheritAttrs","noTransitionOnDrag","original","move","componentData","transitionMode","noneFunctionalComponentMode","render","h","slots","$slots","componentOptions","_arrayWithHoles","_arr","_n","_d","_iterableToArrayLimit","_nonIterableRest","vuedraggable_isTransition","_computeChildrenAndOf","headerOffset","footerOffset","header","footer","computeChildrenAndOffsets","$scopedSlots","attributes","propName","buildAttribute","reduce","componentDataAttrs","getComponentAttributes","getTag","warn","$el","getIsFunctional","optionsAdded","elt","onDragMove","_sortable","rootContainer","computeIndexes","handler","newOptionValue","updateOptions","deep","fnOptions","_vnode","functional","getChildrenNodes","$children","rawNodes","_this4","visibleIndexes","isTransition","elmFromNodes","elm","footerIndex","rawIndexes","ind","_computeIndexes","getUnderlyingVm","htmlElt","vnodes","getUnderlyingPotencialDraggableComponent","vue","__vue__","$options","_componentTag","$parent","emitChanges","_this5","alterList","onList","newList","spliceList","_arguments","updatePosition","getRelatedContextFromMoveEvent","component","destination","getVmIndex","domIndex","indexes","numberIndexes","getComponent","componentInstance","resetTransitionData","transitionContainer","kept","onDragStart","_underlying_vm_","onDragAdd","added","onDragRemove","removed","onDragUpdate","updateProperty","propertyName","computeFutureIndex","relatedContext","domChildren","currentDOMIndex","draggedContext","futureIndex","onDragEnd","vuedraggable","__webpack_require__","__webpack_module_cache__","cachedModule","loaded","__webpack_modules__","chunkIds","priority","notFulfilled","Infinity","fulfilled","every","definition","resolve","nmd","paths","baseURI","location","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","globalThis","nc","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"dashboard-main.js?v=3f4a2545144b02fb44fe","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/node_modules/vue-material-design-icons/Pencil.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Pencil.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/Pencil.vue?12b8","webpack:///nextcloud/node_modules/vue-material-design-icons/Pencil.vue?vue&type=template&id=7adfde2b","webpack://nextcloud/./apps/dashboard/src/components/ApiDashboardWidget.vue?7e36","webpack:///nextcloud/apps/dashboard/src/components/ApiDashboardWidgetItem.vue","webpack:///nextcloud/apps/dashboard/src/components/ApiDashboardWidgetItem.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/dashboard/src/components/ApiDashboardWidgetItem.vue?dd05","webpack://nextcloud/./apps/dashboard/src/components/ApiDashboardWidgetItem.vue?b4d7","webpack:///nextcloud/apps/dashboard/src/components/ApiDashboardWidget.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/dashboard/src/components/ApiDashboardWidget.vue","webpack://nextcloud/./apps/dashboard/src/components/ApiDashboardWidget.vue?858f","webpack:///nextcloud/apps/dashboard/src/logger.ts","webpack:///nextcloud/apps/dashboard/src/mixins/isMobile.js","webpack:///nextcloud/apps/dashboard/src/DashboardApp.vue","webpack:///nextcloud/apps/dashboard/src/DashboardApp.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/dashboard/src/DashboardApp.vue?dc07","webpack://nextcloud/./apps/dashboard/src/DashboardApp.vue?00b5","webpack://nextcloud/./apps/dashboard/src/DashboardApp.vue?5685","webpack://nextcloud/./apps/dashboard/src/DashboardApp.vue?1477","webpack:///nextcloud/apps/dashboard/src/main.js","webpack:///nextcloud/apps/dashboard/src/DashboardApp.vue?vue&type=style&index=0&id=2d96e221&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/dashboard/src/DashboardApp.vue?vue&type=style&index=1&id=2d96e221&prod&lang=css","webpack:///nextcloud/apps/dashboard/src/components/ApiDashboardWidgetItem.vue?vue&type=style&index=0&id=bffdb06a&prod&scoped=true&lang=css","webpack:///nextcloud/node_modules/sortablejs/modular/sortable.esm.js","webpack:///nextcloud/node_modules/vuedraggable/dist/vuedraggable.umd.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Pencil.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Pencil.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Pencil.vue?vue&type=template&id=7adfde2b\"\nimport script from \"./Pencil.vue?vue&type=script&lang=js\"\nexport * from \"./Pencil.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon pencil-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcDashboardWidget',{attrs:{\"items\":_vm.items,\"show-more-label\":_vm.showMoreLabel,\"show-more-url\":_vm.showMoreUrl,\"loading\":_vm.loading,\"show-items-and-empty-content\":!!_vm.halfEmptyContentMessage,\"half-empty-content-message\":_vm.halfEmptyContentMessage},scopedSlots:_vm._u([{key:\"default\",fn:function({ item }){return [_c('ApiDashboardWidgetItem',{attrs:{\"item\":item,\"icon-size\":_vm.iconSize,\"rounded-icons\":_vm.widget.item_icons_round}})]}},{key:\"empty-content\",fn:function(){return [(_vm.items.length === 0)?_c('NcEmptyContent',{attrs:{\"description\":_vm.emptyContentMessage},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.emptyContentMessage)?_c('CheckIcon',{attrs:{\"size\":65}}):_vm._e()]},proxy:true},{key:\"action\",fn:function(){return [(_vm.setupButton)?_c('NcButton',{attrs:{\"href\":_vm.setupButton.link}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.setupButton.text)+\"\\n\\t\\t\\t\\t\")]):_vm._e()]},proxy:true}],null,false,4172361897)}):_vm._e()]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.NcDashboardWidgetItem,{attrs:{\"target-url\":_vm.item.link,\"overlay-icon-url\":_vm.item.overlayIconUrl ? _vm.item.overlayIconUrl : '',\"main-text\":_vm.item.title,\"sub-text\":_vm.item.subtitle},scopedSlots:_vm._u([{key:\"avatar\",fn:function(){return [(_vm.item.iconUrl)?[(_vm.roundedIcons)?_c(_setup.NcAvatar,{attrs:{\"size\":_vm.iconSize,\"url\":_vm.item.iconUrl}}):[_c('img',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_setup.loadingImageFailed),expression:\"!loadingImageFailed\"}],staticClass:\"api-dashboard-widget-item__icon\",class:{ 'hidden-visually': !_setup.imageLoaded },attrs:{\"alt\":\"\",\"src\":_vm.item.iconUrl},on:{\"error\":function($event){_setup.loadingImageFailed = true},\"load\":function($event){_setup.imageLoaded = true}}}),_vm._v(\" \"),(!_setup.imageLoaded)?_c(_setup.IconFile,{attrs:{\"size\":_vm.iconSize}}):_vm._e()]]:_vm._e()]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ApiDashboardWidgetItem.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ApiDashboardWidgetItem.vue?vue&type=script&setup=true&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ApiDashboardWidgetItem.vue?vue&type=style&index=0&id=bffdb06a&prod&scoped=true&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ApiDashboardWidgetItem.vue?vue&type=style&index=0&id=bffdb06a&prod&scoped=true&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ApiDashboardWidgetItem.vue?vue&type=template&id=bffdb06a&scoped=true\"\nimport script from \"./ApiDashboardWidgetItem.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ApiDashboardWidgetItem.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./ApiDashboardWidgetItem.vue?vue&type=style&index=0&id=bffdb06a&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bffdb06a\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ApiDashboardWidget.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ApiDashboardWidget.vue?vue&type=script&lang=js\"","\n\n\n\n","import { render, staticRenderFns } from \"./ApiDashboardWidget.vue?vue&type=template&id=0c401fa9\"\nimport script from \"./ApiDashboardWidget.vue?vue&type=script&lang=js\"\nexport * from \"./ApiDashboardWidget.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getLoggerBuilder } from '@nextcloud/logger';\nexport const logger = getLoggerBuilder()\n .detectLogLevel()\n .setApp('dashboard')\n .build();\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tisMobile: this._isMobile(),\n\t\t}\n\t},\n\tbeforeMount() {\n\t\twindow.addEventListener('resize', this._onResize)\n\t},\n\tbeforeDestroy() {\n\t\twindow.removeEventListener('resize', this._onResize)\n\t},\n\tmethods: {\n\t\t_onResize() {\n\t\t\t// Update mobile mode\n\t\t\tthis.isMobile = this._isMobile()\n\t\t},\n\t\t_isMobile() {\n\t\t\t// check if content width is under 768px\n\t\t\treturn document.documentElement.clientWidth < 768\n\t\t},\n\t},\n}\n","\n\n\n\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardApp.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardApp.vue?vue&type=script&lang=js\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardApp.vue?vue&type=style&index=0&id=2d96e221&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardApp.vue?vue&type=style&index=0&id=2d96e221&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardApp.vue?vue&type=style&index=1&id=2d96e221&prod&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardApp.vue?vue&type=style&index=1&id=2d96e221&prod&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./DashboardApp.vue?vue&type=template&id=2d96e221&scoped=true\"\nimport script from \"./DashboardApp.vue?vue&type=script&lang=js\"\nexport * from \"./DashboardApp.vue?vue&type=script&lang=js\"\nimport style0 from \"./DashboardApp.vue?vue&type=style&index=0&id=2d96e221&prod&lang=scss&scoped=true\"\nimport style1 from \"./DashboardApp.vue?vue&type=style&index=1&id=2d96e221&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2d96e221\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('main',{attrs:{\"id\":\"app-dashboard\"}},[_c('h2',[_vm._v(_vm._s(_vm.greeting.text))]),_vm._v(\" \"),(_vm.sortedRegisteredStatus.length > 0)?_c('ul',{staticClass:\"statuses\"},_vm._l((_vm.sortedRegisteredStatus),function(status){return _c('li',{key:status,attrs:{\"id\":'status-' + status}},[_c('div',{ref:'status-' + status,refInFor:true})])}),0):_vm._e(),_vm._v(\" \"),_c('Draggable',_vm._b({staticClass:\"panels\",attrs:{\"handle\":\".panel--header\"},on:{\"end\":_vm.saveLayout},model:{value:(_vm.layout),callback:function ($$v) {_vm.layout=$$v},expression:\"layout\"}},'Draggable',{ swapThreshold: 0.30, delay: 500, delayOnTouchOnly: true, touchStartThreshold: 3 },false),[_vm._l((_vm.layout),function(panelId){return [(_vm.isApiWidgetV2(_vm.panels[panelId].id))?_c('div',{key:`${_vm.panels[panelId].id}-v2`,staticClass:\"panel\"},[_c('div',{staticClass:\"panel--header\"},[_c('h2',[(_vm.apiWidgets[_vm.panels[panelId].id].icon_url)?_c('img',{attrs:{\"src\":_vm.apiWidgets[_vm.panels[panelId].id].icon_url,\"alt\":\"\"}}):_c('span',{class:_vm.apiWidgets[_vm.panels[panelId].id].icon_class,attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.apiWidgets[_vm.panels[panelId].id].title)+\"\\n\\t\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',{staticClass:\"panel--content\"},[_c('ApiDashboardWidget',{attrs:{\"widget\":_vm.apiWidgets[_vm.panels[panelId].id],\"data\":_vm.apiWidgetItems[_vm.panels[panelId].id],\"loading\":_vm.loadingItems}})],1)]):_c('div',{key:_vm.panels[panelId].id,staticClass:\"panel\"},[_c('div',{staticClass:\"panel--header\"},[_c('h2',[_c('span',{class:_vm.panels[panelId].iconClass,attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.panels[panelId].title)+\"\\n\\t\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',{staticClass:\"panel--content\",class:{ loading: !_vm.panels[panelId].mounted }},[_c('div',{ref:_vm.panels[panelId].id,refInFor:true,attrs:{\"data-id\":_vm.panels[panelId].id}})])])]})],2),_vm._v(\" \"),_c('div',{staticClass:\"footer\"},[_c('NcButton',{on:{\"click\":_vm.showModal},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Pencil',{attrs:{\"size\":20}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('dashboard', 'Customize'))+\"\\n\\t\\t\")])],1),_vm._v(\" \"),(_vm.modal)?_c('NcModal',{attrs:{\"size\":\"large\"},on:{\"close\":_vm.closeModal}},[_c('div',{staticClass:\"modal__content\"},[_c('h2',[_vm._v(_vm._s(_vm.t('dashboard', 'Edit widgets')))]),_vm._v(\" \"),_c('ol',{staticClass:\"panels\"},_vm._l((_vm.sortedAllStatuses),function(status){return _c('li',{key:status,class:'panel-' + status},[_c('input',{staticClass:\"checkbox\",attrs:{\"id\":'status-checkbox-' + status,\"type\":\"checkbox\"},domProps:{\"checked\":_vm.isStatusActive(status)},on:{\"input\":function($event){return _vm.updateStatusCheckbox(status, $event.target.checked)}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":'status-checkbox-' + status}},[(status === 'status')?_c('NcUserStatusIcon',{attrs:{\"status\":\"online\",\"aria-hidden\":\"true\"}}):_c('span',{class:_vm.statusInfo[status].icon,attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.statusInfo[status].text)+\"\\n\\t\\t\\t\\t\\t\")],1)])}),0),_vm._v(\" \"),_c('Draggable',_vm._b({staticClass:\"panels\",attrs:{\"tag\":\"ol\",\"handle\":\".draggable\"},on:{\"end\":_vm.saveLayout},model:{value:(_vm.layout),callback:function ($$v) {_vm.layout=$$v},expression:\"layout\"}},'Draggable',{ swapThreshold: 0.30, delay: 500, delayOnTouchOnly: true, touchStartThreshold: 3 },false),_vm._l((_vm.sortedPanels),function(panel){return _c('li',{key:panel.id,class:'panel-' + panel.id},[_c('input',{staticClass:\"checkbox\",attrs:{\"id\":'panel-checkbox-' + panel.id,\"type\":\"checkbox\"},domProps:{\"checked\":_vm.isActive(panel)},on:{\"input\":function($event){return _vm.updateCheckbox(panel, $event.target.checked)}}}),_vm._v(\" \"),_c('label',{class:{ draggable: _vm.isActive(panel) },attrs:{\"for\":'panel-checkbox-' + panel.id}},[(panel.iconUrl)?_c('img',{attrs:{\"alt\":\"\",\"src\":panel.iconUrl}}):_c('span',{class:panel.iconClass,attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(panel.title)+\"\\n\\t\\t\\t\\t\\t\")])])}),0),_vm._v(\" \"),(_vm.isAdmin && _vm.appStoreEnabled)?_c('a',{staticClass:\"button\",attrs:{\"href\":_vm.appStoreUrl}},[_vm._v(_vm._s(_vm.t('dashboard', 'Get more widgets from the App Store')))]):_vm._e(),_vm._v(\" \"),(_vm.statuses.weather && _vm.isStatusActive('weather'))?_c('div',[_c('h2',[_vm._v(_vm._s(_vm.t('dashboard', 'Weather service')))]),_vm._v(\" \"),_c('p',[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('dashboard', 'For your privacy, the weather data is requested by your {productName} server on your behalf so the weather service receives no personal information.', { productName: _vm.productName }))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('p',{staticClass:\"credits--end\"},[_c('a',{attrs:{\"href\":\"https://api.met.no/doc/TermsOfService\",\"target\":\"_blank\",\"rel\":\"noopener\"}},[_vm._v(_vm._s(_vm.t('dashboard', 'Weather data from Met.no')))]),_vm._v(\",\\n\\t\\t\\t\\t\\t\"),_c('a',{attrs:{\"href\":\"https://wiki.osmfoundation.org/wiki/Privacy_Policy\",\"target\":\"_blank\",\"rel\":\"noopener\"}},[_vm._v(_vm._s(_vm.t('dashboard', 'geocoding with Nominatim')))]),_vm._v(\",\\n\\t\\t\\t\\t\\t\"),_c('a',{attrs:{\"href\":\"https://www.opentopodata.org/#public-api\",\"target\":\"_blank\",\"rel\":\"noopener\"}},[_vm._v(_vm._s(_vm.t('dashboard', 'elevation data from OpenTopoData')))]),_vm._v(\".\\n\\t\\t\\t\\t\")])]):_vm._e()],1)]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCSPNonce } from '@nextcloud/auth'\nimport { t } from '@nextcloud/l10n'\nimport Vue from 'vue'\nimport DashboardApp from './DashboardApp.vue'\n\n__webpack_nonce__ = getCSPNonce()\n\nVue.prototype.t = t\n\nconst Dashboard = Vue.extend(DashboardApp)\nconst Instance = new Dashboard({}).$mount('#app-content-vue')\n\nwindow.OCA.Dashboard = {\n\tregister: (app, callback) => Instance.register(app, callback),\n\tregisterStatus: (app, callback) => Instance.registerStatus(app, callback),\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `#app-dashboard[data-v-2d96e221]{width:100%;min-height:100%;background-size:cover;background-position:center center;background-repeat:no-repeat;background-attachment:fixed}#app-dashboard>h2[data-v-2d96e221]{color:var(--color-background-plain-text);text-align:center;font-size:32px;line-height:130%;padding:1rem 0}.panels[data-v-2d96e221]{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-2d96e221],.panels>div[data-v-2d96e221]{--color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-main-text));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-container-large)}#body-user.theme--highcontrast .panel[data-v-2d96e221],#body-user.theme--highcontrast .panels>div[data-v-2d96e221]{border:2px solid var(--color-border)}.panel.sortable-ghost[data-v-2d96e221],.panels>div.sortable-ghost[data-v-2d96e221]{opacity:.1}.panel>.panel--header[data-v-2d96e221],.panels>div>.panel--header[data-v-2d96e221]{display:flex;z-index:1;top:50px;padding:16px;cursor:grab}.panel>.panel--header[data-v-2d96e221],.panel>.panel--header[data-v-2d96e221] *,.panels>div>.panel--header[data-v-2d96e221],.panels>div>.panel--header[data-v-2d96e221] *{-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-2d96e221]:active,.panels>div>.panel--header[data-v-2d96e221]:active{cursor:grabbing}.panel>.panel--header a[data-v-2d96e221],.panels>div>.panel--header a[data-v-2d96e221]{flex-grow:1}.panel>.panel--header>h2[data-v-2d96e221],.panels>div>.panel--header>h2[data-v-2d96e221]{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 img[data-v-2d96e221],.panel>.panel--header>h2 span[data-v-2d96e221],.panels>div>.panel--header>h2 img[data-v-2d96e221],.panels>div>.panel--header>h2 span[data-v-2d96e221]{background-size:32px;width:32px;height:32px;background-position:center;float:left;margin-top:-6px;margin-inline:6px 16px}.panel>.panel--header>h2 img[data-v-2d96e221],.panels>div>.panel--header>h2 img[data-v-2d96e221]{filter:var(--background-invert-if-dark)}.panel>.panel--content[data-v-2d96e221],.panels>div>.panel--content[data-v-2d96e221]{margin:0 16px 16px 16px;height:424px;overflow:visible}@media only screen and (max-width: 709px){.panel>.panel--content[data-v-2d96e221],.panels>div>.panel--content[data-v-2d96e221]{height:auto}}.footer[data-v-2d96e221]{display:flex;justify-content:center;transition:bottom var(--animation-slow) ease-in-out;padding:1rem 0}.edit-panels[data-v-2d96e221]{display:inline-block;margin:auto;background-position:16px center;padding:12px 16px;padding-inline-start:36px;border-radius:var(--border-radius-pill);max-width:200px;opacity:1;text-align:center}.button[data-v-2d96e221],.button-vue[data-v-2d96e221],.edit-panels[data-v-2d96e221],.statuses[data-v-2d96e221] .action-item .action-item__menutoggle,.statuses[data-v-2d96e221] .action-item.action-item--open .action-item__menutoggle{--color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-main-text));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-2d96e221]:hover,.button[data-v-2d96e221]:focus,.button[data-v-2d96e221]:active,.button-vue[data-v-2d96e221]:hover,.button-vue[data-v-2d96e221]:focus,.button-vue[data-v-2d96e221]:active,.edit-panels[data-v-2d96e221]:hover,.edit-panels[data-v-2d96e221]:focus,.edit-panels[data-v-2d96e221]:active,.statuses[data-v-2d96e221] .action-item .action-item__menutoggle:hover,.statuses[data-v-2d96e221] .action-item .action-item__menutoggle:focus,.statuses[data-v-2d96e221] .action-item .action-item__menutoggle:active,.statuses[data-v-2d96e221] .action-item.action-item--open .action-item__menutoggle:hover,.statuses[data-v-2d96e221] .action-item.action-item--open .action-item__menutoggle:focus,.statuses[data-v-2d96e221] .action-item.action-item--open .action-item__menutoggle:active{background-color:var(--color-background-hover) !important}.button[data-v-2d96e221]:focus-visible,.button-vue[data-v-2d96e221]:focus-visible,.edit-panels[data-v-2d96e221]:focus-visible,.statuses[data-v-2d96e221] .action-item .action-item__menutoggle:focus-visible,.statuses[data-v-2d96e221] .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-2d96e221]{padding:32px 16px;text-align:center}.modal__content ol[data-v-2d96e221]{display:flex;flex-direction:row;justify-content:center;list-style-type:none;padding-bottom:16px}.modal__content li label[data-v-2d96e221]{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:start;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal__content li label img[data-v-2d96e221],.modal__content li label span[data-v-2d96e221]{position:absolute;top:16px;width:24px;height:24px;background-size:24px}.modal__content li label img[data-v-2d96e221]{filter:var(--background-invert-if-dark)}.modal__content li label[data-v-2d96e221]:hover{border-color:var(--color-primary-element)}.modal__content li:not(.panel-status) label span[data-v-2d96e221]{filter:var(--background-invert-if-dark)}.modal__content li input[type=checkbox].checkbox+label[data-v-2d96e221]:before{position:absolute;inset-inline-end:12px;top:16px}.modal__content li input:focus+label[data-v-2d96e221]{border-color:var(--color-primary-element)}.modal__content h2[data-v-2d96e221]{font-weight:bold;margin-top:12px}.modal__content .button[data-v-2d96e221]{display:inline-block;padding:10px 16px;margin:0}.modal__content p[data-v-2d96e221]{max-width:650px;margin:0 auto}.modal__content p a[data-v-2d96e221]:hover,.modal__content p a[data-v-2d96e221]:focus{border-bottom:2px solid var(--color-border)}.modal__content .credits--end[data-v-2d96e221]{padding-bottom:32px;color:var(--color-text-maxcontrast)}.modal__content .credits--end a[data-v-2d96e221]{color:var(--color-text-maxcontrast)}.flip-list-move[data-v-2d96e221]{transition:transform var(--animation-slow)}.statuses[data-v-2d96e221]{display:flex;flex-direction:row;justify-content:center;flex-wrap:wrap;margin-bottom:36px}.statuses>li[data-v-2d96e221]{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,mCAEC,wCAAA,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,qDAEC,+FAAA,CACA,WAAA,CACA,cAAA,CACA,WAAA,CACA,kBAAA,CACA,kDAAA,CACA,qDAAA,CACA,6CAAA,CACA,kDAAA,CAEA,mHACC,oCAAA,CAGD,mFACE,UAAA,CAGF,mFACC,YAAA,CACA,SAAA,CACA,QAAA,CACA,YAAA,CACA,WAAA,CAEA,0KAEC,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,CAEA,oMAEC,oBAAA,CACA,UAAA,CACA,WAAA,CACA,0BAAA,CACA,UAAA,CACA,eAAA,CACA,sBAAA,CAGD,iGACC,uCAAA,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,yBAAA,CACA,uCAAA,CACA,eAAA,CACA,SAAA,CACA,iBAAA,CAGD,wOAMC,+FAAA,CACA,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,gBAAA,CACA,eAAA,CACA,sBAAA,CACA,kBAAA,CAEA,6FAEC,iBAAA,CACA,QAAA,CACA,UAAA,CACA,WAAA,CACA,oBAAA,CAGD,8CACC,uCAAA,CAGD,gDACC,yCAAA,CAKF,kEACC,uCAAA,CAGD,+EACC,iBAAA,CACA,qBAAA,CACA,QAAA,CAGD,sDACC,yCAAA,CAIF,oCACC,gBAAA,CACA,eAAA,CAID,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\\t// this is shown directly on the background image / color\\n\\t\\tcolor: var(--color-background-plain-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\\t// Ensure the maxcontrast color is set for the background\\n\\t--color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-main-text));\\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-container-large);\\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&,\\n\\t\\t: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\\n\\t\\t\\timg,\\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\\tbackground-position: center;\\n\\t\\t\\t\\tfloat: left;\\n\\t\\t\\t\\tmargin-top: -6px;\\n\\t\\t\\t\\tmargin-inline: 6px 16px;\\n\\t\\t\\t}\\n\\n\\t\\t\\timg {\\n\\t\\t\\t\\tfilter: var(--background-invert-if-dark);\\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-inline-start: 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 :deep(.action-item .action-item__menutoggle),\\n.statuses :deep(.action-item.action-item--open .action-item__menutoggle) {\\n\\t// Ensure the maxcontrast color is set for the background\\n\\t--color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-main-text));\\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: start;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\twhite-space: nowrap;\\n\\n\\t\\t\\timg,\\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\\timg {\\n\\t\\t\\t\\tfilter: var(--background-invert-if-dark);\\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\\tinset-inline-end: 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\\th2 {\\n\\t\\tfont-weight: bold;\\n\\t\\tmargin-top: 12px;\\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\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\nhtml, body {\n\tbackground-attachment: fixed;\n}\n#body-user #header {\n\tposition: fixed;\n}\n#content {\n\toverflow: auto;\n\t/* Scrollbar sits on the background image — use plain-text color for contrast */\n\tscrollbar-color: var(--color-background-plain-text) transparent;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/dashboard/src/DashboardApp.vue\"],\"names\":[],\"mappings\":\";AAwxBA;CACA,4BAAA;AACA;AAEA;CACA,eAAA;AACA;AAEA;CACA,cAAA;CACA,+EAAA;CACA,+DAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\n.api-dashboard-widget-item__icon[data-v-bffdb06a] {\n\theight: var(--default-clickable-area);\n\twidth: var(--default-clickable-area);\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/dashboard/src/components/ApiDashboardWidgetItem.vue\"],\"names\":[],\"mappings\":\";AAmEA;CACA,qCAAA;CACA,oCAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/**!\n * Sortable 1.10.2\n * @author\tRubaXa \n * @author\towenm \n * @license MIT\n */\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nvar version = \"1.10.2\";\n\nfunction userAgent(pattern) {\n if (typeof window !== 'undefined' && window.navigator) {\n return !!\n /*@__PURE__*/\n navigator.userAgent.match(pattern);\n }\n}\n\nvar IE11OrLess = userAgent(/(?:Trident.*rv[ :]?11\\.|msie|iemobile|Windows Phone)/i);\nvar Edge = userAgent(/Edge/i);\nvar FireFox = userAgent(/firefox/i);\nvar Safari = userAgent(/safari/i) && !userAgent(/chrome/i) && !userAgent(/android/i);\nvar IOS = userAgent(/iP(ad|od|hone)/i);\nvar ChromeForAndroid = userAgent(/chrome/i) && userAgent(/android/i);\n\nvar captureMode = {\n capture: false,\n passive: false\n};\n\nfunction on(el, event, fn) {\n el.addEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction off(el, event, fn) {\n el.removeEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction matches(\n/**HTMLElement*/\nel,\n/**String*/\nselector) {\n if (!selector) return;\n selector[0] === '>' && (selector = selector.substring(1));\n\n if (el) {\n try {\n if (el.matches) {\n return el.matches(selector);\n } else if (el.msMatchesSelector) {\n return el.msMatchesSelector(selector);\n } else if (el.webkitMatchesSelector) {\n return el.webkitMatchesSelector(selector);\n }\n } catch (_) {\n return false;\n }\n }\n\n return false;\n}\n\nfunction getParentOrHost(el) {\n return el.host && el !== document && el.host.nodeType ? el.host : el.parentNode;\n}\n\nfunction closest(\n/**HTMLElement*/\nel,\n/**String*/\nselector,\n/**HTMLElement*/\nctx, includeCTX) {\n if (el) {\n ctx = ctx || document;\n\n do {\n if (selector != null && (selector[0] === '>' ? el.parentNode === ctx && matches(el, selector) : matches(el, selector)) || includeCTX && el === ctx) {\n return el;\n }\n\n if (el === ctx) break;\n /* jshint boss:true */\n } while (el = getParentOrHost(el));\n }\n\n return null;\n}\n\nvar R_SPACE = /\\s+/g;\n\nfunction toggleClass(el, name, state) {\n if (el && name) {\n if (el.classList) {\n el.classList[state ? 'add' : 'remove'](name);\n } else {\n var className = (' ' + el.className + ' ').replace(R_SPACE, ' ').replace(' ' + name + ' ', ' ');\n el.className = (className + (state ? ' ' + name : '')).replace(R_SPACE, ' ');\n }\n }\n}\n\nfunction css(el, prop, val) {\n var style = el && el.style;\n\n if (style) {\n if (val === void 0) {\n if (document.defaultView && document.defaultView.getComputedStyle) {\n val = document.defaultView.getComputedStyle(el, '');\n } else if (el.currentStyle) {\n val = el.currentStyle;\n }\n\n return prop === void 0 ? val : val[prop];\n } else {\n if (!(prop in style) && prop.indexOf('webkit') === -1) {\n prop = '-webkit-' + prop;\n }\n\n style[prop] = val + (typeof val === 'string' ? '' : 'px');\n }\n }\n}\n\nfunction matrix(el, selfOnly) {\n var appliedTransforms = '';\n\n if (typeof el === 'string') {\n appliedTransforms = el;\n } else {\n do {\n var transform = css(el, 'transform');\n\n if (transform && transform !== 'none') {\n appliedTransforms = transform + ' ' + appliedTransforms;\n }\n /* jshint boss:true */\n\n } while (!selfOnly && (el = el.parentNode));\n }\n\n var matrixFn = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix;\n /*jshint -W056 */\n\n return matrixFn && new matrixFn(appliedTransforms);\n}\n\nfunction find(ctx, tagName, iterator) {\n if (ctx) {\n var list = ctx.getElementsByTagName(tagName),\n i = 0,\n n = list.length;\n\n if (iterator) {\n for (; i < n; i++) {\n iterator(list[i], i);\n }\n }\n\n return list;\n }\n\n return [];\n}\n\nfunction getWindowScrollingElement() {\n var scrollingElement = document.scrollingElement;\n\n if (scrollingElement) {\n return scrollingElement;\n } else {\n return document.documentElement;\n }\n}\n/**\r\n * Returns the \"bounding client rect\" of given element\r\n * @param {HTMLElement} el The element whose boundingClientRect is wanted\r\n * @param {[Boolean]} relativeToContainingBlock Whether the rect should be relative to the containing block of (including) the container\r\n * @param {[Boolean]} relativeToNonStaticParent Whether the rect should be relative to the relative parent of (including) the contaienr\r\n * @param {[Boolean]} undoScale Whether the container's scale() should be undone\r\n * @param {[HTMLElement]} container The parent the element will be placed in\r\n * @return {Object} The boundingClientRect of el, with specified adjustments\r\n */\n\n\nfunction getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoScale, container) {\n if (!el.getBoundingClientRect && el !== window) return;\n var elRect, top, left, bottom, right, height, width;\n\n if (el !== window && el !== getWindowScrollingElement()) {\n elRect = el.getBoundingClientRect();\n top = elRect.top;\n left = elRect.left;\n bottom = elRect.bottom;\n right = elRect.right;\n height = elRect.height;\n width = elRect.width;\n } else {\n top = 0;\n left = 0;\n bottom = window.innerHeight;\n right = window.innerWidth;\n height = window.innerHeight;\n width = window.innerWidth;\n }\n\n if ((relativeToContainingBlock || relativeToNonStaticParent) && el !== window) {\n // Adjust for translate()\n container = container || el.parentNode; // solves #1123 (see: https://stackoverflow.com/a/37953806/6088312)\n // Not needed on <= IE11\n\n if (!IE11OrLess) {\n do {\n if (container && container.getBoundingClientRect && (css(container, 'transform') !== 'none' || relativeToNonStaticParent && css(container, 'position') !== 'static')) {\n var containerRect = container.getBoundingClientRect(); // Set relative to edges of padding box of container\n\n top -= containerRect.top + parseInt(css(container, 'border-top-width'));\n left -= containerRect.left + parseInt(css(container, 'border-left-width'));\n bottom = top + elRect.height;\n right = left + elRect.width;\n break;\n }\n /* jshint boss:true */\n\n } while (container = container.parentNode);\n }\n }\n\n if (undoScale && el !== window) {\n // Adjust for scale()\n var elMatrix = matrix(container || el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d;\n\n if (elMatrix) {\n top /= scaleY;\n left /= scaleX;\n width /= scaleX;\n height /= scaleY;\n bottom = top + height;\n right = left + width;\n }\n }\n\n return {\n top: top,\n left: left,\n bottom: bottom,\n right: right,\n width: width,\n height: height\n };\n}\n/**\r\n * Checks if a side of an element is scrolled past a side of its parents\r\n * @param {HTMLElement} el The element who's side being scrolled out of view is in question\r\n * @param {String} elSide Side of the element in question ('top', 'left', 'right', 'bottom')\r\n * @param {String} parentSide Side of the parent in question ('top', 'left', 'right', 'bottom')\r\n * @return {HTMLElement} The parent scroll element that the el's side is scrolled past, or null if there is no such element\r\n */\n\n\nfunction isScrolledPast(el, elSide, parentSide) {\n var parent = getParentAutoScrollElement(el, true),\n elSideVal = getRect(el)[elSide];\n /* jshint boss:true */\n\n while (parent) {\n var parentSideVal = getRect(parent)[parentSide],\n visible = void 0;\n\n if (parentSide === 'top' || parentSide === 'left') {\n visible = elSideVal >= parentSideVal;\n } else {\n visible = elSideVal <= parentSideVal;\n }\n\n if (!visible) return parent;\n if (parent === getWindowScrollingElement()) break;\n parent = getParentAutoScrollElement(parent, false);\n }\n\n return false;\n}\n/**\r\n * Gets nth child of el, ignoring hidden children, sortable's elements (does not ignore clone if it's visible)\r\n * and non-draggable elements\r\n * @param {HTMLElement} el The parent element\r\n * @param {Number} childNum The index of the child\r\n * @param {Object} options Parent Sortable's options\r\n * @return {HTMLElement} The child at index childNum, or null if not found\r\n */\n\n\nfunction getChild(el, childNum, options) {\n var currentChild = 0,\n i = 0,\n children = el.children;\n\n while (i < children.length) {\n if (children[i].style.display !== 'none' && children[i] !== Sortable.ghost && children[i] !== Sortable.dragged && closest(children[i], options.draggable, el, false)) {\n if (currentChild === childNum) {\n return children[i];\n }\n\n currentChild++;\n }\n\n i++;\n }\n\n return null;\n}\n/**\r\n * Gets the last child in the el, ignoring ghostEl or invisible elements (clones)\r\n * @param {HTMLElement} el Parent element\r\n * @param {selector} selector Any other elements that should be ignored\r\n * @return {HTMLElement} The last child, ignoring ghostEl\r\n */\n\n\nfunction lastChild(el, selector) {\n var last = el.lastElementChild;\n\n while (last && (last === Sortable.ghost || css(last, 'display') === 'none' || selector && !matches(last, selector))) {\n last = last.previousElementSibling;\n }\n\n return last || null;\n}\n/**\r\n * Returns the index of an element within its parent for a selected set of\r\n * elements\r\n * @param {HTMLElement} el\r\n * @param {selector} selector\r\n * @return {number}\r\n */\n\n\nfunction index(el, selector) {\n var index = 0;\n\n if (!el || !el.parentNode) {\n return -1;\n }\n /* jshint boss:true */\n\n\n while (el = el.previousElementSibling) {\n if (el.nodeName.toUpperCase() !== 'TEMPLATE' && el !== Sortable.clone && (!selector || matches(el, selector))) {\n index++;\n }\n }\n\n return index;\n}\n/**\r\n * Returns the scroll offset of the given element, added with all the scroll offsets of parent elements.\r\n * The value is returned in real pixels.\r\n * @param {HTMLElement} el\r\n * @return {Array} Offsets in the format of [left, top]\r\n */\n\n\nfunction getRelativeScrollOffset(el) {\n var offsetLeft = 0,\n offsetTop = 0,\n winScroller = getWindowScrollingElement();\n\n if (el) {\n do {\n var elMatrix = matrix(el),\n scaleX = elMatrix.a,\n scaleY = elMatrix.d;\n offsetLeft += el.scrollLeft * scaleX;\n offsetTop += el.scrollTop * scaleY;\n } while (el !== winScroller && (el = el.parentNode));\n }\n\n return [offsetLeft, offsetTop];\n}\n/**\r\n * Returns the index of the object within the given array\r\n * @param {Array} arr Array that may or may not hold the object\r\n * @param {Object} obj An object that has a key-value pair unique to and identical to a key-value pair in the object you want to find\r\n * @return {Number} The index of the object in the array, or -1\r\n */\n\n\nfunction indexOfObject(arr, obj) {\n for (var i in arr) {\n if (!arr.hasOwnProperty(i)) continue;\n\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && obj[key] === arr[i][key]) return Number(i);\n }\n }\n\n return -1;\n}\n\nfunction getParentAutoScrollElement(el, includeSelf) {\n // skip to window\n if (!el || !el.getBoundingClientRect) return getWindowScrollingElement();\n var elem = el;\n var gotSelf = false;\n\n do {\n // we don't need to get elem css if it isn't even overflowing in the first place (performance)\n if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) {\n var elemCSS = css(elem);\n\n if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == 'auto' || elemCSS.overflowX == 'scroll') || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == 'auto' || elemCSS.overflowY == 'scroll')) {\n if (!elem.getBoundingClientRect || elem === document.body) return getWindowScrollingElement();\n if (gotSelf || includeSelf) return elem;\n gotSelf = true;\n }\n }\n /* jshint boss:true */\n\n } while (elem = elem.parentNode);\n\n return getWindowScrollingElement();\n}\n\nfunction extend(dst, src) {\n if (dst && src) {\n for (var key in src) {\n if (src.hasOwnProperty(key)) {\n dst[key] = src[key];\n }\n }\n }\n\n return dst;\n}\n\nfunction isRectEqual(rect1, rect2) {\n return Math.round(rect1.top) === Math.round(rect2.top) && Math.round(rect1.left) === Math.round(rect2.left) && Math.round(rect1.height) === Math.round(rect2.height) && Math.round(rect1.width) === Math.round(rect2.width);\n}\n\nvar _throttleTimeout;\n\nfunction throttle(callback, ms) {\n return function () {\n if (!_throttleTimeout) {\n var args = arguments,\n _this = this;\n\n if (args.length === 1) {\n callback.call(_this, args[0]);\n } else {\n callback.apply(_this, args);\n }\n\n _throttleTimeout = setTimeout(function () {\n _throttleTimeout = void 0;\n }, ms);\n }\n };\n}\n\nfunction cancelThrottle() {\n clearTimeout(_throttleTimeout);\n _throttleTimeout = void 0;\n}\n\nfunction scrollBy(el, x, y) {\n el.scrollLeft += x;\n el.scrollTop += y;\n}\n\nfunction clone(el) {\n var Polymer = window.Polymer;\n var $ = window.jQuery || window.Zepto;\n\n if (Polymer && Polymer.dom) {\n return Polymer.dom(el).cloneNode(true);\n } else if ($) {\n return $(el).clone(true)[0];\n } else {\n return el.cloneNode(true);\n }\n}\n\nfunction setRect(el, rect) {\n css(el, 'position', 'absolute');\n css(el, 'top', rect.top);\n css(el, 'left', rect.left);\n css(el, 'width', rect.width);\n css(el, 'height', rect.height);\n}\n\nfunction unsetRect(el) {\n css(el, 'position', '');\n css(el, 'top', '');\n css(el, 'left', '');\n css(el, 'width', '');\n css(el, 'height', '');\n}\n\nvar expando = 'Sortable' + new Date().getTime();\n\nfunction AnimationStateManager() {\n var animationStates = [],\n animationCallbackId;\n return {\n captureAnimationState: function captureAnimationState() {\n animationStates = [];\n if (!this.options.animation) return;\n var children = [].slice.call(this.el.children);\n children.forEach(function (child) {\n if (css(child, 'display') === 'none' || child === Sortable.ghost) return;\n animationStates.push({\n target: child,\n rect: getRect(child)\n });\n\n var fromRect = _objectSpread({}, animationStates[animationStates.length - 1].rect); // If animating: compensate for current animation\n\n\n if (child.thisAnimationDuration) {\n var childMatrix = matrix(child, true);\n\n if (childMatrix) {\n fromRect.top -= childMatrix.f;\n fromRect.left -= childMatrix.e;\n }\n }\n\n child.fromRect = fromRect;\n });\n },\n addAnimationState: function addAnimationState(state) {\n animationStates.push(state);\n },\n removeAnimationState: function removeAnimationState(target) {\n animationStates.splice(indexOfObject(animationStates, {\n target: target\n }), 1);\n },\n animateAll: function animateAll(callback) {\n var _this = this;\n\n if (!this.options.animation) {\n clearTimeout(animationCallbackId);\n if (typeof callback === 'function') callback();\n return;\n }\n\n var animating = false,\n animationTime = 0;\n animationStates.forEach(function (state) {\n var time = 0,\n target = state.target,\n fromRect = target.fromRect,\n toRect = getRect(target),\n prevFromRect = target.prevFromRect,\n prevToRect = target.prevToRect,\n animatingRect = state.rect,\n targetMatrix = matrix(target, true);\n\n if (targetMatrix) {\n // Compensate for current animation\n toRect.top -= targetMatrix.f;\n toRect.left -= targetMatrix.e;\n }\n\n target.toRect = toRect;\n\n if (target.thisAnimationDuration) {\n // Could also check if animatingRect is between fromRect and toRect\n if (isRectEqual(prevFromRect, toRect) && !isRectEqual(fromRect, toRect) && // Make sure animatingRect is on line between toRect & fromRect\n (animatingRect.top - toRect.top) / (animatingRect.left - toRect.left) === (fromRect.top - toRect.top) / (fromRect.left - toRect.left)) {\n // If returning to same place as started from animation and on same axis\n time = calculateRealTime(animatingRect, prevFromRect, prevToRect, _this.options);\n }\n } // if fromRect != toRect: animate\n\n\n if (!isRectEqual(toRect, fromRect)) {\n target.prevFromRect = fromRect;\n target.prevToRect = toRect;\n\n if (!time) {\n time = _this.options.animation;\n }\n\n _this.animate(target, animatingRect, toRect, time);\n }\n\n if (time) {\n animating = true;\n animationTime = Math.max(animationTime, time);\n clearTimeout(target.animationResetTimer);\n target.animationResetTimer = setTimeout(function () {\n target.animationTime = 0;\n target.prevFromRect = null;\n target.fromRect = null;\n target.prevToRect = null;\n target.thisAnimationDuration = null;\n }, time);\n target.thisAnimationDuration = time;\n }\n });\n clearTimeout(animationCallbackId);\n\n if (!animating) {\n if (typeof callback === 'function') callback();\n } else {\n animationCallbackId = setTimeout(function () {\n if (typeof callback === 'function') callback();\n }, animationTime);\n }\n\n animationStates = [];\n },\n animate: function animate(target, currentRect, toRect, duration) {\n if (duration) {\n css(target, 'transition', '');\n css(target, 'transform', '');\n var elMatrix = matrix(this.el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d,\n translateX = (currentRect.left - toRect.left) / (scaleX || 1),\n translateY = (currentRect.top - toRect.top) / (scaleY || 1);\n target.animatingX = !!translateX;\n target.animatingY = !!translateY;\n css(target, 'transform', 'translate3d(' + translateX + 'px,' + translateY + 'px,0)');\n repaint(target); // repaint\n\n css(target, 'transition', 'transform ' + duration + 'ms' + (this.options.easing ? ' ' + this.options.easing : ''));\n css(target, 'transform', 'translate3d(0,0,0)');\n typeof target.animated === 'number' && clearTimeout(target.animated);\n target.animated = setTimeout(function () {\n css(target, 'transition', '');\n css(target, 'transform', '');\n target.animated = false;\n target.animatingX = false;\n target.animatingY = false;\n }, duration);\n }\n }\n };\n}\n\nfunction repaint(target) {\n return target.offsetWidth;\n}\n\nfunction calculateRealTime(animatingRect, fromRect, toRect, options) {\n return Math.sqrt(Math.pow(fromRect.top - animatingRect.top, 2) + Math.pow(fromRect.left - animatingRect.left, 2)) / Math.sqrt(Math.pow(fromRect.top - toRect.top, 2) + Math.pow(fromRect.left - toRect.left, 2)) * options.animation;\n}\n\nvar plugins = [];\nvar defaults = {\n initializeByDefault: true\n};\nvar PluginManager = {\n mount: function mount(plugin) {\n // Set default static properties\n for (var option in defaults) {\n if (defaults.hasOwnProperty(option) && !(option in plugin)) {\n plugin[option] = defaults[option];\n }\n }\n\n plugins.push(plugin);\n },\n pluginEvent: function pluginEvent(eventName, sortable, evt) {\n var _this = this;\n\n this.eventCanceled = false;\n\n evt.cancel = function () {\n _this.eventCanceled = true;\n };\n\n var eventNameGlobal = eventName + 'Global';\n plugins.forEach(function (plugin) {\n if (!sortable[plugin.pluginName]) return; // Fire global events if it exists in this sortable\n\n if (sortable[plugin.pluginName][eventNameGlobal]) {\n sortable[plugin.pluginName][eventNameGlobal](_objectSpread({\n sortable: sortable\n }, evt));\n } // Only fire plugin event if plugin is enabled in this sortable,\n // and plugin has event defined\n\n\n if (sortable.options[plugin.pluginName] && sortable[plugin.pluginName][eventName]) {\n sortable[plugin.pluginName][eventName](_objectSpread({\n sortable: sortable\n }, evt));\n }\n });\n },\n initializePlugins: function initializePlugins(sortable, el, defaults, options) {\n plugins.forEach(function (plugin) {\n var pluginName = plugin.pluginName;\n if (!sortable.options[pluginName] && !plugin.initializeByDefault) return;\n var initialized = new plugin(sortable, el, sortable.options);\n initialized.sortable = sortable;\n initialized.options = sortable.options;\n sortable[pluginName] = initialized; // Add default options from plugin\n\n _extends(defaults, initialized.defaults);\n });\n\n for (var option in sortable.options) {\n if (!sortable.options.hasOwnProperty(option)) continue;\n var modified = this.modifyOption(sortable, option, sortable.options[option]);\n\n if (typeof modified !== 'undefined') {\n sortable.options[option] = modified;\n }\n }\n },\n getEventProperties: function getEventProperties(name, sortable) {\n var eventProperties = {};\n plugins.forEach(function (plugin) {\n if (typeof plugin.eventProperties !== 'function') return;\n\n _extends(eventProperties, plugin.eventProperties.call(sortable[plugin.pluginName], name));\n });\n return eventProperties;\n },\n modifyOption: function modifyOption(sortable, name, value) {\n var modifiedValue;\n plugins.forEach(function (plugin) {\n // Plugin must exist on the Sortable\n if (!sortable[plugin.pluginName]) return; // If static option listener exists for this option, call in the context of the Sortable's instance of this plugin\n\n if (plugin.optionListeners && typeof plugin.optionListeners[name] === 'function') {\n modifiedValue = plugin.optionListeners[name].call(sortable[plugin.pluginName], value);\n }\n });\n return modifiedValue;\n }\n};\n\nfunction dispatchEvent(_ref) {\n var sortable = _ref.sortable,\n rootEl = _ref.rootEl,\n name = _ref.name,\n targetEl = _ref.targetEl,\n cloneEl = _ref.cloneEl,\n toEl = _ref.toEl,\n fromEl = _ref.fromEl,\n oldIndex = _ref.oldIndex,\n newIndex = _ref.newIndex,\n oldDraggableIndex = _ref.oldDraggableIndex,\n newDraggableIndex = _ref.newDraggableIndex,\n originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n extraEventProperties = _ref.extraEventProperties;\n sortable = sortable || rootEl && rootEl[expando];\n if (!sortable) return;\n var evt,\n options = sortable.options,\n onName = 'on' + name.charAt(0).toUpperCase() + name.substr(1); // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent(name, {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent(name, true, true);\n }\n\n evt.to = toEl || rootEl;\n evt.from = fromEl || rootEl;\n evt.item = targetEl || rootEl;\n evt.clone = cloneEl;\n evt.oldIndex = oldIndex;\n evt.newIndex = newIndex;\n evt.oldDraggableIndex = oldDraggableIndex;\n evt.newDraggableIndex = newDraggableIndex;\n evt.originalEvent = originalEvent;\n evt.pullMode = putSortable ? putSortable.lastPutMode : undefined;\n\n var allEventProperties = _objectSpread({}, extraEventProperties, PluginManager.getEventProperties(name, sortable));\n\n for (var option in allEventProperties) {\n evt[option] = allEventProperties[option];\n }\n\n if (rootEl) {\n rootEl.dispatchEvent(evt);\n }\n\n if (options[onName]) {\n options[onName].call(sortable, evt);\n }\n}\n\nvar pluginEvent = function pluginEvent(eventName, sortable) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n originalEvent = _ref.evt,\n data = _objectWithoutProperties(_ref, [\"evt\"]);\n\n PluginManager.pluginEvent.bind(Sortable)(eventName, sortable, _objectSpread({\n dragEl: dragEl,\n parentEl: parentEl,\n ghostEl: ghostEl,\n rootEl: rootEl,\n nextEl: nextEl,\n lastDownEl: lastDownEl,\n cloneEl: cloneEl,\n cloneHidden: cloneHidden,\n dragStarted: moved,\n putSortable: putSortable,\n activeSortable: Sortable.active,\n originalEvent: originalEvent,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n hideGhostForTarget: _hideGhostForTarget,\n unhideGhostForTarget: _unhideGhostForTarget,\n cloneNowHidden: function cloneNowHidden() {\n cloneHidden = true;\n },\n cloneNowShown: function cloneNowShown() {\n cloneHidden = false;\n },\n dispatchSortableEvent: function dispatchSortableEvent(name) {\n _dispatchEvent({\n sortable: sortable,\n name: name,\n originalEvent: originalEvent\n });\n }\n }, data));\n};\n\nfunction _dispatchEvent(info) {\n dispatchEvent(_objectSpread({\n putSortable: putSortable,\n cloneEl: cloneEl,\n targetEl: dragEl,\n rootEl: rootEl,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex\n }, info));\n}\n\nvar dragEl,\n parentEl,\n ghostEl,\n rootEl,\n nextEl,\n lastDownEl,\n cloneEl,\n cloneHidden,\n oldIndex,\n newIndex,\n oldDraggableIndex,\n newDraggableIndex,\n activeGroup,\n putSortable,\n awaitingDragStarted = false,\n ignoreNextClick = false,\n sortables = [],\n tapEvt,\n touchEvt,\n lastDx,\n lastDy,\n tapDistanceLeft,\n tapDistanceTop,\n moved,\n lastTarget,\n lastDirection,\n pastFirstInvertThresh = false,\n isCircumstantialInvert = false,\n targetMoveDistance,\n // For positioning ghost absolutely\nghostRelativeParent,\n ghostRelativeParentInitialScroll = [],\n // (left, top)\n_silent = false,\n savedInputChecked = [];\n/** @const */\n\nvar documentExists = typeof document !== 'undefined',\n PositionGhostAbsolutely = IOS,\n CSSFloatProperty = Edge || IE11OrLess ? 'cssFloat' : 'float',\n // This will not pass for IE9, because IE9 DnD only works on anchors\nsupportDraggable = documentExists && !ChromeForAndroid && !IOS && 'draggable' in document.createElement('div'),\n supportCssPointerEvents = function () {\n if (!documentExists) return; // false when <= IE11\n\n if (IE11OrLess) {\n return false;\n }\n\n var el = document.createElement('x');\n el.style.cssText = 'pointer-events:auto';\n return el.style.pointerEvents === 'auto';\n}(),\n _detectDirection = function _detectDirection(el, options) {\n var elCSS = css(el),\n elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth),\n child1 = getChild(el, 0, options),\n child2 = getChild(el, 1, options),\n firstChildCSS = child1 && css(child1),\n secondChildCSS = child2 && css(child2),\n firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width,\n secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width;\n\n if (elCSS.display === 'flex') {\n return elCSS.flexDirection === 'column' || elCSS.flexDirection === 'column-reverse' ? 'vertical' : 'horizontal';\n }\n\n if (elCSS.display === 'grid') {\n return elCSS.gridTemplateColumns.split(' ').length <= 1 ? 'vertical' : 'horizontal';\n }\n\n if (child1 && firstChildCSS[\"float\"] && firstChildCSS[\"float\"] !== 'none') {\n var touchingSideChild2 = firstChildCSS[\"float\"] === 'left' ? 'left' : 'right';\n return child2 && (secondChildCSS.clear === 'both' || secondChildCSS.clear === touchingSideChild2) ? 'vertical' : 'horizontal';\n }\n\n return child1 && (firstChildCSS.display === 'block' || firstChildCSS.display === 'flex' || firstChildCSS.display === 'table' || firstChildCSS.display === 'grid' || firstChildWidth >= elWidth && elCSS[CSSFloatProperty] === 'none' || child2 && elCSS[CSSFloatProperty] === 'none' && firstChildWidth + secondChildWidth > elWidth) ? 'vertical' : 'horizontal';\n},\n _dragElInRowColumn = function _dragElInRowColumn(dragRect, targetRect, vertical) {\n var dragElS1Opp = vertical ? dragRect.left : dragRect.top,\n dragElS2Opp = vertical ? dragRect.right : dragRect.bottom,\n dragElOppLength = vertical ? dragRect.width : dragRect.height,\n targetS1Opp = vertical ? targetRect.left : targetRect.top,\n targetS2Opp = vertical ? targetRect.right : targetRect.bottom,\n targetOppLength = vertical ? targetRect.width : targetRect.height;\n return dragElS1Opp === targetS1Opp || dragElS2Opp === targetS2Opp || dragElS1Opp + dragElOppLength / 2 === targetS1Opp + targetOppLength / 2;\n},\n\n/**\n * Detects first nearest empty sortable to X and Y position using emptyInsertThreshold.\n * @param {Number} x X position\n * @param {Number} y Y position\n * @return {HTMLElement} Element of the first found nearest Sortable\n */\n_detectNearestEmptySortable = function _detectNearestEmptySortable(x, y) {\n var ret;\n sortables.some(function (sortable) {\n if (lastChild(sortable)) return;\n var rect = getRect(sortable),\n threshold = sortable[expando].options.emptyInsertThreshold,\n insideHorizontally = x >= rect.left - threshold && x <= rect.right + threshold,\n insideVertically = y >= rect.top - threshold && y <= rect.bottom + threshold;\n\n if (threshold && insideHorizontally && insideVertically) {\n return ret = sortable;\n }\n });\n return ret;\n},\n _prepareGroup = function _prepareGroup(options) {\n function toFn(value, pull) {\n return function (to, from, dragEl, evt) {\n var sameGroup = to.options.group.name && from.options.group.name && to.options.group.name === from.options.group.name;\n\n if (value == null && (pull || sameGroup)) {\n // Default pull value\n // Default pull and put value if same group\n return true;\n } else if (value == null || value === false) {\n return false;\n } else if (pull && value === 'clone') {\n return value;\n } else if (typeof value === 'function') {\n return toFn(value(to, from, dragEl, evt), pull)(to, from, dragEl, evt);\n } else {\n var otherGroup = (pull ? to : from).options.group.name;\n return value === true || typeof value === 'string' && value === otherGroup || value.join && value.indexOf(otherGroup) > -1;\n }\n };\n }\n\n var group = {};\n var originalGroup = options.group;\n\n if (!originalGroup || _typeof(originalGroup) != 'object') {\n originalGroup = {\n name: originalGroup\n };\n }\n\n group.name = originalGroup.name;\n group.checkPull = toFn(originalGroup.pull, true);\n group.checkPut = toFn(originalGroup.put);\n group.revertClone = originalGroup.revertClone;\n options.group = group;\n},\n _hideGhostForTarget = function _hideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', 'none');\n }\n},\n _unhideGhostForTarget = function _unhideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', '');\n }\n}; // #1184 fix - Prevent click event on fallback if dragged but item not changed position\n\n\nif (documentExists) {\n document.addEventListener('click', function (evt) {\n if (ignoreNextClick) {\n evt.preventDefault();\n evt.stopPropagation && evt.stopPropagation();\n evt.stopImmediatePropagation && evt.stopImmediatePropagation();\n ignoreNextClick = false;\n return false;\n }\n }, true);\n}\n\nvar nearestEmptyInsertDetectEvent = function nearestEmptyInsertDetectEvent(evt) {\n if (dragEl) {\n evt = evt.touches ? evt.touches[0] : evt;\n\n var nearest = _detectNearestEmptySortable(evt.clientX, evt.clientY);\n\n if (nearest) {\n // Create imitation event\n var event = {};\n\n for (var i in evt) {\n if (evt.hasOwnProperty(i)) {\n event[i] = evt[i];\n }\n }\n\n event.target = event.rootEl = nearest;\n event.preventDefault = void 0;\n event.stopPropagation = void 0;\n\n nearest[expando]._onDragOver(event);\n }\n }\n};\n\nvar _checkOutsideTargetEl = function _checkOutsideTargetEl(evt) {\n if (dragEl) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target);\n }\n};\n/**\n * @class Sortable\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nfunction Sortable(el, options) {\n if (!(el && el.nodeType && el.nodeType === 1)) {\n throw \"Sortable: `el` must be an HTMLElement, not \".concat({}.toString.call(el));\n }\n\n this.el = el; // root element\n\n this.options = options = _extends({}, options); // Export instance\n\n el[expando] = this;\n var defaults = {\n group: null,\n sort: true,\n disabled: false,\n store: null,\n handle: null,\n draggable: /^[uo]l$/i.test(el.nodeName) ? '>li' : '>*',\n swapThreshold: 1,\n // percentage; 0 <= x <= 1\n invertSwap: false,\n // invert always\n invertedSwapThreshold: null,\n // will be set to same as swapThreshold if default\n removeCloneOnHide: true,\n direction: function direction() {\n return _detectDirection(el, this.options);\n },\n ghostClass: 'sortable-ghost',\n chosenClass: 'sortable-chosen',\n dragClass: 'sortable-drag',\n ignore: 'a, img',\n filter: null,\n preventOnFilter: true,\n animation: 0,\n easing: null,\n setData: function setData(dataTransfer, dragEl) {\n dataTransfer.setData('Text', dragEl.textContent);\n },\n dropBubble: false,\n dragoverBubble: false,\n dataIdAttr: 'data-id',\n delay: 0,\n delayOnTouchOnly: false,\n touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1,\n forceFallback: false,\n fallbackClass: 'sortable-fallback',\n fallbackOnBody: false,\n fallbackTolerance: 0,\n fallbackOffset: {\n x: 0,\n y: 0\n },\n supportPointer: Sortable.supportPointer !== false && 'PointerEvent' in window,\n emptyInsertThreshold: 5\n };\n PluginManager.initializePlugins(this, el, defaults); // Set default options\n\n for (var name in defaults) {\n !(name in options) && (options[name] = defaults[name]);\n }\n\n _prepareGroup(options); // Bind all private methods\n\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n } // Setup drag mode\n\n\n this.nativeDraggable = options.forceFallback ? false : supportDraggable;\n\n if (this.nativeDraggable) {\n // Touch start threshold cannot be greater than the native dragstart threshold\n this.options.touchStartThreshold = 1;\n } // Bind events\n\n\n if (options.supportPointer) {\n on(el, 'pointerdown', this._onTapStart);\n } else {\n on(el, 'mousedown', this._onTapStart);\n on(el, 'touchstart', this._onTapStart);\n }\n\n if (this.nativeDraggable) {\n on(el, 'dragover', this);\n on(el, 'dragenter', this);\n }\n\n sortables.push(this.el); // Restore sorting\n\n options.store && options.store.get && this.sort(options.store.get(this) || []); // Add animation state manager\n\n _extends(this, AnimationStateManager());\n}\n\nSortable.prototype =\n/** @lends Sortable.prototype */\n{\n constructor: Sortable,\n _isOutsideThisEl: function _isOutsideThisEl(target) {\n if (!this.el.contains(target) && target !== this.el) {\n lastTarget = null;\n }\n },\n _getDirection: function _getDirection(evt, target) {\n return typeof this.options.direction === 'function' ? this.options.direction.call(this, evt, target, dragEl) : this.options.direction;\n },\n _onTapStart: function _onTapStart(\n /** Event|TouchEvent */\n evt) {\n if (!evt.cancelable) return;\n\n var _this = this,\n el = this.el,\n options = this.options,\n preventOnFilter = options.preventOnFilter,\n type = evt.type,\n touch = evt.touches && evt.touches[0] || evt.pointerType && evt.pointerType === 'touch' && evt,\n target = (touch || evt).target,\n originalTarget = evt.target.shadowRoot && (evt.path && evt.path[0] || evt.composedPath && evt.composedPath()[0]) || target,\n filter = options.filter;\n\n _saveInputCheckedState(el); // Don't trigger start event when an element is been dragged, otherwise the evt.oldindex always wrong when set option.group.\n\n\n if (dragEl) {\n return;\n }\n\n if (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) {\n return; // only left button and enabled\n } // cancel dnd if original target is content editable\n\n\n if (originalTarget.isContentEditable) {\n return;\n }\n\n target = closest(target, options.draggable, el, false);\n\n if (target && target.animated) {\n return;\n }\n\n if (lastDownEl === target) {\n // Ignoring duplicate `down`\n return;\n } // Get the index of the dragged element within its parent\n\n\n oldIndex = index(target);\n oldDraggableIndex = index(target, options.draggable); // Check filter\n\n if (typeof filter === 'function') {\n if (filter.call(this, evt, target, this)) {\n _dispatchEvent({\n sortable: _this,\n rootEl: originalTarget,\n name: 'filter',\n targetEl: target,\n toEl: el,\n fromEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n } else if (filter) {\n filter = filter.split(',').some(function (criteria) {\n criteria = closest(originalTarget, criteria.trim(), el, false);\n\n if (criteria) {\n _dispatchEvent({\n sortable: _this,\n rootEl: criteria,\n name: 'filter',\n targetEl: target,\n fromEl: el,\n toEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n return true;\n }\n });\n\n if (filter) {\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n }\n\n if (options.handle && !closest(originalTarget, options.handle, el, false)) {\n return;\n } // Prepare `dragstart`\n\n\n this._prepareDragStart(evt, touch, target);\n },\n _prepareDragStart: function _prepareDragStart(\n /** Event */\n evt,\n /** Touch */\n touch,\n /** HTMLElement */\n target) {\n var _this = this,\n el = _this.el,\n options = _this.options,\n ownerDocument = el.ownerDocument,\n dragStartFn;\n\n if (target && !dragEl && target.parentNode === el) {\n var dragRect = getRect(target);\n rootEl = el;\n dragEl = target;\n parentEl = dragEl.parentNode;\n nextEl = dragEl.nextSibling;\n lastDownEl = target;\n activeGroup = options.group;\n Sortable.dragged = dragEl;\n tapEvt = {\n target: dragEl,\n clientX: (touch || evt).clientX,\n clientY: (touch || evt).clientY\n };\n tapDistanceLeft = tapEvt.clientX - dragRect.left;\n tapDistanceTop = tapEvt.clientY - dragRect.top;\n this._lastX = (touch || evt).clientX;\n this._lastY = (touch || evt).clientY;\n dragEl.style['will-change'] = 'all';\n\n dragStartFn = function dragStartFn() {\n pluginEvent('delayEnded', _this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n _this._onDrop();\n\n return;\n } // Delayed drag has been triggered\n // we can re-enable the events: touchmove/mousemove\n\n\n _this._disableDelayedDragEvents();\n\n if (!FireFox && _this.nativeDraggable) {\n dragEl.draggable = true;\n } // Bind the events: dragstart/dragend\n\n\n _this._triggerDragStart(evt, touch); // Drag start event\n\n\n _dispatchEvent({\n sortable: _this,\n name: 'choose',\n originalEvent: evt\n }); // Chosen item\n\n\n toggleClass(dragEl, options.chosenClass, true);\n }; // Disable \"draggable\"\n\n\n options.ignore.split(',').forEach(function (criteria) {\n find(dragEl, criteria.trim(), _disableDraggable);\n });\n on(ownerDocument, 'dragover', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mousemove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'touchmove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mouseup', _this._onDrop);\n on(ownerDocument, 'touchend', _this._onDrop);\n on(ownerDocument, 'touchcancel', _this._onDrop); // Make dragEl draggable (must be before delay for FireFox)\n\n if (FireFox && this.nativeDraggable) {\n this.options.touchStartThreshold = 4;\n dragEl.draggable = true;\n }\n\n pluginEvent('delayStart', this, {\n evt: evt\n }); // Delay is impossible for native DnD in Edge or IE\n\n if (options.delay && (!options.delayOnTouchOnly || touch) && (!this.nativeDraggable || !(Edge || IE11OrLess))) {\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n } // If the user moves the pointer or let go the click or touch\n // before the delay has been reached:\n // disable the delayed drag\n\n\n on(ownerDocument, 'mouseup', _this._disableDelayedDrag);\n on(ownerDocument, 'touchend', _this._disableDelayedDrag);\n on(ownerDocument, 'touchcancel', _this._disableDelayedDrag);\n on(ownerDocument, 'mousemove', _this._delayedDragTouchMoveHandler);\n on(ownerDocument, 'touchmove', _this._delayedDragTouchMoveHandler);\n options.supportPointer && on(ownerDocument, 'pointermove', _this._delayedDragTouchMoveHandler);\n _this._dragStartTimer = setTimeout(dragStartFn, options.delay);\n } else {\n dragStartFn();\n }\n }\n },\n _delayedDragTouchMoveHandler: function _delayedDragTouchMoveHandler(\n /** TouchEvent|PointerEvent **/\n e) {\n var touch = e.touches ? e.touches[0] : e;\n\n if (Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1))) {\n this._disableDelayedDrag();\n }\n },\n _disableDelayedDrag: function _disableDelayedDrag() {\n dragEl && _disableDraggable(dragEl);\n clearTimeout(this._dragStartTimer);\n\n this._disableDelayedDragEvents();\n },\n _disableDelayedDragEvents: function _disableDelayedDragEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._disableDelayedDrag);\n off(ownerDocument, 'touchend', this._disableDelayedDrag);\n off(ownerDocument, 'touchcancel', this._disableDelayedDrag);\n off(ownerDocument, 'mousemove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'touchmove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'pointermove', this._delayedDragTouchMoveHandler);\n },\n _triggerDragStart: function _triggerDragStart(\n /** Event */\n evt,\n /** Touch */\n touch) {\n touch = touch || evt.pointerType == 'touch' && evt;\n\n if (!this.nativeDraggable || touch) {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._onTouchMove);\n } else if (touch) {\n on(document, 'touchmove', this._onTouchMove);\n } else {\n on(document, 'mousemove', this._onTouchMove);\n }\n } else {\n on(dragEl, 'dragend', this);\n on(rootEl, 'dragstart', this._onDragStart);\n }\n\n try {\n if (document.selection) {\n // Timeout neccessary for IE9\n _nextTick(function () {\n document.selection.empty();\n });\n } else {\n window.getSelection().removeAllRanges();\n }\n } catch (err) {}\n },\n _dragStarted: function _dragStarted(fallback, evt) {\n\n awaitingDragStarted = false;\n\n if (rootEl && dragEl) {\n pluginEvent('dragStarted', this, {\n evt: evt\n });\n\n if (this.nativeDraggable) {\n on(document, 'dragover', _checkOutsideTargetEl);\n }\n\n var options = this.options; // Apply effect\n\n !fallback && toggleClass(dragEl, options.dragClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n Sortable.active = this;\n fallback && this._appendGhost(); // Drag start event\n\n _dispatchEvent({\n sortable: this,\n name: 'start',\n originalEvent: evt\n });\n } else {\n this._nulling();\n }\n },\n _emulateDragOver: function _emulateDragOver() {\n if (touchEvt) {\n this._lastX = touchEvt.clientX;\n this._lastY = touchEvt.clientY;\n\n _hideGhostForTarget();\n\n var target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n var parent = target;\n\n while (target && target.shadowRoot) {\n target = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n if (target === parent) break;\n parent = target;\n }\n\n dragEl.parentNode[expando]._isOutsideThisEl(target);\n\n if (parent) {\n do {\n if (parent[expando]) {\n var inserted = void 0;\n inserted = parent[expando]._onDragOver({\n clientX: touchEvt.clientX,\n clientY: touchEvt.clientY,\n target: target,\n rootEl: parent\n });\n\n if (inserted && !this.options.dragoverBubble) {\n break;\n }\n }\n\n target = parent; // store last element\n }\n /* jshint boss:true */\n while (parent = parent.parentNode);\n }\n\n _unhideGhostForTarget();\n }\n },\n _onTouchMove: function _onTouchMove(\n /**TouchEvent*/\n evt) {\n if (tapEvt) {\n var options = this.options,\n fallbackTolerance = options.fallbackTolerance,\n fallbackOffset = options.fallbackOffset,\n touch = evt.touches ? evt.touches[0] : evt,\n ghostMatrix = ghostEl && matrix(ghostEl, true),\n scaleX = ghostEl && ghostMatrix && ghostMatrix.a,\n scaleY = ghostEl && ghostMatrix && ghostMatrix.d,\n relativeScrollOffset = PositionGhostAbsolutely && ghostRelativeParent && getRelativeScrollOffset(ghostRelativeParent),\n dx = (touch.clientX - tapEvt.clientX + fallbackOffset.x) / (scaleX || 1) + (relativeScrollOffset ? relativeScrollOffset[0] - ghostRelativeParentInitialScroll[0] : 0) / (scaleX || 1),\n dy = (touch.clientY - tapEvt.clientY + fallbackOffset.y) / (scaleY || 1) + (relativeScrollOffset ? relativeScrollOffset[1] - ghostRelativeParentInitialScroll[1] : 0) / (scaleY || 1); // only set the status to dragging, when we are actually dragging\n\n if (!Sortable.active && !awaitingDragStarted) {\n if (fallbackTolerance && Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) < fallbackTolerance) {\n return;\n }\n\n this._onDragStart(evt, true);\n }\n\n if (ghostEl) {\n if (ghostMatrix) {\n ghostMatrix.e += dx - (lastDx || 0);\n ghostMatrix.f += dy - (lastDy || 0);\n } else {\n ghostMatrix = {\n a: 1,\n b: 0,\n c: 0,\n d: 1,\n e: dx,\n f: dy\n };\n }\n\n var cssMatrix = \"matrix(\".concat(ghostMatrix.a, \",\").concat(ghostMatrix.b, \",\").concat(ghostMatrix.c, \",\").concat(ghostMatrix.d, \",\").concat(ghostMatrix.e, \",\").concat(ghostMatrix.f, \")\");\n css(ghostEl, 'webkitTransform', cssMatrix);\n css(ghostEl, 'mozTransform', cssMatrix);\n css(ghostEl, 'msTransform', cssMatrix);\n css(ghostEl, 'transform', cssMatrix);\n lastDx = dx;\n lastDy = dy;\n touchEvt = touch;\n }\n\n evt.cancelable && evt.preventDefault();\n }\n },\n _appendGhost: function _appendGhost() {\n // Bug if using scale(): https://stackoverflow.com/questions/2637058\n // Not being adjusted for\n if (!ghostEl) {\n var container = this.options.fallbackOnBody ? document.body : rootEl,\n rect = getRect(dragEl, true, PositionGhostAbsolutely, true, container),\n options = this.options; // Position absolutely\n\n if (PositionGhostAbsolutely) {\n // Get relatively positioned parent\n ghostRelativeParent = container;\n\n while (css(ghostRelativeParent, 'position') === 'static' && css(ghostRelativeParent, 'transform') === 'none' && ghostRelativeParent !== document) {\n ghostRelativeParent = ghostRelativeParent.parentNode;\n }\n\n if (ghostRelativeParent !== document.body && ghostRelativeParent !== document.documentElement) {\n if (ghostRelativeParent === document) ghostRelativeParent = getWindowScrollingElement();\n rect.top += ghostRelativeParent.scrollTop;\n rect.left += ghostRelativeParent.scrollLeft;\n } else {\n ghostRelativeParent = getWindowScrollingElement();\n }\n\n ghostRelativeParentInitialScroll = getRelativeScrollOffset(ghostRelativeParent);\n }\n\n ghostEl = dragEl.cloneNode(true);\n toggleClass(ghostEl, options.ghostClass, false);\n toggleClass(ghostEl, options.fallbackClass, true);\n toggleClass(ghostEl, options.dragClass, true);\n css(ghostEl, 'transition', '');\n css(ghostEl, 'transform', '');\n css(ghostEl, 'box-sizing', 'border-box');\n css(ghostEl, 'margin', 0);\n css(ghostEl, 'top', rect.top);\n css(ghostEl, 'left', rect.left);\n css(ghostEl, 'width', rect.width);\n css(ghostEl, 'height', rect.height);\n css(ghostEl, 'opacity', '0.8');\n css(ghostEl, 'position', PositionGhostAbsolutely ? 'absolute' : 'fixed');\n css(ghostEl, 'zIndex', '100000');\n css(ghostEl, 'pointerEvents', 'none');\n Sortable.ghost = ghostEl;\n container.appendChild(ghostEl); // Set transform-origin\n\n css(ghostEl, 'transform-origin', tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + '% ' + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + '%');\n }\n },\n _onDragStart: function _onDragStart(\n /**Event*/\n evt,\n /**boolean*/\n fallback) {\n var _this = this;\n\n var dataTransfer = evt.dataTransfer;\n var options = _this.options;\n pluginEvent('dragStart', this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n }\n\n pluginEvent('setupClone', this);\n\n if (!Sortable.eventCanceled) {\n cloneEl = clone(dragEl);\n cloneEl.draggable = false;\n cloneEl.style['will-change'] = '';\n\n this._hideClone();\n\n toggleClass(cloneEl, this.options.chosenClass, false);\n Sortable.clone = cloneEl;\n } // #1143: IFrame support workaround\n\n\n _this.cloneId = _nextTick(function () {\n pluginEvent('clone', _this);\n if (Sortable.eventCanceled) return;\n\n if (!_this.options.removeCloneOnHide) {\n rootEl.insertBefore(cloneEl, dragEl);\n }\n\n _this._hideClone();\n\n _dispatchEvent({\n sortable: _this,\n name: 'clone'\n });\n });\n !fallback && toggleClass(dragEl, options.dragClass, true); // Set proper drop events\n\n if (fallback) {\n ignoreNextClick = true;\n _this._loopId = setInterval(_this._emulateDragOver, 50);\n } else {\n // Undo what was set in _prepareDragStart before drag started\n off(document, 'mouseup', _this._onDrop);\n off(document, 'touchend', _this._onDrop);\n off(document, 'touchcancel', _this._onDrop);\n\n if (dataTransfer) {\n dataTransfer.effectAllowed = 'move';\n options.setData && options.setData.call(_this, dataTransfer, dragEl);\n }\n\n on(document, 'drop', _this); // #1276 fix:\n\n css(dragEl, 'transform', 'translateZ(0)');\n }\n\n awaitingDragStarted = true;\n _this._dragStartId = _nextTick(_this._dragStarted.bind(_this, fallback, evt));\n on(document, 'selectstart', _this);\n moved = true;\n\n if (Safari) {\n css(document.body, 'user-select', 'none');\n }\n },\n // Returns true - if no further action is needed (either inserted or another condition)\n _onDragOver: function _onDragOver(\n /**Event*/\n evt) {\n var el = this.el,\n target = evt.target,\n dragRect,\n targetRect,\n revert,\n options = this.options,\n group = options.group,\n activeSortable = Sortable.active,\n isOwner = activeGroup === group,\n canSort = options.sort,\n fromSortable = putSortable || activeSortable,\n vertical,\n _this = this,\n completedFired = false;\n\n if (_silent) return;\n\n function dragOverEvent(name, extra) {\n pluginEvent(name, _this, _objectSpread({\n evt: evt,\n isOwner: isOwner,\n axis: vertical ? 'vertical' : 'horizontal',\n revert: revert,\n dragRect: dragRect,\n targetRect: targetRect,\n canSort: canSort,\n fromSortable: fromSortable,\n target: target,\n completed: completed,\n onMove: function onMove(target, after) {\n return _onMove(rootEl, el, dragEl, dragRect, target, getRect(target), evt, after);\n },\n changed: changed\n }, extra));\n } // Capture animation state\n\n\n function capture() {\n dragOverEvent('dragOverAnimationCapture');\n\n _this.captureAnimationState();\n\n if (_this !== fromSortable) {\n fromSortable.captureAnimationState();\n }\n } // Return invocation when dragEl is inserted (or completed)\n\n\n function completed(insertion) {\n dragOverEvent('dragOverCompleted', {\n insertion: insertion\n });\n\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n } else {\n activeSortable._showClone(_this);\n }\n\n if (_this !== fromSortable) {\n // Set ghost class to new sortable's ghost class\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : activeSortable.options.ghostClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n }\n\n if (putSortable !== _this && _this !== Sortable.active) {\n putSortable = _this;\n } else if (_this === Sortable.active && putSortable) {\n putSortable = null;\n } // Animation\n\n\n if (fromSortable === _this) {\n _this._ignoreWhileAnimating = target;\n }\n\n _this.animateAll(function () {\n dragOverEvent('dragOverAnimationComplete');\n _this._ignoreWhileAnimating = null;\n });\n\n if (_this !== fromSortable) {\n fromSortable.animateAll();\n fromSortable._ignoreWhileAnimating = null;\n }\n } // Null lastTarget if it is not inside a previously swapped element\n\n\n if (target === dragEl && !dragEl.animated || target === el && !target.animated) {\n lastTarget = null;\n } // no bubbling and not fallback\n\n\n if (!options.dragoverBubble && !evt.rootEl && target !== document) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target); // Do not detect for empty insert if already inserted\n\n\n !insertion && nearestEmptyInsertDetectEvent(evt);\n }\n\n !options.dragoverBubble && evt.stopPropagation && evt.stopPropagation();\n return completedFired = true;\n } // Call when dragEl has been inserted\n\n\n function changed() {\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n _dispatchEvent({\n sortable: _this,\n name: 'change',\n toEl: el,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n originalEvent: evt\n });\n }\n\n if (evt.preventDefault !== void 0) {\n evt.cancelable && evt.preventDefault();\n }\n\n target = closest(target, options.draggable, el, true);\n dragOverEvent('dragOver');\n if (Sortable.eventCanceled) return completedFired;\n\n if (dragEl.contains(evt.target) || target.animated && target.animatingX && target.animatingY || _this._ignoreWhileAnimating === target) {\n return completed(false);\n }\n\n ignoreNextClick = false;\n\n if (activeSortable && !options.disabled && (isOwner ? canSort || (revert = !rootEl.contains(dragEl)) // Reverting item into the original list\n : putSortable === this || (this.lastPutMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) && group.checkPut(this, activeSortable, dragEl, evt))) {\n vertical = this._getDirection(evt, target) === 'vertical';\n dragRect = getRect(dragEl);\n dragOverEvent('dragOverValid');\n if (Sortable.eventCanceled) return completedFired;\n\n if (revert) {\n parentEl = rootEl; // actualization\n\n capture();\n\n this._hideClone();\n\n dragOverEvent('revert');\n\n if (!Sortable.eventCanceled) {\n if (nextEl) {\n rootEl.insertBefore(dragEl, nextEl);\n } else {\n rootEl.appendChild(dragEl);\n }\n }\n\n return completed(true);\n }\n\n var elLastChild = lastChild(el, options.draggable);\n\n if (!elLastChild || _ghostIsLast(evt, vertical, this) && !elLastChild.animated) {\n // If already at end of list: Do not insert\n if (elLastChild === dragEl) {\n return completed(false);\n } // assign target only if condition is true\n\n\n if (elLastChild && el === evt.target) {\n target = elLastChild;\n }\n\n if (target) {\n targetRect = getRect(target);\n }\n\n if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, !!target) !== false) {\n capture();\n el.appendChild(dragEl);\n parentEl = el; // actualization\n\n changed();\n return completed(true);\n }\n } else if (target.parentNode === el) {\n targetRect = getRect(target);\n var direction = 0,\n targetBeforeFirstSwap,\n differentLevel = dragEl.parentNode !== el,\n differentRowCol = !_dragElInRowColumn(dragEl.animated && dragEl.toRect || dragRect, target.animated && target.toRect || targetRect, vertical),\n side1 = vertical ? 'top' : 'left',\n scrolledPastTop = isScrolledPast(target, 'top', 'top') || isScrolledPast(dragEl, 'top', 'top'),\n scrollBefore = scrolledPastTop ? scrolledPastTop.scrollTop : void 0;\n\n if (lastTarget !== target) {\n targetBeforeFirstSwap = targetRect[side1];\n pastFirstInvertThresh = false;\n isCircumstantialInvert = !differentRowCol && options.invertSwap || differentLevel;\n }\n\n direction = _getSwapDirection(evt, target, targetRect, vertical, differentRowCol ? 1 : options.swapThreshold, options.invertedSwapThreshold == null ? options.swapThreshold : options.invertedSwapThreshold, isCircumstantialInvert, lastTarget === target);\n var sibling;\n\n if (direction !== 0) {\n // Check if target is beside dragEl in respective direction (ignoring hidden elements)\n var dragIndex = index(dragEl);\n\n do {\n dragIndex -= direction;\n sibling = parentEl.children[dragIndex];\n } while (sibling && (css(sibling, 'display') === 'none' || sibling === ghostEl));\n } // If dragEl is already beside target: Do not insert\n\n\n if (direction === 0 || sibling === target) {\n return completed(false);\n }\n\n lastTarget = target;\n lastDirection = direction;\n var nextSibling = target.nextElementSibling,\n after = false;\n after = direction === 1;\n\n var moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after);\n\n if (moveVector !== false) {\n if (moveVector === 1 || moveVector === -1) {\n after = moveVector === 1;\n }\n\n _silent = true;\n setTimeout(_unsilent, 30);\n capture();\n\n if (after && !nextSibling) {\n el.appendChild(dragEl);\n } else {\n target.parentNode.insertBefore(dragEl, after ? nextSibling : target);\n } // Undo chrome's scroll adjustment (has no effect on other browsers)\n\n\n if (scrolledPastTop) {\n scrollBy(scrolledPastTop, 0, scrollBefore - scrolledPastTop.scrollTop);\n }\n\n parentEl = dragEl.parentNode; // actualization\n // must be done before animation\n\n if (targetBeforeFirstSwap !== undefined && !isCircumstantialInvert) {\n targetMoveDistance = Math.abs(targetBeforeFirstSwap - getRect(target)[side1]);\n }\n\n changed();\n return completed(true);\n }\n }\n\n if (el.contains(dragEl)) {\n return completed(false);\n }\n }\n\n return false;\n },\n _ignoreWhileAnimating: null,\n _offMoveEvents: function _offMoveEvents() {\n off(document, 'mousemove', this._onTouchMove);\n off(document, 'touchmove', this._onTouchMove);\n off(document, 'pointermove', this._onTouchMove);\n off(document, 'dragover', nearestEmptyInsertDetectEvent);\n off(document, 'mousemove', nearestEmptyInsertDetectEvent);\n off(document, 'touchmove', nearestEmptyInsertDetectEvent);\n },\n _offUpEvents: function _offUpEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._onDrop);\n off(ownerDocument, 'touchend', this._onDrop);\n off(ownerDocument, 'pointerup', this._onDrop);\n off(ownerDocument, 'touchcancel', this._onDrop);\n off(document, 'selectstart', this);\n },\n _onDrop: function _onDrop(\n /**Event*/\n evt) {\n var el = this.el,\n options = this.options; // Get the index of the dragged element within its parent\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n pluginEvent('drop', this, {\n evt: evt\n });\n parentEl = dragEl && dragEl.parentNode; // Get again after plugin event\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n if (Sortable.eventCanceled) {\n this._nulling();\n\n return;\n }\n\n awaitingDragStarted = false;\n isCircumstantialInvert = false;\n pastFirstInvertThresh = false;\n clearInterval(this._loopId);\n clearTimeout(this._dragStartTimer);\n\n _cancelNextTick(this.cloneId);\n\n _cancelNextTick(this._dragStartId); // Unbind events\n\n\n if (this.nativeDraggable) {\n off(document, 'drop', this);\n off(el, 'dragstart', this._onDragStart);\n }\n\n this._offMoveEvents();\n\n this._offUpEvents();\n\n if (Safari) {\n css(document.body, 'user-select', '');\n }\n\n css(dragEl, 'transform', '');\n\n if (evt) {\n if (moved) {\n evt.cancelable && evt.preventDefault();\n !options.dropBubble && evt.stopPropagation();\n }\n\n ghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl);\n\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n // Remove clone(s)\n cloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl);\n }\n\n if (dragEl) {\n if (this.nativeDraggable) {\n off(dragEl, 'dragend', this);\n }\n\n _disableDraggable(dragEl);\n\n dragEl.style['will-change'] = ''; // Remove classes\n // ghostClass is added in dragStarted\n\n if (moved && !awaitingDragStarted) {\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : this.options.ghostClass, false);\n }\n\n toggleClass(dragEl, this.options.chosenClass, false); // Drag stop event\n\n _dispatchEvent({\n sortable: this,\n name: 'unchoose',\n toEl: parentEl,\n newIndex: null,\n newDraggableIndex: null,\n originalEvent: evt\n });\n\n if (rootEl !== parentEl) {\n if (newIndex >= 0) {\n // Add event\n _dispatchEvent({\n rootEl: parentEl,\n name: 'add',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n }); // Remove event\n\n\n _dispatchEvent({\n sortable: this,\n name: 'remove',\n toEl: parentEl,\n originalEvent: evt\n }); // drag from one list and drop into another\n\n\n _dispatchEvent({\n rootEl: parentEl,\n name: 'sort',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n\n putSortable && putSortable.save();\n } else {\n if (newIndex !== oldIndex) {\n if (newIndex >= 0) {\n // drag & drop within the same list\n _dispatchEvent({\n sortable: this,\n name: 'update',\n toEl: parentEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n }\n }\n\n if (Sortable.active) {\n /* jshint eqnull:true */\n if (newIndex == null || newIndex === -1) {\n newIndex = oldIndex;\n newDraggableIndex = oldDraggableIndex;\n }\n\n _dispatchEvent({\n sortable: this,\n name: 'end',\n toEl: parentEl,\n originalEvent: evt\n }); // Save sorting\n\n\n this.save();\n }\n }\n }\n\n this._nulling();\n },\n _nulling: function _nulling() {\n pluginEvent('nulling', this);\n rootEl = dragEl = parentEl = ghostEl = nextEl = cloneEl = lastDownEl = cloneHidden = tapEvt = touchEvt = moved = newIndex = newDraggableIndex = oldIndex = oldDraggableIndex = lastTarget = lastDirection = putSortable = activeGroup = Sortable.dragged = Sortable.ghost = Sortable.clone = Sortable.active = null;\n savedInputChecked.forEach(function (el) {\n el.checked = true;\n });\n savedInputChecked.length = lastDx = lastDy = 0;\n },\n handleEvent: function handleEvent(\n /**Event*/\n evt) {\n switch (evt.type) {\n case 'drop':\n case 'dragend':\n this._onDrop(evt);\n\n break;\n\n case 'dragenter':\n case 'dragover':\n if (dragEl) {\n this._onDragOver(evt);\n\n _globalDragOver(evt);\n }\n\n break;\n\n case 'selectstart':\n evt.preventDefault();\n break;\n }\n },\n\n /**\n * Serializes the item into an array of string.\n * @returns {String[]}\n */\n toArray: function toArray() {\n var order = [],\n el,\n children = this.el.children,\n i = 0,\n n = children.length,\n options = this.options;\n\n for (; i < n; i++) {\n el = children[i];\n\n if (closest(el, options.draggable, this.el, false)) {\n order.push(el.getAttribute(options.dataIdAttr) || _generateId(el));\n }\n }\n\n return order;\n },\n\n /**\n * Sorts the elements according to the array.\n * @param {String[]} order order of the items\n */\n sort: function sort(order) {\n var items = {},\n rootEl = this.el;\n this.toArray().forEach(function (id, i) {\n var el = rootEl.children[i];\n\n if (closest(el, this.options.draggable, rootEl, false)) {\n items[id] = el;\n }\n }, this);\n order.forEach(function (id) {\n if (items[id]) {\n rootEl.removeChild(items[id]);\n rootEl.appendChild(items[id]);\n }\n });\n },\n\n /**\n * Save the current sorting\n */\n save: function save() {\n var store = this.options.store;\n store && store.set && store.set(this);\n },\n\n /**\n * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.\n * @param {HTMLElement} el\n * @param {String} [selector] default: `options.draggable`\n * @returns {HTMLElement|null}\n */\n closest: function closest$1(el, selector) {\n return closest(el, selector || this.options.draggable, this.el, false);\n },\n\n /**\n * Set/get option\n * @param {string} name\n * @param {*} [value]\n * @returns {*}\n */\n option: function option(name, value) {\n var options = this.options;\n\n if (value === void 0) {\n return options[name];\n } else {\n var modifiedValue = PluginManager.modifyOption(this, name, value);\n\n if (typeof modifiedValue !== 'undefined') {\n options[name] = modifiedValue;\n } else {\n options[name] = value;\n }\n\n if (name === 'group') {\n _prepareGroup(options);\n }\n }\n },\n\n /**\n * Destroy\n */\n destroy: function destroy() {\n pluginEvent('destroy', this);\n var el = this.el;\n el[expando] = null;\n off(el, 'mousedown', this._onTapStart);\n off(el, 'touchstart', this._onTapStart);\n off(el, 'pointerdown', this._onTapStart);\n\n if (this.nativeDraggable) {\n off(el, 'dragover', this);\n off(el, 'dragenter', this);\n } // Remove draggable attributes\n\n\n Array.prototype.forEach.call(el.querySelectorAll('[draggable]'), function (el) {\n el.removeAttribute('draggable');\n });\n\n this._onDrop();\n\n this._disableDelayedDragEvents();\n\n sortables.splice(sortables.indexOf(this.el), 1);\n this.el = el = null;\n },\n _hideClone: function _hideClone() {\n if (!cloneHidden) {\n pluginEvent('hideClone', this);\n if (Sortable.eventCanceled) return;\n css(cloneEl, 'display', 'none');\n\n if (this.options.removeCloneOnHide && cloneEl.parentNode) {\n cloneEl.parentNode.removeChild(cloneEl);\n }\n\n cloneHidden = true;\n }\n },\n _showClone: function _showClone(putSortable) {\n if (putSortable.lastPutMode !== 'clone') {\n this._hideClone();\n\n return;\n }\n\n if (cloneHidden) {\n pluginEvent('showClone', this);\n if (Sortable.eventCanceled) return; // show clone at dragEl or original position\n\n if (rootEl.contains(dragEl) && !this.options.group.revertClone) {\n rootEl.insertBefore(cloneEl, dragEl);\n } else if (nextEl) {\n rootEl.insertBefore(cloneEl, nextEl);\n } else {\n rootEl.appendChild(cloneEl);\n }\n\n if (this.options.group.revertClone) {\n this.animate(dragEl, cloneEl);\n }\n\n css(cloneEl, 'display', '');\n cloneHidden = false;\n }\n }\n};\n\nfunction _globalDragOver(\n/**Event*/\nevt) {\n if (evt.dataTransfer) {\n evt.dataTransfer.dropEffect = 'move';\n }\n\n evt.cancelable && evt.preventDefault();\n}\n\nfunction _onMove(fromEl, toEl, dragEl, dragRect, targetEl, targetRect, originalEvent, willInsertAfter) {\n var evt,\n sortable = fromEl[expando],\n onMoveFn = sortable.options.onMove,\n retVal; // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent('move', {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent('move', true, true);\n }\n\n evt.to = toEl;\n evt.from = fromEl;\n evt.dragged = dragEl;\n evt.draggedRect = dragRect;\n evt.related = targetEl || toEl;\n evt.relatedRect = targetRect || getRect(toEl);\n evt.willInsertAfter = willInsertAfter;\n evt.originalEvent = originalEvent;\n fromEl.dispatchEvent(evt);\n\n if (onMoveFn) {\n retVal = onMoveFn.call(sortable, evt, originalEvent);\n }\n\n return retVal;\n}\n\nfunction _disableDraggable(el) {\n el.draggable = false;\n}\n\nfunction _unsilent() {\n _silent = false;\n}\n\nfunction _ghostIsLast(evt, vertical, sortable) {\n var rect = getRect(lastChild(sortable.el, sortable.options.draggable));\n var spacer = 10;\n return vertical ? evt.clientX > rect.right + spacer || evt.clientX <= rect.right && evt.clientY > rect.bottom && evt.clientX >= rect.left : evt.clientX > rect.right && evt.clientY > rect.top || evt.clientX <= rect.right && evt.clientY > rect.bottom + spacer;\n}\n\nfunction _getSwapDirection(evt, target, targetRect, vertical, swapThreshold, invertedSwapThreshold, invertSwap, isLastTarget) {\n var mouseOnAxis = vertical ? evt.clientY : evt.clientX,\n targetLength = vertical ? targetRect.height : targetRect.width,\n targetS1 = vertical ? targetRect.top : targetRect.left,\n targetS2 = vertical ? targetRect.bottom : targetRect.right,\n invert = false;\n\n if (!invertSwap) {\n // Never invert or create dragEl shadow when target movemenet causes mouse to move past the end of regular swapThreshold\n if (isLastTarget && targetMoveDistance < targetLength * swapThreshold) {\n // multiplied only by swapThreshold because mouse will already be inside target by (1 - threshold) * targetLength / 2\n // check if past first invert threshold on side opposite of lastDirection\n if (!pastFirstInvertThresh && (lastDirection === 1 ? mouseOnAxis > targetS1 + targetLength * invertedSwapThreshold / 2 : mouseOnAxis < targetS2 - targetLength * invertedSwapThreshold / 2)) {\n // past first invert threshold, do not restrict inverted threshold to dragEl shadow\n pastFirstInvertThresh = true;\n }\n\n if (!pastFirstInvertThresh) {\n // dragEl shadow (target move distance shadow)\n if (lastDirection === 1 ? mouseOnAxis < targetS1 + targetMoveDistance // over dragEl shadow\n : mouseOnAxis > targetS2 - targetMoveDistance) {\n return -lastDirection;\n }\n } else {\n invert = true;\n }\n } else {\n // Regular\n if (mouseOnAxis > targetS1 + targetLength * (1 - swapThreshold) / 2 && mouseOnAxis < targetS2 - targetLength * (1 - swapThreshold) / 2) {\n return _getInsertDirection(target);\n }\n }\n }\n\n invert = invert || invertSwap;\n\n if (invert) {\n // Invert of regular\n if (mouseOnAxis < targetS1 + targetLength * invertedSwapThreshold / 2 || mouseOnAxis > targetS2 - targetLength * invertedSwapThreshold / 2) {\n return mouseOnAxis > targetS1 + targetLength / 2 ? 1 : -1;\n }\n }\n\n return 0;\n}\n/**\n * Gets the direction dragEl must be swapped relative to target in order to make it\n * seem that dragEl has been \"inserted\" into that element's position\n * @param {HTMLElement} target The target whose position dragEl is being inserted at\n * @return {Number} Direction dragEl must be swapped\n */\n\n\nfunction _getInsertDirection(target) {\n if (index(dragEl) < index(target)) {\n return 1;\n } else {\n return -1;\n }\n}\n/**\n * Generate id\n * @param {HTMLElement} el\n * @returns {String}\n * @private\n */\n\n\nfunction _generateId(el) {\n var str = el.tagName + el.className + el.src + el.href + el.textContent,\n i = str.length,\n sum = 0;\n\n while (i--) {\n sum += str.charCodeAt(i);\n }\n\n return sum.toString(36);\n}\n\nfunction _saveInputCheckedState(root) {\n savedInputChecked.length = 0;\n var inputs = root.getElementsByTagName('input');\n var idx = inputs.length;\n\n while (idx--) {\n var el = inputs[idx];\n el.checked && savedInputChecked.push(el);\n }\n}\n\nfunction _nextTick(fn) {\n return setTimeout(fn, 0);\n}\n\nfunction _cancelNextTick(id) {\n return clearTimeout(id);\n} // Fixed #973:\n\n\nif (documentExists) {\n on(document, 'touchmove', function (evt) {\n if ((Sortable.active || awaitingDragStarted) && evt.cancelable) {\n evt.preventDefault();\n }\n });\n} // Export utils\n\n\nSortable.utils = {\n on: on,\n off: off,\n css: css,\n find: find,\n is: function is(el, selector) {\n return !!closest(el, selector, el, false);\n },\n extend: extend,\n throttle: throttle,\n closest: closest,\n toggleClass: toggleClass,\n clone: clone,\n index: index,\n nextTick: _nextTick,\n cancelNextTick: _cancelNextTick,\n detectDirection: _detectDirection,\n getChild: getChild\n};\n/**\n * Get the Sortable instance of an element\n * @param {HTMLElement} element The element\n * @return {Sortable|undefined} The instance of Sortable\n */\n\nSortable.get = function (element) {\n return element[expando];\n};\n/**\n * Mount a plugin to Sortable\n * @param {...SortablePlugin|SortablePlugin[]} plugins Plugins being mounted\n */\n\n\nSortable.mount = function () {\n for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins[_key] = arguments[_key];\n }\n\n if (plugins[0].constructor === Array) plugins = plugins[0];\n plugins.forEach(function (plugin) {\n if (!plugin.prototype || !plugin.prototype.constructor) {\n throw \"Sortable: Mounted plugin must be a constructor function, not \".concat({}.toString.call(plugin));\n }\n\n if (plugin.utils) Sortable.utils = _objectSpread({}, Sortable.utils, plugin.utils);\n PluginManager.mount(plugin);\n });\n};\n/**\n * Create sortable instance\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nSortable.create = function (el, options) {\n return new Sortable(el, options);\n}; // Export\n\n\nSortable.version = version;\n\nvar autoScrolls = [],\n scrollEl,\n scrollRootEl,\n scrolling = false,\n lastAutoScrollX,\n lastAutoScrollY,\n touchEvt$1,\n pointerElemChangedInterval;\n\nfunction AutoScrollPlugin() {\n function AutoScroll() {\n this.defaults = {\n scroll: true,\n scrollSensitivity: 30,\n scrollSpeed: 10,\n bubbleScroll: true\n }; // Bind all private methods\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n }\n\n AutoScroll.prototype = {\n dragStarted: function dragStarted(_ref) {\n var originalEvent = _ref.originalEvent;\n\n if (this.sortable.nativeDraggable) {\n on(document, 'dragover', this._handleAutoScroll);\n } else {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._handleFallbackAutoScroll);\n } else if (originalEvent.touches) {\n on(document, 'touchmove', this._handleFallbackAutoScroll);\n } else {\n on(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref2) {\n var originalEvent = _ref2.originalEvent;\n\n // For when bubbling is canceled and using fallback (fallback 'touchmove' always reached)\n if (!this.options.dragOverBubble && !originalEvent.rootEl) {\n this._handleAutoScroll(originalEvent);\n }\n },\n drop: function drop() {\n if (this.sortable.nativeDraggable) {\n off(document, 'dragover', this._handleAutoScroll);\n } else {\n off(document, 'pointermove', this._handleFallbackAutoScroll);\n off(document, 'touchmove', this._handleFallbackAutoScroll);\n off(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n\n clearPointerElemChangedInterval();\n clearAutoScrolls();\n cancelThrottle();\n },\n nulling: function nulling() {\n touchEvt$1 = scrollRootEl = scrollEl = scrolling = pointerElemChangedInterval = lastAutoScrollX = lastAutoScrollY = null;\n autoScrolls.length = 0;\n },\n _handleFallbackAutoScroll: function _handleFallbackAutoScroll(evt) {\n this._handleAutoScroll(evt, true);\n },\n _handleAutoScroll: function _handleAutoScroll(evt, fallback) {\n var _this = this;\n\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n elem = document.elementFromPoint(x, y);\n touchEvt$1 = evt; // IE does not seem to have native autoscroll,\n // Edge's autoscroll seems too conditional,\n // MACOS Safari does not have autoscroll,\n // Firefox and Chrome are good\n\n if (fallback || Edge || IE11OrLess || Safari) {\n autoScroll(evt, this.options, elem, fallback); // Listener for pointer element change\n\n var ogElemScroller = getParentAutoScrollElement(elem, true);\n\n if (scrolling && (!pointerElemChangedInterval || x !== lastAutoScrollX || y !== lastAutoScrollY)) {\n pointerElemChangedInterval && clearPointerElemChangedInterval(); // Detect for pointer elem change, emulating native DnD behaviour\n\n pointerElemChangedInterval = setInterval(function () {\n var newElem = getParentAutoScrollElement(document.elementFromPoint(x, y), true);\n\n if (newElem !== ogElemScroller) {\n ogElemScroller = newElem;\n clearAutoScrolls();\n }\n\n autoScroll(evt, _this.options, newElem, fallback);\n }, 10);\n lastAutoScrollX = x;\n lastAutoScrollY = y;\n }\n } else {\n // if DnD is enabled (and browser has good autoscrolling), first autoscroll will already scroll, so get parent autoscroll of first autoscroll\n if (!this.options.bubbleScroll || getParentAutoScrollElement(elem, true) === getWindowScrollingElement()) {\n clearAutoScrolls();\n return;\n }\n\n autoScroll(evt, this.options, getParentAutoScrollElement(elem, false), false);\n }\n }\n };\n return _extends(AutoScroll, {\n pluginName: 'scroll',\n initializeByDefault: true\n });\n}\n\nfunction clearAutoScrolls() {\n autoScrolls.forEach(function (autoScroll) {\n clearInterval(autoScroll.pid);\n });\n autoScrolls = [];\n}\n\nfunction clearPointerElemChangedInterval() {\n clearInterval(pointerElemChangedInterval);\n}\n\nvar autoScroll = throttle(function (evt, options, rootEl, isFallback) {\n // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=505521\n if (!options.scroll) return;\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n sens = options.scrollSensitivity,\n speed = options.scrollSpeed,\n winScroller = getWindowScrollingElement();\n var scrollThisInstance = false,\n scrollCustomFn; // New scroll root, set scrollEl\n\n if (scrollRootEl !== rootEl) {\n scrollRootEl = rootEl;\n clearAutoScrolls();\n scrollEl = options.scroll;\n scrollCustomFn = options.scrollFn;\n\n if (scrollEl === true) {\n scrollEl = getParentAutoScrollElement(rootEl, true);\n }\n }\n\n var layersOut = 0;\n var currentParent = scrollEl;\n\n do {\n var el = currentParent,\n rect = getRect(el),\n top = rect.top,\n bottom = rect.bottom,\n left = rect.left,\n right = rect.right,\n width = rect.width,\n height = rect.height,\n canScrollX = void 0,\n canScrollY = void 0,\n scrollWidth = el.scrollWidth,\n scrollHeight = el.scrollHeight,\n elCSS = css(el),\n scrollPosX = el.scrollLeft,\n scrollPosY = el.scrollTop;\n\n if (el === winScroller) {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll' || elCSS.overflowX === 'visible');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll' || elCSS.overflowY === 'visible');\n } else {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll');\n }\n\n var vx = canScrollX && (Math.abs(right - x) <= sens && scrollPosX + width < scrollWidth) - (Math.abs(left - x) <= sens && !!scrollPosX);\n var vy = canScrollY && (Math.abs(bottom - y) <= sens && scrollPosY + height < scrollHeight) - (Math.abs(top - y) <= sens && !!scrollPosY);\n\n if (!autoScrolls[layersOut]) {\n for (var i = 0; i <= layersOut; i++) {\n if (!autoScrolls[i]) {\n autoScrolls[i] = {};\n }\n }\n }\n\n if (autoScrolls[layersOut].vx != vx || autoScrolls[layersOut].vy != vy || autoScrolls[layersOut].el !== el) {\n autoScrolls[layersOut].el = el;\n autoScrolls[layersOut].vx = vx;\n autoScrolls[layersOut].vy = vy;\n clearInterval(autoScrolls[layersOut].pid);\n\n if (vx != 0 || vy != 0) {\n scrollThisInstance = true;\n /* jshint loopfunc:true */\n\n autoScrolls[layersOut].pid = setInterval(function () {\n // emulate drag over during autoscroll (fallback), emulating native DnD behaviour\n if (isFallback && this.layer === 0) {\n Sortable.active._onTouchMove(touchEvt$1); // To move ghost if it is positioned absolutely\n\n }\n\n var scrollOffsetY = autoScrolls[this.layer].vy ? autoScrolls[this.layer].vy * speed : 0;\n var scrollOffsetX = autoScrolls[this.layer].vx ? autoScrolls[this.layer].vx * speed : 0;\n\n if (typeof scrollCustomFn === 'function') {\n if (scrollCustomFn.call(Sortable.dragged.parentNode[expando], scrollOffsetX, scrollOffsetY, evt, touchEvt$1, autoScrolls[this.layer].el) !== 'continue') {\n return;\n }\n }\n\n scrollBy(autoScrolls[this.layer].el, scrollOffsetX, scrollOffsetY);\n }.bind({\n layer: layersOut\n }), 24);\n }\n }\n\n layersOut++;\n } while (options.bubbleScroll && currentParent !== winScroller && (currentParent = getParentAutoScrollElement(currentParent, false)));\n\n scrolling = scrollThisInstance; // in case another function catches scrolling as false in between when it is not\n}, 30);\n\nvar drop = function drop(_ref) {\n var originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n dragEl = _ref.dragEl,\n activeSortable = _ref.activeSortable,\n dispatchSortableEvent = _ref.dispatchSortableEvent,\n hideGhostForTarget = _ref.hideGhostForTarget,\n unhideGhostForTarget = _ref.unhideGhostForTarget;\n if (!originalEvent) return;\n var toSortable = putSortable || activeSortable;\n hideGhostForTarget();\n var touch = originalEvent.changedTouches && originalEvent.changedTouches.length ? originalEvent.changedTouches[0] : originalEvent;\n var target = document.elementFromPoint(touch.clientX, touch.clientY);\n unhideGhostForTarget();\n\n if (toSortable && !toSortable.el.contains(target)) {\n dispatchSortableEvent('spill');\n this.onSpill({\n dragEl: dragEl,\n putSortable: putSortable\n });\n }\n};\n\nfunction Revert() {}\n\nRevert.prototype = {\n startIndex: null,\n dragStart: function dragStart(_ref2) {\n var oldDraggableIndex = _ref2.oldDraggableIndex;\n this.startIndex = oldDraggableIndex;\n },\n onSpill: function onSpill(_ref3) {\n var dragEl = _ref3.dragEl,\n putSortable = _ref3.putSortable;\n this.sortable.captureAnimationState();\n\n if (putSortable) {\n putSortable.captureAnimationState();\n }\n\n var nextSibling = getChild(this.sortable.el, this.startIndex, this.options);\n\n if (nextSibling) {\n this.sortable.el.insertBefore(dragEl, nextSibling);\n } else {\n this.sortable.el.appendChild(dragEl);\n }\n\n this.sortable.animateAll();\n\n if (putSortable) {\n putSortable.animateAll();\n }\n },\n drop: drop\n};\n\n_extends(Revert, {\n pluginName: 'revertOnSpill'\n});\n\nfunction Remove() {}\n\nRemove.prototype = {\n onSpill: function onSpill(_ref4) {\n var dragEl = _ref4.dragEl,\n putSortable = _ref4.putSortable;\n var parentSortable = putSortable || this.sortable;\n parentSortable.captureAnimationState();\n dragEl.parentNode && dragEl.parentNode.removeChild(dragEl);\n parentSortable.animateAll();\n },\n drop: drop\n};\n\n_extends(Remove, {\n pluginName: 'removeOnSpill'\n});\n\nvar lastSwapEl;\n\nfunction SwapPlugin() {\n function Swap() {\n this.defaults = {\n swapClass: 'sortable-swap-highlight'\n };\n }\n\n Swap.prototype = {\n dragStart: function dragStart(_ref) {\n var dragEl = _ref.dragEl;\n lastSwapEl = dragEl;\n },\n dragOverValid: function dragOverValid(_ref2) {\n var completed = _ref2.completed,\n target = _ref2.target,\n onMove = _ref2.onMove,\n activeSortable = _ref2.activeSortable,\n changed = _ref2.changed,\n cancel = _ref2.cancel;\n if (!activeSortable.options.swap) return;\n var el = this.sortable.el,\n options = this.options;\n\n if (target && target !== el) {\n var prevSwapEl = lastSwapEl;\n\n if (onMove(target) !== false) {\n toggleClass(target, options.swapClass, true);\n lastSwapEl = target;\n } else {\n lastSwapEl = null;\n }\n\n if (prevSwapEl && prevSwapEl !== lastSwapEl) {\n toggleClass(prevSwapEl, options.swapClass, false);\n }\n }\n\n changed();\n completed(true);\n cancel();\n },\n drop: function drop(_ref3) {\n var activeSortable = _ref3.activeSortable,\n putSortable = _ref3.putSortable,\n dragEl = _ref3.dragEl;\n var toSortable = putSortable || this.sortable;\n var options = this.options;\n lastSwapEl && toggleClass(lastSwapEl, options.swapClass, false);\n\n if (lastSwapEl && (options.swap || putSortable && putSortable.options.swap)) {\n if (dragEl !== lastSwapEl) {\n toSortable.captureAnimationState();\n if (toSortable !== activeSortable) activeSortable.captureAnimationState();\n swapNodes(dragEl, lastSwapEl);\n toSortable.animateAll();\n if (toSortable !== activeSortable) activeSortable.animateAll();\n }\n }\n },\n nulling: function nulling() {\n lastSwapEl = null;\n }\n };\n return _extends(Swap, {\n pluginName: 'swap',\n eventProperties: function eventProperties() {\n return {\n swapItem: lastSwapEl\n };\n }\n });\n}\n\nfunction swapNodes(n1, n2) {\n var p1 = n1.parentNode,\n p2 = n2.parentNode,\n i1,\n i2;\n if (!p1 || !p2 || p1.isEqualNode(n2) || p2.isEqualNode(n1)) return;\n i1 = index(n1);\n i2 = index(n2);\n\n if (p1.isEqualNode(p2) && i1 < i2) {\n i2++;\n }\n\n p1.insertBefore(n2, p1.children[i1]);\n p2.insertBefore(n1, p2.children[i2]);\n}\n\nvar multiDragElements = [],\n multiDragClones = [],\n lastMultiDragSelect,\n // for selection with modifier key down (SHIFT)\nmultiDragSortable,\n initialFolding = false,\n // Initial multi-drag fold when drag started\nfolding = false,\n // Folding any other time\ndragStarted = false,\n dragEl$1,\n clonesFromRect,\n clonesHidden;\n\nfunction MultiDragPlugin() {\n function MultiDrag(sortable) {\n // Bind all private methods\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n\n if (sortable.options.supportPointer) {\n on(document, 'pointerup', this._deselectMultiDrag);\n } else {\n on(document, 'mouseup', this._deselectMultiDrag);\n on(document, 'touchend', this._deselectMultiDrag);\n }\n\n on(document, 'keydown', this._checkKeyDown);\n on(document, 'keyup', this._checkKeyUp);\n this.defaults = {\n selectedClass: 'sortable-selected',\n multiDragKey: null,\n setData: function setData(dataTransfer, dragEl) {\n var data = '';\n\n if (multiDragElements.length && multiDragSortable === sortable) {\n multiDragElements.forEach(function (multiDragElement, i) {\n data += (!i ? '' : ', ') + multiDragElement.textContent;\n });\n } else {\n data = dragEl.textContent;\n }\n\n dataTransfer.setData('Text', data);\n }\n };\n }\n\n MultiDrag.prototype = {\n multiDragKeyDown: false,\n isMultiDrag: false,\n delayStartGlobal: function delayStartGlobal(_ref) {\n var dragged = _ref.dragEl;\n dragEl$1 = dragged;\n },\n delayEnded: function delayEnded() {\n this.isMultiDrag = ~multiDragElements.indexOf(dragEl$1);\n },\n setupClone: function setupClone(_ref2) {\n var sortable = _ref2.sortable,\n cancel = _ref2.cancel;\n if (!this.isMultiDrag) return;\n\n for (var i = 0; i < multiDragElements.length; i++) {\n multiDragClones.push(clone(multiDragElements[i]));\n multiDragClones[i].sortableIndex = multiDragElements[i].sortableIndex;\n multiDragClones[i].draggable = false;\n multiDragClones[i].style['will-change'] = '';\n toggleClass(multiDragClones[i], this.options.selectedClass, false);\n multiDragElements[i] === dragEl$1 && toggleClass(multiDragClones[i], this.options.chosenClass, false);\n }\n\n sortable._hideClone();\n\n cancel();\n },\n clone: function clone(_ref3) {\n var sortable = _ref3.sortable,\n rootEl = _ref3.rootEl,\n dispatchSortableEvent = _ref3.dispatchSortableEvent,\n cancel = _ref3.cancel;\n if (!this.isMultiDrag) return;\n\n if (!this.options.removeCloneOnHide) {\n if (multiDragElements.length && multiDragSortable === sortable) {\n insertMultiDragClones(true, rootEl);\n dispatchSortableEvent('clone');\n cancel();\n }\n }\n },\n showClone: function showClone(_ref4) {\n var cloneNowShown = _ref4.cloneNowShown,\n rootEl = _ref4.rootEl,\n cancel = _ref4.cancel;\n if (!this.isMultiDrag) return;\n insertMultiDragClones(false, rootEl);\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', '');\n });\n cloneNowShown();\n clonesHidden = false;\n cancel();\n },\n hideClone: function hideClone(_ref5) {\n var _this = this;\n\n var sortable = _ref5.sortable,\n cloneNowHidden = _ref5.cloneNowHidden,\n cancel = _ref5.cancel;\n if (!this.isMultiDrag) return;\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', 'none');\n\n if (_this.options.removeCloneOnHide && clone.parentNode) {\n clone.parentNode.removeChild(clone);\n }\n });\n cloneNowHidden();\n clonesHidden = true;\n cancel();\n },\n dragStartGlobal: function dragStartGlobal(_ref6) {\n var sortable = _ref6.sortable;\n\n if (!this.isMultiDrag && multiDragSortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n }\n\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.sortableIndex = index(multiDragElement);\n }); // Sort multi-drag elements\n\n multiDragElements = multiDragElements.sort(function (a, b) {\n return a.sortableIndex - b.sortableIndex;\n });\n dragStarted = true;\n },\n dragStarted: function dragStarted(_ref7) {\n var _this2 = this;\n\n var sortable = _ref7.sortable;\n if (!this.isMultiDrag) return;\n\n if (this.options.sort) {\n // Capture rects,\n // hide multi drag elements (by positioning them absolute),\n // set multi drag elements rects to dragRect,\n // show multi drag elements,\n // animate to rects,\n // unset rects & remove from DOM\n sortable.captureAnimationState();\n\n if (this.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n css(multiDragElement, 'position', 'absolute');\n });\n var dragRect = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRect);\n });\n folding = true;\n initialFolding = true;\n }\n }\n\n sortable.animateAll(function () {\n folding = false;\n initialFolding = false;\n\n if (_this2.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n } // Remove all auxiliary multidrag items from el, if sorting enabled\n\n\n if (_this2.options.sort) {\n removeMultiDragElements();\n }\n });\n },\n dragOver: function dragOver(_ref8) {\n var target = _ref8.target,\n completed = _ref8.completed,\n cancel = _ref8.cancel;\n\n if (folding && ~multiDragElements.indexOf(target)) {\n completed(false);\n cancel();\n }\n },\n revert: function revert(_ref9) {\n var fromSortable = _ref9.fromSortable,\n rootEl = _ref9.rootEl,\n sortable = _ref9.sortable,\n dragRect = _ref9.dragRect;\n\n if (multiDragElements.length > 1) {\n // Setup unfold animation\n multiDragElements.forEach(function (multiDragElement) {\n sortable.addAnimationState({\n target: multiDragElement,\n rect: folding ? getRect(multiDragElement) : dragRect\n });\n unsetRect(multiDragElement);\n multiDragElement.fromRect = dragRect;\n fromSortable.removeAnimationState(multiDragElement);\n });\n folding = false;\n insertMultiDragElements(!this.options.removeCloneOnHide, rootEl);\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref10) {\n var sortable = _ref10.sortable,\n isOwner = _ref10.isOwner,\n insertion = _ref10.insertion,\n activeSortable = _ref10.activeSortable,\n parentEl = _ref10.parentEl,\n putSortable = _ref10.putSortable;\n var options = this.options;\n\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n }\n\n initialFolding = false; // If leaving sort:false root, or already folding - Fold to new location\n\n if (options.animation && multiDragElements.length > 1 && (folding || !isOwner && !activeSortable.options.sort && !putSortable)) {\n // Fold: Set all multi drag elements's rects to dragEl's rect when multi-drag elements are invisible\n var dragRectAbsolute = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRectAbsolute); // Move element(s) to end of parentEl so that it does not interfere with multi-drag clones insertion if they are inserted\n // while folding, and so that we can capture them again because old sortable will no longer be fromSortable\n\n parentEl.appendChild(multiDragElement);\n });\n folding = true;\n } // Clones must be shown (and check to remove multi drags) after folding when interfering multiDragElements are moved out\n\n\n if (!isOwner) {\n // Only remove if not folding (folding will remove them anyways)\n if (!folding) {\n removeMultiDragElements();\n }\n\n if (multiDragElements.length > 1) {\n var clonesHiddenBefore = clonesHidden;\n\n activeSortable._showClone(sortable); // Unfold animation for clones if showing from hidden\n\n\n if (activeSortable.options.animation && !clonesHidden && clonesHiddenBefore) {\n multiDragClones.forEach(function (clone) {\n activeSortable.addAnimationState({\n target: clone,\n rect: clonesFromRect\n });\n clone.fromRect = clonesFromRect;\n clone.thisAnimationDuration = null;\n });\n }\n } else {\n activeSortable._showClone(sortable);\n }\n }\n }\n },\n dragOverAnimationCapture: function dragOverAnimationCapture(_ref11) {\n var dragRect = _ref11.dragRect,\n isOwner = _ref11.isOwner,\n activeSortable = _ref11.activeSortable;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n });\n\n if (activeSortable.options.animation && !isOwner && activeSortable.multiDrag.isMultiDrag) {\n clonesFromRect = _extends({}, dragRect);\n var dragMatrix = matrix(dragEl$1, true);\n clonesFromRect.top -= dragMatrix.f;\n clonesFromRect.left -= dragMatrix.e;\n }\n },\n dragOverAnimationComplete: function dragOverAnimationComplete() {\n if (folding) {\n folding = false;\n removeMultiDragElements();\n }\n },\n drop: function drop(_ref12) {\n var evt = _ref12.originalEvent,\n rootEl = _ref12.rootEl,\n parentEl = _ref12.parentEl,\n sortable = _ref12.sortable,\n dispatchSortableEvent = _ref12.dispatchSortableEvent,\n oldIndex = _ref12.oldIndex,\n putSortable = _ref12.putSortable;\n var toSortable = putSortable || this.sortable;\n if (!evt) return;\n var options = this.options,\n children = parentEl.children; // Multi-drag selection\n\n if (!dragStarted) {\n if (options.multiDragKey && !this.multiDragKeyDown) {\n this._deselectMultiDrag();\n }\n\n toggleClass(dragEl$1, options.selectedClass, !~multiDragElements.indexOf(dragEl$1));\n\n if (!~multiDragElements.indexOf(dragEl$1)) {\n multiDragElements.push(dragEl$1);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: dragEl$1,\n originalEvt: evt\n }); // Modifier activated, select from last to dragEl\n\n if (evt.shiftKey && lastMultiDragSelect && sortable.el.contains(lastMultiDragSelect)) {\n var lastIndex = index(lastMultiDragSelect),\n currentIndex = index(dragEl$1);\n\n if (~lastIndex && ~currentIndex && lastIndex !== currentIndex) {\n // Must include lastMultiDragSelect (select it), in case modified selection from no selection\n // (but previous selection existed)\n var n, i;\n\n if (currentIndex > lastIndex) {\n i = lastIndex;\n n = currentIndex;\n } else {\n i = currentIndex;\n n = lastIndex + 1;\n }\n\n for (; i < n; i++) {\n if (~multiDragElements.indexOf(children[i])) continue;\n toggleClass(children[i], options.selectedClass, true);\n multiDragElements.push(children[i]);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: children[i],\n originalEvt: evt\n });\n }\n }\n } else {\n lastMultiDragSelect = dragEl$1;\n }\n\n multiDragSortable = toSortable;\n } else {\n multiDragElements.splice(multiDragElements.indexOf(dragEl$1), 1);\n lastMultiDragSelect = null;\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'deselect',\n targetEl: dragEl$1,\n originalEvt: evt\n });\n }\n } // Multi-drag drop\n\n\n if (dragStarted && this.isMultiDrag) {\n // Do not \"unfold\" after around dragEl if reverted\n if ((parentEl[expando].options.sort || parentEl !== rootEl) && multiDragElements.length > 1) {\n var dragRect = getRect(dragEl$1),\n multiDragIndex = index(dragEl$1, ':not(.' + this.options.selectedClass + ')');\n if (!initialFolding && options.animation) dragEl$1.thisAnimationDuration = null;\n toSortable.captureAnimationState();\n\n if (!initialFolding) {\n if (options.animation) {\n dragEl$1.fromRect = dragRect;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n\n if (multiDragElement !== dragEl$1) {\n var rect = folding ? getRect(multiDragElement) : dragRect;\n multiDragElement.fromRect = rect; // Prepare unfold animation\n\n toSortable.addAnimationState({\n target: multiDragElement,\n rect: rect\n });\n }\n });\n } // Multi drag elements are not necessarily removed from the DOM on drop, so to reinsert\n // properly they must all be removed\n\n\n removeMultiDragElements();\n multiDragElements.forEach(function (multiDragElement) {\n if (children[multiDragIndex]) {\n parentEl.insertBefore(multiDragElement, children[multiDragIndex]);\n } else {\n parentEl.appendChild(multiDragElement);\n }\n\n multiDragIndex++;\n }); // If initial folding is done, the elements may have changed position because they are now\n // unfolding around dragEl, even though dragEl may not have his index changed, so update event\n // must be fired here as Sortable will not.\n\n if (oldIndex === index(dragEl$1)) {\n var update = false;\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement.sortableIndex !== index(multiDragElement)) {\n update = true;\n return;\n }\n });\n\n if (update) {\n dispatchSortableEvent('update');\n }\n }\n } // Must be done after capturing individual rects (scroll bar)\n\n\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n toSortable.animateAll();\n }\n\n multiDragSortable = toSortable;\n } // Remove clones if necessary\n\n\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n multiDragClones.forEach(function (clone) {\n clone.parentNode && clone.parentNode.removeChild(clone);\n });\n }\n },\n nullingGlobal: function nullingGlobal() {\n this.isMultiDrag = dragStarted = false;\n multiDragClones.length = 0;\n },\n destroyGlobal: function destroyGlobal() {\n this._deselectMultiDrag();\n\n off(document, 'pointerup', this._deselectMultiDrag);\n off(document, 'mouseup', this._deselectMultiDrag);\n off(document, 'touchend', this._deselectMultiDrag);\n off(document, 'keydown', this._checkKeyDown);\n off(document, 'keyup', this._checkKeyUp);\n },\n _deselectMultiDrag: function _deselectMultiDrag(evt) {\n if (typeof dragStarted !== \"undefined\" && dragStarted) return; // Only deselect if selection is in this sortable\n\n if (multiDragSortable !== this.sortable) return; // Only deselect if target is not item in this sortable\n\n if (evt && closest(evt.target, this.options.draggable, this.sortable.el, false)) return; // Only deselect if left click\n\n if (evt && evt.button !== 0) return;\n\n while (multiDragElements.length) {\n var el = multiDragElements[0];\n toggleClass(el, this.options.selectedClass, false);\n multiDragElements.shift();\n dispatchEvent({\n sortable: this.sortable,\n rootEl: this.sortable.el,\n name: 'deselect',\n targetEl: el,\n originalEvt: evt\n });\n }\n },\n _checkKeyDown: function _checkKeyDown(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = true;\n }\n },\n _checkKeyUp: function _checkKeyUp(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = false;\n }\n }\n };\n return _extends(MultiDrag, {\n // Static methods & properties\n pluginName: 'multiDrag',\n utils: {\n /**\r\n * Selects the provided multi-drag item\r\n * @param {HTMLElement} el The element to be selected\r\n */\n select: function select(el) {\n var sortable = el.parentNode[expando];\n if (!sortable || !sortable.options.multiDrag || ~multiDragElements.indexOf(el)) return;\n\n if (multiDragSortable && multiDragSortable !== sortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n\n multiDragSortable = sortable;\n }\n\n toggleClass(el, sortable.options.selectedClass, true);\n multiDragElements.push(el);\n },\n\n /**\r\n * Deselects the provided multi-drag item\r\n * @param {HTMLElement} el The element to be deselected\r\n */\n deselect: function deselect(el) {\n var sortable = el.parentNode[expando],\n index = multiDragElements.indexOf(el);\n if (!sortable || !sortable.options.multiDrag || !~index) return;\n toggleClass(el, sortable.options.selectedClass, false);\n multiDragElements.splice(index, 1);\n }\n },\n eventProperties: function eventProperties() {\n var _this3 = this;\n\n var oldIndicies = [],\n newIndicies = [];\n multiDragElements.forEach(function (multiDragElement) {\n oldIndicies.push({\n multiDragElement: multiDragElement,\n index: multiDragElement.sortableIndex\n }); // multiDragElements will already be sorted if folding\n\n var newIndex;\n\n if (folding && multiDragElement !== dragEl$1) {\n newIndex = -1;\n } else if (folding) {\n newIndex = index(multiDragElement, ':not(.' + _this3.options.selectedClass + ')');\n } else {\n newIndex = index(multiDragElement);\n }\n\n newIndicies.push({\n multiDragElement: multiDragElement,\n index: newIndex\n });\n });\n return {\n items: _toConsumableArray(multiDragElements),\n clones: [].concat(multiDragClones),\n oldIndicies: oldIndicies,\n newIndicies: newIndicies\n };\n },\n optionListeners: {\n multiDragKey: function multiDragKey(key) {\n key = key.toLowerCase();\n\n if (key === 'ctrl') {\n key = 'Control';\n } else if (key.length > 1) {\n key = key.charAt(0).toUpperCase() + key.substr(1);\n }\n\n return key;\n }\n }\n });\n}\n\nfunction insertMultiDragElements(clonesInserted, rootEl) {\n multiDragElements.forEach(function (multiDragElement, i) {\n var target = rootEl.children[multiDragElement.sortableIndex + (clonesInserted ? Number(i) : 0)];\n\n if (target) {\n rootEl.insertBefore(multiDragElement, target);\n } else {\n rootEl.appendChild(multiDragElement);\n }\n });\n}\n/**\r\n * Insert multi-drag clones\r\n * @param {[Boolean]} elementsInserted Whether the multi-drag elements are inserted\r\n * @param {HTMLElement} rootEl\r\n */\n\n\nfunction insertMultiDragClones(elementsInserted, rootEl) {\n multiDragClones.forEach(function (clone, i) {\n var target = rootEl.children[clone.sortableIndex + (elementsInserted ? Number(i) : 0)];\n\n if (target) {\n rootEl.insertBefore(clone, target);\n } else {\n rootEl.appendChild(clone);\n }\n });\n}\n\nfunction removeMultiDragElements() {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n multiDragElement.parentNode && multiDragElement.parentNode.removeChild(multiDragElement);\n });\n}\n\nSortable.mount(new AutoScrollPlugin());\nSortable.mount(Remove, Revert);\n\nexport default Sortable;\nexport { MultiDragPlugin as MultiDrag, Sortable, SwapPlugin as Swap };\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"sortablejs\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"sortablejs\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"vuedraggable\"] = factory(require(\"sortablejs\"));\n\telse\n\t\troot[\"vuedraggable\"] = factory(root[\"Sortable\"]);\n})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE_a352__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = \"fb15\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"01f9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar LIBRARY = __webpack_require__(\"2d00\");\nvar $export = __webpack_require__(\"5ca1\");\nvar redefine = __webpack_require__(\"2aba\");\nvar hide = __webpack_require__(\"32e9\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar $iterCreate = __webpack_require__(\"41a0\");\nvar setToStringTag = __webpack_require__(\"7f20\");\nvar getPrototypeOf = __webpack_require__(\"38fd\");\nvar ITERATOR = __webpack_require__(\"2b4c\")('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n/***/ }),\n\n/***/ \"02f4\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"4588\");\nvar defined = __webpack_require__(\"be13\");\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n/***/ }),\n\n/***/ \"0390\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar at = __webpack_require__(\"02f4\")(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n\n\n/***/ }),\n\n/***/ \"0bfb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = __webpack_require__(\"cb7c\");\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"0d58\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = __webpack_require__(\"ce10\");\nvar enumBugKeys = __webpack_require__(\"e11e\");\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n\n\n/***/ }),\n\n/***/ \"1495\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(\"86cc\");\nvar anObject = __webpack_require__(\"cb7c\");\nvar getKeys = __webpack_require__(\"0d58\");\n\nmodule.exports = __webpack_require__(\"9e1e\") ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n/***/ }),\n\n/***/ \"214f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n__webpack_require__(\"b0c5\");\nvar redefine = __webpack_require__(\"2aba\");\nvar hide = __webpack_require__(\"32e9\");\nvar fails = __webpack_require__(\"79e5\");\nvar defined = __webpack_require__(\"be13\");\nvar wks = __webpack_require__(\"2b4c\");\nvar regexpExec = __webpack_require__(\"520a\");\n\nvar SPECIES = wks('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$') !== '7';\n});\n\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {\n // Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length === 2 && result[0] === 'a' && result[1] === 'b';\n})();\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n re.exec = function () { execCalled = true; return null; };\n if (KEY === 'split') {\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n }\n re[SYMBOL]('');\n return !execCalled;\n }) : undefined;\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var fns = exec(\n defined,\n SYMBOL,\n ''[KEY],\n function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }\n );\n var strfn = fns[0];\n var rxfn = fns[1];\n\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n\n\n/***/ }),\n\n/***/ \"230e\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"d3f4\");\nvar document = __webpack_require__(\"7726\").document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n\n/***/ \"23c6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = __webpack_require__(\"2d95\");\nvar TAG = __webpack_require__(\"2b4c\")('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n/***/ }),\n\n/***/ \"2621\":\n/***/ (function(module, exports) {\n\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n\n/***/ \"2aba\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"7726\");\nvar hide = __webpack_require__(\"32e9\");\nvar has = __webpack_require__(\"69a8\");\nvar SRC = __webpack_require__(\"ca5a\")('src');\nvar $toString = __webpack_require__(\"fa5b\");\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\n__webpack_require__(\"8378\").inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n\n\n/***/ }),\n\n/***/ \"2aeb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = __webpack_require__(\"cb7c\");\nvar dPs = __webpack_require__(\"1495\");\nvar enumBugKeys = __webpack_require__(\"e11e\");\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = __webpack_require__(\"230e\")('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n __webpack_require__(\"fab2\").appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n/***/ }),\n\n/***/ \"2b4c\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar store = __webpack_require__(\"5537\")('wks');\nvar uid = __webpack_require__(\"ca5a\");\nvar Symbol = __webpack_require__(\"7726\").Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n/***/ }),\n\n/***/ \"2d00\":\n/***/ (function(module, exports) {\n\nmodule.exports = false;\n\n\n/***/ }),\n\n/***/ \"2d95\":\n/***/ (function(module, exports) {\n\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n/***/ }),\n\n/***/ \"2fdb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n\nvar $export = __webpack_require__(\"5ca1\");\nvar context = __webpack_require__(\"d2c8\");\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * __webpack_require__(\"5147\")(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n/***/ }),\n\n/***/ \"32e9\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(\"86cc\");\nvar createDesc = __webpack_require__(\"4630\");\nmodule.exports = __webpack_require__(\"9e1e\") ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n/***/ }),\n\n/***/ \"38fd\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = __webpack_require__(\"69a8\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n\n/***/ }),\n\n/***/ \"41a0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar create = __webpack_require__(\"2aeb\");\nvar descriptor = __webpack_require__(\"4630\");\nvar setToStringTag = __webpack_require__(\"7f20\");\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n__webpack_require__(\"32e9\")(IteratorPrototype, __webpack_require__(\"2b4c\")('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n/***/ }),\n\n/***/ \"456d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 Object.keys(O)\nvar toObject = __webpack_require__(\"4bf8\");\nvar $keys = __webpack_require__(\"0d58\");\n\n__webpack_require__(\"5eda\")('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n\n\n/***/ }),\n\n/***/ \"4588\":\n/***/ (function(module, exports) {\n\n// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n/***/ }),\n\n/***/ \"4630\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n/***/ }),\n\n/***/ \"4bf8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.13 ToObject(argument)\nvar defined = __webpack_require__(\"be13\");\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n\n\n/***/ }),\n\n/***/ \"5147\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar MATCH = __webpack_require__(\"2b4c\")('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) { /* empty */ }\n } return true;\n};\n\n\n/***/ }),\n\n/***/ \"520a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar regexpFlags = __webpack_require__(\"0bfb\");\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar LAST_INDEX = 'lastIndex';\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/,\n re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;\n})();\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + re.source + '$(?!\\\\s)', regexpFlags.call(re));\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];\n\n match = nativeExec.call(re, str);\n\n if (UPDATES_LAST_INDEX_WRONG && match) {\n re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n // eslint-disable-next-line no-loop-func\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n\n\n/***/ }),\n\n/***/ \"52a7\":\n/***/ (function(module, exports) {\n\nexports.f = {}.propertyIsEnumerable;\n\n\n/***/ }),\n\n/***/ \"5537\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar core = __webpack_require__(\"8378\");\nvar global = __webpack_require__(\"7726\");\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: __webpack_require__(\"2d00\") ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n\n/***/ \"5ca1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"7726\");\nvar core = __webpack_require__(\"8378\");\nvar hide = __webpack_require__(\"32e9\");\nvar redefine = __webpack_require__(\"2aba\");\nvar ctx = __webpack_require__(\"9b43\");\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n/***/ }),\n\n/***/ \"5eda\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// most Object methods by ES6 should accept primitives\nvar $export = __webpack_require__(\"5ca1\");\nvar core = __webpack_require__(\"8378\");\nvar fails = __webpack_require__(\"79e5\");\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n\n\n/***/ }),\n\n/***/ \"5f1b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar classof = __webpack_require__(\"23c6\");\nvar builtinExec = RegExp.prototype.exec;\n\n // `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw new TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n if (classof(R) !== 'RegExp') {\n throw new TypeError('RegExp#exec called on incompatible receiver');\n }\n return builtinExec.call(R, S);\n};\n\n\n/***/ }),\n\n/***/ \"613b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar shared = __webpack_require__(\"5537\")('keys');\nvar uid = __webpack_require__(\"ca5a\");\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n\n/***/ }),\n\n/***/ \"626a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = __webpack_require__(\"2d95\");\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n/***/ }),\n\n/***/ \"6762\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// https://github.com/tc39/Array.prototype.includes\nvar $export = __webpack_require__(\"5ca1\");\nvar $includes = __webpack_require__(\"c366\")(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n__webpack_require__(\"9c6c\")('includes');\n\n\n/***/ }),\n\n/***/ \"6821\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = __webpack_require__(\"626a\");\nvar defined = __webpack_require__(\"be13\");\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n\n\n/***/ }),\n\n/***/ \"69a8\":\n/***/ (function(module, exports) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n/***/ }),\n\n/***/ \"6a99\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = __webpack_require__(\"d3f4\");\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n\n/***/ \"7333\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = __webpack_require__(\"0d58\");\nvar gOPS = __webpack_require__(\"2621\");\nvar pIE = __webpack_require__(\"52a7\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar IObject = __webpack_require__(\"626a\");\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || __webpack_require__(\"79e5\")(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n\n\n/***/ }),\n\n/***/ \"7726\":\n/***/ (function(module, exports) {\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n/***/ }),\n\n/***/ \"77f1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"4588\");\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n/***/ }),\n\n/***/ \"79e5\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n\n/***/ }),\n\n/***/ \"7f20\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar def = __webpack_require__(\"86cc\").f;\nvar has = __webpack_require__(\"69a8\");\nvar TAG = __webpack_require__(\"2b4c\")('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n\n\n/***/ }),\n\n/***/ \"8378\":\n/***/ (function(module, exports) {\n\nvar core = module.exports = { version: '2.6.5' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n/***/ }),\n\n/***/ \"84f2\":\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n\n/***/ \"86cc\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(\"cb7c\");\nvar IE8_DOM_DEFINE = __webpack_require__(\"c69a\");\nvar toPrimitive = __webpack_require__(\"6a99\");\nvar dP = Object.defineProperty;\n\nexports.f = __webpack_require__(\"9e1e\") ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n/***/ }),\n\n/***/ \"9b43\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// optional / simple context binding\nvar aFunction = __webpack_require__(\"d8e8\");\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n/***/ }),\n\n/***/ \"9c6c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = __webpack_require__(\"2b4c\")('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) __webpack_require__(\"32e9\")(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n\n\n/***/ }),\n\n/***/ \"9def\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.15 ToLength\nvar toInteger = __webpack_require__(\"4588\");\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n/***/ }),\n\n/***/ \"9e1e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !__webpack_require__(\"79e5\")(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"a352\":\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_a352__;\n\n/***/ }),\n\n/***/ \"a481\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar anObject = __webpack_require__(\"cb7c\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar toLength = __webpack_require__(\"9def\");\nvar toInteger = __webpack_require__(\"4588\");\nvar advanceStringIndex = __webpack_require__(\"0390\");\nvar regExpExec = __webpack_require__(\"5f1b\");\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&`']|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&`']|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\n__webpack_require__(\"214f\")('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = defined(this);\n var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n return fn !== undefined\n ? fn.call(searchValue, O, replaceValue)\n : $replace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n var res = maybeCallNative($replace, regexp, this, replaceValue);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n results.push(result);\n if (!global) break;\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return $replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n\n\n/***/ }),\n\n/***/ \"aae3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.2.8 IsRegExp(argument)\nvar isObject = __webpack_require__(\"d3f4\");\nvar cof = __webpack_require__(\"2d95\");\nvar MATCH = __webpack_require__(\"2b4c\")('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n\n\n/***/ }),\n\n/***/ \"ac6a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $iterators = __webpack_require__(\"cadf\");\nvar getKeys = __webpack_require__(\"0d58\");\nvar redefine = __webpack_require__(\"2aba\");\nvar global = __webpack_require__(\"7726\");\nvar hide = __webpack_require__(\"32e9\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar wks = __webpack_require__(\"2b4c\");\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n\n\n/***/ }),\n\n/***/ \"b0c5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar regexpExec = __webpack_require__(\"520a\");\n__webpack_require__(\"5ca1\")({\n target: 'RegExp',\n proto: true,\n forced: regexpExec !== /./.exec\n}, {\n exec: regexpExec\n});\n\n\n/***/ }),\n\n/***/ \"be13\":\n/***/ (function(module, exports) {\n\n// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"c366\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = __webpack_require__(\"6821\");\nvar toLength = __webpack_require__(\"9def\");\nvar toAbsoluteIndex = __webpack_require__(\"77f1\");\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n/***/ }),\n\n/***/ \"c649\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return insertNodeAt; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return camelize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return console; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return removeNode; });\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"a481\");\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0__);\n\n\nfunction getConsole() {\n if (typeof window !== \"undefined\") {\n return window.console;\n }\n\n return global.console;\n}\n\nvar console = getConsole();\n\nfunction cached(fn) {\n var cache = Object.create(null);\n return function cachedFn(str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n}\n\nvar regex = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(regex, function (_, c) {\n return c ? c.toUpperCase() : \"\";\n });\n});\n\nfunction removeNode(node) {\n if (node.parentElement !== null) {\n node.parentElement.removeChild(node);\n }\n}\n\nfunction insertNodeAt(fatherNode, node, position) {\n var refNode = position === 0 ? fatherNode.children[0] : fatherNode.children[position - 1].nextSibling;\n fatherNode.insertBefore(node, refNode);\n}\n\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(\"c8ba\")))\n\n/***/ }),\n\n/***/ \"c69a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = !__webpack_require__(\"9e1e\") && !__webpack_require__(\"79e5\")(function () {\n return Object.defineProperty(__webpack_require__(\"230e\")('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"c8ba\":\n/***/ (function(module, exports) {\n\nvar g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n/***/ }),\n\n/***/ \"ca5a\":\n/***/ (function(module, exports) {\n\nvar id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n/***/ }),\n\n/***/ \"cadf\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar addToUnscopables = __webpack_require__(\"9c6c\");\nvar step = __webpack_require__(\"d53b\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar toIObject = __webpack_require__(\"6821\");\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = __webpack_require__(\"01f9\")(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n/***/ }),\n\n/***/ \"cb7c\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"d3f4\");\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"ce10\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(\"69a8\");\nvar toIObject = __webpack_require__(\"6821\");\nvar arrayIndexOf = __webpack_require__(\"c366\")(false);\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"d2c8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = __webpack_require__(\"aae3\");\nvar defined = __webpack_require__(\"be13\");\n\nmodule.exports = function (that, searchString, NAME) {\n if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};\n\n\n/***/ }),\n\n/***/ \"d3f4\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n\n/***/ \"d53b\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n\n\n/***/ }),\n\n/***/ \"d8e8\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"e11e\":\n/***/ (function(module, exports) {\n\n// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n/***/ }),\n\n/***/ \"f559\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n\nvar $export = __webpack_require__(\"5ca1\");\nvar toLength = __webpack_require__(\"9def\");\nvar context = __webpack_require__(\"d2c8\");\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * __webpack_require__(\"5147\")(STARTS_WITH), 'String', {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = context(this, searchString, STARTS_WITH);\n var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n\n\n/***/ }),\n\n/***/ \"f6fd\":\n/***/ (function(module, exports) {\n\n// document.currentScript polyfill by Adam Miller\n\n// MIT license\n\n(function(document){\n var currentScript = \"currentScript\",\n scripts = document.getElementsByTagName('script'); // Live NodeList collection\n\n // If browser needs currentScript polyfill, add get currentScript() to the document object\n if (!(currentScript in document)) {\n Object.defineProperty(document, currentScript, {\n get: function(){\n\n // IE 6-10 supports script readyState\n // IE 10+ support stack trace\n try { throw new Error(); }\n catch (err) {\n\n // Find the second match for the \"at\" string to get file src url from stack.\n // Specifically works with the format of stack traces in IE.\n var i, res = ((/.*at [^\\(]*\\((.*):.+:.+\\)$/ig).exec(err.stack) || [false])[1];\n\n // For all scripts on the page, if src matches or if ready state is interactive, return the script tag\n for(i in scripts){\n if(scripts[i].src == res || scripts[i].readyState == \"interactive\"){\n return scripts[i];\n }\n }\n\n // If no match, return null\n return null;\n }\n }\n });\n }\n})(document);\n\n\n/***/ }),\n\n/***/ \"f751\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.3.1 Object.assign(target, source)\nvar $export = __webpack_require__(\"5ca1\");\n\n$export($export.S + $export.F, 'Object', { assign: __webpack_require__(\"7333\") });\n\n\n/***/ }),\n\n/***/ \"fa5b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"5537\")('native-function-to-string', Function.toString);\n\n\n/***/ }),\n\n/***/ \"fab2\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar document = __webpack_require__(\"7726\").document;\nmodule.exports = document && document.documentElement;\n\n\n/***/ }),\n\n/***/ \"fb15\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js\n// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n if (true) {\n __webpack_require__(\"f6fd\")\n }\n\n var setPublicPath_i\n if ((setPublicPath_i = window.document.currentScript) && (setPublicPath_i = setPublicPath_i.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/))) {\n __webpack_require__.p = setPublicPath_i[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\n/* harmony default export */ var setPublicPath = (null);\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.object.assign.js\nvar es6_object_assign = __webpack_require__(\"f751\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.string.starts-with.js\nvar es6_string_starts_with = __webpack_require__(\"f559\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom.iterable.js\nvar web_dom_iterable = __webpack_require__(\"ac6a\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.array.iterator.js\nvar es6_array_iterator = __webpack_require__(\"cadf\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.object.keys.js\nvar es6_object_keys = __webpack_require__(\"456d\");\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\n\n\n\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es7.array.includes.js\nvar es7_array_includes = __webpack_require__(\"6762\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.string.includes.js\nvar es6_string_includes = __webpack_require__(\"2fdb\");\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\n\n\n\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n// EXTERNAL MODULE: external {\"commonjs\":\"sortablejs\",\"commonjs2\":\"sortablejs\",\"amd\":\"sortablejs\",\"root\":\"Sortable\"}\nvar external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_ = __webpack_require__(\"a352\");\nvar external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default = /*#__PURE__*/__webpack_require__.n(external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_);\n\n// EXTERNAL MODULE: ./src/util/helper.js\nvar helper = __webpack_require__(\"c649\");\n\n// CONCATENATED MODULE: ./src/vuedraggable.js\n\n\n\n\n\n\n\n\n\n\n\n\nfunction buildAttribute(object, propName, value) {\n if (value === undefined) {\n return object;\n }\n\n object = object || {};\n object[propName] = value;\n return object;\n}\n\nfunction computeVmIndex(vnodes, element) {\n return vnodes.map(function (elt) {\n return elt.elm;\n }).indexOf(element);\n}\n\nfunction _computeIndexes(slots, children, isTransition, footerOffset) {\n if (!slots) {\n return [];\n }\n\n var elmFromNodes = slots.map(function (elt) {\n return elt.elm;\n });\n var footerIndex = children.length - footerOffset;\n\n var rawIndexes = _toConsumableArray(children).map(function (elt, idx) {\n return idx >= footerIndex ? elmFromNodes.length : elmFromNodes.indexOf(elt);\n });\n\n return isTransition ? rawIndexes.filter(function (ind) {\n return ind !== -1;\n }) : rawIndexes;\n}\n\nfunction emit(evtName, evtData) {\n var _this = this;\n\n this.$nextTick(function () {\n return _this.$emit(evtName.toLowerCase(), evtData);\n });\n}\n\nfunction delegateAndEmit(evtName) {\n var _this2 = this;\n\n return function (evtData) {\n if (_this2.realList !== null) {\n _this2[\"onDrag\" + evtName](evtData);\n }\n\n emit.call(_this2, evtName, evtData);\n };\n}\n\nfunction isTransitionName(name) {\n return [\"transition-group\", \"TransitionGroup\"].includes(name);\n}\n\nfunction vuedraggable_isTransition(slots) {\n if (!slots || slots.length !== 1) {\n return false;\n }\n\n var _slots = _slicedToArray(slots, 1),\n componentOptions = _slots[0].componentOptions;\n\n if (!componentOptions) {\n return false;\n }\n\n return isTransitionName(componentOptions.tag);\n}\n\nfunction getSlot(slot, scopedSlot, key) {\n return slot[key] || (scopedSlot[key] ? scopedSlot[key]() : undefined);\n}\n\nfunction computeChildrenAndOffsets(children, slot, scopedSlot) {\n var headerOffset = 0;\n var footerOffset = 0;\n var header = getSlot(slot, scopedSlot, \"header\");\n\n if (header) {\n headerOffset = header.length;\n children = children ? [].concat(_toConsumableArray(header), _toConsumableArray(children)) : _toConsumableArray(header);\n }\n\n var footer = getSlot(slot, scopedSlot, \"footer\");\n\n if (footer) {\n footerOffset = footer.length;\n children = children ? [].concat(_toConsumableArray(children), _toConsumableArray(footer)) : _toConsumableArray(footer);\n }\n\n return {\n children: children,\n headerOffset: headerOffset,\n footerOffset: footerOffset\n };\n}\n\nfunction getComponentAttributes($attrs, componentData) {\n var attributes = null;\n\n var update = function update(name, value) {\n attributes = buildAttribute(attributes, name, value);\n };\n\n var attrs = Object.keys($attrs).filter(function (key) {\n return key === \"id\" || key.startsWith(\"data-\");\n }).reduce(function (res, key) {\n res[key] = $attrs[key];\n return res;\n }, {});\n update(\"attrs\", attrs);\n\n if (!componentData) {\n return attributes;\n }\n\n var on = componentData.on,\n props = componentData.props,\n componentDataAttrs = componentData.attrs;\n update(\"on\", on);\n update(\"props\", props);\n Object.assign(attributes.attrs, componentDataAttrs);\n return attributes;\n}\n\nvar eventsListened = [\"Start\", \"Add\", \"Remove\", \"Update\", \"End\"];\nvar eventsToEmit = [\"Choose\", \"Unchoose\", \"Sort\", \"Filter\", \"Clone\"];\nvar readonlyProperties = [\"Move\"].concat(eventsListened, eventsToEmit).map(function (evt) {\n return \"on\" + evt;\n});\nvar draggingElement = null;\nvar props = {\n options: Object,\n list: {\n type: Array,\n required: false,\n default: null\n },\n value: {\n type: Array,\n required: false,\n default: null\n },\n noTransitionOnDrag: {\n type: Boolean,\n default: false\n },\n clone: {\n type: Function,\n default: function _default(original) {\n return original;\n }\n },\n element: {\n type: String,\n default: \"div\"\n },\n tag: {\n type: String,\n default: null\n },\n move: {\n type: Function,\n default: null\n },\n componentData: {\n type: Object,\n required: false,\n default: null\n }\n};\nvar draggableComponent = {\n name: \"draggable\",\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n transitionMode: false,\n noneFunctionalComponentMode: false\n };\n },\n render: function render(h) {\n var slots = this.$slots.default;\n this.transitionMode = vuedraggable_isTransition(slots);\n\n var _computeChildrenAndOf = computeChildrenAndOffsets(slots, this.$slots, this.$scopedSlots),\n children = _computeChildrenAndOf.children,\n headerOffset = _computeChildrenAndOf.headerOffset,\n footerOffset = _computeChildrenAndOf.footerOffset;\n\n this.headerOffset = headerOffset;\n this.footerOffset = footerOffset;\n var attributes = getComponentAttributes(this.$attrs, this.componentData);\n return h(this.getTag(), attributes, children);\n },\n created: function created() {\n if (this.list !== null && this.value !== null) {\n helper[\"b\" /* console */].error(\"Value and list props are mutually exclusive! Please set one or another.\");\n }\n\n if (this.element !== \"div\") {\n helper[\"b\" /* console */].warn(\"Element props is deprecated please use tag props instead. See https://github.com/SortableJS/Vue.Draggable/blob/master/documentation/migrate.md#element-props\");\n }\n\n if (this.options !== undefined) {\n helper[\"b\" /* console */].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\");\n }\n },\n mounted: function mounted() {\n var _this3 = this;\n\n this.noneFunctionalComponentMode = this.getTag().toLowerCase() !== this.$el.nodeName.toLowerCase() && !this.getIsFunctional();\n\n if (this.noneFunctionalComponentMode && this.transitionMode) {\n throw new Error(\"Transition-group inside component is not supported. Please alter tag value or remove transition-group. Current tag value: \".concat(this.getTag()));\n }\n\n var optionsAdded = {};\n eventsListened.forEach(function (elt) {\n optionsAdded[\"on\" + elt] = delegateAndEmit.call(_this3, elt);\n });\n eventsToEmit.forEach(function (elt) {\n optionsAdded[\"on\" + elt] = emit.bind(_this3, elt);\n });\n var attributes = Object.keys(this.$attrs).reduce(function (res, key) {\n res[Object(helper[\"a\" /* camelize */])(key)] = _this3.$attrs[key];\n return res;\n }, {});\n var options = Object.assign({}, this.options, attributes, optionsAdded, {\n onMove: function onMove(evt, originalEvent) {\n return _this3.onDragMove(evt, originalEvent);\n }\n });\n !(\"draggable\" in options) && (options.draggable = \">*\");\n this._sortable = new external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default.a(this.rootContainer, options);\n this.computeIndexes();\n },\n beforeDestroy: function beforeDestroy() {\n if (this._sortable !== undefined) this._sortable.destroy();\n },\n computed: {\n rootContainer: function rootContainer() {\n return this.transitionMode ? this.$el.children[0] : this.$el;\n },\n realList: function realList() {\n return this.list ? this.list : this.value;\n }\n },\n watch: {\n options: {\n handler: function handler(newOptionValue) {\n this.updateOptions(newOptionValue);\n },\n deep: true\n },\n $attrs: {\n handler: function handler(newOptionValue) {\n this.updateOptions(newOptionValue);\n },\n deep: true\n },\n realList: function realList() {\n this.computeIndexes();\n }\n },\n methods: {\n getIsFunctional: function getIsFunctional() {\n var fnOptions = this._vnode.fnOptions;\n return fnOptions && fnOptions.functional;\n },\n getTag: function getTag() {\n return this.tag || this.element;\n },\n updateOptions: function updateOptions(newOptionValue) {\n for (var property in newOptionValue) {\n var value = Object(helper[\"a\" /* camelize */])(property);\n\n if (readonlyProperties.indexOf(value) === -1) {\n this._sortable.option(value, newOptionValue[property]);\n }\n }\n },\n getChildrenNodes: function getChildrenNodes() {\n if (this.noneFunctionalComponentMode) {\n return this.$children[0].$slots.default;\n }\n\n var rawNodes = this.$slots.default;\n return this.transitionMode ? rawNodes[0].child.$slots.default : rawNodes;\n },\n computeIndexes: function computeIndexes() {\n var _this4 = this;\n\n this.$nextTick(function () {\n _this4.visibleIndexes = _computeIndexes(_this4.getChildrenNodes(), _this4.rootContainer.children, _this4.transitionMode, _this4.footerOffset);\n });\n },\n getUnderlyingVm: function getUnderlyingVm(htmlElt) {\n var index = computeVmIndex(this.getChildrenNodes() || [], htmlElt);\n\n if (index === -1) {\n //Edge case during move callback: related element might be\n //an element different from collection\n return null;\n }\n\n var element = this.realList[index];\n return {\n index: index,\n element: element\n };\n },\n getUnderlyingPotencialDraggableComponent: function getUnderlyingPotencialDraggableComponent(_ref) {\n var vue = _ref.__vue__;\n\n if (!vue || !vue.$options || !isTransitionName(vue.$options._componentTag)) {\n if (!(\"realList\" in vue) && vue.$children.length === 1 && \"realList\" in vue.$children[0]) return vue.$children[0];\n return vue;\n }\n\n return vue.$parent;\n },\n emitChanges: function emitChanges(evt) {\n var _this5 = this;\n\n this.$nextTick(function () {\n _this5.$emit(\"change\", evt);\n });\n },\n alterList: function alterList(onList) {\n if (this.list) {\n onList(this.list);\n return;\n }\n\n var newList = _toConsumableArray(this.value);\n\n onList(newList);\n this.$emit(\"input\", newList);\n },\n spliceList: function spliceList() {\n var _arguments = arguments;\n\n var spliceList = function spliceList(list) {\n return list.splice.apply(list, _toConsumableArray(_arguments));\n };\n\n this.alterList(spliceList);\n },\n updatePosition: function updatePosition(oldIndex, newIndex) {\n var updatePosition = function updatePosition(list) {\n return list.splice(newIndex, 0, list.splice(oldIndex, 1)[0]);\n };\n\n this.alterList(updatePosition);\n },\n getRelatedContextFromMoveEvent: function getRelatedContextFromMoveEvent(_ref2) {\n var to = _ref2.to,\n related = _ref2.related;\n var component = this.getUnderlyingPotencialDraggableComponent(to);\n\n if (!component) {\n return {\n component: component\n };\n }\n\n var list = component.realList;\n var context = {\n list: list,\n component: component\n };\n\n if (to !== related && list && component.getUnderlyingVm) {\n var destination = component.getUnderlyingVm(related);\n\n if (destination) {\n return Object.assign(destination, context);\n }\n }\n\n return context;\n },\n getVmIndex: function getVmIndex(domIndex) {\n var indexes = this.visibleIndexes;\n var numberIndexes = indexes.length;\n return domIndex > numberIndexes - 1 ? numberIndexes : indexes[domIndex];\n },\n getComponent: function getComponent() {\n return this.$slots.default[0].componentInstance;\n },\n resetTransitionData: function resetTransitionData(index) {\n if (!this.noTransitionOnDrag || !this.transitionMode) {\n return;\n }\n\n var nodes = this.getChildrenNodes();\n nodes[index].data = null;\n var transitionContainer = this.getComponent();\n transitionContainer.children = [];\n transitionContainer.kept = undefined;\n },\n onDragStart: function onDragStart(evt) {\n this.context = this.getUnderlyingVm(evt.item);\n evt.item._underlying_vm_ = this.clone(this.context.element);\n draggingElement = evt.item;\n },\n onDragAdd: function onDragAdd(evt) {\n var element = evt.item._underlying_vm_;\n\n if (element === undefined) {\n return;\n }\n\n Object(helper[\"d\" /* removeNode */])(evt.item);\n var newIndex = this.getVmIndex(evt.newIndex);\n this.spliceList(newIndex, 0, element);\n this.computeIndexes();\n var added = {\n element: element,\n newIndex: newIndex\n };\n this.emitChanges({\n added: added\n });\n },\n onDragRemove: function onDragRemove(evt) {\n Object(helper[\"c\" /* insertNodeAt */])(this.rootContainer, evt.item, evt.oldIndex);\n\n if (evt.pullMode === \"clone\") {\n Object(helper[\"d\" /* removeNode */])(evt.clone);\n return;\n }\n\n var oldIndex = this.context.index;\n this.spliceList(oldIndex, 1);\n var removed = {\n element: this.context.element,\n oldIndex: oldIndex\n };\n this.resetTransitionData(oldIndex);\n this.emitChanges({\n removed: removed\n });\n },\n onDragUpdate: function onDragUpdate(evt) {\n Object(helper[\"d\" /* removeNode */])(evt.item);\n Object(helper[\"c\" /* insertNodeAt */])(evt.from, evt.item, evt.oldIndex);\n var oldIndex = this.context.index;\n var newIndex = this.getVmIndex(evt.newIndex);\n this.updatePosition(oldIndex, newIndex);\n var moved = {\n element: this.context.element,\n oldIndex: oldIndex,\n newIndex: newIndex\n };\n this.emitChanges({\n moved: moved\n });\n },\n updateProperty: function updateProperty(evt, propertyName) {\n evt.hasOwnProperty(propertyName) && (evt[propertyName] += this.headerOffset);\n },\n computeFutureIndex: function computeFutureIndex(relatedContext, evt) {\n if (!relatedContext.element) {\n return 0;\n }\n\n var domChildren = _toConsumableArray(evt.to.children).filter(function (el) {\n return el.style[\"display\"] !== \"none\";\n });\n\n var currentDOMIndex = domChildren.indexOf(evt.related);\n var currentIndex = relatedContext.component.getVmIndex(currentDOMIndex);\n var draggedInList = domChildren.indexOf(draggingElement) !== -1;\n return draggedInList || !evt.willInsertAfter ? currentIndex : currentIndex + 1;\n },\n onDragMove: function onDragMove(evt, originalEvent) {\n var onMove = this.move;\n\n if (!onMove || !this.realList) {\n return true;\n }\n\n var relatedContext = this.getRelatedContextFromMoveEvent(evt);\n var draggedContext = this.context;\n var futureIndex = this.computeFutureIndex(relatedContext, evt);\n Object.assign(draggedContext, {\n futureIndex: futureIndex\n });\n var sendEvt = Object.assign({}, evt, {\n relatedContext: relatedContext,\n draggedContext: draggedContext\n });\n return onMove(sendEvt, originalEvent);\n },\n onDragEnd: function onDragEnd() {\n this.computeIndexes();\n draggingElement = null;\n }\n }\n};\n\nif (typeof window !== \"undefined\" && \"Vue\" in window) {\n window.Vue.component(\"draggable\", draggableComponent);\n}\n\n/* harmony default export */ var vuedraggable = (draggableComponent);\n// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js\n\n\n/* harmony default export */ var entry_lib = __webpack_exports__[\"default\"] = (vuedraggable);\n\n\n\n/***/ })\n\n/******/ })[\"default\"];\n});\n//# sourceMappingURL=vuedraggable.umd.js.map","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","// The chunk loading function for additional chunks\n// Since all referenced chunks are already included\n// in this file, this function is empty here.\n__webpack_require__.e = () => (Promise.resolve());","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 4193;","__webpack_require__.b = (typeof document !== 'undefined' && document.baseURI) || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t4193: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = globalThis[\"webpackChunknextcloud_ui_legacy\"] = globalThis[\"webpackChunknextcloud_ui_legacy\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(56402)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","vue_material_design_icons_Pencilvue_type_script_lang_js","name","emits","props","title","type","String","fillColor","default","size","Number","Pencil","componentNormalizer","A","_vm","this","_c","_self","_b","staticClass","attrs","role","on","click","$event","$emit","$attrs","fill","width","height","viewBox","d","_v","_s","_e","components_ApiDashboardWidgetItemvue_type_script_setup_true_lang_ts","_defineComponent","__name","item","Object","required","iconSize","roundedIcons","Boolean","setup","__props","__sfc","imageLoaded","ref","loadingImageFailed","NcAvatar","NcDashboardWidgetItem","NcDashboardWidgetItem_2VgB9qj2","N","IconFile","options","styleTagTransform","styleTagTransform_default","setAttributes","setAttributesWithoutAttributes_default","insert","insertBySelector_default","bind","domAPI","styleDomAPI_default","insertStyleElement","insertStyleElement_default","injectStylesIntoStyleTag_default","ApiDashboardWidgetItemvue_type_style_index_0_id_bffdb06a_prod_scoped_true_lang_css","locals","components_ApiDashboardWidgetvue_type_script_lang_js","components","ApiDashboardWidgetItem","_setup","_setupProxy","link","overlayIconUrl","subtitle","scopedSlots","_u","key","fn","iconUrl","url","directives","rawName","value","expression","class","alt","src","error","load","proxy","CheckIcon","Check","NcDashboardWidget","NcDashboardWidget_CO1z9VUN","NcEmptyContent","NcButton","widget","undefined","data","loading","computed","items","emptyContentMessage","halfEmptyContentMessage","newButton","buttons","find","button","moreButton","setupButton","showMoreLabel","text","showMoreUrl","mounted","window","getComputedStyle","document","body","getPropertyValue","numeric","parseFloat","isNaN","ApiDashboardWidget","item_icons_round","length","description","href","logger","getLoggerBuilder","detectLogLevel","setApp","build","isMobile","_isMobile","beforeMount","addEventListener","_onResize","beforeDestroy","removeEventListener","methods","documentElement","clientWidth","panels","loadState","firstRun","birthdate","Date","statusInfo","weather","t","icon","status","src_DashboardAppvue_type_script_lang_js","Draggable","vuedraggable_umd_default","NcModal","NcUserStatusIcon","mixins","productName","OC","theme","isAdmin","getCurrentUser","timer","registeredStatus","callbacks","callbacksStatus","allCallbacksStatus","enabledStatuses","displayName","uid","layout","filter","panelId","modal","appStoreUrl","generateUrl","appStoreEnabled","statuses","apiWidgets","apiWidgetItems","loadingItems","greeting","time","getHours","partOfDay","getMonth","getDate","good","morning","generic","withName","escape","afternoon","evening","night","birthday","isActive","panel","indexOf","id","isStatusActive","findIndex","s","sortedAllStatuses","keys","slice","sort","sortStatuses","sortedPanels","values","a","b","indexA","indexB","sortedRegisteredStatus","watch","rerenderPanels","app","element","$refs","Vue","created","fetchApiWidgets","apiWidgetIdsToFetch","isApiWidgetV2","includes","map","Promise","all","fetchApiWidgetItems","reload_interval","setInterval","async","updateSkipLink","handleScroll","disableFirstrunHint","destroyed","register","callback","registerStatus","push","$nextTick","saveLayout","axios","post","generateOcsUrl","saveStatuses","showModal","closeModal","updateCheckbox","currentValue","index","splice","setTimeout","getElementsByClassName","setAttribute","updateStatusCheckbox","checked","enableStatus","disableStatus","i","j","delete","al","toLowerCase","bl","scrollY","classList","add","remove","get","ocs","widgetIds","merge","params","URLSearchParams","widgetItems","toString","item_api_versions","DashboardAppvue_type_style_index_0_id_2d96e221_prod_lang_scss_scoped_true_options","DashboardAppvue_type_style_index_0_id_2d96e221_prod_lang_scss_scoped_true","DashboardAppvue_type_style_index_1_id_2d96e221_prod_lang_css_options","DashboardAppvue_type_style_index_1_id_2d96e221_prod_lang_css","DashboardApp","_l","refInFor","handle","end","model","$$v","swapThreshold","delay","delayOnTouchOnly","touchStartThreshold","icon_url","icon_class","iconClass","close","domProps","input","target","for","tag","draggable","rel","__webpack_nonce__","getCSPNonce","prototype","Instance","extend","$mount","OCA","Dashboard","___CSS_LOADER_EXPORT___","_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default","_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default","module","version","sources","names","mappings","sourcesContent","sourceRoot","__WEBPACK_DEFAULT_EXPORT__","_typeof","obj","Symbol","iterator","constructor","_defineProperty","defineProperty","enumerable","configurable","writable","_extends","assign","arguments","source","hasOwnProperty","call","apply","_objectSpread","ownKeys","getOwnPropertySymbols","concat","sym","getOwnPropertyDescriptor","forEach","userAgent","pattern","navigator","match","IE11OrLess","Edge","FireFox","Safari","IOS","ChromeForAndroid","captureMode","capture","passive","el","event","off","matches","selector","substring","msMatchesSelector","webkitMatchesSelector","_","getParentOrHost","host","nodeType","parentNode","closest","ctx","includeCTX","_throttleTimeout","R_SPACE","toggleClass","state","className","replace","css","prop","val","style","defaultView","currentStyle","matrix","selfOnly","appliedTransforms","transform","matrixFn","DOMMatrix","WebKitCSSMatrix","CSSMatrix","MSCSSMatrix","tagName","list","getElementsByTagName","n","getWindowScrollingElement","scrollingElement","getRect","relativeToContainingBlock","relativeToNonStaticParent","undoScale","container","getBoundingClientRect","elRect","top","left","bottom","right","innerHeight","innerWidth","containerRect","parseInt","elMatrix","scaleX","scaleY","isScrolledPast","elSide","parentSide","parent","getParentAutoScrollElement","elSideVal","parentSideVal","getChild","childNum","currentChild","children","display","Sortable","ghost","dragged","lastChild","last","lastElementChild","previousElementSibling","nodeName","toUpperCase","clone","getRelativeScrollOffset","offsetLeft","offsetTop","winScroller","scrollLeft","scrollTop","includeSelf","elem","gotSelf","scrollWidth","clientHeight","scrollHeight","elemCSS","overflowX","overflowY","isRectEqual","rect1","rect2","Math","round","throttle","ms","args","scrollBy","x","y","Polymer","$","jQuery","Zepto","dom","cloneNode","setRect","rect","unsetRect","expando","getTime","plugins","defaults","initializeByDefault","PluginManager","mount","plugin","option","pluginEvent","eventName","sortable","evt","_this","eventCanceled","cancel","eventNameGlobal","pluginName","initializePlugins","initialized","modified","modifyOption","getEventProperties","eventProperties","modifiedValue","optionListeners","dispatchEvent","_ref","rootEl","targetEl","cloneEl","toEl","fromEl","oldIndex","newIndex","oldDraggableIndex","newDraggableIndex","originalEvent","putSortable","extraEventProperties","onName","charAt","substr","CustomEvent","createEvent","initEvent","bubbles","cancelable","to","from","pullMode","lastPutMode","allEventProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_objectWithoutProperties","dragEl","parentEl","ghostEl","nextEl","lastDownEl","cloneHidden","dragStarted","moved","activeSortable","active","hideGhostForTarget","_hideGhostForTarget","unhideGhostForTarget","_unhideGhostForTarget","cloneNowHidden","cloneNowShown","dispatchSortableEvent","_dispatchEvent","info","activeGroup","tapEvt","touchEvt","lastDx","lastDy","tapDistanceLeft","tapDistanceTop","lastTarget","lastDirection","targetMoveDistance","ghostRelativeParent","awaitingDragStarted","ignoreNextClick","sortables","pastFirstInvertThresh","isCircumstantialInvert","ghostRelativeParentInitialScroll","_silent","savedInputChecked","documentExists","PositionGhostAbsolutely","CSSFloatProperty","supportDraggable","createElement","supportCssPointerEvents","cssText","pointerEvents","_detectDirection","elCSS","elWidth","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","child1","child2","firstChildCSS","secondChildCSS","firstChildWidth","marginLeft","marginRight","secondChildWidth","flexDirection","gridTemplateColumns","split","touchingSideChild2","clear","_prepareGroup","toFn","pull","sameGroup","group","otherGroup","join","originalGroup","checkPull","checkPut","put","revertClone","preventDefault","stopPropagation","stopImmediatePropagation","nearestEmptyInsertDetectEvent","touches","nearest","clientX","clientY","some","threshold","emptyInsertThreshold","insideHorizontally","insideVertically","ret","_onDragOver","_checkOutsideTargetEl","_isOutsideThisEl","animationCallbackId","animationStates","disabled","store","test","invertSwap","invertedSwapThreshold","removeCloneOnHide","direction","ghostClass","chosenClass","dragClass","ignore","preventOnFilter","animation","easing","setData","dataTransfer","textContent","dropBubble","dragoverBubble","dataIdAttr","devicePixelRatio","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","nativeDraggable","_onTapStart","captureAnimationState","child","fromRect","thisAnimationDuration","childMatrix","f","e","addAnimationState","removeAnimationState","arr","indexOfObject","animateAll","clearTimeout","animating","animationTime","toRect","prevFromRect","prevToRect","animatingRect","targetMatrix","sqrt","pow","calculateRealTime","animate","max","animationResetTimer","currentRect","duration","translateX","translateY","animatingX","animatingY","offsetWidth","repaint","animated","_onMove","dragRect","targetRect","willInsertAfter","retVal","onMoveFn","onMove","draggedRect","related","relatedRect","_disableDraggable","_unsilent","_generateId","str","sum","charCodeAt","_nextTick","_cancelNextTick","contains","_getDirection","touch","pointerType","originalTarget","shadowRoot","path","composedPath","root","inputs","idx","_saveInputCheckedState","isContentEditable","criteria","trim","_prepareDragStart","dragStartFn","ownerDocument","nextSibling","_lastX","_lastY","_onDrop","_disableDelayedDragEvents","_triggerDragStart","_disableDelayedDrag","_delayedDragTouchMoveHandler","_dragStartTimer","abs","floor","_onTouchMove","_onDragStart","selection","empty","getSelection","removeAllRanges","err","_dragStarted","fallback","_appendGhost","_nulling","_emulateDragOver","elementFromPoint","ghostMatrix","relativeScrollOffset","dx","dy","c","cssMatrix","appendChild","_hideClone","cloneId","insertBefore","_loopId","effectAllowed","_dragStartId","revert","vertical","isOwner","canSort","fromSortable","completedFired","dragOverEvent","_ignoreWhileAnimating","completed","elLastChild","_ghostIsLast","changed","targetBeforeFirstSwap","sibling","differentLevel","differentRowCol","dragElS1Opp","dragElS2Opp","dragElOppLength","targetS1Opp","targetS2Opp","targetOppLength","_dragElInRowColumn","side1","scrolledPastTop","scrollBefore","isLastTarget","mouseOnAxis","targetLength","targetS1","targetS2","invert","_getInsertDirection","_getSwapDirection","dragIndex","nextElementSibling","after","moveVector","extra","axis","insertion","_showClone","_offMoveEvents","_offUpEvents","clearInterval","removeChild","save","handleEvent","dropEffect","_globalDragOver","toArray","order","getAttribute","set","destroy","Array","querySelectorAll","removeAttribute","utils","is","dst","nextTick","cancelNextTick","detectDirection","_len","_key","create","scrollEl","scrollRootEl","lastAutoScrollX","lastAutoScrollY","touchEvt$1","pointerElemChangedInterval","autoScrolls","scrolling","clearAutoScrolls","autoScroll","pid","clearPointerElemChangedInterval","lastSwapEl","isFallback","scroll","scrollCustomFn","sens","scrollSensitivity","speed","scrollSpeed","scrollThisInstance","scrollFn","layersOut","currentParent","canScrollX","canScrollY","scrollPosX","scrollPosY","vx","vy","layer","scrollOffsetY","scrollOffsetX","bubbleScroll","drop","toSortable","changedTouches","onSpill","Revert","Remove","SwapPlugin","Swap","swapClass","dragStart","dragOverValid","_ref2","swap","prevSwapEl","_ref3","n1","n2","i1","i2","p1","p2","isEqualNode","nulling","swapItem","startIndex","_ref4","parentSortable","lastMultiDragSelect","multiDragSortable","dragEl$1","clonesFromRect","clonesHidden","multiDragElements","multiDragClones","initialFolding","folding","MultiDragPlugin","MultiDrag","_deselectMultiDrag","_checkKeyDown","_checkKeyUp","selectedClass","multiDragKey","multiDragElement","multiDragKeyDown","isMultiDrag","delayStartGlobal","delayEnded","setupClone","sortableIndex","insertMultiDragClones","showClone","hideClone","_ref5","dragStartGlobal","_ref6","multiDrag","_ref7","_this2","removeMultiDragElements","dragOver","_ref8","_ref9","clonesInserted","insertMultiDragElements","dragOverCompleted","_ref10","dragRectAbsolute","clonesHiddenBefore","dragOverAnimationCapture","_ref11","dragMatrix","dragOverAnimationComplete","_ref12","originalEvt","shiftKey","lastIndex","currentIndex","multiDragIndex","update","nullingGlobal","destroyGlobal","shift","select","deselect","_this3","oldIndicies","newIndicies","isArray","arr2","_arrayWithoutHoles","iter","_iterableToArray","TypeError","_nonIterableSpread","clones","elementsInserted","AutoScroll","_handleAutoScroll","_handleFallbackAutoScroll","dragOverBubble","ogElemScroller","newElem","factory","self","__WEBPACK_EXTERNAL_MODULE_a352__","modules","installedModules","__nested_webpack_require_688__","moduleId","exports","l","m","getter","o","r","toStringTag","mode","__esModule","ns","object","property","p","__nested_webpack_require_4164__","LIBRARY","$export","redefine","hide","Iterators","$iterCreate","setToStringTag","getPrototypeOf","ITERATOR","BUGGY","KEYS","VALUES","returnThis","Base","NAME","Constructor","next","DEFAULT","IS_SET","FORCED","IteratorPrototype","getMethod","kind","proto","TAG","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","P","F","__nested_webpack_require_7070__","toInteger","defined","TO_STRING","that","pos","__nested_webpack_require_7783__","at","S","unicode","__nested_webpack_require_8134__","anObject","result","global","ignoreCase","multiline","sticky","__nested_webpack_require_8593__","$keys","enumBugKeys","O","__nested_webpack_require_8892__","dP","getKeys","defineProperties","Properties","__nested_webpack_require_9392__","fails","wks","regexpExec","SPECIES","REPLACE_SUPPORTS_NAMED_GROUPS","re","exec","groups","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","KEY","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","fns","nativeMethod","regexp","arg2","forceStringMethod","done","strfn","rxfn","RegExp","string","arg","__nested_webpack_require_12849__","isObject","it","__nested_webpack_require_13233__","cof","ARG","T","B","tryGet","callee","__nested_webpack_require_14160__","has","SRC","$toString","TPL","inspectSource","safe","isFunction","Function","__nested_webpack_require_15334__","dPs","IE_PROTO","Empty","PROTOTYPE","createDict","iframeDocument","iframe","contentWindow","open","write","lt","__nested_webpack_require_16945__","USE_SYMBOL","__nested_webpack_require_17667__","context","INCLUDES","searchString","__nested_webpack_require_18235__","createDesc","__nested_webpack_require_18611__","toObject","ObjectProto","__nested_webpack_require_19205__","descriptor","__nested_webpack_require_19831__","ceil","bitmap","__nested_webpack_require_20609__","__nested_webpack_require_20831__","MATCH","__nested_webpack_require_21176__","re1","re2","regexpFlags","nativeExec","nativeReplace","patchedExec","LAST_INDEX","UPDATES_LAST_INDEX_WRONG","NPCG_INCLUDED","reCopy","__nested_webpack_require_23109__","core","SHARED","copyright","__nested_webpack_require_23642__","own","out","exp","IS_FORCED","IS_GLOBAL","G","IS_STATIC","IS_PROTO","IS_BIND","expProto","U","W","R","__nested_webpack_require_25367__","__nested_webpack_require_25845__","classof","builtinExec","__nested_webpack_require_26551__","shared","__nested_webpack_require_26811__","__nested_webpack_require_27194__","$includes","__nested_webpack_require_27659__","IObject","__nested_webpack_require_28155__","valueOf","__nested_webpack_require_28898__","gOPS","pIE","$assign","K","k","aLen","getSymbols","isEnum","__g","__nested_webpack_require_30635__","min","__nested_webpack_require_31112__","def","stat","__e","__nested_webpack_require_31751__","IE8_DOM_DEFINE","toPrimitive","Attributes","__nested_webpack_require_32441__","aFunction","__nested_webpack_require_33048__","UNSCOPABLES","ArrayProto","__nested_webpack_require_33448__","__nested_webpack_require_33750__","a352","a481","__nested_webpack_require_34139__","toLength","advanceStringIndex","regExpExec","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","maybeToString","REPLACE","$replace","maybeCallNative","searchValue","replaceValue","res","rx","functionalReplace","fullUnicode","results","accumulatedResult","nextSourcePosition","matched","position","captures","namedCaptures","replacerArgs","replacement","getSubstitution","tailPos","symbols","ch","aae3","__nested_webpack_require_38885__","isRegExp","ac6a","__nested_webpack_require_39282__","$iterators","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Collection","b0c5","__nested_webpack_require_41209__","forced","be13","c366","__nested_webpack_require_41706__","toIObject","toAbsoluteIndex","IS_INCLUDES","$this","fromIndex","c649","__nested_webpack_exports__","__nested_webpack_require_42729__","insertNodeAt","camelize","console","removeNode","cache","regex","node","parentElement","fatherNode","refNode","c69a","__nested_webpack_require_44512__","c8ba","g","ca5a","px","random","cadf","__nested_webpack_require_45568__","addToUnscopables","step","iterated","_t","_i","_k","Arguments","cb7c","__nested_webpack_require_46777__","ce10","__nested_webpack_require_47019__","arrayIndexOf","d2c8","__nested_webpack_require_47655__","d3f4","d53b","d8e8","e11e","f559","__nested_webpack_require_48796__","STARTS_WITH","$startsWith","startsWith","search","f6fd","currentScript","scripts","Error","stack","readyState","f751","__nested_webpack_require_50913__","fa5b","__nested_webpack_require_51166__","fab2","__nested_webpack_require_51344__","fb15","__nested_webpack_require_51548__","setPublicPath_i","_arrayLikeToArray","len","_unsupportedIterableToArray","minLen","_toConsumableArray","external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_","external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default","helper","emit","evtName","evtData","delegateAndEmit","realList","isTransitionName","getSlot","slot","scopedSlot","eventsListened","eventsToEmit","readonlyProperties","draggingElement","draggableComponent","inheritAttrs","noTransitionOnDrag","original","move","componentData","transitionMode","noneFunctionalComponentMode","render","h","slots","$slots","componentOptions","_arrayWithHoles","_arr","_n","_d","_iterableToArrayLimit","_nonIterableRest","vuedraggable_isTransition","_computeChildrenAndOf","headerOffset","footerOffset","header","footer","computeChildrenAndOffsets","$scopedSlots","attributes","propName","buildAttribute","reduce","componentDataAttrs","getComponentAttributes","getTag","warn","$el","getIsFunctional","optionsAdded","elt","onDragMove","_sortable","rootContainer","computeIndexes","handler","newOptionValue","updateOptions","deep","fnOptions","_vnode","functional","getChildrenNodes","$children","rawNodes","_this4","visibleIndexes","isTransition","elmFromNodes","elm","footerIndex","rawIndexes","ind","_computeIndexes","getUnderlyingVm","htmlElt","vnodes","getUnderlyingPotencialDraggableComponent","vue","__vue__","$options","_componentTag","$parent","emitChanges","_this5","alterList","onList","newList","spliceList","_arguments","updatePosition","getRelatedContextFromMoveEvent","component","destination","getVmIndex","domIndex","indexes","numberIndexes","getComponent","componentInstance","resetTransitionData","transitionContainer","kept","onDragStart","_underlying_vm_","onDragAdd","added","onDragRemove","removed","onDragUpdate","updateProperty","propertyName","computeFutureIndex","relatedContext","domChildren","currentDOMIndex","draggedContext","futureIndex","onDragEnd","vuedraggable","__webpack_require__","__webpack_module_cache__","cachedModule","loaded","__webpack_modules__","chunkIds","priority","notFulfilled","Infinity","fulfilled","every","definition","resolve","nmd","paths","baseURI","location","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","globalThis","nc","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file