diff --git a/dist/theming-admin-theming.js b/dist/theming-admin-theming.js index b7b9641c12f..72b6dafe8cb 100644 --- a/dist/theming-admin-theming.js +++ b/dist/theming-admin-theming.js @@ -1,3 +1,3 @@ /*! For license information please see theming-admin-theming.js.LICENSE.txt */ -(()=>{"use strict";var e,n,a,o={12186:(e,n,a)=>{var o=a(77958),i=a(20144),r=a(43554),l=a(54405),s=a(90580),c=a(9359),d=a(93664),u=a(79753);const p=["color","logo","background","logoheader","favicon","disable-user-theming"],h={emits:["update:theming"],data:()=>({showSuccess:!1,errorMessage:""}),computed:{id(){return`admin-theming-${this.name}`}},methods:{reset(){this.showSuccess=!1,this.errorMessage=""},handleSuccess(){this.showSuccess=!0,setTimeout((()=>{this.showSuccess=!1}),2e3),p.includes(this.name)&&this.$emit("update:theming")}}},m={mixins:[h],watch:{value(e){this.localValue=e}},data(){return{localValue:this.value}},methods:{async save(){this.reset();const e=(0,u.generateUrl)("/apps/theming/ajax/updateStylesheet"),t=!0===this.localValue?"yes":!1===this.localValue?"no":this.localValue;try{await d.Z.post(e,{setting:this.name,value:t}),this.$emit("update:value",this.localValue),this.handleSuccess()}catch(e){this.errorMessage=e.response.data.data?.message}},async undo(){this.reset();const e=(0,u.generateUrl)("/apps/theming/ajax/undoChanges");try{await d.Z.post(e,{setting:this.name}),this.$emit("update:value",this.defaultValue),this.handleSuccess()}catch(e){this.errorMessage=e.response.data.data?.message}}}},g={name:"CheckboxField",components:{NcCheckboxRadioSwitch:c.Z,NcNoteCard:l.Z},mixins:[m],props:{name:{type:String,required:!0},value:{type:Boolean,required:!0},defaultValue:{type:Boolean,required:!0},displayName:{type:String,required:!0},label:{type:String,required:!0},description:{type:String,required:!0}}};var f=a(93379),v=a.n(f),A=a(7795),b=a.n(A),y=a(90569),C=a.n(y),w=a(3565),_=a.n(w),x=a(19216),S=a.n(x),N=a(44589),T=a.n(N),k=a(60515),D={};D.styleTagTransform=T(),D.setAttributes=_(),D.insert=C().bind(null,"head"),D.domAPI=b(),D.insertStyleElement=S(),v()(k.Z,D),k.Z&&k.Z.locals&&k.Z.locals;var E=a(51900);const I=(0,E.Z)(g,(function(){var e=this,t=e._self._c;return t("div",{staticClass:"field"},[t("label",{attrs:{for:e.id}},[e._v(e._s(e.displayName))]),e._v(" "),t("div",{staticClass:"field__row"},[t("NcCheckboxRadioSwitch",{attrs:{type:"switch",id:e.id,checked:e.localValue},on:{"update:checked":[function(t){e.localValue=t},e.save]}},[e._v("\n\t\t\t"+e._s(e.label)+"\n\t\t")])],1),e._v(" "),t("p",{staticClass:"field__description"},[e._v(e._s(e.description))]),e._v(" "),e.errorMessage?t("NcNoteCard",{attrs:{type:"error","show-alert":!0}},[t("p",[e._v(e._s(e.errorMessage))])]):e._e()],1)}),[],!1,null,"c41a3e80",null).exports;var M=a(20296),O=a(29497),L=a(12926);const P={name:"UndoVariantIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},F=(0,E.Z)(P,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon undo-variant-icon",attrs:{"aria-hidden":!e.title,"aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M13.5,7A6.5,6.5 0 0,1 20,13.5A6.5,6.5 0 0,1 13.5,20H10V18H13.5C16,18 18,16 18,13.5C18,11 16,9 13.5,9H7.83L10.91,12.09L9.5,13.5L4,8L9.5,2.5L10.92,3.91L7.83,7H13.5M6,18H8V20H6V18Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports,B={name:"ColorPickerField",components:{NcButton:O.Z,NcColorPicker:L.N,NcNoteCard:l.Z,Undo:F},mixins:[m],props:{name:{type:String,required:!0},value:{type:String,required:!0},defaultValue:{type:String,required:!0},displayName:{type:String,required:!0}},methods:{debounceSave:(0,M.debounce)((async function(){await this.save()}),200)}};var U=a(51666),j={};j.styleTagTransform=T(),j.setAttributes=_(),j.insert=C().bind(null,"head"),j.domAPI=b(),j.insertStyleElement=S(),v()(U.Z,j),U.Z&&U.Z.locals&&U.Z.locals;const Z=(0,E.Z)(B,(function(){var e=this,t=e._self._c;return t("div",{staticClass:"field"},[t("label",{attrs:{for:e.id}},[e._v(e._s(e.displayName))]),e._v(" "),t("div",{staticClass:"field__row"},[t("NcColorPicker",{attrs:{value:e.localValue,"advanced-fields":!0},on:{"update:value":[function(t){e.localValue=t},e.debounceSave]}},[t("NcButton",{staticClass:"field__button",attrs:{type:"primary",id:e.id,"aria-label":e.t("theming","Select a custom color"),"data-admin-theming-setting-primary-color-picker":""}},[e._v("\n\t\t\t\t"+e._s(e.value)+"\n\t\t\t")])],1),e._v(" "),e.value!==e.defaultValue?t("NcButton",{attrs:{type:"tertiary","aria-label":e.t("theming","Reset to default"),"data-admin-theming-setting-primary-color-reset":""},on:{click:e.undo},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Undo",{attrs:{size:20}})]},proxy:!0}],null,!1,33666776)}):e._e()],1),e._v(" "),e.errorMessage?t("NcNoteCard",{attrs:{type:"error","show-alert":!0}},[t("p",[e._v(e._s(e.errorMessage))])]):e._e()],1)}),[],!1,null,"425ea0b4",null).exports;var R=a(87604),z=a(42588),Y=a(20508);const{allowedMimeTypes:V}=(0,r.j)("theming","adminThemingParameters",{}),X={name:"FileInputField",components:{Delete:z.Z,NcButton:O.Z,NcLoadingIcon:R.Z,NcNoteCard:l.Z,Undo:F,Upload:Y.Z},mixins:[h],props:{name:{type:String,required:!0},mimeName:{type:String,required:!0},mimeValue:{type:String,required:!0},defaultMimeValue:{type:String,required:!0},displayName:{type:String,required:!0},ariaLabel:{type:String,required:!0}},data(){return{showLoading:!1,acceptMime:(V[this.name]||["image/jpeg","image/png","image/gif","image/webp"]).join(",")}},computed:{showReset(){return this.mimeValue!==this.defaultMimeValue},showRemove(){if("background"===this.name){if(this.mimeValue.startsWith("image/"))return!0;if(this.mimeValue===this.defaultMimeValue)return!0}return!1}},methods:{activateLocalFilePicker(){this.reset(),this.$refs.input.value=null,this.$refs.input.click()},async onChange(e){const t=e.target.files[0],n=new FormData;n.append("key",this.name),n.append("image",t);const a=(0,u.generateUrl)("/apps/theming/ajax/uploadImage");try{this.showLoading=!0,await d.Z.post(a,n),this.showLoading=!1,this.$emit("update:mime-value",t.type),this.handleSuccess()}catch(e){this.showLoading=!1,this.errorMessage=e.response.data.data?.message}},async undo(){this.reset();const e=(0,u.generateUrl)("/apps/theming/ajax/undoChanges");try{await d.Z.post(e,{setting:this.mimeName}),this.$emit("update:mime-value",this.defaultMimeValue),this.handleSuccess()}catch(e){this.errorMessage=e.response.data.data?.message}},async removeBackground(){this.reset();const e=(0,u.generateUrl)("/apps/theming/ajax/updateStylesheet");try{await d.Z.post(e,{setting:this.mimeName,value:"backgroundColor"}),this.$emit("update:mime-value","backgroundColor"),this.handleSuccess()}catch(e){this.errorMessage=e.response.data.data?.message}}}},q=X;var G=a(58800),H={};H.styleTagTransform=T(),H.setAttributes=_(),H.insert=C().bind(null,"head"),H.domAPI=b(),H.insertStyleElement=S(),v()(G.Z,H),G.Z&&G.Z.locals&&G.Z.locals;const $=(0,E.Z)(q,(function(){var e=this,t=e._self._c;return t("div",{staticClass:"field"},[t("label",{attrs:{for:e.id}},[e._v(e._s(e.displayName))]),e._v(" "),t("div",{staticClass:"field__row"},[t("NcButton",{attrs:{type:"secondary",id:e.id,"aria-label":e.ariaLabel,"data-admin-theming-setting-file-picker":""},on:{click:e.activateLocalFilePicker},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Upload",{attrs:{size:20}})]},proxy:!0}])},[e._v("\n\t\t\t"+e._s(e.t("theming","Upload"))+"\n\t\t")]),e._v(" "),e.showReset?t("NcButton",{attrs:{type:"tertiary","aria-label":e.t("theming","Reset to default"),"data-admin-theming-setting-file-reset":""},on:{click:e.undo},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Undo",{attrs:{size:20}})]},proxy:!0}],null,!1,33666776)}):e._e(),e._v(" "),e.showRemove?t("NcButton",{attrs:{type:"tertiary","aria-label":e.t("theming","Remove background image"),"data-admin-theming-setting-file-remove":""},on:{click:e.removeBackground},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Delete",{attrs:{size:20}})]},proxy:!0}],null,!1,2705356561)}):e._e(),e._v(" "),e.showLoading?t("NcLoadingIcon",{staticClass:"field__loading-icon",attrs:{size:20}}):e._e()],1),e._v(" "),"logoheader"!==e.name&&"favicon"!==e.name||e.mimeValue===e.defaultMimeValue?e._e():t("div",{staticClass:"field__preview",class:{"field__preview--logoheader":"logoheader"===e.name,"field__preview--favicon":"favicon"===e.name}}),e._v(" "),e.errorMessage?t("NcNoteCard",{attrs:{type:"error","show-alert":!0}},[t("p",[e._v(e._s(e.errorMessage))])]):e._e(),e._v(" "),t("input",{ref:"input",attrs:{accept:e.acceptMime,type:"file"},on:{change:e.onChange}})],1)}),[],!1,null,"36abeca7",null).exports,W={name:"TextField",components:{NcTextField:a(49368).Z},mixins:[m],props:{name:{type:String,required:!0},value:{type:String,required:!0},defaultValue:{type:String,required:!0},type:{type:String,required:!0},displayName:{type:String,required:!0},placeholder:{type:String,required:!0},maxlength:{type:Number,required:!0}}};var Q=a(15587),J={};J.styleTagTransform=T(),J.setAttributes=_(),J.insert=C().bind(null,"head"),J.domAPI=b(),J.insertStyleElement=S(),v()(Q.Z,J),Q.Z&&Q.Z.locals&&Q.Z.locals;const K=(0,E.Z)(W,(function(){var e=this,t=e._self._c;return t("div",{staticClass:"field"},[t("NcTextField",{attrs:{value:e.localValue,label:e.displayName,placeholder:e.placeholder,type:e.type,maxlength:e.maxlength,spellcheck:!1,success:e.showSuccess,error:Boolean(e.errorMessage),"helper-text":e.errorMessage,"show-trailing-button":e.value!==e.defaultValue,"trailing-button-icon":"undo"},on:{"update:value":function(t){e.localValue=t},"trailing-button-click":e.undo,keydown:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.save.apply(null,arguments)},blur:e.save}})],1)}),[],!1,null,"31f08db0",null).exports;var ee=a(64024),te=a(31352),ne=a(77723),ae=a(9568),oe=a(64886);function ie(e){return ie="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ie(e)}function re(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function le(){return le=Object.assign||function(e){for(var t=1;t"===t[0]&&(t=t.substring(1)),e)try{if(e.matches)return e.matches(t);if(e.msMatchesSelector)return e.msMatchesSelector(t);if(e.webkitMatchesSelector)return e.webkitMatchesSelector(t)}catch(e){return!1}return!1}}function ye(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function Ce(e,t,n,a){if(e){n=n||document;do{if(null!=t&&(">"===t[0]?e.parentNode===n&&be(e,t):be(e,t))||a&&e===n)return e;if(e===n)break}while(e=ye(e))}return null}var we,_e=/\s+/g;function xe(e,t,n){if(e&&t)if(e.classList)e.classList[n?"add":"remove"](t);else{var a=(" "+e.className+" ").replace(_e," ").replace(" "+t+" "," ");e.className=(a+(n?" "+t:"")).replace(_e," ")}}function Se(e,t,n){var a=e&&e.style;if(a){if(void 0===n)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(e,""):e.currentStyle&&(n=e.currentStyle),void 0===t?n:n[t];t in a||-1!==t.indexOf("webkit")||(t="-webkit-"+t),a[t]=n+("string"==typeof n?"":"px")}}function Ne(e,t){var n="";if("string"==typeof e)n=e;else do{var a=Se(e,"transform");a&&"none"!==a&&(n=a+" "+n)}while(!t&&(e=e.parentNode));var o=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return o&&new o(n)}function Te(e,t,n){if(e){var a=e.getElementsByTagName(t),o=0,i=a.length;if(n)for(;o=i:o<=i))return a;if(a===ke())break;a=Pe(a,!1)}return!1}function Ie(e,t,n){for(var a=0,o=0,i=e.children;o2&&void 0!==arguments[2]?arguments[2]:{},a=n.evt,o=function(e,t){if(null==e)return{};var n,a,o=function(e,t){if(null==e)return{};var n,a,o={},i=Object.keys(e);for(a=0;a=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(n,["evt"]);Ye.pluginEvent.bind(Ft)(e,t,se({dragEl:qe,parentEl:Ge,ghostEl:He,rootEl:$e,nextEl:We,lastDownEl:Qe,cloneEl:Je,cloneHidden:Ke,dragStarted:pt,putSortable:it,activeSortable:Ft.active,originalEvent:a,oldIndex:et,oldDraggableIndex:nt,newIndex:tt,newDraggableIndex:at,hideGhostForTarget:Mt,unhideGhostForTarget:Ot,cloneNowHidden:function(){Ke=!0},cloneNowShown:function(){Ke=!1},dispatchSortableEvent:function(e){Xe({sortable:t,name:e,originalEvent:a})}},o))};function Xe(e){!function(e){var t=e.sortable,n=e.rootEl,a=e.name,o=e.targetEl,i=e.cloneEl,r=e.toEl,l=e.fromEl,s=e.oldIndex,c=e.newIndex,d=e.oldDraggableIndex,u=e.newDraggableIndex,p=e.originalEvent,h=e.putSortable,m=e.extraEventProperties;if(t=t||n&&n[Ze]){var g,f=t.options,v="on"+a.charAt(0).toUpperCase()+a.substr(1);!window.CustomEvent||de||ue?(g=document.createEvent("Event")).initEvent(a,!0,!0):g=new CustomEvent(a,{bubbles:!0,cancelable:!0}),g.to=r||n,g.from=l||n,g.item=o||n,g.clone=i,g.oldIndex=s,g.newIndex=c,g.oldDraggableIndex=d,g.newDraggableIndex=u,g.originalEvent=p,g.pullMode=h?h.lastPutMode:void 0;var A=se({},m,Ye.getEventProperties(a,t));for(var b in A)g[b]=A[b];n&&n.dispatchEvent(g),f[v]&&f[v].call(t,g)}}(se({putSortable:it,cloneEl:Je,targetEl:qe,rootEl:$e,oldIndex:et,oldDraggableIndex:nt,newIndex:tt,newDraggableIndex:at},e))}var qe,Ge,He,$e,We,Qe,Je,Ke,et,tt,nt,at,ot,it,rt,lt,st,ct,dt,ut,pt,ht,mt,gt,ft,vt=!1,At=!1,bt=[],yt=!1,Ct=!1,wt=[],_t=!1,xt=[],St="undefined"!=typeof document,Nt=me,Tt=ue||de?"cssFloat":"float",kt=St&&!ge&&!me&&"draggable"in document.createElement("div"),Dt=function(){if(St){if(de)return!1;var e=document.createElement("x");return e.style.cssText="pointer-events:auto","auto"===e.style.pointerEvents}}(),Et=function(e,t){var n=Se(e),a=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),o=Ie(e,0,t),i=Ie(e,1,t),r=o&&Se(o),l=i&&Se(i),s=r&&parseInt(r.marginLeft)+parseInt(r.marginRight)+De(o).width,c=l&&parseInt(l.marginLeft)+parseInt(l.marginRight)+De(i).width;if("flex"===n.display)return"column"===n.flexDirection||"column-reverse"===n.flexDirection?"vertical":"horizontal";if("grid"===n.display)return n.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(o&&r.float&&"none"!==r.float){var d="left"===r.float?"left":"right";return!i||"both"!==l.clear&&l.clear!==d?"horizontal":"vertical"}return o&&("block"===r.display||"flex"===r.display||"table"===r.display||"grid"===r.display||s>=a&&"none"===n[Tt]||i&&"none"===n[Tt]&&s+c>a)?"vertical":"horizontal"},It=function(e){function t(e,n){return function(a,o,i,r){var l=a.options.group.name&&o.options.group.name&&a.options.group.name===o.options.group.name;if(null==e&&(n||l))return!0;if(null==e||!1===e)return!1;if(n&&"clone"===e)return e;if("function"==typeof e)return t(e(a,o,i,r),n)(a,o,i,r);var s=(n?a:o).options.group.name;return!0===e||"string"==typeof e&&e===s||e.join&&e.indexOf(s)>-1}}var n={},a=e.group;a&&"object"==ie(a)||(a={name:a}),n.name=a.name,n.checkPull=t(a.pull,!0),n.checkPut=t(a.put),n.revertClone=a.revertClone,e.group=n},Mt=function(){!Dt&&He&&Se(He,"display","none")},Ot=function(){!Dt&&He&&Se(He,"display","")};St&&document.addEventListener("click",(function(e){if(At)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),At=!1,!1}),!0);var Lt=function(e){if(qe){e=e.touches?e.touches[0]:e;var t=(o=e.clientX,i=e.clientY,bt.some((function(e){if(!Me(e)){var t=De(e),n=e[Ze].options.emptyInsertThreshold,a=o>=t.left-n&&o<=t.right+n,l=i>=t.top-n&&i<=t.bottom+n;return n&&a&&l?r=e:void 0}})),r);if(t){var n={};for(var a in e)e.hasOwnProperty(a)&&(n[a]=e[a]);n.target=n.rootEl=t,n.preventDefault=void 0,n.stopPropagation=void 0,t[Ze]._onDragOver(n)}}var o,i,r},Pt=function(e){qe&&qe.parentNode[Ze]._isOutsideThisEl(e.target)};function Ft(e,t){if(!e||!e.nodeType||1!==e.nodeType)throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(e));this.el=e,this.options=t=le({},t),e[Ze]=this;var n,a,o={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(e.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return Et(e,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(e,t){e.setData("Text",t.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:!1!==Ft.supportPointer&&"PointerEvent"in window,emptyInsertThreshold:5};for(var i in Ye.initializePlugins(this,e,o),o)!(i in t)&&(t[i]=o[i]);for(var r in It(t),this)"_"===r.charAt(0)&&"function"==typeof this[r]&&(this[r]=this[r].bind(this));this.nativeDraggable=!t.forceFallback&&kt,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?ve(e,"pointerdown",this._onTapStart):(ve(e,"mousedown",this._onTapStart),ve(e,"touchstart",this._onTapStart)),this.nativeDraggable&&(ve(e,"dragover",this),ve(e,"dragenter",this)),bt.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),le(this,(a=[],{captureAnimationState:function(){a=[],this.options.animation&&[].slice.call(this.el.children).forEach((function(e){if("none"!==Se(e,"display")&&e!==Ft.ghost){a.push({target:e,rect:De(e)});var t=se({},a[a.length-1].rect);if(e.thisAnimationDuration){var n=Ne(e,!0);n&&(t.top-=n.f,t.left-=n.e)}e.fromRect=t}}))},addAnimationState:function(e){a.push(e)},removeAnimationState:function(e){a.splice(function(e,t){for(var n in e)if(e.hasOwnProperty(n))for(var a in t)if(t.hasOwnProperty(a)&&t[a]===e[n][a])return Number(n);return-1}(a,{target:e}),1)},animateAll:function(e){var t=this;if(!this.options.animation)return clearTimeout(n),void("function"==typeof e&&e());var o=!1,i=0;a.forEach((function(e){var n=0,a=e.target,r=a.fromRect,l=De(a),s=a.prevFromRect,c=a.prevToRect,d=e.rect,u=Ne(a,!0);u&&(l.top-=u.f,l.left-=u.e),a.toRect=l,a.thisAnimationDuration&&Fe(s,l)&&!Fe(r,l)&&(d.top-l.top)/(d.left-l.left)==(r.top-l.top)/(r.left-l.left)&&(n=function(e,t,n,a){return Math.sqrt(Math.pow(t.top-e.top,2)+Math.pow(t.left-e.left,2))/Math.sqrt(Math.pow(t.top-n.top,2)+Math.pow(t.left-n.left,2))*a.animation}(d,s,c,t.options)),Fe(l,r)||(a.prevFromRect=r,a.prevToRect=l,n||(n=t.options.animation),t.animate(a,d,l,n)),n&&(o=!0,i=Math.max(i,n),clearTimeout(a.animationResetTimer),a.animationResetTimer=setTimeout((function(){a.animationTime=0,a.prevFromRect=null,a.fromRect=null,a.prevToRect=null,a.thisAnimationDuration=null}),n),a.thisAnimationDuration=n)})),clearTimeout(n),o?n=setTimeout((function(){"function"==typeof e&&e()}),i):"function"==typeof e&&e(),a=[]},animate:function(e,t,n,a){if(a){Se(e,"transition",""),Se(e,"transform","");var o=Ne(this.el),i=o&&o.a,r=o&&o.d,l=(t.left-n.left)/(i||1),s=(t.top-n.top)/(r||1);e.animatingX=!!l,e.animatingY=!!s,Se(e,"transform","translate3d("+l+"px,"+s+"px,0)"),function(e){e.offsetWidth}(e),Se(e,"transition","transform "+a+"ms"+(this.options.easing?" "+this.options.easing:"")),Se(e,"transform","translate3d(0,0,0)"),"number"==typeof e.animated&&clearTimeout(e.animated),e.animated=setTimeout((function(){Se(e,"transition",""),Se(e,"transform",""),e.animated=!1,e.animatingX=!1,e.animatingY=!1}),a)}}}))}function Bt(e,t,n,a,o,i,r,l){var s,c,d=e[Ze],u=d.options.onMove;return!window.CustomEvent||de||ue?(s=document.createEvent("Event")).initEvent("move",!0,!0):s=new CustomEvent("move",{bubbles:!0,cancelable:!0}),s.to=t,s.from=e,s.dragged=n,s.draggedRect=a,s.related=o||t,s.relatedRect=i||De(t),s.willInsertAfter=l,s.originalEvent=r,e.dispatchEvent(s),u&&(c=u.call(d,s,r)),c}function Ut(e){e.draggable=!1}function jt(){_t=!1}function Zt(e){for(var t=e.tagName+e.className+e.src+e.href+e.textContent,n=t.length,a=0;n--;)a+=t.charCodeAt(n);return a.toString(36)}function Rt(e){return setTimeout(e,0)}function zt(e){return clearTimeout(e)}Ft.prototype={constructor:Ft,_isOutsideThisEl:function(e){this.el.contains(e)||e===this.el||(ht=null)},_getDirection:function(e,t){return"function"==typeof this.options.direction?this.options.direction.call(this,e,t,qe):this.options.direction},_onTapStart:function(e){if(e.cancelable){var t=this,n=this.el,a=this.options,o=a.preventOnFilter,i=e.type,r=e.touches&&e.touches[0]||e.pointerType&&"touch"===e.pointerType&&e,l=(r||e).target,s=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||l,c=a.filter;if(function(e){xt.length=0;for(var t=e.getElementsByTagName("input"),n=t.length;n--;){var a=t[n];a.checked&&xt.push(a)}}(n),!qe&&!(/mousedown|pointerdown/.test(i)&&0!==e.button||a.disabled||s.isContentEditable||(l=Ce(l,a.draggable,n,!1))&&l.animated||Qe===l)){if(et=Oe(l),nt=Oe(l,a.draggable),"function"==typeof c){if(c.call(this,e,l,this))return Xe({sortable:t,rootEl:s,name:"filter",targetEl:l,toEl:n,fromEl:n}),Ve("filter",t,{evt:e}),void(o&&e.cancelable&&e.preventDefault())}else if(c&&(c=c.split(",").some((function(a){if(a=Ce(s,a.trim(),n,!1))return Xe({sortable:t,rootEl:a,name:"filter",targetEl:l,fromEl:n,toEl:n}),Ve("filter",t,{evt:e}),!0}))))return void(o&&e.cancelable&&e.preventDefault());a.handle&&!Ce(s,a.handle,n,!1)||this._prepareDragStart(e,r,l)}}},_prepareDragStart:function(e,t,n){var a,o=this,i=o.el,r=o.options,l=i.ownerDocument;if(n&&!qe&&n.parentNode===i){var s=De(n);if($e=i,Ge=(qe=n).parentNode,We=qe.nextSibling,Qe=n,ot=r.group,Ft.dragged=qe,rt={target:qe,clientX:(t||e).clientX,clientY:(t||e).clientY},dt=rt.clientX-s.left,ut=rt.clientY-s.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,qe.style["will-change"]="all",a=function(){Ve("delayEnded",o,{evt:e}),Ft.eventCanceled?o._onDrop():(o._disableDelayedDragEvents(),!pe&&o.nativeDraggable&&(qe.draggable=!0),o._triggerDragStart(e,t),Xe({sortable:o,name:"choose",originalEvent:e}),xe(qe,r.chosenClass,!0))},r.ignore.split(",").forEach((function(e){Te(qe,e.trim(),Ut)})),ve(l,"dragover",Lt),ve(l,"mousemove",Lt),ve(l,"touchmove",Lt),ve(l,"mouseup",o._onDrop),ve(l,"touchend",o._onDrop),ve(l,"touchcancel",o._onDrop),pe&&this.nativeDraggable&&(this.options.touchStartThreshold=4,qe.draggable=!0),Ve("delayStart",this,{evt:e}),!r.delay||r.delayOnTouchOnly&&!t||this.nativeDraggable&&(ue||de))a();else{if(Ft.eventCanceled)return void this._onDrop();ve(l,"mouseup",o._disableDelayedDrag),ve(l,"touchend",o._disableDelayedDrag),ve(l,"touchcancel",o._disableDelayedDrag),ve(l,"mousemove",o._delayedDragTouchMoveHandler),ve(l,"touchmove",o._delayedDragTouchMoveHandler),r.supportPointer&&ve(l,"pointermove",o._delayedDragTouchMoveHandler),o._dragStartTimer=setTimeout(a,r.delay)}}},_delayedDragTouchMoveHandler:function(e){var t=e.touches?e.touches[0]:e;Math.max(Math.abs(t.clientX-this._lastX),Math.abs(t.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){qe&&Ut(qe),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;Ae(e,"mouseup",this._disableDelayedDrag),Ae(e,"touchend",this._disableDelayedDrag),Ae(e,"touchcancel",this._disableDelayedDrag),Ae(e,"mousemove",this._delayedDragTouchMoveHandler),Ae(e,"touchmove",this._delayedDragTouchMoveHandler),Ae(e,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t=t||"touch"==e.pointerType&&e,!this.nativeDraggable||t?this.options.supportPointer?ve(document,"pointermove",this._onTouchMove):ve(document,t?"touchmove":"mousemove",this._onTouchMove):(ve(qe,"dragend",this),ve($e,"dragstart",this._onDragStart));try{document.selection?Rt((function(){document.selection.empty()})):window.getSelection().removeAllRanges()}catch(e){}},_dragStarted:function(e,t){if(vt=!1,$e&&qe){Ve("dragStarted",this,{evt:t}),this.nativeDraggable&&ve(document,"dragover",Pt);var n=this.options;!e&&xe(qe,n.dragClass,!1),xe(qe,n.ghostClass,!0),Ft.active=this,e&&this._appendGhost(),Xe({sortable:this,name:"start",originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(lt){this._lastX=lt.clientX,this._lastY=lt.clientY,Mt();for(var e=document.elementFromPoint(lt.clientX,lt.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(lt.clientX,lt.clientY))!==t;)t=e;if(qe.parentNode[Ze]._isOutsideThisEl(e),t)do{if(t[Ze]&&t[Ze]._onDragOver({clientX:lt.clientX,clientY:lt.clientY,target:e,rootEl:t})&&!this.options.dragoverBubble)break;e=t}while(t=t.parentNode);Ot()}},_onTouchMove:function(e){if(rt){var t=this.options,n=t.fallbackTolerance,a=t.fallbackOffset,o=e.touches?e.touches[0]:e,i=He&&Ne(He,!0),r=He&&i&&i.a,l=He&&i&&i.d,s=Nt&&ft&&Le(ft),c=(o.clientX-rt.clientX+a.x)/(r||1)+(s?s[0]-wt[0]:0)/(r||1),d=(o.clientY-rt.clientY+a.y)/(l||1)+(s?s[1]-wt[1]:0)/(l||1);if(!Ft.active&&!vt){if(n&&Math.max(Math.abs(o.clientX-this._lastX),Math.abs(o.clientY-this._lastY))a.right+10||e.clientX<=a.right&&e.clientY>a.bottom&&e.clientX>=a.left:e.clientX>a.right&&e.clientY>a.top||e.clientX<=a.right&&e.clientY>a.bottom+10}(e,o,this)&&!g.animated){if(g===qe)return E(!1);if(g&&i===e.target&&(r=g),r&&(n=De(r)),!1!==Bt($e,i,qe,t,r,n,e,!!r))return D(),i.appendChild(qe),Ge=i,I(),E(!0)}else if(r.parentNode===i){n=De(r);var f,v,A,b=qe.parentNode!==i,y=!function(e,t,n){var a=n?e.left:e.top,o=n?e.right:e.bottom,i=n?e.width:e.height,r=n?t.left:t.top,l=n?t.right:t.bottom,s=n?t.width:t.height;return a===r||o===l||a+i/2===r+s/2}(qe.animated&&qe.toRect||t,r.animated&&r.toRect||n,o),C=o?"top":"left",w=Ee(r,"top","top")||Ee(qe,"top","top"),_=w?w.scrollTop:void 0;if(ht!==r&&(v=n[C],yt=!1,Ct=!y&&l.invertSwap||b),f=function(e,t,n,a,o,i,r,l){var s=a?e.clientY:e.clientX,c=a?n.height:n.width,d=a?n.top:n.left,u=a?n.bottom:n.right,p=!1;if(!r)if(l&>d+c*i/2:su-gt)return-mt}else if(s>d+c*(1-o)/2&&su-c*i/2)?s>d+c/2?1:-1:0}(e,r,n,o,y?1:l.swapThreshold,null==l.invertedSwapThreshold?l.swapThreshold:l.invertedSwapThreshold,Ct,ht===r),0!==f){var x=Oe(qe);do{x-=f,A=Ge.children[x]}while(A&&("none"===Se(A,"display")||A===He))}if(0===f||A===r)return E(!1);ht=r,mt=f;var S=r.nextElementSibling,N=!1,T=Bt($e,i,qe,t,r,n,e,N=1===f);if(!1!==T)return 1!==T&&-1!==T||(N=1===T),_t=!0,setTimeout(jt,30),D(),N&&!S?i.appendChild(qe):r.parentNode.insertBefore(qe,N?S:r),w&&Ue(w,0,_-w.scrollTop),Ge=qe.parentNode,void 0===v||Ct||(gt=Math.abs(v-De(r)[C])),I(),E(!0)}if(i.contains(qe))return E(!1)}return!1}function k(l,s){Ve(l,h,se({evt:e,isOwner:d,axis:o?"vertical":"horizontal",revert:a,dragRect:t,targetRect:n,canSort:u,fromSortable:p,target:r,completed:E,onMove:function(n,a){return Bt($e,i,qe,t,n,De(n),e,a)},changed:I},s))}function D(){k("dragOverAnimationCapture"),h.captureAnimationState(),h!==p&&p.captureAnimationState()}function E(t){return k("dragOverCompleted",{insertion:t}),t&&(d?c._hideClone():c._showClone(h),h!==p&&(xe(qe,it?it.options.ghostClass:c.options.ghostClass,!1),xe(qe,l.ghostClass,!0)),it!==h&&h!==Ft.active?it=h:h===Ft.active&&it&&(it=null),p===h&&(h._ignoreWhileAnimating=r),h.animateAll((function(){k("dragOverAnimationComplete"),h._ignoreWhileAnimating=null})),h!==p&&(p.animateAll(),p._ignoreWhileAnimating=null)),(r===qe&&!qe.animated||r===i&&!r.animated)&&(ht=null),l.dragoverBubble||e.rootEl||r===document||(qe.parentNode[Ze]._isOutsideThisEl(e.target),!t&&Lt(e)),!l.dragoverBubble&&e.stopPropagation&&e.stopPropagation(),m=!0}function I(){tt=Oe(qe),at=Oe(qe,l.draggable),Xe({sortable:h,name:"change",toEl:i,newIndex:tt,newDraggableIndex:at,originalEvent:e})}},_ignoreWhileAnimating:null,_offMoveEvents:function(){Ae(document,"mousemove",this._onTouchMove),Ae(document,"touchmove",this._onTouchMove),Ae(document,"pointermove",this._onTouchMove),Ae(document,"dragover",Lt),Ae(document,"mousemove",Lt),Ae(document,"touchmove",Lt)},_offUpEvents:function(){var e=this.el.ownerDocument;Ae(e,"mouseup",this._onDrop),Ae(e,"touchend",this._onDrop),Ae(e,"pointerup",this._onDrop),Ae(e,"touchcancel",this._onDrop),Ae(document,"selectstart",this)},_onDrop:function(e){var t=this.el,n=this.options;tt=Oe(qe),at=Oe(qe,n.draggable),Ve("drop",this,{evt:e}),Ge=qe&&qe.parentNode,tt=Oe(qe),at=Oe(qe,n.draggable),Ft.eventCanceled||(vt=!1,Ct=!1,yt=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),zt(this.cloneId),zt(this._dragStartId),this.nativeDraggable&&(Ae(document,"drop",this),Ae(t,"dragstart",this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),he&&Se(document.body,"user-select",""),Se(qe,"transform",""),e&&(pt&&(e.cancelable&&e.preventDefault(),!n.dropBubble&&e.stopPropagation()),He&&He.parentNode&&He.parentNode.removeChild(He),($e===Ge||it&&"clone"!==it.lastPutMode)&&Je&&Je.parentNode&&Je.parentNode.removeChild(Je),qe&&(this.nativeDraggable&&Ae(qe,"dragend",this),Ut(qe),qe.style["will-change"]="",pt&&!vt&&xe(qe,it?it.options.ghostClass:this.options.ghostClass,!1),xe(qe,this.options.chosenClass,!1),Xe({sortable:this,name:"unchoose",toEl:Ge,newIndex:null,newDraggableIndex:null,originalEvent:e}),$e!==Ge?(tt>=0&&(Xe({rootEl:Ge,name:"add",toEl:Ge,fromEl:$e,originalEvent:e}),Xe({sortable:this,name:"remove",toEl:Ge,originalEvent:e}),Xe({rootEl:Ge,name:"sort",toEl:Ge,fromEl:$e,originalEvent:e}),Xe({sortable:this,name:"sort",toEl:Ge,originalEvent:e})),it&&it.save()):tt!==et&&tt>=0&&(Xe({sortable:this,name:"update",toEl:Ge,originalEvent:e}),Xe({sortable:this,name:"sort",toEl:Ge,originalEvent:e})),Ft.active&&(null!=tt&&-1!==tt||(tt=et,at=nt),Xe({sortable:this,name:"end",toEl:Ge,originalEvent:e}),this.save())))),this._nulling()},_nulling:function(){Ve("nulling",this),$e=qe=Ge=He=We=Je=Qe=Ke=rt=lt=pt=tt=at=et=nt=ht=mt=it=ot=Ft.dragged=Ft.ghost=Ft.clone=Ft.active=null,xt.forEach((function(e){e.checked=!0})),xt.length=st=ct=0},handleEvent:function(e){switch(e.type){case"drop":case"dragend":this._onDrop(e);break;case"dragenter":case"dragover":qe&&(this._onDragOver(e),function(e){e.dataTransfer&&(e.dataTransfer.dropEffect="move"),e.cancelable&&e.preventDefault()}(e));break;case"selectstart":e.preventDefault()}},toArray:function(){for(var e,t=[],n=this.el.children,a=0,o=n.length,i=this.options;a!0,"move:down":()=>!0,"update:focus":()=>!0},setup(e,t){let{emit:n}=t;const a=(0,i.ref)(),o=(0,i.ref)();let r=0;return{buttonUp:a,buttonDown:o,moveUp:()=>{n("move:up"),r=1},moveDown:()=>{n("move:down"),r=-1},keepFocus:()=>{0!==r&&(1!==r&&!e.isLast||e.isFirst?(0,i.nextTick)((()=>o.value.$el.focus())):(0,i.nextTick)((()=>a.value.$el.focus()))),r=0},t:te.Iu}}});var cn=a(40773),dn={};dn.styleTagTransform=T(),dn.setAttributes=_(),dn.insert=C().bind(null,"head"),dn.domAPI=b(),dn.insertStyleElement=S(),v()(cn.Z,dn),cn.Z&&cn.Z.locals&&cn.Z.locals;const un=(0,E.Z)(sn,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("li",{class:{"order-selector-element":!0,"order-selector-element--disabled":e.app.default},attrs:{"data-cy-app-order-element":e.app.id},on:{focusin:function(t){return e.$emit("update:focus")}}},[t("svg",{attrs:{width:"20",height:"20",viewBox:"0 0 20 20",role:"presentation"}},[t("image",{staticClass:"order-selector-element__icon",attrs:{preserveAspectRatio:"xMinYMin meet",x:"0",y:"0",width:"20",height:"20","xlink:href":e.app.icon}})]),e._v(" "),t("div",{staticClass:"order-selector-element__label"},[e._v("\n\t\t"+e._s(e.app.label??e.app.id)+"\n\t")]),e._v(" "),t("div",{staticClass:"order-selector-element__actions"},[t("NcButton",{directives:[{name:"show",rawName:"v-show",value:!e.isFirst&&!e.app.default,expression:"!isFirst && !app.default"}],ref:"buttonUp",attrs:{"aria-label":e.t("settings","Move up"),"aria-describedby":e.ariaDescribedby,"aria-details":e.ariaDetails,"data-cy-app-order-button":"up",type:"tertiary-no-background"},on:{click:e.moveUp},scopedSlots:e._u([{key:"icon",fn:function(){return[t("IconArrowUp",{attrs:{size:20}})]},proxy:!0}])}),e._v(" "),t("div",{directives:[{name:"show",rawName:"v-show",value:e.isFirst||!!e.app.default,expression:"isFirst || !!app.default"}],staticClass:"order-selector-element__placeholder",attrs:{"aria-hidden":"true"}}),e._v(" "),t("NcButton",{directives:[{name:"show",rawName:"v-show",value:!e.isLast&&!e.app.default,expression:"!isLast && !app.default"}],ref:"buttonDown",attrs:{"aria-label":e.t("settings","Move down"),"aria-describedby":e.ariaDescribedby,"aria-details":e.ariaDetails,"data-cy-app-order-button":"down",type:"tertiary-no-background"},on:{click:e.moveDown},scopedSlots:e._u([{key:"icon",fn:function(){return[t("IconArrowDown",{attrs:{size:20}})]},proxy:!0}])}),e._v(" "),t("div",{directives:[{name:"show",rawName:"v-show",value:e.isLast||!!e.app.default,expression:"isLast || !!app.default"}],staticClass:"order-selector-element__placeholder",attrs:{"aria-hidden":"true"}})],1)])}),[],!1,null,"081ebc45",null).exports,pn=(0,i.defineComponent)({name:"AppOrderSelector",components:{AppOrderSelectorElement:un,Fragment:on.Fragment},props:{ariaDetails:{type:String,default:null},value:{type:Array,required:!0}},emits:{"update:value":e=>Array.isArray(e)},setup(e,t){let{emit:n}=t;const a=(0,i.ref)(null),o=(0,i.computed)({get:()=>e.value,set:t=>{const a=[...t].sort(((e,n)=>(n.default?1:0)-(e.default?1:0)||t.indexOf(e)-t.indexOf(n)));a.some(((t,n)=>{let{id:a}=t;return a!==e.value[n].id}))?n("update:value",a):r.value+=1}}),r=(0,i.ref)(0);!function(e,t,n={}){let a;const{document:o=ae.Td$,...r}=n,l={onUpdate:e=>{!function(e,t,n){const a=(0,i.isRef)(e),o=a?[...(0,oe.Tn)(e)]:(0,oe.Tn)(e);if(n>=0&&n{o.splice(n,0,r),a&&(e.value=o)}))}}(t,e.oldIndex,e.newIndex)}},s=()=>{const t="string"==typeof e?null==o?void 0:o.querySelector(e):(0,ae.NXq)(e);t&&void 0===a&&(a=new an(t,{...l,...r}))},c=()=>{null==a||a.destroy(),a=void 0};(0,oe.u7)(s),(0,oe.IY)(c)}(a,o,{filter:".order-selector-element--disabled"});const l=(0,i.ref)([]);(0,i.onUpdated)((()=>{l.value.forEach((e=>e.keepFocus()))}));const s=(0,i.ref)("");return{appList:o,listElement:a,moveDown:t=>{const a=t>0?e.value.slice(0,t):[];a.push(e.value[t+1]);const o=t{const a=t>1?e.value.slice(0,t-1):[];if(e.value[t-1]?.default)return;const o=[e.value[t-1]];t{s.value=(0,te.Iu)("theming","Current selected app: {app}, position {position} of {total}",{app:e.value[t].label,position:t+1,total:e.value.length})},renderCount:r,selectorElements:l}}}),hn=pn;var mn=a(37049),gn={};gn.styleTagTransform=T(),gn.setAttributes=_(),gn.insert=C().bind(null,"head"),gn.domAPI=b(),gn.insertStyleElement=S(),v()(mn.Z,gn),mn.Z&&mn.Z.locals&&mn.Z.locals;var fn=(0,E.Z)(hn,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("Fragment",[t("div",{staticClass:"hidden-visually",attrs:{id:e.statusInfoId,"aria-live":"polite",role:"status"}},[e._v("\n\t\t"+e._s(e.statusInfo)+"\n\t")]),e._v(" "),t("ol",{ref:"listElement",staticClass:"order-selector",attrs:{"data-cy-app-order":""}},e._l(e.appList,(function(n,a){return t("AppOrderSelectorElement",e._g({key:`${n.id}${e.renderCount}`,ref:"selectorElements",refInFor:!0,attrs:{app:n,"aria-details":e.ariaDetails,"aria-describedby":e.statusInfoId,"is-first":0===a||!!e.appList[a-1].default,"is-last":a===e.value.length-1}},n.default?{}:{"move:up":()=>e.moveUp(a),"move:down":()=>e.moveDown(a),"update:focus":()=>e.updateStatusInfo(a)}))})),1)])}),[],!1,null,"35797e31",null);const vn=fn.exports,An=(0,i.defineComponent)({name:"AppMenuSection",components:{AppOrderSelector:vn,NcCheckboxRadioSwitch:c.Z,NcSelect:ne.Z,NcSettingsSection:s.Z},props:{defaultApps:{type:Array,required:!0}},emits:{"update:defaultApps":e=>Array.isArray(e)&&e.every((e=>"string"==typeof e))},setup(e,t){let{emit:n}=t;const a=(0,i.computed)({get:()=>e.defaultApps.length>0,set:e=>{e?n("update:defaultApps",["dashboard","files"]):l.value=[]}}),o=Object.values((0,r.j)("core","apps")).map((e=>{let{id:t,name:n,icon:a}=e;return{label:n,id:t,icon:a}})),l=(0,i.computed)({get:()=>e.defaultApps.map((e=>o.filter((t=>t.id===e))[0])),set(e){s("defaultApps",e.map((e=>e.id))).then((()=>n("update:defaultApps",e.map((e=>e.id))))).catch((()=>(0,ee.x2)((0,te.Iu)("theming","Could not set global default apps"))))}}),s=async(e,t)=>{const n=(0,u.generateUrl)("/apps/theming/ajax/updateAppMenu");return await d.Z.put(n,{setting:e,value:t})};return{allApps:o,selectedApps:l,hasCustomDefaultApp:a,t:te.Iu}}}),bn=An;var yn=a(3640),Cn={};Cn.styleTagTransform=T(),Cn.setAttributes=_(),Cn.insert=C().bind(null,"head"),Cn.domAPI=b(),Cn.insertStyleElement=S(),v()(yn.Z,Cn),yn.Z&&yn.Z.locals&&yn.Z.locals;const wn=(0,E.Z)(bn,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("NcSettingsSection",{attrs:{name:e.t("theming","Navigation bar settings")}},[t("h3",[e._v(e._s(e.t("theming","Default app")))]),e._v(" "),t("p",{staticClass:"info-note"},[e._v("\n\t\t"+e._s(e.t("theming","The default app is the app that is e.g. opened after login or when the logo in the menu is clicked."))+"\n\t")]),e._v(" "),t("NcCheckboxRadioSwitch",{attrs:{checked:e.hasCustomDefaultApp,type:"switch","data-cy-switch-default-app":""},on:{"update:checked":function(t){e.hasCustomDefaultApp=t}}},[e._v("\n\t\t"+e._s(e.t("theming","Use custom default app"))+"\n\t")]),e._v(" "),e.hasCustomDefaultApp?[t("h4",[e._v(e._s(e.t("theming","Global default app")))]),e._v(" "),t("NcSelect",{attrs:{"close-on-select":!1,placeholder:e.t("theming","Global default apps"),options:e.allApps,multiple:!0},model:{value:e.selectedApps,callback:function(t){e.selectedApps=t},expression:"selectedApps"}}),e._v(" "),t("h5",[e._v(e._s(e.t("theming","Default app priority")))]),e._v(" "),t("p",{staticClass:"info-note"},[e._v("\n\t\t\t"+e._s(e.t("theming","If an app is not enabled for a user, the next app with lower priority is used."))+"\n\t\t")]),e._v(" "),t("AppOrderSelector",{attrs:{value:e.selectedApps},on:{"update:value":function(t){e.selectedApps=t}}})]:e._e()],2)}),[],!1,null,"90f2e098",null).exports,{backgroundMime:_n,canThemeIcons:xn,color:Sn,docUrl:Nn,docUrlIcons:Tn,faviconMime:kn,isThemable:Dn,legalNoticeUrl:En,logoheaderMime:In,logoMime:Mn,name:On,notThemableErrorMessage:Ln,privacyPolicyUrl:Pn,slogan:Fn,url:Bn,userThemingDisabled:Un,defaultApps:jn}=(0,r.j)("theming","adminThemingParameters"),Zn=[{name:"name",value:On,defaultValue:"Nextcloud",type:"text",displayName:t("theming","Name"),placeholder:t("theming","Name"),maxlength:250},{name:"url",value:Bn,defaultValue:"https://nextcloud.com",type:"url",displayName:t("theming","Web link"),placeholder:"https://…",maxlength:500},{name:"slogan",value:Fn,defaultValue:t("theming","a safe home for all your data"),type:"text",displayName:t("theming","Slogan"),placeholder:t("theming","Slogan"),maxlength:500}],Rn={name:"color",value:Sn,defaultValue:"#0082c9",displayName:t("theming","Color")},zn=[{name:"logo",mimeName:"logoMime",mimeValue:Mn,defaultMimeValue:"",displayName:t("theming","Logo"),ariaLabel:t("theming","Upload new logo")},{name:"background",mimeName:"backgroundMime",mimeValue:_n,defaultMimeValue:"",displayName:t("theming","Background and login image"),ariaLabel:t("theming","Upload new background and login image")}],Yn=[{name:"imprintUrl",value:En,defaultValue:"",type:"url",displayName:t("theming","Legal notice link"),placeholder:"https://…",maxlength:500},{name:"privacyUrl",value:Pn,defaultValue:"",type:"url",displayName:t("theming","Privacy policy link"),placeholder:"https://…",maxlength:500}],Vn=[{name:"logoheader",mimeName:"logoheaderMime",mimeValue:In,defaultMimeValue:"",displayName:t("theming","Header logo"),ariaLabel:t("theming","Upload new header logo")},{name:"favicon",mimeName:"faviconMime",mimeValue:kn,defaultMimeValue:"",displayName:t("theming","Favicon"),ariaLabel:t("theming","Upload new favicon")}],Xn={name:"disable-user-theming",value:Un,defaultValue:!1,displayName:t("theming","User settings"),label:t("theming","Disable user theming"),description:t("theming","Although you can select and customize your instance, users can change their background and colors. If you want to enforce your customization, you can toggle this on.")},qn={name:"AdminTheming",components:{AppMenuSection:wn,CheckboxField:I,ColorPickerField:Z,FileInputField:$,NcNoteCard:l.Z,NcSettingsSection:s.Z,TextField:K},emits:["update:theming"],textFields:Zn,data:()=>({textFields:Zn,colorPickerField:Rn,fileInputFields:zn,advancedTextFields:Yn,advancedFileInputFields:Vn,userThemingField:Xn,defaultApps:jn,canThemeIcons:xn,docUrl:Nn,docUrlIcons:Tn,isThemable:Dn,notThemableErrorMessage:Ln})};var Gn=a(50050),Hn={};Hn.styleTagTransform=T(),Hn.setAttributes=_(),Hn.insert=C().bind(null,"head"),Hn.domAPI=b(),Hn.insertStyleElement=S(),v()(Gn.Z,Hn),Gn.Z&&Gn.Z.locals&&Gn.Z.locals;const $n=(0,E.Z)(qn,(function(){var e=this,t=e._self._c;return t("section",[t("NcSettingsSection",{attrs:{name:e.t("theming","Theming"),description:e.t("theming","Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users."),"doc-url":e.docUrl,"data-admin-theming-settings":""}},[t("div",{staticClass:"admin-theming"},[e.isThemable?e._e():t("NcNoteCard",{attrs:{type:"error","show-alert":!0}},[t("p",[e._v(e._s(e.notThemableErrorMessage))])]),e._v(" "),e._l(e.textFields,(function(n){return t("TextField",{key:n.name,attrs:{"data-admin-theming-setting-field":n.name,"default-value":n.defaultValue,"display-name":n.displayName,maxlength:n.maxlength,name:n.name,placeholder:n.placeholder,type:n.type,value:n.value},on:{"update:value":function(t){return e.$set(n,"value",t)},"update:theming":function(t){return e.$emit("update:theming")}}})})),e._v(" "),t("ColorPickerField",{attrs:{name:e.colorPickerField.name,"default-value":e.colorPickerField.defaultValue,"display-name":e.colorPickerField.displayName,value:e.colorPickerField.value,"data-admin-theming-setting-primary-color":""},on:{"update:value":function(t){return e.$set(e.colorPickerField,"value",t)},"update:theming":function(t){return e.$emit("update:theming")}}}),e._v(" "),e._l(e.fileInputFields,(function(n){return t("FileInputField",{key:n.name,attrs:{"aria-label":n.ariaLabel,"data-admin-theming-setting-file":n.name,"default-mime-value":n.defaultMimeValue,"display-name":n.displayName,"mime-name":n.mimeName,"mime-value":n.mimeValue,name:n.name},on:{"update:mimeValue":function(t){return e.$set(n,"mimeValue",t)},"update:mime-value":function(t){return e.$set(n,"mimeValue",t)},"update:theming":function(t){return e.$emit("update:theming")}}})})),e._v(" "),t("div",{staticClass:"admin-theming__preview",attrs:{"data-admin-theming-preview":""}},[t("div",{staticClass:"admin-theming__preview-logo",attrs:{"data-admin-theming-preview-logo":""}})])],2)]),e._v(" "),t("NcSettingsSection",{attrs:{name:e.t("theming","Advanced options")}},[t("div",{staticClass:"admin-theming-advanced"},[e._l(e.advancedTextFields,(function(n){return t("TextField",{key:n.name,attrs:{name:n.name,value:n.value,"default-value":n.defaultValue,type:n.type,"display-name":n.displayName,placeholder:n.placeholder,maxlength:n.maxlength},on:{"update:value":function(t){return e.$set(n,"value",t)},"update:theming":function(t){return e.$emit("update:theming")}}})})),e._v(" "),e._l(e.advancedFileInputFields,(function(n){return t("FileInputField",{key:n.name,attrs:{name:n.name,"mime-name":n.mimeName,"mime-value":n.mimeValue,"default-mime-value":n.defaultMimeValue,"display-name":n.displayName,"aria-label":n.ariaLabel},on:{"update:mimeValue":function(t){return e.$set(n,"mimeValue",t)},"update:mime-value":function(t){return e.$set(n,"mimeValue",t)},"update:theming":function(t){return e.$emit("update:theming")}}})})),e._v(" "),t("CheckboxField",{attrs:{name:e.userThemingField.name,value:e.userThemingField.value,"default-value":e.userThemingField.defaultValue,"display-name":e.userThemingField.displayName,label:e.userThemingField.label,description:e.userThemingField.description,"data-admin-theming-setting-disable-user-theming":""},on:{"update:theming":function(t){return e.$emit("update:theming")}}}),e._v(" "),e.canThemeIcons?e._e():t("a",{attrs:{href:e.docUrlIcons,rel:"noreferrer noopener"}},[t("em",[e._v(e._s(e.t("theming","Install the ImageMagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color.")))])])],2)]),e._v(" "),t("AppMenuSection",{attrs:{"default-apps":e.defaultApps},on:{"update:defaultApps":function(t){e.defaultApps=t},"update:default-apps":function(t){e.defaultApps=t}}})],1)}),[],!1,null,"7a1f9a54",null).exports;a.nc=btoa((0,o.IH)()),i.default.prototype.OC=OC,i.default.prototype.t=t;const Wn=new(i.default.extend($n));Wn.$mount("#admin-theming"),Wn.$on("update:theming",(()=>{[...document.head.querySelectorAll("link.theme")].forEach((e=>{const t=new URL(e.href);t.searchParams.set("v",Date.now());const n=e.cloneNode();n.href=t.toString(),n.onload=()=>e.remove(),document.head.append(n)}))}))},50050:(e,t,n)=>{n.d(t,{Z:()=>p});var a=n(87537),o=n.n(a),i=n(23645),r=n.n(i),l=n(61667),s=n.n(l),c=new URL(n(92770),n.b),d=r()(o()),u=s()(c);d.push([e.id,`.admin-theming[data-v-7a1f9a54],.admin-theming-advanced[data-v-7a1f9a54]{display:flex;flex-direction:column;gap:8px 0}.admin-theming__preview[data-v-7a1f9a54]{width:230px;height:140px;background-size:cover;background-position:center;text-align:center;margin-top:10px;background-color:var(--color-primary-element-default);background-image:var(--image-background-plain, var(--image-background-default))}.admin-theming__preview-logo[data-v-7a1f9a54]{width:20%;height:20%;margin-top:20px;display:inline-block;background-size:contain;background-position:center;background-repeat:no-repeat;background-image:var(--image-logo, url(${u}))}`,"",{version:3,sources:["webpack://./apps/theming/src/AdminTheming.vue"],names:[],mappings:"AACA,yEAEC,YAAA,CACA,qBAAA,CACA,SAAA,CAIA,yCACC,WAAA,CACA,YAAA,CACA,qBAAA,CACA,0BAAA,CACA,iBAAA,CACA,eAAA,CAIA,qDAAA,CAKA,+EAAA,CAEA,8CACC,SAAA,CACA,UAAA,CACA,eAAA,CACA,oBAAA,CACA,uBAAA,CACA,0BAAA,CACA,2BAAA,CACA,2EAAA",sourcesContent:["\n.admin-theming,\n.admin-theming-advanced {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 8px 0;\n}\n\n.admin-theming {\n\t&__preview {\n\t\twidth: 230px;\n\t\theight: 140px;\n\t\tbackground-size: cover;\n\t\tbackground-position: center;\n\t\ttext-align: center;\n\t\tmargin-top: 10px;\n\t\t/* This is basically https://github.com/nextcloud/server/blob/master/core/css/guest.css\n\t\t But without the user variables. That way the admin can preview the render as guest*/\n\t\t/* As guest, there is no user color color-background-plain */\n\t\tbackground-color: var(--color-primary-element-default);\n\t\t/* As guest, there is no user background (--image-background)\n\t\t1. Empty background if defined\n\t\t2. Else default background\n\t\t3. Finally default gradient (should not happened, the background is always defined anyway) */\n\t\tbackground-image: var(--image-background-plain, var(--image-background-default));\n\n\t\t&-logo {\n\t\t\twidth: 20%;\n\t\t\theight: 20%;\n\t\t\tmargin-top: 20px;\n\t\t\tdisplay: inline-block;\n\t\t\tbackground-size: contain;\n\t\t\tbackground-position: center;\n\t\t\tbackground-repeat: no-repeat;\n\t\t\tbackground-image: var(--image-logo, url('../../../core/img/logo/logo.svg'));\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const p=d},37049:(e,t,n)=>{n.d(t,{Z:()=>l});var a=n(87537),o=n.n(a),i=n(23645),r=n.n(i)()(o());r.push([e.id,".order-selector[data-v-35797e31]{width:max-content;min-width:260px}","",{version:3,sources:["webpack://./apps/theming/src/components/AppOrderSelector.vue"],names:[],mappings:"AACA,iCACC,iBAAA,CACA,eAAA",sourcesContent:["\n.order-selector {\n\twidth: max-content;\n\tmin-width: 260px; // align with NcSelect\n}\n"],sourceRoot:""}]);const l=r},40773:(e,t,n)=>{n.d(t,{Z:()=>l});var a=n(87537),o=n.n(a),i=n(23645),r=n.n(i)()(o());r.push([e.id,".order-selector-element[data-v-081ebc45]{list-style:none;display:flex;flex-direction:row;align-items:center;gap:12px;padding-inline:12px}.order-selector-element[data-v-081ebc45]:hover{background-color:var(--color-background-hover);border-radius:var(--border-radius-large)}.order-selector-element--disabled[data-v-081ebc45]{border-color:var(--color-text-maxcontrast);color:var(--color-text-maxcontrast)}.order-selector-element--disabled .order-selector-element__icon[data-v-081ebc45]{opacity:75%}.order-selector-element__actions[data-v-081ebc45]{flex:0 0;display:flex;flex-direction:row;gap:6px}.order-selector-element__label[data-v-081ebc45]{flex:1 1;text-overflow:ellipsis;overflow:hidden}.order-selector-element__placeholder[data-v-081ebc45]{height:44px;width:44px}.order-selector-element__icon[data-v-081ebc45]{filter:var(--background-invert-if-bright)}","",{version:3,sources:["webpack://./apps/theming/src/components/AppOrderSelectorElement.vue"],names:[],mappings:"AACA,yCAEC,eAAA,CAEA,YAAA,CACA,kBAAA,CACA,kBAAA,CAEA,QAAA,CACA,mBAAA,CAEA,+CACC,8CAAA,CACA,wCAAA,CAGD,mDACC,0CAAA,CACA,mCAAA,CAEA,iFACC,WAAA,CAIF,kDACC,QAAA,CACA,YAAA,CACA,kBAAA,CACA,OAAA,CAGD,gDACC,QAAA,CACA,sBAAA,CACA,eAAA,CAGD,sDACC,WAAA,CACA,UAAA,CAGD,+CACC,yCAAA",sourcesContent:["\n.order-selector-element {\n\t// hide default styling\n\tlist-style: none;\n\t// Align children\n\tdisplay: flex;\n\tflex-direction: row;\n\talign-items: center;\n\t// Spacing\n\tgap: 12px;\n\tpadding-inline: 12px;\n\n\t&:hover {\n\t\tbackground-color: var(--color-background-hover);\n\t\tborder-radius: var(--border-radius-large);\n\t}\n\n\t&--disabled {\n\t\tborder-color: var(--color-text-maxcontrast);\n\t\tcolor: var(--color-text-maxcontrast);\n\n\t\t.order-selector-element__icon {\n\t\t\topacity: 75%;\n\t\t}\n\t}\n\n\t&__actions {\n\t\tflex: 0 0;\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t\tgap: 6px;\n\t}\n\n\t&__label {\n\t\tflex: 1 1;\n\t\ttext-overflow: ellipsis;\n\t\toverflow: hidden;\n\t}\n\n\t&__placeholder {\n\t\theight: 44px;\n\t\twidth: 44px;\n\t}\n\n\t&__icon {\n\t\tfilter: var(--background-invert-if-bright);\n\t}\n}\n"],sourceRoot:""}]);const l=r},3640:(e,t,n)=>{n.d(t,{Z:()=>l});var a=n(87537),o=n.n(a),i=n(23645),r=n.n(i)()(o());r.push([e.id,"h3[data-v-90f2e098],h4[data-v-90f2e098]{font-weight:bold}h4[data-v-90f2e098],h5[data-v-90f2e098]{margin-block-start:12px}.info-note[data-v-90f2e098]{color:var(--color-text-maxcontrast)}","",{version:3,sources:["webpack://./apps/theming/src/components/admin/AppMenuSection.vue"],names:[],mappings:"AACA,wCACC,gBAAA,CAED,wCACC,uBAAA,CAGD,4BACC,mCAAA",sourcesContent:["\nh3, h4 {\n\tfont-weight: bold;\n}\nh4, h5 {\n\tmargin-block-start: 12px;\n}\n\n.info-note {\n\tcolor: var(--color-text-maxcontrast);\n}\n"],sourceRoot:""}]);const l=r},60515:(e,t,n)=>{n.d(t,{Z:()=>l});var a=n(87537),o=n.n(a),i=n(23645),r=n.n(i)()(o());r.push([e.id,".field[data-v-c41a3e80]{display:flex;flex-direction:column;gap:4px 0}.field__row[data-v-c41a3e80]{display:flex;gap:0 4px}.field__description[data-v-c41a3e80]{color:var(--color-text-maxcontrast)}","",{version:3,sources:["webpack://./apps/theming/src/components/admin/shared/field.scss","webpack://./apps/theming/src/components/admin/CheckboxField.vue"],names:[],mappings:"AAsBA,wBACC,YAAA,CACA,qBAAA,CACA,SAAA,CAEA,6BACC,YAAA,CACA,SAAA,CCzBD,qCACC,mCAAA",sourcesContent:["/**\n * @copyright 2022 Christopher Ng \n *\n * @author Christopher Ng \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n.field {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 4px 0;\n\n\t&__row {\n\t\tdisplay: flex;\n\t\tgap: 0 4px;\n\t}\n}\n","\n@import './shared/field.scss';\n\n.field {\n\t&__description {\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n}\n"],sourceRoot:""}]);const l=r},51666:(e,t,n)=>{n.d(t,{Z:()=>l});var a=n(87537),o=n.n(a),i=n(23645),r=n.n(i)()(o());r.push([e.id,'.field[data-v-425ea0b4]{display:flex;flex-direction:column;gap:4px 0}.field__row[data-v-425ea0b4]{display:flex;gap:0 4px}.field__button[data-v-425ea0b4]{width:230px !important;border-radius:var(--border-radius-large) !important;background-color:var(--color-primary-default) !important}.field__button[data-v-425ea0b4]:hover::after{background-color:#fff;content:"";position:absolute;width:100%;height:100%;opacity:.2;filter:var(--primary-invert-if-bright)}.field__button[data-v-425ea0b4] *{z-index:1}',"",{version:3,sources:["webpack://./apps/theming/src/components/admin/shared/field.scss","webpack://./apps/theming/src/components/admin/ColorPickerField.vue"],names:[],mappings:"AAsBA,wBACC,YAAA,CACA,qBAAA,CACA,SAAA,CAEA,6BACC,YAAA,CACA,SAAA,CCxBD,gCACC,sBAAA,CACA,mDAAA,CACA,wDAAA,CAIA,6CACC,qBAAA,CACA,UAAA,CACA,iBAAA,CACA,UAAA,CACA,WAAA,CACA,UAAA,CACA,sCAAA,CAID,kCACC,SAAA",sourcesContent:["/**\n * @copyright 2022 Christopher Ng \n *\n * @author Christopher Ng \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n.field {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 4px 0;\n\n\t&__row {\n\t\tdisplay: flex;\n\t\tgap: 0 4px;\n\t}\n}\n","\n@import './shared/field.scss';\n\n.field {\n\t// Override default NcButton styles\n\t&__button {\n\t\twidth: 230px !important;\n\t\tborder-radius: var(--border-radius-large) !important;\n\t\tbackground-color: var(--color-primary-default) !important;\n\n\t\t// emulated hover state because it would not make sense\n\t\t// to create a dedicated global variable for the color-primary-default\n\t\t&:hover::after {\n\t\t\tbackground-color: white;\n\t\t\tcontent: \"\";\n\t\t\tposition: absolute;\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\t\t\topacity: .2;\n\t\t\tfilter: var(--primary-invert-if-bright);\n\t\t}\n\n\t\t// Above the ::after\n\t\t&::v-deep * {\n\t\t\tz-index: 1;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const l=r},58800:(e,t,n)=>{n.d(t,{Z:()=>l});var a=n(87537),o=n.n(a),i=n(23645),r=n.n(i)()(o());r.push([e.id,".field[data-v-36abeca7]{display:flex;flex-direction:column;gap:4px 0}.field__row[data-v-36abeca7]{display:flex;gap:0 4px}.field__loading-icon[data-v-36abeca7]{width:44px;height:44px}.field__preview[data-v-36abeca7]{width:70px;height:70px;background-size:contain;background-position:center;background-repeat:no-repeat;margin:10px 0}.field__preview--logoheader[data-v-36abeca7]{background-image:var(--image-logoheader)}.field__preview--favicon[data-v-36abeca7]{background-image:var(--image-favicon)}input[type=file][data-v-36abeca7]{display:none}","",{version:3,sources:["webpack://./apps/theming/src/components/admin/shared/field.scss","webpack://./apps/theming/src/components/admin/FileInputField.vue"],names:[],mappings:"AAsBA,wBACC,YAAA,CACA,qBAAA,CACA,SAAA,CAEA,6BACC,YAAA,CACA,SAAA,CCzBD,sCACC,UAAA,CACA,WAAA,CAGD,iCACC,UAAA,CACA,WAAA,CACA,uBAAA,CACA,0BAAA,CACA,2BAAA,CACA,aAAA,CAEA,6CACC,wCAAA,CAGD,0CACC,qCAAA,CAKH,kCACC,YAAA",sourcesContent:["/**\n * @copyright 2022 Christopher Ng \n *\n * @author Christopher Ng \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n.field {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 4px 0;\n\n\t&__row {\n\t\tdisplay: flex;\n\t\tgap: 0 4px;\n\t}\n}\n","\n@import './shared/field.scss';\n\n.field {\n\t&__loading-icon {\n\t\twidth: 44px;\n\t\theight: 44px;\n\t}\n\n\t&__preview {\n\t\twidth: 70px;\n\t\theight: 70px;\n\t\tbackground-size: contain;\n\t\tbackground-position: center;\n\t\tbackground-repeat: no-repeat;\n\t\tmargin: 10px 0;\n\n\t\t&--logoheader {\n\t\t\tbackground-image: var(--image-logoheader);\n\t\t}\n\n\t\t&--favicon {\n\t\t\tbackground-image: var(--image-favicon);\n\t\t}\n\t}\n}\n\ninput[type=\"file\"] {\n\tdisplay: none;\n}\n"],sourceRoot:""}]);const l=r},15587:(e,t,n)=>{n.d(t,{Z:()=>l});var a=n(87537),o=n.n(a),i=n(23645),r=n.n(i)()(o());r.push([e.id,".field[data-v-31f08db0]{max-width:400px}","",{version:3,sources:["webpack://./apps/theming/src/components/admin/TextField.vue"],names:[],mappings:"AACA,wBACC,eAAA",sourcesContent:["\n.field {\n\tmax-width: 400px;\n}\n"],sourceRoot:""}]);const l=r},92770:e=>{e.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjU2IiBoZWlnaHQ9IjEyOCIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMjU2IDEyOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtMTI4IDdjLTI1Ljg3MSAwLTQ3LjgxNyAxNy40ODUtNTQuNzEzIDQxLjIwOS01Ljk3OTUtMTIuNDYxLTE4LjY0Mi0yMS4yMDktMzMuMjg3LTIxLjIwOS0yMC4zMDQgMC0zNyAxNi42OTYtMzcgMzdzMTYuNjk2IDM3IDM3IDM3YzE0LjY0NSAwIDI3LjMwOC04Ljc0ODEgMzMuMjg3LTIxLjIwOSA2Ljg5NTcgMjMuNzI0IDI4Ljg0MiA0MS4yMDkgNTQuNzEzIDQxLjIwOXM0Ny44MTctMTcuNDg1IDU0LjcxMy00MS4yMDljNS45Nzk1IDEyLjQ2MSAxOC42NDIgMjEuMjA5IDMzLjI4NyAyMS4yMDkgMjAuMzA0IDAgMzctMTYuNjk2IDM3LTM3cy0xNi42OTYtMzctMzctMzdjLTE0LjY0NSAwLTI3LjMwOCA4Ljc0ODEtMzMuMjg3IDIxLjIwOS02Ljg5NTctMjMuNzI0LTI4Ljg0Mi00MS4yMDktNTQuNzEzLTQxLjIwOXptMCAyMmMxOS40NiAwIDM1IDE1LjU0IDM1IDM1cy0xNS41NCAzNS0zNSAzNS0zNS0xNS41NC0zNS0zNSAxNS41NC0zNSAzNS0zNXptLTg4IDIwYzguNDE0NiAwIDE1IDYuNTg1NCAxNSAxNXMtNi41ODU0IDE1LTE1IDE1LTE1LTYuNTg1NC0xNS0xNSA2LjU4NTQtMTUgMTUtMTV6bTE3NiAwYzguNDE0NiAwIDE1IDYuNTg1NCAxNSAxNXMtNi41ODU0IDE1LTE1IDE1LTE1LTYuNTg1NC0xNS0xNSA2LjU4NTQtMTUgMTUtMTV6IiBjb2xvcj0iIzAwMDAwMCIgZmlsbD0iI2ZmZiIgc3R5bGU9Ii1pbmtzY2FwZS1zdHJva2U6bm9uZSIvPjwvc3ZnPgo="}},i={};function r(e){var t=i[e];if(void 0!==t)return t.exports;var n=i[e]={id:e,loaded:!1,exports:{}};return o[e].call(n.exports,n,n.exports,r),n.loaded=!0,n.exports}r.m=o,e=[],r.O=(t,n,a,o)=>{if(!n){var i=1/0;for(d=0;d=o)&&Object.keys(r.O).every((e=>r.O[e](n[s])))?n.splice(s--,1):(l=!1,o0&&e[d-1][2]>o;d--)e[d]=e[d-1];e[d]=[n,a,o]},r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((t,n)=>(r.f[n](e,t),t)),[])),r.u=e=>e+"-"+e+".js?v="+{1215:"dd1ef4c4cc807022e660",5076:"15b21454a9691213632e"}[e],r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n={},a="nextcloud:",r.l=(e,t,o,i)=>{if(n[e])n[e].push(t);else{var l,s;if(void 0!==o)for(var c=document.getElementsByTagName("script"),d=0;d{l.onerror=l.onload=null,clearTimeout(h);var o=n[e];if(delete n[e],l.parentNode&&l.parentNode.removeChild(l),o&&o.forEach((e=>e(a))),t)return t(a)},h=setTimeout(p.bind(null,void 0,{type:"timeout",target:l}),12e4);l.onerror=p.bind(null,l.onerror),l.onload=p.bind(null,l.onload),s&&document.head.appendChild(l)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),r.j=5544,(()=>{var e;r.g.importScripts&&(e=r.g.location+"");var t=r.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");if(n.length)for(var a=n.length-1;a>-1&&!e;)e=n[a--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),r.p=e})(),(()=>{r.b=document.baseURI||self.location.href;var e={5544:0};r.f.j=(t,n)=>{var a=r.o(e,t)?e[t]:void 0;if(0!==a)if(a)n.push(a[2]);else{var o=new Promise(((n,o)=>a=e[t]=[n,o]));n.push(a[2]=o);var i=r.p+r.u(t),l=new Error;r.l(i,(n=>{if(r.o(e,t)&&(0!==(a=e[t])&&(e[t]=void 0),a)){var o=n&&("load"===n.type?"missing":n.type),i=n&&n.target&&n.target.src;l.message="Loading chunk "+t+" failed.\n("+o+": "+i+")",l.name="ChunkLoadError",l.type=o,l.request=i,a[1](l)}}),"chunk-"+t,t)}},r.O.j=t=>0===e[t];var t=(t,n)=>{var a,o,i=n[0],l=n[1],s=n[2],c=0;if(i.some((t=>0!==e[t]))){for(a in l)r.o(l,a)&&(r.m[a]=l[a]);if(s)var d=s(r)}for(t&&t(n);cr(12186)));l=r.O(l)})(); -//# sourceMappingURL=theming-admin-theming.js.map?v=33dec6bd6ac04319e2e0 \ No newline at end of file +(()=>{"use strict";var e,n,a,o={22610:(e,n,a)=>{var o=a(77958),i=a(20144),r=a(43554),l=a(54405),s=a(90580),c=a(9359),d=a(93664),u=a(79753);const p=["color","logo","background","logoheader","favicon","disable-user-theming"],h={emits:["update:theming"],data:()=>({showSuccess:!1,errorMessage:""}),computed:{id(){return`admin-theming-${this.name}`}},methods:{reset(){this.showSuccess=!1,this.errorMessage=""},handleSuccess(){this.showSuccess=!0,setTimeout((()=>{this.showSuccess=!1}),2e3),p.includes(this.name)&&this.$emit("update:theming")}}},m={mixins:[h],watch:{value(e){this.localValue=e}},data(){return{localValue:this.value}},methods:{async save(){this.reset();const e=(0,u.generateUrl)("/apps/theming/ajax/updateStylesheet"),t=!0===this.localValue?"yes":!1===this.localValue?"no":this.localValue;try{await d.Z.post(e,{setting:this.name,value:t}),this.$emit("update:value",this.localValue),this.handleSuccess()}catch(e){this.errorMessage=e.response.data.data?.message}},async undo(){this.reset();const e=(0,u.generateUrl)("/apps/theming/ajax/undoChanges");try{await d.Z.post(e,{setting:this.name}),this.$emit("update:value",this.defaultValue),this.handleSuccess()}catch(e){this.errorMessage=e.response.data.data?.message}}}},g={name:"CheckboxField",components:{NcCheckboxRadioSwitch:c.Z,NcNoteCard:l.Z},mixins:[m],props:{name:{type:String,required:!0},value:{type:Boolean,required:!0},defaultValue:{type:Boolean,required:!0},displayName:{type:String,required:!0},label:{type:String,required:!0},description:{type:String,required:!0}}};var f=a(93379),v=a.n(f),A=a(7795),b=a.n(A),y=a(90569),C=a.n(y),w=a(3565),_=a.n(w),x=a(19216),S=a.n(x),N=a(44589),T=a.n(N),k=a(60515),E={};E.styleTagTransform=T(),E.setAttributes=_(),E.insert=C().bind(null,"head"),E.domAPI=b(),E.insertStyleElement=S(),v()(k.Z,E),k.Z&&k.Z.locals&&k.Z.locals;var D=a(51900);const M=(0,D.Z)(g,(function(){var e=this,t=e._self._c;return t("div",{staticClass:"field"},[t("label",{attrs:{for:e.id}},[e._v(e._s(e.displayName))]),e._v(" "),t("div",{staticClass:"field__row"},[t("NcCheckboxRadioSwitch",{attrs:{type:"switch",id:e.id,checked:e.localValue},on:{"update:checked":[function(t){e.localValue=t},e.save]}},[e._v("\n\t\t\t"+e._s(e.label)+"\n\t\t")])],1),e._v(" "),t("p",{staticClass:"field__description"},[e._v(e._s(e.description))]),e._v(" "),e.errorMessage?t("NcNoteCard",{attrs:{type:"error","show-alert":!0}},[t("p",[e._v(e._s(e.errorMessage))])]):e._e()],1)}),[],!1,null,"c41a3e80",null).exports;var I=a(20296),O=a(29497),P=a(12926);const L={name:"UndoVariantIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},F=(0,D.Z)(L,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon undo-variant-icon",attrs:{"aria-hidden":!e.title,"aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M13.5,7A6.5,6.5 0 0,1 20,13.5A6.5,6.5 0 0,1 13.5,20H10V18H13.5C16,18 18,16 18,13.5C18,11 16,9 13.5,9H7.83L10.91,12.09L9.5,13.5L4,8L9.5,2.5L10.92,3.91L7.83,7H13.5M6,18H8V20H6V18Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports,B={name:"PaletteIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Z=(0,D.Z)(B,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon palette-icon",attrs:{"aria-hidden":!e.title,"aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M17.5,12A1.5,1.5 0 0,1 16,10.5A1.5,1.5 0 0,1 17.5,9A1.5,1.5 0 0,1 19,10.5A1.5,1.5 0 0,1 17.5,12M14.5,8A1.5,1.5 0 0,1 13,6.5A1.5,1.5 0 0,1 14.5,5A1.5,1.5 0 0,1 16,6.5A1.5,1.5 0 0,1 14.5,8M9.5,8A1.5,1.5 0 0,1 8,6.5A1.5,1.5 0 0,1 9.5,5A1.5,1.5 0 0,1 11,6.5A1.5,1.5 0 0,1 9.5,8M6.5,12A1.5,1.5 0 0,1 5,10.5A1.5,1.5 0 0,1 6.5,9A1.5,1.5 0 0,1 8,10.5A1.5,1.5 0 0,1 6.5,12M12,3A9,9 0 0,0 3,12A9,9 0 0,0 12,21A1.5,1.5 0 0,0 13.5,19.5C13.5,19.11 13.35,18.76 13.11,18.5C12.88,18.23 12.73,17.88 12.73,17.5A1.5,1.5 0 0,1 14.23,16H16A5,5 0 0,0 21,11C21,6.58 16.97,3 12,3Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports,j={name:"ColorPickerField",components:{NcButton:O.Z,NcColorPicker:P.N,NcNoteCard:l.Z,Undo:F,Palette:Z},mixins:[m],props:{name:{type:String,required:!0},value:{type:String,required:!0},defaultValue:{type:String,required:!0},displayName:{type:String,required:!0}},methods:{debounceSave:(0,I.debounce)((async function(){await this.save()}),200)}};var U=a(40590),R={};R.styleTagTransform=T(),R.setAttributes=_(),R.insert=C().bind(null,"head"),R.domAPI=b(),R.insertStyleElement=S(),v()(U.Z,R),U.Z&&U.Z.locals&&U.Z.locals;const z=(0,D.Z)(j,(function(){var e=this,t=e._self._c;return t("div",{staticClass:"field"},[t("label",{attrs:{for:e.id}},[e._v(e._s(e.displayName))]),e._v(" "),t("div",{staticClass:"field__row"},[t("NcColorPicker",{attrs:{value:e.localValue,"advanced-fields":!0,"data-admin-theming-setting-primary-color-picker":""},on:{"update:value":[function(t){e.localValue=t},e.debounceSave]}},[t("NcButton",{attrs:{type:"secondary",id:e.id},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Palette",{attrs:{size:20}})]},proxy:!0}])},[e._v("\n\t\t\t\t"+e._s(e.t("theming","Change color"))+"\n\t\t\t")])],1),e._v(" "),t("div",{staticClass:"field__color-preview",attrs:{"data-admin-theming-setting-primary-color":""}}),e._v(" "),e.value!==e.defaultValue?t("NcButton",{attrs:{type:"tertiary","aria-label":e.t("theming","Reset to default"),"data-admin-theming-setting-primary-color-reset":""},on:{click:e.undo},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Undo",{attrs:{size:20}})]},proxy:!0}],null,!1,33666776)}):e._e()],1),e._v(" "),e.errorMessage?t("NcNoteCard",{attrs:{type:"error","show-alert":!0}},[t("p",[e._v(e._s(e.errorMessage))])]):e._e()],1)}),[],!1,null,"25e8f76e",null).exports;var Y=a(87604),V=a(42588),X=a(20508);const{allowedMimeTypes:q}=(0,r.j)("theming","adminThemingParameters",{}),G={name:"FileInputField",components:{Delete:V.Z,NcButton:O.Z,NcLoadingIcon:Y.Z,NcNoteCard:l.Z,Undo:F,Upload:X.Z},mixins:[h],props:{name:{type:String,required:!0},mimeName:{type:String,required:!0},mimeValue:{type:String,required:!0},defaultMimeValue:{type:String,required:!0},displayName:{type:String,required:!0},ariaLabel:{type:String,required:!0}},data(){return{showLoading:!1,acceptMime:(q[this.name]||["image/jpeg","image/png","image/gif","image/webp"]).join(",")}},computed:{showReset(){return this.mimeValue!==this.defaultMimeValue},showRemove(){if("background"===this.name){if(this.mimeValue.startsWith("image/"))return!0;if(this.mimeValue===this.defaultMimeValue)return!0}return!1}},methods:{activateLocalFilePicker(){this.reset(),this.$refs.input.value=null,this.$refs.input.click()},async onChange(e){const t=e.target.files[0],n=new FormData;n.append("key",this.name),n.append("image",t);const a=(0,u.generateUrl)("/apps/theming/ajax/uploadImage");try{this.showLoading=!0,await d.Z.post(a,n),this.showLoading=!1,this.$emit("update:mime-value",t.type),this.handleSuccess()}catch(e){this.showLoading=!1,this.errorMessage=e.response.data.data?.message}},async undo(){this.reset();const e=(0,u.generateUrl)("/apps/theming/ajax/undoChanges");try{await d.Z.post(e,{setting:this.mimeName}),this.$emit("update:mime-value",this.defaultMimeValue),this.handleSuccess()}catch(e){this.errorMessage=e.response.data.data?.message}},async removeBackground(){this.reset();const e=(0,u.generateUrl)("/apps/theming/ajax/updateStylesheet");try{await d.Z.post(e,{setting:this.mimeName,value:"backgroundColor"}),this.$emit("update:mime-value","backgroundColor"),this.handleSuccess()}catch(e){this.errorMessage=e.response.data.data?.message}}}},H=G;var $=a(58800),W={};W.styleTagTransform=T(),W.setAttributes=_(),W.insert=C().bind(null,"head"),W.domAPI=b(),W.insertStyleElement=S(),v()($.Z,W),$.Z&&$.Z.locals&&$.Z.locals;const Q=(0,D.Z)(H,(function(){var e=this,t=e._self._c;return t("div",{staticClass:"field"},[t("label",{attrs:{for:e.id}},[e._v(e._s(e.displayName))]),e._v(" "),t("div",{staticClass:"field__row"},[t("NcButton",{attrs:{type:"secondary",id:e.id,"aria-label":e.ariaLabel,"data-admin-theming-setting-file-picker":""},on:{click:e.activateLocalFilePicker},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Upload",{attrs:{size:20}})]},proxy:!0}])},[e._v("\n\t\t\t"+e._s(e.t("theming","Upload"))+"\n\t\t")]),e._v(" "),e.showReset?t("NcButton",{attrs:{type:"tertiary","aria-label":e.t("theming","Reset to default"),"data-admin-theming-setting-file-reset":""},on:{click:e.undo},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Undo",{attrs:{size:20}})]},proxy:!0}],null,!1,33666776)}):e._e(),e._v(" "),e.showRemove?t("NcButton",{attrs:{type:"tertiary","aria-label":e.t("theming","Remove background image"),"data-admin-theming-setting-file-remove":""},on:{click:e.removeBackground},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Delete",{attrs:{size:20}})]},proxy:!0}],null,!1,2705356561)}):e._e(),e._v(" "),e.showLoading?t("NcLoadingIcon",{staticClass:"field__loading-icon",attrs:{size:20}}):e._e()],1),e._v(" "),"logoheader"!==e.name&&"favicon"!==e.name||e.mimeValue===e.defaultMimeValue?e._e():t("div",{staticClass:"field__preview",class:{"field__preview--logoheader":"logoheader"===e.name,"field__preview--favicon":"favicon"===e.name}}),e._v(" "),e.errorMessage?t("NcNoteCard",{attrs:{type:"error","show-alert":!0}},[t("p",[e._v(e._s(e.errorMessage))])]):e._e(),e._v(" "),t("input",{ref:"input",attrs:{accept:e.acceptMime,type:"file"},on:{change:e.onChange}})],1)}),[],!1,null,"36abeca7",null).exports,J={name:"TextField",components:{NcTextField:a(49368).Z},mixins:[m],props:{name:{type:String,required:!0},value:{type:String,required:!0},defaultValue:{type:String,required:!0},type:{type:String,required:!0},displayName:{type:String,required:!0},placeholder:{type:String,required:!0},maxlength:{type:Number,required:!0}}};var K=a(15587),ee={};ee.styleTagTransform=T(),ee.setAttributes=_(),ee.insert=C().bind(null,"head"),ee.domAPI=b(),ee.insertStyleElement=S(),v()(K.Z,ee),K.Z&&K.Z.locals&&K.Z.locals;const te=(0,D.Z)(J,(function(){var e=this,t=e._self._c;return t("div",{staticClass:"field"},[t("NcTextField",{attrs:{value:e.localValue,label:e.displayName,placeholder:e.placeholder,type:e.type,maxlength:e.maxlength,spellcheck:!1,success:e.showSuccess,error:Boolean(e.errorMessage),"helper-text":e.errorMessage,"show-trailing-button":e.value!==e.defaultValue,"trailing-button-icon":"undo"},on:{"update:value":function(t){e.localValue=t},"trailing-button-click":e.undo,keydown:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.save.apply(null,arguments)},blur:e.save}})],1)}),[],!1,null,"31f08db0",null).exports;var ne=a(64024),ae=a(31352),oe=a(77723),ie=a(9568),re=a(64886);function le(e){return le="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},le(e)}function se(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ce(){return ce=Object.assign||function(e){for(var t=1;t"===t[0]&&(t=t.substring(1)),e)try{if(e.matches)return e.matches(t);if(e.msMatchesSelector)return e.msMatchesSelector(t);if(e.webkitMatchesSelector)return e.webkitMatchesSelector(t)}catch(e){return!1}return!1}}function we(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function _e(e,t,n,a){if(e){n=n||document;do{if(null!=t&&(">"===t[0]?e.parentNode===n&&Ce(e,t):Ce(e,t))||a&&e===n)return e;if(e===n)break}while(e=we(e))}return null}var xe,Se=/\s+/g;function Ne(e,t,n){if(e&&t)if(e.classList)e.classList[n?"add":"remove"](t);else{var a=(" "+e.className+" ").replace(Se," ").replace(" "+t+" "," ");e.className=(a+(n?" "+t:"")).replace(Se," ")}}function Te(e,t,n){var a=e&&e.style;if(a){if(void 0===n)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(e,""):e.currentStyle&&(n=e.currentStyle),void 0===t?n:n[t];t in a||-1!==t.indexOf("webkit")||(t="-webkit-"+t),a[t]=n+("string"==typeof n?"":"px")}}function ke(e,t){var n="";if("string"==typeof e)n=e;else do{var a=Te(e,"transform");a&&"none"!==a&&(n=a+" "+n)}while(!t&&(e=e.parentNode));var o=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return o&&new o(n)}function Ee(e,t,n){if(e){var a=e.getElementsByTagName(t),o=0,i=a.length;if(n)for(;o=i:o<=i))return a;if(a===De())break;a=Be(a,!1)}return!1}function Oe(e,t,n){for(var a=0,o=0,i=e.children;o2&&void 0!==arguments[2]?arguments[2]:{},a=n.evt,o=function(e,t){if(null==e)return{};var n,a,o=function(e,t){if(null==e)return{};var n,a,o={},i=Object.keys(e);for(a=0;a=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(n,["evt"]);Xe.pluginEvent.bind(Zt)(e,t,de({dragEl:He,parentEl:$e,ghostEl:We,rootEl:Qe,nextEl:Je,lastDownEl:Ke,cloneEl:et,cloneHidden:tt,dragStarted:mt,putSortable:lt,activeSortable:Zt.active,originalEvent:a,oldIndex:nt,oldDraggableIndex:ot,newIndex:at,newDraggableIndex:it,hideGhostForTarget:Pt,unhideGhostForTarget:Lt,cloneNowHidden:function(){tt=!0},cloneNowShown:function(){tt=!1},dispatchSortableEvent:function(e){Ge({sortable:t,name:e,originalEvent:a})}},o))};function Ge(e){!function(e){var t=e.sortable,n=e.rootEl,a=e.name,o=e.targetEl,i=e.cloneEl,r=e.toEl,l=e.fromEl,s=e.oldIndex,c=e.newIndex,d=e.oldDraggableIndex,u=e.newDraggableIndex,p=e.originalEvent,h=e.putSortable,m=e.extraEventProperties;if(t=t||n&&n[ze]){var g,f=t.options,v="on"+a.charAt(0).toUpperCase()+a.substr(1);!window.CustomEvent||pe||he?(g=document.createEvent("Event")).initEvent(a,!0,!0):g=new CustomEvent(a,{bubbles:!0,cancelable:!0}),g.to=r||n,g.from=l||n,g.item=o||n,g.clone=i,g.oldIndex=s,g.newIndex=c,g.oldDraggableIndex=d,g.newDraggableIndex=u,g.originalEvent=p,g.pullMode=h?h.lastPutMode:void 0;var A=de({},m,Xe.getEventProperties(a,t));for(var b in A)g[b]=A[b];n&&n.dispatchEvent(g),f[v]&&f[v].call(t,g)}}(de({putSortable:lt,cloneEl:et,targetEl:He,rootEl:Qe,oldIndex:nt,oldDraggableIndex:ot,newIndex:at,newDraggableIndex:it},e))}var He,$e,We,Qe,Je,Ke,et,tt,nt,at,ot,it,rt,lt,st,ct,dt,ut,pt,ht,mt,gt,ft,vt,At,bt=!1,yt=!1,Ct=[],wt=!1,_t=!1,xt=[],St=!1,Nt=[],Tt="undefined"!=typeof document,kt=fe,Et=he||pe?"cssFloat":"float",Dt=Tt&&!ve&&!fe&&"draggable"in document.createElement("div"),Mt=function(){if(Tt){if(pe)return!1;var e=document.createElement("x");return e.style.cssText="pointer-events:auto","auto"===e.style.pointerEvents}}(),It=function(e,t){var n=Te(e),a=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),o=Oe(e,0,t),i=Oe(e,1,t),r=o&&Te(o),l=i&&Te(i),s=r&&parseInt(r.marginLeft)+parseInt(r.marginRight)+Me(o).width,c=l&&parseInt(l.marginLeft)+parseInt(l.marginRight)+Me(i).width;if("flex"===n.display)return"column"===n.flexDirection||"column-reverse"===n.flexDirection?"vertical":"horizontal";if("grid"===n.display)return n.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(o&&r.float&&"none"!==r.float){var d="left"===r.float?"left":"right";return!i||"both"!==l.clear&&l.clear!==d?"horizontal":"vertical"}return o&&("block"===r.display||"flex"===r.display||"table"===r.display||"grid"===r.display||s>=a&&"none"===n[Et]||i&&"none"===n[Et]&&s+c>a)?"vertical":"horizontal"},Ot=function(e){function t(e,n){return function(a,o,i,r){var l=a.options.group.name&&o.options.group.name&&a.options.group.name===o.options.group.name;if(null==e&&(n||l))return!0;if(null==e||!1===e)return!1;if(n&&"clone"===e)return e;if("function"==typeof e)return t(e(a,o,i,r),n)(a,o,i,r);var s=(n?a:o).options.group.name;return!0===e||"string"==typeof e&&e===s||e.join&&e.indexOf(s)>-1}}var n={},a=e.group;a&&"object"==le(a)||(a={name:a}),n.name=a.name,n.checkPull=t(a.pull,!0),n.checkPut=t(a.put),n.revertClone=a.revertClone,e.group=n},Pt=function(){!Mt&&We&&Te(We,"display","none")},Lt=function(){!Mt&&We&&Te(We,"display","")};Tt&&document.addEventListener("click",(function(e){if(yt)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),yt=!1,!1}),!0);var Ft=function(e){if(He){e=e.touches?e.touches[0]:e;var t=(o=e.clientX,i=e.clientY,Ct.some((function(e){if(!Pe(e)){var t=Me(e),n=e[ze].options.emptyInsertThreshold,a=o>=t.left-n&&o<=t.right+n,l=i>=t.top-n&&i<=t.bottom+n;return n&&a&&l?r=e:void 0}})),r);if(t){var n={};for(var a in e)e.hasOwnProperty(a)&&(n[a]=e[a]);n.target=n.rootEl=t,n.preventDefault=void 0,n.stopPropagation=void 0,t[ze]._onDragOver(n)}}var o,i,r},Bt=function(e){He&&He.parentNode[ze]._isOutsideThisEl(e.target)};function Zt(e,t){if(!e||!e.nodeType||1!==e.nodeType)throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(e));this.el=e,this.options=t=ce({},t),e[ze]=this;var n,a,o={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(e.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return It(e,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(e,t){e.setData("Text",t.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:!1!==Zt.supportPointer&&"PointerEvent"in window,emptyInsertThreshold:5};for(var i in Xe.initializePlugins(this,e,o),o)!(i in t)&&(t[i]=o[i]);for(var r in Ot(t),this)"_"===r.charAt(0)&&"function"==typeof this[r]&&(this[r]=this[r].bind(this));this.nativeDraggable=!t.forceFallback&&Dt,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?be(e,"pointerdown",this._onTapStart):(be(e,"mousedown",this._onTapStart),be(e,"touchstart",this._onTapStart)),this.nativeDraggable&&(be(e,"dragover",this),be(e,"dragenter",this)),Ct.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),ce(this,(a=[],{captureAnimationState:function(){a=[],this.options.animation&&[].slice.call(this.el.children).forEach((function(e){if("none"!==Te(e,"display")&&e!==Zt.ghost){a.push({target:e,rect:Me(e)});var t=de({},a[a.length-1].rect);if(e.thisAnimationDuration){var n=ke(e,!0);n&&(t.top-=n.f,t.left-=n.e)}e.fromRect=t}}))},addAnimationState:function(e){a.push(e)},removeAnimationState:function(e){a.splice(function(e,t){for(var n in e)if(e.hasOwnProperty(n))for(var a in t)if(t.hasOwnProperty(a)&&t[a]===e[n][a])return Number(n);return-1}(a,{target:e}),1)},animateAll:function(e){var t=this;if(!this.options.animation)return clearTimeout(n),void("function"==typeof e&&e());var o=!1,i=0;a.forEach((function(e){var n=0,a=e.target,r=a.fromRect,l=Me(a),s=a.prevFromRect,c=a.prevToRect,d=e.rect,u=ke(a,!0);u&&(l.top-=u.f,l.left-=u.e),a.toRect=l,a.thisAnimationDuration&&Ze(s,l)&&!Ze(r,l)&&(d.top-l.top)/(d.left-l.left)==(r.top-l.top)/(r.left-l.left)&&(n=function(e,t,n,a){return Math.sqrt(Math.pow(t.top-e.top,2)+Math.pow(t.left-e.left,2))/Math.sqrt(Math.pow(t.top-n.top,2)+Math.pow(t.left-n.left,2))*a.animation}(d,s,c,t.options)),Ze(l,r)||(a.prevFromRect=r,a.prevToRect=l,n||(n=t.options.animation),t.animate(a,d,l,n)),n&&(o=!0,i=Math.max(i,n),clearTimeout(a.animationResetTimer),a.animationResetTimer=setTimeout((function(){a.animationTime=0,a.prevFromRect=null,a.fromRect=null,a.prevToRect=null,a.thisAnimationDuration=null}),n),a.thisAnimationDuration=n)})),clearTimeout(n),o?n=setTimeout((function(){"function"==typeof e&&e()}),i):"function"==typeof e&&e(),a=[]},animate:function(e,t,n,a){if(a){Te(e,"transition",""),Te(e,"transform","");var o=ke(this.el),i=o&&o.a,r=o&&o.d,l=(t.left-n.left)/(i||1),s=(t.top-n.top)/(r||1);e.animatingX=!!l,e.animatingY=!!s,Te(e,"transform","translate3d("+l+"px,"+s+"px,0)"),function(e){e.offsetWidth}(e),Te(e,"transition","transform "+a+"ms"+(this.options.easing?" "+this.options.easing:"")),Te(e,"transform","translate3d(0,0,0)"),"number"==typeof e.animated&&clearTimeout(e.animated),e.animated=setTimeout((function(){Te(e,"transition",""),Te(e,"transform",""),e.animated=!1,e.animatingX=!1,e.animatingY=!1}),a)}}}))}function jt(e,t,n,a,o,i,r,l){var s,c,d=e[ze],u=d.options.onMove;return!window.CustomEvent||pe||he?(s=document.createEvent("Event")).initEvent("move",!0,!0):s=new CustomEvent("move",{bubbles:!0,cancelable:!0}),s.to=t,s.from=e,s.dragged=n,s.draggedRect=a,s.related=o||t,s.relatedRect=i||Me(t),s.willInsertAfter=l,s.originalEvent=r,e.dispatchEvent(s),u&&(c=u.call(d,s,r)),c}function Ut(e){e.draggable=!1}function Rt(){St=!1}function zt(e){for(var t=e.tagName+e.className+e.src+e.href+e.textContent,n=t.length,a=0;n--;)a+=t.charCodeAt(n);return a.toString(36)}function Yt(e){return setTimeout(e,0)}function Vt(e){return clearTimeout(e)}Zt.prototype={constructor:Zt,_isOutsideThisEl:function(e){this.el.contains(e)||e===this.el||(gt=null)},_getDirection:function(e,t){return"function"==typeof this.options.direction?this.options.direction.call(this,e,t,He):this.options.direction},_onTapStart:function(e){if(e.cancelable){var t=this,n=this.el,a=this.options,o=a.preventOnFilter,i=e.type,r=e.touches&&e.touches[0]||e.pointerType&&"touch"===e.pointerType&&e,l=(r||e).target,s=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||l,c=a.filter;if(function(e){Nt.length=0;for(var t=e.getElementsByTagName("input"),n=t.length;n--;){var a=t[n];a.checked&&Nt.push(a)}}(n),!He&&!(/mousedown|pointerdown/.test(i)&&0!==e.button||a.disabled||s.isContentEditable||(l=_e(l,a.draggable,n,!1))&&l.animated||Ke===l)){if(nt=Le(l),ot=Le(l,a.draggable),"function"==typeof c){if(c.call(this,e,l,this))return Ge({sortable:t,rootEl:s,name:"filter",targetEl:l,toEl:n,fromEl:n}),qe("filter",t,{evt:e}),void(o&&e.cancelable&&e.preventDefault())}else if(c&&(c=c.split(",").some((function(a){if(a=_e(s,a.trim(),n,!1))return Ge({sortable:t,rootEl:a,name:"filter",targetEl:l,fromEl:n,toEl:n}),qe("filter",t,{evt:e}),!0}))))return void(o&&e.cancelable&&e.preventDefault());a.handle&&!_e(s,a.handle,n,!1)||this._prepareDragStart(e,r,l)}}},_prepareDragStart:function(e,t,n){var a,o=this,i=o.el,r=o.options,l=i.ownerDocument;if(n&&!He&&n.parentNode===i){var s=Me(n);if(Qe=i,$e=(He=n).parentNode,Je=He.nextSibling,Ke=n,rt=r.group,Zt.dragged=He,st={target:He,clientX:(t||e).clientX,clientY:(t||e).clientY},pt=st.clientX-s.left,ht=st.clientY-s.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,He.style["will-change"]="all",a=function(){qe("delayEnded",o,{evt:e}),Zt.eventCanceled?o._onDrop():(o._disableDelayedDragEvents(),!me&&o.nativeDraggable&&(He.draggable=!0),o._triggerDragStart(e,t),Ge({sortable:o,name:"choose",originalEvent:e}),Ne(He,r.chosenClass,!0))},r.ignore.split(",").forEach((function(e){Ee(He,e.trim(),Ut)})),be(l,"dragover",Ft),be(l,"mousemove",Ft),be(l,"touchmove",Ft),be(l,"mouseup",o._onDrop),be(l,"touchend",o._onDrop),be(l,"touchcancel",o._onDrop),me&&this.nativeDraggable&&(this.options.touchStartThreshold=4,He.draggable=!0),qe("delayStart",this,{evt:e}),!r.delay||r.delayOnTouchOnly&&!t||this.nativeDraggable&&(he||pe))a();else{if(Zt.eventCanceled)return void this._onDrop();be(l,"mouseup",o._disableDelayedDrag),be(l,"touchend",o._disableDelayedDrag),be(l,"touchcancel",o._disableDelayedDrag),be(l,"mousemove",o._delayedDragTouchMoveHandler),be(l,"touchmove",o._delayedDragTouchMoveHandler),r.supportPointer&&be(l,"pointermove",o._delayedDragTouchMoveHandler),o._dragStartTimer=setTimeout(a,r.delay)}}},_delayedDragTouchMoveHandler:function(e){var t=e.touches?e.touches[0]:e;Math.max(Math.abs(t.clientX-this._lastX),Math.abs(t.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){He&&Ut(He),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;ye(e,"mouseup",this._disableDelayedDrag),ye(e,"touchend",this._disableDelayedDrag),ye(e,"touchcancel",this._disableDelayedDrag),ye(e,"mousemove",this._delayedDragTouchMoveHandler),ye(e,"touchmove",this._delayedDragTouchMoveHandler),ye(e,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t=t||"touch"==e.pointerType&&e,!this.nativeDraggable||t?this.options.supportPointer?be(document,"pointermove",this._onTouchMove):be(document,t?"touchmove":"mousemove",this._onTouchMove):(be(He,"dragend",this),be(Qe,"dragstart",this._onDragStart));try{document.selection?Yt((function(){document.selection.empty()})):window.getSelection().removeAllRanges()}catch(e){}},_dragStarted:function(e,t){if(bt=!1,Qe&&He){qe("dragStarted",this,{evt:t}),this.nativeDraggable&&be(document,"dragover",Bt);var n=this.options;!e&&Ne(He,n.dragClass,!1),Ne(He,n.ghostClass,!0),Zt.active=this,e&&this._appendGhost(),Ge({sortable:this,name:"start",originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(ct){this._lastX=ct.clientX,this._lastY=ct.clientY,Pt();for(var e=document.elementFromPoint(ct.clientX,ct.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(ct.clientX,ct.clientY))!==t;)t=e;if(He.parentNode[ze]._isOutsideThisEl(e),t)do{if(t[ze]&&t[ze]._onDragOver({clientX:ct.clientX,clientY:ct.clientY,target:e,rootEl:t})&&!this.options.dragoverBubble)break;e=t}while(t=t.parentNode);Lt()}},_onTouchMove:function(e){if(st){var t=this.options,n=t.fallbackTolerance,a=t.fallbackOffset,o=e.touches?e.touches[0]:e,i=We&&ke(We,!0),r=We&&i&&i.a,l=We&&i&&i.d,s=kt&&At&&Fe(At),c=(o.clientX-st.clientX+a.x)/(r||1)+(s?s[0]-xt[0]:0)/(r||1),d=(o.clientY-st.clientY+a.y)/(l||1)+(s?s[1]-xt[1]:0)/(l||1);if(!Zt.active&&!bt){if(n&&Math.max(Math.abs(o.clientX-this._lastX),Math.abs(o.clientY-this._lastY))a.right+10||e.clientX<=a.right&&e.clientY>a.bottom&&e.clientX>=a.left:e.clientX>a.right&&e.clientY>a.top||e.clientX<=a.right&&e.clientY>a.bottom+10}(e,o,this)&&!g.animated){if(g===He)return D(!1);if(g&&i===e.target&&(r=g),r&&(n=Me(r)),!1!==jt(Qe,i,He,t,r,n,e,!!r))return E(),i.appendChild(He),$e=i,M(),D(!0)}else if(r.parentNode===i){n=Me(r);var f,v,A,b=He.parentNode!==i,y=!function(e,t,n){var a=n?e.left:e.top,o=n?e.right:e.bottom,i=n?e.width:e.height,r=n?t.left:t.top,l=n?t.right:t.bottom,s=n?t.width:t.height;return a===r||o===l||a+i/2===r+s/2}(He.animated&&He.toRect||t,r.animated&&r.toRect||n,o),C=o?"top":"left",w=Ie(r,"top","top")||Ie(He,"top","top"),_=w?w.scrollTop:void 0;if(gt!==r&&(v=n[C],wt=!1,_t=!y&&l.invertSwap||b),f=function(e,t,n,a,o,i,r,l){var s=a?e.clientY:e.clientX,c=a?n.height:n.width,d=a?n.top:n.left,u=a?n.bottom:n.right,p=!1;if(!r)if(l&&vtd+c*i/2:su-vt)return-ft}else if(s>d+c*(1-o)/2&&su-c*i/2)?s>d+c/2?1:-1:0}(e,r,n,o,y?1:l.swapThreshold,null==l.invertedSwapThreshold?l.swapThreshold:l.invertedSwapThreshold,_t,gt===r),0!==f){var x=Le(He);do{x-=f,A=$e.children[x]}while(A&&("none"===Te(A,"display")||A===We))}if(0===f||A===r)return D(!1);gt=r,ft=f;var S=r.nextElementSibling,N=!1,T=jt(Qe,i,He,t,r,n,e,N=1===f);if(!1!==T)return 1!==T&&-1!==T||(N=1===T),St=!0,setTimeout(Rt,30),E(),N&&!S?i.appendChild(He):r.parentNode.insertBefore(He,N?S:r),w&&Ue(w,0,_-w.scrollTop),$e=He.parentNode,void 0===v||_t||(vt=Math.abs(v-Me(r)[C])),M(),D(!0)}if(i.contains(He))return D(!1)}return!1}function k(l,s){qe(l,h,de({evt:e,isOwner:d,axis:o?"vertical":"horizontal",revert:a,dragRect:t,targetRect:n,canSort:u,fromSortable:p,target:r,completed:D,onMove:function(n,a){return jt(Qe,i,He,t,n,Me(n),e,a)},changed:M},s))}function E(){k("dragOverAnimationCapture"),h.captureAnimationState(),h!==p&&p.captureAnimationState()}function D(t){return k("dragOverCompleted",{insertion:t}),t&&(d?c._hideClone():c._showClone(h),h!==p&&(Ne(He,lt?lt.options.ghostClass:c.options.ghostClass,!1),Ne(He,l.ghostClass,!0)),lt!==h&&h!==Zt.active?lt=h:h===Zt.active&<&&(lt=null),p===h&&(h._ignoreWhileAnimating=r),h.animateAll((function(){k("dragOverAnimationComplete"),h._ignoreWhileAnimating=null})),h!==p&&(p.animateAll(),p._ignoreWhileAnimating=null)),(r===He&&!He.animated||r===i&&!r.animated)&&(gt=null),l.dragoverBubble||e.rootEl||r===document||(He.parentNode[ze]._isOutsideThisEl(e.target),!t&&Ft(e)),!l.dragoverBubble&&e.stopPropagation&&e.stopPropagation(),m=!0}function M(){at=Le(He),it=Le(He,l.draggable),Ge({sortable:h,name:"change",toEl:i,newIndex:at,newDraggableIndex:it,originalEvent:e})}},_ignoreWhileAnimating:null,_offMoveEvents:function(){ye(document,"mousemove",this._onTouchMove),ye(document,"touchmove",this._onTouchMove),ye(document,"pointermove",this._onTouchMove),ye(document,"dragover",Ft),ye(document,"mousemove",Ft),ye(document,"touchmove",Ft)},_offUpEvents:function(){var e=this.el.ownerDocument;ye(e,"mouseup",this._onDrop),ye(e,"touchend",this._onDrop),ye(e,"pointerup",this._onDrop),ye(e,"touchcancel",this._onDrop),ye(document,"selectstart",this)},_onDrop:function(e){var t=this.el,n=this.options;at=Le(He),it=Le(He,n.draggable),qe("drop",this,{evt:e}),$e=He&&He.parentNode,at=Le(He),it=Le(He,n.draggable),Zt.eventCanceled||(bt=!1,_t=!1,wt=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),Vt(this.cloneId),Vt(this._dragStartId),this.nativeDraggable&&(ye(document,"drop",this),ye(t,"dragstart",this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),ge&&Te(document.body,"user-select",""),Te(He,"transform",""),e&&(mt&&(e.cancelable&&e.preventDefault(),!n.dropBubble&&e.stopPropagation()),We&&We.parentNode&&We.parentNode.removeChild(We),(Qe===$e||lt&&"clone"!==lt.lastPutMode)&&et&&et.parentNode&&et.parentNode.removeChild(et),He&&(this.nativeDraggable&&ye(He,"dragend",this),Ut(He),He.style["will-change"]="",mt&&!bt&&Ne(He,lt?lt.options.ghostClass:this.options.ghostClass,!1),Ne(He,this.options.chosenClass,!1),Ge({sortable:this,name:"unchoose",toEl:$e,newIndex:null,newDraggableIndex:null,originalEvent:e}),Qe!==$e?(at>=0&&(Ge({rootEl:$e,name:"add",toEl:$e,fromEl:Qe,originalEvent:e}),Ge({sortable:this,name:"remove",toEl:$e,originalEvent:e}),Ge({rootEl:$e,name:"sort",toEl:$e,fromEl:Qe,originalEvent:e}),Ge({sortable:this,name:"sort",toEl:$e,originalEvent:e})),lt&<.save()):at!==nt&&at>=0&&(Ge({sortable:this,name:"update",toEl:$e,originalEvent:e}),Ge({sortable:this,name:"sort",toEl:$e,originalEvent:e})),Zt.active&&(null!=at&&-1!==at||(at=nt,it=ot),Ge({sortable:this,name:"end",toEl:$e,originalEvent:e}),this.save())))),this._nulling()},_nulling:function(){qe("nulling",this),Qe=He=$e=We=Je=et=Ke=tt=st=ct=mt=at=it=nt=ot=gt=ft=lt=rt=Zt.dragged=Zt.ghost=Zt.clone=Zt.active=null,Nt.forEach((function(e){e.checked=!0})),Nt.length=dt=ut=0},handleEvent:function(e){switch(e.type){case"drop":case"dragend":this._onDrop(e);break;case"dragenter":case"dragover":He&&(this._onDragOver(e),function(e){e.dataTransfer&&(e.dataTransfer.dropEffect="move"),e.cancelable&&e.preventDefault()}(e));break;case"selectstart":e.preventDefault()}},toArray:function(){for(var e,t=[],n=this.el.children,a=0,o=n.length,i=this.options;a!0,"move:down":()=>!0,"update:focus":()=>!0},setup(e,t){let{emit:n}=t;const a=(0,i.ref)(),o=(0,i.ref)();let r=0;return{buttonUp:a,buttonDown:o,moveUp:()=>{n("move:up"),r=1},moveDown:()=>{n("move:down"),r=-1},keepFocus:()=>{0!==r&&(1!==r&&!e.isLast||e.isFirst?(0,i.nextTick)((()=>o.value.$el.focus())):(0,i.nextTick)((()=>a.value.$el.focus()))),r=0},t:ae.Iu}}});var un=a(40773),pn={};pn.styleTagTransform=T(),pn.setAttributes=_(),pn.insert=C().bind(null,"head"),pn.domAPI=b(),pn.insertStyleElement=S(),v()(un.Z,pn),un.Z&&un.Z.locals&&un.Z.locals;const hn=(0,D.Z)(dn,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("li",{class:{"order-selector-element":!0,"order-selector-element--disabled":e.app.default},attrs:{"data-cy-app-order-element":e.app.id},on:{focusin:function(t){return e.$emit("update:focus")}}},[t("svg",{attrs:{width:"20",height:"20",viewBox:"0 0 20 20",role:"presentation"}},[t("image",{staticClass:"order-selector-element__icon",attrs:{preserveAspectRatio:"xMinYMin meet",x:"0",y:"0",width:"20",height:"20","xlink:href":e.app.icon}})]),e._v(" "),t("div",{staticClass:"order-selector-element__label"},[e._v("\n\t\t"+e._s(e.app.label??e.app.id)+"\n\t")]),e._v(" "),t("div",{staticClass:"order-selector-element__actions"},[t("NcButton",{directives:[{name:"show",rawName:"v-show",value:!e.isFirst&&!e.app.default,expression:"!isFirst && !app.default"}],ref:"buttonUp",attrs:{"aria-label":e.t("settings","Move up"),"aria-describedby":e.ariaDescribedby,"aria-details":e.ariaDetails,"data-cy-app-order-button":"up",type:"tertiary-no-background"},on:{click:e.moveUp},scopedSlots:e._u([{key:"icon",fn:function(){return[t("IconArrowUp",{attrs:{size:20}})]},proxy:!0}])}),e._v(" "),t("div",{directives:[{name:"show",rawName:"v-show",value:e.isFirst||!!e.app.default,expression:"isFirst || !!app.default"}],staticClass:"order-selector-element__placeholder",attrs:{"aria-hidden":"true"}}),e._v(" "),t("NcButton",{directives:[{name:"show",rawName:"v-show",value:!e.isLast&&!e.app.default,expression:"!isLast && !app.default"}],ref:"buttonDown",attrs:{"aria-label":e.t("settings","Move down"),"aria-describedby":e.ariaDescribedby,"aria-details":e.ariaDetails,"data-cy-app-order-button":"down",type:"tertiary-no-background"},on:{click:e.moveDown},scopedSlots:e._u([{key:"icon",fn:function(){return[t("IconArrowDown",{attrs:{size:20}})]},proxy:!0}])}),e._v(" "),t("div",{directives:[{name:"show",rawName:"v-show",value:e.isLast||!!e.app.default,expression:"isLast || !!app.default"}],staticClass:"order-selector-element__placeholder",attrs:{"aria-hidden":"true"}})],1)])}),[],!1,null,"081ebc45",null).exports,mn=(0,i.defineComponent)({name:"AppOrderSelector",components:{AppOrderSelectorElement:hn,Fragment:ln.Fragment},props:{ariaDetails:{type:String,default:null},value:{type:Array,required:!0}},emits:{"update:value":e=>Array.isArray(e)},setup(e,t){let{emit:n}=t;const a=(0,i.ref)(null),o=(0,i.computed)({get:()=>e.value,set:t=>{const a=[...t].sort(((e,n)=>(n.default?1:0)-(e.default?1:0)||t.indexOf(e)-t.indexOf(n)));a.some(((t,n)=>{let{id:a}=t;return a!==e.value[n].id}))?n("update:value",a):r.value+=1}}),r=(0,i.ref)(0);!function(e,t,n={}){let a;const{document:o=ie.Td$,...r}=n,l={onUpdate:e=>{!function(e,t,n){const a=(0,i.isRef)(e),o=a?[...(0,re.Tn)(e)]:(0,re.Tn)(e);if(n>=0&&n{o.splice(n,0,r),a&&(e.value=o)}))}}(t,e.oldIndex,e.newIndex)}},s=()=>{const t="string"==typeof e?null==o?void 0:o.querySelector(e):(0,ie.NXq)(e);t&&void 0===a&&(a=new rn(t,{...l,...r}))},c=()=>{null==a||a.destroy(),a=void 0};(0,re.u7)(s),(0,re.IY)(c)}(a,o,{filter:".order-selector-element--disabled"});const l=(0,i.ref)([]);(0,i.onUpdated)((()=>{l.value.forEach((e=>e.keepFocus()))}));const s=(0,i.ref)("");return{appList:o,listElement:a,moveDown:t=>{const a=t>0?e.value.slice(0,t):[];a.push(e.value[t+1]);const o=t{const a=t>1?e.value.slice(0,t-1):[];if(e.value[t-1]?.default)return;const o=[e.value[t-1]];t{s.value=(0,ae.Iu)("theming","Current selected app: {app}, position {position} of {total}",{app:e.value[t].label,position:t+1,total:e.value.length})},renderCount:r,selectorElements:l}}}),gn=mn;var fn=a(37049),vn={};vn.styleTagTransform=T(),vn.setAttributes=_(),vn.insert=C().bind(null,"head"),vn.domAPI=b(),vn.insertStyleElement=S(),v()(fn.Z,vn),fn.Z&&fn.Z.locals&&fn.Z.locals;var An=(0,D.Z)(gn,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("Fragment",[t("div",{staticClass:"hidden-visually",attrs:{id:e.statusInfoId,"aria-live":"polite",role:"status"}},[e._v("\n\t\t"+e._s(e.statusInfo)+"\n\t")]),e._v(" "),t("ol",{ref:"listElement",staticClass:"order-selector",attrs:{"data-cy-app-order":""}},e._l(e.appList,(function(n,a){return t("AppOrderSelectorElement",e._g({key:`${n.id}${e.renderCount}`,ref:"selectorElements",refInFor:!0,attrs:{app:n,"aria-details":e.ariaDetails,"aria-describedby":e.statusInfoId,"is-first":0===a||!!e.appList[a-1].default,"is-last":a===e.value.length-1}},n.default?{}:{"move:up":()=>e.moveUp(a),"move:down":()=>e.moveDown(a),"update:focus":()=>e.updateStatusInfo(a)}))})),1)])}),[],!1,null,"35797e31",null);const bn=An.exports,yn=(0,i.defineComponent)({name:"AppMenuSection",components:{AppOrderSelector:bn,NcCheckboxRadioSwitch:c.Z,NcSelect:oe.Z,NcSettingsSection:s.Z},props:{defaultApps:{type:Array,required:!0}},emits:{"update:defaultApps":e=>Array.isArray(e)&&e.every((e=>"string"==typeof e))},setup(e,t){let{emit:n}=t;const a=(0,i.computed)({get:()=>e.defaultApps.length>0,set:e=>{e?n("update:defaultApps",["dashboard","files"]):l.value=[]}}),o=Object.values((0,r.j)("core","apps")).map((e=>{let{id:t,name:n,icon:a}=e;return{label:n,id:t,icon:a}})),l=(0,i.computed)({get:()=>e.defaultApps.map((e=>o.filter((t=>t.id===e))[0])),set(e){s("defaultApps",e.map((e=>e.id))).then((()=>n("update:defaultApps",e.map((e=>e.id))))).catch((()=>(0,ne.x2)((0,ae.Iu)("theming","Could not set global default apps"))))}}),s=async(e,t)=>{const n=(0,u.generateUrl)("/apps/theming/ajax/updateAppMenu");return await d.Z.put(n,{setting:e,value:t})};return{allApps:o,selectedApps:l,hasCustomDefaultApp:a,t:ae.Iu}}}),Cn=yn;var wn=a(3640),_n={};_n.styleTagTransform=T(),_n.setAttributes=_(),_n.insert=C().bind(null,"head"),_n.domAPI=b(),_n.insertStyleElement=S(),v()(wn.Z,_n),wn.Z&&wn.Z.locals&&wn.Z.locals;const xn=(0,D.Z)(Cn,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("NcSettingsSection",{attrs:{name:e.t("theming","Navigation bar settings")}},[t("h3",[e._v(e._s(e.t("theming","Default app")))]),e._v(" "),t("p",{staticClass:"info-note"},[e._v("\n\t\t"+e._s(e.t("theming","The default app is the app that is e.g. opened after login or when the logo in the menu is clicked."))+"\n\t")]),e._v(" "),t("NcCheckboxRadioSwitch",{attrs:{checked:e.hasCustomDefaultApp,type:"switch","data-cy-switch-default-app":""},on:{"update:checked":function(t){e.hasCustomDefaultApp=t}}},[e._v("\n\t\t"+e._s(e.t("theming","Use custom default app"))+"\n\t")]),e._v(" "),e.hasCustomDefaultApp?[t("h4",[e._v(e._s(e.t("theming","Global default app")))]),e._v(" "),t("NcSelect",{attrs:{"close-on-select":!1,placeholder:e.t("theming","Global default apps"),options:e.allApps,multiple:!0},model:{value:e.selectedApps,callback:function(t){e.selectedApps=t},expression:"selectedApps"}}),e._v(" "),t("h5",[e._v(e._s(e.t("theming","Default app priority")))]),e._v(" "),t("p",{staticClass:"info-note"},[e._v("\n\t\t\t"+e._s(e.t("theming","If an app is not enabled for a user, the next app with lower priority is used."))+"\n\t\t")]),e._v(" "),t("AppOrderSelector",{attrs:{value:e.selectedApps},on:{"update:value":function(t){e.selectedApps=t}}})]:e._e()],2)}),[],!1,null,"90f2e098",null).exports,{backgroundMime:Sn,canThemeIcons:Nn,color:Tn,docUrl:kn,docUrlIcons:En,faviconMime:Dn,isThemable:Mn,legalNoticeUrl:In,logoheaderMime:On,logoMime:Pn,name:Ln,notThemableErrorMessage:Fn,privacyPolicyUrl:Bn,slogan:Zn,url:jn,userThemingDisabled:Un,defaultApps:Rn}=(0,r.j)("theming","adminThemingParameters"),zn=[{name:"name",value:Ln,defaultValue:"Nextcloud",type:"text",displayName:t("theming","Name"),placeholder:t("theming","Name"),maxlength:250},{name:"url",value:jn,defaultValue:"https://nextcloud.com",type:"url",displayName:t("theming","Web link"),placeholder:"https://…",maxlength:500},{name:"slogan",value:Zn,defaultValue:t("theming","a safe home for all your data"),type:"text",displayName:t("theming","Slogan"),placeholder:t("theming","Slogan"),maxlength:500}],Yn={name:"color",value:Tn,defaultValue:"#0082c9",displayName:t("theming","Color")},Vn=[{name:"logo",mimeName:"logoMime",mimeValue:Pn,defaultMimeValue:"",displayName:t("theming","Logo"),ariaLabel:t("theming","Upload new logo")},{name:"background",mimeName:"backgroundMime",mimeValue:Sn,defaultMimeValue:"",displayName:t("theming","Background and login image"),ariaLabel:t("theming","Upload new background and login image")}],Xn=[{name:"imprintUrl",value:In,defaultValue:"",type:"url",displayName:t("theming","Legal notice link"),placeholder:"https://…",maxlength:500},{name:"privacyUrl",value:Bn,defaultValue:"",type:"url",displayName:t("theming","Privacy policy link"),placeholder:"https://…",maxlength:500}],qn=[{name:"logoheader",mimeName:"logoheaderMime",mimeValue:On,defaultMimeValue:"",displayName:t("theming","Header logo"),ariaLabel:t("theming","Upload new header logo")},{name:"favicon",mimeName:"faviconMime",mimeValue:Dn,defaultMimeValue:"",displayName:t("theming","Favicon"),ariaLabel:t("theming","Upload new favicon")}],Gn={name:"disable-user-theming",value:Un,defaultValue:!1,displayName:t("theming","User settings"),label:t("theming","Disable user theming"),description:t("theming","Although you can select and customize your instance, users can change their background and colors. If you want to enforce your customization, you can toggle this on.")},Hn={name:"AdminTheming",components:{AppMenuSection:xn,CheckboxField:M,ColorPickerField:z,FileInputField:Q,NcNoteCard:l.Z,NcSettingsSection:s.Z,TextField:te},emits:["update:theming"],textFields:zn,data:()=>({textFields:zn,colorPickerField:Yn,fileInputFields:Vn,advancedTextFields:Xn,advancedFileInputFields:qn,userThemingField:Gn,defaultApps:Rn,canThemeIcons:Nn,docUrl:kn,docUrlIcons:En,isThemable:Mn,notThemableErrorMessage:Fn})};var $n=a(36568),Wn={};Wn.styleTagTransform=T(),Wn.setAttributes=_(),Wn.insert=C().bind(null,"head"),Wn.domAPI=b(),Wn.insertStyleElement=S(),v()($n.Z,Wn),$n.Z&&$n.Z.locals&&$n.Z.locals;const Qn=(0,D.Z)(Hn,(function(){var e=this,t=e._self._c;return t("section",[t("NcSettingsSection",{attrs:{name:e.t("theming","Theming"),description:e.t("theming","Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users."),"doc-url":e.docUrl,"data-admin-theming-settings":""}},[t("div",{staticClass:"admin-theming"},[e.isThemable?e._e():t("NcNoteCard",{attrs:{type:"error","show-alert":!0}},[t("p",[e._v(e._s(e.notThemableErrorMessage))])]),e._v(" "),e._l(e.textFields,(function(n){return t("TextField",{key:n.name,attrs:{"data-admin-theming-setting-field":n.name,"default-value":n.defaultValue,"display-name":n.displayName,maxlength:n.maxlength,name:n.name,placeholder:n.placeholder,type:n.type,value:n.value},on:{"update:value":function(t){return e.$set(n,"value",t)},"update:theming":function(t){return e.$emit("update:theming")}}})})),e._v(" "),t("ColorPickerField",{attrs:{name:e.colorPickerField.name,"default-value":e.colorPickerField.defaultValue,"display-name":e.colorPickerField.displayName,value:e.colorPickerField.value},on:{"update:value":function(t){return e.$set(e.colorPickerField,"value",t)},"update:theming":function(t){return e.$emit("update:theming")}}}),e._v(" "),e._l(e.fileInputFields,(function(n){return t("FileInputField",{key:n.name,attrs:{"aria-label":n.ariaLabel,"data-admin-theming-setting-file":n.name,"default-mime-value":n.defaultMimeValue,"display-name":n.displayName,"mime-name":n.mimeName,"mime-value":n.mimeValue,name:n.name},on:{"update:mimeValue":function(t){return e.$set(n,"mimeValue",t)},"update:mime-value":function(t){return e.$set(n,"mimeValue",t)},"update:theming":function(t){return e.$emit("update:theming")}}})})),e._v(" "),t("div",{staticClass:"admin-theming__preview",attrs:{"data-admin-theming-preview":""}},[t("div",{staticClass:"admin-theming__preview-logo",attrs:{"data-admin-theming-preview-logo":""}})])],2)]),e._v(" "),t("NcSettingsSection",{attrs:{name:e.t("theming","Advanced options")}},[t("div",{staticClass:"admin-theming-advanced"},[e._l(e.advancedTextFields,(function(n){return t("TextField",{key:n.name,attrs:{name:n.name,value:n.value,"default-value":n.defaultValue,type:n.type,"display-name":n.displayName,placeholder:n.placeholder,maxlength:n.maxlength},on:{"update:value":function(t){return e.$set(n,"value",t)},"update:theming":function(t){return e.$emit("update:theming")}}})})),e._v(" "),e._l(e.advancedFileInputFields,(function(n){return t("FileInputField",{key:n.name,attrs:{name:n.name,"mime-name":n.mimeName,"mime-value":n.mimeValue,"default-mime-value":n.defaultMimeValue,"display-name":n.displayName,"aria-label":n.ariaLabel},on:{"update:mimeValue":function(t){return e.$set(n,"mimeValue",t)},"update:mime-value":function(t){return e.$set(n,"mimeValue",t)},"update:theming":function(t){return e.$emit("update:theming")}}})})),e._v(" "),t("CheckboxField",{attrs:{name:e.userThemingField.name,value:e.userThemingField.value,"default-value":e.userThemingField.defaultValue,"display-name":e.userThemingField.displayName,label:e.userThemingField.label,description:e.userThemingField.description,"data-admin-theming-setting-disable-user-theming":""},on:{"update:theming":function(t){return e.$emit("update:theming")}}}),e._v(" "),e.canThemeIcons?e._e():t("a",{attrs:{href:e.docUrlIcons,rel:"noreferrer noopener"}},[t("em",[e._v(e._s(e.t("theming","Install the ImageMagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color.")))])])],2)]),e._v(" "),t("AppMenuSection",{attrs:{"default-apps":e.defaultApps},on:{"update:defaultApps":function(t){e.defaultApps=t},"update:default-apps":function(t){e.defaultApps=t}}})],1)}),[],!1,null,"e3cd61f0",null).exports;a.nc=btoa((0,o.IH)()),i.default.prototype.OC=OC,i.default.prototype.t=t;const Jn=new(i.default.extend(Qn));Jn.$mount("#admin-theming"),Jn.$on("update:theming",(()=>{[...document.head.querySelectorAll("link.theme")].forEach((e=>{const t=new URL(e.href);t.searchParams.set("v",Date.now());const n=e.cloneNode();n.href=t.toString(),n.onload=()=>e.remove(),document.head.append(n)}))}))},36568:(e,t,n)=>{n.d(t,{Z:()=>p});var a=n(87537),o=n.n(a),i=n(23645),r=n.n(i),l=n(61667),s=n.n(l),c=new URL(n(92770),n.b),d=r()(o()),u=s()(c);d.push([e.id,`.admin-theming[data-v-e3cd61f0],.admin-theming-advanced[data-v-e3cd61f0]{display:flex;flex-direction:column;gap:8px 0}.admin-theming__preview[data-v-e3cd61f0]{width:230px;height:140px;background-size:cover;background-position:center;text-align:center;margin-top:10px;background-color:var(--color-primary-element-default);background-image:var(--image-background-plain, var(--image-background-default))}.admin-theming__preview-logo[data-v-e3cd61f0]{width:20%;height:20%;margin-top:20px;display:inline-block;background-size:contain;background-position:center;background-repeat:no-repeat;background-image:var(--image-logo, url(${u}))}`,"",{version:3,sources:["webpack://./apps/theming/src/AdminTheming.vue"],names:[],mappings:"AACA,yEAEC,YAAA,CACA,qBAAA,CACA,SAAA,CAIA,yCACC,WAAA,CACA,YAAA,CACA,qBAAA,CACA,0BAAA,CACA,iBAAA,CACA,eAAA,CAIA,qDAAA,CAKA,+EAAA,CAEA,8CACC,SAAA,CACA,UAAA,CACA,eAAA,CACA,oBAAA,CACA,uBAAA,CACA,0BAAA,CACA,2BAAA,CACA,2EAAA",sourcesContent:["\n.admin-theming,\n.admin-theming-advanced {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 8px 0;\n}\n\n.admin-theming {\n\t&__preview {\n\t\twidth: 230px;\n\t\theight: 140px;\n\t\tbackground-size: cover;\n\t\tbackground-position: center;\n\t\ttext-align: center;\n\t\tmargin-top: 10px;\n\t\t/* This is basically https://github.com/nextcloud/server/blob/master/core/css/guest.css\n\t\t But without the user variables. That way the admin can preview the render as guest*/\n\t\t/* As guest, there is no user color color-background-plain */\n\t\tbackground-color: var(--color-primary-element-default);\n\t\t/* As guest, there is no user background (--image-background)\n\t\t1. Empty background if defined\n\t\t2. Else default background\n\t\t3. Finally default gradient (should not happened, the background is always defined anyway) */\n\t\tbackground-image: var(--image-background-plain, var(--image-background-default));\n\n\t\t&-logo {\n\t\t\twidth: 20%;\n\t\t\theight: 20%;\n\t\t\tmargin-top: 20px;\n\t\t\tdisplay: inline-block;\n\t\t\tbackground-size: contain;\n\t\t\tbackground-position: center;\n\t\t\tbackground-repeat: no-repeat;\n\t\t\tbackground-image: var(--image-logo, url('../../../core/img/logo/logo.svg'));\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const p=d},37049:(e,t,n)=>{n.d(t,{Z:()=>l});var a=n(87537),o=n.n(a),i=n(23645),r=n.n(i)()(o());r.push([e.id,".order-selector[data-v-35797e31]{width:max-content;min-width:260px}","",{version:3,sources:["webpack://./apps/theming/src/components/AppOrderSelector.vue"],names:[],mappings:"AACA,iCACC,iBAAA,CACA,eAAA",sourcesContent:["\n.order-selector {\n\twidth: max-content;\n\tmin-width: 260px; // align with NcSelect\n}\n"],sourceRoot:""}]);const l=r},40773:(e,t,n)=>{n.d(t,{Z:()=>l});var a=n(87537),o=n.n(a),i=n(23645),r=n.n(i)()(o());r.push([e.id,".order-selector-element[data-v-081ebc45]{list-style:none;display:flex;flex-direction:row;align-items:center;gap:12px;padding-inline:12px}.order-selector-element[data-v-081ebc45]:hover{background-color:var(--color-background-hover);border-radius:var(--border-radius-large)}.order-selector-element--disabled[data-v-081ebc45]{border-color:var(--color-text-maxcontrast);color:var(--color-text-maxcontrast)}.order-selector-element--disabled .order-selector-element__icon[data-v-081ebc45]{opacity:75%}.order-selector-element__actions[data-v-081ebc45]{flex:0 0;display:flex;flex-direction:row;gap:6px}.order-selector-element__label[data-v-081ebc45]{flex:1 1;text-overflow:ellipsis;overflow:hidden}.order-selector-element__placeholder[data-v-081ebc45]{height:44px;width:44px}.order-selector-element__icon[data-v-081ebc45]{filter:var(--background-invert-if-bright)}","",{version:3,sources:["webpack://./apps/theming/src/components/AppOrderSelectorElement.vue"],names:[],mappings:"AACA,yCAEC,eAAA,CAEA,YAAA,CACA,kBAAA,CACA,kBAAA,CAEA,QAAA,CACA,mBAAA,CAEA,+CACC,8CAAA,CACA,wCAAA,CAGD,mDACC,0CAAA,CACA,mCAAA,CAEA,iFACC,WAAA,CAIF,kDACC,QAAA,CACA,YAAA,CACA,kBAAA,CACA,OAAA,CAGD,gDACC,QAAA,CACA,sBAAA,CACA,eAAA,CAGD,sDACC,WAAA,CACA,UAAA,CAGD,+CACC,yCAAA",sourcesContent:["\n.order-selector-element {\n\t// hide default styling\n\tlist-style: none;\n\t// Align children\n\tdisplay: flex;\n\tflex-direction: row;\n\talign-items: center;\n\t// Spacing\n\tgap: 12px;\n\tpadding-inline: 12px;\n\n\t&:hover {\n\t\tbackground-color: var(--color-background-hover);\n\t\tborder-radius: var(--border-radius-large);\n\t}\n\n\t&--disabled {\n\t\tborder-color: var(--color-text-maxcontrast);\n\t\tcolor: var(--color-text-maxcontrast);\n\n\t\t.order-selector-element__icon {\n\t\t\topacity: 75%;\n\t\t}\n\t}\n\n\t&__actions {\n\t\tflex: 0 0;\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t\tgap: 6px;\n\t}\n\n\t&__label {\n\t\tflex: 1 1;\n\t\ttext-overflow: ellipsis;\n\t\toverflow: hidden;\n\t}\n\n\t&__placeholder {\n\t\theight: 44px;\n\t\twidth: 44px;\n\t}\n\n\t&__icon {\n\t\tfilter: var(--background-invert-if-bright);\n\t}\n}\n"],sourceRoot:""}]);const l=r},3640:(e,t,n)=>{n.d(t,{Z:()=>l});var a=n(87537),o=n.n(a),i=n(23645),r=n.n(i)()(o());r.push([e.id,"h3[data-v-90f2e098],h4[data-v-90f2e098]{font-weight:bold}h4[data-v-90f2e098],h5[data-v-90f2e098]{margin-block-start:12px}.info-note[data-v-90f2e098]{color:var(--color-text-maxcontrast)}","",{version:3,sources:["webpack://./apps/theming/src/components/admin/AppMenuSection.vue"],names:[],mappings:"AACA,wCACC,gBAAA,CAED,wCACC,uBAAA,CAGD,4BACC,mCAAA",sourcesContent:["\nh3, h4 {\n\tfont-weight: bold;\n}\nh4, h5 {\n\tmargin-block-start: 12px;\n}\n\n.info-note {\n\tcolor: var(--color-text-maxcontrast);\n}\n"],sourceRoot:""}]);const l=r},60515:(e,t,n)=>{n.d(t,{Z:()=>l});var a=n(87537),o=n.n(a),i=n(23645),r=n.n(i)()(o());r.push([e.id,".field[data-v-c41a3e80]{display:flex;flex-direction:column;gap:4px 0}.field__row[data-v-c41a3e80]{display:flex;gap:0 4px}.field__description[data-v-c41a3e80]{color:var(--color-text-maxcontrast)}","",{version:3,sources:["webpack://./apps/theming/src/components/admin/shared/field.scss","webpack://./apps/theming/src/components/admin/CheckboxField.vue"],names:[],mappings:"AAsBA,wBACC,YAAA,CACA,qBAAA,CACA,SAAA,CAEA,6BACC,YAAA,CACA,SAAA,CCzBD,qCACC,mCAAA",sourcesContent:["/**\n * @copyright 2022 Christopher Ng \n *\n * @author Christopher Ng \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n.field {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 4px 0;\n\n\t&__row {\n\t\tdisplay: flex;\n\t\tgap: 0 4px;\n\t}\n}\n","\n@import './shared/field.scss';\n\n.field {\n\t&__description {\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n}\n"],sourceRoot:""}]);const l=r},40590:(e,t,n)=>{n.d(t,{Z:()=>l});var a=n(87537),o=n.n(a),i=n(23645),r=n.n(i)()(o());r.push([e.id,".field[data-v-25e8f76e]{display:flex;flex-direction:column;gap:4px 0}.field__row[data-v-25e8f76e]{display:flex;gap:0 4px}.field__color-preview[data-v-25e8f76e]{width:var(--default-clickable-area);border-radius:var(--border-radius-large);background-color:var(--color-primary-default)}","",{version:3,sources:["webpack://./apps/theming/src/components/admin/shared/field.scss","webpack://./apps/theming/src/components/admin/ColorPickerField.vue"],names:[],mappings:"AAsBA,wBACC,YAAA,CACA,qBAAA,CACA,SAAA,CAEA,6BACC,YAAA,CACA,SAAA,CCzBD,uCACC,mCAAA,CACA,wCAAA,CACA,6CAAA",sourcesContent:["/**\n * @copyright 2022 Christopher Ng \n *\n * @author Christopher Ng \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n.field {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 4px 0;\n\n\t&__row {\n\t\tdisplay: flex;\n\t\tgap: 0 4px;\n\t}\n}\n","\n@import './shared/field.scss';\n\n.field {\n\t&__color-preview {\n\t\twidth: var(--default-clickable-area);\n\t\tborder-radius: var(--border-radius-large);\n\t\tbackground-color: var(--color-primary-default);\n\t}\n}\n"],sourceRoot:""}]);const l=r},58800:(e,t,n)=>{n.d(t,{Z:()=>l});var a=n(87537),o=n.n(a),i=n(23645),r=n.n(i)()(o());r.push([e.id,".field[data-v-36abeca7]{display:flex;flex-direction:column;gap:4px 0}.field__row[data-v-36abeca7]{display:flex;gap:0 4px}.field__loading-icon[data-v-36abeca7]{width:44px;height:44px}.field__preview[data-v-36abeca7]{width:70px;height:70px;background-size:contain;background-position:center;background-repeat:no-repeat;margin:10px 0}.field__preview--logoheader[data-v-36abeca7]{background-image:var(--image-logoheader)}.field__preview--favicon[data-v-36abeca7]{background-image:var(--image-favicon)}input[type=file][data-v-36abeca7]{display:none}","",{version:3,sources:["webpack://./apps/theming/src/components/admin/shared/field.scss","webpack://./apps/theming/src/components/admin/FileInputField.vue"],names:[],mappings:"AAsBA,wBACC,YAAA,CACA,qBAAA,CACA,SAAA,CAEA,6BACC,YAAA,CACA,SAAA,CCzBD,sCACC,UAAA,CACA,WAAA,CAGD,iCACC,UAAA,CACA,WAAA,CACA,uBAAA,CACA,0BAAA,CACA,2BAAA,CACA,aAAA,CAEA,6CACC,wCAAA,CAGD,0CACC,qCAAA,CAKH,kCACC,YAAA",sourcesContent:["/**\n * @copyright 2022 Christopher Ng \n *\n * @author Christopher Ng \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n.field {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 4px 0;\n\n\t&__row {\n\t\tdisplay: flex;\n\t\tgap: 0 4px;\n\t}\n}\n","\n@import './shared/field.scss';\n\n.field {\n\t&__loading-icon {\n\t\twidth: 44px;\n\t\theight: 44px;\n\t}\n\n\t&__preview {\n\t\twidth: 70px;\n\t\theight: 70px;\n\t\tbackground-size: contain;\n\t\tbackground-position: center;\n\t\tbackground-repeat: no-repeat;\n\t\tmargin: 10px 0;\n\n\t\t&--logoheader {\n\t\t\tbackground-image: var(--image-logoheader);\n\t\t}\n\n\t\t&--favicon {\n\t\t\tbackground-image: var(--image-favicon);\n\t\t}\n\t}\n}\n\ninput[type=\"file\"] {\n\tdisplay: none;\n}\n"],sourceRoot:""}]);const l=r},15587:(e,t,n)=>{n.d(t,{Z:()=>l});var a=n(87537),o=n.n(a),i=n(23645),r=n.n(i)()(o());r.push([e.id,".field[data-v-31f08db0]{max-width:400px}","",{version:3,sources:["webpack://./apps/theming/src/components/admin/TextField.vue"],names:[],mappings:"AACA,wBACC,eAAA",sourcesContent:["\n.field {\n\tmax-width: 400px;\n}\n"],sourceRoot:""}]);const l=r},92770:e=>{e.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjU2IiBoZWlnaHQ9IjEyOCIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMjU2IDEyOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtMTI4IDdjLTI1Ljg3MSAwLTQ3LjgxNyAxNy40ODUtNTQuNzEzIDQxLjIwOS01Ljk3OTUtMTIuNDYxLTE4LjY0Mi0yMS4yMDktMzMuMjg3LTIxLjIwOS0yMC4zMDQgMC0zNyAxNi42OTYtMzcgMzdzMTYuNjk2IDM3IDM3IDM3YzE0LjY0NSAwIDI3LjMwOC04Ljc0ODEgMzMuMjg3LTIxLjIwOSA2Ljg5NTcgMjMuNzI0IDI4Ljg0MiA0MS4yMDkgNTQuNzEzIDQxLjIwOXM0Ny44MTctMTcuNDg1IDU0LjcxMy00MS4yMDljNS45Nzk1IDEyLjQ2MSAxOC42NDIgMjEuMjA5IDMzLjI4NyAyMS4yMDkgMjAuMzA0IDAgMzctMTYuNjk2IDM3LTM3cy0xNi42OTYtMzctMzctMzdjLTE0LjY0NSAwLTI3LjMwOCA4Ljc0ODEtMzMuMjg3IDIxLjIwOS02Ljg5NTctMjMuNzI0LTI4Ljg0Mi00MS4yMDktNTQuNzEzLTQxLjIwOXptMCAyMmMxOS40NiAwIDM1IDE1LjU0IDM1IDM1cy0xNS41NCAzNS0zNSAzNS0zNS0xNS41NC0zNS0zNSAxNS41NC0zNSAzNS0zNXptLTg4IDIwYzguNDE0NiAwIDE1IDYuNTg1NCAxNSAxNXMtNi41ODU0IDE1LTE1IDE1LTE1LTYuNTg1NC0xNS0xNSA2LjU4NTQtMTUgMTUtMTV6bTE3NiAwYzguNDE0NiAwIDE1IDYuNTg1NCAxNSAxNXMtNi41ODU0IDE1LTE1IDE1LTE1LTYuNTg1NC0xNS0xNSA2LjU4NTQtMTUgMTUtMTV6IiBjb2xvcj0iIzAwMDAwMCIgZmlsbD0iI2ZmZiIgc3R5bGU9Ii1pbmtzY2FwZS1zdHJva2U6bm9uZSIvPjwvc3ZnPgo="}},i={};function r(e){var t=i[e];if(void 0!==t)return t.exports;var n=i[e]={id:e,loaded:!1,exports:{}};return o[e].call(n.exports,n,n.exports,r),n.loaded=!0,n.exports}r.m=o,e=[],r.O=(t,n,a,o)=>{if(!n){var i=1/0;for(d=0;d=o)&&Object.keys(r.O).every((e=>r.O[e](n[s])))?n.splice(s--,1):(l=!1,o0&&e[d-1][2]>o;d--)e[d]=e[d-1];e[d]=[n,a,o]},r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((t,n)=>(r.f[n](e,t),t)),[])),r.u=e=>e+"-"+e+".js?v="+{1215:"dd1ef4c4cc807022e660",5076:"15b21454a9691213632e"}[e],r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n={},a="nextcloud:",r.l=(e,t,o,i)=>{if(n[e])n[e].push(t);else{var l,s;if(void 0!==o)for(var c=document.getElementsByTagName("script"),d=0;d{l.onerror=l.onload=null,clearTimeout(h);var o=n[e];if(delete n[e],l.parentNode&&l.parentNode.removeChild(l),o&&o.forEach((e=>e(a))),t)return t(a)},h=setTimeout(p.bind(null,void 0,{type:"timeout",target:l}),12e4);l.onerror=p.bind(null,l.onerror),l.onload=p.bind(null,l.onload),s&&document.head.appendChild(l)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),r.j=5544,(()=>{var e;r.g.importScripts&&(e=r.g.location+"");var t=r.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");if(n.length)for(var a=n.length-1;a>-1&&!e;)e=n[a--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),r.p=e})(),(()=>{r.b=document.baseURI||self.location.href;var e={5544:0};r.f.j=(t,n)=>{var a=r.o(e,t)?e[t]:void 0;if(0!==a)if(a)n.push(a[2]);else{var o=new Promise(((n,o)=>a=e[t]=[n,o]));n.push(a[2]=o);var i=r.p+r.u(t),l=new Error;r.l(i,(n=>{if(r.o(e,t)&&(0!==(a=e[t])&&(e[t]=void 0),a)){var o=n&&("load"===n.type?"missing":n.type),i=n&&n.target&&n.target.src;l.message="Loading chunk "+t+" failed.\n("+o+": "+i+")",l.name="ChunkLoadError",l.type=o,l.request=i,a[1](l)}}),"chunk-"+t,t)}},r.O.j=t=>0===e[t];var t=(t,n)=>{var a,o,i=n[0],l=n[1],s=n[2],c=0;if(i.some((t=>0!==e[t]))){for(a in l)r.o(l,a)&&(r.m[a]=l[a]);if(s)var d=s(r)}for(t&&t(n);cr(22610)));l=r.O(l)})(); +//# sourceMappingURL=theming-admin-theming.js.map?v=8a1c34124b9e7ec30b50 \ No newline at end of file diff --git a/dist/theming-admin-theming.js.map b/dist/theming-admin-theming.js.map index 85f56e4d683..5aa5ac7e228 100644 --- a/dist/theming-admin-theming.js.map +++ b/dist/theming-admin-theming.js.map @@ -1 +1 @@ -{"version":3,"file":"theming-admin-theming.js?v=33dec6bd6ac04319e2e0","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/theming/src/mixins/admin/FieldMixin.js","webpack:///nextcloud/apps/theming/src/mixins/admin/TextValueMixin.js","webpack:///nextcloud/apps/theming/src/components/admin/CheckboxField.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/theming/src/components/admin/CheckboxField.vue","webpack://nextcloud/./apps/theming/src/components/admin/CheckboxField.vue?efd5","webpack://nextcloud/./apps/theming/src/components/admin/CheckboxField.vue?8981","webpack://nextcloud/./apps/theming/src/components/admin/CheckboxField.vue?f479","webpack://nextcloud/./apps/theming/src/components/admin/ColorPickerField.vue?fdaf","webpack:///nextcloud/node_modules/vue-material-design-icons/UndoVariant.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/UndoVariant.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/UndoVariant.vue?2557","webpack:///nextcloud/node_modules/vue-material-design-icons/UndoVariant.vue?vue&type=template&id=3b13fe6c","webpack:///nextcloud/apps/theming/src/components/admin/ColorPickerField.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/theming/src/components/admin/ColorPickerField.vue","webpack://nextcloud/./apps/theming/src/components/admin/ColorPickerField.vue?6384","webpack://nextcloud/./apps/theming/src/components/admin/ColorPickerField.vue?977d","webpack://nextcloud/./apps/theming/src/components/admin/FileInputField.vue?2d6f","webpack:///nextcloud/apps/theming/src/components/admin/FileInputField.vue","webpack:///nextcloud/apps/theming/src/components/admin/FileInputField.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/theming/src/components/admin/FileInputField.vue?6e1f","webpack://nextcloud/./apps/theming/src/components/admin/FileInputField.vue?4d24","webpack:///nextcloud/apps/theming/src/components/admin/TextField.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/theming/src/components/admin/TextField.vue","webpack://nextcloud/./apps/theming/src/components/admin/TextField.vue?6ff1","webpack://nextcloud/./apps/theming/src/components/admin/TextField.vue?c7b6","webpack://nextcloud/./apps/theming/src/components/admin/TextField.vue?e6c1","webpack:///nextcloud/apps/theming/src/components/admin/AppMenuSection.vue","webpack:///nextcloud/node_modules/sortablejs/modular/sortable.esm.js","webpack:///nextcloud/node_modules/@vueuse/integrations/node_modules/vue-demi/lib/index.mjs","webpack:///nextcloud/apps/theming/src/components/AppOrderSelectorElement.vue","webpack:///nextcloud/apps/theming/src/components/AppOrderSelectorElement.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/theming/src/components/AppOrderSelectorElement.vue?649a","webpack://nextcloud/./apps/theming/src/components/AppOrderSelectorElement.vue?aad4","webpack:///nextcloud/apps/theming/src/components/AppOrderSelector.vue","webpack:///nextcloud/node_modules/@vueuse/integrations/useSortable.mjs","webpack:///nextcloud/apps/theming/src/components/AppOrderSelector.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/theming/src/components/AppOrderSelector.vue?96a5","webpack://nextcloud/./apps/theming/src/components/AppOrderSelector.vue?dbd7","webpack:///nextcloud/apps/theming/src/components/admin/AppMenuSection.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/theming/src/components/admin/AppMenuSection.vue?be6d","webpack://nextcloud/./apps/theming/src/components/admin/AppMenuSection.vue?f742","webpack:///nextcloud/apps/theming/src/AdminTheming.vue","webpack:///nextcloud/apps/theming/src/AdminTheming.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/theming/src/AdminTheming.vue?1301","webpack://nextcloud/./apps/theming/src/AdminTheming.vue?6138","webpack://nextcloud/./apps/theming/src/AdminTheming.vue?e575","webpack:///nextcloud/apps/theming/src/admin-settings.js","webpack:///nextcloud/apps/theming/src/helpers/refreshStyles.js","webpack:///nextcloud/apps/theming/src/AdminTheming.vue?vue&type=style&index=0&id=7a1f9a54&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/theming/src/components/AppOrderSelector.vue?vue&type=style&index=0&id=35797e31&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/theming/src/components/AppOrderSelectorElement.vue?vue&type=style&index=0&id=081ebc45&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/theming/src/components/admin/AppMenuSection.vue?vue&type=style&index=0&id=90f2e098&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/theming/src/components/admin/CheckboxField.vue?vue&type=style&index=0&id=c41a3e80&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/theming/src/components/admin/ColorPickerField.vue?vue&type=style&index=0&id=425ea0b4&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/theming/src/components/admin/FileInputField.vue?vue&type=style&index=0&id=36abeca7&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/theming/src/components/admin/TextField.vue?vue&type=style&index=0&id=31f08db0&prod&lang=scss&scoped=true","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/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","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/publicPath","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 = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\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};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/**\n * @copyright 2022 Christopher Ng \n *\n * @author Christopher Ng \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nconst styleRefreshFields = [\n\t'color',\n\t'logo',\n\t'background',\n\t'logoheader',\n\t'favicon',\n\t'disable-user-theming',\n]\n\nexport default {\n\temits: [\n\t\t'update:theming',\n\t],\n\n\tdata() {\n\t\treturn {\n\t\t\tshowSuccess: false,\n\t\t\terrorMessage: '',\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tid() {\n\t\t\treturn `admin-theming-${this.name}`\n\t\t},\n\t},\n\n\tmethods: {\n\t\treset() {\n\t\t\tthis.showSuccess = false\n\t\t\tthis.errorMessage = ''\n\t\t},\n\n\t\thandleSuccess() {\n\t\t\tthis.showSuccess = true\n\t\t\tsetTimeout(() => { this.showSuccess = false }, 2000)\n\t\t\tif (styleRefreshFields.includes(this.name)) {\n\t\t\t\tthis.$emit('update:theming')\n\t\t\t}\n\t\t},\n\t},\n}\n","/**\n * @copyright 2022 Christopher Ng \n *\n * @author Christopher Ng \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nimport axios from '@nextcloud/axios'\nimport { generateUrl } from '@nextcloud/router'\n\nimport FieldMixin from './FieldMixin.js'\n\nexport default {\n\tmixins: [\n\t\tFieldMixin,\n\t],\n\n\twatch: {\n\t\tvalue(value) {\n\t\t\tthis.localValue = value\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tlocalValue: this.value,\n\t\t}\n\t},\n\n\tmethods: {\n\t\tasync save() {\n\t\t\tthis.reset()\n\t\t\tconst url = generateUrl('/apps/theming/ajax/updateStylesheet')\n\t\t\t// Convert boolean to string as server expects string value\n\t\t\tconst valueToPost = this.localValue === true ? 'yes' : this.localValue === false ? 'no' : this.localValue\n\t\t\ttry {\n\t\t\t\tawait axios.post(url, {\n\t\t\t\t\tsetting: this.name,\n\t\t\t\t\tvalue: valueToPost,\n\t\t\t\t})\n\t\t\t\tthis.$emit('update:value', this.localValue)\n\t\t\t\tthis.handleSuccess()\n\t\t\t} catch (e) {\n\t\t\t\tthis.errorMessage = e.response.data.data?.message\n\t\t\t}\n\t\t},\n\n\t\tasync undo() {\n\t\t\tthis.reset()\n\t\t\tconst url = generateUrl('/apps/theming/ajax/undoChanges')\n\t\t\ttry {\n\t\t\t\tawait axios.post(url, {\n\t\t\t\t\tsetting: this.name,\n\t\t\t\t})\n\t\t\t\tthis.$emit('update:value', this.defaultValue)\n\t\t\t\tthis.handleSuccess()\n\t\t\t} catch (e) {\n\t\t\t\tthis.errorMessage = e.response.data.data?.message\n\t\t\t}\n\t\t},\n\t},\n}\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckboxField.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!./CheckboxField.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n\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/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckboxField.vue?vue&type=style&index=0&id=c41a3e80&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \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!./CheckboxField.vue?vue&type=style&index=0&id=c41a3e80&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./CheckboxField.vue?vue&type=template&id=c41a3e80&scoped=true\"\nimport script from \"./CheckboxField.vue?vue&type=script&lang=js\"\nexport * from \"./CheckboxField.vue?vue&type=script&lang=js\"\nimport style0 from \"./CheckboxField.vue?vue&type=style&index=0&id=c41a3e80&prod&lang=scss&scoped=true\"\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 \"c41a3e80\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"field\"},[_c('label',{attrs:{\"for\":_vm.id}},[_vm._v(_vm._s(_vm.displayName))]),_vm._v(\" \"),_c('div',{staticClass:\"field__row\"},[_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"id\":_vm.id,\"checked\":_vm.localValue},on:{\"update:checked\":[function($event){_vm.localValue=$event},_vm.save]}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.label)+\"\\n\\t\\t\")])],1),_vm._v(\" \"),_c('p',{staticClass:\"field__description\"},[_vm._v(_vm._s(_vm.description))]),_vm._v(\" \"),(_vm.errorMessage)?_c('NcNoteCard',{attrs:{\"type\":\"error\",\"show-alert\":true}},[_c('p',[_vm._v(_vm._s(_vm.errorMessage))])]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"field\"},[_c('label',{attrs:{\"for\":_vm.id}},[_vm._v(_vm._s(_vm.displayName))]),_vm._v(\" \"),_c('div',{staticClass:\"field__row\"},[_c('NcColorPicker',{attrs:{\"value\":_vm.localValue,\"advanced-fields\":true},on:{\"update:value\":[function($event){_vm.localValue=$event},_vm.debounceSave]}},[_c('NcButton',{staticClass:\"field__button\",attrs:{\"type\":\"primary\",\"id\":_vm.id,\"aria-label\":_vm.t('theming', 'Select a custom color'),\"data-admin-theming-setting-primary-color-picker\":\"\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.value)+\"\\n\\t\\t\\t\")])],1),_vm._v(\" \"),(_vm.value !== _vm.defaultValue)?_c('NcButton',{attrs:{\"type\":\"tertiary\",\"aria-label\":_vm.t('theming', 'Reset to default'),\"data-admin-theming-setting-primary-color-reset\":\"\"},on:{\"click\":_vm.undo},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Undo',{attrs:{\"size\":20}})]},proxy:true}],null,false,33666776)}):_vm._e()],1),_vm._v(\" \"),(_vm.errorMessage)?_c('NcNoteCard',{attrs:{\"type\":\"error\",\"show-alert\":true}},[_c('p',[_vm._v(_vm._s(_vm.errorMessage))])]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./UndoVariant.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./UndoVariant.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./UndoVariant.vue?vue&type=template&id=3b13fe6c\"\nimport script from \"./UndoVariant.vue?vue&type=script&lang=js\"\nexport * from \"./UndoVariant.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 undo-variant-icon\",attrs:{\"aria-hidden\":!_vm.title,\"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\":\"M13.5,7A6.5,6.5 0 0,1 20,13.5A6.5,6.5 0 0,1 13.5,20H10V18H13.5C16,18 18,16 18,13.5C18,11 16,9 13.5,9H7.83L10.91,12.09L9.5,13.5L4,8L9.5,2.5L10.92,3.91L7.83,7H13.5M6,18H8V20H6V18Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ColorPickerField.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!./ColorPickerField.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n\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/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ColorPickerField.vue?vue&type=style&index=0&id=425ea0b4&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \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!./ColorPickerField.vue?vue&type=style&index=0&id=425ea0b4&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ColorPickerField.vue?vue&type=template&id=425ea0b4&scoped=true\"\nimport script from \"./ColorPickerField.vue?vue&type=script&lang=js\"\nexport * from \"./ColorPickerField.vue?vue&type=script&lang=js\"\nimport style0 from \"./ColorPickerField.vue?vue&type=style&index=0&id=425ea0b4&prod&lang=scss&scoped=true\"\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 \"425ea0b4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"field\"},[_c('label',{attrs:{\"for\":_vm.id}},[_vm._v(_vm._s(_vm.displayName))]),_vm._v(\" \"),_c('div',{staticClass:\"field__row\"},[_c('NcButton',{attrs:{\"type\":\"secondary\",\"id\":_vm.id,\"aria-label\":_vm.ariaLabel,\"data-admin-theming-setting-file-picker\":\"\"},on:{\"click\":_vm.activateLocalFilePicker},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Upload',{attrs:{\"size\":20}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('theming', 'Upload'))+\"\\n\\t\\t\")]),_vm._v(\" \"),(_vm.showReset)?_c('NcButton',{attrs:{\"type\":\"tertiary\",\"aria-label\":_vm.t('theming', 'Reset to default'),\"data-admin-theming-setting-file-reset\":\"\"},on:{\"click\":_vm.undo},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Undo',{attrs:{\"size\":20}})]},proxy:true}],null,false,33666776)}):_vm._e(),_vm._v(\" \"),(_vm.showRemove)?_c('NcButton',{attrs:{\"type\":\"tertiary\",\"aria-label\":_vm.t('theming', 'Remove background image'),\"data-admin-theming-setting-file-remove\":\"\"},on:{\"click\":_vm.removeBackground},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Delete',{attrs:{\"size\":20}})]},proxy:true}],null,false,2705356561)}):_vm._e(),_vm._v(\" \"),(_vm.showLoading)?_c('NcLoadingIcon',{staticClass:\"field__loading-icon\",attrs:{\"size\":20}}):_vm._e()],1),_vm._v(\" \"),((_vm.name === 'logoheader' || _vm.name === 'favicon') && _vm.mimeValue !== _vm.defaultMimeValue)?_c('div',{staticClass:\"field__preview\",class:{\n\t\t\t'field__preview--logoheader': _vm.name === 'logoheader',\n\t\t\t'field__preview--favicon': _vm.name === 'favicon',\n\t\t}}):_vm._e(),_vm._v(\" \"),(_vm.errorMessage)?_c('NcNoteCard',{attrs:{\"type\":\"error\",\"show-alert\":true}},[_c('p',[_vm._v(_vm._s(_vm.errorMessage))])]):_vm._e(),_vm._v(\" \"),_c('input',{ref:\"input\",attrs:{\"accept\":_vm.acceptMime,\"type\":\"file\"},on:{\"change\":_vm.onChange}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./FileInputField.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!./FileInputField.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!./FileInputField.vue?vue&type=style&index=0&id=36abeca7&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \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!./FileInputField.vue?vue&type=style&index=0&id=36abeca7&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FileInputField.vue?vue&type=template&id=36abeca7&scoped=true\"\nimport script from \"./FileInputField.vue?vue&type=script&lang=js\"\nexport * from \"./FileInputField.vue?vue&type=script&lang=js\"\nimport style0 from \"./FileInputField.vue?vue&type=style&index=0&id=36abeca7&prod&lang=scss&scoped=true\"\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 \"36abeca7\",\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!./TextField.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!./TextField.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n\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/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextField.vue?vue&type=style&index=0&id=31f08db0&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \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!./TextField.vue?vue&type=style&index=0&id=31f08db0&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./TextField.vue?vue&type=template&id=31f08db0&scoped=true\"\nimport script from \"./TextField.vue?vue&type=script&lang=js\"\nexport * from \"./TextField.vue?vue&type=script&lang=js\"\nimport style0 from \"./TextField.vue?vue&type=style&index=0&id=31f08db0&prod&lang=scss&scoped=true\"\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 \"31f08db0\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"field\"},[_c('NcTextField',{attrs:{\"value\":_vm.localValue,\"label\":_vm.displayName,\"placeholder\":_vm.placeholder,\"type\":_vm.type,\"maxlength\":_vm.maxlength,\"spellcheck\":false,\"success\":_vm.showSuccess,\"error\":Boolean(_vm.errorMessage),\"helper-text\":_vm.errorMessage,\"show-trailing-button\":_vm.value !== _vm.defaultValue,\"trailing-button-icon\":\"undo\"},on:{\"update:value\":function($event){_vm.localValue=$event},\"trailing-button-click\":_vm.undo,\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.save.apply(null, arguments)},\"blur\":_vm.save}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcSettingsSection',{attrs:{\"name\":_vm.t('theming', 'Navigation bar settings')}},[_c('h3',[_vm._v(_vm._s(_vm.t('theming', 'Default app')))]),_vm._v(\" \"),_c('p',{staticClass:\"info-note\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('theming', 'The default app is the app that is e.g. opened after login or when the logo in the menu is clicked.'))+\"\\n\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"checked\":_vm.hasCustomDefaultApp,\"type\":\"switch\",\"data-cy-switch-default-app\":\"\"},on:{\"update:checked\":function($event){_vm.hasCustomDefaultApp=$event}}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('theming', 'Use custom default app'))+\"\\n\\t\")]),_vm._v(\" \"),(_vm.hasCustomDefaultApp)?[_c('h4',[_vm._v(_vm._s(_vm.t('theming', 'Global default app')))]),_vm._v(\" \"),_c('NcSelect',{attrs:{\"close-on-select\":false,\"placeholder\":_vm.t('theming', 'Global default apps'),\"options\":_vm.allApps,\"multiple\":true},model:{value:(_vm.selectedApps),callback:function ($$v) {_vm.selectedApps=$$v},expression:\"selectedApps\"}}),_vm._v(\" \"),_c('h5',[_vm._v(_vm._s(_vm.t('theming', 'Default app priority')))]),_vm._v(\" \"),_c('p',{staticClass:\"info-note\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('theming', 'If an app is not enabled for a user, the next app with lower priority is used.'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('AppOrderSelector',{attrs:{\"value\":_vm.selectedApps},on:{\"update:value\":function($event){_vm.selectedApps=$event}}})]:_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**!\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","import Vue from 'vue'\nimport { getCurrentInstance } from 'vue'\n\nvar isVue2 = true\nvar isVue3 = false\nvar Vue2 = Vue\nvar warn = Vue.util.warn\n\nfunction install() {}\n\n// createApp polyfill\nexport function createApp(rootComponent, rootProps) {\n var vm\n var provide = {}\n var app = {\n config: Vue.config,\n use: Vue.use.bind(Vue),\n mixin: Vue.mixin.bind(Vue),\n component: Vue.component.bind(Vue),\n provide: function (key, value) {\n provide[key] = value\n return this\n },\n directive: function (name, dir) {\n if (dir) {\n Vue.directive(name, dir)\n return app\n } else {\n return Vue.directive(name)\n }\n },\n mount: function (el, hydrating) {\n if (!vm) {\n vm = new Vue(Object.assign({ propsData: rootProps }, rootComponent, { provide: Object.assign(provide, rootComponent.provide) }))\n vm.$mount(el, hydrating)\n return vm\n } else {\n return vm\n }\n },\n unmount: function () {\n if (vm) {\n vm.$destroy()\n vm = undefined\n }\n },\n }\n return app\n}\n\nexport {\n Vue,\n Vue2,\n isVue2,\n isVue3,\n install,\n warn\n}\n\n// Vue 3 components mock\nfunction createMockComponent(name) {\n return {\n setup() {\n throw new Error('[vue-demi] ' + name + ' is not supported in Vue 2. It\\'s provided to avoid compiler errors.')\n }\n }\n}\nexport var Fragment = /*#__PURE__*/ createMockComponent('Fragment')\nexport var Transition = /*#__PURE__*/ createMockComponent('Transition')\nexport var TransitionGroup = /*#__PURE__*/ createMockComponent('TransitionGroup')\nexport var Teleport = /*#__PURE__*/ createMockComponent('Teleport')\nexport var Suspense = /*#__PURE__*/ createMockComponent('Suspense')\nexport var KeepAlive = /*#__PURE__*/ createMockComponent('KeepAlive')\n\nexport * from 'vue'\n\n// Not implemented https://github.com/vuejs/core/pull/8111, falls back to getCurrentInstance()\nexport function hasInjectionContext() {\n return !!getCurrentInstance()\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('li',{class:{\n\t\t'order-selector-element': true,\n\t\t'order-selector-element--disabled': _vm.app.default\n\t},attrs:{\"data-cy-app-order-element\":_vm.app.id},on:{\"focusin\":function($event){return _vm.$emit('update:focus')}}},[_c('svg',{attrs:{\"width\":\"20\",\"height\":\"20\",\"viewBox\":\"0 0 20 20\",\"role\":\"presentation\"}},[_c('image',{staticClass:\"order-selector-element__icon\",attrs:{\"preserveAspectRatio\":\"xMinYMin meet\",\"x\":\"0\",\"y\":\"0\",\"width\":\"20\",\"height\":\"20\",\"xlink:href\":_vm.app.icon}})]),_vm._v(\" \"),_c('div',{staticClass:\"order-selector-element__label\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.app.label ?? _vm.app.id)+\"\\n\\t\")]),_vm._v(\" \"),_c('div',{staticClass:\"order-selector-element__actions\"},[_c('NcButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isFirst && !_vm.app.default),expression:\"!isFirst && !app.default\"}],ref:\"buttonUp\",attrs:{\"aria-label\":_vm.t('settings', 'Move up'),\"aria-describedby\":_vm.ariaDescribedby,\"aria-details\":_vm.ariaDetails,\"data-cy-app-order-button\":\"up\",\"type\":\"tertiary-no-background\"},on:{\"click\":_vm.moveUp},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconArrowUp',{attrs:{\"size\":20}})]},proxy:true}])}),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isFirst || !!_vm.app.default),expression:\"isFirst || !!app.default\"}],staticClass:\"order-selector-element__placeholder\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\" \"),_c('NcButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isLast && !_vm.app.default),expression:\"!isLast && !app.default\"}],ref:\"buttonDown\",attrs:{\"aria-label\":_vm.t('settings', 'Move down'),\"aria-describedby\":_vm.ariaDescribedby,\"aria-details\":_vm.ariaDetails,\"data-cy-app-order-button\":\"down\",\"type\":\"tertiary-no-background\"},on:{\"click\":_vm.moveDown},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconArrowDown',{attrs:{\"size\":20}})]},proxy:true}])}),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isLast || !!_vm.app.default),expression:\"isLast || !!app.default\"}],staticClass:\"order-selector-element__placeholder\",attrs:{\"aria-hidden\":\"true\"}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppOrderSelectorElement.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppOrderSelectorElement.vue?vue&type=script&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/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppOrderSelectorElement.vue?vue&type=style&index=0&id=081ebc45&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \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!./AppOrderSelectorElement.vue?vue&type=style&index=0&id=081ebc45&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppOrderSelectorElement.vue?vue&type=template&id=081ebc45&scoped=true\"\nimport script from \"./AppOrderSelectorElement.vue?vue&type=script&lang=ts\"\nexport * from \"./AppOrderSelectorElement.vue?vue&type=script&lang=ts\"\nimport style0 from \"./AppOrderSelectorElement.vue?vue&type=style&index=0&id=081ebc45&prod&lang=scss&scoped=true\"\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 \"081ebc45\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('Fragment',[_c('div',{staticClass:\"hidden-visually\",attrs:{\"id\":_vm.statusInfoId,\"aria-live\":\"polite\",\"role\":\"status\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.statusInfo)+\"\\n\\t\")]),_vm._v(\" \"),_c('ol',{ref:\"listElement\",staticClass:\"order-selector\",attrs:{\"data-cy-app-order\":\"\"}},_vm._l((_vm.appList),function(app,index){return _c('AppOrderSelectorElement',_vm._g({key:`${app.id}${_vm.renderCount}`,ref:\"selectorElements\",refInFor:true,attrs:{\"app\":app,\"aria-details\":_vm.ariaDetails,\"aria-describedby\":_vm.statusInfoId,\"is-first\":index === 0 || !!_vm.appList[index - 1].default,\"is-last\":index === _vm.value.length - 1}},app.default ? {} : {\n\t\t\t\t'move:up': () => _vm.moveUp(index),\n\t\t\t\t'move:down': () => _vm.moveDown(index),\n\t\t\t\t'update:focus': () => _vm.updateStatusInfo(index),\n\t\t\t}))}),1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { tryOnMounted, tryOnScopeDispose, toValue, unrefElement, defaultDocument } from '@vueuse/core';\nimport Sortable from 'sortablejs';\nimport { isRef, nextTick } from 'vue-demi';\n\nfunction useSortable(el, list, options = {}) {\n let sortable;\n const { document = defaultDocument, ...resetOptions } = options;\n const defaultOptions = {\n onUpdate: (e) => {\n moveArrayElement(list, e.oldIndex, e.newIndex);\n }\n };\n const start = () => {\n const target = typeof el === \"string\" ? document == null ? void 0 : document.querySelector(el) : unrefElement(el);\n if (!target || sortable !== void 0)\n return;\n sortable = new Sortable(target, { ...defaultOptions, ...resetOptions });\n };\n const stop = () => {\n sortable == null ? void 0 : sortable.destroy();\n sortable = void 0;\n };\n const option = (name, value) => {\n if (value !== void 0)\n sortable == null ? void 0 : sortable.option(name, value);\n else\n return sortable == null ? void 0 : sortable.option(name);\n };\n tryOnMounted(start);\n tryOnScopeDispose(stop);\n return { stop, start, option };\n}\nfunction moveArrayElement(list, from, to) {\n const _valueIsRef = isRef(list);\n const array = _valueIsRef ? [...toValue(list)] : toValue(list);\n if (to >= 0 && to < array.length) {\n const element = array.splice(from, 1)[0];\n nextTick(() => {\n array.splice(to, 0, element);\n if (_valueIsRef)\n list.value = array;\n });\n }\n}\n\nexport { moveArrayElement, useSortable };\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppOrderSelector.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppOrderSelector.vue?vue&type=script&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/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppOrderSelector.vue?vue&type=style&index=0&id=35797e31&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \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!./AppOrderSelector.vue?vue&type=style&index=0&id=35797e31&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppOrderSelector.vue?vue&type=template&id=35797e31&scoped=true\"\nimport script from \"./AppOrderSelector.vue?vue&type=script&lang=ts\"\nexport * from \"./AppOrderSelector.vue?vue&type=script&lang=ts\"\nimport style0 from \"./AppOrderSelector.vue?vue&type=style&index=0&id=35797e31&prod&scoped=true&lang=scss\"\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 \"35797e31\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppMenuSection.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppMenuSection.vue?vue&type=script&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/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppMenuSection.vue?vue&type=style&index=0&id=90f2e098&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \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!./AppMenuSection.vue?vue&type=style&index=0&id=90f2e098&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppMenuSection.vue?vue&type=template&id=90f2e098&scoped=true\"\nimport script from \"./AppMenuSection.vue?vue&type=script&lang=ts\"\nexport * from \"./AppMenuSection.vue?vue&type=script&lang=ts\"\nimport style0 from \"./AppMenuSection.vue?vue&type=style&index=0&id=90f2e098&prod&scoped=true&lang=scss\"\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 \"90f2e098\",\n null\n \n)\n\nexport default component.exports","\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!./AdminTheming.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!./AdminTheming.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!./AdminTheming.vue?vue&type=style&index=0&id=7a1f9a54&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \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!./AdminTheming.vue?vue&type=style&index=0&id=7a1f9a54&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AdminTheming.vue?vue&type=template&id=7a1f9a54&scoped=true\"\nimport script from \"./AdminTheming.vue?vue&type=script&lang=js\"\nexport * from \"./AdminTheming.vue?vue&type=script&lang=js\"\nimport style0 from \"./AdminTheming.vue?vue&type=style&index=0&id=7a1f9a54&prod&lang=scss&scoped=true\"\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 \"7a1f9a54\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',[_c('NcSettingsSection',{attrs:{\"name\":_vm.t('theming', 'Theming'),\"description\":_vm.t('theming', 'Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users.'),\"doc-url\":_vm.docUrl,\"data-admin-theming-settings\":\"\"}},[_c('div',{staticClass:\"admin-theming\"},[(!_vm.isThemable)?_c('NcNoteCard',{attrs:{\"type\":\"error\",\"show-alert\":true}},[_c('p',[_vm._v(_vm._s(_vm.notThemableErrorMessage))])]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.textFields),function(field){return _c('TextField',{key:field.name,attrs:{\"data-admin-theming-setting-field\":field.name,\"default-value\":field.defaultValue,\"display-name\":field.displayName,\"maxlength\":field.maxlength,\"name\":field.name,\"placeholder\":field.placeholder,\"type\":field.type,\"value\":field.value},on:{\"update:value\":function($event){return _vm.$set(field, \"value\", $event)},\"update:theming\":function($event){return _vm.$emit('update:theming')}}})}),_vm._v(\" \"),_c('ColorPickerField',{attrs:{\"name\":_vm.colorPickerField.name,\"default-value\":_vm.colorPickerField.defaultValue,\"display-name\":_vm.colorPickerField.displayName,\"value\":_vm.colorPickerField.value,\"data-admin-theming-setting-primary-color\":\"\"},on:{\"update:value\":function($event){return _vm.$set(_vm.colorPickerField, \"value\", $event)},\"update:theming\":function($event){return _vm.$emit('update:theming')}}}),_vm._v(\" \"),_vm._l((_vm.fileInputFields),function(field){return _c('FileInputField',{key:field.name,attrs:{\"aria-label\":field.ariaLabel,\"data-admin-theming-setting-file\":field.name,\"default-mime-value\":field.defaultMimeValue,\"display-name\":field.displayName,\"mime-name\":field.mimeName,\"mime-value\":field.mimeValue,\"name\":field.name},on:{\"update:mimeValue\":function($event){return _vm.$set(field, \"mimeValue\", $event)},\"update:mime-value\":function($event){return _vm.$set(field, \"mimeValue\", $event)},\"update:theming\":function($event){return _vm.$emit('update:theming')}}})}),_vm._v(\" \"),_c('div',{staticClass:\"admin-theming__preview\",attrs:{\"data-admin-theming-preview\":\"\"}},[_c('div',{staticClass:\"admin-theming__preview-logo\",attrs:{\"data-admin-theming-preview-logo\":\"\"}})])],2)]),_vm._v(\" \"),_c('NcSettingsSection',{attrs:{\"name\":_vm.t('theming', 'Advanced options')}},[_c('div',{staticClass:\"admin-theming-advanced\"},[_vm._l((_vm.advancedTextFields),function(field){return _c('TextField',{key:field.name,attrs:{\"name\":field.name,\"value\":field.value,\"default-value\":field.defaultValue,\"type\":field.type,\"display-name\":field.displayName,\"placeholder\":field.placeholder,\"maxlength\":field.maxlength},on:{\"update:value\":function($event){return _vm.$set(field, \"value\", $event)},\"update:theming\":function($event){return _vm.$emit('update:theming')}}})}),_vm._v(\" \"),_vm._l((_vm.advancedFileInputFields),function(field){return _c('FileInputField',{key:field.name,attrs:{\"name\":field.name,\"mime-name\":field.mimeName,\"mime-value\":field.mimeValue,\"default-mime-value\":field.defaultMimeValue,\"display-name\":field.displayName,\"aria-label\":field.ariaLabel},on:{\"update:mimeValue\":function($event){return _vm.$set(field, \"mimeValue\", $event)},\"update:mime-value\":function($event){return _vm.$set(field, \"mimeValue\", $event)},\"update:theming\":function($event){return _vm.$emit('update:theming')}}})}),_vm._v(\" \"),_c('CheckboxField',{attrs:{\"name\":_vm.userThemingField.name,\"value\":_vm.userThemingField.value,\"default-value\":_vm.userThemingField.defaultValue,\"display-name\":_vm.userThemingField.displayName,\"label\":_vm.userThemingField.label,\"description\":_vm.userThemingField.description,\"data-admin-theming-setting-disable-user-theming\":\"\"},on:{\"update:theming\":function($event){return _vm.$emit('update:theming')}}}),_vm._v(\" \"),(!_vm.canThemeIcons)?_c('a',{attrs:{\"href\":_vm.docUrlIcons,\"rel\":\"noreferrer noopener\"}},[_c('em',[_vm._v(_vm._s(_vm.t('theming', 'Install the ImageMagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color.')))])]):_vm._e()],2)]),_vm._v(\" \"),_c('AppMenuSection',{attrs:{\"default-apps\":_vm.defaultApps},on:{\"update:defaultApps\":function($event){_vm.defaultApps=$event},\"update:default-apps\":function($event){_vm.defaultApps=$event}}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright 2022 Christopher Ng \n *\n * @author Christopher Ng \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\nimport { getRequestToken } from '@nextcloud/auth'\nimport Vue from 'vue'\n\nimport { refreshStyles } from './helpers/refreshStyles.js'\nimport App from './AdminTheming.vue'\n\n// eslint-disable-next-line camelcase\n__webpack_nonce__ = btoa(getRequestToken())\n\nVue.prototype.OC = OC\nVue.prototype.t = t\n\nconst View = Vue.extend(App)\nconst theming = new View()\ntheming.$mount('#admin-theming')\ntheming.$on('update:theming', refreshStyles)\n","/**\n * @copyright 2022 Christopher Ng \n *\n * @author Christopher Ng \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nexport const refreshStyles = () => {\n\t// Refresh server-side generated theming CSS\n\t[...document.head.querySelectorAll('link.theme')].forEach(theme => {\n\t\tconst url = new URL(theme.href)\n\t\turl.searchParams.set('v', Date.now())\n\t\tconst newTheme = theme.cloneNode()\n\t\tnewTheme.href = url.toString()\n\t\tnewTheme.onload = () => theme.remove()\n\t\tdocument.head.append(newTheme)\n\t})\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\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"../../../core/img/logo/logo.svg\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.admin-theming[data-v-7a1f9a54],.admin-theming-advanced[data-v-7a1f9a54]{display:flex;flex-direction:column;gap:8px 0}.admin-theming__preview[data-v-7a1f9a54]{width:230px;height:140px;background-size:cover;background-position:center;text-align:center;margin-top:10px;background-color:var(--color-primary-element-default);background-image:var(--image-background-plain, var(--image-background-default))}.admin-theming__preview-logo[data-v-7a1f9a54]{width:20%;height:20%;margin-top:20px;display:inline-block;background-size:contain;background-position:center;background-repeat:no-repeat;background-image:var(--image-logo, url(${___CSS_LOADER_URL_REPLACEMENT_0___}))}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/theming/src/AdminTheming.vue\"],\"names\":[],\"mappings\":\"AACA,yEAEC,YAAA,CACA,qBAAA,CACA,SAAA,CAIA,yCACC,WAAA,CACA,YAAA,CACA,qBAAA,CACA,0BAAA,CACA,iBAAA,CACA,eAAA,CAIA,qDAAA,CAKA,+EAAA,CAEA,8CACC,SAAA,CACA,UAAA,CACA,eAAA,CACA,oBAAA,CACA,uBAAA,CACA,0BAAA,CACA,2BAAA,CACA,2EAAA\",\"sourcesContent\":[\"\\n.admin-theming,\\n.admin-theming-advanced {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tgap: 8px 0;\\n}\\n\\n.admin-theming {\\n\\t&__preview {\\n\\t\\twidth: 230px;\\n\\t\\theight: 140px;\\n\\t\\tbackground-size: cover;\\n\\t\\tbackground-position: center;\\n\\t\\ttext-align: center;\\n\\t\\tmargin-top: 10px;\\n\\t\\t/* This is basically https://github.com/nextcloud/server/blob/master/core/css/guest.css\\n\\t\\t But without the user variables. That way the admin can preview the render as guest*/\\n\\t\\t/* As guest, there is no user color color-background-plain */\\n\\t\\tbackground-color: var(--color-primary-element-default);\\n\\t\\t/* As guest, there is no user background (--image-background)\\n\\t\\t1. Empty background if defined\\n\\t\\t2. Else default background\\n\\t\\t3. Finally default gradient (should not happened, the background is always defined anyway) */\\n\\t\\tbackground-image: var(--image-background-plain, var(--image-background-default));\\n\\n\\t\\t&-logo {\\n\\t\\t\\twidth: 20%;\\n\\t\\t\\theight: 20%;\\n\\t\\t\\tmargin-top: 20px;\\n\\t\\t\\tdisplay: inline-block;\\n\\t\\t\\tbackground-size: contain;\\n\\t\\t\\tbackground-position: center;\\n\\t\\t\\tbackground-repeat: no-repeat;\\n\\t\\t\\tbackground-image: var(--image-logo, url('../../../core/img/logo/logo.svg'));\\n\\t\\t}\\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, `.order-selector[data-v-35797e31]{width:max-content;min-width:260px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/theming/src/components/AppOrderSelector.vue\"],\"names\":[],\"mappings\":\"AACA,iCACC,iBAAA,CACA,eAAA\",\"sourcesContent\":[\"\\n.order-selector {\\n\\twidth: max-content;\\n\\tmin-width: 260px; // align with NcSelect\\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, `.order-selector-element[data-v-081ebc45]{list-style:none;display:flex;flex-direction:row;align-items:center;gap:12px;padding-inline:12px}.order-selector-element[data-v-081ebc45]:hover{background-color:var(--color-background-hover);border-radius:var(--border-radius-large)}.order-selector-element--disabled[data-v-081ebc45]{border-color:var(--color-text-maxcontrast);color:var(--color-text-maxcontrast)}.order-selector-element--disabled .order-selector-element__icon[data-v-081ebc45]{opacity:75%}.order-selector-element__actions[data-v-081ebc45]{flex:0 0;display:flex;flex-direction:row;gap:6px}.order-selector-element__label[data-v-081ebc45]{flex:1 1;text-overflow:ellipsis;overflow:hidden}.order-selector-element__placeholder[data-v-081ebc45]{height:44px;width:44px}.order-selector-element__icon[data-v-081ebc45]{filter:var(--background-invert-if-bright)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/theming/src/components/AppOrderSelectorElement.vue\"],\"names\":[],\"mappings\":\"AACA,yCAEC,eAAA,CAEA,YAAA,CACA,kBAAA,CACA,kBAAA,CAEA,QAAA,CACA,mBAAA,CAEA,+CACC,8CAAA,CACA,wCAAA,CAGD,mDACC,0CAAA,CACA,mCAAA,CAEA,iFACC,WAAA,CAIF,kDACC,QAAA,CACA,YAAA,CACA,kBAAA,CACA,OAAA,CAGD,gDACC,QAAA,CACA,sBAAA,CACA,eAAA,CAGD,sDACC,WAAA,CACA,UAAA,CAGD,+CACC,yCAAA\",\"sourcesContent\":[\"\\n.order-selector-element {\\n\\t// hide default styling\\n\\tlist-style: none;\\n\\t// Align children\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\talign-items: center;\\n\\t// Spacing\\n\\tgap: 12px;\\n\\tpadding-inline: 12px;\\n\\n\\t&:hover {\\n\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t}\\n\\n\\t&--disabled {\\n\\t\\tborder-color: var(--color-text-maxcontrast);\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\n\\t\\t.order-selector-element__icon {\\n\\t\\t\\topacity: 75%;\\n\\t\\t}\\n\\t}\\n\\n\\t&__actions {\\n\\t\\tflex: 0 0;\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: row;\\n\\t\\tgap: 6px;\\n\\t}\\n\\n\\t&__label {\\n\\t\\tflex: 1 1;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\toverflow: hidden;\\n\\t}\\n\\n\\t&__placeholder {\\n\\t\\theight: 44px;\\n\\t\\twidth: 44px;\\n\\t}\\n\\n\\t&__icon {\\n\\t\\tfilter: var(--background-invert-if-bright);\\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, `h3[data-v-90f2e098],h4[data-v-90f2e098]{font-weight:bold}h4[data-v-90f2e098],h5[data-v-90f2e098]{margin-block-start:12px}.info-note[data-v-90f2e098]{color:var(--color-text-maxcontrast)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/theming/src/components/admin/AppMenuSection.vue\"],\"names\":[],\"mappings\":\"AACA,wCACC,gBAAA,CAED,wCACC,uBAAA,CAGD,4BACC,mCAAA\",\"sourcesContent\":[\"\\nh3, h4 {\\n\\tfont-weight: bold;\\n}\\nh4, h5 {\\n\\tmargin-block-start: 12px;\\n}\\n\\n.info-note {\\n\\tcolor: var(--color-text-maxcontrast);\\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, `.field[data-v-c41a3e80]{display:flex;flex-direction:column;gap:4px 0}.field__row[data-v-c41a3e80]{display:flex;gap:0 4px}.field__description[data-v-c41a3e80]{color:var(--color-text-maxcontrast)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/theming/src/components/admin/shared/field.scss\",\"webpack://./apps/theming/src/components/admin/CheckboxField.vue\"],\"names\":[],\"mappings\":\"AAsBA,wBACC,YAAA,CACA,qBAAA,CACA,SAAA,CAEA,6BACC,YAAA,CACA,SAAA,CCzBD,qCACC,mCAAA\",\"sourcesContent\":[\"/**\\n * @copyright 2022 Christopher Ng \\n *\\n * @author Christopher Ng \\n *\\n * @license AGPL-3.0-or-later\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n.field {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tgap: 4px 0;\\n\\n\\t&__row {\\n\\t\\tdisplay: flex;\\n\\t\\tgap: 0 4px;\\n\\t}\\n}\\n\",\"\\n@import './shared/field.scss';\\n\\n.field {\\n\\t&__description {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\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, `.field[data-v-425ea0b4]{display:flex;flex-direction:column;gap:4px 0}.field__row[data-v-425ea0b4]{display:flex;gap:0 4px}.field__button[data-v-425ea0b4]{width:230px !important;border-radius:var(--border-radius-large) !important;background-color:var(--color-primary-default) !important}.field__button[data-v-425ea0b4]:hover::after{background-color:#fff;content:\"\";position:absolute;width:100%;height:100%;opacity:.2;filter:var(--primary-invert-if-bright)}.field__button[data-v-425ea0b4] *{z-index:1}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/theming/src/components/admin/shared/field.scss\",\"webpack://./apps/theming/src/components/admin/ColorPickerField.vue\"],\"names\":[],\"mappings\":\"AAsBA,wBACC,YAAA,CACA,qBAAA,CACA,SAAA,CAEA,6BACC,YAAA,CACA,SAAA,CCxBD,gCACC,sBAAA,CACA,mDAAA,CACA,wDAAA,CAIA,6CACC,qBAAA,CACA,UAAA,CACA,iBAAA,CACA,UAAA,CACA,WAAA,CACA,UAAA,CACA,sCAAA,CAID,kCACC,SAAA\",\"sourcesContent\":[\"/**\\n * @copyright 2022 Christopher Ng \\n *\\n * @author Christopher Ng \\n *\\n * @license AGPL-3.0-or-later\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n.field {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tgap: 4px 0;\\n\\n\\t&__row {\\n\\t\\tdisplay: flex;\\n\\t\\tgap: 0 4px;\\n\\t}\\n}\\n\",\"\\n@import './shared/field.scss';\\n\\n.field {\\n\\t// Override default NcButton styles\\n\\t&__button {\\n\\t\\twidth: 230px !important;\\n\\t\\tborder-radius: var(--border-radius-large) !important;\\n\\t\\tbackground-color: var(--color-primary-default) !important;\\n\\n\\t\\t// emulated hover state because it would not make sense\\n\\t\\t// to create a dedicated global variable for the color-primary-default\\n\\t\\t&:hover::after {\\n\\t\\t\\tbackground-color: white;\\n\\t\\t\\tcontent: \\\"\\\";\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\theight: 100%;\\n\\t\\t\\topacity: .2;\\n\\t\\t\\tfilter: var(--primary-invert-if-bright);\\n\\t\\t}\\n\\n\\t\\t// Above the ::after\\n\\t\\t&::v-deep * {\\n\\t\\t\\tz-index: 1;\\n\\t\\t}\\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, `.field[data-v-36abeca7]{display:flex;flex-direction:column;gap:4px 0}.field__row[data-v-36abeca7]{display:flex;gap:0 4px}.field__loading-icon[data-v-36abeca7]{width:44px;height:44px}.field__preview[data-v-36abeca7]{width:70px;height:70px;background-size:contain;background-position:center;background-repeat:no-repeat;margin:10px 0}.field__preview--logoheader[data-v-36abeca7]{background-image:var(--image-logoheader)}.field__preview--favicon[data-v-36abeca7]{background-image:var(--image-favicon)}input[type=file][data-v-36abeca7]{display:none}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/theming/src/components/admin/shared/field.scss\",\"webpack://./apps/theming/src/components/admin/FileInputField.vue\"],\"names\":[],\"mappings\":\"AAsBA,wBACC,YAAA,CACA,qBAAA,CACA,SAAA,CAEA,6BACC,YAAA,CACA,SAAA,CCzBD,sCACC,UAAA,CACA,WAAA,CAGD,iCACC,UAAA,CACA,WAAA,CACA,uBAAA,CACA,0BAAA,CACA,2BAAA,CACA,aAAA,CAEA,6CACC,wCAAA,CAGD,0CACC,qCAAA,CAKH,kCACC,YAAA\",\"sourcesContent\":[\"/**\\n * @copyright 2022 Christopher Ng \\n *\\n * @author Christopher Ng \\n *\\n * @license AGPL-3.0-or-later\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n.field {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tgap: 4px 0;\\n\\n\\t&__row {\\n\\t\\tdisplay: flex;\\n\\t\\tgap: 0 4px;\\n\\t}\\n}\\n\",\"\\n@import './shared/field.scss';\\n\\n.field {\\n\\t&__loading-icon {\\n\\t\\twidth: 44px;\\n\\t\\theight: 44px;\\n\\t}\\n\\n\\t&__preview {\\n\\t\\twidth: 70px;\\n\\t\\theight: 70px;\\n\\t\\tbackground-size: contain;\\n\\t\\tbackground-position: center;\\n\\t\\tbackground-repeat: no-repeat;\\n\\t\\tmargin: 10px 0;\\n\\n\\t\\t&--logoheader {\\n\\t\\t\\tbackground-image: var(--image-logoheader);\\n\\t\\t}\\n\\n\\t\\t&--favicon {\\n\\t\\t\\tbackground-image: var(--image-favicon);\\n\\t\\t}\\n\\t}\\n}\\n\\ninput[type=\\\"file\\\"] {\\n\\tdisplay: none;\\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, `.field[data-v-31f08db0]{max-width:400px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/theming/src/components/admin/TextField.vue\"],\"names\":[],\"mappings\":\"AACA,wBACC,eAAA\",\"sourcesContent\":[\"\\n.field {\\n\\tmax-width: 400px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// 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};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"1215\":\"dd1ef4c4cc807022e660\",\"5076\":\"15b21454a9691213632e\"}[chunkId] + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__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 = 5544;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && !scriptUrl) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = 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\t5544: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\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 = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\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 = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\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, [7874], () => (__webpack_require__(12186)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","styleRefreshFields","emits","data","showSuccess","errorMessage","computed","id","this","name","methods","reset","handleSuccess","setTimeout","includes","$emit","mixins","FieldMixin","watch","value","localValue","save","url","generateUrl","valueToPost","axios","post","setting","e","response","message","undo","defaultValue","components","NcCheckboxRadioSwitch","NcNoteCard","TextValueMixin","props","type","String","required","Boolean","displayName","label","description","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_vm","_c","_self","staticClass","attrs","_v","_s","on","$event","_e","title","fillColor","default","size","Number","_b","$attrs","NcButton","NcColorPicker","Undo","debounceSave","debounce","t","scopedSlots","_u","key","fn","proxy","allowedMimeTypes","loadState","Delete","NcLoadingIcon","Upload","mimeName","mimeValue","defaultMimeValue","ariaLabel","showLoading","acceptMime","join","showReset","showRemove","startsWith","activateLocalFilePicker","$refs","input","click","onChange","file","target","files","formData","FormData","append","removeBackground","class","ref","NcTextField","placeholder","maxlength","indexOf","_k","keyCode","apply","arguments","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperty","Object","defineProperty","enumerable","configurable","writable","_extends","assign","i","length","source","hasOwnProperty","call","_objectSpread","ownKeys","keys","getOwnPropertySymbols","concat","filter","sym","getOwnPropertyDescriptor","forEach","userAgent","pattern","window","navigator","match","IE11OrLess","Edge","FireFox","Safari","IOS","ChromeForAndroid","captureMode","capture","passive","el","event","addEventListener","off","removeEventListener","matches","selector","substring","msMatchesSelector","webkitMatchesSelector","_","getParentOrHost","host","document","nodeType","parentNode","closest","ctx","includeCTX","_throttleTimeout","R_SPACE","toggleClass","state","classList","className","replace","css","prop","val","style","defaultView","getComputedStyle","currentStyle","matrix","selfOnly","appliedTransforms","transform","matrixFn","DOMMatrix","WebKitCSSMatrix","CSSMatrix","MSCSSMatrix","find","tagName","list","getElementsByTagName","n","getWindowScrollingElement","scrollingElement","documentElement","getRect","relativeToContainingBlock","relativeToNonStaticParent","undoScale","container","getBoundingClientRect","elRect","top","left","bottom","right","height","width","innerHeight","innerWidth","containerRect","parseInt","elMatrix","scaleX","a","scaleY","d","isScrolledPast","elSide","parentSide","parent","getParentAutoScrollElement","elSideVal","parentSideVal","getChild","childNum","currentChild","children","display","Sortable","ghost","dragged","draggable","lastChild","last","lastElementChild","previousElementSibling","index","nodeName","toUpperCase","clone","getRelativeScrollOffset","offsetLeft","offsetTop","winScroller","scrollLeft","scrollTop","includeSelf","elem","gotSelf","clientWidth","scrollWidth","clientHeight","scrollHeight","elemCSS","overflowX","overflowY","body","isRectEqual","rect1","rect2","Math","round","throttle","callback","ms","args","scrollBy","x","y","Polymer","$","jQuery","Zepto","dom","cloneNode","expando","Date","getTime","plugins","defaults","initializeByDefault","PluginManager","mount","plugin","option","push","pluginEvent","eventName","sortable","evt","_this","eventCanceled","cancel","eventNameGlobal","pluginName","initializePlugins","initialized","modified","modifyOption","getEventProperties","eventProperties","modifiedValue","optionListeners","_ref","undefined","originalEvent","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_objectWithoutProperties","bind","dragEl","parentEl","ghostEl","rootEl","nextEl","lastDownEl","cloneEl","cloneHidden","dragStarted","moved","putSortable","activeSortable","active","oldIndex","oldDraggableIndex","newIndex","newDraggableIndex","hideGhostForTarget","_hideGhostForTarget","unhideGhostForTarget","_unhideGhostForTarget","cloneNowHidden","cloneNowShown","dispatchSortableEvent","_dispatchEvent","info","targetEl","toEl","fromEl","extraEventProperties","onName","charAt","substr","CustomEvent","createEvent","initEvent","bubbles","cancelable","to","from","item","pullMode","lastPutMode","allEventProperties","dispatchEvent","activeGroup","tapEvt","touchEvt","lastDx","lastDy","tapDistanceLeft","tapDistanceTop","lastTarget","lastDirection","targetMoveDistance","ghostRelativeParent","awaitingDragStarted","ignoreNextClick","sortables","pastFirstInvertThresh","isCircumstantialInvert","ghostRelativeParentInitialScroll","_silent","savedInputChecked","documentExists","PositionGhostAbsolutely","CSSFloatProperty","supportDraggable","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","originalGroup","checkPull","checkPut","put","revertClone","preventDefault","stopPropagation","stopImmediatePropagation","nearestEmptyInsertDetectEvent","touches","nearest","clientX","clientY","some","rect","threshold","emptyInsertThreshold","insideHorizontally","insideVertically","ret","_onDragOver","_checkOutsideTargetEl","_isOutsideThisEl","toString","animationCallbackId","animationStates","sort","disabled","store","handle","test","swapThreshold","invertSwap","invertedSwapThreshold","removeCloneOnHide","direction","ghostClass","chosenClass","dragClass","ignore","preventOnFilter","animation","easing","setData","dataTransfer","textContent","dropBubble","dragoverBubble","dataIdAttr","delay","delayOnTouchOnly","touchStartThreshold","devicePixelRatio","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","nativeDraggable","_onTapStart","get","captureAnimationState","slice","child","fromRect","thisAnimationDuration","childMatrix","f","addAnimationState","removeAnimationState","splice","arr","indexOfObject","animateAll","clearTimeout","animating","animationTime","time","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","src","href","sum","charCodeAt","_nextTick","_cancelNextTick","contains","_getDirection","touch","pointerType","originalTarget","shadowRoot","path","composedPath","root","inputs","idx","checked","_saveInputCheckedState","button","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","b","c","cssMatrix","appendChild","_hideClone","cloneId","insertBefore","_loopId","setInterval","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","handleEvent","dropEffect","_globalDragOver","toArray","order","getAttribute","items","set","destroy","Array","querySelectorAll","removeAttribute","utils","is","extend","dst","nextTick","cancelNextTick","detectDirection","element","_len","_key","create","version","scrollEl","scrollRootEl","lastAutoScrollX","lastAutoScrollY","touchEvt$1","pointerElemChangedInterval","autoScrolls","scrolling","clearAutoScrolls","autoScroll","pid","clearPointerElemChangedInterval","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","startIndex","dragStart","_ref2","_ref3","_ref4","parentSortable","AutoScroll","_handleAutoScroll","_handleFallbackAutoScroll","dragOverCompleted","dragOverBubble","nulling","ogElemScroller","newElem","util","warn","defineComponent","IconArrowDown","IconArrowUp","ariaDescribedby","ariaDetails","app","isFirst","isLast","move:up","move:down","update:focus","setup","emit","buttonUp","buttonDown","needsFocus","moveUp","moveDown","keepFocus","$el","focus","_setupProxy","icon","directives","rawName","expression","AppOrderSelectorElement","Fragment","isArray","listElement","appList","newValue","renderCount","resetOptions","defaultOptions","onUpdate","_valueIsRef","isRef","array","moveArrayElement","start","querySelector","stop","useSortable","selectorElements","onUpdated","statusInfo","before","statusInfoId","random","updateStatusInfo","position","total","_l","_g","refInFor","AppOrderSelector","NcSelect","NcSettingsSection","defaultApps","every","hasCustomDefaultApp","selectedApps","allApps","values","map","saveSetting","then","catch","showError","model","$$v","backgroundMime","canThemeIcons","color","docUrl","docUrlIcons","faviconMime","isThemable","legalNoticeUrl","logoheaderMime","logoMime","notThemableErrorMessage","privacyPolicyUrl","slogan","userThemingDisabled","textFields","colorPickerField","fileInputFields","advancedTextFields","advancedFileInputFields","userThemingField","AppMenuSection","CheckboxField","ColorPickerField","FileInputField","TextField","field","$set","__webpack_nonce__","btoa","getRequestToken","Vue","OC","theming","App","$mount","$on","refreshStyles","head","theme","URL","searchParams","now","newTheme","onload","remove","___CSS_LOADER_URL_IMPORT_0___","___CSS_LOADER_EXPORT___","___CSS_LOADER_URL_REPLACEMENT_0___","module","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","loaded","__webpack_modules__","m","O","result","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","r","getter","__esModule","definition","o","chunkId","Promise","all","reduce","promises","u","g","globalThis","Function","l","done","script","needAttach","scripts","s","charset","timeout","nc","setAttribute","onScriptComplete","prev","onerror","doneFns","toStringTag","nmd","paths","scriptUrl","importScripts","location","currentScript","Error","p","baseURI","self","installedChunks","installedChunkData","promise","resolve","reject","error","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"theming-admin-theming.js?v=8a1c34124b9e7ec30b50","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/theming/src/mixins/admin/FieldMixin.js","webpack:///nextcloud/apps/theming/src/mixins/admin/TextValueMixin.js","webpack:///nextcloud/apps/theming/src/components/admin/CheckboxField.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/theming/src/components/admin/CheckboxField.vue","webpack://nextcloud/./apps/theming/src/components/admin/CheckboxField.vue?efd5","webpack://nextcloud/./apps/theming/src/components/admin/CheckboxField.vue?8981","webpack://nextcloud/./apps/theming/src/components/admin/CheckboxField.vue?f479","webpack://nextcloud/./apps/theming/src/components/admin/ColorPickerField.vue?fdaf","webpack:///nextcloud/node_modules/vue-material-design-icons/UndoVariant.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/UndoVariant.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/UndoVariant.vue?2557","webpack:///nextcloud/node_modules/vue-material-design-icons/UndoVariant.vue?vue&type=template&id=3b13fe6c","webpack:///nextcloud/node_modules/vue-material-design-icons/Palette.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Palette.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/Palette.vue?82b2","webpack:///nextcloud/node_modules/vue-material-design-icons/Palette.vue?vue&type=template&id=b8041184","webpack:///nextcloud/apps/theming/src/components/admin/ColorPickerField.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/theming/src/components/admin/ColorPickerField.vue","webpack://nextcloud/./apps/theming/src/components/admin/ColorPickerField.vue?9ad6","webpack://nextcloud/./apps/theming/src/components/admin/ColorPickerField.vue?977d","webpack://nextcloud/./apps/theming/src/components/admin/FileInputField.vue?2d6f","webpack:///nextcloud/apps/theming/src/components/admin/FileInputField.vue","webpack:///nextcloud/apps/theming/src/components/admin/FileInputField.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/theming/src/components/admin/FileInputField.vue?6e1f","webpack://nextcloud/./apps/theming/src/components/admin/FileInputField.vue?4d24","webpack:///nextcloud/apps/theming/src/components/admin/TextField.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/theming/src/components/admin/TextField.vue","webpack://nextcloud/./apps/theming/src/components/admin/TextField.vue?6ff1","webpack://nextcloud/./apps/theming/src/components/admin/TextField.vue?c7b6","webpack://nextcloud/./apps/theming/src/components/admin/TextField.vue?e6c1","webpack:///nextcloud/apps/theming/src/components/admin/AppMenuSection.vue","webpack:///nextcloud/node_modules/sortablejs/modular/sortable.esm.js","webpack:///nextcloud/node_modules/@vueuse/integrations/node_modules/vue-demi/lib/index.mjs","webpack:///nextcloud/apps/theming/src/components/AppOrderSelectorElement.vue","webpack:///nextcloud/apps/theming/src/components/AppOrderSelectorElement.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/theming/src/components/AppOrderSelectorElement.vue?649a","webpack://nextcloud/./apps/theming/src/components/AppOrderSelectorElement.vue?aad4","webpack:///nextcloud/apps/theming/src/components/AppOrderSelector.vue","webpack:///nextcloud/node_modules/@vueuse/integrations/useSortable.mjs","webpack:///nextcloud/apps/theming/src/components/AppOrderSelector.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/theming/src/components/AppOrderSelector.vue?96a5","webpack://nextcloud/./apps/theming/src/components/AppOrderSelector.vue?dbd7","webpack:///nextcloud/apps/theming/src/components/admin/AppMenuSection.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/theming/src/components/admin/AppMenuSection.vue?be6d","webpack://nextcloud/./apps/theming/src/components/admin/AppMenuSection.vue?f742","webpack:///nextcloud/apps/theming/src/AdminTheming.vue","webpack:///nextcloud/apps/theming/src/AdminTheming.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/theming/src/AdminTheming.vue?f2b5","webpack://nextcloud/./apps/theming/src/AdminTheming.vue?6138","webpack://nextcloud/./apps/theming/src/AdminTheming.vue?e575","webpack:///nextcloud/apps/theming/src/admin-settings.js","webpack:///nextcloud/apps/theming/src/helpers/refreshStyles.js","webpack:///nextcloud/apps/theming/src/AdminTheming.vue?vue&type=style&index=0&id=e3cd61f0&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/theming/src/components/AppOrderSelector.vue?vue&type=style&index=0&id=35797e31&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/theming/src/components/AppOrderSelectorElement.vue?vue&type=style&index=0&id=081ebc45&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/theming/src/components/admin/AppMenuSection.vue?vue&type=style&index=0&id=90f2e098&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/theming/src/components/admin/CheckboxField.vue?vue&type=style&index=0&id=c41a3e80&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/theming/src/components/admin/ColorPickerField.vue?vue&type=style&index=0&id=25e8f76e&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/theming/src/components/admin/FileInputField.vue?vue&type=style&index=0&id=36abeca7&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/theming/src/components/admin/TextField.vue?vue&type=style&index=0&id=31f08db0&prod&lang=scss&scoped=true","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/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","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/publicPath","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 = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\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};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/**\n * @copyright 2022 Christopher Ng \n *\n * @author Christopher Ng \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nconst styleRefreshFields = [\n\t'color',\n\t'logo',\n\t'background',\n\t'logoheader',\n\t'favicon',\n\t'disable-user-theming',\n]\n\nexport default {\n\temits: [\n\t\t'update:theming',\n\t],\n\n\tdata() {\n\t\treturn {\n\t\t\tshowSuccess: false,\n\t\t\terrorMessage: '',\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tid() {\n\t\t\treturn `admin-theming-${this.name}`\n\t\t},\n\t},\n\n\tmethods: {\n\t\treset() {\n\t\t\tthis.showSuccess = false\n\t\t\tthis.errorMessage = ''\n\t\t},\n\n\t\thandleSuccess() {\n\t\t\tthis.showSuccess = true\n\t\t\tsetTimeout(() => { this.showSuccess = false }, 2000)\n\t\t\tif (styleRefreshFields.includes(this.name)) {\n\t\t\t\tthis.$emit('update:theming')\n\t\t\t}\n\t\t},\n\t},\n}\n","/**\n * @copyright 2022 Christopher Ng \n *\n * @author Christopher Ng \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nimport axios from '@nextcloud/axios'\nimport { generateUrl } from '@nextcloud/router'\n\nimport FieldMixin from './FieldMixin.js'\n\nexport default {\n\tmixins: [\n\t\tFieldMixin,\n\t],\n\n\twatch: {\n\t\tvalue(value) {\n\t\t\tthis.localValue = value\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tlocalValue: this.value,\n\t\t}\n\t},\n\n\tmethods: {\n\t\tasync save() {\n\t\t\tthis.reset()\n\t\t\tconst url = generateUrl('/apps/theming/ajax/updateStylesheet')\n\t\t\t// Convert boolean to string as server expects string value\n\t\t\tconst valueToPost = this.localValue === true ? 'yes' : this.localValue === false ? 'no' : this.localValue\n\t\t\ttry {\n\t\t\t\tawait axios.post(url, {\n\t\t\t\t\tsetting: this.name,\n\t\t\t\t\tvalue: valueToPost,\n\t\t\t\t})\n\t\t\t\tthis.$emit('update:value', this.localValue)\n\t\t\t\tthis.handleSuccess()\n\t\t\t} catch (e) {\n\t\t\t\tthis.errorMessage = e.response.data.data?.message\n\t\t\t}\n\t\t},\n\n\t\tasync undo() {\n\t\t\tthis.reset()\n\t\t\tconst url = generateUrl('/apps/theming/ajax/undoChanges')\n\t\t\ttry {\n\t\t\t\tawait axios.post(url, {\n\t\t\t\t\tsetting: this.name,\n\t\t\t\t})\n\t\t\t\tthis.$emit('update:value', this.defaultValue)\n\t\t\t\tthis.handleSuccess()\n\t\t\t} catch (e) {\n\t\t\t\tthis.errorMessage = e.response.data.data?.message\n\t\t\t}\n\t\t},\n\t},\n}\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckboxField.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!./CheckboxField.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n\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/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckboxField.vue?vue&type=style&index=0&id=c41a3e80&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \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!./CheckboxField.vue?vue&type=style&index=0&id=c41a3e80&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./CheckboxField.vue?vue&type=template&id=c41a3e80&scoped=true\"\nimport script from \"./CheckboxField.vue?vue&type=script&lang=js\"\nexport * from \"./CheckboxField.vue?vue&type=script&lang=js\"\nimport style0 from \"./CheckboxField.vue?vue&type=style&index=0&id=c41a3e80&prod&lang=scss&scoped=true\"\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 \"c41a3e80\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"field\"},[_c('label',{attrs:{\"for\":_vm.id}},[_vm._v(_vm._s(_vm.displayName))]),_vm._v(\" \"),_c('div',{staticClass:\"field__row\"},[_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"id\":_vm.id,\"checked\":_vm.localValue},on:{\"update:checked\":[function($event){_vm.localValue=$event},_vm.save]}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.label)+\"\\n\\t\\t\")])],1),_vm._v(\" \"),_c('p',{staticClass:\"field__description\"},[_vm._v(_vm._s(_vm.description))]),_vm._v(\" \"),(_vm.errorMessage)?_c('NcNoteCard',{attrs:{\"type\":\"error\",\"show-alert\":true}},[_c('p',[_vm._v(_vm._s(_vm.errorMessage))])]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"field\"},[_c('label',{attrs:{\"for\":_vm.id}},[_vm._v(_vm._s(_vm.displayName))]),_vm._v(\" \"),_c('div',{staticClass:\"field__row\"},[_c('NcColorPicker',{attrs:{\"value\":_vm.localValue,\"advanced-fields\":true,\"data-admin-theming-setting-primary-color-picker\":\"\"},on:{\"update:value\":[function($event){_vm.localValue=$event},_vm.debounceSave]}},[_c('NcButton',{attrs:{\"type\":\"secondary\",\"id\":_vm.id},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Palette',{attrs:{\"size\":20}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('theming', 'Change color'))+\"\\n\\t\\t\\t\")])],1),_vm._v(\" \"),_c('div',{staticClass:\"field__color-preview\",attrs:{\"data-admin-theming-setting-primary-color\":\"\"}}),_vm._v(\" \"),(_vm.value !== _vm.defaultValue)?_c('NcButton',{attrs:{\"type\":\"tertiary\",\"aria-label\":_vm.t('theming', 'Reset to default'),\"data-admin-theming-setting-primary-color-reset\":\"\"},on:{\"click\":_vm.undo},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Undo',{attrs:{\"size\":20}})]},proxy:true}],null,false,33666776)}):_vm._e()],1),_vm._v(\" \"),(_vm.errorMessage)?_c('NcNoteCard',{attrs:{\"type\":\"error\",\"show-alert\":true}},[_c('p',[_vm._v(_vm._s(_vm.errorMessage))])]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./UndoVariant.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./UndoVariant.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./UndoVariant.vue?vue&type=template&id=3b13fe6c\"\nimport script from \"./UndoVariant.vue?vue&type=script&lang=js\"\nexport * from \"./UndoVariant.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 undo-variant-icon\",attrs:{\"aria-hidden\":!_vm.title,\"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\":\"M13.5,7A6.5,6.5 0 0,1 20,13.5A6.5,6.5 0 0,1 13.5,20H10V18H13.5C16,18 18,16 18,13.5C18,11 16,9 13.5,9H7.83L10.91,12.09L9.5,13.5L4,8L9.5,2.5L10.92,3.91L7.83,7H13.5M6,18H8V20H6V18Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Palette.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Palette.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./Palette.vue?vue&type=template&id=b8041184\"\nimport script from \"./Palette.vue?vue&type=script&lang=js\"\nexport * from \"./Palette.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 palette-icon\",attrs:{\"aria-hidden\":!_vm.title,\"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\":\"M17.5,12A1.5,1.5 0 0,1 16,10.5A1.5,1.5 0 0,1 17.5,9A1.5,1.5 0 0,1 19,10.5A1.5,1.5 0 0,1 17.5,12M14.5,8A1.5,1.5 0 0,1 13,6.5A1.5,1.5 0 0,1 14.5,5A1.5,1.5 0 0,1 16,6.5A1.5,1.5 0 0,1 14.5,8M9.5,8A1.5,1.5 0 0,1 8,6.5A1.5,1.5 0 0,1 9.5,5A1.5,1.5 0 0,1 11,6.5A1.5,1.5 0 0,1 9.5,8M6.5,12A1.5,1.5 0 0,1 5,10.5A1.5,1.5 0 0,1 6.5,9A1.5,1.5 0 0,1 8,10.5A1.5,1.5 0 0,1 6.5,12M12,3A9,9 0 0,0 3,12A9,9 0 0,0 12,21A1.5,1.5 0 0,0 13.5,19.5C13.5,19.11 13.35,18.76 13.11,18.5C12.88,18.23 12.73,17.88 12.73,17.5A1.5,1.5 0 0,1 14.23,16H16A5,5 0 0,0 21,11C21,6.58 16.97,3 12,3Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ColorPickerField.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!./ColorPickerField.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n\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/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ColorPickerField.vue?vue&type=style&index=0&id=25e8f76e&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \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!./ColorPickerField.vue?vue&type=style&index=0&id=25e8f76e&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ColorPickerField.vue?vue&type=template&id=25e8f76e&scoped=true\"\nimport script from \"./ColorPickerField.vue?vue&type=script&lang=js\"\nexport * from \"./ColorPickerField.vue?vue&type=script&lang=js\"\nimport style0 from \"./ColorPickerField.vue?vue&type=style&index=0&id=25e8f76e&prod&lang=scss&scoped=true\"\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 \"25e8f76e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"field\"},[_c('label',{attrs:{\"for\":_vm.id}},[_vm._v(_vm._s(_vm.displayName))]),_vm._v(\" \"),_c('div',{staticClass:\"field__row\"},[_c('NcButton',{attrs:{\"type\":\"secondary\",\"id\":_vm.id,\"aria-label\":_vm.ariaLabel,\"data-admin-theming-setting-file-picker\":\"\"},on:{\"click\":_vm.activateLocalFilePicker},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Upload',{attrs:{\"size\":20}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('theming', 'Upload'))+\"\\n\\t\\t\")]),_vm._v(\" \"),(_vm.showReset)?_c('NcButton',{attrs:{\"type\":\"tertiary\",\"aria-label\":_vm.t('theming', 'Reset to default'),\"data-admin-theming-setting-file-reset\":\"\"},on:{\"click\":_vm.undo},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Undo',{attrs:{\"size\":20}})]},proxy:true}],null,false,33666776)}):_vm._e(),_vm._v(\" \"),(_vm.showRemove)?_c('NcButton',{attrs:{\"type\":\"tertiary\",\"aria-label\":_vm.t('theming', 'Remove background image'),\"data-admin-theming-setting-file-remove\":\"\"},on:{\"click\":_vm.removeBackground},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Delete',{attrs:{\"size\":20}})]},proxy:true}],null,false,2705356561)}):_vm._e(),_vm._v(\" \"),(_vm.showLoading)?_c('NcLoadingIcon',{staticClass:\"field__loading-icon\",attrs:{\"size\":20}}):_vm._e()],1),_vm._v(\" \"),((_vm.name === 'logoheader' || _vm.name === 'favicon') && _vm.mimeValue !== _vm.defaultMimeValue)?_c('div',{staticClass:\"field__preview\",class:{\n\t\t\t'field__preview--logoheader': _vm.name === 'logoheader',\n\t\t\t'field__preview--favicon': _vm.name === 'favicon',\n\t\t}}):_vm._e(),_vm._v(\" \"),(_vm.errorMessage)?_c('NcNoteCard',{attrs:{\"type\":\"error\",\"show-alert\":true}},[_c('p',[_vm._v(_vm._s(_vm.errorMessage))])]):_vm._e(),_vm._v(\" \"),_c('input',{ref:\"input\",attrs:{\"accept\":_vm.acceptMime,\"type\":\"file\"},on:{\"change\":_vm.onChange}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./FileInputField.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!./FileInputField.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!./FileInputField.vue?vue&type=style&index=0&id=36abeca7&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \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!./FileInputField.vue?vue&type=style&index=0&id=36abeca7&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FileInputField.vue?vue&type=template&id=36abeca7&scoped=true\"\nimport script from \"./FileInputField.vue?vue&type=script&lang=js\"\nexport * from \"./FileInputField.vue?vue&type=script&lang=js\"\nimport style0 from \"./FileInputField.vue?vue&type=style&index=0&id=36abeca7&prod&lang=scss&scoped=true\"\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 \"36abeca7\",\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!./TextField.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!./TextField.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n\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/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextField.vue?vue&type=style&index=0&id=31f08db0&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \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!./TextField.vue?vue&type=style&index=0&id=31f08db0&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./TextField.vue?vue&type=template&id=31f08db0&scoped=true\"\nimport script from \"./TextField.vue?vue&type=script&lang=js\"\nexport * from \"./TextField.vue?vue&type=script&lang=js\"\nimport style0 from \"./TextField.vue?vue&type=style&index=0&id=31f08db0&prod&lang=scss&scoped=true\"\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 \"31f08db0\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"field\"},[_c('NcTextField',{attrs:{\"value\":_vm.localValue,\"label\":_vm.displayName,\"placeholder\":_vm.placeholder,\"type\":_vm.type,\"maxlength\":_vm.maxlength,\"spellcheck\":false,\"success\":_vm.showSuccess,\"error\":Boolean(_vm.errorMessage),\"helper-text\":_vm.errorMessage,\"show-trailing-button\":_vm.value !== _vm.defaultValue,\"trailing-button-icon\":\"undo\"},on:{\"update:value\":function($event){_vm.localValue=$event},\"trailing-button-click\":_vm.undo,\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.save.apply(null, arguments)},\"blur\":_vm.save}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcSettingsSection',{attrs:{\"name\":_vm.t('theming', 'Navigation bar settings')}},[_c('h3',[_vm._v(_vm._s(_vm.t('theming', 'Default app')))]),_vm._v(\" \"),_c('p',{staticClass:\"info-note\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('theming', 'The default app is the app that is e.g. opened after login or when the logo in the menu is clicked.'))+\"\\n\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"checked\":_vm.hasCustomDefaultApp,\"type\":\"switch\",\"data-cy-switch-default-app\":\"\"},on:{\"update:checked\":function($event){_vm.hasCustomDefaultApp=$event}}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('theming', 'Use custom default app'))+\"\\n\\t\")]),_vm._v(\" \"),(_vm.hasCustomDefaultApp)?[_c('h4',[_vm._v(_vm._s(_vm.t('theming', 'Global default app')))]),_vm._v(\" \"),_c('NcSelect',{attrs:{\"close-on-select\":false,\"placeholder\":_vm.t('theming', 'Global default apps'),\"options\":_vm.allApps,\"multiple\":true},model:{value:(_vm.selectedApps),callback:function ($$v) {_vm.selectedApps=$$v},expression:\"selectedApps\"}}),_vm._v(\" \"),_c('h5',[_vm._v(_vm._s(_vm.t('theming', 'Default app priority')))]),_vm._v(\" \"),_c('p',{staticClass:\"info-note\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('theming', 'If an app is not enabled for a user, the next app with lower priority is used.'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('AppOrderSelector',{attrs:{\"value\":_vm.selectedApps},on:{\"update:value\":function($event){_vm.selectedApps=$event}}})]:_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**!\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","import Vue from 'vue'\nimport { getCurrentInstance } from 'vue'\n\nvar isVue2 = true\nvar isVue3 = false\nvar Vue2 = Vue\nvar warn = Vue.util.warn\n\nfunction install() {}\n\n// createApp polyfill\nexport function createApp(rootComponent, rootProps) {\n var vm\n var provide = {}\n var app = {\n config: Vue.config,\n use: Vue.use.bind(Vue),\n mixin: Vue.mixin.bind(Vue),\n component: Vue.component.bind(Vue),\n provide: function (key, value) {\n provide[key] = value\n return this\n },\n directive: function (name, dir) {\n if (dir) {\n Vue.directive(name, dir)\n return app\n } else {\n return Vue.directive(name)\n }\n },\n mount: function (el, hydrating) {\n if (!vm) {\n vm = new Vue(Object.assign({ propsData: rootProps }, rootComponent, { provide: Object.assign(provide, rootComponent.provide) }))\n vm.$mount(el, hydrating)\n return vm\n } else {\n return vm\n }\n },\n unmount: function () {\n if (vm) {\n vm.$destroy()\n vm = undefined\n }\n },\n }\n return app\n}\n\nexport {\n Vue,\n Vue2,\n isVue2,\n isVue3,\n install,\n warn\n}\n\n// Vue 3 components mock\nfunction createMockComponent(name) {\n return {\n setup() {\n throw new Error('[vue-demi] ' + name + ' is not supported in Vue 2. It\\'s provided to avoid compiler errors.')\n }\n }\n}\nexport var Fragment = /*#__PURE__*/ createMockComponent('Fragment')\nexport var Transition = /*#__PURE__*/ createMockComponent('Transition')\nexport var TransitionGroup = /*#__PURE__*/ createMockComponent('TransitionGroup')\nexport var Teleport = /*#__PURE__*/ createMockComponent('Teleport')\nexport var Suspense = /*#__PURE__*/ createMockComponent('Suspense')\nexport var KeepAlive = /*#__PURE__*/ createMockComponent('KeepAlive')\n\nexport * from 'vue'\n\n// Not implemented https://github.com/vuejs/core/pull/8111, falls back to getCurrentInstance()\nexport function hasInjectionContext() {\n return !!getCurrentInstance()\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('li',{class:{\n\t\t'order-selector-element': true,\n\t\t'order-selector-element--disabled': _vm.app.default\n\t},attrs:{\"data-cy-app-order-element\":_vm.app.id},on:{\"focusin\":function($event){return _vm.$emit('update:focus')}}},[_c('svg',{attrs:{\"width\":\"20\",\"height\":\"20\",\"viewBox\":\"0 0 20 20\",\"role\":\"presentation\"}},[_c('image',{staticClass:\"order-selector-element__icon\",attrs:{\"preserveAspectRatio\":\"xMinYMin meet\",\"x\":\"0\",\"y\":\"0\",\"width\":\"20\",\"height\":\"20\",\"xlink:href\":_vm.app.icon}})]),_vm._v(\" \"),_c('div',{staticClass:\"order-selector-element__label\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.app.label ?? _vm.app.id)+\"\\n\\t\")]),_vm._v(\" \"),_c('div',{staticClass:\"order-selector-element__actions\"},[_c('NcButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isFirst && !_vm.app.default),expression:\"!isFirst && !app.default\"}],ref:\"buttonUp\",attrs:{\"aria-label\":_vm.t('settings', 'Move up'),\"aria-describedby\":_vm.ariaDescribedby,\"aria-details\":_vm.ariaDetails,\"data-cy-app-order-button\":\"up\",\"type\":\"tertiary-no-background\"},on:{\"click\":_vm.moveUp},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconArrowUp',{attrs:{\"size\":20}})]},proxy:true}])}),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isFirst || !!_vm.app.default),expression:\"isFirst || !!app.default\"}],staticClass:\"order-selector-element__placeholder\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\" \"),_c('NcButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isLast && !_vm.app.default),expression:\"!isLast && !app.default\"}],ref:\"buttonDown\",attrs:{\"aria-label\":_vm.t('settings', 'Move down'),\"aria-describedby\":_vm.ariaDescribedby,\"aria-details\":_vm.ariaDetails,\"data-cy-app-order-button\":\"down\",\"type\":\"tertiary-no-background\"},on:{\"click\":_vm.moveDown},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconArrowDown',{attrs:{\"size\":20}})]},proxy:true}])}),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isLast || !!_vm.app.default),expression:\"isLast || !!app.default\"}],staticClass:\"order-selector-element__placeholder\",attrs:{\"aria-hidden\":\"true\"}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppOrderSelectorElement.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppOrderSelectorElement.vue?vue&type=script&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/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppOrderSelectorElement.vue?vue&type=style&index=0&id=081ebc45&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \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!./AppOrderSelectorElement.vue?vue&type=style&index=0&id=081ebc45&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppOrderSelectorElement.vue?vue&type=template&id=081ebc45&scoped=true\"\nimport script from \"./AppOrderSelectorElement.vue?vue&type=script&lang=ts\"\nexport * from \"./AppOrderSelectorElement.vue?vue&type=script&lang=ts\"\nimport style0 from \"./AppOrderSelectorElement.vue?vue&type=style&index=0&id=081ebc45&prod&lang=scss&scoped=true\"\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 \"081ebc45\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('Fragment',[_c('div',{staticClass:\"hidden-visually\",attrs:{\"id\":_vm.statusInfoId,\"aria-live\":\"polite\",\"role\":\"status\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.statusInfo)+\"\\n\\t\")]),_vm._v(\" \"),_c('ol',{ref:\"listElement\",staticClass:\"order-selector\",attrs:{\"data-cy-app-order\":\"\"}},_vm._l((_vm.appList),function(app,index){return _c('AppOrderSelectorElement',_vm._g({key:`${app.id}${_vm.renderCount}`,ref:\"selectorElements\",refInFor:true,attrs:{\"app\":app,\"aria-details\":_vm.ariaDetails,\"aria-describedby\":_vm.statusInfoId,\"is-first\":index === 0 || !!_vm.appList[index - 1].default,\"is-last\":index === _vm.value.length - 1}},app.default ? {} : {\n\t\t\t\t'move:up': () => _vm.moveUp(index),\n\t\t\t\t'move:down': () => _vm.moveDown(index),\n\t\t\t\t'update:focus': () => _vm.updateStatusInfo(index),\n\t\t\t}))}),1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { tryOnMounted, tryOnScopeDispose, toValue, unrefElement, defaultDocument } from '@vueuse/core';\nimport Sortable from 'sortablejs';\nimport { isRef, nextTick } from 'vue-demi';\n\nfunction useSortable(el, list, options = {}) {\n let sortable;\n const { document = defaultDocument, ...resetOptions } = options;\n const defaultOptions = {\n onUpdate: (e) => {\n moveArrayElement(list, e.oldIndex, e.newIndex);\n }\n };\n const start = () => {\n const target = typeof el === \"string\" ? document == null ? void 0 : document.querySelector(el) : unrefElement(el);\n if (!target || sortable !== void 0)\n return;\n sortable = new Sortable(target, { ...defaultOptions, ...resetOptions });\n };\n const stop = () => {\n sortable == null ? void 0 : sortable.destroy();\n sortable = void 0;\n };\n const option = (name, value) => {\n if (value !== void 0)\n sortable == null ? void 0 : sortable.option(name, value);\n else\n return sortable == null ? void 0 : sortable.option(name);\n };\n tryOnMounted(start);\n tryOnScopeDispose(stop);\n return { stop, start, option };\n}\nfunction moveArrayElement(list, from, to) {\n const _valueIsRef = isRef(list);\n const array = _valueIsRef ? [...toValue(list)] : toValue(list);\n if (to >= 0 && to < array.length) {\n const element = array.splice(from, 1)[0];\n nextTick(() => {\n array.splice(to, 0, element);\n if (_valueIsRef)\n list.value = array;\n });\n }\n}\n\nexport { moveArrayElement, useSortable };\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppOrderSelector.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppOrderSelector.vue?vue&type=script&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/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppOrderSelector.vue?vue&type=style&index=0&id=35797e31&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \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!./AppOrderSelector.vue?vue&type=style&index=0&id=35797e31&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppOrderSelector.vue?vue&type=template&id=35797e31&scoped=true\"\nimport script from \"./AppOrderSelector.vue?vue&type=script&lang=ts\"\nexport * from \"./AppOrderSelector.vue?vue&type=script&lang=ts\"\nimport style0 from \"./AppOrderSelector.vue?vue&type=style&index=0&id=35797e31&prod&scoped=true&lang=scss\"\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 \"35797e31\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppMenuSection.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppMenuSection.vue?vue&type=script&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/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppMenuSection.vue?vue&type=style&index=0&id=90f2e098&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \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!./AppMenuSection.vue?vue&type=style&index=0&id=90f2e098&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppMenuSection.vue?vue&type=template&id=90f2e098&scoped=true\"\nimport script from \"./AppMenuSection.vue?vue&type=script&lang=ts\"\nexport * from \"./AppMenuSection.vue?vue&type=script&lang=ts\"\nimport style0 from \"./AppMenuSection.vue?vue&type=style&index=0&id=90f2e098&prod&scoped=true&lang=scss\"\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 \"90f2e098\",\n null\n \n)\n\nexport default component.exports","\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!./AdminTheming.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!./AdminTheming.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!./AdminTheming.vue?vue&type=style&index=0&id=e3cd61f0&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \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!./AdminTheming.vue?vue&type=style&index=0&id=e3cd61f0&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AdminTheming.vue?vue&type=template&id=e3cd61f0&scoped=true\"\nimport script from \"./AdminTheming.vue?vue&type=script&lang=js\"\nexport * from \"./AdminTheming.vue?vue&type=script&lang=js\"\nimport style0 from \"./AdminTheming.vue?vue&type=style&index=0&id=e3cd61f0&prod&lang=scss&scoped=true\"\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 \"e3cd61f0\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',[_c('NcSettingsSection',{attrs:{\"name\":_vm.t('theming', 'Theming'),\"description\":_vm.t('theming', 'Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users.'),\"doc-url\":_vm.docUrl,\"data-admin-theming-settings\":\"\"}},[_c('div',{staticClass:\"admin-theming\"},[(!_vm.isThemable)?_c('NcNoteCard',{attrs:{\"type\":\"error\",\"show-alert\":true}},[_c('p',[_vm._v(_vm._s(_vm.notThemableErrorMessage))])]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.textFields),function(field){return _c('TextField',{key:field.name,attrs:{\"data-admin-theming-setting-field\":field.name,\"default-value\":field.defaultValue,\"display-name\":field.displayName,\"maxlength\":field.maxlength,\"name\":field.name,\"placeholder\":field.placeholder,\"type\":field.type,\"value\":field.value},on:{\"update:value\":function($event){return _vm.$set(field, \"value\", $event)},\"update:theming\":function($event){return _vm.$emit('update:theming')}}})}),_vm._v(\" \"),_c('ColorPickerField',{attrs:{\"name\":_vm.colorPickerField.name,\"default-value\":_vm.colorPickerField.defaultValue,\"display-name\":_vm.colorPickerField.displayName,\"value\":_vm.colorPickerField.value},on:{\"update:value\":function($event){return _vm.$set(_vm.colorPickerField, \"value\", $event)},\"update:theming\":function($event){return _vm.$emit('update:theming')}}}),_vm._v(\" \"),_vm._l((_vm.fileInputFields),function(field){return _c('FileInputField',{key:field.name,attrs:{\"aria-label\":field.ariaLabel,\"data-admin-theming-setting-file\":field.name,\"default-mime-value\":field.defaultMimeValue,\"display-name\":field.displayName,\"mime-name\":field.mimeName,\"mime-value\":field.mimeValue,\"name\":field.name},on:{\"update:mimeValue\":function($event){return _vm.$set(field, \"mimeValue\", $event)},\"update:mime-value\":function($event){return _vm.$set(field, \"mimeValue\", $event)},\"update:theming\":function($event){return _vm.$emit('update:theming')}}})}),_vm._v(\" \"),_c('div',{staticClass:\"admin-theming__preview\",attrs:{\"data-admin-theming-preview\":\"\"}},[_c('div',{staticClass:\"admin-theming__preview-logo\",attrs:{\"data-admin-theming-preview-logo\":\"\"}})])],2)]),_vm._v(\" \"),_c('NcSettingsSection',{attrs:{\"name\":_vm.t('theming', 'Advanced options')}},[_c('div',{staticClass:\"admin-theming-advanced\"},[_vm._l((_vm.advancedTextFields),function(field){return _c('TextField',{key:field.name,attrs:{\"name\":field.name,\"value\":field.value,\"default-value\":field.defaultValue,\"type\":field.type,\"display-name\":field.displayName,\"placeholder\":field.placeholder,\"maxlength\":field.maxlength},on:{\"update:value\":function($event){return _vm.$set(field, \"value\", $event)},\"update:theming\":function($event){return _vm.$emit('update:theming')}}})}),_vm._v(\" \"),_vm._l((_vm.advancedFileInputFields),function(field){return _c('FileInputField',{key:field.name,attrs:{\"name\":field.name,\"mime-name\":field.mimeName,\"mime-value\":field.mimeValue,\"default-mime-value\":field.defaultMimeValue,\"display-name\":field.displayName,\"aria-label\":field.ariaLabel},on:{\"update:mimeValue\":function($event){return _vm.$set(field, \"mimeValue\", $event)},\"update:mime-value\":function($event){return _vm.$set(field, \"mimeValue\", $event)},\"update:theming\":function($event){return _vm.$emit('update:theming')}}})}),_vm._v(\" \"),_c('CheckboxField',{attrs:{\"name\":_vm.userThemingField.name,\"value\":_vm.userThemingField.value,\"default-value\":_vm.userThemingField.defaultValue,\"display-name\":_vm.userThemingField.displayName,\"label\":_vm.userThemingField.label,\"description\":_vm.userThemingField.description,\"data-admin-theming-setting-disable-user-theming\":\"\"},on:{\"update:theming\":function($event){return _vm.$emit('update:theming')}}}),_vm._v(\" \"),(!_vm.canThemeIcons)?_c('a',{attrs:{\"href\":_vm.docUrlIcons,\"rel\":\"noreferrer noopener\"}},[_c('em',[_vm._v(_vm._s(_vm.t('theming', 'Install the ImageMagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color.')))])]):_vm._e()],2)]),_vm._v(\" \"),_c('AppMenuSection',{attrs:{\"default-apps\":_vm.defaultApps},on:{\"update:defaultApps\":function($event){_vm.defaultApps=$event},\"update:default-apps\":function($event){_vm.defaultApps=$event}}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright 2022 Christopher Ng \n *\n * @author Christopher Ng \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\nimport { getRequestToken } from '@nextcloud/auth'\nimport Vue from 'vue'\n\nimport { refreshStyles } from './helpers/refreshStyles.js'\nimport App from './AdminTheming.vue'\n\n// eslint-disable-next-line camelcase\n__webpack_nonce__ = btoa(getRequestToken())\n\nVue.prototype.OC = OC\nVue.prototype.t = t\n\nconst View = Vue.extend(App)\nconst theming = new View()\ntheming.$mount('#admin-theming')\ntheming.$on('update:theming', refreshStyles)\n","/**\n * @copyright 2022 Christopher Ng \n *\n * @author Christopher Ng \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nexport const refreshStyles = () => {\n\t// Refresh server-side generated theming CSS\n\t[...document.head.querySelectorAll('link.theme')].forEach(theme => {\n\t\tconst url = new URL(theme.href)\n\t\turl.searchParams.set('v', Date.now())\n\t\tconst newTheme = theme.cloneNode()\n\t\tnewTheme.href = url.toString()\n\t\tnewTheme.onload = () => theme.remove()\n\t\tdocument.head.append(newTheme)\n\t})\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\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"../../../core/img/logo/logo.svg\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.admin-theming[data-v-e3cd61f0],.admin-theming-advanced[data-v-e3cd61f0]{display:flex;flex-direction:column;gap:8px 0}.admin-theming__preview[data-v-e3cd61f0]{width:230px;height:140px;background-size:cover;background-position:center;text-align:center;margin-top:10px;background-color:var(--color-primary-element-default);background-image:var(--image-background-plain, var(--image-background-default))}.admin-theming__preview-logo[data-v-e3cd61f0]{width:20%;height:20%;margin-top:20px;display:inline-block;background-size:contain;background-position:center;background-repeat:no-repeat;background-image:var(--image-logo, url(${___CSS_LOADER_URL_REPLACEMENT_0___}))}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/theming/src/AdminTheming.vue\"],\"names\":[],\"mappings\":\"AACA,yEAEC,YAAA,CACA,qBAAA,CACA,SAAA,CAIA,yCACC,WAAA,CACA,YAAA,CACA,qBAAA,CACA,0BAAA,CACA,iBAAA,CACA,eAAA,CAIA,qDAAA,CAKA,+EAAA,CAEA,8CACC,SAAA,CACA,UAAA,CACA,eAAA,CACA,oBAAA,CACA,uBAAA,CACA,0BAAA,CACA,2BAAA,CACA,2EAAA\",\"sourcesContent\":[\"\\n.admin-theming,\\n.admin-theming-advanced {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tgap: 8px 0;\\n}\\n\\n.admin-theming {\\n\\t&__preview {\\n\\t\\twidth: 230px;\\n\\t\\theight: 140px;\\n\\t\\tbackground-size: cover;\\n\\t\\tbackground-position: center;\\n\\t\\ttext-align: center;\\n\\t\\tmargin-top: 10px;\\n\\t\\t/* This is basically https://github.com/nextcloud/server/blob/master/core/css/guest.css\\n\\t\\t But without the user variables. That way the admin can preview the render as guest*/\\n\\t\\t/* As guest, there is no user color color-background-plain */\\n\\t\\tbackground-color: var(--color-primary-element-default);\\n\\t\\t/* As guest, there is no user background (--image-background)\\n\\t\\t1. Empty background if defined\\n\\t\\t2. Else default background\\n\\t\\t3. Finally default gradient (should not happened, the background is always defined anyway) */\\n\\t\\tbackground-image: var(--image-background-plain, var(--image-background-default));\\n\\n\\t\\t&-logo {\\n\\t\\t\\twidth: 20%;\\n\\t\\t\\theight: 20%;\\n\\t\\t\\tmargin-top: 20px;\\n\\t\\t\\tdisplay: inline-block;\\n\\t\\t\\tbackground-size: contain;\\n\\t\\t\\tbackground-position: center;\\n\\t\\t\\tbackground-repeat: no-repeat;\\n\\t\\t\\tbackground-image: var(--image-logo, url('../../../core/img/logo/logo.svg'));\\n\\t\\t}\\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, `.order-selector[data-v-35797e31]{width:max-content;min-width:260px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/theming/src/components/AppOrderSelector.vue\"],\"names\":[],\"mappings\":\"AACA,iCACC,iBAAA,CACA,eAAA\",\"sourcesContent\":[\"\\n.order-selector {\\n\\twidth: max-content;\\n\\tmin-width: 260px; // align with NcSelect\\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, `.order-selector-element[data-v-081ebc45]{list-style:none;display:flex;flex-direction:row;align-items:center;gap:12px;padding-inline:12px}.order-selector-element[data-v-081ebc45]:hover{background-color:var(--color-background-hover);border-radius:var(--border-radius-large)}.order-selector-element--disabled[data-v-081ebc45]{border-color:var(--color-text-maxcontrast);color:var(--color-text-maxcontrast)}.order-selector-element--disabled .order-selector-element__icon[data-v-081ebc45]{opacity:75%}.order-selector-element__actions[data-v-081ebc45]{flex:0 0;display:flex;flex-direction:row;gap:6px}.order-selector-element__label[data-v-081ebc45]{flex:1 1;text-overflow:ellipsis;overflow:hidden}.order-selector-element__placeholder[data-v-081ebc45]{height:44px;width:44px}.order-selector-element__icon[data-v-081ebc45]{filter:var(--background-invert-if-bright)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/theming/src/components/AppOrderSelectorElement.vue\"],\"names\":[],\"mappings\":\"AACA,yCAEC,eAAA,CAEA,YAAA,CACA,kBAAA,CACA,kBAAA,CAEA,QAAA,CACA,mBAAA,CAEA,+CACC,8CAAA,CACA,wCAAA,CAGD,mDACC,0CAAA,CACA,mCAAA,CAEA,iFACC,WAAA,CAIF,kDACC,QAAA,CACA,YAAA,CACA,kBAAA,CACA,OAAA,CAGD,gDACC,QAAA,CACA,sBAAA,CACA,eAAA,CAGD,sDACC,WAAA,CACA,UAAA,CAGD,+CACC,yCAAA\",\"sourcesContent\":[\"\\n.order-selector-element {\\n\\t// hide default styling\\n\\tlist-style: none;\\n\\t// Align children\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\talign-items: center;\\n\\t// Spacing\\n\\tgap: 12px;\\n\\tpadding-inline: 12px;\\n\\n\\t&:hover {\\n\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t}\\n\\n\\t&--disabled {\\n\\t\\tborder-color: var(--color-text-maxcontrast);\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\n\\t\\t.order-selector-element__icon {\\n\\t\\t\\topacity: 75%;\\n\\t\\t}\\n\\t}\\n\\n\\t&__actions {\\n\\t\\tflex: 0 0;\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: row;\\n\\t\\tgap: 6px;\\n\\t}\\n\\n\\t&__label {\\n\\t\\tflex: 1 1;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\toverflow: hidden;\\n\\t}\\n\\n\\t&__placeholder {\\n\\t\\theight: 44px;\\n\\t\\twidth: 44px;\\n\\t}\\n\\n\\t&__icon {\\n\\t\\tfilter: var(--background-invert-if-bright);\\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, `h3[data-v-90f2e098],h4[data-v-90f2e098]{font-weight:bold}h4[data-v-90f2e098],h5[data-v-90f2e098]{margin-block-start:12px}.info-note[data-v-90f2e098]{color:var(--color-text-maxcontrast)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/theming/src/components/admin/AppMenuSection.vue\"],\"names\":[],\"mappings\":\"AACA,wCACC,gBAAA,CAED,wCACC,uBAAA,CAGD,4BACC,mCAAA\",\"sourcesContent\":[\"\\nh3, h4 {\\n\\tfont-weight: bold;\\n}\\nh4, h5 {\\n\\tmargin-block-start: 12px;\\n}\\n\\n.info-note {\\n\\tcolor: var(--color-text-maxcontrast);\\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, `.field[data-v-c41a3e80]{display:flex;flex-direction:column;gap:4px 0}.field__row[data-v-c41a3e80]{display:flex;gap:0 4px}.field__description[data-v-c41a3e80]{color:var(--color-text-maxcontrast)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/theming/src/components/admin/shared/field.scss\",\"webpack://./apps/theming/src/components/admin/CheckboxField.vue\"],\"names\":[],\"mappings\":\"AAsBA,wBACC,YAAA,CACA,qBAAA,CACA,SAAA,CAEA,6BACC,YAAA,CACA,SAAA,CCzBD,qCACC,mCAAA\",\"sourcesContent\":[\"/**\\n * @copyright 2022 Christopher Ng \\n *\\n * @author Christopher Ng \\n *\\n * @license AGPL-3.0-or-later\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n.field {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tgap: 4px 0;\\n\\n\\t&__row {\\n\\t\\tdisplay: flex;\\n\\t\\tgap: 0 4px;\\n\\t}\\n}\\n\",\"\\n@import './shared/field.scss';\\n\\n.field {\\n\\t&__description {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\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, `.field[data-v-25e8f76e]{display:flex;flex-direction:column;gap:4px 0}.field__row[data-v-25e8f76e]{display:flex;gap:0 4px}.field__color-preview[data-v-25e8f76e]{width:var(--default-clickable-area);border-radius:var(--border-radius-large);background-color:var(--color-primary-default)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/theming/src/components/admin/shared/field.scss\",\"webpack://./apps/theming/src/components/admin/ColorPickerField.vue\"],\"names\":[],\"mappings\":\"AAsBA,wBACC,YAAA,CACA,qBAAA,CACA,SAAA,CAEA,6BACC,YAAA,CACA,SAAA,CCzBD,uCACC,mCAAA,CACA,wCAAA,CACA,6CAAA\",\"sourcesContent\":[\"/**\\n * @copyright 2022 Christopher Ng \\n *\\n * @author Christopher Ng \\n *\\n * @license AGPL-3.0-or-later\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n.field {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tgap: 4px 0;\\n\\n\\t&__row {\\n\\t\\tdisplay: flex;\\n\\t\\tgap: 0 4px;\\n\\t}\\n}\\n\",\"\\n@import './shared/field.scss';\\n\\n.field {\\n\\t&__color-preview {\\n\\t\\twidth: var(--default-clickable-area);\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t\\tbackground-color: var(--color-primary-default);\\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, `.field[data-v-36abeca7]{display:flex;flex-direction:column;gap:4px 0}.field__row[data-v-36abeca7]{display:flex;gap:0 4px}.field__loading-icon[data-v-36abeca7]{width:44px;height:44px}.field__preview[data-v-36abeca7]{width:70px;height:70px;background-size:contain;background-position:center;background-repeat:no-repeat;margin:10px 0}.field__preview--logoheader[data-v-36abeca7]{background-image:var(--image-logoheader)}.field__preview--favicon[data-v-36abeca7]{background-image:var(--image-favicon)}input[type=file][data-v-36abeca7]{display:none}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/theming/src/components/admin/shared/field.scss\",\"webpack://./apps/theming/src/components/admin/FileInputField.vue\"],\"names\":[],\"mappings\":\"AAsBA,wBACC,YAAA,CACA,qBAAA,CACA,SAAA,CAEA,6BACC,YAAA,CACA,SAAA,CCzBD,sCACC,UAAA,CACA,WAAA,CAGD,iCACC,UAAA,CACA,WAAA,CACA,uBAAA,CACA,0BAAA,CACA,2BAAA,CACA,aAAA,CAEA,6CACC,wCAAA,CAGD,0CACC,qCAAA,CAKH,kCACC,YAAA\",\"sourcesContent\":[\"/**\\n * @copyright 2022 Christopher Ng \\n *\\n * @author Christopher Ng \\n *\\n * @license AGPL-3.0-or-later\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see .\\n *\\n */\\n\\n.field {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tgap: 4px 0;\\n\\n\\t&__row {\\n\\t\\tdisplay: flex;\\n\\t\\tgap: 0 4px;\\n\\t}\\n}\\n\",\"\\n@import './shared/field.scss';\\n\\n.field {\\n\\t&__loading-icon {\\n\\t\\twidth: 44px;\\n\\t\\theight: 44px;\\n\\t}\\n\\n\\t&__preview {\\n\\t\\twidth: 70px;\\n\\t\\theight: 70px;\\n\\t\\tbackground-size: contain;\\n\\t\\tbackground-position: center;\\n\\t\\tbackground-repeat: no-repeat;\\n\\t\\tmargin: 10px 0;\\n\\n\\t\\t&--logoheader {\\n\\t\\t\\tbackground-image: var(--image-logoheader);\\n\\t\\t}\\n\\n\\t\\t&--favicon {\\n\\t\\t\\tbackground-image: var(--image-favicon);\\n\\t\\t}\\n\\t}\\n}\\n\\ninput[type=\\\"file\\\"] {\\n\\tdisplay: none;\\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, `.field[data-v-31f08db0]{max-width:400px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/theming/src/components/admin/TextField.vue\"],\"names\":[],\"mappings\":\"AACA,wBACC,eAAA\",\"sourcesContent\":[\"\\n.field {\\n\\tmax-width: 400px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// 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};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"1215\":\"dd1ef4c4cc807022e660\",\"5076\":\"15b21454a9691213632e\"}[chunkId] + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__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 = 5544;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && !scriptUrl) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = 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\t5544: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\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 = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\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 = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\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, [7874], () => (__webpack_require__(22610)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","styleRefreshFields","emits","data","showSuccess","errorMessage","computed","id","this","name","methods","reset","handleSuccess","setTimeout","includes","$emit","mixins","FieldMixin","watch","value","localValue","save","url","generateUrl","valueToPost","axios","post","setting","e","response","message","undo","defaultValue","components","NcCheckboxRadioSwitch","NcNoteCard","TextValueMixin","props","type","String","required","Boolean","displayName","label","description","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_vm","_c","_self","staticClass","attrs","_v","_s","on","$event","_e","title","fillColor","default","size","Number","_b","$attrs","NcButton","NcColorPicker","Undo","Palette","debounceSave","debounce","scopedSlots","_u","key","fn","proxy","t","allowedMimeTypes","loadState","Delete","NcLoadingIcon","Upload","mimeName","mimeValue","defaultMimeValue","ariaLabel","showLoading","acceptMime","join","showReset","showRemove","startsWith","activateLocalFilePicker","$refs","input","click","onChange","file","target","files","formData","FormData","append","removeBackground","class","ref","NcTextField","placeholder","maxlength","indexOf","_k","keyCode","apply","arguments","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperty","Object","defineProperty","enumerable","configurable","writable","_extends","assign","i","length","source","hasOwnProperty","call","_objectSpread","ownKeys","keys","getOwnPropertySymbols","concat","filter","sym","getOwnPropertyDescriptor","forEach","userAgent","pattern","window","navigator","match","IE11OrLess","Edge","FireFox","Safari","IOS","ChromeForAndroid","captureMode","capture","passive","el","event","addEventListener","off","removeEventListener","matches","selector","substring","msMatchesSelector","webkitMatchesSelector","_","getParentOrHost","host","document","nodeType","parentNode","closest","ctx","includeCTX","_throttleTimeout","R_SPACE","toggleClass","state","classList","className","replace","css","prop","val","style","defaultView","getComputedStyle","currentStyle","matrix","selfOnly","appliedTransforms","transform","matrixFn","DOMMatrix","WebKitCSSMatrix","CSSMatrix","MSCSSMatrix","find","tagName","list","getElementsByTagName","n","getWindowScrollingElement","scrollingElement","documentElement","getRect","relativeToContainingBlock","relativeToNonStaticParent","undoScale","container","getBoundingClientRect","elRect","top","left","bottom","right","height","width","innerHeight","innerWidth","containerRect","parseInt","elMatrix","scaleX","a","scaleY","d","isScrolledPast","elSide","parentSide","parent","getParentAutoScrollElement","elSideVal","parentSideVal","getChild","childNum","currentChild","children","display","Sortable","ghost","dragged","draggable","lastChild","last","lastElementChild","previousElementSibling","index","nodeName","toUpperCase","clone","getRelativeScrollOffset","offsetLeft","offsetTop","winScroller","scrollLeft","scrollTop","includeSelf","elem","gotSelf","clientWidth","scrollWidth","clientHeight","scrollHeight","elemCSS","overflowX","overflowY","body","isRectEqual","rect1","rect2","Math","round","throttle","callback","ms","args","scrollBy","x","y","Polymer","$","jQuery","Zepto","dom","cloneNode","expando","Date","getTime","plugins","defaults","initializeByDefault","PluginManager","mount","plugin","option","push","pluginEvent","eventName","sortable","evt","_this","eventCanceled","cancel","eventNameGlobal","pluginName","initializePlugins","initialized","modified","modifyOption","getEventProperties","eventProperties","modifiedValue","optionListeners","_ref","undefined","originalEvent","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_objectWithoutProperties","bind","dragEl","parentEl","ghostEl","rootEl","nextEl","lastDownEl","cloneEl","cloneHidden","dragStarted","moved","putSortable","activeSortable","active","oldIndex","oldDraggableIndex","newIndex","newDraggableIndex","hideGhostForTarget","_hideGhostForTarget","unhideGhostForTarget","_unhideGhostForTarget","cloneNowHidden","cloneNowShown","dispatchSortableEvent","_dispatchEvent","info","targetEl","toEl","fromEl","extraEventProperties","onName","charAt","substr","CustomEvent","createEvent","initEvent","bubbles","cancelable","to","from","item","pullMode","lastPutMode","allEventProperties","dispatchEvent","activeGroup","tapEvt","touchEvt","lastDx","lastDy","tapDistanceLeft","tapDistanceTop","lastTarget","lastDirection","targetMoveDistance","ghostRelativeParent","awaitingDragStarted","ignoreNextClick","sortables","pastFirstInvertThresh","isCircumstantialInvert","ghostRelativeParentInitialScroll","_silent","savedInputChecked","documentExists","PositionGhostAbsolutely","CSSFloatProperty","supportDraggable","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","originalGroup","checkPull","checkPut","put","revertClone","preventDefault","stopPropagation","stopImmediatePropagation","nearestEmptyInsertDetectEvent","touches","nearest","clientX","clientY","some","rect","threshold","emptyInsertThreshold","insideHorizontally","insideVertically","ret","_onDragOver","_checkOutsideTargetEl","_isOutsideThisEl","toString","animationCallbackId","animationStates","sort","disabled","store","handle","test","swapThreshold","invertSwap","invertedSwapThreshold","removeCloneOnHide","direction","ghostClass","chosenClass","dragClass","ignore","preventOnFilter","animation","easing","setData","dataTransfer","textContent","dropBubble","dragoverBubble","dataIdAttr","delay","delayOnTouchOnly","touchStartThreshold","devicePixelRatio","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","nativeDraggable","_onTapStart","get","captureAnimationState","slice","child","fromRect","thisAnimationDuration","childMatrix","f","addAnimationState","removeAnimationState","splice","arr","indexOfObject","animateAll","clearTimeout","animating","animationTime","time","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","src","href","sum","charCodeAt","_nextTick","_cancelNextTick","contains","_getDirection","touch","pointerType","originalTarget","shadowRoot","path","composedPath","root","inputs","idx","checked","_saveInputCheckedState","button","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","b","c","cssMatrix","appendChild","_hideClone","cloneId","insertBefore","_loopId","setInterval","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","handleEvent","dropEffect","_globalDragOver","toArray","order","getAttribute","items","set","destroy","Array","querySelectorAll","removeAttribute","utils","is","extend","dst","nextTick","cancelNextTick","detectDirection","element","_len","_key","create","version","scrollEl","scrollRootEl","lastAutoScrollX","lastAutoScrollY","touchEvt$1","pointerElemChangedInterval","autoScrolls","scrolling","clearAutoScrolls","autoScroll","pid","clearPointerElemChangedInterval","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","startIndex","dragStart","_ref2","_ref3","_ref4","parentSortable","AutoScroll","_handleAutoScroll","_handleFallbackAutoScroll","dragOverCompleted","dragOverBubble","nulling","ogElemScroller","newElem","util","warn","defineComponent","IconArrowDown","IconArrowUp","ariaDescribedby","ariaDetails","app","isFirst","isLast","move:up","move:down","update:focus","setup","emit","buttonUp","buttonDown","needsFocus","moveUp","moveDown","keepFocus","$el","focus","_setupProxy","icon","directives","rawName","expression","AppOrderSelectorElement","Fragment","isArray","listElement","appList","newValue","renderCount","resetOptions","defaultOptions","onUpdate","_valueIsRef","isRef","array","moveArrayElement","start","querySelector","stop","useSortable","selectorElements","onUpdated","statusInfo","before","statusInfoId","random","updateStatusInfo","position","total","_l","_g","refInFor","AppOrderSelector","NcSelect","NcSettingsSection","defaultApps","every","hasCustomDefaultApp","selectedApps","allApps","values","map","saveSetting","then","catch","showError","model","$$v","backgroundMime","canThemeIcons","color","docUrl","docUrlIcons","faviconMime","isThemable","legalNoticeUrl","logoheaderMime","logoMime","notThemableErrorMessage","privacyPolicyUrl","slogan","userThemingDisabled","textFields","colorPickerField","fileInputFields","advancedTextFields","advancedFileInputFields","userThemingField","AppMenuSection","CheckboxField","ColorPickerField","FileInputField","TextField","field","$set","__webpack_nonce__","btoa","getRequestToken","Vue","OC","theming","App","$mount","$on","refreshStyles","head","theme","URL","searchParams","now","newTheme","onload","remove","___CSS_LOADER_URL_IMPORT_0___","___CSS_LOADER_EXPORT___","___CSS_LOADER_URL_REPLACEMENT_0___","module","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","loaded","__webpack_modules__","m","O","result","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","r","getter","__esModule","definition","o","chunkId","Promise","all","reduce","promises","u","g","globalThis","Function","l","done","script","needAttach","scripts","s","charset","timeout","nc","setAttribute","onScriptComplete","prev","onerror","doneFns","toStringTag","nmd","paths","scriptUrl","importScripts","location","currentScript","Error","p","baseURI","self","installedChunks","installedChunkData","promise","resolve","reject","error","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/theming-personal-theming.js b/dist/theming-personal-theming.js index e67a9d40731..0d60144fc6e 100644 --- a/dist/theming-personal-theming.js +++ b/dist/theming-personal-theming.js @@ -1,3 +1,3 @@ /*! For license information please see theming-personal-theming.js.LICENSE.txt */ -(()=>{var e,n,r,o={30923:(e,n,r)=>{"use strict";var o=r(77958),a=r(20144),i=r(79753),l=r(43554),s=r(93664),c=r(9359),u=r(90580),d=r(64024),h=(r(97248),r(20296)),p=r.n(h),g=r(12926),f=r(1082),m=r.n(f),v=r(11734),b=r(44893);const A={name:"ImageEditIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var _=r(51900);const y=(0,_.Z)(A,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon image-edit-icon",attrs:{"aria-hidden":!t.title,"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:"M22.7 14.3L21.7 15.3L19.7 13.3L20.7 12.3C20.8 12.2 20.9 12.1 21.1 12.1C21.2 12.1 21.4 12.2 21.5 12.3L22.8 13.6C22.9 13.8 22.9 14.1 22.7 14.3M13 19.9V22H15.1L21.2 15.9L19.2 13.9L13 19.9M21 5C21 3.9 20.1 3 19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H11V19.1L12.1 18H5L8.5 13.5L11 16.5L14.5 12L16.1 14.1L21 9.1V5Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports;var C=r(25108);const w=(0,l.j)("theming","backgroundImage"),k=(0,l.j)("theming","shippedBackgrounds"),x=(0,l.j)("theming","themingDefaultBackground"),S=(0,l.j)("theming","defaultShippedBackground"),D=t=>(0,i.generateFilePath)("theming","","img/background/")+t,T={name:"BackgroundSettings",components:{Check:v.default,Close:b.default,ImageEdit:y,NcColorPicker:g.N},data:()=>({loading:!1,Theming:(0,l.j)("theming","data",{}),backgroundImage:w}),computed:{shippedBackgrounds(){return Object.keys(k).map((t=>({name:t,url:D(t),preview:D("preview/"+t),details:k[t]}))).filter((t=>!(!this.isGlobalBackgroundDeleted&&!this.isGlobalBackgroundDefault)||t.name!==S))},isGlobalBackgroundDefault:()=>!!x,isGlobalBackgroundDeleted:()=>"backgroundColor"===x,isBackgroundDisabled(){return"disabled"===this.backgroundImage||!this.backgroundImage}},methods:{invertTextColor(t){return this.calculateLuma(t)>.6},calculateLuma(t){const[e,n,r]=this.hexToRGB(t);return(.2126*e+.7152*n+.0722*r)/255},hexToRGB(t){const e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return e?[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16)]:null},async update(t){this.backgroundImage=t.backgroundImage,this.Theming.color=t.backgroundColor,this.$emit("update:background"),this.loading=!1},async setDefault(){this.loading="default";const t=await s.Z.post((0,i.generateUrl)("/apps/theming/background/default"));this.update(t.data)},async setShipped(t){this.loading=t;const e=await s.Z.post((0,i.generateUrl)("/apps/theming/background/shipped"),{value:t});this.update(e.data)},async setFile(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.loading="custom";const n=await s.Z.post((0,i.generateUrl)("/apps/theming/background/custom"),{value:t,color:e});this.update(n.data)},async removeBackground(){this.loading="remove";const t=await s.Z.delete((0,i.generateUrl)("/apps/theming/background/custom"));this.update(t.data)},async pickColor(t){this.loading="color";const e=t?.target?.dataset?.color||this.Theming?.color||"#0082c9",n=await s.Z.post((0,i.generateUrl)("/apps/theming/background/color"),{color:e});this.update(n.data)},debouncePickColor:p()((function(){this.pickColor(...arguments)}),200),pickFile(){(0,d.fn)(t("theming","Select a background from your files")).allowDirectories(!1).setMimeTypeFilter(["image/png","image/gif","image/jpeg","image/svg+xml","image/svg"]).setMultiSelect(!1).addButton({id:"select",label:t("theming","Select background"),callback:t=>{this.applyFile(t[0]?.path)},type:"primary"}).build().pick()},async applyFile(e){if(!e||"string"!=typeof e||0===e.trim().length||"/"===e)return C.error("No valid background have been selected",{path:e}),void(0,d.x2)(t("theming","No background has been selected"));this.loading="custom";let n=null,r=null;try{const t=(0,i.generateRemoteUrl)("dav/files/"+(0,o.ts)().uid+e);n=await s.Z.get(t,{responseType:"blob"});const a=URL.createObjectURL(n.data),l=await this.getColorPaletteFromBlob(a);r=l?.DarkVibrant?.hex,this.setFile(e,r),C.debug("Extracted colour",r,"from custom image",e,l)}catch(t){this.setFile(e),C.error("Unable to extract colour from custom image",{error:t,path:e,response:n,color:r})}},getColorPaletteFromBlob:t=>new Promise(((e,n)=>{new(m())(t).getPalette(((t,r)=>{t&&n(t),e(r)}))}))}};var E=r(93379),I=r.n(E),O=r(7795),M=r.n(O),P=r(90569),L=r.n(P),N=r(3565),B=r.n(N),F=r(19216),j=r.n(F),R=r(44589),U=r.n(R),Z=r(94496),H={};H.styleTagTransform=U(),H.setAttributes=B(),H.insert=L().bind(null,"head"),H.domAPI=M(),H.insertStyleElement=j(),I()(Z.Z,H),Z.Z&&Z.Z.locals&&Z.Z.locals;const V=(0,_.Z)(T,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"background-selector",attrs:{"data-user-theming-background-settings":""}},[e("button",{class:{"icon-loading":"custom"===t.loading,"background background__filepicker":!0,"background--active":"custom"===t.backgroundImage},attrs:{"aria-pressed":"custom"===t.backgroundImage,"data-color-bright":t.invertTextColor(t.Theming.color),"data-user-theming-background-custom":"",tabindex:"0"},on:{click:t.pickFile}},[t._v("\n\t\t"+t._s(t.t("theming","Custom background"))+"\n\t\t"),"custom"!==t.backgroundImage?e("ImageEdit",{attrs:{size:26}}):t._e(),t._v(" "),e("Check",{attrs:{size:44}})],1),t._v(" "),e("button",{class:{"icon-loading":"default"===t.loading,"background background__default":!0,"background--active":"default"===t.backgroundImage},style:{"--border-color":t.Theming.defaultColor},attrs:{"aria-pressed":"default"===t.backgroundImage,"data-color-bright":t.invertTextColor(t.Theming.defaultColor),"data-user-theming-background-default":"",tabindex:"0"},on:{click:t.setDefault}},[t._v("\n\t\t"+t._s(t.t("theming","Default background"))+"\n\t\t"),e("Check",{attrs:{size:44}})],1),t._v(" "),e("NcColorPicker",{on:{input:t.debouncePickColor},model:{value:t.Theming.color,callback:function(e){t.$set(t.Theming,"color",e)},expression:"Theming.color"}},[e("button",{staticClass:"background background__color",style:{backgroundColor:t.Theming.color,"--border-color":t.Theming.color},attrs:{"data-color":t.Theming.color,"data-color-bright":t.invertTextColor(t.Theming.color),"data-user-theming-background-color":"",tabindex:"0"}},[t._v("\n\t\t\t"+t._s(t.t("theming","Change color"))+"\n\t\t")])]),t._v(" "),e("button",{class:{"background background__delete":!0,"background--active":t.isBackgroundDisabled},attrs:{"aria-pressed":t.isBackgroundDisabled,"data-user-theming-background-clear":"",tabindex:"0"},on:{click:t.removeBackground}},[t._v("\n\t\t"+t._s(t.t("theming","No background"))+"\n\t\t"),t.isBackgroundDisabled?t._e():e("Close",{attrs:{size:32}}),t._v(" "),e("Check",{attrs:{size:44}})],1),t._v(" "),t._l(t.shippedBackgrounds,(function(n){return e("button",{key:n.name,class:{"background background__shipped":!0,"icon-loading":t.loading===n.name,"background--active":t.backgroundImage===n.name},style:{backgroundImage:"url("+n.preview+")","--border-color":n.details.primary_color},attrs:{title:n.details.attribution,"aria-label":n.details.description,"aria-pressed":t.backgroundImage===n.name,"data-color-bright":"dark"===n.details.theming,"data-user-theming-background-shipped":n.name,tabindex:"0"},on:{click:function(e){return t.setShipped(n.name)}}},[e("Check",{attrs:{size:44}})],1)}))],2)}),[],!1,null,"e836b210",null).exports;var z=r(25108);const Y={name:"ItemPreview",components:{NcCheckboxRadioSwitch:c.Z},props:{enforced:{type:Boolean,default:!1},selected:{type:Boolean,default:!1},theme:{type:Object,required:!0},type:{type:String,default:""},unique:{type:Boolean,default:!1}},computed:{switchType(){return this.unique?"switch":"radio"},name(){return this.unique?null:this.type},img(){return(0,i.generateFilePath)("theming","img",this.theme.id+".jpg")},checked:{get(){return this.selected},set(t){z.debug("Changed theme",this.theme.id,t),this.unique?this.$emit("change",{enabled:!0===t,id:this.theme.id}):this.$emit("change",{enabled:!0,id:this.theme.id})}}},methods:{onToggle(){"radio"!==this.switchType?this.checked=!this.checked:this.checked=!0}}};var q=r(62782),G={};G.styleTagTransform=U(),G.setAttributes=B(),G.insert=L().bind(null,"head"),G.domAPI=M(),G.insertStyleElement=j(),I()(q.Z,G),q.Z&&q.Z.locals&&q.Z.locals;const X=(0,_.Z)(Y,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"theming__preview",class:"theming__preview--"+t.theme.id},[e("div",{staticClass:"theming__preview-image",style:{backgroundImage:"url("+t.img+")"},on:{click:t.onToggle}}),t._v(" "),e("div",{staticClass:"theming__preview-description"},[e("h3",[t._v(t._s(t.theme.title))]),t._v(" "),e("p",{staticClass:"theming__preview-explanation"},[t._v(t._s(t.theme.description))]),t._v(" "),t.enforced?e("span",{staticClass:"theming__preview-warning",attrs:{role:"note"}},[t._v("\n\t\t\t"+t._s(t.t("theming","Theme selection is enforced"))+"\n\t\t")]):t._e(),t._v(" "),e("NcCheckboxRadioSwitch",{staticClass:"theming__preview-toggle",attrs:{checked:t.checked,disabled:t.enforced,name:t.name,type:t.switchType},on:{"update:checked":function(e){t.checked=e}}},[t._v("\n\t\t\t"+t._s(t.theme.enableLabel)+"\n\t\t")])],1)])}),[],!1,null,"1a08e35a",null).exports;var W=r(31352),$=r(9568),K=r(64886);function Q(t){return Q="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Q(t)}function J(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function tt(){return tt=Object.assign||function(t){for(var e=1;e"===e[0]&&(e=e.substring(1)),t)try{if(t.matches)return t.matches(e);if(t.msMatchesSelector)return t.msMatchesSelector(e);if(t.webkitMatchesSelector)return t.webkitMatchesSelector(e)}catch(t){return!1}return!1}}function pt(t){return t.host&&t!==document&&t.host.nodeType?t.host:t.parentNode}function gt(t,e,n,r){if(t){n=n||document;do{if(null!=e&&(">"===e[0]?t.parentNode===n&&ht(t,e):ht(t,e))||r&&t===n)return t;if(t===n)break}while(t=pt(t))}return null}var ft,mt=/\s+/g;function vt(t,e,n){if(t&&e)if(t.classList)t.classList[n?"add":"remove"](e);else{var r=(" "+t.className+" ").replace(mt," ").replace(" "+e+" "," ");t.className=(r+(n?" "+e:"")).replace(mt," ")}}function bt(t,e,n){var r=t&&t.style;if(r){if(void 0===n)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(t,""):t.currentStyle&&(n=t.currentStyle),void 0===e?n:n[e];e in r||-1!==e.indexOf("webkit")||(e="-webkit-"+e),r[e]=n+("string"==typeof n?"":"px")}}function At(t,e){var n="";if("string"==typeof t)n=t;else do{var r=bt(t,"transform");r&&"none"!==r&&(n=r+" "+n)}while(!e&&(t=t.parentNode));var o=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return o&&new o(n)}function _t(t,e,n){if(t){var r=t.getElementsByTagName(e),o=0,a=r.length;if(n)for(;o=a:o<=a))return r;if(r===yt())break;r=Tt(r,!1)}return!1}function kt(t,e,n){for(var r=0,o=0,a=t.children;o2&&void 0!==arguments[2]?arguments[2]:{},r=n.evt,o=function(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},a=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}(n,["evt"]);Bt.pluginEvent.bind(Ee)(t,e,et({dragEl:Rt,parentEl:Ut,ghostEl:Zt,rootEl:Ht,nextEl:Vt,lastDownEl:zt,cloneEl:Yt,cloneHidden:qt,dragStarted:ae,putSortable:Qt,activeSortable:Ee.active,originalEvent:r,oldIndex:Gt,oldDraggableIndex:Wt,newIndex:Xt,newDraggableIndex:$t,hideGhostForTarget:xe,unhideGhostForTarget:Se,cloneNowHidden:function(){qt=!0},cloneNowShown:function(){qt=!1},dispatchSortableEvent:function(t){jt({sortable:e,name:t,originalEvent:r})}},o))};function jt(t){!function(t){var e=t.sortable,n=t.rootEl,r=t.name,o=t.targetEl,a=t.cloneEl,i=t.toEl,l=t.fromEl,s=t.oldIndex,c=t.newIndex,u=t.oldDraggableIndex,d=t.newDraggableIndex,h=t.originalEvent,p=t.putSortable,g=t.extraEventProperties;if(e=e||n&&n[Pt]){var f,m=e.options,v="on"+r.charAt(0).toUpperCase()+r.substr(1);!window.CustomEvent||rt||ot?(f=document.createEvent("Event")).initEvent(r,!0,!0):f=new CustomEvent(r,{bubbles:!0,cancelable:!0}),f.to=i||n,f.from=l||n,f.item=o||n,f.clone=a,f.oldIndex=s,f.newIndex=c,f.oldDraggableIndex=u,f.newDraggableIndex=d,f.originalEvent=h,f.pullMode=p?p.lastPutMode:void 0;var b=et({},g,Bt.getEventProperties(r,e));for(var A in b)f[A]=b[A];n&&n.dispatchEvent(f),m[v]&&m[v].call(e,f)}}(et({putSortable:Qt,cloneEl:Yt,targetEl:Rt,rootEl:Ht,oldIndex:Gt,oldDraggableIndex:Wt,newIndex:Xt,newDraggableIndex:$t},t))}var Rt,Ut,Zt,Ht,Vt,zt,Yt,qt,Gt,Xt,Wt,$t,Kt,Qt,Jt,te,ee,ne,re,oe,ae,ie,le,se,ce,ue=!1,de=!1,he=[],pe=!1,ge=!1,fe=[],me=!1,ve=[],be="undefined"!=typeof document,Ae=lt,_e=ot||rt?"cssFloat":"float",ye=be&&!st&&!lt&&"draggable"in document.createElement("div"),Ce=function(){if(be){if(rt)return!1;var t=document.createElement("x");return t.style.cssText="pointer-events:auto","auto"===t.style.pointerEvents}}(),we=function(t,e){var n=bt(t),r=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),o=kt(t,0,e),a=kt(t,1,e),i=o&&bt(o),l=a&&bt(a),s=i&&parseInt(i.marginLeft)+parseInt(i.marginRight)+Ct(o).width,c=l&&parseInt(l.marginLeft)+parseInt(l.marginRight)+Ct(a).width;if("flex"===n.display)return"column"===n.flexDirection||"column-reverse"===n.flexDirection?"vertical":"horizontal";if("grid"===n.display)return n.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(o&&i.float&&"none"!==i.float){var u="left"===i.float?"left":"right";return!a||"both"!==l.clear&&l.clear!==u?"horizontal":"vertical"}return o&&("block"===i.display||"flex"===i.display||"table"===i.display||"grid"===i.display||s>=r&&"none"===n[_e]||a&&"none"===n[_e]&&s+c>r)?"vertical":"horizontal"},ke=function(t){function e(t,n){return function(r,o,a,i){var l=r.options.group.name&&o.options.group.name&&r.options.group.name===o.options.group.name;if(null==t&&(n||l))return!0;if(null==t||!1===t)return!1;if(n&&"clone"===t)return t;if("function"==typeof t)return e(t(r,o,a,i),n)(r,o,a,i);var s=(n?r:o).options.group.name;return!0===t||"string"==typeof t&&t===s||t.join&&t.indexOf(s)>-1}}var n={},r=t.group;r&&"object"==Q(r)||(r={name:r}),n.name=r.name,n.checkPull=e(r.pull,!0),n.checkPut=e(r.put),n.revertClone=r.revertClone,t.group=n},xe=function(){!Ce&&Zt&&bt(Zt,"display","none")},Se=function(){!Ce&&Zt&&bt(Zt,"display","")};be&&document.addEventListener("click",(function(t){if(de)return t.preventDefault(),t.stopPropagation&&t.stopPropagation(),t.stopImmediatePropagation&&t.stopImmediatePropagation(),de=!1,!1}),!0);var De=function(t){if(Rt){t=t.touches?t.touches[0]:t;var e=(o=t.clientX,a=t.clientY,he.some((function(t){if(!xt(t)){var e=Ct(t),n=t[Pt].options.emptyInsertThreshold,r=o>=e.left-n&&o<=e.right+n,l=a>=e.top-n&&a<=e.bottom+n;return n&&r&&l?i=t:void 0}})),i);if(e){var n={};for(var r in t)t.hasOwnProperty(r)&&(n[r]=t[r]);n.target=n.rootEl=e,n.preventDefault=void 0,n.stopPropagation=void 0,e[Pt]._onDragOver(n)}}var o,a,i},Te=function(t){Rt&&Rt.parentNode[Pt]._isOutsideThisEl(t.target)};function Ee(t,e){if(!t||!t.nodeType||1!==t.nodeType)throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(t));this.el=t,this.options=e=tt({},e),t[Pt]=this;var n,r,o={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(t.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return we(t,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(t,e){t.setData("Text",e.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:!1!==Ee.supportPointer&&"PointerEvent"in window,emptyInsertThreshold:5};for(var a in Bt.initializePlugins(this,t,o),o)!(a in e)&&(e[a]=o[a]);for(var i in ke(e),this)"_"===i.charAt(0)&&"function"==typeof this[i]&&(this[i]=this[i].bind(this));this.nativeDraggable=!e.forceFallback&&ye,this.nativeDraggable&&(this.options.touchStartThreshold=1),e.supportPointer?ut(t,"pointerdown",this._onTapStart):(ut(t,"mousedown",this._onTapStart),ut(t,"touchstart",this._onTapStart)),this.nativeDraggable&&(ut(t,"dragover",this),ut(t,"dragenter",this)),he.push(this.el),e.store&&e.store.get&&this.sort(e.store.get(this)||[]),tt(this,(r=[],{captureAnimationState:function(){r=[],this.options.animation&&[].slice.call(this.el.children).forEach((function(t){if("none"!==bt(t,"display")&&t!==Ee.ghost){r.push({target:t,rect:Ct(t)});var e=et({},r[r.length-1].rect);if(t.thisAnimationDuration){var n=At(t,!0);n&&(e.top-=n.f,e.left-=n.e)}t.fromRect=e}}))},addAnimationState:function(t){r.push(t)},removeAnimationState:function(t){r.splice(function(t,e){for(var n in t)if(t.hasOwnProperty(n))for(var r in e)if(e.hasOwnProperty(r)&&e[r]===t[n][r])return Number(n);return-1}(r,{target:t}),1)},animateAll:function(t){var e=this;if(!this.options.animation)return clearTimeout(n),void("function"==typeof t&&t());var o=!1,a=0;r.forEach((function(t){var n=0,r=t.target,i=r.fromRect,l=Ct(r),s=r.prevFromRect,c=r.prevToRect,u=t.rect,d=At(r,!0);d&&(l.top-=d.f,l.left-=d.e),r.toRect=l,r.thisAnimationDuration&&Et(s,l)&&!Et(i,l)&&(u.top-l.top)/(u.left-l.left)==(i.top-l.top)/(i.left-l.left)&&(n=function(t,e,n,r){return Math.sqrt(Math.pow(e.top-t.top,2)+Math.pow(e.left-t.left,2))/Math.sqrt(Math.pow(e.top-n.top,2)+Math.pow(e.left-n.left,2))*r.animation}(u,s,c,e.options)),Et(l,i)||(r.prevFromRect=i,r.prevToRect=l,n||(n=e.options.animation),e.animate(r,u,l,n)),n&&(o=!0,a=Math.max(a,n),clearTimeout(r.animationResetTimer),r.animationResetTimer=setTimeout((function(){r.animationTime=0,r.prevFromRect=null,r.fromRect=null,r.prevToRect=null,r.thisAnimationDuration=null}),n),r.thisAnimationDuration=n)})),clearTimeout(n),o?n=setTimeout((function(){"function"==typeof t&&t()}),a):"function"==typeof t&&t(),r=[]},animate:function(t,e,n,r){if(r){bt(t,"transition",""),bt(t,"transform","");var o=At(this.el),a=o&&o.a,i=o&&o.d,l=(e.left-n.left)/(a||1),s=(e.top-n.top)/(i||1);t.animatingX=!!l,t.animatingY=!!s,bt(t,"transform","translate3d("+l+"px,"+s+"px,0)"),function(t){t.offsetWidth}(t),bt(t,"transition","transform "+r+"ms"+(this.options.easing?" "+this.options.easing:"")),bt(t,"transform","translate3d(0,0,0)"),"number"==typeof t.animated&&clearTimeout(t.animated),t.animated=setTimeout((function(){bt(t,"transition",""),bt(t,"transform",""),t.animated=!1,t.animatingX=!1,t.animatingY=!1}),r)}}}))}function Ie(t,e,n,r,o,a,i,l){var s,c,u=t[Pt],d=u.options.onMove;return!window.CustomEvent||rt||ot?(s=document.createEvent("Event")).initEvent("move",!0,!0):s=new CustomEvent("move",{bubbles:!0,cancelable:!0}),s.to=e,s.from=t,s.dragged=n,s.draggedRect=r,s.related=o||e,s.relatedRect=a||Ct(e),s.willInsertAfter=l,s.originalEvent=i,t.dispatchEvent(s),d&&(c=d.call(u,s,i)),c}function Oe(t){t.draggable=!1}function Me(){me=!1}function Pe(t){for(var e=t.tagName+t.className+t.src+t.href+t.textContent,n=e.length,r=0;n--;)r+=e.charCodeAt(n);return r.toString(36)}function Le(t){return setTimeout(t,0)}function Ne(t){return clearTimeout(t)}Ee.prototype={constructor:Ee,_isOutsideThisEl:function(t){this.el.contains(t)||t===this.el||(ie=null)},_getDirection:function(t,e){return"function"==typeof this.options.direction?this.options.direction.call(this,t,e,Rt):this.options.direction},_onTapStart:function(t){if(t.cancelable){var e=this,n=this.el,r=this.options,o=r.preventOnFilter,a=t.type,i=t.touches&&t.touches[0]||t.pointerType&&"touch"===t.pointerType&&t,l=(i||t).target,s=t.target.shadowRoot&&(t.path&&t.path[0]||t.composedPath&&t.composedPath()[0])||l,c=r.filter;if(function(t){ve.length=0;for(var e=t.getElementsByTagName("input"),n=e.length;n--;){var r=e[n];r.checked&&ve.push(r)}}(n),!Rt&&!(/mousedown|pointerdown/.test(a)&&0!==t.button||r.disabled||s.isContentEditable||(l=gt(l,r.draggable,n,!1))&&l.animated||zt===l)){if(Gt=St(l),Wt=St(l,r.draggable),"function"==typeof c){if(c.call(this,t,l,this))return jt({sortable:e,rootEl:s,name:"filter",targetEl:l,toEl:n,fromEl:n}),Ft("filter",e,{evt:t}),void(o&&t.cancelable&&t.preventDefault())}else if(c&&(c=c.split(",").some((function(r){if(r=gt(s,r.trim(),n,!1))return jt({sortable:e,rootEl:r,name:"filter",targetEl:l,fromEl:n,toEl:n}),Ft("filter",e,{evt:t}),!0}))))return void(o&&t.cancelable&&t.preventDefault());r.handle&&!gt(s,r.handle,n,!1)||this._prepareDragStart(t,i,l)}}},_prepareDragStart:function(t,e,n){var r,o=this,a=o.el,i=o.options,l=a.ownerDocument;if(n&&!Rt&&n.parentNode===a){var s=Ct(n);if(Ht=a,Ut=(Rt=n).parentNode,Vt=Rt.nextSibling,zt=n,Kt=i.group,Ee.dragged=Rt,Jt={target:Rt,clientX:(e||t).clientX,clientY:(e||t).clientY},re=Jt.clientX-s.left,oe=Jt.clientY-s.top,this._lastX=(e||t).clientX,this._lastY=(e||t).clientY,Rt.style["will-change"]="all",r=function(){Ft("delayEnded",o,{evt:t}),Ee.eventCanceled?o._onDrop():(o._disableDelayedDragEvents(),!at&&o.nativeDraggable&&(Rt.draggable=!0),o._triggerDragStart(t,e),jt({sortable:o,name:"choose",originalEvent:t}),vt(Rt,i.chosenClass,!0))},i.ignore.split(",").forEach((function(t){_t(Rt,t.trim(),Oe)})),ut(l,"dragover",De),ut(l,"mousemove",De),ut(l,"touchmove",De),ut(l,"mouseup",o._onDrop),ut(l,"touchend",o._onDrop),ut(l,"touchcancel",o._onDrop),at&&this.nativeDraggable&&(this.options.touchStartThreshold=4,Rt.draggable=!0),Ft("delayStart",this,{evt:t}),!i.delay||i.delayOnTouchOnly&&!e||this.nativeDraggable&&(ot||rt))r();else{if(Ee.eventCanceled)return void this._onDrop();ut(l,"mouseup",o._disableDelayedDrag),ut(l,"touchend",o._disableDelayedDrag),ut(l,"touchcancel",o._disableDelayedDrag),ut(l,"mousemove",o._delayedDragTouchMoveHandler),ut(l,"touchmove",o._delayedDragTouchMoveHandler),i.supportPointer&&ut(l,"pointermove",o._delayedDragTouchMoveHandler),o._dragStartTimer=setTimeout(r,i.delay)}}},_delayedDragTouchMoveHandler:function(t){var e=t.touches?t.touches[0]:t;Math.max(Math.abs(e.clientX-this._lastX),Math.abs(e.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){Rt&&Oe(Rt),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var t=this.el.ownerDocument;dt(t,"mouseup",this._disableDelayedDrag),dt(t,"touchend",this._disableDelayedDrag),dt(t,"touchcancel",this._disableDelayedDrag),dt(t,"mousemove",this._delayedDragTouchMoveHandler),dt(t,"touchmove",this._delayedDragTouchMoveHandler),dt(t,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(t,e){e=e||"touch"==t.pointerType&&t,!this.nativeDraggable||e?this.options.supportPointer?ut(document,"pointermove",this._onTouchMove):ut(document,e?"touchmove":"mousemove",this._onTouchMove):(ut(Rt,"dragend",this),ut(Ht,"dragstart",this._onDragStart));try{document.selection?Le((function(){document.selection.empty()})):window.getSelection().removeAllRanges()}catch(t){}},_dragStarted:function(t,e){if(ue=!1,Ht&&Rt){Ft("dragStarted",this,{evt:e}),this.nativeDraggable&&ut(document,"dragover",Te);var n=this.options;!t&&vt(Rt,n.dragClass,!1),vt(Rt,n.ghostClass,!0),Ee.active=this,t&&this._appendGhost(),jt({sortable:this,name:"start",originalEvent:e})}else this._nulling()},_emulateDragOver:function(){if(te){this._lastX=te.clientX,this._lastY=te.clientY,xe();for(var t=document.elementFromPoint(te.clientX,te.clientY),e=t;t&&t.shadowRoot&&(t=t.shadowRoot.elementFromPoint(te.clientX,te.clientY))!==e;)e=t;if(Rt.parentNode[Pt]._isOutsideThisEl(t),e)do{if(e[Pt]&&e[Pt]._onDragOver({clientX:te.clientX,clientY:te.clientY,target:t,rootEl:e})&&!this.options.dragoverBubble)break;t=e}while(e=e.parentNode);Se()}},_onTouchMove:function(t){if(Jt){var e=this.options,n=e.fallbackTolerance,r=e.fallbackOffset,o=t.touches?t.touches[0]:t,a=Zt&&At(Zt,!0),i=Zt&&a&&a.a,l=Zt&&a&&a.d,s=Ae&&ce&&Dt(ce),c=(o.clientX-Jt.clientX+r.x)/(i||1)+(s?s[0]-fe[0]:0)/(i||1),u=(o.clientY-Jt.clientY+r.y)/(l||1)+(s?s[1]-fe[1]:0)/(l||1);if(!Ee.active&&!ue){if(n&&Math.max(Math.abs(o.clientX-this._lastX),Math.abs(o.clientY-this._lastY))r.right+10||t.clientX<=r.right&&t.clientY>r.bottom&&t.clientX>=r.left:t.clientX>r.right&&t.clientY>r.top||t.clientX<=r.right&&t.clientY>r.bottom+10}(t,o,this)&&!f.animated){if(f===Rt)return I(!1);if(f&&a===t.target&&(i=f),i&&(n=Ct(i)),!1!==Ie(Ht,a,Rt,e,i,n,t,!!i))return E(),a.appendChild(Rt),Ut=a,O(),I(!0)}else if(i.parentNode===a){n=Ct(i);var m,v,b,A=Rt.parentNode!==a,_=!function(t,e,n){var r=n?t.left:t.top,o=n?t.right:t.bottom,a=n?t.width:t.height,i=n?e.left:e.top,l=n?e.right:e.bottom,s=n?e.width:e.height;return r===i||o===l||r+a/2===i+s/2}(Rt.animated&&Rt.toRect||e,i.animated&&i.toRect||n,o),y=o?"top":"left",C=wt(i,"top","top")||wt(Rt,"top","top"),w=C?C.scrollTop:void 0;if(ie!==i&&(v=n[y],pe=!1,ge=!_&&l.invertSwap||A),m=function(t,e,n,r,o,a,i,l){var s=r?t.clientY:t.clientX,c=r?n.height:n.width,u=r?n.top:n.left,d=r?n.bottom:n.right,h=!1;if(!i)if(l&&seu+c*a/2:sd-se)return-le}else if(s>u+c*(1-o)/2&&sd-c*a/2)?s>u+c/2?1:-1:0}(t,i,n,o,_?1:l.swapThreshold,null==l.invertedSwapThreshold?l.swapThreshold:l.invertedSwapThreshold,ge,ie===i),0!==m){var k=St(Rt);do{k-=m,b=Ut.children[k]}while(b&&("none"===bt(b,"display")||b===Zt))}if(0===m||b===i)return I(!1);ie=i,le=m;var x=i.nextElementSibling,S=!1,D=Ie(Ht,a,Rt,e,i,n,t,S=1===m);if(!1!==D)return 1!==D&&-1!==D||(S=1===D),me=!0,setTimeout(Me,30),E(),S&&!x?a.appendChild(Rt):i.parentNode.insertBefore(Rt,S?x:i),C&&Ot(C,0,w-C.scrollTop),Ut=Rt.parentNode,void 0===v||ge||(se=Math.abs(v-Ct(i)[y])),O(),I(!0)}if(a.contains(Rt))return I(!1)}return!1}function T(l,s){Ft(l,p,et({evt:t,isOwner:u,axis:o?"vertical":"horizontal",revert:r,dragRect:e,targetRect:n,canSort:d,fromSortable:h,target:i,completed:I,onMove:function(n,r){return Ie(Ht,a,Rt,e,n,Ct(n),t,r)},changed:O},s))}function E(){T("dragOverAnimationCapture"),p.captureAnimationState(),p!==h&&h.captureAnimationState()}function I(e){return T("dragOverCompleted",{insertion:e}),e&&(u?c._hideClone():c._showClone(p),p!==h&&(vt(Rt,Qt?Qt.options.ghostClass:c.options.ghostClass,!1),vt(Rt,l.ghostClass,!0)),Qt!==p&&p!==Ee.active?Qt=p:p===Ee.active&&Qt&&(Qt=null),h===p&&(p._ignoreWhileAnimating=i),p.animateAll((function(){T("dragOverAnimationComplete"),p._ignoreWhileAnimating=null})),p!==h&&(h.animateAll(),h._ignoreWhileAnimating=null)),(i===Rt&&!Rt.animated||i===a&&!i.animated)&&(ie=null),l.dragoverBubble||t.rootEl||i===document||(Rt.parentNode[Pt]._isOutsideThisEl(t.target),!e&&De(t)),!l.dragoverBubble&&t.stopPropagation&&t.stopPropagation(),g=!0}function O(){Xt=St(Rt),$t=St(Rt,l.draggable),jt({sortable:p,name:"change",toEl:a,newIndex:Xt,newDraggableIndex:$t,originalEvent:t})}},_ignoreWhileAnimating:null,_offMoveEvents:function(){dt(document,"mousemove",this._onTouchMove),dt(document,"touchmove",this._onTouchMove),dt(document,"pointermove",this._onTouchMove),dt(document,"dragover",De),dt(document,"mousemove",De),dt(document,"touchmove",De)},_offUpEvents:function(){var t=this.el.ownerDocument;dt(t,"mouseup",this._onDrop),dt(t,"touchend",this._onDrop),dt(t,"pointerup",this._onDrop),dt(t,"touchcancel",this._onDrop),dt(document,"selectstart",this)},_onDrop:function(t){var e=this.el,n=this.options;Xt=St(Rt),$t=St(Rt,n.draggable),Ft("drop",this,{evt:t}),Ut=Rt&&Rt.parentNode,Xt=St(Rt),$t=St(Rt,n.draggable),Ee.eventCanceled||(ue=!1,ge=!1,pe=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),Ne(this.cloneId),Ne(this._dragStartId),this.nativeDraggable&&(dt(document,"drop",this),dt(e,"dragstart",this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),it&&bt(document.body,"user-select",""),bt(Rt,"transform",""),t&&(ae&&(t.cancelable&&t.preventDefault(),!n.dropBubble&&t.stopPropagation()),Zt&&Zt.parentNode&&Zt.parentNode.removeChild(Zt),(Ht===Ut||Qt&&"clone"!==Qt.lastPutMode)&&Yt&&Yt.parentNode&&Yt.parentNode.removeChild(Yt),Rt&&(this.nativeDraggable&&dt(Rt,"dragend",this),Oe(Rt),Rt.style["will-change"]="",ae&&!ue&&vt(Rt,Qt?Qt.options.ghostClass:this.options.ghostClass,!1),vt(Rt,this.options.chosenClass,!1),jt({sortable:this,name:"unchoose",toEl:Ut,newIndex:null,newDraggableIndex:null,originalEvent:t}),Ht!==Ut?(Xt>=0&&(jt({rootEl:Ut,name:"add",toEl:Ut,fromEl:Ht,originalEvent:t}),jt({sortable:this,name:"remove",toEl:Ut,originalEvent:t}),jt({rootEl:Ut,name:"sort",toEl:Ut,fromEl:Ht,originalEvent:t}),jt({sortable:this,name:"sort",toEl:Ut,originalEvent:t})),Qt&&Qt.save()):Xt!==Gt&&Xt>=0&&(jt({sortable:this,name:"update",toEl:Ut,originalEvent:t}),jt({sortable:this,name:"sort",toEl:Ut,originalEvent:t})),Ee.active&&(null!=Xt&&-1!==Xt||(Xt=Gt,$t=Wt),jt({sortable:this,name:"end",toEl:Ut,originalEvent:t}),this.save())))),this._nulling()},_nulling:function(){Ft("nulling",this),Ht=Rt=Ut=Zt=Vt=Yt=zt=qt=Jt=te=ae=Xt=$t=Gt=Wt=ie=le=Qt=Kt=Ee.dragged=Ee.ghost=Ee.clone=Ee.active=null,ve.forEach((function(t){t.checked=!0})),ve.length=ee=ne=0},handleEvent:function(t){switch(t.type){case"drop":case"dragend":this._onDrop(t);break;case"dragenter":case"dragover":Rt&&(this._onDragOver(t),function(t){t.dataTransfer&&(t.dataTransfer.dropEffect="move"),t.cancelable&&t.preventDefault()}(t));break;case"selectstart":t.preventDefault()}},toArray:function(){for(var t,e=[],n=this.el.children,r=0,o=n.length,a=this.options;r!0,"move:down":()=>!0,"update:focus":()=>!0},setup(t,e){let{emit:n}=e;const r=(0,a.ref)(),o=(0,a.ref)();let i=0;return{buttonUp:r,buttonDown:o,moveUp:()=>{n("move:up"),i=1},moveDown:()=>{n("move:down"),i=-1},keepFocus:()=>{0!==i&&(1!==i&&!t.isLast||t.isFirst?(0,a.nextTick)((()=>o.value.$el.focus())):(0,a.nextTick)((()=>r.value.$el.focus()))),i=0},t:W.Iu}}});var nn=r(40773),rn={};rn.styleTagTransform=U(),rn.setAttributes=B(),rn.insert=L().bind(null,"head"),rn.domAPI=M(),rn.insertStyleElement=j(),I()(nn.Z,rn),nn.Z&&nn.Z.locals&&nn.Z.locals;const on=(0,_.Z)(en,(function(){var t=this,e=t._self._c;return t._self._setupProxy,e("li",{class:{"order-selector-element":!0,"order-selector-element--disabled":t.app.default},attrs:{"data-cy-app-order-element":t.app.id},on:{focusin:function(e){return t.$emit("update:focus")}}},[e("svg",{attrs:{width:"20",height:"20",viewBox:"0 0 20 20",role:"presentation"}},[e("image",{staticClass:"order-selector-element__icon",attrs:{preserveAspectRatio:"xMinYMin meet",x:"0",y:"0",width:"20",height:"20","xlink:href":t.app.icon}})]),t._v(" "),e("div",{staticClass:"order-selector-element__label"},[t._v("\n\t\t"+t._s(t.app.label??t.app.id)+"\n\t")]),t._v(" "),e("div",{staticClass:"order-selector-element__actions"},[e("NcButton",{directives:[{name:"show",rawName:"v-show",value:!t.isFirst&&!t.app.default,expression:"!isFirst && !app.default"}],ref:"buttonUp",attrs:{"aria-label":t.t("settings","Move up"),"aria-describedby":t.ariaDescribedby,"aria-details":t.ariaDetails,"data-cy-app-order-button":"up",type:"tertiary-no-background"},on:{click:t.moveUp},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconArrowUp",{attrs:{size:20}})]},proxy:!0}])}),t._v(" "),e("div",{directives:[{name:"show",rawName:"v-show",value:t.isFirst||!!t.app.default,expression:"isFirst || !!app.default"}],staticClass:"order-selector-element__placeholder",attrs:{"aria-hidden":"true"}}),t._v(" "),e("NcButton",{directives:[{name:"show",rawName:"v-show",value:!t.isLast&&!t.app.default,expression:"!isLast && !app.default"}],ref:"buttonDown",attrs:{"aria-label":t.t("settings","Move down"),"aria-describedby":t.ariaDescribedby,"aria-details":t.ariaDetails,"data-cy-app-order-button":"down",type:"tertiary-no-background"},on:{click:t.moveDown},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconArrowDown",{attrs:{size:20}})]},proxy:!0}])}),t._v(" "),e("div",{directives:[{name:"show",rawName:"v-show",value:t.isLast||!!t.app.default,expression:"isLast || !!app.default"}],staticClass:"order-selector-element__placeholder",attrs:{"aria-hidden":"true"}})],1)])}),[],!1,null,"081ebc45",null).exports,an=(0,a.defineComponent)({name:"AppOrderSelector",components:{AppOrderSelectorElement:on,Fragment:Ke.Fragment},props:{ariaDetails:{type:String,default:null},value:{type:Array,required:!0}},emits:{"update:value":t=>Array.isArray(t)},setup(t,e){let{emit:n}=e;const r=(0,a.ref)(null),o=(0,a.computed)({get:()=>t.value,set:e=>{const r=[...e].sort(((t,n)=>(n.default?1:0)-(t.default?1:0)||e.indexOf(t)-e.indexOf(n)));r.some(((e,n)=>{let{id:r}=e;return r!==t.value[n].id}))?n("update:value",r):i.value+=1}}),i=(0,a.ref)(0);!function(t,e,n={}){let r;const{document:o=$.Td$,...i}=n,l={onUpdate:t=>{!function(t,e,n){const r=(0,a.isRef)(t),o=r?[...(0,K.Tn)(t)]:(0,K.Tn)(t);if(n>=0&&n{o.splice(n,0,i),r&&(t.value=o)}))}}(e,t.oldIndex,t.newIndex)}},s=()=>{const e="string"==typeof t?null==o?void 0:o.querySelector(t):(0,$.NXq)(t);e&&void 0===r&&(r=new $e(e,{...l,...i}))},c=()=>{null==r||r.destroy(),r=void 0};(0,K.u7)(s),(0,K.IY)(c)}(r,o,{filter:".order-selector-element--disabled"});const l=(0,a.ref)([]);(0,a.onUpdated)((()=>{l.value.forEach((t=>t.keepFocus()))}));const s=(0,a.ref)("");return{appList:o,listElement:r,moveDown:e=>{const r=e>0?t.value.slice(0,e):[];r.push(t.value[e+1]);const o=e{const r=e>1?t.value.slice(0,e-1):[];if(t.value[e-1]?.default)return;const o=[t.value[e-1]];e{s.value=(0,W.Iu)("theming","Current selected app: {app}, position {position} of {total}",{app:t.value[e].label,position:e+1,total:t.value.length})},renderCount:i,selectorElements:l}}}),ln=an;var sn=r(37049),cn={};cn.styleTagTransform=U(),cn.setAttributes=B(),cn.insert=L().bind(null,"head"),cn.domAPI=M(),cn.insertStyleElement=j(),I()(sn.Z,cn),sn.Z&&sn.Z.locals&&sn.Z.locals;var un=(0,_.Z)(ln,(function(){var t=this,e=t._self._c;return t._self._setupProxy,e("Fragment",[e("div",{staticClass:"hidden-visually",attrs:{id:t.statusInfoId,"aria-live":"polite",role:"status"}},[t._v("\n\t\t"+t._s(t.statusInfo)+"\n\t")]),t._v(" "),e("ol",{ref:"listElement",staticClass:"order-selector",attrs:{"data-cy-app-order":""}},t._l(t.appList,(function(n,r){return e("AppOrderSelectorElement",t._g({key:`${n.id}${t.renderCount}`,ref:"selectorElements",refInFor:!0,attrs:{app:n,"aria-details":t.ariaDetails,"aria-describedby":t.statusInfoId,"is-first":0===r||!!t.appList[r-1].default,"is-last":r===t.value.length-1}},n.default?{}:{"move:up":()=>t.moveUp(r),"move:down":()=>t.moveDown(r),"update:focus":()=>t.updateStatusInfo(r)}))})),1)])}),[],!1,null,"35797e31",null);const dn=un.exports,hn={name:"UndoIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},pn=(0,_.Z)(hn,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon undo-icon",attrs:{"aria-hidden":!t.title,"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:"M12.5,8C9.85,8 7.45,9 5.6,10.6L2,7V16H11L7.38,12.38C8.77,11.22 10.54,10.5 12.5,10.5C16.04,10.5 19.05,12.81 20.1,16L22.47,15.22C21.08,11.03 17.15,8 12.5,8Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports;var gn=r(54405),fn=r(25108);const mn=(0,a.defineComponent)({name:"UserAppMenuSection",components:{AppOrderSelector:dn,IconUndo:pn,NcButton:tn.Z,NcNoteCard:gn.Z,NcSettingsSection:u.Z},setup(){const{userAppOrder:t,enforcedDefaultApp:e}=(0,l.j)("theming","navigationBar"),n=Object.values((0,l.j)("core","apps")).filter((t=>{let{type:e}=t;return"link"===e})).map((t=>({...t,label:t.name,default:t.default&&t.app===e}))),r=(0,a.ref)(!Array.isArray(t)||Object.values(t).length>0),o=(0,a.computed)((()=>n.some(((t,e)=>{let{id:n}=t;return n!==p.value[e].id})))),c="theming-apporder-changed-infocard",u="theming-apporder-changed-infocard",h=(0,a.computed)((()=>(o.value?`${c} `:"")+(e?u:""))),p=(0,a.ref)([...n]),g=async(t,e)=>{const n=(0,i.generateOcsUrl)("apps/provisioning_api/api/v1/config/users/{appId}/{configKey}",{appId:"core",configKey:t});return await s.Z.post(n,{configValue:JSON.stringify(e)})};return{appOrder:p,updateAppOrder:t=>{const e={};t.forEach(((t,n)=>{let{app:r,id:o}=t;e[o]={order:n,app:r}})),g("apporder",e).then((()=>{p.value=t,r.value=!0})).catch((t=>{fn.warn("Could not set the app order",t),(0,d.x2)((0,W.Iu)("theming","Could not set the app order"))}))},resetAppOrder:async()=>{try{await g("apporder",[]),r.value=!1;const{data:t}=await s.Z.get((0,i.generateOcsUrl)("/core/navigation/apps"),{headers:{"OCS-APIRequest":"true"}});p.value=t.ocs.data.map((t=>({...t,label:t.name,default:t.default&&t.app===e})))}catch(t){fn.warn(t),(0,d.x2)((0,W.Iu)("theming","Could not reset the app order"))}},enforcedDefaultApp:e,hasAppOrderChanged:o,hasCustomAppOrder:r,ariaDetailsAppOrder:h,elementIdAppOrderChanged:c,elementIdEnforcedDefaultApp:u,t:W.Iu}}}),vn=mn;var bn=r(36567),An={};An.styleTagTransform=U(),An.setAttributes=B(),An.insert=L().bind(null,"head"),An.domAPI=M(),An.insertStyleElement=j(),I()(bn.Z,An),bn.Z&&bn.Z.locals&&bn.Z.locals;const _n=(0,_.Z)(vn,(function(){var t=this,e=t._self._c;return t._self._setupProxy,e("NcSettingsSection",{attrs:{name:t.t("theming","Navigation bar settings")}},[e("p",[t._v("\n\t\t"+t._s(t.t("theming","You can configure the app order used for the navigation bar. The first entry will be the default app, opened after login or when clicking on the logo."))+"\n\t")]),t._v(" "),t.enforcedDefaultApp?e("NcNoteCard",{attrs:{id:t.elementIdEnforcedDefaultApp,type:"info"}},[t._v("\n\t\t"+t._s(t.t("theming","The default app can not be changed because it was configured by the administrator."))+"\n\t")]):t._e(),t._v(" "),t.hasAppOrderChanged?e("NcNoteCard",{attrs:{id:t.elementIdAppOrderChanged,type:"info"}},[t._v("\n\t\t"+t._s(t.t("theming","The app order was changed, to see it in action you have to reload the page."))+"\n\t")]):t._e(),t._v(" "),e("AppOrderSelector",{staticClass:"user-app-menu-order",attrs:{"aria-details":t.ariaDetailsAppOrder,value:t.appOrder},on:{"update:value":t.updateAppOrder}}),t._v(" "),e("NcButton",{attrs:{"data-test-id":"btn-apporder-reset",disabled:!t.hasCustomAppOrder,type:"tertiary"},on:{click:t.resetAppOrder},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconUndo",{attrs:{size:20}})]},proxy:!0}])},[t._v("\n\t\t"+t._s(t.t("theming","Reset default app order"))+"\n\t")])],1)}),[],!1,null,"ee0f3d1a",null).exports;var yn=r(25108);const Cn=(0,l.j)("theming","themes",[]),wn=(0,l.j)("theming","enforceTheme",""),kn=(0,l.j)("theming","shortcutsDisabled",!1),xn=(0,l.j)("theming","isUserThemingDisabled"),Sn={name:"UserThemes",components:{ItemPreview:X,NcCheckboxRadioSwitch:c.Z,NcSettingsSection:u.Z,BackgroundSettings:V,UserAppMenuSection:_n},data:()=>({availableThemes:Cn,enforceTheme:wn,shortcutsDisabled:kn,isUserThemingDisabled:xn}),computed:{themes(){return this.availableThemes.filter((t=>1===t.type))},fonts(){return this.availableThemes.filter((t=>2===t.type))},selectedTheme(){return this.themes.find((t=>!0===t.enabled))||this.themes[0]},description(){return t("theming","Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level.").replace("{guidelines}",this.guidelinesLink).replace("{linkend}","")},guidelinesLink:()=>'',descriptionDetail(){return t("theming","If you find any issues, do not hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!").replace("{issuetracker}",this.issuetrackerLink).replace("{designteam}",this.designteamLink).replace(/\{linkend\}/g,"")},issuetrackerLink:()=>'',designteamLink:()=>''},watch:{shortcutsDisabled(t){this.changeShortcutsDisabled(t)}},methods:{refreshGlobalStyles(){[...document.head.querySelectorAll("link.theme")].forEach((t=>{const e=new URL(t.href);e.searchParams.set("v",Date.now());const n=t.cloneNode();n.href=e.toString(),n.onload=()=>t.remove(),document.head.append(n)}))},updateBackground(t){this.background="custom"===t.type||"default"===t.type?t.type:t.value,this.refreshGlobalStyles()},changeTheme(t){let{enabled:e,id:n}=t;this.themes.forEach((t=>{t.id===n&&e?t.enabled=!0:t.enabled=!1})),this.updateBodyAttributes(),this.selectItem(e,n)},changeFont(t){let{enabled:e,id:n}=t;this.fonts.forEach((t=>{t.id===n&&e?t.enabled=!0:t.enabled=!1})),this.updateBodyAttributes(),this.selectItem(e,n)},async changeShortcutsDisabled(t){t?await(0,s.Z)({url:(0,i.generateOcsUrl)("apps/provisioning_api/api/v1/config/users/{appId}/{configKey}",{appId:"theming",configKey:"shortcuts_disabled"}),data:{configValue:"yes"},method:"POST"}):await(0,s.Z)({url:(0,i.generateOcsUrl)("apps/provisioning_api/api/v1/config/users/{appId}/{configKey}",{appId:"theming",configKey:"shortcuts_disabled"}),method:"DELETE"})},updateBodyAttributes(){const t=this.themes.filter((t=>!0===t.enabled)).map((t=>t.id)),e=this.fonts.filter((t=>!0===t.enabled)).map((t=>t.id));this.themes.forEach((t=>{document.body.toggleAttribute(`data-theme-${t.id}`,t.enabled)})),this.fonts.forEach((t=>{document.body.toggleAttribute(`data-theme-${t.id}`,t.enabled)})),document.body.setAttribute("data-themes",[...t,...e].join(","))},async selectItem(e,n){try{e?await(0,s.Z)({url:(0,i.generateOcsUrl)("apps/theming/api/v1/theme/{themeId}/enable",{themeId:n}),method:"PUT"}):await(0,s.Z)({url:(0,i.generateOcsUrl)("apps/theming/api/v1/theme/{themeId}",{themeId:n}),method:"DELETE"})}catch(e){yn.error(e,e.response),OC.Notification.showTemporary(t("theming",e.response.data.ocs.meta.message+". Unable to apply the setting."))}}}};var Dn=r(29512),Tn={};Tn.styleTagTransform=U(),Tn.setAttributes=B(),Tn.insert=L().bind(null,"head"),Tn.domAPI=M(),Tn.insertStyleElement=j(),I()(Dn.Z,Tn),Dn.Z&&Dn.Z.locals&&Dn.Z.locals;const En=(0,_.Z)(Sn,(function(){var t=this,e=t._self._c;return e("section",[e("NcSettingsSection",{staticClass:"theming",attrs:{name:t.t("theming","Appearance and accessibility settings"),"limit-width":!1}},[e("p",{domProps:{innerHTML:t._s(t.description)}}),t._v(" "),e("p",{domProps:{innerHTML:t._s(t.descriptionDetail)}}),t._v(" "),e("div",{staticClass:"theming__preview-list"},t._l(t.themes,(function(n){return e("ItemPreview",{key:n.id,attrs:{enforced:n.id===t.enforceTheme,selected:t.selectedTheme.id===n.id,theme:n,unique:1===t.themes.length,type:"theme"},on:{change:t.changeTheme}})})),1),t._v(" "),e("div",{staticClass:"theming__preview-list"},t._l(t.fonts,(function(n){return e("ItemPreview",{key:n.id,attrs:{selected:n.enabled,theme:n,unique:1===t.fonts.length,type:"font"},on:{change:t.changeFont}})})),1)]),t._v(" "),e("NcSettingsSection",{staticClass:"background",attrs:{name:t.t("theming","Background"),"data-user-theming-background-disabled":""}},[t.isUserThemingDisabled?[e("p",[t._v(t._s(t.t("theming","Customization has been disabled by your administrator")))])]:[e("p",[t._v(t._s(t.t("theming","Set a custom background")))]),t._v(" "),e("BackgroundSettings",{staticClass:"background__grid",on:{"update:background":t.refreshGlobalStyles}})]],2),t._v(" "),e("NcSettingsSection",{attrs:{name:t.t("theming","Keyboard shortcuts")}},[e("p",[t._v(t._s(t.t("theming","In some cases keyboard shortcuts can interfere with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps.")))]),t._v(" "),e("NcCheckboxRadioSwitch",{staticClass:"theming__preview-toggle",attrs:{checked:t.shortcutsDisabled,type:"switch"},on:{"update:checked":function(e){t.shortcutsDisabled=e},change:t.changeShortcutsDisabled}},[t._v("\n\t\t\t"+t._s(t.t("theming","Disable all keyboard shortcuts"))+"\n\t\t")])],1),t._v(" "),e("UserAppMenuSection")],1)}),[],!1,null,"d643b9e0",null).exports;r.nc=btoa((0,o.IH)()),a.default.prototype.OC=OC,a.default.prototype.t=t;const In=new(a.default.extend(En));In.$mount("#theming"),In.$on("update:background",(()=>{[...document.head.querySelectorAll("link.theme")].forEach((t=>{const e=new URL(t.href);e.searchParams.set("v",Date.now());const n=t.cloneNode();n.href=e.toString(),n.onload=()=>t.remove(),document.head.append(n)}))}))},29512:(t,e,n)=>{"use strict";n.d(e,{Z:()=>l});var r=n(87537),o=n.n(r),a=n(23645),i=n.n(a)()(o());i.push([t.id,".theming p[data-v-d643b9e0]{max-width:800px}.theming[data-v-d643b9e0] a{font-weight:bold}.theming[data-v-d643b9e0] a:hover,.theming[data-v-d643b9e0] a:focus{text-decoration:underline}.theming__preview-list[data-v-d643b9e0]{--gap: 30px;display:grid;margin-top:var(--gap);column-gap:var(--gap);row-gap:var(--gap);grid-template-columns:1fr 1fr}.background__grid[data-v-d643b9e0]{margin-top:30px}@media(max-width: 1440px){.theming__preview-list[data-v-d643b9e0]{display:flex;flex-direction:column}}","",{version:3,sources:["webpack://./apps/theming/src/UserThemes.vue"],names:[],mappings:"AAGC,4BACC,eAAA,CAID,4BACC,gBAAA,CAEA,oEAEC,yBAAA,CAIF,wCACC,WAAA,CAEA,YAAA,CACA,qBAAA,CACA,qBAAA,CACA,kBAAA,CACA,6BAAA,CAKD,mCACC,eAAA,CAIF,0BACC,wCACC,YAAA,CACA,qBAAA,CAAA",sourcesContent:["\n.theming {\n\t// Limit width of settings sections for readability\n\tp {\n\t\tmax-width: 800px;\n\t}\n\n\t// Proper highlight for links and focus feedback\n\t&::v-deep a {\n\t\tfont-weight: bold;\n\n\t\t&:hover,\n\t\t&:focus {\n\t\t\ttext-decoration: underline;\n\t\t}\n\t}\n\n\t&__preview-list {\n\t\t--gap: 30px;\n\n\t\tdisplay: grid;\n\t\tmargin-top: var(--gap);\n\t\tcolumn-gap: var(--gap);\n\t\trow-gap: var(--gap);\n\t\tgrid-template-columns: 1fr 1fr;\n\t}\n}\n\n.background {\n\t&__grid {\n\t\tmargin-top: 30px;\n\t}\n}\n\n@media (max-width: 1440px) {\n\t.theming__preview-list {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t}\n}\n"],sourceRoot:""}]);const l=i},37049:(t,e,n)=>{"use strict";n.d(e,{Z:()=>l});var r=n(87537),o=n.n(r),a=n(23645),i=n.n(a)()(o());i.push([t.id,".order-selector[data-v-35797e31]{width:max-content;min-width:260px}","",{version:3,sources:["webpack://./apps/theming/src/components/AppOrderSelector.vue"],names:[],mappings:"AACA,iCACC,iBAAA,CACA,eAAA",sourcesContent:["\n.order-selector {\n\twidth: max-content;\n\tmin-width: 260px; // align with NcSelect\n}\n"],sourceRoot:""}]);const l=i},40773:(t,e,n)=>{"use strict";n.d(e,{Z:()=>l});var r=n(87537),o=n.n(r),a=n(23645),i=n.n(a)()(o());i.push([t.id,".order-selector-element[data-v-081ebc45]{list-style:none;display:flex;flex-direction:row;align-items:center;gap:12px;padding-inline:12px}.order-selector-element[data-v-081ebc45]:hover{background-color:var(--color-background-hover);border-radius:var(--border-radius-large)}.order-selector-element--disabled[data-v-081ebc45]{border-color:var(--color-text-maxcontrast);color:var(--color-text-maxcontrast)}.order-selector-element--disabled .order-selector-element__icon[data-v-081ebc45]{opacity:75%}.order-selector-element__actions[data-v-081ebc45]{flex:0 0;display:flex;flex-direction:row;gap:6px}.order-selector-element__label[data-v-081ebc45]{flex:1 1;text-overflow:ellipsis;overflow:hidden}.order-selector-element__placeholder[data-v-081ebc45]{height:44px;width:44px}.order-selector-element__icon[data-v-081ebc45]{filter:var(--background-invert-if-bright)}","",{version:3,sources:["webpack://./apps/theming/src/components/AppOrderSelectorElement.vue"],names:[],mappings:"AACA,yCAEC,eAAA,CAEA,YAAA,CACA,kBAAA,CACA,kBAAA,CAEA,QAAA,CACA,mBAAA,CAEA,+CACC,8CAAA,CACA,wCAAA,CAGD,mDACC,0CAAA,CACA,mCAAA,CAEA,iFACC,WAAA,CAIF,kDACC,QAAA,CACA,YAAA,CACA,kBAAA,CACA,OAAA,CAGD,gDACC,QAAA,CACA,sBAAA,CACA,eAAA,CAGD,sDACC,WAAA,CACA,UAAA,CAGD,+CACC,yCAAA",sourcesContent:["\n.order-selector-element {\n\t// hide default styling\n\tlist-style: none;\n\t// Align children\n\tdisplay: flex;\n\tflex-direction: row;\n\talign-items: center;\n\t// Spacing\n\tgap: 12px;\n\tpadding-inline: 12px;\n\n\t&:hover {\n\t\tbackground-color: var(--color-background-hover);\n\t\tborder-radius: var(--border-radius-large);\n\t}\n\n\t&--disabled {\n\t\tborder-color: var(--color-text-maxcontrast);\n\t\tcolor: var(--color-text-maxcontrast);\n\n\t\t.order-selector-element__icon {\n\t\t\topacity: 75%;\n\t\t}\n\t}\n\n\t&__actions {\n\t\tflex: 0 0;\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t\tgap: 6px;\n\t}\n\n\t&__label {\n\t\tflex: 1 1;\n\t\ttext-overflow: ellipsis;\n\t\toverflow: hidden;\n\t}\n\n\t&__placeholder {\n\t\theight: 44px;\n\t\twidth: 44px;\n\t}\n\n\t&__icon {\n\t\tfilter: var(--background-invert-if-bright);\n\t}\n}\n"],sourceRoot:""}]);const l=i},94496:(t,e,n)=>{"use strict";n.d(e,{Z:()=>l});var r=n(87537),o=n.n(r),a=n(23645),i=n.n(a)()(o());i.push([t.id,".background-selector[data-v-e836b210]{display:flex;flex-wrap:wrap;justify-content:center}.background-selector .background[data-v-e836b210]{overflow:hidden;width:176px;height:96px;margin:8px;text-align:center;border:2px solid var(--color-main-background);border-radius:var(--border-radius-large);background-position:center center;background-size:cover}.background-selector .background__filepicker.background--active[data-v-e836b210]{color:#fff;background-image:var(--image-background)}.background-selector .background__default[data-v-e836b210]{background-color:var(--color-primary-default);background-image:linear-gradient(to bottom, rgba(23, 23, 23, 0.5), rgba(23, 23, 23, 0.5)),var(--image-background-plain, var(--image-background-default))}.background-selector .background__filepicker[data-v-e836b210],.background-selector .background__default[data-v-e836b210],.background-selector .background__color[data-v-e836b210]{border-color:var(--color-border)}.background-selector .background__color[data-v-e836b210]{color:var(--color-primary-text);background-color:var(--color-primary-default)}.background-selector .background__default[data-v-e836b210],.background-selector .background__shipped[data-v-e836b210]{color:#fff}.background-selector .background[data-color-bright][data-v-e836b210]{color:#000}.background-selector .background--active[data-v-e836b210],.background-selector .background[data-v-e836b210]:hover,.background-selector .background[data-v-e836b210]:focus{outline:2px solid var(--color-main-text) !important;border-color:var(--color-main-background) !important}.background-selector .background span[data-v-e836b210]{margin:4px}.background-selector .background .check-icon[data-v-e836b210]{display:none}.background-selector .background--active:not(.icon-loading) .check-icon[data-v-e836b210]{display:block !important}","",{version:3,sources:["webpack://./apps/theming/src/components/BackgroundSettings.vue"],names:[],mappings:"AACA,sCACC,YAAA,CACA,cAAA,CACA,sBAAA,CAEA,kDACC,eAAA,CACA,WAAA,CACA,WAAA,CACA,UAAA,CACA,iBAAA,CACA,6CAAA,CACA,wCAAA,CACA,iCAAA,CACA,qBAAA,CAGC,iFACC,UAAA,CACA,wCAAA,CAIF,2DACC,6CAAA,CACA,wJAAA,CAGD,kLACC,gCAAA,CAGD,yDACC,+BAAA,CACA,6CAAA,CAID,sHAEC,UAAA,CAID,qEACC,UAAA,CAGD,0KAGC,mDAAA,CACA,oDAAA,CAID,uDACC,UAAA,CAGD,8DACC,YAAA,CAIA,yFAEC,wBAAA",sourcesContent:["\n.background-selector {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tjustify-content: center;\n\n\t.background {\n\t\toverflow: hidden;\n\t\twidth: 176px;\n\t\theight: 96px;\n\t\tmargin: 8px;\n\t\ttext-align: center;\n\t\tborder: 2px solid var(--color-main-background);\n\t\tborder-radius: var(--border-radius-large);\n\t\tbackground-position: center center;\n\t\tbackground-size: cover;\n\n\t\t&__filepicker {\n\t\t\t&.background--active {\n\t\t\t\tcolor: white;\n\t\t\t\tbackground-image: var(--image-background);\n\t\t\t}\n\t\t}\n\n\t\t&__default {\n\t\t\tbackground-color: var(--color-primary-default);\n\t\t\tbackground-image: linear-gradient(to bottom, rgba(23, 23, 23, 0.5), rgba(23, 23, 23, 0.5)), var(--image-background-plain, var(--image-background-default));\n\t\t}\n\n\t\t&__filepicker, &__default, &__color {\n\t\t\tborder-color: var(--color-border);\n\t\t}\n\n\t\t&__color {\n\t\t\tcolor: var(--color-primary-text);\n\t\t\tbackground-color: var(--color-primary-default);\n\t\t}\n\n\t\t// Over a background image\n\t\t&__default,\n\t\t&__shipped {\n\t\t\tcolor: white;\n\t\t}\n\n\t\t// Text and svg icon dark on bright background\n\t\t&[data-color-bright] {\n\t\t\tcolor: black;\n\t\t}\n\n\t\t&--active,\n\t\t&:hover,\n\t\t&:focus {\n\t\t\toutline: 2px solid var(--color-main-text) !important;\n\t\t\tborder-color: var(--color-main-background) !important;\n\t\t}\n\n\t\t// Icon\n\t\tspan {\n\t\t\tmargin: 4px;\n\t\t}\n\n\t\t.check-icon {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t&--active:not(.icon-loading) {\n\t\t\t.check-icon {\n\t\t\t\t// Show checkmark\n\t\t\t\tdisplay: block !important;\n\t\t\t}\n\t\t}\n\t}\n}\n\n"],sourceRoot:""}]);const l=i},62782:(t,e,n)=>{"use strict";n.d(e,{Z:()=>l});var r=n(87537),o=n.n(r),a=n(23645),i=n.n(a)()(o());i.push([t.id,".theming__preview[data-v-1a08e35a]{--ratio: 16;position:relative;display:flex;justify-content:flex-start;max-width:800px}.theming__preview[data-v-1a08e35a],.theming__preview *[data-v-1a08e35a]{user-select:none}.theming__preview-image[data-v-1a08e35a]{flex-basis:calc(16px*var(--ratio));flex-shrink:0;height:calc(10px*var(--ratio));margin-right:var(--gap);cursor:pointer;border-radius:var(--border-radius);background-repeat:no-repeat;background-position:top left;background-size:cover}.theming__preview-explanation[data-v-1a08e35a]{margin-bottom:10px}.theming__preview-description[data-v-1a08e35a]{display:flex;flex-direction:column}.theming__preview-description h3[data-v-1a08e35a]{font-weight:bold;margin-bottom:0}.theming__preview-description label[data-v-1a08e35a]{padding:12px 0}.theming__preview--default[data-v-1a08e35a]{grid-column:span 2}.theming__preview-warning[data-v-1a08e35a]{color:var(--color-warning)}@media(max-width: 682.6666666667px){.theming__preview[data-v-1a08e35a]{flex-direction:column}.theming__preview-image[data-v-1a08e35a]{margin:0}}","",{version:3,sources:["webpack://./apps/theming/src/components/ItemPreview.vue"],names:[],mappings:"AAGA,mCAEC,WAAA,CAEA,iBAAA,CACA,YAAA,CACA,0BAAA,CACA,eAAA,CAEA,wEAEC,gBAAA,CAGD,yCACC,kCAAA,CACA,aAAA,CACA,8BAAA,CACA,uBAAA,CACA,cAAA,CACA,kCAAA,CACA,2BAAA,CACA,4BAAA,CACA,qBAAA,CAGD,+CACC,kBAAA,CAGD,+CACC,YAAA,CACA,qBAAA,CAEA,kDACC,gBAAA,CACA,eAAA,CAGD,qDACC,cAAA,CAIF,4CACC,kBAAA,CAGD,2CACC,0BAAA,CAIF,oCACC,mCACC,qBAAA,CAEA,yCACC,QAAA,CAAA",sourcesContent:["\n@use 'sass:math';\n\n.theming__preview {\n\t// We make previews on 16/10 screens\n\t--ratio: 16;\n\n\tposition: relative;\n\tdisplay: flex;\n\tjustify-content: flex-start;\n\tmax-width: 800px;\n\n\t&,\n\t* {\n\t\tuser-select: none;\n\t}\n\n\t&-image {\n\t\tflex-basis: calc(16px * var(--ratio));\n\t\tflex-shrink: 0;\n\t\theight: calc(10px * var(--ratio));\n\t\tmargin-right: var(--gap);\n\t\tcursor: pointer;\n\t\tborder-radius: var(--border-radius);\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-position: top left;\n\t\tbackground-size: cover;\n\t}\n\n\t&-explanation {\n\t\tmargin-bottom: 10px;\n\t}\n\n\t&-description {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\n\t\th3 {\n\t\t\tfont-weight: bold;\n\t\t\tmargin-bottom: 0;\n\t\t}\n\n\t\tlabel {\n\t\t\tpadding: 12px 0;\n\t\t}\n\t}\n\n\t&--default {\n\t\tgrid-column: span 2;\n\t}\n\n\t&-warning {\n\t\tcolor: var(--color-warning);\n\t}\n}\n\n@media (max-width: math.div(1024px, 1.5)) {\n\t.theming__preview {\n\t\tflex-direction: column;\n\n\t\t&-image {\n\t\t\tmargin: 0;\n\t\t}\n\t}\n}\n\n"],sourceRoot:""}]);const l=i},36567:(t,e,n)=>{"use strict";n.d(e,{Z:()=>l});var r=n(87537),o=n.n(r),a=n(23645),i=n.n(a)()(o());i.push([t.id,".user-app-menu-order[data-v-ee0f3d1a]{margin-block:12px}","",{version:3,sources:["webpack://./apps/theming/src/components/UserAppMenuSection.vue"],names:[],mappings:"AACA,sCACC,iBAAA",sourcesContent:["\n.user-app-menu-order {\n\tmargin-block: 12px;\n}\n"],sourceRoot:""}]);const l=i},89881:(t,e,n)=>{var r=n(47816),o=n(99291)(r);t.exports=o},80760:(t,e,n)=>{var r=n(89881);t.exports=function(t,e){var n=[];return r(t,(function(t,r,o){e(t,r,o)&&n.push(t)})),n}},47816:(t,e,n)=>{var r=n(28483),o=n(3674);t.exports=function(t,e){return t&&r(t,e,o)}},99291:(t,e,n)=>{var r=n(98612);t.exports=function(t,e){return function(n,o){if(null==n)return n;if(!r(n))return t(n,o);for(var a=n.length,i=e?a:-1,l=Object(n);(e?i--:++i{var r=n(5976),o=n(77813),a=n(16612),i=n(81704),l=Object.prototype,s=l.hasOwnProperty,c=r((function(t,e){t=Object(t);var n=-1,r=e.length,c=r>2?e[2]:void 0;for(c&&a(e[0],e[1],c)&&(r=1);++n{var r=n(34963),o=n(80760),a=n(67206),i=n(1469);t.exports=function(t,e){return(i(t)?r:o)(t,a(e,3))}},1082:function(t,e,n){"use strict";var r=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}},o=r(n(8110)),a=r(n(21904));o.default.DefaultOpts.ImageClass=a.default,t.exports=o.default},31564:function(t,e,n){"use strict";var r=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});var o=r(n(8110)),a=n(66678),i=function(){function t(t,e){void 0===e&&(e={}),this._src=t,this._opts=e,this._opts.filters=a(o.default.DefaultOpts.filters)}return t.prototype.maxColorCount=function(t){return this._opts.colorCount=t,this},t.prototype.maxDimension=function(t){return this._opts.maxDimension=t,this},t.prototype.addFilter=function(t){return this._opts.filters.push(t),this},t.prototype.removeFilter=function(t){var e=this._opts.filters.indexOf(t);return e>0&&this._opts.filters.splice(e),this},t.prototype.clearFilters=function(){return this._opts.filters=[],this},t.prototype.quality=function(t){return this._opts.quality=t,this},t.prototype.useImageClass=function(t){return this._opts.ImageClass=t,this},t.prototype.useGenerator=function(t){return this._opts.generator=t,this},t.prototype.useQuantizer=function(t){return this._opts.quantizer=t,this},t.prototype.build=function(){return new o.default(this._src,this._opts)},t.prototype.getPalette=function(t){return this.build().getPalette(t)},t.prototype.getSwatches=function(t){return this.build().getPalette(t)},t}();e.default=i},97248:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Swatch=void 0;var r=n(67294),o=n(63105),a=function(){function t(t,e){this._rgb=t,this._population=e}return t.applyFilter=function(t,e){return"function"==typeof e?o(t,(function(t){var n=t.r,r=t.g,o=t.b;return e(n,r,o,255)})):t},Object.defineProperty(t.prototype,"r",{get:function(){return this._rgb[0]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"g",{get:function(){return this._rgb[1]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"b",{get:function(){return this._rgb[2]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"rgb",{get:function(){return this._rgb},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"hsl",{get:function(){if(!this._hsl){var t=this._rgb,e=t[0],n=t[1],o=t[2];this._hsl=r.rgbToHsl(e,n,o)}return this._hsl},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"hex",{get:function(){if(!this._hex){var t=this._rgb,e=t[0],n=t[1],o=t[2];this._hex=r.rgbToHex(e,n,o)}return this._hex},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"population",{get:function(){return this._population},enumerable:!1,configurable:!0}),t.prototype.toJSON=function(){return{rgb:this.rgb,population:this.population}},t.prototype.getRgb=function(){return this._rgb},t.prototype.getHsl=function(){return this.hsl},t.prototype.getPopulation=function(){return this._population},t.prototype.getHex=function(){return this.hex},t.prototype.getYiq=function(){if(!this._yiq){var t=this._rgb;this._yiq=(299*t[0]+587*t[1]+114*t[2])/1e3}return this._yiq},Object.defineProperty(t.prototype,"titleTextColor",{get:function(){return this._titleTextColor||(this._titleTextColor=this.getYiq()<200?"#fff":"#000"),this._titleTextColor},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"bodyTextColor",{get:function(){return this._bodyTextColor||(this._bodyTextColor=this.getYiq()<150?"#fff":"#000"),this._bodyTextColor},enumerable:!1,configurable:!0}),t.prototype.getTitleTextColor=function(){return this.titleTextColor},t.prototype.getBodyTextColor=function(){return this.bodyTextColor},t}();e.Swatch=a},68498:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e,n,r){return r>=125&&!(t>250&&e>250&&n>250)}},63096:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.combineFilters=void 0;var r=n(68498);Object.defineProperty(e,"Default",{enumerable:!0,get:function(){return r.default}}),e.combineFilters=function(t){return Array.isArray(t)&&0!==t.length?function(e,n,r,o){if(0===o)return!1;for(var a=0;a{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(97248),o=n(67294),a=n(91747),i={targetDarkLuma:.26,maxDarkLuma:.45,minLightLuma:.55,targetLightLuma:.74,minNormalLuma:.3,targetNormalLuma:.5,maxNormalLuma:.7,targetMutesSaturation:.3,maxMutesSaturation:.4,targetVibrantSaturation:1,minVibrantSaturation:.35,weightSaturation:3,weightLuma:6.5,weightPopulation:.5};function l(t,e,n,r,o,a,i,l,s,c){var u=null,d=0;return e.forEach((function(e){var h=e.getHsl(),p=h[1],g=h[2];if(p>=l&&p<=s&&g>=o&&g<=a&&!function(t,e){return t.Vibrant===e||t.DarkVibrant===e||t.LightVibrant===e||t.Muted===e||t.DarkMuted===e||t.LightMuted===e}(t,e)){var f=function(t,e,n,r,o,a,i){function l(t,e){return 1-Math.abs(t-e)}return function(){for(var t=[],e=0;ed)&&(u=e,d=f)}})),u}e.default=function(t,e){e=a({},e,i);var n=function(t){var e=0;return t.forEach((function(t){e=Math.max(e,t.getPopulation())})),e}(t),s=function(t,e,n){var r={};return r.Vibrant=l(r,t,e,n.targetNormalLuma,n.minNormalLuma,n.maxNormalLuma,n.targetVibrantSaturation,n.minVibrantSaturation,1,n),r.LightVibrant=l(r,t,e,n.targetLightLuma,n.minLightLuma,1,n.targetVibrantSaturation,n.minVibrantSaturation,1,n),r.DarkVibrant=l(r,t,e,n.targetDarkLuma,0,n.maxDarkLuma,n.targetVibrantSaturation,n.minVibrantSaturation,1,n),r.Muted=l(r,t,e,n.targetNormalLuma,n.minNormalLuma,n.maxNormalLuma,n.targetMutesSaturation,0,n.maxMutesSaturation,n),r.LightMuted=l(r,t,e,n.targetLightLuma,n.minLightLuma,1,n.targetMutesSaturation,0,n.maxMutesSaturation,n),r.DarkMuted=l(r,t,e,n.targetDarkLuma,0,n.maxDarkLuma,n.targetMutesSaturation,0,n.maxMutesSaturation,n),r}(t,n,e);return function(t,e,n){if(null===t.Vibrant&&null===t.DarkVibrant&&null===t.LightVibrant){if(null===t.DarkVibrant&&null!==t.DarkMuted){var a=t.DarkMuted.getHsl(),i=a[0],l=a[1],s=a[2];s=n.targetDarkLuma,t.DarkVibrant=new r.Swatch(o.hslToRgb(i,l,s),0)}if(null===t.LightVibrant&&null!==t.LightMuted){var c=t.LightMuted.getHsl();i=c[0],l=c[1],s=c[2],s=n.targetDarkLuma,t.DarkVibrant=new r.Swatch(o.hslToRgb(i,l,s),0)}}if(null===t.Vibrant&&null!==t.DarkVibrant){var u=t.DarkVibrant.getHsl();i=u[0],l=u[1],s=u[2],s=n.targetNormalLuma,t.Vibrant=new r.Swatch(o.hslToRgb(i,l,s),0)}else if(null===t.Vibrant&&null!==t.LightVibrant){var d=t.LightVibrant.getHsl();i=d[0],l=d[1],s=d[2],s=n.targetNormalLuma,t.Vibrant=new r.Swatch(o.hslToRgb(i,l,s),0)}if(null===t.DarkVibrant&&null!==t.Vibrant){var h=t.Vibrant.getHsl();i=h[0],l=h[1],s=h[2],s=n.targetDarkLuma,t.DarkVibrant=new r.Swatch(o.hslToRgb(i,l,s),0)}if(null===t.LightVibrant&&null!==t.Vibrant){var p=t.Vibrant.getHsl();i=p[0],l=p[1],s=p[2],s=n.targetLightLuma,t.LightVibrant=new r.Swatch(o.hslToRgb(i,l,s),0)}if(null===t.Muted&&null!==t.Vibrant){var g=t.Vibrant.getHsl();i=g[0],l=g[1],s=g[2],s=n.targetMutesSaturation,t.Muted=new r.Swatch(o.hslToRgb(i,l,s),0)}if(null===t.DarkMuted&&null!==t.DarkVibrant){var f=t.DarkVibrant.getHsl();i=f[0],l=f[1],s=f[2],s=n.targetMutesSaturation,t.DarkMuted=new r.Swatch(o.hslToRgb(i,l,s),0)}if(null===t.LightMuted&&null!==t.LightVibrant){var m=t.LightVibrant.getHsl();i=m[0],l=m[1],s=m[2],s=n.targetMutesSaturation,t.LightMuted=new r.Swatch(o.hslToRgb(i,l,s),0)}}(s,0,e),s}},77234:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(73977);Object.defineProperty(e,"Default",{enumerable:!0,get:function(){return r.default}})},83614:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ImageBase=void 0;var n=function(){function t(){}return t.prototype.scaleDown=function(t){var e=this.getWidth(),n=this.getHeight(),r=1;if(t.maxDimension>0){var o=Math.max(e,n);o>t.maxDimension&&(r=t.maxDimension/o)}else r=1/t.quality;r<1&&this.resize(e*r,n*r,r)},t.prototype.applyFilter=function(t){var e=this.getImageData();if("function"==typeof t)for(var n=e.data,r=n.length/4,o=void 0,a=0;a{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.WebWorker=void 0;var r=n(20628);Object.defineProperty(e,"MMCQ",{enumerable:!0,get:function(){return r.default}}),e.WebWorker=null},20628:function(t,e,n){"use strict";var r=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});var o=n(97248),a=r(n(5828)),i=r(n(37514));function l(t,e){for(var n=t.size();t.size()0))break;var o=r.split(),a=o[0],i=o[1];if(t.push(a),i&&i.count()>0&&t.push(i),t.size()===n)break;n=t.size()}}e.default=function(t,e){if(0===t.length||e.colorCount<2||e.colorCount>256)throw new Error("Wrong MMCQ parameters");var n=a.default.build(t),r=n.hist,s=(Object.keys(r).length,new i.default((function(t,e){return t.count()-e.count()})));s.push(n),l(s,.75*e.colorCount);var c=new i.default((function(t,e){return t.count()*t.volume()-e.count()*e.volume()}));return c.contents=s.contents,l(c,e.colorCount-c.size()),function(t){for(var e=[];t.size();){var n=t.pop(),r=n.avg();r[0],r[1],r[2],e.push(new o.Swatch(r,n.count()))}return e}(c)}},37514:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t){this._comparator=t,this.contents=[],this._sorted=!1}return t.prototype._sort=function(){this._sorted||(this.contents.sort(this._comparator),this._sorted=!0)},t.prototype.push=function(t){this.contents.push(t),this._sorted=!1},t.prototype.peek=function(t){return this._sort(),t="number"==typeof t?t:this.contents.length-1,this.contents[t]},t.prototype.pop=function(){return this._sort(),this.contents.pop()},t.prototype.size=function(){return this.contents.length},t.prototype.map=function(t){return this._sort(),this.contents.map(t)},t}();e.default=n},5828:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(67294),o=function(){function t(t,e,n,r,o,a,i){this._volume=-1,this._count=-1,this.dimension={r1:t,r2:e,g1:n,g2:r,b1:o,b2:a},this.hist=i}return t.build=function(e,n){var o,a,i,l,s,c,u,d,h,p=1<<3*r.SIGBITS,g=new Uint32Array(p);o=i=s=0,a=l=c=Number.MAX_VALUE;for(var f=e.length/4,m=0;m>=r.RSHIFT,d>>=r.RSHIFT,h>>=r.RSHIFT,g[r.getColorIndex(u,d,h)]+=1,u>o&&(o=u),ui&&(i=d),ds&&(s=h),h>=r.RSHIFT,n>>=r.RSHIFT,o>>=r.RSHIFT,e>=i&&e<=l&&n>=s&&n<=c&&o>=u&&o<=d},t.prototype.split=function(){var t=this.hist,e=this.dimension,n=e.r1,o=e.r2,a=e.g1,i=e.g2,l=e.b1,s=e.b2,c=this.count();if(!c)return[];if(1===c)return[this.clone()];var u,d,h=o-n+1,p=i-a+1,g=s-l+1,f=Math.max(h,p,g),m=null;u=d=0;var v=null;if(f===h){v="r",m=new Uint32Array(o+1);for(var b=n;b<=o;b++){u=0;for(var A=a;A<=i;A++)for(var _=l;_<=s;_++)u+=t[r.getColorIndex(b,A,_)];d+=u,m[b]=d}}else if(f===p)for(v="g",m=new Uint32Array(i+1),A=a;A<=i;A++){for(u=0,b=n;b<=o;b++)for(_=l;_<=s;_++)u+=t[r.getColorIndex(b,A,_)];d+=u,m[A]=d}else for(v="b",m=new Uint32Array(s+1),_=l;_<=s;_++){for(u=0,b=n;b<=o;b++)for(A=a;A<=i;A++)u+=t[r.getColorIndex(b,A,_)];d+=u,m[_]=d}for(var y=-1,C=new Uint32Array(m.length),w=0;wd/2&&(y=w),C[w]=d-k}var x=this;return function(t){var e=t+"1",n=t+"2",r=x.dimension[e],o=x.dimension[n],a=x.clone(),i=x.clone(),l=y-r,s=o-y;for(l<=s?(o=Math.min(o-1,~~(y+s/2)),o=Math.max(0,o)):(o=Math.max(r,~~(y-1-l/2)),o=Math.min(x.dimension[n],o));!m[o];)o++;for(var c=C[o];!c&&m[o-1];)c=C[--o];return a.dimension[n]=o,i.dimension[e]=o+1,[a,i]}(v)},t}();e.default=o},67294:(t,e)=>{"use strict";function n(t){var e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return null===e?null:[e[1],e[2],e[3]].map((function(t){return parseInt(t,16)}))}function r(t,e,n){return e/=255,n/=255,t=(t/=255)>.04045?Math.pow((t+.005)/1.055,2.4):t/12.92,e=e>.04045?Math.pow((e+.005)/1.055,2.4):e/12.92,n=n>.04045?Math.pow((n+.005)/1.055,2.4):n/12.92,[.4124*(t*=100)+.3576*(e*=100)+.1805*(n*=100),.2126*t+.7152*e+.0722*n,.0193*t+.1192*e+.9505*n]}function o(t,e,n){return e/=100,n/=108.883,t=(t/=95.047)>.008856?Math.pow(t,1/3):7.787*t+16/116,[116*(e=e>.008856?Math.pow(e,1/3):7.787*e+16/116)-16,500*(t-e),200*(e-(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116))]}function a(t,e,n){var a=r(t,e,n);return o(a[0],a[1],a[2])}function i(t,e){var n=t[0],r=t[1],o=t[2],a=e[0],i=e[1],l=e[2],s=n-a,c=r-i,u=o-l,d=Math.sqrt(r*r+o*o),h=a-n,p=Math.sqrt(i*i+l*l)-d,g=Math.sqrt(s*s+c*c+u*u),f=Math.sqrt(g)>Math.sqrt(Math.abs(h))+Math.sqrt(Math.abs(p))?Math.sqrt(g*g-h*h-p*p):0;return h/=1,p/=1*(1+.045*d),f/=1*(1+.015*d),Math.sqrt(h*h+p*p+f*f)}function l(t,e){return i(a.apply(void 0,t),a.apply(void 0,e))}Object.defineProperty(e,"__esModule",{value:!0}),e.getColorIndex=e.getColorDiffStatus=e.hexDiff=e.rgbDiff=e.deltaE94=e.rgbToCIELab=e.xyzToCIELab=e.rgbToXyz=e.hslToRgb=e.rgbToHsl=e.rgbToHex=e.hexToRgb=e.defer=e.RSHIFT=e.SIGBITS=e.DELTAE94_DIFF_STATUS=void 0,e.DELTAE94_DIFF_STATUS={NA:0,PERFECT:1,CLOSE:2,GOOD:10,SIMILAR:50},e.SIGBITS=5,e.RSHIFT=8-e.SIGBITS,e.defer=function(){var t,e,n=new Promise((function(n,r){t=n,e=r}));return{resolve:t,reject:e,promise:n}},e.hexToRgb=n,e.rgbToHex=function(t,e,n){return"#"+((1<<24)+(t<<16)+(e<<8)+n).toString(16).slice(1,7)},e.rgbToHsl=function(t,e,n){t/=255,e/=255,n/=255;var r,o,a=Math.max(t,e,n),i=Math.min(t,e,n),l=(a+i)/2;if(a===i)r=o=0;else{var s=a-i;switch(o=l>.5?s/(2-a-i):s/(a+i),a){case t:r=(e-n)/s+(e1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+(e-t)*(2/3-n)*6:t}if(0===e)r=o=a=n;else{var l=n<.5?n*(1+e):n+e-n*e,s=2*n-l;r=i(s,l,t+1/3),o=i(s,l,t),a=i(s,l,t-1/3)}return[255*r,255*o,255*a]},e.rgbToXyz=r,e.xyzToCIELab=o,e.rgbToCIELab=a,e.deltaE94=i,e.rgbDiff=l,e.hexDiff=function(t,e){return l(n(t),n(e))},e.getColorDiffStatus=function(t){return t{}},a={};function i(t){var e=a[t];if(void 0!==e)return e.exports;var n=a[t]={id:t,loaded:!1,exports:{}};return o[t].call(n.exports,n,n.exports,i),n.loaded=!0,n.exports}i.m=o,e=[],i.O=(t,n,r,o)=>{if(!n){var a=1/0;for(u=0;u=o)&&Object.keys(i.O).every((t=>i.O[t](n[s])))?n.splice(s--,1):(l=!1,o0&&e[u-1][2]>o;u--)e[u]=e[u-1];e[u]=[n,r,o]},i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var n in e)i.o(e,n)&&!i.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},i.f={},i.e=t=>Promise.all(Object.keys(i.f).reduce(((e,n)=>(i.f[n](t,e),e)),[])),i.u=t=>t+"-"+t+".js?v="+{1215:"dd1ef4c4cc807022e660",5076:"15b21454a9691213632e"}[t],i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n={},r="nextcloud:",i.l=(t,e,o,a)=>{if(n[t])n[t].push(e);else{var l,s;if(void 0!==o)for(var c=document.getElementsByTagName("script"),u=0;u{l.onerror=l.onload=null,clearTimeout(p);var o=n[t];if(delete n[t],l.parentNode&&l.parentNode.removeChild(l),o&&o.forEach((t=>t(r))),e)return e(r)},p=setTimeout(h.bind(null,void 0,{type:"timeout",target:l}),12e4);l.onerror=h.bind(null,l.onerror),l.onload=h.bind(null,l.onload),s&&document.head.appendChild(l)}},i.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),i.j=1474,(()=>{var t;i.g.importScripts&&(t=i.g.location+"");var e=i.g.document;if(!t&&e&&(e.currentScript&&(t=e.currentScript.src),!t)){var n=e.getElementsByTagName("script");if(n.length)for(var r=n.length-1;r>-1&&!t;)t=n[r--].src}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),i.p=t})(),(()=>{i.b=document.baseURI||self.location.href;var t={1474:0};i.f.j=(e,n)=>{var r=i.o(t,e)?t[e]:void 0;if(0!==r)if(r)n.push(r[2]);else{var o=new Promise(((n,o)=>r=t[e]=[n,o]));n.push(r[2]=o);var a=i.p+i.u(e),l=new Error;i.l(a,(n=>{if(i.o(t,e)&&(0!==(r=t[e])&&(t[e]=void 0),r)){var o=n&&("load"===n.type?"missing":n.type),a=n&&n.target&&n.target.src;l.message="Loading chunk "+e+" failed.\n("+o+": "+a+")",l.name="ChunkLoadError",l.type=o,l.request=a,r[1](l)}}),"chunk-"+e,e)}},i.O.j=e=>0===t[e];var e=(e,n)=>{var r,o,a=n[0],l=n[1],s=n[2],c=0;if(a.some((e=>0!==t[e]))){for(r in l)i.o(l,r)&&(i.m[r]=l[r]);if(s)var u=s(i)}for(e&&e(n);ci(30923)));l=i.O(l)})(); -//# sourceMappingURL=theming-personal-theming.js.map?v=8d2db71665b77a118eae \ No newline at end of file +(()=>{var e,n,r,o={52689:(e,n,r)=>{"use strict";var o=r(77958),a=r(20144),i=r(79753),l=r(43554),s=r(93664),c=r(9359),u=r(90580),d=r(64024),p=(r(97248),r(20296)),h=r.n(p),g=r(12926),f=r(29497),m=r(1082),v=r.n(m),b=r(11734),A=r(44893);const _={name:"ImageEditIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var y=r(51900);const C=(0,y.Z)(_,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon image-edit-icon",attrs:{"aria-hidden":!t.title,"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:"M22.7 14.3L21.7 15.3L19.7 13.3L20.7 12.3C20.8 12.2 20.9 12.1 21.1 12.1C21.2 12.1 21.4 12.2 21.5 12.3L22.8 13.6C22.9 13.8 22.9 14.1 22.7 14.3M13 19.9V22H15.1L21.2 15.9L19.2 13.9L13 19.9M21 5C21 3.9 20.1 3 19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H11V19.1L12.1 18H5L8.5 13.5L11 16.5L14.5 12L16.1 14.1L21 9.1V5Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports;var w=r(25108);const k=(0,l.j)("theming","backgroundImage"),x=(0,l.j)("theming","shippedBackgrounds"),S=(0,l.j)("theming","themingDefaultBackground"),D=(0,l.j)("theming","defaultShippedBackground"),T=t=>(0,i.generateFilePath)("theming","","img/background/")+t,E={name:"BackgroundSettings",components:{Check:b.default,Close:A.default,ImageEdit:C,NcButton:f.Z,NcColorPicker:g.N},data:()=>({loading:!1,Theming:(0,l.j)("theming","data",{}),backgroundImage:k}),computed:{shippedBackgrounds(){return Object.keys(x).map((t=>({name:t,url:T(t),preview:T("preview/"+t),details:x[t]}))).filter((t=>!(!this.isGlobalBackgroundDeleted&&!this.isGlobalBackgroundDefault)||t.name!==D))},isGlobalBackgroundDefault:()=>!!S,isGlobalBackgroundDeleted:()=>"backgroundColor"===S,isBackgroundDisabled(){return"disabled"===this.backgroundImage||!this.backgroundImage}},methods:{invertTextColor(t){return this.calculateLuma(t)>.6},calculateLuma(t){const[e,n,r]=this.hexToRGB(t);return(.2126*e+.7152*n+.0722*r)/255},hexToRGB(t){const e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return e?[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16)]:null},async update(t){this.backgroundImage=t.backgroundImage,this.Theming.color=t.backgroundColor,this.$emit("update:background"),this.loading=!1},async setDefault(){this.loading="default";const t=await s.Z.post((0,i.generateUrl)("/apps/theming/background/default"));this.update(t.data)},async setShipped(t){this.loading=t;const e=await s.Z.post((0,i.generateUrl)("/apps/theming/background/shipped"),{value:t});this.update(e.data)},async setFile(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.loading="custom";const n=await s.Z.post((0,i.generateUrl)("/apps/theming/background/custom"),{value:t,color:e});this.update(n.data)},async removeBackground(){this.loading="remove";const t=await s.Z.delete((0,i.generateUrl)("/apps/theming/background/custom"));this.update(t.data)},async pickColor(t){this.loading="color";const e=t?.target?.dataset?.color||this.Theming?.color||"#0082c9",n=await s.Z.post((0,i.generateUrl)("/apps/theming/background/color"),{color:e});this.update(n.data)},debouncePickColor:h()((function(){this.pickColor(...arguments)}),200),pickFile(){(0,d.fn)(t("theming","Select a background from your files")).allowDirectories(!1).setMimeTypeFilter(["image/png","image/gif","image/jpeg","image/svg+xml","image/svg"]).setMultiSelect(!1).addButton({id:"select",label:t("theming","Select background"),callback:t=>{this.applyFile(t[0]?.path)},type:"primary"}).build().pick()},async applyFile(e){if(!e||"string"!=typeof e||0===e.trim().length||"/"===e)return w.error("No valid background have been selected",{path:e}),void(0,d.x2)(t("theming","No background has been selected"));this.loading="custom";let n=null,r=null;try{const t=(0,i.generateRemoteUrl)("dav/files/"+(0,o.ts)().uid+e);n=await s.Z.get(t,{responseType:"blob"});const a=URL.createObjectURL(n.data),l=await this.getColorPaletteFromBlob(a);r=l?.DarkVibrant?.hex,this.setFile(e,r),w.debug("Extracted colour",r,"from custom image",e,l)}catch(t){this.setFile(e),w.error("Unable to extract colour from custom image",{error:t,path:e,response:n,color:r})}},getColorPaletteFromBlob:t=>new Promise(((e,n)=>{new(v())(t).getPalette(((t,r)=>{t&&n(t),e(r)}))}))}};var I=r(93379),O=r.n(I),M=r(7795),P=r.n(M),L=r(90569),B=r.n(L),N=r(3565),F=r.n(N),j=r(19216),R=r.n(j),U=r(44589),Z=r.n(U),H=r(22065),V={};V.styleTagTransform=Z(),V.setAttributes=F(),V.insert=B().bind(null,"head"),V.domAPI=P(),V.insertStyleElement=R(),O()(H.Z,V),H.Z&&H.Z.locals&&H.Z.locals;const z=(0,y.Z)(E,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"background-selector",attrs:{"data-user-theming-background-settings":""}},[e("button",{class:{"icon-loading":"custom"===t.loading,"background background__filepicker":!0,"background--active":"custom"===t.backgroundImage},attrs:{"aria-pressed":"custom"===t.backgroundImage,"data-color-bright":t.invertTextColor(t.Theming.color),"data-user-theming-background-custom":"",tabindex:"0"},on:{click:t.pickFile}},[t._v("\n\t\t"+t._s(t.t("theming","Custom background"))+"\n\t\t"),"custom"!==t.backgroundImage?e("ImageEdit",{attrs:{size:26}}):t._e(),t._v(" "),e("Check",{attrs:{size:44}})],1),t._v(" "),e("button",{class:{"icon-loading":"default"===t.loading,"background background__default":!0,"background--active":"default"===t.backgroundImage},style:{"--border-color":t.Theming.defaultColor},attrs:{"aria-pressed":"default"===t.backgroundImage,"data-color-bright":t.invertTextColor(t.Theming.defaultColor),"data-user-theming-background-default":"",tabindex:"0"},on:{click:t.setDefault}},[t._v("\n\t\t"+t._s(t.t("theming","Default background"))+"\n\t\t"),e("Check",{attrs:{size:44}})],1),t._v(" "),e("div",{staticClass:"background-color",attrs:{"data-user-theming-background-color":""}},[e("NcColorPicker",{on:{input:t.debouncePickColor},model:{value:t.Theming.color,callback:function(e){t.$set(t.Theming,"color",e)},expression:"Theming.color"}},[e("NcButton",{attrs:{type:"ternary"}},[t._v("\n\t\t\t\t"+t._s(t.t("theming","Change color"))+"\n\t\t\t")])],1)],1),t._v(" "),e("button",{class:{"background background__delete":!0,"background--active":t.isBackgroundDisabled},attrs:{"aria-pressed":t.isBackgroundDisabled,"data-user-theming-background-clear":"",tabindex:"0"},on:{click:t.removeBackground}},[t._v("\n\t\t"+t._s(t.t("theming","No background"))+"\n\t\t"),t.isBackgroundDisabled?t._e():e("Close",{attrs:{size:32}}),t._v(" "),e("Check",{attrs:{size:44}})],1),t._v(" "),t._l(t.shippedBackgrounds,(function(n){return e("button",{key:n.name,class:{"background background__shipped":!0,"icon-loading":t.loading===n.name,"background--active":t.backgroundImage===n.name},style:{backgroundImage:"url("+n.preview+")","--border-color":n.details.primary_color},attrs:{title:n.details.attribution,"aria-label":n.details.description,"aria-pressed":t.backgroundImage===n.name,"data-color-bright":"dark"===n.details.theming,"data-user-theming-background-shipped":n.name,tabindex:"0"},on:{click:function(e){return t.setShipped(n.name)}}},[e("Check",{attrs:{size:44}})],1)}))],2)}),[],!1,null,"1175e65a",null).exports;var Y=r(25108);const q={name:"ItemPreview",components:{NcCheckboxRadioSwitch:c.Z},props:{enforced:{type:Boolean,default:!1},selected:{type:Boolean,default:!1},theme:{type:Object,required:!0},type:{type:String,default:""},unique:{type:Boolean,default:!1}},computed:{switchType(){return this.unique?"switch":"radio"},name(){return this.unique?null:this.type},img(){return(0,i.generateFilePath)("theming","img",this.theme.id+".jpg")},checked:{get(){return this.selected},set(t){Y.debug("Changed theme",this.theme.id,t),this.unique?this.$emit("change",{enabled:!0===t,id:this.theme.id}):this.$emit("change",{enabled:!0,id:this.theme.id})}}},methods:{onToggle(){"radio"!==this.switchType?this.checked=!this.checked:this.checked=!0}}};var G=r(62782),X={};X.styleTagTransform=Z(),X.setAttributes=F(),X.insert=B().bind(null,"head"),X.domAPI=P(),X.insertStyleElement=R(),O()(G.Z,X),G.Z&&G.Z.locals&&G.Z.locals;const W=(0,y.Z)(q,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"theming__preview",class:"theming__preview--"+t.theme.id},[e("div",{staticClass:"theming__preview-image",style:{backgroundImage:"url("+t.img+")"},on:{click:t.onToggle}}),t._v(" "),e("div",{staticClass:"theming__preview-description"},[e("h3",[t._v(t._s(t.theme.title))]),t._v(" "),e("p",{staticClass:"theming__preview-explanation"},[t._v(t._s(t.theme.description))]),t._v(" "),t.enforced?e("span",{staticClass:"theming__preview-warning",attrs:{role:"note"}},[t._v("\n\t\t\t"+t._s(t.t("theming","Theme selection is enforced"))+"\n\t\t")]):t._e(),t._v(" "),e("NcCheckboxRadioSwitch",{staticClass:"theming__preview-toggle",attrs:{checked:t.checked,disabled:t.enforced,name:t.name,type:t.switchType},on:{"update:checked":function(e){t.checked=e}}},[t._v("\n\t\t\t"+t._s(t.theme.enableLabel)+"\n\t\t")])],1)])}),[],!1,null,"1a08e35a",null).exports;var $=r(31352),K=r(9568),Q=r(64886);function J(t){return J="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},J(t)}function tt(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function et(){return et=Object.assign||function(t){for(var e=1;e"===e[0]&&(e=e.substring(1)),t)try{if(t.matches)return t.matches(e);if(t.msMatchesSelector)return t.msMatchesSelector(e);if(t.webkitMatchesSelector)return t.webkitMatchesSelector(e)}catch(t){return!1}return!1}}function gt(t){return t.host&&t!==document&&t.host.nodeType?t.host:t.parentNode}function ft(t,e,n,r){if(t){n=n||document;do{if(null!=e&&(">"===e[0]?t.parentNode===n&&ht(t,e):ht(t,e))||r&&t===n)return t;if(t===n)break}while(t=gt(t))}return null}var mt,vt=/\s+/g;function bt(t,e,n){if(t&&e)if(t.classList)t.classList[n?"add":"remove"](e);else{var r=(" "+t.className+" ").replace(vt," ").replace(" "+e+" "," ");t.className=(r+(n?" "+e:"")).replace(vt," ")}}function At(t,e,n){var r=t&&t.style;if(r){if(void 0===n)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(t,""):t.currentStyle&&(n=t.currentStyle),void 0===e?n:n[e];e in r||-1!==e.indexOf("webkit")||(e="-webkit-"+e),r[e]=n+("string"==typeof n?"":"px")}}function _t(t,e){var n="";if("string"==typeof t)n=t;else do{var r=At(t,"transform");r&&"none"!==r&&(n=r+" "+n)}while(!e&&(t=t.parentNode));var o=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return o&&new o(n)}function yt(t,e,n){if(t){var r=t.getElementsByTagName(e),o=0,a=r.length;if(n)for(;o=a:o<=a))return r;if(r===Ct())break;r=Et(r,!1)}return!1}function xt(t,e,n){for(var r=0,o=0,a=t.children;o2&&void 0!==arguments[2]?arguments[2]:{},r=n.evt,o=function(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},a=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}(n,["evt"]);Ft.pluginEvent.bind(Ie)(t,e,nt({dragEl:Ut,parentEl:Zt,ghostEl:Ht,rootEl:Vt,nextEl:zt,lastDownEl:Yt,cloneEl:qt,cloneHidden:Gt,dragStarted:ie,putSortable:Jt,activeSortable:Ie.active,originalEvent:r,oldIndex:Xt,oldDraggableIndex:$t,newIndex:Wt,newDraggableIndex:Kt,hideGhostForTarget:Se,unhideGhostForTarget:De,cloneNowHidden:function(){Gt=!0},cloneNowShown:function(){Gt=!1},dispatchSortableEvent:function(t){Rt({sortable:e,name:t,originalEvent:r})}},o))};function Rt(t){!function(t){var e=t.sortable,n=t.rootEl,r=t.name,o=t.targetEl,a=t.cloneEl,i=t.toEl,l=t.fromEl,s=t.oldIndex,c=t.newIndex,u=t.oldDraggableIndex,d=t.newDraggableIndex,p=t.originalEvent,h=t.putSortable,g=t.extraEventProperties;if(e=e||n&&n[Lt]){var f,m=e.options,v="on"+r.charAt(0).toUpperCase()+r.substr(1);!window.CustomEvent||ot||at?(f=document.createEvent("Event")).initEvent(r,!0,!0):f=new CustomEvent(r,{bubbles:!0,cancelable:!0}),f.to=i||n,f.from=l||n,f.item=o||n,f.clone=a,f.oldIndex=s,f.newIndex=c,f.oldDraggableIndex=u,f.newDraggableIndex=d,f.originalEvent=p,f.pullMode=h?h.lastPutMode:void 0;var b=nt({},g,Ft.getEventProperties(r,e));for(var A in b)f[A]=b[A];n&&n.dispatchEvent(f),m[v]&&m[v].call(e,f)}}(nt({putSortable:Jt,cloneEl:qt,targetEl:Ut,rootEl:Vt,oldIndex:Xt,oldDraggableIndex:$t,newIndex:Wt,newDraggableIndex:Kt},t))}var Ut,Zt,Ht,Vt,zt,Yt,qt,Gt,Xt,Wt,$t,Kt,Qt,Jt,te,ee,ne,re,oe,ae,ie,le,se,ce,ue,de=!1,pe=!1,he=[],ge=!1,fe=!1,me=[],ve=!1,be=[],Ae="undefined"!=typeof document,_e=st,ye=at||ot?"cssFloat":"float",Ce=Ae&&!ct&&!st&&"draggable"in document.createElement("div"),we=function(){if(Ae){if(ot)return!1;var t=document.createElement("x");return t.style.cssText="pointer-events:auto","auto"===t.style.pointerEvents}}(),ke=function(t,e){var n=At(t),r=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),o=xt(t,0,e),a=xt(t,1,e),i=o&&At(o),l=a&&At(a),s=i&&parseInt(i.marginLeft)+parseInt(i.marginRight)+wt(o).width,c=l&&parseInt(l.marginLeft)+parseInt(l.marginRight)+wt(a).width;if("flex"===n.display)return"column"===n.flexDirection||"column-reverse"===n.flexDirection?"vertical":"horizontal";if("grid"===n.display)return n.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(o&&i.float&&"none"!==i.float){var u="left"===i.float?"left":"right";return!a||"both"!==l.clear&&l.clear!==u?"horizontal":"vertical"}return o&&("block"===i.display||"flex"===i.display||"table"===i.display||"grid"===i.display||s>=r&&"none"===n[ye]||a&&"none"===n[ye]&&s+c>r)?"vertical":"horizontal"},xe=function(t){function e(t,n){return function(r,o,a,i){var l=r.options.group.name&&o.options.group.name&&r.options.group.name===o.options.group.name;if(null==t&&(n||l))return!0;if(null==t||!1===t)return!1;if(n&&"clone"===t)return t;if("function"==typeof t)return e(t(r,o,a,i),n)(r,o,a,i);var s=(n?r:o).options.group.name;return!0===t||"string"==typeof t&&t===s||t.join&&t.indexOf(s)>-1}}var n={},r=t.group;r&&"object"==J(r)||(r={name:r}),n.name=r.name,n.checkPull=e(r.pull,!0),n.checkPut=e(r.put),n.revertClone=r.revertClone,t.group=n},Se=function(){!we&&Ht&&At(Ht,"display","none")},De=function(){!we&&Ht&&At(Ht,"display","")};Ae&&document.addEventListener("click",(function(t){if(pe)return t.preventDefault(),t.stopPropagation&&t.stopPropagation(),t.stopImmediatePropagation&&t.stopImmediatePropagation(),pe=!1,!1}),!0);var Te=function(t){if(Ut){t=t.touches?t.touches[0]:t;var e=(o=t.clientX,a=t.clientY,he.some((function(t){if(!St(t)){var e=wt(t),n=t[Lt].options.emptyInsertThreshold,r=o>=e.left-n&&o<=e.right+n,l=a>=e.top-n&&a<=e.bottom+n;return n&&r&&l?i=t:void 0}})),i);if(e){var n={};for(var r in t)t.hasOwnProperty(r)&&(n[r]=t[r]);n.target=n.rootEl=e,n.preventDefault=void 0,n.stopPropagation=void 0,e[Lt]._onDragOver(n)}}var o,a,i},Ee=function(t){Ut&&Ut.parentNode[Lt]._isOutsideThisEl(t.target)};function Ie(t,e){if(!t||!t.nodeType||1!==t.nodeType)throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(t));this.el=t,this.options=e=et({},e),t[Lt]=this;var n,r,o={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(t.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return ke(t,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(t,e){t.setData("Text",e.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:!1!==Ie.supportPointer&&"PointerEvent"in window,emptyInsertThreshold:5};for(var a in Ft.initializePlugins(this,t,o),o)!(a in e)&&(e[a]=o[a]);for(var i in xe(e),this)"_"===i.charAt(0)&&"function"==typeof this[i]&&(this[i]=this[i].bind(this));this.nativeDraggable=!e.forceFallback&&Ce,this.nativeDraggable&&(this.options.touchStartThreshold=1),e.supportPointer?dt(t,"pointerdown",this._onTapStart):(dt(t,"mousedown",this._onTapStart),dt(t,"touchstart",this._onTapStart)),this.nativeDraggable&&(dt(t,"dragover",this),dt(t,"dragenter",this)),he.push(this.el),e.store&&e.store.get&&this.sort(e.store.get(this)||[]),et(this,(r=[],{captureAnimationState:function(){r=[],this.options.animation&&[].slice.call(this.el.children).forEach((function(t){if("none"!==At(t,"display")&&t!==Ie.ghost){r.push({target:t,rect:wt(t)});var e=nt({},r[r.length-1].rect);if(t.thisAnimationDuration){var n=_t(t,!0);n&&(e.top-=n.f,e.left-=n.e)}t.fromRect=e}}))},addAnimationState:function(t){r.push(t)},removeAnimationState:function(t){r.splice(function(t,e){for(var n in t)if(t.hasOwnProperty(n))for(var r in e)if(e.hasOwnProperty(r)&&e[r]===t[n][r])return Number(n);return-1}(r,{target:t}),1)},animateAll:function(t){var e=this;if(!this.options.animation)return clearTimeout(n),void("function"==typeof t&&t());var o=!1,a=0;r.forEach((function(t){var n=0,r=t.target,i=r.fromRect,l=wt(r),s=r.prevFromRect,c=r.prevToRect,u=t.rect,d=_t(r,!0);d&&(l.top-=d.f,l.left-=d.e),r.toRect=l,r.thisAnimationDuration&&It(s,l)&&!It(i,l)&&(u.top-l.top)/(u.left-l.left)==(i.top-l.top)/(i.left-l.left)&&(n=function(t,e,n,r){return Math.sqrt(Math.pow(e.top-t.top,2)+Math.pow(e.left-t.left,2))/Math.sqrt(Math.pow(e.top-n.top,2)+Math.pow(e.left-n.left,2))*r.animation}(u,s,c,e.options)),It(l,i)||(r.prevFromRect=i,r.prevToRect=l,n||(n=e.options.animation),e.animate(r,u,l,n)),n&&(o=!0,a=Math.max(a,n),clearTimeout(r.animationResetTimer),r.animationResetTimer=setTimeout((function(){r.animationTime=0,r.prevFromRect=null,r.fromRect=null,r.prevToRect=null,r.thisAnimationDuration=null}),n),r.thisAnimationDuration=n)})),clearTimeout(n),o?n=setTimeout((function(){"function"==typeof t&&t()}),a):"function"==typeof t&&t(),r=[]},animate:function(t,e,n,r){if(r){At(t,"transition",""),At(t,"transform","");var o=_t(this.el),a=o&&o.a,i=o&&o.d,l=(e.left-n.left)/(a||1),s=(e.top-n.top)/(i||1);t.animatingX=!!l,t.animatingY=!!s,At(t,"transform","translate3d("+l+"px,"+s+"px,0)"),function(t){t.offsetWidth}(t),At(t,"transition","transform "+r+"ms"+(this.options.easing?" "+this.options.easing:"")),At(t,"transform","translate3d(0,0,0)"),"number"==typeof t.animated&&clearTimeout(t.animated),t.animated=setTimeout((function(){At(t,"transition",""),At(t,"transform",""),t.animated=!1,t.animatingX=!1,t.animatingY=!1}),r)}}}))}function Oe(t,e,n,r,o,a,i,l){var s,c,u=t[Lt],d=u.options.onMove;return!window.CustomEvent||ot||at?(s=document.createEvent("Event")).initEvent("move",!0,!0):s=new CustomEvent("move",{bubbles:!0,cancelable:!0}),s.to=e,s.from=t,s.dragged=n,s.draggedRect=r,s.related=o||e,s.relatedRect=a||wt(e),s.willInsertAfter=l,s.originalEvent=i,t.dispatchEvent(s),d&&(c=d.call(u,s,i)),c}function Me(t){t.draggable=!1}function Pe(){ve=!1}function Le(t){for(var e=t.tagName+t.className+t.src+t.href+t.textContent,n=e.length,r=0;n--;)r+=e.charCodeAt(n);return r.toString(36)}function Be(t){return setTimeout(t,0)}function Ne(t){return clearTimeout(t)}Ie.prototype={constructor:Ie,_isOutsideThisEl:function(t){this.el.contains(t)||t===this.el||(le=null)},_getDirection:function(t,e){return"function"==typeof this.options.direction?this.options.direction.call(this,t,e,Ut):this.options.direction},_onTapStart:function(t){if(t.cancelable){var e=this,n=this.el,r=this.options,o=r.preventOnFilter,a=t.type,i=t.touches&&t.touches[0]||t.pointerType&&"touch"===t.pointerType&&t,l=(i||t).target,s=t.target.shadowRoot&&(t.path&&t.path[0]||t.composedPath&&t.composedPath()[0])||l,c=r.filter;if(function(t){be.length=0;for(var e=t.getElementsByTagName("input"),n=e.length;n--;){var r=e[n];r.checked&&be.push(r)}}(n),!Ut&&!(/mousedown|pointerdown/.test(a)&&0!==t.button||r.disabled||s.isContentEditable||(l=ft(l,r.draggable,n,!1))&&l.animated||Yt===l)){if(Xt=Dt(l),$t=Dt(l,r.draggable),"function"==typeof c){if(c.call(this,t,l,this))return Rt({sortable:e,rootEl:s,name:"filter",targetEl:l,toEl:n,fromEl:n}),jt("filter",e,{evt:t}),void(o&&t.cancelable&&t.preventDefault())}else if(c&&(c=c.split(",").some((function(r){if(r=ft(s,r.trim(),n,!1))return Rt({sortable:e,rootEl:r,name:"filter",targetEl:l,fromEl:n,toEl:n}),jt("filter",e,{evt:t}),!0}))))return void(o&&t.cancelable&&t.preventDefault());r.handle&&!ft(s,r.handle,n,!1)||this._prepareDragStart(t,i,l)}}},_prepareDragStart:function(t,e,n){var r,o=this,a=o.el,i=o.options,l=a.ownerDocument;if(n&&!Ut&&n.parentNode===a){var s=wt(n);if(Vt=a,Zt=(Ut=n).parentNode,zt=Ut.nextSibling,Yt=n,Qt=i.group,Ie.dragged=Ut,te={target:Ut,clientX:(e||t).clientX,clientY:(e||t).clientY},oe=te.clientX-s.left,ae=te.clientY-s.top,this._lastX=(e||t).clientX,this._lastY=(e||t).clientY,Ut.style["will-change"]="all",r=function(){jt("delayEnded",o,{evt:t}),Ie.eventCanceled?o._onDrop():(o._disableDelayedDragEvents(),!it&&o.nativeDraggable&&(Ut.draggable=!0),o._triggerDragStart(t,e),Rt({sortable:o,name:"choose",originalEvent:t}),bt(Ut,i.chosenClass,!0))},i.ignore.split(",").forEach((function(t){yt(Ut,t.trim(),Me)})),dt(l,"dragover",Te),dt(l,"mousemove",Te),dt(l,"touchmove",Te),dt(l,"mouseup",o._onDrop),dt(l,"touchend",o._onDrop),dt(l,"touchcancel",o._onDrop),it&&this.nativeDraggable&&(this.options.touchStartThreshold=4,Ut.draggable=!0),jt("delayStart",this,{evt:t}),!i.delay||i.delayOnTouchOnly&&!e||this.nativeDraggable&&(at||ot))r();else{if(Ie.eventCanceled)return void this._onDrop();dt(l,"mouseup",o._disableDelayedDrag),dt(l,"touchend",o._disableDelayedDrag),dt(l,"touchcancel",o._disableDelayedDrag),dt(l,"mousemove",o._delayedDragTouchMoveHandler),dt(l,"touchmove",o._delayedDragTouchMoveHandler),i.supportPointer&&dt(l,"pointermove",o._delayedDragTouchMoveHandler),o._dragStartTimer=setTimeout(r,i.delay)}}},_delayedDragTouchMoveHandler:function(t){var e=t.touches?t.touches[0]:t;Math.max(Math.abs(e.clientX-this._lastX),Math.abs(e.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){Ut&&Me(Ut),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var t=this.el.ownerDocument;pt(t,"mouseup",this._disableDelayedDrag),pt(t,"touchend",this._disableDelayedDrag),pt(t,"touchcancel",this._disableDelayedDrag),pt(t,"mousemove",this._delayedDragTouchMoveHandler),pt(t,"touchmove",this._delayedDragTouchMoveHandler),pt(t,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(t,e){e=e||"touch"==t.pointerType&&t,!this.nativeDraggable||e?this.options.supportPointer?dt(document,"pointermove",this._onTouchMove):dt(document,e?"touchmove":"mousemove",this._onTouchMove):(dt(Ut,"dragend",this),dt(Vt,"dragstart",this._onDragStart));try{document.selection?Be((function(){document.selection.empty()})):window.getSelection().removeAllRanges()}catch(t){}},_dragStarted:function(t,e){if(de=!1,Vt&&Ut){jt("dragStarted",this,{evt:e}),this.nativeDraggable&&dt(document,"dragover",Ee);var n=this.options;!t&&bt(Ut,n.dragClass,!1),bt(Ut,n.ghostClass,!0),Ie.active=this,t&&this._appendGhost(),Rt({sortable:this,name:"start",originalEvent:e})}else this._nulling()},_emulateDragOver:function(){if(ee){this._lastX=ee.clientX,this._lastY=ee.clientY,Se();for(var t=document.elementFromPoint(ee.clientX,ee.clientY),e=t;t&&t.shadowRoot&&(t=t.shadowRoot.elementFromPoint(ee.clientX,ee.clientY))!==e;)e=t;if(Ut.parentNode[Lt]._isOutsideThisEl(t),e)do{if(e[Lt]&&e[Lt]._onDragOver({clientX:ee.clientX,clientY:ee.clientY,target:t,rootEl:e})&&!this.options.dragoverBubble)break;t=e}while(e=e.parentNode);De()}},_onTouchMove:function(t){if(te){var e=this.options,n=e.fallbackTolerance,r=e.fallbackOffset,o=t.touches?t.touches[0]:t,a=Ht&&_t(Ht,!0),i=Ht&&a&&a.a,l=Ht&&a&&a.d,s=_e&&ue&&Tt(ue),c=(o.clientX-te.clientX+r.x)/(i||1)+(s?s[0]-me[0]:0)/(i||1),u=(o.clientY-te.clientY+r.y)/(l||1)+(s?s[1]-me[1]:0)/(l||1);if(!Ie.active&&!de){if(n&&Math.max(Math.abs(o.clientX-this._lastX),Math.abs(o.clientY-this._lastY))r.right+10||t.clientX<=r.right&&t.clientY>r.bottom&&t.clientX>=r.left:t.clientX>r.right&&t.clientY>r.top||t.clientX<=r.right&&t.clientY>r.bottom+10}(t,o,this)&&!f.animated){if(f===Ut)return I(!1);if(f&&a===t.target&&(i=f),i&&(n=wt(i)),!1!==Oe(Vt,a,Ut,e,i,n,t,!!i))return E(),a.appendChild(Ut),Zt=a,O(),I(!0)}else if(i.parentNode===a){n=wt(i);var m,v,b,A=Ut.parentNode!==a,_=!function(t,e,n){var r=n?t.left:t.top,o=n?t.right:t.bottom,a=n?t.width:t.height,i=n?e.left:e.top,l=n?e.right:e.bottom,s=n?e.width:e.height;return r===i||o===l||r+a/2===i+s/2}(Ut.animated&&Ut.toRect||e,i.animated&&i.toRect||n,o),y=o?"top":"left",C=kt(i,"top","top")||kt(Ut,"top","top"),w=C?C.scrollTop:void 0;if(le!==i&&(v=n[y],ge=!1,fe=!_&&l.invertSwap||A),m=function(t,e,n,r,o,a,i,l){var s=r?t.clientY:t.clientX,c=r?n.height:n.width,u=r?n.top:n.left,d=r?n.bottom:n.right,p=!1;if(!i)if(l&&ceu+c*a/2:sd-ce)return-se}else if(s>u+c*(1-o)/2&&sd-c*a/2)?s>u+c/2?1:-1:0}(t,i,n,o,_?1:l.swapThreshold,null==l.invertedSwapThreshold?l.swapThreshold:l.invertedSwapThreshold,fe,le===i),0!==m){var k=Dt(Ut);do{k-=m,b=Zt.children[k]}while(b&&("none"===At(b,"display")||b===Ht))}if(0===m||b===i)return I(!1);le=i,se=m;var x=i.nextElementSibling,S=!1,D=Oe(Vt,a,Ut,e,i,n,t,S=1===m);if(!1!==D)return 1!==D&&-1!==D||(S=1===D),ve=!0,setTimeout(Pe,30),E(),S&&!x?a.appendChild(Ut):i.parentNode.insertBefore(Ut,S?x:i),C&&Mt(C,0,w-C.scrollTop),Zt=Ut.parentNode,void 0===v||fe||(ce=Math.abs(v-wt(i)[y])),O(),I(!0)}if(a.contains(Ut))return I(!1)}return!1}function T(l,s){jt(l,h,nt({evt:t,isOwner:u,axis:o?"vertical":"horizontal",revert:r,dragRect:e,targetRect:n,canSort:d,fromSortable:p,target:i,completed:I,onMove:function(n,r){return Oe(Vt,a,Ut,e,n,wt(n),t,r)},changed:O},s))}function E(){T("dragOverAnimationCapture"),h.captureAnimationState(),h!==p&&p.captureAnimationState()}function I(e){return T("dragOverCompleted",{insertion:e}),e&&(u?c._hideClone():c._showClone(h),h!==p&&(bt(Ut,Jt?Jt.options.ghostClass:c.options.ghostClass,!1),bt(Ut,l.ghostClass,!0)),Jt!==h&&h!==Ie.active?Jt=h:h===Ie.active&&Jt&&(Jt=null),p===h&&(h._ignoreWhileAnimating=i),h.animateAll((function(){T("dragOverAnimationComplete"),h._ignoreWhileAnimating=null})),h!==p&&(p.animateAll(),p._ignoreWhileAnimating=null)),(i===Ut&&!Ut.animated||i===a&&!i.animated)&&(le=null),l.dragoverBubble||t.rootEl||i===document||(Ut.parentNode[Lt]._isOutsideThisEl(t.target),!e&&Te(t)),!l.dragoverBubble&&t.stopPropagation&&t.stopPropagation(),g=!0}function O(){Wt=Dt(Ut),Kt=Dt(Ut,l.draggable),Rt({sortable:h,name:"change",toEl:a,newIndex:Wt,newDraggableIndex:Kt,originalEvent:t})}},_ignoreWhileAnimating:null,_offMoveEvents:function(){pt(document,"mousemove",this._onTouchMove),pt(document,"touchmove",this._onTouchMove),pt(document,"pointermove",this._onTouchMove),pt(document,"dragover",Te),pt(document,"mousemove",Te),pt(document,"touchmove",Te)},_offUpEvents:function(){var t=this.el.ownerDocument;pt(t,"mouseup",this._onDrop),pt(t,"touchend",this._onDrop),pt(t,"pointerup",this._onDrop),pt(t,"touchcancel",this._onDrop),pt(document,"selectstart",this)},_onDrop:function(t){var e=this.el,n=this.options;Wt=Dt(Ut),Kt=Dt(Ut,n.draggable),jt("drop",this,{evt:t}),Zt=Ut&&Ut.parentNode,Wt=Dt(Ut),Kt=Dt(Ut,n.draggable),Ie.eventCanceled||(de=!1,fe=!1,ge=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),Ne(this.cloneId),Ne(this._dragStartId),this.nativeDraggable&&(pt(document,"drop",this),pt(e,"dragstart",this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),lt&&At(document.body,"user-select",""),At(Ut,"transform",""),t&&(ie&&(t.cancelable&&t.preventDefault(),!n.dropBubble&&t.stopPropagation()),Ht&&Ht.parentNode&&Ht.parentNode.removeChild(Ht),(Vt===Zt||Jt&&"clone"!==Jt.lastPutMode)&&qt&&qt.parentNode&&qt.parentNode.removeChild(qt),Ut&&(this.nativeDraggable&&pt(Ut,"dragend",this),Me(Ut),Ut.style["will-change"]="",ie&&!de&&bt(Ut,Jt?Jt.options.ghostClass:this.options.ghostClass,!1),bt(Ut,this.options.chosenClass,!1),Rt({sortable:this,name:"unchoose",toEl:Zt,newIndex:null,newDraggableIndex:null,originalEvent:t}),Vt!==Zt?(Wt>=0&&(Rt({rootEl:Zt,name:"add",toEl:Zt,fromEl:Vt,originalEvent:t}),Rt({sortable:this,name:"remove",toEl:Zt,originalEvent:t}),Rt({rootEl:Zt,name:"sort",toEl:Zt,fromEl:Vt,originalEvent:t}),Rt({sortable:this,name:"sort",toEl:Zt,originalEvent:t})),Jt&&Jt.save()):Wt!==Xt&&Wt>=0&&(Rt({sortable:this,name:"update",toEl:Zt,originalEvent:t}),Rt({sortable:this,name:"sort",toEl:Zt,originalEvent:t})),Ie.active&&(null!=Wt&&-1!==Wt||(Wt=Xt,Kt=$t),Rt({sortable:this,name:"end",toEl:Zt,originalEvent:t}),this.save())))),this._nulling()},_nulling:function(){jt("nulling",this),Vt=Ut=Zt=Ht=zt=qt=Yt=Gt=te=ee=ie=Wt=Kt=Xt=$t=le=se=Jt=Qt=Ie.dragged=Ie.ghost=Ie.clone=Ie.active=null,be.forEach((function(t){t.checked=!0})),be.length=ne=re=0},handleEvent:function(t){switch(t.type){case"drop":case"dragend":this._onDrop(t);break;case"dragenter":case"dragover":Ut&&(this._onDragOver(t),function(t){t.dataTransfer&&(t.dataTransfer.dropEffect="move"),t.cancelable&&t.preventDefault()}(t));break;case"selectstart":t.preventDefault()}},toArray:function(){for(var t,e=[],n=this.el.children,r=0,o=n.length,a=this.options;r!0,"move:down":()=>!0,"update:focus":()=>!0},setup(t,e){let{emit:n}=e;const r=(0,a.ref)(),o=(0,a.ref)();let i=0;return{buttonUp:r,buttonDown:o,moveUp:()=>{n("move:up"),i=1},moveDown:()=>{n("move:down"),i=-1},keepFocus:()=>{0!==i&&(1!==i&&!t.isLast||t.isFirst?(0,a.nextTick)((()=>o.value.$el.focus())):(0,a.nextTick)((()=>r.value.$el.focus()))),i=0},t:$.Iu}}});var nn=r(40773),rn={};rn.styleTagTransform=Z(),rn.setAttributes=F(),rn.insert=B().bind(null,"head"),rn.domAPI=P(),rn.insertStyleElement=R(),O()(nn.Z,rn),nn.Z&&nn.Z.locals&&nn.Z.locals;const on=(0,y.Z)(en,(function(){var t=this,e=t._self._c;return t._self._setupProxy,e("li",{class:{"order-selector-element":!0,"order-selector-element--disabled":t.app.default},attrs:{"data-cy-app-order-element":t.app.id},on:{focusin:function(e){return t.$emit("update:focus")}}},[e("svg",{attrs:{width:"20",height:"20",viewBox:"0 0 20 20",role:"presentation"}},[e("image",{staticClass:"order-selector-element__icon",attrs:{preserveAspectRatio:"xMinYMin meet",x:"0",y:"0",width:"20",height:"20","xlink:href":t.app.icon}})]),t._v(" "),e("div",{staticClass:"order-selector-element__label"},[t._v("\n\t\t"+t._s(t.app.label??t.app.id)+"\n\t")]),t._v(" "),e("div",{staticClass:"order-selector-element__actions"},[e("NcButton",{directives:[{name:"show",rawName:"v-show",value:!t.isFirst&&!t.app.default,expression:"!isFirst && !app.default"}],ref:"buttonUp",attrs:{"aria-label":t.t("settings","Move up"),"aria-describedby":t.ariaDescribedby,"aria-details":t.ariaDetails,"data-cy-app-order-button":"up",type:"tertiary-no-background"},on:{click:t.moveUp},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconArrowUp",{attrs:{size:20}})]},proxy:!0}])}),t._v(" "),e("div",{directives:[{name:"show",rawName:"v-show",value:t.isFirst||!!t.app.default,expression:"isFirst || !!app.default"}],staticClass:"order-selector-element__placeholder",attrs:{"aria-hidden":"true"}}),t._v(" "),e("NcButton",{directives:[{name:"show",rawName:"v-show",value:!t.isLast&&!t.app.default,expression:"!isLast && !app.default"}],ref:"buttonDown",attrs:{"aria-label":t.t("settings","Move down"),"aria-describedby":t.ariaDescribedby,"aria-details":t.ariaDetails,"data-cy-app-order-button":"down",type:"tertiary-no-background"},on:{click:t.moveDown},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconArrowDown",{attrs:{size:20}})]},proxy:!0}])}),t._v(" "),e("div",{directives:[{name:"show",rawName:"v-show",value:t.isLast||!!t.app.default,expression:"isLast || !!app.default"}],staticClass:"order-selector-element__placeholder",attrs:{"aria-hidden":"true"}})],1)])}),[],!1,null,"081ebc45",null).exports,an=(0,a.defineComponent)({name:"AppOrderSelector",components:{AppOrderSelectorElement:on,Fragment:Qe.Fragment},props:{ariaDetails:{type:String,default:null},value:{type:Array,required:!0}},emits:{"update:value":t=>Array.isArray(t)},setup(t,e){let{emit:n}=e;const r=(0,a.ref)(null),o=(0,a.computed)({get:()=>t.value,set:e=>{const r=[...e].sort(((t,n)=>(n.default?1:0)-(t.default?1:0)||e.indexOf(t)-e.indexOf(n)));r.some(((e,n)=>{let{id:r}=e;return r!==t.value[n].id}))?n("update:value",r):i.value+=1}}),i=(0,a.ref)(0);!function(t,e,n={}){let r;const{document:o=K.Td$,...i}=n,l={onUpdate:t=>{!function(t,e,n){const r=(0,a.isRef)(t),o=r?[...(0,Q.Tn)(t)]:(0,Q.Tn)(t);if(n>=0&&n{o.splice(n,0,i),r&&(t.value=o)}))}}(e,t.oldIndex,t.newIndex)}},s=()=>{const e="string"==typeof t?null==o?void 0:o.querySelector(t):(0,K.NXq)(t);e&&void 0===r&&(r=new Ke(e,{...l,...i}))},c=()=>{null==r||r.destroy(),r=void 0};(0,Q.u7)(s),(0,Q.IY)(c)}(r,o,{filter:".order-selector-element--disabled"});const l=(0,a.ref)([]);(0,a.onUpdated)((()=>{l.value.forEach((t=>t.keepFocus()))}));const s=(0,a.ref)("");return{appList:o,listElement:r,moveDown:e=>{const r=e>0?t.value.slice(0,e):[];r.push(t.value[e+1]);const o=e{const r=e>1?t.value.slice(0,e-1):[];if(t.value[e-1]?.default)return;const o=[t.value[e-1]];e{s.value=(0,$.Iu)("theming","Current selected app: {app}, position {position} of {total}",{app:t.value[e].label,position:e+1,total:t.value.length})},renderCount:i,selectorElements:l}}}),ln=an;var sn=r(37049),cn={};cn.styleTagTransform=Z(),cn.setAttributes=F(),cn.insert=B().bind(null,"head"),cn.domAPI=P(),cn.insertStyleElement=R(),O()(sn.Z,cn),sn.Z&&sn.Z.locals&&sn.Z.locals;var un=(0,y.Z)(ln,(function(){var t=this,e=t._self._c;return t._self._setupProxy,e("Fragment",[e("div",{staticClass:"hidden-visually",attrs:{id:t.statusInfoId,"aria-live":"polite",role:"status"}},[t._v("\n\t\t"+t._s(t.statusInfo)+"\n\t")]),t._v(" "),e("ol",{ref:"listElement",staticClass:"order-selector",attrs:{"data-cy-app-order":""}},t._l(t.appList,(function(n,r){return e("AppOrderSelectorElement",t._g({key:`${n.id}${t.renderCount}`,ref:"selectorElements",refInFor:!0,attrs:{app:n,"aria-details":t.ariaDetails,"aria-describedby":t.statusInfoId,"is-first":0===r||!!t.appList[r-1].default,"is-last":r===t.value.length-1}},n.default?{}:{"move:up":()=>t.moveUp(r),"move:down":()=>t.moveDown(r),"update:focus":()=>t.updateStatusInfo(r)}))})),1)])}),[],!1,null,"35797e31",null);const dn=un.exports,pn={name:"UndoIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},hn=(0,y.Z)(pn,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon undo-icon",attrs:{"aria-hidden":!t.title,"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:"M12.5,8C9.85,8 7.45,9 5.6,10.6L2,7V16H11L7.38,12.38C8.77,11.22 10.54,10.5 12.5,10.5C16.04,10.5 19.05,12.81 20.1,16L22.47,15.22C21.08,11.03 17.15,8 12.5,8Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports;var gn=r(54405),fn=r(25108);const mn=(0,a.defineComponent)({name:"UserAppMenuSection",components:{AppOrderSelector:dn,IconUndo:hn,NcButton:f.Z,NcNoteCard:gn.Z,NcSettingsSection:u.Z},setup(){const{userAppOrder:t,enforcedDefaultApp:e}=(0,l.j)("theming","navigationBar"),n=Object.values((0,l.j)("core","apps")).filter((t=>{let{type:e}=t;return"link"===e})).map((t=>({...t,label:t.name,default:t.default&&t.app===e}))),r=(0,a.ref)(!Array.isArray(t)||Object.values(t).length>0),o=(0,a.computed)((()=>n.some(((t,e)=>{let{id:n}=t;return n!==h.value[e].id})))),c="theming-apporder-changed-infocard",u="theming-apporder-changed-infocard",p=(0,a.computed)((()=>(o.value?`${c} `:"")+(e?u:""))),h=(0,a.ref)([...n]),g=async(t,e)=>{const n=(0,i.generateOcsUrl)("apps/provisioning_api/api/v1/config/users/{appId}/{configKey}",{appId:"core",configKey:t});return await s.Z.post(n,{configValue:JSON.stringify(e)})};return{appOrder:h,updateAppOrder:t=>{const e={};t.forEach(((t,n)=>{let{app:r,id:o}=t;e[o]={order:n,app:r}})),g("apporder",e).then((()=>{h.value=t,r.value=!0})).catch((t=>{fn.warn("Could not set the app order",t),(0,d.x2)((0,$.Iu)("theming","Could not set the app order"))}))},resetAppOrder:async()=>{try{await g("apporder",[]),r.value=!1;const{data:t}=await s.Z.get((0,i.generateOcsUrl)("/core/navigation/apps"),{headers:{"OCS-APIRequest":"true"}});h.value=t.ocs.data.map((t=>({...t,label:t.name,default:t.default&&t.app===e})))}catch(t){fn.warn(t),(0,d.x2)((0,$.Iu)("theming","Could not reset the app order"))}},enforcedDefaultApp:e,hasAppOrderChanged:o,hasCustomAppOrder:r,ariaDetailsAppOrder:p,elementIdAppOrderChanged:c,elementIdEnforcedDefaultApp:u,t:$.Iu}}}),vn=mn;var bn=r(36567),An={};An.styleTagTransform=Z(),An.setAttributes=F(),An.insert=B().bind(null,"head"),An.domAPI=P(),An.insertStyleElement=R(),O()(bn.Z,An),bn.Z&&bn.Z.locals&&bn.Z.locals;const _n=(0,y.Z)(vn,(function(){var t=this,e=t._self._c;return t._self._setupProxy,e("NcSettingsSection",{attrs:{name:t.t("theming","Navigation bar settings")}},[e("p",[t._v("\n\t\t"+t._s(t.t("theming","You can configure the app order used for the navigation bar. The first entry will be the default app, opened after login or when clicking on the logo."))+"\n\t")]),t._v(" "),t.enforcedDefaultApp?e("NcNoteCard",{attrs:{id:t.elementIdEnforcedDefaultApp,type:"info"}},[t._v("\n\t\t"+t._s(t.t("theming","The default app can not be changed because it was configured by the administrator."))+"\n\t")]):t._e(),t._v(" "),t.hasAppOrderChanged?e("NcNoteCard",{attrs:{id:t.elementIdAppOrderChanged,type:"info"}},[t._v("\n\t\t"+t._s(t.t("theming","The app order was changed, to see it in action you have to reload the page."))+"\n\t")]):t._e(),t._v(" "),e("AppOrderSelector",{staticClass:"user-app-menu-order",attrs:{"aria-details":t.ariaDetailsAppOrder,value:t.appOrder},on:{"update:value":t.updateAppOrder}}),t._v(" "),e("NcButton",{attrs:{"data-test-id":"btn-apporder-reset",disabled:!t.hasCustomAppOrder,type:"tertiary"},on:{click:t.resetAppOrder},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconUndo",{attrs:{size:20}})]},proxy:!0}])},[t._v("\n\t\t"+t._s(t.t("theming","Reset default app order"))+"\n\t")])],1)}),[],!1,null,"ee0f3d1a",null).exports;var yn=r(25108);const Cn=(0,l.j)("theming","themes",[]),wn=(0,l.j)("theming","enforceTheme",""),kn=(0,l.j)("theming","shortcutsDisabled",!1),xn=(0,l.j)("theming","isUserThemingDisabled"),Sn={name:"UserThemes",components:{ItemPreview:W,NcCheckboxRadioSwitch:c.Z,NcSettingsSection:u.Z,BackgroundSettings:z,UserAppMenuSection:_n},data:()=>({availableThemes:Cn,enforceTheme:wn,shortcutsDisabled:kn,isUserThemingDisabled:xn}),computed:{themes(){return this.availableThemes.filter((t=>1===t.type))},fonts(){return this.availableThemes.filter((t=>2===t.type))},selectedTheme(){return this.themes.find((t=>!0===t.enabled))||this.themes[0]},description(){return t("theming","Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level.").replace("{guidelines}",this.guidelinesLink).replace("{linkend}","")},guidelinesLink:()=>'',descriptionDetail(){return t("theming","If you find any issues, do not hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!").replace("{issuetracker}",this.issuetrackerLink).replace("{designteam}",this.designteamLink).replace(/\{linkend\}/g,"")},issuetrackerLink:()=>'',designteamLink:()=>''},watch:{shortcutsDisabled(t){this.changeShortcutsDisabled(t)}},methods:{refreshGlobalStyles(){[...document.head.querySelectorAll("link.theme")].forEach((t=>{const e=new URL(t.href);e.searchParams.set("v",Date.now());const n=t.cloneNode();n.href=e.toString(),n.onload=()=>t.remove(),document.head.append(n)}))},updateBackground(t){this.background="custom"===t.type||"default"===t.type?t.type:t.value,this.refreshGlobalStyles()},changeTheme(t){let{enabled:e,id:n}=t;this.themes.forEach((t=>{t.id===n&&e?t.enabled=!0:t.enabled=!1})),this.updateBodyAttributes(),this.selectItem(e,n)},changeFont(t){let{enabled:e,id:n}=t;this.fonts.forEach((t=>{t.id===n&&e?t.enabled=!0:t.enabled=!1})),this.updateBodyAttributes(),this.selectItem(e,n)},async changeShortcutsDisabled(t){t?await(0,s.Z)({url:(0,i.generateOcsUrl)("apps/provisioning_api/api/v1/config/users/{appId}/{configKey}",{appId:"theming",configKey:"shortcuts_disabled"}),data:{configValue:"yes"},method:"POST"}):await(0,s.Z)({url:(0,i.generateOcsUrl)("apps/provisioning_api/api/v1/config/users/{appId}/{configKey}",{appId:"theming",configKey:"shortcuts_disabled"}),method:"DELETE"})},updateBodyAttributes(){const t=this.themes.filter((t=>!0===t.enabled)).map((t=>t.id)),e=this.fonts.filter((t=>!0===t.enabled)).map((t=>t.id));this.themes.forEach((t=>{document.body.toggleAttribute(`data-theme-${t.id}`,t.enabled)})),this.fonts.forEach((t=>{document.body.toggleAttribute(`data-theme-${t.id}`,t.enabled)})),document.body.setAttribute("data-themes",[...t,...e].join(","))},async selectItem(e,n){try{e?await(0,s.Z)({url:(0,i.generateOcsUrl)("apps/theming/api/v1/theme/{themeId}/enable",{themeId:n}),method:"PUT"}):await(0,s.Z)({url:(0,i.generateOcsUrl)("apps/theming/api/v1/theme/{themeId}",{themeId:n}),method:"DELETE"})}catch(e){yn.error(e,e.response),OC.Notification.showTemporary(t("theming",e.response.data.ocs.meta.message+". Unable to apply the setting."))}}}};var Dn=r(29512),Tn={};Tn.styleTagTransform=Z(),Tn.setAttributes=F(),Tn.insert=B().bind(null,"head"),Tn.domAPI=P(),Tn.insertStyleElement=R(),O()(Dn.Z,Tn),Dn.Z&&Dn.Z.locals&&Dn.Z.locals;const En=(0,y.Z)(Sn,(function(){var t=this,e=t._self._c;return e("section",[e("NcSettingsSection",{staticClass:"theming",attrs:{name:t.t("theming","Appearance and accessibility settings"),"limit-width":!1}},[e("p",{domProps:{innerHTML:t._s(t.description)}}),t._v(" "),e("p",{domProps:{innerHTML:t._s(t.descriptionDetail)}}),t._v(" "),e("div",{staticClass:"theming__preview-list"},t._l(t.themes,(function(n){return e("ItemPreview",{key:n.id,attrs:{enforced:n.id===t.enforceTheme,selected:t.selectedTheme.id===n.id,theme:n,unique:1===t.themes.length,type:"theme"},on:{change:t.changeTheme}})})),1),t._v(" "),e("div",{staticClass:"theming__preview-list"},t._l(t.fonts,(function(n){return e("ItemPreview",{key:n.id,attrs:{selected:n.enabled,theme:n,unique:1===t.fonts.length,type:"font"},on:{change:t.changeFont}})})),1)]),t._v(" "),e("NcSettingsSection",{staticClass:"background",attrs:{name:t.t("theming","Background"),"data-user-theming-background-disabled":""}},[t.isUserThemingDisabled?[e("p",[t._v(t._s(t.t("theming","Customization has been disabled by your administrator")))])]:[e("p",[t._v(t._s(t.t("theming","Set a custom background")))]),t._v(" "),e("BackgroundSettings",{staticClass:"background__grid",on:{"update:background":t.refreshGlobalStyles}})]],2),t._v(" "),e("NcSettingsSection",{attrs:{name:t.t("theming","Keyboard shortcuts")}},[e("p",[t._v(t._s(t.t("theming","In some cases keyboard shortcuts can interfere with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps.")))]),t._v(" "),e("NcCheckboxRadioSwitch",{staticClass:"theming__preview-toggle",attrs:{checked:t.shortcutsDisabled,type:"switch"},on:{"update:checked":function(e){t.shortcutsDisabled=e},change:t.changeShortcutsDisabled}},[t._v("\n\t\t\t"+t._s(t.t("theming","Disable all keyboard shortcuts"))+"\n\t\t")])],1),t._v(" "),e("UserAppMenuSection")],1)}),[],!1,null,"d643b9e0",null).exports;r.nc=btoa((0,o.IH)()),a.default.prototype.OC=OC,a.default.prototype.t=t;const In=new(a.default.extend(En));In.$mount("#theming"),In.$on("update:background",(()=>{[...document.head.querySelectorAll("link.theme")].forEach((t=>{const e=new URL(t.href);e.searchParams.set("v",Date.now());const n=t.cloneNode();n.href=e.toString(),n.onload=()=>t.remove(),document.head.append(n)}))}))},29512:(t,e,n)=>{"use strict";n.d(e,{Z:()=>l});var r=n(87537),o=n.n(r),a=n(23645),i=n.n(a)()(o());i.push([t.id,".theming p[data-v-d643b9e0]{max-width:800px}.theming[data-v-d643b9e0] a{font-weight:bold}.theming[data-v-d643b9e0] a:hover,.theming[data-v-d643b9e0] a:focus{text-decoration:underline}.theming__preview-list[data-v-d643b9e0]{--gap: 30px;display:grid;margin-top:var(--gap);column-gap:var(--gap);row-gap:var(--gap);grid-template-columns:1fr 1fr}.background__grid[data-v-d643b9e0]{margin-top:30px}@media(max-width: 1440px){.theming__preview-list[data-v-d643b9e0]{display:flex;flex-direction:column}}","",{version:3,sources:["webpack://./apps/theming/src/UserThemes.vue"],names:[],mappings:"AAGC,4BACC,eAAA,CAID,4BACC,gBAAA,CAEA,oEAEC,yBAAA,CAIF,wCACC,WAAA,CAEA,YAAA,CACA,qBAAA,CACA,qBAAA,CACA,kBAAA,CACA,6BAAA,CAKD,mCACC,eAAA,CAIF,0BACC,wCACC,YAAA,CACA,qBAAA,CAAA",sourcesContent:["\n.theming {\n\t// Limit width of settings sections for readability\n\tp {\n\t\tmax-width: 800px;\n\t}\n\n\t// Proper highlight for links and focus feedback\n\t&::v-deep a {\n\t\tfont-weight: bold;\n\n\t\t&:hover,\n\t\t&:focus {\n\t\t\ttext-decoration: underline;\n\t\t}\n\t}\n\n\t&__preview-list {\n\t\t--gap: 30px;\n\n\t\tdisplay: grid;\n\t\tmargin-top: var(--gap);\n\t\tcolumn-gap: var(--gap);\n\t\trow-gap: var(--gap);\n\t\tgrid-template-columns: 1fr 1fr;\n\t}\n}\n\n.background {\n\t&__grid {\n\t\tmargin-top: 30px;\n\t}\n}\n\n@media (max-width: 1440px) {\n\t.theming__preview-list {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t}\n}\n"],sourceRoot:""}]);const l=i},37049:(t,e,n)=>{"use strict";n.d(e,{Z:()=>l});var r=n(87537),o=n.n(r),a=n(23645),i=n.n(a)()(o());i.push([t.id,".order-selector[data-v-35797e31]{width:max-content;min-width:260px}","",{version:3,sources:["webpack://./apps/theming/src/components/AppOrderSelector.vue"],names:[],mappings:"AACA,iCACC,iBAAA,CACA,eAAA",sourcesContent:["\n.order-selector {\n\twidth: max-content;\n\tmin-width: 260px; // align with NcSelect\n}\n"],sourceRoot:""}]);const l=i},40773:(t,e,n)=>{"use strict";n.d(e,{Z:()=>l});var r=n(87537),o=n.n(r),a=n(23645),i=n.n(a)()(o());i.push([t.id,".order-selector-element[data-v-081ebc45]{list-style:none;display:flex;flex-direction:row;align-items:center;gap:12px;padding-inline:12px}.order-selector-element[data-v-081ebc45]:hover{background-color:var(--color-background-hover);border-radius:var(--border-radius-large)}.order-selector-element--disabled[data-v-081ebc45]{border-color:var(--color-text-maxcontrast);color:var(--color-text-maxcontrast)}.order-selector-element--disabled .order-selector-element__icon[data-v-081ebc45]{opacity:75%}.order-selector-element__actions[data-v-081ebc45]{flex:0 0;display:flex;flex-direction:row;gap:6px}.order-selector-element__label[data-v-081ebc45]{flex:1 1;text-overflow:ellipsis;overflow:hidden}.order-selector-element__placeholder[data-v-081ebc45]{height:44px;width:44px}.order-selector-element__icon[data-v-081ebc45]{filter:var(--background-invert-if-bright)}","",{version:3,sources:["webpack://./apps/theming/src/components/AppOrderSelectorElement.vue"],names:[],mappings:"AACA,yCAEC,eAAA,CAEA,YAAA,CACA,kBAAA,CACA,kBAAA,CAEA,QAAA,CACA,mBAAA,CAEA,+CACC,8CAAA,CACA,wCAAA,CAGD,mDACC,0CAAA,CACA,mCAAA,CAEA,iFACC,WAAA,CAIF,kDACC,QAAA,CACA,YAAA,CACA,kBAAA,CACA,OAAA,CAGD,gDACC,QAAA,CACA,sBAAA,CACA,eAAA,CAGD,sDACC,WAAA,CACA,UAAA,CAGD,+CACC,yCAAA",sourcesContent:["\n.order-selector-element {\n\t// hide default styling\n\tlist-style: none;\n\t// Align children\n\tdisplay: flex;\n\tflex-direction: row;\n\talign-items: center;\n\t// Spacing\n\tgap: 12px;\n\tpadding-inline: 12px;\n\n\t&:hover {\n\t\tbackground-color: var(--color-background-hover);\n\t\tborder-radius: var(--border-radius-large);\n\t}\n\n\t&--disabled {\n\t\tborder-color: var(--color-text-maxcontrast);\n\t\tcolor: var(--color-text-maxcontrast);\n\n\t\t.order-selector-element__icon {\n\t\t\topacity: 75%;\n\t\t}\n\t}\n\n\t&__actions {\n\t\tflex: 0 0;\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t\tgap: 6px;\n\t}\n\n\t&__label {\n\t\tflex: 1 1;\n\t\ttext-overflow: ellipsis;\n\t\toverflow: hidden;\n\t}\n\n\t&__placeholder {\n\t\theight: 44px;\n\t\twidth: 44px;\n\t}\n\n\t&__icon {\n\t\tfilter: var(--background-invert-if-bright);\n\t}\n}\n"],sourceRoot:""}]);const l=i},22065:(t,e,n)=>{"use strict";n.d(e,{Z:()=>l});var r=n(87537),o=n.n(r),a=n(23645),i=n.n(a)()(o());i.push([t.id,".background-selector[data-v-1175e65a]{display:flex;flex-wrap:wrap;justify-content:center}.background-selector .background-color[data-v-1175e65a]{display:flex;justify-content:center;align-items:center;width:176px;height:96px;margin:8px;border-radius:var(--border-radius-large);background-color:var(--color-primary)}.background-selector .background[data-v-1175e65a]{overflow:hidden;width:176px;height:96px;margin:8px;text-align:center;border:2px solid var(--color-main-background);border-radius:var(--border-radius-large);background-position:center center;background-size:cover}.background-selector .background__filepicker.background--active[data-v-1175e65a]{color:#fff;background-image:var(--image-background)}.background-selector .background__default[data-v-1175e65a]{background-color:var(--color-primary-default);background-image:linear-gradient(to bottom, rgba(23, 23, 23, 0.5), rgba(23, 23, 23, 0.5)),var(--image-background-plain, var(--image-background-default))}.background-selector .background__filepicker[data-v-1175e65a],.background-selector .background__default[data-v-1175e65a],.background-selector .background__color[data-v-1175e65a]{border-color:var(--color-border)}.background-selector .background__default[data-v-1175e65a],.background-selector .background__shipped[data-v-1175e65a]{color:#fff}.background-selector .background[data-color-bright][data-v-1175e65a]{color:#000}.background-selector .background--active[data-v-1175e65a],.background-selector .background[data-v-1175e65a]:hover,.background-selector .background[data-v-1175e65a]:focus{outline:2px solid var(--color-main-text) !important;border-color:var(--color-main-background) !important}.background-selector .background span[data-v-1175e65a]{margin:4px}.background-selector .background .check-icon[data-v-1175e65a]{display:none}.background-selector .background--active:not(.icon-loading) .check-icon[data-v-1175e65a]{display:block !important}","",{version:3,sources:["webpack://./apps/theming/src/components/BackgroundSettings.vue"],names:[],mappings:"AACA,sCACC,YAAA,CACA,cAAA,CACA,sBAAA,CAEA,wDACC,YAAA,CACA,sBAAA,CACA,kBAAA,CACA,WAAA,CACA,WAAA,CACA,UAAA,CACA,wCAAA,CACA,qCAAA,CAGD,kDACC,eAAA,CACA,WAAA,CACA,WAAA,CACA,UAAA,CACA,iBAAA,CACA,6CAAA,CACA,wCAAA,CACA,iCAAA,CACA,qBAAA,CAGC,iFACC,UAAA,CACA,wCAAA,CAIF,2DACC,6CAAA,CACA,wJAAA,CAGD,kLACC,gCAAA,CAID,sHAEC,UAAA,CAID,qEACC,UAAA,CAGD,0KAGC,mDAAA,CACA,oDAAA,CAID,uDACC,UAAA,CAGD,8DACC,YAAA,CAIA,yFAEC,wBAAA",sourcesContent:["\n.background-selector {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tjustify-content: center;\n\n\t.background-color {\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t\twidth: 176px;\n\t\theight: 96px;\n\t\tmargin: 8px;\n\t\tborder-radius: var(--border-radius-large);\n\t\tbackground-color: var(--color-primary);\n\t}\n\n\t.background {\n\t\toverflow: hidden;\n\t\twidth: 176px;\n\t\theight: 96px;\n\t\tmargin: 8px;\n\t\ttext-align: center;\n\t\tborder: 2px solid var(--color-main-background);\n\t\tborder-radius: var(--border-radius-large);\n\t\tbackground-position: center center;\n\t\tbackground-size: cover;\n\n\t\t&__filepicker {\n\t\t\t&.background--active {\n\t\t\t\tcolor: white;\n\t\t\t\tbackground-image: var(--image-background);\n\t\t\t}\n\t\t}\n\n\t\t&__default {\n\t\t\tbackground-color: var(--color-primary-default);\n\t\t\tbackground-image: linear-gradient(to bottom, rgba(23, 23, 23, 0.5), rgba(23, 23, 23, 0.5)), var(--image-background-plain, var(--image-background-default));\n\t\t}\n\n\t\t&__filepicker, &__default, &__color {\n\t\t\tborder-color: var(--color-border);\n\t\t}\n\n\t\t// Over a background image\n\t\t&__default,\n\t\t&__shipped {\n\t\t\tcolor: white;\n\t\t}\n\n\t\t// Text and svg icon dark on bright background\n\t\t&[data-color-bright] {\n\t\t\tcolor: black;\n\t\t}\n\n\t\t&--active,\n\t\t&:hover,\n\t\t&:focus {\n\t\t\toutline: 2px solid var(--color-main-text) !important;\n\t\t\tborder-color: var(--color-main-background) !important;\n\t\t}\n\n\t\t// Icon\n\t\tspan {\n\t\t\tmargin: 4px;\n\t\t}\n\n\t\t.check-icon {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t&--active:not(.icon-loading) {\n\t\t\t.check-icon {\n\t\t\t\t// Show checkmark\n\t\t\t\tdisplay: block !important;\n\t\t\t}\n\t\t}\n\t}\n}\n\n"],sourceRoot:""}]);const l=i},62782:(t,e,n)=>{"use strict";n.d(e,{Z:()=>l});var r=n(87537),o=n.n(r),a=n(23645),i=n.n(a)()(o());i.push([t.id,".theming__preview[data-v-1a08e35a]{--ratio: 16;position:relative;display:flex;justify-content:flex-start;max-width:800px}.theming__preview[data-v-1a08e35a],.theming__preview *[data-v-1a08e35a]{user-select:none}.theming__preview-image[data-v-1a08e35a]{flex-basis:calc(16px*var(--ratio));flex-shrink:0;height:calc(10px*var(--ratio));margin-right:var(--gap);cursor:pointer;border-radius:var(--border-radius);background-repeat:no-repeat;background-position:top left;background-size:cover}.theming__preview-explanation[data-v-1a08e35a]{margin-bottom:10px}.theming__preview-description[data-v-1a08e35a]{display:flex;flex-direction:column}.theming__preview-description h3[data-v-1a08e35a]{font-weight:bold;margin-bottom:0}.theming__preview-description label[data-v-1a08e35a]{padding:12px 0}.theming__preview--default[data-v-1a08e35a]{grid-column:span 2}.theming__preview-warning[data-v-1a08e35a]{color:var(--color-warning)}@media(max-width: 682.6666666667px){.theming__preview[data-v-1a08e35a]{flex-direction:column}.theming__preview-image[data-v-1a08e35a]{margin:0}}","",{version:3,sources:["webpack://./apps/theming/src/components/ItemPreview.vue"],names:[],mappings:"AAGA,mCAEC,WAAA,CAEA,iBAAA,CACA,YAAA,CACA,0BAAA,CACA,eAAA,CAEA,wEAEC,gBAAA,CAGD,yCACC,kCAAA,CACA,aAAA,CACA,8BAAA,CACA,uBAAA,CACA,cAAA,CACA,kCAAA,CACA,2BAAA,CACA,4BAAA,CACA,qBAAA,CAGD,+CACC,kBAAA,CAGD,+CACC,YAAA,CACA,qBAAA,CAEA,kDACC,gBAAA,CACA,eAAA,CAGD,qDACC,cAAA,CAIF,4CACC,kBAAA,CAGD,2CACC,0BAAA,CAIF,oCACC,mCACC,qBAAA,CAEA,yCACC,QAAA,CAAA",sourcesContent:["\n@use 'sass:math';\n\n.theming__preview {\n\t// We make previews on 16/10 screens\n\t--ratio: 16;\n\n\tposition: relative;\n\tdisplay: flex;\n\tjustify-content: flex-start;\n\tmax-width: 800px;\n\n\t&,\n\t* {\n\t\tuser-select: none;\n\t}\n\n\t&-image {\n\t\tflex-basis: calc(16px * var(--ratio));\n\t\tflex-shrink: 0;\n\t\theight: calc(10px * var(--ratio));\n\t\tmargin-right: var(--gap);\n\t\tcursor: pointer;\n\t\tborder-radius: var(--border-radius);\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-position: top left;\n\t\tbackground-size: cover;\n\t}\n\n\t&-explanation {\n\t\tmargin-bottom: 10px;\n\t}\n\n\t&-description {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\n\t\th3 {\n\t\t\tfont-weight: bold;\n\t\t\tmargin-bottom: 0;\n\t\t}\n\n\t\tlabel {\n\t\t\tpadding: 12px 0;\n\t\t}\n\t}\n\n\t&--default {\n\t\tgrid-column: span 2;\n\t}\n\n\t&-warning {\n\t\tcolor: var(--color-warning);\n\t}\n}\n\n@media (max-width: math.div(1024px, 1.5)) {\n\t.theming__preview {\n\t\tflex-direction: column;\n\n\t\t&-image {\n\t\t\tmargin: 0;\n\t\t}\n\t}\n}\n\n"],sourceRoot:""}]);const l=i},36567:(t,e,n)=>{"use strict";n.d(e,{Z:()=>l});var r=n(87537),o=n.n(r),a=n(23645),i=n.n(a)()(o());i.push([t.id,".user-app-menu-order[data-v-ee0f3d1a]{margin-block:12px}","",{version:3,sources:["webpack://./apps/theming/src/components/UserAppMenuSection.vue"],names:[],mappings:"AACA,sCACC,iBAAA",sourcesContent:["\n.user-app-menu-order {\n\tmargin-block: 12px;\n}\n"],sourceRoot:""}]);const l=i},89881:(t,e,n)=>{var r=n(47816),o=n(99291)(r);t.exports=o},80760:(t,e,n)=>{var r=n(89881);t.exports=function(t,e){var n=[];return r(t,(function(t,r,o){e(t,r,o)&&n.push(t)})),n}},47816:(t,e,n)=>{var r=n(28483),o=n(3674);t.exports=function(t,e){return t&&r(t,e,o)}},99291:(t,e,n)=>{var r=n(98612);t.exports=function(t,e){return function(n,o){if(null==n)return n;if(!r(n))return t(n,o);for(var a=n.length,i=e?a:-1,l=Object(n);(e?i--:++i{var r=n(5976),o=n(77813),a=n(16612),i=n(81704),l=Object.prototype,s=l.hasOwnProperty,c=r((function(t,e){t=Object(t);var n=-1,r=e.length,c=r>2?e[2]:void 0;for(c&&a(e[0],e[1],c)&&(r=1);++n{var r=n(34963),o=n(80760),a=n(67206),i=n(1469);t.exports=function(t,e){return(i(t)?r:o)(t,a(e,3))}},1082:function(t,e,n){"use strict";var r=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}},o=r(n(8110)),a=r(n(21904));o.default.DefaultOpts.ImageClass=a.default,t.exports=o.default},31564:function(t,e,n){"use strict";var r=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});var o=r(n(8110)),a=n(66678),i=function(){function t(t,e){void 0===e&&(e={}),this._src=t,this._opts=e,this._opts.filters=a(o.default.DefaultOpts.filters)}return t.prototype.maxColorCount=function(t){return this._opts.colorCount=t,this},t.prototype.maxDimension=function(t){return this._opts.maxDimension=t,this},t.prototype.addFilter=function(t){return this._opts.filters.push(t),this},t.prototype.removeFilter=function(t){var e=this._opts.filters.indexOf(t);return e>0&&this._opts.filters.splice(e),this},t.prototype.clearFilters=function(){return this._opts.filters=[],this},t.prototype.quality=function(t){return this._opts.quality=t,this},t.prototype.useImageClass=function(t){return this._opts.ImageClass=t,this},t.prototype.useGenerator=function(t){return this._opts.generator=t,this},t.prototype.useQuantizer=function(t){return this._opts.quantizer=t,this},t.prototype.build=function(){return new o.default(this._src,this._opts)},t.prototype.getPalette=function(t){return this.build().getPalette(t)},t.prototype.getSwatches=function(t){return this.build().getPalette(t)},t}();e.default=i},97248:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Swatch=void 0;var r=n(67294),o=n(63105),a=function(){function t(t,e){this._rgb=t,this._population=e}return t.applyFilter=function(t,e){return"function"==typeof e?o(t,(function(t){var n=t.r,r=t.g,o=t.b;return e(n,r,o,255)})):t},Object.defineProperty(t.prototype,"r",{get:function(){return this._rgb[0]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"g",{get:function(){return this._rgb[1]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"b",{get:function(){return this._rgb[2]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"rgb",{get:function(){return this._rgb},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"hsl",{get:function(){if(!this._hsl){var t=this._rgb,e=t[0],n=t[1],o=t[2];this._hsl=r.rgbToHsl(e,n,o)}return this._hsl},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"hex",{get:function(){if(!this._hex){var t=this._rgb,e=t[0],n=t[1],o=t[2];this._hex=r.rgbToHex(e,n,o)}return this._hex},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"population",{get:function(){return this._population},enumerable:!1,configurable:!0}),t.prototype.toJSON=function(){return{rgb:this.rgb,population:this.population}},t.prototype.getRgb=function(){return this._rgb},t.prototype.getHsl=function(){return this.hsl},t.prototype.getPopulation=function(){return this._population},t.prototype.getHex=function(){return this.hex},t.prototype.getYiq=function(){if(!this._yiq){var t=this._rgb;this._yiq=(299*t[0]+587*t[1]+114*t[2])/1e3}return this._yiq},Object.defineProperty(t.prototype,"titleTextColor",{get:function(){return this._titleTextColor||(this._titleTextColor=this.getYiq()<200?"#fff":"#000"),this._titleTextColor},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"bodyTextColor",{get:function(){return this._bodyTextColor||(this._bodyTextColor=this.getYiq()<150?"#fff":"#000"),this._bodyTextColor},enumerable:!1,configurable:!0}),t.prototype.getTitleTextColor=function(){return this.titleTextColor},t.prototype.getBodyTextColor=function(){return this.bodyTextColor},t}();e.Swatch=a},68498:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e,n,r){return r>=125&&!(t>250&&e>250&&n>250)}},63096:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.combineFilters=void 0;var r=n(68498);Object.defineProperty(e,"Default",{enumerable:!0,get:function(){return r.default}}),e.combineFilters=function(t){return Array.isArray(t)&&0!==t.length?function(e,n,r,o){if(0===o)return!1;for(var a=0;a{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(97248),o=n(67294),a=n(91747),i={targetDarkLuma:.26,maxDarkLuma:.45,minLightLuma:.55,targetLightLuma:.74,minNormalLuma:.3,targetNormalLuma:.5,maxNormalLuma:.7,targetMutesSaturation:.3,maxMutesSaturation:.4,targetVibrantSaturation:1,minVibrantSaturation:.35,weightSaturation:3,weightLuma:6.5,weightPopulation:.5};function l(t,e,n,r,o,a,i,l,s,c){var u=null,d=0;return e.forEach((function(e){var p=e.getHsl(),h=p[1],g=p[2];if(h>=l&&h<=s&&g>=o&&g<=a&&!function(t,e){return t.Vibrant===e||t.DarkVibrant===e||t.LightVibrant===e||t.Muted===e||t.DarkMuted===e||t.LightMuted===e}(t,e)){var f=function(t,e,n,r,o,a,i){function l(t,e){return 1-Math.abs(t-e)}return function(){for(var t=[],e=0;ed)&&(u=e,d=f)}})),u}e.default=function(t,e){e=a({},e,i);var n=function(t){var e=0;return t.forEach((function(t){e=Math.max(e,t.getPopulation())})),e}(t),s=function(t,e,n){var r={};return r.Vibrant=l(r,t,e,n.targetNormalLuma,n.minNormalLuma,n.maxNormalLuma,n.targetVibrantSaturation,n.minVibrantSaturation,1,n),r.LightVibrant=l(r,t,e,n.targetLightLuma,n.minLightLuma,1,n.targetVibrantSaturation,n.minVibrantSaturation,1,n),r.DarkVibrant=l(r,t,e,n.targetDarkLuma,0,n.maxDarkLuma,n.targetVibrantSaturation,n.minVibrantSaturation,1,n),r.Muted=l(r,t,e,n.targetNormalLuma,n.minNormalLuma,n.maxNormalLuma,n.targetMutesSaturation,0,n.maxMutesSaturation,n),r.LightMuted=l(r,t,e,n.targetLightLuma,n.minLightLuma,1,n.targetMutesSaturation,0,n.maxMutesSaturation,n),r.DarkMuted=l(r,t,e,n.targetDarkLuma,0,n.maxDarkLuma,n.targetMutesSaturation,0,n.maxMutesSaturation,n),r}(t,n,e);return function(t,e,n){if(null===t.Vibrant&&null===t.DarkVibrant&&null===t.LightVibrant){if(null===t.DarkVibrant&&null!==t.DarkMuted){var a=t.DarkMuted.getHsl(),i=a[0],l=a[1],s=a[2];s=n.targetDarkLuma,t.DarkVibrant=new r.Swatch(o.hslToRgb(i,l,s),0)}if(null===t.LightVibrant&&null!==t.LightMuted){var c=t.LightMuted.getHsl();i=c[0],l=c[1],s=c[2],s=n.targetDarkLuma,t.DarkVibrant=new r.Swatch(o.hslToRgb(i,l,s),0)}}if(null===t.Vibrant&&null!==t.DarkVibrant){var u=t.DarkVibrant.getHsl();i=u[0],l=u[1],s=u[2],s=n.targetNormalLuma,t.Vibrant=new r.Swatch(o.hslToRgb(i,l,s),0)}else if(null===t.Vibrant&&null!==t.LightVibrant){var d=t.LightVibrant.getHsl();i=d[0],l=d[1],s=d[2],s=n.targetNormalLuma,t.Vibrant=new r.Swatch(o.hslToRgb(i,l,s),0)}if(null===t.DarkVibrant&&null!==t.Vibrant){var p=t.Vibrant.getHsl();i=p[0],l=p[1],s=p[2],s=n.targetDarkLuma,t.DarkVibrant=new r.Swatch(o.hslToRgb(i,l,s),0)}if(null===t.LightVibrant&&null!==t.Vibrant){var h=t.Vibrant.getHsl();i=h[0],l=h[1],s=h[2],s=n.targetLightLuma,t.LightVibrant=new r.Swatch(o.hslToRgb(i,l,s),0)}if(null===t.Muted&&null!==t.Vibrant){var g=t.Vibrant.getHsl();i=g[0],l=g[1],s=g[2],s=n.targetMutesSaturation,t.Muted=new r.Swatch(o.hslToRgb(i,l,s),0)}if(null===t.DarkMuted&&null!==t.DarkVibrant){var f=t.DarkVibrant.getHsl();i=f[0],l=f[1],s=f[2],s=n.targetMutesSaturation,t.DarkMuted=new r.Swatch(o.hslToRgb(i,l,s),0)}if(null===t.LightMuted&&null!==t.LightVibrant){var m=t.LightVibrant.getHsl();i=m[0],l=m[1],s=m[2],s=n.targetMutesSaturation,t.LightMuted=new r.Swatch(o.hslToRgb(i,l,s),0)}}(s,0,e),s}},77234:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(73977);Object.defineProperty(e,"Default",{enumerable:!0,get:function(){return r.default}})},83614:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ImageBase=void 0;var n=function(){function t(){}return t.prototype.scaleDown=function(t){var e=this.getWidth(),n=this.getHeight(),r=1;if(t.maxDimension>0){var o=Math.max(e,n);o>t.maxDimension&&(r=t.maxDimension/o)}else r=1/t.quality;r<1&&this.resize(e*r,n*r,r)},t.prototype.applyFilter=function(t){var e=this.getImageData();if("function"==typeof t)for(var n=e.data,r=n.length/4,o=void 0,a=0;a{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.WebWorker=void 0;var r=n(20628);Object.defineProperty(e,"MMCQ",{enumerable:!0,get:function(){return r.default}}),e.WebWorker=null},20628:function(t,e,n){"use strict";var r=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});var o=n(97248),a=r(n(5828)),i=r(n(37514));function l(t,e){for(var n=t.size();t.size()0))break;var o=r.split(),a=o[0],i=o[1];if(t.push(a),i&&i.count()>0&&t.push(i),t.size()===n)break;n=t.size()}}e.default=function(t,e){if(0===t.length||e.colorCount<2||e.colorCount>256)throw new Error("Wrong MMCQ parameters");var n=a.default.build(t),r=n.hist,s=(Object.keys(r).length,new i.default((function(t,e){return t.count()-e.count()})));s.push(n),l(s,.75*e.colorCount);var c=new i.default((function(t,e){return t.count()*t.volume()-e.count()*e.volume()}));return c.contents=s.contents,l(c,e.colorCount-c.size()),function(t){for(var e=[];t.size();){var n=t.pop(),r=n.avg();r[0],r[1],r[2],e.push(new o.Swatch(r,n.count()))}return e}(c)}},37514:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t){this._comparator=t,this.contents=[],this._sorted=!1}return t.prototype._sort=function(){this._sorted||(this.contents.sort(this._comparator),this._sorted=!0)},t.prototype.push=function(t){this.contents.push(t),this._sorted=!1},t.prototype.peek=function(t){return this._sort(),t="number"==typeof t?t:this.contents.length-1,this.contents[t]},t.prototype.pop=function(){return this._sort(),this.contents.pop()},t.prototype.size=function(){return this.contents.length},t.prototype.map=function(t){return this._sort(),this.contents.map(t)},t}();e.default=n},5828:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(67294),o=function(){function t(t,e,n,r,o,a,i){this._volume=-1,this._count=-1,this.dimension={r1:t,r2:e,g1:n,g2:r,b1:o,b2:a},this.hist=i}return t.build=function(e,n){var o,a,i,l,s,c,u,d,p,h=1<<3*r.SIGBITS,g=new Uint32Array(h);o=i=s=0,a=l=c=Number.MAX_VALUE;for(var f=e.length/4,m=0;m>=r.RSHIFT,d>>=r.RSHIFT,p>>=r.RSHIFT,g[r.getColorIndex(u,d,p)]+=1,u>o&&(o=u),ui&&(i=d),ds&&(s=p),p>=r.RSHIFT,n>>=r.RSHIFT,o>>=r.RSHIFT,e>=i&&e<=l&&n>=s&&n<=c&&o>=u&&o<=d},t.prototype.split=function(){var t=this.hist,e=this.dimension,n=e.r1,o=e.r2,a=e.g1,i=e.g2,l=e.b1,s=e.b2,c=this.count();if(!c)return[];if(1===c)return[this.clone()];var u,d,p=o-n+1,h=i-a+1,g=s-l+1,f=Math.max(p,h,g),m=null;u=d=0;var v=null;if(f===p){v="r",m=new Uint32Array(o+1);for(var b=n;b<=o;b++){u=0;for(var A=a;A<=i;A++)for(var _=l;_<=s;_++)u+=t[r.getColorIndex(b,A,_)];d+=u,m[b]=d}}else if(f===h)for(v="g",m=new Uint32Array(i+1),A=a;A<=i;A++){for(u=0,b=n;b<=o;b++)for(_=l;_<=s;_++)u+=t[r.getColorIndex(b,A,_)];d+=u,m[A]=d}else for(v="b",m=new Uint32Array(s+1),_=l;_<=s;_++){for(u=0,b=n;b<=o;b++)for(A=a;A<=i;A++)u+=t[r.getColorIndex(b,A,_)];d+=u,m[_]=d}for(var y=-1,C=new Uint32Array(m.length),w=0;wd/2&&(y=w),C[w]=d-k}var x=this;return function(t){var e=t+"1",n=t+"2",r=x.dimension[e],o=x.dimension[n],a=x.clone(),i=x.clone(),l=y-r,s=o-y;for(l<=s?(o=Math.min(o-1,~~(y+s/2)),o=Math.max(0,o)):(o=Math.max(r,~~(y-1-l/2)),o=Math.min(x.dimension[n],o));!m[o];)o++;for(var c=C[o];!c&&m[o-1];)c=C[--o];return a.dimension[n]=o,i.dimension[e]=o+1,[a,i]}(v)},t}();e.default=o},67294:(t,e)=>{"use strict";function n(t){var e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return null===e?null:[e[1],e[2],e[3]].map((function(t){return parseInt(t,16)}))}function r(t,e,n){return e/=255,n/=255,t=(t/=255)>.04045?Math.pow((t+.005)/1.055,2.4):t/12.92,e=e>.04045?Math.pow((e+.005)/1.055,2.4):e/12.92,n=n>.04045?Math.pow((n+.005)/1.055,2.4):n/12.92,[.4124*(t*=100)+.3576*(e*=100)+.1805*(n*=100),.2126*t+.7152*e+.0722*n,.0193*t+.1192*e+.9505*n]}function o(t,e,n){return e/=100,n/=108.883,t=(t/=95.047)>.008856?Math.pow(t,1/3):7.787*t+16/116,[116*(e=e>.008856?Math.pow(e,1/3):7.787*e+16/116)-16,500*(t-e),200*(e-(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116))]}function a(t,e,n){var a=r(t,e,n);return o(a[0],a[1],a[2])}function i(t,e){var n=t[0],r=t[1],o=t[2],a=e[0],i=e[1],l=e[2],s=n-a,c=r-i,u=o-l,d=Math.sqrt(r*r+o*o),p=a-n,h=Math.sqrt(i*i+l*l)-d,g=Math.sqrt(s*s+c*c+u*u),f=Math.sqrt(g)>Math.sqrt(Math.abs(p))+Math.sqrt(Math.abs(h))?Math.sqrt(g*g-p*p-h*h):0;return p/=1,h/=1*(1+.045*d),f/=1*(1+.015*d),Math.sqrt(p*p+h*h+f*f)}function l(t,e){return i(a.apply(void 0,t),a.apply(void 0,e))}Object.defineProperty(e,"__esModule",{value:!0}),e.getColorIndex=e.getColorDiffStatus=e.hexDiff=e.rgbDiff=e.deltaE94=e.rgbToCIELab=e.xyzToCIELab=e.rgbToXyz=e.hslToRgb=e.rgbToHsl=e.rgbToHex=e.hexToRgb=e.defer=e.RSHIFT=e.SIGBITS=e.DELTAE94_DIFF_STATUS=void 0,e.DELTAE94_DIFF_STATUS={NA:0,PERFECT:1,CLOSE:2,GOOD:10,SIMILAR:50},e.SIGBITS=5,e.RSHIFT=8-e.SIGBITS,e.defer=function(){var t,e,n=new Promise((function(n,r){t=n,e=r}));return{resolve:t,reject:e,promise:n}},e.hexToRgb=n,e.rgbToHex=function(t,e,n){return"#"+((1<<24)+(t<<16)+(e<<8)+n).toString(16).slice(1,7)},e.rgbToHsl=function(t,e,n){t/=255,e/=255,n/=255;var r,o,a=Math.max(t,e,n),i=Math.min(t,e,n),l=(a+i)/2;if(a===i)r=o=0;else{var s=a-i;switch(o=l>.5?s/(2-a-i):s/(a+i),a){case t:r=(e-n)/s+(e1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+(e-t)*(2/3-n)*6:t}if(0===e)r=o=a=n;else{var l=n<.5?n*(1+e):n+e-n*e,s=2*n-l;r=i(s,l,t+1/3),o=i(s,l,t),a=i(s,l,t-1/3)}return[255*r,255*o,255*a]},e.rgbToXyz=r,e.xyzToCIELab=o,e.rgbToCIELab=a,e.deltaE94=i,e.rgbDiff=l,e.hexDiff=function(t,e){return l(n(t),n(e))},e.getColorDiffStatus=function(t){return t{}},a={};function i(t){var e=a[t];if(void 0!==e)return e.exports;var n=a[t]={id:t,loaded:!1,exports:{}};return o[t].call(n.exports,n,n.exports,i),n.loaded=!0,n.exports}i.m=o,e=[],i.O=(t,n,r,o)=>{if(!n){var a=1/0;for(u=0;u=o)&&Object.keys(i.O).every((t=>i.O[t](n[s])))?n.splice(s--,1):(l=!1,o0&&e[u-1][2]>o;u--)e[u]=e[u-1];e[u]=[n,r,o]},i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var n in e)i.o(e,n)&&!i.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},i.f={},i.e=t=>Promise.all(Object.keys(i.f).reduce(((e,n)=>(i.f[n](t,e),e)),[])),i.u=t=>t+"-"+t+".js?v="+{1215:"dd1ef4c4cc807022e660",5076:"15b21454a9691213632e"}[t],i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n={},r="nextcloud:",i.l=(t,e,o,a)=>{if(n[t])n[t].push(e);else{var l,s;if(void 0!==o)for(var c=document.getElementsByTagName("script"),u=0;u{l.onerror=l.onload=null,clearTimeout(h);var o=n[t];if(delete n[t],l.parentNode&&l.parentNode.removeChild(l),o&&o.forEach((t=>t(r))),e)return e(r)},h=setTimeout(p.bind(null,void 0,{type:"timeout",target:l}),12e4);l.onerror=p.bind(null,l.onerror),l.onload=p.bind(null,l.onload),s&&document.head.appendChild(l)}},i.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),i.j=1474,(()=>{var t;i.g.importScripts&&(t=i.g.location+"");var e=i.g.document;if(!t&&e&&(e.currentScript&&(t=e.currentScript.src),!t)){var n=e.getElementsByTagName("script");if(n.length)for(var r=n.length-1;r>-1&&!t;)t=n[r--].src}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),i.p=t})(),(()=>{i.b=document.baseURI||self.location.href;var t={1474:0};i.f.j=(e,n)=>{var r=i.o(t,e)?t[e]:void 0;if(0!==r)if(r)n.push(r[2]);else{var o=new Promise(((n,o)=>r=t[e]=[n,o]));n.push(r[2]=o);var a=i.p+i.u(e),l=new Error;i.l(a,(n=>{if(i.o(t,e)&&(0!==(r=t[e])&&(t[e]=void 0),r)){var o=n&&("load"===n.type?"missing":n.type),a=n&&n.target&&n.target.src;l.message="Loading chunk "+e+" failed.\n("+o+": "+a+")",l.name="ChunkLoadError",l.type=o,l.request=a,r[1](l)}}),"chunk-"+e,e)}},i.O.j=e=>0===t[e];var e=(e,n)=>{var r,o,a=n[0],l=n[1],s=n[2],c=0;if(a.some((e=>0!==t[e]))){for(r in l)i.o(l,r)&&(i.m[r]=l[r]);if(s)var u=s(i)}for(e&&e(n);ci(52689)));l=i.O(l)})(); +//# sourceMappingURL=theming-personal-theming.js.map?v=1452be6f148ee5063ecd \ No newline at end of file diff --git a/dist/theming-personal-theming.js.map b/dist/theming-personal-theming.js.map index 853d6caccf6..776b6b9f511 100644 --- a/dist/theming-personal-theming.js.map +++ b/dist/theming-personal-theming.js.map @@ -1 +1 @@ -{"version":3,"file":"theming-personal-theming.js?v=8d2db71665b77a118eae","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/node_modules/vue-material-design-icons/ImageEdit.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/ImageEdit.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/ImageEdit.vue?e9bd","webpack:///nextcloud/node_modules/vue-material-design-icons/ImageEdit.vue?vue&type=template&id=7bb2aa9c","webpack:///nextcloud/apps/theming/src/components/BackgroundSettings.vue","webpack:///nextcloud/apps/theming/src/components/BackgroundSettings.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/theming/src/components/BackgroundSettings.vue?1f48","webpack://nextcloud/./apps/theming/src/components/BackgroundSettings.vue?65db","webpack://nextcloud/./apps/theming/src/components/BackgroundSettings.vue?da76","webpack://nextcloud/./apps/theming/src/components/ItemPreview.vue?7631","webpack:///nextcloud/apps/theming/src/components/ItemPreview.vue","webpack:///nextcloud/apps/theming/src/components/ItemPreview.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/theming/src/components/ItemPreview.vue?69ad","webpack://nextcloud/./apps/theming/src/components/ItemPreview.vue?8797","webpack:///nextcloud/apps/theming/src/components/UserAppMenuSection.vue","webpack:///nextcloud/node_modules/sortablejs/modular/sortable.esm.js","webpack:///nextcloud/node_modules/@vueuse/integrations/node_modules/vue-demi/lib/index.mjs","webpack:///nextcloud/apps/theming/src/components/AppOrderSelectorElement.vue","webpack:///nextcloud/apps/theming/src/components/AppOrderSelectorElement.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/theming/src/components/AppOrderSelectorElement.vue?649a","webpack://nextcloud/./apps/theming/src/components/AppOrderSelectorElement.vue?aad4","webpack:///nextcloud/apps/theming/src/components/AppOrderSelector.vue","webpack:///nextcloud/node_modules/@vueuse/integrations/useSortable.mjs","webpack:///nextcloud/apps/theming/src/components/AppOrderSelector.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/theming/src/components/AppOrderSelector.vue?96a5","webpack://nextcloud/./apps/theming/src/components/AppOrderSelector.vue?dbd7","webpack:///nextcloud/node_modules/vue-material-design-icons/Undo.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Undo.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/Undo.vue?d998","webpack:///nextcloud/node_modules/vue-material-design-icons/Undo.vue?vue&type=template&id=bc8e3c2a","webpack:///nextcloud/apps/theming/src/components/UserAppMenuSection.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/theming/src/components/UserAppMenuSection.vue?fab3","webpack://nextcloud/./apps/theming/src/components/UserAppMenuSection.vue?402e","webpack:///nextcloud/apps/theming/src/UserThemes.vue","webpack:///nextcloud/apps/theming/src/UserThemes.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/theming/src/UserThemes.vue?6be3","webpack://nextcloud/./apps/theming/src/UserThemes.vue?7eb2","webpack://nextcloud/./apps/theming/src/UserThemes.vue?b683","webpack:///nextcloud/apps/theming/src/personal-settings.js","webpack:///nextcloud/apps/theming/src/helpers/refreshStyles.js","webpack:///nextcloud/apps/theming/src/UserThemes.vue?vue&type=style&index=0&id=d643b9e0&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/theming/src/components/AppOrderSelector.vue?vue&type=style&index=0&id=35797e31&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/theming/src/components/AppOrderSelectorElement.vue?vue&type=style&index=0&id=081ebc45&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/theming/src/components/BackgroundSettings.vue?vue&type=style&index=0&id=e836b210&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/theming/src/components/ItemPreview.vue?vue&type=style&index=0&id=1a08e35a&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/theming/src/components/UserAppMenuSection.vue?vue&type=style&index=0&id=ee0f3d1a&prod&scoped=true&lang=scss","webpack:///nextcloud/node_modules/lodash/_baseEach.js","webpack:///nextcloud/node_modules/lodash/_baseFilter.js","webpack:///nextcloud/node_modules/lodash/_baseForOwn.js","webpack:///nextcloud/node_modules/lodash/_createBaseEach.js","webpack:///nextcloud/node_modules/lodash/defaults.js","webpack:///nextcloud/node_modules/lodash/filter.js","webpack:///nextcloud/node_modules/node-vibrant/lib/browser.js","webpack:///nextcloud/node_modules/node-vibrant/lib/builder.js","webpack:///nextcloud/node_modules/node-vibrant/lib/color.js","webpack:///nextcloud/node_modules/node-vibrant/lib/filter/default.js","webpack:///nextcloud/node_modules/node-vibrant/lib/filter/index.js","webpack:///nextcloud/node_modules/node-vibrant/lib/generator/default.js","webpack:///nextcloud/node_modules/node-vibrant/lib/generator/index.js","webpack:///nextcloud/node_modules/node-vibrant/lib/image/base.js","webpack:///nextcloud/node_modules/node-vibrant/lib/image/browser.js","webpack:///nextcloud/node_modules/node-vibrant/lib/quantizer/index.js","webpack:///nextcloud/node_modules/node-vibrant/lib/quantizer/mmcq.js","webpack:///nextcloud/node_modules/node-vibrant/lib/quantizer/pqueue.js","webpack:///nextcloud/node_modules/node-vibrant/lib/quantizer/vbox.js","webpack:///nextcloud/node_modules/node-vibrant/lib/util.js","webpack:///nextcloud/node_modules/node-vibrant/lib/vibrant.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/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","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/publicPath","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 = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\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};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ImageEdit.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ImageEdit.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ImageEdit.vue?vue&type=template&id=7bb2aa9c\"\nimport script from \"./ImageEdit.vue?vue&type=script&lang=js\"\nexport * from \"./ImageEdit.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 image-edit-icon\",attrs:{\"aria-hidden\":!_vm.title,\"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\":\"M22.7 14.3L21.7 15.3L19.7 13.3L20.7 12.3C20.8 12.2 20.9 12.1 21.1 12.1C21.2 12.1 21.4 12.2 21.5 12.3L22.8 13.6C22.9 13.8 22.9 14.1 22.7 14.3M13 19.9V22H15.1L21.2 15.9L19.2 13.9L13 19.9M21 5C21 3.9 20.1 3 19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H11V19.1L12.1 18H5L8.5 13.5L11 16.5L14.5 12L16.1 14.1L21 9.1V5Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./BackgroundSettings.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!./BackgroundSettings.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!./BackgroundSettings.vue?vue&type=style&index=0&id=e836b210&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \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!./BackgroundSettings.vue?vue&type=style&index=0&id=e836b210&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./BackgroundSettings.vue?vue&type=template&id=e836b210&scoped=true\"\nimport script from \"./BackgroundSettings.vue?vue&type=script&lang=js\"\nexport * from \"./BackgroundSettings.vue?vue&type=script&lang=js\"\nimport style0 from \"./BackgroundSettings.vue?vue&type=style&index=0&id=e836b210&prod&scoped=true&lang=scss\"\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 \"e836b210\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"background-selector\",attrs:{\"data-user-theming-background-settings\":\"\"}},[_c('button',{class:{\n\t\t\t'icon-loading': _vm.loading === 'custom',\n\t\t\t'background background__filepicker': true,\n\t\t\t'background--active': _vm.backgroundImage === 'custom'\n\t\t},attrs:{\"aria-pressed\":_vm.backgroundImage === 'custom',\"data-color-bright\":_vm.invertTextColor(_vm.Theming.color),\"data-user-theming-background-custom\":\"\",\"tabindex\":\"0\"},on:{\"click\":_vm.pickFile}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('theming', 'Custom background'))+\"\\n\\t\\t\"),(_vm.backgroundImage !== 'custom')?_c('ImageEdit',{attrs:{\"size\":26}}):_vm._e(),_vm._v(\" \"),_c('Check',{attrs:{\"size\":44}})],1),_vm._v(\" \"),_c('button',{class:{\n\t\t\t'icon-loading': _vm.loading === 'default',\n\t\t\t'background background__default': true,\n\t\t\t'background--active': _vm.backgroundImage === 'default'\n\t\t},style:({ '--border-color': _vm.Theming.defaultColor }),attrs:{\"aria-pressed\":_vm.backgroundImage === 'default',\"data-color-bright\":_vm.invertTextColor(_vm.Theming.defaultColor),\"data-user-theming-background-default\":\"\",\"tabindex\":\"0\"},on:{\"click\":_vm.setDefault}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('theming', 'Default background'))+\"\\n\\t\\t\"),_c('Check',{attrs:{\"size\":44}})],1),_vm._v(\" \"),_c('NcColorPicker',{on:{\"input\":_vm.debouncePickColor},model:{value:(_vm.Theming.color),callback:function ($$v) {_vm.$set(_vm.Theming, \"color\", $$v)},expression:\"Theming.color\"}},[_c('button',{staticClass:\"background background__color\",style:({ backgroundColor: _vm.Theming.color, '--border-color': _vm.Theming.color}),attrs:{\"data-color\":_vm.Theming.color,\"data-color-bright\":_vm.invertTextColor(_vm.Theming.color),\"data-user-theming-background-color\":\"\",\"tabindex\":\"0\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('theming', 'Change color'))+\"\\n\\t\\t\")])]),_vm._v(\" \"),_c('button',{class:{\n\t\t\t'background background__delete': true,\n\t\t\t'background--active': _vm.isBackgroundDisabled\n\t\t},attrs:{\"aria-pressed\":_vm.isBackgroundDisabled,\"data-user-theming-background-clear\":\"\",\"tabindex\":\"0\"},on:{\"click\":_vm.removeBackground}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('theming', 'No background'))+\"\\n\\t\\t\"),(!_vm.isBackgroundDisabled)?_c('Close',{attrs:{\"size\":32}}):_vm._e(),_vm._v(\" \"),_c('Check',{attrs:{\"size\":44}})],1),_vm._v(\" \"),_vm._l((_vm.shippedBackgrounds),function(shippedBackground){return _c('button',{key:shippedBackground.name,class:{\n\t\t\t'background background__shipped': true,\n\t\t\t'icon-loading': _vm.loading === shippedBackground.name,\n\t\t\t'background--active': _vm.backgroundImage === shippedBackground.name\n\t\t},style:({ backgroundImage: 'url(' + shippedBackground.preview + ')', '--border-color': shippedBackground.details.primary_color }),attrs:{\"title\":shippedBackground.details.attribution,\"aria-label\":shippedBackground.details.description,\"aria-pressed\":_vm.backgroundImage === shippedBackground.name,\"data-color-bright\":shippedBackground.details.theming === 'dark',\"data-user-theming-background-shipped\":shippedBackground.name,\"tabindex\":\"0\"},on:{\"click\":function($event){return _vm.setShipped(shippedBackground.name)}}},[_c('Check',{attrs:{\"size\":44}})],1)})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"theming__preview\",class:'theming__preview--' + _vm.theme.id},[_c('div',{staticClass:\"theming__preview-image\",style:({ backgroundImage: 'url(' + _vm.img + ')' }),on:{\"click\":_vm.onToggle}}),_vm._v(\" \"),_c('div',{staticClass:\"theming__preview-description\"},[_c('h3',[_vm._v(_vm._s(_vm.theme.title))]),_vm._v(\" \"),_c('p',{staticClass:\"theming__preview-explanation\"},[_vm._v(_vm._s(_vm.theme.description))]),_vm._v(\" \"),(_vm.enforced)?_c('span',{staticClass:\"theming__preview-warning\",attrs:{\"role\":\"note\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('theming', 'Theme selection is enforced'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{staticClass:\"theming__preview-toggle\",attrs:{\"checked\":_vm.checked,\"disabled\":_vm.enforced,\"name\":_vm.name,\"type\":_vm.switchType},on:{\"update:checked\":function($event){_vm.checked=$event}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.theme.enableLabel)+\"\\n\\t\\t\")])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ItemPreview.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!./ItemPreview.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!./ItemPreview.vue?vue&type=style&index=0&id=1a08e35a&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \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!./ItemPreview.vue?vue&type=style&index=0&id=1a08e35a&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ItemPreview.vue?vue&type=template&id=1a08e35a&scoped=true\"\nimport script from \"./ItemPreview.vue?vue&type=script&lang=js\"\nexport * from \"./ItemPreview.vue?vue&type=script&lang=js\"\nimport style0 from \"./ItemPreview.vue?vue&type=style&index=0&id=1a08e35a&prod&lang=scss&scoped=true\"\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 \"1a08e35a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcSettingsSection',{attrs:{\"name\":_vm.t('theming', 'Navigation bar settings')}},[_c('p',[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('theming', 'You can configure the app order used for the navigation bar. The first entry will be the default app, opened after login or when clicking on the logo.'))+\"\\n\\t\")]),_vm._v(\" \"),(_vm.enforcedDefaultApp)?_c('NcNoteCard',{attrs:{\"id\":_vm.elementIdEnforcedDefaultApp,\"type\":\"info\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('theming', 'The default app can not be changed because it was configured by the administrator.'))+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.hasAppOrderChanged)?_c('NcNoteCard',{attrs:{\"id\":_vm.elementIdAppOrderChanged,\"type\":\"info\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('theming', 'The app order was changed, to see it in action you have to reload the page.'))+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),_c('AppOrderSelector',{staticClass:\"user-app-menu-order\",attrs:{\"aria-details\":_vm.ariaDetailsAppOrder,\"value\":_vm.appOrder},on:{\"update:value\":_vm.updateAppOrder}}),_vm._v(\" \"),_c('NcButton',{attrs:{\"data-test-id\":\"btn-apporder-reset\",\"disabled\":!_vm.hasCustomAppOrder,\"type\":\"tertiary\"},on:{\"click\":_vm.resetAppOrder},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconUndo',{attrs:{\"size\":20}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('theming', 'Reset default app order'))+\"\\n\\t\")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**!\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","import Vue from 'vue'\nimport { getCurrentInstance } from 'vue'\n\nvar isVue2 = true\nvar isVue3 = false\nvar Vue2 = Vue\nvar warn = Vue.util.warn\n\nfunction install() {}\n\n// createApp polyfill\nexport function createApp(rootComponent, rootProps) {\n var vm\n var provide = {}\n var app = {\n config: Vue.config,\n use: Vue.use.bind(Vue),\n mixin: Vue.mixin.bind(Vue),\n component: Vue.component.bind(Vue),\n provide: function (key, value) {\n provide[key] = value\n return this\n },\n directive: function (name, dir) {\n if (dir) {\n Vue.directive(name, dir)\n return app\n } else {\n return Vue.directive(name)\n }\n },\n mount: function (el, hydrating) {\n if (!vm) {\n vm = new Vue(Object.assign({ propsData: rootProps }, rootComponent, { provide: Object.assign(provide, rootComponent.provide) }))\n vm.$mount(el, hydrating)\n return vm\n } else {\n return vm\n }\n },\n unmount: function () {\n if (vm) {\n vm.$destroy()\n vm = undefined\n }\n },\n }\n return app\n}\n\nexport {\n Vue,\n Vue2,\n isVue2,\n isVue3,\n install,\n warn\n}\n\n// Vue 3 components mock\nfunction createMockComponent(name) {\n return {\n setup() {\n throw new Error('[vue-demi] ' + name + ' is not supported in Vue 2. It\\'s provided to avoid compiler errors.')\n }\n }\n}\nexport var Fragment = /*#__PURE__*/ createMockComponent('Fragment')\nexport var Transition = /*#__PURE__*/ createMockComponent('Transition')\nexport var TransitionGroup = /*#__PURE__*/ createMockComponent('TransitionGroup')\nexport var Teleport = /*#__PURE__*/ createMockComponent('Teleport')\nexport var Suspense = /*#__PURE__*/ createMockComponent('Suspense')\nexport var KeepAlive = /*#__PURE__*/ createMockComponent('KeepAlive')\n\nexport * from 'vue'\n\n// Not implemented https://github.com/vuejs/core/pull/8111, falls back to getCurrentInstance()\nexport function hasInjectionContext() {\n return !!getCurrentInstance()\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('li',{class:{\n\t\t'order-selector-element': true,\n\t\t'order-selector-element--disabled': _vm.app.default\n\t},attrs:{\"data-cy-app-order-element\":_vm.app.id},on:{\"focusin\":function($event){return _vm.$emit('update:focus')}}},[_c('svg',{attrs:{\"width\":\"20\",\"height\":\"20\",\"viewBox\":\"0 0 20 20\",\"role\":\"presentation\"}},[_c('image',{staticClass:\"order-selector-element__icon\",attrs:{\"preserveAspectRatio\":\"xMinYMin meet\",\"x\":\"0\",\"y\":\"0\",\"width\":\"20\",\"height\":\"20\",\"xlink:href\":_vm.app.icon}})]),_vm._v(\" \"),_c('div',{staticClass:\"order-selector-element__label\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.app.label ?? _vm.app.id)+\"\\n\\t\")]),_vm._v(\" \"),_c('div',{staticClass:\"order-selector-element__actions\"},[_c('NcButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isFirst && !_vm.app.default),expression:\"!isFirst && !app.default\"}],ref:\"buttonUp\",attrs:{\"aria-label\":_vm.t('settings', 'Move up'),\"aria-describedby\":_vm.ariaDescribedby,\"aria-details\":_vm.ariaDetails,\"data-cy-app-order-button\":\"up\",\"type\":\"tertiary-no-background\"},on:{\"click\":_vm.moveUp},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconArrowUp',{attrs:{\"size\":20}})]},proxy:true}])}),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isFirst || !!_vm.app.default),expression:\"isFirst || !!app.default\"}],staticClass:\"order-selector-element__placeholder\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\" \"),_c('NcButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isLast && !_vm.app.default),expression:\"!isLast && !app.default\"}],ref:\"buttonDown\",attrs:{\"aria-label\":_vm.t('settings', 'Move down'),\"aria-describedby\":_vm.ariaDescribedby,\"aria-details\":_vm.ariaDetails,\"data-cy-app-order-button\":\"down\",\"type\":\"tertiary-no-background\"},on:{\"click\":_vm.moveDown},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconArrowDown',{attrs:{\"size\":20}})]},proxy:true}])}),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isLast || !!_vm.app.default),expression:\"isLast || !!app.default\"}],staticClass:\"order-selector-element__placeholder\",attrs:{\"aria-hidden\":\"true\"}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppOrderSelectorElement.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppOrderSelectorElement.vue?vue&type=script&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/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppOrderSelectorElement.vue?vue&type=style&index=0&id=081ebc45&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \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!./AppOrderSelectorElement.vue?vue&type=style&index=0&id=081ebc45&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppOrderSelectorElement.vue?vue&type=template&id=081ebc45&scoped=true\"\nimport script from \"./AppOrderSelectorElement.vue?vue&type=script&lang=ts\"\nexport * from \"./AppOrderSelectorElement.vue?vue&type=script&lang=ts\"\nimport style0 from \"./AppOrderSelectorElement.vue?vue&type=style&index=0&id=081ebc45&prod&lang=scss&scoped=true\"\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 \"081ebc45\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('Fragment',[_c('div',{staticClass:\"hidden-visually\",attrs:{\"id\":_vm.statusInfoId,\"aria-live\":\"polite\",\"role\":\"status\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.statusInfo)+\"\\n\\t\")]),_vm._v(\" \"),_c('ol',{ref:\"listElement\",staticClass:\"order-selector\",attrs:{\"data-cy-app-order\":\"\"}},_vm._l((_vm.appList),function(app,index){return _c('AppOrderSelectorElement',_vm._g({key:`${app.id}${_vm.renderCount}`,ref:\"selectorElements\",refInFor:true,attrs:{\"app\":app,\"aria-details\":_vm.ariaDetails,\"aria-describedby\":_vm.statusInfoId,\"is-first\":index === 0 || !!_vm.appList[index - 1].default,\"is-last\":index === _vm.value.length - 1}},app.default ? {} : {\n\t\t\t\t'move:up': () => _vm.moveUp(index),\n\t\t\t\t'move:down': () => _vm.moveDown(index),\n\t\t\t\t'update:focus': () => _vm.updateStatusInfo(index),\n\t\t\t}))}),1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { tryOnMounted, tryOnScopeDispose, toValue, unrefElement, defaultDocument } from '@vueuse/core';\nimport Sortable from 'sortablejs';\nimport { isRef, nextTick } from 'vue-demi';\n\nfunction useSortable(el, list, options = {}) {\n let sortable;\n const { document = defaultDocument, ...resetOptions } = options;\n const defaultOptions = {\n onUpdate: (e) => {\n moveArrayElement(list, e.oldIndex, e.newIndex);\n }\n };\n const start = () => {\n const target = typeof el === \"string\" ? document == null ? void 0 : document.querySelector(el) : unrefElement(el);\n if (!target || sortable !== void 0)\n return;\n sortable = new Sortable(target, { ...defaultOptions, ...resetOptions });\n };\n const stop = () => {\n sortable == null ? void 0 : sortable.destroy();\n sortable = void 0;\n };\n const option = (name, value) => {\n if (value !== void 0)\n sortable == null ? void 0 : sortable.option(name, value);\n else\n return sortable == null ? void 0 : sortable.option(name);\n };\n tryOnMounted(start);\n tryOnScopeDispose(stop);\n return { stop, start, option };\n}\nfunction moveArrayElement(list, from, to) {\n const _valueIsRef = isRef(list);\n const array = _valueIsRef ? [...toValue(list)] : toValue(list);\n if (to >= 0 && to < array.length) {\n const element = array.splice(from, 1)[0];\n nextTick(() => {\n array.splice(to, 0, element);\n if (_valueIsRef)\n list.value = array;\n });\n }\n}\n\nexport { moveArrayElement, useSortable };\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppOrderSelector.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppOrderSelector.vue?vue&type=script&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/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppOrderSelector.vue?vue&type=style&index=0&id=35797e31&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \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!./AppOrderSelector.vue?vue&type=style&index=0&id=35797e31&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppOrderSelector.vue?vue&type=template&id=35797e31&scoped=true\"\nimport script from \"./AppOrderSelector.vue?vue&type=script&lang=ts\"\nexport * from \"./AppOrderSelector.vue?vue&type=script&lang=ts\"\nimport style0 from \"./AppOrderSelector.vue?vue&type=style&index=0&id=35797e31&prod&scoped=true&lang=scss\"\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 \"35797e31\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Undo.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Undo.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./Undo.vue?vue&type=template&id=bc8e3c2a\"\nimport script from \"./Undo.vue?vue&type=script&lang=js\"\nexport * from \"./Undo.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 undo-icon\",attrs:{\"aria-hidden\":!_vm.title,\"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\":\"M12.5,8C9.85,8 7.45,9 5.6,10.6L2,7V16H11L7.38,12.38C8.77,11.22 10.54,10.5 12.5,10.5C16.04,10.5 19.05,12.81 20.1,16L22.47,15.22C21.08,11.03 17.15,8 12.5,8Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserAppMenuSection.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserAppMenuSection.vue?vue&type=script&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/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserAppMenuSection.vue?vue&type=style&index=0&id=ee0f3d1a&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \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!./UserAppMenuSection.vue?vue&type=style&index=0&id=ee0f3d1a&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserAppMenuSection.vue?vue&type=template&id=ee0f3d1a&scoped=true\"\nimport script from \"./UserAppMenuSection.vue?vue&type=script&lang=ts\"\nexport * from \"./UserAppMenuSection.vue?vue&type=script&lang=ts\"\nimport style0 from \"./UserAppMenuSection.vue?vue&type=style&index=0&id=ee0f3d1a&prod&scoped=true&lang=scss\"\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 \"ee0f3d1a\",\n null\n \n)\n\nexport default component.exports","\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!./UserThemes.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!./UserThemes.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!./UserThemes.vue?vue&type=style&index=0&id=d643b9e0&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \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!./UserThemes.vue?vue&type=style&index=0&id=d643b9e0&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserThemes.vue?vue&type=template&id=d643b9e0&scoped=true\"\nimport script from \"./UserThemes.vue?vue&type=script&lang=js\"\nexport * from \"./UserThemes.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserThemes.vue?vue&type=style&index=0&id=d643b9e0&prod&lang=scss&scoped=true\"\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 \"d643b9e0\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',[_c('NcSettingsSection',{staticClass:\"theming\",attrs:{\"name\":_vm.t('theming', 'Appearance and accessibility settings'),\"limit-width\":false}},[_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.description)}}),_vm._v(\" \"),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.descriptionDetail)}}),_vm._v(\" \"),_c('div',{staticClass:\"theming__preview-list\"},_vm._l((_vm.themes),function(theme){return _c('ItemPreview',{key:theme.id,attrs:{\"enforced\":theme.id === _vm.enforceTheme,\"selected\":_vm.selectedTheme.id === theme.id,\"theme\":theme,\"unique\":_vm.themes.length === 1,\"type\":\"theme\"},on:{\"change\":_vm.changeTheme}})}),1),_vm._v(\" \"),_c('div',{staticClass:\"theming__preview-list\"},_vm._l((_vm.fonts),function(theme){return _c('ItemPreview',{key:theme.id,attrs:{\"selected\":theme.enabled,\"theme\":theme,\"unique\":_vm.fonts.length === 1,\"type\":\"font\"},on:{\"change\":_vm.changeFont}})}),1)]),_vm._v(\" \"),_c('NcSettingsSection',{staticClass:\"background\",attrs:{\"name\":_vm.t('theming', 'Background'),\"data-user-theming-background-disabled\":\"\"}},[(_vm.isUserThemingDisabled)?[_c('p',[_vm._v(_vm._s(_vm.t('theming', 'Customization has been disabled by your administrator')))])]:[_c('p',[_vm._v(_vm._s(_vm.t('theming', 'Set a custom background')))]),_vm._v(\" \"),_c('BackgroundSettings',{staticClass:\"background__grid\",on:{\"update:background\":_vm.refreshGlobalStyles}})]],2),_vm._v(\" \"),_c('NcSettingsSection',{attrs:{\"name\":_vm.t('theming', 'Keyboard shortcuts')}},[_c('p',[_vm._v(_vm._s(_vm.t('theming', 'In some cases keyboard shortcuts can interfere with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps.')))]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{staticClass:\"theming__preview-toggle\",attrs:{\"checked\":_vm.shortcutsDisabled,\"type\":\"switch\"},on:{\"update:checked\":function($event){_vm.shortcutsDisabled=$event},\"change\":_vm.changeShortcutsDisabled}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('theming', 'Disable all keyboard shortcuts'))+\"\\n\\t\\t\")])],1),_vm._v(\" \"),_c('UserAppMenuSection')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright Copyright (c) 2018 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\nimport { getRequestToken } from '@nextcloud/auth'\nimport Vue from 'vue'\n\nimport { refreshStyles } from './helpers/refreshStyles.js'\nimport App from './UserThemes.vue'\n\n// eslint-disable-next-line camelcase\n__webpack_nonce__ = btoa(getRequestToken())\n\nVue.prototype.OC = OC\nVue.prototype.t = t\n\nconst View = Vue.extend(App)\nconst theming = new View()\ntheming.$mount('#theming')\ntheming.$on('update:background', refreshStyles)\n","/**\n * @copyright 2022 Christopher Ng \n *\n * @author Christopher Ng \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nexport const refreshStyles = () => {\n\t// Refresh server-side generated theming CSS\n\t[...document.head.querySelectorAll('link.theme')].forEach(theme => {\n\t\tconst url = new URL(theme.href)\n\t\turl.searchParams.set('v', Date.now())\n\t\tconst newTheme = theme.cloneNode()\n\t\tnewTheme.href = url.toString()\n\t\tnewTheme.onload = () => theme.remove()\n\t\tdocument.head.append(newTheme)\n\t})\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, `.theming p[data-v-d643b9e0]{max-width:800px}.theming[data-v-d643b9e0] a{font-weight:bold}.theming[data-v-d643b9e0] a:hover,.theming[data-v-d643b9e0] a:focus{text-decoration:underline}.theming__preview-list[data-v-d643b9e0]{--gap: 30px;display:grid;margin-top:var(--gap);column-gap:var(--gap);row-gap:var(--gap);grid-template-columns:1fr 1fr}.background__grid[data-v-d643b9e0]{margin-top:30px}@media(max-width: 1440px){.theming__preview-list[data-v-d643b9e0]{display:flex;flex-direction:column}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/theming/src/UserThemes.vue\"],\"names\":[],\"mappings\":\"AAGC,4BACC,eAAA,CAID,4BACC,gBAAA,CAEA,oEAEC,yBAAA,CAIF,wCACC,WAAA,CAEA,YAAA,CACA,qBAAA,CACA,qBAAA,CACA,kBAAA,CACA,6BAAA,CAKD,mCACC,eAAA,CAIF,0BACC,wCACC,YAAA,CACA,qBAAA,CAAA\",\"sourcesContent\":[\"\\n.theming {\\n\\t// Limit width of settings sections for readability\\n\\tp {\\n\\t\\tmax-width: 800px;\\n\\t}\\n\\n\\t// Proper highlight for links and focus feedback\\n\\t&::v-deep a {\\n\\t\\tfont-weight: bold;\\n\\n\\t\\t&:hover,\\n\\t\\t&:focus {\\n\\t\\t\\ttext-decoration: underline;\\n\\t\\t}\\n\\t}\\n\\n\\t&__preview-list {\\n\\t\\t--gap: 30px;\\n\\n\\t\\tdisplay: grid;\\n\\t\\tmargin-top: var(--gap);\\n\\t\\tcolumn-gap: var(--gap);\\n\\t\\trow-gap: var(--gap);\\n\\t\\tgrid-template-columns: 1fr 1fr;\\n\\t}\\n}\\n\\n.background {\\n\\t&__grid {\\n\\t\\tmargin-top: 30px;\\n\\t}\\n}\\n\\n@media (max-width: 1440px) {\\n\\t.theming__preview-list {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\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, `.order-selector[data-v-35797e31]{width:max-content;min-width:260px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/theming/src/components/AppOrderSelector.vue\"],\"names\":[],\"mappings\":\"AACA,iCACC,iBAAA,CACA,eAAA\",\"sourcesContent\":[\"\\n.order-selector {\\n\\twidth: max-content;\\n\\tmin-width: 260px; // align with NcSelect\\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, `.order-selector-element[data-v-081ebc45]{list-style:none;display:flex;flex-direction:row;align-items:center;gap:12px;padding-inline:12px}.order-selector-element[data-v-081ebc45]:hover{background-color:var(--color-background-hover);border-radius:var(--border-radius-large)}.order-selector-element--disabled[data-v-081ebc45]{border-color:var(--color-text-maxcontrast);color:var(--color-text-maxcontrast)}.order-selector-element--disabled .order-selector-element__icon[data-v-081ebc45]{opacity:75%}.order-selector-element__actions[data-v-081ebc45]{flex:0 0;display:flex;flex-direction:row;gap:6px}.order-selector-element__label[data-v-081ebc45]{flex:1 1;text-overflow:ellipsis;overflow:hidden}.order-selector-element__placeholder[data-v-081ebc45]{height:44px;width:44px}.order-selector-element__icon[data-v-081ebc45]{filter:var(--background-invert-if-bright)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/theming/src/components/AppOrderSelectorElement.vue\"],\"names\":[],\"mappings\":\"AACA,yCAEC,eAAA,CAEA,YAAA,CACA,kBAAA,CACA,kBAAA,CAEA,QAAA,CACA,mBAAA,CAEA,+CACC,8CAAA,CACA,wCAAA,CAGD,mDACC,0CAAA,CACA,mCAAA,CAEA,iFACC,WAAA,CAIF,kDACC,QAAA,CACA,YAAA,CACA,kBAAA,CACA,OAAA,CAGD,gDACC,QAAA,CACA,sBAAA,CACA,eAAA,CAGD,sDACC,WAAA,CACA,UAAA,CAGD,+CACC,yCAAA\",\"sourcesContent\":[\"\\n.order-selector-element {\\n\\t// hide default styling\\n\\tlist-style: none;\\n\\t// Align children\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\talign-items: center;\\n\\t// Spacing\\n\\tgap: 12px;\\n\\tpadding-inline: 12px;\\n\\n\\t&:hover {\\n\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t}\\n\\n\\t&--disabled {\\n\\t\\tborder-color: var(--color-text-maxcontrast);\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\n\\t\\t.order-selector-element__icon {\\n\\t\\t\\topacity: 75%;\\n\\t\\t}\\n\\t}\\n\\n\\t&__actions {\\n\\t\\tflex: 0 0;\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: row;\\n\\t\\tgap: 6px;\\n\\t}\\n\\n\\t&__label {\\n\\t\\tflex: 1 1;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\toverflow: hidden;\\n\\t}\\n\\n\\t&__placeholder {\\n\\t\\theight: 44px;\\n\\t\\twidth: 44px;\\n\\t}\\n\\n\\t&__icon {\\n\\t\\tfilter: var(--background-invert-if-bright);\\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, `.background-selector[data-v-e836b210]{display:flex;flex-wrap:wrap;justify-content:center}.background-selector .background[data-v-e836b210]{overflow:hidden;width:176px;height:96px;margin:8px;text-align:center;border:2px solid var(--color-main-background);border-radius:var(--border-radius-large);background-position:center center;background-size:cover}.background-selector .background__filepicker.background--active[data-v-e836b210]{color:#fff;background-image:var(--image-background)}.background-selector .background__default[data-v-e836b210]{background-color:var(--color-primary-default);background-image:linear-gradient(to bottom, rgba(23, 23, 23, 0.5), rgba(23, 23, 23, 0.5)),var(--image-background-plain, var(--image-background-default))}.background-selector .background__filepicker[data-v-e836b210],.background-selector .background__default[data-v-e836b210],.background-selector .background__color[data-v-e836b210]{border-color:var(--color-border)}.background-selector .background__color[data-v-e836b210]{color:var(--color-primary-text);background-color:var(--color-primary-default)}.background-selector .background__default[data-v-e836b210],.background-selector .background__shipped[data-v-e836b210]{color:#fff}.background-selector .background[data-color-bright][data-v-e836b210]{color:#000}.background-selector .background--active[data-v-e836b210],.background-selector .background[data-v-e836b210]:hover,.background-selector .background[data-v-e836b210]:focus{outline:2px solid var(--color-main-text) !important;border-color:var(--color-main-background) !important}.background-selector .background span[data-v-e836b210]{margin:4px}.background-selector .background .check-icon[data-v-e836b210]{display:none}.background-selector .background--active:not(.icon-loading) .check-icon[data-v-e836b210]{display:block !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/theming/src/components/BackgroundSettings.vue\"],\"names\":[],\"mappings\":\"AACA,sCACC,YAAA,CACA,cAAA,CACA,sBAAA,CAEA,kDACC,eAAA,CACA,WAAA,CACA,WAAA,CACA,UAAA,CACA,iBAAA,CACA,6CAAA,CACA,wCAAA,CACA,iCAAA,CACA,qBAAA,CAGC,iFACC,UAAA,CACA,wCAAA,CAIF,2DACC,6CAAA,CACA,wJAAA,CAGD,kLACC,gCAAA,CAGD,yDACC,+BAAA,CACA,6CAAA,CAID,sHAEC,UAAA,CAID,qEACC,UAAA,CAGD,0KAGC,mDAAA,CACA,oDAAA,CAID,uDACC,UAAA,CAGD,8DACC,YAAA,CAIA,yFAEC,wBAAA\",\"sourcesContent\":[\"\\n.background-selector {\\n\\tdisplay: flex;\\n\\tflex-wrap: wrap;\\n\\tjustify-content: center;\\n\\n\\t.background {\\n\\t\\toverflow: hidden;\\n\\t\\twidth: 176px;\\n\\t\\theight: 96px;\\n\\t\\tmargin: 8px;\\n\\t\\ttext-align: center;\\n\\t\\tborder: 2px solid var(--color-main-background);\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t\\tbackground-position: center center;\\n\\t\\tbackground-size: cover;\\n\\n\\t\\t&__filepicker {\\n\\t\\t\\t&.background--active {\\n\\t\\t\\t\\tcolor: white;\\n\\t\\t\\t\\tbackground-image: var(--image-background);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&__default {\\n\\t\\t\\tbackground-color: var(--color-primary-default);\\n\\t\\t\\tbackground-image: linear-gradient(to bottom, rgba(23, 23, 23, 0.5), rgba(23, 23, 23, 0.5)), var(--image-background-plain, var(--image-background-default));\\n\\t\\t}\\n\\n\\t\\t&__filepicker, &__default, &__color {\\n\\t\\t\\tborder-color: var(--color-border);\\n\\t\\t}\\n\\n\\t\\t&__color {\\n\\t\\t\\tcolor: var(--color-primary-text);\\n\\t\\t\\tbackground-color: var(--color-primary-default);\\n\\t\\t}\\n\\n\\t\\t// Over a background image\\n\\t\\t&__default,\\n\\t\\t&__shipped {\\n\\t\\t\\tcolor: white;\\n\\t\\t}\\n\\n\\t\\t// Text and svg icon dark on bright background\\n\\t\\t&[data-color-bright] {\\n\\t\\t\\tcolor: black;\\n\\t\\t}\\n\\n\\t\\t&--active,\\n\\t\\t&:hover,\\n\\t\\t&:focus {\\n\\t\\t\\toutline: 2px solid var(--color-main-text) !important;\\n\\t\\t\\tborder-color: var(--color-main-background) !important;\\n\\t\\t}\\n\\n\\t\\t// Icon\\n\\t\\tspan {\\n\\t\\t\\tmargin: 4px;\\n\\t\\t}\\n\\n\\t\\t.check-icon {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\n\\t\\t&--active:not(.icon-loading) {\\n\\t\\t\\t.check-icon {\\n\\t\\t\\t\\t// Show checkmark\\n\\t\\t\\t\\tdisplay: block !important;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\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, `.theming__preview[data-v-1a08e35a]{--ratio: 16;position:relative;display:flex;justify-content:flex-start;max-width:800px}.theming__preview[data-v-1a08e35a],.theming__preview *[data-v-1a08e35a]{user-select:none}.theming__preview-image[data-v-1a08e35a]{flex-basis:calc(16px*var(--ratio));flex-shrink:0;height:calc(10px*var(--ratio));margin-right:var(--gap);cursor:pointer;border-radius:var(--border-radius);background-repeat:no-repeat;background-position:top left;background-size:cover}.theming__preview-explanation[data-v-1a08e35a]{margin-bottom:10px}.theming__preview-description[data-v-1a08e35a]{display:flex;flex-direction:column}.theming__preview-description h3[data-v-1a08e35a]{font-weight:bold;margin-bottom:0}.theming__preview-description label[data-v-1a08e35a]{padding:12px 0}.theming__preview--default[data-v-1a08e35a]{grid-column:span 2}.theming__preview-warning[data-v-1a08e35a]{color:var(--color-warning)}@media(max-width: 682.6666666667px){.theming__preview[data-v-1a08e35a]{flex-direction:column}.theming__preview-image[data-v-1a08e35a]{margin:0}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/theming/src/components/ItemPreview.vue\"],\"names\":[],\"mappings\":\"AAGA,mCAEC,WAAA,CAEA,iBAAA,CACA,YAAA,CACA,0BAAA,CACA,eAAA,CAEA,wEAEC,gBAAA,CAGD,yCACC,kCAAA,CACA,aAAA,CACA,8BAAA,CACA,uBAAA,CACA,cAAA,CACA,kCAAA,CACA,2BAAA,CACA,4BAAA,CACA,qBAAA,CAGD,+CACC,kBAAA,CAGD,+CACC,YAAA,CACA,qBAAA,CAEA,kDACC,gBAAA,CACA,eAAA,CAGD,qDACC,cAAA,CAIF,4CACC,kBAAA,CAGD,2CACC,0BAAA,CAIF,oCACC,mCACC,qBAAA,CAEA,yCACC,QAAA,CAAA\",\"sourcesContent\":[\"\\n@use 'sass:math';\\n\\n.theming__preview {\\n\\t// We make previews on 16/10 screens\\n\\t--ratio: 16;\\n\\n\\tposition: relative;\\n\\tdisplay: flex;\\n\\tjustify-content: flex-start;\\n\\tmax-width: 800px;\\n\\n\\t&,\\n\\t* {\\n\\t\\tuser-select: none;\\n\\t}\\n\\n\\t&-image {\\n\\t\\tflex-basis: calc(16px * var(--ratio));\\n\\t\\tflex-shrink: 0;\\n\\t\\theight: calc(10px * var(--ratio));\\n\\t\\tmargin-right: var(--gap);\\n\\t\\tcursor: pointer;\\n\\t\\tborder-radius: var(--border-radius);\\n\\t\\tbackground-repeat: no-repeat;\\n\\t\\tbackground-position: top left;\\n\\t\\tbackground-size: cover;\\n\\t}\\n\\n\\t&-explanation {\\n\\t\\tmargin-bottom: 10px;\\n\\t}\\n\\n\\t&-description {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\n\\t\\th3 {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\tmargin-bottom: 0;\\n\\t\\t}\\n\\n\\t\\tlabel {\\n\\t\\t\\tpadding: 12px 0;\\n\\t\\t}\\n\\t}\\n\\n\\t&--default {\\n\\t\\tgrid-column: span 2;\\n\\t}\\n\\n\\t&-warning {\\n\\t\\tcolor: var(--color-warning);\\n\\t}\\n}\\n\\n@media (max-width: math.div(1024px, 1.5)) {\\n\\t.theming__preview {\\n\\t\\tflex-direction: column;\\n\\n\\t\\t&-image {\\n\\t\\t\\tmargin: 0;\\n\\t\\t}\\n\\t}\\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, `.user-app-menu-order[data-v-ee0f3d1a]{margin-block:12px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/theming/src/components/UserAppMenuSection.vue\"],\"names\":[],\"mappings\":\"AACA,sCACC,iBAAA\",\"sourcesContent\":[\"\\n.user-app-menu-order {\\n\\tmargin-block: 12px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n}\n\nmodule.exports = baseFilter;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","var baseRest = require('./_baseRest'),\n eq = require('./eq'),\n isIterateeCall = require('./_isIterateeCall'),\n keysIn = require('./keysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\nvar defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n});\n\nmodule.exports = defaults;\n","var arrayFilter = require('./_arrayFilter'),\n baseFilter = require('./_baseFilter'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray');\n\n/**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\nfunction filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = filter;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar vibrant_1 = __importDefault(require(\"./vibrant\"));\nvar browser_1 = __importDefault(require(\"./image/browser\"));\nvibrant_1.default.DefaultOpts.ImageClass = browser_1.default;\nmodule.exports = vibrant_1.default;\n//# sourceMappingURL=browser.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar vibrant_1 = __importDefault(require(\"./vibrant\"));\nvar clone = require(\"lodash/clone\");\nvar Builder = /** @class */ (function () {\n function Builder(src, opts) {\n if (opts === void 0) { opts = {}; }\n this._src = src;\n this._opts = opts;\n this._opts.filters = clone(vibrant_1.default.DefaultOpts.filters);\n }\n Builder.prototype.maxColorCount = function (n) {\n this._opts.colorCount = n;\n return this;\n };\n Builder.prototype.maxDimension = function (d) {\n this._opts.maxDimension = d;\n return this;\n };\n Builder.prototype.addFilter = function (f) {\n this._opts.filters.push(f);\n return this;\n };\n Builder.prototype.removeFilter = function (f) {\n var i = this._opts.filters.indexOf(f);\n if (i > 0)\n this._opts.filters.splice(i);\n return this;\n };\n Builder.prototype.clearFilters = function () {\n this._opts.filters = [];\n return this;\n };\n Builder.prototype.quality = function (q) {\n this._opts.quality = q;\n return this;\n };\n Builder.prototype.useImageClass = function (imageClass) {\n this._opts.ImageClass = imageClass;\n return this;\n };\n Builder.prototype.useGenerator = function (generator) {\n this._opts.generator = generator;\n return this;\n };\n Builder.prototype.useQuantizer = function (quantizer) {\n this._opts.quantizer = quantizer;\n return this;\n };\n Builder.prototype.build = function () {\n return new vibrant_1.default(this._src, this._opts);\n };\n Builder.prototype.getPalette = function (cb) {\n return this.build().getPalette(cb);\n };\n Builder.prototype.getSwatches = function (cb) {\n return this.build().getPalette(cb);\n };\n return Builder;\n}());\nexports.default = Builder;\n//# sourceMappingURL=builder.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Swatch = void 0;\nvar util_1 = require(\"./util\");\nvar filter = require(\"lodash/filter\");\nvar Swatch = /** @class */ (function () {\n function Swatch(rgb, population) {\n this._rgb = rgb;\n this._population = population;\n }\n Swatch.applyFilter = function (colors, f) {\n return typeof f === 'function'\n ? filter(colors, function (_a) {\n var r = _a.r, g = _a.g, b = _a.b;\n return f(r, g, b, 255);\n })\n : colors;\n };\n Object.defineProperty(Swatch.prototype, \"r\", {\n get: function () { return this._rgb[0]; },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Swatch.prototype, \"g\", {\n get: function () { return this._rgb[1]; },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Swatch.prototype, \"b\", {\n get: function () { return this._rgb[2]; },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Swatch.prototype, \"rgb\", {\n get: function () { return this._rgb; },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Swatch.prototype, \"hsl\", {\n get: function () {\n if (!this._hsl) {\n var _a = this._rgb, r = _a[0], g = _a[1], b = _a[2];\n this._hsl = util_1.rgbToHsl(r, g, b);\n }\n return this._hsl;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Swatch.prototype, \"hex\", {\n get: function () {\n if (!this._hex) {\n var _a = this._rgb, r = _a[0], g = _a[1], b = _a[2];\n this._hex = util_1.rgbToHex(r, g, b);\n }\n return this._hex;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Swatch.prototype, \"population\", {\n get: function () { return this._population; },\n enumerable: false,\n configurable: true\n });\n Swatch.prototype.toJSON = function () {\n return {\n rgb: this.rgb,\n population: this.population\n };\n };\n // TODO: deprecate internally, use property instead\n Swatch.prototype.getRgb = function () { return this._rgb; };\n // TODO: deprecate internally, use property instead\n Swatch.prototype.getHsl = function () { return this.hsl; };\n // TODO: deprecate internally, use property instead\n Swatch.prototype.getPopulation = function () { return this._population; };\n // TODO: deprecate internally, use property instead\n Swatch.prototype.getHex = function () { return this.hex; };\n Swatch.prototype.getYiq = function () {\n if (!this._yiq) {\n var rgb = this._rgb;\n this._yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n }\n return this._yiq;\n };\n Object.defineProperty(Swatch.prototype, \"titleTextColor\", {\n get: function () {\n if (!this._titleTextColor) {\n this._titleTextColor = this.getYiq() < 200 ? '#fff' : '#000';\n }\n return this._titleTextColor;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Swatch.prototype, \"bodyTextColor\", {\n get: function () {\n if (!this._bodyTextColor) {\n this._bodyTextColor = this.getYiq() < 150 ? '#fff' : '#000';\n }\n return this._bodyTextColor;\n },\n enumerable: false,\n configurable: true\n });\n Swatch.prototype.getTitleTextColor = function () {\n return this.titleTextColor;\n };\n Swatch.prototype.getBodyTextColor = function () {\n return this.bodyTextColor;\n };\n return Swatch;\n}());\nexports.Swatch = Swatch;\n//# sourceMappingURL=color.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction defaultFilter(r, g, b, a) {\n return a >= 125 &&\n !(r > 250 && g > 250 && b > 250);\n}\nexports.default = defaultFilter;\n//# sourceMappingURL=default.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.combineFilters = void 0;\nvar default_1 = require(\"./default\");\nObject.defineProperty(exports, \"Default\", { enumerable: true, get: function () { return default_1.default; } });\nfunction combineFilters(filters) {\n // TODO: caching\n if (!Array.isArray(filters) || filters.length === 0)\n return null;\n return function (r, g, b, a) {\n if (a === 0)\n return false;\n for (var i = 0; i < filters.length; i++) {\n if (!filters[i](r, g, b, a))\n return false;\n }\n return true;\n };\n}\nexports.combineFilters = combineFilters;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar color_1 = require(\"../color\");\nvar util_1 = require(\"../util\");\nvar defaults = require(\"lodash/defaults\");\nvar DefaultOpts = {\n targetDarkLuma: 0.26,\n maxDarkLuma: 0.45,\n minLightLuma: 0.55,\n targetLightLuma: 0.74,\n minNormalLuma: 0.3,\n targetNormalLuma: 0.5,\n maxNormalLuma: 0.7,\n targetMutesSaturation: 0.3,\n maxMutesSaturation: 0.4,\n targetVibrantSaturation: 1.0,\n minVibrantSaturation: 0.35,\n weightSaturation: 3,\n weightLuma: 6.5,\n weightPopulation: 0.5\n};\nfunction _findMaxPopulation(swatches) {\n var p = 0;\n swatches.forEach(function (s) {\n p = Math.max(p, s.getPopulation());\n });\n return p;\n}\nfunction _isAlreadySelected(palette, s) {\n return palette.Vibrant === s ||\n palette.DarkVibrant === s ||\n palette.LightVibrant === s ||\n palette.Muted === s ||\n palette.DarkMuted === s ||\n palette.LightMuted === s;\n}\nfunction _createComparisonValue(saturation, targetSaturation, luma, targetLuma, population, maxPopulation, opts) {\n function weightedMean() {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i] = arguments[_i];\n }\n var sum = 0;\n var weightSum = 0;\n for (var i = 0; i < values.length; i += 2) {\n var value = values[i];\n var weight = values[i + 1];\n sum += value * weight;\n weightSum += weight;\n }\n return sum / weightSum;\n }\n function invertDiff(value, targetValue) {\n return 1 - Math.abs(value - targetValue);\n }\n return weightedMean(invertDiff(saturation, targetSaturation), opts.weightSaturation, invertDiff(luma, targetLuma), opts.weightLuma, population / maxPopulation, opts.weightPopulation);\n}\nfunction _findColorVariation(palette, swatches, maxPopulation, targetLuma, minLuma, maxLuma, targetSaturation, minSaturation, maxSaturation, opts) {\n var max = null;\n var maxValue = 0;\n swatches.forEach(function (swatch) {\n var _a = swatch.getHsl(), s = _a[1], l = _a[2];\n if (s >= minSaturation && s <= maxSaturation &&\n l >= minLuma && l <= maxLuma &&\n !_isAlreadySelected(palette, swatch)) {\n var value = _createComparisonValue(s, targetSaturation, l, targetLuma, swatch.getPopulation(), maxPopulation, opts);\n if (max === null || value > maxValue) {\n max = swatch;\n maxValue = value;\n }\n }\n });\n return max;\n}\nfunction _generateVariationColors(swatches, maxPopulation, opts) {\n var palette = {};\n // mVibrantSwatch = findColor(TARGET_NORMAL_LUMA, MIN_NORMAL_LUMA, MAX_NORMAL_LUMA,\n // TARGET_VIBRANT_SATURATION, MIN_VIBRANT_SATURATION, 1f);\n palette.Vibrant = _findColorVariation(palette, swatches, maxPopulation, opts.targetNormalLuma, opts.minNormalLuma, opts.maxNormalLuma, opts.targetVibrantSaturation, opts.minVibrantSaturation, 1, opts);\n // mLightVibrantSwatch = findColor(TARGET_LIGHT_LUMA, MIN_LIGHT_LUMA, 1f,\n // TARGET_VIBRANT_SATURATION, MIN_VIBRANT_SATURATION, 1f);\n palette.LightVibrant = _findColorVariation(palette, swatches, maxPopulation, opts.targetLightLuma, opts.minLightLuma, 1, opts.targetVibrantSaturation, opts.minVibrantSaturation, 1, opts);\n // mDarkVibrantSwatch = findColor(TARGET_DARK_LUMA, 0f, MAX_DARK_LUMA,\n // TARGET_VIBRANT_SATURATION, MIN_VIBRANT_SATURATION, 1f);\n palette.DarkVibrant = _findColorVariation(palette, swatches, maxPopulation, opts.targetDarkLuma, 0, opts.maxDarkLuma, opts.targetVibrantSaturation, opts.minVibrantSaturation, 1, opts);\n // mMutedSwatch = findColor(TARGET_NORMAL_LUMA, MIN_NORMAL_LUMA, MAX_NORMAL_LUMA,\n // TARGET_MUTED_SATURATION, 0f, MAX_MUTED_SATURATION);\n palette.Muted = _findColorVariation(palette, swatches, maxPopulation, opts.targetNormalLuma, opts.minNormalLuma, opts.maxNormalLuma, opts.targetMutesSaturation, 0, opts.maxMutesSaturation, opts);\n // mLightMutedColor = findColor(TARGET_LIGHT_LUMA, MIN_LIGHT_LUMA, 1f,\n // TARGET_MUTED_SATURATION, 0f, MAX_MUTED_SATURATION);\n palette.LightMuted = _findColorVariation(palette, swatches, maxPopulation, opts.targetLightLuma, opts.minLightLuma, 1, opts.targetMutesSaturation, 0, opts.maxMutesSaturation, opts);\n // mDarkMutedSwatch = findColor(TARGET_DARK_LUMA, 0f, MAX_DARK_LUMA,\n // TARGET_MUTED_SATURATION, 0f, MAX_MUTED_SATURATION);\n palette.DarkMuted = _findColorVariation(palette, swatches, maxPopulation, opts.targetDarkLuma, 0, opts.maxDarkLuma, opts.targetMutesSaturation, 0, opts.maxMutesSaturation, opts);\n return palette;\n}\nfunction _generateEmptySwatches(palette, maxPopulation, opts) {\n if (palette.Vibrant === null && palette.DarkVibrant === null && palette.LightVibrant === null) {\n if (palette.DarkVibrant === null && palette.DarkMuted !== null) {\n var _a = palette.DarkMuted.getHsl(), h = _a[0], s = _a[1], l = _a[2];\n l = opts.targetDarkLuma;\n palette.DarkVibrant = new color_1.Swatch(util_1.hslToRgb(h, s, l), 0);\n }\n if (palette.LightVibrant === null && palette.LightMuted !== null) {\n var _b = palette.LightMuted.getHsl(), h = _b[0], s = _b[1], l = _b[2];\n l = opts.targetDarkLuma;\n palette.DarkVibrant = new color_1.Swatch(util_1.hslToRgb(h, s, l), 0);\n }\n }\n if (palette.Vibrant === null && palette.DarkVibrant !== null) {\n var _c = palette.DarkVibrant.getHsl(), h = _c[0], s = _c[1], l = _c[2];\n l = opts.targetNormalLuma;\n palette.Vibrant = new color_1.Swatch(util_1.hslToRgb(h, s, l), 0);\n }\n else if (palette.Vibrant === null && palette.LightVibrant !== null) {\n var _d = palette.LightVibrant.getHsl(), h = _d[0], s = _d[1], l = _d[2];\n l = opts.targetNormalLuma;\n palette.Vibrant = new color_1.Swatch(util_1.hslToRgb(h, s, l), 0);\n }\n if (palette.DarkVibrant === null && palette.Vibrant !== null) {\n var _e = palette.Vibrant.getHsl(), h = _e[0], s = _e[1], l = _e[2];\n l = opts.targetDarkLuma;\n palette.DarkVibrant = new color_1.Swatch(util_1.hslToRgb(h, s, l), 0);\n }\n if (palette.LightVibrant === null && palette.Vibrant !== null) {\n var _f = palette.Vibrant.getHsl(), h = _f[0], s = _f[1], l = _f[2];\n l = opts.targetLightLuma;\n palette.LightVibrant = new color_1.Swatch(util_1.hslToRgb(h, s, l), 0);\n }\n if (palette.Muted === null && palette.Vibrant !== null) {\n var _g = palette.Vibrant.getHsl(), h = _g[0], s = _g[1], l = _g[2];\n l = opts.targetMutesSaturation;\n palette.Muted = new color_1.Swatch(util_1.hslToRgb(h, s, l), 0);\n }\n if (palette.DarkMuted === null && palette.DarkVibrant !== null) {\n var _h = palette.DarkVibrant.getHsl(), h = _h[0], s = _h[1], l = _h[2];\n l = opts.targetMutesSaturation;\n palette.DarkMuted = new color_1.Swatch(util_1.hslToRgb(h, s, l), 0);\n }\n if (palette.LightMuted === null && palette.LightVibrant !== null) {\n var _j = palette.LightVibrant.getHsl(), h = _j[0], s = _j[1], l = _j[2];\n l = opts.targetMutesSaturation;\n palette.LightMuted = new color_1.Swatch(util_1.hslToRgb(h, s, l), 0);\n }\n}\nvar DefaultGenerator = function (swatches, opts) {\n opts = defaults({}, opts, DefaultOpts);\n var maxPopulation = _findMaxPopulation(swatches);\n var palette = _generateVariationColors(swatches, maxPopulation, opts);\n _generateEmptySwatches(palette, maxPopulation, opts);\n return palette;\n};\nexports.default = DefaultGenerator;\n//# sourceMappingURL=default.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar default_1 = require(\"./default\");\nObject.defineProperty(exports, \"Default\", { enumerable: true, get: function () { return default_1.default; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ImageBase = void 0;\nvar ImageBase = /** @class */ (function () {\n function ImageBase() {\n }\n ImageBase.prototype.scaleDown = function (opts) {\n var width = this.getWidth();\n var height = this.getHeight();\n var ratio = 1;\n if (opts.maxDimension > 0) {\n var maxSide = Math.max(width, height);\n if (maxSide > opts.maxDimension)\n ratio = opts.maxDimension / maxSide;\n }\n else {\n ratio = 1 / opts.quality;\n }\n if (ratio < 1)\n this.resize(width * ratio, height * ratio, ratio);\n };\n ImageBase.prototype.applyFilter = function (filter) {\n var imageData = this.getImageData();\n if (typeof filter === 'function') {\n var pixels = imageData.data;\n var n = pixels.length / 4;\n var offset = void 0, r = void 0, g = void 0, b = void 0, a = void 0;\n for (var i = 0; i < n; i++) {\n offset = i * 4;\n r = pixels[offset + 0];\n g = pixels[offset + 1];\n b = pixels[offset + 2];\n a = pixels[offset + 3];\n // Mark ignored color\n if (!filter(r, g, b, a))\n pixels[offset + 3] = 0;\n }\n }\n return Promise.resolve(imageData);\n };\n return ImageBase;\n}());\nexports.ImageBase = ImageBase;\n//# sourceMappingURL=base.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar base_1 = require(\"./base\");\nvar Url = __importStar(require(\"url\"));\nfunction isRelativeUrl(url) {\n var u = Url.parse(url);\n return u.protocol === null &&\n u.host === null &&\n u.port === null;\n}\nfunction isSameOrigin(a, b) {\n var ua = Url.parse(a);\n var ub = Url.parse(b);\n // https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy\n return ua.protocol === ub.protocol &&\n ua.hostname === ub.hostname &&\n ua.port === ub.port;\n}\nvar BrowserImage = /** @class */ (function (_super) {\n __extends(BrowserImage, _super);\n function BrowserImage() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BrowserImage.prototype._initCanvas = function () {\n var img = this.image;\n var canvas = this._canvas = document.createElement('canvas');\n var context = this._context = canvas.getContext('2d');\n canvas.className = 'vibrant-canvas';\n canvas.style.display = 'none';\n this._width = canvas.width = img.width;\n this._height = canvas.height = img.height;\n context.drawImage(img, 0, 0);\n document.body.appendChild(canvas);\n };\n BrowserImage.prototype.load = function (image) {\n var _this = this;\n var img = null;\n var src = null;\n if (typeof image === 'string') {\n img = document.createElement('img');\n if (!isRelativeUrl(image) && !isSameOrigin(window.location.href, image)) {\n img.crossOrigin = 'anonymous';\n }\n src = img.src = image;\n }\n else if (image instanceof HTMLImageElement) {\n img = image;\n src = image.src;\n }\n else {\n return Promise.reject(new Error(\"Cannot load buffer as an image in browser\"));\n }\n this.image = img;\n return new Promise(function (resolve, reject) {\n var onImageLoad = function () {\n _this._initCanvas();\n resolve(_this);\n };\n if (img.complete) {\n // Already loaded\n onImageLoad();\n }\n else {\n img.onload = onImageLoad;\n img.onerror = function (e) { return reject(new Error(\"Fail to load image: \" + src)); };\n }\n });\n };\n BrowserImage.prototype.clear = function () {\n this._context.clearRect(0, 0, this._width, this._height);\n };\n BrowserImage.prototype.update = function (imageData) {\n this._context.putImageData(imageData, 0, 0);\n };\n BrowserImage.prototype.getWidth = function () {\n return this._width;\n };\n BrowserImage.prototype.getHeight = function () {\n return this._height;\n };\n BrowserImage.prototype.resize = function (targetWidth, targetHeight, ratio) {\n var _a = this, canvas = _a._canvas, context = _a._context, img = _a.image;\n this._width = canvas.width = targetWidth;\n this._height = canvas.height = targetHeight;\n context.scale(ratio, ratio);\n context.drawImage(img, 0, 0);\n };\n BrowserImage.prototype.getPixelCount = function () {\n return this._width * this._height;\n };\n BrowserImage.prototype.getImageData = function () {\n return this._context.getImageData(0, 0, this._width, this._height);\n };\n BrowserImage.prototype.remove = function () {\n if (this._canvas && this._canvas.parentNode) {\n this._canvas.parentNode.removeChild(this._canvas);\n }\n };\n return BrowserImage;\n}(base_1.ImageBase));\nexports.default = BrowserImage;\n//# sourceMappingURL=browser.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WebWorker = void 0;\nvar mmcq_1 = require(\"./mmcq\");\nObject.defineProperty(exports, \"MMCQ\", { enumerable: true, get: function () { return mmcq_1.default; } });\nexports.WebWorker = null;\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar color_1 = require(\"../color\");\nvar vbox_1 = __importDefault(require(\"./vbox\"));\nvar pqueue_1 = __importDefault(require(\"./pqueue\"));\nvar fractByPopulations = 0.75;\nfunction _splitBoxes(pq, target) {\n var lastSize = pq.size();\n while (pq.size() < target) {\n var vbox = pq.pop();\n if (vbox && vbox.count() > 0) {\n var _a = vbox.split(), vbox1 = _a[0], vbox2 = _a[1];\n pq.push(vbox1);\n if (vbox2 && vbox2.count() > 0)\n pq.push(vbox2);\n // No more new boxes, converged\n if (pq.size() === lastSize) {\n break;\n }\n else {\n lastSize = pq.size();\n }\n }\n else {\n break;\n }\n }\n}\nvar MMCQ = function (pixels, opts) {\n if (pixels.length === 0 || opts.colorCount < 2 || opts.colorCount > 256) {\n throw new Error('Wrong MMCQ parameters');\n }\n var vbox = vbox_1.default.build(pixels);\n var hist = vbox.hist;\n var colorCount = Object.keys(hist).length;\n var pq = new pqueue_1.default(function (a, b) { return a.count() - b.count(); });\n pq.push(vbox);\n // first set of colors, sorted by population\n _splitBoxes(pq, fractByPopulations * opts.colorCount);\n // Re-order\n var pq2 = new pqueue_1.default(function (a, b) { return a.count() * a.volume() - b.count() * b.volume(); });\n pq2.contents = pq.contents;\n // next set - generate the median cuts using the (npix * vol) sorting.\n _splitBoxes(pq2, opts.colorCount - pq2.size());\n // calculate the actual colors\n return generateSwatches(pq2);\n};\nfunction generateSwatches(pq) {\n var swatches = [];\n while (pq.size()) {\n var v = pq.pop();\n var color = v.avg();\n var r = color[0], g = color[1], b = color[2];\n swatches.push(new color_1.Swatch(color, v.count()));\n }\n return swatches;\n}\nexports.default = MMCQ;\n//# sourceMappingURL=mmcq.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar PQueue = /** @class */ (function () {\n function PQueue(comparator) {\n this._comparator = comparator;\n this.contents = [];\n this._sorted = false;\n }\n PQueue.prototype._sort = function () {\n if (!this._sorted) {\n this.contents.sort(this._comparator);\n this._sorted = true;\n }\n };\n PQueue.prototype.push = function (item) {\n this.contents.push(item);\n this._sorted = false;\n };\n PQueue.prototype.peek = function (index) {\n this._sort();\n index = typeof index === 'number' ? index : this.contents.length - 1;\n return this.contents[index];\n };\n PQueue.prototype.pop = function () {\n this._sort();\n return this.contents.pop();\n };\n PQueue.prototype.size = function () {\n return this.contents.length;\n };\n PQueue.prototype.map = function (mapper) {\n this._sort();\n return this.contents.map(mapper);\n };\n return PQueue;\n}());\nexports.default = PQueue;\n//# sourceMappingURL=pqueue.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar util_1 = require(\"../util\");\nvar VBox = /** @class */ (function () {\n function VBox(r1, r2, g1, g2, b1, b2, hist) {\n this._volume = -1;\n this._count = -1;\n this.dimension = { r1: r1, r2: r2, g1: g1, g2: g2, b1: b1, b2: b2 };\n this.hist = hist;\n }\n VBox.build = function (pixels, shouldIgnore) {\n var hn = 1 << (3 * util_1.SIGBITS);\n var hist = new Uint32Array(hn);\n var rmax;\n var rmin;\n var gmax;\n var gmin;\n var bmax;\n var bmin;\n var r;\n var g;\n var b;\n var a;\n rmax = gmax = bmax = 0;\n rmin = gmin = bmin = Number.MAX_VALUE;\n var n = pixels.length / 4;\n var i = 0;\n while (i < n) {\n var offset = i * 4;\n i++;\n r = pixels[offset + 0];\n g = pixels[offset + 1];\n b = pixels[offset + 2];\n a = pixels[offset + 3];\n // Ignored pixels' alpha is marked as 0 in filtering stage\n if (a === 0)\n continue;\n r = r >> util_1.RSHIFT;\n g = g >> util_1.RSHIFT;\n b = b >> util_1.RSHIFT;\n var index = util_1.getColorIndex(r, g, b);\n hist[index] += 1;\n if (r > rmax)\n rmax = r;\n if (r < rmin)\n rmin = r;\n if (g > gmax)\n gmax = g;\n if (g < gmin)\n gmin = g;\n if (b > bmax)\n bmax = b;\n if (b < bmin)\n bmin = b;\n }\n return new VBox(rmin, rmax, gmin, gmax, bmin, bmax, hist);\n };\n VBox.prototype.invalidate = function () {\n this._volume = this._count = -1;\n this._avg = null;\n };\n VBox.prototype.volume = function () {\n if (this._volume < 0) {\n var _a = this.dimension, r1 = _a.r1, r2 = _a.r2, g1 = _a.g1, g2 = _a.g2, b1 = _a.b1, b2 = _a.b2;\n this._volume = (r2 - r1 + 1) * (g2 - g1 + 1) * (b2 - b1 + 1);\n }\n return this._volume;\n };\n VBox.prototype.count = function () {\n if (this._count < 0) {\n var hist = this.hist;\n var _a = this.dimension, r1 = _a.r1, r2 = _a.r2, g1 = _a.g1, g2 = _a.g2, b1 = _a.b1, b2 = _a.b2;\n var c = 0;\n for (var r = r1; r <= r2; r++) {\n for (var g = g1; g <= g2; g++) {\n for (var b = b1; b <= b2; b++) {\n var index = util_1.getColorIndex(r, g, b);\n c += hist[index];\n }\n }\n }\n this._count = c;\n }\n return this._count;\n };\n VBox.prototype.clone = function () {\n var hist = this.hist;\n var _a = this.dimension, r1 = _a.r1, r2 = _a.r2, g1 = _a.g1, g2 = _a.g2, b1 = _a.b1, b2 = _a.b2;\n return new VBox(r1, r2, g1, g2, b1, b2, hist);\n };\n VBox.prototype.avg = function () {\n if (!this._avg) {\n var hist = this.hist;\n var _a = this.dimension, r1 = _a.r1, r2 = _a.r2, g1 = _a.g1, g2 = _a.g2, b1 = _a.b1, b2 = _a.b2;\n var ntot = 0;\n var mult = 1 << (8 - util_1.SIGBITS);\n var rsum = void 0;\n var gsum = void 0;\n var bsum = void 0;\n rsum = gsum = bsum = 0;\n for (var r = r1; r <= r2; r++) {\n for (var g = g1; g <= g2; g++) {\n for (var b = b1; b <= b2; b++) {\n var index = util_1.getColorIndex(r, g, b);\n var h = hist[index];\n ntot += h;\n rsum += (h * (r + 0.5) * mult);\n gsum += (h * (g + 0.5) * mult);\n bsum += (h * (b + 0.5) * mult);\n }\n }\n }\n if (ntot) {\n this._avg = [\n ~~(rsum / ntot),\n ~~(gsum / ntot),\n ~~(bsum / ntot)\n ];\n }\n else {\n this._avg = [\n ~~(mult * (r1 + r2 + 1) / 2),\n ~~(mult * (g1 + g2 + 1) / 2),\n ~~(mult * (b1 + b2 + 1) / 2)\n ];\n }\n }\n return this._avg;\n };\n VBox.prototype.contains = function (rgb) {\n var r = rgb[0], g = rgb[1], b = rgb[2];\n var _a = this.dimension, r1 = _a.r1, r2 = _a.r2, g1 = _a.g1, g2 = _a.g2, b1 = _a.b1, b2 = _a.b2;\n r >>= util_1.RSHIFT;\n g >>= util_1.RSHIFT;\n b >>= util_1.RSHIFT;\n return r >= r1 && r <= r2 &&\n g >= g1 && g <= g2 &&\n b >= b1 && b <= b2;\n };\n VBox.prototype.split = function () {\n var hist = this.hist;\n var _a = this.dimension, r1 = _a.r1, r2 = _a.r2, g1 = _a.g1, g2 = _a.g2, b1 = _a.b1, b2 = _a.b2;\n var count = this.count();\n if (!count)\n return [];\n if (count === 1)\n return [this.clone()];\n var rw = r2 - r1 + 1;\n var gw = g2 - g1 + 1;\n var bw = b2 - b1 + 1;\n var maxw = Math.max(rw, gw, bw);\n var accSum = null;\n var sum;\n var total;\n sum = total = 0;\n var maxd = null;\n if (maxw === rw) {\n maxd = 'r';\n accSum = new Uint32Array(r2 + 1);\n for (var r = r1; r <= r2; r++) {\n sum = 0;\n for (var g = g1; g <= g2; g++) {\n for (var b = b1; b <= b2; b++) {\n var index = util_1.getColorIndex(r, g, b);\n sum += hist[index];\n }\n }\n total += sum;\n accSum[r] = total;\n }\n }\n else if (maxw === gw) {\n maxd = 'g';\n accSum = new Uint32Array(g2 + 1);\n for (var g = g1; g <= g2; g++) {\n sum = 0;\n for (var r = r1; r <= r2; r++) {\n for (var b = b1; b <= b2; b++) {\n var index = util_1.getColorIndex(r, g, b);\n sum += hist[index];\n }\n }\n total += sum;\n accSum[g] = total;\n }\n }\n else {\n maxd = 'b';\n accSum = new Uint32Array(b2 + 1);\n for (var b = b1; b <= b2; b++) {\n sum = 0;\n for (var r = r1; r <= r2; r++) {\n for (var g = g1; g <= g2; g++) {\n var index = util_1.getColorIndex(r, g, b);\n sum += hist[index];\n }\n }\n total += sum;\n accSum[b] = total;\n }\n }\n var splitPoint = -1;\n var reverseSum = new Uint32Array(accSum.length);\n for (var i = 0; i < accSum.length; i++) {\n var d = accSum[i];\n if (splitPoint < 0 && d > total / 2)\n splitPoint = i;\n reverseSum[i] = total - d;\n }\n var vbox = this;\n function doCut(d) {\n var dim1 = d + '1';\n var dim2 = d + '2';\n var d1 = vbox.dimension[dim1];\n var d2 = vbox.dimension[dim2];\n var vbox1 = vbox.clone();\n var vbox2 = vbox.clone();\n var left = splitPoint - d1;\n var right = d2 - splitPoint;\n if (left <= right) {\n d2 = Math.min(d2 - 1, ~~(splitPoint + right / 2));\n d2 = Math.max(0, d2);\n }\n else {\n d2 = Math.max(d1, ~~(splitPoint - 1 - left / 2));\n d2 = Math.min(vbox.dimension[dim2], d2);\n }\n while (!accSum[d2])\n d2++;\n var c2 = reverseSum[d2];\n while (!c2 && accSum[d2 - 1])\n c2 = reverseSum[--d2];\n vbox1.dimension[dim2] = d2;\n vbox2.dimension[dim1] = d2 + 1;\n return [vbox1, vbox2];\n }\n return doCut(maxd);\n };\n return VBox;\n}());\nexports.default = VBox;\n//# sourceMappingURL=vbox.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getColorIndex = exports.getColorDiffStatus = exports.hexDiff = exports.rgbDiff = exports.deltaE94 = exports.rgbToCIELab = exports.xyzToCIELab = exports.rgbToXyz = exports.hslToRgb = exports.rgbToHsl = exports.rgbToHex = exports.hexToRgb = exports.defer = exports.RSHIFT = exports.SIGBITS = exports.DELTAE94_DIFF_STATUS = void 0;\nexports.DELTAE94_DIFF_STATUS = {\n NA: 0,\n PERFECT: 1,\n CLOSE: 2,\n GOOD: 10,\n SIMILAR: 50\n};\nexports.SIGBITS = 5;\nexports.RSHIFT = 8 - exports.SIGBITS;\nfunction defer() {\n var resolve;\n var reject;\n // eslint-disable-next-line promise/param-names\n var promise = new Promise(function (_resolve, _reject) {\n resolve = _resolve;\n reject = _reject;\n });\n // @ts-ignore\n return { resolve: resolve, reject: reject, promise: promise };\n}\nexports.defer = defer;\nfunction hexToRgb(hex) {\n var m = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n return m === null ? null : [m[1], m[2], m[3]].map(function (s) { return parseInt(s, 16); });\n}\nexports.hexToRgb = hexToRgb;\nfunction rgbToHex(r, g, b) {\n return '#' + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1, 7);\n}\nexports.rgbToHex = rgbToHex;\nfunction rgbToHsl(r, g, b) {\n r /= 255;\n g /= 255;\n b /= 255;\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h;\n var s;\n var l = (max + min) / 2;\n if (max === min) {\n h = s = 0;\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n // @ts-ignore\n h /= 6;\n }\n // @ts-ignore\n return [h, s, l];\n}\nexports.rgbToHsl = rgbToHsl;\nfunction hslToRgb(h, s, l) {\n var r;\n var g;\n var b;\n function hue2rgb(p, q, t) {\n if (t < 0)\n t += 1;\n if (t > 1)\n t -= 1;\n if (t < 1 / 6)\n return p + (q - p) * 6 * t;\n if (t < 1 / 2)\n return q;\n if (t < 2 / 3)\n return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n if (s === 0) {\n r = g = b = l;\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - (l * s);\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - (1 / 3));\n }\n return [\n r * 255,\n g * 255,\n b * 255\n ];\n}\nexports.hslToRgb = hslToRgb;\nfunction rgbToXyz(r, g, b) {\n r /= 255;\n g /= 255;\n b /= 255;\n r = r > 0.04045 ? Math.pow((r + 0.005) / 1.055, 2.4) : r / 12.92;\n g = g > 0.04045 ? Math.pow((g + 0.005) / 1.055, 2.4) : g / 12.92;\n b = b > 0.04045 ? Math.pow((b + 0.005) / 1.055, 2.4) : b / 12.92;\n r *= 100;\n g *= 100;\n b *= 100;\n var x = r * 0.4124 + g * 0.3576 + b * 0.1805;\n var y = r * 0.2126 + g * 0.7152 + b * 0.0722;\n var z = r * 0.0193 + g * 0.1192 + b * 0.9505;\n return [x, y, z];\n}\nexports.rgbToXyz = rgbToXyz;\nfunction xyzToCIELab(x, y, z) {\n var REF_X = 95.047;\n var REF_Y = 100;\n var REF_Z = 108.883;\n x /= REF_X;\n y /= REF_Y;\n z /= REF_Z;\n x = x > 0.008856 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116;\n y = y > 0.008856 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116;\n z = z > 0.008856 ? Math.pow(z, 1 / 3) : 7.787 * z + 16 / 116;\n var L = 116 * y - 16;\n var a = 500 * (x - y);\n var b = 200 * (y - z);\n return [L, a, b];\n}\nexports.xyzToCIELab = xyzToCIELab;\nfunction rgbToCIELab(r, g, b) {\n var _a = rgbToXyz(r, g, b), x = _a[0], y = _a[1], z = _a[2];\n return xyzToCIELab(x, y, z);\n}\nexports.rgbToCIELab = rgbToCIELab;\nfunction deltaE94(lab1, lab2) {\n var WEIGHT_L = 1;\n var WEIGHT_C = 1;\n var WEIGHT_H = 1;\n var L1 = lab1[0], a1 = lab1[1], b1 = lab1[2];\n var L2 = lab2[0], a2 = lab2[1], b2 = lab2[2];\n var dL = L1 - L2;\n var da = a1 - a2;\n var db = b1 - b2;\n var xC1 = Math.sqrt(a1 * a1 + b1 * b1);\n var xC2 = Math.sqrt(a2 * a2 + b2 * b2);\n var xDL = L2 - L1;\n var xDC = xC2 - xC1;\n var xDE = Math.sqrt(dL * dL + da * da + db * db);\n var xDH = (Math.sqrt(xDE) > Math.sqrt(Math.abs(xDL)) + Math.sqrt(Math.abs(xDC)))\n ? Math.sqrt(xDE * xDE - xDL * xDL - xDC * xDC)\n : 0;\n var xSC = 1 + 0.045 * xC1;\n var xSH = 1 + 0.015 * xC1;\n xDL /= WEIGHT_L;\n xDC /= WEIGHT_C * xSC;\n xDH /= WEIGHT_H * xSH;\n return Math.sqrt(xDL * xDL + xDC * xDC + xDH * xDH);\n}\nexports.deltaE94 = deltaE94;\nfunction rgbDiff(rgb1, rgb2) {\n var lab1 = rgbToCIELab.apply(undefined, rgb1);\n var lab2 = rgbToCIELab.apply(undefined, rgb2);\n return deltaE94(lab1, lab2);\n}\nexports.rgbDiff = rgbDiff;\nfunction hexDiff(hex1, hex2) {\n var rgb1 = hexToRgb(hex1);\n var rgb2 = hexToRgb(hex2);\n return rgbDiff(rgb1, rgb2);\n}\nexports.hexDiff = hexDiff;\nfunction getColorDiffStatus(d) {\n if (d < exports.DELTAE94_DIFF_STATUS.NA) {\n return 'N/A';\n }\n // Not perceptible by human eyes\n if (d <= exports.DELTAE94_DIFF_STATUS.PERFECT) {\n return 'Perfect';\n }\n // Perceptible through close observation\n if (d <= exports.DELTAE94_DIFF_STATUS.CLOSE) {\n return 'Close';\n }\n // Perceptible at a glance\n if (d <= exports.DELTAE94_DIFF_STATUS.GOOD) {\n return 'Good';\n }\n // Colors are more similar than opposite\n if (d < exports.DELTAE94_DIFF_STATUS.SIMILAR) {\n return 'Similar';\n }\n return 'Wrong';\n}\nexports.getColorDiffStatus = getColorDiffStatus;\nfunction getColorIndex(r, g, b) {\n return (r << (2 * exports.SIGBITS)) + (g << exports.SIGBITS) + b;\n}\nexports.getColorIndex = getColorIndex;\n//# sourceMappingURL=util.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar color_1 = require(\"./color\");\nvar builder_1 = __importDefault(require(\"./builder\"));\nvar Util = __importStar(require(\"./util\"));\nvar Quantizer = __importStar(require(\"./quantizer\"));\nvar Generator = __importStar(require(\"./generator\"));\nvar Filters = __importStar(require(\"./filter\"));\nvar defaults = require(\"lodash/defaults\");\nvar Vibrant = /** @class */ (function () {\n function Vibrant(_src, opts) {\n this._src = _src;\n this.opts = defaults({}, opts, Vibrant.DefaultOpts);\n this.opts.combinedFilter = Filters.combineFilters(this.opts.filters);\n }\n Vibrant.from = function (src) {\n return new builder_1.default(src);\n };\n Vibrant.prototype._process = function (image, opts) {\n var quantizer = opts.quantizer, generator = opts.generator;\n image.scaleDown(opts);\n return image.applyFilter(opts.combinedFilter)\n .then(function (imageData) { return quantizer(imageData.data, opts); })\n .then(function (colors) { return color_1.Swatch.applyFilter(colors, opts.combinedFilter); })\n .then(function (colors) { return Promise.resolve(generator(colors)); });\n };\n Vibrant.prototype.palette = function () {\n return this.swatches();\n };\n Vibrant.prototype.swatches = function () {\n return this._palette;\n };\n Vibrant.prototype.getPalette = function (cb) {\n var _this = this;\n var image = new this.opts.ImageClass();\n var result = image.load(this._src)\n .then(function (image) { return _this._process(image, _this.opts); })\n .then(function (palette) {\n _this._palette = palette;\n image.remove();\n return palette;\n }, function (err) {\n image.remove();\n throw err;\n });\n if (cb)\n result.then(function (palette) { return cb(null, palette); }, function (err) { return cb(err); });\n return result;\n };\n Vibrant.Builder = builder_1.default;\n Vibrant.Quantizer = Quantizer;\n Vibrant.Generator = Generator;\n Vibrant.Filter = Filters;\n Vibrant.Util = Util;\n Vibrant.Swatch = color_1.Swatch;\n Vibrant.DefaultOpts = {\n colorCount: 64,\n quality: 5,\n generator: Generator.Default,\n ImageClass: null,\n quantizer: Quantizer.MMCQ,\n filters: [Filters.Default]\n };\n return Vibrant;\n}());\nexports.default = Vibrant;\n//# sourceMappingURL=vibrant.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};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"1215\":\"dd1ef4c4cc807022e660\",\"5076\":\"15b21454a9691213632e\"}[chunkId] + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__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 = 1474;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && !scriptUrl) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = 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\t1474: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\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 = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\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 = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\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, [7874], () => (__webpack_require__(30923)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","name","emits","props","title","type","String","fillColor","default","size","Number","_vm","this","_c","_self","_b","staticClass","attrs","on","$event","$emit","$attrs","_v","_s","_e","backgroundImage","loadState","shippedBackgroundList","themingDefaultBackground","defaultShippedBackground","prefixWithBaseUrl","url","generateFilePath","components","Check","Close","ImageEdit","NcColorPicker","data","loading","Theming","computed","shippedBackgrounds","Object","keys","map","fileName","preview","details","filter","background","isGlobalBackgroundDeleted","isGlobalBackgroundDefault","isBackgroundDisabled","methods","invertTextColor","color","calculateLuma","red","green","blue","hexToRGB","hex","result","exec","parseInt","update","backgroundColor","setDefault","axios","post","generateUrl","setShipped","shipped","value","setFile","path","arguments","length","undefined","removeBackground","delete","pickColor","event","target","dataset","debouncePickColor","debounce","pickFile","getFilePickerBuilder","t","allowDirectories","setMimeTypeFilter","setMultiSelect","addButton","id","label","callback","nodes","applyFile","build","pick","trim","console","error","showError","response","fileUrl","generateRemoteUrl","getCurrentUser","uid","get","responseType","blobUrl","URL","createObjectURL","palette","getColorPaletteFromBlob","DarkVibrant","debug","Promise","resolve","reject","Vibrant","getPalette","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","class","style","defaultColor","model","$$v","$set","expression","_l","shippedBackground","key","primary_color","attribution","description","theming","NcCheckboxRadioSwitch","enforced","Boolean","selected","theme","required","unique","switchType","img","checked","set","enabled","onToggle","enableLabel","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperty","defineProperty","enumerable","configurable","writable","_extends","assign","i","source","hasOwnProperty","call","apply","_objectSpread","ownKeys","getOwnPropertySymbols","concat","sym","getOwnPropertyDescriptor","forEach","userAgent","pattern","window","navigator","match","IE11OrLess","Edge","FireFox","Safari","IOS","ChromeForAndroid","captureMode","capture","passive","el","fn","addEventListener","off","removeEventListener","matches","selector","substring","msMatchesSelector","webkitMatchesSelector","_","getParentOrHost","host","document","nodeType","parentNode","closest","ctx","includeCTX","_throttleTimeout","R_SPACE","toggleClass","state","classList","className","replace","css","prop","val","defaultView","getComputedStyle","currentStyle","indexOf","matrix","selfOnly","appliedTransforms","transform","matrixFn","DOMMatrix","WebKitCSSMatrix","CSSMatrix","MSCSSMatrix","find","tagName","list","getElementsByTagName","n","getWindowScrollingElement","scrollingElement","documentElement","getRect","relativeToContainingBlock","relativeToNonStaticParent","undoScale","container","getBoundingClientRect","elRect","top","left","bottom","right","height","width","innerHeight","innerWidth","containerRect","elMatrix","scaleX","a","scaleY","d","isScrolledPast","elSide","parentSide","parent","getParentAutoScrollElement","elSideVal","parentSideVal","getChild","childNum","currentChild","children","display","Sortable","ghost","dragged","draggable","lastChild","last","lastElementChild","previousElementSibling","index","nodeName","toUpperCase","clone","getRelativeScrollOffset","offsetLeft","offsetTop","winScroller","scrollLeft","scrollTop","includeSelf","elem","gotSelf","clientWidth","scrollWidth","clientHeight","scrollHeight","elemCSS","overflowX","overflowY","body","isRectEqual","rect1","rect2","Math","round","throttle","ms","args","setTimeout","scrollBy","x","y","Polymer","$","jQuery","Zepto","dom","cloneNode","expando","Date","getTime","plugins","defaults","initializeByDefault","PluginManager","mount","plugin","option","push","pluginEvent","eventName","sortable","evt","_this","eventCanceled","cancel","eventNameGlobal","pluginName","initializePlugins","initialized","modified","modifyOption","getEventProperties","eventProperties","modifiedValue","optionListeners","_ref","originalEvent","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_objectWithoutProperties","bind","dragEl","parentEl","ghostEl","rootEl","nextEl","lastDownEl","cloneEl","cloneHidden","dragStarted","moved","putSortable","activeSortable","active","oldIndex","oldDraggableIndex","newIndex","newDraggableIndex","hideGhostForTarget","_hideGhostForTarget","unhideGhostForTarget","_unhideGhostForTarget","cloneNowHidden","cloneNowShown","dispatchSortableEvent","_dispatchEvent","info","targetEl","toEl","fromEl","extraEventProperties","onName","charAt","substr","CustomEvent","createEvent","initEvent","bubbles","cancelable","to","from","item","pullMode","lastPutMode","allEventProperties","dispatchEvent","activeGroup","tapEvt","touchEvt","lastDx","lastDy","tapDistanceLeft","tapDistanceTop","lastTarget","lastDirection","targetMoveDistance","ghostRelativeParent","awaitingDragStarted","ignoreNextClick","sortables","pastFirstInvertThresh","isCircumstantialInvert","ghostRelativeParentInitialScroll","_silent","savedInputChecked","documentExists","PositionGhostAbsolutely","CSSFloatProperty","supportDraggable","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","rect","threshold","emptyInsertThreshold","insideHorizontally","insideVertically","ret","_onDragOver","_checkOutsideTargetEl","_isOutsideThisEl","toString","animationCallbackId","animationStates","sort","disabled","store","handle","test","swapThreshold","invertSwap","invertedSwapThreshold","removeCloneOnHide","direction","ghostClass","chosenClass","dragClass","ignore","preventOnFilter","animation","easing","setData","dataTransfer","textContent","dropBubble","dragoverBubble","dataIdAttr","delay","delayOnTouchOnly","touchStartThreshold","devicePixelRatio","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","nativeDraggable","_onTapStart","captureAnimationState","slice","child","fromRect","thisAnimationDuration","childMatrix","f","e","addAnimationState","removeAnimationState","splice","arr","indexOfObject","animateAll","clearTimeout","animating","animationTime","time","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","src","href","sum","charCodeAt","_nextTick","_cancelNextTick","contains","_getDirection","touch","pointerType","originalTarget","shadowRoot","composedPath","root","inputs","idx","_saveInputCheckedState","button","isContentEditable","criteria","_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","b","c","cssMatrix","appendChild","_hideClone","cloneId","insertBefore","_loopId","setInterval","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","items","destroy","Array","querySelectorAll","removeAttribute","utils","is","extend","dst","nextTick","cancelNextTick","detectDirection","element","_len","_key","create","version","scrollEl","scrollRootEl","lastAutoScrollX","lastAutoScrollY","touchEvt$1","pointerElemChangedInterval","autoScrolls","scrolling","clearAutoScrolls","autoScroll","pid","clearPointerElemChangedInterval","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","startIndex","dragStart","_ref2","_ref3","_ref4","parentSortable","AutoScroll","_handleAutoScroll","_handleFallbackAutoScroll","dragOverCompleted","dragOverBubble","nulling","ogElemScroller","newElem","util","warn","defineComponent","IconArrowDown","IconArrowUp","NcButton","ariaDescribedby","ariaDetails","app","isFirst","isLast","move:up","move:down","update:focus","setup","emit","buttonUp","ref","buttonDown","needsFocus","moveUp","moveDown","keepFocus","$el","focus","_setupProxy","icon","directives","rawName","scopedSlots","_u","proxy","AppOrderSelectorElement","Fragment","isArray","listElement","appList","newValue","renderCount","resetOptions","defaultOptions","onUpdate","_valueIsRef","isRef","array","moveArrayElement","start","querySelector","stop","useSortable","selectorElements","onUpdated","statusInfo","before","statusInfoId","random","updateStatusInfo","position","total","_g","refInFor","AppOrderSelector","IconUndo","NcNoteCard","NcSettingsSection","userAppOrder","enforcedDefaultApp","initialAppOrder","values","hasCustomAppOrder","hasAppOrderChanged","appOrder","elementIdAppOrderChanged","elementIdEnforcedDefaultApp","ariaDetailsAppOrder","saveSetting","generateOcsUrl","appId","configKey","configValue","JSON","stringify","updateAppOrder","then","catch","resetAppOrder","headers","ocs","availableThemes","enforceTheme","shortcutsDisabled","isUserThemingDisabled","ItemPreview","BackgroundSettings","UserAppMenuSection","themes","fonts","selectedTheme","guidelinesLink","descriptionDetail","issuetrackerLink","designteamLink","watch","newState","changeShortcutsDisabled","refreshGlobalStyles","head","searchParams","now","newTheme","onload","remove","append","updateBackground","changeTheme","updateBodyAttributes","selectItem","changeFont","font","method","enabledThemesIDs","enabledFontsIDs","toggleAttribute","setAttribute","themeId","OC","Notification","showTemporary","meta","message","domProps","__webpack_nonce__","btoa","getRequestToken","Vue","App","$mount","$on","refreshStyles","___CSS_LOADER_EXPORT___","module","baseForOwn","baseEach","createBaseEach","exports","collection","predicate","baseFor","object","iteratee","isArrayLike","eachFunc","fromRight","iterable","baseRest","eq","isIterateeCall","keysIn","objectProto","sources","guard","propsIndex","propsLength","arrayFilter","baseFilter","baseIteratee","__importDefault","mod","__esModule","vibrant_1","browser_1","DefaultOpts","ImageClass","Builder","opts","_src","_opts","filters","maxColorCount","colorCount","maxDimension","addFilter","removeFilter","clearFilters","quality","q","useImageClass","imageClass","useGenerator","generator","useQuantizer","quantizer","cb","getSwatches","Swatch","util_1","rgb","population","_rgb","_population","applyFilter","colors","_a","r","g","_hsl","rgbToHsl","_hex","rgbToHex","toJSON","getRgb","getHsl","hsl","getPopulation","getHex","getYiq","_yiq","_titleTextColor","_bodyTextColor","getTitleTextColor","titleTextColor","getBodyTextColor","bodyTextColor","combineFilters","default_1","color_1","targetDarkLuma","maxDarkLuma","minLightLuma","targetLightLuma","minNormalLuma","targetNormalLuma","maxNormalLuma","targetMutesSaturation","maxMutesSaturation","targetVibrantSaturation","minVibrantSaturation","weightSaturation","weightLuma","weightPopulation","_findColorVariation","swatches","maxPopulation","targetLuma","minLuma","maxLuma","targetSaturation","minSaturation","maxSaturation","maxValue","swatch","s","l","LightVibrant","Muted","DarkMuted","LightMuted","_isAlreadySelected","saturation","luma","invertDiff","targetValue","_i","weightSum","weight","weightedMean","_createComparisonValue","p","_findMaxPopulation","_generateVariationColors","h","hslToRgb","_d","_f","_h","_j","_generateEmptySwatches","ImageBase","scaleDown","getWidth","getHeight","ratio","maxSide","resize","imageData","getImageData","pixels","offset","extendStatics","__extends","setPrototypeOf","__proto__","__","__createBinding","o","m","k","k2","__setModuleDefault","v","__importStar","base_1","Url","BrowserImage","_super","_initCanvas","image","canvas","_canvas","context","_context","getContext","_width","_height","drawImage","load","ua","ub","u","parse","protocol","port","location","hostname","crossOrigin","HTMLImageElement","Error","onImageLoad","complete","onerror","clearRect","putImageData","targetWidth","targetHeight","scale","getPixelCount","WebWorker","mmcq_1","vbox_1","pqueue_1","_splitBoxes","pq","lastSize","vbox","pop","count","vbox1","vbox2","hist","pq2","volume","contents","avg","generateSwatches","PQueue","comparator","_comparator","_sorted","_sort","peek","mapper","VBox","r1","r2","g1","g2","b1","b2","_volume","_count","dimension","shouldIgnore","rmax","rmin","gmax","gmin","bmax","bmin","hn","SIGBITS","Uint32Array","MAX_VALUE","RSHIFT","getColorIndex","invalidate","_avg","ntot","mult","rsum","gsum","bsum","rw","gw","bw","maxw","accSum","maxd","splitPoint","reverseSum","dim1","dim2","d1","d2","min","c2","doCut","hexToRgb","rgbToXyz","xyzToCIELab","z","rgbToCIELab","deltaE94","lab1","lab2","L1","a1","L2","a2","dL","da","db","xC1","xDL","xDC","xDE","xDH","rgbDiff","rgb1","rgb2","getColorDiffStatus","hexDiff","defer","DELTAE94_DIFF_STATUS","NA","PERFECT","CLOSE","GOOD","SIMILAR","promise","_resolve","_reject","hue2rgb","hex1","hex2","builder_1","Util","Quantizer","Generator","Filters","combinedFilter","_process","_palette","Filter","Default","MMCQ","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","every","getter","definition","chunkId","all","reduce","promises","globalThis","Function","done","script","needAttach","scripts","charset","timeout","nc","onScriptComplete","prev","doneFns","toStringTag","nmd","paths","scriptUrl","importScripts","currentScript","baseURI","self","installedChunks","installedChunkData","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"theming-personal-theming.js?v=1452be6f148ee5063ecd","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/node_modules/vue-material-design-icons/ImageEdit.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/ImageEdit.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/ImageEdit.vue?e9bd","webpack:///nextcloud/node_modules/vue-material-design-icons/ImageEdit.vue?vue&type=template&id=7bb2aa9c","webpack:///nextcloud/apps/theming/src/components/BackgroundSettings.vue","webpack:///nextcloud/apps/theming/src/components/BackgroundSettings.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/theming/src/components/BackgroundSettings.vue?0f9a","webpack://nextcloud/./apps/theming/src/components/BackgroundSettings.vue?65db","webpack://nextcloud/./apps/theming/src/components/BackgroundSettings.vue?da76","webpack://nextcloud/./apps/theming/src/components/ItemPreview.vue?7631","webpack:///nextcloud/apps/theming/src/components/ItemPreview.vue","webpack:///nextcloud/apps/theming/src/components/ItemPreview.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/theming/src/components/ItemPreview.vue?69ad","webpack://nextcloud/./apps/theming/src/components/ItemPreview.vue?8797","webpack:///nextcloud/apps/theming/src/components/UserAppMenuSection.vue","webpack:///nextcloud/node_modules/sortablejs/modular/sortable.esm.js","webpack:///nextcloud/node_modules/@vueuse/integrations/node_modules/vue-demi/lib/index.mjs","webpack:///nextcloud/apps/theming/src/components/AppOrderSelectorElement.vue","webpack:///nextcloud/apps/theming/src/components/AppOrderSelectorElement.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/theming/src/components/AppOrderSelectorElement.vue?649a","webpack://nextcloud/./apps/theming/src/components/AppOrderSelectorElement.vue?aad4","webpack:///nextcloud/apps/theming/src/components/AppOrderSelector.vue","webpack:///nextcloud/node_modules/@vueuse/integrations/useSortable.mjs","webpack:///nextcloud/apps/theming/src/components/AppOrderSelector.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/theming/src/components/AppOrderSelector.vue?96a5","webpack://nextcloud/./apps/theming/src/components/AppOrderSelector.vue?dbd7","webpack:///nextcloud/node_modules/vue-material-design-icons/Undo.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Undo.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/Undo.vue?d998","webpack:///nextcloud/node_modules/vue-material-design-icons/Undo.vue?vue&type=template&id=bc8e3c2a","webpack:///nextcloud/apps/theming/src/components/UserAppMenuSection.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/theming/src/components/UserAppMenuSection.vue?fab3","webpack://nextcloud/./apps/theming/src/components/UserAppMenuSection.vue?402e","webpack:///nextcloud/apps/theming/src/UserThemes.vue","webpack:///nextcloud/apps/theming/src/UserThemes.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/theming/src/UserThemes.vue?6be3","webpack://nextcloud/./apps/theming/src/UserThemes.vue?7eb2","webpack://nextcloud/./apps/theming/src/UserThemes.vue?b683","webpack:///nextcloud/apps/theming/src/personal-settings.js","webpack:///nextcloud/apps/theming/src/helpers/refreshStyles.js","webpack:///nextcloud/apps/theming/src/UserThemes.vue?vue&type=style&index=0&id=d643b9e0&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/theming/src/components/AppOrderSelector.vue?vue&type=style&index=0&id=35797e31&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/theming/src/components/AppOrderSelectorElement.vue?vue&type=style&index=0&id=081ebc45&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/theming/src/components/BackgroundSettings.vue?vue&type=style&index=0&id=1175e65a&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/theming/src/components/ItemPreview.vue?vue&type=style&index=0&id=1a08e35a&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/theming/src/components/UserAppMenuSection.vue?vue&type=style&index=0&id=ee0f3d1a&prod&scoped=true&lang=scss","webpack:///nextcloud/node_modules/lodash/_baseEach.js","webpack:///nextcloud/node_modules/lodash/_baseFilter.js","webpack:///nextcloud/node_modules/lodash/_baseForOwn.js","webpack:///nextcloud/node_modules/lodash/_createBaseEach.js","webpack:///nextcloud/node_modules/lodash/defaults.js","webpack:///nextcloud/node_modules/lodash/filter.js","webpack:///nextcloud/node_modules/node-vibrant/lib/browser.js","webpack:///nextcloud/node_modules/node-vibrant/lib/builder.js","webpack:///nextcloud/node_modules/node-vibrant/lib/color.js","webpack:///nextcloud/node_modules/node-vibrant/lib/filter/default.js","webpack:///nextcloud/node_modules/node-vibrant/lib/filter/index.js","webpack:///nextcloud/node_modules/node-vibrant/lib/generator/default.js","webpack:///nextcloud/node_modules/node-vibrant/lib/generator/index.js","webpack:///nextcloud/node_modules/node-vibrant/lib/image/base.js","webpack:///nextcloud/node_modules/node-vibrant/lib/image/browser.js","webpack:///nextcloud/node_modules/node-vibrant/lib/quantizer/index.js","webpack:///nextcloud/node_modules/node-vibrant/lib/quantizer/mmcq.js","webpack:///nextcloud/node_modules/node-vibrant/lib/quantizer/pqueue.js","webpack:///nextcloud/node_modules/node-vibrant/lib/quantizer/vbox.js","webpack:///nextcloud/node_modules/node-vibrant/lib/util.js","webpack:///nextcloud/node_modules/node-vibrant/lib/vibrant.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/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","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/publicPath","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 = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\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};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ImageEdit.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ImageEdit.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ImageEdit.vue?vue&type=template&id=7bb2aa9c\"\nimport script from \"./ImageEdit.vue?vue&type=script&lang=js\"\nexport * from \"./ImageEdit.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 image-edit-icon\",attrs:{\"aria-hidden\":!_vm.title,\"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\":\"M22.7 14.3L21.7 15.3L19.7 13.3L20.7 12.3C20.8 12.2 20.9 12.1 21.1 12.1C21.2 12.1 21.4 12.2 21.5 12.3L22.8 13.6C22.9 13.8 22.9 14.1 22.7 14.3M13 19.9V22H15.1L21.2 15.9L19.2 13.9L13 19.9M21 5C21 3.9 20.1 3 19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H11V19.1L12.1 18H5L8.5 13.5L11 16.5L14.5 12L16.1 14.1L21 9.1V5Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./BackgroundSettings.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!./BackgroundSettings.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!./BackgroundSettings.vue?vue&type=style&index=0&id=1175e65a&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \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!./BackgroundSettings.vue?vue&type=style&index=0&id=1175e65a&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./BackgroundSettings.vue?vue&type=template&id=1175e65a&scoped=true\"\nimport script from \"./BackgroundSettings.vue?vue&type=script&lang=js\"\nexport * from \"./BackgroundSettings.vue?vue&type=script&lang=js\"\nimport style0 from \"./BackgroundSettings.vue?vue&type=style&index=0&id=1175e65a&prod&scoped=true&lang=scss\"\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 \"1175e65a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"background-selector\",attrs:{\"data-user-theming-background-settings\":\"\"}},[_c('button',{class:{\n\t\t\t'icon-loading': _vm.loading === 'custom',\n\t\t\t'background background__filepicker': true,\n\t\t\t'background--active': _vm.backgroundImage === 'custom'\n\t\t},attrs:{\"aria-pressed\":_vm.backgroundImage === 'custom',\"data-color-bright\":_vm.invertTextColor(_vm.Theming.color),\"data-user-theming-background-custom\":\"\",\"tabindex\":\"0\"},on:{\"click\":_vm.pickFile}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('theming', 'Custom background'))+\"\\n\\t\\t\"),(_vm.backgroundImage !== 'custom')?_c('ImageEdit',{attrs:{\"size\":26}}):_vm._e(),_vm._v(\" \"),_c('Check',{attrs:{\"size\":44}})],1),_vm._v(\" \"),_c('button',{class:{\n\t\t\t'icon-loading': _vm.loading === 'default',\n\t\t\t'background background__default': true,\n\t\t\t'background--active': _vm.backgroundImage === 'default'\n\t\t},style:({ '--border-color': _vm.Theming.defaultColor }),attrs:{\"aria-pressed\":_vm.backgroundImage === 'default',\"data-color-bright\":_vm.invertTextColor(_vm.Theming.defaultColor),\"data-user-theming-background-default\":\"\",\"tabindex\":\"0\"},on:{\"click\":_vm.setDefault}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('theming', 'Default background'))+\"\\n\\t\\t\"),_c('Check',{attrs:{\"size\":44}})],1),_vm._v(\" \"),_c('div',{staticClass:\"background-color\",attrs:{\"data-user-theming-background-color\":\"\"}},[_c('NcColorPicker',{on:{\"input\":_vm.debouncePickColor},model:{value:(_vm.Theming.color),callback:function ($$v) {_vm.$set(_vm.Theming, \"color\", $$v)},expression:\"Theming.color\"}},[_c('NcButton',{attrs:{\"type\":\"ternary\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('theming', 'Change color'))+\"\\n\\t\\t\\t\")])],1)],1),_vm._v(\" \"),_c('button',{class:{\n\t\t\t'background background__delete': true,\n\t\t\t'background--active': _vm.isBackgroundDisabled\n\t\t},attrs:{\"aria-pressed\":_vm.isBackgroundDisabled,\"data-user-theming-background-clear\":\"\",\"tabindex\":\"0\"},on:{\"click\":_vm.removeBackground}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('theming', 'No background'))+\"\\n\\t\\t\"),(!_vm.isBackgroundDisabled)?_c('Close',{attrs:{\"size\":32}}):_vm._e(),_vm._v(\" \"),_c('Check',{attrs:{\"size\":44}})],1),_vm._v(\" \"),_vm._l((_vm.shippedBackgrounds),function(shippedBackground){return _c('button',{key:shippedBackground.name,class:{\n\t\t\t'background background__shipped': true,\n\t\t\t'icon-loading': _vm.loading === shippedBackground.name,\n\t\t\t'background--active': _vm.backgroundImage === shippedBackground.name\n\t\t},style:({ backgroundImage: 'url(' + shippedBackground.preview + ')', '--border-color': shippedBackground.details.primary_color }),attrs:{\"title\":shippedBackground.details.attribution,\"aria-label\":shippedBackground.details.description,\"aria-pressed\":_vm.backgroundImage === shippedBackground.name,\"data-color-bright\":shippedBackground.details.theming === 'dark',\"data-user-theming-background-shipped\":shippedBackground.name,\"tabindex\":\"0\"},on:{\"click\":function($event){return _vm.setShipped(shippedBackground.name)}}},[_c('Check',{attrs:{\"size\":44}})],1)})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"theming__preview\",class:'theming__preview--' + _vm.theme.id},[_c('div',{staticClass:\"theming__preview-image\",style:({ backgroundImage: 'url(' + _vm.img + ')' }),on:{\"click\":_vm.onToggle}}),_vm._v(\" \"),_c('div',{staticClass:\"theming__preview-description\"},[_c('h3',[_vm._v(_vm._s(_vm.theme.title))]),_vm._v(\" \"),_c('p',{staticClass:\"theming__preview-explanation\"},[_vm._v(_vm._s(_vm.theme.description))]),_vm._v(\" \"),(_vm.enforced)?_c('span',{staticClass:\"theming__preview-warning\",attrs:{\"role\":\"note\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('theming', 'Theme selection is enforced'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{staticClass:\"theming__preview-toggle\",attrs:{\"checked\":_vm.checked,\"disabled\":_vm.enforced,\"name\":_vm.name,\"type\":_vm.switchType},on:{\"update:checked\":function($event){_vm.checked=$event}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.theme.enableLabel)+\"\\n\\t\\t\")])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ItemPreview.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!./ItemPreview.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!./ItemPreview.vue?vue&type=style&index=0&id=1a08e35a&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \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!./ItemPreview.vue?vue&type=style&index=0&id=1a08e35a&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ItemPreview.vue?vue&type=template&id=1a08e35a&scoped=true\"\nimport script from \"./ItemPreview.vue?vue&type=script&lang=js\"\nexport * from \"./ItemPreview.vue?vue&type=script&lang=js\"\nimport style0 from \"./ItemPreview.vue?vue&type=style&index=0&id=1a08e35a&prod&lang=scss&scoped=true\"\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 \"1a08e35a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcSettingsSection',{attrs:{\"name\":_vm.t('theming', 'Navigation bar settings')}},[_c('p',[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('theming', 'You can configure the app order used for the navigation bar. The first entry will be the default app, opened after login or when clicking on the logo.'))+\"\\n\\t\")]),_vm._v(\" \"),(_vm.enforcedDefaultApp)?_c('NcNoteCard',{attrs:{\"id\":_vm.elementIdEnforcedDefaultApp,\"type\":\"info\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('theming', 'The default app can not be changed because it was configured by the administrator.'))+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.hasAppOrderChanged)?_c('NcNoteCard',{attrs:{\"id\":_vm.elementIdAppOrderChanged,\"type\":\"info\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('theming', 'The app order was changed, to see it in action you have to reload the page.'))+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),_c('AppOrderSelector',{staticClass:\"user-app-menu-order\",attrs:{\"aria-details\":_vm.ariaDetailsAppOrder,\"value\":_vm.appOrder},on:{\"update:value\":_vm.updateAppOrder}}),_vm._v(\" \"),_c('NcButton',{attrs:{\"data-test-id\":\"btn-apporder-reset\",\"disabled\":!_vm.hasCustomAppOrder,\"type\":\"tertiary\"},on:{\"click\":_vm.resetAppOrder},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconUndo',{attrs:{\"size\":20}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('theming', 'Reset default app order'))+\"\\n\\t\")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**!\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","import Vue from 'vue'\nimport { getCurrentInstance } from 'vue'\n\nvar isVue2 = true\nvar isVue3 = false\nvar Vue2 = Vue\nvar warn = Vue.util.warn\n\nfunction install() {}\n\n// createApp polyfill\nexport function createApp(rootComponent, rootProps) {\n var vm\n var provide = {}\n var app = {\n config: Vue.config,\n use: Vue.use.bind(Vue),\n mixin: Vue.mixin.bind(Vue),\n component: Vue.component.bind(Vue),\n provide: function (key, value) {\n provide[key] = value\n return this\n },\n directive: function (name, dir) {\n if (dir) {\n Vue.directive(name, dir)\n return app\n } else {\n return Vue.directive(name)\n }\n },\n mount: function (el, hydrating) {\n if (!vm) {\n vm = new Vue(Object.assign({ propsData: rootProps }, rootComponent, { provide: Object.assign(provide, rootComponent.provide) }))\n vm.$mount(el, hydrating)\n return vm\n } else {\n return vm\n }\n },\n unmount: function () {\n if (vm) {\n vm.$destroy()\n vm = undefined\n }\n },\n }\n return app\n}\n\nexport {\n Vue,\n Vue2,\n isVue2,\n isVue3,\n install,\n warn\n}\n\n// Vue 3 components mock\nfunction createMockComponent(name) {\n return {\n setup() {\n throw new Error('[vue-demi] ' + name + ' is not supported in Vue 2. It\\'s provided to avoid compiler errors.')\n }\n }\n}\nexport var Fragment = /*#__PURE__*/ createMockComponent('Fragment')\nexport var Transition = /*#__PURE__*/ createMockComponent('Transition')\nexport var TransitionGroup = /*#__PURE__*/ createMockComponent('TransitionGroup')\nexport var Teleport = /*#__PURE__*/ createMockComponent('Teleport')\nexport var Suspense = /*#__PURE__*/ createMockComponent('Suspense')\nexport var KeepAlive = /*#__PURE__*/ createMockComponent('KeepAlive')\n\nexport * from 'vue'\n\n// Not implemented https://github.com/vuejs/core/pull/8111, falls back to getCurrentInstance()\nexport function hasInjectionContext() {\n return !!getCurrentInstance()\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('li',{class:{\n\t\t'order-selector-element': true,\n\t\t'order-selector-element--disabled': _vm.app.default\n\t},attrs:{\"data-cy-app-order-element\":_vm.app.id},on:{\"focusin\":function($event){return _vm.$emit('update:focus')}}},[_c('svg',{attrs:{\"width\":\"20\",\"height\":\"20\",\"viewBox\":\"0 0 20 20\",\"role\":\"presentation\"}},[_c('image',{staticClass:\"order-selector-element__icon\",attrs:{\"preserveAspectRatio\":\"xMinYMin meet\",\"x\":\"0\",\"y\":\"0\",\"width\":\"20\",\"height\":\"20\",\"xlink:href\":_vm.app.icon}})]),_vm._v(\" \"),_c('div',{staticClass:\"order-selector-element__label\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.app.label ?? _vm.app.id)+\"\\n\\t\")]),_vm._v(\" \"),_c('div',{staticClass:\"order-selector-element__actions\"},[_c('NcButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isFirst && !_vm.app.default),expression:\"!isFirst && !app.default\"}],ref:\"buttonUp\",attrs:{\"aria-label\":_vm.t('settings', 'Move up'),\"aria-describedby\":_vm.ariaDescribedby,\"aria-details\":_vm.ariaDetails,\"data-cy-app-order-button\":\"up\",\"type\":\"tertiary-no-background\"},on:{\"click\":_vm.moveUp},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconArrowUp',{attrs:{\"size\":20}})]},proxy:true}])}),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isFirst || !!_vm.app.default),expression:\"isFirst || !!app.default\"}],staticClass:\"order-selector-element__placeholder\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\" \"),_c('NcButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isLast && !_vm.app.default),expression:\"!isLast && !app.default\"}],ref:\"buttonDown\",attrs:{\"aria-label\":_vm.t('settings', 'Move down'),\"aria-describedby\":_vm.ariaDescribedby,\"aria-details\":_vm.ariaDetails,\"data-cy-app-order-button\":\"down\",\"type\":\"tertiary-no-background\"},on:{\"click\":_vm.moveDown},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconArrowDown',{attrs:{\"size\":20}})]},proxy:true}])}),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isLast || !!_vm.app.default),expression:\"isLast || !!app.default\"}],staticClass:\"order-selector-element__placeholder\",attrs:{\"aria-hidden\":\"true\"}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppOrderSelectorElement.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppOrderSelectorElement.vue?vue&type=script&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/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppOrderSelectorElement.vue?vue&type=style&index=0&id=081ebc45&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \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!./AppOrderSelectorElement.vue?vue&type=style&index=0&id=081ebc45&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppOrderSelectorElement.vue?vue&type=template&id=081ebc45&scoped=true\"\nimport script from \"./AppOrderSelectorElement.vue?vue&type=script&lang=ts\"\nexport * from \"./AppOrderSelectorElement.vue?vue&type=script&lang=ts\"\nimport style0 from \"./AppOrderSelectorElement.vue?vue&type=style&index=0&id=081ebc45&prod&lang=scss&scoped=true\"\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 \"081ebc45\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('Fragment',[_c('div',{staticClass:\"hidden-visually\",attrs:{\"id\":_vm.statusInfoId,\"aria-live\":\"polite\",\"role\":\"status\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.statusInfo)+\"\\n\\t\")]),_vm._v(\" \"),_c('ol',{ref:\"listElement\",staticClass:\"order-selector\",attrs:{\"data-cy-app-order\":\"\"}},_vm._l((_vm.appList),function(app,index){return _c('AppOrderSelectorElement',_vm._g({key:`${app.id}${_vm.renderCount}`,ref:\"selectorElements\",refInFor:true,attrs:{\"app\":app,\"aria-details\":_vm.ariaDetails,\"aria-describedby\":_vm.statusInfoId,\"is-first\":index === 0 || !!_vm.appList[index - 1].default,\"is-last\":index === _vm.value.length - 1}},app.default ? {} : {\n\t\t\t\t'move:up': () => _vm.moveUp(index),\n\t\t\t\t'move:down': () => _vm.moveDown(index),\n\t\t\t\t'update:focus': () => _vm.updateStatusInfo(index),\n\t\t\t}))}),1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { tryOnMounted, tryOnScopeDispose, toValue, unrefElement, defaultDocument } from '@vueuse/core';\nimport Sortable from 'sortablejs';\nimport { isRef, nextTick } from 'vue-demi';\n\nfunction useSortable(el, list, options = {}) {\n let sortable;\n const { document = defaultDocument, ...resetOptions } = options;\n const defaultOptions = {\n onUpdate: (e) => {\n moveArrayElement(list, e.oldIndex, e.newIndex);\n }\n };\n const start = () => {\n const target = typeof el === \"string\" ? document == null ? void 0 : document.querySelector(el) : unrefElement(el);\n if (!target || sortable !== void 0)\n return;\n sortable = new Sortable(target, { ...defaultOptions, ...resetOptions });\n };\n const stop = () => {\n sortable == null ? void 0 : sortable.destroy();\n sortable = void 0;\n };\n const option = (name, value) => {\n if (value !== void 0)\n sortable == null ? void 0 : sortable.option(name, value);\n else\n return sortable == null ? void 0 : sortable.option(name);\n };\n tryOnMounted(start);\n tryOnScopeDispose(stop);\n return { stop, start, option };\n}\nfunction moveArrayElement(list, from, to) {\n const _valueIsRef = isRef(list);\n const array = _valueIsRef ? [...toValue(list)] : toValue(list);\n if (to >= 0 && to < array.length) {\n const element = array.splice(from, 1)[0];\n nextTick(() => {\n array.splice(to, 0, element);\n if (_valueIsRef)\n list.value = array;\n });\n }\n}\n\nexport { moveArrayElement, useSortable };\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppOrderSelector.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppOrderSelector.vue?vue&type=script&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/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppOrderSelector.vue?vue&type=style&index=0&id=35797e31&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \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!./AppOrderSelector.vue?vue&type=style&index=0&id=35797e31&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppOrderSelector.vue?vue&type=template&id=35797e31&scoped=true\"\nimport script from \"./AppOrderSelector.vue?vue&type=script&lang=ts\"\nexport * from \"./AppOrderSelector.vue?vue&type=script&lang=ts\"\nimport style0 from \"./AppOrderSelector.vue?vue&type=style&index=0&id=35797e31&prod&scoped=true&lang=scss\"\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 \"35797e31\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Undo.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Undo.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./Undo.vue?vue&type=template&id=bc8e3c2a\"\nimport script from \"./Undo.vue?vue&type=script&lang=js\"\nexport * from \"./Undo.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 undo-icon\",attrs:{\"aria-hidden\":!_vm.title,\"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\":\"M12.5,8C9.85,8 7.45,9 5.6,10.6L2,7V16H11L7.38,12.38C8.77,11.22 10.54,10.5 12.5,10.5C16.04,10.5 19.05,12.81 20.1,16L22.47,15.22C21.08,11.03 17.15,8 12.5,8Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserAppMenuSection.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserAppMenuSection.vue?vue&type=script&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/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserAppMenuSection.vue?vue&type=style&index=0&id=ee0f3d1a&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \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!./UserAppMenuSection.vue?vue&type=style&index=0&id=ee0f3d1a&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserAppMenuSection.vue?vue&type=template&id=ee0f3d1a&scoped=true\"\nimport script from \"./UserAppMenuSection.vue?vue&type=script&lang=ts\"\nexport * from \"./UserAppMenuSection.vue?vue&type=script&lang=ts\"\nimport style0 from \"./UserAppMenuSection.vue?vue&type=style&index=0&id=ee0f3d1a&prod&scoped=true&lang=scss\"\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 \"ee0f3d1a\",\n null\n \n)\n\nexport default component.exports","\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!./UserThemes.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!./UserThemes.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!./UserThemes.vue?vue&type=style&index=0&id=d643b9e0&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \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!./UserThemes.vue?vue&type=style&index=0&id=d643b9e0&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserThemes.vue?vue&type=template&id=d643b9e0&scoped=true\"\nimport script from \"./UserThemes.vue?vue&type=script&lang=js\"\nexport * from \"./UserThemes.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserThemes.vue?vue&type=style&index=0&id=d643b9e0&prod&lang=scss&scoped=true\"\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 \"d643b9e0\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',[_c('NcSettingsSection',{staticClass:\"theming\",attrs:{\"name\":_vm.t('theming', 'Appearance and accessibility settings'),\"limit-width\":false}},[_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.description)}}),_vm._v(\" \"),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.descriptionDetail)}}),_vm._v(\" \"),_c('div',{staticClass:\"theming__preview-list\"},_vm._l((_vm.themes),function(theme){return _c('ItemPreview',{key:theme.id,attrs:{\"enforced\":theme.id === _vm.enforceTheme,\"selected\":_vm.selectedTheme.id === theme.id,\"theme\":theme,\"unique\":_vm.themes.length === 1,\"type\":\"theme\"},on:{\"change\":_vm.changeTheme}})}),1),_vm._v(\" \"),_c('div',{staticClass:\"theming__preview-list\"},_vm._l((_vm.fonts),function(theme){return _c('ItemPreview',{key:theme.id,attrs:{\"selected\":theme.enabled,\"theme\":theme,\"unique\":_vm.fonts.length === 1,\"type\":\"font\"},on:{\"change\":_vm.changeFont}})}),1)]),_vm._v(\" \"),_c('NcSettingsSection',{staticClass:\"background\",attrs:{\"name\":_vm.t('theming', 'Background'),\"data-user-theming-background-disabled\":\"\"}},[(_vm.isUserThemingDisabled)?[_c('p',[_vm._v(_vm._s(_vm.t('theming', 'Customization has been disabled by your administrator')))])]:[_c('p',[_vm._v(_vm._s(_vm.t('theming', 'Set a custom background')))]),_vm._v(\" \"),_c('BackgroundSettings',{staticClass:\"background__grid\",on:{\"update:background\":_vm.refreshGlobalStyles}})]],2),_vm._v(\" \"),_c('NcSettingsSection',{attrs:{\"name\":_vm.t('theming', 'Keyboard shortcuts')}},[_c('p',[_vm._v(_vm._s(_vm.t('theming', 'In some cases keyboard shortcuts can interfere with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps.')))]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{staticClass:\"theming__preview-toggle\",attrs:{\"checked\":_vm.shortcutsDisabled,\"type\":\"switch\"},on:{\"update:checked\":function($event){_vm.shortcutsDisabled=$event},\"change\":_vm.changeShortcutsDisabled}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('theming', 'Disable all keyboard shortcuts'))+\"\\n\\t\\t\")])],1),_vm._v(\" \"),_c('UserAppMenuSection')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright Copyright (c) 2018 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\nimport { getRequestToken } from '@nextcloud/auth'\nimport Vue from 'vue'\n\nimport { refreshStyles } from './helpers/refreshStyles.js'\nimport App from './UserThemes.vue'\n\n// eslint-disable-next-line camelcase\n__webpack_nonce__ = btoa(getRequestToken())\n\nVue.prototype.OC = OC\nVue.prototype.t = t\n\nconst View = Vue.extend(App)\nconst theming = new View()\ntheming.$mount('#theming')\ntheming.$on('update:background', refreshStyles)\n","/**\n * @copyright 2022 Christopher Ng \n *\n * @author Christopher Ng \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nexport const refreshStyles = () => {\n\t// Refresh server-side generated theming CSS\n\t[...document.head.querySelectorAll('link.theme')].forEach(theme => {\n\t\tconst url = new URL(theme.href)\n\t\turl.searchParams.set('v', Date.now())\n\t\tconst newTheme = theme.cloneNode()\n\t\tnewTheme.href = url.toString()\n\t\tnewTheme.onload = () => theme.remove()\n\t\tdocument.head.append(newTheme)\n\t})\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, `.theming p[data-v-d643b9e0]{max-width:800px}.theming[data-v-d643b9e0] a{font-weight:bold}.theming[data-v-d643b9e0] a:hover,.theming[data-v-d643b9e0] a:focus{text-decoration:underline}.theming__preview-list[data-v-d643b9e0]{--gap: 30px;display:grid;margin-top:var(--gap);column-gap:var(--gap);row-gap:var(--gap);grid-template-columns:1fr 1fr}.background__grid[data-v-d643b9e0]{margin-top:30px}@media(max-width: 1440px){.theming__preview-list[data-v-d643b9e0]{display:flex;flex-direction:column}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/theming/src/UserThemes.vue\"],\"names\":[],\"mappings\":\"AAGC,4BACC,eAAA,CAID,4BACC,gBAAA,CAEA,oEAEC,yBAAA,CAIF,wCACC,WAAA,CAEA,YAAA,CACA,qBAAA,CACA,qBAAA,CACA,kBAAA,CACA,6BAAA,CAKD,mCACC,eAAA,CAIF,0BACC,wCACC,YAAA,CACA,qBAAA,CAAA\",\"sourcesContent\":[\"\\n.theming {\\n\\t// Limit width of settings sections for readability\\n\\tp {\\n\\t\\tmax-width: 800px;\\n\\t}\\n\\n\\t// Proper highlight for links and focus feedback\\n\\t&::v-deep a {\\n\\t\\tfont-weight: bold;\\n\\n\\t\\t&:hover,\\n\\t\\t&:focus {\\n\\t\\t\\ttext-decoration: underline;\\n\\t\\t}\\n\\t}\\n\\n\\t&__preview-list {\\n\\t\\t--gap: 30px;\\n\\n\\t\\tdisplay: grid;\\n\\t\\tmargin-top: var(--gap);\\n\\t\\tcolumn-gap: var(--gap);\\n\\t\\trow-gap: var(--gap);\\n\\t\\tgrid-template-columns: 1fr 1fr;\\n\\t}\\n}\\n\\n.background {\\n\\t&__grid {\\n\\t\\tmargin-top: 30px;\\n\\t}\\n}\\n\\n@media (max-width: 1440px) {\\n\\t.theming__preview-list {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\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, `.order-selector[data-v-35797e31]{width:max-content;min-width:260px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/theming/src/components/AppOrderSelector.vue\"],\"names\":[],\"mappings\":\"AACA,iCACC,iBAAA,CACA,eAAA\",\"sourcesContent\":[\"\\n.order-selector {\\n\\twidth: max-content;\\n\\tmin-width: 260px; // align with NcSelect\\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, `.order-selector-element[data-v-081ebc45]{list-style:none;display:flex;flex-direction:row;align-items:center;gap:12px;padding-inline:12px}.order-selector-element[data-v-081ebc45]:hover{background-color:var(--color-background-hover);border-radius:var(--border-radius-large)}.order-selector-element--disabled[data-v-081ebc45]{border-color:var(--color-text-maxcontrast);color:var(--color-text-maxcontrast)}.order-selector-element--disabled .order-selector-element__icon[data-v-081ebc45]{opacity:75%}.order-selector-element__actions[data-v-081ebc45]{flex:0 0;display:flex;flex-direction:row;gap:6px}.order-selector-element__label[data-v-081ebc45]{flex:1 1;text-overflow:ellipsis;overflow:hidden}.order-selector-element__placeholder[data-v-081ebc45]{height:44px;width:44px}.order-selector-element__icon[data-v-081ebc45]{filter:var(--background-invert-if-bright)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/theming/src/components/AppOrderSelectorElement.vue\"],\"names\":[],\"mappings\":\"AACA,yCAEC,eAAA,CAEA,YAAA,CACA,kBAAA,CACA,kBAAA,CAEA,QAAA,CACA,mBAAA,CAEA,+CACC,8CAAA,CACA,wCAAA,CAGD,mDACC,0CAAA,CACA,mCAAA,CAEA,iFACC,WAAA,CAIF,kDACC,QAAA,CACA,YAAA,CACA,kBAAA,CACA,OAAA,CAGD,gDACC,QAAA,CACA,sBAAA,CACA,eAAA,CAGD,sDACC,WAAA,CACA,UAAA,CAGD,+CACC,yCAAA\",\"sourcesContent\":[\"\\n.order-selector-element {\\n\\t// hide default styling\\n\\tlist-style: none;\\n\\t// Align children\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\talign-items: center;\\n\\t// Spacing\\n\\tgap: 12px;\\n\\tpadding-inline: 12px;\\n\\n\\t&:hover {\\n\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t}\\n\\n\\t&--disabled {\\n\\t\\tborder-color: var(--color-text-maxcontrast);\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\n\\t\\t.order-selector-element__icon {\\n\\t\\t\\topacity: 75%;\\n\\t\\t}\\n\\t}\\n\\n\\t&__actions {\\n\\t\\tflex: 0 0;\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: row;\\n\\t\\tgap: 6px;\\n\\t}\\n\\n\\t&__label {\\n\\t\\tflex: 1 1;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\toverflow: hidden;\\n\\t}\\n\\n\\t&__placeholder {\\n\\t\\theight: 44px;\\n\\t\\twidth: 44px;\\n\\t}\\n\\n\\t&__icon {\\n\\t\\tfilter: var(--background-invert-if-bright);\\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, `.background-selector[data-v-1175e65a]{display:flex;flex-wrap:wrap;justify-content:center}.background-selector .background-color[data-v-1175e65a]{display:flex;justify-content:center;align-items:center;width:176px;height:96px;margin:8px;border-radius:var(--border-radius-large);background-color:var(--color-primary)}.background-selector .background[data-v-1175e65a]{overflow:hidden;width:176px;height:96px;margin:8px;text-align:center;border:2px solid var(--color-main-background);border-radius:var(--border-radius-large);background-position:center center;background-size:cover}.background-selector .background__filepicker.background--active[data-v-1175e65a]{color:#fff;background-image:var(--image-background)}.background-selector .background__default[data-v-1175e65a]{background-color:var(--color-primary-default);background-image:linear-gradient(to bottom, rgba(23, 23, 23, 0.5), rgba(23, 23, 23, 0.5)),var(--image-background-plain, var(--image-background-default))}.background-selector .background__filepicker[data-v-1175e65a],.background-selector .background__default[data-v-1175e65a],.background-selector .background__color[data-v-1175e65a]{border-color:var(--color-border)}.background-selector .background__default[data-v-1175e65a],.background-selector .background__shipped[data-v-1175e65a]{color:#fff}.background-selector .background[data-color-bright][data-v-1175e65a]{color:#000}.background-selector .background--active[data-v-1175e65a],.background-selector .background[data-v-1175e65a]:hover,.background-selector .background[data-v-1175e65a]:focus{outline:2px solid var(--color-main-text) !important;border-color:var(--color-main-background) !important}.background-selector .background span[data-v-1175e65a]{margin:4px}.background-selector .background .check-icon[data-v-1175e65a]{display:none}.background-selector .background--active:not(.icon-loading) .check-icon[data-v-1175e65a]{display:block !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/theming/src/components/BackgroundSettings.vue\"],\"names\":[],\"mappings\":\"AACA,sCACC,YAAA,CACA,cAAA,CACA,sBAAA,CAEA,wDACC,YAAA,CACA,sBAAA,CACA,kBAAA,CACA,WAAA,CACA,WAAA,CACA,UAAA,CACA,wCAAA,CACA,qCAAA,CAGD,kDACC,eAAA,CACA,WAAA,CACA,WAAA,CACA,UAAA,CACA,iBAAA,CACA,6CAAA,CACA,wCAAA,CACA,iCAAA,CACA,qBAAA,CAGC,iFACC,UAAA,CACA,wCAAA,CAIF,2DACC,6CAAA,CACA,wJAAA,CAGD,kLACC,gCAAA,CAID,sHAEC,UAAA,CAID,qEACC,UAAA,CAGD,0KAGC,mDAAA,CACA,oDAAA,CAID,uDACC,UAAA,CAGD,8DACC,YAAA,CAIA,yFAEC,wBAAA\",\"sourcesContent\":[\"\\n.background-selector {\\n\\tdisplay: flex;\\n\\tflex-wrap: wrap;\\n\\tjustify-content: center;\\n\\n\\t.background-color {\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: center;\\n\\t\\talign-items: center;\\n\\t\\twidth: 176px;\\n\\t\\theight: 96px;\\n\\t\\tmargin: 8px;\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t\\tbackground-color: var(--color-primary);\\n\\t}\\n\\n\\t.background {\\n\\t\\toverflow: hidden;\\n\\t\\twidth: 176px;\\n\\t\\theight: 96px;\\n\\t\\tmargin: 8px;\\n\\t\\ttext-align: center;\\n\\t\\tborder: 2px solid var(--color-main-background);\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t\\tbackground-position: center center;\\n\\t\\tbackground-size: cover;\\n\\n\\t\\t&__filepicker {\\n\\t\\t\\t&.background--active {\\n\\t\\t\\t\\tcolor: white;\\n\\t\\t\\t\\tbackground-image: var(--image-background);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&__default {\\n\\t\\t\\tbackground-color: var(--color-primary-default);\\n\\t\\t\\tbackground-image: linear-gradient(to bottom, rgba(23, 23, 23, 0.5), rgba(23, 23, 23, 0.5)), var(--image-background-plain, var(--image-background-default));\\n\\t\\t}\\n\\n\\t\\t&__filepicker, &__default, &__color {\\n\\t\\t\\tborder-color: var(--color-border);\\n\\t\\t}\\n\\n\\t\\t// Over a background image\\n\\t\\t&__default,\\n\\t\\t&__shipped {\\n\\t\\t\\tcolor: white;\\n\\t\\t}\\n\\n\\t\\t// Text and svg icon dark on bright background\\n\\t\\t&[data-color-bright] {\\n\\t\\t\\tcolor: black;\\n\\t\\t}\\n\\n\\t\\t&--active,\\n\\t\\t&:hover,\\n\\t\\t&:focus {\\n\\t\\t\\toutline: 2px solid var(--color-main-text) !important;\\n\\t\\t\\tborder-color: var(--color-main-background) !important;\\n\\t\\t}\\n\\n\\t\\t// Icon\\n\\t\\tspan {\\n\\t\\t\\tmargin: 4px;\\n\\t\\t}\\n\\n\\t\\t.check-icon {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\n\\t\\t&--active:not(.icon-loading) {\\n\\t\\t\\t.check-icon {\\n\\t\\t\\t\\t// Show checkmark\\n\\t\\t\\t\\tdisplay: block !important;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\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, `.theming__preview[data-v-1a08e35a]{--ratio: 16;position:relative;display:flex;justify-content:flex-start;max-width:800px}.theming__preview[data-v-1a08e35a],.theming__preview *[data-v-1a08e35a]{user-select:none}.theming__preview-image[data-v-1a08e35a]{flex-basis:calc(16px*var(--ratio));flex-shrink:0;height:calc(10px*var(--ratio));margin-right:var(--gap);cursor:pointer;border-radius:var(--border-radius);background-repeat:no-repeat;background-position:top left;background-size:cover}.theming__preview-explanation[data-v-1a08e35a]{margin-bottom:10px}.theming__preview-description[data-v-1a08e35a]{display:flex;flex-direction:column}.theming__preview-description h3[data-v-1a08e35a]{font-weight:bold;margin-bottom:0}.theming__preview-description label[data-v-1a08e35a]{padding:12px 0}.theming__preview--default[data-v-1a08e35a]{grid-column:span 2}.theming__preview-warning[data-v-1a08e35a]{color:var(--color-warning)}@media(max-width: 682.6666666667px){.theming__preview[data-v-1a08e35a]{flex-direction:column}.theming__preview-image[data-v-1a08e35a]{margin:0}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/theming/src/components/ItemPreview.vue\"],\"names\":[],\"mappings\":\"AAGA,mCAEC,WAAA,CAEA,iBAAA,CACA,YAAA,CACA,0BAAA,CACA,eAAA,CAEA,wEAEC,gBAAA,CAGD,yCACC,kCAAA,CACA,aAAA,CACA,8BAAA,CACA,uBAAA,CACA,cAAA,CACA,kCAAA,CACA,2BAAA,CACA,4BAAA,CACA,qBAAA,CAGD,+CACC,kBAAA,CAGD,+CACC,YAAA,CACA,qBAAA,CAEA,kDACC,gBAAA,CACA,eAAA,CAGD,qDACC,cAAA,CAIF,4CACC,kBAAA,CAGD,2CACC,0BAAA,CAIF,oCACC,mCACC,qBAAA,CAEA,yCACC,QAAA,CAAA\",\"sourcesContent\":[\"\\n@use 'sass:math';\\n\\n.theming__preview {\\n\\t// We make previews on 16/10 screens\\n\\t--ratio: 16;\\n\\n\\tposition: relative;\\n\\tdisplay: flex;\\n\\tjustify-content: flex-start;\\n\\tmax-width: 800px;\\n\\n\\t&,\\n\\t* {\\n\\t\\tuser-select: none;\\n\\t}\\n\\n\\t&-image {\\n\\t\\tflex-basis: calc(16px * var(--ratio));\\n\\t\\tflex-shrink: 0;\\n\\t\\theight: calc(10px * var(--ratio));\\n\\t\\tmargin-right: var(--gap);\\n\\t\\tcursor: pointer;\\n\\t\\tborder-radius: var(--border-radius);\\n\\t\\tbackground-repeat: no-repeat;\\n\\t\\tbackground-position: top left;\\n\\t\\tbackground-size: cover;\\n\\t}\\n\\n\\t&-explanation {\\n\\t\\tmargin-bottom: 10px;\\n\\t}\\n\\n\\t&-description {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\n\\t\\th3 {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\tmargin-bottom: 0;\\n\\t\\t}\\n\\n\\t\\tlabel {\\n\\t\\t\\tpadding: 12px 0;\\n\\t\\t}\\n\\t}\\n\\n\\t&--default {\\n\\t\\tgrid-column: span 2;\\n\\t}\\n\\n\\t&-warning {\\n\\t\\tcolor: var(--color-warning);\\n\\t}\\n}\\n\\n@media (max-width: math.div(1024px, 1.5)) {\\n\\t.theming__preview {\\n\\t\\tflex-direction: column;\\n\\n\\t\\t&-image {\\n\\t\\t\\tmargin: 0;\\n\\t\\t}\\n\\t}\\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, `.user-app-menu-order[data-v-ee0f3d1a]{margin-block:12px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/theming/src/components/UserAppMenuSection.vue\"],\"names\":[],\"mappings\":\"AACA,sCACC,iBAAA\",\"sourcesContent\":[\"\\n.user-app-menu-order {\\n\\tmargin-block: 12px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n}\n\nmodule.exports = baseFilter;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","var baseRest = require('./_baseRest'),\n eq = require('./eq'),\n isIterateeCall = require('./_isIterateeCall'),\n keysIn = require('./keysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\nvar defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n});\n\nmodule.exports = defaults;\n","var arrayFilter = require('./_arrayFilter'),\n baseFilter = require('./_baseFilter'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray');\n\n/**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\nfunction filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = filter;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar vibrant_1 = __importDefault(require(\"./vibrant\"));\nvar browser_1 = __importDefault(require(\"./image/browser\"));\nvibrant_1.default.DefaultOpts.ImageClass = browser_1.default;\nmodule.exports = vibrant_1.default;\n//# sourceMappingURL=browser.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar vibrant_1 = __importDefault(require(\"./vibrant\"));\nvar clone = require(\"lodash/clone\");\nvar Builder = /** @class */ (function () {\n function Builder(src, opts) {\n if (opts === void 0) { opts = {}; }\n this._src = src;\n this._opts = opts;\n this._opts.filters = clone(vibrant_1.default.DefaultOpts.filters);\n }\n Builder.prototype.maxColorCount = function (n) {\n this._opts.colorCount = n;\n return this;\n };\n Builder.prototype.maxDimension = function (d) {\n this._opts.maxDimension = d;\n return this;\n };\n Builder.prototype.addFilter = function (f) {\n this._opts.filters.push(f);\n return this;\n };\n Builder.prototype.removeFilter = function (f) {\n var i = this._opts.filters.indexOf(f);\n if (i > 0)\n this._opts.filters.splice(i);\n return this;\n };\n Builder.prototype.clearFilters = function () {\n this._opts.filters = [];\n return this;\n };\n Builder.prototype.quality = function (q) {\n this._opts.quality = q;\n return this;\n };\n Builder.prototype.useImageClass = function (imageClass) {\n this._opts.ImageClass = imageClass;\n return this;\n };\n Builder.prototype.useGenerator = function (generator) {\n this._opts.generator = generator;\n return this;\n };\n Builder.prototype.useQuantizer = function (quantizer) {\n this._opts.quantizer = quantizer;\n return this;\n };\n Builder.prototype.build = function () {\n return new vibrant_1.default(this._src, this._opts);\n };\n Builder.prototype.getPalette = function (cb) {\n return this.build().getPalette(cb);\n };\n Builder.prototype.getSwatches = function (cb) {\n return this.build().getPalette(cb);\n };\n return Builder;\n}());\nexports.default = Builder;\n//# sourceMappingURL=builder.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Swatch = void 0;\nvar util_1 = require(\"./util\");\nvar filter = require(\"lodash/filter\");\nvar Swatch = /** @class */ (function () {\n function Swatch(rgb, population) {\n this._rgb = rgb;\n this._population = population;\n }\n Swatch.applyFilter = function (colors, f) {\n return typeof f === 'function'\n ? filter(colors, function (_a) {\n var r = _a.r, g = _a.g, b = _a.b;\n return f(r, g, b, 255);\n })\n : colors;\n };\n Object.defineProperty(Swatch.prototype, \"r\", {\n get: function () { return this._rgb[0]; },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Swatch.prototype, \"g\", {\n get: function () { return this._rgb[1]; },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Swatch.prototype, \"b\", {\n get: function () { return this._rgb[2]; },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Swatch.prototype, \"rgb\", {\n get: function () { return this._rgb; },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Swatch.prototype, \"hsl\", {\n get: function () {\n if (!this._hsl) {\n var _a = this._rgb, r = _a[0], g = _a[1], b = _a[2];\n this._hsl = util_1.rgbToHsl(r, g, b);\n }\n return this._hsl;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Swatch.prototype, \"hex\", {\n get: function () {\n if (!this._hex) {\n var _a = this._rgb, r = _a[0], g = _a[1], b = _a[2];\n this._hex = util_1.rgbToHex(r, g, b);\n }\n return this._hex;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Swatch.prototype, \"population\", {\n get: function () { return this._population; },\n enumerable: false,\n configurable: true\n });\n Swatch.prototype.toJSON = function () {\n return {\n rgb: this.rgb,\n population: this.population\n };\n };\n // TODO: deprecate internally, use property instead\n Swatch.prototype.getRgb = function () { return this._rgb; };\n // TODO: deprecate internally, use property instead\n Swatch.prototype.getHsl = function () { return this.hsl; };\n // TODO: deprecate internally, use property instead\n Swatch.prototype.getPopulation = function () { return this._population; };\n // TODO: deprecate internally, use property instead\n Swatch.prototype.getHex = function () { return this.hex; };\n Swatch.prototype.getYiq = function () {\n if (!this._yiq) {\n var rgb = this._rgb;\n this._yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n }\n return this._yiq;\n };\n Object.defineProperty(Swatch.prototype, \"titleTextColor\", {\n get: function () {\n if (!this._titleTextColor) {\n this._titleTextColor = this.getYiq() < 200 ? '#fff' : '#000';\n }\n return this._titleTextColor;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Swatch.prototype, \"bodyTextColor\", {\n get: function () {\n if (!this._bodyTextColor) {\n this._bodyTextColor = this.getYiq() < 150 ? '#fff' : '#000';\n }\n return this._bodyTextColor;\n },\n enumerable: false,\n configurable: true\n });\n Swatch.prototype.getTitleTextColor = function () {\n return this.titleTextColor;\n };\n Swatch.prototype.getBodyTextColor = function () {\n return this.bodyTextColor;\n };\n return Swatch;\n}());\nexports.Swatch = Swatch;\n//# sourceMappingURL=color.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction defaultFilter(r, g, b, a) {\n return a >= 125 &&\n !(r > 250 && g > 250 && b > 250);\n}\nexports.default = defaultFilter;\n//# sourceMappingURL=default.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.combineFilters = void 0;\nvar default_1 = require(\"./default\");\nObject.defineProperty(exports, \"Default\", { enumerable: true, get: function () { return default_1.default; } });\nfunction combineFilters(filters) {\n // TODO: caching\n if (!Array.isArray(filters) || filters.length === 0)\n return null;\n return function (r, g, b, a) {\n if (a === 0)\n return false;\n for (var i = 0; i < filters.length; i++) {\n if (!filters[i](r, g, b, a))\n return false;\n }\n return true;\n };\n}\nexports.combineFilters = combineFilters;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar color_1 = require(\"../color\");\nvar util_1 = require(\"../util\");\nvar defaults = require(\"lodash/defaults\");\nvar DefaultOpts = {\n targetDarkLuma: 0.26,\n maxDarkLuma: 0.45,\n minLightLuma: 0.55,\n targetLightLuma: 0.74,\n minNormalLuma: 0.3,\n targetNormalLuma: 0.5,\n maxNormalLuma: 0.7,\n targetMutesSaturation: 0.3,\n maxMutesSaturation: 0.4,\n targetVibrantSaturation: 1.0,\n minVibrantSaturation: 0.35,\n weightSaturation: 3,\n weightLuma: 6.5,\n weightPopulation: 0.5\n};\nfunction _findMaxPopulation(swatches) {\n var p = 0;\n swatches.forEach(function (s) {\n p = Math.max(p, s.getPopulation());\n });\n return p;\n}\nfunction _isAlreadySelected(palette, s) {\n return palette.Vibrant === s ||\n palette.DarkVibrant === s ||\n palette.LightVibrant === s ||\n palette.Muted === s ||\n palette.DarkMuted === s ||\n palette.LightMuted === s;\n}\nfunction _createComparisonValue(saturation, targetSaturation, luma, targetLuma, population, maxPopulation, opts) {\n function weightedMean() {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i] = arguments[_i];\n }\n var sum = 0;\n var weightSum = 0;\n for (var i = 0; i < values.length; i += 2) {\n var value = values[i];\n var weight = values[i + 1];\n sum += value * weight;\n weightSum += weight;\n }\n return sum / weightSum;\n }\n function invertDiff(value, targetValue) {\n return 1 - Math.abs(value - targetValue);\n }\n return weightedMean(invertDiff(saturation, targetSaturation), opts.weightSaturation, invertDiff(luma, targetLuma), opts.weightLuma, population / maxPopulation, opts.weightPopulation);\n}\nfunction _findColorVariation(palette, swatches, maxPopulation, targetLuma, minLuma, maxLuma, targetSaturation, minSaturation, maxSaturation, opts) {\n var max = null;\n var maxValue = 0;\n swatches.forEach(function (swatch) {\n var _a = swatch.getHsl(), s = _a[1], l = _a[2];\n if (s >= minSaturation && s <= maxSaturation &&\n l >= minLuma && l <= maxLuma &&\n !_isAlreadySelected(palette, swatch)) {\n var value = _createComparisonValue(s, targetSaturation, l, targetLuma, swatch.getPopulation(), maxPopulation, opts);\n if (max === null || value > maxValue) {\n max = swatch;\n maxValue = value;\n }\n }\n });\n return max;\n}\nfunction _generateVariationColors(swatches, maxPopulation, opts) {\n var palette = {};\n // mVibrantSwatch = findColor(TARGET_NORMAL_LUMA, MIN_NORMAL_LUMA, MAX_NORMAL_LUMA,\n // TARGET_VIBRANT_SATURATION, MIN_VIBRANT_SATURATION, 1f);\n palette.Vibrant = _findColorVariation(palette, swatches, maxPopulation, opts.targetNormalLuma, opts.minNormalLuma, opts.maxNormalLuma, opts.targetVibrantSaturation, opts.minVibrantSaturation, 1, opts);\n // mLightVibrantSwatch = findColor(TARGET_LIGHT_LUMA, MIN_LIGHT_LUMA, 1f,\n // TARGET_VIBRANT_SATURATION, MIN_VIBRANT_SATURATION, 1f);\n palette.LightVibrant = _findColorVariation(palette, swatches, maxPopulation, opts.targetLightLuma, opts.minLightLuma, 1, opts.targetVibrantSaturation, opts.minVibrantSaturation, 1, opts);\n // mDarkVibrantSwatch = findColor(TARGET_DARK_LUMA, 0f, MAX_DARK_LUMA,\n // TARGET_VIBRANT_SATURATION, MIN_VIBRANT_SATURATION, 1f);\n palette.DarkVibrant = _findColorVariation(palette, swatches, maxPopulation, opts.targetDarkLuma, 0, opts.maxDarkLuma, opts.targetVibrantSaturation, opts.minVibrantSaturation, 1, opts);\n // mMutedSwatch = findColor(TARGET_NORMAL_LUMA, MIN_NORMAL_LUMA, MAX_NORMAL_LUMA,\n // TARGET_MUTED_SATURATION, 0f, MAX_MUTED_SATURATION);\n palette.Muted = _findColorVariation(palette, swatches, maxPopulation, opts.targetNormalLuma, opts.minNormalLuma, opts.maxNormalLuma, opts.targetMutesSaturation, 0, opts.maxMutesSaturation, opts);\n // mLightMutedColor = findColor(TARGET_LIGHT_LUMA, MIN_LIGHT_LUMA, 1f,\n // TARGET_MUTED_SATURATION, 0f, MAX_MUTED_SATURATION);\n palette.LightMuted = _findColorVariation(palette, swatches, maxPopulation, opts.targetLightLuma, opts.minLightLuma, 1, opts.targetMutesSaturation, 0, opts.maxMutesSaturation, opts);\n // mDarkMutedSwatch = findColor(TARGET_DARK_LUMA, 0f, MAX_DARK_LUMA,\n // TARGET_MUTED_SATURATION, 0f, MAX_MUTED_SATURATION);\n palette.DarkMuted = _findColorVariation(palette, swatches, maxPopulation, opts.targetDarkLuma, 0, opts.maxDarkLuma, opts.targetMutesSaturation, 0, opts.maxMutesSaturation, opts);\n return palette;\n}\nfunction _generateEmptySwatches(palette, maxPopulation, opts) {\n if (palette.Vibrant === null && palette.DarkVibrant === null && palette.LightVibrant === null) {\n if (palette.DarkVibrant === null && palette.DarkMuted !== null) {\n var _a = palette.DarkMuted.getHsl(), h = _a[0], s = _a[1], l = _a[2];\n l = opts.targetDarkLuma;\n palette.DarkVibrant = new color_1.Swatch(util_1.hslToRgb(h, s, l), 0);\n }\n if (palette.LightVibrant === null && palette.LightMuted !== null) {\n var _b = palette.LightMuted.getHsl(), h = _b[0], s = _b[1], l = _b[2];\n l = opts.targetDarkLuma;\n palette.DarkVibrant = new color_1.Swatch(util_1.hslToRgb(h, s, l), 0);\n }\n }\n if (palette.Vibrant === null && palette.DarkVibrant !== null) {\n var _c = palette.DarkVibrant.getHsl(), h = _c[0], s = _c[1], l = _c[2];\n l = opts.targetNormalLuma;\n palette.Vibrant = new color_1.Swatch(util_1.hslToRgb(h, s, l), 0);\n }\n else if (palette.Vibrant === null && palette.LightVibrant !== null) {\n var _d = palette.LightVibrant.getHsl(), h = _d[0], s = _d[1], l = _d[2];\n l = opts.targetNormalLuma;\n palette.Vibrant = new color_1.Swatch(util_1.hslToRgb(h, s, l), 0);\n }\n if (palette.DarkVibrant === null && palette.Vibrant !== null) {\n var _e = palette.Vibrant.getHsl(), h = _e[0], s = _e[1], l = _e[2];\n l = opts.targetDarkLuma;\n palette.DarkVibrant = new color_1.Swatch(util_1.hslToRgb(h, s, l), 0);\n }\n if (palette.LightVibrant === null && palette.Vibrant !== null) {\n var _f = palette.Vibrant.getHsl(), h = _f[0], s = _f[1], l = _f[2];\n l = opts.targetLightLuma;\n palette.LightVibrant = new color_1.Swatch(util_1.hslToRgb(h, s, l), 0);\n }\n if (palette.Muted === null && palette.Vibrant !== null) {\n var _g = palette.Vibrant.getHsl(), h = _g[0], s = _g[1], l = _g[2];\n l = opts.targetMutesSaturation;\n palette.Muted = new color_1.Swatch(util_1.hslToRgb(h, s, l), 0);\n }\n if (palette.DarkMuted === null && palette.DarkVibrant !== null) {\n var _h = palette.DarkVibrant.getHsl(), h = _h[0], s = _h[1], l = _h[2];\n l = opts.targetMutesSaturation;\n palette.DarkMuted = new color_1.Swatch(util_1.hslToRgb(h, s, l), 0);\n }\n if (palette.LightMuted === null && palette.LightVibrant !== null) {\n var _j = palette.LightVibrant.getHsl(), h = _j[0], s = _j[1], l = _j[2];\n l = opts.targetMutesSaturation;\n palette.LightMuted = new color_1.Swatch(util_1.hslToRgb(h, s, l), 0);\n }\n}\nvar DefaultGenerator = function (swatches, opts) {\n opts = defaults({}, opts, DefaultOpts);\n var maxPopulation = _findMaxPopulation(swatches);\n var palette = _generateVariationColors(swatches, maxPopulation, opts);\n _generateEmptySwatches(palette, maxPopulation, opts);\n return palette;\n};\nexports.default = DefaultGenerator;\n//# sourceMappingURL=default.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar default_1 = require(\"./default\");\nObject.defineProperty(exports, \"Default\", { enumerable: true, get: function () { return default_1.default; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ImageBase = void 0;\nvar ImageBase = /** @class */ (function () {\n function ImageBase() {\n }\n ImageBase.prototype.scaleDown = function (opts) {\n var width = this.getWidth();\n var height = this.getHeight();\n var ratio = 1;\n if (opts.maxDimension > 0) {\n var maxSide = Math.max(width, height);\n if (maxSide > opts.maxDimension)\n ratio = opts.maxDimension / maxSide;\n }\n else {\n ratio = 1 / opts.quality;\n }\n if (ratio < 1)\n this.resize(width * ratio, height * ratio, ratio);\n };\n ImageBase.prototype.applyFilter = function (filter) {\n var imageData = this.getImageData();\n if (typeof filter === 'function') {\n var pixels = imageData.data;\n var n = pixels.length / 4;\n var offset = void 0, r = void 0, g = void 0, b = void 0, a = void 0;\n for (var i = 0; i < n; i++) {\n offset = i * 4;\n r = pixels[offset + 0];\n g = pixels[offset + 1];\n b = pixels[offset + 2];\n a = pixels[offset + 3];\n // Mark ignored color\n if (!filter(r, g, b, a))\n pixels[offset + 3] = 0;\n }\n }\n return Promise.resolve(imageData);\n };\n return ImageBase;\n}());\nexports.ImageBase = ImageBase;\n//# sourceMappingURL=base.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar base_1 = require(\"./base\");\nvar Url = __importStar(require(\"url\"));\nfunction isRelativeUrl(url) {\n var u = Url.parse(url);\n return u.protocol === null &&\n u.host === null &&\n u.port === null;\n}\nfunction isSameOrigin(a, b) {\n var ua = Url.parse(a);\n var ub = Url.parse(b);\n // https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy\n return ua.protocol === ub.protocol &&\n ua.hostname === ub.hostname &&\n ua.port === ub.port;\n}\nvar BrowserImage = /** @class */ (function (_super) {\n __extends(BrowserImage, _super);\n function BrowserImage() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BrowserImage.prototype._initCanvas = function () {\n var img = this.image;\n var canvas = this._canvas = document.createElement('canvas');\n var context = this._context = canvas.getContext('2d');\n canvas.className = 'vibrant-canvas';\n canvas.style.display = 'none';\n this._width = canvas.width = img.width;\n this._height = canvas.height = img.height;\n context.drawImage(img, 0, 0);\n document.body.appendChild(canvas);\n };\n BrowserImage.prototype.load = function (image) {\n var _this = this;\n var img = null;\n var src = null;\n if (typeof image === 'string') {\n img = document.createElement('img');\n if (!isRelativeUrl(image) && !isSameOrigin(window.location.href, image)) {\n img.crossOrigin = 'anonymous';\n }\n src = img.src = image;\n }\n else if (image instanceof HTMLImageElement) {\n img = image;\n src = image.src;\n }\n else {\n return Promise.reject(new Error(\"Cannot load buffer as an image in browser\"));\n }\n this.image = img;\n return new Promise(function (resolve, reject) {\n var onImageLoad = function () {\n _this._initCanvas();\n resolve(_this);\n };\n if (img.complete) {\n // Already loaded\n onImageLoad();\n }\n else {\n img.onload = onImageLoad;\n img.onerror = function (e) { return reject(new Error(\"Fail to load image: \" + src)); };\n }\n });\n };\n BrowserImage.prototype.clear = function () {\n this._context.clearRect(0, 0, this._width, this._height);\n };\n BrowserImage.prototype.update = function (imageData) {\n this._context.putImageData(imageData, 0, 0);\n };\n BrowserImage.prototype.getWidth = function () {\n return this._width;\n };\n BrowserImage.prototype.getHeight = function () {\n return this._height;\n };\n BrowserImage.prototype.resize = function (targetWidth, targetHeight, ratio) {\n var _a = this, canvas = _a._canvas, context = _a._context, img = _a.image;\n this._width = canvas.width = targetWidth;\n this._height = canvas.height = targetHeight;\n context.scale(ratio, ratio);\n context.drawImage(img, 0, 0);\n };\n BrowserImage.prototype.getPixelCount = function () {\n return this._width * this._height;\n };\n BrowserImage.prototype.getImageData = function () {\n return this._context.getImageData(0, 0, this._width, this._height);\n };\n BrowserImage.prototype.remove = function () {\n if (this._canvas && this._canvas.parentNode) {\n this._canvas.parentNode.removeChild(this._canvas);\n }\n };\n return BrowserImage;\n}(base_1.ImageBase));\nexports.default = BrowserImage;\n//# sourceMappingURL=browser.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WebWorker = void 0;\nvar mmcq_1 = require(\"./mmcq\");\nObject.defineProperty(exports, \"MMCQ\", { enumerable: true, get: function () { return mmcq_1.default; } });\nexports.WebWorker = null;\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar color_1 = require(\"../color\");\nvar vbox_1 = __importDefault(require(\"./vbox\"));\nvar pqueue_1 = __importDefault(require(\"./pqueue\"));\nvar fractByPopulations = 0.75;\nfunction _splitBoxes(pq, target) {\n var lastSize = pq.size();\n while (pq.size() < target) {\n var vbox = pq.pop();\n if (vbox && vbox.count() > 0) {\n var _a = vbox.split(), vbox1 = _a[0], vbox2 = _a[1];\n pq.push(vbox1);\n if (vbox2 && vbox2.count() > 0)\n pq.push(vbox2);\n // No more new boxes, converged\n if (pq.size() === lastSize) {\n break;\n }\n else {\n lastSize = pq.size();\n }\n }\n else {\n break;\n }\n }\n}\nvar MMCQ = function (pixels, opts) {\n if (pixels.length === 0 || opts.colorCount < 2 || opts.colorCount > 256) {\n throw new Error('Wrong MMCQ parameters');\n }\n var vbox = vbox_1.default.build(pixels);\n var hist = vbox.hist;\n var colorCount = Object.keys(hist).length;\n var pq = new pqueue_1.default(function (a, b) { return a.count() - b.count(); });\n pq.push(vbox);\n // first set of colors, sorted by population\n _splitBoxes(pq, fractByPopulations * opts.colorCount);\n // Re-order\n var pq2 = new pqueue_1.default(function (a, b) { return a.count() * a.volume() - b.count() * b.volume(); });\n pq2.contents = pq.contents;\n // next set - generate the median cuts using the (npix * vol) sorting.\n _splitBoxes(pq2, opts.colorCount - pq2.size());\n // calculate the actual colors\n return generateSwatches(pq2);\n};\nfunction generateSwatches(pq) {\n var swatches = [];\n while (pq.size()) {\n var v = pq.pop();\n var color = v.avg();\n var r = color[0], g = color[1], b = color[2];\n swatches.push(new color_1.Swatch(color, v.count()));\n }\n return swatches;\n}\nexports.default = MMCQ;\n//# sourceMappingURL=mmcq.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar PQueue = /** @class */ (function () {\n function PQueue(comparator) {\n this._comparator = comparator;\n this.contents = [];\n this._sorted = false;\n }\n PQueue.prototype._sort = function () {\n if (!this._sorted) {\n this.contents.sort(this._comparator);\n this._sorted = true;\n }\n };\n PQueue.prototype.push = function (item) {\n this.contents.push(item);\n this._sorted = false;\n };\n PQueue.prototype.peek = function (index) {\n this._sort();\n index = typeof index === 'number' ? index : this.contents.length - 1;\n return this.contents[index];\n };\n PQueue.prototype.pop = function () {\n this._sort();\n return this.contents.pop();\n };\n PQueue.prototype.size = function () {\n return this.contents.length;\n };\n PQueue.prototype.map = function (mapper) {\n this._sort();\n return this.contents.map(mapper);\n };\n return PQueue;\n}());\nexports.default = PQueue;\n//# sourceMappingURL=pqueue.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar util_1 = require(\"../util\");\nvar VBox = /** @class */ (function () {\n function VBox(r1, r2, g1, g2, b1, b2, hist) {\n this._volume = -1;\n this._count = -1;\n this.dimension = { r1: r1, r2: r2, g1: g1, g2: g2, b1: b1, b2: b2 };\n this.hist = hist;\n }\n VBox.build = function (pixels, shouldIgnore) {\n var hn = 1 << (3 * util_1.SIGBITS);\n var hist = new Uint32Array(hn);\n var rmax;\n var rmin;\n var gmax;\n var gmin;\n var bmax;\n var bmin;\n var r;\n var g;\n var b;\n var a;\n rmax = gmax = bmax = 0;\n rmin = gmin = bmin = Number.MAX_VALUE;\n var n = pixels.length / 4;\n var i = 0;\n while (i < n) {\n var offset = i * 4;\n i++;\n r = pixels[offset + 0];\n g = pixels[offset + 1];\n b = pixels[offset + 2];\n a = pixels[offset + 3];\n // Ignored pixels' alpha is marked as 0 in filtering stage\n if (a === 0)\n continue;\n r = r >> util_1.RSHIFT;\n g = g >> util_1.RSHIFT;\n b = b >> util_1.RSHIFT;\n var index = util_1.getColorIndex(r, g, b);\n hist[index] += 1;\n if (r > rmax)\n rmax = r;\n if (r < rmin)\n rmin = r;\n if (g > gmax)\n gmax = g;\n if (g < gmin)\n gmin = g;\n if (b > bmax)\n bmax = b;\n if (b < bmin)\n bmin = b;\n }\n return new VBox(rmin, rmax, gmin, gmax, bmin, bmax, hist);\n };\n VBox.prototype.invalidate = function () {\n this._volume = this._count = -1;\n this._avg = null;\n };\n VBox.prototype.volume = function () {\n if (this._volume < 0) {\n var _a = this.dimension, r1 = _a.r1, r2 = _a.r2, g1 = _a.g1, g2 = _a.g2, b1 = _a.b1, b2 = _a.b2;\n this._volume = (r2 - r1 + 1) * (g2 - g1 + 1) * (b2 - b1 + 1);\n }\n return this._volume;\n };\n VBox.prototype.count = function () {\n if (this._count < 0) {\n var hist = this.hist;\n var _a = this.dimension, r1 = _a.r1, r2 = _a.r2, g1 = _a.g1, g2 = _a.g2, b1 = _a.b1, b2 = _a.b2;\n var c = 0;\n for (var r = r1; r <= r2; r++) {\n for (var g = g1; g <= g2; g++) {\n for (var b = b1; b <= b2; b++) {\n var index = util_1.getColorIndex(r, g, b);\n c += hist[index];\n }\n }\n }\n this._count = c;\n }\n return this._count;\n };\n VBox.prototype.clone = function () {\n var hist = this.hist;\n var _a = this.dimension, r1 = _a.r1, r2 = _a.r2, g1 = _a.g1, g2 = _a.g2, b1 = _a.b1, b2 = _a.b2;\n return new VBox(r1, r2, g1, g2, b1, b2, hist);\n };\n VBox.prototype.avg = function () {\n if (!this._avg) {\n var hist = this.hist;\n var _a = this.dimension, r1 = _a.r1, r2 = _a.r2, g1 = _a.g1, g2 = _a.g2, b1 = _a.b1, b2 = _a.b2;\n var ntot = 0;\n var mult = 1 << (8 - util_1.SIGBITS);\n var rsum = void 0;\n var gsum = void 0;\n var bsum = void 0;\n rsum = gsum = bsum = 0;\n for (var r = r1; r <= r2; r++) {\n for (var g = g1; g <= g2; g++) {\n for (var b = b1; b <= b2; b++) {\n var index = util_1.getColorIndex(r, g, b);\n var h = hist[index];\n ntot += h;\n rsum += (h * (r + 0.5) * mult);\n gsum += (h * (g + 0.5) * mult);\n bsum += (h * (b + 0.5) * mult);\n }\n }\n }\n if (ntot) {\n this._avg = [\n ~~(rsum / ntot),\n ~~(gsum / ntot),\n ~~(bsum / ntot)\n ];\n }\n else {\n this._avg = [\n ~~(mult * (r1 + r2 + 1) / 2),\n ~~(mult * (g1 + g2 + 1) / 2),\n ~~(mult * (b1 + b2 + 1) / 2)\n ];\n }\n }\n return this._avg;\n };\n VBox.prototype.contains = function (rgb) {\n var r = rgb[0], g = rgb[1], b = rgb[2];\n var _a = this.dimension, r1 = _a.r1, r2 = _a.r2, g1 = _a.g1, g2 = _a.g2, b1 = _a.b1, b2 = _a.b2;\n r >>= util_1.RSHIFT;\n g >>= util_1.RSHIFT;\n b >>= util_1.RSHIFT;\n return r >= r1 && r <= r2 &&\n g >= g1 && g <= g2 &&\n b >= b1 && b <= b2;\n };\n VBox.prototype.split = function () {\n var hist = this.hist;\n var _a = this.dimension, r1 = _a.r1, r2 = _a.r2, g1 = _a.g1, g2 = _a.g2, b1 = _a.b1, b2 = _a.b2;\n var count = this.count();\n if (!count)\n return [];\n if (count === 1)\n return [this.clone()];\n var rw = r2 - r1 + 1;\n var gw = g2 - g1 + 1;\n var bw = b2 - b1 + 1;\n var maxw = Math.max(rw, gw, bw);\n var accSum = null;\n var sum;\n var total;\n sum = total = 0;\n var maxd = null;\n if (maxw === rw) {\n maxd = 'r';\n accSum = new Uint32Array(r2 + 1);\n for (var r = r1; r <= r2; r++) {\n sum = 0;\n for (var g = g1; g <= g2; g++) {\n for (var b = b1; b <= b2; b++) {\n var index = util_1.getColorIndex(r, g, b);\n sum += hist[index];\n }\n }\n total += sum;\n accSum[r] = total;\n }\n }\n else if (maxw === gw) {\n maxd = 'g';\n accSum = new Uint32Array(g2 + 1);\n for (var g = g1; g <= g2; g++) {\n sum = 0;\n for (var r = r1; r <= r2; r++) {\n for (var b = b1; b <= b2; b++) {\n var index = util_1.getColorIndex(r, g, b);\n sum += hist[index];\n }\n }\n total += sum;\n accSum[g] = total;\n }\n }\n else {\n maxd = 'b';\n accSum = new Uint32Array(b2 + 1);\n for (var b = b1; b <= b2; b++) {\n sum = 0;\n for (var r = r1; r <= r2; r++) {\n for (var g = g1; g <= g2; g++) {\n var index = util_1.getColorIndex(r, g, b);\n sum += hist[index];\n }\n }\n total += sum;\n accSum[b] = total;\n }\n }\n var splitPoint = -1;\n var reverseSum = new Uint32Array(accSum.length);\n for (var i = 0; i < accSum.length; i++) {\n var d = accSum[i];\n if (splitPoint < 0 && d > total / 2)\n splitPoint = i;\n reverseSum[i] = total - d;\n }\n var vbox = this;\n function doCut(d) {\n var dim1 = d + '1';\n var dim2 = d + '2';\n var d1 = vbox.dimension[dim1];\n var d2 = vbox.dimension[dim2];\n var vbox1 = vbox.clone();\n var vbox2 = vbox.clone();\n var left = splitPoint - d1;\n var right = d2 - splitPoint;\n if (left <= right) {\n d2 = Math.min(d2 - 1, ~~(splitPoint + right / 2));\n d2 = Math.max(0, d2);\n }\n else {\n d2 = Math.max(d1, ~~(splitPoint - 1 - left / 2));\n d2 = Math.min(vbox.dimension[dim2], d2);\n }\n while (!accSum[d2])\n d2++;\n var c2 = reverseSum[d2];\n while (!c2 && accSum[d2 - 1])\n c2 = reverseSum[--d2];\n vbox1.dimension[dim2] = d2;\n vbox2.dimension[dim1] = d2 + 1;\n return [vbox1, vbox2];\n }\n return doCut(maxd);\n };\n return VBox;\n}());\nexports.default = VBox;\n//# sourceMappingURL=vbox.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getColorIndex = exports.getColorDiffStatus = exports.hexDiff = exports.rgbDiff = exports.deltaE94 = exports.rgbToCIELab = exports.xyzToCIELab = exports.rgbToXyz = exports.hslToRgb = exports.rgbToHsl = exports.rgbToHex = exports.hexToRgb = exports.defer = exports.RSHIFT = exports.SIGBITS = exports.DELTAE94_DIFF_STATUS = void 0;\nexports.DELTAE94_DIFF_STATUS = {\n NA: 0,\n PERFECT: 1,\n CLOSE: 2,\n GOOD: 10,\n SIMILAR: 50\n};\nexports.SIGBITS = 5;\nexports.RSHIFT = 8 - exports.SIGBITS;\nfunction defer() {\n var resolve;\n var reject;\n // eslint-disable-next-line promise/param-names\n var promise = new Promise(function (_resolve, _reject) {\n resolve = _resolve;\n reject = _reject;\n });\n // @ts-ignore\n return { resolve: resolve, reject: reject, promise: promise };\n}\nexports.defer = defer;\nfunction hexToRgb(hex) {\n var m = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n return m === null ? null : [m[1], m[2], m[3]].map(function (s) { return parseInt(s, 16); });\n}\nexports.hexToRgb = hexToRgb;\nfunction rgbToHex(r, g, b) {\n return '#' + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1, 7);\n}\nexports.rgbToHex = rgbToHex;\nfunction rgbToHsl(r, g, b) {\n r /= 255;\n g /= 255;\n b /= 255;\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h;\n var s;\n var l = (max + min) / 2;\n if (max === min) {\n h = s = 0;\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n // @ts-ignore\n h /= 6;\n }\n // @ts-ignore\n return [h, s, l];\n}\nexports.rgbToHsl = rgbToHsl;\nfunction hslToRgb(h, s, l) {\n var r;\n var g;\n var b;\n function hue2rgb(p, q, t) {\n if (t < 0)\n t += 1;\n if (t > 1)\n t -= 1;\n if (t < 1 / 6)\n return p + (q - p) * 6 * t;\n if (t < 1 / 2)\n return q;\n if (t < 2 / 3)\n return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n if (s === 0) {\n r = g = b = l;\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - (l * s);\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - (1 / 3));\n }\n return [\n r * 255,\n g * 255,\n b * 255\n ];\n}\nexports.hslToRgb = hslToRgb;\nfunction rgbToXyz(r, g, b) {\n r /= 255;\n g /= 255;\n b /= 255;\n r = r > 0.04045 ? Math.pow((r + 0.005) / 1.055, 2.4) : r / 12.92;\n g = g > 0.04045 ? Math.pow((g + 0.005) / 1.055, 2.4) : g / 12.92;\n b = b > 0.04045 ? Math.pow((b + 0.005) / 1.055, 2.4) : b / 12.92;\n r *= 100;\n g *= 100;\n b *= 100;\n var x = r * 0.4124 + g * 0.3576 + b * 0.1805;\n var y = r * 0.2126 + g * 0.7152 + b * 0.0722;\n var z = r * 0.0193 + g * 0.1192 + b * 0.9505;\n return [x, y, z];\n}\nexports.rgbToXyz = rgbToXyz;\nfunction xyzToCIELab(x, y, z) {\n var REF_X = 95.047;\n var REF_Y = 100;\n var REF_Z = 108.883;\n x /= REF_X;\n y /= REF_Y;\n z /= REF_Z;\n x = x > 0.008856 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116;\n y = y > 0.008856 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116;\n z = z > 0.008856 ? Math.pow(z, 1 / 3) : 7.787 * z + 16 / 116;\n var L = 116 * y - 16;\n var a = 500 * (x - y);\n var b = 200 * (y - z);\n return [L, a, b];\n}\nexports.xyzToCIELab = xyzToCIELab;\nfunction rgbToCIELab(r, g, b) {\n var _a = rgbToXyz(r, g, b), x = _a[0], y = _a[1], z = _a[2];\n return xyzToCIELab(x, y, z);\n}\nexports.rgbToCIELab = rgbToCIELab;\nfunction deltaE94(lab1, lab2) {\n var WEIGHT_L = 1;\n var WEIGHT_C = 1;\n var WEIGHT_H = 1;\n var L1 = lab1[0], a1 = lab1[1], b1 = lab1[2];\n var L2 = lab2[0], a2 = lab2[1], b2 = lab2[2];\n var dL = L1 - L2;\n var da = a1 - a2;\n var db = b1 - b2;\n var xC1 = Math.sqrt(a1 * a1 + b1 * b1);\n var xC2 = Math.sqrt(a2 * a2 + b2 * b2);\n var xDL = L2 - L1;\n var xDC = xC2 - xC1;\n var xDE = Math.sqrt(dL * dL + da * da + db * db);\n var xDH = (Math.sqrt(xDE) > Math.sqrt(Math.abs(xDL)) + Math.sqrt(Math.abs(xDC)))\n ? Math.sqrt(xDE * xDE - xDL * xDL - xDC * xDC)\n : 0;\n var xSC = 1 + 0.045 * xC1;\n var xSH = 1 + 0.015 * xC1;\n xDL /= WEIGHT_L;\n xDC /= WEIGHT_C * xSC;\n xDH /= WEIGHT_H * xSH;\n return Math.sqrt(xDL * xDL + xDC * xDC + xDH * xDH);\n}\nexports.deltaE94 = deltaE94;\nfunction rgbDiff(rgb1, rgb2) {\n var lab1 = rgbToCIELab.apply(undefined, rgb1);\n var lab2 = rgbToCIELab.apply(undefined, rgb2);\n return deltaE94(lab1, lab2);\n}\nexports.rgbDiff = rgbDiff;\nfunction hexDiff(hex1, hex2) {\n var rgb1 = hexToRgb(hex1);\n var rgb2 = hexToRgb(hex2);\n return rgbDiff(rgb1, rgb2);\n}\nexports.hexDiff = hexDiff;\nfunction getColorDiffStatus(d) {\n if (d < exports.DELTAE94_DIFF_STATUS.NA) {\n return 'N/A';\n }\n // Not perceptible by human eyes\n if (d <= exports.DELTAE94_DIFF_STATUS.PERFECT) {\n return 'Perfect';\n }\n // Perceptible through close observation\n if (d <= exports.DELTAE94_DIFF_STATUS.CLOSE) {\n return 'Close';\n }\n // Perceptible at a glance\n if (d <= exports.DELTAE94_DIFF_STATUS.GOOD) {\n return 'Good';\n }\n // Colors are more similar than opposite\n if (d < exports.DELTAE94_DIFF_STATUS.SIMILAR) {\n return 'Similar';\n }\n return 'Wrong';\n}\nexports.getColorDiffStatus = getColorDiffStatus;\nfunction getColorIndex(r, g, b) {\n return (r << (2 * exports.SIGBITS)) + (g << exports.SIGBITS) + b;\n}\nexports.getColorIndex = getColorIndex;\n//# sourceMappingURL=util.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar color_1 = require(\"./color\");\nvar builder_1 = __importDefault(require(\"./builder\"));\nvar Util = __importStar(require(\"./util\"));\nvar Quantizer = __importStar(require(\"./quantizer\"));\nvar Generator = __importStar(require(\"./generator\"));\nvar Filters = __importStar(require(\"./filter\"));\nvar defaults = require(\"lodash/defaults\");\nvar Vibrant = /** @class */ (function () {\n function Vibrant(_src, opts) {\n this._src = _src;\n this.opts = defaults({}, opts, Vibrant.DefaultOpts);\n this.opts.combinedFilter = Filters.combineFilters(this.opts.filters);\n }\n Vibrant.from = function (src) {\n return new builder_1.default(src);\n };\n Vibrant.prototype._process = function (image, opts) {\n var quantizer = opts.quantizer, generator = opts.generator;\n image.scaleDown(opts);\n return image.applyFilter(opts.combinedFilter)\n .then(function (imageData) { return quantizer(imageData.data, opts); })\n .then(function (colors) { return color_1.Swatch.applyFilter(colors, opts.combinedFilter); })\n .then(function (colors) { return Promise.resolve(generator(colors)); });\n };\n Vibrant.prototype.palette = function () {\n return this.swatches();\n };\n Vibrant.prototype.swatches = function () {\n return this._palette;\n };\n Vibrant.prototype.getPalette = function (cb) {\n var _this = this;\n var image = new this.opts.ImageClass();\n var result = image.load(this._src)\n .then(function (image) { return _this._process(image, _this.opts); })\n .then(function (palette) {\n _this._palette = palette;\n image.remove();\n return palette;\n }, function (err) {\n image.remove();\n throw err;\n });\n if (cb)\n result.then(function (palette) { return cb(null, palette); }, function (err) { return cb(err); });\n return result;\n };\n Vibrant.Builder = builder_1.default;\n Vibrant.Quantizer = Quantizer;\n Vibrant.Generator = Generator;\n Vibrant.Filter = Filters;\n Vibrant.Util = Util;\n Vibrant.Swatch = color_1.Swatch;\n Vibrant.DefaultOpts = {\n colorCount: 64,\n quality: 5,\n generator: Generator.Default,\n ImageClass: null,\n quantizer: Quantizer.MMCQ,\n filters: [Filters.Default]\n };\n return Vibrant;\n}());\nexports.default = Vibrant;\n//# sourceMappingURL=vibrant.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};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"1215\":\"dd1ef4c4cc807022e660\",\"5076\":\"15b21454a9691213632e\"}[chunkId] + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__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 = 1474;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && !scriptUrl) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = 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\t1474: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\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 = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\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 = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\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, [7874], () => (__webpack_require__(52689)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","name","emits","props","title","type","String","fillColor","default","size","Number","_vm","this","_c","_self","_b","staticClass","attrs","on","$event","$emit","$attrs","_v","_s","_e","backgroundImage","loadState","shippedBackgroundList","themingDefaultBackground","defaultShippedBackground","prefixWithBaseUrl","url","generateFilePath","components","Check","Close","ImageEdit","NcButton","NcColorPicker","data","loading","Theming","computed","shippedBackgrounds","Object","keys","map","fileName","preview","details","filter","background","isGlobalBackgroundDeleted","isGlobalBackgroundDefault","isBackgroundDisabled","methods","invertTextColor","color","calculateLuma","red","green","blue","hexToRGB","hex","result","exec","parseInt","update","backgroundColor","setDefault","axios","post","generateUrl","setShipped","shipped","value","setFile","path","arguments","length","undefined","removeBackground","delete","pickColor","event","target","dataset","debouncePickColor","debounce","pickFile","getFilePickerBuilder","t","allowDirectories","setMimeTypeFilter","setMultiSelect","addButton","id","label","callback","nodes","applyFile","build","pick","trim","console","error","showError","response","fileUrl","generateRemoteUrl","getCurrentUser","uid","get","responseType","blobUrl","URL","createObjectURL","palette","getColorPaletteFromBlob","DarkVibrant","debug","Promise","resolve","reject","Vibrant","getPalette","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","class","style","defaultColor","model","$$v","$set","expression","_l","shippedBackground","key","primary_color","attribution","description","theming","NcCheckboxRadioSwitch","enforced","Boolean","selected","theme","required","unique","switchType","img","checked","set","enabled","onToggle","enableLabel","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperty","defineProperty","enumerable","configurable","writable","_extends","assign","i","source","hasOwnProperty","call","apply","_objectSpread","ownKeys","getOwnPropertySymbols","concat","sym","getOwnPropertyDescriptor","forEach","userAgent","pattern","window","navigator","match","IE11OrLess","Edge","FireFox","Safari","IOS","ChromeForAndroid","captureMode","capture","passive","el","fn","addEventListener","off","removeEventListener","matches","selector","substring","msMatchesSelector","webkitMatchesSelector","_","getParentOrHost","host","document","nodeType","parentNode","closest","ctx","includeCTX","_throttleTimeout","R_SPACE","toggleClass","state","classList","className","replace","css","prop","val","defaultView","getComputedStyle","currentStyle","indexOf","matrix","selfOnly","appliedTransforms","transform","matrixFn","DOMMatrix","WebKitCSSMatrix","CSSMatrix","MSCSSMatrix","find","tagName","list","getElementsByTagName","n","getWindowScrollingElement","scrollingElement","documentElement","getRect","relativeToContainingBlock","relativeToNonStaticParent","undoScale","container","getBoundingClientRect","elRect","top","left","bottom","right","height","width","innerHeight","innerWidth","containerRect","elMatrix","scaleX","a","scaleY","d","isScrolledPast","elSide","parentSide","parent","getParentAutoScrollElement","elSideVal","parentSideVal","getChild","childNum","currentChild","children","display","Sortable","ghost","dragged","draggable","lastChild","last","lastElementChild","previousElementSibling","index","nodeName","toUpperCase","clone","getRelativeScrollOffset","offsetLeft","offsetTop","winScroller","scrollLeft","scrollTop","includeSelf","elem","gotSelf","clientWidth","scrollWidth","clientHeight","scrollHeight","elemCSS","overflowX","overflowY","body","isRectEqual","rect1","rect2","Math","round","throttle","ms","args","setTimeout","scrollBy","x","y","Polymer","$","jQuery","Zepto","dom","cloneNode","expando","Date","getTime","plugins","defaults","initializeByDefault","PluginManager","mount","plugin","option","push","pluginEvent","eventName","sortable","evt","_this","eventCanceled","cancel","eventNameGlobal","pluginName","initializePlugins","initialized","modified","modifyOption","getEventProperties","eventProperties","modifiedValue","optionListeners","_ref","originalEvent","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_objectWithoutProperties","bind","dragEl","parentEl","ghostEl","rootEl","nextEl","lastDownEl","cloneEl","cloneHidden","dragStarted","moved","putSortable","activeSortable","active","oldIndex","oldDraggableIndex","newIndex","newDraggableIndex","hideGhostForTarget","_hideGhostForTarget","unhideGhostForTarget","_unhideGhostForTarget","cloneNowHidden","cloneNowShown","dispatchSortableEvent","_dispatchEvent","info","targetEl","toEl","fromEl","extraEventProperties","onName","charAt","substr","CustomEvent","createEvent","initEvent","bubbles","cancelable","to","from","item","pullMode","lastPutMode","allEventProperties","dispatchEvent","activeGroup","tapEvt","touchEvt","lastDx","lastDy","tapDistanceLeft","tapDistanceTop","lastTarget","lastDirection","targetMoveDistance","ghostRelativeParent","awaitingDragStarted","ignoreNextClick","sortables","pastFirstInvertThresh","isCircumstantialInvert","ghostRelativeParentInitialScroll","_silent","savedInputChecked","documentExists","PositionGhostAbsolutely","CSSFloatProperty","supportDraggable","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","rect","threshold","emptyInsertThreshold","insideHorizontally","insideVertically","ret","_onDragOver","_checkOutsideTargetEl","_isOutsideThisEl","toString","animationCallbackId","animationStates","sort","disabled","store","handle","test","swapThreshold","invertSwap","invertedSwapThreshold","removeCloneOnHide","direction","ghostClass","chosenClass","dragClass","ignore","preventOnFilter","animation","easing","setData","dataTransfer","textContent","dropBubble","dragoverBubble","dataIdAttr","delay","delayOnTouchOnly","touchStartThreshold","devicePixelRatio","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","nativeDraggable","_onTapStart","captureAnimationState","slice","child","fromRect","thisAnimationDuration","childMatrix","f","e","addAnimationState","removeAnimationState","splice","arr","indexOfObject","animateAll","clearTimeout","animating","animationTime","time","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","src","href","sum","charCodeAt","_nextTick","_cancelNextTick","contains","_getDirection","touch","pointerType","originalTarget","shadowRoot","composedPath","root","inputs","idx","_saveInputCheckedState","button","isContentEditable","criteria","_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","b","c","cssMatrix","appendChild","_hideClone","cloneId","insertBefore","_loopId","setInterval","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","items","destroy","Array","querySelectorAll","removeAttribute","utils","is","extend","dst","nextTick","cancelNextTick","detectDirection","element","_len","_key","create","version","scrollEl","scrollRootEl","lastAutoScrollX","lastAutoScrollY","touchEvt$1","pointerElemChangedInterval","autoScrolls","scrolling","clearAutoScrolls","autoScroll","pid","clearPointerElemChangedInterval","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","startIndex","dragStart","_ref2","_ref3","_ref4","parentSortable","AutoScroll","_handleAutoScroll","_handleFallbackAutoScroll","dragOverCompleted","dragOverBubble","nulling","ogElemScroller","newElem","util","warn","defineComponent","IconArrowDown","IconArrowUp","ariaDescribedby","ariaDetails","app","isFirst","isLast","move:up","move:down","update:focus","setup","emit","buttonUp","ref","buttonDown","needsFocus","moveUp","moveDown","keepFocus","$el","focus","_setupProxy","icon","directives","rawName","scopedSlots","_u","proxy","AppOrderSelectorElement","Fragment","isArray","listElement","appList","newValue","renderCount","resetOptions","defaultOptions","onUpdate","_valueIsRef","isRef","array","moveArrayElement","start","querySelector","stop","useSortable","selectorElements","onUpdated","statusInfo","before","statusInfoId","random","updateStatusInfo","position","total","_g","refInFor","AppOrderSelector","IconUndo","NcNoteCard","NcSettingsSection","userAppOrder","enforcedDefaultApp","initialAppOrder","values","hasCustomAppOrder","hasAppOrderChanged","appOrder","elementIdAppOrderChanged","elementIdEnforcedDefaultApp","ariaDetailsAppOrder","saveSetting","generateOcsUrl","appId","configKey","configValue","JSON","stringify","updateAppOrder","then","catch","resetAppOrder","headers","ocs","availableThemes","enforceTheme","shortcutsDisabled","isUserThemingDisabled","ItemPreview","BackgroundSettings","UserAppMenuSection","themes","fonts","selectedTheme","guidelinesLink","descriptionDetail","issuetrackerLink","designteamLink","watch","newState","changeShortcutsDisabled","refreshGlobalStyles","head","searchParams","now","newTheme","onload","remove","append","updateBackground","changeTheme","updateBodyAttributes","selectItem","changeFont","font","method","enabledThemesIDs","enabledFontsIDs","toggleAttribute","setAttribute","themeId","OC","Notification","showTemporary","meta","message","domProps","__webpack_nonce__","btoa","getRequestToken","Vue","App","$mount","$on","refreshStyles","___CSS_LOADER_EXPORT___","module","baseForOwn","baseEach","createBaseEach","exports","collection","predicate","baseFor","object","iteratee","isArrayLike","eachFunc","fromRight","iterable","baseRest","eq","isIterateeCall","keysIn","objectProto","sources","guard","propsIndex","propsLength","arrayFilter","baseFilter","baseIteratee","__importDefault","mod","__esModule","vibrant_1","browser_1","DefaultOpts","ImageClass","Builder","opts","_src","_opts","filters","maxColorCount","colorCount","maxDimension","addFilter","removeFilter","clearFilters","quality","q","useImageClass","imageClass","useGenerator","generator","useQuantizer","quantizer","cb","getSwatches","Swatch","util_1","rgb","population","_rgb","_population","applyFilter","colors","_a","r","g","_hsl","rgbToHsl","_hex","rgbToHex","toJSON","getRgb","getHsl","hsl","getPopulation","getHex","getYiq","_yiq","_titleTextColor","_bodyTextColor","getTitleTextColor","titleTextColor","getBodyTextColor","bodyTextColor","combineFilters","default_1","color_1","targetDarkLuma","maxDarkLuma","minLightLuma","targetLightLuma","minNormalLuma","targetNormalLuma","maxNormalLuma","targetMutesSaturation","maxMutesSaturation","targetVibrantSaturation","minVibrantSaturation","weightSaturation","weightLuma","weightPopulation","_findColorVariation","swatches","maxPopulation","targetLuma","minLuma","maxLuma","targetSaturation","minSaturation","maxSaturation","maxValue","swatch","s","l","LightVibrant","Muted","DarkMuted","LightMuted","_isAlreadySelected","saturation","luma","invertDiff","targetValue","_i","weightSum","weight","weightedMean","_createComparisonValue","p","_findMaxPopulation","_generateVariationColors","h","hslToRgb","_d","_f","_h","_j","_generateEmptySwatches","ImageBase","scaleDown","getWidth","getHeight","ratio","maxSide","resize","imageData","getImageData","pixels","offset","extendStatics","__extends","setPrototypeOf","__proto__","__","__createBinding","o","m","k","k2","__setModuleDefault","v","__importStar","base_1","Url","BrowserImage","_super","_initCanvas","image","canvas","_canvas","context","_context","getContext","_width","_height","drawImage","load","ua","ub","u","parse","protocol","port","location","hostname","crossOrigin","HTMLImageElement","Error","onImageLoad","complete","onerror","clearRect","putImageData","targetWidth","targetHeight","scale","getPixelCount","WebWorker","mmcq_1","vbox_1","pqueue_1","_splitBoxes","pq","lastSize","vbox","pop","count","vbox1","vbox2","hist","pq2","volume","contents","avg","generateSwatches","PQueue","comparator","_comparator","_sorted","_sort","peek","mapper","VBox","r1","r2","g1","g2","b1","b2","_volume","_count","dimension","shouldIgnore","rmax","rmin","gmax","gmin","bmax","bmin","hn","SIGBITS","Uint32Array","MAX_VALUE","RSHIFT","getColorIndex","invalidate","_avg","ntot","mult","rsum","gsum","bsum","rw","gw","bw","maxw","accSum","maxd","splitPoint","reverseSum","dim1","dim2","d1","d2","min","c2","doCut","hexToRgb","rgbToXyz","xyzToCIELab","z","rgbToCIELab","deltaE94","lab1","lab2","L1","a1","L2","a2","dL","da","db","xC1","xDL","xDC","xDE","xDH","rgbDiff","rgb1","rgb2","getColorDiffStatus","hexDiff","defer","DELTAE94_DIFF_STATUS","NA","PERFECT","CLOSE","GOOD","SIMILAR","promise","_resolve","_reject","hue2rgb","hex1","hex2","builder_1","Util","Quantizer","Generator","Filters","combinedFilter","_process","_palette","Filter","Default","MMCQ","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","every","getter","definition","chunkId","all","reduce","promises","globalThis","Function","done","script","needAttach","scripts","charset","timeout","nc","onScriptComplete","prev","doneFns","toStringTag","nmd","paths","scriptUrl","importScripts","currentScript","baseURI","self","installedChunks","installedChunkData","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file