|
|
(()=>{var e,n={432:function(t,e,n){var a;"undefined"!=typeof self&&self,a=function(t){return function(t){var e={};function n(a){if(e[a])return e[a].exports;var i=e[a]={i:a,l:!1,exports:{}};return t[a].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,a){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:a})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var a=Object.create(null);if(n.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(a,i,function(e){return t[e]}.bind(null,i));return a},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s="fb15")}({"01f9":function(t,e,n){"use strict";var a=n("2d00"),i=n("5ca1"),o=n("2aba"),r=n("32e9"),s=n("84f2"),l=n("41a0"),c=n("7f20"),d=n("38fd"),u=n("2b4c")("iterator"),p=!([].keys&&"next"in[].keys()),h="keys",f="values",g=function(){return this};t.exports=function(t,e,n,m,v,A,b){l(n,e,m);var y,C,x,w=function(t){if(!p&&t in E)return E[t];switch(t){case h:case f:return function(){return new n(this,t)}}return function(){return new n(this,t)}},_=e+" Iterator",k=v==f,S=!1,E=t.prototype,D=E[u]||E["@@iterator"]||v&&E[v],I=D||w(v),B=v?k?w("entries"):I:void 0,O="Array"==e&&E.entries||D;if(O&&(x=d(O.call(new t)))!==Object.prototype&&x.next&&(c(x,_,!0),a||"function"==typeof x[u]||r(x,u,g)),k&&D&&D.name!==f&&(S=!0,I=function(){return D.call(this)}),a&&!b||!p&&!S&&E[u]||r(E,u,I),s[e]=I,s[_]=g,v)if(y={values:k?I:w(f),keys:A?I:w(h),entries:B},b)for(C in y)C in E||o(E,C,y[C]);else i(i.P+i.F*(p||S),e,y);return y}},"02f4":function(t,e,n){var a=n("4588"),i=n("be13");t.exports=function(t){return function(e,n){var o,r,s=String(i(e)),l=a(n),c=s.length;return l<0||l>=c?t?"":void 0:(o=s.charCodeAt(l))<55296||o>56319||l+1===c||(r=s.charCodeAt(l+1))<56320||r>57343?t?s.charAt(l):o:t?s.slice(l,l+2):r-56320+(o-55296<<10)+65536}}},"0390":function(t,e,n){"use strict";var a=n("02f4")(!0);t.exports=function(t,e,n){return e+(n?a(t,e).length:1)}},"0bfb":function(t,e,n){"use strict";var a=n("cb7c");t.exports=function(){var t=a(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},"0d58":function(t,e,n){var a=n("ce10"),i=n("e11e");t.exports=Object.keys||function(t){return a(t,i)}},1495:function(t,e,n){var a=n("86cc"),i=n("cb7c"),o=n("0d58");t.exports=n("9e1e")?Object.defineProperties:function(t,e){i(t);for(var n,r=o(e),s=r.length,l=0;s>l;)a.f(t,n=r[l++],e[n]);return t}},"214f":function(t,e,n){"use strict";n("b0c5");var a=n("2aba"),i=n("32e9"),o=n("79e5"),r=n("be13"),s=n("2b4c"),l=n("520a"),c=s("species"),d=!o(function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$<a>")}),u=function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n="ab".split(t);return 2===n.length&&"a"===n[0]&&"b"===n[1]}();t.exports=function(t,e,n){var p=s(t),h=!o(function(){var e={};return e[p]=function(){return 7},7!=""[t](e)}),f=h?!o(function(){var e=!1,n=/a/;return n.exec=function(){return e=!0,null},"split"===t&&(n.constructor={},n.constructor[c]=function(){return n}),n[p](""),!e}):void 0;if(!h||!f||"replace"===t&&!d||"split"===t&&!u){var g=/./[p],m=n(r,p,""[t],function(t,e,n,a,i){return e.exec===l?h&&!i?{done:!0,value:g.call(e,n,a)}:{done:!0,value:t.call(n,e,a)}:{done:!1}}),v=m[0],A=m[1];a(String.prototype,t,v),i(RegExp.prototype,p,2==e?function(t,e){return A.call(t,this,e)}:function(t){return A.call(t,this)})}}},"230e":function(t,e,n){var a=n("d3f4"),i=n("7726").document,o=a(i)&&a(i.createElement);t.exports=function(t){return o?i.createElement(t):{}}},"23c6":function(t,e,n){var a=n("2d95"),i=n("2b4c")("toStringTag"),o="Arguments"==a(function(){return arguments}());t.exports=function(t){var e,n,r;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),i))?n:o?a(e):"Object"==(r=a(e))&&"function"==typeof e.callee?"Arguments":r}},2621:function(t,e){e.f=Object.getOwnPropertySymbols},"2aba":function(t,e,n){var a=n("7726"),i=n("32e9"),o=n("69a8"),r=n("ca5a")("src"),s=n("fa5b"),l="toString",c=(""+s).split(l);n("8378").inspectSource=function(t){return s.call(t)},(t.exports=function(t,e,n,s){var l="function"==typeof n;l&&(o(n,"name")||i(n,"name",e)),t[e]!==n&&(l&&(o(n,r)||i(n,r,t[e]?""+t[e]:c.join(String(e)))),t===a?t[e]=n:s?t[e]?t[e]=n:i(t,e,n):(delete t[e],i(t,e,n)))})(Function.prototype,l,function(){return"function"==typeof this&&this[r]||s.call(this)})},"2aeb":function(t,e,n){var a=n("cb7c"),i=n("1495"),o=n("e11e"),r=n("613b")("IE_PROTO"),s=function(){},l="prototype",c=function(){var t,e=n("230e")("iframe"),a=o.length;for(e.style.display="none",n("fab2").appendChild(e),e.src="javascript:",(t=e.contentWindow.document).open(),t.write("<script>document.F=Object<\/script>"),t.close(),c=t.F;a--;)delete c[l][o[a]];return c()};t.exports=Object.create||function(t,e){var n;return null!==t?(s[l]=a(t),n=new s,s[l]=null,n[r]=t):n=c(),void 0===e?n:i(n,e)}},"2b4c":function(t,e,n){var a=n("5537")("wks"),i=n("ca5a"),o=n("7726").Symbol,r="function"==typeof o;(t.exports=function(t){return a[t]||(a[t]=r&&o[t]||(r?o:i)("Symbol."+t))}).store=a},"2d00":function(t,e){t.exports=!1},"2d95":function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},"2fdb":function(t,e,n){"use strict";var a=n("5ca1"),i=n("d2c8"),o="includes";a(a.P+a.F*n("5147")(o),"String",{includes:function(t){return!!~i(this,t,o).indexOf(t,arguments.length>1?arguments[1]:void 0)}})},"32e9":function(t,e,n){var a=n("86cc"),i=n("4630");t.exports=n("9e1e")?function(t,e,n){return a.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},"38fd":function(t,e,n){var a=n("69a8"),i=n("4bf8"),o=n("613b")("IE_PROTO"),r=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=i(t),a(t,o)?t[o]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?r:null}},"41a0":function(t,e,n){"use strict";var a=n("2aeb"),i=n("4630"),o=n("7f20"),r={};n("32e9")(r,n("2b4c")("iterator"),function(){return this}),t.exports=function(t,e,n){t.prototype=a(r,{next:i(1,n)}),o(t,e+" Iterator")}},"456d":function(t,e,n){var a=n("4bf8"),i=n("0d58");n("5eda")("keys",function(){return function(t){return i(a(t))}})},4588:function(t,e){var n=Math.ceil,a=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?a:n)(t)}},4630:function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},"4bf8":function(t,e,n){var a=n("be13");t.exports=function(t){return Object(a(t))}},5147:function(t,e,n){var a=n("2b4c")("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[a]=!1,!"/./"[t](e)}catch(t){}}return!0}},"520a":function(t,e,n){"use strict";var a,i,o=n("0bfb"),r=RegExp.prototype.exec,s=String.prototype.replace,l=r,c="lastIndex",d=(a=/a/,i=/b*/g,r.call(a,"a"),r.call(i,"a"),0!==a[c]||0!==i[c]),u=void 0!==/()??/.exec("")[1];(d||u)&&(l=function(t){var e,n,a,i,l=this;return u&&(n=new RegExp("^"+l.source+"$(?!\\s)",o.call(l))),d&&(e=l[c]),a=r.call(l,t),d&&a&&(l[c]=l.global?a.index+a[0].length:e),u&&a&&a.length>1&&s.call(a[0],n,function(){for(i=1;i<arguments.length-2;i++)void 0===arguments[i]&&(a[i]=void 0)}),a}),t.exports=l},"52a7":function(t,e){e.f={}.propertyIsEnumerable},5537:function(t,e,n){var a=n("8378"),i=n("7726"),o="__core-js_shared__",r=i[o]||(i[o]={});(t.exports=function(t,e){return r[t]||(r[t]=void 0!==e?e:{})})("versions",[]).push({version:a.version,mode:n("2d00")?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},"5ca1":function(t,e,n){var a=n("7726"),i=n("8378"),o=n("32e9"),r=n("2aba"),s=n("9b43"),l="prototype",c=function(t,e,n){var d,u,p,h,f=t&c.F,g=t&c.G,m=t&c.S,v=t&c.P,A=t&c.B,b=g?a:m?a[e]||(a[e]={}):(a[e]||{})[l],y=g?i:i[e]||(i[e]={}),C=y[l]||(y[l]={});for(d in g&&(n=e),n)p=((u=!f&&b&&void 0!==b[d])?b:n)[d],h=A&&u?s(p,a):v&&"function"==typeof p?s(Function.call,p):p,b&&r(b,d,p,t&c.U),y[d]!=p&&o(y,d,h),v&&C[d]!=p&&(C[d]=p)};a.core=i,c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,t.exports=c},"5eda":function(t,e,n){var a=n("5ca1"),i=n("8378"),o=n("79e5");t.exports=function(t,e){var n=(i.Object||{})[t]||Object[t],r={};r[t]=e(n),a(a.S+a.F*o(function(){n(1)}),"Object",r)}},"5f1b":function(t,e,n){"use strict";var a=n("23c6"),i=RegExp.prototype.exec;t.exports=function(t,e){var n=t.exec;if("function"==typeof n){var o=n.call(t,e);if("object"!=typeof o)throw new TypeError("RegExp exec method returned something other than an Object or null");return o}if("RegExp"!==a(t))throw new TypeError("RegExp#exec called on incompatible receiver");return i.call(t,e)}},"613b":function(t,e,n){var a=n("5537")("keys"),i=n("ca5a");t.exports=function(t){return a[t]||(a[t]=i(t))}},"626a":function(t,e,n){var a=n("2d95");t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==a(t)?t.split(""):Object(t)}},6762:function(t,e,n){"use strict";var a=n("5ca1"),i=n("c366")(!0);a(a.P,"Array",{includes:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),n("9c6c")("includes")},6821:function(t,e,n){var a=n("626a"),i=n("be13");t.exports=function(t){return a(i(t))}},"69a8":function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},"6a99":function(t,e,n){var a=n("d3f4");t.exports=function(t,e){if(!a(t))return t;var n,i;if(e&&"function"==typeof(n=t.toString)&&!a(i=n.call(t)))return i;if("function"==typeof(n=t.valueOf)&&!a(i=n.call(t)))return i;if(!e&&"function"==typeof(n=t.toString)&&!a(i=n.call(t)))return i;throw TypeError("Can't convert object to primitive value")}},7333:function(t,e,n){"use strict";var a=n("0d58"),i=n("2621"),o=n("52a7"),r=n("4bf8"),s=n("626a"),l=Object.assign;t.exports=!l||n("79e5")(function(){var t={},e={},n=Symbol(),a="abcdefghijklmnopqrst";return t[n]=7,a.split("").forEach(function(t){e[t]=t}),7!=l({},t)[n]||Object.keys(l({},e)).join("")!=a})?function(t,e){for(var n=r(t),l=arguments.length,c=1,d=i.f,u=o.f;l>c;)for(var p,h=s(arguments[c++]),f=d?a(h).concat(d(h)):a(h),g=f.length,m=0;g>m;)u.call(h,p=f[m++])&&(n[p]=h[p]);return n}:l},7726:function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},"77f1":function(t,e,n){var a=n("4588"),i=Math.max,o=Math.min;t.exports=function(t,e){return(t=a(t))<0?i(t+e,0):o(t,e)}},"79e5":function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},"7f20":function(t,e,n){var a=n("86cc").f,i=n("69a8"),o=n("2b4c")("toStringTag");t.exports=function(t,e,n){t&&!i(t=n?t:t.prototype,o)&&a(t,o,{configurable:!0,value:e})}},8378:function(t,e){var n=t.exports={version:"2.6.5"};"number"==typeof __e&&(__e=n)},"84f2":function(t,e){t.exports={}},"86cc":function(t,e,n){var a=n("cb7c"),i=n("c69a"),o=n("6a99"),r=Object.defineProperty;e.f=n("9e1e")?Object.defineProperty:function(t,e,n){if(a(t),e=o(e,!0),a(n),i)try{return r(t,e,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},"9b43":function(t,e,n){var a=n("d8e8");t.exports=function(t,e,n){if(a(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,a){return t.call(e,n,a)};case 3:return function(n,a,i){return t.call(e,n,a,i)}}return function(){return t.apply(e,arguments)}}},"9c6c":function(t,e,n){var a=n("2b4c")("unscopables"),i=Array.prototype;null==i[a]&&n("32e9")(i,a,{}),t.exports=function(t){i[a][t]=!0}},"9def":function(t,e,n){var a=n("4588"),i=Math.min;t.exports=function(t){return t>0?i(a(t),9007199254740991):0}},"9e1e":function(t,e,n){t.exports=!n("79e5")(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},a352:function(e,n){e.exports=t},a481:function(t,e,n){"use strict";var a=n("cb7c"),i=n("4bf8"),o=n("9def"),r=n("4588"),s=n("0390"),l=n("5f1b"),c=Math.max,d=Math.min,u=Math.floor,p=/\$([$&`']|\d\d?|<[^>]*>)/g,h=/\$([$&`']|\d\d?)/g,f=function(t){return void 0===t?t:String(t)};n("214f")("replace",2,function(t,e,n,g){return[function(a,i){var o=t(this),r=null==a?void 0:a[e];return void 0!==r?r.call(a,o,i):n.call(String(o),a,i)},function(t,e){var i=g(n,t,this,e);if(i.done)return i.value;var u=a(t),p=String(this),h="function"==typeof e;h||(e=String(e));var v=u.global;if(v){var A=u.unicode;u.lastIndex=0}for(var b=[];;){var y=l(u,p);if(null===y)break;if(b.push(y),!v)break;""===String(y[0])&&(u.lastIndex=s(p,o(u.lastIndex),A))}for(var C="",x=0,w=0;w<b.length;w++){y=b[w];for(var _=String(y[0]),k=c(d(r(y.index),p.length),0),S=[],E=1;E<y.length;E++)S.push(f(y[E]));var D=y.groups;if(h){var I=[_].concat(S,k,p);void 0!==D&&I.push(D);var B=String(e.apply(void 0,I))}else B=m(_,p,k,S,D,e);k>=x&&(C+=p.slice(x,k)+B,x=k+_.length)}return C+p.slice(x)}];function m(t,e,a,o,r,s){var l=a+t.length,c=o.length,d=h;return void 0!==r&&(r=i(r),d=p),n.call(s,d,function(n,i){var s;switch(i.charAt(0)){case"$":return"$";case"&":return t;case"`":return e.slice(0,a);case"'":return e.slice(l);case"<":s=r[i.slice(1,-1)];break;default:var d=+i;if(0===d)return n;if(d>c){var p=u(d/10);return 0===p?n:p<=c?void 0===o[p-1]?i.charAt(1):o[p-1]+i.charAt(1):n}s=o[d-1]}return void 0===s?"":s})}})},aae3:function(t,e,n){var a=n("d3f4"),i=n("2d95"),o=n("2b4c")("match");t.exports=function(t){var e;return a(t)&&(void 0!==(e=t[o])?!!e:"RegExp"==i(t))}},ac6a:function(t,e,n){for(var a=n("cadf"),i=n("0d58"),o=n("2aba"),r=n("7726"),s=n("32e9"),l=n("84f2"),c=n("2b4c"),d=c("iterator"),u=c("toStringTag"),p=l.Array,h={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},f=i(h),g=0;g<f.length;g++){var m,v=f[g],A=h[v],b=r[v],y=b&&b.prototype;if(y&&(y[d]||s(y,d,p),y[u]||s(y,u,v),l[v]=p,A))for(m in a)y[m]||o(y,m,a[m],!0)}},b0c5:function(t,e,n){"use strict";var a=n("520a");n("5ca1")({target:"RegExp",proto:!0,forced:a!==/./.exec},{exec:a})},be13:function(t,e){t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},c366:function(t,e,n){var a=n("6821"),i=n("9def"),o=n("77f1");t.exports=function(t){return function(e,n,r){var s,l=a(e),c=i(l.length),d=o(r,c);if(t&&n!=n){for(;c>d;)if((s=l[d++])!=s)return!0}else for(;c>d;d++)if((t||d in l)&&l[d]===n)return t||d||0;return!t&&-1}}},c649:function(t,e,n){"use strict";(function(t){n.d(e,"c",function(){return c}),n.d(e,"a",function(){return s}),n.d(e,"b",function(){return o}),n.d(e,"d",function(){return l}),n("a481");var a,i,o="undefined"!=typeof window?window.console:t.console,r=/-(\w)/g,s=(a=function(t){return t.replace(r,function(t,e){return e?e.toUpperCase():""})},i=Object.create(null),function(t){return i[t]||(i[t]=a(t))});function l(t){null!==t.parentElement&&t.parentElement.removeChild(t)}function c(t,e,n){var a=0===n?t.children[0]:t.children[n-1].nextSibling;t.insertBefore(e,a)}}).call(this,n("c8ba"))},c69a:function(t,e,n){t.exports=!n("9e1e")&&!n("79e5")(function(){return 7!=Object.defineProperty(n("230e")("div"),"a",{get:function(){return 7}}).a})},c8ba:function(t,e){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(t){"object"==typeof window&&(n=window)}t.exports=n},ca5a:function(t,e){var n=0,a=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+a).toString(36))}},cadf:function(t,e,n){"use strict";var a=n("9c6c"),i=n("d53b"),o=n("84f2"),r=n("6821");t.exports=n("01f9")(Array,"Array",function(t,e){this._t=r(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,i(1)):i(0,"keys"==e?n:"values"==e?t[n]:[n,t[n]])},"values"),o.Arguments=o.Array,a("keys"),a("values"),a("entries")},cb7c:function(t,e,n){var a=n("d3f4");t.exports=function(t){if(!a(t))throw TypeError(t+" is not an object!");return t}},ce10:function(t,e,n){var a=n("69a8"),i=n("6821"),o=n("c366")(!1),r=n("613b")("IE_PROTO");t.exports=function(t,e){var n,s=i(t),l=0,c=[];for(n in s)n!=r&&a(s,n)&&c.push(n);for(;e.length>l;)a(s,n=e[l++])&&(~o(c,n)||c.push(n));return c}},d2c8:function(t,e,n){var a=n("aae3"),i=n("be13");t.exports=function(t,e,n){if(a(e))throw TypeError("String#"+n+" doesn't accept regex!");return String(i(t))}},d3f4:function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},d53b:function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},d8e8:function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},e11e:function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},f559:function(t,e,n){"use strict";var a=n("5ca1"),i=n("9def"),o=n("d2c8"),r="startsWith",s=""[r];a(a.P+a.F*n("5147")(r),"String",{startsWith:function(t){var e=o(this,t,r),n=i(Math.min(arguments.length>1?arguments[1]:void 0,e.length)),a=String(t);return s?s.call(e,a,n):e.slice(n,n+a.length)===a}})},f6fd:function(t,e){!function(t){var e="currentScript",n=t.getElementsByTagName("script");e in t||Object.defineProperty(t,e,{get:function(){try{throw new Error}catch(a){var t,e=(/.*at [^\(]*\((.*):.+:.+\)$/gi.exec(a.stack)||[!1])[1];for(t in n)if(n[t].src==e||"interactive"==n[t].readyState)return n[t];return null}}})}(document)},f751:function(t,e,n){var a=n("5ca1");a(a.S+a.F,"Object",{assign:n("7333")})},fa5b:function(t,e,n){t.exports=n("5537")("native-function-to-string",Function.toString)},fab2:function(t,e,n){var a=n("7726").document;t.exports=a&&a.documentElement},fb15:function(t,e,n){"use strict";var a;function i(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,a=new Array(e);n<e;n++)a[n]=t[n];return a}function o(t,e){if(t){if("string"==typeof t)return i(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?i(t,e):void 0}}function r(t){return function(t){if(Array.isArray(t))return i(t)}(t)||function(t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t))return Array.from(t)}(t)||o(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}n.r(e),"undefined"!=typeof window&&(n("f6fd"),(a=window.document.currentScript)&&(a=a.src.match(/(.+\/)[^/]+\.js(\?.*)?$/))&&(n.p=a[1])),n("f751"),n("f559"),n("ac6a"),n("cadf"),n("456d"),n("6762"),n("2fdb");var s=n("a352"),l=n.n(s),c=n("c649");function d(t,e){var n=this;this.$nextTick(function(){return n.$emit(t.toLowerCase(),e)})}function u(t){var e=this;return function(n){null!==e.realList&&e["onDrag"+t](n),d.call(e,t,n)}}function p(t){return["transition-group","TransitionGroup"].includes(t)}function h(t,e,n){return t[n]||(e[n]?e[n]():void 0)}var f=["Start","Add","Remove","Update","End"],g=["Choose","Unchoose","Sort","Filter","Clone"],m=["Move"].concat(f,g).map(function(t){return"on"+t}),v=null,A={name:"draggable",inheritAttrs:!1,props:{options:Object,list:{type:Array,required:!1,default:null},value:{type:Array,required:!1,default:null},noTransitionOnDrag:{type:Boolean,default:!1},clone:{type:Function,default:function(t){return t}},element:{type:String,default:"div"},tag:{type:String,default:null},move:{type:Function,default:null},componentData:{type:Object,required:!1,default:null}},data:function(){return{transitionMode:!1,noneFunctionalComponentMode:!1}},render:function(t){var e=this.$slots.default;this.transitionMode=function(t){if(!t||1!==t.length)return!1;var e,n,a=(e=t,n=1,function(t){if(Array.isArray(t))return t}(e)||function(t,e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t)){var n=[],a=!0,i=!1,o=void 0;try{for(var r,s=t[Symbol.iterator]();!(a=(r=s.next()).done)&&(n.push(r.value),!e||n.length!==e);a=!0);}catch(t){i=!0,o=t}finally{try{a||null==s.return||s.return()}finally{if(i)throw o}}return n}}(e,n)||o(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0].componentOptions;return!!a&&p(a.tag)}(e);var n=function(t,e,n){var a=0,i=0,o=h(e,n,"header");o&&(a=o.length,t=t?[].concat(r(o),r(t)):r(o));var s=h(e,n,"footer");return s&&(i=s.length,t=t?[].concat(r(t),r(s)):r(s)),{children:t,headerOffset:a,footerOffset:i}}(e,this.$slots,this.$scopedSlots),a=n.children,i=n.headerOffset,s=n.footerOffset;this.headerOffset=i,this.footerOffset=s;var l=function(t,e){var n=null,a=function(t,e){n=function(t,e,n){return void 0===n||((t=t||{})[e]=n),t}(n,t,e)};if(a("attrs",Object.keys(t).filter(function(t){return"id"===t||t.startsWith("data-")}).reduce(function(e,n){return e[n]=t[n],e},{})),!e)return n;var i=e.on,o=e.props,r=e.attrs;return a("on",i),a("props",o),Object.assign(n.attrs,r),n}(this.$attrs,this.componentData);return t(this.getTag(),l,a)},created:function(){null!==this.list&&null!==this.value&&c.b.error("Value and list props are mutually exclusive! Please set one or another."),"div"!==this.element&&c.b.warn("Element props is deprecated please use tag props instead. See https://github.com/SortableJS/Vue.Draggable/blob/master/documentation/migrate.md#element-props"),void 0!==this.options&&c.b.warn("Options props is deprecated, add sortable options directly as vue.draggable item, or use v-bind. See https://github.com/SortableJS/Vue.Draggable/blob/master/documentation/migrate.md#options-props")},mounted:function(){var t=this;if(this.noneFunctionalComponentMode=this.getTag().toLowerCase()!==this.$el.nodeName.toLowerCase()&&!this.getIsFunctional(),this.noneFunctionalComponentMode&&this.transitionMode)throw new Error("Transition-group inside component is not supported. Please alter tag value or remove transition-group. Current tag value: ".concat(this.getTag()));var e={};f.forEach(function(n){e["on"+n]=u.call(t,n)}),g.forEach(function(n){e["on"+n]=d.bind(t,n)});var n=Object.keys(this.$attrs).reduce(function(e,n){return e[Object(c.a)(n)]=t.$attrs[n],e},{}),a=Object.assign({},this.options,n,e,{onMove:function(e,n){return t.onDragMove(e,n)}});!("draggable"in a)&&(a.draggable=">*"),this._sortable=new l.a(this.rootContainer,a),this.computeIndexes()},beforeDestroy:function(){void 0!==this._sortable&&this._sortable.destroy()},computed:{rootContainer:function(){return this.transitionMode?this.$el.children[0]:this.$el},realList:function(){return this.list?this.list:this.value}},watch:{options:{handler:function(t){this.updateOptions(t)},deep:!0},$attrs:{handler:function(t){this.updateOptions(t)},deep:!0},realList:function(){this.computeIndexes()}},methods:{getIsFunctional:function(){var t=this._vnode.fnOptions;return t&&t.functional},getTag:function(){return this.tag||this.element},updateOptions:function(t){for(var e in t){var n=Object(c.a)(e);-1===m.indexOf(n)&&this._sortable.option(n,t[e])}},getChildrenNodes:function(){if(this.noneFunctionalComponentMode)return this.$children[0].$slots.default;var t=this.$slots.default;return this.transitionMode?t[0].child.$slots.default:t},computeIndexes:function(){var t=this;this.$nextTick(function(){t.visibleIndexes=function(t,e,n,a){if(!t)return[];var i=t.map(function(t){return t.elm}),o=e.length-a,s=r(e).map(function(t,e){return e>=o?i.length:i.indexOf(t)});return n?s.filter(function(t){return-1!==t}):s}(t.getChildrenNodes(),t.rootContainer.children,t.transitionMode,t.footerOffset)})},getUnderlyingVm:function(t){var e,n,a=(e=this.getChildrenNodes()||[],n=t,e.map(function(t){return t.elm}).indexOf(n));return-1===a?null:{index:a,element:this.realList[a]}},getUnderlyingPotencialDraggableComponent:function(t){var e=t.__vue__;return e&&e.$options&&p(e.$options._componentTag)?e.$parent:!("realList"in e)&&1===e.$children.length&&"realList"in e.$children[0]?e.$children[0]:e},emitChanges:function(t){var e=this;this.$nextTick(function(){e.$emit("change",t)})},alterList:function(t){if(this.list)t(this.list);else{var e=r(this.value);t(e),this.$emit("input",e)}},spliceList:function(){var t=arguments;this.alterList(function(e){return e.splice.apply(e,r(t))})},updatePosition:function(t,e){this.alterList(function(n){return n.splice(e,0,n.splice(t,1)[0])})},getRelatedContextFromMoveEvent:function(t){var e=t.to,n=t.related,a=this.getUnderlyingPotencialDraggableComponent(e);if(!a)return{component:a};var i=a.realList,o={list:i,component:a};if(e!==n&&i&&a.getUnderlyingVm){var r=a.getUnderlyingVm(n);if(r)return Object.assign(r,o)}return o},getVmIndex:function(t){var e=this.visibleIndexes,n=e.length;return t>n-1?n:e[t]},getComponent:function(){return this.$slots.default[0].componentInstance},resetTransitionData:function(t){if(this.noTransitionOnDrag&&this.transitionMode){this.getChildrenNodes()[t].data=null;var e=this.getComponent();e.children=[],e.kept=void 0}},onDragStart:function(t){this.context=this.getUnderlyingVm(t.item),t.item._underlying_vm_=this.clone(this.context.element),v=t.item},onDragAdd:function(t){var e=t.item._underlying_vm_;if(void 0!==e){Object(c.d)(t.item);var n=this.getVmIndex(t.newIndex);this.spliceList(n,0,e),this.computeIndexes();var a={element:e,newIndex:n};this.emitChanges({added:a})}},onDragRemove:function(t){if(Object(c.c)(this.rootContainer,t.item,t.oldIndex),"clone"!==t.pullMode){var e=this.context.index;this.spliceList(e,1);var n={element:this.context.element,oldIndex:e};this.resetTransitionData(e),this.emitChanges({removed:n})}else Object(c.d)(t.clone)},onDragUpdate:function(t){Object(c.d)(t.item),Object(c.c)(t.from,t.item,t.oldIndex);var e=this.context.index,n=this.getVmIndex(t.newIndex);this.updatePosition(e,n);var a={element:this.context.element,oldIndex:e,newIndex:n};this.emitChanges({moved:a})},updateProperty:function(t,e){t.hasOwnProperty(e)&&(t[e]+=this.headerOffset)},computeFutureIndex:function(t,e){if(!t.element)return 0;var n=r(e.to.children).filter(function(t){return"none"!==t.style.display}),a=n.indexOf(e.related),i=t.component.getVmIndex(a);return-1===n.indexOf(v)&&e.willInsertAfter?i+1:i},onDragMove:function(t,e){var n=this.move;if(!n||!this.realList)return!0;var a=this.getRelatedContextFromMoveEvent(t),i=this.context,o=this.computeFutureIndex(a,t);return Object.assign(i,{futureIndex:o}),n(Object.assign({},t,{relatedContext:a,draggedContext:i}),e)},onDragEnd:function(){this.computeIndexes(),v=null}}};"undefined"!=typeof window&&"Vue"in window&&window.Vue.component("draggable",A);var b=A;e.default=b}}).default},t.exports=a(n(10246))},1197:(t,e,n)=>{"use strict";n.d(e,{A:()=>s});var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([t.id,"\nhtml, body {\n\tbackground-attachment: fixed;\n}\n#body-user #header {\n\tposition: fixed;\n}\n#content {\n\toverflow: auto;\n}\n","",{version:3,sources:["webpack://./apps/dashboard/src/DashboardApp.vue"],names:[],mappings:";AAwxBA;CACA,4BAAA;AACA;AAEA;CACA,eAAA;AACA;AAEA;CACA,cAAA;AACA",sourcesContent:["\x3c!--\n - SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n --\x3e\n<template>\n\t<main id=\"app-dashboard\">\n\t\t<h2>{{ greeting.text }}</h2>\n\t\t<ul class=\"statuses\">\n\t\t\t<li\n\t\t\t\tv-for=\"status in sortedRegisteredStatus\"\n\t\t\t\t:id=\"'status-' + status\"\n\t\t\t\t:key=\"status\">\n\t\t\t\t<div :ref=\"'status-' + status\" />\n\t\t\t</li>\n\t\t</ul>\n\n\t\t<Draggable\n\t\t\tv-model=\"layout\"\n\t\t\tclass=\"panels\"\n\t\t\tv-bind=\"{ swapThreshold: 0.30, delay: 500, delayOnTouchOnly: true, touchStartThreshold: 3 }\"\n\t\t\thandle=\".panel--header\"\n\t\t\t@end=\"saveLayout\">\n\t\t\t<template v-for=\"panelId in layout\">\n\t\t\t\t<div\n\t\t\t\t\tv-if=\"isApiWidgetV2(panels[panelId].id)\"\n\t\t\t\t\t:key=\"`${panels[panelId].id}-v2`\"\n\t\t\t\t\tclass=\"panel\">\n\t\t\t\t\t<div class=\"panel--header\">\n\t\t\t\t\t\t<h2>\n\t\t\t\t\t\t\t<img v-if=\"apiWidgets[panels[panelId].id].icon_url\" :src=\"apiWidgets[panels[panelId].id].icon_url\" alt=\"\">\n\t\t\t\t\t\t\t<span v-else :class=\"apiWidgets[panels[panelId].id].icon_class\" aria-hidden=\"true\" />\n\t\t\t\t\t\t\t{{ apiWidgets[panels[panelId].id].title }}\n\t\t\t\t\t\t</h2>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"panel--content\">\n\t\t\t\t\t\t<ApiDashboardWidget\n\t\t\t\t\t\t\t:widget=\"apiWidgets[panels[panelId].id]\"\n\t\t\t\t\t\t\t:data=\"apiWidgetItems[panels[panelId].id]\"\n\t\t\t\t\t\t\t:loading=\"loadingItems\" />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div v-else :key=\"panels[panelId].id\" class=\"panel\">\n\t\t\t\t\t<div class=\"panel--header\">\n\t\t\t\t\t\t<h2>\n\t\t\t\t\t\t\t<span :class=\"panels[panelId].iconClass\" aria-hidden=\"true\" />\n\t\t\t\t\t\t\t{{ panels[panelId].title }}\n\t\t\t\t\t\t</h2>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"panel--content\" :class=\"{ loading: !panels[panelId].mounted }\">\n\t\t\t\t\t\t<div :ref=\"panels[panelId].id\" :data-id=\"panels[panelId].id\" />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t</Draggable>\n\n\t\t<div class=\"footer\">\n\t\t\t<NcButton @click=\"showModal\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Pencil :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t{{ t('dashboard', 'Customize') }}\n\t\t\t</NcButton>\n\t\t</div>\n\n\t\t<NcModal v-if=\"modal\" size=\"large\" @close=\"closeModal\">\n\t\t\t<div class=\"modal__content\">\n\t\t\t\t<h2>{{ t('dashboard', 'Edit widgets') }}</h2>\n\t\t\t\t<ol class=\"panels\">\n\t\t\t\t\t<li v-for=\"status in sortedAllStatuses\" :key=\"status\" :class=\"'panel-' + status\">\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t:id=\"'status-checkbox-' + status\"\n\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\tclass=\"checkbox\"\n\t\t\t\t\t\t\t:checked=\"isStatusActive(status)\"\n\t\t\t\t\t\t\t@input=\"updateStatusCheckbox(status, $event.target.checked)\">\n\t\t\t\t\t\t<label :for=\"'status-checkbox-' + status\">\n\t\t\t\t\t\t\t<NcUserStatusIcon v-if=\"status === 'status'\" status=\"online\" aria-hidden=\"true\" />\n\t\t\t\t\t\t\t<span v-else :class=\"statusInfo[status].icon\" aria-hidden=\"true\" />\n\t\t\t\t\t\t\t{{ statusInfo[status].text }}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t</li>\n\t\t\t\t</ol>\n\t\t\t\t<Draggable\n\t\t\t\t\tv-model=\"layout\"\n\t\t\t\t\tclass=\"panels\"\n\t\t\t\t\ttag=\"ol\"\n\t\t\t\t\tv-bind=\"{ swapThreshold: 0.30, delay: 500, delayOnTouchOnly: true, touchStartThreshold: 3 }\"\n\t\t\t\t\thandle=\".draggable\"\n\t\t\t\t\t@end=\"saveLayout\">\n\t\t\t\t\t<li v-for=\"panel in sortedPanels\" :key=\"panel.id\" :class=\"'panel-' + panel.id\">\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t:id=\"'panel-checkbox-' + panel.id\"\n\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\tclass=\"checkbox\"\n\t\t\t\t\t\t\t:checked=\"isActive(panel)\"\n\t\t\t\t\t\t\t@input=\"updateCheckbox(panel, $event.target.checked)\">\n\t\t\t\t\t\t<label :for=\"'panel-checkbox-' + panel.id\" :class=\"{ draggable: isActive(panel) }\">\n\t\t\t\t\t\t\t<img v-if=\"panel.iconUrl\" alt=\"\" :src=\"panel.iconUrl\">\n\t\t\t\t\t\t\t<span v-else :class=\"panel.iconClass\" aria-hidden=\"true\" />\n\t\t\t\t\t\t\t{{ panel.title }}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t</li>\n\t\t\t\t</Draggable>\n\n\t\t\t\t<a v-if=\"isAdmin && appStoreEnabled\" :href=\"appStoreUrl\" class=\"button\">{{ t('dashboard', 'Get more widgets from the App Store') }}</a>\n\n\t\t\t\t<div v-if=\"statuses.weather && isStatusActive('weather')\">\n\t\t\t\t\t<h2>{{ t('dashboard', 'Weather service') }}</h2>\n\t\t\t\t\t<p>\n\t\t\t\t\t\t{{ t('dashboard', 'For your privacy, the weather data is requested by your {productName} server on your behalf so the weather service receives no personal information.', { productName }) }}\n\t\t\t\t\t</p>\n\t\t\t\t\t<p class=\"credits--end\">\n\t\t\t\t\t\t<a href=\"https://api.met.no/doc/TermsOfService\" target=\"_blank\" rel=\"noopener\">{{ t('dashboard', 'Weather data from Met.no') }}</a>,\n\t\t\t\t\t\t<a href=\"https://wiki.osmfoundation.org/wiki/Privacy_Policy\" target=\"_blank\" rel=\"noopener\">{{ t('dashboard', 'geocoding with Nominatim') }}</a>,\n\t\t\t\t\t\t<a href=\"https://www.opentopodata.org/#public-api\" target=\"_blank\" rel=\"noopener\">{{ t('dashboard', 'elevation data from OpenTopoData') }}</a>.\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</NcModal>\n\t</main>\n</template>\n\n<script>\nimport { getCurrentUser } from '@nextcloud/auth'\nimport axios from '@nextcloud/axios'\nimport { loadState } from '@nextcloud/initial-state'\nimport { generateOcsUrl, generateUrl } from '@nextcloud/router'\nimport Vue from 'vue'\nimport Draggable from 'vuedraggable'\nimport NcButton from '@nextcloud/vue/components/NcButton'\nimport NcModal from '@nextcloud/vue/components/NcModal'\nimport NcUserStatusIcon from '@nextcloud/vue/components/NcUserStatusIcon'\nimport Pencil from 'vue-material-design-icons/Pencil.vue'\nimport ApiDashboardWidget from './components/ApiDashboardWidget.vue'\nimport { logger } from './logger.ts'\nimport isMobile from './mixins/isMobile.js'\n\nconst panels = loadState('dashboard', 'panels')\nconst firstRun = loadState('dashboard', 'firstRun')\nconst birthdate = new Date(loadState('dashboard', 'birthdate'))\n\nconst statusInfo = {\n\tweather: {\n\t\ttext: t('dashboard', 'Weather'),\n\t\ticon: 'icon-weather-status',\n\t},\n\tstatus: {\n\t\ttext: t('dashboard', 'Status'),\n\t},\n}\n\nexport default {\n\tname: 'DashboardApp',\n\tcomponents: {\n\t\tApiDashboardWidget,\n\t\tNcButton,\n\t\tDraggable,\n\t\tNcModal,\n\t\tPencil,\n\t\tNcUserStatusIcon,\n\t},\n\n\tmixins: [\n\t\tisMobile,\n\t],\n\n\tsetup() {\n\t\treturn {\n\t\t\tproductName: window.OC.theme.productName,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tisAdmin: getCurrentUser().isAdmin,\n\t\t\ttimer: new Date(),\n\t\t\tregisteredStatus: [],\n\t\t\tcallbacks: {},\n\t\t\tcallbacksStatus: {},\n\t\t\tallCallbacksStatus: {},\n\t\t\tstatusInfo,\n\t\t\tenabledStatuses: loadState('dashboard', 'statuses'),\n\t\t\tpanels,\n\t\t\tfirstRun,\n\t\t\tdisplayName: getCurrentUser()?.displayName,\n\t\t\tuid: getCurrentUser()?.uid,\n\t\t\tlayout: loadState('dashboard', 'layout').filter((panelId) => panels[panelId]),\n\t\t\tmodal: false,\n\t\t\tappStoreUrl: generateUrl('/settings/apps/dashboard'),\n\t\t\tappStoreEnabled: loadState('dashboard', 'appStoreEnabled', true),\n\t\t\tstatuses: {},\n\t\t\tapiWidgets: [],\n\t\t\tapiWidgetItems: {},\n\t\t\tloadingItems: true,\n\t\t\tbirthdate,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tgreeting() {\n\t\t\tconst time = this.timer.getHours()\n\t\t\tconst isBirthday = this.birthdate instanceof Date\n\t\t\t\t&& this.birthdate.getMonth() === this.timer.getMonth()\n\t\t\t\t&& this.birthdate.getDate() === this.timer.getDate()\n\n\t\t\t// Determine part of the day\n\t\t\tlet partOfDay\n\t\t\tif (isBirthday) {\n\t\t\t\tpartOfDay = 'birthday'\n\t\t\t} else if (time >= 22 || time < 5) {\n\t\t\t\tpartOfDay = 'night'\n\t\t\t} else if (time >= 18) {\n\t\t\t\tpartOfDay = 'evening'\n\t\t\t} else if (time >= 12) {\n\t\t\t\tpartOfDay = 'afternoon'\n\t\t\t} else {\n\t\t\t\tpartOfDay = 'morning'\n\t\t\t}\n\n\t\t\t// Define the greetings\n\t\t\tconst good = {\n\t\t\t\tmorning: {\n\t\t\t\t\tgeneric: t('dashboard', 'Good morning'),\n\t\t\t\t\twithName: t('dashboard', 'Good morning, {name}', { name: this.displayName }, undefined, { escape: false }),\n\t\t\t\t},\n\n\t\t\t\tafternoon: {\n\t\t\t\t\tgeneric: t('dashboard', 'Good afternoon'),\n\t\t\t\t\twithName: t('dashboard', 'Good afternoon, {name}', { name: this.displayName }, undefined, { escape: false }),\n\t\t\t\t},\n\n\t\t\t\tevening: {\n\t\t\t\t\tgeneric: t('dashboard', 'Good evening'),\n\t\t\t\t\twithName: t('dashboard', 'Good evening, {name}', { name: this.displayName }, undefined, { escape: false }),\n\t\t\t\t},\n\n\t\t\t\tnight: {\n\t\t\t\t\t// Don't use \"Good night\" as it's not a greeting\n\t\t\t\t\tgeneric: t('dashboard', 'Hello'),\n\t\t\t\t\twithName: t('dashboard', 'Hello, {name}', { name: this.displayName }, undefined, { escape: false }),\n\t\t\t\t},\n\n\t\t\t\tbirthday: {\n\t\t\t\t\tgeneric: t('dashboard', 'Happy birthday 🥳🤩🎂🎉'),\n\t\t\t\t\twithName: t('dashboard', 'Happy birthday, {name} 🥳🤩🎂🎉', { name: this.displayName }, undefined, { escape: false }),\n\t\t\t\t},\n\t\t\t}\n\n\t\t\t// Figure out which greeting to show\n\t\t\tconst shouldShowName = this.displayName && this.uid !== this.displayName\n\t\t\treturn { text: shouldShowName ? good[partOfDay].withName : good[partOfDay].generic }\n\t\t},\n\n\t\tisActive() {\n\t\t\treturn (panel) => this.layout.indexOf(panel.id) > -1\n\t\t},\n\n\t\tisStatusActive() {\n\t\t\treturn (status) => this.enabledStatuses.findIndex((s) => s === status) !== -1\n\t\t},\n\n\t\tsortedAllStatuses() {\n\t\t\treturn Object.keys(this.allCallbacksStatus).slice().sort(this.sortStatuses)\n\t\t},\n\n\t\tsortedPanels() {\n\t\t\treturn Object.values(this.panels).sort((a, b) => {\n\t\t\t\tconst indexA = this.layout.indexOf(a.id)\n\t\t\t\tconst indexB = this.layout.indexOf(b.id)\n\t\t\t\tif (indexA === -1 || indexB === -1) {\n\t\t\t\t\treturn indexB - indexA || a.id - b.id\n\t\t\t\t}\n\t\t\t\treturn indexA - indexB || a.id - b.id\n\t\t\t})\n\t\t},\n\n\t\tsortedRegisteredStatus() {\n\t\t\treturn this.registeredStatus.slice().sort(this.sortStatuses)\n\t\t},\n\t},\n\n\twatch: {\n\t\tcallbacks() {\n\t\t\tthis.rerenderPanels()\n\t\t},\n\n\t\tcallbacksStatus() {\n\t\t\tfor (const app in this.callbacksStatus) {\n\t\t\t\tconst element = this.$refs['status-' + app]\n\t\t\t\tif (this.statuses[app] && this.statuses[app].mounted) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tif (element) {\n\t\t\t\t\tthis.callbacksStatus[app](element[0])\n\t\t\t\t\tVue.set(this.statuses, app, { mounted: true })\n\t\t\t\t} else {\n\t\t\t\t\tlogger.error('Failed to register panel in the frontend as no backend data was provided for ' + app)\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t},\n\n\tasync created() {\n\t\tawait this.fetchApiWidgets()\n\n\t\tconst apiWidgetIdsToFetch = Object\n\t\t\t.values(this.apiWidgets)\n\t\t\t.filter((widget) => this.isApiWidgetV2(widget.id) && this.layout.includes(widget.id))\n\t\t\t.map((widget) => widget.id)\n\t\tawait Promise.all(apiWidgetIdsToFetch.map((id) => this.fetchApiWidgetItems([id], true)))\n\n\t\tfor (const widget of Object.values(this.apiWidgets)) {\n\t\t\tif (widget.reload_interval > 0) {\n\t\t\t\tsetInterval(async () => {\n\t\t\t\t\tif (!this.layout.includes(widget.id)) {\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\n\t\t\t\t\tawait this.fetchApiWidgetItems([widget.id], true)\n\t\t\t\t}, widget.reload_interval * 1000)\n\t\t\t}\n\t\t}\n\t},\n\n\tmounted() {\n\t\tthis.updateSkipLink()\n\t\twindow.addEventListener('scroll', this.handleScroll)\n\n\t\tsetInterval(() => {\n\t\t\tthis.timer = new Date()\n\t\t}, 30000)\n\n\t\tif (this.firstRun) {\n\t\t\twindow.addEventListener('scroll', this.disableFirstrunHint)\n\t\t}\n\t},\n\n\tdestroyed() {\n\t\twindow.removeEventListener('scroll', this.handleScroll)\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Method to register panels that will be called by the integrating apps\n\t\t *\n\t\t * @param {string} app The unique app id for the widget\n\t\t * @param {Function} callback The callback function to register a panel which gets the DOM element passed as parameter\n\t\t */\n\t\tregister(app, callback) {\n\t\t\tVue.set(this.callbacks, app, callback)\n\t\t},\n\n\t\tregisterStatus(app, callback) {\n\t\t\t// always save callbacks in case user enables the status later\n\t\t\tVue.set(this.allCallbacksStatus, app, callback)\n\t\t\t// register only if status is enabled or missing from config\n\t\t\tif (this.isStatusActive(app)) {\n\t\t\t\tthis.registeredStatus.push(app)\n\t\t\t\tthis.$nextTick(() => {\n\t\t\t\t\tVue.set(this.callbacksStatus, app, callback)\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\trerenderPanels() {\n\t\t\tfor (const app in this.callbacks) {\n\t\t\t\t// TODO: Properly rerender v2 widgets\n\t\t\t\tif (this.isApiWidgetV2(this.panels[app].id)) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tconst element = this.$refs[app]\n\t\t\t\tif (this.layout.indexOf(app) === -1) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tif (this.panels[app] && this.panels[app].mounted) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tif (element) {\n\t\t\t\t\tthis.callbacks[app](element[0], {\n\t\t\t\t\t\twidget: this.panels[app],\n\t\t\t\t\t})\n\t\t\t\t\tVue.set(this.panels[app], 'mounted', true)\n\t\t\t\t} else {\n\t\t\t\t\tlogger.error('Failed to register panel in the frontend as no backend data was provided for ' + app)\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tsaveLayout() {\n\t\t\taxios.post(generateOcsUrl('/apps/dashboard/api/v3/layout'), {\n\t\t\t\tlayout: this.layout,\n\t\t\t})\n\t\t},\n\n\t\tsaveStatuses() {\n\t\t\taxios.post(generateOcsUrl('/apps/dashboard/api/v3/statuses'), {\n\t\t\t\tstatuses: this.enabledStatuses,\n\t\t\t})\n\t\t},\n\n\t\tshowModal() {\n\t\t\tthis.modal = true\n\t\t\tthis.firstRun = false\n\t\t},\n\n\t\tcloseModal() {\n\t\t\tthis.modal = false\n\t\t},\n\n\t\tupdateCheckbox(panel, currentValue) {\n\t\t\tconst index = this.layout.indexOf(panel.id)\n\t\t\tif (!currentValue && index > -1) {\n\t\t\t\tthis.layout.splice(index, 1)\n\t\t\t} else {\n\t\t\t\tthis.layout.push(panel.id)\n\t\t\t\tif (this.isApiWidgetV2(panel.id)) {\n\t\t\t\t\tthis.fetchApiWidgetItems([panel.id], true)\n\t\t\t\t}\n\t\t\t}\n\t\t\tVue.set(this.panels[panel.id], 'mounted', false)\n\t\t\tthis.saveLayout()\n\t\t\tthis.$nextTick(() => this.rerenderPanels())\n\t\t},\n\n\t\tdisableFirstrunHint() {\n\t\t\twindow.removeEventListener('scroll', this.disableFirstrunHint)\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.firstRun = false\n\t\t\t}, 1000)\n\t\t},\n\n\t\tupdateSkipLink() {\n\t\t\t// Make sure \"Skip to main content\" link points to the app content\n\t\t\tdocument.getElementsByClassName('skip-navigation')[0].setAttribute('href', '#app-dashboard')\n\t\t},\n\n\t\tupdateStatusCheckbox(app, checked) {\n\t\t\tif (checked) {\n\t\t\t\tthis.enableStatus(app)\n\t\t\t} else {\n\t\t\t\tthis.disableStatus(app)\n\t\t\t}\n\t\t},\n\n\t\tenableStatus(app) {\n\t\t\tthis.enabledStatuses.push(app)\n\t\t\tthis.registerStatus(app, this.allCallbacksStatus[app])\n\t\t\tthis.saveStatuses()\n\t\t},\n\n\t\tdisableStatus(app) {\n\t\t\tconst i = this.enabledStatuses.findIndex((s) => s === app)\n\t\t\tif (i !== -1) {\n\t\t\t\tthis.enabledStatuses.splice(i, 1)\n\t\t\t}\n\t\t\tconst j = this.registeredStatus.findIndex((s) => s === app)\n\t\t\tif (j !== -1) {\n\t\t\t\tthis.registeredStatus.splice(j, 1)\n\t\t\t\tVue.set(this.statuses, app, { mounted: false })\n\t\t\t\tthis.$nextTick(() => {\n\t\t\t\t\tVue.delete(this.callbacksStatus, app)\n\t\t\t\t})\n\t\t\t}\n\t\t\tthis.saveStatuses()\n\t\t},\n\n\t\tsortStatuses(a, b) {\n\t\t\tconst al = a.toLowerCase()\n\t\t\tconst bl = b.toLowerCase()\n\t\t\treturn al > bl\n\t\t\t\t? 1\n\t\t\t\t: al < bl\n\t\t\t\t\t? -1\n\t\t\t\t\t: 0\n\t\t},\n\n\t\thandleScroll() {\n\t\t\tif (window.scrollY > 70) {\n\t\t\t\tdocument.body.classList.add('dashboard--scrolled')\n\t\t\t} else {\n\t\t\t\tdocument.body.classList.remove('dashboard--scrolled')\n\t\t\t}\n\t\t},\n\n\t\tasync fetchApiWidgets() {\n\t\t\tconst { data } = await axios.get(generateOcsUrl('/apps/dashboard/api/v1/widgets'))\n\t\t\tthis.apiWidgets = data.ocs.data\n\t\t},\n\n\t\tasync fetchApiWidgetItems(widgetIds, merge = false) {\n\t\t\ttry {\n\t\t\t\tconst url = generateOcsUrl('/apps/dashboard/api/v2/widget-items')\n\t\t\t\tconst params = new URLSearchParams(widgetIds.map((id) => ['widgets[]', id]))\n\t\t\t\tconst response = await axios.get(`${url}?${params.toString()}`)\n\t\t\t\tconst widgetItems = response.data.ocs.data\n\t\t\t\tif (merge) {\n\t\t\t\t\tthis.apiWidgetItems = { ...this.apiWidgetItems, ...widgetItems }\n\t\t\t\t} else {\n\t\t\t\t\tthis.apiWidgetItems = widgetItems\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tthis.loadingItems = false\n\t\t\t}\n\t\t},\n\n\t\tisApiWidgetV2(id) {\n\t\t\tfor (const widget of Object.values(this.apiWidgets)) {\n\t\t\t\tif (widget.id === id && widget.item_api_versions.includes(2)) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\t},\n}\n<\/script>\n\n<style lang=\"scss\" scoped>\n#app-dashboard {\n\twidth: 100%;\n\tmin-height: 100%;\n\tbackground-size: cover;\n\tbackground-position: center center;\n\tbackground-repeat: no-repeat;\n\tbackground-attachment: fixed;\n\n\t> h2 {\n\t\t// this is shown directly on the background image / color\n\t\tcolor: var(--color-background-plain-text);\n\t\ttext-align: center;\n\t\tfont-size: 32px;\n\t\tline-height: 130%;\n\t\tpadding: 1rem 0;\n\t}\n}\n\n.panels {\n\twidth: auto;\n\tmargin: auto;\n\tmax-width: 1800px;\n\tdisplay: flex;\n\tjustify-content: center;\n\tflex-direction: row;\n\talign-items: flex-start;\n\tflex-wrap: wrap;\n}\n\n.panel, .panels > div {\n\t// Ensure the maxcontrast color is set for the background\n\t--color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-main-text));\n\twidth: 320px;\n\tmax-width: 100%;\n\tmargin: 16px;\n\talign-self: stretch;\n\tbackground-color: var(--color-main-background-blur);\n\t-webkit-backdrop-filter: var(--filter-background-blur);\n\tbackdrop-filter: var(--filter-background-blur);\n\tborder-radius: var(--border-radius-container-large);\n\n\t#body-user.theme--highcontrast & {\n\t\tborder: 2px solid var(--color-border);\n\t}\n\n\t&.sortable-ghost {\n\t\t opacity: 0.1;\n\t}\n\n\t& > .panel--header {\n\t\tdisplay: flex;\n\t\tz-index: 1;\n\t\ttop: 50px;\n\t\tpadding: 16px;\n\t\tcursor: grab;\n\n\t\t&,\n\t\t:deep(*) {\n\t\t\t-webkit-touch-callout: none;\n\t\t\t-webkit-user-select: none;\n\t\t\t-khtml-user-select: none;\n\t\t\t-moz-user-select: none;\n\t\t\t-ms-user-select: none;\n\t\t\tuser-select: none;\n\t\t}\n\n\t\t&:active {\n\t\t\tcursor: grabbing;\n\t\t}\n\n\t\ta {\n\t\t\tflex-grow: 1;\n\t\t}\n\n\t\t> h2 {\n\t\t\tdisplay: block;\n\t\t\talign-items: center;\n\t\t\tflex-grow: 1;\n\t\t\tmargin: 0;\n\t\t\tfont-size: 20px;\n\t\t\tline-height: 24px;\n\t\t\tfont-weight: bold;\n\t\t\tpadding: 16px 8px;\n\t\t\theight: 56px;\n\t\t\twhite-space: nowrap;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\tcursor: grab;\n\n\t\t\timg,\n\t\t\tspan {\n\t\t\t\tbackground-size: 32px;\n\t\t\t\twidth: 32px;\n\t\t\t\theight: 32px;\n\t\t\t\tbackground-position: center;\n\t\t\t\tfloat: left;\n\t\t\t\tmargin-top: -6px;\n\t\t\t\tmargin-inline: 6px 16px;\n\t\t\t}\n\n\t\t\timg {\n\t\t\t\tfilter: var(--background-invert-if-dark);\n\t\t\t}\n\t\t}\n\t}\n\n\t& > .panel--content {\n\t\tmargin: 0 16px 16px 16px;\n\t\theight: 424px;\n\t\t// We specifically do not want scrollbars inside widgets\n\t\toverflow: visible;\n\t}\n\n\t// No need to extend height of widgets if only one column is shown\n\t@media only screen and (max-width: 709px) {\n\t\t& > .panel--content {\n\t\t\theight: auto;\n\t\t}\n\t}\n}\n\n.footer {\n\tdisplay: flex;\n\tjustify-content: center;\n\ttransition: bottom var(--animation-slow) ease-in-out;\n\tpadding: 1rem 0;\n}\n\n.edit-panels {\n\tdisplay: inline-block;\n\tmargin:auto;\n\tbackground-position: 16px center;\n\tpadding: 12px 16px;\n\tpadding-inline-start: 36px;\n\tborder-radius: var(--border-radius-pill);\n\tmax-width: 200px;\n\topacity: 1;\n\ttext-align: center;\n}\n\n.button,\n.button-vue,\n.edit-panels,\n.statuses :deep(.action-item .action-item__menutoggle),\n.statuses :deep(.action-item.action-item--open .action-item__menutoggle) {\n\t// Ensure the maxcontrast color is set for the background\n\t--color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-main-text));\n\tbackground-color: var(--color-main-background-blur);\n\t-webkit-backdrop-filter: var(--filter-background-blur);\n\tbackdrop-filter: var(--filter-background-blur);\n\topacity: 1 !important;\n\n\t&:hover,\n\t&:focus,\n\t&:active {\n\t\tbackground-color: var(--color-background-hover)!important;\n\t}\n\t&:focus-visible {\n\t\tbox-shadow: 0 0 0 4px var(--color-main-background) !important;\n\t\toutline: 2px solid var(--color-main-text) !important;\n\t}\n}\n\n.modal__content {\n\tpadding: 32px 16px;\n\ttext-align: center;\n\n\tol {\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t\tjustify-content: center;\n\t\tlist-style-type: none;\n\t\tpadding-bottom: 16px;\n\t}\n\tli {\n\t\tlabel {\n\t\t\tposition: relative;\n\t\t\tdisplay: block;\n\t\t\tpadding: 48px 16px 14px 16px;\n\t\t\tmargin: 8px;\n\t\t\twidth: 140px;\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t\tborder: 2px solid var(--color-main-background);\n\t\t\tborder-radius: var(--border-radius-large);\n\t\t\ttext-align: start;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\twhite-space: nowrap;\n\n\t\t\timg,\n\t\t\tspan {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 16px;\n\t\t\t\twidth: 24px;\n\t\t\t\theight: 24px;\n\t\t\t\tbackground-size: 24px;\n\t\t\t}\n\n\t\t\timg {\n\t\t\t\tfilter: var(--background-invert-if-dark);\n\t\t\t}\n\n\t\t\t&:hover {\n\t\t\t\tborder-color: var(--color-primary-element);\n\t\t\t}\n\t\t}\n\n\t\t// Do not invert status icons\n\t\t&:not(.panel-status) label span {\n\t\t\tfilter: var(--background-invert-if-dark);\n\t\t}\n\n\t\tinput[type='checkbox'].checkbox + label:before {\n\t\t\tposition: absolute;\n\t\t\tinset-inline-end: 12px;\n\t\t\ttop: 16px;\n\t\t}\n\n\t\tinput:focus + label {\n\t\t\tborder-color: var(--color-primary-element);\n\t\t}\n\t}\n\n\th2 {\n\t\tfont-weight: bold;\n\t\tmargin-top: 12px;\n\t}\n\n\t// Adjust design of 'Get more widgets' button\n\t.button {\n\t\tdisplay: inline-block;\n\t\tpadding: 10px 16px;\n\t\tmargin: 0;\n\t}\n\n\tp {\n\t\tmax-width: 650px;\n\t\tmargin: 0 auto;\n\n\t\ta:hover,\n\t\ta:focus {\n\t\t\tborder-bottom: 2px solid var(--color-border);\n\t\t}\n\t}\n\n\t.credits--end {\n\t\tpadding-bottom: 32px;\n\t\tcolor: var(--color-text-maxcontrast);\n\n\t\ta {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\t}\n}\n\n.flip-list-move {\n\ttransition: transform var(--animation-slow);\n}\n\n.statuses {\n\tdisplay: flex;\n\tflex-direction: row;\n\tjustify-content: center;\n\tflex-wrap: wrap;\n\tmargin-bottom: 36px;\n\n\t& > li {\n\t\tmargin: 8px;\n\t}\n}\n</style>\n\n<style>\nhtml, body {\n\tbackground-attachment: fixed;\n}\n\n#body-user #header {\n\tposition: fixed;\n}\n\n#content {\n\toverflow: auto;\n}\n</style>\n"],sourceRoot:""}]);const s=r},8949:(t,e,n)=>{"use strict";n.d(e,{A:()=>s});var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([t.id,"\n.api-dashboard-widget-item__icon[data-v-bffdb06a] {\n\theight: var(--default-clickable-area);\n\twidth: var(--default-clickable-area);\n}\n","",{version:3,sources:["webpack://./apps/dashboard/src/components/ApiDashboardWidgetItem.vue"],names:[],mappings:";AAmEA;CACA,qCAAA;CACA,oCAAA;AACA",sourcesContent:['\x3c!--\n - SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n --\x3e\n<script setup lang="ts">\nimport { ref } from \'vue\'\nimport NcAvatar from \'@nextcloud/vue/components/NcAvatar\'\nimport NcDashboardWidgetItem from \'@nextcloud/vue/components/NcDashboardWidgetItem\'\nimport IconFile from \'vue-material-design-icons/File.vue\'\n\ndefineProps({\n\titem: {\n\t\ttype: Object,\n\t\trequired: true,\n\t},\n\ticonSize: {\n\t\ttype: Number,\n\t\trequired: true,\n\t},\n\troundedIcons: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n})\n\n/**\n * True as soon as the image is loaded\n */\nconst imageLoaded = ref(false)\n/**\n * True if the image failed to load and we should show a fallback\n */\nconst loadingImageFailed = ref(false)\n<\/script>\n\n<template>\n\t<NcDashboardWidgetItem\n\t\t:target-url="item.link"\n\t\t:overlay-icon-url="item.overlayIconUrl ? item.overlayIconUrl : \'\'"\n\t\t:main-text="item.title"\n\t\t:sub-text="item.subtitle">\n\t\t<template #avatar>\n\t\t\t<template v-if="item.iconUrl">\n\t\t\t\t<NcAvatar\n\t\t\t\t\tv-if="roundedIcons"\n\t\t\t\t\t:size="iconSize"\n\t\t\t\t\t:url="item.iconUrl" />\n\t\t\t\t<template v-else>\n\t\t\t\t\t<img\n\t\t\t\t\t\tv-show="!loadingImageFailed"\n\t\t\t\t\t\talt=""\n\t\t\t\t\t\tclass="api-dashboard-widget-item__icon"\n\t\t\t\t\t\t:class="{ \'hidden-visually\': !imageLoaded }"\n\t\t\t\t\t\t:src="item.iconUrl"\n\t\t\t\t\t\t@error="loadingImageFailed = true"\n\t\t\t\t\t\t@load="imageLoaded = true">\n\t\t\t\t\t\x3c!-- Placeholder while the image is loaded and also the fallback if the URL is broken --\x3e\n\t\t\t\t\t<IconFile\n\t\t\t\t\t\tv-if="!imageLoaded"\n\t\t\t\t\t\t:size="iconSize" />\n\t\t\t\t</template>\n\t\t\t</template>\n\t\t</template>\n\t</NcDashboardWidgetItem>\n</template>\n\n<style scoped>\n.api-dashboard-widget-item__icon {\n\theight: var(--default-clickable-area);\n\twidth: var(--default-clickable-area);\n}\n</style>\n'],sourceRoot:""}]);const s=r},10246:(t,e,n)=>{"use strict";function a(t){return a="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},a(t)}function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function o(){return o=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(t[a]=n[a])}return t},o.apply(this,arguments)}function r(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{},a=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(a=a.concat(Object.getOwnPropertySymbols(n).filter(function(t){return Object.getOwnPropertyDescriptor(n,t).enumerable}))),a.forEach(function(e){i(t,e,n[e])})}return t}function s(t){if("undefined"!=typeof window&&window.navigator)return!!navigator.userAgent.match(t)}n.r(e),n.d(e,{MultiDrag:()=>me,Sortable:()=>Lt,Swap:()=>oe,default:()=>be});var l=s(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),c=s(/Edge/i),d=s(/firefox/i),u=s(/safari/i)&&!s(/chrome/i)&&!s(/android/i),p=s(/iP(ad|od|hone)/i),h=s(/chrome/i)&&s(/android/i),f={capture:!1,passive:!1};function g(t,e,n){t.addEventListener(e,n,!l&&f)}function m(t,e,n){t.removeEventListener(e,n,!l&&f)}function v(t,e){if(e){if(">"===e[0]&&(e=e.substring(1)),t)try{if(t.matches)return t.matches(e);if(t.msMatchesSelector)return t.msMatchesSelector(e);if(t.webkitMatchesSelector)return t.webkitMatchesSelector(e)}catch(t){return!1}return!1}}function A(t){return t.host&&t!==document&&t.host.nodeType?t.host:t.parentNode}function b(t,e,n,a){if(t){n=n||document;do{if(null!=e&&(">"===e[0]?t.parentNode===n&&v(t,e):v(t,e))||a&&t===n)return t;if(t===n)break}while(t=A(t))}return null}var y,C=/\s+/g;function x(t,e,n){if(t&&e)if(t.classList)t.classList[n?"add":"remove"](e);else{var a=(" "+t.className+" ").replace(C," ").replace(" "+e+" "," ");t.className=(a+(n?" "+e:"")).replace(C," ")}}function w(t,e,n){var a=t&&t.style;if(a){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 a||-1!==e.indexOf("webkit")||(e="-webkit-"+e),a[e]=n+("string"==typeof n?"":"px")}}function _(t,e){var n="";if("string"==typeof t)n=t;else do{var a=w(t,"transform");a&&"none"!==a&&(n=a+" "+n)}while(!e&&(t=t.parentNode));var i=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return i&&new i(n)}function k(t,e,n){if(t){var a=t.getElementsByTagName(e),i=0,o=a.length;if(n)for(;i<o;i++)n(a[i],i);return a}return[]}function S(){return document.scrollingElement||document.documentElement}function E(t,e,n,a,i){if(t.getBoundingClientRect||t===window){var o,r,s,c,d,u,p;if(t!==window&&t!==S()?(r=(o=t.getBoundingClientRect()).top,s=o.left,c=o.bottom,d=o.right,u=o.height,p=o.width):(r=0,s=0,c=window.innerHeight,d=window.innerWidth,u=window.innerHeight,p=window.innerWidth),(e||n)&&t!==window&&(i=i||t.parentNode,!l))do{if(i&&i.getBoundingClientRect&&("none"!==w(i,"transform")||n&&"static"!==w(i,"position"))){var h=i.getBoundingClientRect();r-=h.top+parseInt(w(i,"border-top-width")),s-=h.left+parseInt(w(i,"border-left-width")),c=r+o.height,d=s+o.width;break}}while(i=i.parentNode);if(a&&t!==window){var f=_(i||t),g=f&&f.a,m=f&&f.d;f&&(c=(r/=m)+(u/=m),d=(s/=g)+(p/=g))}return{top:r,left:s,bottom:c,right:d,width:p,height:u}}}function D(t,e,n){for(var a=T(t,!0),i=E(t)[e];a;){var o=E(a)[n];if(!("top"===n||"left"===n?i>=o:i<=o))return a;if(a===S())break;a=T(a,!1)}return!1}function I(t,e,n){for(var a=0,i=0,o=t.children;i<o.length;){if("none"!==o[i].style.display&&o[i]!==Lt.ghost&&o[i]!==Lt.dragged&&b(o[i],n.draggable,t,!1)){if(a===e)return o[i];a++}i++}return null}function B(t,e){for(var n=t.lastElementChild;n&&(n===Lt.ghost||"none"===w(n,"display")||e&&!v(n,e));)n=n.previousElementSibling;return n||null}function O(t,e){var n=0;if(!t||!t.parentNode)return-1;for(;t=t.previousElementSibling;)"TEMPLATE"===t.nodeName.toUpperCase()||t===Lt.clone||e&&!v(t,e)||n++;return n}function N(t){var e=0,n=0,a=S();if(t)do{var i=_(t),o=i.a,r=i.d;e+=t.scrollLeft*o,n+=t.scrollTop*r}while(t!==a&&(t=t.parentNode));return[e,n]}function T(t,e){if(!t||!t.getBoundingClientRect)return S();var n=t,a=!1;do{if(n.clientWidth<n.scrollWidth||n.clientHeight<n.scrollHeight){var i=w(n);if(n.clientWidth<n.scrollWidth&&("auto"==i.overflowX||"scroll"==i.overflowX)||n.clientHeight<n.scrollHeight&&("auto"==i.overflowY||"scroll"==i.overflowY)){if(!n.getBoundingClientRect||n===document.body)return S();if(a||e)return n;a=!0}}}while(n=n.parentNode);return S()}function M(t,e){return Math.round(t.top)===Math.round(e.top)&&Math.round(t.left)===Math.round(e.left)&&Math.round(t.height)===Math.round(e.height)&&Math.round(t.width)===Math.round(e.width)}function P(t,e){return function(){if(!y){var n=arguments;1===n.length?t.call(this,n[0]):t.apply(this,n),y=setTimeout(function(){y=void 0},e)}}}function j(t,e,n){t.scrollLeft+=e,t.scrollTop+=n}function L(t){var e=window.Polymer,n=window.jQuery||window.Zepto;return e&&e.dom?e.dom(t).cloneNode(!0):n?n(t).clone(!0)[0]:t.cloneNode(!0)}function W(t,e){w(t,"position","absolute"),w(t,"top",e.top),w(t,"left",e.left),w(t,"width",e.width),w(t,"height",e.height)}function F(t){w(t,"position",""),w(t,"top",""),w(t,"left",""),w(t,"width",""),w(t,"height","")}var U="Sortable"+(new Date).getTime();var R=[],G={initializeByDefault:!0},z={mount:function(t){for(var e in G)G.hasOwnProperty(e)&&!(e in t)&&(t[e]=G[e]);R.push(t)},pluginEvent:function(t,e,n){var a=this;this.eventCanceled=!1,n.cancel=function(){a.eventCanceled=!0};var i=t+"Global";R.forEach(function(a){e[a.pluginName]&&(e[a.pluginName][i]&&e[a.pluginName][i](r({sortable:e},n)),e.options[a.pluginName]&&e[a.pluginName][t]&&e[a.pluginName][t](r({sortable:e},n)))})},initializePlugins:function(t,e,n,a){for(var i in R.forEach(function(a){var i=a.pluginName;if(t.options[i]||a.initializeByDefault){var r=new a(t,e,t.options);r.sortable=t,r.options=t.options,t[i]=r,o(n,r.defaults)}}),t.options)if(t.options.hasOwnProperty(i)){var r=this.modifyOption(t,i,t.options[i]);void 0!==r&&(t.options[i]=r)}},getEventProperties:function(t,e){var n={};return R.forEach(function(a){"function"==typeof a.eventProperties&&o(n,a.eventProperties.call(e[a.pluginName],t))}),n},modifyOption:function(t,e,n){var a;return R.forEach(function(i){t[i.pluginName]&&i.optionListeners&&"function"==typeof i.optionListeners[e]&&(a=i.optionListeners[e].call(t[i.pluginName],n))}),a}};function H(t){var e=t.sortable,n=t.rootEl,a=t.name,i=t.targetEl,o=t.cloneEl,s=t.toEl,d=t.fromEl,u=t.oldIndex,p=t.newIndex,h=t.oldDraggableIndex,f=t.newDraggableIndex,g=t.originalEvent,m=t.putSortable,v=t.extraEventProperties;if(e=e||n&&n[U]){var A,b=e.options,y="on"+a.charAt(0).toUpperCase()+a.substr(1);!window.CustomEvent||l||c?(A=document.createEvent("Event")).initEvent(a,!0,!0):A=new CustomEvent(a,{bubbles:!0,cancelable:!0}),A.to=s||n,A.from=d||n,A.item=i||n,A.clone=o,A.oldIndex=u,A.newIndex=p,A.oldDraggableIndex=h,A.newDraggableIndex=f,A.originalEvent=g,A.pullMode=m?m.lastPutMode:void 0;var C=r({},v,z.getEventProperties(a,e));for(var x in C)A[x]=C[x];n&&n.dispatchEvent(A),b[y]&&b[y].call(e,A)}}var X=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=n.evt,i=function(t,e){if(null==t)return{};var n,a,i=function(t,e){if(null==t)return{};var n,a,i={},o=Object.keys(t);for(a=0;a<o.length;a++)n=o[a],e.indexOf(n)>=0||(i[n]=t[n]);return i}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(a=0;a<o.length;a++)n=o[a],e.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(i[n]=t[n])}return i}(n,["evt"]);z.pluginEvent.bind(Lt)(t,e,r({dragEl:Y,parentEl:V,ghostEl:q,rootEl:K,nextEl:Z,lastDownEl:Q,cloneEl:J,cloneHidden:tt,dragStarted:ht,putSortable:rt,activeSortable:Lt.active,originalEvent:a,oldIndex:et,oldDraggableIndex:at,newIndex:nt,newDraggableIndex:it,hideGhostForTarget:Tt,unhideGhostForTarget:Mt,cloneNowHidden:function(){tt=!0},cloneNowShown:function(){tt=!1},dispatchSortableEvent:function(t){$({sortable:e,name:t,originalEvent:a})}},i))};function $(t){H(r({putSortable:rt,cloneEl:J,targetEl:Y,rootEl:K,oldIndex:et,oldDraggableIndex:at,newIndex:nt,newDraggableIndex:it},t))}var Y,V,q,K,Z,Q,J,tt,et,nt,at,it,ot,rt,st,lt,ct,dt,ut,pt,ht,ft,gt,mt,vt,At=!1,bt=!1,yt=[],Ct=!1,xt=!1,wt=[],_t=!1,kt=[],St="undefined"!=typeof document,Et=p,Dt=c||l?"cssFloat":"float",It=St&&!h&&!p&&"draggable"in document.createElement("div"),Bt=function(){if(St){if(l)return!1;var t=document.createElement("x");return t.style.cssText="pointer-events:auto","auto"===t.style.pointerEvents}}(),Ot=function(t,e){var n=w(t),a=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),i=I(t,0,e),o=I(t,1,e),r=i&&w(i),s=o&&w(o),l=r&&parseInt(r.marginLeft)+parseInt(r.marginRight)+E(i).width,c=s&&parseInt(s.marginLeft)+parseInt(s.marginRight)+E(o).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(i&&r.float&&"none"!==r.float){var d="left"===r.float?"left":"right";return!o||"both"!==s.clear&&s.clear!==d?"horizontal":"vertical"}return i&&("block"===r.display||"flex"===r.display||"table"===r.display||"grid"===r.display||l>=a&&"none"===n[Dt]||o&&"none"===n[Dt]&&l+c>a)?"vertical":"horizontal"},Nt=function(t){function e(t,n){return function(a,i,o,r){var s=a.options.group.name&&i.options.group.name&&a.options.group.name===i.options.group.name;if(null==t&&(n||s))return!0;if(null==t||!1===t)return!1;if(n&&"clone"===t)return t;if("function"==typeof t)return e(t(a,i,o,r),n)(a,i,o,r);var l=(n?a:i).options.group.name;return!0===t||"string"==typeof t&&t===l||t.join&&t.indexOf(l)>-1}}var n={},i=t.group;i&&"object"==a(i)||(i={name:i}),n.name=i.name,n.checkPull=e(i.pull,!0),n.checkPut=e(i.put),n.revertClone=i.revertClone,t.group=n},Tt=function(){!Bt&&q&&w(q,"display","none")},Mt=function(){!Bt&&q&&w(q,"display","")};St&&document.addEventListener("click",function(t){if(bt)return t.preventDefault(),t.stopPropagation&&t.stopPropagation(),t.stopImmediatePropagation&&t.stopImmediatePropagation(),bt=!1,!1},!0);var Pt=function(t){if(Y){t=t.touches?t.touches[0]:t;var e=(i=t.clientX,o=t.clientY,yt.some(function(t){if(!B(t)){var e=E(t),n=t[U].options.emptyInsertThreshold,a=i>=e.left-n&&i<=e.right+n,s=o>=e.top-n&&o<=e.bottom+n;return n&&a&&s?r=t:void 0}}),r);if(e){var n={};for(var a in t)t.hasOwnProperty(a)&&(n[a]=t[a]);n.target=n.rootEl=e,n.preventDefault=void 0,n.stopPropagation=void 0,e[U]._onDragOver(n)}}var i,o,r},jt=function(t){Y&&Y.parentNode[U]._isOutsideThisEl(t.target)};function Lt(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=o({},e),t[U]=this;var n,a,i={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 Ot(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!==Lt.supportPointer&&"PointerEvent"in window,emptyInsertThreshold:5};for(var s in z.initializePlugins(this,t,i),i)!(s in e)&&(e[s]=i[s]);for(var l in Nt(e),this)"_"===l.charAt(0)&&"function"==typeof this[l]&&(this[l]=this[l].bind(this));this.nativeDraggable=!e.forceFallback&&It,this.nativeDraggable&&(this.options.touchStartThreshold=1),e.supportPointer?g(t,"pointerdown",this._onTapStart):(g(t,"mousedown",this._onTapStart),g(t,"touchstart",this._onTapStart)),this.nativeDraggable&&(g(t,"dragover",this),g(t,"dragenter",this)),yt.push(this.el),e.store&&e.store.get&&this.sort(e.store.get(this)||[]),o(this,(a=[],{captureAnimationState:function(){a=[],this.options.animation&&[].slice.call(this.el.children).forEach(function(t){if("none"!==w(t,"display")&&t!==Lt.ghost){a.push({target:t,rect:E(t)});var e=r({},a[a.length-1].rect);if(t.thisAnimationDuration){var n=_(t,!0);n&&(e.top-=n.f,e.left-=n.e)}t.fromRect=e}})},addAnimationState:function(t){a.push(t)},removeAnimationState:function(t){a.splice(function(t,e){for(var n in t)if(t.hasOwnProperty(n))for(var a in e)if(e.hasOwnProperty(a)&&e[a]===t[n][a])return Number(n);return-1}(a,{target:t}),1)},animateAll:function(t){var e=this;if(!this.options.animation)return clearTimeout(n),void("function"==typeof t&&t());var i=!1,o=0;a.forEach(function(t){var n=0,a=t.target,r=a.fromRect,s=E(a),l=a.prevFromRect,c=a.prevToRect,d=t.rect,u=_(a,!0);u&&(s.top-=u.f,s.left-=u.e),a.toRect=s,a.thisAnimationDuration&&M(l,s)&&!M(r,s)&&(d.top-s.top)/(d.left-s.left)===(r.top-s.top)/(r.left-s.left)&&(n=function(t,e,n,a){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))*a.animation}(d,l,c,e.options)),M(s,r)||(a.prevFromRect=r,a.prevToRect=s,n||(n=e.options.animation),e.animate(a,d,s,n)),n&&(i=!0,o=Math.max(o,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),i?n=setTimeout(function(){"function"==typeof t&&t()},o):"function"==typeof t&&t(),a=[]},animate:function(t,e,n,a){if(a){w(t,"transition",""),w(t,"transform","");var i=_(this.el),o=i&&i.a,r=i&&i.d,s=(e.left-n.left)/(o||1),l=(e.top-n.top)/(r||1);t.animatingX=!!s,t.animatingY=!!l,w(t,"transform","translate3d("+s+"px,"+l+"px,0)"),function(t){t.offsetWidth}(t),w(t,"transition","transform "+a+"ms"+(this.options.easing?" "+this.options.easing:"")),w(t,"transform","translate3d(0,0,0)"),"number"==typeof t.animated&&clearTimeout(t.animated),t.animated=setTimeout(function(){w(t,"transition",""),w(t,"transform",""),t.animated=!1,t.animatingX=!1,t.animatingY=!1},a)}}}))}function Wt(t,e,n,a,i,o,r,s){var d,u,p=t[U],h=p.options.onMove;return!window.CustomEvent||l||c?(d=document.createEvent("Event")).initEvent("move",!0,!0):d=new CustomEvent("move",{bubbles:!0,cancelable:!0}),d.to=e,d.from=t,d.dragged=n,d.draggedRect=a,d.related=i||e,d.relatedRect=o||E(e),d.willInsertAfter=s,d.originalEvent=r,t.dispatchEvent(d),h&&(u=h.call(p,d,r)),u}function Ft(t){t.draggable=!1}function Ut(){_t=!1}function Rt(t){for(var e=t.tagName+t.className+t.src+t.href+t.textContent,n=e.length,a=0;n--;)a+=e.charCodeAt(n);return a.toString(36)}function Gt(t){return setTimeout(t,0)}function zt(t){return clearTimeout(t)}Lt.prototype={constructor:Lt,_isOutsideThisEl:function(t){this.el.contains(t)||t===this.el||(ft=null)},_getDirection:function(t,e){return"function"==typeof this.options.direction?this.options.direction.call(this,t,e,Y):this.options.direction},_onTapStart:function(t){if(t.cancelable){var e=this,n=this.el,a=this.options,i=a.preventOnFilter,o=t.type,r=t.touches&&t.touches[0]||t.pointerType&&"touch"===t.pointerType&&t,s=(r||t).target,l=t.target.shadowRoot&&(t.path&&t.path[0]||t.composedPath&&t.composedPath()[0])||s,c=a.filter;if(function(t){kt.length=0;for(var e=t.getElementsByTagName("input"),n=e.length;n--;){var a=e[n];a.checked&&kt.push(a)}}(n),!Y&&!(/mousedown|pointerdown/.test(o)&&0!==t.button||a.disabled||l.isContentEditable||(s=b(s,a.draggable,n,!1))&&s.animated||Q===s)){if(et=O(s),at=O(s,a.draggable),"function"==typeof c){if(c.call(this,t,s,this))return $({sortable:e,rootEl:l,name:"filter",targetEl:s,toEl:n,fromEl:n}),X("filter",e,{evt:t}),void(i&&t.cancelable&&t.preventDefault())}else if(c&&(c=c.split(",").some(function(a){if(a=b(l,a.trim(),n,!1))return $({sortable:e,rootEl:a,name:"filter",targetEl:s,fromEl:n,toEl:n}),X("filter",e,{evt:t}),!0})))return void(i&&t.cancelable&&t.preventDefault());a.handle&&!b(l,a.handle,n,!1)||this._prepareDragStart(t,r,s)}}},_prepareDragStart:function(t,e,n){var a,i=this,o=i.el,r=i.options,s=o.ownerDocument;if(n&&!Y&&n.parentNode===o){var u=E(n);if(K=o,V=(Y=n).parentNode,Z=Y.nextSibling,Q=n,ot=r.group,Lt.dragged=Y,st={target:Y,clientX:(e||t).clientX,clientY:(e||t).clientY},ut=st.clientX-u.left,pt=st.clientY-u.top,this._lastX=(e||t).clientX,this._lastY=(e||t).clientY,Y.style["will-change"]="all",a=function(){X("delayEnded",i,{evt:t}),Lt.eventCanceled?i._onDrop():(i._disableDelayedDragEvents(),!d&&i.nativeDraggable&&(Y.draggable=!0),i._triggerDragStart(t,e),$({sortable:i,name:"choose",originalEvent:t}),x(Y,r.chosenClass,!0))},r.ignore.split(",").forEach(function(t){k(Y,t.trim(),Ft)}),g(s,"dragover",Pt),g(s,"mousemove",Pt),g(s,"touchmove",Pt),g(s,"mouseup",i._onDrop),g(s,"touchend",i._onDrop),g(s,"touchcancel",i._onDrop),d&&this.nativeDraggable&&(this.options.touchStartThreshold=4,Y.draggable=!0),X("delayStart",this,{evt:t}),!r.delay||r.delayOnTouchOnly&&!e||this.nativeDraggable&&(c||l))a();else{if(Lt.eventCanceled)return void this._onDrop();g(s,"mouseup",i._disableDelayedDrag),g(s,"touchend",i._disableDelayedDrag),g(s,"touchcancel",i._disableDelayedDrag),g(s,"mousemove",i._delayedDragTouchMoveHandler),g(s,"touchmove",i._delayedDragTouchMoveHandler),r.supportPointer&&g(s,"pointermove",i._delayedDragTouchMoveHandler),i._dragStartTimer=setTimeout(a,r.delay)}}},_delayedDragTouchMoveHandler:function(t){var e=t.touches?t.touches[0]:t;Math.max(Math.abs(e.clientX-this._lastX),Math.abs(e.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){Y&&Ft(Y),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var t=this.el.ownerDocument;m(t,"mouseup",this._disableDelayedDrag),m(t,"touchend",this._disableDelayedDrag),m(t,"touchcancel",this._disableDelayedDrag),m(t,"mousemove",this._delayedDragTouchMoveHandler),m(t,"touchmove",this._delayedDragTouchMoveHandler),m(t,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(t,e){e=e||"touch"==t.pointerType&&t,!this.nativeDraggable||e?this.options.supportPointer?g(document,"pointermove",this._onTouchMove):g(document,e?"touchmove":"mousemove",this._onTouchMove):(g(Y,"dragend",this),g(K,"dragstart",this._onDragStart));try{document.selection?Gt(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch(t){}},_dragStarted:function(t,e){if(At=!1,K&&Y){X("dragStarted",this,{evt:e}),this.nativeDraggable&&g(document,"dragover",jt);var n=this.options;!t&&x(Y,n.dragClass,!1),x(Y,n.ghostClass,!0),Lt.active=this,t&&this._appendGhost(),$({sortable:this,name:"start",originalEvent:e})}else this._nulling()},_emulateDragOver:function(){if(lt){this._lastX=lt.clientX,this._lastY=lt.clientY,Tt();for(var t=document.elementFromPoint(lt.clientX,lt.clientY),e=t;t&&t.shadowRoot&&(t=t.shadowRoot.elementFromPoint(lt.clientX,lt.clientY))!==e;)e=t;if(Y.parentNode[U]._isOutsideThisEl(t),e)do{if(e[U]&&e[U]._onDragOver({clientX:lt.clientX,clientY:lt.clientY,target:t,rootEl:e})&&!this.options.dragoverBubble)break;t=e}while(e=e.parentNode);Mt()}},_onTouchMove:function(t){if(st){var e=this.options,n=e.fallbackTolerance,a=e.fallbackOffset,i=t.touches?t.touches[0]:t,o=q&&_(q,!0),r=q&&o&&o.a,s=q&&o&&o.d,l=Et&&vt&&N(vt),c=(i.clientX-st.clientX+a.x)/(r||1)+(l?l[0]-wt[0]:0)/(r||1),d=(i.clientY-st.clientY+a.y)/(s||1)+(l?l[1]-wt[1]:0)/(s||1);if(!Lt.active&&!At){if(n&&Math.max(Math.abs(i.clientX-this._lastX),Math.abs(i.clientY-this._lastY))<n)return;this._onDragStart(t,!0)}if(q){o?(o.e+=c-(ct||0),o.f+=d-(dt||0)):o={a:1,b:0,c:0,d:1,e:c,f:d};var u="matrix(".concat(o.a,",").concat(o.b,",").concat(o.c,",").concat(o.d,",").concat(o.e,",").concat(o.f,")");w(q,"webkitTransform",u),w(q,"mozTransform",u),w(q,"msTransform",u),w(q,"transform",u),ct=c,dt=d,lt=i}t.cancelable&&t.preventDefault()}},_appendGhost:function(){if(!q){var t=this.options.fallbackOnBody?document.body:K,e=E(Y,!0,Et,!0,t),n=this.options;if(Et){for(vt=t;"static"===w(vt,"position")&&"none"===w(vt,"transform")&&vt!==document;)vt=vt.parentNode;vt!==document.body&&vt!==document.documentElement?(vt===document&&(vt=S()),e.top+=vt.scrollTop,e.left+=vt.scrollLeft):vt=S(),wt=N(vt)}x(q=Y.cloneNode(!0),n.ghostClass,!1),x(q,n.fallbackClass,!0),x(q,n.dragClass,!0),w(q,"transition",""),w(q,"transform",""),w(q,"box-sizing","border-box"),w(q,"margin",0),w(q,"top",e.top),w(q,"left",e.left),w(q,"width",e.width),w(q,"height",e.height),w(q,"opacity","0.8"),w(q,"position",Et?"absolute":"fixed"),w(q,"zIndex","100000"),w(q,"pointerEvents","none"),Lt.ghost=q,t.appendChild(q),w(q,"transform-origin",ut/parseInt(q.style.width)*100+"% "+pt/parseInt(q.style.height)*100+"%")}},_onDragStart:function(t,e){var n=this,a=t.dataTransfer,i=n.options;X("dragStart",this,{evt:t}),Lt.eventCanceled?this._onDrop():(X("setupClone",this),Lt.eventCanceled||((J=L(Y)).draggable=!1,J.style["will-change"]="",this._hideClone(),x(J,this.options.chosenClass,!1),Lt.clone=J),n.cloneId=Gt(function(){X("clone",n),Lt.eventCanceled||(n.options.removeCloneOnHide||K.insertBefore(J,Y),n._hideClone(),$({sortable:n,name:"clone"}))}),!e&&x(Y,i.dragClass,!0),e?(bt=!0,n._loopId=setInterval(n._emulateDragOver,50)):(m(document,"mouseup",n._onDrop),m(document,"touchend",n._onDrop),m(document,"touchcancel",n._onDrop),a&&(a.effectAllowed="move",i.setData&&i.setData.call(n,a,Y)),g(document,"drop",n),w(Y,"transform","translateZ(0)")),At=!0,n._dragStartId=Gt(n._dragStarted.bind(n,e,t)),g(document,"selectstart",n),ht=!0,u&&w(document.body,"user-select","none"))},_onDragOver:function(t){var e,n,a,i,o=this.el,s=t.target,l=this.options,c=l.group,d=Lt.active,u=ot===c,p=l.sort,h=rt||d,f=this,g=!1;if(!_t){if(void 0!==t.preventDefault&&t.cancelable&&t.preventDefault(),s=b(s,l.draggable,o,!0),L("dragOver"),Lt.eventCanceled)return g;if(Y.contains(t.target)||s.animated&&s.animatingX&&s.animatingY||f._ignoreWhileAnimating===s)return F(!1);if(bt=!1,d&&!l.disabled&&(u?p||(a=!K.contains(Y)):rt===this||(this.lastPutMode=ot.checkPull(this,d,Y,t))&&c.checkPut(this,d,Y,t))){if(i="vertical"===this._getDirection(t,s),e=E(Y),L("dragOverValid"),Lt.eventCanceled)return g;if(a)return V=K,W(),this._hideClone(),L("revert"),Lt.eventCanceled||(Z?K.insertBefore(Y,Z):K.appendChild(Y)),F(!0);var m=B(o,l.draggable);if(!m||function(t,e,n){var a=E(B(n.el,n.options.draggable));return e?t.clientX>a.right+10||t.clientX<=a.right&&t.clientY>a.bottom&&t.clientX>=a.left:t.clientX>a.right&&t.clientY>a.top||t.clientX<=a.right&&t.clientY>a.bottom+10}(t,i,this)&&!m.animated){if(m===Y)return F(!1);if(m&&o===t.target&&(s=m),s&&(n=E(s)),!1!==Wt(K,o,Y,e,s,n,t,!!s))return W(),o.appendChild(Y),V=o,R(),F(!0)}else if(s.parentNode===o){n=E(s);var v,A,y,C=Y.parentNode!==o,_=!function(t,e,n){var a=n?t.left:t.top,i=n?t.right:t.bottom,o=n?t.width:t.height,r=n?e.left:e.top,s=n?e.right:e.bottom,l=n?e.width:e.height;return a===r||i===s||a+o/2===r+l/2}(Y.animated&&Y.toRect||e,s.animated&&s.toRect||n,i),k=i?"top":"left",S=D(s,"top","top")||D(Y,"top","top"),I=S?S.scrollTop:void 0;if(ft!==s&&(A=n[k],Ct=!1,xt=!_&&l.invertSwap||C),v=function(t,e,n,a,i,o,r,s){var l=a?t.clientY:t.clientX,c=a?n.height:n.width,d=a?n.top:n.left,u=a?n.bottom:n.right,p=!1;if(!r)if(s&&mt<c*i){if(!Ct&&(1===gt?l>d+c*o/2:l<u-c*o/2)&&(Ct=!0),Ct)p=!0;else if(1===gt?l<d+mt:l>u-mt)return-gt}else if(l>d+c*(1-i)/2&&l<u-c*(1-i)/2)return function(t){return O(Y)<O(t)?1:-1}(e);return(p=p||r)&&(l<d+c*o/2||l>u-c*o/2)?l>d+c/2?1:-1:0}(t,s,n,i,_?1:l.swapThreshold,null==l.invertedSwapThreshold?l.swapThreshold:l.invertedSwapThreshold,xt,ft===s),0!==v){var N=O(Y);do{N-=v,y=V.children[N]}while(y&&("none"===w(y,"display")||y===q))}if(0===v||y===s)return F(!1);ft=s,gt=v;var T=s.nextElementSibling,M=!1,P=Wt(K,o,Y,e,s,n,t,M=1===v);if(!1!==P)return 1!==P&&-1!==P||(M=1===P),_t=!0,setTimeout(Ut,30),W(),M&&!T?o.appendChild(Y):s.parentNode.insertBefore(Y,M?T:s),S&&j(S,0,I-S.scrollTop),V=Y.parentNode,void 0===A||xt||(mt=Math.abs(A-E(s)[k])),R(),F(!0)}if(o.contains(Y))return F(!1)}return!1}function L(l,c){X(l,f,r({evt:t,isOwner:u,axis:i?"vertical":"horizontal",revert:a,dragRect:e,targetRect:n,canSort:p,fromSortable:h,target:s,completed:F,onMove:function(n,a){return Wt(K,o,Y,e,n,E(n),t,a)},changed:R},c))}function W(){L("dragOverAnimationCapture"),f.captureAnimationState(),f!==h&&h.captureAnimationState()}function F(e){return L("dragOverCompleted",{insertion:e}),e&&(u?d._hideClone():d._showClone(f),f!==h&&(x(Y,rt?rt.options.ghostClass:d.options.ghostClass,!1),x(Y,l.ghostClass,!0)),rt!==f&&f!==Lt.active?rt=f:f===Lt.active&&rt&&(rt=null),h===f&&(f._ignoreWhileAnimating=s),f.animateAll(function(){L("dragOverAnimationComplete"),f._ignoreWhileAnimating=null}),f!==h&&(h.animateAll(),h._ignoreWhileAnimating=null)),(s===Y&&!Y.animated||s===o&&!s.animated)&&(ft=null),l.dragoverBubble||t.rootEl||s===document||(Y.parentNode[U]._isOutsideThisEl(t.target),!e&&Pt(t)),!l.dragoverBubble&&t.stopPropagation&&t.stopPropagation(),g=!0}function R(){nt=O(Y),it=O(Y,l.draggable),$({sortable:f,name:"change",toEl:o,newIndex:nt,newDraggableIndex:it,originalEvent:t})}},_ignoreWhileAnimating:null,_offMoveEvents:function(){m(document,"mousemove",this._onTouchMove),m(document,"touchmove",this._onTouchMove),m(document,"pointermove",this._onTouchMove),m(document,"dragover",Pt),m(document,"mousemove",Pt),m(document,"touchmove",Pt)},_offUpEvents:function(){var t=this.el.ownerDocument;m(t,"mouseup",this._onDrop),m(t,"touchend",this._onDrop),m(t,"pointerup",this._onDrop),m(t,"touchcancel",this._onDrop),m(document,"selectstart",this)},_onDrop:function(t){var e=this.el,n=this.options;nt=O(Y),it=O(Y,n.draggable),X("drop",this,{evt:t}),V=Y&&Y.parentNode,nt=O(Y),it=O(Y,n.draggable),Lt.eventCanceled||(At=!1,xt=!1,Ct=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),zt(this.cloneId),zt(this._dragStartId),this.nativeDraggable&&(m(document,"drop",this),m(e,"dragstart",this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),u&&w(document.body,"user-select",""),w(Y,"transform",""),t&&(ht&&(t.cancelable&&t.preventDefault(),!n.dropBubble&&t.stopPropagation()),q&&q.parentNode&&q.parentNode.removeChild(q),(K===V||rt&&"clone"!==rt.lastPutMode)&&J&&J.parentNode&&J.parentNode.removeChild(J),Y&&(this.nativeDraggable&&m(Y,"dragend",this),Ft(Y),Y.style["will-change"]="",ht&&!At&&x(Y,rt?rt.options.ghostClass:this.options.ghostClass,!1),x(Y,this.options.chosenClass,!1),$({sortable:this,name:"unchoose",toEl:V,newIndex:null,newDraggableIndex:null,originalEvent:t}),K!==V?(nt>=0&&($({rootEl:V,name:"add",toEl:V,fromEl:K,originalEvent:t}),$({sortable:this,name:"remove",toEl:V,originalEvent:t}),$({rootEl:V,name:"sort",toEl:V,fromEl:K,originalEvent:t}),$({sortable:this,name:"sort",toEl:V,originalEvent:t})),rt&&rt.save()):nt!==et&&nt>=0&&($({sortable:this,name:"update",toEl:V,originalEvent:t}),$({sortable:this,name:"sort",toEl:V,originalEvent:t})),Lt.active&&(null!=nt&&-1!==nt||(nt=et,it=at),$({sortable:this,name:"end",toEl:V,originalEvent:t}),this.save())))),this._nulling()},_nulling:function(){X("nulling",this),K=Y=V=q=Z=J=Q=tt=st=lt=ht=nt=it=et=at=ft=gt=rt=ot=Lt.dragged=Lt.ghost=Lt.clone=Lt.active=null,kt.forEach(function(t){t.checked=!0}),kt.length=ct=dt=0},handleEvent:function(t){switch(t.type){case"drop":case"dragend":this._onDrop(t);break;case"dragenter":case"dragover":Y&&(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,a=0,i=n.length,o=this.options;a<i;a++)b(t=n[a],o.draggable,this.el,!1)&&e.push(t.getAttribute(o.dataIdAttr)||Rt(t));return e},sort:function(t){var e={},n=this.el;this.toArray().forEach(function(t,a){var i=n.children[a];b(i,this.options.draggable,n,!1)&&(e[t]=i)},this),t.forEach(function(t){e[t]&&(n.removeChild(e[t]),n.appendChild(e[t]))})},save:function(){var t=this.options.store;t&&t.set&&t.set(this)},closest:function(t,e){return b(t,e||this.options.draggable,this.el,!1)},option:function(t,e){var n=this.options;if(void 0===e)return n[t];var a=z.modifyOption(this,t,e);n[t]=void 0!==a?a:e,"group"===t&&Nt(n)},destroy:function(){X("destroy",this);var t=this.el;t[U]=null,m(t,"mousedown",this._onTapStart),m(t,"touchstart",this._onTapStart),m(t,"pointerdown",this._onTapStart),this.nativeDraggable&&(m(t,"dragover",this),m(t,"dragenter",this)),Array.prototype.forEach.call(t.querySelectorAll("[draggable]"),function(t){t.removeAttribute("draggable")}),this._onDrop(),this._disableDelayedDragEvents(),yt.splice(yt.indexOf(this.el),1),this.el=t=null},_hideClone:function(){if(!tt){if(X("hideClone",this),Lt.eventCanceled)return;w(J,"display","none"),this.options.removeCloneOnHide&&J.parentNode&&J.parentNode.removeChild(J),tt=!0}},_showClone:function(t){if("clone"===t.lastPutMode){if(tt){if(X("showClone",this),Lt.eventCanceled)return;K.contains(Y)&&!this.options.group.revertClone?K.insertBefore(J,Y):Z?K.insertBefore(J,Z):K.appendChild(J),this.options.group.revertClone&&this.animate(Y,J),w(J,"display",""),tt=!1}}else this._hideClone()}},St&&g(document,"touchmove",function(t){(Lt.active||At)&&t.cancelable&&t.preventDefault()}),Lt.utils={on:g,off:m,css:w,find:k,is:function(t,e){return!!b(t,e,t,!1)},extend:function(t,e){if(t&&e)for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t},throttle:P,closest:b,toggleClass:x,clone:L,index:O,nextTick:Gt,cancelNextTick:zt,detectDirection:Ot,getChild:I},Lt.get=function(t){return t[U]},Lt.mount=function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];e[0].constructor===Array&&(e=e[0]),e.forEach(function(t){if(!t.prototype||!t.prototype.constructor)throw"Sortable: Mounted plugin must be a constructor function, not ".concat({}.toString.call(t));t.utils&&(Lt.utils=r({},Lt.utils,t.utils)),z.mount(t)})},Lt.create=function(t,e){return new Lt(t,e)},Lt.version="1.10.2";var Ht,Xt,$t,Yt,Vt,qt,Kt=[],Zt=!1;function Qt(){Kt.forEach(function(t){clearInterval(t.pid)}),Kt=[]}function Jt(){clearInterval(qt)}var te,ee=P(function(t,e,n,a){if(e.scroll){var i,o=(t.touches?t.touches[0]:t).clientX,r=(t.touches?t.touches[0]:t).clientY,s=e.scrollSensitivity,l=e.scrollSpeed,c=S(),d=!1;Xt!==n&&(Xt=n,Qt(),Ht=e.scroll,i=e.scrollFn,!0===Ht&&(Ht=T(n,!0)));var u=0,p=Ht;do{var h=p,f=E(h),g=f.top,m=f.bottom,v=f.left,A=f.right,b=f.width,y=f.height,C=void 0,x=void 0,_=h.scrollWidth,k=h.scrollHeight,D=w(h),I=h.scrollLeft,B=h.scrollTop;h===c?(C=b<_&&("auto"===D.overflowX||"scroll"===D.overflowX||"visible"===D.overflowX),x=y<k&&("auto"===D.overflowY||"scroll"===D.overflowY||"visible"===D.overflowY)):(C=b<_&&("auto"===D.overflowX||"scroll"===D.overflowX),x=y<k&&("auto"===D.overflowY||"scroll"===D.overflowY));var O=C&&(Math.abs(A-o)<=s&&I+b<_)-(Math.abs(v-o)<=s&&!!I),N=x&&(Math.abs(m-r)<=s&&B+y<k)-(Math.abs(g-r)<=s&&!!B);if(!Kt[u])for(var M=0;M<=u;M++)Kt[M]||(Kt[M]={});Kt[u].vx==O&&Kt[u].vy==N&&Kt[u].el===h||(Kt[u].el=h,Kt[u].vx=O,Kt[u].vy=N,clearInterval(Kt[u].pid),0==O&&0==N||(d=!0,Kt[u].pid=setInterval(function(){a&&0===this.layer&&Lt.active._onTouchMove(Vt);var e=Kt[this.layer].vy?Kt[this.layer].vy*l:0,n=Kt[this.layer].vx?Kt[this.layer].vx*l:0;"function"==typeof i&&"continue"!==i.call(Lt.dragged.parentNode[U],n,e,t,Vt,Kt[this.layer].el)||j(Kt[this.layer].el,n,e)}.bind({layer:u}),24))),u++}while(e.bubbleScroll&&p!==c&&(p=T(p,!1)));Zt=d}},30),ne=function(t){var e=t.originalEvent,n=t.putSortable,a=t.dragEl,i=t.activeSortable,o=t.dispatchSortableEvent,r=t.hideGhostForTarget,s=t.unhideGhostForTarget;if(e){var l=n||i;r();var c=e.changedTouches&&e.changedTouches.length?e.changedTouches[0]:e,d=document.elementFromPoint(c.clientX,c.clientY);s(),l&&!l.el.contains(d)&&(o("spill"),this.onSpill({dragEl:a,putSortable:n}))}};function ae(){}function ie(){}function oe(){function t(){this.defaults={swapClass:"sortable-swap-highlight"}}return t.prototype={dragStart:function(t){var e=t.dragEl;te=e},dragOverValid:function(t){var e=t.completed,n=t.target,a=t.onMove,i=t.activeSortable,o=t.changed,r=t.cancel;if(i.options.swap){var s=this.sortable.el,l=this.options;if(n&&n!==s){var c=te;!1!==a(n)?(x(n,l.swapClass,!0),te=n):te=null,c&&c!==te&&x(c,l.swapClass,!1)}o(),e(!0),r()}},drop:function(t){var e,n,a,i,o,r,s=t.activeSortable,l=t.putSortable,c=t.dragEl,d=l||this.sortable,u=this.options;te&&x(te,u.swapClass,!1),te&&(u.swap||l&&l.options.swap)&&c!==te&&(d.captureAnimationState(),d!==s&&s.captureAnimationState(),n=te,o=(e=c).parentNode,r=n.parentNode,o&&r&&!o.isEqualNode(n)&&!r.isEqualNode(e)&&(a=O(e),i=O(n),o.isEqualNode(r)&&a<i&&i++,o.insertBefore(n,o.children[a]),r.insertBefore(e,r.children[i])),d.animateAll(),d!==s&&s.animateAll())},nulling:function(){te=null}},o(t,{pluginName:"swap",eventProperties:function(){return{swapItem:te}}})}ae.prototype={startIndex:null,dragStart:function(t){var e=t.oldDraggableIndex;this.startIndex=e},onSpill:function(t){var e=t.dragEl,n=t.putSortable;this.sortable.captureAnimationState(),n&&n.captureAnimationState();var a=I(this.sortable.el,this.startIndex,this.options);a?this.sortable.el.insertBefore(e,a):this.sortable.el.appendChild(e),this.sortable.animateAll(),n&&n.animateAll()},drop:ne},o(ae,{pluginName:"revertOnSpill"}),ie.prototype={onSpill:function(t){var e=t.dragEl,n=t.putSortable||this.sortable;n.captureAnimationState(),e.parentNode&&e.parentNode.removeChild(e),n.animateAll()},drop:ne},o(ie,{pluginName:"removeOnSpill"});var re,se,le,ce,de,ue=[],pe=[],he=!1,fe=!1,ge=!1;function me(){function t(t){for(var e in this)"_"===e.charAt(0)&&"function"==typeof this[e]&&(this[e]=this[e].bind(this));t.options.supportPointer?g(document,"pointerup",this._deselectMultiDrag):(g(document,"mouseup",this._deselectMultiDrag),g(document,"touchend",this._deselectMultiDrag)),g(document,"keydown",this._checkKeyDown),g(document,"keyup",this._checkKeyUp),this.defaults={selectedClass:"sortable-selected",multiDragKey:null,setData:function(e,n){var a="";ue.length&&se===t?ue.forEach(function(t,e){a+=(e?", ":"")+t.textContent}):a=n.textContent,e.setData("Text",a)}}}return t.prototype={multiDragKeyDown:!1,isMultiDrag:!1,delayStartGlobal:function(t){var e=t.dragEl;le=e},delayEnded:function(){this.isMultiDrag=~ue.indexOf(le)},setupClone:function(t){var e=t.sortable,n=t.cancel;if(this.isMultiDrag){for(var a=0;a<ue.length;a++)pe.push(L(ue[a])),pe[a].sortableIndex=ue[a].sortableIndex,pe[a].draggable=!1,pe[a].style["will-change"]="",x(pe[a],this.options.selectedClass,!1),ue[a]===le&&x(pe[a],this.options.chosenClass,!1);e._hideClone(),n()}},clone:function(t){var e=t.sortable,n=t.rootEl,a=t.dispatchSortableEvent,i=t.cancel;this.isMultiDrag&&(this.options.removeCloneOnHide||ue.length&&se===e&&(ve(!0,n),a("clone"),i()))},showClone:function(t){var e=t.cloneNowShown,n=t.rootEl,a=t.cancel;this.isMultiDrag&&(ve(!1,n),pe.forEach(function(t){w(t,"display","")}),e(),de=!1,a())},hideClone:function(t){var e=this,n=(t.sortable,t.cloneNowHidden),a=t.cancel;this.isMultiDrag&&(pe.forEach(function(t){w(t,"display","none"),e.options.removeCloneOnHide&&t.parentNode&&t.parentNode.removeChild(t)}),n(),de=!0,a())},dragStartGlobal:function(t){t.sortable,!this.isMultiDrag&&se&&se.multiDrag._deselectMultiDrag(),ue.forEach(function(t){t.sortableIndex=O(t)}),ue=ue.sort(function(t,e){return t.sortableIndex-e.sortableIndex}),ge=!0},dragStarted:function(t){var e=this,n=t.sortable;if(this.isMultiDrag){if(this.options.sort&&(n.captureAnimationState(),this.options.animation)){ue.forEach(function(t){t!==le&&w(t,"position","absolute")});var a=E(le,!1,!0,!0);ue.forEach(function(t){t!==le&&W(t,a)}),fe=!0,he=!0}n.animateAll(function(){fe=!1,he=!1,e.options.animation&&ue.forEach(function(t){F(t)}),e.options.sort&&Ae()})}},dragOver:function(t){var e=t.target,n=t.completed,a=t.cancel;fe&&~ue.indexOf(e)&&(n(!1),a())},revert:function(t){var e=t.fromSortable,n=t.rootEl,a=t.sortable,i=t.dragRect;ue.length>1&&(ue.forEach(function(t){a.addAnimationState({target:t,rect:fe?E(t):i}),F(t),t.fromRect=i,e.removeAnimationState(t)}),fe=!1,function(t,e){ue.forEach(function(n,a){var i=e.children[n.sortableIndex+(t?Number(a):0)];i?e.insertBefore(n,i):e.appendChild(n)})}(!this.options.removeCloneOnHide,n))},dragOverCompleted:function(t){var e=t.sortable,n=t.isOwner,a=t.insertion,i=t.activeSortable,o=t.parentEl,r=t.putSortable,s=this.options;if(a){if(n&&i._hideClone(),he=!1,s.animation&&ue.length>1&&(fe||!n&&!i.options.sort&&!r)){var l=E(le,!1,!0,!0);ue.forEach(function(t){t!==le&&(W(t,l),o.appendChild(t))}),fe=!0}if(!n)if(fe||Ae(),ue.length>1){var c=de;i._showClone(e),i.options.animation&&!de&&c&&pe.forEach(function(t){i.addAnimationState({target:t,rect:ce}),t.fromRect=ce,t.thisAnimationDuration=null})}else i._showClone(e)}},dragOverAnimationCapture:function(t){var e=t.dragRect,n=t.isOwner,a=t.activeSortable;if(ue.forEach(function(t){t.thisAnimationDuration=null}),a.options.animation&&!n&&a.multiDrag.isMultiDrag){ce=o({},e);var i=_(le,!0);ce.top-=i.f,ce.left-=i.e}},dragOverAnimationComplete:function(){fe&&(fe=!1,Ae())},drop:function(t){var e=t.originalEvent,n=t.rootEl,a=t.parentEl,i=t.sortable,o=t.dispatchSortableEvent,r=t.oldIndex,s=t.putSortable,l=s||this.sortable;if(e){var c=this.options,d=a.children;if(!ge)if(c.multiDragKey&&!this.multiDragKeyDown&&this._deselectMultiDrag(),x(le,c.selectedClass,!~ue.indexOf(le)),~ue.indexOf(le))ue.splice(ue.indexOf(le),1),re=null,H({sortable:i,rootEl:n,name:"deselect",targetEl:le,originalEvt:e});else{if(ue.push(le),H({sortable:i,rootEl:n,name:"select",targetEl:le,originalEvt:e}),e.shiftKey&&re&&i.el.contains(re)){var u,p,h=O(re),f=O(le);if(~h&&~f&&h!==f)for(f>h?(p=h,u=f):(p=f,u=h+1);p<u;p++)~ue.indexOf(d[p])||(x(d[p],c.selectedClass,!0),ue.push(d[p]),H({sortable:i,rootEl:n,name:"select",targetEl:d[p],originalEvt:e}))}else re=le;se=l}if(ge&&this.isMultiDrag){if((a[U].options.sort||a!==n)&&ue.length>1){var g=E(le),m=O(le,":not(."+this.options.selectedClass+")");if(!he&&c.animation&&(le.thisAnimationDuration=null),l.captureAnimationState(),!he&&(c.animation&&(le.fromRect=g,ue.forEach(function(t){if(t.thisAnimationDuration=null,t!==le){var e=fe?E(t):g;t.fromRect=e,l.addAnimationState({target:t,rect:e})}})),Ae(),ue.forEach(function(t){d[m]?a.insertBefore(t,d[m]):a.appendChild(t),m++}),r===O(le))){var v=!1;ue.forEach(function(t){t.sortableIndex===O(t)||(v=!0)}),v&&o("update")}ue.forEach(function(t){F(t)}),l.animateAll()}se=l}(n===a||s&&"clone"!==s.lastPutMode)&&pe.forEach(function(t){t.parentNode&&t.parentNode.removeChild(t)})}},nullingGlobal:function(){this.isMultiDrag=ge=!1,pe.length=0},destroyGlobal:function(){this._deselectMultiDrag(),m(document,"pointerup",this._deselectMultiDrag),m(document,"mouseup",this._deselectMultiDrag),m(document,"touchend",this._deselectMultiDrag),m(document,"keydown",this._checkKeyDown),m(document,"keyup",this._checkKeyUp)},_deselectMultiDrag:function(t){if(!(void 0!==ge&&ge||se!==this.sortable||t&&b(t.target,this.options.draggable,this.sortable.el,!1)||t&&0!==t.button))for(;ue.length;){var e=ue[0];x(e,this.options.selectedClass,!1),ue.shift(),H({sortable:this.sortable,rootEl:this.sortable.el,name:"deselect",targetEl:e,originalEvt:t})}},_checkKeyDown:function(t){t.key===this.options.multiDragKey&&(this.multiDragKeyDown=!0)},_checkKeyUp:function(t){t.key===this.options.multiDragKey&&(this.multiDragKeyDown=!1)}},o(t,{pluginName:"multiDrag",utils:{select:function(t){var e=t.parentNode[U];e&&e.options.multiDrag&&!~ue.indexOf(t)&&(se&&se!==e&&(se.multiDrag._deselectMultiDrag(),se=e),x(t,e.options.selectedClass,!0),ue.push(t))},deselect:function(t){var e=t.parentNode[U],n=ue.indexOf(t);e&&e.options.multiDrag&&~n&&(x(t,e.options.selectedClass,!1),ue.splice(n,1))}},eventProperties:function(){var t,e=this,n=[],a=[];return ue.forEach(function(t){var i;n.push({multiDragElement:t,index:t.sortableIndex}),i=fe&&t!==le?-1:fe?O(t,":not(."+e.options.selectedClass+")"):O(t),a.push({multiDragElement:t,index:i})}),{items:(t=ue,function(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e<t.length;e++)n[e]=t[e];return n}}(t)||function(t){if(Symbol.iterator in Object(t)||"[object Arguments]"===Object.prototype.toString.call(t))return Array.from(t)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()),clones:[].concat(pe),oldIndicies:n,newIndicies:a}},optionListeners:{multiDragKey:function(t){return"ctrl"===(t=t.toLowerCase())?t="Control":t.length>1&&(t=t.charAt(0).toUpperCase()+t.substr(1)),t}}})}function ve(t,e){pe.forEach(function(n,a){var i=e.children[n.sortableIndex+(t?Number(a):0)];i?e.insertBefore(n,i):e.appendChild(n)})}function Ae(){ue.forEach(function(t){t!==le&&t.parentNode&&t.parentNode.removeChild(t)})}Lt.mount(new function(){function t(){for(var t in this.defaults={scroll:!0,scrollSensitivity:30,scrollSpeed:10,bubbleScroll:!0},this)"_"===t.charAt(0)&&"function"==typeof this[t]&&(this[t]=this[t].bind(this))}return t.prototype={dragStarted:function(t){var e=t.originalEvent;this.sortable.nativeDraggable?g(document,"dragover",this._handleAutoScroll):this.options.supportPointer?g(document,"pointermove",this._handleFallbackAutoScroll):e.touches?g(document,"touchmove",this._handleFallbackAutoScroll):g(document,"mousemove",this._handleFallbackAutoScroll)},dragOverCompleted:function(t){var e=t.originalEvent;this.options.dragOverBubble||e.rootEl||this._handleAutoScroll(e)},drop:function(){this.sortable.nativeDraggable?m(document,"dragover",this._handleAutoScroll):(m(document,"pointermove",this._handleFallbackAutoScroll),m(document,"touchmove",this._handleFallbackAutoScroll),m(document,"mousemove",this._handleFallbackAutoScroll)),Jt(),Qt(),clearTimeout(y),y=void 0},nulling:function(){Vt=Xt=Ht=Zt=qt=$t=Yt=null,Kt.length=0},_handleFallbackAutoScroll:function(t){this._handleAutoScroll(t,!0)},_handleAutoScroll:function(t,e){var n=this,a=(t.touches?t.touches[0]:t).clientX,i=(t.touches?t.touches[0]:t).clientY,o=document.elementFromPoint(a,i);if(Vt=t,e||c||l||u){ee(t,this.options,o,e);var r=T(o,!0);!Zt||qt&&a===$t&&i===Yt||(qt&&Jt(),qt=setInterval(function(){var o=T(document.elementFromPoint(a,i),!0);o!==r&&(r=o,Qt()),ee(t,n.options,o,e)},10),$t=a,Yt=i)}else{if(!this.options.bubbleScroll||T(o,!0)===S())return void Qt();ee(t,this.options,T(o,!1),!1)}}},o(t,{pluginName:"scroll",initializeByDefault:!0})}),Lt.mount(ie,ae);const be=Lt},19048:(t,e,n)=>{"use strict";n.d(e,{A:()=>s});var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([t.id,"#app-dashboard[data-v-527ea318]{width:100%;min-height:100%;background-size:cover;background-position:center center;background-repeat:no-repeat;background-attachment:fixed}#app-dashboard>h2[data-v-527ea318]{color:var(--color-background-plain-text);text-align:center;font-size:32px;line-height:130%;padding:1rem 0}.panels[data-v-527ea318]{width:auto;margin:auto;max-width:1800px;display:flex;justify-content:center;flex-direction:row;align-items:flex-start;flex-wrap:wrap}.panel[data-v-527ea318],.panels>div[data-v-527ea318]{--color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-main-text));width:320px;max-width:100%;margin:16px;align-self:stretch;background-color:var(--color-main-background-blur);-webkit-backdrop-filter:var(--filter-background-blur);backdrop-filter:var(--filter-background-blur);border-radius:var(--border-radius-container-large)}#body-user.theme--highcontrast .panel[data-v-527ea318],#body-user.theme--highcontrast .panels>div[data-v-527ea318]{border:2px solid var(--color-border)}.panel.sortable-ghost[data-v-527ea318],.panels>div.sortable-ghost[data-v-527ea318]{opacity:.1}.panel>.panel--header[data-v-527ea318],.panels>div>.panel--header[data-v-527ea318]{display:flex;z-index:1;top:50px;padding:16px;cursor:grab}.panel>.panel--header[data-v-527ea318],.panel>.panel--header[data-v-527ea318] *,.panels>div>.panel--header[data-v-527ea318],.panels>div>.panel--header[data-v-527ea318] *{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.panel>.panel--header[data-v-527ea318]:active,.panels>div>.panel--header[data-v-527ea318]:active{cursor:grabbing}.panel>.panel--header a[data-v-527ea318],.panels>div>.panel--header a[data-v-527ea318]{flex-grow:1}.panel>.panel--header>h2[data-v-527ea318],.panels>div>.panel--header>h2[data-v-527ea318]{display:block;align-items:center;flex-grow:1;margin:0;font-size:20px;line-height:24px;font-weight:bold;padding:16px 8px;height:56px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:grab}.panel>.panel--header>h2 img[data-v-527ea318],.panel>.panel--header>h2 span[data-v-527ea318],.panels>div>.panel--header>h2 img[data-v-527ea318],.panels>div>.panel--header>h2 span[data-v-527ea318]{background-size:32px;width:32px;height:32px;background-position:center;float:left;margin-top:-6px;margin-inline:6px 16px}.panel>.panel--header>h2 img[data-v-527ea318],.panels>div>.panel--header>h2 img[data-v-527ea318]{filter:var(--background-invert-if-dark)}.panel>.panel--content[data-v-527ea318],.panels>div>.panel--content[data-v-527ea318]{margin:0 16px 16px 16px;height:424px;overflow:visible}@media only screen and (max-width: 709px){.panel>.panel--content[data-v-527ea318],.panels>div>.panel--content[data-v-527ea318]{height:auto}}.footer[data-v-527ea318]{display:flex;justify-content:center;transition:bottom var(--animation-slow) ease-in-out;padding:1rem 0}.edit-panels[data-v-527ea318]{display:inline-block;margin:auto;background-position:16px center;padding:12px 16px;padding-inline-start:36px;border-radius:var(--border-radius-pill);max-width:200px;opacity:1;text-align:center}.button[data-v-527ea318],.button-vue[data-v-527ea318],.edit-panels[data-v-527ea318],.statuses[data-v-527ea318] .action-item .action-item__menutoggle,.statuses[data-v-527ea318] .action-item.action-item--open .action-item__menutoggle{--color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-main-text));background-color:var(--color-main-background-blur);-webkit-backdrop-filter:var(--filter-background-blur);backdrop-filter:var(--filter-background-blur);opacity:1 !important}.button[data-v-527ea318]:hover,.button[data-v-527ea318]:focus,.button[data-v-527ea318]:active,.button-vue[data-v-527ea318]:hover,.button-vue[data-v-527ea318]:focus,.button-vue[data-v-527ea318]:active,.edit-panels[data-v-527ea318]:hover,.edit-panels[data-v-527ea318]:focus,.edit-panels[data-v-527ea318]:active,.statuses[data-v-527ea318] .action-item .action-item__menutoggle:hover,.statuses[data-v-527ea318] .action-item .action-item__menutoggle:focus,.statuses[data-v-527ea318] .action-item .action-item__menutoggle:active,.statuses[data-v-527ea318] .action-item.action-item--open .action-item__menutoggle:hover,.statuses[data-v-527ea318] .action-item.action-item--open .action-item__menutoggle:focus,.statuses[data-v-527ea318] .action-item.action-item--open .action-item__menutoggle:active{background-color:var(--color-background-hover) !important}.button[data-v-527ea318]:focus-visible,.button-vue[data-v-527ea318]:focus-visible,.edit-panels[data-v-527ea318]:focus-visible,.statuses[data-v-527ea318] .action-item .action-item__menutoggle:focus-visible,.statuses[data-v-527ea318] .action-item.action-item--open .action-item__menutoggle:focus-visible{box-shadow:0 0 0 4px var(--color-main-background) !important;outline:2px solid var(--color-main-text) !important}.modal__content[data-v-527ea318]{padding:32px 16px;text-align:center}.modal__content ol[data-v-527ea318]{display:flex;flex-direction:row;justify-content:center;list-style-type:none;padding-bottom:16px}.modal__content li label[data-v-527ea318]{position:relative;display:block;padding:48px 16px 14px 16px;margin:8px;width:140px;background-color:var(--color-background-hover);border:2px solid var(--color-main-background);border-radius:var(--border-radius-large);text-align:start;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal__content li label img[data-v-527ea318],.modal__content li label span[data-v-527ea318]{position:absolute;top:16px;width:24px;height:24px;background-size:24px}.modal__content li label img[data-v-527ea318]{filter:var(--background-invert-if-dark)}.modal__content li label[data-v-527ea318]:hover{border-color:var(--color-primary-element)}.modal__content li:not(.panel-status) label span[data-v-527ea318]{filter:var(--background-invert-if-dark)}.modal__content li input[type=checkbox].checkbox+label[data-v-527ea318]:before{position:absolute;inset-inline-end:12px;top:16px}.modal__content li input:focus+label[data-v-527ea318]{border-color:var(--color-primary-element)}.modal__content h2[data-v-527ea318]{font-weight:bold;margin-top:12px}.modal__content .button[data-v-527ea318]{display:inline-block;padding:10px 16px;margin:0}.modal__content p[data-v-527ea318]{max-width:650px;margin:0 auto}.modal__content p a[data-v-527ea318]:hover,.modal__content p a[data-v-527ea318]:focus{border-bottom:2px solid var(--color-border)}.modal__content .credits--end[data-v-527ea318]{padding-bottom:32px;color:var(--color-text-maxcontrast)}.modal__content .credits--end a[data-v-527ea318]{color:var(--color-text-maxcontrast)}.flip-list-move[data-v-527ea318]{transition:transform var(--animation-slow)}.statuses[data-v-527ea318]{display:flex;flex-direction:row;justify-content:center;flex-wrap:wrap;margin-bottom:36px}.statuses>li[data-v-527ea318]{margin:8px}","",{version:3,sources:["webpack://./apps/dashboard/src/DashboardApp.vue"],names:[],mappings:"AACA,gCACC,UAAA,CACA,eAAA,CACA,qBAAA,CACA,iCAAA,CACA,2BAAA,CACA,2BAAA,CAEA,mCAEC,wCAAA,CACA,iBAAA,CACA,cAAA,CACA,gBAAA,CACA,cAAA,CAIF,yBACC,UAAA,CACA,WAAA,CACA,gBAAA,CACA,YAAA,CACA,sBAAA,CACA,kBAAA,CACA,sBAAA,CACA,cAAA,CAGD,qDAEC,+FAAA,CACA,WAAA,CACA,cAAA,CACA,WAAA,CACA,kBAAA,CACA,kDAAA,CACA,qDAAA,CACA,6CAAA,CACA,kDAAA,CAEA,mHACC,oCAAA,CAGD,mFACE,UAAA,CAGF,mFACC,YAAA,CACA,SAAA,CACA,QAAA,CACA,YAAA,CACA,WAAA,CAEA,0KAEC,0BAAA,CACA,wBAAA,CACA,uBAAA,CACA,qBAAA,CACA,oBAAA,CACA,gBAAA,CAGD,iGACC,eAAA,CAGD,uFACC,WAAA,CAGD,yFACC,aAAA,CACA,kBAAA,CACA,WAAA,CACA,QAAA,CACA,cAAA,CACA,gBAAA,CACA,gBAAA,CACA,gBAAA,CACA,WAAA,CACA,kBAAA,CACA,eAAA,CACA,sBAAA,CACA,WAAA,CAEA,oMAEC,oBAAA,CACA,UAAA,CACA,WAAA,CACA,0BAAA,CACA,UAAA,CACA,eAAA,CACA,sBAAA,CAGD,iGACC,uCAAA,CAKH,qFACC,uBAAA,CACA,YAAA,CAEA,gBAAA,CAID,0CACC,qFACC,WAAA,CAAA,CAKH,yBACC,YAAA,CACA,sBAAA,CACA,mDAAA,CACA,cAAA,CAGD,8BACC,oBAAA,CACA,WAAA,CACA,+BAAA,CACA,iBAAA,CACA,yBAAA,CACA,uCAAA,CACA,eAAA,CACA,SAAA,CACA,iBAAA,CAGD,wOAMC,+FAAA,CACA,kDAAA,CACA,qDAAA,CACA,6CAAA,CACA,oBAAA,CAEA,uxBAGC,yDAAA,CAED,8SACC,4DAAA,CACA,mDAAA,CAIF,iCACC,iBAAA,CACA,iBAAA,CAEA,oCACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,oBAAA,CACA,mBAAA,CAGA,0CACC,iBAAA,CACA,aAAA,CACA,2BAAA,CACA,UAAA,CACA,WAAA,CACA,8CAAA,CACA,6CAAA,CACA,wCAAA,CACA,gBAAA,CACA,eAAA,CACA,sBAAA,CACA,kBAAA,CAEA,6FAEC,iBAAA,CACA,QAAA,CACA,UAAA,CACA,WAAA,CACA,oBAAA,CAGD,8CACC,uCAAA,CAGD,gDACC,yCAAA,CAKF,kEACC,uCAAA,CAGD,+EACC,iBAAA,CACA,qBAAA,CACA,QAAA,CAGD,sDACC,yCAAA,CAIF,oCACC,gBAAA,CACA,eAAA,CAID,yCACC,oBAAA,CACA,iBAAA,CACA,QAAA,CAGD,mCACC,eAAA,CACA,aAAA,CAEA,sFAEC,2CAAA,CAIF,+CACC,mBAAA,CACA,mCAAA,CAEA,iDACC,mCAAA,CAKH,iCACC,0CAAA,CAGD,2BACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,cAAA,CACA,kBAAA,CAEA,8BACC,UAAA",sourcesContent:["\n#app-dashboard {\n\twidth: 100%;\n\tmin-height: 100%;\n\tbackground-size: cover;\n\tbackground-position: center center;\n\tbackground-repeat: no-repeat;\n\tbackground-attachment: fixed;\n\n\t> h2 {\n\t\t// this is shown directly on the background image / color\n\t\tcolor: var(--color-background-plain-text);\n\t\ttext-align: center;\n\t\tfont-size: 32px;\n\t\tline-height: 130%;\n\t\tpadding: 1rem 0;\n\t}\n}\n\n.panels {\n\twidth: auto;\n\tmargin: auto;\n\tmax-width: 1800px;\n\tdisplay: flex;\n\tjustify-content: center;\n\tflex-direction: row;\n\talign-items: flex-start;\n\tflex-wrap: wrap;\n}\n\n.panel, .panels > div {\n\t// Ensure the maxcontrast color is set for the background\n\t--color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-main-text));\n\twidth: 320px;\n\tmax-width: 100%;\n\tmargin: 16px;\n\talign-self: stretch;\n\tbackground-color: var(--color-main-background-blur);\n\t-webkit-backdrop-filter: var(--filter-background-blur);\n\tbackdrop-filter: var(--filter-background-blur);\n\tborder-radius: var(--border-radius-container-large);\n\n\t#body-user.theme--highcontrast & {\n\t\tborder: 2px solid var(--color-border);\n\t}\n\n\t&.sortable-ghost {\n\t\t opacity: 0.1;\n\t}\n\n\t& > .panel--header {\n\t\tdisplay: flex;\n\t\tz-index: 1;\n\t\ttop: 50px;\n\t\tpadding: 16px;\n\t\tcursor: grab;\n\n\t\t&,\n\t\t:deep(*) {\n\t\t\t-webkit-touch-callout: none;\n\t\t\t-webkit-user-select: none;\n\t\t\t-khtml-user-select: none;\n\t\t\t-moz-user-select: none;\n\t\t\t-ms-user-select: none;\n\t\t\tuser-select: none;\n\t\t}\n\n\t\t&:active {\n\t\t\tcursor: grabbing;\n\t\t}\n\n\t\ta {\n\t\t\tflex-grow: 1;\n\t\t}\n\n\t\t> h2 {\n\t\t\tdisplay: block;\n\t\t\talign-items: center;\n\t\t\tflex-grow: 1;\n\t\t\tmargin: 0;\n\t\t\tfont-size: 20px;\n\t\t\tline-height: 24px;\n\t\t\tfont-weight: bold;\n\t\t\tpadding: 16px 8px;\n\t\t\theight: 56px;\n\t\t\twhite-space: nowrap;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\tcursor: grab;\n\n\t\t\timg,\n\t\t\tspan {\n\t\t\t\tbackground-size: 32px;\n\t\t\t\twidth: 32px;\n\t\t\t\theight: 32px;\n\t\t\t\tbackground-position: center;\n\t\t\t\tfloat: left;\n\t\t\t\tmargin-top: -6px;\n\t\t\t\tmargin-inline: 6px 16px;\n\t\t\t}\n\n\t\t\timg {\n\t\t\t\tfilter: var(--background-invert-if-dark);\n\t\t\t}\n\t\t}\n\t}\n\n\t& > .panel--content {\n\t\tmargin: 0 16px 16px 16px;\n\t\theight: 424px;\n\t\t// We specifically do not want scrollbars inside widgets\n\t\toverflow: visible;\n\t}\n\n\t// No need to extend height of widgets if only one column is shown\n\t@media only screen and (max-width: 709px) {\n\t\t& > .panel--content {\n\t\t\theight: auto;\n\t\t}\n\t}\n}\n\n.footer {\n\tdisplay: flex;\n\tjustify-content: center;\n\ttransition: bottom var(--animation-slow) ease-in-out;\n\tpadding: 1rem 0;\n}\n\n.edit-panels {\n\tdisplay: inline-block;\n\tmargin:auto;\n\tbackground-position: 16px center;\n\tpadding: 12px 16px;\n\tpadding-inline-start: 36px;\n\tborder-radius: var(--border-radius-pill);\n\tmax-width: 200px;\n\topacity: 1;\n\ttext-align: center;\n}\n\n.button,\n.button-vue,\n.edit-panels,\n.statuses :deep(.action-item .action-item__menutoggle),\n.statuses :deep(.action-item.action-item--open .action-item__menutoggle) {\n\t// Ensure the maxcontrast color is set for the background\n\t--color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-main-text));\n\tbackground-color: var(--color-main-background-blur);\n\t-webkit-backdrop-filter: var(--filter-background-blur);\n\tbackdrop-filter: var(--filter-background-blur);\n\topacity: 1 !important;\n\n\t&:hover,\n\t&:focus,\n\t&:active {\n\t\tbackground-color: var(--color-background-hover)!important;\n\t}\n\t&:focus-visible {\n\t\tbox-shadow: 0 0 0 4px var(--color-main-background) !important;\n\t\toutline: 2px solid var(--color-main-text) !important;\n\t}\n}\n\n.modal__content {\n\tpadding: 32px 16px;\n\ttext-align: center;\n\n\tol {\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t\tjustify-content: center;\n\t\tlist-style-type: none;\n\t\tpadding-bottom: 16px;\n\t}\n\tli {\n\t\tlabel {\n\t\t\tposition: relative;\n\t\t\tdisplay: block;\n\t\t\tpadding: 48px 16px 14px 16px;\n\t\t\tmargin: 8px;\n\t\t\twidth: 140px;\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t\tborder: 2px solid var(--color-main-background);\n\t\t\tborder-radius: var(--border-radius-large);\n\t\t\ttext-align: start;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\twhite-space: nowrap;\n\n\t\t\timg,\n\t\t\tspan {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 16px;\n\t\t\t\twidth: 24px;\n\t\t\t\theight: 24px;\n\t\t\t\tbackground-size: 24px;\n\t\t\t}\n\n\t\t\timg {\n\t\t\t\tfilter: var(--background-invert-if-dark);\n\t\t\t}\n\n\t\t\t&:hover {\n\t\t\t\tborder-color: var(--color-primary-element);\n\t\t\t}\n\t\t}\n\n\t\t// Do not invert status icons\n\t\t&:not(.panel-status) label span {\n\t\t\tfilter: var(--background-invert-if-dark);\n\t\t}\n\n\t\tinput[type='checkbox'].checkbox + label:before {\n\t\t\tposition: absolute;\n\t\t\tinset-inline-end: 12px;\n\t\t\ttop: 16px;\n\t\t}\n\n\t\tinput:focus + label {\n\t\t\tborder-color: var(--color-primary-element);\n\t\t}\n\t}\n\n\th2 {\n\t\tfont-weight: bold;\n\t\tmargin-top: 12px;\n\t}\n\n\t// Adjust design of 'Get more widgets' button\n\t.button {\n\t\tdisplay: inline-block;\n\t\tpadding: 10px 16px;\n\t\tmargin: 0;\n\t}\n\n\tp {\n\t\tmax-width: 650px;\n\t\tmargin: 0 auto;\n\n\t\ta:hover,\n\t\ta:focus {\n\t\t\tborder-bottom: 2px solid var(--color-border);\n\t\t}\n\t}\n\n\t.credits--end {\n\t\tpadding-bottom: 32px;\n\t\tcolor: var(--color-text-maxcontrast);\n\n\t\ta {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\t}\n}\n\n.flip-list-move {\n\ttransition: transform var(--animation-slow);\n}\n\n.statuses {\n\tdisplay: flex;\n\tflex-direction: row;\n\tjustify-content: center;\n\tflex-wrap: wrap;\n\tmargin-bottom: 36px;\n\n\t& > li {\n\t\tmargin: 8px;\n\t}\n}\n"],sourceRoot:""}]);const s=r},28234:(e,n,a)=>{"use strict";var i=a(21777),o=a(53334),r=a(85471),s=a(19051),l=a(81222),c=a(63814),d=a(432),u=a.n(d),p=a(74095),h=a(42486),f=a(71795);const g={name:"PencilIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var m=a(14486);const v=(0,m.A)(g,function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon pencil-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},[],!1,null,null,null).exports;var A=a(85072),b=a.n(A),y=a(97825),C=a.n(y),x=a(77659),w=a.n(x),_=a(55056),k=a.n(_),S=a(10540),E=a.n(S),D=a(41113),I=a.n(D),B=a(68199),O={};O.styleTagTransform=I(),O.setAttributes=k(),O.insert=w().bind(null,"head"),O.domAPI=C(),O.insertStyleElement=E(),b()(B.A,O),B.A&&B.A.locals&&B.A.locals;var N=a(25763),T=a(6202),M=a(94978),P=a(65542),j={};j.styleTagTransform=I(),j.setAttributes=k(),j.insert=w().bind(null,"head"),j.domAPI=C(),j.insertStyleElement=E(),b()(P.A,j),P.A&&P.A.locals&&P.A.locals;var L=a(95831),W=a(57090),F=a(51431);const U={name:"NcDashboardWidgetItem",components:{NcAvatar:M.N,NcActions:W.N,NcActionButton:L.N},props:{id:{type:[String,Number],default:void 0},targetUrl:{type:String,default:void 0},avatarUrl:{type:String,default:void 0},avatarUsername:{type:String,default:void 0},avatarIsNoUser:{type:Boolean,default:!1},overlayIconUrl:{type:String,default:void 0},mainText:{type:String,required:!0},subText:{type:String,default:""},itemMenu:{type:Object,default:()=>({})},forceMenu:{type:Boolean,default:!0}},data:()=>({hovered:!1}),computed:{item(){return{id:this.id,targetUrl:this.targetUrl,avatarUrl:this.avatarUrl,avatarUsername:this.avatarUsername,overlayIconUrl:this.overlayIconUrl,mainText:this.mainText,subText:this.subText}},gotMenu(){return 0!==Object.keys(this.itemMenu).length||!!this.$slots.actions},gotOverlayIcon(){return this.overlayIconUrl&&""!==this.overlayIconUrl}},methods:{onLinkClick(t){t.target.closest(".action-item")&&t.preventDefault()}}};var R=function(){var t=this,e=t._self._c;return e("div",{on:{mouseover:function(e){t.hovered=!0},mouseleave:function(e){t.hovered=!1}}},[e(t.targetUrl?"a":"div",{tag:"component",staticClass:"item-list__entry",class:{"item-list__entry--has-actions-menu":t.gotMenu},attrs:{href:t.targetUrl||void 0,target:t.targetUrl?"_blank":void 0},on:{click:t.onLinkClick}},[t._t("avatar",function(){return[e("NcAvatar",{staticClass:"item-avatar",attrs:{size:44,url:t.avatarUrl,user:t.avatarUsername,"is-no-user":t.avatarIsNoUser,"show-user-status":!t.gotOverlayIcon}})]},{avatarUrl:t.avatarUrl,avatarUsername:t.avatarUsername}),t.overlayIconUrl?e("img",{staticClass:"item-icon",attrs:{alt:"",src:t.overlayIconUrl}}):t._e(),e("div",{staticClass:"item__details"},[e("h3",{attrs:{title:t.mainText}},[t._v(" "+t._s(t.mainText)+" ")]),""!==t.subText?e("span",{staticClass:"message",attrs:{title:t.subText}},[t._v(" "+t._s(t.subText)+" ")]):t._e()]),t.gotMenu?e("NcActions",{attrs:{"force-menu":t.forceMenu}},[t._t("actions",function(){return t._l(t.itemMenu,function(n,a){return e("NcActionButton",{key:a,attrs:{icon:n.icon,"close-after-click":!0},on:{click:function(e){return e.preventDefault(),e.stopPropagation(),t.$emit(a,t.item)}}},[t._v(" "+t._s(n.text)+" ")])})})],2):t._e()],2)],1)},G=[];const z=(0,F.n)(U,R,G,!1,null,"3c6f752d").exports;var H=a(42507);(0,T.r)(T.m);const X={name:"NcDashboardWidget",components:{NcAvatar:M.N,NcDashboardWidgetItem:z,NcEmptyContent:H.A,Check:N.C},props:{items:{type:Array,default:()=>[]},showMoreUrl:{type:String,default:""},showMoreLabel:{type:String,default:(0,T.a)("More items …")},loading:{type:Boolean,default:!1},itemMenu:{type:Object,default:()=>({})},showItemsAndEmptyContent:{type:Boolean,default:!1},emptyContentMessage:{type:String,default:""},halfEmptyContentMessage:{type:String,default:""}},computed:{handlers(){const t={};for(const e in this.itemMenu)t[e]=t=>{this.$emit(e,t)};return t},displayedItems(){const t=this.showMoreUrl&&this.items.length>=this.maxItemNumber?this.maxItemNumber-1:this.maxItemNumber;return this.items.slice(0,t)},showHalfEmptyContentArea(){return this.showItemsAndEmptyContent&&this.halfEmptyContentString&&0!==this.items.length},halfEmptyContentString(){return this.halfEmptyContentMessage||this.emptyContentMessage},maxItemNumber(){return this.showItemsAndEmptyContent?5:7},showMore(){return this.showMoreUrl&&this.items.length>=this.maxItemNumber}}};var $=function(){var t=this,e=t._self._c;return e("div",{staticClass:"dashboard-widget"},[t.showHalfEmptyContentArea?e("NcEmptyContent",{staticClass:"half-screen",attrs:{description:t.halfEmptyContentString},scopedSlots:t._u([{key:"icon",fn:function(){return[t._t("halfEmptyContentIcon",function(){return[e("Check")]})]},proxy:!0}],null,!0)}):t._e(),e("ul",t._l(t.displayedItems,function(n){return e("li",{key:n.id},[t._t("default",function(){return[e("NcDashboardWidgetItem",t._g(t._b({attrs:{"item-menu":t.itemMenu}},"NcDashboardWidgetItem",n,!1),t.handlers))]},{item:n})],2)}),0),t.loading?e("div",t._l(7,function(n){return e("div",{key:n,staticClass:"item-list__entry"},[e("NcAvatar",{staticClass:"item-avatar",attrs:{size:44}}),t._m(0,!0)],1)}),0):0===t.items.length?t._t("empty-content",function(){return[t.emptyContentMessage?e("NcEmptyContent",{attrs:{description:t.emptyContentMessage},scopedSlots:t._u([{key:"icon",fn:function(){return[t._t("emptyContentIcon")]},proxy:!0}],null,!0)}):t._e()]}):t.showMore?e("a",{staticClass:"more",attrs:{href:t.showMoreUrl,target:"_blank",tabindex:"0"}},[t._v(" "+t._s(t.showMoreLabel)+" ")]):t._e()],2)},Y=[function(){var t=this,e=t._self._c;return e("div",{staticClass:"item__details"},[e("h3",[t._v(" ")]),e("p",{staticClass:"message"},[t._v(" ")])])}];const V=(0,F.n)(X,$,Y,!1,null,"bde19bf3").exports;var q=a(54373),K=a(41944),Z=a(60557);const Q=(0,r.pM)({__name:"ApiDashboardWidgetItem",props:{item:{type:Object,required:!0},iconSize:{type:Number,required:!0},roundedIcons:{type:Boolean,default:!0}},setup:t=>({__sfc:!0,imageLoaded:(0,r.KR)(!1),loadingImageFailed:(0,r.KR)(!1),NcAvatar:K.A,NcDashboardWidgetItem:z,IconFile:Z.A})});var J=a(8949),tt={};tt.styleTagTransform=I(),tt.setAttributes=k(),tt.insert=w().bind(null,"head"),tt.domAPI=C(),tt.insertStyleElement=E(),b()(J.A,tt),J.A&&J.A.locals&&J.A.locals;const et={name:"ApiDashboardWidget",components:{ApiDashboardWidgetItem:(0,m.A)(Q,function(){var t=this,e=t._self._c,n=t._self._setupProxy;return e(n.NcDashboardWidgetItem,{attrs:{"target-url":t.item.link,"overlay-icon-url":t.item.overlayIconUrl?t.item.overlayIconUrl:"","main-text":t.item.title,"sub-text":t.item.subtitle},scopedSlots:t._u([{key:"avatar",fn:function(){return[t.item.iconUrl?[t.roundedIcons?e(n.NcAvatar,{attrs:{size:t.iconSize,url:t.item.iconUrl}}):[e("img",{directives:[{name:"show",rawName:"v-show",value:!n.loadingImageFailed,expression:"!loadingImageFailed"}],staticClass:"api-dashboard-widget-item__icon",class:{"hidden-visually":!n.imageLoaded},attrs:{alt:"",src:t.item.iconUrl},on:{error:function(t){n.loadingImageFailed=!0},load:function(t){n.imageLoaded=!0}}}),t._v(" "),n.imageLoaded?t._e():e(n.IconFile,{attrs:{size:t.iconSize}})]]:t._e()]},proxy:!0}])})},[],!1,null,"bffdb06a",null).exports,CheckIcon:q.A,NcDashboardWidget:V,NcEmptyContent:H.A,NcButton:p.A},props:{widget:{type:[Object,void 0],default:void 0},data:{type:[Object,void 0],default:void 0},loading:{type:Boolean,required:!0}},data:()=>({iconSize:44}),computed:{items(){return this.data?.items??[]},emptyContentMessage(){return this.data?.emptyContentMessage??""},halfEmptyContentMessage(){return this.data?.halfEmptyContentMessage??""},newButton(){return this.widget?.buttons?.find(t=>"new"===t.type)},moreButton(){return this.widget?.buttons?.find(t=>"more"===t.type)},setupButton(){return this.widget?.buttons?.find(t=>"setup"===t.type)},showMoreLabel(){return this.moreButton?.text},showMoreUrl(){return this.moreButton?.link}},mounted(){const t=window.getComputedStyle(document.body).getPropertyValue("--default-clickable-area"),e=Number.parseFloat(t);this.iconSize=Number.isNaN(e)?44:e}},nt=(0,m.A)(et,function(){var t=this,e=t._self._c;return e("NcDashboardWidget",{attrs:{items:t.items,"show-more-label":t.showMoreLabel,"show-more-url":t.showMoreUrl,loading:t.loading,"show-items-and-empty-content":!!t.halfEmptyContentMessage,"half-empty-content-message":t.halfEmptyContentMessage},scopedSlots:t._u([{key:"default",fn:function({item:n}){return[e("ApiDashboardWidgetItem",{attrs:{item:n,"icon-size":t.iconSize,"rounded-icons":t.widget.item_icons_round}})]}},{key:"empty-content",fn:function(){return[0===t.items.length?e("NcEmptyContent",{attrs:{description:t.emptyContentMessage},scopedSlots:t._u([{key:"icon",fn:function(){return[t.emptyContentMessage?e("CheckIcon",{attrs:{size:65}}):t._e()]},proxy:!0},{key:"action",fn:function(){return[t.setupButton?e("NcButton",{attrs:{href:t.setupButton.link}},[t._v("\n\t\t\t\t\t"+t._s(t.setupButton.text)+"\n\t\t\t\t")]):t._e()]},proxy:!0}],null,!1,4172361897)}):t._e()]},proxy:!0}])})},[],!1,null,null,null).exports,at=(0,a(35947).YK)().detectLogLevel().setApp("dashboard").build(),it={data(){return{isMobile:this._isMobile()}},beforeMount(){window.addEventListener("resize",this._onResize)},beforeDestroy(){window.removeEventListener("resize",this._onResize)},methods:{_onResize(){this.isMobile=this._isMobile()},_isMobile:()=>document.documentElement.clientWidth<768}},ot=(0,l.C)("dashboard","panels"),rt=(0,l.C)("dashboard","firstRun"),st=new Date((0,l.C)("dashboard","birthdate")),lt={weather:{text:t("dashboard","Weather"),icon:"icon-weather-status"},status:{text:t("dashboard","Status")}},ct={name:"DashboardApp",components:{ApiDashboardWidget:nt,NcButton:p.A,Draggable:u(),NcModal:h.A,Pencil:v,NcUserStatusIcon:f.N},mixins:[it],setup:()=>({productName:window.OC.theme.productName}),data:()=>({isAdmin:(0,i.HW)().isAdmin,timer:new Date,registeredStatus:[],callbacks:{},callbacksStatus:{},allCallbacksStatus:{},statusInfo:lt,enabledStatuses:(0,l.C)("dashboard","statuses"),panels:ot,firstRun:rt,displayName:(0,i.HW)()?.displayName,uid:(0,i.HW)()?.uid,layout:(0,l.C)("dashboard","layout").filter(t=>ot[t]),modal:!1,appStoreUrl:(0,c.Jv)("/settings/apps/dashboard"),appStoreEnabled:(0,l.C)("dashboard","appStoreEnabled",!0),statuses:{},apiWidgets:[],apiWidgetItems:{},loadingItems:!0,birthdate:st}),computed:{greeting(){const e=this.timer.getHours();let n;n=this.birthdate instanceof Date&&this.birthdate.getMonth()===this.timer.getMonth()&&this.birthdate.getDate()===this.timer.getDate()?"birthday":e>=22||e<5?"night":e>=18?"evening":e>=12?"afternoon":"morning";const a={morning:{generic:t("dashboard","Good morning"),withName:t("dashboard","Good morning, {name}",{name:this.displayName},void 0,{escape:!1})},afternoon:{generic:t("dashboard","Good afternoon"),withName:t("dashboard","Good afternoon, {name}",{name:this.displayName},void 0,{escape:!1})},evening:{generic:t("dashboard","Good evening"),withName:t("dashboard","Good evening, {name}",{name:this.displayName},void 0,{escape:!1})},night:{generic:t("dashboard","Hello"),withName:t("dashboard","Hello, {name}",{name:this.displayName},void 0,{escape:!1})},birthday:{generic:t("dashboard","Happy birthday 🥳🤩🎂🎉"),withName:t("dashboard","Happy birthday, {name} 🥳🤩🎂🎉",{name:this.displayName},void 0,{escape:!1})}};return{text:this.displayName&&this.uid!==this.displayName?a[n].withName:a[n].generic}},isActive(){return t=>this.layout.indexOf(t.id)>-1},isStatusActive(){return t=>-1!==this.enabledStatuses.findIndex(e=>e===t)},sortedAllStatuses(){return Object.keys(this.allCallbacksStatus).slice().sort(this.sortStatuses)},sortedPanels(){return Object.values(this.panels).sort((t,e)=>{const n=this.layout.indexOf(t.id),a=this.layout.indexOf(e.id);return-1===n||-1===a?a-n||t.id-e.id:n-a||t.id-e.id})},sortedRegisteredStatus(){return this.registeredStatus.slice().sort(this.sortStatuses)}},watch:{callbacks(){this.rerenderPanels()},callbacksStatus(){for(const t in this.callbacksStatus){const e=this.$refs["status-"+t];this.statuses[t]&&this.statuses[t].mounted||(e?(this.callbacksStatus[t](e[0]),r.Ay.set(this.statuses,t,{mounted:!0})):at.error("Failed to register panel in the frontend as no backend data was provided for "+t))}}},async created(){await this.fetchApiWidgets();const t=Object.values(this.apiWidgets).filter(t=>this.isApiWidgetV2(t.id)&&this.layout.includes(t.id)).map(t=>t.id);await Promise.all(t.map(t=>this.fetchApiWidgetItems([t],!0)));for(const t of Object.values(this.apiWidgets))t.reload_interval>0&&setInterval(async()=>{this.layout.includes(t.id)&&await this.fetchApiWidgetItems([t.id],!0)},1e3*t.reload_interval)},mounted(){this.updateSkipLink(),window.addEventListener("scroll",this.handleScroll),setInterval(()=>{this.timer=new Date},3e4),this.firstRun&&window.addEventListener("scroll",this.disableFirstrunHint)},destroyed(){window.removeEventListener("scroll",this.handleScroll)},methods:{register(t,e){r.Ay.set(this.callbacks,t,e)},registerStatus(t,e){r.Ay.set(this.allCallbacksStatus,t,e),this.isStatusActive(t)&&(this.registeredStatus.push(t),this.$nextTick(()=>{r.Ay.set(this.callbacksStatus,t,e)}))},rerenderPanels(){for(const t in this.callbacks){if(this.isApiWidgetV2(this.panels[t].id))continue;const e=this.$refs[t];-1!==this.layout.indexOf(t)&&(this.panels[t]&&this.panels[t].mounted||(e?(this.callbacks[t](e[0],{widget:this.panels[t]}),r.Ay.set(this.panels[t],"mounted",!0)):at.error("Failed to register panel in the frontend as no backend data was provided for "+t)))}},saveLayout(){s.Ay.post((0,c.KT)("/apps/dashboard/api/v3/layout"),{layout:this.layout})},saveStatuses(){s.Ay.post((0,c.KT)("/apps/dashboard/api/v3/statuses"),{statuses:this.enabledStatuses})},showModal(){this.modal=!0,this.firstRun=!1},closeModal(){this.modal=!1},updateCheckbox(t,e){const n=this.layout.indexOf(t.id);!e&&n>-1?this.layout.splice(n,1):(this.layout.push(t.id),this.isApiWidgetV2(t.id)&&this.fetchApiWidgetItems([t.id],!0)),r.Ay.set(this.panels[t.id],"mounted",!1),this.saveLayout(),this.$nextTick(()=>this.rerenderPanels())},disableFirstrunHint(){window.removeEventListener("scroll",this.disableFirstrunHint),setTimeout(()=>{this.firstRun=!1},1e3)},updateSkipLink(){document.getElementsByClassName("skip-navigation")[0].setAttribute("href","#app-dashboard")},updateStatusCheckbox(t,e){e?this.enableStatus(t):this.disableStatus(t)},enableStatus(t){this.enabledStatuses.push(t),this.registerStatus(t,this.allCallbacksStatus[t]),this.saveStatuses()},disableStatus(t){const e=this.enabledStatuses.findIndex(e=>e===t);-1!==e&&this.enabledStatuses.splice(e,1);const n=this.registeredStatus.findIndex(e=>e===t);-1!==n&&(this.registeredStatus.splice(n,1),r.Ay.set(this.statuses,t,{mounted:!1}),this.$nextTick(()=>{r.Ay.delete(this.callbacksStatus,t)})),this.saveStatuses()},sortStatuses(t,e){const n=t.toLowerCase(),a=e.toLowerCase();return n>a?1:n<a?-1:0},handleScroll(){window.scrollY>70?document.body.classList.add("dashboard--scrolled"):document.body.classList.remove("dashboard--scrolled")},async fetchApiWidgets(){const{data:t}=await s.Ay.get((0,c.KT)("/apps/dashboard/api/v1/widgets"));this.apiWidgets=t.ocs.data},async fetchApiWidgetItems(t,e=!1){try{const n=(0,c.KT)("/apps/dashboard/api/v2/widget-items"),a=new URLSearchParams(t.map(t=>["widgets[]",t])),i=(await s.Ay.get(`${n}?${a.toString()}`)).data.ocs.data;this.apiWidgetItems=e?{...this.apiWidgetItems,...i}:i}finally{this.loadingItems=!1}},isApiWidgetV2(t){for(const e of Object.values(this.apiWidgets))if(e.id===t&&e.item_api_versions.includes(2))return!0;return!1}}};var dt=a(19048),ut={};ut.styleTagTransform=I(),ut.setAttributes=k(),ut.insert=w().bind(null,"head"),ut.domAPI=C(),ut.insertStyleElement=E(),b()(dt.A,ut),dt.A&&dt.A.locals&&dt.A.locals;var pt=a(1197),ht={};ht.styleTagTransform=I(),ht.setAttributes=k(),ht.insert=w().bind(null,"head"),ht.domAPI=C(),ht.insertStyleElement=E(),b()(pt.A,ht),pt.A&&pt.A.locals&&pt.A.locals;const ft=(0,m.A)(ct,function(){var t=this,e=t._self._c;return e("main",{attrs:{id:"app-dashboard"}},[e("h2",[t._v(t._s(t.greeting.text))]),t._v(" "),e("ul",{staticClass:"statuses"},t._l(t.sortedRegisteredStatus,function(t){return e("li",{key:t,attrs:{id:"status-"+t}},[e("div",{ref:"status-"+t,refInFor:!0})])}),0),t._v(" "),e("Draggable",t._b({staticClass:"panels",attrs:{handle:".panel--header"},on:{end:t.saveLayout},model:{value:t.layout,callback:function(e){t.layout=e},expression:"layout"}},"Draggable",{swapThreshold:.3,delay:500,delayOnTouchOnly:!0,touchStartThreshold:3},!1),[t._l(t.layout,function(n){return[t.isApiWidgetV2(t.panels[n].id)?e("div",{key:`${t.panels[n].id}-v2`,staticClass:"panel"},[e("div",{staticClass:"panel--header"},[e("h2",[t.apiWidgets[t.panels[n].id].icon_url?e("img",{attrs:{src:t.apiWidgets[t.panels[n].id].icon_url,alt:""}}):e("span",{class:t.apiWidgets[t.panels[n].id].icon_class,attrs:{"aria-hidden":"true"}}),t._v("\n\t\t\t\t\t\t"+t._s(t.apiWidgets[t.panels[n].id].title)+"\n\t\t\t\t\t")])]),t._v(" "),e("div",{staticClass:"panel--content"},[e("ApiDashboardWidget",{attrs:{widget:t.apiWidgets[t.panels[n].id],data:t.apiWidgetItems[t.panels[n].id],loading:t.loadingItems}})],1)]):e("div",{key:t.panels[n].id,staticClass:"panel"},[e("div",{staticClass:"panel--header"},[e("h2",[e("span",{class:t.panels[n].iconClass,attrs:{"aria-hidden":"true"}}),t._v("\n\t\t\t\t\t\t"+t._s(t.panels[n].title)+"\n\t\t\t\t\t")])]),t._v(" "),e("div",{staticClass:"panel--content",class:{loading:!t.panels[n].mounted}},[e("div",{ref:t.panels[n].id,refInFor:!0,attrs:{"data-id":t.panels[n].id}})])])]})],2),t._v(" "),e("div",{staticClass:"footer"},[e("NcButton",{on:{click:t.showModal},scopedSlots:t._u([{key:"icon",fn:function(){return[e("Pencil",{attrs:{size:20}})]},proxy:!0}])},[t._v("\n\t\t\t"+t._s(t.t("dashboard","Customize"))+"\n\t\t")])],1),t._v(" "),t.modal?e("NcModal",{attrs:{size:"large"},on:{close:t.closeModal}},[e("div",{staticClass:"modal__content"},[e("h2",[t._v(t._s(t.t("dashboard","Edit widgets")))]),t._v(" "),e("ol",{staticClass:"panels"},t._l(t.sortedAllStatuses,function(n){return e("li",{key:n,class:"panel-"+n},[e("input",{staticClass:"checkbox",attrs:{id:"status-checkbox-"+n,type:"checkbox"},domProps:{checked:t.isStatusActive(n)},on:{input:function(e){return t.updateStatusCheckbox(n,e.target.checked)}}}),t._v(" "),e("label",{attrs:{for:"status-checkbox-"+n}},["status"===n?e("NcUserStatusIcon",{attrs:{status:"online","aria-hidden":"true"}}):e("span",{class:t.statusInfo[n].icon,attrs:{"aria-hidden":"true"}}),t._v("\n\t\t\t\t\t\t"+t._s(t.statusInfo[n].text)+"\n\t\t\t\t\t")],1)])}),0),t._v(" "),e("Draggable",t._b({staticClass:"panels",attrs:{tag:"ol",handle:".draggable"},on:{end:t.saveLayout},model:{value:t.layout,callback:function(e){t.layout=e},expression:"layout"}},"Draggable",{swapThreshold:.3,delay:500,delayOnTouchOnly:!0,touchStartThreshold:3},!1),t._l(t.sortedPanels,function(n){return e("li",{key:n.id,class:"panel-"+n.id},[e("input",{staticClass:"checkbox",attrs:{id:"panel-checkbox-"+n.id,type:"checkbox"},domProps:{checked:t.isActive(n)},on:{input:function(e){return t.updateCheckbox(n,e.target.checked)}}}),t._v(" "),e("label",{class:{draggable:t.isActive(n)},attrs:{for:"panel-checkbox-"+n.id}},[n.iconUrl?e("img",{attrs:{alt:"",src:n.iconUrl}}):e("span",{class:n.iconClass,attrs:{"aria-hidden":"true"}}),t._v("\n\t\t\t\t\t\t"+t._s(n.title)+"\n\t\t\t\t\t")])])}),0),t._v(" "),t.isAdmin&&t.appStoreEnabled?e("a",{staticClass:"button",attrs:{href:t.appStoreUrl}},[t._v(t._s(t.t("dashboard","Get more widgets from the App Store")))]):t._e(),t._v(" "),t.statuses.weather&&t.isStatusActive("weather")?e("div",[e("h2",[t._v(t._s(t.t("dashboard","Weather service")))]),t._v(" "),e("p",[t._v("\n\t\t\t\t\t"+t._s(t.t("dashboard","For your privacy, the weather data is requested by your {productName} server on your behalf so the weather service receives no personal information.",{productName:t.productName}))+"\n\t\t\t\t")]),t._v(" "),e("p",{staticClass:"credits--end"},[e("a",{attrs:{href:"https://api.met.no/doc/TermsOfService",target:"_blank",rel:"noopener"}},[t._v(t._s(t.t("dashboard","Weather data from Met.no")))]),t._v(",\n\t\t\t\t\t"),e("a",{attrs:{href:"https://wiki.osmfoundation.org/wiki/Privacy_Policy",target:"_blank",rel:"noopener"}},[t._v(t._s(t.t("dashboard","geocoding with Nominatim")))]),t._v(",\n\t\t\t\t\t"),e("a",{attrs:{href:"https://www.opentopodata.org/#public-api",target:"_blank",rel:"noopener"}},[t._v(t._s(t.t("dashboard","elevation data from OpenTopoData")))]),t._v(".\n\t\t\t\t")])]):t._e()],1)]):t._e()],1)},[],!1,null,"527ea318",null).exports;a.nc=(0,i.aV)(),r.Ay.prototype.t=o.t;const gt=new(r.Ay.extend(ft))({}).$mount("#app-content-vue");window.OCA.Dashboard={register:(t,e)=>gt.register(t,e),registerStatus:(t,e)=>gt.registerStatus(t,e)}},65542:(t,e,n)=>{"use strict";n.d(e,{A:()=>s});var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([t.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-3c6f752d] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.item-list__entry[data-v-3c6f752d] {\n display: flex;\n align-items: center;\n position: relative;\n padding: 8px;\n}\n.item-list__entry[data-v-3c6f752d]:hover, .item-list__entry[data-v-3c6f752d]:focus {\n background-color: var(--color-background-hover);\n border-radius: var(--border-radius-large);\n}\n.item-list__entry .item-avatar[data-v-3c6f752d] {\n position: relative;\n margin-top: auto;\n margin-bottom: auto;\n}\n.item-list__entry .item__details[data-v-3c6f752d] {\n padding-inline-start: 8px;\n max-height: fit-content;\n flex-grow: 1;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n justify-content: center;\n min-height: var(--default-clickable-area);\n}\n.item-list__entry .item__details h3[data-v-3c6f752d],\n.item-list__entry .item__details .message[data-v-3c6f752d] {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.item-list__entry .item__details .message span[data-v-3c6f752d] {\n width: 10px;\n display: inline-block;\n margin-bottom: -3px;\n}\n.item-list__entry .item__details h3[data-v-3c6f752d] {\n font-size: 100%;\n margin: 0;\n}\n.item-list__entry .item__details .message[data-v-3c6f752d] {\n width: 100%;\n color: var(--color-text-maxcontrast);\n}\n.item-list__entry .item-icon[data-v-3c6f752d] {\n position: relative;\n width: 14px;\n height: 14px;\n margin-top: 25px;\n margin-inline: -10px -2px;\n}\n.item-list__entry button.primary[data-v-3c6f752d] {\n padding: 21px;\n margin: 0;\n}\n\n/*\n.content-popover {\n\theight: 0px;\n\twidth: 0px;\n\tmargin-inline: auto;\n}\n.popover-container {\n\twidth: 100%;\n\theight: 0px;\n}\n*/","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcDashboardWidgetItem-CAsF_ZMZ.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,kBAAkB;EAClB,YAAY;AACd;AACA;EACE,+CAA+C;EAC/C,yCAAyC;AAC3C;AACA;EACE,kBAAkB;EAClB,gBAAgB;EAChB,mBAAmB;AACrB;AACA;EACE,yBAAyB;EACzB,uBAAuB;EACvB,YAAY;EACZ,gBAAgB;EAChB,aAAa;EACb,sBAAsB;EACtB,uBAAuB;EACvB,yCAAyC;AAC3C;AACA;;EAEE,mBAAmB;EACnB,gBAAgB;EAChB,uBAAuB;AACzB;AACA;EACE,WAAW;EACX,qBAAqB;EACrB,mBAAmB;AACrB;AACA;EACE,eAAe;EACf,SAAS;AACX;AACA;EACE,WAAW;EACX,oCAAoC;AACtC;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;EACZ,gBAAgB;EAChB,yBAAyB;AAC3B;AACA;EACE,aAAa;EACb,SAAS;AACX;;AAEA;;;;;;;;;;CAUC",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-3c6f752d] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.item-list__entry[data-v-3c6f752d] {\n display: flex;\n align-items: center;\n position: relative;\n padding: 8px;\n}\n.item-list__entry[data-v-3c6f752d]:hover, .item-list__entry[data-v-3c6f752d]:focus {\n background-color: var(--color-background-hover);\n border-radius: var(--border-radius-large);\n}\n.item-list__entry .item-avatar[data-v-3c6f752d] {\n position: relative;\n margin-top: auto;\n margin-bottom: auto;\n}\n.item-list__entry .item__details[data-v-3c6f752d] {\n padding-inline-start: 8px;\n max-height: fit-content;\n flex-grow: 1;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n justify-content: center;\n min-height: var(--default-clickable-area);\n}\n.item-list__entry .item__details h3[data-v-3c6f752d],\n.item-list__entry .item__details .message[data-v-3c6f752d] {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.item-list__entry .item__details .message span[data-v-3c6f752d] {\n width: 10px;\n display: inline-block;\n margin-bottom: -3px;\n}\n.item-list__entry .item__details h3[data-v-3c6f752d] {\n font-size: 100%;\n margin: 0;\n}\n.item-list__entry .item__details .message[data-v-3c6f752d] {\n width: 100%;\n color: var(--color-text-maxcontrast);\n}\n.item-list__entry .item-icon[data-v-3c6f752d] {\n position: relative;\n width: 14px;\n height: 14px;\n margin-top: 25px;\n margin-inline: -10px -2px;\n}\n.item-list__entry button.primary[data-v-3c6f752d] {\n padding: 21px;\n margin: 0;\n}\n\n/*\n.content-popover {\n\theight: 0px;\n\twidth: 0px;\n\tmargin-inline: auto;\n}\n.popover-container {\n\twidth: 100%;\n\theight: 0px;\n}\n*/"],sourceRoot:""}]);const s=r},68199:(t,e,n)=>{"use strict";n.d(e,{A:()=>s});var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([t.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-bde19bf3] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.dashboard-widget[data-v-bde19bf3] .empty-content {\n text-align: center;\n padding-top: 5vh;\n}\n.dashboard-widget[data-v-bde19bf3] .empty-content.half-screen {\n padding-top: 0;\n margin-bottom: 1vh;\n}\n.more[data-v-bde19bf3] {\n display: block;\n text-align: center;\n color: var(--color-text-maxcontrast);\n line-height: 60px;\n cursor: pointer;\n}\n.more[data-v-bde19bf3]:hover, .more[data-v-bde19bf3]:focus {\n background-color: var(--color-background-hover);\n border-radius: var(--border-radius-large);\n color: var(--color-main-text);\n}\n\n/* skeleton */\n.item-list__entry[data-v-bde19bf3] {\n display: flex;\n align-items: flex-start;\n padding: 8px;\n}\n.item-list__entry .item-avatar[data-v-bde19bf3] {\n position: relative;\n margin-top: auto;\n margin-bottom: auto;\n background-color: var(--color-background-dark) !important;\n}\n.item-list__entry .item__details[data-v-bde19bf3] {\n padding-left: 8px;\n max-height: var(--default-clickable-area);\n flex-grow: 1;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n.item-list__entry .item__details h3[data-v-bde19bf3],\n.item-list__entry .item__details .message[data-v-bde19bf3] {\n white-space: nowrap;\n background-color: var(--color-background-dark);\n}\n.item-list__entry .item__details h3[data-v-bde19bf3] {\n font-size: 100%;\n margin: 0;\n}\n.item-list__entry .item__details .message[data-v-bde19bf3] {\n width: 80%;\n height: 15px;\n margin-top: 5px;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcDashboardWidget-CodY3evn.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,kBAAkB;EAClB,gBAAgB;AAClB;AACA;EACE,cAAc;EACd,kBAAkB;AACpB;AACA;EACE,cAAc;EACd,kBAAkB;EAClB,oCAAoC;EACpC,iBAAiB;EACjB,eAAe;AACjB;AACA;EACE,+CAA+C;EAC/C,yCAAyC;EACzC,6BAA6B;AAC/B;;AAEA,aAAa;AACb;EACE,aAAa;EACb,uBAAuB;EACvB,YAAY;AACd;AACA;EACE,kBAAkB;EAClB,gBAAgB;EAChB,mBAAmB;EACnB,yDAAyD;AAC3D;AACA;EACE,iBAAiB;EACjB,yCAAyC;EACzC,YAAY;EACZ,gBAAgB;EAChB,aAAa;EACb,sBAAsB;AACxB;AACA;;EAEE,mBAAmB;EACnB,8CAA8C;AAChD;AACA;EACE,eAAe;EACf,SAAS;AACX;AACA;EACE,UAAU;EACV,YAAY;EACZ,eAAe;AACjB",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-bde19bf3] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.dashboard-widget[data-v-bde19bf3] .empty-content {\n text-align: center;\n padding-top: 5vh;\n}\n.dashboard-widget[data-v-bde19bf3] .empty-content.half-screen {\n padding-top: 0;\n margin-bottom: 1vh;\n}\n.more[data-v-bde19bf3] {\n display: block;\n text-align: center;\n color: var(--color-text-maxcontrast);\n line-height: 60px;\n cursor: pointer;\n}\n.more[data-v-bde19bf3]:hover, .more[data-v-bde19bf3]:focus {\n background-color: var(--color-background-hover);\n border-radius: var(--border-radius-large);\n color: var(--color-main-text);\n}\n\n/* skeleton */\n.item-list__entry[data-v-bde19bf3] {\n display: flex;\n align-items: flex-start;\n padding: 8px;\n}\n.item-list__entry .item-avatar[data-v-bde19bf3] {\n position: relative;\n margin-top: auto;\n margin-bottom: auto;\n background-color: var(--color-background-dark) !important;\n}\n.item-list__entry .item__details[data-v-bde19bf3] {\n padding-left: 8px;\n max-height: var(--default-clickable-area);\n flex-grow: 1;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n.item-list__entry .item__details h3[data-v-bde19bf3],\n.item-list__entry .item__details .message[data-v-bde19bf3] {\n white-space: nowrap;\n background-color: var(--color-background-dark);\n}\n.item-list__entry .item__details h3[data-v-bde19bf3] {\n font-size: 100%;\n margin: 0;\n}\n.item-list__entry .item__details .message[data-v-bde19bf3] {\n width: 80%;\n height: 15px;\n margin-top: 5px;\n}"],sourceRoot:""}]);const s=r}},a={};function i(t){var e=a[t];if(void 0!==e)return e.exports;var o=a[t]={id:t,loaded:!1,exports:{}};return n[t].call(o.exports,o,o.exports,i),o.loaded=!0,o.exports}i.m=n,e=[],i.O=(t,n,a,o)=>{if(!n){var r=1/0;for(d=0;d<e.length;d++){for(var[n,a,o]=e[d],s=!0,l=0;l<n.length;l++)(!1&o||r>=o)&&Object.keys(i.O).every(t=>i.O[t](n[l]))?n.splice(l--,1):(s=!1,o<r&&(r=o));if(s){e.splice(d--,1);var c=a();void 0!==c&&(t=c)}}return t}o=o||0;for(var d=e.length;d>0&&e[d-1][2]>o;d--)e[d]=e[d-1];e[d]=[n,a,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.e=()=>Promise.resolve(),i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),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=4193,(()=>{var t={4193:0};i.O.j=e=>0===t[e];var e=(e,n)=>{var a,o,[r,s,l]=n,c=0;if(r.some(e=>0!==t[e])){for(a in s)i.o(s,a)&&(i.m[a]=s[a]);if(l)var d=l(i)}for(e&&e(n);c<r.length;c++)o=r[c],i.o(t,o)&&t[o]&&t[o][0](),t[o]=0;return i.O(d)},n=globalThis.webpackChunknextcloud_ui_legacy=globalThis.webpackChunknextcloud_ui_legacy||[];n.forEach(e.bind(null,0)),n.push=e.bind(null,n.push.bind(n))})(),i.nc=void 0;var o=i.O(void 0,[4208],()=>i(28234));o=i.O(o)})();
|